[PackageKit-commit] packagekit: Branch 'master' - 266 commits

Richard Hughes hughsient at kemper.freedesktop.org
Wed Sep 2 05:11:33 PDT 2009


 backends/Makefile.am                             |    4 
 backends/alpm/pk-backend-alpm.c                  |  110 
 backends/apt/aptBackend.py                       |  110 
 backends/apt/pk-backend-apt.c                    |    6 
 backends/aptcc/apt.cpp                           |   14 
 backends/aptcc/pk-backend-aptcc.cpp              |    6 
 backends/box/pk-backend-box.c                    |    6 
 backends/conary/pk-backend-conary.c              |    6 
 backends/dummy/pk-backend-dummy.c                |   94 
 backends/opkg/pk-backend-opkg.c                  |   15 
 backends/pisi/pk-backend-pisi.c                  |    6 
 backends/poldek/pk-backend-poldek.c              |    6 
 backends/portage/pk-backend-portage.c            |    6 
 backends/portage/portageBackend.py               |  592 ++-
 backends/ports/.gitignore                        |    6 
 backends/ports/Makefile.am                       |   17 
 backends/ports/helpers/Makefile.am               |   15 
 backends/ports/helpers/default-dialog            |   23 
 backends/ports/pk-backend-ports.c                |  441 ++
 backends/ports/portsBackend.rb                   | 1019 ++++++
 backends/ports/ruby_packagekit/Makefile.am       |   11 
 backends/ports/ruby_packagekit/enums.rb          |  385 ++
 backends/razor/pk-backend-razor.c                |    6 
 backends/smart/pk-backend-smart.c                |   20 
 backends/smart/smartBackend.py                   |   45 
 backends/test/pk-backend-test-fail.c             |    6 
 backends/test/pk-backend-test-nop.c              |    6 
 backends/test/pk-backend-test-spawn.c            |    6 
 backends/test/pk-backend-test-succeed.c          |    6 
 backends/test/pk-backend-test-thread.c           |    6 
 backends/urpmi/pk-backend-urpmi.c                |    6 
 backends/yum/pk-backend-yum.c                    |   20 
 backends/yum/yumBackend.py                       |  121 
 backends/yum/yumMediaManagerDeviceKit.py         |  152 +
 backends/zypp/pk-backend-zypp.cpp                |    6 
 client/pk-console.c                              |  281 +
 configure.ac                                     |   49 
 contrib/Makefile.am                              |    4 
 contrib/PackageKit.spec.in                       |   17 
 contrib/browser-plugin/README                    |   21 
 contrib/browser-plugin/pk-main.c                 |    5 
 contrib/browser-plugin/pk-plugin-install.c       |  244 +
 contrib/browser-plugin/tests/test.html           |    4 
 contrib/debuginfo-install/pk-debuginfo-install.c |    1 
 contrib/debuginfo-install/pk-progress-bar.c      |   73 
 contrib/debuginfo-install/pk-progress-bar.h      |    4 
 contrib/device-rebind/.gitignore                 |    7 
 contrib/device-rebind/Makefile.am                |   46 
 contrib/device-rebind/README                     |   43 
 contrib/device-rebind/pk-device-rebind.c         |  380 ++
 contrib/device-rebind/pk-device-rebind.xml       |  141 
 data/org.freedesktop.PackageKit.conf.in          |    2 
 docs/html/img/author-volkmar.png                 |binary
 docs/html/img/listallmgr-1.png                   |binary
 docs/html/img/thumbnails/listallmgr-1.png        |binary
 docs/html/pk-authors.html                        |   16 
 docs/html/pk-matrix.html                         |  166 +
 docs/html/pk-screenshots.html                    |   16 
 docs/html/thumbnail.sh                           |    2 
 docs/html/upload.sh                              |    2 
 lib/Makefile.am                                  |    4 
 lib/packagekit-glib/pk-client.c                  |  384 ++
 lib/packagekit-glib/pk-client.h                  |   18 
 lib/packagekit-glib/pk-common.c                  |   42 
 lib/packagekit-glib/pk-control.c                 |   71 
 lib/packagekit-glib/pk-control.h                 |    3 
 lib/packagekit-glib/pk-desktop.h                 |    4 
 lib/packagekit-glib/pk-enum.c                    |  116 
 lib/packagekit-glib/pk-enum.h                    |   27 
 lib/packagekit-glib2/.gitignore                  |   12 
 lib/packagekit-glib2/Makefile.am                 |  141 
 lib/packagekit-glib2/egg-debug.c                 |    1 
 lib/packagekit-glib2/egg-debug.h                 |    1 
 lib/packagekit-glib2/egg-string.c                |    1 
 lib/packagekit-glib2/egg-string.h                |    1 
 lib/packagekit-glib2/egg-test.c                  |    1 
 lib/packagekit-glib2/egg-test.h                  |    1 
 lib/packagekit-glib2/packagekit-glib2.pc.in      |    1 
 lib/packagekit-glib2/packagekit.h                |   39 
 lib/packagekit-glib2/pk-bitfield.c               |    1 
 lib/packagekit-glib2/pk-bitfield.h               |    1 
 lib/packagekit-glib2/pk-client.c                 | 3421 +++++++++++++++++++++++
 lib/packagekit-glib2/pk-client.h                 |  396 ++
 lib/packagekit-glib2/pk-common.c                 |    1 
 lib/packagekit-glib2/pk-common.h                 |    1 
 lib/packagekit-glib2/pk-control-sync.c           |  306 ++
 lib/packagekit-glib2/pk-control-sync.h           |   80 
 lib/packagekit-glib2/pk-control.c                | 2515 ++++++++++++++++
 lib/packagekit-glib2/pk-control.h                |  183 +
 lib/packagekit-glib2/pk-enum.c                   |    1 
 lib/packagekit-glib2/pk-enum.h                   |    1 
 lib/packagekit-glib2/pk-marshal.list             |    1 
 lib/packagekit-glib2/pk-package-sack.c           | 1038 ++++++
 lib/packagekit-glib2/pk-package-sack.h           |  127 
 lib/packagekit-glib2/pk-package.c                |  740 ++++
 lib/packagekit-glib2/pk-package.h                |   84 
 lib/packagekit-glib2/pk-progress.c               |  280 +
 lib/packagekit-glib2/pk-progress.h               |   90 
 lib/packagekit-glib2/pk-results.c                | 1120 +++++++
 lib/packagekit-glib2/pk-results.h                |  367 ++
 lib/packagekit-glib2/pk-self-test.c              |   51 
 lib/packagekit-glib2/pk-version.h.in             |    1 
 lib/packagekit-qt/Doxyfile                       |    4 
 lib/packagekit-qt/src/Makefile.am                |    8 
 lib/packagekit-qt/src/bitfield.cpp               |   70 
 lib/packagekit-qt/src/bitfield.h                 |   31 
 lib/packagekit-qt/src/client.cpp                 |  451 ---
 lib/packagekit-qt/src/client.h                   |  180 -
 lib/packagekit-qt/src/clientprivate.cpp          |    2 
 lib/packagekit-qt/src/clientprivate.h            |    2 
 lib/packagekit-qt/src/package.h                  |    2 
 lib/packagekit-qt/src/polkitclient.cpp           |   63 
 lib/packagekit-qt/src/polkitclient.h             |   45 
 lib/packagekit-qt/src/transaction.cpp            |   23 
 lib/packagekit-qt/src/transaction.h              |   20 
 lib/packagekit-qt/src/transactionprivate.h       |    2 
 lib/packagekit-qt/src/transactionproxy.h         |   37 
 lib/packagekit-qt/src/util.cpp                   |   28 
 lib/packagekit-qt/src/util.h                     |   20 
 lib/python/packagekit/backend.py                 |   44 
 lib/python/packagekit/pylint.sh                  |    2 
 po/LINGUAS                                       |    5 
 po/POTFILES.in                                   |    3 
 po/as.po                                         |  945 ++++--
 po/bg.po                                         |  925 ++++--
 po/bn_IN.po                                      |  924 ++++--
 po/ca.po                                         |  957 ++++--
 po/cs.po                                         |  911 +++---
 po/da.po                                         |  716 ++--
 po/de.po                                         |  945 +++---
 po/el.po                                         |  574 ++-
 po/en_GB.po                                      | 1298 +++++++-
 po/es.po                                         |  663 ++--
 po/fi.po                                         |  854 +++--
 po/fr.po                                         |  971 ++++--
 po/gu.po                                         |  902 ++++--
 po/he.po                                         | 1170 +++++--
 po/hi.po                                         |  915 ++++--
 po/hu.po                                         |  957 ++++--
 po/it.po                                         |  946 ++++--
 po/kn.po                                         |  917 ++++--
 po/ko.po                                         |  521 ++-
 po/ml.po                                         |  807 +++--
 po/mr.po                                         |  899 +++---
 po/ms.po                                         | 1118 +++++--
 po/nb.po                                         | 1151 +++++--
 po/nl.po                                         |  918 ++++--
 po/or.po                                         |  909 ++++--
 po/pa.po                                         |  901 ++++--
 po/pl.po                                         |  620 ++--
 po/pt.po                                         |  718 ++--
 po/pt_BR.po                                      |  632 ++--
 po/ro.po                                         | 1033 +++++-
 po/ru.po                                         |  966 ++++--
 po/sk.po                                         |  976 ++++--
 po/sr.po                                         |  951 ++++--
 po/sr at latin.po                                   |  952 ++++--
 po/sv.po                                         |  721 ++--
 po/ta.po                                         |  934 ++++--
 po/te.po                                         |  899 ++++--
 po/th.po                                         | 1721 ++++++++++-
 po/tr.po                                         | 1058 +++++--
 po/uk.po                                         | 1517 ++++++++++
 po/zh_CN.po                                      |  945 ++++--
 po/zh_TW.po                                      |  945 ++++--
 policy/org.freedesktop.packagekit.policy.in      |   19 
 src/gdb.sh                                       |    2 
 src/org.freedesktop.PackageKit.Transaction.xml   |  199 +
 src/org.freedesktop.PackageKit.xml               |   30 
 src/pk-backend.c                                 |   29 
 src/pk-backend.h                                 |   96 
 src/pk-engine.c                                  |   89 
 src/pk-engine.h                                  |    4 
 src/pk-polkit-action-lookup.c                    |    4 
 src/pk-transaction.c                             |  478 +++
 src/pk-transaction.h                             |  302 +-
 176 files changed, 46445 insertions(+), 11653 deletions(-)

New commits:
commit 550fec61f0ed458e982d2f2a22e52a8a68ae413a
Author: Richard Hughes <richard at hughsie.com>
Date:   Wed Sep 2 09:56:41 2009 +0100

    glib2: set the call to NULL before we check for error

diff --git a/lib/packagekit-glib2/pk-control.c b/lib/packagekit-glib2/pk-control.c
index b932c16..28078f3 100644
--- a/lib/packagekit-glib2/pk-control.c
+++ b/lib/packagekit-glib2/pk-control.c
@@ -174,6 +174,9 @@ pk_control_get_tid_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkControlState *
 	gchar *tid = NULL;
 	gboolean ret;
 
+	/* finished this call */
+	state->call = NULL;
+
 	/* get the result */
 	ret = dbus_g_proxy_end_call (proxy, call, &error,
 				     G_TYPE_STRING, &tid,
@@ -186,9 +189,6 @@ pk_control_get_tid_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkControlState *
 		goto out;
 	}
 
-	/* finished this call */
-	state->call = NULL;
-
 	/* save results */
 	state->tid = g_strdup (tid);
 
@@ -316,6 +316,9 @@ pk_control_get_mime_types_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkControl
 	gchar *temp = NULL;
 	gboolean ret;
 
+	/* finished this call */
+	state->call = NULL;
+
 	/* get the result */
 	ret = dbus_g_proxy_end_call (proxy, call, &error,
 				     G_TYPE_STRING, &temp,
@@ -328,9 +331,6 @@ pk_control_get_mime_types_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkControl
 		goto out;
 	}
 
-	/* finished this call */
-	state->call = NULL;
-
 	/* save data */
 	state->mime_types = g_strsplit (temp, ";", -1);
 
@@ -458,6 +458,9 @@ pk_control_set_proxy_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkControlState
 	gchar *tid = NULL;
 	gboolean ret;
 
+	/* finished this call */
+	state->call = NULL;
+
 	/* get the result */
 	ret = dbus_g_proxy_end_call (proxy, call, &error,
 				     G_TYPE_INVALID);
@@ -467,9 +470,6 @@ pk_control_set_proxy_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkControlState
 		goto out;
 	}
 
-	/* finished this call */
-	state->call = NULL;
-
 	/* save data */
 	state->ret = TRUE;
 
@@ -615,6 +615,9 @@ pk_control_get_roles_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkControlState
 	gboolean ret;
 	PkBitfield bitfield;
 
+	/* finished this call */
+	state->call = NULL;
+
 	/* get the result */
 	ret = dbus_g_proxy_end_call (proxy, call, &error,
 				     G_TYPE_STRING, &roles,
@@ -627,9 +630,6 @@ pk_control_get_roles_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkControlState
 		goto out;
 	}
 
-	/* finished this call */
-	state->call = NULL;
-
 	/* save data */
 	bitfield = pk_role_bitfield_from_text (roles);
 	state->bitfield = pk_control_bitfield_copy (&bitfield);
@@ -758,6 +758,9 @@ pk_control_get_filters_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkControlSta
 	gboolean ret;
 	PkBitfield bitfield;
 
+	/* finished this call */
+	state->call = NULL;
+
 	/* get the result */
 	ret = dbus_g_proxy_end_call (proxy, call, &error,
 				     G_TYPE_STRING, &filters,
@@ -770,9 +773,6 @@ pk_control_get_filters_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkControlSta
 		goto out;
 	}
 
-	/* finished this call */
-	state->call = NULL;
-
 	/* save data */
 	bitfield = pk_filter_bitfield_from_text (filters);
 	state->bitfield = pk_control_bitfield_copy (&bitfield);
@@ -901,6 +901,9 @@ pk_control_get_groups_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkControlStat
 	gboolean ret;
 	PkBitfield bitfield;
 
+	/* finished this call */
+	state->call = NULL;
+
 	/* get the result */
 	ret = dbus_g_proxy_end_call (proxy, call, &error,
 				     G_TYPE_STRING, &groups,
@@ -913,9 +916,6 @@ pk_control_get_groups_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkControlStat
 		goto out;
 	}
 
-	/* finished this call */
-	state->call = NULL;
-
 	/* save data */
 	bitfield = pk_group_bitfield_from_text (groups);
 	state->bitfield = pk_control_bitfield_copy (&bitfield);
@@ -1046,6 +1046,9 @@ pk_control_get_transaction_list_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkC
 	gchar **temp = NULL;
 	gboolean ret;
 
+	/* finished this call */
+	state->call = NULL;
+
 	/* get the result */
 	ret = dbus_g_proxy_end_call (proxy, call, &error,
 				     G_TYPE_STRV, &temp,
@@ -1058,9 +1061,6 @@ pk_control_get_transaction_list_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkC
 		goto out;
 	}
 
-	/* finished this call */
-	state->call = NULL;
-
 	/* save data */
 	state->transaction_list = g_strdupv (temp);
 
@@ -1187,6 +1187,9 @@ pk_control_get_time_since_action_cb (DBusGProxy *proxy, DBusGProxyCall *call, Pk
 	gboolean ret;
 	guint seconds;
 
+	/* finished this call */
+	state->call = NULL;
+
 	/* get the result */
 	ret = dbus_g_proxy_end_call (proxy, call, &error,
 				     G_TYPE_UINT, &seconds,
@@ -1199,9 +1202,6 @@ pk_control_get_time_since_action_cb (DBusGProxy *proxy, DBusGProxyCall *call, Pk
 		goto out;
 	}
 
-	/* finished this call */
-	state->call = NULL;
-
 	/* save data */
 	state->time = seconds;
 	if (state->time == 0) {
@@ -1337,6 +1337,9 @@ pk_control_get_network_state_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkCont
 	gboolean ret;
 	gchar *network_state = NULL;
 
+	/* finished this call */
+	state->call = NULL;
+
 	/* get the result */
 	ret = dbus_g_proxy_end_call (proxy, call, &error,
 				     G_TYPE_STRING, &network_state,
@@ -1349,9 +1352,6 @@ pk_control_get_network_state_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkCont
 		goto out;
 	}
 
-	/* finished this call */
-	state->call = NULL;
-
 	/* save data */
 	state->network = pk_network_enum_from_text (network_state);
 	if (state->network == PK_NETWORK_ENUM_UNKNOWN) {
@@ -1484,6 +1484,9 @@ pk_control_can_authorize_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkControlS
 	gboolean ret;
 	gchar *authorize_state = NULL;
 
+	/* finished this call */
+	state->call = NULL;
+
 	/* get the result */
 	ret = dbus_g_proxy_end_call (proxy, call, &error,
 				     G_TYPE_STRING, &authorize_state,
@@ -1496,9 +1499,6 @@ pk_control_can_authorize_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkControlS
 		goto out;
 	}
 
-	/* finished this call */
-	state->call = NULL;
-
 	/* save data */
 	state->authorize = pk_authorize_type_enum_from_text (authorize_state);
 	if (state->authorize == PK_AUTHORIZE_ENUM_UNKNOWN) {
@@ -1650,6 +1650,9 @@ pk_control_get_properties_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkControl
 	gboolean ret;
 	GHashTable *hash;
 
+	/* finished this call */
+	state->call = NULL;
+
 	/* get the result */
 	ret = dbus_g_proxy_end_call (proxy, call, &error,
 				     dbus_g_type_get_map ("GHashTable", G_TYPE_STRING, G_TYPE_VALUE), &hash,
@@ -1660,9 +1663,6 @@ pk_control_get_properties_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkControl
 		goto out;
 	}
 
-	/* finished this call */
-	state->call = NULL;
-
 	/* save data */
 	state->ret = TRUE;
 
commit fe785f1b4ee04cef36f0e9317c647888ebae322e
Author: Richard Hughes <richard at hughsie.com>
Date:   Wed Sep 2 09:55:55 2009 +0100

    glib2: Ensure we fail D-Bus methods that do not complete

diff --git a/lib/packagekit-glib2/pk-client.c b/lib/packagekit-glib2/pk-client.c
index 60d2e4c..3ff01a2 100644
--- a/lib/packagekit-glib2/pk-client.c
+++ b/lib/packagekit-glib2/pk-client.c
@@ -330,7 +330,7 @@ pk_client_state_finish (PkClientState *state, GError *error)
 	if (state->proxy_props != NULL)
 		g_object_unref (G_OBJECT (state->proxy_props));
 
-	if (state->results != NULL) {
+	if (state->ret) {
 		g_simple_async_result_set_op_res_gpointer (state->res, g_object_ref (state->results), g_object_unref);
 	} else {
 		g_simple_async_result_set_from_error (state->res, error);
@@ -342,6 +342,7 @@ pk_client_state_finish (PkClientState *state, GError *error)
 
 	/* complete */
 	g_simple_async_result_complete_in_idle (state->res);
+	g_object_unref (state->results);
 	g_object_unref (state->res);
 	g_slice_free (PkClientState, state);
 }
@@ -389,15 +390,17 @@ static void
 pk_client_method_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkClientState *state)
 {
 	GError *error = NULL;
-	gboolean ret;
 
 	/* we've sent this async */
 	egg_debug ("got reply to request");
 
+	/* finished this call */
+	state->call = NULL;
+
 	/* get the result */
-	ret = dbus_g_proxy_end_call (proxy, call, &error,
-				     G_TYPE_INVALID);
-	if (!ret) {
+	state->ret = dbus_g_proxy_end_call (proxy, call, &error,
+					    G_TYPE_INVALID);
+	if (!state->ret) {
 		/* fix up the D-Bus error */
 		pk_client_fixup_dbus_error (error);
 		egg_warning ("failed: %s", error->message);
@@ -405,9 +408,6 @@ pk_client_method_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkClientState *sta
 		return;
 	}
 
-	/* finished this call */
-	state->call = NULL;
-
 	/* wait for ::Finished() */
 }
 
commit f391b2fbd7607a2a209442b82f27fb29141c44cc
Author: Richard Hughes <richard at hughsie.com>
Date:   Wed Sep 2 09:41:38 2009 +0100

    glib2: fix a silly little typo which caused the dbus_g_error_get_name to abort

diff --git a/lib/packagekit-glib2/pk-client.c b/lib/packagekit-glib2/pk-client.c
index 0cc17a5..60d2e4c 100644
--- a/lib/packagekit-glib2/pk-client.c
+++ b/lib/packagekit-glib2/pk-client.c
@@ -153,12 +153,12 @@ pk_client_fixup_dbus_error (GError *error)
 	if (error->domain == DBUS_GERROR &&
 	    error->code == DBUS_GERROR_REMOTE_EXCEPTION) {
 
-		/* fall back to generic */
-		error->code = PK_CLIENT_ERROR_FAILED;
-
 		/* use one of our local codes */
 		name = dbus_g_error_get_name (error);
 
+		/* fall back to generic */
+		error->code = PK_CLIENT_ERROR_FAILED;
+
 		/* trim common prefix */
 		if (g_str_has_prefix (name, "org.freedesktop.PackageKit.Transaction."))
 			name = &name[39];
commit 7b976a2a6673adf9061a1069ccbd2f77faebac8e
Merge: ebf021a... 0275110...
Author: Richard Hughes <richard at hughsie.com>
Date:   Wed Sep 2 09:16:44 2009 +0100

    Merge branch 'master' of git+ssh://git.packagekit.org/srv/git/PackageKit

commit 027511056999e3d8dbaec34fe21444ce0424385e
Author: ifelix <ifelix at fedoraproject.org>
Date:   Tue Sep 1 21:25:05 2009 +0000

    Sending translation for Tamil

diff --git a/po/ta.po b/po/ta.po
index ac42caa..be2b78b 100644
--- a/po/ta.po
+++ b/po/ta.po
@@ -7,8 +7,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: packagekit.master.ta\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-08-31 16:45+0000\n"
-"PO-Revision-Date: 2009-09-01 13:19+0530\n"
+"POT-Creation-Date: 2009-09-01 19:44+0000\n"
+"PO-Revision-Date: 2009-09-02 02:54+0530\n"
 "Last-Translator: I. Felix <ifelix at redhat.com>\n"
 "Language-Team: Tamil <fedora-trans-ta at redhat.com>\n"
 "MIME-Version: 1.0\n"
@@ -25,6 +25,7 @@ msgstr ""
 "\n"
 "\n"
 "\n"
+"\n"
 
 #. TRANSLATORS: this is an atomic transaction
 #: ../client/pk-console.c:235
@@ -41,12 +42,11 @@ msgstr "கணினி நேரம்"
 msgid "Succeeded"
 msgstr "வெற்றியடைதல்"
 
-#. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:239 ../client/pk-console.c:468
+#: ../client/pk-console.c:239
 msgid "True"
 msgstr "சரி"
 
-#: ../client/pk-console.c:239 ../client/pk-console.c:468
+#: ../client/pk-console.c:239
 msgid "False"
 msgstr "தவறு"
 
@@ -228,351 +228,363 @@ msgstr "வழங்கப்பட்டது"
 msgid "Updated"
 msgstr "மேம்படுத்தப்பட்டது"
 
-#: ../client/pk-console.c:539 ../client/pk-console.c:541
+#. TRANSLATORS: if the repo is enabled
+#: ../client/pk-console.c:472
+msgid "Enabled"
+msgstr "செயல்படுத்தப்பட்டது"
+
+#. TRANSLATORS: if the repo is disabled
+#: ../client/pk-console.c:475
+msgid "Disabled"
+msgstr "செயல்நீக்கப்பட்டது"
+
+#: ../client/pk-console.c:552 ../client/pk-console.c:554
 msgid "Percentage"
 msgstr "சதவீதம்"
 
-#: ../client/pk-console.c:541
+#: ../client/pk-console.c:554
 msgid "Unknown"
 msgstr "தெரியாத"
 
 #. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:583
+#: ../client/pk-console.c:596
 msgid "System restart required by:"
 msgstr "கணினிக்கு மறுதுவக்கம் தேவைப்படுகிறது:"
 
 #. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:586
+#: ../client/pk-console.c:599
 msgid "Session restart required:"
 msgstr "அமர்வுக்கு மறுதுவக்கம் தேவைப்படுகிறது:"
 
 #. TRANSLATORS: a package requires the system to be restarted due to a security update
-#: ../client/pk-console.c:589
+#: ../client/pk-console.c:602
 msgid "System restart (security) required by:"
 msgstr "கணினிக்கு மறுதுவக்கம் (பாதுகாப்பு) தேவைப்படுகிறது:"
 
 #. TRANSLATORS: a package requires the session to be restarted due to a security update
-#: ../client/pk-console.c:592
+#: ../client/pk-console.c:605
 msgid "Session restart (security) required:"
 msgstr "அமர்வுக்கு மறுதுவக்கம் (பாதுகாப்பு) தேவைப்படுகிறது:"
 
 #. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:595
+#: ../client/pk-console.c:608
 msgid "Application restart required by:"
 msgstr "பயன்பாடிற்கு மறுதுவக்கம் தேவைப்படுகிறது:"
 
 #. TRANSLATORS: a package needs to restart their system
-#: ../client/pk-console.c:650
+#: ../client/pk-console.c:663
 msgid "Please restart the computer to complete the update."
 msgstr "கணினியை மீண்டும் துவக்கி மேம்படுத்துதலை முடிக்கவும்."
 
 #. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:653
+#: ../client/pk-console.c:666
 msgid "Please logout and login to complete the update."
 msgstr "வெளியேறிவிட்டு மற்றும் மேம்படுத்துதலை முடிக்க உள்நுழையவும்."
 
 #. TRANSLATORS: a package needs to restart the application
-#: ../client/pk-console.c:656
+#: ../client/pk-console.c:669
 msgid "Please restart the application as it is being used."
 msgstr "பயன்படுத்தபட்டிருந்தாலும் அதன் பயன்பாட்டை மீண்டும் துவக்கவும்."
 
 #. TRANSLATORS: a package needs to restart their system (due to security)
-#: ../client/pk-console.c:659
+#: ../client/pk-console.c:672
 msgid ""
 "Please restart the computer to complete the update as important security "
 "updates have been installed."
 msgstr "முக்கியமான மேம்படுத்தல்களை நிறுவ கணினியை மீண்டும் துவக்கி மேம்படுத்துதலை முடிக்கவும்."
 
 #. TRANSLATORS: a package needs to restart the session (due to security)
-#: ../client/pk-console.c:662
+#: ../client/pk-console.c:675
 msgid ""
 "Please logout and login to complete the update as important security updates "
 "have been installed."
-msgstr "முக்கியமான பாதுகாப்பு மேம்படுத்தல்களை நிறுவ வெளியேறிவிட்டு மற்றும் மேம்படுத்துதலை முடிக்க உள்நுழையவும்."
+msgstr ""
+"முக்கியமான பாதுகாப்பு மேம்படுத்தல்களை நிறுவ வெளியேறிவிட்டு மற்றும் மேம்படுத்துதலை "
+"முடிக்க உள்நுழையவும்."
 
 #. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:794
+#: ../client/pk-console.c:807
 #, c-format
 msgid "The package %s is already installed"
 msgstr "தொகுப்பு %s ஏற்கனவே நிறுவப்பட்டது"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:802
+#: ../client/pk-console.c:815
 #, c-format
 msgid "The package %s could not be installed: %s"
 msgstr "தொகுப்பு %s நிறுவப்படவில்லை: %s"
 
 #. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
-#: ../client/pk-console.c:828 ../client/pk-console.c:876
-#: ../client/pk-console.c:900 ../client/pk-console.c:948
-#: ../client/pk-console.c:1044 ../client/pk-console.c:1157
-#: ../client/pk-console.c:1218 ../client/pk-tools-common.c:62
+#: ../client/pk-console.c:841 ../client/pk-console.c:889
+#: ../client/pk-console.c:913 ../client/pk-console.c:961
+#: ../client/pk-console.c:1057 ../client/pk-console.c:1170
+#: ../client/pk-console.c:1231 ../client/pk-tools-common.c:62
 #: ../client/pk-tools-common.c:81 ../client/pk-tools-common.c:89
 #, c-format
 msgid "Internal error: %s"
 msgstr "உட்புற பிழை: %s"
 
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:860 ../client/pk-console.c:932
-#: ../client/pk-console.c:1250
+#: ../client/pk-console.c:873 ../client/pk-console.c:945
+#: ../client/pk-console.c:1263
 msgid "Proceed with changes?"
 msgstr "மாற்றங்களுடன் தொடர வேண்டுமா?"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:865 ../client/pk-console.c:937
+#: ../client/pk-console.c:878 ../client/pk-console.c:950
 msgid "The package install was canceled!"
 msgstr "தொகுப்புகளை நிறுவல் ரத்து செய்யப்பட்டது!"
 
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:884 ../client/pk-console.c:1618
+#: ../client/pk-console.c:897 ../client/pk-console.c:1631
 #, c-format
 msgid "This tool could not install the packages: %s"
 msgstr "இந்த கருவி இந்த தொகுப்புகளை நிறுவ முடியவில்லை: %s"
 
 #. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:956
+#: ../client/pk-console.c:969
 #, c-format
 msgid "This tool could not install the files: %s"
 msgstr "இந்த கருவியால் கோப்புகளை நிறுவ முடியவில்லை: %s"
 
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:1012
+#: ../client/pk-console.c:1025
 #, c-format
 msgid "This tool could not remove %s: %s"
 msgstr "இந்த கருவியால் %sஐ நீக்க முடியவில்லை: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:1035 ../client/pk-console.c:1073
-#: ../client/pk-console.c:1102
+#: ../client/pk-console.c:1048 ../client/pk-console.c:1086
+#: ../client/pk-console.c:1115
 #, c-format
 msgid "This tool could not remove the packages: %s"
 msgstr "இந்த கருவி தொகுப்புகளை நீக்க முடியவில்லை: %s"
 
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:1088
+#: ../client/pk-console.c:1101
 msgid "Proceed with additional packages?"
 msgstr "கூடுதல் தொகுப்புகளுடன் தொடரவா?"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:1093
+#: ../client/pk-console.c:1106
 msgid "The package removal was canceled!"
 msgstr "தொகுப்புகளை நீக்குவது ரத்து செய்யப்பட்டது!"
 
 #. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:1134
+#: ../client/pk-console.c:1147
 #, c-format
 msgid "This tool could not download the package %s as it could not be found"
 msgstr "இந்த கருவியால் %s தொகுப்புகளை பதிவிறக்க முடியவில்லை அதை கண்டுபிடிக்கவும் முடியவில்லை"
 
 #. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:1165
+#: ../client/pk-console.c:1178
 #, c-format
 msgid "This tool could not download the packages: %s"
 msgstr "இந்த கருவியால் தொகுப்புகளை பதிவிறக்க முடியவில்லை: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1197 ../client/pk-console.c:1209
-#: ../client/pk-console.c:1264
+#: ../client/pk-console.c:1210 ../client/pk-console.c:1222
+#: ../client/pk-console.c:1277
 #, c-format
 msgid "This tool could not update %s: %s"
 msgstr "மேம்பாடு %sஐ இந்த கருவியால் மேம்படுத்த முடியவில்லை : %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:1255
+#: ../client/pk-console.c:1268
 msgid "The package update was canceled!"
 msgstr "தொகுப்புகளை மேம்படுத்தல் ரத்து செய்யப்பட்டது!"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1288 ../client/pk-console.c:1296
+#: ../client/pk-console.c:1301 ../client/pk-console.c:1309
 #, c-format
 msgid "This tool could not get the requirements for %s: %s"
 msgstr "%sக்கு தேவையானவற்றை இந்த கருவியால் பெற முடியவில்லை: %s"
 
 #. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:1318 ../client/pk-console.c:1326
+#: ../client/pk-console.c:1331 ../client/pk-console.c:1339
 #, c-format
 msgid "This tool could not get the dependencies for %s: %s"
 msgstr "%sகான சார்புகளை இந்தக் கருவியால் பெற முடியவில்லை: %s"
 
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:1348 ../client/pk-console.c:1356
+#: ../client/pk-console.c:1361 ../client/pk-console.c:1369
 #, c-format
 msgid "This tool could not get package details for %s: %s"
 msgstr "%sக்கான தொகுப்பு விவரங்களை இந்தக் கருவியால் பெற முடியாது: %s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1378
+#: ../client/pk-console.c:1391
 #, c-format
 msgid "This tool could not find the files for %s: %s"
 msgstr "%sக்கான கோப்புகளை இந்த கருவியால் கண்டுபிடிக்க முடியாது: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1386
+#: ../client/pk-console.c:1399
 #, c-format
 msgid "This tool could not get the file list for %s: %s"
 msgstr "%sகாக கோப்பு பட்டியலை இந்தக் கருவியால் பெற முடியவில்லை: %s"
 
 #. TRANSLATORS: There was an error getting the list of packages. The filename follows
-#: ../client/pk-console.c:1408
+#: ../client/pk-console.c:1421
 #, c-format
 msgid "File already exists: %s"
 msgstr "கோப்பு ஏற்கனவை வெளியேற்றப்பட்டது: %s"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1413 ../client/pk-console.c:1469
-#: ../client/pk-console.c:1544
+#: ../client/pk-console.c:1426 ../client/pk-console.c:1482
+#: ../client/pk-console.c:1557
 msgid "Getting package list"
 msgstr "தொகுப்புகளின் பட்டியல் பெறப்படுகிறது"
 
 #. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1419 ../client/pk-console.c:1475
-#: ../client/pk-console.c:1550
+#: ../client/pk-console.c:1432 ../client/pk-console.c:1488
+#: ../client/pk-console.c:1563
 #, c-format
 msgid "This tool could not get package list: %s"
 msgstr "இந்த கருவியால் தொகுப்பு பட்டியலை பெற இயலாது: %s"
 
 #. TRANSLATORS: There was an error saving the list
-#: ../client/pk-console.c:1430
+#: ../client/pk-console.c:1443
 #, c-format
 msgid "Failed to save to disk"
 msgstr "வட்டில் சேமிப்பதில் தோல்வி"
 
 #. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1464 ../client/pk-console.c:1539
+#: ../client/pk-console.c:1477 ../client/pk-console.c:1552
 #, c-format
 msgid "File does not exist: %s"
 msgstr "கோப்பு வெளியேற்றப்படவில்லை: %s"
 
 #. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1496
+#: ../client/pk-console.c:1509
 msgid "Packages to add"
 msgstr "சேர்ப்பதற்கான தொகுப்புகள்"
 
 #. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1504
+#: ../client/pk-console.c:1517
 msgid "Packages to remove"
 msgstr "நீக்கவேண்டிய தொகுப்புகள்"
 
 #. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1572
+#: ../client/pk-console.c:1585
 #, c-format
 msgid "No new packages need to be installed"
 msgstr "புதிய தொகுப்புகள் நிறுவப்பட வேண்டியுள்ளது"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1578
+#: ../client/pk-console.c:1591
 msgid "To install"
 msgstr "நிறுவுவதற்கு"
 
 #. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1590
+#: ../client/pk-console.c:1603
 msgid "Searching for package: "
 msgstr "தொகுப்பினை தேடுகிறது: "
 
 #. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1594
+#: ../client/pk-console.c:1607
 msgid "not found."
 msgstr "காணப்படவில்லை."
 
 #. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1605
+#: ../client/pk-console.c:1618
 #, c-format
 msgid "No packages can be found to install"
 msgstr "நிறுவுவதற்கு தொகுப்புகள் எதுவும் காணப்படவில்லை"
 
 #. TRANSLATORS: installing new packages from package list
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
-#: ../client/pk-console.c:1611
+#: ../client/pk-console.c:1624
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:886
 #, c-format
 msgid "Installing packages"
 msgstr "நிறுவப்பட்ட தொகுப்புகள்"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1647
+#: ../client/pk-console.c:1660
 #, c-format
 msgid "This tool could not find the update details for %s: %s"
 msgstr "%sகான விவரங்களை மேம்படுத்த இந்தக் கருவியால் கண்டுபிடிக்க முடியவில்லை: %s"
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1655
+#: ../client/pk-console.c:1668
 #, c-format
 msgid "This tool could not get the update details for %s: %s"
 msgstr "This tool could not get the update details for %s: %s"
 
 #. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
-#: ../client/pk-console.c:1686
+#: ../client/pk-console.c:1699
 msgid "Error:"
 msgstr "பிழை:"
 
 #. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1700
+#: ../client/pk-console.c:1713
 msgid "Package description"
 msgstr "தொகுப்பு விளக்கம்"
 
 #. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
-#: ../client/pk-console.c:1716
+#: ../client/pk-console.c:1729
 msgid "Message:"
 msgstr "செய்தி:"
 
 #. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1744
+#: ../client/pk-console.c:1757
 msgid "Package files"
 msgstr "தொகுப்பு கோப்புகள்"
 
 #. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1752
+#: ../client/pk-console.c:1765
 msgid "No files"
 msgstr "கோப்புகள் இல்லை"
 
 #. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1775
+#: ../client/pk-console.c:1788
 msgid "Repository signature required"
 msgstr "நம்பிக்கையான கையெழுத்து தேவைப்படுகிறது"
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1785
+#: ../client/pk-console.c:1798
 msgid "Do you accept this signature?"
 msgstr "நீங்கள் இந்த கையெமுத்து ஏற்றுக் கொள்கிறீர்களா ?"
 
 #. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1789
+#: ../client/pk-console.c:1802
 msgid "The signature was not accepted."
 msgstr "கையேழுத்து ஏற்றுக் கொள்ளப்படவில்லை."
 
 #. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1823
+#: ../client/pk-console.c:1836
 msgid "End user license agreement required"
 msgstr "இறுதியான பயனரின் உரிம ஒப்பந்தம் தேவைப்படுகிறது"
 
 #. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1830
+#: ../client/pk-console.c:1843
 msgid "Do you agree to this license?"
 msgstr "இந்த உரிமத்தை நீங்கள் ஏற்று கொள்கிறீர்களா?"
 
 #. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1834
+#: ../client/pk-console.c:1847
 msgid "The license was refused."
 msgstr "உரிமம் மறுக்கப்பட்டது."
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1863
+#: ../client/pk-console.c:1876
 msgid "The daemon crashed mid-transaction!"
 msgstr "மத்திய பரிமாற்றத்தின் போது டோமோன் நொறுக்கப்பட்டது!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1916
+#: ../client/pk-console.c:1929
 msgid "PackageKit Console Interface"
 msgstr "PackageKit பணியக முகப்பு"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1918
+#: ../client/pk-console.c:1931
 msgid "Subcommands:"
 msgstr "துணைக்கட்டளைகள்:"
 
 #. TRANSLATORS: command line argument, if we should show debugging information
 #. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:2011 ../client/pk-generate-pack.c:185
+#: ../client/pk-console.c:2024 ../client/pk-generate-pack.c:185
 #: ../client/pk-monitor.c:128
 #: ../contrib/command-not-found/pk-command-not-found.c:616
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:550
@@ -581,147 +593,147 @@ msgid "Show extra debugging information"
 msgstr "கூடுதல் பிழைதிருத்த தகவலைக் காட்டு"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:2014 ../client/pk-monitor.c:130
+#: ../client/pk-console.c:2027 ../client/pk-monitor.c:130
 msgid "Show the program version and exit"
 msgstr "நிகழ்ச்சி பதிப்பு மற்றும் வெளியேறுவதைக் காட்டு"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:2017
+#: ../client/pk-console.c:2030
 msgid "Set the filter, e.g. installed"
 msgstr "வடோப்பினை"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:2020
+#: ../client/pk-console.c:2033
 msgid "Exit without waiting for actions to complete"
 msgstr "செயல் முடிவடை வரை காத்திருக்காமல் வெளியேறு"
 
 #. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:2047
+#: ../client/pk-console.c:2060
 msgid "This tool could not connect to system DBUS."
 msgstr "இந்தக் கருவியால் கணினி DBUSஐ இணைக்க முடியாது."
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:2137
+#: ../client/pk-console.c:2150
 msgid "The filter specified was invalid"
 msgstr "வடிப்பி குறிப்பிடுவது தவறானது"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:2156
+#: ../client/pk-console.c:2169
 msgid "A search type is required, e.g. name"
 msgstr "ஒரு தேடும் வகை தேவைப்படுகிறது, எ.கா. பெயர்"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:2163 ../client/pk-console.c:2172
-#: ../client/pk-console.c:2181 ../client/pk-console.c:2190
+#: ../client/pk-console.c:2176 ../client/pk-console.c:2185
+#: ../client/pk-console.c:2194 ../client/pk-console.c:2203
 msgid "A search term is required"
 msgstr "ஒரு தேடும் சொல் தேவைப்படுகிறது"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:2197
+#: ../client/pk-console.c:2210
 msgid "Invalid search type"
 msgstr "தவறான தேடும் வகை"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:2203
+#: ../client/pk-console.c:2216
 msgid "A package name or filename to install is required"
 msgstr "ஒரு தொகுப்பு பெயர் அல்லது கோப்பு பெயரை நறுவுவதற்கு தேவைப்படுகிறது"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2212
+#: ../client/pk-console.c:2225
 msgid "A type, key_id and package_id are required"
 msgstr "ஒரு வகை, விசை_ஐடி மற்றும் தொகுப்பு_ஐடி தேவைப்படுகிறது"
 
 #. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:2221
+#: ../client/pk-console.c:2234
 msgid "A package name to remove is required"
 msgstr "நீக்குவதற்கு ஒரு தொகுப்பு பெயர் தேவைப்படுகிறது"
 
 #. TRANSLATORS: the user did not specify anything about what to download or where
-#: ../client/pk-console.c:2229
+#: ../client/pk-console.c:2242
 msgid "A destination directory and the package names to download are required"
 msgstr "ஒரு இலக்கு அடைவு மற்றும் தொகுப்பு பெயர்கள் பதிவிறக்க தேவைப்படுகிறது"
 
 #. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:2236
+#: ../client/pk-console.c:2249
 msgid "Directory not found"
 msgstr "அடைவு காணப்படவில்லை"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2244
+#: ../client/pk-console.c:2257
 msgid "A licence identifier (eula-id) is required"
 msgstr "ஒரு உரிமம் எடுத்துகாட்டுபவர் (eula-id) தேவைப்படுகிறது"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2254
+#: ../client/pk-console.c:2267
 msgid "A transaction identifier (tid) is required"
 msgstr "பரிமாற்ற கண்டுபிடிப்பாளர் (tid) தேவைப்படுகிறது"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:2271
+#: ../client/pk-console.c:2284
 msgid "A package name to resolve is required"
 msgstr "தொகுப்பு பெயர் மறுதீர்வுக்கு தேவைப்படுகிறது"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:2280 ../client/pk-console.c:2289
+#: ../client/pk-console.c:2293 ../client/pk-console.c:2302
 msgid "A repository name is required"
 msgstr "நம்பகமான ஒரு பெயர் தேவைப்படுகிறது"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2298
+#: ../client/pk-console.c:2311
 msgid "A repo name, parameter and value are required"
 msgstr "ஒரு ரெபோ பெநர், அளவுரு மற்றும் மதிப்பு தேவைப்படுகிறது"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:2312
+#: ../client/pk-console.c:2325
 msgid "An action, e.g. 'update-system' is required"
 msgstr "செயலுக்கு, எ.கா. 'மேம்படுத்தப்பட்ட கணினி' தேவைப்படுகிறது"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:2319
+#: ../client/pk-console.c:2332
 msgid "A correct role is required"
 msgstr "ஒரு சரியான திருப்பம் தேவைப்படுகிறது"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2326
+#: ../client/pk-console.c:2339
 msgid "Failed to get the time since this action was last completed"
 msgstr "இந்த செயல் கடைசியாக முடிவடையும் வரை நேரத்தை பெற்றிருப்பதில் தோல்வி"
 
 #. TRANSLATORS: The user did not provide a package name
 #. TRANSLATORS: This is when the user fails to supply the package name
-#: ../client/pk-console.c:2336 ../client/pk-console.c:2348
-#: ../client/pk-console.c:2357 ../client/pk-console.c:2375
-#: ../client/pk-console.c:2384 ../client/pk-generate-pack.c:241
+#: ../client/pk-console.c:2349 ../client/pk-console.c:2361
+#: ../client/pk-console.c:2370 ../client/pk-console.c:2388
+#: ../client/pk-console.c:2397 ../client/pk-generate-pack.c:241
 msgid "A package name is required"
 msgstr "ஒரு தொகுப்பு பெயர் தேவைப்படுகிறது"
 
 #. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:2366
+#: ../client/pk-console.c:2379
 msgid "A package provide string is required"
 msgstr "ஒரு தொகுப்பால் வழங்கப்படும் சரம் தேவைப்படுகிறது"
 
 #. TRANSLATORS: The user didn't specify a filename to create as a list
-#: ../client/pk-console.c:2393
+#: ../client/pk-console.c:2406
 msgid "A list file name to create is required"
 msgstr "ஒரு பட்டியல் கோப்பு பெயரை உருவாக்குவது தேவைப்படுகிறது"
 
 #. TRANSLATORS: The user didn't specify a filename to open as a list
-#: ../client/pk-console.c:2403 ../client/pk-console.c:2413
+#: ../client/pk-console.c:2416 ../client/pk-console.c:2426
 msgid "A list file to open is required"
 msgstr "ஒரு பட்டியல் கோப்பினை திறப்பது தேவைப்படுகிறது"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2467
+#: ../client/pk-console.c:2480
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr " '%s' விருப்பம் துணைபுரியவில்லை"
 
 #. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2480
+#: ../client/pk-console.c:2493
 msgid "Incorrect privileges for this operation"
 msgstr "இந்த செயல்பாடுக்கு தவறான முன்னுரிமைகள்"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2483
+#: ../client/pk-console.c:2496
 msgid "Command failed"
 msgstr "கட்டளை தோல்வியுற்றது"
 
commit cdc5f5dca0cdfb37d37ef4559a02fc4bb4bcd181
Author: raven <raven at fedoraproject.org>
Date:   Tue Sep 1 18:51:26 2009 +0000

    Sending translation for Polish

diff --git a/po/pl.po b/po/pl.po
index 8d1d0c2..1d04e58 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -5,8 +5,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: pl\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-08-29 08:34+0000\n"
-"PO-Revision-Date: 2009-08-29 12:10+0200\n"
+"POT-Creation-Date: 2009-09-01 14:44+0000\n"
+"PO-Revision-Date: 2009-09-01 20:51+0200\n"
 "Last-Translator: Piotr DrÄ…g <piotrdrag at gmail.com>\n"
 "Language-Team: Polish <pl at li.org>\n"
 "MIME-Version: 1.0\n"
@@ -30,12 +30,11 @@ msgstr "Czas systemowy"
 msgid "Succeeded"
 msgstr "Powodzenie"
 
-#. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:239 ../client/pk-console.c:468
+#: ../client/pk-console.c:239
 msgid "True"
 msgstr "Prawda"
 
-#: ../client/pk-console.c:239 ../client/pk-console.c:468
+#: ../client/pk-console.c:239
 msgid "False"
 msgstr "Fałsz"
 
@@ -218,56 +217,66 @@ msgstr "Wydano"
 msgid "Updated"
 msgstr "Zaktualizowano"
 
-#: ../client/pk-console.c:539 ../client/pk-console.c:541
+#. TRANSLATORS: if the repo is enabled
+#: ../client/pk-console.c:472
+msgid "Enabled"
+msgstr "WÅ‚Ä…czone"
+
+#. TRANSLATORS: if the repo is disabled
+#: ../client/pk-console.c:475
+msgid "Disabled"
+msgstr "Wyłączone"
+
+#: ../client/pk-console.c:552 ../client/pk-console.c:554
 msgid "Percentage"
 msgstr "Procentowo"
 
-#: ../client/pk-console.c:541
+#: ../client/pk-console.c:554
 msgid "Unknown"
 msgstr "Nieznane"
 
 #. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:583
+#: ../client/pk-console.c:596
 msgid "System restart required by:"
 msgstr "Ponowne uruchomienie systemu jest wymagane przez:"
 
 #. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:586
+#: ../client/pk-console.c:599
 msgid "Session restart required:"
 msgstr "Wymagane jest ponowne uruchomienie sesji:"
 
 #. TRANSLATORS: a package requires the system to be restarted due to a security update
-#: ../client/pk-console.c:589
+#: ../client/pk-console.c:602
 msgid "System restart (security) required by:"
 msgstr "Ponowne uruchomienie systemu jest wymagane przez:"
 
 #. TRANSLATORS: a package requires the session to be restarted due to a security update
-#: ../client/pk-console.c:592
+#: ../client/pk-console.c:605
 msgid "Session restart (security) required:"
 msgstr "Wymagane jest ponowne uruchomienie sesji (z powodu bezpieczeństwa):"
 
 #. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:595
+#: ../client/pk-console.c:608
 msgid "Application restart required by:"
 msgstr "Ponowne uruchomienie programu jest wymagane przez:"
 
 #. TRANSLATORS: a package needs to restart their system
-#: ../client/pk-console.c:650
+#: ../client/pk-console.c:663
 msgid "Please restart the computer to complete the update."
 msgstr "Proszę uruchomić ponownie komputer, aby zakończyć aktualizację."
 
 #. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:653
+#: ../client/pk-console.c:666
 msgid "Please logout and login to complete the update."
 msgstr "Proszę wylogować się i zalogować, aby zakończyć aktualizację."
 
 #. TRANSLATORS: a package needs to restart the application
-#: ../client/pk-console.c:656
+#: ../client/pk-console.c:669
 msgid "Please restart the application as it is being used."
 msgstr "Proszę uruchomić program ponownie, ponieważ jest używany."
 
 #. TRANSLATORS: a package needs to restart their system (due to security)
-#: ../client/pk-console.c:659
+#: ../client/pk-console.c:672
 msgid ""
 "Please restart the computer to complete the update as important security "
 "updates have been installed."
@@ -276,7 +285,7 @@ msgstr ""
 "zainstalowano aktualizacje bezpieczeństwa."
 
 #. TRANSLATORS: a package needs to restart the session (due to security)
-#: ../client/pk-console.c:662
+#: ../client/pk-console.c:675
 msgid ""
 "Please logout and login to complete the update as important security updates "
 "have been installed."
@@ -285,288 +294,288 @@ msgstr ""
 "zainstalowano aktualizacje bezpieczeństwa."
 
 #. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:794
+#: ../client/pk-console.c:807
 #, c-format
 msgid "The package %s is already installed"
 msgstr "Pakiet %s jest już zainstalowany"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:802
+#: ../client/pk-console.c:815
 #, c-format
 msgid "The package %s could not be installed: %s"
 msgstr "Nie można zainstalować pakietu %s: %s"
 
 #. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
-#: ../client/pk-console.c:828 ../client/pk-console.c:876
-#: ../client/pk-console.c:900 ../client/pk-console.c:948
-#: ../client/pk-console.c:1044 ../client/pk-console.c:1157
-#: ../client/pk-console.c:1218 ../client/pk-tools-common.c:62
+#: ../client/pk-console.c:841 ../client/pk-console.c:889
+#: ../client/pk-console.c:913 ../client/pk-console.c:961
+#: ../client/pk-console.c:1057 ../client/pk-console.c:1170
+#: ../client/pk-console.c:1231 ../client/pk-tools-common.c:62
 #: ../client/pk-tools-common.c:81 ../client/pk-tools-common.c:89
 #, c-format
 msgid "Internal error: %s"
 msgstr "Wewnętrzny błąd: %s"
 
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:860 ../client/pk-console.c:932
-#: ../client/pk-console.c:1250
+#: ../client/pk-console.c:873 ../client/pk-console.c:945
+#: ../client/pk-console.c:1263
 msgid "Proceed with changes?"
 msgstr "Kontynuować wprowadzanie zmian?"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:865 ../client/pk-console.c:937
+#: ../client/pk-console.c:878 ../client/pk-console.c:950
 msgid "The package install was canceled!"
 msgstr "Anulowano instalacjÄ™ pakietu!"
 
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:884 ../client/pk-console.c:1618
+#: ../client/pk-console.c:897 ../client/pk-console.c:1631
 #, c-format
 msgid "This tool could not install the packages: %s"
 msgstr "To narzędzie nie może zainstalować pakietów: %s"
 
 #. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:956
+#: ../client/pk-console.c:969
 #, c-format
 msgid "This tool could not install the files: %s"
 msgstr "To narzędzie nie może zainstalować plików: %s"
 
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:1012
+#: ../client/pk-console.c:1025
 #, c-format
 msgid "This tool could not remove %s: %s"
 msgstr "To narzędzie nie może usunąć %s: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:1035 ../client/pk-console.c:1073
-#: ../client/pk-console.c:1102
+#: ../client/pk-console.c:1048 ../client/pk-console.c:1086
+#: ../client/pk-console.c:1115
 #, c-format
 msgid "This tool could not remove the packages: %s"
 msgstr "To narzędzie nie może usunąć pakietów: %s"
 
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:1088
+#: ../client/pk-console.c:1101
 msgid "Proceed with additional packages?"
 msgstr "Kontynuować usuwanie dodatkowych pakietów?"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:1093
+#: ../client/pk-console.c:1106
 msgid "The package removal was canceled!"
 msgstr "Anulowano usunięcie pakietu!"
 
 #. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:1134
+#: ../client/pk-console.c:1147
 #, c-format
 msgid "This tool could not download the package %s as it could not be found"
 msgstr "To narzędzie nie może pobrać pakietu %s, ponieważ nie można go znaleźć"
 
 #. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:1165
+#: ../client/pk-console.c:1178
 #, c-format
 msgid "This tool could not download the packages: %s"
 msgstr "To narzędzie nie może pobrać pakietów: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1197 ../client/pk-console.c:1209
-#: ../client/pk-console.c:1264
+#: ../client/pk-console.c:1210 ../client/pk-console.c:1222
+#: ../client/pk-console.c:1277
 #, c-format
 msgid "This tool could not update %s: %s"
 msgstr "To narzędzie nie może zaktualizować %s: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:1255
+#: ../client/pk-console.c:1268
 msgid "The package update was canceled!"
 msgstr "Anulowano aktualizacjÄ™ pakietu!"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1288 ../client/pk-console.c:1296
+#: ../client/pk-console.c:1301 ../client/pk-console.c:1309
 #, c-format
 msgid "This tool could not get the requirements for %s: %s"
 msgstr "To narzędzie nie może uzyskać wymagań dla %s: %s"
 
 #. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:1318 ../client/pk-console.c:1326
+#: ../client/pk-console.c:1331 ../client/pk-console.c:1339
 #, c-format
 msgid "This tool could not get the dependencies for %s: %s"
 msgstr "To narzędzie nie może uzyskać zależności dla %s: %s"
 
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:1348 ../client/pk-console.c:1356
+#: ../client/pk-console.c:1361 ../client/pk-console.c:1369
 #, c-format
 msgid "This tool could not get package details for %s: %s"
 msgstr "To narzędzie nie może uzyskać szczegółów pakietu %s: %s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1378
+#: ../client/pk-console.c:1391
 #, c-format
 msgid "This tool could not find the files for %s: %s"
 msgstr "To narzędzie nie może znaleźć plików dla %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1386
+#: ../client/pk-console.c:1399
 #, c-format
 msgid "This tool could not get the file list for %s: %s"
 msgstr "To narzędzie nie może uzyskać listy plików dla %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of packages. The filename follows
-#: ../client/pk-console.c:1408
+#: ../client/pk-console.c:1421
 #, c-format
 msgid "File already exists: %s"
 msgstr "Plik już istnieje: %s"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1413 ../client/pk-console.c:1469
-#: ../client/pk-console.c:1544
+#: ../client/pk-console.c:1426 ../client/pk-console.c:1482
+#: ../client/pk-console.c:1557
 msgid "Getting package list"
 msgstr "Pobieranie listy pakietów"
 
 #. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1419 ../client/pk-console.c:1475
-#: ../client/pk-console.c:1550
+#: ../client/pk-console.c:1432 ../client/pk-console.c:1488
+#: ../client/pk-console.c:1563
 #, c-format
 msgid "This tool could not get package list: %s"
 msgstr "To narzędzie nie może pobrać listy pakietów: %s"
 
 #. TRANSLATORS: There was an error saving the list
-#: ../client/pk-console.c:1430
+#: ../client/pk-console.c:1443
 #, c-format
 msgid "Failed to save to disk"
 msgstr "Zapisanie na dysku nie powiodło się"
 
 #. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1464 ../client/pk-console.c:1539
+#: ../client/pk-console.c:1477 ../client/pk-console.c:1552
 #, c-format
 msgid "File does not exist: %s"
 msgstr "Plik nie istnieje: %s"
 
 #. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1496
+#: ../client/pk-console.c:1509
 msgid "Packages to add"
 msgstr "Pakiety do dodania"
 
 #. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1504
+#: ../client/pk-console.c:1517
 msgid "Packages to remove"
 msgstr "Pakiety do usunięcia"
 
 #. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1572
+#: ../client/pk-console.c:1585
 #, c-format
 msgid "No new packages need to be installed"
 msgstr "Nie trzeba instalować nowych pakietów"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1578
+#: ../client/pk-console.c:1591
 msgid "To install"
 msgstr "Do zainstalowania"
 
 #. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1590
+#: ../client/pk-console.c:1603
 msgid "Searching for package: "
 msgstr "Wyszukiwanie pakietu: "
 
 #. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1594
+#: ../client/pk-console.c:1607
 msgid "not found."
 msgstr "nie znaleziono."
 
 #. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1605
+#: ../client/pk-console.c:1618
 #, c-format
 msgid "No packages can be found to install"
 msgstr "Nie można znaleźć pakietów do zainstalowania"
 
 #. TRANSLATORS: installing new packages from package list
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
-#: ../client/pk-console.c:1611
+#: ../client/pk-console.c:1624
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:886
 #, c-format
 msgid "Installing packages"
 msgstr "Instalowanie pakietów"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1647
+#: ../client/pk-console.c:1660
 #, c-format
 msgid "This tool could not find the update details for %s: %s"
 msgstr "To narzędzie nie może znaleźć szczegółów aktualizacji dla %s: %s"
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1655
+#: ../client/pk-console.c:1668
 #, c-format
 msgid "This tool could not get the update details for %s: %s"
 msgstr "To narzędzie nie może uzyskać szczegółów aktualizacji dla %s: %s"
 
 #. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
-#: ../client/pk-console.c:1686
+#: ../client/pk-console.c:1699
 msgid "Error:"
 msgstr "BÅ‚Ä…d:"
 
 #. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1700
+#: ../client/pk-console.c:1713
 msgid "Package description"
 msgstr "Opis pakietu"
 
 #. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
-#: ../client/pk-console.c:1716
+#: ../client/pk-console.c:1729
 msgid "Message:"
 msgstr "Komunikat:"
 
 #. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1744
+#: ../client/pk-console.c:1757
 msgid "Package files"
 msgstr "Pliki pakietu"
 
 #. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1752
+#: ../client/pk-console.c:1765
 msgid "No files"
 msgstr "Brak plików"
 
 #. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1775
+#: ../client/pk-console.c:1788
 msgid "Repository signature required"
 msgstr "Wymagany jest podpis repozytorium"
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1785
+#: ../client/pk-console.c:1798
 msgid "Do you accept this signature?"
 msgstr "Zaakceptować ten podpis?"
 
 #. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1789
+#: ../client/pk-console.c:1802
 msgid "The signature was not accepted."
 msgstr "Podpis nie został zaakceptowany."
 
 #. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1823
+#: ../client/pk-console.c:1836
 msgid "End user license agreement required"
 msgstr "Licencja jest wymagana"
 
 #. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1830
+#: ../client/pk-console.c:1843
 msgid "Do you agree to this license?"
 msgstr "Zaakceptować tę licencję?"
 
 #. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1834
+#: ../client/pk-console.c:1847
 msgid "The license was refused."
 msgstr "Odrzucono licencjÄ™."
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1863
+#: ../client/pk-console.c:1876
 msgid "The daemon crashed mid-transaction!"
 msgstr "Demon zawiesił się w połowie transakcji!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1916
+#: ../client/pk-console.c:1929
 msgid "PackageKit Console Interface"
 msgstr "Interfejs konsoli PackageKit"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1918
+#: ../client/pk-console.c:1931
 msgid "Subcommands:"
 msgstr "Podpolecenia:"
 
 #. TRANSLATORS: command line argument, if we should show debugging information
 #. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:2011 ../client/pk-generate-pack.c:185
+#: ../client/pk-console.c:2024 ../client/pk-generate-pack.c:185
 #: ../client/pk-monitor.c:128
 #: ../contrib/command-not-found/pk-command-not-found.c:616
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:550
@@ -575,148 +584,148 @@ msgid "Show extra debugging information"
 msgstr "Wyświetla dodatkowe informacje o debugowaniu"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:2014 ../client/pk-monitor.c:130
+#: ../client/pk-console.c:2027 ../client/pk-monitor.c:130
 msgid "Show the program version and exit"
 msgstr "Wyświetla wersję programu i wyłącza"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:2017
+#: ../client/pk-console.c:2030
 msgid "Set the filter, e.g. installed"
 msgstr "Ustawia filtr, np. zainstalowane"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:2020
+#: ../client/pk-console.c:2033
 msgid "Exit without waiting for actions to complete"
 msgstr "Wyłącza bez oczekiwania na zakończenie działań"
 
 #. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:2047
+#: ../client/pk-console.c:2060
 msgid "This tool could not connect to system DBUS."
 msgstr "To narzędzie nie może połączyć się z systemowym D-Bus."
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:2137
+#: ../client/pk-console.c:2150
 msgid "The filter specified was invalid"
 msgstr "Podany filtr jest nieprawidłowy"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:2156
+#: ../client/pk-console.c:2169
 msgid "A search type is required, e.g. name"
 msgstr "Wymagany jest typ wyszukiwania, np. nazwa"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:2163 ../client/pk-console.c:2172
-#: ../client/pk-console.c:2181 ../client/pk-console.c:2190
+#: ../client/pk-console.c:2176 ../client/pk-console.c:2185
+#: ../client/pk-console.c:2194 ../client/pk-console.c:2203
 msgid "A search term is required"
 msgstr "Wymagany jest wyszukiwany termin"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:2197
+#: ../client/pk-console.c:2210
 msgid "Invalid search type"
 msgstr "Nieprawidłowy typ wyszukiwania"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:2203
+#: ../client/pk-console.c:2216
 msgid "A package name or filename to install is required"
 msgstr "Wymagana jest nazwa pakietu lub pliku do zainstalowania"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2212
+#: ../client/pk-console.c:2225
 msgid "A type, key_id and package_id are required"
 msgstr "Wymagany jest typ, key_id i package_id"
 
 #. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:2221
+#: ../client/pk-console.c:2234
 msgid "A package name to remove is required"
 msgstr "Wymagana jest nazwa pakietu do usunięcia"
 
 #. TRANSLATORS: the user did not specify anything about what to download or where
-#: ../client/pk-console.c:2229
+#: ../client/pk-console.c:2242
 msgid "A destination directory and the package names to download are required"
 msgstr "Wymagany jest katalog docelowy i nazwy pakietów do pobrania"
 
 #. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:2236
+#: ../client/pk-console.c:2249
 msgid "Directory not found"
 msgstr "Nie znaleziono katalogu"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2244
+#: ../client/pk-console.c:2257
 msgid "A licence identifier (eula-id) is required"
 msgstr "Wymagany jest identyfikator licencji (eula-id)"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2254
+#: ../client/pk-console.c:2267
 msgid "A transaction identifier (tid) is required"
 msgstr "Wymagany jest identyfikator transakcji (tid)"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:2271
+#: ../client/pk-console.c:2284
 msgid "A package name to resolve is required"
 msgstr "Wymagana jest nazwa pakietu do rozwiÄ…zania"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:2280 ../client/pk-console.c:2289
+#: ../client/pk-console.c:2293 ../client/pk-console.c:2302
 msgid "A repository name is required"
 msgstr "Wymagana jest nazwa repozytorium"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2298
+#: ../client/pk-console.c:2311
 msgid "A repo name, parameter and value are required"
 msgstr "Wymagana jest nazwa, parametr i wartość repozytorium"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:2312
+#: ../client/pk-console.c:2325
 msgid "An action, e.g. 'update-system' is required"
 msgstr "Wymagane jest działanie, np. \"update-system\""
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:2319
+#: ../client/pk-console.c:2332
 msgid "A correct role is required"
 msgstr "Wymagana jest bieżąca rola"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2326
+#: ../client/pk-console.c:2339
 msgid "Failed to get the time since this action was last completed"
 msgstr ""
 "Uzyskanie czasu od ostatniego zakończenia tego działania nie powiodło się"
 
 #. TRANSLATORS: The user did not provide a package name
 #. TRANSLATORS: This is when the user fails to supply the package name
-#: ../client/pk-console.c:2336 ../client/pk-console.c:2348
-#: ../client/pk-console.c:2357 ../client/pk-console.c:2375
-#: ../client/pk-console.c:2384 ../client/pk-generate-pack.c:241
+#: ../client/pk-console.c:2349 ../client/pk-console.c:2361
+#: ../client/pk-console.c:2370 ../client/pk-console.c:2388
+#: ../client/pk-console.c:2397 ../client/pk-generate-pack.c:241
 msgid "A package name is required"
 msgstr "Wymagana jest nazwa pakietu"
 
 #. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:2366
+#: ../client/pk-console.c:2379
 msgid "A package provide string is required"
 msgstr "Wymagany jest łańcuch dostarczania pakietu"
 
 #. TRANSLATORS: The user didn't specify a filename to create as a list
-#: ../client/pk-console.c:2393
+#: ../client/pk-console.c:2406
 msgid "A list file name to create is required"
 msgstr "Wymagana jest lista nazw plików do utworzenia"
 
 #. TRANSLATORS: The user didn't specify a filename to open as a list
-#: ../client/pk-console.c:2403 ../client/pk-console.c:2413
+#: ../client/pk-console.c:2416 ../client/pk-console.c:2426
 msgid "A list file to open is required"
 msgstr "Wymagana jest lista plików do otwarcia"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2467
+#: ../client/pk-console.c:2480
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "Opcja \"%s\" nie jest obsługiwana"
 
 #. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2480
+#: ../client/pk-console.c:2493
 msgid "Incorrect privileges for this operation"
 msgstr "Niepoprawne uprawnienia dla tego działania"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2483
+#: ../client/pk-console.c:2496
 msgid "Command failed"
 msgstr "Polecenie nie powiodło się"
 
commit ebf021aa181489902d9157c6ccaf416d87ff1298
Author: Richard Hughes <richard at hughsie.com>
Date:   Tue Sep 1 19:02:59 2009 +0100

    debuginfo-install: make the number on the progressbar track the actual percentage

diff --git a/contrib/debuginfo-install/pk-debuginfo-install.c b/contrib/debuginfo-install/pk-debuginfo-install.c
index e0aa17d..f0c72de 100644
--- a/contrib/debuginfo-install/pk-debuginfo-install.c
+++ b/contrib/debuginfo-install/pk-debuginfo-install.c
@@ -434,7 +434,6 @@ pk_debuginfo_install_progress_changed_cb (PkClient *client, guint percentage, gu
 	}
 
 	pk_progress_bar_set_percentage (priv->progress_bar, percentage);
-	pk_progress_bar_set_value (priv->progress_bar, subpercentage);
 out:
 	return;
 }
diff --git a/contrib/debuginfo-install/pk-progress-bar.c b/contrib/debuginfo-install/pk-progress-bar.c
index bf323dc..b4e4098 100644
--- a/contrib/debuginfo-install/pk-progress-bar.c
+++ b/contrib/debuginfo-install/pk-progress-bar.c
@@ -1,6 +1,6 @@
 /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
  *
- * Copyright (C) 2008 Richard Hughes <richard at hughsie.com>
+ * Copyright (C) 2008-2009 Richard Hughes <richard at hughsie.com>
  *
  * Licensed under the GNU General Public License Version 2
  *
@@ -36,8 +36,7 @@ typedef struct {
 struct PkProgressBarPrivate
 {
 	guint			 size;
-	guint			 percentage;
-	guint			 value;
+	gint			 percentage;
 	guint			 padding;
 	guint			 timer_id;
 	PkProgressBarPulseState	 pulse_state;
@@ -76,22 +75,26 @@ pk_progress_bar_set_size (PkProgressBar *self, guint size)
  * pk_progress_bar_draw:
  **/
 static gboolean
-pk_progress_bar_draw (PkProgressBar *self, guint value)
+pk_progress_bar_draw (PkProgressBar *self, gint percentage)
 {
 	guint section;
 	guint i;
 
+	/* no value yet */
+	if (percentage == G_MININT)
+		return FALSE;
+
 	/* restore cursor */
 	g_print ("%c8", 0x1B);
 
-	section = (guint) ((gfloat) self->priv->size / (gfloat) 100.0 * (gfloat) value);
+	section = (guint) ((gfloat) self->priv->size / (gfloat) 100.0 * (gfloat) percentage);
 	g_print ("[");
 	for (i=0; i<section; i++)
 		g_print ("=");
 	for (i=0; i<self->priv->size - section; i++)
 		g_print (" ");
 	g_print ("] ");
-	if (self->priv->percentage != PK_PROGRESS_BAR_PERCENTAGE_INVALID)
+	if (self->priv->percentage >= 0 && self->priv->percentage != PK_PROGRESS_BAR_PERCENTAGE_INVALID)
 		g_print ("(%i%%)  ", self->priv->percentage);
 	else
 		g_print ("        ");
@@ -99,27 +102,6 @@ pk_progress_bar_draw (PkProgressBar *self, guint value)
 }
 
 /**
- * pk_progress_bar_set_percentage:
- **/
-gboolean
-pk_progress_bar_set_percentage (PkProgressBar *self, guint percentage)
-{
-	g_return_val_if_fail (PK_IS_PROGRESS_BAR (self), FALSE);
-	g_return_val_if_fail (percentage <= PK_PROGRESS_BAR_PERCENTAGE_INVALID, FALSE);
-
-	/* check for old value */
-	if (percentage == self->priv->percentage) {
-		egg_debug ("skipping as the same");
-		goto out;
-	}
-
-	self->priv->percentage = percentage;
-	pk_progress_bar_draw (self, self->priv->value);
-out:
-	return TRUE;
-}
-
-/**
  * pk_progress_bar_pulse_bar:
  **/
 static gboolean
@@ -149,7 +131,7 @@ pk_progress_bar_pulse_bar (PkProgressBar *self)
 	for (i=0; i<(gint) (self->priv->size - self->priv->pulse_state.position - 1); i++)
 		g_print (" ");
 	g_print ("] ");
-	if (self->priv->percentage != PK_PROGRESS_BAR_PERCENTAGE_INVALID)
+	if (self->priv->percentage >= 0 && self->priv->percentage != PK_PROGRESS_BAR_PERCENTAGE_INVALID)
 		g_print ("(%i%%)  ", self->priv->percentage);
 	else
 		g_print ("        ");
@@ -174,25 +156,25 @@ pk_progress_bar_draw_pulse_bar (PkProgressBar *self)
 }
 
 /**
- * pk_progress_bar_set_value:
+ * pk_progress_bar_set_percentage:
  **/
 gboolean
-pk_progress_bar_set_value (PkProgressBar *self, guint value)
+pk_progress_bar_set_percentage (PkProgressBar *self, gint percentage)
 {
 	g_return_val_if_fail (PK_IS_PROGRESS_BAR (self), FALSE);
-	g_return_val_if_fail (value <= PK_PROGRESS_BAR_PERCENTAGE_INVALID, FALSE);
+	g_return_val_if_fail (percentage <= PK_PROGRESS_BAR_PERCENTAGE_INVALID, FALSE);
 
-	/* check for old value */
-	if (value == self->priv->value) {
+	/* check for old percentage */
+	if (percentage == self->priv->percentage) {
 		egg_debug ("skipping as the same");
 		goto out;
 	}
 
 	/* save */
-	self->priv->value = value;
+	self->priv->percentage = percentage;
 
 	/* either pulse or display */
-	if (value == PK_PROGRESS_BAR_PERCENTAGE_INVALID) {
+	if (percentage < 0 || percentage > 100) {
 		pk_progress_bar_draw (self, 0);
 		pk_progress_bar_draw_pulse_bar (self);
 	} else {
@@ -200,7 +182,7 @@ pk_progress_bar_set_value (PkProgressBar *self, guint value)
 			g_source_remove (self->priv->timer_id);
 			self->priv->timer_id = 0;
 		}
-		pk_progress_bar_draw (self, value);
+		pk_progress_bar_draw (self, percentage);
 	}
 out:
 	return TRUE;
@@ -252,13 +234,10 @@ pk_progress_bar_start (PkProgressBar *self, const gchar *text)
 	g_return_val_if_fail (PK_IS_PROGRESS_BAR (self), FALSE);
 
 	/* finish old value */
-	if (self->priv->value != 0 && self->priv->value != 100) {
-		pk_progress_bar_draw (self, self->priv->value);
-	}
-
-	/* new item */
-	if (self->priv->value != 0)
+	if (self->priv->percentage != G_MININT) {
+		pk_progress_bar_draw (self, 100);
 		g_print ("\n");
+	}
 
 	/* make these all the same length */
 	text_pad = pk_strpad (text, self->priv->padding);
@@ -268,8 +247,8 @@ pk_progress_bar_start (PkProgressBar *self, const gchar *text)
 	g_print ("%c7", 0x1B);
 
 	/* reset */
-	self->priv->percentage = 0;
-	self->priv->value = 0;
+	if (self->priv->percentage == G_MININT)
+		self->priv->percentage = 0;
 	pk_progress_bar_draw (self, 0);
 
 	g_free (text_pad);
@@ -284,8 +263,7 @@ pk_progress_bar_end (PkProgressBar *self)
 {
 	g_return_val_if_fail (PK_IS_PROGRESS_BAR (self), FALSE);
 
-	self->priv->value = 100;
-	self->priv->percentage = 100;
+	self->priv->percentage = G_MININT;
 	pk_progress_bar_draw (self, 100);
 	g_print ("\n");
 
@@ -328,8 +306,7 @@ pk_progress_bar_init (PkProgressBar *self)
 	self->priv = PK_PROGRESS_BAR_GET_PRIVATE (self);
 
 	self->priv->size = 10;
-	self->priv->percentage = 0;
-	self->priv->value = 0;
+	self->priv->percentage = G_MININT;
 	self->priv->padding = 0;
 	self->priv->timer_id = 0;
 }
diff --git a/contrib/debuginfo-install/pk-progress-bar.h b/contrib/debuginfo-install/pk-progress-bar.h
index 4670a0a..6ea14b0 100644
--- a/contrib/debuginfo-install/pk-progress-bar.h
+++ b/contrib/debuginfo-install/pk-progress-bar.h
@@ -54,9 +54,7 @@ gboolean	 pk_progress_bar_set_size		(PkProgressBar	*progress_bar,
 gboolean	 pk_progress_bar_set_padding		(PkProgressBar	*progress_bar,
 							 guint		 padding);
 gboolean	 pk_progress_bar_set_percentage		(PkProgressBar	*progress_bar,
-							 guint		 percentage);
-gboolean	 pk_progress_bar_set_value		(PkProgressBar	*progress_bar,
-							 guint		 value);
+							 gint		 percentage);
 gboolean	 pk_progress_bar_start			(PkProgressBar	*progress_bar,
 							 const gchar	*text);
 gboolean	 pk_progress_bar_end			(PkProgressBar	*progress_bar);
commit d63767f74811837b8aeb0b587058c15fc72d2e89
Author: igor <igor at fedoraproject.org>
Date:   Tue Sep 1 17:55:55 2009 +0000

    Sending translation for Brazilian Portuguese

diff --git a/po/pt_BR.po b/po/pt_BR.po
index 65dedb3..3f1cc56 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -8,8 +8,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-08-30 14:50+0000\n"
-"PO-Revision-Date: 2009-08-30 16:55-0300\n"
+"POT-Creation-Date: 2009-09-01 14:44+0000\n"
+"PO-Revision-Date: 2009-09-01 14:54-0300\n"
 "Last-Translator: Igor Pires Soares <igor at projetofedora.org>\n"
 "Language-Team: Brazilian Portuguese <fedora-trans-pt_br at redhat.com>\n"
 "MIME-Version: 1.0\n"
@@ -34,14 +34,11 @@ msgstr "Horário do sistema"
 msgid "Succeeded"
 msgstr "Concluído"
 
-#. TRANSLATORS: if the repo is enabled
 #: ../client/pk-console.c:239
-#: ../client/pk-console.c:468
 msgid "True"
 msgstr "Verdadeiro"
 
 #: ../client/pk-console.c:239
-#: ../client/pk-console.c:468
 msgid "False"
 msgstr "Falso"
 
@@ -227,85 +224,95 @@ msgstr "Emissão"
 msgid "Updated"
 msgstr "Atualizado em"
 
-#: ../client/pk-console.c:539
-#: ../client/pk-console.c:541
+#. TRANSLATORS: if the repo is enabled
+#: ../client/pk-console.c:472
+msgid "Enabled"
+msgstr "Habilitado"
+
+#. TRANSLATORS: if the repo is disabled
+#: ../client/pk-console.c:475
+msgid "Disabled"
+msgstr "Desabilitado"
+
+#: ../client/pk-console.c:552
+#: ../client/pk-console.c:554
 msgid "Percentage"
 msgstr "Porcentagem"
 
-#: ../client/pk-console.c:541
+#: ../client/pk-console.c:554
 msgid "Unknown"
 msgstr "Desconhecido"
 
 #. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:583
+#: ../client/pk-console.c:596
 msgid "System restart required by:"
 msgstr "O reinício do sistema é requerido por:"
 
 #. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:586
+#: ../client/pk-console.c:599
 msgid "Session restart required:"
 msgstr "É necessário reiniciar a sessão:"
 
 #. TRANSLATORS: a package requires the system to be restarted due to a security update
-#: ../client/pk-console.c:589
+#: ../client/pk-console.c:602
 msgid "System restart (security) required by:"
 msgstr "O reinício do sistema (por segurança) é requerido por:"
 
 #. TRANSLATORS: a package requires the session to be restarted due to a security update
-#: ../client/pk-console.c:592
+#: ../client/pk-console.c:605
 msgid "Session restart (security) required:"
 msgstr "É necessário reiniciar a sessão (por segurança):"
 
 #. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:595
+#: ../client/pk-console.c:608
 msgid "Application restart required by:"
 msgstr "O reinício do aplicativo é requerido por:"
 
 #. TRANSLATORS: a package needs to restart their system
-#: ../client/pk-console.c:650
+#: ../client/pk-console.c:663
 msgid "Please restart the computer to complete the update."
 msgstr "Por favor, reinicie o computador para completar a atualização."
 
 #. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:653
+#: ../client/pk-console.c:666
 msgid "Please logout and login to complete the update."
 msgstr "Por favor, encerre a sessão e inicie-a novamente para completar a atualização."
 
 #. TRANSLATORS: a package needs to restart the application
-#: ../client/pk-console.c:656
+#: ../client/pk-console.c:669
 msgid "Please restart the application as it is being used."
 msgstr "Por favor, reinicie o aplicativo que está sendo usado."
 
 #. TRANSLATORS: a package needs to restart their system (due to security)
-#: ../client/pk-console.c:659
+#: ../client/pk-console.c:672
 msgid "Please restart the computer to complete the update as important security updates have been installed."
 msgstr "Por favor, reinicie o computador para completar a atualização pois importantes atualizações de segurança foram instaladas."
 
 #. TRANSLATORS: a package needs to restart the session (due to security)
-#: ../client/pk-console.c:662
+#: ../client/pk-console.c:675
 msgid "Please logout and login to complete the update as important security updates have been installed."
 msgstr "Por favor, encerre a sessão e inicie-a novamente para completar a atualização pois importantes atualizações de segurança foram instaladas."
 
 #. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:794
+#: ../client/pk-console.c:807
 #, c-format
 msgid "The package %s is already installed"
 msgstr "O pacote %s já está instalado"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:802
+#: ../client/pk-console.c:815
 #, c-format
 msgid "The package %s could not be installed: %s"
 msgstr "O pacote %s não pôde ser instalado: %s"
 
 #. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
-#: ../client/pk-console.c:828
-#: ../client/pk-console.c:876
-#: ../client/pk-console.c:900
-#: ../client/pk-console.c:948
-#: ../client/pk-console.c:1044
-#: ../client/pk-console.c:1157
-#: ../client/pk-console.c:1218
+#: ../client/pk-console.c:841
+#: ../client/pk-console.c:889
+#: ../client/pk-console.c:913
+#: ../client/pk-console.c:961
+#: ../client/pk-console.c:1057
+#: ../client/pk-console.c:1170
+#: ../client/pk-console.c:1231
 #: ../client/pk-tools-common.c:62
 #: ../client/pk-tools-common.c:81
 #: ../client/pk-tools-common.c:89
@@ -314,277 +321,277 @@ msgid "Internal error: %s"
 msgstr "Erro interno: %s"
 
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:860
-#: ../client/pk-console.c:932
-#: ../client/pk-console.c:1250
+#: ../client/pk-console.c:873
+#: ../client/pk-console.c:945
+#: ../client/pk-console.c:1263
 msgid "Proceed with changes?"
 msgstr "Continuar com as alterações?"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:865
-#: ../client/pk-console.c:937
+#: ../client/pk-console.c:878
+#: ../client/pk-console.c:950
 msgid "The package install was canceled!"
 msgstr "A instalação do pacote foi cancelada!"
 
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:884
-#: ../client/pk-console.c:1618
+#: ../client/pk-console.c:897
+#: ../client/pk-console.c:1631
 #, c-format
 msgid "This tool could not install the packages: %s"
 msgstr "Esta ferramenta não pôde instalar os pacotes: %s"
 
 #. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:956
+#: ../client/pk-console.c:969
 #, c-format
 msgid "This tool could not install the files: %s"
 msgstr "Esta ferramenta não pôde instalar os arquivos: %s"
 
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:1012
+#: ../client/pk-console.c:1025
 #, c-format
 msgid "This tool could not remove %s: %s"
 msgstr "Esta ferramenta não pôde remover %s: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:1035
-#: ../client/pk-console.c:1073
-#: ../client/pk-console.c:1102
+#: ../client/pk-console.c:1048
+#: ../client/pk-console.c:1086
+#: ../client/pk-console.c:1115
 #, c-format
 msgid "This tool could not remove the packages: %s"
 msgstr "Esta ferramente não pôde remover os pacotes: %s"
 
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:1088
+#: ../client/pk-console.c:1101
 msgid "Proceed with additional packages?"
 msgstr "Continuar com a remoção dos pacotes adicionais?"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:1093
+#: ../client/pk-console.c:1106
 msgid "The package removal was canceled!"
 msgstr "A remoção do pacote foi cancelada!"
 
 #. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:1134
+#: ../client/pk-console.c:1147
 #, c-format
 msgid "This tool could not download the package %s as it could not be found"
 msgstr "Esta ferramenta não pôde baixar o pacote %s, pois ele não foi localizado"
 
 #. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:1165
+#: ../client/pk-console.c:1178
 #, c-format
 msgid "This tool could not download the packages: %s"
 msgstr "Esta ferramenta não pôde baixar os pacotes: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1197
-#: ../client/pk-console.c:1209
-#: ../client/pk-console.c:1264
+#: ../client/pk-console.c:1210
+#: ../client/pk-console.c:1222
+#: ../client/pk-console.c:1277
 #, c-format
 msgid "This tool could not update %s: %s"
 msgstr "Esta ferramenta não pôde atualizar %s: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:1255
+#: ../client/pk-console.c:1268
 msgid "The package update was canceled!"
 msgstr "A atualização do pacote foi cancelada!"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1288
-#: ../client/pk-console.c:1296
+#: ../client/pk-console.c:1301
+#: ../client/pk-console.c:1309
 #, c-format
 msgid "This tool could not get the requirements for %s: %s"
 msgstr "Esta ferramenta não pôde obter os requerimentos para %s: %s"
 
 #. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:1318
-#: ../client/pk-console.c:1326
+#: ../client/pk-console.c:1331
+#: ../client/pk-console.c:1339
 #, c-format
 msgid "This tool could not get the dependencies for %s: %s"
 msgstr "Esta ferramenta não pôde obter as dependências para %s: %s"
 
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:1348
-#: ../client/pk-console.c:1356
+#: ../client/pk-console.c:1361
+#: ../client/pk-console.c:1369
 #, c-format
 msgid "This tool could not get package details for %s: %s"
 msgstr "Esta ferramenta não pôde obter os detalhes do pacote para %s: %s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1378
+#: ../client/pk-console.c:1391
 #, c-format
 msgid "This tool could not find the files for %s: %s"
 msgstr "Esta ferramenta não pôde localizar os arquivos para %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1386
+#: ../client/pk-console.c:1399
 #, c-format
 msgid "This tool could not get the file list for %s: %s"
 msgstr "Esta ferramenta não pôde obter a lista de arquivos para %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of packages. The filename follows
-#: ../client/pk-console.c:1408
+#: ../client/pk-console.c:1421
 #, c-format
 msgid "File already exists: %s"
 msgstr "O arquivo já existe: %s"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1413
-#: ../client/pk-console.c:1469
-#: ../client/pk-console.c:1544
+#: ../client/pk-console.c:1426
+#: ../client/pk-console.c:1482
+#: ../client/pk-console.c:1557
 msgid "Getting package list"
 msgstr "Obtendo lista de pacotes"
 
 #. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1419
-#: ../client/pk-console.c:1475
-#: ../client/pk-console.c:1550
+#: ../client/pk-console.c:1432
+#: ../client/pk-console.c:1488
+#: ../client/pk-console.c:1563
 #, c-format
 msgid "This tool could not get package list: %s"
 msgstr "Esta ferramente não pôde obter a lista de pacotes: %s"
 
 #. TRANSLATORS: There was an error saving the list
-#: ../client/pk-console.c:1430
+#: ../client/pk-console.c:1443
 #, c-format
 msgid "Failed to save to disk"
 msgstr "Falha ao salvar no disco"
 
 #. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1464
-#: ../client/pk-console.c:1539
+#: ../client/pk-console.c:1477
+#: ../client/pk-console.c:1552
 #, c-format
 msgid "File does not exist: %s"
 msgstr "O arquivo não existe: %s"
 
 #. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1496
+#: ../client/pk-console.c:1509
 msgid "Packages to add"
 msgstr "Pacotes a serem adicionados"
 
 #. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1504
+#: ../client/pk-console.c:1517
 msgid "Packages to remove"
 msgstr "Pacotes a serem removidos"
 
 #. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1572
+#: ../client/pk-console.c:1585
 #, c-format
 msgid "No new packages need to be installed"
 msgstr "Nenhum pacote novo precisa ser instalado"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1578
+#: ../client/pk-console.c:1591
 msgid "To install"
 msgstr "Instalando"
 
 #. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1590
+#: ../client/pk-console.c:1603
 msgid "Searching for package: "
 msgstr "Pesquisando pelo pacote:"
 
 #. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1594
+#: ../client/pk-console.c:1607
 msgid "not found."
 msgstr "não encontrado."
 
 #. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1605
+#: ../client/pk-console.c:1618
 #, c-format
 msgid "No packages can be found to install"
 msgstr "Nenhum pacote pôde ser localizado para instalação"
 
 #. TRANSLATORS: installing new packages from package list
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
-#: ../client/pk-console.c:1611
+#: ../client/pk-console.c:1624
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:886
 #, c-format
 msgid "Installing packages"
 msgstr "Instalando pacotes"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1647
+#: ../client/pk-console.c:1660
 #, c-format
 msgid "This tool could not find the update details for %s: %s"
 msgstr "Esta ferramenta não pôde localizar os detalhes de atualização para %s: %s"
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1655
+#: ../client/pk-console.c:1668
 #, c-format
 msgid "This tool could not get the update details for %s: %s"
 msgstr "Esta ferramenta não pôde obter os detalhes de atualização para %s: %s"
 
 #. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
-#: ../client/pk-console.c:1686
+#: ../client/pk-console.c:1699
 msgid "Error:"
 msgstr "Erro:"
 
 #. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1700
+#: ../client/pk-console.c:1713
 msgid "Package description"
 msgstr "Descrição do pacote"
 
 #. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
-#: ../client/pk-console.c:1716
+#: ../client/pk-console.c:1729
 msgid "Message:"
 msgstr "Mensagem:"
 
 #. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1744
+#: ../client/pk-console.c:1757
 msgid "Package files"
 msgstr "Arquivos do pacote"
 
 #. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1752
+#: ../client/pk-console.c:1765
 msgid "No files"
 msgstr "Nenhum arquivo"
 
 #. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1775
+#: ../client/pk-console.c:1788
 msgid "Repository signature required"
 msgstr "A assinatura do repositório é necessária"
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1785
+#: ../client/pk-console.c:1798
 msgid "Do you accept this signature?"
 msgstr "Você aceita essa assinatura?"
 
 #. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1789
+#: ../client/pk-console.c:1802
 msgid "The signature was not accepted."
 msgstr "A assinatura não foi aceita."
 
 #. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1823
+#: ../client/pk-console.c:1836
 msgid "End user license agreement required"
 msgstr "É necessário um contrato de licença para o usuário final"
 
 #. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1830
+#: ../client/pk-console.c:1843
 msgid "Do you agree to this license?"
 msgstr "Você concorda com a licença?"
 
 #. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1834
+#: ../client/pk-console.c:1847
 msgid "The license was refused."
 msgstr "A licença foi recusada."
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1863
+#: ../client/pk-console.c:1876
 msgid "The daemon crashed mid-transaction!"
 msgstr "O daemon travou no meio da transação!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1916
+#: ../client/pk-console.c:1929
 msgid "PackageKit Console Interface"
 msgstr "Interface em Console do PackageKit"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1918
+#: ../client/pk-console.c:1931
 msgid "Subcommands:"
 msgstr "Subcomandos:"
 
 #. TRANSLATORS: command line argument, if we should show debugging information
 #. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:2011
+#: ../client/pk-console.c:2024
 #: ../client/pk-generate-pack.c:185
 #: ../client/pk-monitor.c:128
 #: ../contrib/command-not-found/pk-command-not-found.c:616
@@ -595,155 +602,155 @@ msgid "Show extra debugging information"
 msgstr "Mostrar informações extras de depuração"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:2014
+#: ../client/pk-console.c:2027
 #: ../client/pk-monitor.c:130
 msgid "Show the program version and exit"
 msgstr "Mostrar a versão do programa e sair"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:2017
+#: ../client/pk-console.c:2030
 msgid "Set the filter, e.g. installed"
 msgstr "Definir o filtro, p. ex.: instalados"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:2020
+#: ../client/pk-console.c:2033
 msgid "Exit without waiting for actions to complete"
 msgstr "Sair sem esperar pelo término das ações"
 
 #. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:2047
+#: ../client/pk-console.c:2060
 msgid "This tool could not connect to system DBUS."
 msgstr "Esta ferramenta não pôde conectar ao DBUS do sistema."
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:2137
+#: ../client/pk-console.c:2150
 msgid "The filter specified was invalid"
 msgstr "O filtro especificado era inválido"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:2156
+#: ../client/pk-console.c:2169
 msgid "A search type is required, e.g. name"
 msgstr "Um tipo de pesquisa é requerido, p. ex. nome"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:2163
-#: ../client/pk-console.c:2172
-#: ../client/pk-console.c:2181
-#: ../client/pk-console.c:2190
+#: ../client/pk-console.c:2176
+#: ../client/pk-console.c:2185
+#: ../client/pk-console.c:2194
+#: ../client/pk-console.c:2203
 msgid "A search term is required"
 msgstr "Um termo de pesquisa é requerido"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:2197
+#: ../client/pk-console.c:2210
 msgid "Invalid search type"
 msgstr "Tipo de pesquisa inválido"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:2203
+#: ../client/pk-console.c:2216
 msgid "A package name or filename to install is required"
 msgstr "O nome do pacote ou arquivo é requerido"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2212
+#: ../client/pk-console.c:2225
 msgid "A type, key_id and package_id are required"
 msgstr "Um tipo, key_id e package_id são requeridos"
 
 #. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:2221
+#: ../client/pk-console.c:2234
 msgid "A package name to remove is required"
 msgstr "O nome do pacote para remoção é requerido"
 
 #. TRANSLATORS: the user did not specify anything about what to download or where
-#: ../client/pk-console.c:2229
+#: ../client/pk-console.c:2242
 msgid "A destination directory and the package names to download are required"
 msgstr "O diretório de destino e os os nomes dos pacotes a serem baixados são requeridos"
 
 #. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:2236
+#: ../client/pk-console.c:2249
 msgid "Directory not found"
 msgstr "Diretório não encontrado"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2244
+#: ../client/pk-console.c:2257
 msgid "A licence identifier (eula-id) is required"
 msgstr "Um identificador de licença (eula-id) é requerido"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2254
+#: ../client/pk-console.c:2267
 msgid "A transaction identifier (tid) is required"
 msgstr "Um identificador de transação (tid) é requerido"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:2271
+#: ../client/pk-console.c:2284
 msgid "A package name to resolve is required"
 msgstr "O nome de pacote a ser analisado é requerido"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:2280
-#: ../client/pk-console.c:2289
+#: ../client/pk-console.c:2293
+#: ../client/pk-console.c:2302
 msgid "A repository name is required"
 msgstr "O nome do repositório é requerido"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2298
+#: ../client/pk-console.c:2311
 msgid "A repo name, parameter and value are required"
 msgstr "Um nome de repositório, parâmetro e um valor são requeridos"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:2312
+#: ../client/pk-console.c:2325
 msgid "An action, e.g. 'update-system' is required"
 msgstr "Uma ação, p. ex. \"update-system\" é requerida"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:2319
+#: ../client/pk-console.c:2332
 msgid "A correct role is required"
 msgstr "Um modo correto é requerido"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2326
+#: ../client/pk-console.c:2339
 msgid "Failed to get the time since this action was last completed"
 msgstr "Falha ao obter o tempo em que essa ação foi completada pela última vez"
 
 #. TRANSLATORS: The user did not provide a package name
 #. TRANSLATORS: This is when the user fails to supply the package name
-#: ../client/pk-console.c:2336
-#: ../client/pk-console.c:2348
-#: ../client/pk-console.c:2357
-#: ../client/pk-console.c:2375
-#: ../client/pk-console.c:2384
+#: ../client/pk-console.c:2349
+#: ../client/pk-console.c:2361
+#: ../client/pk-console.c:2370
+#: ../client/pk-console.c:2388
+#: ../client/pk-console.c:2397
 #: ../client/pk-generate-pack.c:241
 msgid "A package name is required"
 msgstr "O nome do pacote é requerido"
 
 #. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:2366
+#: ../client/pk-console.c:2379
 msgid "A package provide string is required"
 msgstr "É necessário especificar o que o pacote fornece"
 
 #. TRANSLATORS: The user didn't specify a filename to create as a list
-#: ../client/pk-console.c:2393
+#: ../client/pk-console.c:2406
 msgid "A list file name to create is required"
 msgstr "O nome de arquivo da lista a ser criada é requerido"
 
 #. TRANSLATORS: The user didn't specify a filename to open as a list
-#: ../client/pk-console.c:2403
-#: ../client/pk-console.c:2413
+#: ../client/pk-console.c:2416
+#: ../client/pk-console.c:2426
 msgid "A list file to open is required"
 msgstr "Uma lista de arquivos a serem abertos é requerida"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2467
+#: ../client/pk-console.c:2480
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "A opção \"%s\" não é suportada"
 
 #. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2480
+#: ../client/pk-console.c:2493
 msgid "Incorrect privileges for this operation"
 msgstr "Privilégios incorretos para esta operação"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2483
+#: ../client/pk-console.c:2496
 msgid "Command failed"
 msgstr "O comando falhou"
 
commit a3c262d8c8457614a22336ae6f349281affef808
Author: Daniel Nicoletti <dantti85-pk at yahoo.com.br>
Date:   Tue Sep 1 14:39:13 2009 -0300

    packagekit-qt: added the need untrusted exit enum

diff --git a/lib/packagekit-qt/src/transaction.h b/lib/packagekit-qt/src/transaction.h
index ce2bd79..81fa781 100644
--- a/lib/packagekit-qt/src/transaction.h
+++ b/lib/packagekit-qt/src/transaction.h
@@ -251,6 +251,7 @@ public:
 		ExitEulaRequired,
 		ExitKilled, /* when we forced the cancel, but had to sigkill */
 		ExitMediaChangeRequired,
+		ExitNeedUntrusted,
 		UnknownExitStatus
 	} ExitStatus;
 
commit 3b990e9f567afa6cb16636f23e6e031b6d3372a7
Author: Richard Hughes <richard at hughsie.com>
Date:   Tue Sep 1 16:21:20 2009 +0100

    glib2: Add a PkControlSync class for trivial access to some properties

diff --git a/lib/packagekit-glib2/Makefile.am b/lib/packagekit-glib2/Makefile.am
index 9aed8c9..169cad2 100644
--- a/lib/packagekit-glib2/Makefile.am
+++ b/lib/packagekit-glib2/Makefile.am
@@ -31,36 +31,46 @@ libpackagekit_glib2_includedir = $(includedir)/PackageKit/packagekit-glib2
 
 libpackagekit_glib2_include_HEADERS =				\
 	packagekit.h						\
+	pk-bitfield.h						\
+	pk-client.h						\
+	pk-common.h						\
+	pk-control.h						\
+	pk-control-sync.h					\
 	pk-package.h						\
+	pk-package-sack.h					\
+	pk-progress.h						\
+	pk-results.h						\
 	$(NULL)
 
 libpackagekit_glib2_la_SOURCES =				\
-	packagekit.h						\
 	egg-debug.c						\
 	egg-debug.h						\
 	egg-string.c						\
 	egg-string.h						\
-	pk-version.h						\
-	pk-enum.c						\
-	pk-enum.h						\
-	pk-package.c						\
-	pk-package.h						\
+	packagekit.h						\
 	pk-bitfield.c						\
 	pk-bitfield.h						\
-	pk-package-sack.c					\
-	pk-package-sack.h					\
-	pk-control.c						\
-	pk-control.h						\
-	pk-common.c						\
-	pk-common.h						\
 	pk-client.c						\
 	pk-client.h						\
+	pk-common.c						\
+	pk-common.h						\
+	pk-control.c						\
+	pk-control.h						\
+	pk-control-sync.c					\
+	pk-control-sync.h					\
+	pk-enum.c						\
+	pk-enum.h						\
 	pk-marshal.c						\
 	pk-marshal.h						\
-	pk-results.c						\
-	pk-results.h						\
+	pk-package.c						\
+	pk-package.h						\
+	pk-package-sack.c					\
+	pk-package-sack.h					\
 	pk-progress.c						\
 	pk-progress.h						\
+	pk-results.c						\
+	pk-results.h						\
+	pk-version.h						\
 	$(NULL)
 
 libpackagekit_glib2_la_LIBADD =					\
diff --git a/lib/packagekit-glib2/packagekit.h b/lib/packagekit-glib2/packagekit.h
index 515f9af..623ecc8 100644
--- a/lib/packagekit-glib2/packagekit.h
+++ b/lib/packagekit-glib2/packagekit.h
@@ -24,11 +24,14 @@
 
 #define __PACKAGEKIT_H_INSIDE__
 
-#include <packagekit-glib/pk-version.h>
-#include <packagekit-glib/pk-client.h>
-#include <packagekit-glib/pk-common.h>
-#include <packagekit-glib/pk-control.h>
-#include <packagekit-glib/pk-enum.h>
+#include <packagekit-glib2/pk-client.h>
+#include <packagekit-glib2/pk-common.h>
+#include <packagekit-glib2/pk-control.h>
+#include <packagekit-glib2/pk-control-sync.h>
+#include <packagekit-glib2/pk-enum.h>
+#include <packagekit-glib2/pk-package-sack.h>
+#include <packagekit-glib2/pk-results.h>
+#include <packagekit-glib2/pk-version.h>
 
 #undef __PACKAGEKIT_H_INSIDE__
 
diff --git a/lib/packagekit-glib2/pk-control-sync.c b/lib/packagekit-glib2/pk-control-sync.c
new file mode 100644
index 0000000..c663335
--- /dev/null
+++ b/lib/packagekit-glib2/pk-control-sync.c
@@ -0,0 +1,306 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2009 Richard Hughes <richard at hughsie.com>
+ *
+ * Licensed under the GNU General Public License Version 2
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#include "config.h"
+
+#include <string.h>
+#include <glib-object.h>
+#include <dbus/dbus-glib.h>
+#include <gio/gio.h>
+
+#include <packagekit-glib2/pk-control-sync.h>
+#include <packagekit-glib2/pk-common.h>
+#include <packagekit-glib2/pk-version.h>
+
+#include "egg-debug.h"
+
+static void     pk_control_sync_finalize	(GObject     *object);
+
+#define PK_CONTROL_SYNC_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), PK_TYPE_CONTROL_SYNC, PkControlSyncPrivate))
+
+/**
+ * PkControlSyncPrivate:
+ *
+ * Private #PkControlSync data
+ **/
+struct _PkControlSyncPrivate
+{
+	DBusGProxy		*proxy;
+};
+
+static gpointer pk_control_sync_object = NULL;
+
+G_DEFINE_TYPE (PkControlSync, pk_control_sync, PK_TYPE_CONTROL)
+
+/**
+ * pk_control_sync_fixup_dbus_error:
+ **/
+static void
+pk_control_sync_fixup_dbus_error (GError *error)
+{
+	g_return_if_fail (error != NULL);
+
+	/* hardcode domain */
+	error->domain = PK_CONTROL_ERROR;
+
+	/* find a better failure code */
+	if (error->code == DBUS_GERROR_SPAWN_CHILD_EXITED)
+		error->code = PK_CONTROL_ERROR_CANNOT_START_DAEMON;
+	else
+		error->code = PK_CONTROL_ERROR_FAILED;
+}
+
+/**
+ * pk_control_sync_get_roles:
+ * @control_sync: a valid #PkControlSync instance
+ * @error: A #GError or %NULL
+ *
+ * Gets the roles the daemon supports.
+ * Warning: this function is synchronous, and may block. Do not use it in GUI
+ * applications.
+ *
+ * Return value: an enumerated list of the actions the backend supports, or 0 for error
+ **/
+PkBitfield
+pk_control_sync_get_roles (PkControlSync *control, GError **error)
+{
+	gboolean ret;
+	gchar *roles;
+	PkBitfield roles_enum = 0;
+
+	g_return_val_if_fail (PK_IS_CONTROL_SYNC (control), PK_GROUP_ENUM_UNKNOWN);
+	g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+
+	/* not GetRoles, get over it */
+	ret = dbus_g_proxy_call (control->priv->proxy, "GetActions", error,
+				 G_TYPE_INVALID,
+				 G_TYPE_STRING, &roles,
+				 G_TYPE_INVALID);
+	if (!ret) {
+		/* fix up the D-Bus error */
+		if (error != NULL)
+			pk_control_sync_fixup_dbus_error (*error);
+		goto out;
+	}
+
+	/* convert to enumerated types */
+	roles_enum = pk_role_bitfield_from_text (roles);
+	g_free (roles);
+out:
+	return roles_enum;
+}
+
+/**
+ * pk_control_sync_get_daemon_state:
+ * @control_sync: a valid #PkControlSync instance
+ * @error: a %GError to put the error code and message in, or %NULL
+ *
+ * The engine state debugging output
+ *
+ * Return value: a string of debugging data of unspecified format, unref wih g_free()
+ **/
+gchar *
+pk_control_sync_get_daemon_state (PkControlSync *control, GError **error)
+{
+	gboolean ret;
+	gchar *state = NULL;
+
+	g_return_val_if_fail (PK_IS_CONTROL_SYNC (control), NULL);
+	g_return_val_if_fail (error == NULL || *error == NULL, NULL);
+
+	/* call D-Bus sync */
+	ret = dbus_g_proxy_call (control->priv->proxy, "GetDaemonState", error,
+				 G_TYPE_INVALID,
+				 G_TYPE_STRING, &state,
+				 G_TYPE_INVALID);
+	if (!ret) {
+		/* fix up the D-Bus error */
+		if (error != NULL)
+			pk_control_sync_fixup_dbus_error (*error);
+		goto out;
+	}
+out:
+	return state;
+}
+
+/**
+ * pk_control_sync_get_backend_detail:
+ * @control_sync: a valid #PkControlSync instance
+ * @name: the name of the backend
+ * @author: the author of the backend
+ * @error: a %GError to put the error code and message in, or %NULL
+ *
+ * The backend detail is useful for the pk-backend-status program, or for
+ * automatic bugreports.
+ *
+ * Return value: %TRUE if the daemon serviced the request
+ **/
+gboolean
+pk_control_sync_get_backend_detail (PkControlSync *control, gchar **name, gchar **author, GError **error)
+{
+	gboolean ret;
+	gchar *tname;
+	gchar *tauthor;
+
+	g_return_val_if_fail (PK_IS_CONTROL_SYNC (control), FALSE);
+	g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+
+	/* call D-Bus sync */
+	ret = dbus_g_proxy_call (control->priv->proxy, "GetBackendDetail", error,
+				 G_TYPE_INVALID,
+				 G_TYPE_STRING, &tname,
+				 G_TYPE_STRING, &tauthor,
+				 G_TYPE_INVALID);
+	if (!ret) {
+		/* fix up the D-Bus error */
+		if (error != NULL)
+			pk_control_sync_fixup_dbus_error (*error);
+		goto out;
+	}
+
+	/* copy needed bits */
+	if (name != NULL)
+		*name = tname;
+	else
+		g_free (tname);
+	/* copy needed bits */
+	if (author != NULL)
+		*author = tauthor;
+	else
+		g_free (tauthor);
+out:
+	return ret;
+}
+
+/**
+ * pk_control_sync_class_init:
+ * @klass: The PkControlSyncClass
+ **/
+static void
+pk_control_sync_class_init (PkControlSyncClass *klass)
+{
+	GObjectClass *object_class = G_OBJECT_CLASS (klass);
+	object_class->finalize = pk_control_sync_finalize;
+	g_type_class_add_private (klass, sizeof (PkControlSyncPrivate));
+}
+
+/**
+ * pk_control_sync_init:
+ * @control_sync: This class instance
+ **/
+static void
+pk_control_sync_init (PkControlSync *control)
+{
+	DBusGConnection *connection;
+	GError *error = NULL;
+
+	control->priv = PK_CONTROL_SYNC_GET_PRIVATE (control);
+
+	/* get connection */
+	connection = dbus_g_bus_get (DBUS_BUS_SYSTEM, &error);
+	if (error != NULL) {
+		egg_warning ("%s", error->message);
+		g_error_free (error);
+		g_error ("This program cannot start until you start the dbus system service.");
+	}
+
+	/* get a connection to the main interface */
+	control->priv->proxy = dbus_g_proxy_new_for_name (connection,
+							  PK_DBUS_SERVICE, PK_DBUS_PATH,
+							  PK_DBUS_INTERFACE);
+	if (control->priv->proxy == NULL)
+		egg_error ("Cannot connect to PackageKit.");
+}
+
+/**
+ * pk_control_sync_finalize:
+ * @object: The object to finalize
+ **/
+static void
+pk_control_sync_finalize (GObject *object)
+{
+	PkControlSync *control = PK_CONTROL_SYNC (object);
+	g_object_unref (G_OBJECT (control->priv->proxy));
+	G_OBJECT_CLASS (pk_control_sync_parent_class)->finalize (object);
+}
+
+/**
+ * pk_control_sync_new:
+ *
+ * Return value: a new PkControlSync object.
+ **/
+PkControlSync *
+pk_control_sync_new (void)
+{
+	if (pk_control_sync_object != NULL) {
+		g_object_ref (pk_control_sync_object);
+	} else {
+		pk_control_sync_object = g_object_new (PK_TYPE_CONTROL_SYNC, NULL);
+		g_object_add_weak_pointer (pk_control_sync_object, &pk_control_sync_object);
+	}
+	return PK_CONTROL_SYNC (pk_control_sync_object);
+}
+
+/***************************************************************************
+ ***                          MAKE CHECK TESTS                           ***
+ ***************************************************************************/
+#ifdef EGG_TEST
+#include "egg-test.h"
+
+void
+pk_control_sync_test (EggTest *test)
+{
+	PkControlSync *control;
+	GError *error = NULL;
+	PkBitfield bitfield;
+	gchar *text;
+
+	if (!egg_test_start (test, "PkControlSync"))
+		return;
+
+	/************************************************************/
+	egg_test_title (test, "get control_sync");
+	control = pk_control_sync_new ();
+	egg_test_assert (test, control != NULL);
+
+	/************************************************************/
+	egg_test_title (test, "get roles sync");
+	bitfield = pk_control_sync_get_roles (control, &error);
+	if (bitfield == 0)
+		egg_test_failed (test, "no data: %s", error->message);
+	text = pk_role_bitfield_to_text (bitfield);
+	if (g_strcmp0 (text, "cancel;get-depends;get-details;get-files;get-packages;get-repo-list;"
+			     "get-requires;get-update-detail;get-updates;install-files;install-packages;"
+			     "refresh-cache;remove-packages;repo-enable;repo-set-data;resolve;rollback;"
+			     "search-details;search-file;search-group;search-name;update-packages;update-system;"
+			     "what-provides;download-packages;get-distro-upgrades;simulate-install-packages;"
+			     "simulate-remove-packages;simulate-update-packages") != 0) {
+		egg_test_failed (test, "data incorrect: %s", text);
+	}
+	egg_test_success (test, "got roles");
+	g_free (text);
+
+	g_object_unref (control);
+out:
+	egg_test_end (test);
+}
+#endif
+
diff --git a/lib/packagekit-glib2/pk-control-sync.h b/lib/packagekit-glib2/pk-control-sync.h
new file mode 100644
index 0000000..2ced5c3
--- /dev/null
+++ b/lib/packagekit-glib2/pk-control-sync.h
@@ -0,0 +1,80 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2009 Richard Hughes <richard at hughsie.com>
+ *
+ * Licensed under the GNU General Public License Version 2
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#if !defined (__PACKAGEKIT_H_INSIDE__) && !defined (PK_COMPILATION)
+#error "Only <packagekit.h> can be included directly."
+#endif
+
+/**
+ * SECTION:pk-control_sync
+ * @short_description: An abstract synchronous control access GObject
+ */
+
+#ifndef __PK_CONTROL_SYNC_H
+#define __PK_CONTROL_SYNC_H
+
+#include <glib-object.h>
+
+#include <packagekit-glib2/pk-enum.h>
+#include <packagekit-glib2/pk-control.h>
+#include <packagekit-glib2/pk-bitfield.h>
+
+G_BEGIN_DECLS
+
+#define PK_TYPE_CONTROL_SYNC		(pk_control_sync_get_type ())
+#define PK_CONTROL_SYNC(o)		(G_TYPE_CHECK_INSTANCE_CAST ((o), PK_TYPE_CONTROL_SYNC, PkControlSync))
+#define PK_CONTROL_SYNC_CLASS(k)	(G_TYPE_CHECK_CLASS_CAST((k), PK_TYPE_CONTROL_SYNC, PkControlSyncClass))
+#define PK_IS_CONTROL_SYNC(o)		(G_TYPE_CHECK_INSTANCE_TYPE ((o), PK_TYPE_CONTROL_SYNC))
+#define PK_IS_CONTROL_SYNC_CLASS(k)	(G_TYPE_CHECK_CLASS_TYPE ((k), PK_TYPE_CONTROL_SYNC))
+#define PK_CONTROL_SYNC_GET_CLASS(o)	(G_TYPE_INSTANCE_GET_CLASS ((o), PK_TYPE_CONTROL_SYNC, PkControlSyncClass))
+
+typedef struct _PkControlSyncPrivate	PkControlSyncPrivate;
+typedef struct _PkControlSync		PkControlSync;
+typedef struct _PkControlSyncClass	PkControlSyncClass;
+
+struct _PkControlSync
+{
+	 PkControl		 parent;
+	 PkControlSyncPrivate	*priv;
+};
+
+struct _PkControlSyncClass
+{
+	PkControlClass		parent_class;
+};
+
+GQuark		 pk_control_sync_error_quark		(void);
+GType		 pk_control_sync_get_type		(void);
+PkControlSync	*pk_control_sync_new			(void);
+
+PkBitfield	 pk_control_sync_get_roles		(PkControlSync		*control,
+							 GError			**error);
+gchar		*pk_control_sync_get_daemon_state	(PkControlSync		*control,
+							 GError			**error);
+gboolean	 pk_control_sync_get_backend_detail	(PkControlSync		*control,
+							 gchar			**name,
+							 gchar			**author,
+							 GError			**error);
+
+G_END_DECLS
+
+#endif /* __PK_CONTROL_SYNC_H */
+
diff --git a/lib/packagekit-glib2/pk-control.c b/lib/packagekit-glib2/pk-control.c
index 7f41b54..b932c16 100644
--- a/lib/packagekit-glib2/pk-control.c
+++ b/lib/packagekit-glib2/pk-control.c
@@ -687,7 +687,7 @@ pk_control_get_roles_async (PkControl *control, GCancellable *cancellable, GAsyn
  *
  * Gets the result from the asynchronous function.
  *
- * Return value: an enumerated list of the actions the backend supports, free with g_free()
+ * Return value: an enumerated list of the actions the backend supports, or 0 for error. Free with g_free()
  **/
 PkBitfield *
 pk_control_get_roles_finish (PkControl *control, GAsyncResult *res, GError **error)
@@ -1755,88 +1755,6 @@ pk_control_get_properties_finish (PkControl *control, GAsyncResult *res, GError
 /***************************************************************************************************/
 
 /**
- * pk_control_get_daemon_state:
- * @control: a valid #PkControl instance
- * @error: a %GError to put the error code and message in, or %NULL
- *
- * The engine state debugging output
- *
- * Return value: a string of debugging data of unspecified format, unref wih g_free()
- **/
-gchar *
-pk_control_get_daemon_state (PkControl *control, GError **error)
-{
-	gboolean ret;
-	gchar *state = NULL;
-
-	g_return_val_if_fail (PK_IS_CONTROL (control), NULL);
-	g_return_val_if_fail (error == NULL || *error == NULL, NULL);
-
-	/* call D-Bus sync */
-	ret = dbus_g_proxy_call (control->priv->proxy, "GetDaemonState", error,
-				 G_TYPE_INVALID,
-				 G_TYPE_STRING, &state,
-				 G_TYPE_INVALID);
-	if (!ret) {
-		/* fix up the D-Bus error */
-		if (error != NULL)
-			pk_control_fixup_dbus_error (*error);
-		goto out;
-	}
-out:
-	return state;
-}
-
-/**
- * pk_control_get_backend_detail:
- * @control: a valid #PkControl instance
- * @name: the name of the backend
- * @author: the author of the backend
- * @error: a %GError to put the error code and message in, or %NULL
- *
- * The backend detail is useful for the pk-backend-status program, or for
- * automatic bugreports.
- *
- * Return value: %TRUE if the daemon serviced the request
- **/
-gboolean
-pk_control_get_backend_detail (PkControl *control, gchar **name, gchar **author, GError **error)
-{
-	gboolean ret;
-	gchar *tname;
-	gchar *tauthor;
-
-	g_return_val_if_fail (PK_IS_CONTROL (control), FALSE);
-	g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
-
-	/* call D-Bus sync */
-	ret = dbus_g_proxy_call (control->priv->proxy, "GetBackendDetail", error,
-				 G_TYPE_INVALID,
-				 G_TYPE_STRING, &tname,
-				 G_TYPE_STRING, &tauthor,
-				 G_TYPE_INVALID);
-	if (!ret) {
-		/* fix up the D-Bus error */
-		if (error != NULL)
-			pk_control_fixup_dbus_error (*error);
-		goto out;
-	}
-
-	/* copy needed bits */
-	if (name != NULL)
-		*name = tname;
-	else
-		g_free (tname);
-	/* copy needed bits */
-	if (author != NULL)
-		*author = tauthor;
-	else
-		g_free (tauthor);
-out:
-	return ret;
-}
-
-/**
  * pk_control_transaction_list_changed_cb:
  */
 static void
diff --git a/lib/packagekit-glib2/pk-control.h b/lib/packagekit-glib2/pk-control.h
index 6992d28..5da37bc 100644
--- a/lib/packagekit-glib2/pk-control.h
+++ b/lib/packagekit-glib2/pk-control.h
@@ -169,12 +169,6 @@ void		 pk_control_can_authorize_async		(PkControl		*control,
 PkAuthorizeEnum	 pk_control_can_authorize_finish	(PkControl		*control,
 							 GAsyncResult		*res,
 							 GError			**error);
-gchar		*pk_control_get_daemon_state		(PkControl		*control,
-							 GError			**error);
-gboolean	 pk_control_get_backend_detail		(PkControl		*control,
-							 gchar			**name,
-							 gchar			**author,
-							 GError			**error);
 void		 pk_control_get_properties_async	(PkControl		*control,
 							 GCancellable		*cancellable,
 							 GAsyncReadyCallback	 callback,
diff --git a/lib/packagekit-glib2/pk-package-sack.h b/lib/packagekit-glib2/pk-package-sack.h
index 3d57fc8..f296a1d 100644
--- a/lib/packagekit-glib2/pk-package-sack.h
+++ b/lib/packagekit-glib2/pk-package-sack.h
@@ -19,7 +19,7 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  */
 
-#if !defined (__PACKAGE_SACKKIT_H_INSIDE__) && !defined (PK_COMPILATION)
+#if !defined (__PACKAGEKIT_H_INSIDE__) && !defined (PK_COMPILATION)
 #error "Only <packagekit.h> can be included directly."
 #endif
 
diff --git a/lib/packagekit-glib2/pk-self-test.c b/lib/packagekit-glib2/pk-self-test.c
index 369d585..62cd55f 100644
--- a/lib/packagekit-glib2/pk-self-test.c
+++ b/lib/packagekit-glib2/pk-self-test.c
@@ -42,6 +42,7 @@ main (int argc, char **argv)
 	pk_results_test (test);
 	pk_package_test (test);
 	pk_control_test (test);
+	pk_control_sync_test (test);
 	pk_client_test (test);
 	pk_package_sack_test (test);
 
commit b06557eb88ed420ea08c20eb8b278bf13eda9861
Author: Richard Hughes <richard at hughsie.com>
Date:   Tue Sep 1 15:16:52 2009 +0100

    glib2: Add the connection-changed signal to PkControl

diff --git a/lib/packagekit-glib2/Makefile.am b/lib/packagekit-glib2/Makefile.am
index 1fb89b9..9aed8c9 100644
--- a/lib/packagekit-glib2/Makefile.am
+++ b/lib/packagekit-glib2/Makefile.am
@@ -65,6 +65,7 @@ libpackagekit_glib2_la_SOURCES =				\
 
 libpackagekit_glib2_la_LIBADD =					\
 	$(GLIB_LIBS)						\
+	$(GIO_LIBS)						\
 	$(DBUS_LIBS)						\
 	$(ARCHIVE_LIBS)						\
 	$(NULL)
diff --git a/lib/packagekit-glib2/pk-control.c b/lib/packagekit-glib2/pk-control.c
index ef6a11c..7f41b54 100644
--- a/lib/packagekit-glib2/pk-control.c
+++ b/lib/packagekit-glib2/pk-control.c
@@ -21,6 +21,7 @@
 
 #include "config.h"
 
+#include <string.h>
 #include <glib-object.h>
 #include <dbus/dbus-glib.h>
 #include <gio/gio.h>
@@ -45,6 +46,7 @@ struct _PkControlPrivate
 	GPtrArray		*calls;
 	DBusGProxy		*proxy;
 	DBusGProxy		*proxy_props;
+	DBusGProxy		*proxy_dbus;
 	DBusGConnection		*connection;
 	gboolean		 version_major;
 	gboolean		 version_minor;
@@ -58,6 +60,7 @@ enum {
 	SIGNAL_UPDATES_CHANGED,
 	SIGNAL_REPO_LIST_CHANGED,
 	SIGNAL_NETWORK_STATE_CHANGED,
+	SIGNAL_CONNECTION_CHANGED,
 	SIGNAL_LAST
 };
 
@@ -1931,6 +1934,42 @@ pk_control_cancel_all_dbus_methods (PkControl *control)
 }
 
 /**
+ * pk_control_name_owner_changed_cb:
+ **/
+static void
+pk_control_name_owner_changed_cb (DBusGProxy *proxy, const gchar *name, const gchar *prev, const gchar *new, PkControl *control)
+{
+	guint new_len;
+	guint prev_len;
+
+	g_return_if_fail (PK_IS_CONTROL (control));
+
+	if (control->priv->proxy_dbus == NULL)
+		return;
+
+	/* not us */
+	if (g_strcmp0 (name, PK_DBUS_SERVICE) != 0)
+		return;
+
+	/* ITS4: ignore, not used for allocation */
+	new_len = strlen (new);
+	/* ITS4: ignore, not used for allocation */
+	prev_len = strlen (prev);
+
+	/* something --> nothing */
+	if (prev_len != 0 && new_len == 0) {
+		g_signal_emit (control, signals [SIGNAL_CONNECTION_CHANGED], 0, FALSE);
+		return;
+	}
+
+	/* nothing --> something */
+	if (prev_len == 0 && new_len != 0) {
+		g_signal_emit (control, signals [SIGNAL_CONNECTION_CHANGED], 0, TRUE);
+		return;
+	}
+}
+
+/**
  * pk_control_get_property:
  **/
 static void
@@ -2087,6 +2126,22 @@ pk_control_class_init (PkControlClass *klass)
 			      NULL, NULL, g_cclosure_marshal_VOID__BOOLEAN,
 			      G_TYPE_NONE, 1, G_TYPE_BOOLEAN);
 
+	/**
+	 * PkControl::connection-changed:
+	 * @control: the #PkControl instance that emitted the signal
+	 *
+	 * The ::connection-changed is emitted when packagekitd is added or
+	 * removed from the bus. In this way, a client can know if the daemon
+	 * is running.
+	 **/
+	signals [SIGNAL_CONNECTION_CHANGED] =
+		g_signal_new ("connection-changed",
+			      G_TYPE_FROM_CLASS (object_class),
+			      G_SIGNAL_RUN_LAST,
+			      G_STRUCT_OFFSET (PkControlClass, connection_changed),
+			      NULL, NULL, g_cclosure_marshal_VOID__BOOLEAN,
+			      G_TYPE_NONE, 1, G_TYPE_BOOLEAN);
+
 	g_type_class_add_private (klass, sizeof (PkControlPrivate));
 }
 
@@ -2129,6 +2184,22 @@ pk_control_init (PkControl *control)
 	if (control->priv->proxy_props == NULL)
 		egg_error ("Cannot connect to PackageKit.");
 
+	/* get a connection to watch NameOwnerChanged */
+	control->priv->proxy_dbus = dbus_g_proxy_new_for_name_owner (control->priv->connection,
+								     DBUS_SERVICE_DBUS, DBUS_PATH_DBUS,
+								     DBUS_INTERFACE_DBUS, &error);
+	if (control->priv->proxy_dbus == NULL) {
+		egg_error ("Cannot connect to DBUS: %s", error->message);
+		g_error_free (error);
+	}
+
+	/* connect to NameOwnerChanged */
+	dbus_g_proxy_add_signal (control->priv->proxy_dbus, "NameOwnerChanged",
+				 G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INVALID);
+	dbus_g_proxy_connect_signal (control->priv->proxy_dbus, "NameOwnerChanged",
+				     G_CALLBACK (pk_control_name_owner_changed_cb),
+				     control, NULL);
+
 	/* don't timeout, as dbus-glib sets the timeout ~25 seconds */
 	dbus_g_proxy_set_default_timeout (control->priv->proxy, INT_MAX);
 
@@ -2187,9 +2258,12 @@ pk_control_finalize (GObject *object)
 				        G_CALLBACK (pk_control_network_state_changed_cb), control);
 	dbus_g_proxy_disconnect_signal (control->priv->proxy, "RestartSchedule",
 				        G_CALLBACK (pk_control_restart_schedule_cb), control);
+	dbus_g_proxy_disconnect_signal (control->priv->proxy_dbus, "NameOwnerChanged",
+				        G_CALLBACK (pk_control_name_owner_changed_cb), control);
 
 	g_object_unref (G_OBJECT (priv->proxy));
 	g_object_unref (G_OBJECT (priv->proxy_props));
+	g_object_unref (G_OBJECT (priv->proxy_dbus));
 	g_ptr_array_unref (control->priv->calls);
 
 	G_OBJECT_CLASS (pk_control_parent_class)->finalize (object);
diff --git a/lib/packagekit-glib2/pk-control.h b/lib/packagekit-glib2/pk-control.h
index d24bc82..6992d28 100644
--- a/lib/packagekit-glib2/pk-control.h
+++ b/lib/packagekit-glib2/pk-control.h
@@ -81,6 +81,8 @@ struct _PkControlClass
 	void		(* restart_schedule)		(PkControl	*control);
 	void		(* locked)			(PkControl	*control,
 							 gboolean	 is_locked);
+	void		(* connection_changed)		(PkControl	*control,
+							 gboolean	 connected);
 	/* padding for future expansion */
 	void (*_pk_reserved1) (void);
 	void (*_pk_reserved2) (void);
commit 2970f135669203becf77d24d2d7d411db1e4fc08
Author: Richard Hughes <richard at hughsie.com>
Date:   Tue Sep 1 14:16:01 2009 +0100

    glib2: set the PkProgress role when the transaction is started

diff --git a/lib/packagekit-glib2/pk-client.c b/lib/packagekit-glib2/pk-client.c
index e0c9513..0cc17a5 100644
--- a/lib/packagekit-glib2/pk-client.c
+++ b/lib/packagekit-glib2/pk-client.c
@@ -1178,6 +1178,9 @@ pk_client_resolve_async (PkClient *client, PkBitfield filters, gchar **packages,
 	state->progress_callback = progress_callback;
 	state->progress_user_data = progress_user_data;
 	state->progress = pk_progress_new ();
+	g_object_set (state->progress,
+		      "role", state->role,
+		      NULL);
 	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
 
 	/* get tid */
@@ -1226,6 +1229,9 @@ pk_client_search_name_async (PkClient *client, PkBitfield filters, const gchar *
 	state->progress_callback = progress_callback;
 	state->progress_user_data = progress_user_data;
 	state->progress = pk_progress_new ();
+	g_object_set (state->progress,
+		      "role", state->role,
+		      NULL);
 	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
 
 	/* get tid */
@@ -1275,6 +1281,9 @@ pk_client_search_details_async (PkClient *client, PkBitfield filters, const gcha
 	state->progress_callback = progress_callback;
 	state->progress_user_data = progress_user_data;
 	state->progress = pk_progress_new ();
+	g_object_set (state->progress,
+		      "role", state->role,
+		      NULL);
 	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
 
 	/* get tid */
@@ -1322,6 +1331,9 @@ pk_client_search_group_async (PkClient *client, PkBitfield filters, const gchar
 	state->progress_callback = progress_callback;
 	state->progress_user_data = progress_user_data;
 	state->progress = pk_progress_new ();
+	g_object_set (state->progress,
+		      "role", state->role,
+		      NULL);
 	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
 
 	/* get tid */
@@ -1369,6 +1381,9 @@ pk_client_search_file_async (PkClient *client, PkBitfield filters, const gchar *
 	state->progress_callback = progress_callback;
 	state->progress_user_data = progress_user_data;
 	state->progress = pk_progress_new ();
+	g_object_set (state->progress,
+		      "role", state->role,
+		      NULL);
 	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
 
 	/* get tid */
@@ -1415,6 +1430,9 @@ pk_client_get_details_async (PkClient *client, gchar **package_ids, GCancellable
 	state->progress_callback = progress_callback;
 	state->progress_user_data = progress_user_data;
 	state->progress = pk_progress_new ();
+	g_object_set (state->progress,
+		      "role", state->role,
+		      NULL);
 	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
 
 	/* get tid */
@@ -1460,6 +1478,9 @@ pk_client_get_update_detail_async (PkClient *client, gchar **package_ids, GCance
 	state->progress_callback = progress_callback;
 	state->progress_user_data = progress_user_data;
 	state->progress = pk_progress_new ();
+	g_object_set (state->progress,
+		      "role", state->role,
+		      NULL);
 	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
 
 	/* get tid */
@@ -1507,6 +1528,9 @@ pk_client_download_packages_async (PkClient *client, gchar **package_ids, const
 	state->progress_callback = progress_callback;
 	state->progress_user_data = progress_user_data;
 	state->progress = pk_progress_new ();
+	g_object_set (state->progress,
+		      "role", state->role,
+		      NULL);
 	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
 
 	/* get tid */
@@ -1552,6 +1576,9 @@ pk_client_get_updates_async (PkClient *client, PkBitfield filters, GCancellable
 	state->progress_callback = progress_callback;
 	state->progress_user_data = progress_user_data;
 	state->progress = pk_progress_new ();
+	g_object_set (state->progress,
+		      "role", state->role,
+		      NULL);
 	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
 
 	/* get tid */
@@ -1597,6 +1624,9 @@ pk_client_get_old_transactions_async (PkClient *client, guint number, GCancellab
 	state->progress_callback = progress_callback;
 	state->progress_user_data = progress_user_data;
 	state->progress = pk_progress_new ();
+	g_object_set (state->progress,
+		      "role", state->role,
+		      NULL);
 	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
 
 	/* get tid */
@@ -1647,6 +1677,9 @@ pk_client_update_system_async (PkClient *client, gboolean only_trusted, GCancell
 	state->progress_callback = progress_callback;
 	state->progress_user_data = progress_user_data;
 	state->progress = pk_progress_new ();
+	g_object_set (state->progress,
+		      "role", state->role,
+		      NULL);
 	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
 
 	/* get tid */
@@ -1696,6 +1729,9 @@ pk_client_get_depends_async (PkClient *client, PkBitfield filters, gchar **packa
 	state->progress_callback = progress_callback;
 	state->progress_user_data = progress_user_data;
 	state->progress = pk_progress_new ();
+	g_object_set (state->progress,
+		      "role", state->role,
+		      NULL);
 	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
 
 	/* get tid */
@@ -1741,6 +1777,9 @@ pk_client_get_packages_async (PkClient *client, PkBitfield filters, GCancellable
 	state->progress_callback = progress_callback;
 	state->progress_user_data = progress_user_data;
 	state->progress = pk_progress_new ();
+	g_object_set (state->progress,
+		      "role", state->role,
+		      NULL);
 	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
 
 	/* get tid */
@@ -1790,6 +1829,9 @@ pk_client_get_requires_async (PkClient *client, PkBitfield filters, gchar **pack
 	state->progress_callback = progress_callback;
 	state->progress_user_data = progress_user_data;
 	state->progress = pk_progress_new ();
+	g_object_set (state->progress,
+		      "role", state->role,
+		      NULL);
 	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
 
 	/* get tid */
@@ -1841,6 +1883,9 @@ pk_client_what_provides_async (PkClient *client, PkBitfield filters, PkProvidesE
 	state->progress_callback = progress_callback;
 	state->progress_user_data = progress_user_data;
 	state->progress = pk_progress_new ();
+	g_object_set (state->progress,
+		      "role", state->role,
+		      NULL);
 	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
 
 	/* get tid */
@@ -1885,6 +1930,9 @@ pk_client_get_distro_upgrades_async (PkClient *client, GCancellable *cancellable
 	state->progress_callback = progress_callback;
 	state->progress_user_data = progress_user_data;
 	state->progress = pk_progress_new ();
+	g_object_set (state->progress,
+		      "role", state->role,
+		      NULL);
 	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
 
 	/* get tid */
@@ -1930,6 +1978,9 @@ pk_client_get_files_async (PkClient *client, gchar **package_ids, GCancellable *
 	state->progress_callback = progress_callback;
 	state->progress_user_data = progress_user_data;
 	state->progress = pk_progress_new ();
+	g_object_set (state->progress,
+		      "role", state->role,
+		      NULL);
 	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
 
 	/* get tid */
@@ -1973,6 +2024,9 @@ pk_client_get_categories_async (PkClient *client, GCancellable *cancellable,
 	state->progress_callback = progress_callback;
 	state->progress_user_data = progress_user_data;
 	state->progress = pk_progress_new ();
+	g_object_set (state->progress,
+		      "role", state->role,
+		      NULL);
 	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
 
 	/* get tid */
@@ -2024,6 +2078,9 @@ pk_client_remove_packages_async (PkClient *client, gchar **package_ids, gboolean
 	state->progress_callback = progress_callback;
 	state->progress_user_data = progress_user_data;
 	state->progress = pk_progress_new ();
+	g_object_set (state->progress,
+		      "role", state->role,
+		      NULL);
 	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
 
 	/* get tid */
@@ -2072,6 +2129,9 @@ pk_client_refresh_cache_async (PkClient *client, gboolean force, GCancellable *c
 	state->progress_callback = progress_callback;
 	state->progress_user_data = progress_user_data;
 	state->progress = pk_progress_new ();
+	g_object_set (state->progress,
+		      "role", state->role,
+		      NULL);
 	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
 
 	/* get tid */
@@ -2119,6 +2179,9 @@ pk_client_install_packages_async (PkClient *client, gboolean only_trusted, gchar
 	state->progress_callback = progress_callback;
 	state->progress_user_data = progress_user_data;
 	state->progress = pk_progress_new ();
+	g_object_set (state->progress,
+		      "role", state->role,
+		      NULL);
 	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
 
 	/* get tid */
@@ -2168,6 +2231,9 @@ pk_client_install_signature_async (PkClient *client, PkSigTypeEnum type, const g
 	state->progress_callback = progress_callback;
 	state->progress_user_data = progress_user_data;
 	state->progress = pk_progress_new ();
+	g_object_set (state->progress,
+		      "role", state->role,
+		      NULL);
 	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
 
 	/* get tid */
@@ -2215,6 +2281,9 @@ pk_client_update_packages_async (PkClient *client, gboolean only_trusted, gchar
 	state->progress_callback = progress_callback;
 	state->progress_user_data = progress_user_data;
 	state->progress = pk_progress_new ();
+	g_object_set (state->progress,
+		      "role", state->role,
+		      NULL);
 	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
 
 	/* get tid */
@@ -2263,6 +2332,9 @@ pk_client_install_files_async (PkClient *client, gboolean only_trusted, gchar **
 	state->progress_callback = progress_callback;
 	state->progress_user_data = progress_user_data;
 	state->progress = pk_progress_new ();
+	g_object_set (state->progress,
+		      "role", state->role,
+		      NULL);
 	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
 
 	/* get tid */
@@ -2308,6 +2380,9 @@ pk_client_accept_eula_async (PkClient *client, const gchar *eula_id, GCancellabl
 	state->progress_callback = progress_callback;
 	state->progress_user_data = progress_user_data;
 	state->progress = pk_progress_new ();
+	g_object_set (state->progress,
+		      "role", state->role,
+		      NULL);
 	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
 
 	/* get tid */
@@ -2353,6 +2428,9 @@ pk_client_get_repo_list_async (PkClient *client, PkBitfield filters, GCancellabl
 	state->progress_callback = progress_callback;
 	state->progress_user_data = progress_user_data;
 	state->progress = pk_progress_new ();
+	g_object_set (state->progress,
+		      "role", state->role,
+		      NULL);
 	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
 
 	/* get tid */
@@ -2400,6 +2478,9 @@ pk_client_repo_enable_async (PkClient *client, const gchar *repo_id, gboolean en
 	state->progress_callback = progress_callback;
 	state->progress_user_data = progress_user_data;
 	state->progress = pk_progress_new ();
+	g_object_set (state->progress,
+		      "role", state->role,
+		      NULL);
 	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
 
 	/* get tid */
@@ -2450,6 +2531,9 @@ pk_client_repo_set_data_async (PkClient *client, const gchar *repo_id, const gch
 	state->progress_callback = progress_callback;
 	state->progress_user_data = progress_user_data;
 	state->progress = pk_progress_new ();
+	g_object_set (state->progress,
+		      "role", state->role,
+		      NULL);
 	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
 
 	/* get tid */
@@ -2495,6 +2579,9 @@ pk_client_simulate_install_files_async (PkClient *client, gchar **files, GCancel
 	state->progress_callback = progress_callback;
 	state->progress_user_data = progress_user_data;
 	state->progress = pk_progress_new ();
+	g_object_set (state->progress,
+		      "role", state->role,
+		      NULL);
 	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
 
 	/* get tid */
@@ -2540,6 +2627,9 @@ pk_client_simulate_install_packages_async (PkClient *client, gchar **package_ids
 	state->progress_callback = progress_callback;
 	state->progress_user_data = progress_user_data;
 	state->progress = pk_progress_new ();
+	g_object_set (state->progress,
+		      "role", state->role,
+		      NULL);
 	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
 
 	/* get tid */
@@ -2585,6 +2675,9 @@ pk_client_simulate_remove_packages_async (PkClient *client, gchar **package_ids,
 	state->progress_callback = progress_callback;
 	state->progress_user_data = progress_user_data;
 	state->progress = pk_progress_new ();
+	g_object_set (state->progress,
+		      "role", state->role,
+		      NULL);
 	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
 
 	/* get tid */
@@ -2630,6 +2723,9 @@ pk_client_simulate_update_packages_async (PkClient *client, gchar **package_ids,
 	state->progress_callback = progress_callback;
 	state->progress_user_data = progress_user_data;
 	state->progress = pk_progress_new ();
+	g_object_set (state->progress,
+		      "role", state->role,
+		      NULL);
 	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
 
 	/* get tid */
@@ -2797,6 +2893,9 @@ pk_client_adopt_async (PkClient *client, const gchar *transaction_id, GCancellab
 	state->progress_callback = progress_callback;
 	state->progress_user_data = progress_user_data;
 	state->progress = pk_progress_new ();
+	g_object_set (state->progress,
+		      "role", state->role,
+		      NULL);
 	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
 
 	/* get a connection to the transaction interface */
commit bcb9b15be010ce6a629bd45ffdf3a1b4f9cdfb7a
Author: Anders F Bjorklund <afb at users.sourceforge.net>
Date:   Tue Sep 1 14:54:37 2009 +0200

    Update feature matrix for smart.

diff --git a/docs/html/pk-matrix.html b/docs/html/pk-matrix.html
index dbc8d03..7687258 100644
--- a/docs/html/pk-matrix.html
+++ b/docs/html/pk-matrix.html
@@ -558,7 +558,7 @@
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- poldek -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- portage -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- ports -->
-<td><img src="img/status-good.png" alt="[yes]"/></td><!-- smart -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- smart -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- urpmi -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- yum -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- zypp -->
commit 1184745dd4e4597839b5e595d23b0816ff54c3d0
Author: Anders F Bjorklund <afb at users.sourceforge.net>
Date:   Tue Sep 1 14:53:52 2009 +0200

    smart: remove the what-provides feature

diff --git a/backends/smart/pk-backend-smart.c b/backends/smart/pk-backend-smart.c
index aedecde..d87f869 100644
--- a/backends/smart/pk-backend-smart.c
+++ b/backends/smart/pk-backend-smart.c
@@ -430,20 +430,6 @@ backend_repo_set_data (PkBackend *backend, const gchar *rid, const gchar *parame
 	pk_backend_spawn_helper (spawn, BACKEND("repo-set-data"), rid, parameter, value, NULL);
 }
 
-/**
- * pk_backend_what_provides:
- */
-static void
-backend_what_provides (PkBackend *backend, PkBitfield filters, PkProvidesEnum provides, const gchar *search)
-{
-	gchar *filters_text;
-	const gchar *provides_text;
-	provides_text = pk_provides_enum_to_text (provides);
-	filters_text = pk_filter_bitfield_to_text (filters);
-	pk_backend_spawn_helper (spawn, BACKEND("what-provides"), filters_text, provides_text, search, NULL);
-	g_free (filters_text);
-}
-
 PK_BACKEND_OPTIONS (
 	"SMART",					/* description */
 	"James Bowes <jbowes at dangerouslyinc.com>",	/* author */
@@ -479,7 +465,7 @@ PK_BACKEND_OPTIONS (
 	backend_search_name,				/* search_name */
 	backend_update_packages,			/* update_packages */
 	backend_update_system,				/* update_system */
-	backend_what_provides,				/* what_provides */
+	NULL,						/* what_provides */
 	NULL,						/* simulate_install_files */
 	NULL,						/* simulate_install_packages */
 	NULL,						/* simulate_remove_packages */
diff --git a/backends/smart/smartBackend.py b/backends/smart/smartBackend.py
index bb54b25..5346c13 100755
--- a/backends/smart/smartBackend.py
+++ b/backends/smart/smartBackend.py
@@ -535,22 +535,6 @@ class PackageKitSmartBackend(PackageKitBaseBackend):
         self._post_process_package_list(filters)
         self._show_package_list()
 
-    @needs_cache
-    def what_provides(self, filters, provides_type, search):
-        self.status(STATUS_QUERY)
-        self.allow_cancel(True)
-        if provides_type != PROVIDES_ANY:
-            self.error(ERROR_NOT_SUPPORTED,
-                       "provide %s not supported" % provides_type)
-            return
-        providers = self.ctrl.getCache().getProvides(search)
-        for provider in providers:
-            for package in provider.packages:
-                if self._package_passes_filters(package, filters):
-                    self._add_package(package)
-        self._post_process_package_list(filters)
-        self._show_package_list()
-
     def refresh_cache(self, force):
         # TODO: use force ?
         self.status(STATUS_REFRESH_CACHE)
commit e2c1e61f8adc5c9daab91e672171fbba92e554a8
Author: Richard Hughes <richard at hughsie.com>
Date:   Tue Sep 1 13:21:30 2009 +0100

    glib2: remove some unused code

diff --git a/lib/packagekit-glib2/pk-client.c b/lib/packagekit-glib2/pk-client.c
index 589092b..e0c9513 100644
--- a/lib/packagekit-glib2/pk-client.c
+++ b/lib/packagekit-glib2/pk-client.c
@@ -71,24 +71,8 @@ struct _PkClientPrivate
 	DBusGConnection		*connection;
 	GPtrArray		*calls;
 	PkControl		*control;
-	PkRoleEnum		 role;
-	PkStatusEnum		 status;
 };
 
-enum {
-	SIGNAL_CHANGED,
-	SIGNAL_LAST
-};
-
-enum {
-	PROP_0,
-	PROP_ROLE,
-	PROP_STATUS,
-	PROP_LAST
-};
-
-static guint signals [SIGNAL_LAST] = { 0 };
-
 G_DEFINE_TYPE (PkClient, pk_client, G_TYPE_OBJECT)
 
 typedef struct {
@@ -499,9 +483,6 @@ pk_client_status_changed_cb (DBusGProxy *proxy, const gchar *status_text, PkClie
 	/* convert from text */
 	status_enum = pk_status_enum_from_text (status_text);
 
-	/* save cached value */
-	state->client->priv->status = status_enum;
-
 	/* save progress */
 	g_object_set (state->progress,
 		      "status", status_enum,
@@ -2875,81 +2856,14 @@ pk_client_cancel_all_dbus_methods (PkClient *client)
 }
 
 /**
- * pk_client_get_property:
- **/
-static void
-pk_client_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec)
-{
-	PkClient *client = PK_CLIENT (object);
-	PkClientPrivate *priv = client->priv;
-
-	switch (prop_id) {
-	case PROP_ROLE:
-		g_value_set_uint (value, priv->role);
-		break;
-	case PROP_STATUS:
-		g_value_set_uint (value, priv->status);
-		break;
-	default:
-		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
-		break;
-	}
-}
-
-/**
- * pk_client_set_property:
- **/
-static void
-pk_client_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec)
-{
-	switch (prop_id) {
-	default:
-		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
-		break;
-	}
-}
-
-/**
  * pk_client_class_init:
  **/
 static void
 pk_client_class_init (PkClientClass *klass)
 {
-	GParamSpec *pspec;
 	GObjectClass *object_class = G_OBJECT_CLASS (klass);
-	object_class->get_property = pk_client_get_property;
-	object_class->set_property = pk_client_set_property;
 	object_class->finalize = pk_client_finalize;
 
-	/**
-	 * PkClient:role:
-	 */
-	pspec = g_param_spec_uint ("role", NULL, NULL,
-				   0, G_MAXUINT, 0,
-				   G_PARAM_READABLE);
-	g_object_class_install_property (object_class, PROP_ROLE, pspec);
-
-	/**
-	 * PkClient:status:
-	 */
-	pspec = g_param_spec_uint ("status", NULL, NULL,
-				   0, G_MAXUINT, 0,
-				   G_PARAM_READABLE);
-	g_object_class_install_property (object_class, PROP_STATUS, pspec);
-
-	/**
-	 * PkClient::changed:
-	 * @client: the #PkClient instance that emitted the signal
-	 *
-	 * The ::changed signal is emitted when the client data may have changed.
-	 **/
-	signals [SIGNAL_CHANGED] =
-		g_signal_new ("changed",
-			      G_TYPE_FROM_CLASS (object_class), G_SIGNAL_RUN_LAST,
-			      G_STRUCT_OFFSET (PkClientClass, changed),
-			      NULL, NULL, g_cclosure_marshal_VOID__VOID,
-			      G_TYPE_NONE, 0);
-
 	g_type_class_add_private (klass, sizeof (PkClientPrivate));
 }
 
@@ -2961,9 +2875,6 @@ pk_client_init (PkClient *client)
 {
 	GError *error = NULL;
 	client->priv = PK_CLIENT_GET_PRIVATE (client);
-
-	client->priv->status = PK_STATUS_ENUM_UNKNOWN;
-	client->priv->role = PK_ROLE_ENUM_UNKNOWN;
 	client->priv->calls = g_ptr_array_new ();
 
 	/* check dbus connections, exit if not valid */
commit 6998b3705003169b66c3a38efbc6a56d5b389afc
Author: Richard Hughes <richard at hughsie.com>
Date:   Tue Sep 1 13:17:48 2009 +0100

    glib2: Add a working pk_client_adopt_async() method.

diff --git a/lib/packagekit-glib2/pk-client.c b/lib/packagekit-glib2/pk-client.c
index 7626d14..589092b 100644
--- a/lib/packagekit-glib2/pk-client.c
+++ b/lib/packagekit-glib2/pk-client.c
@@ -116,6 +116,7 @@ typedef struct {
 	gulong				 cancellable_id;
 	DBusGProxyCall			*call;
 	DBusGProxy			*proxy;
+	DBusGProxy			*proxy_props;
 	GCancellable			*cancellable;
 	GSimpleAsyncResult		*res;
 	PkBitfield			 filters;
@@ -342,6 +343,9 @@ pk_client_state_finish (PkClientState *state, GError *error)
 		g_object_unref (G_OBJECT (state->proxy));
 	}
 
+	if (state->proxy_props != NULL)
+		g_object_unref (G_OBJECT (state->proxy_props));
+
 	if (state->results != NULL) {
 		g_simple_async_result_set_op_res_gpointer (state->res, g_object_ref (state->results), g_object_unref);
 	} else {
@@ -1102,7 +1106,7 @@ pk_client_get_tid_cb (GObject *object, GAsyncResult *res, PkClientState *state)
 	egg_debug ("tid = %s", tid);
 	state->tid = g_strdup (tid);
 
-	/* get a connection to the tranaction interface */
+	/* get a connection to the transaction interface */
 	state->proxy = dbus_g_proxy_new_for_name (state->client->priv->connection,
 						  PK_DBUS_SERVICE, tid, PK_DBUS_INTERFACE_TRANSACTION);
 	if (state->proxy == NULL)
@@ -2654,7 +2658,126 @@ pk_client_simulate_update_packages_async (PkClient *client, gchar **package_ids,
 
 /***************************************************************************************************/
 
+/**
+ * pk_client_get_properties_collect_cb:
+ **/
+static void
+pk_client_get_properties_collect_cb (const char *key, const GValue *value, PkClientState *state)
+{
+	const gchar *tmp_str;
+	guint tmp;
+	gboolean ret;
+
+	/* do the callback for GUI programs */
+	if (state->progress_callback == NULL)
+		return;
+
+	/* role */
+	if (g_strcmp0 (key, "role") == 0) {
+		tmp_str = g_value_get_string (value);
+		tmp = pk_role_enum_from_text (tmp_str);
+		g_object_set (state->progress, "role", tmp, NULL);
+		state->progress_callback (state->progress, PK_PROGRESS_TYPE_ROLE, state->progress_user_data);
+		return;
+	}
+
+	/* status */
+	if (g_strcmp0 (key, "status") == 0) {
+		tmp_str = g_value_get_string (value);
+		tmp = pk_status_enum_from_text (tmp_str);
+		g_object_set (state->progress, "status", tmp, NULL);
+		state->progress_callback (state->progress, PK_PROGRESS_TYPE_STATUS, state->progress_user_data);
+		return;
+	}
+
+	/* last-package */
+	if (g_strcmp0 (key, "last-package") == 0) {
+		tmp_str = g_value_get_string (value);
+		g_object_set (state->progress, "package-id", tmp_str, NULL);
+		state->progress_callback (state->progress, PK_PROGRESS_TYPE_PACKAGE_ID, state->progress_user_data);
+		return;
+	}
+
 #if 0
+	/* uid */
+	if (g_strcmp0 (key, "uid") == 0) {
+		tmp = g_value_get_uint (value);
+		g_object_set (state->progress, "uid", tmp, NULL);
+		state->progress_callback (state->progress, PK_PROGRESS_TYPE_UID, state->progress_user_data);
+		return;
+	}
+#endif
+
+	/* percentage */
+	if (g_strcmp0 (key, "percentage") == 0) {
+		tmp = g_value_get_uint (value);
+		g_object_set (state->progress, "percentage", pk_client_percentage_to_signed (tmp), NULL);
+		state->progress_callback (state->progress, PK_PROGRESS_TYPE_PERCENTAGE, state->progress_user_data);
+		return;
+	}
+
+	/* subpercentage */
+	if (g_strcmp0 (key, "subpercentage") == 0) {
+		tmp = g_value_get_uint (value);
+		g_object_set (state->progress, "subpercentage", pk_client_percentage_to_signed (tmp), NULL);
+		state->progress_callback (state->progress, PK_PROGRESS_TYPE_SUBPERCENTAGE, state->progress_user_data);
+		return;
+	}
+
+	/* allow-cancel */
+	if (g_strcmp0 (key, "allow-cancel") == 0) {
+		ret = g_value_get_boolean (value);
+		g_object_set (state->progress, "allow-cancel", ret, NULL);
+		state->progress_callback (state->progress, PK_PROGRESS_TYPE_ALLOW_CANCEL, state->progress_user_data);
+		return;
+	}
+
+	/* caller-active */
+	if (g_strcmp0 (key, "caller-active") == 0) {
+		ret = g_value_get_boolean (value);
+		g_object_set (state->progress, "caller-active", ret, NULL);
+		state->progress_callback (state->progress, PK_PROGRESS_TYPE_CALLER_ACTIVE, state->progress_user_data);
+		return;
+	}
+
+	egg_warning ("unhandled property '%s'", key);
+}
+
+/**
+ * pk_client_get_properties_cb:
+ **/
+static void
+pk_client_get_properties_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkClientState *state)
+{
+	GError *error = NULL;
+	gboolean ret;
+	GHashTable *hash;
+
+	/* get the result */
+	ret = dbus_g_proxy_end_call (proxy, call, &error,
+				     dbus_g_type_get_map ("GHashTable", G_TYPE_STRING, G_TYPE_VALUE), &hash,
+				     G_TYPE_INVALID);
+	if (!ret) {
+		egg_warning ("failed to set proxy: %s", error->message);
+		pk_client_state_finish (state, error);
+		return;
+	}
+
+	/* finished this call */
+	state->call = NULL;
+
+	/* setup the proxies ready for use */
+	pk_client_connect_proxy (state->proxy, state);
+
+	/* process results */
+	if (hash != NULL) {
+		g_hash_table_foreach (hash, (GHFunc) pk_client_get_properties_collect_cb, state);
+		g_hash_table_unref (hash);
+	}
+
+	/* we're waiting for finished */
+}
+
 /**
  * pk_client_adopt_async:
  * @client: a valid #PkClient instance
@@ -2689,17 +2812,42 @@ pk_client_adopt_async (PkClient *client, const gchar *transaction_id, GCancellab
 		state->cancellable_id = g_cancellable_connect (cancellable, G_CALLBACK (pk_client_cancellable_cancel_cb), state, NULL);
 	}
 	state->client = client;
-	state->transaction_id = g_strdup (transaction_id);
+	state->tid = g_strdup (transaction_id);
 	state->progress_callback = progress_callback;
 	state->progress_user_data = progress_user_data;
 	state->progress = pk_progress_new ();
 	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
 
-	/* get tid */
-	pk_control_get_tid_async (client->priv->control, NULL, (GAsyncReadyCallback) pk_client_get_tid_cb, state);
+	/* get a connection to the transaction interface */
+	state->proxy = dbus_g_proxy_new_for_name (state->client->priv->connection,
+						  PK_DBUS_SERVICE, state->tid, PK_DBUS_INTERFACE_TRANSACTION);
+	if (state->proxy == NULL)
+		egg_error ("Cannot connect to PackageKit on %s", state->tid);
+
+	/* get a connection to the properties interface */
+	state->proxy_props = dbus_g_proxy_new_for_name (state->client->priv->connection,
+							PK_DBUS_SERVICE, state->tid,
+							"org.freedesktop.DBus.Properties");
+	if (state->proxy_props == NULL)
+		egg_error ("Cannot connect to PackageKit on %s", transaction_id);
+
+	/* don't timeout, as dbus-glib sets the timeout ~25 seconds */
+	dbus_g_proxy_set_default_timeout (state->proxy, INT_MAX);
+
+	/* call D-Bus get_properties async */
+	state->call = dbus_g_proxy_begin_call (state->proxy_props, "GetAll",
+					       (DBusGProxyCallNotify) pk_client_get_properties_cb, state, NULL,
+					       G_TYPE_STRING, "org.freedesktop.PackageKit.Transaction",
+					       G_TYPE_INVALID);
+
+	/* we'll have results from now on */
+	state->results = pk_results_new ();
+
+	/* track state */
+	g_ptr_array_add (client->priv->calls, state);
+
 	g_object_unref (res);
 }
-#endif
 
 /***************************************************************************************************/
 
diff --git a/lib/packagekit-glib2/pk-client.h b/lib/packagekit-glib2/pk-client.h
index 3356e20..9ad4dea 100644
--- a/lib/packagekit-glib2/pk-client.h
+++ b/lib/packagekit-glib2/pk-client.h
@@ -383,7 +383,7 @@ void		 pk_client_simulate_update_packages_async (PkClient		*client,
 							 gpointer		 user_data);
 
 void		 pk_client_adopt_async 			(PkClient		*client,
-							 const gchar		**transaction_id,
+							 const gchar		*transaction_id,
 							 GCancellable		*cancellable,
 							 PkProgressCallback	 progress_callback,
 							 gpointer		 progress_user_data,
commit 600bb3712420a08fee7b6a38643a827db3f374a6
Author: Richard Hughes <richard at hughsie.com>
Date:   Tue Sep 1 12:50:38 2009 +0100

    glib2: fix silly trivial typo

diff --git a/lib/packagekit-glib2/pk-client.c b/lib/packagekit-glib2/pk-client.c
index a87799c..7626d14 100644
--- a/lib/packagekit-glib2/pk-client.c
+++ b/lib/packagekit-glib2/pk-client.c
@@ -454,7 +454,7 @@ pk_client_percentage_to_signed (guint percentage)
 {
 	if (percentage == 101)
 		return -1;
-	return (gint) percentage
+	return (gint) percentage;
 }
 
 /**
commit 0bf750c4405383026533a2c86e58845d0e214763
Author: Richard Hughes <richard at hughsie.com>
Date:   Tue Sep 1 12:40:51 2009 +0100

    glib2: add ::Role to PkProgress for the new adopt functionality

diff --git a/lib/packagekit-glib2/pk-progress.c b/lib/packagekit-glib2/pk-progress.c
index 614f908..eb6dedf 100644
--- a/lib/packagekit-glib2/pk-progress.c
+++ b/lib/packagekit-glib2/pk-progress.c
@@ -48,6 +48,7 @@ struct _PkProgressPrivate
 	gint				 percentage;
 	gint				 subpercentage;
 	gboolean			 allow_cancel;
+	PkRoleEnum			 role;
 	PkStatusEnum			 status;
 	gboolean			 caller_active;
 };
@@ -58,6 +59,7 @@ enum {
 	PROP_PERCENTAGE,
 	PROP_SUBPERCENTAGE,
 	PROP_ALLOW_CANCEL,
+	PROP_ROLE,
 	PROP_STATUS,
 	PROP_CALLER_ACTIVE,
 	PROP_LAST
@@ -90,6 +92,9 @@ pk_progress_get_property (GObject *object, guint prop_id, GValue *value, GParamS
 	case PROP_STATUS:
 		g_value_set_uint (value, priv->status);
 		break;
+	case PROP_ROLE:
+		g_value_set_uint (value, priv->role);
+		break;
 	case PROP_CALLER_ACTIVE:
 		g_value_set_boolean (value, priv->caller_active);
 		break;
@@ -125,6 +130,9 @@ pk_progress_set_property (GObject *object, guint prop_id, const GValue *value, G
 	case PROP_STATUS:
 		priv->status = g_value_get_uint (value);
 		break;
+	case PROP_ROLE:
+		priv->role = g_value_get_uint (value);
+		break;
 	case PROP_CALLER_ACTIVE:
 		priv->caller_active = g_value_get_boolean (value);
 		break;
@@ -188,6 +196,14 @@ pk_progress_class_init (PkProgressClass *klass)
 	g_object_class_install_property (object_class, PROP_STATUS, pspec);
 
 	/**
+	 * PkProgress:role:
+	 */
+	pspec = g_param_spec_uint ("role", NULL, NULL,
+				   0, PK_ROLE_ENUM_UNKNOWN, PK_ROLE_ENUM_UNKNOWN,
+				   G_PARAM_READWRITE);
+	g_object_class_install_property (object_class, PROP_ROLE, pspec);
+
+	/**
 	 * PkPackage:caller-active:
 	 */
 	pspec = g_param_spec_boolean ("caller-active", NULL, NULL,
diff --git a/lib/packagekit-glib2/pk-progress.h b/lib/packagekit-glib2/pk-progress.h
index 330623c..edb1bfd 100644
--- a/lib/packagekit-glib2/pk-progress.h
+++ b/lib/packagekit-glib2/pk-progress.h
@@ -75,6 +75,7 @@ typedef enum {
 	PK_PROGRESS_TYPE_SUBPERCENTAGE,
 	PK_PROGRESS_TYPE_ALLOW_CANCEL,
 	PK_PROGRESS_TYPE_STATUS,
+	PK_PROGRESS_TYPE_ROLE,
 	PK_PROGRESS_TYPE_CALLER_ACTIVE,
 	PK_PROGRESS_TYPE_INVALID
 } PkProgressType;
commit 11915b4aee0d33e34eec008be327432e98004146
Author: Richard Hughes <richard at hughsie.com>
Date:   Tue Sep 1 12:40:09 2009 +0100

    glib2: add start of pk_client_adopt_async()

diff --git a/lib/packagekit-glib2/pk-client.c b/lib/packagekit-glib2/pk-client.c
index bea6a6a..a87799c 100644
--- a/lib/packagekit-glib2/pk-client.c
+++ b/lib/packagekit-glib2/pk-client.c
@@ -2654,6 +2654,55 @@ pk_client_simulate_update_packages_async (PkClient *client, gchar **package_ids,
 
 /***************************************************************************************************/
 
+#if 0
+/**
+ * pk_client_adopt_async:
+ * @client: a valid #PkClient instance
+ * @transaction_id: a transaction ID such as "/21_ebcbdaae_data"
+ * @cancellable: a #GCancellable or %NULL
+ * @progress_callback: the function to run when the progress changes
+ * @progress_user_data: data to pass to @progress_callback
+ * @callback_ready: the function to run on completion
+ * @user_data: the data to pass to @callback_ready
+ *
+ * Adopt a transaction which allows the caller to monitor the state or cancel it.
+ **/
+void
+pk_client_adopt_async (PkClient *client, const gchar *transaction_id, GCancellable *cancellable,
+		       PkProgressCallback progress_callback, gpointer progress_user_data,
+		       GAsyncReadyCallback callback_ready, gpointer user_data)
+{
+	GSimpleAsyncResult *res;
+	PkClientState *state;
+
+	g_return_if_fail (PK_IS_CLIENT (client));
+	g_return_if_fail (callback_ready != NULL);
+
+	res = g_simple_async_result_new (G_OBJECT (client), callback_ready, user_data, pk_client_adopt_async);
+
+	/* save state */
+	state = g_slice_new0 (PkClientState);
+	state->role = PK_ROLE_ENUM_SIMULATE_UPDATE_PACKAGES;
+	state->res = g_object_ref (res);
+	if (cancellable != NULL) {
+		state->cancellable = g_object_ref (cancellable);
+		state->cancellable_id = g_cancellable_connect (cancellable, G_CALLBACK (pk_client_cancellable_cancel_cb), state, NULL);
+	}
+	state->client = client;
+	state->transaction_id = g_strdup (transaction_id);
+	state->progress_callback = progress_callback;
+	state->progress_user_data = progress_user_data;
+	state->progress = pk_progress_new ();
+	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
+
+	/* get tid */
+	pk_control_get_tid_async (client->priv->control, NULL, (GAsyncReadyCallback) pk_client_get_tid_cb, state);
+	g_object_unref (res);
+}
+#endif
+
+/***************************************************************************************************/
+
 /**
  * pk_client_cancel_all_dbus_methods:
  **/
diff --git a/lib/packagekit-glib2/pk-client.h b/lib/packagekit-glib2/pk-client.h
index 1f5182c..3356e20 100644
--- a/lib/packagekit-glib2/pk-client.h
+++ b/lib/packagekit-glib2/pk-client.h
@@ -382,6 +382,14 @@ void		 pk_client_simulate_update_packages_async (PkClient		*client,
 							 GAsyncReadyCallback	 callback_ready,
 							 gpointer		 user_data);
 
+void		 pk_client_adopt_async 			(PkClient		*client,
+							 const gchar		**transaction_id,
+							 GCancellable		*cancellable,
+							 PkProgressCallback	 progress_callback,
+							 gpointer		 progress_user_data,
+							 GAsyncReadyCallback	 callback_ready,
+							 gpointer		 user_data);
+
 G_END_DECLS
 
 #endif /* __PK_CLIENT_H */
commit 5fe7c78de4ee5ab084295e598ea05d9a10dee083
Author: Richard Hughes <richard at hughsie.com>
Date:   Tue Sep 1 12:21:22 2009 +0100

    spec: Add properties to the transaction interface and deprecate the old methods

diff --git a/src/org.freedesktop.PackageKit.Transaction.xml b/src/org.freedesktop.PackageKit.Transaction.xml
index 12353cd..44313cf 100644
--- a/src/org.freedesktop.PackageKit.Transaction.xml
+++ b/src/org.freedesktop.PackageKit.Transaction.xml
@@ -14,6 +14,88 @@
     </doc:doc>
 
     <!--*****************************************************************************************-->
+    <property name="role" type="s" access="read">
+      <doc:doc>
+        <doc:description>
+          <doc:para>
+            The transaction role, e.g. <doc:tt>update-system</doc:tt>.
+          </doc:para>
+        </doc:description>
+      </doc:doc>
+    </property>
+    <property name="status" type="s" access="read">
+      <doc:doc>
+        <doc:description>
+          <doc:para>
+            The transaction status, e.g. <doc:tt>downloading</doc:tt>.
+          </doc:para>
+        </doc:description>
+      </doc:doc>
+    </property>
+    <property name="last-package" type="s" access="read">
+      <doc:doc>
+        <doc:description>
+          <doc:para>
+            The last package_id that was processed, e.g. <doc:tt>hal;0.1.2;i386;fedora</doc:tt>.
+          </doc:para>
+        </doc:description>
+      </doc:doc>
+    </property>
+    <property name="uid" type="u" access="read">
+      <doc:doc>
+        <doc:description>
+          <doc:para>
+            The uid of the user that started the transaction.
+          </doc:para>
+        </doc:description>
+      </doc:doc>
+    </property>
+    <property name="percentage" type="u" access="read">
+      <doc:doc>
+        <doc:description>
+          <doc:para>
+            The percentage complete of the transaction.
+          </doc:para>
+          <doc:para>
+            Backends should set this value to 101 if the amount complete cannot be calculated.
+          </doc:para>
+        </doc:description>
+      </doc:doc>
+    </property>
+    <property name="subpercentage" type="u" access="read">
+      <doc:doc>
+        <doc:description>
+          <doc:para>
+            The sub-percentage complete of the transaction.
+          </doc:para>
+          <doc:para>
+            Backends should set this value to 101 if the amount complete cannot be calculated.
+          </doc:para>
+        </doc:description>
+      </doc:doc>
+    </property>
+    <property name="allow-cancel" type="b" access="read">
+      <doc:doc>
+        <doc:description>
+          <doc:para>
+            If the transaction can be cancelled.
+          </doc:para>
+        </doc:description>
+      </doc:doc>
+    </property>
+    <property name="caller-active" type="b" access="read">
+      <doc:doc>
+        <doc:description>
+          <doc:para>
+            If the original caller of the method is still connected to the system bus.
+            This is usually an indication that the client can handle it's own error handling and
+            EULA callbacks rather than another program taking over.
+          </doc:para>
+        </doc:description>
+      </doc:doc>
+    </property>
+
+    <!--*****************************************************************************************-->
     <method name="SetLocale">
       <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
       <doc:doc>
@@ -98,6 +180,10 @@
           <doc:para>
             Get if cancel is allowed for the transaction
           </doc:para>
+          <doc:para>
+            THIS FUNCTION IS DEPRECATED. It will be removed in a future release.
+            Use the properties interface for the transaction instead.
+          </doc:para>
         </doc:description>
       </doc:doc>
       <arg type="b" name="allow_cancel" direction="out">
@@ -267,6 +353,10 @@
             This allows any GUI that is monitoring transactions to accurately reflect the current
             state of the transaction at startup.
           </doc:para>
+          <doc:para>
+            THIS FUNCTION IS DEPRECATED. It will be removed in a future release.
+            Use the properties interface for the transaction instead.
+          </doc:para>
         </doc:description>
       </doc:doc>
       <arg type="s" name="package" direction="out">
@@ -318,6 +408,10 @@
           <doc:para>
             This method gets the progress completion of the daemon.
           </doc:para>
+          <doc:para>
+            THIS FUNCTION IS DEPRECATED. It will be removed in a future release.
+            Use the properties interface for the transaction instead.
+          </doc:para>
         </doc:description>
       </doc:doc>
       <arg type="u" name="percentage" direction="out">
@@ -445,6 +539,10 @@
           <doc:para>
             This method returns the current role of the transaction.
           </doc:para>
+          <doc:para>
+            THIS FUNCTION IS DEPRECATED. It will be removed in a future release.
+            Use the properties interface for the transaction instead.
+          </doc:para>
         </doc:description>
       </doc:doc>
       <arg type="s" name="role" direction="out">
@@ -475,6 +573,10 @@
           <doc:para>
             This method returns the status of the transaction.
           </doc:para>
+          <doc:para>
+            THIS FUNCTION IS DEPRECATED. It will be removed in a future release.
+            Use the properties interface for the transaction instead.
+          </doc:para>
         </doc:description>
       </doc:doc>
       <arg type="s" name="status" direction="out">
@@ -750,6 +852,10 @@
             This is usually an indication that the client can handle it's own error handling and
             EULA callbacks rather than another program taking over.
           </doc:para>
+          <doc:para>
+            THIS FUNCTION IS DEPRECATED. It will be removed in a future release.
+            Use the properties interface for the transaction instead.
+          </doc:para>
         </doc:description>
       </doc:doc>
       <arg type="b" name="is_active" direction="out">
diff --git a/src/pk-transaction.c b/src/pk-transaction.c
index f3ba266..af0ed87 100644
--- a/src/pk-transaction.c
+++ b/src/pk-transaction.c
@@ -93,6 +93,7 @@ struct PkTransactionPrivate
 	gboolean		 emit_eula_required;
 	gboolean		 emit_signature_required;
 	gboolean		 emit_media_change_required;
+	gboolean		 caller_active;
 	gchar			*locale;
 	guint			 uid;
 	EggDbusMonitor		*monitor;
@@ -186,7 +187,14 @@ enum {
 enum
 {
 	PROP_0,
+	PROP_ROLE,
+	PROP_STATUS,
+	PROP_LAST_PACKAGE,
 	PROP_UID,
+	PROP_PERCENTAGE,
+	PROP_SUBPERCENTAGE,
+	PROP_ALLOW_CANCEL,
+	PROP_CALLER_ACTIVE,
 	PROP_LAST
 };
 
@@ -464,6 +472,10 @@ pk_transaction_caller_active_changed_cb (EggDbusMonitor *egg_dbus_monitor, gbool
 	g_return_if_fail (PK_IS_TRANSACTION (transaction));
 	g_return_if_fail (transaction->priv->tid != NULL);
 
+	/* save as a property */
+	transaction->priv->caller_active = is_active;
+
+	/* only send if false, a client can hardly re-connect... */
 	if (is_active == FALSE) {
 		egg_debug ("client disconnected....");
 		g_signal_emit (transaction, signals [PK_TRANSACTION_CALLER_ACTIVE_CHANGED], 0, FALSE);
@@ -4664,9 +4676,30 @@ pk_transaction_get_property (GObject *object, guint prop_id, GValue *value, GPar
 	transaction = PK_TRANSACTION (object);
 
 	switch (prop_id) {
+	case PROP_ROLE:
+		g_value_set_string (value, pk_role_enum_to_text (transaction->priv->role));
+		break;
+	case PROP_STATUS:
+		g_value_set_string (value, pk_status_enum_to_text (transaction->priv->status));
+		break;
+	case PROP_LAST_PACKAGE:
+		g_value_set_string (value, transaction->priv->last_package_id);
+		break;
 	case PROP_UID:
 		g_value_set_uint (value, transaction->priv->uid);
 		break;
+	case PROP_PERCENTAGE:
+		g_value_set_uint (value, transaction->priv->percentage);
+		break;
+	case PROP_SUBPERCENTAGE:
+		g_value_set_uint (value, transaction->priv->subpercentage);
+		break;
+	case PROP_ALLOW_CANCEL:
+		g_value_set_boolean (value, transaction->priv->allow_cancel);
+		break;
+	case PROP_CALLER_ACTIVE:
+		g_value_set_boolean (value, transaction->priv->caller_active);
+		break;
 	default:
 		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
 		break;
@@ -4680,18 +4713,83 @@ pk_transaction_get_property (GObject *object, guint prop_id, GValue *value, GPar
 static void
 pk_transaction_class_init (PkTransactionClass *klass)
 {
+	GParamSpec *spec;
 	GObjectClass *object_class = G_OBJECT_CLASS (klass);
 	object_class->dispose = pk_transaction_dispose;
 	object_class->finalize = pk_transaction_finalize;
 	object_class->get_property = pk_transaction_get_property;
 
-	g_object_class_install_property (object_class,
-					 PROP_UID,
-					 g_param_spec_uint ("uid",
-							    "UID",
-							    "User ID that created the transaction",
-							    0, G_MAXUINT, 0,
-							    G_PARAM_READABLE));
+	/**
+	 * PkTransaction:role:
+	 */
+	spec = g_param_spec_string ("role",
+				    "Role", "The transaction role",
+				    NULL,
+				    G_PARAM_READABLE);
+	g_object_class_install_property (object_class, PROP_ROLE, spec);
+
+	/**
+	 * PkTransaction:status:
+	 */
+	spec = g_param_spec_string ("status",
+				    "Status", "The transaction status",
+				    NULL,
+				    G_PARAM_READABLE);
+	g_object_class_install_property (object_class, PROP_STATUS, spec);
+
+	/**
+	 * PkTransaction:last-package:
+	 */
+	spec = g_param_spec_string ("last-package",
+				    "Last package", "The transaction last package processed",
+				    NULL,
+				    G_PARAM_READABLE);
+	g_object_class_install_property (object_class, PROP_LAST_PACKAGE, spec);
+
+	/**
+	 * PkTransaction:uid:
+	 */
+	spec = g_param_spec_uint ("uid",
+				  "UID", "User ID that created the transaction",
+				  0, G_MAXUINT, 0,
+				  G_PARAM_READABLE);
+	g_object_class_install_property (object_class, PROP_UID, spec);
+
+	/**
+	 * PkTransaction:percentage:
+	 */
+	spec = g_param_spec_uint ("percentage",
+				  "Percentage", "Percentage transaction complete",
+				  0, 101, 0,
+				  G_PARAM_READABLE);
+	g_object_class_install_property (object_class, PROP_PERCENTAGE, spec);
+
+	/**
+	 * PkTransaction:subpercentage:
+	 */
+	spec = g_param_spec_uint ("subpercentage",
+				  "Sub-percentage", "Percentage sub-transaction complete",
+				  0, 101, 0,
+				  G_PARAM_READABLE);
+	g_object_class_install_property (object_class, PROP_SUBPERCENTAGE, spec);
+
+	/**
+	 * PkTransaction:allow-cancel:
+	 */
+	spec = g_param_spec_boolean ("allow-cancel",
+				     "Allow cancel", "If the transaction can be cancelled",
+				     FALSE,
+				     G_PARAM_READABLE);
+	g_object_class_install_property (object_class, PROP_ALLOW_CANCEL, spec);
+
+	/**
+	 * PkTransaction:caller-active:
+	 */
+	spec = g_param_spec_boolean ("caller-active",
+				     "Caller Active", "If the transaction caller is still active",
+				     TRUE,
+				     G_PARAM_READABLE);
+	g_object_class_install_property (object_class, PROP_CALLER_ACTIVE, spec);
 
 	signals [PK_TRANSACTION_ALLOW_CANCEL] =
 		g_signal_new ("allow-cancel",
@@ -4819,6 +4917,7 @@ pk_transaction_init (PkTransaction *transaction)
 	transaction->priv->emit_eula_required = FALSE;
 	transaction->priv->emit_signature_required = FALSE;
 	transaction->priv->emit_media_change_required = FALSE;
+	transaction->priv->caller_active = TRUE;
 	transaction->priv->cached_enabled = FALSE;
 	transaction->priv->cached_only_trusted = TRUE;
 	transaction->priv->cached_key_id = NULL;
commit 1d83ab15f7d60db0ba6dad509c69d6270589ee34
Author: Richard Hughes <richard at hughsie.com>
Date:   Tue Sep 1 11:52:58 2009 +0100

    glib2: simplify the guint->gint conversion

diff --git a/lib/packagekit-glib2/pk-client.c b/lib/packagekit-glib2/pk-client.c
index 1669a2b..bea6a6a 100644
--- a/lib/packagekit-glib2/pk-client.c
+++ b/lib/packagekit-glib2/pk-client.c
@@ -447,6 +447,17 @@ pk_client_package_cb (DBusGProxy *proxy, const gchar *info_text, const gchar *pa
 }
 
 /**
+ * pk_client_percentage_to_signed:
+ */
+static gint
+pk_client_percentage_to_signed (guint percentage)
+{
+	if (percentage == 101)
+		return -1;
+	return (gint) percentage
+}
+
+/**
  * pk_client_progress_changed_cb:
  */
 static void
@@ -457,14 +468,8 @@ pk_client_progress_changed_cb (DBusGProxy *proxy, guint percentage, guint subper
 	gint subpercentage_new;
 
 	/* convert to signed */
-	percentage_new = (gint) percentage;
-	subpercentage_new = (gint) subpercentage;
-
-	/* daemon is odd, and says that unknown is 101 */
-	if (percentage_new == 101)
-		percentage_new = -1;
-	if (subpercentage_new == 101)
-		subpercentage_new = -1;
+	percentage_new = pk_client_percentage_to_signed (percentage);
+	subpercentage_new = pk_client_percentage_to_signed (subpercentage);
 
 	/* save progress */
 	g_object_set (state->progress,
commit 5fd55f6a9a977049986c5105cea7d38084e0d7c7
Author: Richard Hughes <richard at hughsie.com>
Date:   Tue Sep 1 11:14:00 2009 +0100

    glib2: allow PkControl to get properties

diff --git a/lib/packagekit-glib2/pk-control.c b/lib/packagekit-glib2/pk-control.c
index 3210b11..ef6a11c 100644
--- a/lib/packagekit-glib2/pk-control.c
+++ b/lib/packagekit-glib2/pk-control.c
@@ -42,9 +42,9 @@ static void     pk_control_finalize	(GObject     *object);
  **/
 struct _PkControlPrivate
 {
-	DBusGProxyCall		*call;
 	GPtrArray		*calls;
 	DBusGProxy		*proxy;
+	DBusGProxy		*proxy_props;
 	DBusGConnection		*connection;
 	gboolean		 version_major;
 	gboolean		 version_minor;
@@ -427,7 +427,7 @@ pk_control_set_proxy_state_finish (PkControlState *state, GError *error)
 	}
 
 	/* get result */
-	if (state->mime_types != NULL) {
+	if (state->ret) {
 		g_simple_async_result_set_op_res_gboolean (state->res, state->ret);
 	} else {
 		g_simple_async_result_set_from_error (state->res, error);
@@ -1586,6 +1586,172 @@ pk_control_can_authorize_finish (PkControl *control, GAsyncResult *res, GError *
 /***************************************************************************************************/
 
 /**
+ * pk_control_get_properties_state_finish:
+ **/
+static void
+pk_control_get_properties_state_finish (PkControlState *state, GError *error)
+{
+	/* remove weak ref */
+	if (state->control != NULL)
+		g_object_remove_weak_pointer (G_OBJECT (state->control), (gpointer) &state->control);
+
+	/* cancel */
+	if (state->cancellable != NULL) {
+		g_cancellable_cancel (state->cancellable);
+		g_object_unref (state->cancellable);
+	}
+
+	/* get result */
+	if (state->ret) {
+		g_simple_async_result_set_op_res_gboolean (state->res, state->ret);
+	} else {
+		g_simple_async_result_set_from_error (state->res, error);
+		g_error_free (error);
+	}
+
+	/* remove from list */
+	g_ptr_array_remove (state->control->priv->calls, state);
+
+	/* complete */
+	g_simple_async_result_complete_in_idle (state->res);
+
+	/* deallocate */
+	g_object_unref (state->res);
+	g_slice_free (PkControlState, state);
+}
+
+/**
+ * pk_control_get_properties_collect_cb:
+ **/
+static void
+pk_control_get_properties_collect_cb (const char *key, const GValue *value, PkControl *control)
+{
+	if (g_strcmp0 (key, "version-major") == 0)
+		control->priv->version_major = g_value_get_uint (value);
+	else if (g_strcmp0 (key, "version-minor") == 0)
+		control->priv->version_minor = g_value_get_uint (value);
+	else if (g_strcmp0 (key, "version-micro") == 0)
+		control->priv->version_micro = g_value_get_uint (value);
+	else
+		egg_warning ("unhandled property '%s'", key);
+}
+
+/**
+ * pk_control_get_properties_cb:
+ **/
+static void
+pk_control_get_properties_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkControlState *state)
+{
+	GError *error = NULL;
+	gchar *tid = NULL;
+	gboolean ret;
+	GHashTable *hash;
+
+	/* get the result */
+	ret = dbus_g_proxy_end_call (proxy, call, &error,
+				     dbus_g_type_get_map ("GHashTable", G_TYPE_STRING, G_TYPE_VALUE), &hash,
+				     G_TYPE_INVALID);
+	if (!ret) {
+		egg_warning ("failed to set proxy: %s", error->message);
+		pk_control_get_properties_state_finish (state, error);
+		goto out;
+	}
+
+	/* finished this call */
+	state->call = NULL;
+
+	/* save data */
+	state->ret = TRUE;
+
+	/* process results */
+	if (hash != NULL) {
+		g_hash_table_foreach (hash, (GHFunc) pk_control_get_properties_collect_cb, state->control);
+		g_hash_table_unref (hash);
+	}
+
+	/* we're done */
+	pk_control_get_properties_state_finish (state, error);
+out:
+	g_free (tid);
+}
+
+/**
+ * pk_control_get_properties_async:
+ * @control: a valid #PkControl instance
+ * @proxy_http: a HTTP proxy string such as "username:password at server.lan:8080"
+ * @proxy_ftp: a FTP proxy string such as "server.lan:8080"
+ * @cancellable: a #GCancellable or %NULL
+ * @callback: the function to run on completion
+ * @user_data: the data to pass to @callback
+ *
+ * Set a proxy on the PK daemon
+ **/
+void
+pk_control_get_properties_async (PkControl *control, GCancellable *cancellable,
+			    GAsyncReadyCallback callback, gpointer user_data)
+{
+	GSimpleAsyncResult *res;
+	PkControlState *state;
+
+	g_return_if_fail (PK_IS_CONTROL (control));
+	g_return_if_fail (callback != NULL);
+
+	res = g_simple_async_result_new (G_OBJECT (control), callback, user_data, pk_control_get_properties_async);
+
+	/* save state */
+	state = g_slice_new0 (PkControlState);
+	state->res = g_object_ref (res);
+	if (cancellable != NULL)
+		state->cancellable = g_object_ref (cancellable);
+	state->control = control;
+	g_object_add_weak_pointer (G_OBJECT (state->control), (gpointer) &state->control);
+
+	/* call D-Bus get_properties async */
+	state->call = dbus_g_proxy_begin_call (control->priv->proxy_props, "GetAll",
+					       (DBusGProxyCallNotify) pk_control_get_properties_cb, state, NULL,
+					       G_TYPE_STRING, "org.freedesktop.PackageKit",
+					       G_TYPE_INVALID);
+
+	/* track state */
+	g_ptr_array_add (control->priv->calls, state);
+
+	g_object_unref (res);
+}
+
+/**
+ * pk_control_get_properties_finish:
+ * @control: a valid #PkControl instance
+ * @res: the #GAsyncResult
+ * @error: A #GError or %NULL
+ *
+ * Gets the result from the asynchronous function.
+ *
+ * Return value: %TRUE if we set the proxy successfully
+ **/
+gboolean
+pk_control_get_properties_finish (PkControl *control, GAsyncResult *res, GError **error)
+{
+	GSimpleAsyncResult *simple;
+	gpointer source_tag;
+
+	g_return_val_if_fail (PK_IS_CONTROL (control), FALSE);
+	g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (res), FALSE);
+	g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+
+	simple = G_SIMPLE_ASYNC_RESULT (res);
+	source_tag = g_simple_async_result_get_source_tag (simple);
+
+	g_return_val_if_fail (source_tag == pk_control_get_properties_async, FALSE);
+
+	if (g_simple_async_result_propagate_error (simple, error))
+		return FALSE;
+
+	return g_simple_async_result_get_op_res_gboolean (simple);
+}
+
+/***************************************************************************************************/
+
+/**
  * pk_control_get_daemon_state:
  * @control: a valid #PkControl instance
  * @error: a %GError to put the error code and message in, or %NULL
@@ -1742,83 +1908,6 @@ pk_control_locked_cb (DBusGProxy *proxy, gboolean is_locked, PkControl *control)
 }
 
 /**
- * pk_control_set_properties_collect_cb:
- **/
-static void
-pk_control_set_properties_collect_cb (const char *key, const GValue *value, PkControl *control)
-{
-	if (g_strcmp0 (key, "version-major") == 0)
-		control->priv->version_major = g_value_get_uint (value);
-	else if (g_strcmp0 (key, "version-minor") == 0)
-		control->priv->version_minor = g_value_get_uint (value);
-	else if (g_strcmp0 (key, "version-micro") == 0)
-		control->priv->version_micro = g_value_get_uint (value);
-	else
-		egg_warning ("unhandled property '%s'", key);
-}
-
-/**
- * pk_control_set_properties_cb:
- **/
-static void
-pk_control_set_properties_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkControl *control)
-{
-	GError *error = NULL;
-	gboolean ret;
-	GHashTable *hash;
-
-	/* finished call */
-	control->priv->call = NULL;
-
-	/* we've sent this async */
-	egg_debug ("got reply to request");
-
-	/* get the result */
-	ret = dbus_g_proxy_end_call (proxy, call, &error,
-				     dbus_g_type_get_map ("GHashTable", G_TYPE_STRING, G_TYPE_VALUE),
-				     &hash,
-				     G_TYPE_INVALID);
-	if (!ret) {
-		/* fix up the D-Bus error */
-		pk_control_fixup_dbus_error (error);
-		egg_warning ("failed to get properties: %s", error->message);
-		return;
-	}
-
-	/* process results */
-	if (hash != NULL) {
-		g_hash_table_foreach (hash, (GHFunc) pk_control_set_properties_collect_cb, control);
-		g_hash_table_unref (hash);
-	}
-	g_object_unref (proxy);
-}
-
-/**
- * pk_control_set_properties:
- **/
-static void
-pk_control_set_properties (PkControl *control)
-{
-	DBusGProxy *proxy;
-
-	/* connect to the correct path for properties */
-	proxy = dbus_g_proxy_new_for_name (control->priv->connection,
-					   "org.freedesktop.PackageKit",
-					   "/org/freedesktop/PackageKit",
-					   "org.freedesktop.DBus.Properties");
-	if (proxy == NULL) {
-		egg_warning ("Couldn't connect to proxy");
-		return;
-	}
-
-	/* does an async call, so properties may not be set until some time after the object is setup */
-	control->priv->call = dbus_g_proxy_begin_call (proxy, "GetAll",
-						       (DBusGProxyCallNotify) pk_control_set_properties_cb, control, NULL,
-						       G_TYPE_STRING, "org.freedesktop.PackageKit",
-					               G_TYPE_INVALID);
-}
-
-/**
  * pk_control_cancel_all_dbus_methods:
  **/
 static gboolean
@@ -2011,7 +2100,6 @@ pk_control_init (PkControl *control)
 	GError *error = NULL;
 
 	control->priv = PK_CONTROL_GET_PRIVATE (control);
-	control->priv->call = NULL;
 	control->priv->calls = g_ptr_array_new ();
 
 	/* check dbus connections, exit if not valid */
@@ -2027,12 +2115,20 @@ pk_control_init (PkControl *control)
 	control->priv->version_minor = 0;
 	control->priv->version_micro = 0;
 
-	/* get a connection to the engine object */
+	/* get a connection to the main interface */
 	control->priv->proxy = dbus_g_proxy_new_for_name (control->priv->connection,
-							  PK_DBUS_SERVICE, PK_DBUS_PATH, PK_DBUS_INTERFACE);
+							  PK_DBUS_SERVICE, PK_DBUS_PATH,
+							  PK_DBUS_INTERFACE);
 	if (control->priv->proxy == NULL)
 		egg_error ("Cannot connect to PackageKit.");
 
+	/* get a connection to collect properties */
+	control->priv->proxy_props = dbus_g_proxy_new_for_name (control->priv->connection,
+								PK_DBUS_SERVICE, PK_DBUS_PATH,
+								"org.freedesktop.DBus.Properties");
+	if (control->priv->proxy_props == NULL)
+		egg_error ("Cannot connect to PackageKit.");
+
 	/* don't timeout, as dbus-glib sets the timeout ~25 seconds */
 	dbus_g_proxy_set_default_timeout (control->priv->proxy, INT_MAX);
 
@@ -2063,9 +2159,6 @@ pk_control_init (PkControl *control)
 	dbus_g_proxy_add_signal (control->priv->proxy, "Locked", G_TYPE_BOOLEAN, G_TYPE_INVALID);
 	dbus_g_proxy_connect_signal (control->priv->proxy, "Locked",
 				     G_CALLBACK (pk_control_locked_cb), control, NULL);
-
-	/* get properties async if they exist */
-if (0)	pk_control_set_properties (control);
 }
 
 /**
@@ -2078,12 +2171,6 @@ pk_control_finalize (GObject *object)
 	PkControl *control = PK_CONTROL (object);
 	PkControlPrivate *priv = control->priv;
 
-	/* if we have a request in flight, cancel it */
-	if (control->priv->call != NULL) {
-		egg_warning ("cancel in flight call");
-		dbus_g_proxy_cancel_call (control->priv->proxy, control->priv->call);
-	}
-
 	/* ensure we cancel any in-flight DBus calls */
 	pk_control_cancel_all_dbus_methods (control);
 
@@ -2102,6 +2189,7 @@ pk_control_finalize (GObject *object)
 				        G_CALLBACK (pk_control_restart_schedule_cb), control);
 
 	g_object_unref (G_OBJECT (priv->proxy));
+	g_object_unref (G_OBJECT (priv->proxy_props));
 	g_ptr_array_unref (control->priv->calls);
 
 	G_OBJECT_CLASS (pk_control_parent_class)->finalize (object);
@@ -2324,6 +2412,24 @@ pk_control_test_can_authorize_cb (GObject *object, GAsyncResult *res, EggTest *t
 	egg_test_loop_quit (test);
 }
 
+static void
+pk_control_test_get_properties_cb (GObject *object, GAsyncResult *res, EggTest *test)
+{
+	PkControl *control = PK_CONTROL (object);
+	GError *error = NULL;
+	gboolean ret;
+
+	/* get the result */
+	ret = pk_control_get_properties_finish (control, res, &error);
+	if (!ret) {
+		egg_test_failed (test, "failed to get properties: %s", error->message);
+		g_error_free (error);
+		return;
+	}
+
+	egg_test_loop_quit (test);
+}
+
 void
 pk_control_test (EggTest *test)
 {
@@ -2387,7 +2493,13 @@ pk_control_test (EggTest *test)
 	egg_test_loop_wait (test, 5000);
 	egg_test_success (test, "get auth state in %i", egg_test_elapsed (test));
 
-#if 0
+	/************************************************************/
+	egg_test_title (test, "get properties async");
+	pk_control_get_properties_async (control, NULL,
+					 (GAsyncReadyCallback) pk_control_test_get_properties_cb, test);
+	egg_test_loop_wait (test, 5000);
+	egg_test_success (test, "get properties in %i", egg_test_elapsed (test));
+
 	/************************************************************/
 	egg_test_title (test, "version major");
 	g_object_get (control, "version-major", &version, NULL);
@@ -2402,7 +2514,6 @@ pk_control_test (EggTest *test)
 	egg_test_title (test, "version micro");
 	g_object_get (control, "version-micro", &version, NULL);
 	egg_test_assert (test, (version == PK_MICRO_VERSION));
-#endif
 
 	g_object_unref (control);
 out:
diff --git a/lib/packagekit-glib2/pk-control.h b/lib/packagekit-glib2/pk-control.h
index 46fccbb..d24bc82 100644
--- a/lib/packagekit-glib2/pk-control.h
+++ b/lib/packagekit-glib2/pk-control.h
@@ -173,6 +173,13 @@ gboolean	 pk_control_get_backend_detail		(PkControl		*control,
 							 gchar			**name,
 							 gchar			**author,
 							 GError			**error);
+void		 pk_control_get_properties_async	(PkControl		*control,
+							 GCancellable		*cancellable,
+							 GAsyncReadyCallback	 callback,
+							 gpointer		 user_data);
+gboolean	 pk_control_get_properties_finish	(PkControl		*control,
+							 GAsyncResult		*res,
+							 GError			**error);
 
 G_END_DECLS
 
commit 6c25b7ff8126e7d7e65228633f929dbf076a6491
Author: Richard Hughes <richard at hughsie.com>
Date:   Tue Sep 1 10:57:16 2009 +0100

    glib2: do more with error codes and domains

diff --git a/lib/packagekit-glib2/pk-client.c b/lib/packagekit-glib2/pk-client.c
index 7819686..1669a2b 100644
--- a/lib/packagekit-glib2/pk-client.c
+++ b/lib/packagekit-glib2/pk-client.c
@@ -366,6 +366,7 @@ pk_client_finished_cb (DBusGProxy *proxy, const gchar *exit_text, guint runtime,
 {
 	GError *error = NULL;
 	PkExitEnum exit_enum;
+	const PkResultItemErrorCode *error_item;
 
 	egg_debug ("exit_text=%s", exit_text);
 
@@ -374,9 +375,17 @@ pk_client_finished_cb (DBusGProxy *proxy, const gchar *exit_text, guint runtime,
 	pk_results_set_exit_code (state->results, exit_enum);
 
 	/* failed */
-	if (exit_enum != PK_EXIT_ENUM_SUCCESS) {
-		/* TODO: get error code and error message */
-		error = g_error_new (1, 0, "Failed to run: %s", exit_text);
+	if (exit_enum == PK_EXIT_ENUM_FAILED) {
+
+		/* get error code and error message */
+		error_item = pk_results_get_error_code (state->results);
+		if (error_item != NULL) {
+			/* should only ever have one ErrorCode */
+			error = g_error_new (PK_CLIENT_ERROR, 0xFF + error_item->code, "%s", error_item->details);
+		} else {
+			/* fallback where the daemon didn't sent ErrorCode */
+			error = g_error_new (PK_CLIENT_ERROR, PK_CLIENT_ERROR_FAILED, "Failed: %s", exit_text);
+		}
 		pk_client_state_finish (state, error);
 		return;
 	}
@@ -3012,6 +3021,7 @@ pk_client_test_search_name_cb (GObject *object, GAsyncResult *res, EggTest *test
 	GError *error = NULL;
 	PkResults *results = NULL;
 	PkExitEnum exit_enum;
+	const PkResultItemErrorCode *error_item;
 
 	/* get the results */
 	results = pk_client_generic_finish (client, res, &error);
@@ -3025,6 +3035,13 @@ pk_client_test_search_name_cb (GObject *object, GAsyncResult *res, EggTest *test
 	if (exit_enum != PK_EXIT_ENUM_CANCELLED)
 		egg_test_failed (test, "failed to cancel search: %s", pk_exit_enum_to_text (exit_enum));
 
+	/* check error code */
+	error_item = pk_results_get_error_code (results);
+	if (error_item->code != PK_ERROR_ENUM_TRANSACTION_CANCELLED)
+		egg_test_failed (test, "failed to get error code: %i", error_item->code);
+	if (g_strcmp0 (error_item->details, "The task was stopped successfully") != 0)
+		egg_test_failed (test, "failed to get error message: %s", error_item->details);
+
 	egg_test_loop_quit (test);
 }
 
commit 52e4079c41074657b8d55c18b11c302ed957f690
Author: Richard Hughes <richard at hughsie.com>
Date:   Tue Sep 1 10:50:49 2009 +0100

    glib2: add a convenience pk_results_get_error_code() function

diff --git a/lib/packagekit-glib2/pk-results.c b/lib/packagekit-glib2/pk-results.c
index c087444..f74507f 100644
--- a/lib/packagekit-glib2/pk-results.c
+++ b/lib/packagekit-glib2/pk-results.c
@@ -948,6 +948,27 @@ pk_results_get_error_code_array (PkResults *results)
 }
 
 /**
+ * pk_results_get_error_code:
+ * @results: a valid #PkResults instance
+ *
+ * Gets the last error code from the transaction.
+ *
+ * Return value: A #PkResultItemErrorCode, or %NULL
+ **/
+const PkResultItemErrorCode *
+pk_results_get_error_code (PkResults *results)
+{
+	GPtrArray *array;
+
+	g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
+
+	array = results->priv->error_code_array;
+	if (array->len == 0)
+		return NULL;
+	return g_ptr_array_index (array, 0);
+}
+
+/**
  * pk_results_get_message_array:
  * @results: a valid #PkResults instance
  *
diff --git a/lib/packagekit-glib2/pk-results.h b/lib/packagekit-glib2/pk-results.h
index b714c45..2d0834a 100644
--- a/lib/packagekit-glib2/pk-results.h
+++ b/lib/packagekit-glib2/pk-results.h
@@ -343,6 +343,7 @@ gboolean	 pk_results_add_message 		(PkResults		*results,
 /* get single data */
 PkExitEnum	 pk_results_get_exit_code		(PkResults		*results);
 PkPackageSack	*pk_results_get_package_sack		(PkResults		*results);
+const PkResultItemErrorCode *pk_results_get_error_code	(PkResults		*results);
 
 /* get array objects */
 GPtrArray	*pk_results_get_package_array		(PkResults		*results);
commit 64ca5c70702b55804475ed7eb23f8c945240ba8e
Author: Richard Hughes <richard at hughsie.com>
Date:   Tue Sep 1 10:35:29 2009 +0100

    glib2: Add a boatload of gtk-doc markup from glib

diff --git a/lib/packagekit-glib2/pk-client.c b/lib/packagekit-glib2/pk-client.c
index b0b3d2e..7819686 100644
--- a/lib/packagekit-glib2/pk-client.c
+++ b/lib/packagekit-glib2/pk-client.c
@@ -212,6 +212,62 @@ out:
 }
 
 /**
+ * pk_client_real_path:
+ *
+ * Resolves paths like ../../Desktop/bar.rpm to /home/hughsie/Desktop/bar.rpm
+ * TODO: We should use canonicalize_filename() in gio/glocalfile.c as realpath()
+ * is crap.
+ **/
+static gchar *
+pk_client_real_path (const gchar *path)
+{
+	gchar *real = NULL;
+	gchar *temp;
+
+	/* don't trust realpath one little bit */
+	if (path == NULL)
+		return NULL;
+
+#ifndef __FreeBSD__
+	/* ITS4: ignore, glibc allocates us a buffer to try and fix some brain damage */
+	temp = realpath (path, NULL);
+	if (temp != NULL) {
+		real = g_strdup (temp);
+		/* yes, free, not g_free */
+		free (temp);
+	}
+#else /* __FreeBSD__ */
+{
+	gchar abs_path[PATH_MAX];
+	temp = realpath (path, abs_path);
+	if (temp != NULL)
+		real = g_strdup (temp);
+}
+#endif
+	return real;
+}
+
+/**
+ * pk_client_real_paths:
+ **/
+static gchar **
+pk_client_real_paths (gchar **paths)
+{
+	guint i;
+	guint len;
+	gchar **res;
+
+	/* create output array */
+	len = g_strv_length (paths);
+	res = g_new0 (gchar *, len+1);
+
+	/* resolve each path */
+	for (i=0; i<len; i++)
+		res[i] = pk_client_real_path (paths[i]);
+	return res;
+}
+
+/**
  * pk_client_cancel_cb:
  **/
 static void
@@ -1084,13 +1140,17 @@ pk_client_generic_finish (PkClient *client, GAsyncResult *res, GError **error)
 /**
  * pk_client_resolve_async:
  * @client: a valid #PkClient instance
+ * @filters: a %PkBitfield such as %PK_FILTER_ENUM_GUI | %PK_FILTER_ENUM_FREE or %PK_FILTER_ENUM_NONE
+ * @packages: an array of package names to resolve, e.g. "gnome-system-tools"
  * @cancellable: a #GCancellable or %NULL
  * @progress_callback: the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback_ready
  *
- * TODO
+ * Resolve a package name into a %package_id. This can return installed and
+ * available packages and allows you find out if a package is installed locally
+ * or is available in a repository.
  **/
 void
 pk_client_resolve_async (PkClient *client, PkBitfield filters, gchar **packages, GCancellable *cancellable,
@@ -1129,13 +1189,16 @@ pk_client_resolve_async (PkClient *client, PkBitfield filters, gchar **packages,
 /**
  * pk_client_search_name_async:
  * @client: a valid #PkClient instance
+ * @filters: a %PkBitfield such as %PK_FILTER_ENUM_GUI | %PK_FILTER_ENUM_FREE or %PK_FILTER_ENUM_NONE
+ * @search: free text to search for, for instance, "power"
  * @cancellable: a #GCancellable or %NULL
  * @progress_callback: the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback_ready
  *
- * TODO
+ * Search all the locally installed files and remote repositories for a package
+ * that matches a specific name.
  **/
 void
 pk_client_search_name_async (PkClient *client, PkBitfield filters, const gchar *search, GCancellable *cancellable,
@@ -1174,13 +1237,17 @@ pk_client_search_name_async (PkClient *client, PkBitfield filters, const gchar *
 /**
  * pk_client_search_details_async:
  * @client: a valid #PkClient instance
+ * @filters: a %PkBitfield such as %PK_FILTER_ENUM_GUI | %PK_FILTER_ENUM_FREE or %PK_FILTER_ENUM_NONE
+ * @search: free text to search for, for instance, "power"
  * @cancellable: a #GCancellable or %NULL
  * @progress_callback: the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback_ready
  *
- * TODO
+ * Search all detailed summary information to try and find a keyword.
+ * Think of this as pk_client_search_name(), but trying much harder and
+ * taking longer.
  **/
 void
 pk_client_search_details_async (PkClient *client, PkBitfield filters, const gchar *search, GCancellable *cancellable,
@@ -1219,13 +1286,15 @@ pk_client_search_details_async (PkClient *client, PkBitfield filters, const gcha
 /**
  * pk_client_search_group_async:
  * @client: a valid #PkClient instance
+ * @filters: a %PkBitfield such as %PK_FILTER_ENUM_GUI | %PK_FILTER_ENUM_FREE or %PK_FILTER_ENUM_NONE
+ * @search: a group enum to search for, for instance, "system-tools"
  * @cancellable: a #GCancellable or %NULL
  * @progress_callback: the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback_ready
  *
- * TODO
+ * Return all packages in a specific group.
  **/
 void
 pk_client_search_group_async (PkClient *client, PkBitfield filters, const gchar *search, GCancellable *cancellable,
@@ -1264,13 +1333,15 @@ pk_client_search_group_async (PkClient *client, PkBitfield filters, const gchar
 /**
  * pk_client_search_file_async:
  * @client: a valid #PkClient instance
+ * @filters: a %PkBitfield such as %PK_FILTER_ENUM_GUI | %PK_FILTER_ENUM_FREE or %PK_FILTER_ENUM_NONE
+ * @search: file to search for, for instance, "/sbin/service"
  * @cancellable: a #GCancellable or %NULL
  * @progress_callback: the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback_ready
  *
- * TODO
+ * Search for packages that provide a specific file.
  **/
 void
 pk_client_search_file_async (PkClient *client, PkBitfield filters, const gchar *search, GCancellable *cancellable,
@@ -1309,13 +1380,15 @@ pk_client_search_file_async (PkClient *client, PkBitfield filters, const gchar *
 /**
  * pk_client_get_details_async:
  * @client: a valid #PkClient instance
+ * @package_ids: a null terminated array of package_id structures such as "hal;0.0.1;i386;fedora"
  * @cancellable: a #GCancellable or %NULL
  * @progress_callback: the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback_ready
  *
- * TODO
+ * Get details of a package, so more information can be obtained for GUI
+ * or command line tools.
  **/
 void
 pk_client_get_details_async (PkClient *client, gchar **package_ids, GCancellable *cancellable,
@@ -1359,7 +1432,8 @@ pk_client_get_details_async (PkClient *client, gchar **package_ids, GCancellable
  * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback_ready
  *
- * TODO
+ * Get details about the specific update, for instance any CVE urls and
+ * severity information.
  **/
 void
 pk_client_get_update_detail_async (PkClient *client, gchar **package_ids, GCancellable *cancellable,
@@ -1397,13 +1471,15 @@ pk_client_get_update_detail_async (PkClient *client, gchar **package_ids, GCance
 /**
  * pk_client_download_packages_async:
  * @client: a valid #PkClient instance
+ * @package_ids: a null terminated array of package_id structures such as "hal;0.0.1;i386;fedora"
+ * @directory: the location where packages are to be downloaded
  * @cancellable: a #GCancellable or %NULL
  * @progress_callback: the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback_ready
  *
- * TODO
+ * Downloads package files to a specified location.
  **/
 void
 pk_client_download_packages_async (PkClient *client, gchar **package_ids, const gchar *directory, GCancellable *cancellable,
@@ -1442,13 +1518,14 @@ pk_client_download_packages_async (PkClient *client, gchar **package_ids, const
 /**
  * pk_client_get_updates_async:
  * @client: a valid #PkClient instance
+ * @filters: a %PkBitfield such as %PK_FILTER_ENUM_DEVEL or %PK_FILTER_ENUM_NONE
  * @cancellable: a #GCancellable or %NULL
  * @progress_callback: the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback_ready
  *
- * TODO
+ * Get a list of all the packages that can be updated for all repositories.
  **/
 void
 pk_client_get_updates_async (PkClient *client, PkBitfield filters, GCancellable *cancellable,
@@ -1486,13 +1563,14 @@ pk_client_get_updates_async (PkClient *client, PkBitfield filters, GCancellable
 /**
  * pk_client_get_old_transactions_async:
  * @client: a valid #PkClient instance
+ * @number: the number of past transactions to return, or 0 for all
  * @cancellable: a #GCancellable or %NULL
  * @progress_callback: the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback_ready
  *
- * TODO
+ * Get the old transaction list, mainly used for the rollback viewer.
  **/
 void
 pk_client_get_old_transactions_async (PkClient *client, guint number, GCancellable *cancellable,
@@ -1530,13 +1608,19 @@ pk_client_get_old_transactions_async (PkClient *client, guint number, GCancellab
 /**
  * pk_client_update_system_async:
  * @client: a valid #PkClient instance
+ * @only_trusted: only trusted packages should be installed
  * @cancellable: a #GCancellable or %NULL
  * @progress_callback: the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback_ready
  *
- * TODO
+ * Update all the packages on the system with the highest versions found in all
+ * repositories.
+ * NOTE: you can't choose what repositories to update from, but you can do:
+ * - pk_client_repo_disable()
+ * - pk_client_update_system()
+ * - pk_client_repo_enable()
  **/
 void
 pk_client_update_system_async (PkClient *client, gboolean only_trusted, GCancellable *cancellable,
@@ -1574,13 +1658,16 @@ pk_client_update_system_async (PkClient *client, gboolean only_trusted, GCancell
 /**
  * pk_client_get_depends_async:
  * @client: a valid #PkClient instance
+ * @filters: a %PkBitfield such as %PK_FILTER_ENUM_GUI | %PK_FILTER_ENUM_FREE or %PK_FILTER_ENUM_NONE
+ * @package_ids: a null terminated array of package_id structures such as "hal;0.0.1;i386;fedora"
+ * @recursive: If we should search recursively for depends
  * @cancellable: a #GCancellable or %NULL
  * @progress_callback: the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback_ready
  *
- * TODO
+ * Get the packages that depend this one, i.e. child->parent.
  **/
 void
 pk_client_get_depends_async (PkClient *client, PkBitfield filters, gchar **package_ids, gboolean recursive, GCancellable *cancellable,
@@ -1620,13 +1707,14 @@ pk_client_get_depends_async (PkClient *client, PkBitfield filters, gchar **packa
 /**
  * pk_client_get_packages_async:
  * @client: a valid #PkClient instance
+ * @filters: a %PkBitfield such as %PK_FILTER_ENUM_GUI | %PK_FILTER_ENUM_FREE or %PK_FILTER_ENUM_NONE
  * @cancellable: a #GCancellable or %NULL
  * @progress_callback: the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback_ready
  *
- * TODO
+ * Get the list of packages from the backend
  **/
 void
 pk_client_get_packages_async (PkClient *client, PkBitfield filters, GCancellable *cancellable,
@@ -1664,13 +1752,16 @@ pk_client_get_packages_async (PkClient *client, PkBitfield filters, GCancellable
 /**
  * pk_client_get_requires_async:
  * @client: a valid #PkClient instance
+ * @filters: a %PkBitfield such as %PK_FILTER_ENUM_GUI | %PK_FILTER_ENUM_FREE or %PK_FILTER_ENUM_NONE
+ * @package_ids: a null terminated array of package_id structures such as "hal;0.0.1;i386;fedora"
+ * @recursive: If we should search recursively for requires
  * @cancellable: a #GCancellable or %NULL
  * @progress_callback: the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback_ready
  *
- * TODO
+ * Get the packages that require this one, i.e. parent->child.
  **/
 void
 pk_client_get_requires_async (PkClient *client, PkBitfield filters, gchar **package_ids, gboolean recursive, GCancellable *cancellable,
@@ -1710,13 +1801,18 @@ pk_client_get_requires_async (PkClient *client, PkBitfield filters, gchar **pack
 /**
  * pk_client_what_provides_async:
  * @client: a valid #PkClient instance
+ * @filters: a %PkBitfield such as %PK_FILTER_ENUM_GUI | %PK_FILTER_ENUM_FREE or %PK_FILTER_ENUM_NONE
+ * @provides: a #PkProvidesEnum value such as PK_PROVIDES_ENUM_CODEC
+ * @search: a search term such as "sound/mp3"
  * @cancellable: a #GCancellable or %NULL
  * @progress_callback: the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback_ready
  *
- * TODO
+ * This should return packages that provide the supplied attributes.
+ * This method is useful for finding out what package(s) provide a modalias
+ * or GStreamer codec string.
  **/
 void
 pk_client_what_provides_async (PkClient *client, PkBitfield filters, PkProvidesEnum provides, const gchar *search, GCancellable *cancellable,
@@ -1762,7 +1858,8 @@ pk_client_what_provides_async (PkClient *client, PkBitfield filters, PkProvidesE
  * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback_ready
  *
- * TODO
+ * This method should return a list of distribution upgrades that are available.
+ * It should not return updates, only major upgrades.
  **/
 void
 pk_client_get_distro_upgrades_async (PkClient *client, GCancellable *cancellable,
@@ -1799,13 +1896,14 @@ pk_client_get_distro_upgrades_async (PkClient *client, GCancellable *cancellable
 /**
  * pk_client_get_files_async:
  * @client: a valid #PkClient instance
+ * @package_ids: a null terminated array of package_id structures such as "hal;0.0.1;i386;fedora"
  * @cancellable: a #GCancellable or %NULL
  * @progress_callback: the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback_ready
  *
- * TODO
+ * Get the file list (i.e. a list of files installed) for the specified package.
  **/
 void
 pk_client_get_files_async (PkClient *client, gchar **package_ids, GCancellable *cancellable,
@@ -1849,7 +1947,7 @@ pk_client_get_files_async (PkClient *client, gchar **package_ids, GCancellable *
  * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback_ready
  *
- * TODO
+ * Get a list of all categories supported.
  **/
 void
 pk_client_get_categories_async (PkClient *client, GCancellable *cancellable,
@@ -1886,13 +1984,18 @@ pk_client_get_categories_async (PkClient *client, GCancellable *cancellable,
 /**
  * pk_client_remove_packages_async:
  * @client: a valid #PkClient instance
+ * @package_ids: a null terminated array of package_id structures such as "hal;0.0.1;i386;fedora"
+ * @allow_deps: if other dependant packages are allowed to be removed from the computer
+ * @autoremove: if other packages installed at the same time should be tried to remove
  * @cancellable: a #GCancellable or %NULL
  * @progress_callback: the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback_ready
  *
- * TODO
+ * Remove a package (optionally with dependancies) from the system.
+ * If %allow_deps is set to %FALSE, and other packages would have to be removed,
+ * then the transaction would fail.
  **/
 void
 pk_client_remove_packages_async (PkClient *client, gchar **package_ids, gboolean allow_deps, gboolean autoremove, GCancellable *cancellable,
@@ -1932,13 +2035,17 @@ pk_client_remove_packages_async (PkClient *client, gchar **package_ids, gboolean
 /**
  * pk_client_refresh_cache_async:
  * @client: a valid #PkClient instance
+ * @force: if we should aggressively drop caches
  * @cancellable: a #GCancellable or %NULL
  * @progress_callback: the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback_ready
  *
- * TODO
+ * Refresh the cache, i.e. download new metadata from a remote URL so that
+ * package lists are up to date.
+ * This action may take a few minutes and should be done when the session and
+ * system are idle.
  **/
 void
 pk_client_refresh_cache_async (PkClient *client, gboolean force, GCancellable *cancellable,
@@ -1976,13 +2083,15 @@ pk_client_refresh_cache_async (PkClient *client, gboolean force, GCancellable *c
 /**
  * pk_client_install_packages_async:
  * @client: a valid #PkClient instance
+ * @only_trusted: only trusted packages should be installed
+ * @package_ids: a null terminated array of package_id structures such as "hal;0.0.1;i386;fedora"
  * @cancellable: a #GCancellable or %NULL
  * @progress_callback: the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback_ready
  *
- * TODO
+ * Install a package of the newest and most correct version.
  **/
 void
 pk_client_install_packages_async (PkClient *client, gboolean only_trusted, gchar **package_ids, GCancellable *cancellable,
@@ -2021,13 +2130,16 @@ pk_client_install_packages_async (PkClient *client, gboolean only_trusted, gchar
 /**
  * pk_client_install_signature_async:
  * @client: a valid #PkClient instance
+ * @type: the signature type, e.g. %PK_SIGTYPE_ENUM_GPG
+ * @key_id: a key ID such as "0df23df"
+ * @package_id: a signature_id structure such as "hal;0.0.1;i386;fedora"
  * @cancellable: a #GCancellable or %NULL
  * @progress_callback: the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback_ready
  *
- * TODO
+ * Install a software source signature of the newest and most correct version.
  **/
 void
 pk_client_install_signature_async (PkClient *client, PkSigTypeEnum type, const gchar *key_id, const gchar *package_id, GCancellable *cancellable,
@@ -2067,13 +2179,15 @@ pk_client_install_signature_async (PkClient *client, PkSigTypeEnum type, const g
 /**
  * pk_client_update_packages_async:
  * @client: a valid #PkClient instance
+ * @only_trusted: only trusted packages should be installed
+ * @package_ids: a null terminated array of package_id structures such as "hal;0.0.1;i386;fedora"
  * @cancellable: a #GCancellable or %NULL
  * @progress_callback: the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback_ready
  *
- * TODO
+ * Update specific packages to the newest available versions.
  **/
 void
 pk_client_update_packages_async (PkClient *client, gboolean only_trusted, gchar **package_ids, GCancellable *cancellable,
@@ -2112,13 +2226,16 @@ pk_client_update_packages_async (PkClient *client, gboolean only_trusted, gchar
 /**
  * pk_client_install_files_async:
  * @client: a valid #PkClient instance
+ * @only_trusted: only trusted packages should be installed
+ * @files: a file such as "/home/hughsie/Desktop/hal-devel-0.10.0.rpm"
  * @cancellable: a #GCancellable or %NULL
  * @progress_callback: the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback_ready
  *
- * TODO
+ * Install a file locally, and get the deps from the repositories.
+ * This is useful for double clicking on a .rpm or .deb file.
  **/
 void
 pk_client_install_files_async (PkClient *client, gboolean only_trusted, gchar **files, GCancellable *cancellable,
@@ -2143,7 +2260,7 @@ pk_client_install_files_async (PkClient *client, gboolean only_trusted, gchar **
 	}
 	state->client = client;
 	state->only_trusted = only_trusted;
-	state->files = g_strdupv (files);
+	state->files = pk_client_real_paths (files);
 	state->progress_callback = progress_callback;
 	state->progress_user_data = progress_user_data;
 	state->progress = pk_progress_new ();
@@ -2157,13 +2274,14 @@ pk_client_install_files_async (PkClient *client, gboolean only_trusted, gchar **
 /**
  * pk_client_accept_eula_async:
  * @client: a valid #PkClient instance
+ * @eula_id: the <literal>eula_id</literal> we are agreeing to
  * @cancellable: a #GCancellable or %NULL
  * @progress_callback: the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback_ready
  *
- * TODO
+ * We may want to agree to a EULA dialog if one is presented.
  **/
 void
 pk_client_accept_eula_async (PkClient *client, const gchar *eula_id, GCancellable *cancellable,
@@ -2201,13 +2319,14 @@ pk_client_accept_eula_async (PkClient *client, const gchar *eula_id, GCancellabl
 /**
  * pk_client_get_repo_list_async:
  * @client: a valid #PkClient instance
+ * @filters: a %PkBitfield such as %PK_FILTER_ENUM_DEVEL or %PK_FILTER_ENUM_NONE
  * @cancellable: a #GCancellable or %NULL
  * @progress_callback: the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback_ready
  *
- * TODO
+ * Get the list of repositories installed on the system.
  **/
 void
 pk_client_get_repo_list_async (PkClient *client, PkBitfield filters, GCancellable *cancellable,
@@ -2245,13 +2364,15 @@ pk_client_get_repo_list_async (PkClient *client, PkBitfield filters, GCancellabl
 /**
  * pk_client_repo_enable_async:
  * @client: a valid #PkClient instance
+ * @repo_id: a repo_id structure such as "livna-devel"
+ * @enabled: if we should enable the repository
  * @cancellable: a #GCancellable or %NULL
  * @progress_callback: the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback_ready
  *
- * TODO
+ * Enable or disable the repository.
  **/
 void
 pk_client_repo_enable_async (PkClient *client, const gchar *repo_id, gboolean enabled, GCancellable *cancellable,
@@ -2290,13 +2411,17 @@ pk_client_repo_enable_async (PkClient *client, const gchar *repo_id, gboolean en
 /**
  * pk_client_repo_set_data_async:
  * @client: a valid #PkClient instance
+ * @repo_id: a repo_id structure such as "livna-devel"
+ * @parameter: the parameter to change
+ * @value: what we should change it to
  * @cancellable: a #GCancellable or %NULL
  * @progress_callback: the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback_ready
  *
- * TODO
+ * We may want to set a repository parameter.
+ * NOTE: this is free text, and is left to the backend to define a format.
  **/
 void
 pk_client_repo_set_data_async (PkClient *client, const gchar *repo_id, const gchar *parameter, const gchar *value, GCancellable *cancellable,
@@ -2336,13 +2461,14 @@ pk_client_repo_set_data_async (PkClient *client, const gchar *repo_id, const gch
 /**
  * pk_client_simulate_install_files_async:
  * @client: a valid #PkClient instance
+ * @files: a file such as "/home/hughsie/Desktop/hal-devel-0.10.0.rpm"
  * @cancellable: a #GCancellable or %NULL
  * @progress_callback: the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback_ready
  *
- * TODO
+ * Simulate an installation of files.
  **/
 void
 pk_client_simulate_install_files_async (PkClient *client, gchar **files, GCancellable *cancellable,
@@ -2366,7 +2492,7 @@ pk_client_simulate_install_files_async (PkClient *client, gchar **files, GCancel
 		state->cancellable_id = g_cancellable_connect (cancellable, G_CALLBACK (pk_client_cancellable_cancel_cb), state, NULL);
 	}
 	state->client = client;
-	state->files = g_strdupv (files);
+	state->files = pk_client_real_paths (files);
 	state->progress_callback = progress_callback;
 	state->progress_user_data = progress_user_data;
 	state->progress = pk_progress_new ();
@@ -2380,13 +2506,14 @@ pk_client_simulate_install_files_async (PkClient *client, gchar **files, GCancel
 /**
  * pk_client_simulate_install_packages_async:
  * @client: a valid #PkClient instance
+ * @package_ids: a null terminated array of package_id structures such as "hal;0.0.1;i386;fedora"
  * @cancellable: a #GCancellable or %NULL
  * @progress_callback: the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback_ready
  *
- * TODO
+ * Simulate an installation of packages.
  **/
 void
 pk_client_simulate_install_packages_async (PkClient *client, gchar **package_ids, GCancellable *cancellable,
@@ -2424,13 +2551,14 @@ pk_client_simulate_install_packages_async (PkClient *client, gchar **package_ids
 /**
  * pk_client_simulate_remove_packages_async:
  * @client: a valid #PkClient instance
+ * @package_ids: a null terminated array of package_id structures such as "hal;0.0.1;i386;fedora"
  * @cancellable: a #GCancellable or %NULL
  * @progress_callback: the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback_ready
  *
- * TODO
+ * Simulate a removal of packages.
  **/
 void
 pk_client_simulate_remove_packages_async (PkClient *client, gchar **package_ids, GCancellable *cancellable,
@@ -2468,13 +2596,14 @@ pk_client_simulate_remove_packages_async (PkClient *client, gchar **package_ids,
 /**
  * pk_client_simulate_update_packages_async:
  * @client: a valid #PkClient instance
+ * @package_ids: a null terminated array of package_id structures such as "hal;0.0.1;i386;fedora"
  * @cancellable: a #GCancellable or %NULL
  * @progress_callback: the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback_ready
  *
- * TODO
+ * Simulate an update of packages.
  **/
 void
 pk_client_simulate_update_packages_async (PkClient *client, gchar **package_ids, GCancellable *cancellable,
@@ -2934,12 +3063,39 @@ pk_client_test (EggTest *test)
 {
 	PkClient *client;
 	gchar **package_ids;
+	gchar *file;
 	GCancellable *cancellable;
 
 	if (!egg_test_start (test, "PkClient"))
 		return;
 
 	/************************************************************/
+	egg_test_title (test, "test resolve NULL");
+	file = pk_client_real_path (NULL);
+	if (file == NULL)
+		egg_test_success (test, NULL);
+	else
+		egg_test_failed (test, NULL);
+
+	/************************************************************/
+	egg_test_title (test, "test resolve /etc/hosts");
+	file = pk_client_real_path ("/etc/hosts");
+	if (file != NULL && g_strcmp0 (file, "/etc/hosts") == 0)
+		egg_test_success (test, NULL);
+	else
+		egg_test_failed (test, "got: %s", file);
+	g_free (file);
+
+	/************************************************************/
+	egg_test_title (test, "test resolve /etc/../etc/hosts");
+	file = pk_client_real_path ("/etc/../etc/hosts");
+	if (file != NULL && g_strcmp0 (file, "/etc/hosts") == 0)
+		egg_test_success (test, NULL);
+	else
+		egg_test_failed (test, "got: %s", file);
+	g_free (file);
+
+	/************************************************************/
 	egg_test_title (test, "get client");
 	client = pk_client_new ();
 	egg_test_assert (test, client != NULL);
diff --git a/lib/packagekit-glib2/pk-control.c b/lib/packagekit-glib2/pk-control.c
index 63e1b50..3210b11 100644
--- a/lib/packagekit-glib2/pk-control.c
+++ b/lib/packagekit-glib2/pk-control.c
@@ -19,11 +19,6 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  */
 
-/**
- * SECTION:pk-control
- * @short_description: TODO
- */
-
 #include "config.h"
 
 #include <glib-object.h>
@@ -191,7 +186,7 @@ pk_control_get_tid_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkControlState *
 	/* finished this call */
 	state->call = NULL;
 
-	/* TODO: set locale */
+	/* save results */
 	state->tid = g_strdup (tid);
 
 	/* we're done */
@@ -349,7 +344,7 @@ out:
  * @callback: the function to run on completion
  * @user_data: the data to pass to @callback
  *
- * Gets a transacton ID from the daemon.
+ * The MIME list is the supported package formats.
  **/
 void
 pk_control_get_mime_types_async (PkControl *control, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data)
@@ -389,7 +384,8 @@ pk_control_get_mime_types_async (PkControl *control, GCancellable *cancellable,
  *
  * Gets the result from the asynchronous function.
  *
- * Return value: the ID, or %NULL if unset
+ * Return value: an GStrv list of the formats the backend supports,
+ * or %NULL if unknown
  **/
 gchar **
 pk_control_get_mime_types_finish (PkControl *control, GAsyncResult *res, GError **error)
@@ -483,11 +479,13 @@ out:
 /**
  * pk_control_set_proxy_async:
  * @control: a valid #PkControl instance
+ * @proxy_http: a HTTP proxy string such as "username:password at server.lan:8080"
+ * @proxy_ftp: a FTP proxy string such as "server.lan:8080"
  * @cancellable: a #GCancellable or %NULL
  * @callback: the function to run on completion
  * @user_data: the data to pass to @callback
  *
- * Gets a transacton ID from the daemon.
+ * Set a proxy on the PK daemon
  **/
 void
 pk_control_set_proxy_async (PkControl *control, const gchar *proxy_http, const gchar *proxy_ftp, GCancellable *cancellable,
@@ -530,7 +528,7 @@ pk_control_set_proxy_async (PkControl *control, const gchar *proxy_http, const g
  *
  * Gets the result from the asynchronous function.
  *
- * Return value: %TRUE for success
+ * Return value: %TRUE if we set the proxy successfully
  **/
 gboolean
 pk_control_set_proxy_finish (PkControl *control, GAsyncResult *res, GError **error)
@@ -646,7 +644,7 @@ out:
  * @callback: the function to run on completion
  * @user_data: the data to pass to @callback
  *
- * Gets a transacton ID from the daemon.
+ * Get what methods the daemon can do with the current backend.
  **/
 void
 pk_control_get_roles_async (PkControl *control, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data)
@@ -686,7 +684,7 @@ pk_control_get_roles_async (PkControl *control, GCancellable *cancellable, GAsyn
  *
  * Gets the result from the asynchronous function.
  *
- * Return value: the ID, or %NULL if unset
+ * Return value: an enumerated list of the actions the backend supports, free with g_free()
  **/
 PkBitfield *
 pk_control_get_roles_finish (PkControl *control, GAsyncResult *res, GError **error)
@@ -789,7 +787,7 @@ out:
  * @callback: the function to run on completion
  * @user_data: the data to pass to @callback
  *
- * Gets a transacton ID from the daemon.
+ * Filters are how the backend can specify what type of package is returned.
  **/
 void
 pk_control_get_filters_async (PkControl *control, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data)
@@ -829,7 +827,7 @@ pk_control_get_filters_async (PkControl *control, GCancellable *cancellable, GAs
  *
  * Gets the result from the asynchronous function.
  *
- * Return value: the ID, or %NULL if unset
+ * Return value: an enumerated list of the filters the backend supports, free with g_free()
  **/
 PkBitfield *
 pk_control_get_filters_finish (PkControl *control, GAsyncResult *res, GError **error)
@@ -932,7 +930,9 @@ out:
  * @callback: the function to run on completion
  * @user_data: the data to pass to @callback
  *
- * Gets a transacton ID from the daemon.
+ * The group list is enumerated so it can be localised and have deep
+ * integration with desktops.
+ * This method allows a frontend to only display the groups that are supported.
  **/
 void
 pk_control_get_groups_async (PkControl *control, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data)
@@ -972,7 +972,7 @@ pk_control_get_groups_async (PkControl *control, GCancellable *cancellable, GAsy
  *
  * Gets the result from the asynchronous function.
  *
- * Return value: the ID, or %NULL if unset
+ * Return value: an enumerated list of the groups the backend supports, free with g_free()
  **/
 PkBitfield *
 pk_control_get_groups_finish (PkControl *control, GAsyncResult *res, GError **error)
@@ -1074,7 +1074,7 @@ out:
  * @callback: the function to run on completion
  * @user_data: the data to pass to @callback
  *
- * Gets a transacton ID from the daemon.
+ * Gets the transactions currently running in the daemon.
  **/
 void
 pk_control_get_transaction_list_async (PkControl *control, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data)
@@ -1114,7 +1114,7 @@ pk_control_get_transaction_list_async (PkControl *control, GCancellable *cancell
  *
  * Gets the result from the asynchronous function.
  *
- * Return value: the ID, or %NULL if unset
+ * Return value: A GStrv list of transaction ID's
  **/
 gchar **
 pk_control_get_transaction_list_finish (PkControl *control, GAsyncResult *res, GError **error)
@@ -1220,7 +1220,8 @@ out:
  * @callback: the function to run on completion
  * @user_data: the data to pass to @callback
  *
- * Gets a transacton ID from the daemon.
+ * We may want to know how long it has been since we refreshed the cache or
+ * retrieved the update list.
  **/
 void
 pk_control_get_time_since_action_async (PkControl *control, PkRoleEnum role, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data)
@@ -1263,7 +1264,7 @@ pk_control_get_time_since_action_async (PkControl *control, PkRoleEnum role, GCa
  *
  * Gets the result from the asynchronous function.
  *
- * Return value: the ID, or %NULL if unset
+ * Return value: %TRUE if the daemon serviced the request
  **/
 guint
 pk_control_get_time_since_action_finish (PkControl *control, GAsyncResult *res, GError **error)
@@ -1370,7 +1371,7 @@ out:
  * @callback: the function to run on completion
  * @user_data: the data to pass to @callback
  *
- * Gets a transacton ID from the daemon.
+ * Gets the network state.
  **/
 void
 pk_control_get_network_state_async (PkControl *control, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data)
@@ -1411,7 +1412,7 @@ pk_control_get_network_state_async (PkControl *control, GCancellable *cancellabl
  *
  * Gets the result from the asynchronous function.
  *
- * Return value: the ID, or %NULL if unset
+ * Return value: an enumerated network state
  **/
 PkNetworkEnum
 pk_control_get_network_state_finish (PkControl *control, GAsyncResult *res, GError **error)
@@ -1517,7 +1518,8 @@ out:
  * @callback: the function to run on completion
  * @user_data: the data to pass to @callback
  *
- * Gets a transacton ID from the daemon.
+ * We may want to know before we run a method if we are going to be denied,
+ * accepted or challenged for authentication.
  **/
 void
 pk_control_can_authorize_async (PkControl *control, const gchar *action_id, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data)
@@ -1559,7 +1561,7 @@ pk_control_can_authorize_async (PkControl *control, const gchar *action_id, GCan
  *
  * Gets the result from the asynchronous function.
  *
- * Return value: the ID, or %NULL if unset
+ * Return value: the %PkAuthorizeEnum or %PK_AUTHORIZE_ENUM_UNKNOWN if the method failed
  **/
 PkAuthorizeEnum
 pk_control_can_authorize_finish (PkControl *control, GAsyncResult *res, GError **error)
commit 837e7516748329a4a2719ddd4d22466a87087441
Author: Richard Hughes <richard at hughsie.com>
Date:   Tue Sep 1 09:57:19 2009 +0100

    glib2: make the client methods cancellable

diff --git a/lib/packagekit-glib2/pk-client.c b/lib/packagekit-glib2/pk-client.c
index 9a44817..b0b3d2e 100644
--- a/lib/packagekit-glib2/pk-client.c
+++ b/lib/packagekit-glib2/pk-client.c
@@ -113,6 +113,7 @@ typedef struct {
 	gpointer			 progress_user_data;
 	gpointer			 user_data;
 	guint				 number;
+	gulong				 cancellable_id;
 	DBusGProxyCall			*call;
 	DBusGProxy			*proxy;
 	GCancellable			*cancellable;
@@ -211,6 +212,46 @@ out:
 }
 
 /**
+ * pk_client_cancel_cb:
+ **/
+static void
+pk_client_cancel_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkClientState *state)
+{
+	GError *error = NULL;
+	gboolean ret;
+
+	egg_debug ("cancelled %s (%p)", state->tid, state->call);
+
+	/* get the result */
+	ret = dbus_g_proxy_end_call (proxy, call, &error,
+				     G_TYPE_INVALID);
+	if (!ret) {
+		egg_warning ("failed: %s", error->message);
+		g_error_free (error);
+	}
+
+	/* finished this call */
+	state->call = NULL;
+}
+
+/**
+ * pk_client_cancellable_cancel_cb:
+ **/
+static void
+pk_client_cancellable_cancel_cb (GCancellable *cancellable, PkClientState *state)
+{
+	/* dbus method has not yet fired */
+	if (state->call != NULL)
+		egg_warning ("DBus method not yet fired, not sure what to do here");
+
+	/* takeover the call with the cancel method */
+	state->call = dbus_g_proxy_begin_call (state->proxy, "Cancel",
+					       (DBusGProxyCallNotify) pk_client_cancel_cb, state,
+					       NULL, G_TYPE_INVALID);
+	egg_debug ("cancelling %s (%p)", state->tid, state->call);
+}
+
+/**
  * pk_client_state_finish:
  **/
 static void
@@ -235,6 +276,7 @@ pk_client_state_finish (PkClientState *state, GError *error)
 		g_object_remove_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
 
 	if (state->cancellable != NULL) {
+		g_cancellable_disconnect (state->cancellable, state->cancellable_id);
 		g_cancellable_cancel (state->cancellable);
 		g_object_unref (state->cancellable);
 	}
@@ -771,28 +813,28 @@ pk_client_set_locale_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkClientState
 		state->call = dbus_g_proxy_begin_call (state->proxy, "SearchName",
 						       (DBusGProxyCallNotify) pk_client_method_cb, state, NULL,
 						       G_TYPE_STRING, filters_text,
-						       G_TYPE_STRV, state->search,
+						       G_TYPE_STRING, state->search,
 						       G_TYPE_INVALID);
 	} else if (state->role == PK_ROLE_ENUM_SEARCH_DETAILS) {
 		filters_text = pk_filter_bitfield_to_text (state->filters);
 		state->call = dbus_g_proxy_begin_call (state->proxy, "SearchDetails",
 						       (DBusGProxyCallNotify) pk_client_method_cb, state, NULL,
 						       G_TYPE_STRING, filters_text,
-						       G_TYPE_STRV, state->search,
+						       G_TYPE_STRING, state->search,
 						       G_TYPE_INVALID);
 	} else if (state->role == PK_ROLE_ENUM_SEARCH_GROUP) {
 		filters_text = pk_filter_bitfield_to_text (state->filters);
 		state->call = dbus_g_proxy_begin_call (state->proxy, "SearchGroup",
 						       (DBusGProxyCallNotify) pk_client_method_cb, state, NULL,
 						       G_TYPE_STRING, filters_text,
-						       G_TYPE_STRV, state->search,
+						       G_TYPE_STRING, state->search,
 						       G_TYPE_INVALID);
 	} else if (state->role == PK_ROLE_ENUM_SEARCH_FILE) {
 		filters_text = pk_filter_bitfield_to_text (state->filters);
 		state->call = dbus_g_proxy_begin_call (state->proxy, "SearchFile",
 						       (DBusGProxyCallNotify) pk_client_method_cb, state, NULL,
 						       G_TYPE_STRING, filters_text,
-						       G_TYPE_STRV, state->search,
+						       G_TYPE_STRING, state->search,
 						       G_TYPE_INVALID);
 	} else if (state->role == PK_ROLE_ENUM_GET_DETAILS) {
 		state->call = dbus_g_proxy_begin_call (state->proxy, "GetDetails",
@@ -1067,7 +1109,10 @@ pk_client_resolve_async (PkClient *client, PkBitfield filters, gchar **packages,
 	state = g_slice_new0 (PkClientState);
 	state->role = PK_ROLE_ENUM_RESOLVE;
 	state->res = g_object_ref (res);
-	state->cancellable = cancellable;
+	if (cancellable != NULL) {
+		state->cancellable = g_object_ref (cancellable);
+		state->cancellable_id = g_cancellable_connect (cancellable, G_CALLBACK (pk_client_cancellable_cancel_cb), state, NULL);
+	}
 	state->client = client;
 	state->filters = filters;
 	state->package_ids = g_strdupv (packages);
@@ -1109,7 +1154,10 @@ pk_client_search_name_async (PkClient *client, PkBitfield filters, const gchar *
 	state = g_slice_new0 (PkClientState);
 	state->role = PK_ROLE_ENUM_SEARCH_NAME;
 	state->res = g_object_ref (res);
-	state->cancellable = cancellable;
+	if (cancellable != NULL) {
+		state->cancellable = g_object_ref (cancellable);
+		state->cancellable_id = g_cancellable_connect (cancellable, G_CALLBACK (pk_client_cancellable_cancel_cb), state, NULL);
+	}
 	state->client = client;
 	state->filters = filters;
 	state->search = g_strdup (search);
@@ -1151,7 +1199,10 @@ pk_client_search_details_async (PkClient *client, PkBitfield filters, const gcha
 	state = g_slice_new0 (PkClientState);
 	state->role = PK_ROLE_ENUM_SEARCH_DETAILS;
 	state->res = g_object_ref (res);
-	state->cancellable = cancellable;
+	if (cancellable != NULL) {
+		state->cancellable = g_object_ref (cancellable);
+		state->cancellable_id = g_cancellable_connect (cancellable, G_CALLBACK (pk_client_cancellable_cancel_cb), state, NULL);
+	}
 	state->client = client;
 	state->filters = filters;
 	state->search = g_strdup (search);
@@ -1193,7 +1244,10 @@ pk_client_search_group_async (PkClient *client, PkBitfield filters, const gchar
 	state = g_slice_new0 (PkClientState);
 	state->role = PK_ROLE_ENUM_SEARCH_GROUP;
 	state->res = g_object_ref (res);
-	state->cancellable = cancellable;
+	if (cancellable != NULL) {
+		state->cancellable = g_object_ref (cancellable);
+		state->cancellable_id = g_cancellable_connect (cancellable, G_CALLBACK (pk_client_cancellable_cancel_cb), state, NULL);
+	}
 	state->client = client;
 	state->filters = filters;
 	state->search = g_strdup (search);
@@ -1235,7 +1289,10 @@ pk_client_search_file_async (PkClient *client, PkBitfield filters, const gchar *
 	state = g_slice_new0 (PkClientState);
 	state->role = PK_ROLE_ENUM_SEARCH_FILE;
 	state->res = g_object_ref (res);
-	state->cancellable = cancellable;
+	if (cancellable != NULL) {
+		state->cancellable = g_object_ref (cancellable);
+		state->cancellable_id = g_cancellable_connect (cancellable, G_CALLBACK (pk_client_cancellable_cancel_cb), state, NULL);
+	}
 	state->client = client;
 	state->filters = filters;
 	state->search = g_strdup (search);
@@ -1277,7 +1334,10 @@ pk_client_get_details_async (PkClient *client, gchar **package_ids, GCancellable
 	state = g_slice_new0 (PkClientState);
 	state->role = PK_ROLE_ENUM_GET_DETAILS;
 	state->res = g_object_ref (res);
-	state->cancellable = cancellable;
+	if (cancellable != NULL) {
+		state->cancellable = g_object_ref (cancellable);
+		state->cancellable_id = g_cancellable_connect (cancellable, G_CALLBACK (pk_client_cancellable_cancel_cb), state, NULL);
+	}
 	state->client = client;
 	state->package_ids = g_strdupv (package_ids);
 	state->progress_callback = progress_callback;
@@ -1318,7 +1378,10 @@ pk_client_get_update_detail_async (PkClient *client, gchar **package_ids, GCance
 	state = g_slice_new0 (PkClientState);
 	state->role = PK_ROLE_ENUM_GET_UPDATE_DETAIL;
 	state->res = g_object_ref (res);
-	state->cancellable = cancellable;
+	if (cancellable != NULL) {
+		state->cancellable = g_object_ref (cancellable);
+		state->cancellable_id = g_cancellable_connect (cancellable, G_CALLBACK (pk_client_cancellable_cancel_cb), state, NULL);
+	}
 	state->client = client;
 	state->package_ids = g_strdupv (package_ids);
 	state->progress_callback = progress_callback;
@@ -1359,7 +1422,10 @@ pk_client_download_packages_async (PkClient *client, gchar **package_ids, const
 	state = g_slice_new0 (PkClientState);
 	state->role = PK_ROLE_ENUM_DOWNLOAD_PACKAGES;
 	state->res = g_object_ref (res);
-	state->cancellable = cancellable;
+	if (cancellable != NULL) {
+		state->cancellable = g_object_ref (cancellable);
+		state->cancellable_id = g_cancellable_connect (cancellable, G_CALLBACK (pk_client_cancellable_cancel_cb), state, NULL);
+	}
 	state->client = client;
 	state->package_ids = g_strdupv (package_ids);
 	state->directory = g_strdup (directory);
@@ -1401,7 +1467,10 @@ pk_client_get_updates_async (PkClient *client, PkBitfield filters, GCancellable
 	state = g_slice_new0 (PkClientState);
 	state->role = PK_ROLE_ENUM_GET_UPDATES;
 	state->res = g_object_ref (res);
-	state->cancellable = cancellable;
+	if (cancellable != NULL) {
+		state->cancellable = g_object_ref (cancellable);
+		state->cancellable_id = g_cancellable_connect (cancellable, G_CALLBACK (pk_client_cancellable_cancel_cb), state, NULL);
+	}
 	state->client = client;
 	state->filters = filters;
 	state->progress_callback = progress_callback;
@@ -1442,7 +1511,10 @@ pk_client_get_old_transactions_async (PkClient *client, guint number, GCancellab
 	state = g_slice_new0 (PkClientState);
 	state->role = PK_ROLE_ENUM_GET_OLD_TRANSACTIONS;
 	state->res = g_object_ref (res);
-	state->cancellable = cancellable;
+	if (cancellable != NULL) {
+		state->cancellable = g_object_ref (cancellable);
+		state->cancellable_id = g_cancellable_connect (cancellable, G_CALLBACK (pk_client_cancellable_cancel_cb), state, NULL);
+	}
 	state->client = client;
 	state->number = number;
 	state->progress_callback = progress_callback;
@@ -1483,7 +1555,10 @@ pk_client_update_system_async (PkClient *client, gboolean only_trusted, GCancell
 	state = g_slice_new0 (PkClientState);
 	state->role = PK_ROLE_ENUM_UPDATE_SYSTEM;
 	state->res = g_object_ref (res);
-	state->cancellable = cancellable;
+	if (cancellable != NULL) {
+		state->cancellable = g_object_ref (cancellable);
+		state->cancellable_id = g_cancellable_connect (cancellable, G_CALLBACK (pk_client_cancellable_cancel_cb), state, NULL);
+	}
 	state->client = client;
 	state->only_trusted = only_trusted;
 	state->progress_callback = progress_callback;
@@ -1524,7 +1599,10 @@ pk_client_get_depends_async (PkClient *client, PkBitfield filters, gchar **packa
 	state = g_slice_new0 (PkClientState);
 	state->role = PK_ROLE_ENUM_GET_DEPENDS;
 	state->res = g_object_ref (res);
-	state->cancellable = cancellable;
+	if (cancellable != NULL) {
+		state->cancellable = g_object_ref (cancellable);
+		state->cancellable_id = g_cancellable_connect (cancellable, G_CALLBACK (pk_client_cancellable_cancel_cb), state, NULL);
+	}
 	state->client = client;
 	state->filters = filters;
 	state->recursive = recursive;
@@ -1567,7 +1645,10 @@ pk_client_get_packages_async (PkClient *client, PkBitfield filters, GCancellable
 	state = g_slice_new0 (PkClientState);
 	state->role = PK_ROLE_ENUM_GET_PACKAGES;
 	state->res = g_object_ref (res);
-	state->cancellable = cancellable;
+	if (cancellable != NULL) {
+		state->cancellable = g_object_ref (cancellable);
+		state->cancellable_id = g_cancellable_connect (cancellable, G_CALLBACK (pk_client_cancellable_cancel_cb), state, NULL);
+	}
 	state->client = client;
 	state->filters = filters;
 	state->progress_callback = progress_callback;
@@ -1608,7 +1689,10 @@ pk_client_get_requires_async (PkClient *client, PkBitfield filters, gchar **pack
 	state = g_slice_new0 (PkClientState);
 	state->role = PK_ROLE_ENUM_GET_REQUIRES;
 	state->res = g_object_ref (res);
-	state->cancellable = cancellable;
+	if (cancellable != NULL) {
+		state->cancellable = g_object_ref (cancellable);
+		state->cancellable_id = g_cancellable_connect (cancellable, G_CALLBACK (pk_client_cancellable_cancel_cb), state, NULL);
+	}
 	state->client = client;
 	state->recursive = recursive;
 	state->filters = filters;
@@ -1651,7 +1735,10 @@ pk_client_what_provides_async (PkClient *client, PkBitfield filters, PkProvidesE
 	state = g_slice_new0 (PkClientState);
 	state->role = PK_ROLE_ENUM_WHAT_PROVIDES;
 	state->res = g_object_ref (res);
-	state->cancellable = cancellable;
+	if (cancellable != NULL) {
+		state->cancellable = g_object_ref (cancellable);
+		state->cancellable_id = g_cancellable_connect (cancellable, G_CALLBACK (pk_client_cancellable_cancel_cb), state, NULL);
+	}
 	state->client = client;
 	state->filters = filters;
 	state->provides = provides;
@@ -1694,7 +1781,10 @@ pk_client_get_distro_upgrades_async (PkClient *client, GCancellable *cancellable
 	state = g_slice_new0 (PkClientState);
 	state->role = PK_ROLE_ENUM_GET_DISTRO_UPGRADES;
 	state->res = g_object_ref (res);
-	state->cancellable = cancellable;
+	if (cancellable != NULL) {
+		state->cancellable = g_object_ref (cancellable);
+		state->cancellable_id = g_cancellable_connect (cancellable, G_CALLBACK (pk_client_cancellable_cancel_cb), state, NULL);
+	}
 	state->client = client;
 	state->progress_callback = progress_callback;
 	state->progress_user_data = progress_user_data;
@@ -1734,7 +1824,10 @@ pk_client_get_files_async (PkClient *client, gchar **package_ids, GCancellable *
 	state = g_slice_new0 (PkClientState);
 	state->role = PK_ROLE_ENUM_GET_FILES;
 	state->res = g_object_ref (res);
-	state->cancellable = cancellable;
+	if (cancellable != NULL) {
+		state->cancellable = g_object_ref (cancellable);
+		state->cancellable_id = g_cancellable_connect (cancellable, G_CALLBACK (pk_client_cancellable_cancel_cb), state, NULL);
+	}
 	state->client = client;
 	state->package_ids = g_strdupv (package_ids);
 	state->progress_callback = progress_callback;
@@ -1775,7 +1868,10 @@ pk_client_get_categories_async (PkClient *client, GCancellable *cancellable,
 	state = g_slice_new0 (PkClientState);
 	state->role = PK_ROLE_ENUM_GET_CATEGORIES;
 	state->res = g_object_ref (res);
-	state->cancellable = cancellable;
+	if (cancellable != NULL) {
+		state->cancellable = g_object_ref (cancellable);
+		state->cancellable_id = g_cancellable_connect (cancellable, G_CALLBACK (pk_client_cancellable_cancel_cb), state, NULL);
+	}
 	state->client = client;
 	state->progress_callback = progress_callback;
 	state->progress_user_data = progress_user_data;
@@ -1815,7 +1911,10 @@ pk_client_remove_packages_async (PkClient *client, gchar **package_ids, gboolean
 	state = g_slice_new0 (PkClientState);
 	state->role = PK_ROLE_ENUM_REMOVE_PACKAGES;
 	state->res = g_object_ref (res);
-	state->cancellable = cancellable;
+	if (cancellable != NULL) {
+		state->cancellable = g_object_ref (cancellable);
+		state->cancellable_id = g_cancellable_connect (cancellable, G_CALLBACK (pk_client_cancellable_cancel_cb), state, NULL);
+	}
 	state->allow_deps = allow_deps;
 	state->autoremove = autoremove;
 	state->client = client;
@@ -1858,7 +1957,10 @@ pk_client_refresh_cache_async (PkClient *client, gboolean force, GCancellable *c
 	state = g_slice_new0 (PkClientState);
 	state->role = PK_ROLE_ENUM_REFRESH_CACHE;
 	state->res = g_object_ref (res);
-	state->cancellable = cancellable;
+	if (cancellable != NULL) {
+		state->cancellable = g_object_ref (cancellable);
+		state->cancellable_id = g_cancellable_connect (cancellable, G_CALLBACK (pk_client_cancellable_cancel_cb), state, NULL);
+	}
 	state->client = client;
 	state->force = force;
 	state->progress_callback = progress_callback;
@@ -1899,7 +2001,10 @@ pk_client_install_packages_async (PkClient *client, gboolean only_trusted, gchar
 	state = g_slice_new0 (PkClientState);
 	state->role = PK_ROLE_ENUM_INSTALL_PACKAGES;
 	state->res = g_object_ref (res);
-	state->cancellable = cancellable;
+	if (cancellable != NULL) {
+		state->cancellable = g_object_ref (cancellable);
+		state->cancellable_id = g_cancellable_connect (cancellable, G_CALLBACK (pk_client_cancellable_cancel_cb), state, NULL);
+	}
 	state->client = client;
 	state->only_trusted = only_trusted;
 	state->package_ids = g_strdupv (package_ids);
@@ -1941,7 +2046,10 @@ pk_client_install_signature_async (PkClient *client, PkSigTypeEnum type, const g
 	state = g_slice_new0 (PkClientState);
 	state->role = PK_ROLE_ENUM_INSTALL_SIGNATURE;
 	state->res = g_object_ref (res);
-	state->cancellable = cancellable;
+	if (cancellable != NULL) {
+		state->cancellable = g_object_ref (cancellable);
+		state->cancellable_id = g_cancellable_connect (cancellable, G_CALLBACK (pk_client_cancellable_cancel_cb), state, NULL);
+	}
 	state->client = client;
 	state->type = type;
 	state->key_id = g_strdup (key_id);
@@ -1984,7 +2092,10 @@ pk_client_update_packages_async (PkClient *client, gboolean only_trusted, gchar
 	state = g_slice_new0 (PkClientState);
 	state->role = PK_ROLE_ENUM_UPDATE_PACKAGES;
 	state->res = g_object_ref (res);
-	state->cancellable = cancellable;
+	if (cancellable != NULL) {
+		state->cancellable = g_object_ref (cancellable);
+		state->cancellable_id = g_cancellable_connect (cancellable, G_CALLBACK (pk_client_cancellable_cancel_cb), state, NULL);
+	}
 	state->client = client;
 	state->only_trusted = only_trusted;
 	state->package_ids = g_strdupv (package_ids);
@@ -2026,7 +2137,10 @@ pk_client_install_files_async (PkClient *client, gboolean only_trusted, gchar **
 	state = g_slice_new0 (PkClientState);
 	state->role = PK_ROLE_ENUM_INSTALL_FILES;
 	state->res = g_object_ref (res);
-	state->cancellable = cancellable;
+	if (cancellable != NULL) {
+		state->cancellable = g_object_ref (cancellable);
+		state->cancellable_id = g_cancellable_connect (cancellable, G_CALLBACK (pk_client_cancellable_cancel_cb), state, NULL);
+	}
 	state->client = client;
 	state->only_trusted = only_trusted;
 	state->files = g_strdupv (files);
@@ -2068,7 +2182,10 @@ pk_client_accept_eula_async (PkClient *client, const gchar *eula_id, GCancellabl
 	state = g_slice_new0 (PkClientState);
 	state->role = PK_ROLE_ENUM_ACCEPT_EULA;
 	state->res = g_object_ref (res);
-	state->cancellable = cancellable;
+	if (cancellable != NULL) {
+		state->cancellable = g_object_ref (cancellable);
+		state->cancellable_id = g_cancellable_connect (cancellable, G_CALLBACK (pk_client_cancellable_cancel_cb), state, NULL);
+	}
 	state->client = client;
 	state->eula_id = g_strdup (eula_id);
 	state->progress_callback = progress_callback;
@@ -2109,7 +2226,10 @@ pk_client_get_repo_list_async (PkClient *client, PkBitfield filters, GCancellabl
 	state = g_slice_new0 (PkClientState);
 	state->role = PK_ROLE_ENUM_GET_REPO_LIST;
 	state->res = g_object_ref (res);
-	state->cancellable = cancellable;
+	if (cancellable != NULL) {
+		state->cancellable = g_object_ref (cancellable);
+		state->cancellable_id = g_cancellable_connect (cancellable, G_CALLBACK (pk_client_cancellable_cancel_cb), state, NULL);
+	}
 	state->client = client;
 	state->filters = filters;
 	state->progress_callback = progress_callback;
@@ -2150,7 +2270,10 @@ pk_client_repo_enable_async (PkClient *client, const gchar *repo_id, gboolean en
 	state = g_slice_new0 (PkClientState);
 	state->role = PK_ROLE_ENUM_REPO_ENABLE;
 	state->res = g_object_ref (res);
-	state->cancellable = cancellable;
+	if (cancellable != NULL) {
+		state->cancellable = g_object_ref (cancellable);
+		state->cancellable_id = g_cancellable_connect (cancellable, G_CALLBACK (pk_client_cancellable_cancel_cb), state, NULL);
+	}
 	state->client = client;
 	state->enabled = enabled;
 	state->repo_id = g_strdup (repo_id);
@@ -2192,7 +2315,10 @@ pk_client_repo_set_data_async (PkClient *client, const gchar *repo_id, const gch
 	state = g_slice_new0 (PkClientState);
 	state->role = PK_ROLE_ENUM_REPO_SET_DATA;
 	state->res = g_object_ref (res);
-	state->cancellable = cancellable;
+	if (cancellable != NULL) {
+		state->cancellable = g_object_ref (cancellable);
+		state->cancellable_id = g_cancellable_connect (cancellable, G_CALLBACK (pk_client_cancellable_cancel_cb), state, NULL);
+	}
 	state->client = client;
 	state->repo_id = g_strdup (repo_id);
 	state->parameter = g_strdup (parameter);
@@ -2235,7 +2361,10 @@ pk_client_simulate_install_files_async (PkClient *client, gchar **files, GCancel
 	state = g_slice_new0 (PkClientState);
 	state->role = PK_ROLE_ENUM_SIMULATE_INSTALL_FILES;
 	state->res = g_object_ref (res);
-	state->cancellable = cancellable;
+	if (cancellable != NULL) {
+		state->cancellable = g_object_ref (cancellable);
+		state->cancellable_id = g_cancellable_connect (cancellable, G_CALLBACK (pk_client_cancellable_cancel_cb), state, NULL);
+	}
 	state->client = client;
 	state->files = g_strdupv (files);
 	state->progress_callback = progress_callback;
@@ -2276,7 +2405,10 @@ pk_client_simulate_install_packages_async (PkClient *client, gchar **package_ids
 	state = g_slice_new0 (PkClientState);
 	state->role = PK_ROLE_ENUM_SIMULATE_INSTALL_PACKAGES;
 	state->res = g_object_ref (res);
-	state->cancellable = cancellable;
+	if (cancellable != NULL) {
+		state->cancellable = g_object_ref (cancellable);
+		state->cancellable_id = g_cancellable_connect (cancellable, G_CALLBACK (pk_client_cancellable_cancel_cb), state, NULL);
+	}
 	state->client = client;
 	state->package_ids = g_strdupv (package_ids);
 	state->progress_callback = progress_callback;
@@ -2317,7 +2449,10 @@ pk_client_simulate_remove_packages_async (PkClient *client, gchar **package_ids,
 	state = g_slice_new0 (PkClientState);
 	state->role = PK_ROLE_ENUM_SIMULATE_REMOVE_PACKAGES;
 	state->res = g_object_ref (res);
-	state->cancellable = cancellable;
+	if (cancellable != NULL) {
+		state->cancellable = g_object_ref (cancellable);
+		state->cancellable_id = g_cancellable_connect (cancellable, G_CALLBACK (pk_client_cancellable_cancel_cb), state, NULL);
+	}
 	state->client = client;
 	state->package_ids = g_strdupv (package_ids);
 	state->progress_callback = progress_callback;
@@ -2358,7 +2493,10 @@ pk_client_simulate_update_packages_async (PkClient *client, gchar **package_ids,
 	state = g_slice_new0 (PkClientState);
 	state->role = PK_ROLE_ENUM_SIMULATE_UPDATE_PACKAGES;
 	state->res = g_object_ref (res);
-	state->cancellable = cancellable;
+	if (cancellable != NULL) {
+		state->cancellable = g_object_ref (cancellable);
+		state->cancellable_id = g_cancellable_connect (cancellable, G_CALLBACK (pk_client_cancellable_cancel_cb), state, NULL);
+	}
 	state->client = client;
 	state->package_ids = g_strdupv (package_ids);
 	state->progress_callback = progress_callback;
@@ -2374,141 +2512,6 @@ pk_client_simulate_update_packages_async (PkClient *client, gchar **package_ids,
 /***************************************************************************************************/
 
 /**
- * pk_client_cancel_state_finish:
- **/
-static void
-pk_client_cancel_state_finish (PkClientState *state, GError *error)
-{
-	/* remove weak ref */
-	if (state->client != NULL)
-		g_object_remove_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
-
-	/* cancel */
-	if (state->cancellable != NULL) {
-		g_cancellable_cancel (state->cancellable);
-		g_object_unref (state->cancellable);
-	}
-
-	/* get result */
-	if (state->ret) {
-		g_simple_async_result_set_op_res_gboolean (state->res, state->ret);
-	} else {
-		g_simple_async_result_set_from_error (state->res, error);
-		g_error_free (error);
-	}
-
-	/* remove from list */
-	g_ptr_array_remove (state->client->priv->calls, state);
-
-	/* complete */
-	g_simple_async_result_complete_in_idle (state->res);
-
-	/* deallocate */
-	g_object_unref (state->res);
-	g_slice_free (PkClientState, state);
-}
-
-/**
- * pk_client_cancel_cb:
- **/
-static void
-pk_client_cancel_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkClientState *state)
-{
-	GError *error = NULL;
-	gboolean ret;
-
-	/* get the result */
-	ret = dbus_g_proxy_end_call (proxy, call, &error,
-				     G_TYPE_INVALID);
-	if (!ret) {
-		/* fix up the D-Bus error */
-		pk_client_fixup_dbus_error (error);
-		egg_warning ("failed: %s", error->message);
-		pk_client_cancel_state_finish (state, error);
-		goto out;
-	}
-
-	/* finished this call */
-	state->call = NULL;
-
-	/* save the result */
-	state->ret = TRUE;
-
-	/* we're done */
-	pk_client_cancel_state_finish (state, error);
-out:
-	return;
-}
-
-/**
- * pk_client_cancel_async:
- * @client: a valid #PkClient instance
- * @cancellable: a #GCancellable or %NULL
- * @callback: the function to run on completion
- * @user_data: the data to pass to @callback
- *
- * Gets a transacton ID from the daemon.
- **/
-void
-pk_client_cancel_async (PkClient *client, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data)
-{
-	GSimpleAsyncResult *res;
-	PkClientState *state;
-
-	g_return_if_fail (PK_IS_CLIENT (client));
-	g_return_if_fail (callback != NULL);
-
-	res = g_simple_async_result_new (G_OBJECT (client), callback, user_data, pk_client_cancel_async);
-
-	/* save state */
-	state = g_slice_new0 (PkClientState);
-	state->res = g_object_ref (res);
-	state->cancellable = cancellable;
-	state->client = client;
-	state->call = NULL;
-	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
-
-	/* call D-Bus cancel async */
-//FIXME: this will not work.. EVER. proxy has to be found using an ID token
-	state->call = dbus_g_proxy_begin_call (state->proxy, "Cancel",
-					       (DBusGProxyCallNotify) pk_client_cancel_cb, state,
-					       NULL, G_TYPE_INVALID);
-	g_object_unref (res);
-}
-
-/**
- * pk_client_cancel_finish:
- * @client: a valid #PkClient instance
- * @res: the #GAsyncResult
- * @error: A #GError or %NULL
- *
- * Gets the result from the asynchronous function.
- *
- * Return value: the ID, or %NULL if unset
- **/
-gboolean
-pk_client_cancel_finish (PkClient *client, GAsyncResult *res, GError **error)
-{
-	GSimpleAsyncResult *simple;
-	gpointer source_tag;
-
-	g_return_val_if_fail (PK_IS_CLIENT (client), FALSE);
-	g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (res), FALSE);
-
-	simple = G_SIMPLE_ASYNC_RESULT (res);
-	source_tag = g_simple_async_result_get_source_tag (simple);
-
-	g_return_val_if_fail (source_tag == pk_client_cancel_async, FALSE);
-
-	if (g_simple_async_result_propagate_error (simple, error))
-		return FALSE;
-
-	return g_simple_async_result_get_op_res_gboolean (simple);
-}
-
-/***************************************************************************************************/
-
-/**
  * pk_client_cancel_all_dbus_methods:
  **/
 static gboolean
@@ -2815,7 +2818,7 @@ pk_client_test_get_details_cb (GObject *object, GAsyncResult *res, EggTest *test
 
 	exit_enum = pk_results_get_exit_code (results);
 	if (exit_enum != PK_EXIT_ENUM_SUCCESS)
-		egg_test_failed (test, "failed to resolve success: %s", pk_exit_enum_to_text (exit_enum));
+		egg_test_failed (test, "failed to get details: %s", pk_exit_enum_to_text (exit_enum));
 
 	details = pk_results_get_details_array (results);
 	if (details == NULL)
@@ -2856,7 +2859,7 @@ pk_client_test_get_updates_cb (GObject *object, GAsyncResult *res, EggTest *test
 
 	exit_enum = pk_results_get_exit_code (results);
 	if (exit_enum != PK_EXIT_ENUM_SUCCESS)
-		egg_test_failed (test, "failed to resolve success: %s", pk_exit_enum_to_text (exit_enum));
+		egg_test_failed (test, "failed to get updates: %s", pk_exit_enum_to_text (exit_enum));
 
 	sack = pk_results_get_package_sack (results);
 	if (sack == NULL)
@@ -2873,12 +2876,35 @@ pk_client_test_get_updates_cb (GObject *object, GAsyncResult *res, EggTest *test
 	egg_test_loop_quit (test);
 }
 
+static void
+pk_client_test_search_name_cb (GObject *object, GAsyncResult *res, EggTest *test)
+{
+	PkClient *client = PK_CLIENT (object);
+	GError *error = NULL;
+	PkResults *results = NULL;
+	PkExitEnum exit_enum;
+
+	/* get the results */
+	results = pk_client_generic_finish (client, res, &error);
+	if (results == NULL) {
+		egg_test_failed (test, "failed to resolve: %s", error->message);
+		g_error_free (error);
+		return;
+	}
+
+	exit_enum = pk_results_get_exit_code (results);
+	if (exit_enum != PK_EXIT_ENUM_CANCELLED)
+		egg_test_failed (test, "failed to cancel search: %s", pk_exit_enum_to_text (exit_enum));
+
+	egg_test_loop_quit (test);
+}
+
 static guint _progress_cb = 0;
 static guint _status_cb = 0;
 static guint _package_cb = 0;
 static guint _allow_cancel_cb = 0;
 
-void
+static void
 pk_client_test_progress_cb (PkProgress *progress, PkProgressType type, EggTest *test)
 {
 	if (type == PK_PROGRESS_TYPE_PACKAGE_ID)
@@ -2895,11 +2921,20 @@ pk_client_test_progress_cb (PkProgress *progress, PkProgressType type, EggTest *
 //	egg_debug ("percentage now %i", percentage);
 }
 
+static gboolean
+pk_client_test_cancel (GCancellable *cancellable)
+{
+	egg_warning ("cancelling method");
+	g_cancellable_cancel (cancellable);
+	return FALSE;
+}
+
 void
 pk_client_test (EggTest *test)
 {
 	PkClient *client;
 	gchar **package_ids;
+	GCancellable *cancellable;
 
 	if (!egg_test_start (test, "PkClient"))
 		return;
@@ -2982,6 +3017,17 @@ pk_client_test (EggTest *test)
 	else
 		egg_test_failed (test, "got %i updates", _status_cb);
 
+	/************************************************************/
+	egg_test_title (test, "search by name");
+	cancellable = g_cancellable_new ();
+	pk_client_search_name_async (client, pk_bitfield_value (PK_FILTER_ENUM_NONE), "power", cancellable,
+				     (PkProgressCallback) pk_client_test_progress_cb, test,
+				     (GAsyncReadyCallback) pk_client_test_search_name_cb, test);
+	g_timeout_add (1000, (GSourceFunc) pk_client_test_cancel, cancellable);
+	egg_test_loop_wait (test, 15000);
+	egg_test_success (test, "cancelled in %i", egg_test_elapsed (test));
+
+	g_object_unref (cancellable);
 	g_object_unref (client);
 
 	egg_test_end (test);
diff --git a/lib/packagekit-glib2/pk-client.h b/lib/packagekit-glib2/pk-client.h
index 6881287..1f5182c 100644
--- a/lib/packagekit-glib2/pk-client.h
+++ b/lib/packagekit-glib2/pk-client.h
@@ -382,14 +382,6 @@ void		 pk_client_simulate_update_packages_async (PkClient		*client,
 							 GAsyncReadyCallback	 callback_ready,
 							 gpointer		 user_data);
 
-void		 pk_client_cancel_async			(PkClient		*client,
-							 GCancellable		*cancellable,
-							 GAsyncReadyCallback	 callback,
-							 gpointer		 user_data);
-gboolean	 pk_client_cancel_finish		(PkClient		*client,
-							 GAsyncResult		*res,
-							 GError			**error);
-
 G_END_DECLS
 
 #endif /* __PK_CLIENT_H */
diff --git a/lib/packagekit-glib2/pk-control.c b/lib/packagekit-glib2/pk-control.c
index 41f8db2..63e1b50 100644
--- a/lib/packagekit-glib2/pk-control.c
+++ b/lib/packagekit-glib2/pk-control.c
@@ -223,7 +223,8 @@ pk_control_get_tid_async (PkControl *control, GCancellable *cancellable, GAsyncR
 	/* save state */
 	state = g_slice_new0 (PkControlState);
 	state->res = g_object_ref (res);
-	state->cancellable = cancellable;
+	if (cancellable != NULL)
+		state->cancellable = g_object_ref (cancellable);
 	state->control = control;
 	g_object_add_weak_pointer (G_OBJECT (state->control), (gpointer) &state->control);
 
@@ -364,7 +365,8 @@ pk_control_get_mime_types_async (PkControl *control, GCancellable *cancellable,
 	/* save state */
 	state = g_slice_new0 (PkControlState);
 	state->res = g_object_ref (res);
-	state->cancellable = cancellable;
+	if (cancellable != NULL)
+		state->cancellable = g_object_ref (cancellable);
 	state->control = control;
 	g_object_add_weak_pointer (G_OBJECT (state->control), (gpointer) &state->control);
 
@@ -502,7 +504,8 @@ pk_control_set_proxy_async (PkControl *control, const gchar *proxy_http, const g
 	/* save state */
 	state = g_slice_new0 (PkControlState);
 	state->res = g_object_ref (res);
-	state->cancellable = cancellable;
+	if (cancellable != NULL)
+		state->cancellable = g_object_ref (cancellable);
 	state->control = control;
 	g_object_add_weak_pointer (G_OBJECT (state->control), (gpointer) &state->control);
 
@@ -659,7 +662,8 @@ pk_control_get_roles_async (PkControl *control, GCancellable *cancellable, GAsyn
 	/* save state */
 	state = g_slice_new0 (PkControlState);
 	state->res = g_object_ref (res);
-	state->cancellable = cancellable;
+	if (cancellable != NULL)
+		state->cancellable = g_object_ref (cancellable);
 	state->control = control;
 	g_object_add_weak_pointer (G_OBJECT (state->control), (gpointer) &state->control);
 
@@ -801,7 +805,8 @@ pk_control_get_filters_async (PkControl *control, GCancellable *cancellable, GAs
 	/* save state */
 	state = g_slice_new0 (PkControlState);
 	state->res = g_object_ref (res);
-	state->cancellable = cancellable;
+	if (cancellable != NULL)
+		state->cancellable = g_object_ref (cancellable);
 	state->control = control;
 	g_object_add_weak_pointer (G_OBJECT (state->control), (gpointer) &state->control);
 
@@ -943,7 +948,8 @@ pk_control_get_groups_async (PkControl *control, GCancellable *cancellable, GAsy
 	/* save state */
 	state = g_slice_new0 (PkControlState);
 	state->res = g_object_ref (res);
-	state->cancellable = cancellable;
+	if (cancellable != NULL)
+		state->cancellable = g_object_ref (cancellable);
 	state->control = control;
 	g_object_add_weak_pointer (G_OBJECT (state->control), (gpointer) &state->control);
 
@@ -1084,7 +1090,8 @@ pk_control_get_transaction_list_async (PkControl *control, GCancellable *cancell
 	/* save state */
 	state = g_slice_new0 (PkControlState);
 	state->res = g_object_ref (res);
-	state->cancellable = cancellable;
+	if (cancellable != NULL)
+		state->cancellable = g_object_ref (cancellable);
 	state->control = control;
 	g_object_add_weak_pointer (G_OBJECT (state->control), (gpointer) &state->control);
 
@@ -1230,7 +1237,8 @@ pk_control_get_time_since_action_async (PkControl *control, PkRoleEnum role, GCa
 	/* save state */
 	state = g_slice_new0 (PkControlState);
 	state->res = g_object_ref (res);
-	state->cancellable = cancellable;
+	if (cancellable != NULL)
+		state->cancellable = g_object_ref (cancellable);
 	state->control = control;
 	g_object_add_weak_pointer (G_OBJECT (state->control), (gpointer) &state->control);
 
@@ -1379,7 +1387,8 @@ pk_control_get_network_state_async (PkControl *control, GCancellable *cancellabl
 	state = g_slice_new0 (PkControlState);
 	state->res = g_object_ref (res);
 	state->network = PK_NETWORK_ENUM_UNKNOWN;
-	state->cancellable = cancellable;
+	if (cancellable != NULL)
+		state->cancellable = g_object_ref (cancellable);
 	state->control = control;
 	g_object_add_weak_pointer (G_OBJECT (state->control), (gpointer) &state->control);
 
@@ -1524,7 +1533,8 @@ pk_control_can_authorize_async (PkControl *control, const gchar *action_id, GCan
 	/* save state */
 	state = g_slice_new0 (PkControlState);
 	state->res = g_object_ref (res);
-	state->cancellable = cancellable;
+	if (cancellable != NULL)
+		state->cancellable = g_object_ref (cancellable);
 	state->control = control;
 	state->authorize = PK_AUTHORIZE_ENUM_UNKNOWN;
 	g_object_add_weak_pointer (G_OBJECT (state->control), (gpointer) &state->control);
commit 990a089722bd04d95e5df10e428fb63397d32f1c
Author: Richard Hughes <richard at hughsie.com>
Date:   Tue Sep 1 09:20:13 2009 +0100

    glib2: ensure we cancel any in-flight DBus calls when we finalize PkClient

diff --git a/lib/packagekit-glib2/pk-client.c b/lib/packagekit-glib2/pk-client.c
index f21f07d..9a44817 100644
--- a/lib/packagekit-glib2/pk-client.c
+++ b/lib/packagekit-glib2/pk-client.c
@@ -69,6 +69,7 @@ static void     pk_client_finalize	(GObject     *object);
 struct _PkClientPrivate
 {
 	DBusGConnection		*connection;
+	GPtrArray		*calls;
 	PkControl		*control;
 	PkRoleEnum		 role;
 	PkStatusEnum		 status;
@@ -250,6 +251,10 @@ pk_client_state_finish (PkClientState *state, GError *error)
 		g_error_free (error);
 	}
 
+	/* remove from list */
+	g_ptr_array_remove (state->client->priv->calls, state);
+
+	/* complete */
 	g_simple_async_result_complete_in_idle (state->res);
 	g_object_unref (state->res);
 	g_slice_free (PkClientState, state);
@@ -951,6 +956,9 @@ pk_client_set_locale_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkClientState
 		g_assert_not_reached ();
 	}
 
+	/* track state */
+	g_ptr_array_add (state->client->priv->calls, state);
+
 	/* we've sent this async */
 	egg_debug ("sent request");
 
@@ -998,6 +1006,9 @@ pk_client_get_tid_cb (GObject *object, GAsyncResult *res, PkClientState *state)
 					       G_TYPE_STRING, locale,
 					       G_TYPE_INVALID);
 
+	/* track state */
+	g_ptr_array_add (state->client->priv->calls, state);
+
 	/* we've sent this async */
 	egg_debug ("sent locale request");
 }
@@ -1444,7 +1455,6 @@ pk_client_get_old_transactions_async (PkClient *client, guint number, GCancellab
 	g_object_unref (res);
 }
 
-
 /**
  * pk_client_update_system_async:
  * @client: a valid #PkClient instance
@@ -1486,7 +1496,6 @@ pk_client_update_system_async (PkClient *client, gboolean only_trusted, GCancell
 	g_object_unref (res);
 }
 
-
 /**
  * pk_client_get_depends_async:
  * @client: a valid #PkClient instance
@@ -1530,7 +1539,6 @@ pk_client_get_depends_async (PkClient *client, PkBitfield filters, gchar **packa
 	g_object_unref (res);
 }
 
-
 /**
  * pk_client_get_packages_async:
  * @client: a valid #PkClient instance
@@ -1572,9 +1580,6 @@ pk_client_get_packages_async (PkClient *client, PkBitfield filters, GCancellable
 	g_object_unref (res);
 }
 
-
-
-
 /**
  * pk_client_get_requires_async:
  * @client: a valid #PkClient instance
@@ -1618,7 +1623,6 @@ pk_client_get_requires_async (PkClient *client, PkBitfield filters, gchar **pack
 	g_object_unref (res);
 }
 
-
 /**
  * pk_client_what_provides_async:
  * @client: a valid #PkClient instance
@@ -1662,7 +1666,6 @@ pk_client_what_provides_async (PkClient *client, PkBitfield filters, PkProvidesE
 	g_object_unref (res);
 }
 
-
 /**
  * pk_client_get_distro_upgrades_async:
  * @client: a valid #PkClient instance
@@ -1703,7 +1706,6 @@ pk_client_get_distro_upgrades_async (PkClient *client, GCancellable *cancellable
 	g_object_unref (res);
 }
 
-
 /**
  * pk_client_get_files_async:
  * @client: a valid #PkClient instance
@@ -1745,7 +1747,6 @@ pk_client_get_files_async (PkClient *client, gchar **package_ids, GCancellable *
 	g_object_unref (res);
 }
 
-
 /**
  * pk_client_get_categories_async:
  * @client: a valid #PkClient instance
@@ -1786,7 +1787,6 @@ pk_client_get_categories_async (PkClient *client, GCancellable *cancellable,
 	g_object_unref (res);
 }
 
-
 /**
  * pk_client_remove_packages_async:
  * @client: a valid #PkClient instance
@@ -1830,7 +1830,6 @@ pk_client_remove_packages_async (PkClient *client, gchar **package_ids, gboolean
 	g_object_unref (res);
 }
 
-
 /**
  * pk_client_refresh_cache_async:
  * @client: a valid #PkClient instance
@@ -1872,7 +1871,6 @@ pk_client_refresh_cache_async (PkClient *client, gboolean force, GCancellable *c
 	g_object_unref (res);
 }
 
-
 /**
  * pk_client_install_packages_async:
  * @client: a valid #PkClient instance
@@ -1915,7 +1913,6 @@ pk_client_install_packages_async (PkClient *client, gboolean only_trusted, gchar
 	g_object_unref (res);
 }
 
-
 /**
  * pk_client_install_signature_async:
  * @client: a valid #PkClient instance
@@ -1959,7 +1956,6 @@ pk_client_install_signature_async (PkClient *client, PkSigTypeEnum type, const g
 	g_object_unref (res);
 }
 
-
 /**
  * pk_client_update_packages_async:
  * @client: a valid #PkClient instance
@@ -2002,7 +1998,6 @@ pk_client_update_packages_async (PkClient *client, gboolean only_trusted, gchar
 	g_object_unref (res);
 }
 
-
 /**
  * pk_client_install_files_async:
  * @client: a valid #PkClient instance
@@ -2045,7 +2040,6 @@ pk_client_install_files_async (PkClient *client, gboolean only_trusted, gchar **
 	g_object_unref (res);
 }
 
-
 /**
  * pk_client_accept_eula_async:
  * @client: a valid #PkClient instance
@@ -2087,7 +2081,6 @@ pk_client_accept_eula_async (PkClient *client, const gchar *eula_id, GCancellabl
 	g_object_unref (res);
 }
 
-
 /**
  * pk_client_get_repo_list_async:
  * @client: a valid #PkClient instance
@@ -2129,7 +2122,6 @@ pk_client_get_repo_list_async (PkClient *client, PkBitfield filters, GCancellabl
 	g_object_unref (res);
 }
 
-
 /**
  * pk_client_repo_enable_async:
  * @client: a valid #PkClient instance
@@ -2172,7 +2164,6 @@ pk_client_repo_enable_async (PkClient *client, const gchar *repo_id, gboolean en
 	g_object_unref (res);
 }
 
-
 /**
  * pk_client_repo_set_data_async:
  * @client: a valid #PkClient instance
@@ -2216,7 +2207,6 @@ pk_client_repo_set_data_async (PkClient *client, const gchar *repo_id, const gch
 	g_object_unref (res);
 }
 
-
 /**
  * pk_client_simulate_install_files_async:
  * @client: a valid #PkClient instance
@@ -2258,7 +2248,6 @@ pk_client_simulate_install_files_async (PkClient *client, gchar **files, GCancel
 	g_object_unref (res);
 }
 
-
 /**
  * pk_client_simulate_install_packages_async:
  * @client: a valid #PkClient instance
@@ -2300,7 +2289,6 @@ pk_client_simulate_install_packages_async (PkClient *client, gchar **package_ids
 	g_object_unref (res);
 }
 
-
 /**
  * pk_client_simulate_remove_packages_async:
  * @client: a valid #PkClient instance
@@ -2342,7 +2330,6 @@ pk_client_simulate_remove_packages_async (PkClient *client, gchar **package_ids,
 	g_object_unref (res);
 }
 
-
 /**
  * pk_client_simulate_update_packages_async:
  * @client: a valid #PkClient instance
@@ -2410,6 +2397,9 @@ pk_client_cancel_state_finish (PkClientState *state, GError *error)
 		g_error_free (error);
 	}
 
+	/* remove from list */
+	g_ptr_array_remove (state->client->priv->calls, state);
+
 	/* complete */
 	g_simple_async_result_complete_in_idle (state->res);
 
@@ -2519,6 +2509,29 @@ pk_client_cancel_finish (PkClient *client, GAsyncResult *res, GError **error)
 /***************************************************************************************************/
 
 /**
+ * pk_client_cancel_all_dbus_methods:
+ **/
+static gboolean
+pk_client_cancel_all_dbus_methods (PkClient *client)
+{
+	const PkClientState *state;
+	guint i;
+	GPtrArray *array;
+
+	/* just cancel the call */
+	array = client->priv->calls;
+	for (i=0; i<array->len; i++) {
+		state = g_ptr_array_index (array, i);
+		if (state->call == NULL)
+			continue;
+		egg_debug ("cancel in flight call: %p", state->call);
+		dbus_g_proxy_cancel_call (state->proxy, state->call);
+	}
+
+	return TRUE;
+}
+
+/**
  * pk_client_get_property:
  **/
 static void
@@ -2608,6 +2621,7 @@ pk_client_init (PkClient *client)
 
 	client->priv->status = PK_STATUS_ENUM_UNKNOWN;
 	client->priv->role = PK_ROLE_ENUM_UNKNOWN;
+	client->priv->calls = g_ptr_array_new ();
 
 	/* check dbus connections, exit if not valid */
 	client->priv->connection = dbus_g_bus_get (DBUS_BUS_SYSTEM, &error);
@@ -2707,7 +2721,11 @@ pk_client_finalize (GObject *object)
 	PkClient *client = PK_CLIENT (object);
 	PkClientPrivate *priv = client->priv;
 
+	/* ensure we cancel any in-flight DBus calls */
+	pk_client_cancel_all_dbus_methods (client);
+
 	g_object_unref (priv->control);
+	g_ptr_array_unref (priv->calls);
 
 	G_OBJECT_CLASS (pk_client_parent_class)->finalize (object);
 }
commit be413a01a96912e1679cb8efd40dbfefde93ad97
Author: Richard Hughes <richard at hughsie.com>
Date:   Tue Sep 1 09:13:28 2009 +0100

    glib2: ensure we cancel any in-flight DBus calls when we finalize PkControl

diff --git a/lib/packagekit-glib2/pk-control.c b/lib/packagekit-glib2/pk-control.c
index 94f21ef..41f8db2 100644
--- a/lib/packagekit-glib2/pk-control.c
+++ b/lib/packagekit-glib2/pk-control.c
@@ -48,6 +48,7 @@ static void     pk_control_finalize	(GObject     *object);
 struct _PkControlPrivate
 {
 	DBusGProxyCall		*call;
+	GPtrArray		*calls;
 	DBusGProxy		*proxy;
 	DBusGConnection		*connection;
 	gboolean		 version_major;
@@ -153,6 +154,9 @@ pk_control_get_tid_state_finish (PkControlState *state, GError *error)
 		g_error_free (error);
 	}
 
+	/* remove from list */
+	g_ptr_array_remove (state->control->priv->calls, state);
+
 	/* complete */
 	g_simple_async_result_complete_in_idle (state->res);
 
@@ -221,14 +225,16 @@ pk_control_get_tid_async (PkControl *control, GCancellable *cancellable, GAsyncR
 	state->res = g_object_ref (res);
 	state->cancellable = cancellable;
 	state->control = control;
-	state->call = NULL;
-	state->tid = NULL;
 	g_object_add_weak_pointer (G_OBJECT (state->control), (gpointer) &state->control);
 
 	/* call D-Bus method async */
 	state->call = dbus_g_proxy_begin_call (control->priv->proxy, "GetTid",
 					       (DBusGProxyCallNotify) pk_control_get_tid_cb, state,
 					       NULL, G_TYPE_INVALID);
+
+	/* track state */
+	g_ptr_array_add (control->priv->calls, state);
+
 	g_object_unref (res);
 }
 
@@ -289,6 +295,9 @@ pk_control_get_mime_types_state_finish (PkControlState *state, GError *error)
 		g_error_free (error);
 	}
 
+	/* remove from list */
+	g_ptr_array_remove (state->control->priv->calls, state);
+
 	/* complete */
 	g_simple_async_result_complete_in_idle (state->res);
 
@@ -363,6 +372,10 @@ pk_control_get_mime_types_async (PkControl *control, GCancellable *cancellable,
 	state->call = dbus_g_proxy_begin_call (control->priv->proxy, "GetMimeTypes",
 					       (DBusGProxyCallNotify) pk_control_get_mime_types_cb, state,
 					       NULL, G_TYPE_INVALID);
+
+	/* track state */
+	g_ptr_array_add (control->priv->calls, state);
+
 	g_object_unref (res);
 }
 
@@ -423,6 +436,9 @@ pk_control_set_proxy_state_finish (PkControlState *state, GError *error)
 		g_error_free (error);
 	}
 
+	/* remove from list */
+	g_ptr_array_remove (state->control->priv->calls, state);
+
 	/* complete */
 	g_simple_async_result_complete_in_idle (state->res);
 
@@ -496,6 +512,10 @@ pk_control_set_proxy_async (PkControl *control, const gchar *proxy_http, const g
 					       G_TYPE_STRING, proxy_http,
 					       G_TYPE_STRING, proxy_ftp,
 					       G_TYPE_INVALID);
+
+	/* track state */
+	g_ptr_array_add (control->priv->calls, state);
+
 	g_object_unref (res);
 }
 
@@ -568,6 +588,9 @@ pk_control_get_roles_state_finish (PkControlState *state, GError *error)
 		g_error_free (error);
 	}
 
+	/* remove from list */
+	g_ptr_array_remove (state->control->priv->calls, state);
+
 	/* complete */
 	g_simple_async_result_complete_in_idle (state->res);
 
@@ -644,6 +667,10 @@ pk_control_get_roles_async (PkControl *control, GCancellable *cancellable, GAsyn
 	state->call = dbus_g_proxy_begin_call (control->priv->proxy, "GetActions", /* not GetRoles, just get over it... */
 					       (DBusGProxyCallNotify) pk_control_get_roles_cb, state,
 					       NULL, G_TYPE_INVALID);
+
+	/* track state */
+	g_ptr_array_add (control->priv->calls, state);
+
 	g_object_unref (res);
 }
 
@@ -703,6 +730,9 @@ pk_control_get_filters_state_finish (PkControlState *state, GError *error)
 		g_error_free (error);
 	}
 
+	/* remove from list */
+	g_ptr_array_remove (state->control->priv->calls, state);
+
 	/* complete */
 	g_simple_async_result_complete_in_idle (state->res);
 
@@ -779,6 +809,10 @@ pk_control_get_filters_async (PkControl *control, GCancellable *cancellable, GAs
 	state->call = dbus_g_proxy_begin_call (control->priv->proxy, "GetFilters",
 					       (DBusGProxyCallNotify) pk_control_get_filters_cb, state,
 					       NULL, G_TYPE_INVALID);
+
+	/* track state */
+	g_ptr_array_add (control->priv->calls, state);
+
 	g_object_unref (res);
 }
 
@@ -838,6 +872,9 @@ pk_control_get_groups_state_finish (PkControlState *state, GError *error)
 		g_error_free (error);
 	}
 
+	/* remove from list */
+	g_ptr_array_remove (state->control->priv->calls, state);
+
 	/* complete */
 	g_simple_async_result_complete_in_idle (state->res);
 
@@ -914,6 +951,10 @@ pk_control_get_groups_async (PkControl *control, GCancellable *cancellable, GAsy
 	state->call = dbus_g_proxy_begin_call (control->priv->proxy, "GetGroups",
 					       (DBusGProxyCallNotify) pk_control_get_groups_cb, state,
 					       NULL, G_TYPE_INVALID);
+
+	/* track state */
+	g_ptr_array_add (control->priv->calls, state);
+
 	g_object_unref (res);
 }
 
@@ -974,6 +1015,9 @@ pk_control_get_transaction_list_state_finish (PkControlState *state, GError *err
 		g_error_free (error);
 	}
 
+	/* remove from list */
+	g_ptr_array_remove (state->control->priv->calls, state);
+
 	/* complete */
 	g_simple_async_result_complete_in_idle (state->res);
 
@@ -1048,6 +1092,10 @@ pk_control_get_transaction_list_async (PkControl *control, GCancellable *cancell
 	state->call = dbus_g_proxy_begin_call (control->priv->proxy, "GetTransactionList",
 					       (DBusGProxyCallNotify) pk_control_get_transaction_list_cb, state,
 					       NULL, G_TYPE_INVALID);
+
+	/* track state */
+	g_ptr_array_add (control->priv->calls, state);
+
 	g_object_unref (res);
 }
 
@@ -1108,6 +1156,9 @@ pk_control_get_time_since_action_state_finish (PkControlState *state, GError *er
 		g_error_free (error);
 	}
 
+	/* remove from list */
+	g_ptr_array_remove (state->control->priv->calls, state);
+
 	/* complete */
 	g_simple_async_result_complete_in_idle (state->res);
 
@@ -1189,6 +1240,10 @@ pk_control_get_time_since_action_async (PkControl *control, PkRoleEnum role, GCa
 					       (DBusGProxyCallNotify) pk_control_get_time_since_action_cb, state, NULL,
 					       G_TYPE_STRING, role_text,
 					       G_TYPE_INVALID);
+
+	/* track state */
+	g_ptr_array_add (control->priv->calls, state);
+
 	g_object_unref (res);
 }
 
@@ -1249,6 +1304,9 @@ pk_control_get_network_state_state_finish (PkControlState *state, GError *error)
 		g_error_free (error);
 	}
 
+	/* remove from list */
+	g_ptr_array_remove (state->control->priv->calls, state);
+
 	/* complete */
 	g_simple_async_result_complete_in_idle (state->res);
 
@@ -1329,6 +1387,10 @@ pk_control_get_network_state_async (PkControl *control, GCancellable *cancellabl
 	state->call = dbus_g_proxy_begin_call (control->priv->proxy, "GetNetworkState",
 					       (DBusGProxyCallNotify) pk_control_get_network_state_cb, state, NULL,
 					       G_TYPE_INVALID);
+
+	/* track state */
+	g_ptr_array_add (control->priv->calls, state);
+
 	g_object_unref (res);
 }
 
@@ -1388,6 +1450,9 @@ pk_control_can_authorize_state_finish (PkControlState *state, GError *error)
 		g_error_free (error);
 	}
 
+	/* remove from list */
+	g_ptr_array_remove (state->control->priv->calls, state);
+
 	/* complete */
 	g_simple_async_result_complete_in_idle (state->res);
 
@@ -1469,6 +1534,10 @@ pk_control_can_authorize_async (PkControl *control, const gchar *action_id, GCan
 					       (DBusGProxyCallNotify) pk_control_can_authorize_cb, state, NULL,
 					       G_TYPE_STRING, action_id,
 					       G_TYPE_INVALID);
+
+	/* track state */
+	g_ptr_array_add (control->priv->calls, state);
+
 	g_object_unref (res);
 }
 
@@ -1738,6 +1807,29 @@ pk_control_set_properties (PkControl *control)
 }
 
 /**
+ * pk_control_cancel_all_dbus_methods:
+ **/
+static gboolean
+pk_control_cancel_all_dbus_methods (PkControl *control)
+{
+	const PkControlState *state;
+	guint i;
+	GPtrArray *array;
+
+	/* just cancel the call */
+	array = control->priv->calls;
+	for (i=0; i<array->len; i++) {
+		state = g_ptr_array_index (array, i);
+		if (state->call == NULL)
+			continue;
+		egg_debug ("cancel in flight call: %p", state->call);
+		dbus_g_proxy_cancel_call (control->priv->proxy, state->call);
+	}
+
+	return TRUE;
+}
+
+/**
  * pk_control_get_property:
  **/
 static void
@@ -1908,6 +2000,7 @@ pk_control_init (PkControl *control)
 
 	control->priv = PK_CONTROL_GET_PRIVATE (control);
 	control->priv->call = NULL;
+	control->priv->calls = g_ptr_array_new ();
 
 	/* check dbus connections, exit if not valid */
 	control->priv->connection = dbus_g_bus_get (DBUS_BUS_SYSTEM, &error);
@@ -1979,6 +2072,9 @@ pk_control_finalize (GObject *object)
 		dbus_g_proxy_cancel_call (control->priv->proxy, control->priv->call);
 	}
 
+	/* ensure we cancel any in-flight DBus calls */
+	pk_control_cancel_all_dbus_methods (control);
+
 	/* disconnect signal handlers */
 	dbus_g_proxy_disconnect_signal (control->priv->proxy, "Locked",
 				        G_CALLBACK (pk_control_locked_cb), control);
@@ -1994,6 +2090,7 @@ pk_control_finalize (GObject *object)
 				        G_CALLBACK (pk_control_restart_schedule_cb), control);
 
 	g_object_unref (G_OBJECT (priv->proxy));
+	g_ptr_array_unref (control->priv->calls);
 
 	G_OBJECT_CLASS (pk_control_parent_class)->finalize (object);
 }
commit b574166c162aae440e3cf7bc0ac6d0be7c4fe737
Author: ifelix <ifelix at fedoraproject.org>
Date:   Tue Sep 1 07:51:23 2009 +0000

    Sending translation for Tamil

diff --git a/po/ta.po b/po/ta.po
index a210ca3..ac42caa 100644
--- a/po/ta.po
+++ b/po/ta.po
@@ -7,8 +7,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: packagekit.master.ta\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-08-24 11:06+0100\n"
-"PO-Revision-Date: 2009-06-26 23:04+0530\n"
+"POT-Creation-Date: 2009-08-31 16:45+0000\n"
+"PO-Revision-Date: 2009-09-01 13:19+0530\n"
 "Last-Translator: I. Felix <ifelix at redhat.com>\n"
 "Language-Team: Tamil <fedora-trans-ta at redhat.com>\n"
 "MIME-Version: 1.0\n"
@@ -24,6 +24,7 @@ msgstr ""
 "\n"
 "\n"
 "\n"
+"\n"
 
 #. TRANSLATORS: this is an atomic transaction
 #: ../client/pk-console.c:235
@@ -41,11 +42,11 @@ msgid "Succeeded"
 msgstr "வெற்றியடைதல்"
 
 #. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:239 ../client/pk-console.c:406
+#: ../client/pk-console.c:239 ../client/pk-console.c:468
 msgid "True"
 msgstr "சரி"
 
-#: ../client/pk-console.c:239 ../client/pk-console.c:406
+#: ../client/pk-console.c:239 ../client/pk-console.c:468
 msgid "False"
 msgstr "தவறு"
 
@@ -93,453 +94,485 @@ msgstr "பாதிக்கப்பட்ட தொகுதிகள்:"
 msgid "Affected packages: None"
 msgstr "பாதிக்கப்பட்ட தொகுதிகள்: ஒன்றுமில்லாத"
 
+#. TRANSLATORS: When processing, we might have to remove other dependencies
+#: ../client/pk-console.c:334
+msgid "The following packages have to be removed:"
+msgstr "பின்வரும் தொகுப்புகளை நீக்கப்பட வேண்டியவை:"
+
+#. TRANSLATORS: When processing, we might have to install other dependencies
+#: ../client/pk-console.c:337
+msgid "The following packages have to be installed:"
+msgstr "பின்வரும் தொகுப்புகளை நிறுவப்பட வேண்டியவை:"
+
+#. TRANSLATORS: When processing, we might have to update other dependencies
+#: ../client/pk-console.c:340
+msgid "The following packages have to be updated:"
+msgstr "பின்வரும் தொகுப்புகள் மேம்படுத்த வேண்டியவை:"
+
+#. TRANSLATORS: When processing, we might have to reinstall other dependencies
+#: ../client/pk-console.c:343
+msgid "The following packages have to be reinstalled:"
+msgstr "பின்வரும் தொகுப்புகளை மீண்டும் நிறுவப்பட வேண்டியவை:"
+
+#. TRANSLATORS: When processing, we might have to downgrade other dependencies
+#: ../client/pk-console.c:346
+msgid "The following packages have to be downgraded:"
+msgstr "பின்வரும் தொகுப்புகளை தரமிறக்க வேண்டியவை:"
+
 #. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:298
+#: ../client/pk-console.c:360
 msgid "Distribution"
 msgstr "விநியோகம்"
 
 #. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:300
+#: ../client/pk-console.c:362
 msgid "Type"
 msgstr "வகை"
 
 #. TRANSLATORS: this is any summary text describing the upgrade
 #. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:302 ../client/pk-console.c:325
+#: ../client/pk-console.c:364 ../client/pk-console.c:387
 msgid "Summary"
 msgstr "சுருக்கம்"
 
 #. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:314
+#: ../client/pk-console.c:376
 msgid "Category"
 msgstr "வகை"
 
 #. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:316
+#: ../client/pk-console.c:378
 msgid "ID"
 msgstr "ID"
 
 #. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:319
+#: ../client/pk-console.c:381
 msgid "Parent"
 msgstr "பெற்றோர்"
 
 #. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:322
+#: ../client/pk-console.c:384
 msgid "Name"
 msgstr "பெயர்"
 
 #. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:328
+#: ../client/pk-console.c:390
 msgid "Icon"
 msgstr "சின்னம்"
 
 #. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:343
+#: ../client/pk-console.c:405
 msgid "Details about the update:"
 msgstr "மேம்படுத்துதல் பற்றிய விவரங்கள்:"
 
 #. TRANSLATORS: details about the update, package name and version
 #. TRANSLATORS: title, the names of the packages that the method is processing
-#: ../client/pk-console.c:345 ../src/pk-polkit-action-lookup.c:352
-#, fuzzy
+#: ../client/pk-console.c:407 ../src/pk-polkit-action-lookup.c:352
 msgid "Package"
 msgid_plural "Packages"
 msgstr[0] "தொகுப்பு"
-msgstr[1] "தொகுப்பு"
+msgstr[1] "தொகுப்புகள்"
 
 #. TRANSLATORS: details about the update, any packages that this update updates
-#: ../client/pk-console.c:348
+#: ../client/pk-console.c:410
 msgid "Updates"
 msgstr "மேம்படுத்தல்கள"
 
 #. TRANSLATORS: details about the update, any packages that this update obsoletes
-#: ../client/pk-console.c:352
+#: ../client/pk-console.c:414
 msgid "Obsoletes"
 msgstr "நீக்கப்பட்டது"
 
 #. TRANSLATORS: details about the update, the vendor URLs
-#: ../client/pk-console.c:356
+#: ../client/pk-console.c:418
 msgid "Vendor"
 msgstr "விற்பனையாளர்"
 
 #. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:360
+#: ../client/pk-console.c:422
 msgid "Bugzilla"
 msgstr "பக்ஸிலா"
 
 #. TRANSLATORS: details about the update, the CVE URLs
-#: ../client/pk-console.c:364
+#: ../client/pk-console.c:426
 msgid "CVE"
 msgstr "CVE"
 
 #. TRANSLATORS: details about the update, if the package requires a restart
-#: ../client/pk-console.c:368
+#: ../client/pk-console.c:430
 msgid "Restart"
 msgstr "மறுதுவக்கு"
 
 #. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:372
+#: ../client/pk-console.c:434
 msgid "Update text"
 msgstr "மேம்படுத்தப்பட்ட உரை"
 
 #. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:376
+#: ../client/pk-console.c:438
 msgid "Changes"
 msgstr "மாற்றங்கள்"
 
 #. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:380
+#: ../client/pk-console.c:442
 msgid "State"
 msgstr "நிலை"
 
 #. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:385
+#: ../client/pk-console.c:447
 msgid "Issued"
 msgstr "வழங்கப்பட்டது"
 
 #. TRANSLATORS: details about the update, date the update was updated
-#: ../client/pk-console.c:390
+#: ../client/pk-console.c:452
 msgid "Updated"
 msgstr "மேம்படுத்தப்பட்டது"
 
-#: ../client/pk-console.c:477 ../client/pk-console.c:479
+#: ../client/pk-console.c:539 ../client/pk-console.c:541
 msgid "Percentage"
 msgstr "சதவீதம்"
 
-#: ../client/pk-console.c:479
+#: ../client/pk-console.c:541
 msgid "Unknown"
 msgstr "தெரியாத"
 
 #. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:521
+#: ../client/pk-console.c:583
 msgid "System restart required by:"
 msgstr "கணினிக்கு மறுதுவக்கம் தேவைப்படுகிறது:"
 
 #. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:524
+#: ../client/pk-console.c:586
 msgid "Session restart required:"
 msgstr "அமர்வுக்கு மறுதுவக்கம் தேவைப்படுகிறது:"
 
 #. TRANSLATORS: a package requires the system to be restarted due to a security update
-#: ../client/pk-console.c:527
-#, fuzzy
+#: ../client/pk-console.c:589
 msgid "System restart (security) required by:"
-msgstr "கணினிக்கு மறுதுவக்கம் தேவைப்படுகிறது:"
+msgstr "கணினிக்கு மறுதுவக்கம் (பாதுகாப்பு) தேவைப்படுகிறது:"
 
 #. TRANSLATORS: a package requires the session to be restarted due to a security update
-#: ../client/pk-console.c:530
-#, fuzzy
+#: ../client/pk-console.c:592
 msgid "Session restart (security) required:"
-msgstr "அமர்வுக்கு மறுதுவக்கம் தேவைப்படுகிறது:"
+msgstr "அமர்வுக்கு மறுதுவக்கம் (பாதுகாப்பு) தேவைப்படுகிறது:"
 
 #. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:533
+#: ../client/pk-console.c:595
 msgid "Application restart required by:"
 msgstr "பயன்பாடிற்கு மறுதுவக்கம் தேவைப்படுகிறது:"
 
 #. TRANSLATORS: a package needs to restart their system
-#: ../client/pk-console.c:588
+#: ../client/pk-console.c:650
 msgid "Please restart the computer to complete the update."
 msgstr "கணினியை மீண்டும் துவக்கி மேம்படுத்துதலை முடிக்கவும்."
 
 #. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:591
+#: ../client/pk-console.c:653
 msgid "Please logout and login to complete the update."
 msgstr "வெளியேறிவிட்டு மற்றும் மேம்படுத்துதலை முடிக்க உள்நுழையவும்."
 
 #. TRANSLATORS: a package needs to restart the application
-#: ../client/pk-console.c:594
+#: ../client/pk-console.c:656
 msgid "Please restart the application as it is being used."
 msgstr "பயன்படுத்தபட்டிருந்தாலும் அதன் பயன்பாட்டை மீண்டும் துவக்கவும்."
 
 #. TRANSLATORS: a package needs to restart their system (due to security)
-#: ../client/pk-console.c:597
-#, fuzzy
+#: ../client/pk-console.c:659
 msgid ""
 "Please restart the computer to complete the update as important security "
 "updates have been installed."
-msgstr "கணினியை மீண்டும் துவக்கி மேம்படுத்துதலை முடிக்கவும்."
+msgstr "முக்கியமான மேம்படுத்தல்களை நிறுவ கணினியை மீண்டும் துவக்கி மேம்படுத்துதலை முடிக்கவும்."
 
 #. TRANSLATORS: a package needs to restart the session (due to security)
-#: ../client/pk-console.c:600
-#, fuzzy
+#: ../client/pk-console.c:662
 msgid ""
 "Please logout and login to complete the update as important security updates "
 "have been installed."
-msgstr "வெளியேறிவிட்டு மற்றும் மேம்படுத்துதலை முடிக்க உள்நுழையவும்."
+msgstr "முக்கியமான பாதுகாப்பு மேம்படுத்தல்களை நிறுவ வெளியேறிவிட்டு மற்றும் மேம்படுத்துதலை முடிக்க உள்நுழையவும்."
 
 #. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:727
+#: ../client/pk-console.c:794
 #, c-format
 msgid "The package %s is already installed"
 msgstr "தொகுப்பு %s ஏற்கனவே நிறுவப்பட்டது"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:735
+#: ../client/pk-console.c:802
 #, c-format
 msgid "The package %s could not be installed: %s"
 msgstr "தொகுப்பு %s நிறுவப்படவில்லை: %s"
 
 #. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
-#: ../client/pk-console.c:760 ../client/pk-console.c:783
-#: ../client/pk-console.c:879 ../client/pk-console.c:996
-#: ../client/pk-tools-common.c:62 ../client/pk-tools-common.c:81
-#: ../client/pk-tools-common.c:89
+#: ../client/pk-console.c:828 ../client/pk-console.c:876
+#: ../client/pk-console.c:900 ../client/pk-console.c:948
+#: ../client/pk-console.c:1044 ../client/pk-console.c:1157
+#: ../client/pk-console.c:1218 ../client/pk-tools-common.c:62
+#: ../client/pk-tools-common.c:81 ../client/pk-tools-common.c:89
 #, c-format
 msgid "Internal error: %s"
 msgstr "உட்புற பிழை: %s"
 
+#. TRANSLATORS: We are checking if it's okay to remove a list of packages
+#: ../client/pk-console.c:860 ../client/pk-console.c:932
+#: ../client/pk-console.c:1250
+msgid "Proceed with changes?"
+msgstr "மாற்றங்களுடன் தொடர வேண்டுமா?"
+
+#. TRANSLATORS: There was an error removing the packages. The detailed error follows
+#: ../client/pk-console.c:865 ../client/pk-console.c:937
+msgid "The package install was canceled!"
+msgstr "தொகுப்புகளை நிறுவல் ரத்து செய்யப்பட்டது!"
+
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:768 ../client/pk-console.c:1392
+#: ../client/pk-console.c:884 ../client/pk-console.c:1618
 #, c-format
 msgid "This tool could not install the packages: %s"
 msgstr "இந்த கருவி இந்த தொகுப்புகளை நிறுவ முடியவில்லை: %s"
 
 #. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:791
+#: ../client/pk-console.c:956
 #, c-format
 msgid "This tool could not install the files: %s"
 msgstr "இந்த கருவியால் கோப்புகளை நிறுவ முடியவில்லை: %s"
 
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:847
+#: ../client/pk-console.c:1012
 #, c-format
 msgid "This tool could not remove %s: %s"
 msgstr "இந்த கருவியால் %sஐ நீக்க முடியவில்லை: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:870 ../client/pk-console.c:908
-#: ../client/pk-console.c:941
+#: ../client/pk-console.c:1035 ../client/pk-console.c:1073
+#: ../client/pk-console.c:1102
 #, c-format
 msgid "This tool could not remove the packages: %s"
 msgstr "இந்த கருவி தொகுப்புகளை நீக்க முடியவில்லை: %s"
 
-#. TRANSLATORS: When removing, we might have to remove other dependencies
-#: ../client/pk-console.c:920
-msgid "The following packages have to be removed:"
-msgstr "பின்வரும் தொகுப்புகளை நீக்கப்பட வேண்டியவை:"
-
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:927
-msgid "Proceed removing additional packages?"
-msgstr "கூடுதல் தொகுப்புகளை நீக்குதல் நடைபெற்று கொண்டிருக்கிறது?"
+#: ../client/pk-console.c:1088
+msgid "Proceed with additional packages?"
+msgstr "கூடுதல் தொகுப்புகளுடன் தொடரவா?"
 
-#. TRANSLATORS: We did not remove any packages
-#: ../client/pk-console.c:932
+#. TRANSLATORS: There was an error removing the packages. The detailed error follows
+#: ../client/pk-console.c:1093
 msgid "The package removal was canceled!"
 msgstr "தொகுப்புகளை நீக்குவது ரத்து செய்யப்பட்டது!"
 
 #. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:973
+#: ../client/pk-console.c:1134
 #, c-format
 msgid "This tool could not download the package %s as it could not be found"
-msgstr ""
-"இந்த கருவியால் %s தொகுப்புகளை பதிவிறக்க முடியவில்லை அதை கண்டுபிடிக்கவும் முடியவில்லை"
+msgstr "இந்த கருவியால் %s தொகுப்புகளை பதிவிறக்க முடியவில்லை அதை கண்டுபிடிக்கவும் முடியவில்லை"
 
 #. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:1004
+#: ../client/pk-console.c:1165
 #, c-format
 msgid "This tool could not download the packages: %s"
 msgstr "இந்த கருவியால் தொகுப்புகளை பதிவிறக்க முடியவில்லை: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1031 ../client/pk-console.c:1040
+#: ../client/pk-console.c:1197 ../client/pk-console.c:1209
+#: ../client/pk-console.c:1264
 #, c-format
 msgid "This tool could not update %s: %s"
 msgstr "மேம்பாடு %sஐ இந்த கருவியால் மேம்படுத்த முடியவில்லை : %s"
 
+#. TRANSLATORS: There was an error removing the packages. The detailed error follows
+#: ../client/pk-console.c:1255
+msgid "The package update was canceled!"
+msgstr "தொகுப்புகளை மேம்படுத்தல் ரத்து செய்யப்பட்டது!"
+
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1062 ../client/pk-console.c:1070
+#: ../client/pk-console.c:1288 ../client/pk-console.c:1296
 #, c-format
 msgid "This tool could not get the requirements for %s: %s"
 msgstr "%sக்கு தேவையானவற்றை இந்த கருவியால் பெற முடியவில்லை: %s"
 
 #. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:1092 ../client/pk-console.c:1100
+#: ../client/pk-console.c:1318 ../client/pk-console.c:1326
 #, c-format
 msgid "This tool could not get the dependencies for %s: %s"
 msgstr "%sகான சார்புகளை இந்தக் கருவியால் பெற முடியவில்லை: %s"
 
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:1122 ../client/pk-console.c:1130
+#: ../client/pk-console.c:1348 ../client/pk-console.c:1356
 #, c-format
 msgid "This tool could not get package details for %s: %s"
 msgstr "%sக்கான தொகுப்பு விவரங்களை இந்தக் கருவியால் பெற முடியாது: %s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1152
+#: ../client/pk-console.c:1378
 #, c-format
 msgid "This tool could not find the files for %s: %s"
 msgstr "%sக்கான கோப்புகளை இந்த கருவியால் கண்டுபிடிக்க முடியாது: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1160
+#: ../client/pk-console.c:1386
 #, c-format
 msgid "This tool could not get the file list for %s: %s"
 msgstr "%sகாக கோப்பு பட்டியலை இந்தக் கருவியால் பெற முடியவில்லை: %s"
 
 #. TRANSLATORS: There was an error getting the list of packages. The filename follows
-#: ../client/pk-console.c:1182
+#: ../client/pk-console.c:1408
 #, c-format
 msgid "File already exists: %s"
 msgstr "கோப்பு ஏற்கனவை வெளியேற்றப்பட்டது: %s"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1187 ../client/pk-console.c:1243
-#: ../client/pk-console.c:1318
+#: ../client/pk-console.c:1413 ../client/pk-console.c:1469
+#: ../client/pk-console.c:1544
 msgid "Getting package list"
 msgstr "தொகுப்புகளின் பட்டியல் பெறப்படுகிறது"
 
 #. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1193 ../client/pk-console.c:1249
-#: ../client/pk-console.c:1324
+#: ../client/pk-console.c:1419 ../client/pk-console.c:1475
+#: ../client/pk-console.c:1550
 #, c-format
 msgid "This tool could not get package list: %s"
 msgstr "இந்த கருவியால் தொகுப்பு பட்டியலை பெற இயலாது: %s"
 
 #. TRANSLATORS: There was an error saving the list
-#: ../client/pk-console.c:1204
+#: ../client/pk-console.c:1430
 #, c-format
 msgid "Failed to save to disk"
 msgstr "வட்டில் சேமிப்பதில் தோல்வி"
 
 #. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1238 ../client/pk-console.c:1313
+#: ../client/pk-console.c:1464 ../client/pk-console.c:1539
 #, c-format
 msgid "File does not exist: %s"
 msgstr "கோப்பு வெளியேற்றப்படவில்லை: %s"
 
 #. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1270
+#: ../client/pk-console.c:1496
 msgid "Packages to add"
 msgstr "சேர்ப்பதற்கான தொகுப்புகள்"
 
 #. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1278
+#: ../client/pk-console.c:1504
 msgid "Packages to remove"
 msgstr "நீக்கவேண்டிய தொகுப்புகள்"
 
 #. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1346
+#: ../client/pk-console.c:1572
 #, c-format
 msgid "No new packages need to be installed"
 msgstr "புதிய தொகுப்புகள் நிறுவப்பட வேண்டியுள்ளது"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1352
+#: ../client/pk-console.c:1578
 msgid "To install"
 msgstr "நிறுவுவதற்கு"
 
 #. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1364
+#: ../client/pk-console.c:1590
 msgid "Searching for package: "
 msgstr "தொகுப்பினை தேடுகிறது: "
 
 #. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1368
+#: ../client/pk-console.c:1594
 msgid "not found."
 msgstr "காணப்படவில்லை."
 
 #. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1379
+#: ../client/pk-console.c:1605
 #, c-format
 msgid "No packages can be found to install"
 msgstr "நிறுவுவதற்கு தொகுப்புகள் எதுவும் காணப்படவில்லை"
 
 #. TRANSLATORS: installing new packages from package list
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
-#: ../client/pk-console.c:1385
+#: ../client/pk-console.c:1611
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:886
 #, c-format
 msgid "Installing packages"
 msgstr "நிறுவப்பட்ட தொகுப்புகள்"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1421
+#: ../client/pk-console.c:1647
 #, c-format
 msgid "This tool could not find the update details for %s: %s"
 msgstr "%sகான விவரங்களை மேம்படுத்த இந்தக் கருவியால் கண்டுபிடிக்க முடியவில்லை: %s"
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1429
+#: ../client/pk-console.c:1655
 #, c-format
 msgid "This tool could not get the update details for %s: %s"
 msgstr "This tool could not get the update details for %s: %s"
 
 #. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
-#: ../client/pk-console.c:1460
+#: ../client/pk-console.c:1686
 msgid "Error:"
 msgstr "பிழை:"
 
 #. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1474
+#: ../client/pk-console.c:1700
 msgid "Package description"
 msgstr "தொகுப்பு விளக்கம்"
 
 #. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
-#: ../client/pk-console.c:1490
+#: ../client/pk-console.c:1716
 msgid "Message:"
 msgstr "செய்தி:"
 
 #. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1518
+#: ../client/pk-console.c:1744
 msgid "Package files"
 msgstr "தொகுப்பு கோப்புகள்"
 
 #. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1526
+#: ../client/pk-console.c:1752
 msgid "No files"
 msgstr "கோப்புகள் இல்லை"
 
 #. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1549
+#: ../client/pk-console.c:1775
 msgid "Repository signature required"
 msgstr "நம்பிக்கையான கையெழுத்து தேவைப்படுகிறது"
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1559
+#: ../client/pk-console.c:1785
 msgid "Do you accept this signature?"
 msgstr "நீங்கள் இந்த கையெமுத்து ஏற்றுக் கொள்கிறீர்களா ?"
 
 #. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1563
+#: ../client/pk-console.c:1789
 msgid "The signature was not accepted."
 msgstr "கையேழுத்து ஏற்றுக் கொள்ளப்படவில்லை."
 
 #. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1597
+#: ../client/pk-console.c:1823
 msgid "End user license agreement required"
 msgstr "இறுதியான பயனரின் உரிம ஒப்பந்தம் தேவைப்படுகிறது"
 
 #. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1604
+#: ../client/pk-console.c:1830
 msgid "Do you agree to this license?"
 msgstr "இந்த உரிமத்தை நீங்கள் ஏற்று கொள்கிறீர்களா?"
 
 #. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1608
+#: ../client/pk-console.c:1834
 msgid "The license was refused."
 msgstr "உரிமம் மறுக்கப்பட்டது."
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1637
+#: ../client/pk-console.c:1863
 msgid "The daemon crashed mid-transaction!"
 msgstr "மத்திய பரிமாற்றத்தின் போது டோமோன் நொறுக்கப்பட்டது!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1690
+#: ../client/pk-console.c:1916
 msgid "PackageKit Console Interface"
 msgstr "PackageKit பணியக முகப்பு"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1692
+#: ../client/pk-console.c:1918
 msgid "Subcommands:"
 msgstr "துணைக்கட்டளைகள்:"
 
 #. TRANSLATORS: command line argument, if we should show debugging information
 #. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:1785 ../client/pk-generate-pack.c:185
+#: ../client/pk-console.c:2011 ../client/pk-generate-pack.c:185
 #: ../client/pk-monitor.c:128
 #: ../contrib/command-not-found/pk-command-not-found.c:616
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:550
@@ -548,148 +581,147 @@ msgid "Show extra debugging information"
 msgstr "கூடுதல் பிழைதிருத்த தகவலைக் காட்டு"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1788 ../client/pk-monitor.c:130
+#: ../client/pk-console.c:2014 ../client/pk-monitor.c:130
 msgid "Show the program version and exit"
 msgstr "நிகழ்ச்சி பதிப்பு மற்றும் வெளியேறுவதைக் காட்டு"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1791
+#: ../client/pk-console.c:2017
 msgid "Set the filter, e.g. installed"
 msgstr "வடோப்பினை"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1794
+#: ../client/pk-console.c:2020
 msgid "Exit without waiting for actions to complete"
 msgstr "செயல் முடிவடை வரை காத்திருக்காமல் வெளியேறு"
 
 #. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:1821
+#: ../client/pk-console.c:2047
 msgid "This tool could not connect to system DBUS."
 msgstr "இந்தக் கருவியால் கணினி DBUSஐ இணைக்க முடியாது."
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1911
+#: ../client/pk-console.c:2137
 msgid "The filter specified was invalid"
 msgstr "வடிப்பி குறிப்பிடுவது தவறானது"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1930
+#: ../client/pk-console.c:2156
 msgid "A search type is required, e.g. name"
 msgstr "ஒரு தேடும் வகை தேவைப்படுகிறது, எ.கா. பெயர்"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1937 ../client/pk-console.c:1946
-#: ../client/pk-console.c:1955 ../client/pk-console.c:1964
+#: ../client/pk-console.c:2163 ../client/pk-console.c:2172
+#: ../client/pk-console.c:2181 ../client/pk-console.c:2190
 msgid "A search term is required"
 msgstr "ஒரு தேடும் சொல் தேவைப்படுகிறது"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1971
+#: ../client/pk-console.c:2197
 msgid "Invalid search type"
 msgstr "தவறான தேடும் வகை"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1977
+#: ../client/pk-console.c:2203
 msgid "A package name or filename to install is required"
 msgstr "ஒரு தொகுப்பு பெயர் அல்லது கோப்பு பெயரை நறுவுவதற்கு தேவைப்படுகிறது"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1986
+#: ../client/pk-console.c:2212
 msgid "A type, key_id and package_id are required"
 msgstr "ஒரு வகை, விசை_ஐடி மற்றும் தொகுப்பு_ஐடி தேவைப்படுகிறது"
 
 #. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:1995
+#: ../client/pk-console.c:2221
 msgid "A package name to remove is required"
 msgstr "நீக்குவதற்கு ஒரு தொகுப்பு பெயர் தேவைப்படுகிறது"
 
 #. TRANSLATORS: the user did not specify anything about what to download or where
-#: ../client/pk-console.c:2003
-#, fuzzy
+#: ../client/pk-console.c:2229
 msgid "A destination directory and the package names to download are required"
 msgstr "ஒரு இலக்கு அடைவு மற்றும் தொகுப்பு பெயர்கள் பதிவிறக்க தேவைப்படுகிறது"
 
 #. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:2010
+#: ../client/pk-console.c:2236
 msgid "Directory not found"
 msgstr "அடைவு காணப்படவில்லை"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2018
+#: ../client/pk-console.c:2244
 msgid "A licence identifier (eula-id) is required"
 msgstr "ஒரு உரிமம் எடுத்துகாட்டுபவர் (eula-id) தேவைப்படுகிறது"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2028
+#: ../client/pk-console.c:2254
 msgid "A transaction identifier (tid) is required"
 msgstr "பரிமாற்ற கண்டுபிடிப்பாளர் (tid) தேவைப்படுகிறது"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:2045
+#: ../client/pk-console.c:2271
 msgid "A package name to resolve is required"
 msgstr "தொகுப்பு பெயர் மறுதீர்வுக்கு தேவைப்படுகிறது"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:2054 ../client/pk-console.c:2063
+#: ../client/pk-console.c:2280 ../client/pk-console.c:2289
 msgid "A repository name is required"
 msgstr "நம்பகமான ஒரு பெயர் தேவைப்படுகிறது"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2072
+#: ../client/pk-console.c:2298
 msgid "A repo name, parameter and value are required"
 msgstr "ஒரு ரெபோ பெநர், அளவுரு மற்றும் மதிப்பு தேவைப்படுகிறது"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:2086
+#: ../client/pk-console.c:2312
 msgid "An action, e.g. 'update-system' is required"
 msgstr "செயலுக்கு, எ.கா. 'மேம்படுத்தப்பட்ட கணினி' தேவைப்படுகிறது"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:2093
+#: ../client/pk-console.c:2319
 msgid "A correct role is required"
 msgstr "ஒரு சரியான திருப்பம் தேவைப்படுகிறது"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2100
+#: ../client/pk-console.c:2326
 msgid "Failed to get the time since this action was last completed"
 msgstr "இந்த செயல் கடைசியாக முடிவடையும் வரை நேரத்தை பெற்றிருப்பதில் தோல்வி"
 
 #. TRANSLATORS: The user did not provide a package name
 #. TRANSLATORS: This is when the user fails to supply the package name
-#: ../client/pk-console.c:2110 ../client/pk-console.c:2122
-#: ../client/pk-console.c:2131 ../client/pk-console.c:2149
-#: ../client/pk-console.c:2158 ../client/pk-generate-pack.c:241
+#: ../client/pk-console.c:2336 ../client/pk-console.c:2348
+#: ../client/pk-console.c:2357 ../client/pk-console.c:2375
+#: ../client/pk-console.c:2384 ../client/pk-generate-pack.c:241
 msgid "A package name is required"
 msgstr "ஒரு தொகுப்பு பெயர் தேவைப்படுகிறது"
 
 #. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:2140
+#: ../client/pk-console.c:2366
 msgid "A package provide string is required"
 msgstr "ஒரு தொகுப்பால் வழங்கப்படும் சரம் தேவைப்படுகிறது"
 
 #. TRANSLATORS: The user didn't specify a filename to create as a list
-#: ../client/pk-console.c:2167
+#: ../client/pk-console.c:2393
 msgid "A list file name to create is required"
 msgstr "ஒரு பட்டியல் கோப்பு பெயரை உருவாக்குவது தேவைப்படுகிறது"
 
 #. TRANSLATORS: The user didn't specify a filename to open as a list
-#: ../client/pk-console.c:2177 ../client/pk-console.c:2187
+#: ../client/pk-console.c:2403 ../client/pk-console.c:2413
 msgid "A list file to open is required"
 msgstr "ஒரு பட்டியல் கோப்பினை திறப்பது தேவைப்படுகிறது"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2241
+#: ../client/pk-console.c:2467
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr " '%s' விருப்பம் துணைபுரியவில்லை"
 
 #. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2254
+#: ../client/pk-console.c:2480
 msgid "Incorrect privileges for this operation"
 msgstr "இந்த செயல்பாடுக்கு தவறான முன்னுரிமைகள்"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2257
+#: ../client/pk-console.c:2483
 msgid "Command failed"
 msgstr "கட்டளை தோல்வியுற்றது"
 
@@ -715,10 +747,8 @@ msgstr "நீக்கப்பட்ட சார்புகளுடைய à
 
 #. TRANSLATORS: the output location
 #: ../client/pk-generate-pack.c:191
-msgid ""
-"The output file or directory (the current directory is used if ommitted)"
-msgstr ""
-"வெளியேறும் கோப்பு அல்லது அடைவு (தற்போது பயன்படுத்தப்படுகிற அடைவு தவிர்க்கப்பட்டால்)"
+msgid "The output file or directory (the current directory is used if ommitted)"
+msgstr "வெளியேறும் கோப்பு அல்லது அடைவு (தற்போது பயன்படுத்தப்படுகிற அடைவு தவிர்க்கப்பட்டால்)"
 
 #. TRANSLATORS: put a list of packages in the pack
 #: ../client/pk-generate-pack.c:194
@@ -766,8 +796,7 @@ msgstr "ஒரு கோப்பினை குறிப்பிட்டாà
 #. TRANSLATORS: This is when file already exists
 #: ../client/pk-generate-pack.c:307
 msgid "A pack with the same name already exists, do you want to overwrite it?"
-msgstr ""
-"ஒரே பெயருடைய தொகுப்பு ஏற்கனவே வெளியேற்றப்பட்டது, அதை மீண்டும் மேலெழுத விரும்புகிறீர்களா?"
+msgstr "ஒரே பெயருடைய தொகுப்பு ஏற்கனவே வெளியேற்றப்பட்டது, அதை மீண்டும் மேலெழுத விரும்புகிறீர்களா?"
 
 #. TRANSLATORS: This is when the pack was not overwritten
 #: ../client/pk-generate-pack.c:310
@@ -819,7 +848,7 @@ msgstr "PackageKit திரை"
 
 #: ../client/pk-monitor.c:183
 msgid "Cannot show the list of transactions"
-msgstr ""
+msgstr "பரிமாற்றங்களின் பட்டியலை காட்ட முடியவில்லை"
 
 #. TRANSLATORS: The package was not found in any software sources
 #: ../client/pk-tools-common.c:118
@@ -899,24 +928,22 @@ msgstr "நிறுவுகிறது..."
 #. TRANSLATORS: downloading repo data so we can search
 #: ../contrib/command-not-found/pk-command-not-found.c:349
 msgid "Downloading details about the software sources."
-msgstr ""
+msgstr "மென்பொருள் மூலங்கள் பற்றிய விவரங்களை பதிவிறக்குகிறது."
 
 #. TRANSLATORS: downloading file lists so we can search
 #: ../contrib/command-not-found/pk-command-not-found.c:353
 msgid "Downloading filelists (this may take some time to complete)."
-msgstr ""
+msgstr "கோப்பு பட்டியல்களை பதிவிறக்குகிறது (முடிக்க இதற்கு சில நேரம் எடுக்கலாம்)"
 
 #. TRANSLATORS: waiting for native lock
 #: ../contrib/command-not-found/pk-command-not-found.c:357
-#, fuzzy
 msgid "Waiting for package manager lock."
-msgstr "தொகுப்பு பெயரை தேடுகிறது."
+msgstr "தொகுப்பு மேலாளர் பூட்டுக்கு காத்திருக்கிறது."
 
 #. TRANSLATORS: loading package cache so we can search
 #: ../contrib/command-not-found/pk-command-not-found.c:361
-#, fuzzy
 msgid "Loading list of packages."
-msgstr "தொகுப்புகளை பதிவிறக்குகிறது"
+msgstr "தொகுப்புகளின் பட்டியலை ஏற்றுகிறது"
 
 #. TRANSLATORS: we failed to find the package, this shouldn't happen
 #: ../contrib/command-not-found/pk-command-not-found.c:420
@@ -989,49 +1016,46 @@ msgstr "நிறுவுவதற்கு ஒரு கோப்பினை
 
 #. TRANSLATORS: we are starting to install the packages
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:187
-#, fuzzy
 msgid "Starting install"
-msgstr "நிறுவுவதற்கு"
+msgstr "நிறுவலை துவக்குகிறது"
 
 #. TRANSLATORS: we couldn't find the package name, non-fatal
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:397
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to find the package %s, or already installed: %s"
-msgstr "தொகுப்பு %s ஏற்கனவே நிறுவப்பட்டது"
+msgstr "தொகுப்பு %sஐ காண முடியவில்லை அல்லது ஏற்கனவே நிறுவப்பட்டது: %s"
 
 #. command line argument, simulate what would be done, but don't actually do it
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:553
-msgid ""
-"Don't actually install any packages, only simulate what would be installed"
-msgstr ""
+msgid "Don't actually install any packages, only simulate what would be installed"
+msgstr "எந்த தொகுப்புகளையும் நிறுவவில்லை, என்ன நிறுவ வேண்டும் என கணக்கிடுகிறது"
 
 #. command line argument, do we skip packages that depend on the ones specified
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:556
 msgid "Do not install dependencies of the core packages"
-msgstr ""
+msgstr "கோர் தொகுப்புகளின் சார்புகளை நிறுவவில்லை"
 
 #. command line argument, do we operate quietly
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:559
 msgid "Do not display information or progress"
-msgstr ""
+msgstr "விவரங்கள் அல்லது முன்னேற்றத்தை காட்ட வேண்டாம்"
 
 #. TRANSLATORS: tool that gets called when the command is not found
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:577
-#, fuzzy
 msgid "PackageKit Debuginfo Installer"
-msgstr "PackageKit பணியக முகப்பு"
+msgstr "PackageKit Debuginfo நிறுவி"
 
 #. TRANSLATORS: the use needs to specify a list of package names on the command line
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:589
-#, fuzzy, c-format
+#, c-format
 msgid "ERROR: Specify package names to install."
-msgstr "புதிய தொகுப்புகள் நிறுவப்பட வேண்டியுள்ளது"
+msgstr "பிழை: நிறுவ தொகுப்பு பெயர்களை குறிப்பிடவும்"
 
 #. TRANSLATORS: we are getting the list of repositories
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:623
-#, fuzzy, c-format
+#, c-format
 msgid "Getting sources list"
-msgstr "தொகுப்புகளின் பட்டியல் பெறப்படுகிறது"
+msgstr "மூலங்களின் பட்டியல் பெறப்படுகிறது"
 
 #. TRANSLATORS: all completed 100%
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:641
@@ -1043,31 +1067,31 @@ msgstr "தொகுப்புகளின் பட்டியல் பெà
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:955
 #, c-format
 msgid "OK."
-msgstr ""
+msgstr "சரி."
 
 #. TRANSLATORS: tell the user what we found
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:644
 #, c-format
 msgid "Found %i enabled and %i disabled sources."
-msgstr ""
+msgstr "%i செயல்படுத்தப்பட்டது மற்றும் %i செயல்நீக்கப்பட்ட மூலங்கள் காணப்பட்டது."
 
 #. TRANSLATORS: we're finding repositories that match out pattern
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:651
 #, c-format
 msgid "Finding debugging sources"
-msgstr ""
+msgstr "பிழைத்திருத்த மூலங்களை தேடுகிறது"
 
 #. TRANSLATORS: tell the user what we found
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:684
 #, c-format
 msgid "Found %i disabled debuginfo repos."
-msgstr ""
+msgstr "%i செயல்நீக்கப்பட்ட debuginfo repoகளை கண்டது."
 
 #. TRANSLATORS: we're now enabling all the debug sources we found
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:691
 #, c-format
 msgid "Enabling debugging sources"
-msgstr ""
+msgstr "பிழைத்திருத்த மூலங்களை செயல்படுத்துகிறது"
 
 #. TRANSLATORS: operation was not successful
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:701
@@ -1076,199 +1100,189 @@ msgstr ""
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:896
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:940
 msgid "FAILED."
-msgstr ""
+msgstr "FAILED."
 
 #. TRANSLATORS: tell the user how many we enabled
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:719
 #, c-format
 msgid "Enabled %i debugging sources."
-msgstr ""
+msgstr "செயல்நீக்கப்பட்ட %i பிழைத்திருத்த மூலங்கள்."
 
 #. TRANSLATORS: we're now finding packages that match in all the repos
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:726
-#, fuzzy, c-format
+#, c-format
 msgid "Finding debugging packages"
-msgstr "தொகுப்பு பெயரை தேடுகிறது."
+msgstr "பிழைத்திருத்த தொகுப்புகளை தேடுகிறது."
 
 #. TRANSLATORS: we couldn't find the package name, non-fatal
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:738
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to find the package %s: %s"
-msgstr "தொகுப்பு '%s'ஐ காணமுடியவில்லை: %s"
+msgstr "தொகுப்பு %sஐ காண முடியவில்லை: %s"
 
 #. TRANSLATORS: we couldn't find the debuginfo package name, non-fatal
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:761
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to find the debuginfo package %s: %s"
-msgstr "தொகுப்பு '%s'ஐ காணமுடியவில்லை: %s"
+msgstr "தொகுப்பு %sஐ காண முடியவில்லை: %s"
 
 #. TRANSLATORS: no debuginfo packages could be found to be installed
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:789
-#, fuzzy, c-format
+#, c-format
 msgid "Found no packages to install."
-msgstr "புதிய தொகுப்புகள் நிறுவப்பட வேண்டியுள்ளது"
+msgstr "நிறுவ தொகுப்புகள் எதுவும் காணப்படவில்லை."
 
 #. TRANSLATORS: tell the user we found some packages, and then list them
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:803
-#, fuzzy, c-format
+#, c-format
 msgid "Found %i packages:"
-msgstr "தொகுப்புகளை பதிவிறக்குகிறது"
+msgstr "%i தொகுப்புகள் காணப்பட்டது:"
 
 #. TRANSLATORS: tell the user we are searching for deps
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:819
 #, c-format
 msgid "Finding packages that depend on these packages"
-msgstr ""
+msgstr "இந்த தொகுப்புகளை சார்ந்துள்ள தொகுப்புகளை தேடுகிறது"
 
 #. TRANSLATORS: could not install, detailed error follows
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:832
-#, fuzzy, c-format
+#, c-format
 msgid "Could not find dependant packages: %s"
-msgstr "தொகுப்பு '%s'ஐ காணமுடியவில்லை: %s"
+msgstr "சார்பு தொகுப்பை காண முடியவில்லை: %s"
 
 #. TRANSLATORS: tell the user we found some more packages
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:848
 #, c-format
 msgid "Found %i extra packages."
-msgstr ""
+msgstr "%i கூடுதல் தொகுப்புகள் காணப்பட்டது."
 
 #. TRANSLATORS: tell the user we found some more packages
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:852
-#, fuzzy, c-format
+#, c-format
 msgid "No extra packages required."
-msgstr "ஒரு தொகுப்பு பெயர் தேவைப்படுகிறது"
+msgstr "கூடுதல் தொகுப்புகள் எதுவும் தேவைப்படவில்லை"
 
 #. TRANSLATORS: tell the user we found some packages (and deps), and then list them
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:861
-#, fuzzy, c-format
+#, c-format
 msgid "Found %i packages to install:"
-msgstr "புதிய தொகுப்புகள் நிறுவப்பட வேண்டியுள்ளது"
+msgstr "நிறுவ %i தொகுப்புகள் காணப்பட்டது:"
 
 #. TRANSLATORS: simulate mode is a testing mode where we quit before the action
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:874
-#, fuzzy, c-format
+#, c-format
 msgid "Not installing packages in simulate mode"
-msgstr "நிறுவப்பட்ட தொகுப்புகள்"
+msgstr "கணக்கீடு முறைமையில் தொகுப்புகள் நிறுவப்படவில்லை"
 
 #. TRANSLATORS: could not install, detailed error follows
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:899
-#, fuzzy, c-format
+#, c-format
 msgid "Could not install packages: %s"
-msgstr "இந்த கருவி இந்த தொகுப்புகளை நிறுவ முடியவில்லை: %s"
+msgstr "தொகுப்புகளை நிறுவ முடியவில்லை: %s"
 
 #. TRANSLATORS: we are now disabling all debuginfo repos we previously enabled
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:931
 #, c-format
 msgid "Disabling sources previously enabled"
-msgstr ""
+msgstr "முன்பு செயல்படுத்தப்பட்ட மூலங்களை செயல்நீக்குகிறது"
 
 #. TRANSLATORS: no debuginfo packages could be found to be installed, detailed error follows
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:943
 #, c-format
 msgid "Could not disable the debugging sources: %s"
-msgstr ""
+msgstr "பிழைத்திருத்த மூலங்களை செயல்நீக்க முடியவில்லை: %s"
 
 #. TRANSLATORS: we disabled all the debugging repos that we enabled before
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:958
 #, c-format
 msgid "Disabled %i debugging sources."
-msgstr ""
+msgstr "செயல்நீக்கப்பட்ட %i பிழைத்திருத்த மூலங்கள்."
 
 #. TRANSLATORS: couldn't open device to write
 #: ../contrib/device-rebind/pk-device-rebind.c:61
-#, fuzzy
 msgid "Failed to open file"
-msgstr "கோப்பிற்காக தேடுவதில் தோல்வி"
+msgstr "கோப்பினை திறக்க முடியவில்லை"
 
 #. TRANSLATORS: could not write to the device
 #: ../contrib/device-rebind/pk-device-rebind.c:70
-#, fuzzy
 msgid "Failed to write to the file"
-msgstr "கோப்பிற்காக தேடுவதில் தோல்வி"
+msgstr "கோப்பிற்கு எழுத முடியவில்லை"
 
 #. TRANSLATORS: we failed to release the current driver
 #: ../contrib/device-rebind/pk-device-rebind.c:110
 #: ../contrib/device-rebind/pk-device-rebind.c:147
-#, fuzzy
 msgid "Failed to write to device"
-msgstr "வட்டில் சேமிப்பதில் தோல்வி"
+msgstr "சாதனத்தில் எழுத முடியவில்லை"
 
 #. TRANSLATORS: the device could not be found in sysfs
 #: ../contrib/device-rebind/pk-device-rebind.c:175
-#, fuzzy
 msgid "Device could not be found"
-msgstr "தொகுப்புகள் காணப்படவில்லை"
+msgstr "சாதனம் காணப்படவில்லை"
 
 #. TRANSLATORS: we failed to release the current driver
 #: ../contrib/device-rebind/pk-device-rebind.c:202
-#, fuzzy
 msgid "Failed to unregister driver"
-msgstr "அடைவினை உருவாக்குவதில் தோல்வி:"
+msgstr "இயக்கியை பதிவுநீக்க முடியவில்லை"
 
 #. TRANSLATORS: we failed to bind the old driver
 #: ../contrib/device-rebind/pk-device-rebind.c:211
-#, fuzzy
 msgid "Failed to register driver"
-msgstr "அடைவினை உருவாக்குவதில் தோல்வி:"
+msgstr "இயக்கியை பதிவு செய்ய முடியவில்லை"
 
 #. TRANSLATORS: user did not specify a device sysfs path that exists
 #: ../contrib/device-rebind/pk-device-rebind.c:260
-#, fuzzy
 msgid "Device path not found"
-msgstr "அடைவு காணப்படவில்லை"
+msgstr "சாதன பாதை காணப்படவில்லை"
 
 #. TRANSLATORS: user did not specify a valid device sysfs path
 #: ../contrib/device-rebind/pk-device-rebind.c:268
 msgid "Incorrect device path specified"
-msgstr ""
+msgstr "தவறான சாதற பாதை குறிப்பிடப்பட்டது"
 
 #. command line argument, simulate what would be done, but don't actually do it
 #: ../contrib/device-rebind/pk-device-rebind.c:296
 msgid "Don't actually touch the hardware, only simulate what would be done"
-msgstr ""
+msgstr "உண்மையிலேயே வன்பொருளை தொடவில்லை, என்ன செய்ய முடியுமோ அது கணக்கிடப்பட்டது"
 
 #. TRANSLATORS: command line option: a list of files to install
 #: ../contrib/device-rebind/pk-device-rebind.c:299
 msgid "Device paths"
-msgstr ""
+msgstr "சாதன பாதைகள்"
 
 #. TRANSLATORS: tool that gets called when the device needs reloading after installing firmware
 #: ../contrib/device-rebind/pk-device-rebind.c:314
-#, fuzzy
 msgid "PackageKit Device Reloader"
-msgstr "PackageKit சேவை தொகுப்பு"
+msgstr "PackageKit சாதன மீளேற்றி"
 
 #. TRANSLATORS: user did not specify a valid device sysfs path
 #: ../contrib/device-rebind/pk-device-rebind.c:322
 msgid "You need to specify at least one valid device path"
-msgstr ""
+msgstr "ஒரு சரியான சாதன பாதையை நீங்கள் குறிக்க வேண்டும்"
 
 #. TRANSLATORS: user did not specify a valid device sysfs path
 #: ../contrib/device-rebind/pk-device-rebind.c:332
 msgid "This script can only be used by the root user"
-msgstr ""
+msgstr "இந்த ஸ்கிரிப்ட் ரூட் பயனர்களால் மட்டும் பயன்படுத்தப்படும்"
 
 #. TRANSLATORS: we're going to verify the path first
 #: ../contrib/device-rebind/pk-device-rebind.c:341
 msgid "Verifying device path"
-msgstr ""
+msgstr "சாதன பாதையை சரிபார்க்கிறது"
 
 #. TRANSLATORS: user did not specify a device sysfs path that exists
 #: ../contrib/device-rebind/pk-device-rebind.c:346
-#, fuzzy
 msgid "Failed to verify device path"
-msgstr "கோப்பிற்காக தேடுவதில் தோல்வி"
+msgstr "சாதன பாதையை சரிபார்க்க முடியவில்லை"
 
 #. TRANSLATORS: we're going to try
 #: ../contrib/device-rebind/pk-device-rebind.c:360
 msgid "Attempting to rebind device"
-msgstr ""
+msgstr "சாதனத்தை மறுபிணைக்க முயற்சிக்கிறது"
 
 #. TRANSLATORS: we failed to release the current driver
 #: ../contrib/device-rebind/pk-device-rebind.c:365
-#, fuzzy
 msgid "Failed to rebind device"
-msgstr "அடைவினை உருவாக்குவதில் தோல்வி:"
+msgstr "சாதனத்தை மறுபிணைக்க முடியவில்லை"
 
 #: ../data/packagekit-catalog.xml.in.h:1
 msgid "PackageKit Catalog"
@@ -1297,8 +1311,7 @@ msgid "Authentication is required to accept a EULA"
 msgstr "EULAவை ஏற்பதற்கு அங்கீகாரம் தேவைப்படுகிறது"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:9
-msgid ""
-"Authentication is required to cancel a task that was not started by yourself"
+msgid "Authentication is required to cancel a task that was not started by yourself"
 msgstr "உங்களால் துவங்கப்படாத பணியை ரத்துச் செய்ய அங்கீகாரம் தேவைப்படுகிறது"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:10
@@ -1309,8 +1322,7 @@ msgstr "மென்பொருள் மூல அளவுருகளை ம
 msgid ""
 "Authentication is required to consider a key used for signing packages as "
 "trusted"
-msgstr ""
-"நம்ப்பபட்ட தொகுப்புகளை கையெழுத்திட ஒரு விசையை பயன்படுத்த அங்கீகாரம் தேவைப்படுகிறது"
+msgstr "நம்ப்பபட்ட தொகுப்புகளை கையெழுத்திட ஒரு விசையை பயன்படுத்த அங்கீகாரம் தேவைப்படுகிறது"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:12
 msgid "Authentication is required to install a signed package"
@@ -1325,9 +1337,8 @@ msgid "Authentication is required to refresh the system sources"
 msgstr "கணினி மூலங்களை புதுப்பிக்க அங்கீகாரம் தேவைப்படுகிறது"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:15
-#, fuzzy
 msgid "Authentication is required to reload the device with a new driver"
-msgstr "கணினி மூலங்களை புதுப்பிக்க அங்கீகாரம் தேவைப்படுகிறது"
+msgstr "சாதனம் ஒரு புதிய இயக்கியுடன் மீளேற்ற அங்கீகாரம் தேவை"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:16
 msgid "Authentication is required to remove packages"
@@ -1341,8 +1352,7 @@ msgstr "ஒரு பரிமாற்றத்தை திரும்ப ப
 msgid ""
 "Authentication is required to set the network proxy used for downloading "
 "packages"
-msgstr ""
-"தொகுப்புகளை பதிவிறக்க பயன்படும் பிணைய பிராக்ஸியை அமைக்க அங்கீகாரம் தேவைப்படுகிறது"
+msgstr "தொகுப்புகளை பதிவிறக்க பயன்படும் பிணைய பிராக்ஸியை அமைக்க அங்கீகாரம் தேவைப்படுகிறது"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:19
 msgid "Authentication is required to update packages"
@@ -1403,7 +1413,7 @@ msgstr "கணினி மூலங்களை புதுப்பி"
 #.
 #: ../policy/org.freedesktop.packagekit.policy.in.h:58
 msgid "Reload a device"
-msgstr ""
+msgstr "ஒரு சாதனத்தை மீளேற்று"
 
 #. SECURITY:
 #. - Normal users require admin authentication to remove packages as
@@ -1524,9 +1534,8 @@ msgid "Error trying to start:"
 msgstr "துவக்க முயற்சிப்பதில் பிழை:"
 
 #: ../src/pk-polkit-action-lookup.c:147
-#, fuzzy
 msgid "To install debugging packages, extra sources need to be enabled"
-msgstr "புதிய தொகுப்புகள் நிறுவப்பட வேண்டியுள்ளது"
+msgstr "பிழைத்திருத்த தொகுப்புகளை நிறுவ, கூடுதல் மூலங்களை செயல்படுத்த வேண்டும்"
 
 #. TRANSLATORS: is not GPG signed
 #: ../src/pk-polkit-action-lookup.c:168 ../src/pk-polkit-action-lookup.c:187
@@ -1538,7 +1547,6 @@ msgid "Do not update this package unless you are sure it is safe to do so."
 msgstr "இதை பாதுகாக்க நீங்கள் ஏதாவது செய்யும் வரை இந்த தொகுப்பை மேம்படுத்த முடியாது."
 
 #: ../src/pk-polkit-action-lookup.c:174
-#, fuzzy
 msgid "Do not update these packages unless you are sure it is safe to do so."
 msgstr "இதை பாதுகாக்க நீங்கள் ஏதாவது செய்யும் வரை இந்த தொகுப்பை மேம்படுத்த முடியாது."
 
@@ -1547,9 +1555,8 @@ msgid "Do not install this package unless you are sure it is safe to do so."
 msgstr "இதை பாதுகாக்க நீங்கள் ஏதாவது செய்யும் வரை இந்த தொகுப்பை நிறுவ முடியாது."
 
 #: ../src/pk-polkit-action-lookup.c:193
-#, fuzzy
 msgid "Do not install these packages unless you are sure it is safe to do so."
-msgstr "இதை பாதுகாக்க நீங்கள் ஏதாவது செய்யும் வரை இந்த தொகுப்பை நிறுவ முடியாது."
+msgstr "இதை பாதுகாக்க நீங்கள் ஏதாவது செய்யும் வரை இந்த தொகுப்புகளை நிறுவ முடியாது."
 
 #. TRANSLATORS: warn the user that all bets are off
 #: ../src/pk-polkit-action-lookup.c:199
@@ -1558,11 +1565,11 @@ msgstr "முறையற்ற மென்பொருள் உங்களà
 
 #. TRANSLATORS: too many packages to list each one
 #: ../src/pk-polkit-action-lookup.c:274
-#, fuzzy
 msgid "Many packages"
-msgstr "தொகுப்புகளை மேம்படுத்து"
+msgstr "நிறைய தொகுப்புகள்"
 
 #. TRANSLATORS: if the transaction is forced to install only trusted packages
 #: ../src/pk-polkit-action-lookup.c:334
 msgid "Only trusted"
 msgstr "நம்பக்கூடிய மட்டும்"
+
commit 247f4d58753fb3b4a048affe41d1957e088c31af
Author: Sebastian Krzyszkowiak <seba.dos1 at gmail.com>
Date:   Tue Sep 1 08:36:04 2009 +0200

    opkg: fix installing and removing multiple packages at once

diff --git a/backends/opkg/pk-backend-opkg.c b/backends/opkg/pk-backend-opkg.c
index 211ec72..40301c2 100644
--- a/backends/opkg/pk-backend-opkg.c
+++ b/backends/opkg/pk-backend-opkg.c
@@ -2,6 +2,7 @@
  * vi: set noexpandtab sts=8 sw=8:
  *
  * Copyright (C) 2007 OpenMoko, Inc
+ * Copyright (C) 2009 Sebastian Krzyszkowiak <seba.dos1 at gmail.com>
  *
  * Licensed under the GNU General Public License Version 2
  *
@@ -423,9 +424,9 @@ backend_install_packages_thread (PkBackend *backend)
 
 	for (i = 0; package_ids[i]; i++)
 	{
-		pk_backend_package (backend, PK_INFO_ENUM_INSTALLING, package_ids[0], NULL);
+		pk_backend_package (backend, PK_INFO_ENUM_INSTALLING, package_ids[i], NULL);
 
-		pi = pk_package_id_new_from_string (package_ids[0]);
+		pi = pk_package_id_new_from_string (package_ids[i]);
 
 		err = opkg_install_package (opkg, pi->name, pk_opkg_progress_cb, backend);
 		if (err)
@@ -475,8 +476,8 @@ backend_remove_packages_thread (PkBackend *backend)
 
 	for (i = 0; package_ids[i]; i++)
 	{
-		pi = pk_package_id_new_from_string (package_ids[0]);
-		pk_backend_package (backend, PK_INFO_ENUM_REMOVING, package_ids[0], NULL);
+		pi = pk_package_id_new_from_string (package_ids[i]);
+		pk_backend_package (backend, PK_INFO_ENUM_REMOVING, package_ids[i], NULL);
 
 		err = opkg_remove_package (opkg, pi->name, pk_opkg_progress_cb, backend);
 
commit 50f94e8113a17df1ccc94150a5daf729dbdc86ab
Author: sandeeps <sandeeps at fedoraproject.org>
Date:   Tue Sep 1 04:26:17 2009 +0000

    Sending translation for Marathi

diff --git a/po/mr.po b/po/mr.po
index f34997e..4b37b2b 100644
--- a/po/mr.po
+++ b/po/mr.po
@@ -8,8 +8,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: packagekit.master\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-08-31 08:38+0000\n"
-"PO-Revision-Date: 2009-08-31 19:46+0530\n"
+"POT-Creation-Date: 2009-09-01 02:36+0000\n"
+"PO-Revision-Date: 2009-09-01 09:53+0530\n"
 "Last-Translator: Sandeep Shedmake <sshedmak at redhat.com>\n"
 "Language-Team: Marathi <fedora-trans-mr at redhat.com>\n"
 "MIME-Version: 1.0\n"
@@ -33,12 +33,11 @@ msgstr "प्रणाली वेळ"
 msgid "Succeeded"
 msgstr "यशस्वी"
 
-#. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:239 ../client/pk-console.c:468
+#: ../client/pk-console.c:239
 msgid "True"
 msgstr "True"
 
-#: ../client/pk-console.c:239 ../client/pk-console.c:468
+#: ../client/pk-console.c:239
 msgid "False"
 msgstr "False"
 
@@ -220,351 +219,365 @@ msgstr "वितरण दिनांक"
 msgid "Updated"
 msgstr "अद्ययावतीत"
 
-#: ../client/pk-console.c:539 ../client/pk-console.c:541
+#. TRANSLATORS: if the repo is enabled
+#: ../client/pk-console.c:472
+msgid "Enabled"
+msgstr "कार्यक्षम केले"
+
+#. TRANSLATORS: if the repo is disabled
+#: ../client/pk-console.c:475
+msgid "Disabled"
+msgstr "अकार्यक्षम केले"
+
+#: ../client/pk-console.c:552 ../client/pk-console.c:554
 msgid "Percentage"
 msgstr "टक्केवारी"
 
-#: ../client/pk-console.c:541
+#: ../client/pk-console.c:554
 msgid "Unknown"
 msgstr "अपरिचीत"
 
 #. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:583
+#: ../client/pk-console.c:596
 msgid "System restart required by:"
 msgstr "प्रणाली पुन्हा चालू करणे आवश्यक:"
 
 #. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:586
+#: ../client/pk-console.c:599
 msgid "Session restart required:"
 msgstr "सत्र पुन्हा चालू करणे आवश्यक:"
 
 #. TRANSLATORS: a package requires the system to be restarted due to a security update
-#: ../client/pk-console.c:589
+#: ../client/pk-console.c:602
 msgid "System restart (security) required by:"
 msgstr "प्रणाली पुनः चालू करणे (सुरक्षा) आवश्यक:"
 
 #. TRANSLATORS: a package requires the session to be restarted due to a security update
-#: ../client/pk-console.c:592
+#: ../client/pk-console.c:605
 msgid "Session restart (security) required:"
 msgstr "सत्र पुनः चालू करणे (सुरक्षा) आवश्यक:"
 
 #. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:595
+#: ../client/pk-console.c:608
 msgid "Application restart required by:"
 msgstr "अनुप्रयोग पुन्हा चालू करणे आवश्यक:"
 
 #. TRANSLATORS: a package needs to restart their system
-#: ../client/pk-console.c:650
+#: ../client/pk-console.c:663
 msgid "Please restart the computer to complete the update."
 msgstr "अद्ययावत पूर्ण करण्याकरीता कृपया संगणक पुन्हा चालू करा."
 
 #. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:653
+#: ../client/pk-console.c:666
 msgid "Please logout and login to complete the update."
 msgstr "कृपया वापरकर्ता बदला व अद्ययावत पूर्ण करण्याकरीता प्रवेश करा."
 
 #. TRANSLATORS: a package needs to restart the application
-#: ../client/pk-console.c:656
+#: ../client/pk-console.c:669
 msgid "Please restart the application as it is being used."
 msgstr "कृपया अनुप्रयोग ज्यानुरूप वापरले जाते त्यानुरूप पुन्हा चालू करा."
 
 #. TRANSLATORS: a package needs to restart their system (due to security)
-#: ../client/pk-console.c:659
+#: ../client/pk-console.c:672
 msgid ""
 "Please restart the computer to complete the update as important security "
 "updates have been installed."
-msgstr "महत्वाच्ये सुरक्षा सुधारणा प्रतिष्ठापीत झाल्यामुळे कृपया सुधारणा पूर्ण करण्यासाठी संगणक पुनःचालू करा."
+msgstr ""
+"महत्वाच्ये सुरक्षा सुधारणा प्रतिष्ठापीत झाल्यामुळे कृपया सुधारणा पूर्ण करण्यासाठी संगणक "
+"पुनःचालू करा."
 
 #. TRANSLATORS: a package needs to restart the session (due to security)
-#: ../client/pk-console.c:662
+#: ../client/pk-console.c:675
 msgid ""
 "Please logout and login to complete the update as important security updates "
 "have been installed."
-msgstr "महत्वाचे सुरक्षा सुधारणा प्रतिष्ठापीत झाल्यामुळे कृपया सुधारणा पूर्ण करण्यासाठी लॉगआऊट होऊन पुनः प्रवेश करा."
+msgstr ""
+"महत्वाचे सुरक्षा सुधारणा प्रतिष्ठापीत झाल्यामुळे कृपया सुधारणा पूर्ण करण्यासाठी लॉगआऊट होऊन "
+"पुनः प्रवेश करा."
 
 #. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:794
+#: ../client/pk-console.c:807
 #, c-format
 msgid "The package %s is already installed"
 msgstr "संकुल %s आधिपासूनच प्रतिष्ठापीत आहे"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:802
+#: ../client/pk-console.c:815
 #, c-format
 msgid "The package %s could not be installed: %s"
 msgstr "संकुल %s चे प्रतिष्ठापन शक्य नाही: %s"
 
 #. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
-#: ../client/pk-console.c:828 ../client/pk-console.c:876
-#: ../client/pk-console.c:900 ../client/pk-console.c:948
-#: ../client/pk-console.c:1044 ../client/pk-console.c:1157
-#: ../client/pk-console.c:1218 ../client/pk-tools-common.c:62
+#: ../client/pk-console.c:841 ../client/pk-console.c:889
+#: ../client/pk-console.c:913 ../client/pk-console.c:961
+#: ../client/pk-console.c:1057 ../client/pk-console.c:1170
+#: ../client/pk-console.c:1231 ../client/pk-tools-common.c:62
 #: ../client/pk-tools-common.c:81 ../client/pk-tools-common.c:89
 #, c-format
 msgid "Internal error: %s"
 msgstr "आंतरीक त्रुटी: %s"
 
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:860 ../client/pk-console.c:932
-#: ../client/pk-console.c:1250
+#: ../client/pk-console.c:873 ../client/pk-console.c:945
+#: ../client/pk-console.c:1263
 msgid "Proceed with changes?"
 msgstr "बदलांशी पुढे जायचे?"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:865 ../client/pk-console.c:937
+#: ../client/pk-console.c:878 ../client/pk-console.c:950
 msgid "The package install was canceled!"
 msgstr "संकुल प्रतिष्ठापन रद्द केले गेले!"
 
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:884 ../client/pk-console.c:1618
+#: ../client/pk-console.c:897 ../client/pk-console.c:1631
 #, c-format
 msgid "This tool could not install the packages: %s"
 msgstr "हे साधन संकुल प्रतिष्ठापीत करू शकले नाही: %s"
 
 #. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:956
+#: ../client/pk-console.c:969
 #, c-format
 msgid "This tool could not install the files: %s"
 msgstr "हे साधन फाइल प्रतिष्ठापीत करू शकले नाही: %s"
 
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:1012
+#: ../client/pk-console.c:1025
 #, c-format
 msgid "This tool could not remove %s: %s"
 msgstr "या साधन द्वारे %s काढून टाकणे शक्य नाही: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:1035 ../client/pk-console.c:1073
-#: ../client/pk-console.c:1102
+#: ../client/pk-console.c:1048 ../client/pk-console.c:1086
+#: ../client/pk-console.c:1115
 #, c-format
 msgid "This tool could not remove the packages: %s"
 msgstr "या साधन द्वारे संकुल काढून टाकणे अशक्य: %s"
 
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:1088
+#: ../client/pk-console.c:1101
 msgid "Proceed with additional packages?"
 msgstr "अगाऊ संकुल काढून टाकणे चालू ठेवायचे?"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:1093
+#: ../client/pk-console.c:1106
 msgid "The package removal was canceled!"
 msgstr "संकुल काढून टाकणे रद्द केले गेले!"
 
 #. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:1134
+#: ../client/pk-console.c:1147
 #, c-format
 msgid "This tool could not download the package %s as it could not be found"
 msgstr "हे साधन संकुल %s न आढळल्यामुळे डाऊनलोड करू शकले नाही"
 
 #. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:1165
+#: ../client/pk-console.c:1178
 #, c-format
 msgid "This tool could not download the packages: %s"
 msgstr "हे साधन संकुल डाऊनलोड करू शकले नाही: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1197 ../client/pk-console.c:1209
-#: ../client/pk-console.c:1264
+#: ../client/pk-console.c:1210 ../client/pk-console.c:1222
+#: ../client/pk-console.c:1277
 #, c-format
 msgid "This tool could not update %s: %s"
 msgstr "हे साधन %s अद्ययावतीत करू शकले नाही: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:1255
+#: ../client/pk-console.c:1268
 msgid "The package update was canceled!"
 msgstr "संकुल सुधारीत करणे रद्द केले गेले!"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1288 ../client/pk-console.c:1296
+#: ../client/pk-console.c:1301 ../client/pk-console.c:1309
 #, c-format
 msgid "This tool could not get the requirements for %s: %s"
 msgstr "हे साधन %s करीता आवश्यकता प्राप्त करू शकले नाही: %s"
 
 #. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:1318 ../client/pk-console.c:1326
+#: ../client/pk-console.c:1331 ../client/pk-console.c:1339
 #, c-format
 msgid "This tool could not get the dependencies for %s: %s"
 msgstr "हे साधन %s करीता अवलंबन प्राप्त करू शकने नाही: %s"
 
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:1348 ../client/pk-console.c:1356
+#: ../client/pk-console.c:1361 ../client/pk-console.c:1369
 #, c-format
 msgid "This tool could not get package details for %s: %s"
 msgstr "हे साधन %s करीता संकुल तपशील प्राप्त करू शकले नाही: %s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1378
+#: ../client/pk-console.c:1391
 #, c-format
 msgid "This tool could not find the files for %s: %s"
 msgstr "हे साधन %s करीता फाइल शोधू शकले नाही: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1386
+#: ../client/pk-console.c:1399
 #, c-format
 msgid "This tool could not get the file list for %s: %s"
 msgstr "हे साधन %s करीता फाइल यादी प्राप्त करू शकले नाही: %s"
 
 #. TRANSLATORS: There was an error getting the list of packages. The filename follows
-#: ../client/pk-console.c:1408
+#: ../client/pk-console.c:1421
 #, c-format
 msgid "File already exists: %s"
 msgstr "फाइल आधिपासूनच अस्तित्वात आहे: %s"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1413 ../client/pk-console.c:1469
-#: ../client/pk-console.c:1544
+#: ../client/pk-console.c:1426 ../client/pk-console.c:1482
+#: ../client/pk-console.c:1557
 msgid "Getting package list"
 msgstr "संकुल यादी प्राप्त करत आहे"
 
 #. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1419 ../client/pk-console.c:1475
-#: ../client/pk-console.c:1550
+#: ../client/pk-console.c:1432 ../client/pk-console.c:1488
+#: ../client/pk-console.c:1563
 #, c-format
 msgid "This tool could not get package list: %s"
 msgstr "हे साधन संकुल यादी प्राप्त करू शकले नाही: %s"
 
 #. TRANSLATORS: There was an error saving the list
-#: ../client/pk-console.c:1430
+#: ../client/pk-console.c:1443
 #, c-format
 msgid "Failed to save to disk"
 msgstr "डिस्क वर साठविण्यास अपयशी"
 
 #. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1464 ../client/pk-console.c:1539
+#: ../client/pk-console.c:1477 ../client/pk-console.c:1552
 #, c-format
 msgid "File does not exist: %s"
 msgstr "फाइल अस्तित्वात नाही: %s"
 
 #. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1496
+#: ../client/pk-console.c:1509
 msgid "Packages to add"
 msgstr "समावेष करण्याजोगी संकुल"
 
 #. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1504
+#: ../client/pk-console.c:1517
 msgid "Packages to remove"
 msgstr "काढून टाकण्याजोगी संकुल"
 
 #. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1572
+#: ../client/pk-console.c:1585
 #, c-format
 msgid "No new packages need to be installed"
 msgstr "कुठलेही नवीन संकुल प्रतिष्ठापीत करण्याची आवश्यकता नाही"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1578
+#: ../client/pk-console.c:1591
 msgid "To install"
 msgstr "प्रतिष्ठापन करा"
 
 #. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1590
+#: ../client/pk-console.c:1603
 msgid "Searching for package: "
 msgstr "संकुल करीता शोधत आहे: "
 
 #. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1594
+#: ../client/pk-console.c:1607
 msgid "not found."
 msgstr "आढळले नाही."
 
 #. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1605
+#: ../client/pk-console.c:1618
 #, c-format
 msgid "No packages can be found to install"
 msgstr "प्रतिष्ठापन करीता कुठलेही संकुल आढळले नाही"
 
 #. TRANSLATORS: installing new packages from package list
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
-#: ../client/pk-console.c:1611
+#: ../client/pk-console.c:1624
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:886
 #, c-format
 msgid "Installing packages"
 msgstr "संकुल प्रतिष्ठापीत करत आहे"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1647
+#: ../client/pk-console.c:1660
 #, c-format
 msgid "This tool could not find the update details for %s: %s"
 msgstr "हे साधन %s करीता अद्ययावत तपशील शोधू शकले नाही: %s"
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1655
+#: ../client/pk-console.c:1668
 #, c-format
 msgid "This tool could not get the update details for %s: %s"
 msgstr "हे साधन %s करीता अद्ययावत तपशील प्राप्त करू शकले नाही: %s"
 
 #. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
-#: ../client/pk-console.c:1686
+#: ../client/pk-console.c:1699
 msgid "Error:"
 msgstr "त्रुटी:"
 
 #. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1700
+#: ../client/pk-console.c:1713
 msgid "Package description"
 msgstr "संकुल वर्णन"
 
 #. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
-#: ../client/pk-console.c:1716
+#: ../client/pk-console.c:1729
 msgid "Message:"
 msgstr "संदेश:"
 
 #. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1744
+#: ../client/pk-console.c:1757
 msgid "Package files"
 msgstr "संकुल फाइल"
 
 #. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1752
+#: ../client/pk-console.c:1765
 msgid "No files"
 msgstr "फाइन नाही"
 
 #. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1775
+#: ../client/pk-console.c:1788
 msgid "Repository signature required"
 msgstr "रेपॉजटरी स्वाक्षरी आवश्यक आहे"
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1785
+#: ../client/pk-console.c:1798
 msgid "Do you accept this signature?"
 msgstr "तुम्ही ही स्वाक्षरी स्वीकारता?"
 
 #. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1789
+#: ../client/pk-console.c:1802
 msgid "The signature was not accepted."
 msgstr "स्वाक्षरी स्वीकारली गेली नाही."
 
 #. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1823
+#: ../client/pk-console.c:1836
 msgid "End user license agreement required"
 msgstr "वापरकर्ता परवाना करार आवश्यक आहे"
 
 #. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1830
+#: ../client/pk-console.c:1843
 msgid "Do you agree to this license?"
 msgstr "तुम्ही हा परवाना स्वीकारण्याची खात्री देता?"
 
 #. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1834
+#: ../client/pk-console.c:1847
 msgid "The license was refused."
 msgstr "परवाना फेटाळले गेले."
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1863
+#: ../client/pk-console.c:1876
 msgid "The daemon crashed mid-transaction!"
 msgstr "डिमन व्यवहारच्या मधोमध क्रॅश झाले!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1916
+#: ../client/pk-console.c:1929
 msgid "PackageKit Console Interface"
 msgstr "PackageKit कन्सोल संवाद"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1918
+#: ../client/pk-console.c:1931
 msgid "Subcommands:"
 msgstr "उपआदेश:"
 
 #. TRANSLATORS: command line argument, if we should show debugging information
 #. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:2011 ../client/pk-generate-pack.c:185
+#: ../client/pk-console.c:2024 ../client/pk-generate-pack.c:185
 #: ../client/pk-monitor.c:128
 #: ../contrib/command-not-found/pk-command-not-found.c:616
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:550
@@ -573,147 +586,147 @@ msgid "Show extra debugging information"
 msgstr "अगाऊ डिबगींग माहिती दाखवा"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:2014 ../client/pk-monitor.c:130
+#: ../client/pk-console.c:2027 ../client/pk-monitor.c:130
 msgid "Show the program version and exit"
 msgstr "कार्यक्रम आवृत्ती दाखवा व बाहेर पडा"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:2017
+#: ../client/pk-console.c:2030
 msgid "Set the filter, e.g. installed"
 msgstr "चाळणी निश्चित करा, उ.दा. प्रतिष्ठापीत"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:2020
+#: ../client/pk-console.c:2033
 msgid "Exit without waiting for actions to complete"
 msgstr "कृती पूर्ण केल्याविना बाहेर पडा"
 
 #. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:2047
+#: ../client/pk-console.c:2060
 msgid "This tool could not connect to system DBUS."
 msgstr "हे साधन प्रणाली DBUS शी जुळवणी स्थापीत करण्यास अशक्य."
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:2137
+#: ../client/pk-console.c:2150
 msgid "The filter specified was invalid"
 msgstr "निश्चित चाळणी अवैध नुरूप आढळली"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:2156
+#: ../client/pk-console.c:2169
 msgid "A search type is required, e.g. name"
 msgstr "शोध प्रकार आवश्यक, उ.दा. नाव"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:2163 ../client/pk-console.c:2172
-#: ../client/pk-console.c:2181 ../client/pk-console.c:2190
+#: ../client/pk-console.c:2176 ../client/pk-console.c:2185
+#: ../client/pk-console.c:2194 ../client/pk-console.c:2203
 msgid "A search term is required"
 msgstr "शोध संज्ञा आवश्यक"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:2197
+#: ../client/pk-console.c:2210
 msgid "Invalid search type"
 msgstr "अवैध शोध प्रकार"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:2203
+#: ../client/pk-console.c:2216
 msgid "A package name or filename to install is required"
 msgstr "प्रतिष्ठपन करीता संकुल नाव किंवा फाइलनाव आवश्यक आहे"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2212
+#: ../client/pk-console.c:2225
 msgid "A type, key_id and package_id are required"
 msgstr "प्रकार, key_id व package_id आवश्यक आहे"
 
 #. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:2221
+#: ../client/pk-console.c:2234
 msgid "A package name to remove is required"
 msgstr "काढून टाकण्याजोगी संकुल नाव"
 
 #. TRANSLATORS: the user did not specify anything about what to download or where
-#: ../client/pk-console.c:2229
+#: ../client/pk-console.c:2242
 msgid "A destination directory and the package names to download are required"
 msgstr "लक्ष्य डिरेक्ट्री व डाऊनलोडजोगी संकुल नावे आवश्यक आहे"
 
 #. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:2236
+#: ../client/pk-console.c:2249
 msgid "Directory not found"
 msgstr "डिरेक्ट्री आढळली नाही"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2244
+#: ../client/pk-console.c:2257
 msgid "A licence identifier (eula-id) is required"
 msgstr "परवाना ओळख (eula-id) आवश्यक आहे"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2254
+#: ../client/pk-console.c:2267
 msgid "A transaction identifier (tid) is required"
 msgstr "transaction identifier (tid) आवश्यक आहे"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:2271
+#: ../client/pk-console.c:2284
 msgid "A package name to resolve is required"
 msgstr "निर्धारण करीता संकुल नाव आवश्यक आहे"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:2280 ../client/pk-console.c:2289
+#: ../client/pk-console.c:2293 ../client/pk-console.c:2302
 msgid "A repository name is required"
 msgstr "रेपॉजिटरी नाव आवश्यक आहे"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2298
+#: ../client/pk-console.c:2311
 msgid "A repo name, parameter and value are required"
 msgstr "रेपो नाव, बाब व मूल्य आवश्यक आहे"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:2312
+#: ../client/pk-console.c:2325
 msgid "An action, e.g. 'update-system' is required"
 msgstr "कृती, उ.दा. 'update-system' आवश्यक आहे"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:2319
+#: ../client/pk-console.c:2332
 msgid "A correct role is required"
 msgstr "वर्तमान भूमिका आवश्यक आहे"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2326
+#: ../client/pk-console.c:2339
 msgid "Failed to get the time since this action was last completed"
 msgstr "शेवटच्यावेळी पूर्ण केलेली कृतीचे वेळ प्राप्त करण्यास अपयशी"
 
 #. TRANSLATORS: The user did not provide a package name
 #. TRANSLATORS: This is when the user fails to supply the package name
-#: ../client/pk-console.c:2336 ../client/pk-console.c:2348
-#: ../client/pk-console.c:2357 ../client/pk-console.c:2375
-#: ../client/pk-console.c:2384 ../client/pk-generate-pack.c:241
+#: ../client/pk-console.c:2349 ../client/pk-console.c:2361
+#: ../client/pk-console.c:2370 ../client/pk-console.c:2388
+#: ../client/pk-console.c:2397 ../client/pk-generate-pack.c:241
 msgid "A package name is required"
 msgstr "संकुल नाव आवश्यक आहे"
 
 #. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:2366
+#: ../client/pk-console.c:2379
 msgid "A package provide string is required"
 msgstr "संकुल द्वारे पुरविलेली अक्षरमाळा आवश्यक आहे"
 
 #. TRANSLATORS: The user didn't specify a filename to create as a list
-#: ../client/pk-console.c:2393
+#: ../client/pk-console.c:2406
 msgid "A list file name to create is required"
 msgstr "बनविण्याकरीता यादी फाइल नाव आवश्यक आहे"
 
 #. TRANSLATORS: The user didn't specify a filename to open as a list
-#: ../client/pk-console.c:2403 ../client/pk-console.c:2413
+#: ../client/pk-console.c:2416 ../client/pk-console.c:2426
 msgid "A list file to open is required"
 msgstr "उघडण्याकरीता यादी फाइल आवश्यक आहे"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2467
+#: ../client/pk-console.c:2480
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "पर्याय '%s' समर्थीत नाही"
 
 #. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2480
+#: ../client/pk-console.c:2493
 msgid "Incorrect privileges for this operation"
 msgstr "या क्रिया करीता अयोग्य परवानगी"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2483
+#: ../client/pk-console.c:2496
 msgid "Command failed"
 msgstr "आदेश अपयशी"
 
commit 243a0205d106e39668b70e28a5c9cd7a71bd67e4
Author: Richard Hughes <richard at hughsie.com>
Date:   Mon Aug 31 19:45:07 2009 +0100

    Change the pkcon repo-list output to be more normal. Fixes rh#520330

diff --git a/client/pk-console.c b/client/pk-console.c
index b606e79..6865875 100644
--- a/client/pk-console.c
+++ b/client/pk-console.c
@@ -462,10 +462,23 @@ static void
 pk_console_repo_detail_cb (PkClient *client, const gchar *repo_id,
 			   const gchar *description, gboolean enabled, gpointer data)
 {
+	gchar *enabled_pad;
+	gchar *repo_pad;
+
 	if (awaiting_space)
 		g_print ("\n");
-	/* TRANSLATORS: if the repo is enabled */
-	g_print (" %s\t%s\t%s\n", enabled ? _("True") : _("False"), repo_id, description);
+	if (enabled) {
+		/* TRANSLATORS: if the repo is enabled */
+		enabled_pad = pk_strpad (_("Enabled"), 10);
+	} else {
+		/* TRANSLATORS: if the repo is disabled */
+		enabled_pad = pk_strpad (_("Disabled"), 10);
+	}
+
+	repo_pad = pk_strpad (repo_id, 25);
+	g_print (" %s %s %s\n", enabled_pad, repo_pad, description);
+	g_free (enabled_pad);
+	g_free (repo_pad);
 }
 
 /**
commit cb6c95ba962bd156f65cc690f3e9adafa402403e
Author: sandeeps <sandeeps at fedoraproject.org>
Date:   Mon Aug 31 14:19:41 2009 +0000

    Sending translation for Marathi

diff --git a/po/mr.po b/po/mr.po
index 0cc5bf8..f34997e 100644
--- a/po/mr.po
+++ b/po/mr.po
@@ -1,16 +1,17 @@
-# translation of packagekit.master.mr.po to marathi
+# translation of packagekit.master.po to Marathi
 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
 # This file is distributed under the same license as the PACKAGE package.
 #
 # Sandeep Shedmake <sandeep.shedmake at gmail.com>, 2009.
+# Sandeep Shedmake <sshedmak at redhat.com>, 2009.
 msgid ""
 msgstr ""
-"Project-Id-Version: packagekit.master.mr\n"
+"Project-Id-Version: packagekit.master\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-08-24 11:06+0100\n"
-"PO-Revision-Date: 2009-06-29 17:09+0530\n"
-"Last-Translator: Sandeep Shedmake <sandeep.shedmake at gmail.com>\n"
-"Language-Team: marathi\n"
+"POT-Creation-Date: 2009-08-31 08:38+0000\n"
+"PO-Revision-Date: 2009-08-31 19:46+0530\n"
+"Last-Translator: Sandeep Shedmake <sshedmak at redhat.com>\n"
+"Language-Team: Marathi <fedora-trans-mr at redhat.com>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -33,11 +34,11 @@ msgid "Succeeded"
 msgstr "यशस्वी"
 
 #. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:239 ../client/pk-console.c:406
+#: ../client/pk-console.c:239 ../client/pk-console.c:468
 msgid "True"
 msgstr "True"
 
-#: ../client/pk-console.c:239 ../client/pk-console.c:406
+#: ../client/pk-console.c:239 ../client/pk-console.c:468
 msgid "False"
 msgstr "False"
 
@@ -85,452 +86,485 @@ msgstr "प्रभावीत संकुल:"
 msgid "Affected packages: None"
 msgstr "प्रभावीत संकुल: काहिच नाही"
 
+#. TRANSLATORS: When processing, we might have to remove other dependencies
+#: ../client/pk-console.c:334
+msgid "The following packages have to be removed:"
+msgstr "खालिल संकुल काढून टाकणे आवश्यक आहे:"
+
+#. TRANSLATORS: When processing, we might have to install other dependencies
+#: ../client/pk-console.c:337
+msgid "The following packages have to be installed:"
+msgstr "खालील संकुल प्रतिष्ठापीत करणे आवश्यक आहे:"
+
+#. TRANSLATORS: When processing, we might have to update other dependencies
+#: ../client/pk-console.c:340
+msgid "The following packages have to be updated:"
+msgstr "खालील संकुल सुधारीत करणे आवश्यक आहे:"
+
+#. TRANSLATORS: When processing, we might have to reinstall other dependencies
+#: ../client/pk-console.c:343
+msgid "The following packages have to be reinstalled:"
+msgstr "खालील संकुलांचे पुनःप्रतिष्ठापन आवश्यक आहे:"
+
+#. TRANSLATORS: When processing, we might have to downgrade other dependencies
+#: ../client/pk-console.c:346
+msgid "The following packages have to be downgraded:"
+msgstr "खालील संकुलांची एक आवृत्ती कमी करणे आवश्यक आहे:"
+
 #. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:298
+#: ../client/pk-console.c:360
 msgid "Distribution"
 msgstr "वितरण"
 
 #. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:300
+#: ../client/pk-console.c:362
 msgid "Type"
 msgstr "प्रकार"
 
 #. TRANSLATORS: this is any summary text describing the upgrade
 #. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:302 ../client/pk-console.c:325
+#: ../client/pk-console.c:364 ../client/pk-console.c:387
 msgid "Summary"
 msgstr "सारांश"
 
 #. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:314
+#: ../client/pk-console.c:376
 msgid "Category"
 msgstr "प्रवर्ग"
 
 #. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:316
+#: ../client/pk-console.c:378
 msgid "ID"
 msgstr "ID"
 
 #. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:319
+#: ../client/pk-console.c:381
 msgid "Parent"
 msgstr "मुख्य"
 
 #. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:322
+#: ../client/pk-console.c:384
 msgid "Name"
 msgstr "नाव"
 
 #. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:328
+#: ../client/pk-console.c:390
 msgid "Icon"
 msgstr "चिन्ह"
 
 #. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:343
+#: ../client/pk-console.c:405
 msgid "Details about the update:"
 msgstr "अद्ययावत विषयी तपशील:"
 
 #. TRANSLATORS: details about the update, package name and version
 #. TRANSLATORS: title, the names of the packages that the method is processing
-#: ../client/pk-console.c:345 ../src/pk-polkit-action-lookup.c:352
-#, fuzzy
+#: ../client/pk-console.c:407 ../src/pk-polkit-action-lookup.c:352
 msgid "Package"
 msgid_plural "Packages"
 msgstr[0] "संकुल"
-msgstr[1] "संकुल"
+msgstr[1] "संकुले"
 
 #. TRANSLATORS: details about the update, any packages that this update updates
-#: ../client/pk-console.c:348
+#: ../client/pk-console.c:410
 msgid "Updates"
 msgstr "अद्ययावत"
 
 #. TRANSLATORS: details about the update, any packages that this update obsoletes
-#: ../client/pk-console.c:352
+#: ../client/pk-console.c:414
 msgid "Obsoletes"
 msgstr "जुणे"
 
 #. TRANSLATORS: details about the update, the vendor URLs
-#: ../client/pk-console.c:356
+#: ../client/pk-console.c:418
 msgid "Vendor"
 msgstr "विक्रेता"
 
 #. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:360
+#: ../client/pk-console.c:422
 msgid "Bugzilla"
 msgstr "बगजीला"
 
 #. TRANSLATORS: details about the update, the CVE URLs
-#: ../client/pk-console.c:364
+#: ../client/pk-console.c:426
 msgid "CVE"
 msgstr "CVE"
 
 #. TRANSLATORS: details about the update, if the package requires a restart
-#: ../client/pk-console.c:368
+#: ../client/pk-console.c:430
 msgid "Restart"
 msgstr "पुन्हा सुरू करा"
 
 #. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:372
+#: ../client/pk-console.c:434
 msgid "Update text"
 msgstr "अद्ययावत पाठ्य"
 
 #. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:376
+#: ../client/pk-console.c:438
 msgid "Changes"
 msgstr "बदल"
 
 #. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:380
+#: ../client/pk-console.c:442
 msgid "State"
 msgstr "स्तर"
 
 #. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:385
+#: ../client/pk-console.c:447
 msgid "Issued"
 msgstr "वितरण दिनांक"
 
 #. TRANSLATORS: details about the update, date the update was updated
-#: ../client/pk-console.c:390
+#: ../client/pk-console.c:452
 msgid "Updated"
 msgstr "अद्ययावतीत"
 
-#: ../client/pk-console.c:477 ../client/pk-console.c:479
+#: ../client/pk-console.c:539 ../client/pk-console.c:541
 msgid "Percentage"
 msgstr "टक्केवारी"
 
-#: ../client/pk-console.c:479
+#: ../client/pk-console.c:541
 msgid "Unknown"
 msgstr "अपरिचीत"
 
 #. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:521
+#: ../client/pk-console.c:583
 msgid "System restart required by:"
 msgstr "प्रणाली पुन्हा चालू करणे आवश्यक:"
 
 #. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:524
+#: ../client/pk-console.c:586
 msgid "Session restart required:"
 msgstr "सत्र पुन्हा चालू करणे आवश्यक:"
 
 #. TRANSLATORS: a package requires the system to be restarted due to a security update
-#: ../client/pk-console.c:527
-#, fuzzy
+#: ../client/pk-console.c:589
 msgid "System restart (security) required by:"
-msgstr "प्रणाली पुन्हा चालू करणे आवश्यक:"
+msgstr "प्रणाली पुनः चालू करणे (सुरक्षा) आवश्यक:"
 
 #. TRANSLATORS: a package requires the session to be restarted due to a security update
-#: ../client/pk-console.c:530
-#, fuzzy
+#: ../client/pk-console.c:592
 msgid "Session restart (security) required:"
-msgstr "सत्र पुन्हा चालू करणे आवश्यक:"
+msgstr "सत्र पुनः चालू करणे (सुरक्षा) आवश्यक:"
 
 #. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:533
+#: ../client/pk-console.c:595
 msgid "Application restart required by:"
 msgstr "अनुप्रयोग पुन्हा चालू करणे आवश्यक:"
 
 #. TRANSLATORS: a package needs to restart their system
-#: ../client/pk-console.c:588
+#: ../client/pk-console.c:650
 msgid "Please restart the computer to complete the update."
 msgstr "अद्ययावत पूर्ण करण्याकरीता कृपया संगणक पुन्हा चालू करा."
 
 #. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:591
+#: ../client/pk-console.c:653
 msgid "Please logout and login to complete the update."
 msgstr "कृपया वापरकर्ता बदला व अद्ययावत पूर्ण करण्याकरीता प्रवेश करा."
 
 #. TRANSLATORS: a package needs to restart the application
-#: ../client/pk-console.c:594
+#: ../client/pk-console.c:656
 msgid "Please restart the application as it is being used."
 msgstr "कृपया अनुप्रयोग ज्यानुरूप वापरले जाते त्यानुरूप पुन्हा चालू करा."
 
 #. TRANSLATORS: a package needs to restart their system (due to security)
-#: ../client/pk-console.c:597
-#, fuzzy
+#: ../client/pk-console.c:659
 msgid ""
 "Please restart the computer to complete the update as important security "
 "updates have been installed."
-msgstr "अद्ययावत पूर्ण करण्याकरीता कृपया संगणक पुन्हा चालू करा."
+msgstr "महत्वाच्ये सुरक्षा सुधारणा प्रतिष्ठापीत झाल्यामुळे कृपया सुधारणा पूर्ण करण्यासाठी संगणक पुनःचालू करा."
 
 #. TRANSLATORS: a package needs to restart the session (due to security)
-#: ../client/pk-console.c:600
-#, fuzzy
+#: ../client/pk-console.c:662
 msgid ""
 "Please logout and login to complete the update as important security updates "
 "have been installed."
-msgstr "कृपया वापरकर्ता बदला व अद्ययावत पूर्ण करण्याकरीता प्रवेश करा."
+msgstr "महत्वाचे सुरक्षा सुधारणा प्रतिष्ठापीत झाल्यामुळे कृपया सुधारणा पूर्ण करण्यासाठी लॉगआऊट होऊन पुनः प्रवेश करा."
 
 #. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:727
+#: ../client/pk-console.c:794
 #, c-format
 msgid "The package %s is already installed"
 msgstr "संकुल %s आधिपासूनच प्रतिष्ठापीत आहे"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:735
+#: ../client/pk-console.c:802
 #, c-format
 msgid "The package %s could not be installed: %s"
 msgstr "संकुल %s चे प्रतिष्ठापन शक्य नाही: %s"
 
 #. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
-#: ../client/pk-console.c:760 ../client/pk-console.c:783
-#: ../client/pk-console.c:879 ../client/pk-console.c:996
-#: ../client/pk-tools-common.c:62 ../client/pk-tools-common.c:81
-#: ../client/pk-tools-common.c:89
+#: ../client/pk-console.c:828 ../client/pk-console.c:876
+#: ../client/pk-console.c:900 ../client/pk-console.c:948
+#: ../client/pk-console.c:1044 ../client/pk-console.c:1157
+#: ../client/pk-console.c:1218 ../client/pk-tools-common.c:62
+#: ../client/pk-tools-common.c:81 ../client/pk-tools-common.c:89
 #, c-format
 msgid "Internal error: %s"
 msgstr "आंतरीक त्रुटी: %s"
 
+#. TRANSLATORS: We are checking if it's okay to remove a list of packages
+#: ../client/pk-console.c:860 ../client/pk-console.c:932
+#: ../client/pk-console.c:1250
+msgid "Proceed with changes?"
+msgstr "बदलांशी पुढे जायचे?"
+
+#. TRANSLATORS: There was an error removing the packages. The detailed error follows
+#: ../client/pk-console.c:865 ../client/pk-console.c:937
+msgid "The package install was canceled!"
+msgstr "संकुल प्रतिष्ठापन रद्द केले गेले!"
+
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:768 ../client/pk-console.c:1392
+#: ../client/pk-console.c:884 ../client/pk-console.c:1618
 #, c-format
 msgid "This tool could not install the packages: %s"
 msgstr "हे साधन संकुल प्रतिष्ठापीत करू शकले नाही: %s"
 
 #. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:791
+#: ../client/pk-console.c:956
 #, c-format
 msgid "This tool could not install the files: %s"
 msgstr "हे साधन फाइल प्रतिष्ठापीत करू शकले नाही: %s"
 
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:847
+#: ../client/pk-console.c:1012
 #, c-format
 msgid "This tool could not remove %s: %s"
-msgstr "या साधन द्वारे %s काढूण टाकणे शक्य नाही: %s"
+msgstr "या साधन द्वारे %s काढून टाकणे शक्य नाही: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:870 ../client/pk-console.c:908
-#: ../client/pk-console.c:941
+#: ../client/pk-console.c:1035 ../client/pk-console.c:1073
+#: ../client/pk-console.c:1102
 #, c-format
 msgid "This tool could not remove the packages: %s"
-msgstr "या साधन द्वारे संकुल काढूण टाकणे अशक्य: %s"
-
-#. TRANSLATORS: When removing, we might have to remove other dependencies
-#: ../client/pk-console.c:920
-msgid "The following packages have to be removed:"
-msgstr "खालिल संकुल काढूण टाकणे आवश्यक आहे:"
+msgstr "या साधन द्वारे संकुल काढून टाकणे अशक्य: %s"
 
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:927
-msgid "Proceed removing additional packages?"
-msgstr "अगाऊ संकुल काढूण टाकणे चालू ठेवायचे?"
+#: ../client/pk-console.c:1088
+msgid "Proceed with additional packages?"
+msgstr "अगाऊ संकुल काढून टाकणे चालू ठेवायचे?"
 
-#. TRANSLATORS: We did not remove any packages
-#: ../client/pk-console.c:932
+#. TRANSLATORS: There was an error removing the packages. The detailed error follows
+#: ../client/pk-console.c:1093
 msgid "The package removal was canceled!"
-msgstr "संकुल काढूण टाकणे रद्द केले गेले!"
+msgstr "संकुल काढून टाकणे रद्द केले गेले!"
 
 #. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:973
+#: ../client/pk-console.c:1134
 #, c-format
 msgid "This tool could not download the package %s as it could not be found"
 msgstr "हे साधन संकुल %s न आढळल्यामुळे डाऊनलोड करू शकले नाही"
 
 #. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:1004
+#: ../client/pk-console.c:1165
 #, c-format
 msgid "This tool could not download the packages: %s"
 msgstr "हे साधन संकुल डाऊनलोड करू शकले नाही: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1031 ../client/pk-console.c:1040
+#: ../client/pk-console.c:1197 ../client/pk-console.c:1209
+#: ../client/pk-console.c:1264
 #, c-format
 msgid "This tool could not update %s: %s"
 msgstr "हे साधन %s अद्ययावतीत करू शकले नाही: %s"
 
+#. TRANSLATORS: There was an error removing the packages. The detailed error follows
+#: ../client/pk-console.c:1255
+msgid "The package update was canceled!"
+msgstr "संकुल सुधारीत करणे रद्द केले गेले!"
+
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1062 ../client/pk-console.c:1070
+#: ../client/pk-console.c:1288 ../client/pk-console.c:1296
 #, c-format
 msgid "This tool could not get the requirements for %s: %s"
 msgstr "हे साधन %s करीता आवश्यकता प्राप्त करू शकले नाही: %s"
 
 #. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:1092 ../client/pk-console.c:1100
+#: ../client/pk-console.c:1318 ../client/pk-console.c:1326
 #, c-format
 msgid "This tool could not get the dependencies for %s: %s"
 msgstr "हे साधन %s करीता अवलंबन प्राप्त करू शकने नाही: %s"
 
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:1122 ../client/pk-console.c:1130
+#: ../client/pk-console.c:1348 ../client/pk-console.c:1356
 #, c-format
 msgid "This tool could not get package details for %s: %s"
 msgstr "हे साधन %s करीता संकुल तपशील प्राप्त करू शकले नाही: %s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1152
+#: ../client/pk-console.c:1378
 #, c-format
 msgid "This tool could not find the files for %s: %s"
 msgstr "हे साधन %s करीता फाइल शोधू शकले नाही: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1160
+#: ../client/pk-console.c:1386
 #, c-format
 msgid "This tool could not get the file list for %s: %s"
 msgstr "हे साधन %s करीता फाइल यादी प्राप्त करू शकले नाही: %s"
 
 #. TRANSLATORS: There was an error getting the list of packages. The filename follows
-#: ../client/pk-console.c:1182
+#: ../client/pk-console.c:1408
 #, c-format
 msgid "File already exists: %s"
 msgstr "फाइल आधिपासूनच अस्तित्वात आहे: %s"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1187 ../client/pk-console.c:1243
-#: ../client/pk-console.c:1318
+#: ../client/pk-console.c:1413 ../client/pk-console.c:1469
+#: ../client/pk-console.c:1544
 msgid "Getting package list"
 msgstr "संकुल यादी प्राप्त करत आहे"
 
 #. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1193 ../client/pk-console.c:1249
-#: ../client/pk-console.c:1324
+#: ../client/pk-console.c:1419 ../client/pk-console.c:1475
+#: ../client/pk-console.c:1550
 #, c-format
 msgid "This tool could not get package list: %s"
 msgstr "हे साधन संकुल यादी प्राप्त करू शकले नाही: %s"
 
 #. TRANSLATORS: There was an error saving the list
-#: ../client/pk-console.c:1204
+#: ../client/pk-console.c:1430
 #, c-format
 msgid "Failed to save to disk"
 msgstr "डिस्क वर साठविण्यास अपयशी"
 
 #. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1238 ../client/pk-console.c:1313
+#: ../client/pk-console.c:1464 ../client/pk-console.c:1539
 #, c-format
 msgid "File does not exist: %s"
 msgstr "फाइल अस्तित्वात नाही: %s"
 
 #. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1270
+#: ../client/pk-console.c:1496
 msgid "Packages to add"
 msgstr "समावेष करण्याजोगी संकुल"
 
 #. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1278
+#: ../client/pk-console.c:1504
 msgid "Packages to remove"
-msgstr "काढूण टाकण्याजोगी संकुल"
+msgstr "काढून टाकण्याजोगी संकुल"
 
 #. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1346
+#: ../client/pk-console.c:1572
 #, c-format
 msgid "No new packages need to be installed"
 msgstr "कुठलेही नवीन संकुल प्रतिष्ठापीत करण्याची आवश्यकता नाही"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1352
+#: ../client/pk-console.c:1578
 msgid "To install"
 msgstr "प्रतिष्ठापन करा"
 
 #. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1364
+#: ../client/pk-console.c:1590
 msgid "Searching for package: "
 msgstr "संकुल करीता शोधत आहे: "
 
 #. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1368
+#: ../client/pk-console.c:1594
 msgid "not found."
 msgstr "आढळले नाही."
 
 #. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1379
+#: ../client/pk-console.c:1605
 #, c-format
 msgid "No packages can be found to install"
 msgstr "प्रतिष्ठापन करीता कुठलेही संकुल आढळले नाही"
 
 #. TRANSLATORS: installing new packages from package list
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
-#: ../client/pk-console.c:1385
+#: ../client/pk-console.c:1611
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:886
 #, c-format
 msgid "Installing packages"
 msgstr "संकुल प्रतिष्ठापीत करत आहे"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1421
+#: ../client/pk-console.c:1647
 #, c-format
 msgid "This tool could not find the update details for %s: %s"
 msgstr "हे साधन %s करीता अद्ययावत तपशील शोधू शकले नाही: %s"
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1429
+#: ../client/pk-console.c:1655
 #, c-format
 msgid "This tool could not get the update details for %s: %s"
 msgstr "हे साधन %s करीता अद्ययावत तपशील प्राप्त करू शकले नाही: %s"
 
 #. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
-#: ../client/pk-console.c:1460
+#: ../client/pk-console.c:1686
 msgid "Error:"
 msgstr "त्रुटी:"
 
 #. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1474
+#: ../client/pk-console.c:1700
 msgid "Package description"
 msgstr "संकुल वर्णन"
 
 #. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
-#: ../client/pk-console.c:1490
+#: ../client/pk-console.c:1716
 msgid "Message:"
 msgstr "संदेश:"
 
 #. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1518
+#: ../client/pk-console.c:1744
 msgid "Package files"
 msgstr "संकुल फाइल"
 
 #. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1526
+#: ../client/pk-console.c:1752
 msgid "No files"
 msgstr "फाइन नाही"
 
 #. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1549
+#: ../client/pk-console.c:1775
 msgid "Repository signature required"
 msgstr "रेपॉजटरी स्वाक्षरी आवश्यक आहे"
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1559
+#: ../client/pk-console.c:1785
 msgid "Do you accept this signature?"
 msgstr "तुम्ही ही स्वाक्षरी स्वीकारता?"
 
 #. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1563
+#: ../client/pk-console.c:1789
 msgid "The signature was not accepted."
 msgstr "स्वाक्षरी स्वीकारली गेली नाही."
 
 #. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1597
+#: ../client/pk-console.c:1823
 msgid "End user license agreement required"
 msgstr "वापरकर्ता परवाना करार आवश्यक आहे"
 
 #. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1604
+#: ../client/pk-console.c:1830
 msgid "Do you agree to this license?"
 msgstr "तुम्ही हा परवाना स्वीकारण्याची खात्री देता?"
 
 #. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1608
+#: ../client/pk-console.c:1834
 msgid "The license was refused."
 msgstr "परवाना फेटाळले गेले."
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1637
+#: ../client/pk-console.c:1863
 msgid "The daemon crashed mid-transaction!"
 msgstr "डिमन व्यवहारच्या मधोमध क्रॅश झाले!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1690
+#: ../client/pk-console.c:1916
 msgid "PackageKit Console Interface"
 msgstr "PackageKit कन्सोल संवाद"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1692
+#: ../client/pk-console.c:1918
 msgid "Subcommands:"
 msgstr "उपआदेश:"
 
 #. TRANSLATORS: command line argument, if we should show debugging information
 #. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:1785 ../client/pk-generate-pack.c:185
+#: ../client/pk-console.c:2011 ../client/pk-generate-pack.c:185
 #: ../client/pk-monitor.c:128
 #: ../contrib/command-not-found/pk-command-not-found.c:616
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:550
@@ -539,148 +573,147 @@ msgid "Show extra debugging information"
 msgstr "अगाऊ डिबगींग माहिती दाखवा"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1788 ../client/pk-monitor.c:130
+#: ../client/pk-console.c:2014 ../client/pk-monitor.c:130
 msgid "Show the program version and exit"
 msgstr "कार्यक्रम आवृत्ती दाखवा व बाहेर पडा"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1791
+#: ../client/pk-console.c:2017
 msgid "Set the filter, e.g. installed"
 msgstr "चाळणी निश्चित करा, उ.दा. प्रतिष्ठापीत"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1794
+#: ../client/pk-console.c:2020
 msgid "Exit without waiting for actions to complete"
 msgstr "कृती पूर्ण केल्याविना बाहेर पडा"
 
 #. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:1821
+#: ../client/pk-console.c:2047
 msgid "This tool could not connect to system DBUS."
 msgstr "हे साधन प्रणाली DBUS शी जुळवणी स्थापीत करण्यास अशक्य."
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1911
+#: ../client/pk-console.c:2137
 msgid "The filter specified was invalid"
 msgstr "निश्चित चाळणी अवैध नुरूप आढळली"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1930
+#: ../client/pk-console.c:2156
 msgid "A search type is required, e.g. name"
 msgstr "शोध प्रकार आवश्यक, उ.दा. नाव"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1937 ../client/pk-console.c:1946
-#: ../client/pk-console.c:1955 ../client/pk-console.c:1964
+#: ../client/pk-console.c:2163 ../client/pk-console.c:2172
+#: ../client/pk-console.c:2181 ../client/pk-console.c:2190
 msgid "A search term is required"
 msgstr "शोध संज्ञा आवश्यक"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1971
+#: ../client/pk-console.c:2197
 msgid "Invalid search type"
 msgstr "अवैध शोध प्रकार"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1977
+#: ../client/pk-console.c:2203
 msgid "A package name or filename to install is required"
 msgstr "प्रतिष्ठपन करीता संकुल नाव किंवा फाइलनाव आवश्यक आहे"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1986
+#: ../client/pk-console.c:2212
 msgid "A type, key_id and package_id are required"
 msgstr "प्रकार, key_id व package_id आवश्यक आहे"
 
 #. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:1995
+#: ../client/pk-console.c:2221
 msgid "A package name to remove is required"
-msgstr "काढूण टाकण्याजोगी संकुल नाव"
+msgstr "काढून टाकण्याजोगी संकुल नाव"
 
 #. TRANSLATORS: the user did not specify anything about what to download or where
-#: ../client/pk-console.c:2003
-#, fuzzy
+#: ../client/pk-console.c:2229
 msgid "A destination directory and the package names to download are required"
-msgstr "लक्ष्य डिरेक्ट्री व त्यानंतर डाऊनलोड करीता संकुल नाव आवश्यक आहे"
+msgstr "लक्ष्य डिरेक्ट्री व डाऊनलोडजोगी संकुल नावे आवश्यक आहे"
 
 #. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:2010
+#: ../client/pk-console.c:2236
 msgid "Directory not found"
 msgstr "डिरेक्ट्री आढळली नाही"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2018
+#: ../client/pk-console.c:2244
 msgid "A licence identifier (eula-id) is required"
 msgstr "परवाना ओळख (eula-id) आवश्यक आहे"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2028
+#: ../client/pk-console.c:2254
 msgid "A transaction identifier (tid) is required"
 msgstr "transaction identifier (tid) आवश्यक आहे"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:2045
+#: ../client/pk-console.c:2271
 msgid "A package name to resolve is required"
 msgstr "निर्धारण करीता संकुल नाव आवश्यक आहे"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:2054 ../client/pk-console.c:2063
+#: ../client/pk-console.c:2280 ../client/pk-console.c:2289
 msgid "A repository name is required"
 msgstr "रेपॉजिटरी नाव आवश्यक आहे"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2072
+#: ../client/pk-console.c:2298
 msgid "A repo name, parameter and value are required"
 msgstr "रेपो नाव, बाब व मूल्य आवश्यक आहे"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:2086
+#: ../client/pk-console.c:2312
 msgid "An action, e.g. 'update-system' is required"
 msgstr "कृती, उ.दा. 'update-system' आवश्यक आहे"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:2093
+#: ../client/pk-console.c:2319
 msgid "A correct role is required"
 msgstr "वर्तमान भूमिका आवश्यक आहे"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2100
+#: ../client/pk-console.c:2326
 msgid "Failed to get the time since this action was last completed"
 msgstr "शेवटच्यावेळी पूर्ण केलेली कृतीचे वेळ प्राप्त करण्यास अपयशी"
 
 #. TRANSLATORS: The user did not provide a package name
 #. TRANSLATORS: This is when the user fails to supply the package name
-#: ../client/pk-console.c:2110 ../client/pk-console.c:2122
-#: ../client/pk-console.c:2131 ../client/pk-console.c:2149
-#: ../client/pk-console.c:2158 ../client/pk-generate-pack.c:241
+#: ../client/pk-console.c:2336 ../client/pk-console.c:2348
+#: ../client/pk-console.c:2357 ../client/pk-console.c:2375
+#: ../client/pk-console.c:2384 ../client/pk-generate-pack.c:241
 msgid "A package name is required"
 msgstr "संकुल नाव आवश्यक आहे"
 
 #. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:2140
+#: ../client/pk-console.c:2366
 msgid "A package provide string is required"
 msgstr "संकुल द्वारे पुरविलेली अक्षरमाळा आवश्यक आहे"
 
 #. TRANSLATORS: The user didn't specify a filename to create as a list
-#: ../client/pk-console.c:2167
+#: ../client/pk-console.c:2393
 msgid "A list file name to create is required"
 msgstr "बनविण्याकरीता यादी फाइल नाव आवश्यक आहे"
 
 #. TRANSLATORS: The user didn't specify a filename to open as a list
-#: ../client/pk-console.c:2177 ../client/pk-console.c:2187
+#: ../client/pk-console.c:2403 ../client/pk-console.c:2413
 msgid "A list file to open is required"
 msgstr "उघडण्याकरीता यादी फाइल आवश्यक आहे"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2241
+#: ../client/pk-console.c:2467
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "पर्याय '%s' समर्थीत नाही"
 
 #. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2254
+#: ../client/pk-console.c:2480
 msgid "Incorrect privileges for this operation"
 msgstr "या क्रिया करीता अयोग्य परवानगी"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2257
+#: ../client/pk-console.c:2483
 msgid "Command failed"
 msgstr "आदेश अपयशी"
 
@@ -706,8 +739,7 @@ msgstr "वगळण्याजोगी अवलंबनचे फाइल
 
 #. TRANSLATORS: the output location
 #: ../client/pk-generate-pack.c:191
-msgid ""
-"The output file or directory (the current directory is used if ommitted)"
+msgid "The output file or directory (the current directory is used if ommitted)"
 msgstr "आऊटपुट फाइल किंवा डिरेक्ट्री (वगळल्यास वर्तमान डिरेक्ट्रीचा वापर करा)"
 
 #. TRANSLATORS: put a list of packages in the pack
@@ -746,8 +778,7 @@ msgstr "संकुल व्यवस्थापक या प्रकार
 msgid ""
 "Service packs cannot be created as PackageKit was not built with libarchive "
 "support."
-msgstr ""
-"PackageKit ला libarchive समर्थन सह बिल्ट न केल्यामुळे Service पैक बनवणे शक्य नाही."
+msgstr "PackageKit ला libarchive समर्थन सह बिल्ट न केल्यामुळे Service पैक बनवणे शक्य नाही."
 
 #. TRANSLATORS: the user specified an absolute path, but didn't get the extension correct
 #: ../client/pk-generate-pack.c:291
@@ -805,11 +836,11 @@ msgstr "'%s' बनविण्यास अपयशी: %s"
 #. TRANSLATORS: this is a program that monitors PackageKit
 #: ../client/pk-monitor.c:146
 msgid "PackageKit Monitor"
-msgstr "PackageKit Monitor"
+msgstr "पॅकेजकिट मॉनिटर"
 
 #: ../client/pk-monitor.c:183
 msgid "Cannot show the list of transactions"
-msgstr ""
+msgstr "व्यावहारांची सूची दाखवणे अशक्य"
 
 #. TRANSLATORS: The package was not found in any software sources
 #: ../client/pk-tools-common.c:118
@@ -889,24 +920,22 @@ msgstr "प्रतिष्ठापन करत आहे..."
 #. TRANSLATORS: downloading repo data so we can search
 #: ../contrib/command-not-found/pk-command-not-found.c:349
 msgid "Downloading details about the software sources."
-msgstr ""
+msgstr "सॉफ्टवेयर स्रोत विषयी तपशील डाऊनलोड करत आहे."
 
 #. TRANSLATORS: downloading file lists so we can search
 #: ../contrib/command-not-found/pk-command-not-found.c:353
 msgid "Downloading filelists (this may take some time to complete)."
-msgstr ""
+msgstr "फाइनसूची डाऊनलोड करत आहे (पूर्ण व्हायला जरा वेळ लागेल)."
 
 #. TRANSLATORS: waiting for native lock
 #: ../contrib/command-not-found/pk-command-not-found.c:357
-#, fuzzy
 msgid "Waiting for package manager lock."
-msgstr "संकुल नाव शोधत आहे."
+msgstr "संकुल व्यवस्थापक कुलूपबंदकरीता प्रतिक्षेत."
 
 #. TRANSLATORS: loading package cache so we can search
 #: ../contrib/command-not-found/pk-command-not-found.c:361
-#, fuzzy
 msgid "Loading list of packages."
-msgstr "संकुल डाऊनलोड करत आहे"
+msgstr "संकुलांची सूची लोड करत आहे."
 
 #. TRANSLATORS: we failed to find the package, this shouldn't happen
 #: ../contrib/command-not-found/pk-command-not-found.c:420
@@ -979,9 +1008,8 @@ msgstr "प्रतिष्ठापन करीता कृपया सं
 
 #. TRANSLATORS: we are starting to install the packages
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:187
-#, fuzzy
 msgid "Starting install"
-msgstr "प्रतिष्ठापन करा"
+msgstr "प्रतिष्ठापन सुरू करत आहे"
 
 #. TRANSLATORS: we couldn't find the package name, non-fatal
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:397
@@ -991,10 +1019,8 @@ msgstr "संकुल %s शोधण्यास अपयशी, किंà¤
 
 #. command line argument, simulate what would be done, but don't actually do it
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:553
-#, fuzzy
-msgid ""
-"Don't actually install any packages, only simulate what would be installed"
-msgstr "कुठलेही संकुल प्रत्यक्षरित्या प्रतिष्ठापीत करू नका, फक्त सिम्यूलेट करा"
+msgid "Don't actually install any packages, only simulate what would be installed"
+msgstr "संकुल वास्तविकरित्या प्रतिष्ठापीत करू नका, व फक्त प्रतिष्ठापनजोगी घटक सिम्यूलेट करा"
 
 #. command line argument, do we skip packages that depend on the ones specified
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:556
@@ -1004,12 +1030,12 @@ msgstr "कोर संकुलचे अवलंबन प्रतिष्
 #. command line argument, do we operate quietly
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:559
 msgid "Do not display information or progress"
-msgstr ""
+msgstr "माहिती किंवा प्रगती दाखवू नका"
 
 #. TRANSLATORS: tool that gets called when the command is not found
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:577
 msgid "PackageKit Debuginfo Installer"
-msgstr "PackageKit Debuginfo Installer"
+msgstr "पॅकेजकिट डिबगइंफो इन्सटॉलर"
 
 #. TRANSLATORS: the use needs to specify a list of package names on the command line
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:589
@@ -1166,100 +1192,89 @@ msgstr "%i डिबगींग स्त्रोत अकार्यानà
 
 #. TRANSLATORS: couldn't open device to write
 #: ../contrib/device-rebind/pk-device-rebind.c:61
-#, fuzzy
 msgid "Failed to open file"
-msgstr "फाइल करीता शोध करण्यास अपयशी"
+msgstr "फाइल उघडण्यास अपयशी"
 
 #. TRANSLATORS: could not write to the device
 #: ../contrib/device-rebind/pk-device-rebind.c:70
-#, fuzzy
 msgid "Failed to write to the file"
-msgstr "फाइल करीता शोध करण्यास अपयशी"
+msgstr "फाइल मध्ये लिहण्यास अपयशी"
 
 #. TRANSLATORS: we failed to release the current driver
 #: ../contrib/device-rebind/pk-device-rebind.c:110
 #: ../contrib/device-rebind/pk-device-rebind.c:147
-#, fuzzy
 msgid "Failed to write to device"
-msgstr "डिस्क वर साठविण्यास अपयशी"
+msgstr "साधनात लिहण्यास अपयशी"
 
 #. TRANSLATORS: the device could not be found in sysfs
 #: ../contrib/device-rebind/pk-device-rebind.c:175
-#, fuzzy
 msgid "Device could not be found"
-msgstr "संकुल आढळले नाही"
+msgstr "साधन आढळले नाही"
 
 #. TRANSLATORS: we failed to release the current driver
 #: ../contrib/device-rebind/pk-device-rebind.c:202
-#, fuzzy
 msgid "Failed to unregister driver"
-msgstr "डिरेक्ट्री बनविण्यास अपयशी:"
+msgstr "ड्राइव्हरचे पंजीकरण अशक्य करण्यास अपयशी"
 
 #. TRANSLATORS: we failed to bind the old driver
 #: ../contrib/device-rebind/pk-device-rebind.c:211
-#, fuzzy
 msgid "Failed to register driver"
-msgstr "डिरेक्ट्री बनविण्यास अपयशी:"
+msgstr "ड्राइव्हर पंजीकृत करण्यास अपयशी"
 
 #. TRANSLATORS: user did not specify a device sysfs path that exists
 #: ../contrib/device-rebind/pk-device-rebind.c:260
-#, fuzzy
 msgid "Device path not found"
-msgstr "डिरेक्ट्री आढळली नाही"
+msgstr "साधनाचा मार्ग आढळला नाही"
 
 #. TRANSLATORS: user did not specify a valid device sysfs path
 #: ../contrib/device-rebind/pk-device-rebind.c:268
 msgid "Incorrect device path specified"
-msgstr ""
+msgstr "अयोग्य साधनाचे मार्ग निर्देशीत केले"
 
 #. command line argument, simulate what would be done, but don't actually do it
 #: ../contrib/device-rebind/pk-device-rebind.c:296
-#, fuzzy
 msgid "Don't actually touch the hardware, only simulate what would be done"
-msgstr "कुठलेही संकुल प्रत्यक्षरित्या प्रतिष्ठापीत करू नका, फक्त सिम्यूलेट करा"
+msgstr "हार्डवेयरला प्रत्यक्षरित्या हात न लावता, फक्त कार्यपद्धती सिम्यूलेट करा"
 
 #. TRANSLATORS: command line option: a list of files to install
 #: ../contrib/device-rebind/pk-device-rebind.c:299
 msgid "Device paths"
-msgstr ""
+msgstr "साधनाचे मार्ग"
 
 #. TRANSLATORS: tool that gets called when the device needs reloading after installing firmware
 #: ../contrib/device-rebind/pk-device-rebind.c:314
-#, fuzzy
 msgid "PackageKit Device Reloader"
-msgstr "PackageKit सेवा पॅक"
+msgstr "PackageKit साधन पुनःलोडकर्ता"
 
 #. TRANSLATORS: user did not specify a valid device sysfs path
 #: ../contrib/device-rebind/pk-device-rebind.c:322
 msgid "You need to specify at least one valid device path"
-msgstr ""
+msgstr "तुम्ही किमान एक वैध साधनाचे मार्ग निर्देशीत करायला हवे"
 
 #. TRANSLATORS: user did not specify a valid device sysfs path
 #: ../contrib/device-rebind/pk-device-rebind.c:332
 msgid "This script can only be used by the root user"
-msgstr ""
+msgstr "या स्क्रिप्ट्चा वापर फक्त रूट वापरकर्ता द्वारेच शक्य आहे"
 
 #. TRANSLATORS: we're going to verify the path first
 #: ../contrib/device-rebind/pk-device-rebind.c:341
 msgid "Verifying device path"
-msgstr ""
+msgstr "साधनाचा मार्ग तपासत आहे"
 
 #. TRANSLATORS: user did not specify a device sysfs path that exists
 #: ../contrib/device-rebind/pk-device-rebind.c:346
-#, fuzzy
 msgid "Failed to verify device path"
-msgstr "फाइल करीता शोध करण्यास अपयशी"
+msgstr "साधनाचे मार्ग तपसण्यास अपयशी"
 
 #. TRANSLATORS: we're going to try
 #: ../contrib/device-rebind/pk-device-rebind.c:360
 msgid "Attempting to rebind device"
-msgstr ""
+msgstr "साधन पुनःबांधणीचा प्रयत्न"
 
 #. TRANSLATORS: we failed to release the current driver
 #: ../contrib/device-rebind/pk-device-rebind.c:365
-#, fuzzy
 msgid "Failed to rebind device"
-msgstr "डिरेक्ट्री बनविण्यास अपयशी:"
+msgstr "साधन पुनःबांधणी करण्यास अपयशी"
 
 #: ../data/packagekit-catalog.xml.in.h:1
 msgid "PackageKit Catalog"
@@ -1288,8 +1303,7 @@ msgid "Authentication is required to accept a EULA"
 msgstr "EULA स्वीकारण्याकरीता ओळख पटवणे आवश्यक आहे"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:9
-msgid ""
-"Authentication is required to cancel a task that was not started by yourself"
+msgid "Authentication is required to cancel a task that was not started by yourself"
 msgstr "तुमच्या द्वारे सुरु न केलेले कार्य रद्द करण्याकरीता ओळख पटवणे आवश्यक आहे"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:10
@@ -1300,8 +1314,7 @@ msgstr "सॉफ्टवेअर स्त्रोत बाब बदलव
 msgid ""
 "Authentication is required to consider a key used for signing packages as "
 "trusted"
-msgstr ""
-"संकुल स्वाक्षरी करीता वापरण्याजोगी कि वर विश्वसा ठेवण्याकरीता ओळख पटवणे आवश्यक आहेन"
+msgstr "संकुल स्वाक्षरी करीता वापरण्याजोगी कि वर विश्वसा ठेवण्याकरीता ओळख पटवणे आवश्यक आहेन"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:12
 msgid "Authentication is required to install a signed package"
@@ -1316,13 +1329,12 @@ msgid "Authentication is required to refresh the system sources"
 msgstr "प्रणाली स्त्रोत पुन्ह दाखल करण्याकरीता ओळख पटवणे आवश्यक आहे"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:15
-#, fuzzy
 msgid "Authentication is required to reload the device with a new driver"
-msgstr "प्रणाली स्त्रोत पुन्ह दाखल करण्याकरीता ओळख पटवणे आवश्यक आहे"
+msgstr "साधनाला नवीन ड्राइव्हरसह पुनःलोड करण्यासाठी ओळख पटवणे आवश्यक आहे"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:16
 msgid "Authentication is required to remove packages"
-msgstr "संकुल काढूण टाकण्याकरीता ओळख पटवणे आवश्यक आहे"
+msgstr "संकुल काढून टाकण्याकरीता ओळख पटवणे आवश्यक आहे"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:17
 msgid "Authentication is required to rollback a transaction"
@@ -1393,7 +1405,7 @@ msgstr "प्रणाली स्त्रोत पुन्ह दाखल
 #.
 #: ../policy/org.freedesktop.packagekit.policy.in.h:58
 msgid "Reload a device"
-msgstr ""
+msgstr "साधन पुनःलोड करा"
 
 #. SECURITY:
 #. - Normal users require admin authentication to remove packages as
@@ -1406,7 +1418,7 @@ msgstr ""
 #.
 #: ../policy/org.freedesktop.packagekit.policy.in.h:68
 msgid "Remove package"
-msgstr "संकुल काढूण टाका"
+msgstr "संकुल काढून टाका"
 
 #. SECURITY:
 #. - Normal users require admin authentication to rollback system state
@@ -1466,8 +1478,7 @@ msgstr "योग्य वापरकर्ता एक्जीक्यूà
 msgid ""
 "The org.freedesktop.PackageKit.conf file is not installed in the system "
 "directory:"
-msgstr ""
-"org.freedesktop.PackageKit.conf फाइल प्रणाली डिरेक्ट्री अंतर्गत प्रतिष्ठापीत नाही:"
+msgstr "org.freedesktop.PackageKit.conf फाइल प्रणाली डिरेक्ट्री अंतर्गत प्रतिष्ठापीत नाही:"
 
 #. TRANSLATORS: a backend is the system package tool, e.g. yum, apt
 #: ../src/pk-main.c:205
@@ -1525,21 +1536,19 @@ msgstr "सॉफ्टवेअरचे स्त्रोत विश्वà
 
 #: ../src/pk-polkit-action-lookup.c:173
 msgid "Do not update this package unless you are sure it is safe to do so."
-msgstr "असे करणे सुरक्षीत आहे याची खात्री असेपर्यंत या संकुलला अद्ययावत करू नका."
+msgstr "सुरक्षेतेची खात्री असल्याशिवाय या संकुलांना सुधारीत करू नका."
 
 #: ../src/pk-polkit-action-lookup.c:174
-#, fuzzy
 msgid "Do not update these packages unless you are sure it is safe to do so."
-msgstr "असे करणे सुरक्षीत आहे याची खात्री असेपर्यंत या संकुलला अद्ययावत करू नका."
+msgstr "सुरक्षेतेची खात्री असल्याशिवाय हे संकुल सुधारीत करू नका."
 
 #: ../src/pk-polkit-action-lookup.c:192
 msgid "Do not install this package unless you are sure it is safe to do so."
-msgstr "असे करणे सुरक्षित आहे याची खात्री असेपर्यंत या संकुलला प्रतिष्ठापीत करू नका."
+msgstr "सुरक्षेतेची खात्री असल्याशिवाय हे संकुल प्रतिष्ठापीत करू नका."
 
 #: ../src/pk-polkit-action-lookup.c:193
-#, fuzzy
 msgid "Do not install these packages unless you are sure it is safe to do so."
-msgstr "असे करणे सुरक्षित आहे याची खात्री असेपर्यंत या संकुलला प्रतिष्ठापीत करू नका."
+msgstr "सुरक्षेतेची खात्री असल्याशिवाय या संकुलांना प्रतिष्ठापीत करू नका."
 
 #. TRANSLATORS: warn the user that all bets are off
 #: ../src/pk-polkit-action-lookup.c:199
@@ -1548,11 +1557,11 @@ msgstr "सदोषीत सॉफ्टवेअर तुमच्या स
 
 #. TRANSLATORS: too many packages to list each one
 #: ../src/pk-polkit-action-lookup.c:274
-#, fuzzy
 msgid "Many packages"
-msgstr "संकुल अद्ययावत करा"
+msgstr "अनेक संकुले"
 
 #. TRANSLATORS: if the transaction is forced to install only trusted packages
 #: ../src/pk-polkit-action-lookup.c:334
 msgid "Only trusted"
 msgstr "फक्त विश्वासर्ह"
+
commit 33498ba1356a2ac8f45d83868d62149506fd24db
Author: igor <igor at fedoraproject.org>
Date:   Sun Aug 30 19:56:07 2009 +0000

    Sending translation for Brazilian Portuguese

diff --git a/po/pt_BR.po b/po/pt_BR.po
index 9b8da22..65dedb3 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -8,8 +8,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-08-24 19:37+0000\n"
-"PO-Revision-Date: 2009-08-24 19:33-0300\n"
+"POT-Creation-Date: 2009-08-30 14:50+0000\n"
+"PO-Revision-Date: 2009-08-30 16:55-0300\n"
 "Last-Translator: Igor Pires Soares <igor at projetofedora.org>\n"
 "Language-Team: Brazilian Portuguese <fedora-trans-pt_br at redhat.com>\n"
 "MIME-Version: 1.0\n"
@@ -36,12 +36,12 @@ msgstr "Concluído"
 
 #. TRANSLATORS: if the repo is enabled
 #: ../client/pk-console.c:239
-#: ../client/pk-console.c:406
+#: ../client/pk-console.c:468
 msgid "True"
 msgstr "Verdadeiro"
 
 #: ../client/pk-console.c:239
-#: ../client/pk-console.c:406
+#: ../client/pk-console.c:468
 msgid "False"
 msgstr "Falso"
 
@@ -91,56 +91,81 @@ msgstr "Pacotes afetados:"
 msgid "Affected packages: None"
 msgstr "Pacotes afetados: nenhum"
 
+#. TRANSLATORS: When processing, we might have to remove other dependencies
+#: ../client/pk-console.c:334
+msgid "The following packages have to be removed:"
+msgstr "Os seguintes pacotes têm que ser removidos:"
+
+#. TRANSLATORS: When processing, we might have to install other dependencies
+#: ../client/pk-console.c:337
+msgid "The following packages have to be installed:"
+msgstr "Os seguintes pacotes têm que ser instalados:"
+
+#. TRANSLATORS: When processing, we might have to update other dependencies
+#: ../client/pk-console.c:340
+msgid "The following packages have to be updated:"
+msgstr "Os seguintes pacotes têm que ser atualizados:"
+
+#. TRANSLATORS: When processing, we might have to reinstall other dependencies
+#: ../client/pk-console.c:343
+msgid "The following packages have to be reinstalled:"
+msgstr "Os seguintes pacotes têm que ser reinstalados:"
+
+#. TRANSLATORS: When processing, we might have to downgrade other dependencies
+#: ../client/pk-console.c:346
+msgid "The following packages have to be downgraded:"
+msgstr "Os seguintes pacotes têm que ser desatualizados:"
+
 #. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:298
+#: ../client/pk-console.c:360
 msgid "Distribution"
 msgstr "Distribuição"
 
 #. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:300
+#: ../client/pk-console.c:362
 msgid "Type"
 msgstr "Tipo"
 
 #. TRANSLATORS: this is any summary text describing the upgrade
 #. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:302
-#: ../client/pk-console.c:325
+#: ../client/pk-console.c:364
+#: ../client/pk-console.c:387
 msgid "Summary"
 msgstr "Sumário"
 
 #. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:314
+#: ../client/pk-console.c:376
 msgid "Category"
 msgstr "Categoria"
 
 #. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:316
+#: ../client/pk-console.c:378
 msgid "ID"
 msgstr "ID"
 
 #. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:319
+#: ../client/pk-console.c:381
 msgid "Parent"
 msgstr "Pai"
 
 #. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:322
+#: ../client/pk-console.c:384
 msgid "Name"
 msgstr "Nome"
 
 #. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:328
+#: ../client/pk-console.c:390
 msgid "Icon"
 msgstr "Ícone"
 
 #. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:343
+#: ../client/pk-console.c:405
 msgid "Details about the update:"
 msgstr "Detalhes sobre a atualização:"
 
 #. TRANSLATORS: details about the update, package name and version
 #. TRANSLATORS: title, the names of the packages that the method is processing
-#: ../client/pk-console.c:345
+#: ../client/pk-console.c:407
 #: ../src/pk-polkit-action-lookup.c:352
 msgid "Package"
 msgid_plural "Packages"
@@ -148,136 +173,139 @@ msgstr[0] "Pacote"
 msgstr[1] "Pacotes"
 
 #. TRANSLATORS: details about the update, any packages that this update updates
-#: ../client/pk-console.c:348
+#: ../client/pk-console.c:410
 msgid "Updates"
 msgstr "Atualiza"
 
 #. TRANSLATORS: details about the update, any packages that this update obsoletes
-#: ../client/pk-console.c:352
+#: ../client/pk-console.c:414
 msgid "Obsoletes"
 msgstr "Obsoletos"
 
 #. TRANSLATORS: details about the update, the vendor URLs
-#: ../client/pk-console.c:356
+#: ../client/pk-console.c:418
 msgid "Vendor"
 msgstr "Fornecedor"
 
 #. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:360
+#: ../client/pk-console.c:422
 msgid "Bugzilla"
 msgstr "Bugzilla"
 
 #. TRANSLATORS: details about the update, the CVE URLs
-#: ../client/pk-console.c:364
+#: ../client/pk-console.c:426
 msgid "CVE"
 msgstr "CVE"
 
 #. TRANSLATORS: details about the update, if the package requires a restart
-#: ../client/pk-console.c:368
+#: ../client/pk-console.c:430
 msgid "Restart"
 msgstr "Reinício"
 
 #. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:372
+#: ../client/pk-console.c:434
 msgid "Update text"
 msgstr "Descrição da atualização"
 
 #. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:376
+#: ../client/pk-console.c:438
 msgid "Changes"
 msgstr "Alterações"
 
 #. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:380
+#: ../client/pk-console.c:442
 msgid "State"
 msgstr "Estado"
 
 #. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:385
+#: ../client/pk-console.c:447
 msgid "Issued"
 msgstr "Emissão"
 
 #. TRANSLATORS: details about the update, date the update was updated
-#: ../client/pk-console.c:390
+#: ../client/pk-console.c:452
 msgid "Updated"
 msgstr "Atualizado em"
 
-#: ../client/pk-console.c:477
-#: ../client/pk-console.c:479
+#: ../client/pk-console.c:539
+#: ../client/pk-console.c:541
 msgid "Percentage"
 msgstr "Porcentagem"
 
-#: ../client/pk-console.c:479
+#: ../client/pk-console.c:541
 msgid "Unknown"
 msgstr "Desconhecido"
 
 #. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:521
+#: ../client/pk-console.c:583
 msgid "System restart required by:"
 msgstr "O reinício do sistema é requerido por:"
 
 #. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:524
+#: ../client/pk-console.c:586
 msgid "Session restart required:"
 msgstr "É necessário reiniciar a sessão:"
 
 #. TRANSLATORS: a package requires the system to be restarted due to a security update
-#: ../client/pk-console.c:527
+#: ../client/pk-console.c:589
 msgid "System restart (security) required by:"
 msgstr "O reinício do sistema (por segurança) é requerido por:"
 
 #. TRANSLATORS: a package requires the session to be restarted due to a security update
-#: ../client/pk-console.c:530
+#: ../client/pk-console.c:592
 msgid "Session restart (security) required:"
 msgstr "É necessário reiniciar a sessão (por segurança):"
 
 #. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:533
+#: ../client/pk-console.c:595
 msgid "Application restart required by:"
 msgstr "O reinício do aplicativo é requerido por:"
 
 #. TRANSLATORS: a package needs to restart their system
-#: ../client/pk-console.c:588
+#: ../client/pk-console.c:650
 msgid "Please restart the computer to complete the update."
 msgstr "Por favor, reinicie o computador para completar a atualização."
 
 #. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:591
+#: ../client/pk-console.c:653
 msgid "Please logout and login to complete the update."
 msgstr "Por favor, encerre a sessão e inicie-a novamente para completar a atualização."
 
 #. TRANSLATORS: a package needs to restart the application
-#: ../client/pk-console.c:594
+#: ../client/pk-console.c:656
 msgid "Please restart the application as it is being used."
 msgstr "Por favor, reinicie o aplicativo que está sendo usado."
 
 #. TRANSLATORS: a package needs to restart their system (due to security)
-#: ../client/pk-console.c:597
+#: ../client/pk-console.c:659
 msgid "Please restart the computer to complete the update as important security updates have been installed."
 msgstr "Por favor, reinicie o computador para completar a atualização pois importantes atualizações de segurança foram instaladas."
 
 #. TRANSLATORS: a package needs to restart the session (due to security)
-#: ../client/pk-console.c:600
+#: ../client/pk-console.c:662
 msgid "Please logout and login to complete the update as important security updates have been installed."
 msgstr "Por favor, encerre a sessão e inicie-a novamente para completar a atualização pois importantes atualizações de segurança foram instaladas."
 
 #. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:727
+#: ../client/pk-console.c:794
 #, c-format
 msgid "The package %s is already installed"
 msgstr "O pacote %s já está instalado"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:735
+#: ../client/pk-console.c:802
 #, c-format
 msgid "The package %s could not be installed: %s"
 msgstr "O pacote %s não pôde ser instalado: %s"
 
 #. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
-#: ../client/pk-console.c:760
-#: ../client/pk-console.c:783
-#: ../client/pk-console.c:933
-#: ../client/pk-console.c:1046
+#: ../client/pk-console.c:828
+#: ../client/pk-console.c:876
+#: ../client/pk-console.c:900
+#: ../client/pk-console.c:948
+#: ../client/pk-console.c:1044
+#: ../client/pk-console.c:1157
+#: ../client/pk-console.c:1218
 #: ../client/pk-tools-common.c:62
 #: ../client/pk-tools-common.c:81
 #: ../client/pk-tools-common.c:89
@@ -285,279 +313,278 @@ msgstr "O pacote %s não pôde ser instalado: %s"
 msgid "Internal error: %s"
 msgstr "Erro interno: %s"
 
+#. TRANSLATORS: We are checking if it's okay to remove a list of packages
+#: ../client/pk-console.c:860
+#: ../client/pk-console.c:932
+#: ../client/pk-console.c:1250
+msgid "Proceed with changes?"
+msgstr "Continuar com as alterações?"
+
+#. TRANSLATORS: There was an error removing the packages. The detailed error follows
+#: ../client/pk-console.c:865
+#: ../client/pk-console.c:937
+msgid "The package install was canceled!"
+msgstr "A instalação do pacote foi cancelada!"
+
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:768
-#: ../client/pk-console.c:1442
+#: ../client/pk-console.c:884
+#: ../client/pk-console.c:1618
 #, c-format
 msgid "This tool could not install the packages: %s"
 msgstr "Esta ferramenta não pôde instalar os pacotes: %s"
 
 #. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:791
+#: ../client/pk-console.c:956
 #, c-format
 msgid "This tool could not install the files: %s"
 msgstr "Esta ferramenta não pôde instalar os arquivos: %s"
 
-#. TRANSLATORS: When processing, we might have to remove other dependencies
-#: ../client/pk-console.c:863
-msgid "The following packages have to be removed:"
-msgstr "Os seguintes pacotes têm que ser removidos:"
-
-#. TRANSLATORS: When processing, we might have to install other dependencies
-#: ../client/pk-console.c:866
-msgid "The following packages have to be installed:"
-msgstr "Os seguintes pacotes têm que ser instalados:"
-
-#. TRANSLATORS: When processing, we might have to update other dependencies
-#: ../client/pk-console.c:869
-msgid "The following packages have to be updated:"
-msgstr "Os seguintes pacotes têm que ser atualizados:"
-
-#. TRANSLATORS: When processing, we might have to reinstall other dependencies
-#: ../client/pk-console.c:872
-msgid "The following packages have to be reinstalled:"
-msgstr "Os seguintes pacotes têm que ser reinstalados:"
-
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:901
+#: ../client/pk-console.c:1012
 #, c-format
 msgid "This tool could not remove %s: %s"
 msgstr "Esta ferramenta não pôde remover %s: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:924
-#: ../client/pk-console.c:962
-#: ../client/pk-console.c:991
+#: ../client/pk-console.c:1035
+#: ../client/pk-console.c:1073
+#: ../client/pk-console.c:1102
 #, c-format
 msgid "This tool could not remove the packages: %s"
 msgstr "Esta ferramente não pôde remover os pacotes: %s"
 
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:977
+#: ../client/pk-console.c:1088
 msgid "Proceed with additional packages?"
 msgstr "Continuar com a remoção dos pacotes adicionais?"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:982
+#: ../client/pk-console.c:1093
 msgid "The package removal was canceled!"
 msgstr "A remoção do pacote foi cancelada!"
 
 #. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:1023
+#: ../client/pk-console.c:1134
 #, c-format
 msgid "This tool could not download the package %s as it could not be found"
 msgstr "Esta ferramenta não pôde baixar o pacote %s, pois ele não foi localizado"
 
 #. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:1054
+#: ../client/pk-console.c:1165
 #, c-format
 msgid "This tool could not download the packages: %s"
 msgstr "Esta ferramenta não pôde baixar os pacotes: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1081
-#: ../client/pk-console.c:1090
+#: ../client/pk-console.c:1197
+#: ../client/pk-console.c:1209
+#: ../client/pk-console.c:1264
 #, c-format
 msgid "This tool could not update %s: %s"
 msgstr "Esta ferramenta não pôde atualizar %s: %s"
 
+#. TRANSLATORS: There was an error removing the packages. The detailed error follows
+#: ../client/pk-console.c:1255
+msgid "The package update was canceled!"
+msgstr "A atualização do pacote foi cancelada!"
+
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1112
-#: ../client/pk-console.c:1120
+#: ../client/pk-console.c:1288
+#: ../client/pk-console.c:1296
 #, c-format
 msgid "This tool could not get the requirements for %s: %s"
 msgstr "Esta ferramenta não pôde obter os requerimentos para %s: %s"
 
 #. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:1142
-#: ../client/pk-console.c:1150
+#: ../client/pk-console.c:1318
+#: ../client/pk-console.c:1326
 #, c-format
 msgid "This tool could not get the dependencies for %s: %s"
 msgstr "Esta ferramenta não pôde obter as dependências para %s: %s"
 
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:1172
-#: ../client/pk-console.c:1180
+#: ../client/pk-console.c:1348
+#: ../client/pk-console.c:1356
 #, c-format
 msgid "This tool could not get package details for %s: %s"
 msgstr "Esta ferramenta não pôde obter os detalhes do pacote para %s: %s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1202
+#: ../client/pk-console.c:1378
 #, c-format
 msgid "This tool could not find the files for %s: %s"
 msgstr "Esta ferramenta não pôde localizar os arquivos para %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1210
+#: ../client/pk-console.c:1386
 #, c-format
 msgid "This tool could not get the file list for %s: %s"
 msgstr "Esta ferramenta não pôde obter a lista de arquivos para %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of packages. The filename follows
-#: ../client/pk-console.c:1232
+#: ../client/pk-console.c:1408
 #, c-format
 msgid "File already exists: %s"
 msgstr "O arquivo já existe: %s"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1237
-#: ../client/pk-console.c:1293
-#: ../client/pk-console.c:1368
+#: ../client/pk-console.c:1413
+#: ../client/pk-console.c:1469
+#: ../client/pk-console.c:1544
 msgid "Getting package list"
 msgstr "Obtendo lista de pacotes"
 
 #. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1243
-#: ../client/pk-console.c:1299
-#: ../client/pk-console.c:1374
+#: ../client/pk-console.c:1419
+#: ../client/pk-console.c:1475
+#: ../client/pk-console.c:1550
 #, c-format
 msgid "This tool could not get package list: %s"
 msgstr "Esta ferramente não pôde obter a lista de pacotes: %s"
 
 #. TRANSLATORS: There was an error saving the list
-#: ../client/pk-console.c:1254
+#: ../client/pk-console.c:1430
 #, c-format
 msgid "Failed to save to disk"
 msgstr "Falha ao salvar no disco"
 
 #. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1288
-#: ../client/pk-console.c:1363
+#: ../client/pk-console.c:1464
+#: ../client/pk-console.c:1539
 #, c-format
 msgid "File does not exist: %s"
 msgstr "O arquivo não existe: %s"
 
 #. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1320
+#: ../client/pk-console.c:1496
 msgid "Packages to add"
 msgstr "Pacotes a serem adicionados"
 
 #. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1328
+#: ../client/pk-console.c:1504
 msgid "Packages to remove"
 msgstr "Pacotes a serem removidos"
 
 #. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1396
+#: ../client/pk-console.c:1572
 #, c-format
 msgid "No new packages need to be installed"
 msgstr "Nenhum pacote novo precisa ser instalado"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1402
+#: ../client/pk-console.c:1578
 msgid "To install"
 msgstr "Instalando"
 
 #. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1414
+#: ../client/pk-console.c:1590
 msgid "Searching for package: "
 msgstr "Pesquisando pelo pacote:"
 
 #. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1418
+#: ../client/pk-console.c:1594
 msgid "not found."
 msgstr "não encontrado."
 
 #. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1429
+#: ../client/pk-console.c:1605
 #, c-format
 msgid "No packages can be found to install"
 msgstr "Nenhum pacote pôde ser localizado para instalação"
 
 #. TRANSLATORS: installing new packages from package list
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
-#: ../client/pk-console.c:1435
+#: ../client/pk-console.c:1611
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:886
 #, c-format
 msgid "Installing packages"
 msgstr "Instalando pacotes"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1471
+#: ../client/pk-console.c:1647
 #, c-format
 msgid "This tool could not find the update details for %s: %s"
 msgstr "Esta ferramenta não pôde localizar os detalhes de atualização para %s: %s"
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1479
+#: ../client/pk-console.c:1655
 #, c-format
 msgid "This tool could not get the update details for %s: %s"
 msgstr "Esta ferramenta não pôde obter os detalhes de atualização para %s: %s"
 
 #. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
-#: ../client/pk-console.c:1510
+#: ../client/pk-console.c:1686
 msgid "Error:"
 msgstr "Erro:"
 
 #. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1524
+#: ../client/pk-console.c:1700
 msgid "Package description"
 msgstr "Descrição do pacote"
 
 #. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
-#: ../client/pk-console.c:1540
+#: ../client/pk-console.c:1716
 msgid "Message:"
 msgstr "Mensagem:"
 
 #. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1568
+#: ../client/pk-console.c:1744
 msgid "Package files"
 msgstr "Arquivos do pacote"
 
 #. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1576
+#: ../client/pk-console.c:1752
 msgid "No files"
 msgstr "Nenhum arquivo"
 
 #. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1599
+#: ../client/pk-console.c:1775
 msgid "Repository signature required"
 msgstr "A assinatura do repositório é necessária"
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1609
+#: ../client/pk-console.c:1785
 msgid "Do you accept this signature?"
 msgstr "Você aceita essa assinatura?"
 
 #. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1613
+#: ../client/pk-console.c:1789
 msgid "The signature was not accepted."
 msgstr "A assinatura não foi aceita."
 
 #. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1647
+#: ../client/pk-console.c:1823
 msgid "End user license agreement required"
 msgstr "É necessário um contrato de licença para o usuário final"
 
 #. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1654
+#: ../client/pk-console.c:1830
 msgid "Do you agree to this license?"
 msgstr "Você concorda com a licença?"
 
 #. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1658
+#: ../client/pk-console.c:1834
 msgid "The license was refused."
 msgstr "A licença foi recusada."
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1687
+#: ../client/pk-console.c:1863
 msgid "The daemon crashed mid-transaction!"
 msgstr "O daemon travou no meio da transação!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1740
+#: ../client/pk-console.c:1916
 msgid "PackageKit Console Interface"
 msgstr "Interface em Console do PackageKit"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1742
+#: ../client/pk-console.c:1918
 msgid "Subcommands:"
 msgstr "Subcomandos:"
 
 #. TRANSLATORS: command line argument, if we should show debugging information
 #. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:1835
+#: ../client/pk-console.c:2011
 #: ../client/pk-generate-pack.c:185
 #: ../client/pk-monitor.c:128
 #: ../contrib/command-not-found/pk-command-not-found.c:616
@@ -568,155 +595,155 @@ msgid "Show extra debugging information"
 msgstr "Mostrar informações extras de depuração"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1838
+#: ../client/pk-console.c:2014
 #: ../client/pk-monitor.c:130
 msgid "Show the program version and exit"
 msgstr "Mostrar a versão do programa e sair"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1841
+#: ../client/pk-console.c:2017
 msgid "Set the filter, e.g. installed"
 msgstr "Definir o filtro, p. ex.: instalados"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1844
+#: ../client/pk-console.c:2020
 msgid "Exit without waiting for actions to complete"
 msgstr "Sair sem esperar pelo término das ações"
 
 #. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:1871
+#: ../client/pk-console.c:2047
 msgid "This tool could not connect to system DBUS."
 msgstr "Esta ferramenta não pôde conectar ao DBUS do sistema."
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1961
+#: ../client/pk-console.c:2137
 msgid "The filter specified was invalid"
 msgstr "O filtro especificado era inválido"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1980
+#: ../client/pk-console.c:2156
 msgid "A search type is required, e.g. name"
 msgstr "Um tipo de pesquisa é requerido, p. ex. nome"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1987
-#: ../client/pk-console.c:1996
-#: ../client/pk-console.c:2005
-#: ../client/pk-console.c:2014
+#: ../client/pk-console.c:2163
+#: ../client/pk-console.c:2172
+#: ../client/pk-console.c:2181
+#: ../client/pk-console.c:2190
 msgid "A search term is required"
 msgstr "Um termo de pesquisa é requerido"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:2021
+#: ../client/pk-console.c:2197
 msgid "Invalid search type"
 msgstr "Tipo de pesquisa inválido"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:2027
+#: ../client/pk-console.c:2203
 msgid "A package name or filename to install is required"
 msgstr "O nome do pacote ou arquivo é requerido"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2036
+#: ../client/pk-console.c:2212
 msgid "A type, key_id and package_id are required"
 msgstr "Um tipo, key_id e package_id são requeridos"
 
 #. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:2045
+#: ../client/pk-console.c:2221
 msgid "A package name to remove is required"
 msgstr "O nome do pacote para remoção é requerido"
 
 #. TRANSLATORS: the user did not specify anything about what to download or where
-#: ../client/pk-console.c:2053
+#: ../client/pk-console.c:2229
 msgid "A destination directory and the package names to download are required"
 msgstr "O diretório de destino e os os nomes dos pacotes a serem baixados são requeridos"
 
 #. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:2060
+#: ../client/pk-console.c:2236
 msgid "Directory not found"
 msgstr "Diretório não encontrado"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2068
+#: ../client/pk-console.c:2244
 msgid "A licence identifier (eula-id) is required"
 msgstr "Um identificador de licença (eula-id) é requerido"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2078
+#: ../client/pk-console.c:2254
 msgid "A transaction identifier (tid) is required"
 msgstr "Um identificador de transação (tid) é requerido"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:2095
+#: ../client/pk-console.c:2271
 msgid "A package name to resolve is required"
 msgstr "O nome de pacote a ser analisado é requerido"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:2104
-#: ../client/pk-console.c:2113
+#: ../client/pk-console.c:2280
+#: ../client/pk-console.c:2289
 msgid "A repository name is required"
 msgstr "O nome do repositório é requerido"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2122
+#: ../client/pk-console.c:2298
 msgid "A repo name, parameter and value are required"
 msgstr "Um nome de repositório, parâmetro e um valor são requeridos"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:2136
+#: ../client/pk-console.c:2312
 msgid "An action, e.g. 'update-system' is required"
 msgstr "Uma ação, p. ex. \"update-system\" é requerida"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:2143
+#: ../client/pk-console.c:2319
 msgid "A correct role is required"
 msgstr "Um modo correto é requerido"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2150
+#: ../client/pk-console.c:2326
 msgid "Failed to get the time since this action was last completed"
 msgstr "Falha ao obter o tempo em que essa ação foi completada pela última vez"
 
 #. TRANSLATORS: The user did not provide a package name
 #. TRANSLATORS: This is when the user fails to supply the package name
-#: ../client/pk-console.c:2160
-#: ../client/pk-console.c:2172
-#: ../client/pk-console.c:2181
-#: ../client/pk-console.c:2199
-#: ../client/pk-console.c:2208
+#: ../client/pk-console.c:2336
+#: ../client/pk-console.c:2348
+#: ../client/pk-console.c:2357
+#: ../client/pk-console.c:2375
+#: ../client/pk-console.c:2384
 #: ../client/pk-generate-pack.c:241
 msgid "A package name is required"
 msgstr "O nome do pacote é requerido"
 
 #. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:2190
+#: ../client/pk-console.c:2366
 msgid "A package provide string is required"
 msgstr "É necessário especificar o que o pacote fornece"
 
 #. TRANSLATORS: The user didn't specify a filename to create as a list
-#: ../client/pk-console.c:2217
+#: ../client/pk-console.c:2393
 msgid "A list file name to create is required"
 msgstr "O nome de arquivo da lista a ser criada é requerido"
 
 #. TRANSLATORS: The user didn't specify a filename to open as a list
-#: ../client/pk-console.c:2227
-#: ../client/pk-console.c:2237
+#: ../client/pk-console.c:2403
+#: ../client/pk-console.c:2413
 msgid "A list file to open is required"
 msgstr "Uma lista de arquivos a serem abertos é requerida"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2291
+#: ../client/pk-console.c:2467
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "A opção \"%s\" não é suportada"
 
 #. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2304
+#: ../client/pk-console.c:2480
 msgid "Incorrect privileges for this operation"
 msgstr "Privilégios incorretos para esta operação"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2307
+#: ../client/pk-console.c:2483
 msgid "Command failed"
 msgstr "O comando falhou"
 
commit 87e243edfc7ae88848e1900b11d0a4aa5ffd60ab
Author: vpv <vpv at fedoraproject.org>
Date:   Sun Aug 30 10:04:24 2009 +0000

    Sending translation for Finnish

diff --git a/po/fi.po b/po/fi.po
index ee33438..07465be 100644
--- a/po/fi.po
+++ b/po/fi.po
@@ -6,8 +6,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: packagekit\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-08-24 11:06+0100\n"
-"PO-Revision-Date: 2009-07-04 21:04+0300\n"
+"POT-Creation-Date: 2009-08-30 02:50+0000\n"
+"PO-Revision-Date: 2009-08-30 13:01+0300\n"
 "Last-Translator: Ville-Pekka Vainio <vpivaini at cs.helsinki.fi>\n"
 "Language-Team: Finnish <laatu at lokalisointi.org>\n"
 "MIME-Version: 1.0\n"
@@ -31,11 +31,11 @@ msgid "Succeeded"
 msgstr "Onnistui"
 
 #. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:239 ../client/pk-console.c:406
+#: ../client/pk-console.c:239 ../client/pk-console.c:468
 msgid "True"
 msgstr "Tosi"
 
-#: ../client/pk-console.c:239 ../client/pk-console.c:406
+#: ../client/pk-console.c:239 ../client/pk-console.c:468
 msgid "False"
 msgstr "Epätosi"
 
@@ -83,454 +83,491 @@ msgstr "Käsiteltävät paketit:"
 msgid "Affected packages: None"
 msgstr "Käsiteltävät paketit: Ei yhtään"
 
+#. TRANSLATORS: When processing, we might have to remove other dependencies
+#: ../client/pk-console.c:334
+msgid "The following packages have to be removed:"
+msgstr "Seuraavat paketit on poistettava:"
+
+#. TRANSLATORS: When processing, we might have to install other dependencies
+#: ../client/pk-console.c:337
+msgid "The following packages have to be installed:"
+msgstr "Seuraavat paketit on asennettava:"
+
+#. TRANSLATORS: When processing, we might have to update other dependencies
+#: ../client/pk-console.c:340
+msgid "The following packages have to be updated:"
+msgstr "Seuraavat paketit on päivitettävä:"
+
+#. TRANSLATORS: When processing, we might have to reinstall other dependencies
+#: ../client/pk-console.c:343
+msgid "The following packages have to be reinstalled:"
+msgstr "Seuraavat paketit on asennettava uudelleen:"
+
+#. TRANSLATORS: When processing, we might have to downgrade other dependencies
+#: ../client/pk-console.c:346
+msgid "The following packages have to be downgraded:"
+msgstr "Seuraavat paketit on vaihdettava vanhempaan versioon:"
+
 #. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:298
+#: ../client/pk-console.c:360
 msgid "Distribution"
 msgstr "Jakeluversio"
 
 #. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:300
+#: ../client/pk-console.c:362
 msgid "Type"
 msgstr "Tyyppi"
 
 #. TRANSLATORS: this is any summary text describing the upgrade
 #. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:302 ../client/pk-console.c:325
+#: ../client/pk-console.c:364 ../client/pk-console.c:387
 msgid "Summary"
 msgstr "Yhteenveto"
 
 #. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:314
+#: ../client/pk-console.c:376
 msgid "Category"
 msgstr "Luokka"
 
 #. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:316
+#: ../client/pk-console.c:378
 msgid "ID"
 msgstr "Tunniste"
 
 #. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:319
+#: ../client/pk-console.c:381
 msgid "Parent"
 msgstr "Pääluokka"
 
 #. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:322
+#: ../client/pk-console.c:384
 msgid "Name"
 msgstr "Nimi"
 
 #. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:328
+#: ../client/pk-console.c:390
 msgid "Icon"
 msgstr "Kuvake"
 
 #. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:343
+#: ../client/pk-console.c:405
 msgid "Details about the update:"
 msgstr "Tietoja päivityksestä:"
 
 #. TRANSLATORS: details about the update, package name and version
 #. TRANSLATORS: title, the names of the packages that the method is processing
-#: ../client/pk-console.c:345 ../src/pk-polkit-action-lookup.c:352
-#, fuzzy
+#: ../client/pk-console.c:407 ../src/pk-polkit-action-lookup.c:352
 msgid "Package"
 msgid_plural "Packages"
 msgstr[0] "Paketti"
-msgstr[1] "Paketti"
+msgstr[1] "Paketit"
 
 #. TRANSLATORS: details about the update, any packages that this update updates
-#: ../client/pk-console.c:348
+#: ../client/pk-console.c:410
 msgid "Updates"
 msgstr "Päivitykset"
 
 #. TRANSLATORS: details about the update, any packages that this update obsoletes
-#: ../client/pk-console.c:352
+#: ../client/pk-console.c:414
 msgid "Obsoletes"
 msgstr "Vanhentaa"
 
 #. TRANSLATORS: details about the update, the vendor URLs
-#: ../client/pk-console.c:356
+#: ../client/pk-console.c:418
 msgid "Vendor"
 msgstr "Toimittaja"
 
 #. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:360
+#: ../client/pk-console.c:422
 msgid "Bugzilla"
 msgstr "Bugzilla"
 
 #. TRANSLATORS: details about the update, the CVE URLs
-#: ../client/pk-console.c:364
+#: ../client/pk-console.c:426
 msgid "CVE"
 msgstr "CVE"
 
 #. TRANSLATORS: details about the update, if the package requires a restart
-#: ../client/pk-console.c:368
+#: ../client/pk-console.c:430
 msgid "Restart"
 msgstr "Uudelleenkäynnistys"
 
 #. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:372
+#: ../client/pk-console.c:434
 msgid "Update text"
 msgstr "Päivityksen kuvaus"
 
 #. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:376
+#: ../client/pk-console.c:438
 msgid "Changes"
 msgstr "Muutokset"
 
 #. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:380
+#: ../client/pk-console.c:442
 msgid "State"
 msgstr "Tila"
 
 #. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:385
+#: ../client/pk-console.c:447
 msgid "Issued"
 msgstr "Julkaistu"
 
 #. TRANSLATORS: details about the update, date the update was updated
-#: ../client/pk-console.c:390
+#: ../client/pk-console.c:452
 msgid "Updated"
 msgstr "Päivitetty"
 
-#: ../client/pk-console.c:477 ../client/pk-console.c:479
+#: ../client/pk-console.c:539 ../client/pk-console.c:541
 msgid "Percentage"
 msgstr "Prosentti"
 
-#: ../client/pk-console.c:479
+#: ../client/pk-console.c:541
 msgid "Unknown"
 msgstr "Tuntematon"
 
 #. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:521
+#: ../client/pk-console.c:583
 msgid "System restart required by:"
 msgstr "Järjestelmän uudelleenkäynnistyksen tarvitsee:"
 
 #. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:524
+#: ../client/pk-console.c:586
 msgid "Session restart required:"
 msgstr "Istunnon uudelleenkäynnistyksen tarvitsee"
 
 #. TRANSLATORS: a package requires the system to be restarted due to a security update
-#: ../client/pk-console.c:527
-#, fuzzy
+#: ../client/pk-console.c:589
 msgid "System restart (security) required by:"
-msgstr "Järjestelmän uudelleenkäynnistyksen tarvitsee:"
+msgstr "Järjestelmän uudelleenkäynnistyksen (turvallisuussyistä) tarvitsee:"
 
 #. TRANSLATORS: a package requires the session to be restarted due to a security update
-#: ../client/pk-console.c:530
-#, fuzzy
+#: ../client/pk-console.c:592
 msgid "Session restart (security) required:"
-msgstr "Istunnon uudelleenkäynnistyksen tarvitsee"
+msgstr "Istunnon uudelleenkäynnistyksen (turvallisuussyistä) tarvitsee:"
 
 #. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:533
+#: ../client/pk-console.c:595
 msgid "Application restart required by:"
 msgstr "Sovelluksen uudelleenkäynnistyksen tarvitsee"
 
 #. TRANSLATORS: a package needs to restart their system
-#: ../client/pk-console.c:588
+#: ../client/pk-console.c:650
 msgid "Please restart the computer to complete the update."
 msgstr "Käynnistä tietokone uudelleen päivityksen viimeistelemiseksi."
 
 #. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:591
+#: ../client/pk-console.c:653
 msgid "Please logout and login to complete the update."
 msgstr "Kirjaudu ulos ja takaisin sisään päivityksen viimeistelemiseksi."
 
 #. TRANSLATORS: a package needs to restart the application
-#: ../client/pk-console.c:594
+#: ../client/pk-console.c:656
 msgid "Please restart the application as it is being used."
 msgstr "Ohjelmaa käytetään tällä hetkellä, käynnistä se uudelleen."
 
 #. TRANSLATORS: a package needs to restart their system (due to security)
-#: ../client/pk-console.c:597
-#, fuzzy
+#: ../client/pk-console.c:659
 msgid ""
 "Please restart the computer to complete the update as important security "
 "updates have been installed."
-msgstr "Käynnistä tietokone uudelleen päivityksen viimeistelemiseksi."
+msgstr ""
+"Käynnistä tietokone uudelleen päivityksen viimeistelemiseksi, tärkeitä "
+"turvallisuuspäivityksiä on asennettu."
 
 #. TRANSLATORS: a package needs to restart the session (due to security)
-#: ../client/pk-console.c:600
-#, fuzzy
+#: ../client/pk-console.c:662
 msgid ""
 "Please logout and login to complete the update as important security updates "
 "have been installed."
-msgstr "Kirjaudu ulos ja takaisin sisään päivityksen viimeistelemiseksi."
+msgstr ""
+"Kirjaudu ulos ja takaisin sisään päivityksen viimeistelemiseksi, tärkeitä "
+"turvallisuuspäivityksiä on asennettu."
 
 #. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:727
+#: ../client/pk-console.c:794
 #, c-format
 msgid "The package %s is already installed"
 msgstr "Paketti %s on jo asennettu"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:735
+#: ../client/pk-console.c:802
 #, c-format
 msgid "The package %s could not be installed: %s"
 msgstr "Pakettia %s ei voitu asentaa: %s"
 
 #. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
-#: ../client/pk-console.c:760 ../client/pk-console.c:783
-#: ../client/pk-console.c:879 ../client/pk-console.c:996
-#: ../client/pk-tools-common.c:62 ../client/pk-tools-common.c:81
-#: ../client/pk-tools-common.c:89
+#: ../client/pk-console.c:828 ../client/pk-console.c:876
+#: ../client/pk-console.c:900 ../client/pk-console.c:948
+#: ../client/pk-console.c:1044 ../client/pk-console.c:1157
+#: ../client/pk-console.c:1218 ../client/pk-tools-common.c:62
+#: ../client/pk-tools-common.c:81 ../client/pk-tools-common.c:89
 #, c-format
 msgid "Internal error: %s"
 msgstr "Sisäinen virhe: %s"
 
+#. TRANSLATORS: We are checking if it's okay to remove a list of packages
+#: ../client/pk-console.c:860 ../client/pk-console.c:932
+#: ../client/pk-console.c:1250
+msgid "Proceed with changes?"
+msgstr "Tehdäänkö muutokset?"
+
+#. TRANSLATORS: There was an error removing the packages. The detailed error follows
+#: ../client/pk-console.c:865 ../client/pk-console.c:937
+msgid "The package install was canceled!"
+msgstr "Pakettien asennus peruttiin!"
+
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:768 ../client/pk-console.c:1392
+#: ../client/pk-console.c:884 ../client/pk-console.c:1618
 #, c-format
 msgid "This tool could not install the packages: %s"
 msgstr "Tämä työkalu ei voinut asentaa paketteja: %s"
 
 #. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:791
+#: ../client/pk-console.c:956
 #, c-format
 msgid "This tool could not install the files: %s"
 msgstr "Tämä työkalu ei voinut asentaa tiedostoja: %s"
 
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:847
+#: ../client/pk-console.c:1012
 #, c-format
 msgid "This tool could not remove %s: %s"
 msgstr "Tämä työkalu ei voinut poistaa pakettia %s: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:870 ../client/pk-console.c:908
-#: ../client/pk-console.c:941
+#: ../client/pk-console.c:1035 ../client/pk-console.c:1073
+#: ../client/pk-console.c:1102
 #, c-format
 msgid "This tool could not remove the packages: %s"
 msgstr "Tämä työkalu ei voinut poistaa paketteja: %s"
 
-#. TRANSLATORS: When removing, we might have to remove other dependencies
-#: ../client/pk-console.c:920
-msgid "The following packages have to be removed:"
-msgstr "Seuraavat paketit on poistettava:"
-
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:927
-msgid "Proceed removing additional packages?"
+#: ../client/pk-console.c:1088
+msgid "Proceed with additional packages?"
 msgstr "Poistetaanko lisäpaketteja?"
 
-#. TRANSLATORS: We did not remove any packages
-#: ../client/pk-console.c:932
+#. TRANSLATORS: There was an error removing the packages. The detailed error follows
+#: ../client/pk-console.c:1093
 msgid "The package removal was canceled!"
-msgstr "Pakettien poisto peruutettiin!"
+msgstr "Pakettien poisto peruttiin!"
 
 #. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:973
+#: ../client/pk-console.c:1134
 #, c-format
 msgid "This tool could not download the package %s as it could not be found"
 msgstr "Ladattavaksi pyydettyä pakettia %s ei löytynyt"
 
 #. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:1004
+#: ../client/pk-console.c:1165
 #, c-format
 msgid "This tool could not download the packages: %s"
 msgstr "Tämä työkalu ei voinut ladata paketteja: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1031 ../client/pk-console.c:1040
+#: ../client/pk-console.c:1197 ../client/pk-console.c:1209
+#: ../client/pk-console.c:1264
 #, c-format
 msgid "This tool could not update %s: %s"
 msgstr "Tämä työkalu ei voinut päivittää pakettia %s: %s"
 
+#. TRANSLATORS: There was an error removing the packages. The detailed error follows
+#: ../client/pk-console.c:1255
+msgid "The package update was canceled!"
+msgstr "Pakettien päivitys peruttiin!"
+
 # TODO: tarkista
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1062 ../client/pk-console.c:1070
+#: ../client/pk-console.c:1288 ../client/pk-console.c:1296
 #, c-format
 msgid "This tool could not get the requirements for %s: %s"
 msgstr "Tämä työkalu ei voinut hakea vaatijoita paketille %s: %s"
 
 # TODO: tarkista
 #. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:1092 ../client/pk-console.c:1100
+#: ../client/pk-console.c:1318 ../client/pk-console.c:1326
 #, c-format
 msgid "This tool could not get the dependencies for %s: %s"
 msgstr "Tämä työkalu ei voinut hakea riippuvuuksia paketille %s: %s"
 
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:1122 ../client/pk-console.c:1130
+#: ../client/pk-console.c:1348 ../client/pk-console.c:1356
 #, c-format
 msgid "This tool could not get package details for %s: %s"
 msgstr "Tämä työkalu ei voinut hakea tietoja paketista %s: %s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1152
+#: ../client/pk-console.c:1378
 #, c-format
 msgid "This tool could not find the files for %s: %s"
 msgstr "Tämä työkalu ei löytänyt paketin %s tiedostoja: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1160
+#: ../client/pk-console.c:1386
 #, c-format
 msgid "This tool could not get the file list for %s: %s"
 msgstr "Tämä työkalu ei voinut hakea paketin %s tiedostoluetteloa: %s"
 
 #. TRANSLATORS: There was an error getting the list of packages. The filename follows
-#: ../client/pk-console.c:1182
+#: ../client/pk-console.c:1408
 #, c-format
 msgid "File already exists: %s"
 msgstr "Tiedosto on jo olemassa: %s"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1187 ../client/pk-console.c:1243
-#: ../client/pk-console.c:1318
+#: ../client/pk-console.c:1413 ../client/pk-console.c:1469
+#: ../client/pk-console.c:1544
 msgid "Getting package list"
 msgstr "Haetaan pakettiluetteloa"
 
 #. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1193 ../client/pk-console.c:1249
-#: ../client/pk-console.c:1324
+#: ../client/pk-console.c:1419 ../client/pk-console.c:1475
+#: ../client/pk-console.c:1550
 #, c-format
 msgid "This tool could not get package list: %s"
 msgstr "Tämä työkalu ei voinut hakea pakettiluetteloa: %s"
 
 #. TRANSLATORS: There was an error saving the list
-#: ../client/pk-console.c:1204
+#: ../client/pk-console.c:1430
 #, c-format
 msgid "Failed to save to disk"
 msgstr "Tallennus epäonnistui"
 
 #. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1238 ../client/pk-console.c:1313
+#: ../client/pk-console.c:1464 ../client/pk-console.c:1539
 #, c-format
 msgid "File does not exist: %s"
 msgstr "Tiedostoa ei ole olemassa: %s"
 
 #. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1270
+#: ../client/pk-console.c:1496
 msgid "Packages to add"
 msgstr "Lisättävät paketit"
 
 #. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1278
+#: ../client/pk-console.c:1504
 msgid "Packages to remove"
 msgstr "Poistettavat paketit"
 
 #. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1346
+#: ../client/pk-console.c:1572
 #, c-format
 msgid "No new packages need to be installed"
 msgstr "Yhtään uutta pakettia ei tarvitse asentaa"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1352
+#: ../client/pk-console.c:1578
 msgid "To install"
 msgstr "Asennetaan"
 
 #. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1364
+#: ../client/pk-console.c:1590
 msgid "Searching for package: "
 msgstr "Etsitään pakettia: "
 
 #. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1368
+#: ../client/pk-console.c:1594
 msgid "not found."
 msgstr "ei löytynyt."
 
 #. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1379
+#: ../client/pk-console.c:1605
 #, c-format
 msgid "No packages can be found to install"
 msgstr "Asennettavia paketteja ei löytynyt"
 
 #. TRANSLATORS: installing new packages from package list
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
-#: ../client/pk-console.c:1385
+#: ../client/pk-console.c:1611
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:886
 #, c-format
 msgid "Installing packages"
 msgstr "Asennetaan paketteja"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1421
+#: ../client/pk-console.c:1647
 #, c-format
 msgid "This tool could not find the update details for %s: %s"
 msgstr "Tämä työkalu ei löytänyt paketin %s päivitystietoja: %s"
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1429
+#: ../client/pk-console.c:1655
 #, c-format
 msgid "This tool could not get the update details for %s: %s"
 msgstr "Tämä työkalu ei voinut hakea paketin %s päivitystietoja: %s"
 
 #. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
-#: ../client/pk-console.c:1460
+#: ../client/pk-console.c:1686
 msgid "Error:"
 msgstr "Virhe:"
 
 #. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1474
+#: ../client/pk-console.c:1700
 msgid "Package description"
 msgstr "Paketin kuvaus"
 
 #. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
-#: ../client/pk-console.c:1490
+#: ../client/pk-console.c:1716
 msgid "Message:"
 msgstr "Viesti:"
 
 #. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1518
+#: ../client/pk-console.c:1744
 msgid "Package files"
 msgstr "Paketin tiedostot"
 
 #. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1526
+#: ../client/pk-console.c:1752
 msgid "No files"
 msgstr "Ei tiedostoja"
 
 #. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1549
+#: ../client/pk-console.c:1775
 msgid "Repository signature required"
 msgstr "Asennuslähteen allekirjoitus vaaditaan"
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1559
+#: ../client/pk-console.c:1785
 msgid "Do you accept this signature?"
 msgstr "Hyväksytkö tämän allekirjoituksen?"
 
 #. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1563
+#: ../client/pk-console.c:1789
 msgid "The signature was not accepted."
 msgstr "Allekirjoitusta ei hyväksytty."
 
 #. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1597
+#: ../client/pk-console.c:1823
 msgid "End user license agreement required"
 msgstr "Käyttöoikeussopimus vaaditaan"
 
 #. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1604
+#: ../client/pk-console.c:1830
 msgid "Do you agree to this license?"
 msgstr "Hyväksytkö tämän käyttöoikeussopimuksen?"
 
 #. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1608
+#: ../client/pk-console.c:1834
 msgid "The license was refused."
 msgstr "Käyttöoikeussopimusta ei hyväksytty"
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1637
+#: ../client/pk-console.c:1863
 msgid "The daemon crashed mid-transaction!"
 msgstr "Taustaprosessi kaatui kesken toimenpiteen"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1690
+#: ../client/pk-console.c:1916
 msgid "PackageKit Console Interface"
 msgstr "PackageKitin konsolikäyttöliittymä"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1692
+#: ../client/pk-console.c:1918
 msgid "Subcommands:"
 msgstr "Alikomennot:"
 
 #. TRANSLATORS: command line argument, if we should show debugging information
 #. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:1785 ../client/pk-generate-pack.c:185
+#: ../client/pk-console.c:2011 ../client/pk-generate-pack.c:185
 #: ../client/pk-monitor.c:128
 #: ../contrib/command-not-found/pk-command-not-found.c:616
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:550
@@ -539,148 +576,147 @@ msgid "Show extra debugging information"
 msgstr "Näytä ylimääräisiä virheenjäljitystietoja"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1788 ../client/pk-monitor.c:130
+#: ../client/pk-console.c:2014 ../client/pk-monitor.c:130
 msgid "Show the program version and exit"
 msgstr "Näytä ohjelman versio ja lopeta"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1791
+#: ../client/pk-console.c:2017
 msgid "Set the filter, e.g. installed"
 msgstr "Aseta suodin, esim. asennettu"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1794
+#: ../client/pk-console.c:2020
 msgid "Exit without waiting for actions to complete"
 msgstr "Lopeta odottamatta toimintojen valmistumista"
 
 #. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:1821
+#: ../client/pk-console.c:2047
 msgid "This tool could not connect to system DBUS."
 msgstr "Tämä työkalu ei voinut yhdistää järjestelmän DBUSiin."
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1911
+#: ../client/pk-console.c:2137
 msgid "The filter specified was invalid"
 msgstr "Annettu suodin oli virheellinen"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1930
+#: ../client/pk-console.c:2156
 msgid "A search type is required, e.g. name"
 msgstr "Haun tyyppi tarvitaan, esim. nimi"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1937 ../client/pk-console.c:1946
-#: ../client/pk-console.c:1955 ../client/pk-console.c:1964
+#: ../client/pk-console.c:2163 ../client/pk-console.c:2172
+#: ../client/pk-console.c:2181 ../client/pk-console.c:2190
 msgid "A search term is required"
 msgstr "Hakutermi on annettava"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1971
+#: ../client/pk-console.c:2197
 msgid "Invalid search type"
 msgstr "Virheellinen haun tyyppi"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1977
+#: ../client/pk-console.c:2203
 msgid "A package name or filename to install is required"
 msgstr "Paketin nimi tai asennettavan tiedoston nimi on annettava"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1986
+#: ../client/pk-console.c:2212
 msgid "A type, key_id and package_id are required"
 msgstr "Tyyppi, key_id ja package_id on annettava"
 
 #. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:1995
+#: ../client/pk-console.c:2221
 msgid "A package name to remove is required"
 msgstr "Poistettavan paketin nimi on annettava"
 
 #. TRANSLATORS: the user did not specify anything about what to download or where
-#: ../client/pk-console.c:2003
-#, fuzzy
+#: ../client/pk-console.c:2229
 msgid "A destination directory and the package names to download are required"
 msgstr "Kohdehakemisto ja ladattavien pakettien nimet paketit on annettava"
 
 #. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:2010
+#: ../client/pk-console.c:2236
 msgid "Directory not found"
 msgstr "Hakemistoa ei löytynyt"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2018
+#: ../client/pk-console.c:2244
 msgid "A licence identifier (eula-id) is required"
 msgstr "Lisenssin tunniste (eula-id) on annettava"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2028
+#: ../client/pk-console.c:2254
 msgid "A transaction identifier (tid) is required"
 msgstr "Transaktion tunniste (tid) on annettava"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:2045
+#: ../client/pk-console.c:2271
 msgid "A package name to resolve is required"
 msgstr "Ratkaistavan paketin nimi on annettava"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:2054 ../client/pk-console.c:2063
+#: ../client/pk-console.c:2280 ../client/pk-console.c:2289
 msgid "A repository name is required"
 msgstr "Asennuslähteen nimi on annettava"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2072
+#: ../client/pk-console.c:2298
 msgid "A repo name, parameter and value are required"
 msgstr "Asennuslähteen nimi, parametri ja arvo on annettava"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:2086
+#: ../client/pk-console.c:2312
 msgid "An action, e.g. 'update-system' is required"
 msgstr "Toiminto, esim. ”update-system” on annettava"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:2093
+#: ../client/pk-console.c:2319
 msgid "A correct role is required"
 msgstr "Sopiva rooli on annettava"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2100
+#: ../client/pk-console.c:2326
 msgid "Failed to get the time since this action was last completed"
 msgstr "Tämän toiminnon edellisen suorittamisen aikaa ei saatu"
 
 #. TRANSLATORS: The user did not provide a package name
 #. TRANSLATORS: This is when the user fails to supply the package name
-#: ../client/pk-console.c:2110 ../client/pk-console.c:2122
-#: ../client/pk-console.c:2131 ../client/pk-console.c:2149
-#: ../client/pk-console.c:2158 ../client/pk-generate-pack.c:241
+#: ../client/pk-console.c:2336 ../client/pk-console.c:2348
+#: ../client/pk-console.c:2357 ../client/pk-console.c:2375
+#: ../client/pk-console.c:2384 ../client/pk-generate-pack.c:241
 msgid "A package name is required"
 msgstr "Paketin nimi on annettava"
 
 #. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:2140
+#: ../client/pk-console.c:2366
 msgid "A package provide string is required"
 msgstr "Paketin tarjoaja-merkkijono on annettava"
 
 #. TRANSLATORS: The user didn't specify a filename to create as a list
-#: ../client/pk-console.c:2167
+#: ../client/pk-console.c:2393
 msgid "A list file name to create is required"
 msgstr "Luotavan luettelotiedoston nimi on annetta"
 
 #. TRANSLATORS: The user didn't specify a filename to open as a list
-#: ../client/pk-console.c:2177 ../client/pk-console.c:2187
+#: ../client/pk-console.c:2403 ../client/pk-console.c:2413
 msgid "A list file to open is required"
 msgstr "Avattavan luettelotiedoston nimi on annettava"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2241
+#: ../client/pk-console.c:2467
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "Valitsinta ”%s” ei tueta"
 
 #. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2254
+#: ../client/pk-console.c:2480
 msgid "Incorrect privileges for this operation"
 msgstr "Sinulla ei ole tähän toimintoon tarvittavia oikeuksia"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2257
+#: ../client/pk-console.c:2483
 msgid "Command failed"
 msgstr "Komento epäonnistui"
 
@@ -813,7 +849,7 @@ msgstr "PackageKit-tarkkailija"
 
 #: ../client/pk-monitor.c:183
 msgid "Cannot show the list of transactions"
-msgstr ""
+msgstr "Transaktioluetteloa ei voida näyttää"
 
 #. TRANSLATORS: The package was not found in any software sources
 #: ../client/pk-tools-common.c:118
@@ -893,24 +929,22 @@ msgstr "Asennetaan..."
 #. TRANSLATORS: downloading repo data so we can search
 #: ../contrib/command-not-found/pk-command-not-found.c:349
 msgid "Downloading details about the software sources."
-msgstr ""
+msgstr "Ladataan tietoja ohjelmistolähteistä."
 
 #. TRANSLATORS: downloading file lists so we can search
 #: ../contrib/command-not-found/pk-command-not-found.c:353
 msgid "Downloading filelists (this may take some time to complete)."
-msgstr ""
+msgstr "Ladataan tiedostoluetteloja (tämä voi viedä jonkin aikaa)."
 
 #. TRANSLATORS: waiting for native lock
 #: ../contrib/command-not-found/pk-command-not-found.c:357
-#, fuzzy
 msgid "Waiting for package manager lock."
-msgstr "Etsitään paketin nimeä."
+msgstr "Odotetaan paketinhallinnan lukkoa."
 
 #. TRANSLATORS: loading package cache so we can search
 #: ../contrib/command-not-found/pk-command-not-found.c:361
-#, fuzzy
 msgid "Loading list of packages."
-msgstr "Ladataan paketteja"
+msgstr "Ladataan pakettiluetteloja."
 
 #. TRANSLATORS: we failed to find the package, this shouldn't happen
 #: ../contrib/command-not-found/pk-command-not-found.c:420
@@ -1168,101 +1202,89 @@ msgstr "Poistettiin käytöstä %i virheenjäljityslähdettä."
 
 #. TRANSLATORS: couldn't open device to write
 #: ../contrib/device-rebind/pk-device-rebind.c:61
-#, fuzzy
 msgid "Failed to open file"
-msgstr "Tiedoston etsiminen epäonnistui"
+msgstr "Tiedoston avaaminen epäonnistui"
 
 #. TRANSLATORS: could not write to the device
 #: ../contrib/device-rebind/pk-device-rebind.c:70
-#, fuzzy
 msgid "Failed to write to the file"
-msgstr "Tiedoston etsiminen epäonnistui"
+msgstr "Tiedostoon kirjoittaminen epäonnistui"
 
 #. TRANSLATORS: we failed to release the current driver
 #: ../contrib/device-rebind/pk-device-rebind.c:110
 #: ../contrib/device-rebind/pk-device-rebind.c:147
-#, fuzzy
 msgid "Failed to write to device"
-msgstr "Tallennus epäonnistui"
+msgstr "Laitteelle kirjoittaminen epäonnistui"
 
 #. TRANSLATORS: the device could not be found in sysfs
 #: ../contrib/device-rebind/pk-device-rebind.c:175
-#, fuzzy
 msgid "Device could not be found"
-msgstr "Pakettia ei löytynyt"
+msgstr "Laitetta ei löytynyt"
 
 #. TRANSLATORS: we failed to release the current driver
 #: ../contrib/device-rebind/pk-device-rebind.c:202
-#, fuzzy
 msgid "Failed to unregister driver"
-msgstr "Hakemiston luominen epäonnistui:"
+msgstr "Ajurin poistaminen käytöstä epäonnistui"
 
 #. TRANSLATORS: we failed to bind the old driver
 #: ../contrib/device-rebind/pk-device-rebind.c:211
-#, fuzzy
 msgid "Failed to register driver"
-msgstr "Hakemiston luominen epäonnistui:"
+msgstr "Ajurin rekisteröinti epäonnistui"
 
 #. TRANSLATORS: user did not specify a device sysfs path that exists
 #: ../contrib/device-rebind/pk-device-rebind.c:260
-#, fuzzy
 msgid "Device path not found"
-msgstr "Hakemistoa ei löytynyt"
+msgstr "Laitteen polkua ei löytynyt"
 
 #. TRANSLATORS: user did not specify a valid device sysfs path
 #: ../contrib/device-rebind/pk-device-rebind.c:268
 msgid "Incorrect device path specified"
-msgstr ""
+msgstr "Annettiin virheellinen polku laitteelle"
 
 #. command line argument, simulate what would be done, but don't actually do it
 #: ../contrib/device-rebind/pk-device-rebind.c:296
-#, fuzzy
 msgid "Don't actually touch the hardware, only simulate what would be done"
-msgstr "Älä oikeasti asenna paketteja, simuloi asennus"
+msgstr "Älä oikeasti käsittele laitetta, simuloi mitä tehtäisiin"
 
 #. TRANSLATORS: command line option: a list of files to install
 #: ../contrib/device-rebind/pk-device-rebind.c:299
 msgid "Device paths"
-msgstr ""
+msgstr "Laitepolut"
 
 #. TRANSLATORS: tool that gets called when the device needs reloading after installing firmware
 #: ../contrib/device-rebind/pk-device-rebind.c:314
-#, fuzzy
 msgid "PackageKit Device Reloader"
-msgstr "PackageKit-huoltopakkaus"
+msgstr "PackageKitin ajureiden uudelleenlataaja"
 
 #. TRANSLATORS: user did not specify a valid device sysfs path
 #: ../contrib/device-rebind/pk-device-rebind.c:322
-#, fuzzy
 msgid "You need to specify at least one valid device path"
-msgstr "Anna luotavan luettelotiedoston nimi"
+msgstr "Vähintään yksi kelvollinen laitepolku on annettava"
 
 #. TRANSLATORS: user did not specify a valid device sysfs path
 #: ../contrib/device-rebind/pk-device-rebind.c:332
 msgid "This script can only be used by the root user"
-msgstr ""
+msgstr "Vain pääkäyttäjä voi käyttää tätä komentoa"
 
 #. TRANSLATORS: we're going to verify the path first
 #: ../contrib/device-rebind/pk-device-rebind.c:341
 msgid "Verifying device path"
-msgstr ""
+msgstr "Tarkistetaan laitepolku"
 
 #. TRANSLATORS: user did not specify a device sysfs path that exists
 #: ../contrib/device-rebind/pk-device-rebind.c:346
-#, fuzzy
 msgid "Failed to verify device path"
-msgstr "Tiedoston etsiminen epäonnistui"
+msgstr "Laitepolun tarkistus epäonnistui"
 
 #. TRANSLATORS: we're going to try
 #: ../contrib/device-rebind/pk-device-rebind.c:360
 msgid "Attempting to rebind device"
-msgstr ""
+msgstr "Yritetään liittää laitetta uudelleen"
 
 #. TRANSLATORS: we failed to release the current driver
 #: ../contrib/device-rebind/pk-device-rebind.c:365
-#, fuzzy
 msgid "Failed to rebind device"
-msgstr "Hakemiston luominen epäonnistui:"
+msgstr "Laitteen liittäminen uudelleen epäonnistui"
 
 #: ../data/packagekit-catalog.xml.in.h:1
 msgid "PackageKit Catalog"
@@ -1294,7 +1316,7 @@ msgstr "Käyttöoikeussopimuksen hyväksyminen vaatii tunnistautumisen"
 msgid ""
 "Authentication is required to cancel a task that was not started by yourself"
 msgstr ""
-"Tunnistautuminen vaaditaan, jotta voit peruuttaa tehtävän, jota et aloittanut"
+"Tunnistautuminen vaaditaan, jotta voit perua tehtävän, jota et aloittanut"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:10
 msgid "Authentication is required to change software source parameters"
@@ -1322,9 +1344,8 @@ msgid "Authentication is required to refresh the system sources"
 msgstr "Järjestelmälähteiden virkistäminen vaatii tunnistautumisen"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:15
-#, fuzzy
 msgid "Authentication is required to reload the device with a new driver"
-msgstr "Järjestelmälähteiden virkistäminen vaatii tunnistautumisen"
+msgstr "Laitteen liittäminen uudelleen uudella ajurilla vaatii tunnistautumisen"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:16
 msgid "Authentication is required to remove packages"
@@ -1353,7 +1374,7 @@ msgstr "Pakettien päivittäminen vaatii tunnistautumisen"
 #.
 #: ../policy/org.freedesktop.packagekit.policy.in.h:25
 msgid "Cancel foreign task"
-msgstr "Peruuta tuntematon tehtävä"
+msgstr "Peru tuntematon tehtävä"
 
 #. SECURITY:
 #. - Normal users require admin authentication to enable or disable
@@ -1401,7 +1422,7 @@ msgstr "Virkistä järjestelmälähteet"
 #.
 #: ../policy/org.freedesktop.packagekit.policy.in.h:58
 msgid "Reload a device"
-msgstr ""
+msgstr "Lataa laite uudelleen"
 
 #. SECURITY:
 #. - Normal users require admin authentication to remove packages as
@@ -1539,18 +1560,16 @@ msgid "Do not update this package unless you are sure it is safe to do so."
 msgstr "Älä päivitä tätä pakettia ellet ole varma, että se on turvallista."
 
 #: ../src/pk-polkit-action-lookup.c:174
-#, fuzzy
 msgid "Do not update these packages unless you are sure it is safe to do so."
-msgstr "Älä päivitä tätä pakettia ellet ole varma, että se on turvallista."
+msgstr "Älä päivitä näitä paketteja ellet ole varma, että se on turvallista."
 
 #: ../src/pk-polkit-action-lookup.c:192
 msgid "Do not install this package unless you are sure it is safe to do so."
 msgstr "Älä asenna tätä pakettia ellet ole varma, että se on turvallista."
 
 #: ../src/pk-polkit-action-lookup.c:193
-#, fuzzy
 msgid "Do not install these packages unless you are sure it is safe to do so."
-msgstr "Älä asenna tätä pakettia ellet ole varma, että se on turvallista."
+msgstr "Älä asenna näitä paketteja ellet ole varma, että se on turvallista."
 
 #. TRANSLATORS: warn the user that all bets are off
 #: ../src/pk-polkit-action-lookup.c:199
@@ -1560,9 +1579,8 @@ msgstr ""
 
 #. TRANSLATORS: too many packages to list each one
 #: ../src/pk-polkit-action-lookup.c:274
-#, fuzzy
 msgid "Many packages"
-msgstr "Päivitä paketteja"
+msgstr "Useita paketteja"
 
 #. TRANSLATORS: if the transaction is forced to install only trusted packages
 #: ../src/pk-polkit-action-lookup.c:334
commit 5088263c975c0a2131dfa6af094bdf6c06204cf6
Author: Christopher Aillon <caillon at redhat.com>
Date:   Sat Aug 29 12:00:01 2009 -0700

    Use correct configure test for newer polkit
    
    s/polkit-action/pkaction/

diff --git a/configure.ac b/configure.ac
index a138016..1b2e180 100644
--- a/configure.ac
+++ b/configure.ac
@@ -610,7 +610,7 @@ AC_ARG_WITH([security_framework],
 			   [Default security framework to use polkit,dummy]))
 # try and guess this if nothing is listed
 if test x$with_security_framework = x; then
-	if test -f /usr/bin/polkit-action ; then
+	if test -f /usr/bin/pkaction ; then
 		with_security_framework=polkit
 	else
 		AC_MSG_ERROR([--with-security-framework explicitly required when not using PolicyKit or RBAC])
commit 6580ed99f1add54aed5e3d22d76c45651a846a5c
Author: raven <raven at fedoraproject.org>
Date:   Sat Aug 29 22:39:44 2009 +0000

    Sending translation for po/LINGUAS

diff --git a/po/LINGUAS b/po/LINGUAS
index 103f148..bb11e8f 100644
--- a/po/LINGUAS
+++ b/po/LINGUAS
@@ -16,7 +16,6 @@ hi
 hu
 it
 kn
-ko
 ml
 mr
 ms
@@ -25,13 +24,13 @@ nl
 or
 pa
 pl
-pt_BR
 pt
+pt_BR
 ro
 ru
 sk
-sr at latin
 sr
+sr at latin
 sv
 ta
 te
commit 04279aa755876d88d8cc873a57fd8e1ebce28a20
Author: raven <raven at fedoraproject.org>
Date:   Sat Aug 29 10:13:46 2009 +0000

    Sending translation for Polish

diff --git a/po/pl.po b/po/pl.po
index 3a6c159..8d1d0c2 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -5,8 +5,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: pl\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-08-25 08:29+0000\n"
-"PO-Revision-Date: 2009-08-25 16:24+0200\n"
+"POT-Creation-Date: 2009-08-29 08:34+0000\n"
+"PO-Revision-Date: 2009-08-29 12:10+0200\n"
 "Last-Translator: Piotr DrÄ…g <piotrdrag at gmail.com>\n"
 "Language-Team: Polish <pl at li.org>\n"
 "MIME-Version: 1.0\n"
@@ -31,11 +31,11 @@ msgid "Succeeded"
 msgstr "Powodzenie"
 
 #. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:239 ../client/pk-console.c:461
+#: ../client/pk-console.c:239 ../client/pk-console.c:468
 msgid "True"
 msgstr "Prawda"
 
-#: ../client/pk-console.c:239 ../client/pk-console.c:461
+#: ../client/pk-console.c:239 ../client/pk-console.c:468
 msgid "False"
 msgstr "Fałsz"
 
@@ -84,74 +84,79 @@ msgid "Affected packages: None"
 msgstr "Dotyczy pakietów: żadnych"
 
 #. TRANSLATORS: When processing, we might have to remove other dependencies
-#: ../client/pk-console.c:330
+#: ../client/pk-console.c:334
 msgid "The following packages have to be removed:"
 msgstr "Następujące pakiety muszą zostać usunięte:"
 
 #. TRANSLATORS: When processing, we might have to install other dependencies
-#: ../client/pk-console.c:333
+#: ../client/pk-console.c:337
 msgid "The following packages have to be installed:"
 msgstr "Następujące pakiety muszą zostać zainstalowane:"
 
 #. TRANSLATORS: When processing, we might have to update other dependencies
-#: ../client/pk-console.c:336
+#: ../client/pk-console.c:340
 msgid "The following packages have to be updated:"
 msgstr "Następujące pakiety muszą zostać zaktualizowane:"
 
 #. TRANSLATORS: When processing, we might have to reinstall other dependencies
-#: ../client/pk-console.c:339
+#: ../client/pk-console.c:343
 msgid "The following packages have to be reinstalled:"
 msgstr "Następujące pakiety muszą zostać ponownie zainstalowane:"
 
+#. TRANSLATORS: When processing, we might have to downgrade other dependencies
+#: ../client/pk-console.c:346
+msgid "The following packages have to be downgraded:"
+msgstr "Następujące pakiety muszą zostać zainstalowane w starszych wersjach:"
+
 #. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:353
+#: ../client/pk-console.c:360
 msgid "Distribution"
 msgstr "Dystrybucja"
 
 #. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:355
+#: ../client/pk-console.c:362
 msgid "Type"
 msgstr "Typ"
 
 #. TRANSLATORS: this is any summary text describing the upgrade
 #. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:357 ../client/pk-console.c:380
+#: ../client/pk-console.c:364 ../client/pk-console.c:387
 msgid "Summary"
 msgstr "Podsumowanie"
 
 #. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:369
+#: ../client/pk-console.c:376
 msgid "Category"
 msgstr "Kategoria"
 
 #. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:371
+#: ../client/pk-console.c:378
 msgid "ID"
 msgstr "Identyfikator"
 
 #. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:374
+#: ../client/pk-console.c:381
 msgid "Parent"
 msgstr "Nadrzędna"
 
 #. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:377
+#: ../client/pk-console.c:384
 msgid "Name"
 msgstr "Nazwa"
 
 #. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:383
+#: ../client/pk-console.c:390
 msgid "Icon"
 msgstr "Ikona"
 
 #. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:398
+#: ../client/pk-console.c:405
 msgid "Details about the update:"
 msgstr "Szczegóły aktualizacji:"
 
 #. TRANSLATORS: details about the update, package name and version
 #. TRANSLATORS: title, the names of the packages that the method is processing
-#: ../client/pk-console.c:400 ../src/pk-polkit-action-lookup.c:352
+#: ../client/pk-console.c:407 ../src/pk-polkit-action-lookup.c:352
 msgid "Package"
 msgid_plural "Packages"
 msgstr[0] "Pakiet"
@@ -159,110 +164,110 @@ msgstr[1] "Pakiety"
 msgstr[2] "Pakietów"
 
 #. TRANSLATORS: details about the update, any packages that this update updates
-#: ../client/pk-console.c:403
+#: ../client/pk-console.c:410
 msgid "Updates"
 msgstr "Aktualizuje"
 
 #. TRANSLATORS: details about the update, any packages that this update obsoletes
-#: ../client/pk-console.c:407
+#: ../client/pk-console.c:414
 msgid "Obsoletes"
 msgstr "Zastępuje"
 
 #. TRANSLATORS: details about the update, the vendor URLs
-#: ../client/pk-console.c:411
+#: ../client/pk-console.c:418
 msgid "Vendor"
 msgstr "Producent"
 
 #. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:415
+#: ../client/pk-console.c:422
 msgid "Bugzilla"
 msgstr "Bugzilla"
 
 #. TRANSLATORS: details about the update, the CVE URLs
-#: ../client/pk-console.c:419
+#: ../client/pk-console.c:426
 msgid "CVE"
 msgstr "CVE"
 
 #. TRANSLATORS: details about the update, if the package requires a restart
-#: ../client/pk-console.c:423
+#: ../client/pk-console.c:430
 msgid "Restart"
 msgstr "Uruchom ponownie"
 
 #. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:427
+#: ../client/pk-console.c:434
 msgid "Update text"
 msgstr "Tekst aktualizacji"
 
 #. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:431
+#: ../client/pk-console.c:438
 msgid "Changes"
 msgstr "Zmiany"
 
 #. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:435
+#: ../client/pk-console.c:442
 msgid "State"
 msgstr "Stan"
 
 #. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:440
+#: ../client/pk-console.c:447
 msgid "Issued"
 msgstr "Wydano"
 
 #. TRANSLATORS: details about the update, date the update was updated
-#: ../client/pk-console.c:445
+#: ../client/pk-console.c:452
 msgid "Updated"
 msgstr "Zaktualizowano"
 
-#: ../client/pk-console.c:532 ../client/pk-console.c:534
+#: ../client/pk-console.c:539 ../client/pk-console.c:541
 msgid "Percentage"
 msgstr "Procentowo"
 
-#: ../client/pk-console.c:534
+#: ../client/pk-console.c:541
 msgid "Unknown"
 msgstr "Nieznane"
 
 #. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:576
+#: ../client/pk-console.c:583
 msgid "System restart required by:"
 msgstr "Ponowne uruchomienie systemu jest wymagane przez:"
 
 #. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:579
+#: ../client/pk-console.c:586
 msgid "Session restart required:"
 msgstr "Wymagane jest ponowne uruchomienie sesji:"
 
 #. TRANSLATORS: a package requires the system to be restarted due to a security update
-#: ../client/pk-console.c:582
+#: ../client/pk-console.c:589
 msgid "System restart (security) required by:"
 msgstr "Ponowne uruchomienie systemu jest wymagane przez:"
 
 #. TRANSLATORS: a package requires the session to be restarted due to a security update
-#: ../client/pk-console.c:585
+#: ../client/pk-console.c:592
 msgid "Session restart (security) required:"
 msgstr "Wymagane jest ponowne uruchomienie sesji (z powodu bezpieczeństwa):"
 
 #. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:588
+#: ../client/pk-console.c:595
 msgid "Application restart required by:"
 msgstr "Ponowne uruchomienie programu jest wymagane przez:"
 
 #. TRANSLATORS: a package needs to restart their system
-#: ../client/pk-console.c:643
+#: ../client/pk-console.c:650
 msgid "Please restart the computer to complete the update."
 msgstr "Proszę uruchomić ponownie komputer, aby zakończyć aktualizację."
 
 #. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:646
+#: ../client/pk-console.c:653
 msgid "Please logout and login to complete the update."
 msgstr "Proszę wylogować się i zalogować, aby zakończyć aktualizację."
 
 #. TRANSLATORS: a package needs to restart the application
-#: ../client/pk-console.c:649
+#: ../client/pk-console.c:656
 msgid "Please restart the application as it is being used."
 msgstr "Proszę uruchomić program ponownie, ponieważ jest używany."
 
 #. TRANSLATORS: a package needs to restart their system (due to security)
-#: ../client/pk-console.c:652
+#: ../client/pk-console.c:659
 msgid ""
 "Please restart the computer to complete the update as important security "
 "updates have been installed."
@@ -271,7 +276,7 @@ msgstr ""
 "zainstalowano aktualizacje bezpieczeństwa."
 
 #. TRANSLATORS: a package needs to restart the session (due to security)
-#: ../client/pk-console.c:655
+#: ../client/pk-console.c:662
 msgid ""
 "Please logout and login to complete the update as important security updates "
 "have been installed."
@@ -280,288 +285,288 @@ msgstr ""
 "zainstalowano aktualizacje bezpieczeństwa."
 
 #. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:787
+#: ../client/pk-console.c:794
 #, c-format
 msgid "The package %s is already installed"
 msgstr "Pakiet %s jest już zainstalowany"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:795
+#: ../client/pk-console.c:802
 #, c-format
 msgid "The package %s could not be installed: %s"
 msgstr "Nie można zainstalować pakietu %s: %s"
 
 #. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
-#: ../client/pk-console.c:821 ../client/pk-console.c:869
-#: ../client/pk-console.c:893 ../client/pk-console.c:941
-#: ../client/pk-console.c:1037 ../client/pk-console.c:1150
-#: ../client/pk-console.c:1211 ../client/pk-tools-common.c:62
+#: ../client/pk-console.c:828 ../client/pk-console.c:876
+#: ../client/pk-console.c:900 ../client/pk-console.c:948
+#: ../client/pk-console.c:1044 ../client/pk-console.c:1157
+#: ../client/pk-console.c:1218 ../client/pk-tools-common.c:62
 #: ../client/pk-tools-common.c:81 ../client/pk-tools-common.c:89
 #, c-format
 msgid "Internal error: %s"
 msgstr "Wewnętrzny błąd: %s"
 
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:853 ../client/pk-console.c:925
-#: ../client/pk-console.c:1243
+#: ../client/pk-console.c:860 ../client/pk-console.c:932
+#: ../client/pk-console.c:1250
 msgid "Proceed with changes?"
 msgstr "Kontynuować wprowadzanie zmian?"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:858 ../client/pk-console.c:930
+#: ../client/pk-console.c:865 ../client/pk-console.c:937
 msgid "The package install was canceled!"
 msgstr "Anulowano instalacjÄ™ pakietu!"
 
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:877 ../client/pk-console.c:1611
+#: ../client/pk-console.c:884 ../client/pk-console.c:1618
 #, c-format
 msgid "This tool could not install the packages: %s"
 msgstr "To narzędzie nie może zainstalować pakietów: %s"
 
 #. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:949
+#: ../client/pk-console.c:956
 #, c-format
 msgid "This tool could not install the files: %s"
 msgstr "To narzędzie nie może zainstalować plików: %s"
 
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:1005
+#: ../client/pk-console.c:1012
 #, c-format
 msgid "This tool could not remove %s: %s"
 msgstr "To narzędzie nie może usunąć %s: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:1028 ../client/pk-console.c:1066
-#: ../client/pk-console.c:1095
+#: ../client/pk-console.c:1035 ../client/pk-console.c:1073
+#: ../client/pk-console.c:1102
 #, c-format
 msgid "This tool could not remove the packages: %s"
 msgstr "To narzędzie nie może usunąć pakietów: %s"
 
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:1081
+#: ../client/pk-console.c:1088
 msgid "Proceed with additional packages?"
 msgstr "Kontynuować usuwanie dodatkowych pakietów?"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:1086
+#: ../client/pk-console.c:1093
 msgid "The package removal was canceled!"
 msgstr "Anulowano usunięcie pakietu!"
 
 #. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:1127
+#: ../client/pk-console.c:1134
 #, c-format
 msgid "This tool could not download the package %s as it could not be found"
 msgstr "To narzędzie nie może pobrać pakietu %s, ponieważ nie można go znaleźć"
 
 #. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:1158
+#: ../client/pk-console.c:1165
 #, c-format
 msgid "This tool could not download the packages: %s"
 msgstr "To narzędzie nie może pobrać pakietów: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1190 ../client/pk-console.c:1202
-#: ../client/pk-console.c:1257
+#: ../client/pk-console.c:1197 ../client/pk-console.c:1209
+#: ../client/pk-console.c:1264
 #, c-format
 msgid "This tool could not update %s: %s"
 msgstr "To narzędzie nie może zaktualizować %s: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:1248
+#: ../client/pk-console.c:1255
 msgid "The package update was canceled!"
 msgstr "Anulowano aktualizacjÄ™ pakietu!"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1281 ../client/pk-console.c:1289
+#: ../client/pk-console.c:1288 ../client/pk-console.c:1296
 #, c-format
 msgid "This tool could not get the requirements for %s: %s"
 msgstr "To narzędzie nie może uzyskać wymagań dla %s: %s"
 
 #. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:1311 ../client/pk-console.c:1319
+#: ../client/pk-console.c:1318 ../client/pk-console.c:1326
 #, c-format
 msgid "This tool could not get the dependencies for %s: %s"
 msgstr "To narzędzie nie może uzyskać zależności dla %s: %s"
 
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:1341 ../client/pk-console.c:1349
+#: ../client/pk-console.c:1348 ../client/pk-console.c:1356
 #, c-format
 msgid "This tool could not get package details for %s: %s"
 msgstr "To narzędzie nie może uzyskać szczegółów pakietu %s: %s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1371
+#: ../client/pk-console.c:1378
 #, c-format
 msgid "This tool could not find the files for %s: %s"
 msgstr "To narzędzie nie może znaleźć plików dla %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1379
+#: ../client/pk-console.c:1386
 #, c-format
 msgid "This tool could not get the file list for %s: %s"
 msgstr "To narzędzie nie może uzyskać listy plików dla %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of packages. The filename follows
-#: ../client/pk-console.c:1401
+#: ../client/pk-console.c:1408
 #, c-format
 msgid "File already exists: %s"
 msgstr "Plik już istnieje: %s"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1406 ../client/pk-console.c:1462
-#: ../client/pk-console.c:1537
+#: ../client/pk-console.c:1413 ../client/pk-console.c:1469
+#: ../client/pk-console.c:1544
 msgid "Getting package list"
 msgstr "Pobieranie listy pakietów"
 
 #. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1412 ../client/pk-console.c:1468
-#: ../client/pk-console.c:1543
+#: ../client/pk-console.c:1419 ../client/pk-console.c:1475
+#: ../client/pk-console.c:1550
 #, c-format
 msgid "This tool could not get package list: %s"
 msgstr "To narzędzie nie może pobrać listy pakietów: %s"
 
 #. TRANSLATORS: There was an error saving the list
-#: ../client/pk-console.c:1423
+#: ../client/pk-console.c:1430
 #, c-format
 msgid "Failed to save to disk"
 msgstr "Zapisanie na dysku nie powiodło się"
 
 #. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1457 ../client/pk-console.c:1532
+#: ../client/pk-console.c:1464 ../client/pk-console.c:1539
 #, c-format
 msgid "File does not exist: %s"
 msgstr "Plik nie istnieje: %s"
 
 #. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1489
+#: ../client/pk-console.c:1496
 msgid "Packages to add"
 msgstr "Pakiety do dodania"
 
 #. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1497
+#: ../client/pk-console.c:1504
 msgid "Packages to remove"
 msgstr "Pakiety do usunięcia"
 
 #. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1565
+#: ../client/pk-console.c:1572
 #, c-format
 msgid "No new packages need to be installed"
 msgstr "Nie trzeba instalować nowych pakietów"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1571
+#: ../client/pk-console.c:1578
 msgid "To install"
 msgstr "Do zainstalowania"
 
 #. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1583
+#: ../client/pk-console.c:1590
 msgid "Searching for package: "
 msgstr "Wyszukiwanie pakietu: "
 
 #. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1587
+#: ../client/pk-console.c:1594
 msgid "not found."
 msgstr "nie znaleziono."
 
 #. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1598
+#: ../client/pk-console.c:1605
 #, c-format
 msgid "No packages can be found to install"
 msgstr "Nie można znaleźć pakietów do zainstalowania"
 
 #. TRANSLATORS: installing new packages from package list
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
-#: ../client/pk-console.c:1604
+#: ../client/pk-console.c:1611
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:886
 #, c-format
 msgid "Installing packages"
 msgstr "Instalowanie pakietów"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1640
+#: ../client/pk-console.c:1647
 #, c-format
 msgid "This tool could not find the update details for %s: %s"
 msgstr "To narzędzie nie może znaleźć szczegółów aktualizacji dla %s: %s"
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1648
+#: ../client/pk-console.c:1655
 #, c-format
 msgid "This tool could not get the update details for %s: %s"
 msgstr "To narzędzie nie może uzyskać szczegółów aktualizacji dla %s: %s"
 
 #. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
-#: ../client/pk-console.c:1679
+#: ../client/pk-console.c:1686
 msgid "Error:"
 msgstr "BÅ‚Ä…d:"
 
 #. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1693
+#: ../client/pk-console.c:1700
 msgid "Package description"
 msgstr "Opis pakietu"
 
 #. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
-#: ../client/pk-console.c:1709
+#: ../client/pk-console.c:1716
 msgid "Message:"
 msgstr "Komunikat:"
 
 #. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1737
+#: ../client/pk-console.c:1744
 msgid "Package files"
 msgstr "Pliki pakietu"
 
 #. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1745
+#: ../client/pk-console.c:1752
 msgid "No files"
 msgstr "Brak plików"
 
 #. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1768
+#: ../client/pk-console.c:1775
 msgid "Repository signature required"
 msgstr "Wymagany jest podpis repozytorium"
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1778
+#: ../client/pk-console.c:1785
 msgid "Do you accept this signature?"
 msgstr "Zaakceptować ten podpis?"
 
 #. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1782
+#: ../client/pk-console.c:1789
 msgid "The signature was not accepted."
 msgstr "Podpis nie został zaakceptowany."
 
 #. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1816
+#: ../client/pk-console.c:1823
 msgid "End user license agreement required"
 msgstr "Licencja jest wymagana"
 
 #. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1823
+#: ../client/pk-console.c:1830
 msgid "Do you agree to this license?"
 msgstr "Zaakceptować tę licencję?"
 
 #. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1827
+#: ../client/pk-console.c:1834
 msgid "The license was refused."
 msgstr "Odrzucono licencjÄ™."
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1856
+#: ../client/pk-console.c:1863
 msgid "The daemon crashed mid-transaction!"
 msgstr "Demon zawiesił się w połowie transakcji!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1909
+#: ../client/pk-console.c:1916
 msgid "PackageKit Console Interface"
 msgstr "Interfejs konsoli PackageKit"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1911
+#: ../client/pk-console.c:1918
 msgid "Subcommands:"
 msgstr "Podpolecenia:"
 
 #. TRANSLATORS: command line argument, if we should show debugging information
 #. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:2004 ../client/pk-generate-pack.c:185
+#: ../client/pk-console.c:2011 ../client/pk-generate-pack.c:185
 #: ../client/pk-monitor.c:128
 #: ../contrib/command-not-found/pk-command-not-found.c:616
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:550
@@ -570,148 +575,148 @@ msgid "Show extra debugging information"
 msgstr "Wyświetla dodatkowe informacje o debugowaniu"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:2007 ../client/pk-monitor.c:130
+#: ../client/pk-console.c:2014 ../client/pk-monitor.c:130
 msgid "Show the program version and exit"
 msgstr "Wyświetla wersję programu i wyłącza"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:2010
+#: ../client/pk-console.c:2017
 msgid "Set the filter, e.g. installed"
 msgstr "Ustawia filtr, np. zainstalowane"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:2013
+#: ../client/pk-console.c:2020
 msgid "Exit without waiting for actions to complete"
 msgstr "Wyłącza bez oczekiwania na zakończenie działań"
 
 #. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:2040
+#: ../client/pk-console.c:2047
 msgid "This tool could not connect to system DBUS."
 msgstr "To narzędzie nie może połączyć się z systemowym D-Bus."
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:2130
+#: ../client/pk-console.c:2137
 msgid "The filter specified was invalid"
 msgstr "Podany filtr jest nieprawidłowy"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:2149
+#: ../client/pk-console.c:2156
 msgid "A search type is required, e.g. name"
 msgstr "Wymagany jest typ wyszukiwania, np. nazwa"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:2156 ../client/pk-console.c:2165
-#: ../client/pk-console.c:2174 ../client/pk-console.c:2183
+#: ../client/pk-console.c:2163 ../client/pk-console.c:2172
+#: ../client/pk-console.c:2181 ../client/pk-console.c:2190
 msgid "A search term is required"
 msgstr "Wymagany jest wyszukiwany termin"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:2190
+#: ../client/pk-console.c:2197
 msgid "Invalid search type"
 msgstr "Nieprawidłowy typ wyszukiwania"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:2196
+#: ../client/pk-console.c:2203
 msgid "A package name or filename to install is required"
 msgstr "Wymagana jest nazwa pakietu lub pliku do zainstalowania"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2205
+#: ../client/pk-console.c:2212
 msgid "A type, key_id and package_id are required"
 msgstr "Wymagany jest typ, key_id i package_id"
 
 #. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:2214
+#: ../client/pk-console.c:2221
 msgid "A package name to remove is required"
 msgstr "Wymagana jest nazwa pakietu do usunięcia"
 
 #. TRANSLATORS: the user did not specify anything about what to download or where
-#: ../client/pk-console.c:2222
+#: ../client/pk-console.c:2229
 msgid "A destination directory and the package names to download are required"
 msgstr "Wymagany jest katalog docelowy i nazwy pakietów do pobrania"
 
 #. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:2229
+#: ../client/pk-console.c:2236
 msgid "Directory not found"
 msgstr "Nie znaleziono katalogu"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2237
+#: ../client/pk-console.c:2244
 msgid "A licence identifier (eula-id) is required"
 msgstr "Wymagany jest identyfikator licencji (eula-id)"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2247
+#: ../client/pk-console.c:2254
 msgid "A transaction identifier (tid) is required"
 msgstr "Wymagany jest identyfikator transakcji (tid)"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:2264
+#: ../client/pk-console.c:2271
 msgid "A package name to resolve is required"
 msgstr "Wymagana jest nazwa pakietu do rozwiÄ…zania"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:2273 ../client/pk-console.c:2282
+#: ../client/pk-console.c:2280 ../client/pk-console.c:2289
 msgid "A repository name is required"
 msgstr "Wymagana jest nazwa repozytorium"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2291
+#: ../client/pk-console.c:2298
 msgid "A repo name, parameter and value are required"
 msgstr "Wymagana jest nazwa, parametr i wartość repozytorium"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:2305
+#: ../client/pk-console.c:2312
 msgid "An action, e.g. 'update-system' is required"
 msgstr "Wymagane jest działanie, np. \"update-system\""
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:2312
+#: ../client/pk-console.c:2319
 msgid "A correct role is required"
 msgstr "Wymagana jest bieżąca rola"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2319
+#: ../client/pk-console.c:2326
 msgid "Failed to get the time since this action was last completed"
 msgstr ""
 "Uzyskanie czasu od ostatniego zakończenia tego działania nie powiodło się"
 
 #. TRANSLATORS: The user did not provide a package name
 #. TRANSLATORS: This is when the user fails to supply the package name
-#: ../client/pk-console.c:2329 ../client/pk-console.c:2341
-#: ../client/pk-console.c:2350 ../client/pk-console.c:2368
-#: ../client/pk-console.c:2377 ../client/pk-generate-pack.c:241
+#: ../client/pk-console.c:2336 ../client/pk-console.c:2348
+#: ../client/pk-console.c:2357 ../client/pk-console.c:2375
+#: ../client/pk-console.c:2384 ../client/pk-generate-pack.c:241
 msgid "A package name is required"
 msgstr "Wymagana jest nazwa pakietu"
 
 #. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:2359
+#: ../client/pk-console.c:2366
 msgid "A package provide string is required"
 msgstr "Wymagany jest łańcuch dostarczania pakietu"
 
 #. TRANSLATORS: The user didn't specify a filename to create as a list
-#: ../client/pk-console.c:2386
+#: ../client/pk-console.c:2393
 msgid "A list file name to create is required"
 msgstr "Wymagana jest lista nazw plików do utworzenia"
 
 #. TRANSLATORS: The user didn't specify a filename to open as a list
-#: ../client/pk-console.c:2396 ../client/pk-console.c:2406
+#: ../client/pk-console.c:2403 ../client/pk-console.c:2413
 msgid "A list file to open is required"
 msgstr "Wymagana jest lista plików do otwarcia"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2460
+#: ../client/pk-console.c:2467
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "Opcja \"%s\" nie jest obsługiwana"
 
 #. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2473
+#: ../client/pk-console.c:2480
 msgid "Incorrect privileges for this operation"
 msgstr "Niepoprawne uprawnienia dla tego działania"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2476
+#: ../client/pk-console.c:2483
 msgid "Command failed"
 msgstr "Polecenie nie powiodło się"
 
commit 02cdcd2505ce9a9ee653294aaef2105d3f1a798f
Merge: 824784a... ad07df3...
Author: Anders F Bjorklund <afb at users.sourceforge.net>
Date:   Fri Aug 28 19:34:24 2009 +0200

    Merge branch 'master' of git+ssh://afb@git.packagekit.org/srv/git/PackageKit

commit ad07df32946a337cad016aea477aa3653b9b5e84
Author: Richard Hughes <richard at hughsie.com>
Date:   Fri Aug 28 17:09:37 2009 +0100

    glib2: make PkControl a singleton again

diff --git a/lib/packagekit-glib2/pk-control.c b/lib/packagekit-glib2/pk-control.c
index 933f8a1..94f21ef 100644
--- a/lib/packagekit-glib2/pk-control.c
+++ b/lib/packagekit-glib2/pk-control.c
@@ -74,6 +74,7 @@ enum {
 };
 
 static guint signals [SIGNAL_LAST] = { 0 };
+static gpointer pk_control_object = NULL;
 
 G_DEFINE_TYPE (PkControl, pk_control, G_TYPE_OBJECT)
 
@@ -2005,9 +2006,13 @@ pk_control_finalize (GObject *object)
 PkControl *
 pk_control_new (void)
 {
-	PkControl *control;
-	control = g_object_new (PK_TYPE_CONTROL, NULL);
-	return PK_CONTROL (control);
+	if (pk_control_object != NULL) {
+		g_object_ref (pk_control_object);
+	} else {
+		pk_control_object = g_object_new (PK_TYPE_CONTROL, NULL);
+		g_object_add_weak_pointer (pk_control_object, &pk_control_object);
+	}
+	return PK_CONTROL (pk_control_object);
 }
 
 /***************************************************************************
commit 632035557d3d1391f4227f317ad26967161b890a
Author: Richard Hughes <richard at hughsie.com>
Date:   Fri Aug 28 17:08:05 2009 +0100

    glib2: Add all the old PkControl signals into the new object

diff --git a/lib/packagekit-glib2/pk-control.c b/lib/packagekit-glib2/pk-control.c
index 0567afa..933f8a1 100644
--- a/lib/packagekit-glib2/pk-control.c
+++ b/lib/packagekit-glib2/pk-control.c
@@ -56,7 +56,12 @@ struct _PkControlPrivate
 };
 
 enum {
-	SIGNAL_CHANGED,
+	SIGNAL_LOCKED,
+	SIGNAL_LIST_CHANGED,
+	SIGNAL_RESTART_SCHEDULE,
+	SIGNAL_UPDATES_CHANGED,
+	SIGNAL_REPO_LIST_CHANGED,
+	SIGNAL_NETWORK_STATE_CHANGED,
 	SIGNAL_LAST
 };
 
@@ -1581,6 +1586,80 @@ out:
 }
 
 /**
+ * pk_control_transaction_list_changed_cb:
+ */
+static void
+pk_control_transaction_list_changed_cb (DBusGProxy *proxy, gchar **array, PkControl *control)
+{
+	g_return_if_fail (PK_IS_CONTROL (control));
+
+	egg_debug ("emit transaction-list-changed");
+	g_signal_emit (control, signals [SIGNAL_LIST_CHANGED], 0);
+}
+
+/**
+ * pk_control_restart_schedule_cb:
+ */
+static void
+pk_control_restart_schedule_cb (DBusGProxy *proxy, PkControl *control)
+{
+	g_return_if_fail (PK_IS_CONTROL (control));
+
+	egg_debug ("emitting restart-schedule");
+	g_signal_emit (control, signals [SIGNAL_RESTART_SCHEDULE], 0);
+
+}
+
+/**
+ * pk_control_updates_changed_cb:
+ */
+static void
+pk_control_updates_changed_cb (DBusGProxy *proxy, PkControl *control)
+{
+	g_return_if_fail (PK_IS_CONTROL (control));
+
+	egg_debug ("emitting updates-changed");
+	g_signal_emit (control, signals [SIGNAL_UPDATES_CHANGED], 0);
+
+}
+
+/**
+ * pk_control_repo_list_changed_cb:
+ */
+static void
+pk_control_repo_list_changed_cb (DBusGProxy *proxy, PkControl *control)
+{
+	g_return_if_fail (PK_IS_CONTROL (control));
+
+	egg_debug ("emitting repo-list-changed");
+	g_signal_emit (control, signals [SIGNAL_REPO_LIST_CHANGED], 0);
+}
+
+/**
+ * pk_control_network_state_changed_cb:
+ */
+static void
+pk_control_network_state_changed_cb (DBusGProxy *proxy, const gchar *network_text, PkControl *control)
+{
+	PkNetworkEnum network;
+	g_return_if_fail (PK_IS_CONTROL (control));
+
+	network = pk_network_enum_from_text (network_text);
+	egg_debug ("emitting network-state-changed: %s", network_text);
+	g_signal_emit (control, signals [SIGNAL_NETWORK_STATE_CHANGED], 0, network);
+}
+
+/**
+ * pk_control_locked_cb:
+ */
+static void
+pk_control_locked_cb (DBusGProxy *proxy, gboolean is_locked, PkControl *control)
+{
+	egg_debug ("emit locked %i", is_locked);
+	g_signal_emit (control , signals [SIGNAL_LOCKED], 0, is_locked);
+}
+
+/**
  * pk_control_set_properties_collect_cb:
  **/
 static void
@@ -1733,17 +1812,86 @@ pk_control_class_init (PkControlClass *klass)
 	g_object_class_install_property (object_class, PROP_VERSION_MICRO, pspec);
 
 	/**
-	 * PkControl::changed:
+	 * PkControl::updates-changed:
+	 * @control: the #PkControl instance that emitted the signal
+	 *
+	 * The ::updates-changed signal is emitted when the update list may have
+	 * changed and the control program may have to update some UI.
+	 **/
+	signals [SIGNAL_UPDATES_CHANGED] =
+		g_signal_new ("updates-changed",
+			      G_TYPE_FROM_CLASS (object_class), G_SIGNAL_RUN_LAST,
+			      G_STRUCT_OFFSET (PkControlClass, updates_changed),
+			      NULL, NULL, g_cclosure_marshal_VOID__VOID,
+			      G_TYPE_NONE, 0);
+	/**
+	 * PkControl::repo-list-changed:
 	 * @control: the #PkControl instance that emitted the signal
 	 *
-	 * The ::changed signal is emitted when the control data may have changed.
+	 * The ::repo-list-changed signal is emitted when the repo list may have
+	 * changed and the control program may have to update some UI.
 	 **/
-	signals [SIGNAL_CHANGED] =
-		g_signal_new ("changed",
+	signals [SIGNAL_REPO_LIST_CHANGED] =
+		g_signal_new ("repo-list-changed",
 			      G_TYPE_FROM_CLASS (object_class), G_SIGNAL_RUN_LAST,
-			      G_STRUCT_OFFSET (PkControlClass, changed),
+			      G_STRUCT_OFFSET (PkControlClass, repo_list_changed),
 			      NULL, NULL, g_cclosure_marshal_VOID__VOID,
 			      G_TYPE_NONE, 0);
+	/**
+	 * PkControl::network-state-changed:
+	 * @control: the #PkControl instance that emitted the signal
+	 *
+	 * The ::network-state-changed signal is emitted when the network has changed speed or
+	 * connections state.
+	 **/
+	signals [SIGNAL_NETWORK_STATE_CHANGED] =
+		g_signal_new ("network-state-changed",
+			      G_TYPE_FROM_CLASS (object_class), G_SIGNAL_RUN_LAST,
+			      G_STRUCT_OFFSET (PkControlClass, network_state_changed),
+			      NULL, NULL, g_cclosure_marshal_VOID__UINT,
+			      G_TYPE_NONE, 1, G_TYPE_UINT);
+	/**
+	 * PkControl::restart-schedule:
+	 * @control: the #PkControl instance that emitted the signal
+	 *
+	 * The ::restart_schedule signal is emitted when the packagekitd service
+	 * has been restarted because it has been upgraded.
+	 * Client programs should reload themselves when it is convenient to
+	 * do so, as old client tools may not be compatable with the new daemon.
+	 **/
+	signals [SIGNAL_RESTART_SCHEDULE] =
+		g_signal_new ("restart-schedule",
+			      G_TYPE_FROM_CLASS (object_class), G_SIGNAL_RUN_LAST,
+			      G_STRUCT_OFFSET (PkControlClass, restart_schedule),
+			      NULL, NULL, g_cclosure_marshal_VOID__VOID,
+			      G_TYPE_NONE, 0);
+	/**
+	 * PkControl::transaction-list-changed:
+	 * @control: the #PkControl instance that emitted the signal
+	 *
+	 * The ::transaction-list-changed signal is emitted when the list
+	 * of transactions handled by the daemon is changed.
+	 **/
+	signals [SIGNAL_LIST_CHANGED] =
+		g_signal_new ("transaction-list-changed",
+			      G_TYPE_FROM_CLASS (object_class), G_SIGNAL_RUN_LAST,
+			      G_STRUCT_OFFSET (PkControlClass, transaction_list_changed),
+			      NULL, NULL, g_cclosure_marshal_VOID__VOID,
+			      G_TYPE_NONE, 0);
+	/**
+	 * PkControl::locked:
+	 * @control: the #PkControl instance that emitted the signal
+	 *
+	 * The ::locked signal is emitted when the backend instance has been
+	 * locked by PackageKit.
+	 * This may mean that other native package tools will not work.
+	 **/
+	signals [SIGNAL_LOCKED] =
+		g_signal_new ("locked",
+			      G_TYPE_FROM_CLASS (object_class), G_SIGNAL_RUN_LAST,
+			      G_STRUCT_OFFSET (PkControlClass, locked),
+			      NULL, NULL, g_cclosure_marshal_VOID__BOOLEAN,
+			      G_TYPE_NONE, 1, G_TYPE_BOOLEAN);
 
 	g_type_class_add_private (klass, sizeof (PkControlPrivate));
 }
@@ -1782,6 +1930,34 @@ pk_control_init (PkControl *control)
 	/* don't timeout, as dbus-glib sets the timeout ~25 seconds */
 	dbus_g_proxy_set_default_timeout (control->priv->proxy, INT_MAX);
 
+	dbus_g_proxy_add_signal (control->priv->proxy, "TransactionListChanged",
+				 G_TYPE_STRV, G_TYPE_INVALID);
+	dbus_g_proxy_connect_signal (control->priv->proxy, "TransactionListChanged",
+				     G_CALLBACK(pk_control_transaction_list_changed_cb), control, NULL);
+
+	dbus_g_proxy_add_signal (control->priv->proxy, "UpdatesChanged", G_TYPE_INVALID);
+	dbus_g_proxy_connect_signal (control->priv->proxy, "UpdatesChanged",
+				     G_CALLBACK (pk_control_updates_changed_cb), control, NULL);
+
+	dbus_g_proxy_add_signal (control->priv->proxy, "RepoListChanged", G_TYPE_INVALID);
+	dbus_g_proxy_connect_signal (control->priv->proxy, "RepoListChanged",
+				     G_CALLBACK (pk_control_repo_list_changed_cb), control, NULL);
+
+	dbus_g_proxy_add_signal (control->priv->proxy, "NetworkStateChanged",
+				 G_TYPE_STRING, G_TYPE_INVALID);
+	dbus_g_proxy_connect_signal (control->priv->proxy, "NetworkStateChanged",
+				     G_CALLBACK (pk_control_network_state_changed_cb), control, NULL);
+
+	dbus_g_proxy_add_signal (control->priv->proxy, "RestartSchedule", G_TYPE_INVALID);
+	dbus_g_proxy_connect_signal (control->priv->proxy, "RestartSchedule",
+				     G_CALLBACK (pk_control_restart_schedule_cb), control, NULL);
+
+	dbus_g_object_register_marshaller (g_cclosure_marshal_VOID__BOOLEAN,
+					   G_TYPE_NONE, G_TYPE_BOOLEAN, G_TYPE_INVALID);
+	dbus_g_proxy_add_signal (control->priv->proxy, "Locked", G_TYPE_BOOLEAN, G_TYPE_INVALID);
+	dbus_g_proxy_connect_signal (control->priv->proxy, "Locked",
+				     G_CALLBACK (pk_control_locked_cb), control, NULL);
+
 	/* get properties async if they exist */
 if (0)	pk_control_set_properties (control);
 }
@@ -1802,6 +1978,20 @@ pk_control_finalize (GObject *object)
 		dbus_g_proxy_cancel_call (control->priv->proxy, control->priv->call);
 	}
 
+	/* disconnect signal handlers */
+	dbus_g_proxy_disconnect_signal (control->priv->proxy, "Locked",
+				        G_CALLBACK (pk_control_locked_cb), control);
+	dbus_g_proxy_disconnect_signal (control->priv->proxy, "TransactionListChanged",
+				        G_CALLBACK (pk_control_transaction_list_changed_cb), control);
+	dbus_g_proxy_disconnect_signal (control->priv->proxy, "UpdatesChanged",
+				        G_CALLBACK (pk_control_updates_changed_cb), control);
+	dbus_g_proxy_disconnect_signal (control->priv->proxy, "RepoListChanged",
+				        G_CALLBACK (pk_control_repo_list_changed_cb), control);
+	dbus_g_proxy_disconnect_signal (control->priv->proxy, "NetworkStateChanged",
+				        G_CALLBACK (pk_control_network_state_changed_cb), control);
+	dbus_g_proxy_disconnect_signal (control->priv->proxy, "RestartSchedule",
+				        G_CALLBACK (pk_control_restart_schedule_cb), control);
+
 	g_object_unref (G_OBJECT (priv->proxy));
 
 	G_OBJECT_CLASS (pk_control_parent_class)->finalize (object);
diff --git a/lib/packagekit-glib2/pk-control.h b/lib/packagekit-glib2/pk-control.h
index 539106a..46fccbb 100644
--- a/lib/packagekit-glib2/pk-control.h
+++ b/lib/packagekit-glib2/pk-control.h
@@ -74,7 +74,13 @@ struct _PkControlClass
 	GObjectClass	parent_class;
 
 	/* signals */
-	void		(* changed)			(PkControl	*control);
+	void		(* transaction_list_changed)	(PkControl	*control);
+	void		(* updates_changed)		(PkControl	*control);
+	void		(* repo_list_changed)		(PkControl	*control);
+	void		(* network_state_changed)	(PkControl	*control);
+	void		(* restart_schedule)		(PkControl	*control);
+	void		(* locked)			(PkControl	*control,
+							 gboolean	 is_locked);
 	/* padding for future expansion */
 	void (*_pk_reserved1) (void);
 	void (*_pk_reserved2) (void);
commit 70a9a9265a64f5e12d0c293689c0bd45b6cb1ce4
Author: Richard Hughes <richard at hughsie.com>
Date:   Fri Aug 28 16:59:11 2009 +0100

    glib2: merge a broken version of pk_client_cancel_async()

diff --git a/lib/packagekit-glib2/pk-client.c b/lib/packagekit-glib2/pk-client.c
index 70ed35f..f21f07d 100644
--- a/lib/packagekit-glib2/pk-client.c
+++ b/lib/packagekit-glib2/pk-client.c
@@ -97,6 +97,7 @@ typedef struct {
 	gboolean			 force;
 	gboolean			 only_trusted;
 	gboolean			 recursive;
+	gboolean			 ret;
 	gchar				*directory;
 	gchar				*eula_id;
 	gchar				**files;
@@ -2383,6 +2384,140 @@ pk_client_simulate_update_packages_async (PkClient *client, gchar **package_ids,
 	g_object_unref (res);
 }
 
+/***************************************************************************************************/
+
+/**
+ * pk_client_cancel_state_finish:
+ **/
+static void
+pk_client_cancel_state_finish (PkClientState *state, GError *error)
+{
+	/* remove weak ref */
+	if (state->client != NULL)
+		g_object_remove_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
+
+	/* cancel */
+	if (state->cancellable != NULL) {
+		g_cancellable_cancel (state->cancellable);
+		g_object_unref (state->cancellable);
+	}
+
+	/* get result */
+	if (state->ret) {
+		g_simple_async_result_set_op_res_gboolean (state->res, state->ret);
+	} else {
+		g_simple_async_result_set_from_error (state->res, error);
+		g_error_free (error);
+	}
+
+	/* complete */
+	g_simple_async_result_complete_in_idle (state->res);
+
+	/* deallocate */
+	g_object_unref (state->res);
+	g_slice_free (PkClientState, state);
+}
+
+/**
+ * pk_client_cancel_cb:
+ **/
+static void
+pk_client_cancel_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkClientState *state)
+{
+	GError *error = NULL;
+	gboolean ret;
+
+	/* get the result */
+	ret = dbus_g_proxy_end_call (proxy, call, &error,
+				     G_TYPE_INVALID);
+	if (!ret) {
+		/* fix up the D-Bus error */
+		pk_client_fixup_dbus_error (error);
+		egg_warning ("failed: %s", error->message);
+		pk_client_cancel_state_finish (state, error);
+		goto out;
+	}
+
+	/* finished this call */
+	state->call = NULL;
+
+	/* save the result */
+	state->ret = TRUE;
+
+	/* we're done */
+	pk_client_cancel_state_finish (state, error);
+out:
+	return;
+}
+
+/**
+ * pk_client_cancel_async:
+ * @client: a valid #PkClient instance
+ * @cancellable: a #GCancellable or %NULL
+ * @callback: the function to run on completion
+ * @user_data: the data to pass to @callback
+ *
+ * Gets a transacton ID from the daemon.
+ **/
+void
+pk_client_cancel_async (PkClient *client, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data)
+{
+	GSimpleAsyncResult *res;
+	PkClientState *state;
+
+	g_return_if_fail (PK_IS_CLIENT (client));
+	g_return_if_fail (callback != NULL);
+
+	res = g_simple_async_result_new (G_OBJECT (client), callback, user_data, pk_client_cancel_async);
+
+	/* save state */
+	state = g_slice_new0 (PkClientState);
+	state->res = g_object_ref (res);
+	state->cancellable = cancellable;
+	state->client = client;
+	state->call = NULL;
+	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
+
+	/* call D-Bus cancel async */
+//FIXME: this will not work.. EVER. proxy has to be found using an ID token
+	state->call = dbus_g_proxy_begin_call (state->proxy, "Cancel",
+					       (DBusGProxyCallNotify) pk_client_cancel_cb, state,
+					       NULL, G_TYPE_INVALID);
+	g_object_unref (res);
+}
+
+/**
+ * pk_client_cancel_finish:
+ * @client: a valid #PkClient instance
+ * @res: the #GAsyncResult
+ * @error: A #GError or %NULL
+ *
+ * Gets the result from the asynchronous function.
+ *
+ * Return value: the ID, or %NULL if unset
+ **/
+gboolean
+pk_client_cancel_finish (PkClient *client, GAsyncResult *res, GError **error)
+{
+	GSimpleAsyncResult *simple;
+	gpointer source_tag;
+
+	g_return_val_if_fail (PK_IS_CLIENT (client), FALSE);
+	g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (res), FALSE);
+
+	simple = G_SIMPLE_ASYNC_RESULT (res);
+	source_tag = g_simple_async_result_get_source_tag (simple);
+
+	g_return_val_if_fail (source_tag == pk_client_cancel_async, FALSE);
+
+	if (g_simple_async_result_propagate_error (simple, error))
+		return FALSE;
+
+	return g_simple_async_result_get_op_res_gboolean (simple);
+}
+
+/***************************************************************************************************/
+
 /**
  * pk_client_get_property:
  **/
diff --git a/lib/packagekit-glib2/pk-client.h b/lib/packagekit-glib2/pk-client.h
index 1f5182c..6881287 100644
--- a/lib/packagekit-glib2/pk-client.h
+++ b/lib/packagekit-glib2/pk-client.h
@@ -382,6 +382,14 @@ void		 pk_client_simulate_update_packages_async (PkClient		*client,
 							 GAsyncReadyCallback	 callback_ready,
 							 gpointer		 user_data);
 
+void		 pk_client_cancel_async			(PkClient		*client,
+							 GCancellable		*cancellable,
+							 GAsyncReadyCallback	 callback,
+							 gpointer		 user_data);
+gboolean	 pk_client_cancel_finish		(PkClient		*client,
+							 GAsyncResult		*res,
+							 GError			**error);
+
 G_END_DECLS
 
 #endif /* __PK_CLIENT_H */
commit 6b135905884e39e19e9bf4cf46423a6564137d98
Author: Richard Hughes <richard at hughsie.com>
Date:   Fri Aug 28 16:37:54 2009 +0100

    glib2: add in PkClient and PkControl errors

diff --git a/lib/packagekit-glib2/pk-client.c b/lib/packagekit-glib2/pk-client.c
index 8a0acef..70ed35f 100644
--- a/lib/packagekit-glib2/pk-client.c
+++ b/lib/packagekit-glib2/pk-client.c
@@ -129,6 +129,86 @@ static void pk_client_finished_cb (DBusGProxy *proxy, const gchar *exit_text, gu
 static void pk_client_disconnect_proxy (DBusGProxy *proxy, PkClientState *state);
 
 /**
+ * pk_client_error_quark:
+ *
+ * Return value: Our personal error quark.
+ **/
+GQuark
+pk_client_error_quark (void)
+{
+	static GQuark quark = 0;
+	if (!quark)
+		quark = g_quark_from_static_string ("pk_client_error");
+	return quark;
+}
+
+/**
+ * pk_client_fixup_dbus_error:
+ **/
+static void
+pk_client_fixup_dbus_error (GError *error)
+{
+	const gchar *name;
+
+	g_return_if_fail (error != NULL);
+
+	/* old style PolicyKit failure */
+	if (g_str_has_prefix (error->message, "org.freedesktop.packagekit.")) {
+		egg_debug ("fixing up code for Policykit auth failure");
+		error->code = PK_CLIENT_ERROR_FAILED_AUTH;
+		g_free (error->message);
+		error->message = g_strdup ("PolicyKit authorization failure");
+		goto out;
+	}
+
+	/* find a better failure code */
+	if (error->domain == DBUS_GERROR &&
+	    error->code == DBUS_GERROR_REMOTE_EXCEPTION) {
+
+		/* fall back to generic */
+		error->code = PK_CLIENT_ERROR_FAILED;
+
+		/* use one of our local codes */
+		name = dbus_g_error_get_name (error);
+
+		/* trim common prefix */
+		if (g_str_has_prefix (name, "org.freedesktop.PackageKit.Transaction."))
+			name = &name[39];
+
+		/* try to get a better error */
+		if (g_str_has_prefix (name, "PermissionDenied") ||
+		    g_str_has_prefix (name, "RefusedByPolicy")) {
+			error->code = PK_CLIENT_ERROR_FAILED_AUTH;
+			goto out;
+		}
+		if (g_str_has_prefix (name, "PackageIdInvalid") ||
+			 g_str_has_prefix (name, "SearchInvalid") ||
+			 g_str_has_prefix (name, "FilterInvalid") ||
+			 g_str_has_prefix (name, "InvalidProvide") ||
+			 g_str_has_prefix (name, "InputInvalid")) {
+			error->code = PK_CLIENT_ERROR_INVALID_INPUT;
+			goto out;
+		}
+		if (g_str_has_prefix (name, "PackInvalid") ||
+			 g_str_has_prefix (name, "NoSuchFile") ||
+			 g_str_has_prefix (name, "NoSuchDirectory")) {
+			error->code = PK_CLIENT_ERROR_INVALID_FILE;
+			goto out;
+		}
+		if (g_str_has_prefix (name, "NotSupported")) {
+			error->code = PK_CLIENT_ERROR_NOT_SUPPORTED;
+			goto out;
+		}
+		egg_warning ("couldn't parse execption '%s', please report", name);
+	}
+
+out:
+	/* hardcode domain */
+	error->domain = PK_CLIENT_ERROR;
+	return;
+}
+
+/**
  * pk_client_state_finish:
  **/
 static void
@@ -207,7 +287,6 @@ pk_client_finished_cb (DBusGProxy *proxy, const gchar *exit_text, guint runtime,
 static void
 pk_client_method_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkClientState *state)
 {
-//	PkClient *client = PK_CLIENT (state->client);
 	GError *error = NULL;
 	gboolean ret;
 
@@ -218,6 +297,8 @@ pk_client_method_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkClientState *sta
 	ret = dbus_g_proxy_end_call (proxy, call, &error,
 				     G_TYPE_INVALID);
 	if (!ret) {
+		/* fix up the D-Bus error */
+		pk_client_fixup_dbus_error (error);
 		egg_warning ("failed: %s", error->message);
 		pk_client_state_finish (state, error);
 		return;
@@ -658,6 +739,8 @@ pk_client_set_locale_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkClientState
 	ret = dbus_g_proxy_end_call (proxy, call, &error,
 				     G_TYPE_INVALID);
 	if (!ret) {
+		/* fix up the D-Bus error */
+		pk_client_fixup_dbus_error (error);
 		egg_warning ("failed to set locale: %s", error->message);
 		pk_client_state_finish (state, error);
 		goto out;
diff --git a/lib/packagekit-glib2/pk-client.h b/lib/packagekit-glib2/pk-client.h
index 80098d4..1f5182c 100644
--- a/lib/packagekit-glib2/pk-client.h
+++ b/lib/packagekit-glib2/pk-client.h
@@ -48,6 +48,31 @@ G_BEGIN_DECLS
 #define PK_CLIENT_ERROR		(pk_client_error_quark ())
 #define PK_CLIENT_TYPE_ERROR	(pk_client_error_get_type ())
 
+/**
+ * PkClientError:
+ * @PK_CLIENT_ERROR_FAILED: the transaction failed for an unknown reason
+ * @PK_CLIENT_ERROR_NO_TID: the transaction id was not pre-allocated (internal error)
+ * @PK_CLIENT_ERROR_ALREADY_TID: the transaction id has already been used (internal error)
+ * @PK_CLIENT_ERROR_ROLE_UNKNOWN: the role was not set (internal error)
+ * @PK_CLIENT_ERROR_INVALID_INPUT: the package_id is invalid
+ * @PK_CLIENT_ERROR_INVALID_FILE: the file is invalid
+ * @PK_CLIENT_ERROR_NOT_SUPPORTED: the action is not supported
+ *
+ * Errors that can be thrown
+ */
+typedef enum
+{
+	PK_CLIENT_ERROR_FAILED,
+	PK_CLIENT_ERROR_FAILED_AUTH,
+	PK_CLIENT_ERROR_NO_TID,
+	PK_CLIENT_ERROR_ALREADY_TID,
+	PK_CLIENT_ERROR_ROLE_UNKNOWN,
+	PK_CLIENT_ERROR_CANNOT_START_DAEMON,
+	PK_CLIENT_ERROR_INVALID_INPUT,
+	PK_CLIENT_ERROR_INVALID_FILE,
+	PK_CLIENT_ERROR_NOT_SUPPORTED
+} PkClientError;
+
 typedef struct _PkClientPrivate	PkClientPrivate;
 typedef struct _PkClient		PkClient;
 typedef struct _PkClientClass		PkClientClass;
diff --git a/lib/packagekit-glib2/pk-control.c b/lib/packagekit-glib2/pk-control.c
index 71c08e2..0567afa 100644
--- a/lib/packagekit-glib2/pk-control.c
+++ b/lib/packagekit-glib2/pk-control.c
@@ -87,6 +87,40 @@ typedef struct {
 	PkNetworkEnum		 network;
 } PkControlState;
 
+/**
+ * pk_control_error_quark:
+ *
+ * We are a GObject that sets errors
+ *
+ * Return value: Our personal error quark.
+ **/
+GQuark
+pk_control_error_quark (void)
+{
+	static GQuark quark = 0;
+	if (!quark)
+		quark = g_quark_from_static_string ("pk_control_error");
+	return quark;
+}
+
+/**
+ * pk_control_fixup_dbus_error:
+ **/
+static void
+pk_control_fixup_dbus_error (GError *error)
+{
+	g_return_if_fail (error != NULL);
+
+	/* hardcode domain */
+	error->domain = PK_CONTROL_ERROR;
+
+	/* find a better failure code */
+	if (error->code == DBUS_GERROR_SPAWN_CHILD_EXITED)
+		error->code = PK_CONTROL_ERROR_CANNOT_START_DAEMON;
+	else
+		error->code = PK_CONTROL_ERROR_FAILED;
+}
+
 /***************************************************************************************************/
 
 /**
@@ -137,6 +171,8 @@ pk_control_get_tid_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkControlState *
 				     G_TYPE_STRING, &tid,
 				     G_TYPE_INVALID);
 	if (!ret) {
+		/* fix up the D-Bus error */
+		pk_control_fixup_dbus_error (error);
 		egg_warning ("failed: %s", error->message);
 		pk_control_get_tid_state_finish (state, error);
 		goto out;
@@ -271,6 +307,8 @@ pk_control_get_mime_types_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkControl
 				     G_TYPE_STRING, &temp,
 				     G_TYPE_INVALID);
 	if (!ret) {
+		/* fix up the D-Bus error */
+		pk_control_fixup_dbus_error (error);
 		egg_warning ("failed: %s", error->message);
 		pk_control_get_mime_types_state_finish (state, error);
 		goto out;
@@ -549,6 +587,8 @@ pk_control_get_roles_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkControlState
 				     G_TYPE_STRING, &roles,
 				     G_TYPE_INVALID);
 	if (!ret) {
+		/* fix up the D-Bus error */
+		pk_control_fixup_dbus_error (error);
 		egg_warning ("failed: %s", error->message);
 		pk_control_get_roles_state_finish (state, error);
 		goto out;
@@ -682,6 +722,8 @@ pk_control_get_filters_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkControlSta
 				     G_TYPE_STRING, &filters,
 				     G_TYPE_INVALID);
 	if (!ret) {
+		/* fix up the D-Bus error */
+		pk_control_fixup_dbus_error (error);
 		egg_warning ("failed: %s", error->message);
 		pk_control_get_filters_state_finish (state, error);
 		goto out;
@@ -815,6 +857,8 @@ pk_control_get_groups_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkControlStat
 				     G_TYPE_STRING, &groups,
 				     G_TYPE_INVALID);
 	if (!ret) {
+		/* fix up the D-Bus error */
+		pk_control_fixup_dbus_error (error);
 		egg_warning ("failed: %s", error->message);
 		pk_control_get_groups_state_finish (state, error);
 		goto out;
@@ -948,6 +992,8 @@ pk_control_get_transaction_list_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkC
 				     G_TYPE_STRV, &temp,
 				     G_TYPE_INVALID);
 	if (!ret) {
+		/* fix up the D-Bus error */
+		pk_control_fixup_dbus_error (error);
 		egg_warning ("failed: %s", error->message);
 		pk_control_get_transaction_list_state_finish (state, error);
 		goto out;
@@ -1079,6 +1125,8 @@ pk_control_get_time_since_action_cb (DBusGProxy *proxy, DBusGProxyCall *call, Pk
 				     G_TYPE_UINT, &seconds,
 				     G_TYPE_INVALID);
 	if (!ret) {
+		/* fix up the D-Bus error */
+		pk_control_fixup_dbus_error (error);
 		egg_warning ("failed: %s", error->message);
 		pk_control_get_time_since_action_state_finish (state, error);
 		goto out;
@@ -1090,7 +1138,7 @@ pk_control_get_time_since_action_cb (DBusGProxy *proxy, DBusGProxyCall *call, Pk
 	/* save data */
 	state->time = seconds;
 	if (state->time == 0) {
-		error = g_error_new (1, 0, "could not get time");
+		error = g_error_new (PK_CONTROL_ERROR, PK_CONTROL_ERROR_FAILED, "could not get time");
 		pk_control_get_time_since_action_state_finish (state, error);
 		goto out;
 	}
@@ -1218,6 +1266,8 @@ pk_control_get_network_state_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkCont
 				     G_TYPE_STRING, &network_state,
 				     G_TYPE_INVALID);
 	if (!ret) {
+		/* fix up the D-Bus error */
+		pk_control_fixup_dbus_error (error);
 		egg_warning ("failed: %s", error->message);
 		pk_control_get_network_state_state_finish (state, error);
 		goto out;
@@ -1229,7 +1279,7 @@ pk_control_get_network_state_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkCont
 	/* save data */
 	state->network = pk_network_enum_from_text (network_state);
 	if (state->network == PK_NETWORK_ENUM_UNKNOWN) {
-		error = g_error_new (1, 0, "could not get state");
+		error = g_error_new (PK_CONTROL_ERROR, PK_CONTROL_ERROR_FAILED, "could not get state");
 		pk_control_get_network_state_state_finish (state, error);
 		goto out;
 	}
@@ -1355,6 +1405,8 @@ pk_control_can_authorize_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkControlS
 				     G_TYPE_STRING, &authorize_state,
 				     G_TYPE_INVALID);
 	if (!ret) {
+		/* fix up the D-Bus error */
+		pk_control_fixup_dbus_error (error);
 		egg_warning ("failed: %s", error->message);
 		pk_control_can_authorize_state_finish (state, error);
 		goto out;
@@ -1366,7 +1418,7 @@ pk_control_can_authorize_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkControlS
 	/* save data */
 	state->authorize = pk_authorize_type_enum_from_text (authorize_state);
 	if (state->authorize == PK_AUTHORIZE_ENUM_UNKNOWN) {
-		error = g_error_new (1, 0, "could not get state");
+		error = g_error_new (PK_CONTROL_ERROR, PK_CONTROL_ERROR_FAILED, "could not get state");
 		pk_control_can_authorize_state_finish (state, error);
 		goto out;
 	}
@@ -1447,6 +1499,88 @@ pk_control_can_authorize_finish (PkControl *control, GAsyncResult *res, GError *
 /***************************************************************************************************/
 
 /**
+ * pk_control_get_daemon_state:
+ * @control: a valid #PkControl instance
+ * @error: a %GError to put the error code and message in, or %NULL
+ *
+ * The engine state debugging output
+ *
+ * Return value: a string of debugging data of unspecified format, unref wih g_free()
+ **/
+gchar *
+pk_control_get_daemon_state (PkControl *control, GError **error)
+{
+	gboolean ret;
+	gchar *state = NULL;
+
+	g_return_val_if_fail (PK_IS_CONTROL (control), NULL);
+	g_return_val_if_fail (error == NULL || *error == NULL, NULL);
+
+	/* call D-Bus sync */
+	ret = dbus_g_proxy_call (control->priv->proxy, "GetDaemonState", error,
+				 G_TYPE_INVALID,
+				 G_TYPE_STRING, &state,
+				 G_TYPE_INVALID);
+	if (!ret) {
+		/* fix up the D-Bus error */
+		if (error != NULL)
+			pk_control_fixup_dbus_error (*error);
+		goto out;
+	}
+out:
+	return state;
+}
+
+/**
+ * pk_control_get_backend_detail:
+ * @control: a valid #PkControl instance
+ * @name: the name of the backend
+ * @author: the author of the backend
+ * @error: a %GError to put the error code and message in, or %NULL
+ *
+ * The backend detail is useful for the pk-backend-status program, or for
+ * automatic bugreports.
+ *
+ * Return value: %TRUE if the daemon serviced the request
+ **/
+gboolean
+pk_control_get_backend_detail (PkControl *control, gchar **name, gchar **author, GError **error)
+{
+	gboolean ret;
+	gchar *tname;
+	gchar *tauthor;
+
+	g_return_val_if_fail (PK_IS_CONTROL (control), FALSE);
+	g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+
+	/* call D-Bus sync */
+	ret = dbus_g_proxy_call (control->priv->proxy, "GetBackendDetail", error,
+				 G_TYPE_INVALID,
+				 G_TYPE_STRING, &tname,
+				 G_TYPE_STRING, &tauthor,
+				 G_TYPE_INVALID);
+	if (!ret) {
+		/* fix up the D-Bus error */
+		if (error != NULL)
+			pk_control_fixup_dbus_error (*error);
+		goto out;
+	}
+
+	/* copy needed bits */
+	if (name != NULL)
+		*name = tname;
+	else
+		g_free (tname);
+	/* copy needed bits */
+	if (author != NULL)
+		*author = tauthor;
+	else
+		g_free (tauthor);
+out:
+	return ret;
+}
+
+/**
  * pk_control_set_properties_collect_cb:
  **/
 static void
@@ -1484,6 +1618,8 @@ pk_control_set_properties_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkControl
 				     &hash,
 				     G_TYPE_INVALID);
 	if (!ret) {
+		/* fix up the D-Bus error */
+		pk_control_fixup_dbus_error (error);
 		egg_warning ("failed to get properties: %s", error->message);
 		return;
 	}
diff --git a/lib/packagekit-glib2/pk-control.h b/lib/packagekit-glib2/pk-control.h
index 6f88c60..539106a 100644
--- a/lib/packagekit-glib2/pk-control.h
+++ b/lib/packagekit-glib2/pk-control.h
@@ -51,6 +51,18 @@ typedef struct _PkControlPrivate	PkControlPrivate;
 typedef struct _PkControl		PkControl;
 typedef struct _PkControlClass		PkControlClass;
 
+/**
+ * PkControlError:
+ * @PK_CONTROL_ERROR_FAILED: the transaction failed for an unknown reason
+ *
+ * Errors that can be thrown
+ */
+typedef enum
+{
+	PK_CONTROL_ERROR_FAILED,
+	PK_CONTROL_ERROR_CANNOT_START_DAEMON
+} PkControlError;
+
 struct _PkControl
 {
 	 GObject		 parent;
@@ -149,6 +161,12 @@ void		 pk_control_can_authorize_async		(PkControl		*control,
 PkAuthorizeEnum	 pk_control_can_authorize_finish	(PkControl		*control,
 							 GAsyncResult		*res,
 							 GError			**error);
+gchar		*pk_control_get_daemon_state		(PkControl		*control,
+							 GError			**error);
+gboolean	 pk_control_get_backend_detail		(PkControl		*control,
+							 gchar			**name,
+							 gchar			**author,
+							 GError			**error);
 
 G_END_DECLS
 
commit 261e9ed1167e0a55ede3095a1be63ed3d695d805
Author: Richard Hughes <richard at hughsie.com>
Date:   Fri Aug 28 16:08:59 2009 +0100

    glib2: fill in some more of the PkControl async actions

diff --git a/lib/packagekit-glib2/pk-client.c b/lib/packagekit-glib2/pk-client.c
index dca9e1e..8a0acef 100644
--- a/lib/packagekit-glib2/pk-client.c
+++ b/lib/packagekit-glib2/pk-client.c
@@ -935,6 +935,7 @@ pk_client_generic_finish (PkClient *client, GAsyncResult *res, GError **error)
 
 	g_return_val_if_fail (PK_IS_CLIENT (client), NULL);
 	g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (res), NULL);
+	g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
 
 	simple = G_SIMPLE_ASYNC_RESULT (res);
 	if (g_simple_async_result_propagate_error (simple, error))
diff --git a/lib/packagekit-glib2/pk-control.c b/lib/packagekit-glib2/pk-control.c
index b466529..71c08e2 100644
--- a/lib/packagekit-glib2/pk-control.c
+++ b/lib/packagekit-glib2/pk-control.c
@@ -81,7 +81,7 @@ typedef struct {
 	DBusGProxyCall		*call;
 	GCancellable		*cancellable;
 	GSimpleAsyncResult	*res;
-	PkAuthorizeEnum		 can_authorize;
+	PkAuthorizeEnum		 authorize;
 	PkBitfield		*bitfield;
 	PkControl		*control;
 	PkNetworkEnum		 network;
@@ -208,6 +208,7 @@ pk_control_get_tid_finish (PkControl *control, GAsyncResult *res, GError **error
 
 	g_return_val_if_fail (PK_IS_CONTROL (control), NULL);
 	g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (res), NULL);
+	g_return_val_if_fail (error == NULL || *error == NULL, NULL);
 
 	simple = G_SIMPLE_ASYNC_RESULT (res);
 	source_tag = g_simple_async_result_get_source_tag (simple);
@@ -339,6 +340,7 @@ pk_control_get_mime_types_finish (PkControl *control, GAsyncResult *res, GError
 
 	g_return_val_if_fail (PK_IS_CONTROL (control), NULL);
 	g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (res), NULL);
+	g_return_val_if_fail (error == NULL || *error == NULL, NULL);
 
 	simple = G_SIMPLE_ASYNC_RESULT (res);
 	source_tag = g_simple_async_result_get_source_tag (simple);
@@ -353,8 +355,6 @@ pk_control_get_mime_types_finish (PkControl *control, GAsyncResult *res, GError
 
 /***************************************************************************************************/
 
-/***************************************************************************************************/
-
 /**
  * pk_control_set_proxy_state_finish:
  **/
@@ -473,6 +473,7 @@ pk_control_set_proxy_finish (PkControl *control, GAsyncResult *res, GError **err
 
 	g_return_val_if_fail (PK_IS_CONTROL (control), FALSE);
 	g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (res), FALSE);
+	g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
 
 	simple = G_SIMPLE_ASYNC_RESULT (res);
 	source_tag = g_simple_async_result_get_source_tag (simple);
@@ -486,7 +487,6 @@ pk_control_set_proxy_finish (PkControl *control, GAsyncResult *res, GError **err
 }
 
 /***************************************************************************************************/
-/***************************************************************************************************/
 
 /**
  * pk_control_bitfield_copy:
@@ -619,6 +619,7 @@ pk_control_get_roles_finish (PkControl *control, GAsyncResult *res, GError **err
 
 	g_return_val_if_fail (PK_IS_CONTROL (control), NULL);
 	g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (res), NULL);
+	g_return_val_if_fail (error == NULL || *error == NULL, NULL);
 
 	simple = G_SIMPLE_ASYNC_RESULT (res);
 	source_tag = g_simple_async_result_get_source_tag (simple);
@@ -751,6 +752,7 @@ pk_control_get_filters_finish (PkControl *control, GAsyncResult *res, GError **e
 
 	g_return_val_if_fail (PK_IS_CONTROL (control), NULL);
 	g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (res), NULL);
+	g_return_val_if_fail (error == NULL || *error == NULL, NULL);
 
 	simple = G_SIMPLE_ASYNC_RESULT (res);
 	source_tag = g_simple_async_result_get_source_tag (simple);
@@ -883,6 +885,7 @@ pk_control_get_groups_finish (PkControl *control, GAsyncResult *res, GError **er
 
 	g_return_val_if_fail (PK_IS_CONTROL (control), NULL);
 	g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (res), NULL);
+	g_return_val_if_fail (error == NULL || *error == NULL, NULL);
 
 	simple = G_SIMPLE_ASYNC_RESULT (res);
 	source_tag = g_simple_async_result_get_source_tag (simple);
@@ -898,6 +901,552 @@ pk_control_get_groups_finish (PkControl *control, GAsyncResult *res, GError **er
 /***************************************************************************************************/
 
 /**
+ * pk_control_get_transaction_list_state_finish:
+ **/
+static void
+pk_control_get_transaction_list_state_finish (PkControlState *state, GError *error)
+{
+	/* remove weak ref */
+	if (state->control != NULL)
+		g_object_remove_weak_pointer (G_OBJECT (state->control), (gpointer) &state->control);
+
+	/* cancel */
+	if (state->cancellable != NULL) {
+		g_cancellable_cancel (state->cancellable);
+		g_object_unref (state->cancellable);
+	}
+
+	/* get result */
+	if (state->transaction_list != NULL) {
+		g_simple_async_result_set_op_res_gpointer (state->res, g_strdupv (state->transaction_list), (GDestroyNotify) g_strfreev);
+	} else {
+		g_simple_async_result_set_from_error (state->res, error);
+		g_error_free (error);
+	}
+
+	/* complete */
+	g_simple_async_result_complete_in_idle (state->res);
+
+	/* deallocate */
+	g_strfreev (state->transaction_list);
+	g_object_unref (state->res);
+	g_slice_free (PkControlState, state);
+}
+
+/**
+ * pk_control_get_transaction_list_cb:
+ **/
+static void
+pk_control_get_transaction_list_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkControlState *state)
+{
+	GError *error = NULL;
+	gchar **temp = NULL;
+	gboolean ret;
+
+	/* get the result */
+	ret = dbus_g_proxy_end_call (proxy, call, &error,
+				     G_TYPE_STRV, &temp,
+				     G_TYPE_INVALID);
+	if (!ret) {
+		egg_warning ("failed: %s", error->message);
+		pk_control_get_transaction_list_state_finish (state, error);
+		goto out;
+	}
+
+	/* finished this call */
+	state->call = NULL;
+
+	/* save data */
+	state->transaction_list = g_strdupv (temp);
+
+	/* we're done */
+	pk_control_get_transaction_list_state_finish (state, error);
+out:
+	g_strfreev (temp);
+}
+
+/**
+ * pk_control_get_transaction_list_async:
+ * @control: a valid #PkControl instance
+ * @cancellable: a #GCancellable or %NULL
+ * @callback: the function to run on completion
+ * @user_data: the data to pass to @callback
+ *
+ * Gets a transacton ID from the daemon.
+ **/
+void
+pk_control_get_transaction_list_async (PkControl *control, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data)
+{
+	GSimpleAsyncResult *res;
+	PkControlState *state;
+
+	g_return_if_fail (PK_IS_CONTROL (control));
+	g_return_if_fail (callback != NULL);
+
+	res = g_simple_async_result_new (G_OBJECT (control), callback, user_data, pk_control_get_transaction_list_async);
+
+	/* save state */
+	state = g_slice_new0 (PkControlState);
+	state->res = g_object_ref (res);
+	state->cancellable = cancellable;
+	state->control = control;
+	g_object_add_weak_pointer (G_OBJECT (state->control), (gpointer) &state->control);
+
+	/* call D-Bus get_transaction_list async */
+	state->call = dbus_g_proxy_begin_call (control->priv->proxy, "GetTransactionList",
+					       (DBusGProxyCallNotify) pk_control_get_transaction_list_cb, state,
+					       NULL, G_TYPE_INVALID);
+	g_object_unref (res);
+}
+
+/**
+ * pk_control_get_transaction_list_finish:
+ * @control: a valid #PkControl instance
+ * @res: the #GAsyncResult
+ * @error: A #GError or %NULL
+ *
+ * Gets the result from the asynchronous function.
+ *
+ * Return value: the ID, or %NULL if unset
+ **/
+gchar **
+pk_control_get_transaction_list_finish (PkControl *control, GAsyncResult *res, GError **error)
+{
+	GSimpleAsyncResult *simple;
+	gpointer source_tag;
+
+	g_return_val_if_fail (PK_IS_CONTROL (control), NULL);
+	g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (res), NULL);
+	g_return_val_if_fail (error == NULL || *error == NULL, NULL);
+
+	simple = G_SIMPLE_ASYNC_RESULT (res);
+	source_tag = g_simple_async_result_get_source_tag (simple);
+
+	g_return_val_if_fail (source_tag == pk_control_get_transaction_list_async, NULL);
+
+	if (g_simple_async_result_propagate_error (simple, error))
+		return NULL;
+
+	return g_simple_async_result_get_op_res_gpointer (simple);
+}
+
+/***************************************************************************************************/
+
+/**
+ * pk_control_get_time_since_action_state_finish:
+ **/
+static void
+pk_control_get_time_since_action_state_finish (PkControlState *state, GError *error)
+{
+	/* remove weak ref */
+	if (state->control != NULL)
+		g_object_remove_weak_pointer (G_OBJECT (state->control), (gpointer) &state->control);
+
+	/* cancel */
+	if (state->cancellable != NULL) {
+		g_cancellable_cancel (state->cancellable);
+		g_object_unref (state->cancellable);
+	}
+
+	/* get result */
+	if (state->time != 0) {
+		g_simple_async_result_set_op_res_gssize (state->res, state->time);
+	} else {
+		g_simple_async_result_set_from_error (state->res, error);
+		g_error_free (error);
+	}
+
+	/* complete */
+	g_simple_async_result_complete_in_idle (state->res);
+
+	/* deallocate */
+	g_object_unref (state->res);
+	g_slice_free (PkControlState, state);
+}
+
+/**
+ * pk_control_get_time_since_action_cb:
+ **/
+static void
+pk_control_get_time_since_action_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkControlState *state)
+{
+	GError *error = NULL;
+	gboolean ret;
+	guint seconds;
+
+	/* get the result */
+	ret = dbus_g_proxy_end_call (proxy, call, &error,
+				     G_TYPE_UINT, &seconds,
+				     G_TYPE_INVALID);
+	if (!ret) {
+		egg_warning ("failed: %s", error->message);
+		pk_control_get_time_since_action_state_finish (state, error);
+		goto out;
+	}
+
+	/* finished this call */
+	state->call = NULL;
+
+	/* save data */
+	state->time = seconds;
+	if (state->time == 0) {
+		error = g_error_new (1, 0, "could not get time");
+		pk_control_get_time_since_action_state_finish (state, error);
+		goto out;
+	}
+
+	/* we're done */
+	pk_control_get_time_since_action_state_finish (state, error);
+out:
+	return;
+}
+
+/**
+ * pk_control_get_time_since_action_async:
+ * @control: a valid #PkControl instance
+ * @cancellable: a #GCancellable or %NULL
+ * @callback: the function to run on completion
+ * @user_data: the data to pass to @callback
+ *
+ * Gets a transacton ID from the daemon.
+ **/
+void
+pk_control_get_time_since_action_async (PkControl *control, PkRoleEnum role, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data)
+{
+	GSimpleAsyncResult *res;
+	PkControlState *state;
+	const gchar *role_text;
+
+	g_return_if_fail (PK_IS_CONTROL (control));
+	g_return_if_fail (callback != NULL);
+
+	res = g_simple_async_result_new (G_OBJECT (control), callback, user_data, pk_control_get_time_since_action_async);
+
+	/* save state */
+	state = g_slice_new0 (PkControlState);
+	state->res = g_object_ref (res);
+	state->cancellable = cancellable;
+	state->control = control;
+	g_object_add_weak_pointer (G_OBJECT (state->control), (gpointer) &state->control);
+
+	/* call D-Bus get_time_since_action async */
+	role_text = pk_role_enum_to_text (role);
+	state->call = dbus_g_proxy_begin_call (control->priv->proxy, "GetTimeSinceAction",
+					       (DBusGProxyCallNotify) pk_control_get_time_since_action_cb, state, NULL,
+					       G_TYPE_STRING, role_text,
+					       G_TYPE_INVALID);
+	g_object_unref (res);
+}
+
+/**
+ * pk_control_get_time_since_action_finish:
+ * @control: a valid #PkControl instance
+ * @res: the #GAsyncResult
+ * @error: A #GError or %NULL
+ *
+ * Gets the result from the asynchronous function.
+ *
+ * Return value: the ID, or %NULL if unset
+ **/
+guint
+pk_control_get_time_since_action_finish (PkControl *control, GAsyncResult *res, GError **error)
+{
+	GSimpleAsyncResult *simple;
+	gpointer source_tag;
+
+	g_return_val_if_fail (PK_IS_CONTROL (control), 0);
+	g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (res), 0);
+	g_return_val_if_fail (error == NULL || *error == NULL, 0);
+
+	simple = G_SIMPLE_ASYNC_RESULT (res);
+	source_tag = g_simple_async_result_get_source_tag (simple);
+
+	g_return_val_if_fail (source_tag == pk_control_get_time_since_action_async, 0);
+
+	if (g_simple_async_result_propagate_error (simple, error))
+		return 0;
+
+	return (guint) g_simple_async_result_get_op_res_gssize (simple);
+}
+
+/***************************************************************************************************/
+
+/**
+ * pk_control_get_network_state_state_finish:
+ **/
+static void
+pk_control_get_network_state_state_finish (PkControlState *state, GError *error)
+{
+	/* remove weak ref */
+	if (state->control != NULL)
+		g_object_remove_weak_pointer (G_OBJECT (state->control), (gpointer) &state->control);
+
+	/* cancel */
+	if (state->cancellable != NULL) {
+		g_cancellable_cancel (state->cancellable);
+		g_object_unref (state->cancellable);
+	}
+
+	/* get result */
+	if (state->network != PK_NETWORK_ENUM_UNKNOWN) {
+		g_simple_async_result_set_op_res_gssize (state->res, state->network);
+	} else {
+		g_simple_async_result_set_from_error (state->res, error);
+		g_error_free (error);
+	}
+
+	/* complete */
+	g_simple_async_result_complete_in_idle (state->res);
+
+	/* deallocate */
+	g_object_unref (state->res);
+	g_slice_free (PkControlState, state);
+}
+
+/**
+ * pk_control_get_network_state_cb:
+ **/
+static void
+pk_control_get_network_state_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkControlState *state)
+{
+	GError *error = NULL;
+	gboolean ret;
+	gchar *network_state = NULL;
+
+	/* get the result */
+	ret = dbus_g_proxy_end_call (proxy, call, &error,
+				     G_TYPE_STRING, &network_state,
+				     G_TYPE_INVALID);
+	if (!ret) {
+		egg_warning ("failed: %s", error->message);
+		pk_control_get_network_state_state_finish (state, error);
+		goto out;
+	}
+
+	/* finished this call */
+	state->call = NULL;
+
+	/* save data */
+	state->network = pk_network_enum_from_text (network_state);
+	if (state->network == PK_NETWORK_ENUM_UNKNOWN) {
+		error = g_error_new (1, 0, "could not get state");
+		pk_control_get_network_state_state_finish (state, error);
+		goto out;
+	}
+
+	/* we're done */
+	pk_control_get_network_state_state_finish (state, error);
+out:
+	g_free (network_state);
+	return;
+}
+
+/**
+ * pk_control_get_network_state_async:
+ * @control: a valid #PkControl instance
+ * @cancellable: a #GCancellable or %NULL
+ * @callback: the function to run on completion
+ * @user_data: the data to pass to @callback
+ *
+ * Gets a transacton ID from the daemon.
+ **/
+void
+pk_control_get_network_state_async (PkControl *control, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data)
+{
+	GSimpleAsyncResult *res;
+	PkControlState *state;
+
+	g_return_if_fail (PK_IS_CONTROL (control));
+	g_return_if_fail (callback != NULL);
+
+	res = g_simple_async_result_new (G_OBJECT (control), callback, user_data, pk_control_get_network_state_async);
+
+	/* save state */
+	state = g_slice_new0 (PkControlState);
+	state->res = g_object_ref (res);
+	state->network = PK_NETWORK_ENUM_UNKNOWN;
+	state->cancellable = cancellable;
+	state->control = control;
+	g_object_add_weak_pointer (G_OBJECT (state->control), (gpointer) &state->control);
+
+	/* call D-Bus async */
+	state->call = dbus_g_proxy_begin_call (control->priv->proxy, "GetNetworkState",
+					       (DBusGProxyCallNotify) pk_control_get_network_state_cb, state, NULL,
+					       G_TYPE_INVALID);
+	g_object_unref (res);
+}
+
+/**
+ * pk_control_get_network_state_finish:
+ * @control: a valid #PkControl instance
+ * @res: the #GAsyncResult
+ * @error: A #GError or %NULL
+ *
+ * Gets the result from the asynchronous function.
+ *
+ * Return value: the ID, or %NULL if unset
+ **/
+PkNetworkEnum
+pk_control_get_network_state_finish (PkControl *control, GAsyncResult *res, GError **error)
+{
+	GSimpleAsyncResult *simple;
+	gpointer source_tag;
+
+	g_return_val_if_fail (PK_IS_CONTROL (control), PK_NETWORK_ENUM_UNKNOWN);
+	g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (res), PK_NETWORK_ENUM_UNKNOWN);
+
+	simple = G_SIMPLE_ASYNC_RESULT (res);
+	source_tag = g_simple_async_result_get_source_tag (simple);
+
+	g_return_val_if_fail (source_tag == pk_control_get_network_state_async, PK_NETWORK_ENUM_UNKNOWN);
+
+	if (g_simple_async_result_propagate_error (simple, error))
+		return PK_NETWORK_ENUM_UNKNOWN;
+
+	return (PkNetworkEnum) g_simple_async_result_get_op_res_gssize (simple);
+}
+
+/***************************************************************************************************/
+
+/**
+ * pk_control_can_authorize_state_finish:
+ **/
+static void
+pk_control_can_authorize_state_finish (PkControlState *state, GError *error)
+{
+	/* remove weak ref */
+	if (state->control != NULL)
+		g_object_remove_weak_pointer (G_OBJECT (state->control), (gpointer) &state->control);
+
+	/* cancel */
+	if (state->cancellable != NULL) {
+		g_cancellable_cancel (state->cancellable);
+		g_object_unref (state->cancellable);
+	}
+
+	/* get result */
+	if (state->authorize != PK_AUTHORIZE_ENUM_UNKNOWN) {
+		g_simple_async_result_set_op_res_gssize (state->res, state->authorize);
+	} else {
+		g_simple_async_result_set_from_error (state->res, error);
+		g_error_free (error);
+	}
+
+	/* complete */
+	g_simple_async_result_complete_in_idle (state->res);
+
+	/* deallocate */
+	g_object_unref (state->res);
+	g_slice_free (PkControlState, state);
+}
+
+/**
+ * pk_control_can_authorize_cb:
+ **/
+static void
+pk_control_can_authorize_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkControlState *state)
+{
+	GError *error = NULL;
+	gboolean ret;
+	gchar *authorize_state = NULL;
+
+	/* get the result */
+	ret = dbus_g_proxy_end_call (proxy, call, &error,
+				     G_TYPE_STRING, &authorize_state,
+				     G_TYPE_INVALID);
+	if (!ret) {
+		egg_warning ("failed: %s", error->message);
+		pk_control_can_authorize_state_finish (state, error);
+		goto out;
+	}
+
+	/* finished this call */
+	state->call = NULL;
+
+	/* save data */
+	state->authorize = pk_authorize_type_enum_from_text (authorize_state);
+	if (state->authorize == PK_AUTHORIZE_ENUM_UNKNOWN) {
+		error = g_error_new (1, 0, "could not get state");
+		pk_control_can_authorize_state_finish (state, error);
+		goto out;
+	}
+
+	/* we're done */
+	pk_control_can_authorize_state_finish (state, error);
+out:
+	g_free (authorize_state);
+	return;
+}
+
+/**
+ * pk_control_can_authorize_async:
+ * @control: a valid #PkControl instance
+ * @cancellable: a #GCancellable or %NULL
+ * @callback: the function to run on completion
+ * @user_data: the data to pass to @callback
+ *
+ * Gets a transacton ID from the daemon.
+ **/
+void
+pk_control_can_authorize_async (PkControl *control, const gchar *action_id, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data)
+{
+	GSimpleAsyncResult *res;
+	PkControlState *state;
+
+	g_return_if_fail (PK_IS_CONTROL (control));
+	g_return_if_fail (callback != NULL);
+
+	res = g_simple_async_result_new (G_OBJECT (control), callback, user_data, pk_control_can_authorize_async);
+
+	/* save state */
+	state = g_slice_new0 (PkControlState);
+	state->res = g_object_ref (res);
+	state->cancellable = cancellable;
+	state->control = control;
+	state->authorize = PK_AUTHORIZE_ENUM_UNKNOWN;
+	g_object_add_weak_pointer (G_OBJECT (state->control), (gpointer) &state->control);
+
+	/* call D-Bus async */
+	state->call = dbus_g_proxy_begin_call (control->priv->proxy, "CanAuthorize",
+					       (DBusGProxyCallNotify) pk_control_can_authorize_cb, state, NULL,
+					       G_TYPE_STRING, action_id,
+					       G_TYPE_INVALID);
+	g_object_unref (res);
+}
+
+/**
+ * pk_control_can_authorize_finish:
+ * @control: a valid #PkControl instance
+ * @res: the #GAsyncResult
+ * @error: A #GError or %NULL
+ *
+ * Gets the result from the asynchronous function.
+ *
+ * Return value: the ID, or %NULL if unset
+ **/
+PkAuthorizeEnum
+pk_control_can_authorize_finish (PkControl *control, GAsyncResult *res, GError **error)
+{
+	GSimpleAsyncResult *simple;
+	gpointer source_tag;
+
+	g_return_val_if_fail (PK_IS_CONTROL (control), PK_AUTHORIZE_ENUM_UNKNOWN);
+	g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (res), PK_AUTHORIZE_ENUM_UNKNOWN);
+
+	simple = G_SIMPLE_ASYNC_RESULT (res);
+	source_tag = g_simple_async_result_get_source_tag (simple);
+
+	g_return_val_if_fail (source_tag == pk_control_can_authorize_async, PK_AUTHORIZE_ENUM_UNKNOWN);
+
+	if (g_simple_async_result_propagate_error (simple, error))
+		return PK_AUTHORIZE_ENUM_UNKNOWN;
+
+	return (PkAuthorizeEnum) g_simple_async_result_get_op_res_gssize (simple);
+}
+
+/***************************************************************************************************/
+
+/**
  * pk_control_set_properties_collect_cb:
  **/
 static void
@@ -1281,6 +1830,60 @@ pk_control_test_get_groups_cb (GObject *object, GAsyncResult *res, EggTest *test
 	egg_test_loop_quit (test);
 }
 
+static void
+pk_control_test_get_time_since_action_cb (GObject *object, GAsyncResult *res, EggTest *test)
+{
+	PkControl *control = PK_CONTROL (object);
+	GError *error = NULL;
+	guint seconds;
+
+	/* get the result */
+	seconds = pk_control_get_time_since_action_finish (control, res, &error);
+	if (seconds == 0) {
+		egg_test_failed (test, "failed to get time: %s", error->message);
+		g_error_free (error);
+		return;
+	}
+
+	egg_test_loop_quit (test);
+}
+
+static void
+pk_control_test_get_network_state_cb (GObject *object, GAsyncResult *res, EggTest *test)
+{
+	PkControl *control = PK_CONTROL (object);
+	GError *error = NULL;
+	PkNetworkEnum network;
+
+	/* get the result */
+	network = pk_control_get_network_state_finish (control, res, &error);
+	if (network == PK_NETWORK_ENUM_UNKNOWN) {
+		egg_test_failed (test, "failed to get network state: %s", error->message);
+		g_error_free (error);
+		return;
+	}
+
+	egg_test_loop_quit (test);
+}
+
+static void
+pk_control_test_can_authorize_cb (GObject *object, GAsyncResult *res, EggTest *test)
+{
+	PkControl *control = PK_CONTROL (object);
+	GError *error = NULL;
+	PkAuthorizeEnum auth;
+
+	/* get the result */
+	auth = pk_control_can_authorize_finish (control, res, &error);
+	if (auth == PK_AUTHORIZE_ENUM_UNKNOWN) {
+		egg_test_failed (test, "failed to get auth: %s", error->message);
+		g_error_free (error);
+		return;
+	}
+
+	egg_test_loop_quit (test);
+}
+
 void
 pk_control_test (EggTest *test)
 {
@@ -1325,6 +1928,25 @@ pk_control_test (EggTest *test)
 	egg_test_loop_wait (test, 5000);
 	egg_test_success (test, "got groups in %i", egg_test_elapsed (test));
 
+	/************************************************************/
+	egg_test_title (test, "get time since async");
+	pk_control_get_time_since_action_async (control, PK_ROLE_ENUM_GET_UPDATES, NULL, (GAsyncReadyCallback) pk_control_test_get_time_since_action_cb, test);
+	egg_test_loop_wait (test, 5000);
+	egg_test_success (test, "got get time since in %i", egg_test_elapsed (test));
+
+	/************************************************************/
+	egg_test_title (test, "get network state async");
+	pk_control_get_network_state_async (control, NULL, (GAsyncReadyCallback) pk_control_test_get_network_state_cb, test);
+	egg_test_loop_wait (test, 5000);
+	egg_test_success (test, "get network state in %i", egg_test_elapsed (test));
+
+	/************************************************************/
+	egg_test_title (test, "get auth state async");
+	pk_control_can_authorize_async (control, "org.freedesktop.packagekit.system-update", NULL,
+					(GAsyncReadyCallback) pk_control_test_can_authorize_cb, test);
+	egg_test_loop_wait (test, 5000);
+	egg_test_success (test, "get auth state in %i", egg_test_elapsed (test));
+
 #if 0
 	/************************************************************/
 	egg_test_title (test, "version major");
diff --git a/lib/packagekit-glib2/pk-control.h b/lib/packagekit-glib2/pk-control.h
index 99a6c37..6f88c60 100644
--- a/lib/packagekit-glib2/pk-control.h
+++ b/lib/packagekit-glib2/pk-control.h
@@ -128,15 +128,17 @@ PkNetworkEnum	 pk_control_get_network_state_finish	(PkControl		*control,
 							 GError			**error);
 void		 pk_control_get_time_since_action_async	(PkControl		*control,
 							 PkRoleEnum		 role,
-							 guint			*seconds,
 							 GCancellable		*cancellable,
 							 GAsyncReadyCallback	 callback,
 							 gpointer		 user_data);
-gboolean	 pk_control_get_time_since_action_finish (PkControl		*control,
+guint		 pk_control_get_time_since_action_finish (PkControl		*control,
 							 GAsyncResult		*res,
 							 GError			**error);
-void		 pk_control_transaction_list_get_async	(PkControl		*control);
-gchar		**pk_control_transaction_list_get_finish (PkControl		*control,
+void		 pk_control_get_transaction_list_async	(PkControl		*control,
+							 GCancellable		*cancellable,
+							 GAsyncReadyCallback	 callback,
+							 gpointer		 user_data);
+gchar		**pk_control_get_transaction_list_finish (PkControl		*control,
 							 GAsyncResult		*res,
 							 GError			**error);
 void		 pk_control_can_authorize_async		(PkControl		*control,
diff --git a/lib/packagekit-glib2/pk-package-sack.c b/lib/packagekit-glib2/pk-package-sack.c
index 74345fc..fb21572 100644
--- a/lib/packagekit-glib2/pk-package-sack.c
+++ b/lib/packagekit-glib2/pk-package-sack.c
@@ -488,6 +488,7 @@ pk_package_sack_merge_generic_finish (PkPackageSack *package_sack, GAsyncResult
 
 	g_return_val_if_fail (PK_IS_PACKAGE_SACK (package_sack), FALSE);
 	g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (res), FALSE);
+	g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
 
 	simple = G_SIMPLE_ASYNC_RESULT (res);
 
commit 9a7aeb6ba8f914b62796990e7a3f034d4bc33af5
Author: Richard Hughes <richard at hughsie.com>
Date:   Fri Aug 28 14:29:01 2009 +0100

    glib2: add pk_control_get_[roles|filters|groups]_async()

diff --git a/lib/packagekit-glib2/pk-control.c b/lib/packagekit-glib2/pk-control.c
index e5c86f9..b466529 100644
--- a/lib/packagekit-glib2/pk-control.c
+++ b/lib/packagekit-glib2/pk-control.c
@@ -82,9 +82,7 @@ typedef struct {
 	GCancellable		*cancellable;
 	GSimpleAsyncResult	*res;
 	PkAuthorizeEnum		 can_authorize;
-	PkBitfield		 filters;
-	PkBitfield		 groups;
-	PkBitfield		 roles;
+	PkBitfield		*bitfield;
 	PkControl		*control;
 	PkNetworkEnum		 network;
 } PkControlState;
@@ -119,6 +117,7 @@ pk_control_get_tid_state_finish (PkControlState *state, GError *error)
 	g_simple_async_result_complete_in_idle (state->res);
 
 	/* deallocate */
+	g_free (state->tid);
 	g_object_unref (state->res);
 	g_slice_free (PkControlState, state);
 }
@@ -251,6 +250,7 @@ pk_control_get_mime_types_state_finish (PkControlState *state, GError *error)
 	g_simple_async_result_complete_in_idle (state->res);
 
 	/* deallocate */
+	g_strfreev (state->mime_types);
 	g_object_unref (state->res);
 	g_slice_free (PkControlState, state);
 }
@@ -486,6 +486,416 @@ pk_control_set_proxy_finish (PkControl *control, GAsyncResult *res, GError **err
 }
 
 /***************************************************************************************************/
+/***************************************************************************************************/
+
+/**
+ * pk_control_bitfield_copy:
+ **/
+static PkBitfield *
+pk_control_bitfield_copy (PkBitfield *value)
+{
+	PkBitfield *new;
+	new = g_new0 (PkBitfield, 1);
+	*new = *value;
+	return new;
+}
+
+/**
+ * pk_control_get_roles_state_finish:
+ **/
+static void
+pk_control_get_roles_state_finish (PkControlState *state, GError *error)
+{
+	/* remove weak ref */
+	if (state->control != NULL)
+		g_object_remove_weak_pointer (G_OBJECT (state->control), (gpointer) &state->control);
+
+	/* cancel */
+	if (state->cancellable != NULL) {
+		g_cancellable_cancel (state->cancellable);
+		g_object_unref (state->cancellable);
+	}
+
+	/* get result */
+	if (state->bitfield != NULL) {
+		g_simple_async_result_set_op_res_gpointer (state->res, pk_control_bitfield_copy (state->bitfield), g_free);
+	} else {
+		g_simple_async_result_set_from_error (state->res, error);
+		g_error_free (error);
+	}
+
+	/* complete */
+	g_simple_async_result_complete_in_idle (state->res);
+
+	/* deallocate */
+	g_free (state->bitfield);
+	g_object_unref (state->res);
+	g_slice_free (PkControlState, state);
+}
+
+/**
+ * pk_control_get_roles_cb:
+ **/
+static void
+pk_control_get_roles_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkControlState *state)
+{
+	GError *error = NULL;
+	gchar *roles = NULL;
+	gboolean ret;
+	PkBitfield bitfield;
+
+	/* get the result */
+	ret = dbus_g_proxy_end_call (proxy, call, &error,
+				     G_TYPE_STRING, &roles,
+				     G_TYPE_INVALID);
+	if (!ret) {
+		egg_warning ("failed: %s", error->message);
+		pk_control_get_roles_state_finish (state, error);
+		goto out;
+	}
+
+	/* finished this call */
+	state->call = NULL;
+
+	/* save data */
+	bitfield = pk_role_bitfield_from_text (roles);
+	state->bitfield = pk_control_bitfield_copy (&bitfield);
+
+	/* we're done */
+	pk_control_get_roles_state_finish (state, error);
+out:
+	g_free (roles);
+}
+
+/**
+ * pk_control_get_roles_async:
+ * @control: a valid #PkControl instance
+ * @cancellable: a #GCancellable or %NULL
+ * @callback: the function to run on completion
+ * @user_data: the data to pass to @callback
+ *
+ * Gets a transacton ID from the daemon.
+ **/
+void
+pk_control_get_roles_async (PkControl *control, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data)
+{
+	GSimpleAsyncResult *res;
+	PkControlState *state;
+
+	g_return_if_fail (PK_IS_CONTROL (control));
+	g_return_if_fail (callback != NULL);
+
+	res = g_simple_async_result_new (G_OBJECT (control), callback, user_data, pk_control_get_roles_async);
+
+	/* save state */
+	state = g_slice_new0 (PkControlState);
+	state->res = g_object_ref (res);
+	state->cancellable = cancellable;
+	state->control = control;
+	g_object_add_weak_pointer (G_OBJECT (state->control), (gpointer) &state->control);
+
+	/* call D-Bus get_roles async */
+	state->call = dbus_g_proxy_begin_call (control->priv->proxy, "GetActions", /* not GetRoles, just get over it... */
+					       (DBusGProxyCallNotify) pk_control_get_roles_cb, state,
+					       NULL, G_TYPE_INVALID);
+	g_object_unref (res);
+}
+
+/**
+ * pk_control_get_roles_finish:
+ * @control: a valid #PkControl instance
+ * @res: the #GAsyncResult
+ * @error: A #GError or %NULL
+ *
+ * Gets the result from the asynchronous function.
+ *
+ * Return value: the ID, or %NULL if unset
+ **/
+PkBitfield *
+pk_control_get_roles_finish (PkControl *control, GAsyncResult *res, GError **error)
+{
+	GSimpleAsyncResult *simple;
+	gpointer source_tag;
+
+	g_return_val_if_fail (PK_IS_CONTROL (control), NULL);
+	g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (res), NULL);
+
+	simple = G_SIMPLE_ASYNC_RESULT (res);
+	source_tag = g_simple_async_result_get_source_tag (simple);
+
+	g_return_val_if_fail (source_tag == pk_control_get_roles_async, NULL);
+
+	if (g_simple_async_result_propagate_error (simple, error))
+		return NULL;
+
+	return g_simple_async_result_get_op_res_gpointer (simple);
+}
+
+/***************************************************************************************************/
+/**
+ * pk_control_get_filters_state_finish:
+ **/
+static void
+pk_control_get_filters_state_finish (PkControlState *state, GError *error)
+{
+	/* remove weak ref */
+	if (state->control != NULL)
+		g_object_remove_weak_pointer (G_OBJECT (state->control), (gpointer) &state->control);
+
+	/* cancel */
+	if (state->cancellable != NULL) {
+		g_cancellable_cancel (state->cancellable);
+		g_object_unref (state->cancellable);
+	}
+
+	/* get result */
+	if (state->bitfield != NULL) {
+		g_simple_async_result_set_op_res_gpointer (state->res, pk_control_bitfield_copy (state->bitfield), g_free);
+	} else {
+		g_simple_async_result_set_from_error (state->res, error);
+		g_error_free (error);
+	}
+
+	/* complete */
+	g_simple_async_result_complete_in_idle (state->res);
+
+	/* deallocate */
+	g_free (state->bitfield);
+	g_object_unref (state->res);
+	g_slice_free (PkControlState, state);
+}
+
+/**
+ * pk_control_get_filters_cb:
+ **/
+static void
+pk_control_get_filters_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkControlState *state)
+{
+	GError *error = NULL;
+	gchar *filters = NULL;
+	gboolean ret;
+	PkBitfield bitfield;
+
+	/* get the result */
+	ret = dbus_g_proxy_end_call (proxy, call, &error,
+				     G_TYPE_STRING, &filters,
+				     G_TYPE_INVALID);
+	if (!ret) {
+		egg_warning ("failed: %s", error->message);
+		pk_control_get_filters_state_finish (state, error);
+		goto out;
+	}
+
+	/* finished this call */
+	state->call = NULL;
+
+	/* save data */
+	bitfield = pk_filter_bitfield_from_text (filters);
+	state->bitfield = pk_control_bitfield_copy (&bitfield);
+
+	/* we're done */
+	pk_control_get_filters_state_finish (state, error);
+out:
+	g_free (filters);
+}
+
+/**
+ * pk_control_get_filters_async:
+ * @control: a valid #PkControl instance
+ * @cancellable: a #GCancellable or %NULL
+ * @callback: the function to run on completion
+ * @user_data: the data to pass to @callback
+ *
+ * Gets a transacton ID from the daemon.
+ **/
+void
+pk_control_get_filters_async (PkControl *control, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data)
+{
+	GSimpleAsyncResult *res;
+	PkControlState *state;
+
+	g_return_if_fail (PK_IS_CONTROL (control));
+	g_return_if_fail (callback != NULL);
+
+	res = g_simple_async_result_new (G_OBJECT (control), callback, user_data, pk_control_get_filters_async);
+
+	/* save state */
+	state = g_slice_new0 (PkControlState);
+	state->res = g_object_ref (res);
+	state->cancellable = cancellable;
+	state->control = control;
+	g_object_add_weak_pointer (G_OBJECT (state->control), (gpointer) &state->control);
+
+	/* call D-Bus get_filters async */
+	state->call = dbus_g_proxy_begin_call (control->priv->proxy, "GetFilters",
+					       (DBusGProxyCallNotify) pk_control_get_filters_cb, state,
+					       NULL, G_TYPE_INVALID);
+	g_object_unref (res);
+}
+
+/**
+ * pk_control_get_filters_finish:
+ * @control: a valid #PkControl instance
+ * @res: the #GAsyncResult
+ * @error: A #GError or %NULL
+ *
+ * Gets the result from the asynchronous function.
+ *
+ * Return value: the ID, or %NULL if unset
+ **/
+PkBitfield *
+pk_control_get_filters_finish (PkControl *control, GAsyncResult *res, GError **error)
+{
+	GSimpleAsyncResult *simple;
+	gpointer source_tag;
+
+	g_return_val_if_fail (PK_IS_CONTROL (control), NULL);
+	g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (res), NULL);
+
+	simple = G_SIMPLE_ASYNC_RESULT (res);
+	source_tag = g_simple_async_result_get_source_tag (simple);
+
+	g_return_val_if_fail (source_tag == pk_control_get_filters_async, NULL);
+
+	if (g_simple_async_result_propagate_error (simple, error))
+		return NULL;
+
+	return g_simple_async_result_get_op_res_gpointer (simple);
+}
+
+/***************************************************************************************************/
+/**
+ * pk_control_get_groups_state_finish:
+ **/
+static void
+pk_control_get_groups_state_finish (PkControlState *state, GError *error)
+{
+	/* remove weak ref */
+	if (state->control != NULL)
+		g_object_remove_weak_pointer (G_OBJECT (state->control), (gpointer) &state->control);
+
+	/* cancel */
+	if (state->cancellable != NULL) {
+		g_cancellable_cancel (state->cancellable);
+		g_object_unref (state->cancellable);
+	}
+
+	/* get result */
+	if (state->bitfield != NULL) {
+		g_simple_async_result_set_op_res_gpointer (state->res, pk_control_bitfield_copy (state->bitfield), g_free);
+	} else {
+		g_simple_async_result_set_from_error (state->res, error);
+		g_error_free (error);
+	}
+
+	/* complete */
+	g_simple_async_result_complete_in_idle (state->res);
+
+	/* deallocate */
+	g_free (state->bitfield);
+	g_object_unref (state->res);
+	g_slice_free (PkControlState, state);
+}
+
+/**
+ * pk_control_get_groups_cb:
+ **/
+static void
+pk_control_get_groups_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkControlState *state)
+{
+	GError *error = NULL;
+	gchar *groups = NULL;
+	gboolean ret;
+	PkBitfield bitfield;
+
+	/* get the result */
+	ret = dbus_g_proxy_end_call (proxy, call, &error,
+				     G_TYPE_STRING, &groups,
+				     G_TYPE_INVALID);
+	if (!ret) {
+		egg_warning ("failed: %s", error->message);
+		pk_control_get_groups_state_finish (state, error);
+		goto out;
+	}
+
+	/* finished this call */
+	state->call = NULL;
+
+	/* save data */
+	bitfield = pk_group_bitfield_from_text (groups);
+	state->bitfield = pk_control_bitfield_copy (&bitfield);
+
+	/* we're done */
+	pk_control_get_groups_state_finish (state, error);
+out:
+	g_free (groups);
+}
+
+/**
+ * pk_control_get_groups_async:
+ * @control: a valid #PkControl instance
+ * @cancellable: a #GCancellable or %NULL
+ * @callback: the function to run on completion
+ * @user_data: the data to pass to @callback
+ *
+ * Gets a transacton ID from the daemon.
+ **/
+void
+pk_control_get_groups_async (PkControl *control, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data)
+{
+	GSimpleAsyncResult *res;
+	PkControlState *state;
+
+	g_return_if_fail (PK_IS_CONTROL (control));
+	g_return_if_fail (callback != NULL);
+
+	res = g_simple_async_result_new (G_OBJECT (control), callback, user_data, pk_control_get_groups_async);
+
+	/* save state */
+	state = g_slice_new0 (PkControlState);
+	state->res = g_object_ref (res);
+	state->cancellable = cancellable;
+	state->control = control;
+	g_object_add_weak_pointer (G_OBJECT (state->control), (gpointer) &state->control);
+
+	/* call D-Bus get_groups async */
+	state->call = dbus_g_proxy_begin_call (control->priv->proxy, "GetGroups",
+					       (DBusGProxyCallNotify) pk_control_get_groups_cb, state,
+					       NULL, G_TYPE_INVALID);
+	g_object_unref (res);
+}
+
+/**
+ * pk_control_get_groups_finish:
+ * @control: a valid #PkControl instance
+ * @res: the #GAsyncResult
+ * @error: A #GError or %NULL
+ *
+ * Gets the result from the asynchronous function.
+ *
+ * Return value: the ID, or %NULL if unset
+ **/
+PkBitfield *
+pk_control_get_groups_finish (PkControl *control, GAsyncResult *res, GError **error)
+{
+	GSimpleAsyncResult *simple;
+	gpointer source_tag;
+
+	g_return_val_if_fail (PK_IS_CONTROL (control), NULL);
+	g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (res), NULL);
+
+	simple = G_SIMPLE_ASYNC_RESULT (res);
+	source_tag = g_simple_async_result_get_source_tag (simple);
+
+	g_return_val_if_fail (source_tag == pk_control_get_groups_async, NULL);
+
+	if (g_simple_async_result_propagate_error (simple, error))
+		return NULL;
+
+	return g_simple_async_result_get_op_res_gpointer (simple);
+}
+
+/***************************************************************************************************/
 
 /**
  * pk_control_set_properties_collect_cb:
@@ -779,7 +1189,95 @@ pk_control_test_get_mime_types_cb (GObject *object, GAsyncResult *res, EggTest *
 		return;
 	}
 
-	egg_debug ("types = %s", types);
+	egg_test_loop_quit (test);
+}
+
+static void
+pk_control_test_get_roles_cb (GObject *object, GAsyncResult *res, EggTest *test)
+{
+	PkControl *control = PK_CONTROL (object);
+	GError *error = NULL;
+	PkBitfield *roles;
+	guint len;
+	gchar *text;
+
+	/* get the result */
+	roles = pk_control_get_roles_finish (control, res, &error);
+	if (roles == NULL) {
+		egg_test_failed (test, "failed to get roles: %s", error->message);
+		g_error_free (error);
+		return;
+	}
+
+	/* check value */
+	text = pk_role_bitfield_to_text (*roles);
+	if (g_strcmp0 (text, "cancel;get-depends;get-details;get-files;get-packages;get-repo-list;"
+			     "get-requires;get-update-detail;get-updates;install-files;install-packages;"
+			     "refresh-cache;remove-packages;repo-enable;repo-set-data;resolve;rollback;"
+			     "search-details;search-file;search-group;search-name;update-packages;update-system;"
+			     "what-provides;download-packages;get-distro-upgrades;simulate-install-packages;"
+			     "simulate-remove-packages;simulate-update-packages") != 0) {
+		egg_test_failed (test, "data incorrect: %s", text);
+		return;
+	}
+
+	g_free (text);
+	egg_test_loop_quit (test);
+}
+
+static void
+pk_control_test_get_filters_cb (GObject *object, GAsyncResult *res, EggTest *test)
+{
+	PkControl *control = PK_CONTROL (object);
+	GError *error = NULL;
+	PkBitfield *filters;
+	guint len;
+	gchar *text;
+
+	/* get the result */
+	filters = pk_control_get_filters_finish (control, res, &error);
+	if (filters == NULL) {
+		egg_test_failed (test, "failed to get filters: %s", error->message);
+		g_error_free (error);
+		return;
+	}
+
+	/* check value */
+	text = pk_filter_bitfield_to_text (*filters);
+	if (g_strcmp0 (text, "installed;devel;gui") != 0) {
+		egg_test_failed (test, "data incorrect: %s", text);
+		return;
+	}
+
+	g_free (text);
+	egg_test_loop_quit (test);
+}
+
+static void
+pk_control_test_get_groups_cb (GObject *object, GAsyncResult *res, EggTest *test)
+{
+	PkControl *control = PK_CONTROL (object);
+	GError *error = NULL;
+	PkBitfield *groups;
+	guint len;
+	gchar *text;
+
+	/* get the result */
+	groups = pk_control_get_groups_finish (control, res, &error);
+	if (groups == NULL) {
+		egg_test_failed (test, "failed to get groups: %s", error->message);
+		g_error_free (error);
+		return;
+	}
+
+	/* check value */
+	text = pk_group_bitfield_to_text (*groups);
+	if (g_strcmp0 (text, "accessibility;games;system") != 0) {
+		egg_test_failed (test, "data incorrect: %s", text);
+		return;
+	}
+
+	g_free (text);
 	egg_test_loop_quit (test);
 }
 
@@ -809,6 +1307,24 @@ pk_control_test (EggTest *test)
 	egg_test_loop_wait (test, 5000);
 	egg_test_success (test, "got mime types in %i", egg_test_elapsed (test));
 
+	/************************************************************/
+	egg_test_title (test, "get roles async");
+	pk_control_get_roles_async (control, NULL, (GAsyncReadyCallback) pk_control_test_get_roles_cb, test);
+	egg_test_loop_wait (test, 5000);
+	egg_test_success (test, "got roles in %i", egg_test_elapsed (test));
+
+	/************************************************************/
+	egg_test_title (test, "get filters async");
+	pk_control_get_filters_async (control, NULL, (GAsyncReadyCallback) pk_control_test_get_filters_cb, test);
+	egg_test_loop_wait (test, 5000);
+	egg_test_success (test, "got filters in %i", egg_test_elapsed (test));
+
+	/************************************************************/
+	egg_test_title (test, "get groups async");
+	pk_control_get_groups_async (control, NULL, (GAsyncReadyCallback) pk_control_test_get_groups_cb, test);
+	egg_test_loop_wait (test, 5000);
+	egg_test_success (test, "got groups in %i", egg_test_elapsed (test));
+
 #if 0
 	/************************************************************/
 	egg_test_title (test, "version major");
diff --git a/lib/packagekit-glib2/pk-control.h b/lib/packagekit-glib2/pk-control.h
index 460ea3e..99a6c37 100644
--- a/lib/packagekit-glib2/pk-control.h
+++ b/lib/packagekit-glib2/pk-control.h
@@ -91,25 +91,25 @@ void		 pk_control_set_proxy_async		(PkControl		*control,
 gboolean	 pk_control_set_proxy_finish		(PkControl		*control,
 							 GAsyncResult		*res,
 							 GError			**error);
-void		 pk_control_get_actions_async		(PkControl		*control,
+void		 pk_control_get_roles_async		(PkControl		*control,
 							 GCancellable		*cancellable,
 							 GAsyncReadyCallback	 callback,
 							 gpointer		 user_data);
-PkBitfield	 pk_control_get_actions_finish		(PkControl		*control,
+PkBitfield	*pk_control_get_roles_finish		(PkControl		*control,
 							 GAsyncResult		*res,
 							 GError			**error);
 void		 pk_control_get_filters_async		(PkControl		*control,
 							 GCancellable		*cancellable,
 							 GAsyncReadyCallback	 callback,
 							 gpointer		 user_data);
-PkBitfield	 pk_control_get_filters_finish		(PkControl		*control,
+PkBitfield	*pk_control_get_filters_finish		(PkControl		*control,
 							 GAsyncResult		*res,
 							 GError			**error);
 void		 pk_control_get_groups_async		(PkControl		*control,
 							 GCancellable		*cancellable,
 							 GAsyncReadyCallback	 callback,
 							 gpointer		 user_data);
-PkBitfield	 pk_control_get_groups_finish		(PkControl		*control,
+PkBitfield	*pk_control_get_groups_finish		(PkControl		*control,
 							 GAsyncResult		*res,
 							 GError			**error);
 void		 pk_control_get_mime_types_async	(PkControl		*control,
diff --git a/lib/packagekit-glib2/pk-self-test.c b/lib/packagekit-glib2/pk-self-test.c
index 5b5cc66..369d585 100644
--- a/lib/packagekit-glib2/pk-self-test.c
+++ b/lib/packagekit-glib2/pk-self-test.c
@@ -35,6 +35,9 @@ main (int argc, char **argv)
 	egg_debug_init (TRUE);
 
 	/* tests go here */
+	pk_common_test (test);
+	pk_enum_test (test);
+	pk_bitfield_test (test);
 	pk_progress_test (test);
 	pk_results_test (test);
 	pk_package_test (test);
commit 6e43f0113eea1f1fca24f21b068a0ccaab5ca390
Author: Richard Hughes <richard at hughsie.com>
Date:   Fri Aug 28 13:02:44 2009 +0100

    glib2: add pk_control_set_proxy_async()

diff --git a/lib/packagekit-glib2/pk-control.c b/lib/packagekit-glib2/pk-control.c
index d372be1..e5c86f9 100644
--- a/lib/packagekit-glib2/pk-control.c
+++ b/lib/packagekit-glib2/pk-control.c
@@ -73,19 +73,20 @@ static guint signals [SIGNAL_LAST] = { 0 };
 G_DEFINE_TYPE (PkControl, pk_control, G_TYPE_OBJECT)
 
 typedef struct {
-	PkControl		*control;
-	GCancellable		*cancellable;
+	gboolean		 ret;
+	gchar			**mime_types;
 	gchar			*tid;
-	GSimpleAsyncResult	*res;
+	gchar			**transaction_list;
+	guint			 time;
 	DBusGProxyCall		*call;
-	PkBitfield		 roles;
+	GCancellable		*cancellable;
+	GSimpleAsyncResult	*res;
+	PkAuthorizeEnum		 can_authorize;
 	PkBitfield		 filters;
 	PkBitfield		 groups;
-	gchar			**mime_types;
+	PkBitfield		 roles;
+	PkControl		*control;
 	PkNetworkEnum		 network;
-	guint			 time;
-	gchar			**transaction_list;
-	PkAuthorizeEnum		 can_authorize;
 } PkControlState;
 
 /***************************************************************************************************/
@@ -352,6 +353,140 @@ pk_control_get_mime_types_finish (PkControl *control, GAsyncResult *res, GError
 
 /***************************************************************************************************/
 
+/***************************************************************************************************/
+
+/**
+ * pk_control_set_proxy_state_finish:
+ **/
+static void
+pk_control_set_proxy_state_finish (PkControlState *state, GError *error)
+{
+	/* remove weak ref */
+	if (state->control != NULL)
+		g_object_remove_weak_pointer (G_OBJECT (state->control), (gpointer) &state->control);
+
+	/* cancel */
+	if (state->cancellable != NULL) {
+		g_cancellable_cancel (state->cancellable);
+		g_object_unref (state->cancellable);
+	}
+
+	/* get result */
+	if (state->mime_types != NULL) {
+		g_simple_async_result_set_op_res_gboolean (state->res, state->ret);
+	} else {
+		g_simple_async_result_set_from_error (state->res, error);
+		g_error_free (error);
+	}
+
+	/* complete */
+	g_simple_async_result_complete_in_idle (state->res);
+
+	/* deallocate */
+	g_object_unref (state->res);
+	g_slice_free (PkControlState, state);
+}
+
+/**
+ * pk_control_set_proxy_cb:
+ **/
+static void
+pk_control_set_proxy_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkControlState *state)
+{
+	GError *error = NULL;
+	gchar *tid = NULL;
+	gboolean ret;
+
+	/* get the result */
+	ret = dbus_g_proxy_end_call (proxy, call, &error,
+				     G_TYPE_INVALID);
+	if (!ret) {
+		egg_warning ("failed to set proxy: %s", error->message);
+		pk_control_set_proxy_state_finish (state, error);
+		goto out;
+	}
+
+	/* finished this call */
+	state->call = NULL;
+
+	/* save data */
+	state->ret = TRUE;
+
+	/* we're done */
+	pk_control_set_proxy_state_finish (state, error);
+out:
+	g_free (tid);
+}
+
+/**
+ * pk_control_set_proxy_async:
+ * @control: a valid #PkControl instance
+ * @cancellable: a #GCancellable or %NULL
+ * @callback: the function to run on completion
+ * @user_data: the data to pass to @callback
+ *
+ * Gets a transacton ID from the daemon.
+ **/
+void
+pk_control_set_proxy_async (PkControl *control, const gchar *proxy_http, const gchar *proxy_ftp, GCancellable *cancellable,
+			    GAsyncReadyCallback callback, gpointer user_data)
+{
+	GSimpleAsyncResult *res;
+	PkControlState *state;
+
+	g_return_if_fail (PK_IS_CONTROL (control));
+	g_return_if_fail (callback != NULL);
+
+	res = g_simple_async_result_new (G_OBJECT (control), callback, user_data, pk_control_set_proxy_async);
+
+	/* save state */
+	state = g_slice_new0 (PkControlState);
+	state->res = g_object_ref (res);
+	state->cancellable = cancellable;
+	state->control = control;
+	g_object_add_weak_pointer (G_OBJECT (state->control), (gpointer) &state->control);
+
+	/* call D-Bus set_proxy async */
+	state->call = dbus_g_proxy_begin_call (control->priv->proxy, "SetProxy",
+					       (DBusGProxyCallNotify) pk_control_set_proxy_cb, state, NULL,
+					       G_TYPE_STRING, proxy_http,
+					       G_TYPE_STRING, proxy_ftp,
+					       G_TYPE_INVALID);
+	g_object_unref (res);
+}
+
+/**
+ * pk_control_set_proxy_finish:
+ * @control: a valid #PkControl instance
+ * @res: the #GAsyncResult
+ * @error: A #GError or %NULL
+ *
+ * Gets the result from the asynchronous function.
+ *
+ * Return value: %TRUE for success
+ **/
+gboolean
+pk_control_set_proxy_finish (PkControl *control, GAsyncResult *res, GError **error)
+{
+	GSimpleAsyncResult *simple;
+	gpointer source_tag;
+
+	g_return_val_if_fail (PK_IS_CONTROL (control), FALSE);
+	g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (res), FALSE);
+
+	simple = G_SIMPLE_ASYNC_RESULT (res);
+	source_tag = g_simple_async_result_get_source_tag (simple);
+
+	g_return_val_if_fail (source_tag == pk_control_set_proxy_async, FALSE);
+
+	if (g_simple_async_result_propagate_error (simple, error))
+		return FALSE;
+
+	return g_simple_async_result_get_op_res_gboolean (simple);
+}
+
+/***************************************************************************************************/
+
 /**
  * pk_control_set_properties_collect_cb:
  **/
commit e94fe28a7b1ef2b61e6b7145280d3700c4c9e168
Author: Richard Hughes <richard at hughsie.com>
Date:   Fri Aug 28 12:55:51 2009 +0100

    glib2: add pk_control_get_mime_types_async()

diff --git a/lib/packagekit-glib2/pk-control.c b/lib/packagekit-glib2/pk-control.c
index c2a7e90..d372be1 100644
--- a/lib/packagekit-glib2/pk-control.c
+++ b/lib/packagekit-glib2/pk-control.c
@@ -26,30 +26,12 @@
 
 #include "config.h"
 
-#include <stdlib.h>
-#include <stdio.h>
-#include <time.h>
-#include <errno.h>
-
-#include <string.h>
-#include <locale.h>
-#include <sys/time.h>
-#include <sys/types.h>
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif /* HAVE_UNISTD_H */
-
-#include <sys/wait.h>
-#include <fcntl.h>
-
-#include <glib/gi18n.h>
-#include <glib/gprintf.h>
+#include <glib-object.h>
 #include <dbus/dbus-glib.h>
 #include <gio/gio.h>
 
 #include <packagekit-glib2/pk-control.h>
 #include <packagekit-glib2/pk-common.h>
-#include <packagekit-glib2/pk-enum.h>
 #include <packagekit-glib2/pk-version.h>
 
 #include "egg-debug.h"
@@ -96,6 +78,14 @@ typedef struct {
 	gchar			*tid;
 	GSimpleAsyncResult	*res;
 	DBusGProxyCall		*call;
+	PkBitfield		 roles;
+	PkBitfield		 filters;
+	PkBitfield		 groups;
+	gchar			**mime_types;
+	PkNetworkEnum		 network;
+	guint			 time;
+	gchar			**transaction_list;
+	PkAuthorizeEnum		 can_authorize;
 } PkControlState;
 
 /***************************************************************************************************/
@@ -206,7 +196,7 @@ pk_control_get_tid_async (PkControl *control, GCancellable *cancellable, GAsyncR
  * @res: the #GAsyncResult
  * @error: A #GError or %NULL
  *
- * Gets the result from the asynchronous function. 
+ * Gets the result from the asynchronous function.
  *
  * Return value: the ID, or %NULL if unset
  **/
@@ -233,6 +223,136 @@ pk_control_get_tid_finish (PkControl *control, GAsyncResult *res, GError **error
 /***************************************************************************************************/
 
 /**
+ * pk_control_get_mime_types_state_finish:
+ **/
+static void
+pk_control_get_mime_types_state_finish (PkControlState *state, GError *error)
+{
+	/* remove weak ref */
+	if (state->control != NULL)
+		g_object_remove_weak_pointer (G_OBJECT (state->control), (gpointer) &state->control);
+
+	/* cancel */
+	if (state->cancellable != NULL) {
+		g_cancellable_cancel (state->cancellable);
+		g_object_unref (state->cancellable);
+	}
+
+	/* get result */
+	if (state->mime_types != NULL) {
+		g_simple_async_result_set_op_res_gpointer (state->res, g_strdupv (state->mime_types), (GDestroyNotify) g_strfreev);
+	} else {
+		g_simple_async_result_set_from_error (state->res, error);
+		g_error_free (error);
+	}
+
+	/* complete */
+	g_simple_async_result_complete_in_idle (state->res);
+
+	/* deallocate */
+	g_object_unref (state->res);
+	g_slice_free (PkControlState, state);
+}
+
+/**
+ * pk_control_get_mime_types_cb:
+ **/
+static void
+pk_control_get_mime_types_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkControlState *state)
+{
+	GError *error = NULL;
+	gchar *temp = NULL;
+	gboolean ret;
+
+	/* get the result */
+	ret = dbus_g_proxy_end_call (proxy, call, &error,
+				     G_TYPE_STRING, &temp,
+				     G_TYPE_INVALID);
+	if (!ret) {
+		egg_warning ("failed: %s", error->message);
+		pk_control_get_mime_types_state_finish (state, error);
+		goto out;
+	}
+
+	/* finished this call */
+	state->call = NULL;
+
+	/* save data */
+	state->mime_types = g_strsplit (temp, ";", -1);
+
+	/* we're done */
+	pk_control_get_mime_types_state_finish (state, error);
+out:
+	g_free (temp);
+}
+
+/**
+ * pk_control_get_mime_types_async:
+ * @control: a valid #PkControl instance
+ * @cancellable: a #GCancellable or %NULL
+ * @callback: the function to run on completion
+ * @user_data: the data to pass to @callback
+ *
+ * Gets a transacton ID from the daemon.
+ **/
+void
+pk_control_get_mime_types_async (PkControl *control, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data)
+{
+	GSimpleAsyncResult *res;
+	PkControlState *state;
+
+	g_return_if_fail (PK_IS_CONTROL (control));
+	g_return_if_fail (callback != NULL);
+
+	res = g_simple_async_result_new (G_OBJECT (control), callback, user_data, pk_control_get_mime_types_async);
+
+	/* save state */
+	state = g_slice_new0 (PkControlState);
+	state->res = g_object_ref (res);
+	state->cancellable = cancellable;
+	state->control = control;
+	g_object_add_weak_pointer (G_OBJECT (state->control), (gpointer) &state->control);
+
+	/* call D-Bus get_mime_types async */
+	state->call = dbus_g_proxy_begin_call (control->priv->proxy, "GetMimeTypes",
+					       (DBusGProxyCallNotify) pk_control_get_mime_types_cb, state,
+					       NULL, G_TYPE_INVALID);
+	g_object_unref (res);
+}
+
+/**
+ * pk_control_get_mime_types_finish:
+ * @control: a valid #PkControl instance
+ * @res: the #GAsyncResult
+ * @error: A #GError or %NULL
+ *
+ * Gets the result from the asynchronous function.
+ *
+ * Return value: the ID, or %NULL if unset
+ **/
+gchar **
+pk_control_get_mime_types_finish (PkControl *control, GAsyncResult *res, GError **error)
+{
+	GSimpleAsyncResult *simple;
+	gpointer source_tag;
+
+	g_return_val_if_fail (PK_IS_CONTROL (control), NULL);
+	g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (res), NULL);
+
+	simple = G_SIMPLE_ASYNC_RESULT (res);
+	source_tag = g_simple_async_result_get_source_tag (simple);
+
+	g_return_val_if_fail (source_tag == pk_control_get_mime_types_async, NULL);
+
+	if (g_simple_async_result_propagate_error (simple, error))
+		return NULL;
+
+	return g_simple_async_result_get_op_res_gpointer (simple);
+}
+
+/***************************************************************************************************/
+
+/**
  * pk_control_set_properties_collect_cb:
  **/
 static void
@@ -481,7 +601,7 @@ pk_control_test_get_tid_cb (GObject *object, GAsyncResult *res, EggTest *test)
 {
 	PkControl *control = PK_CONTROL (object);
 	GError *error = NULL;
-	const gchar *tid = NULL;
+	const gchar *tid;
 
 	/* get the result */
 	tid = pk_control_get_tid_finish (control, res, &error);
@@ -495,6 +615,39 @@ pk_control_test_get_tid_cb (GObject *object, GAsyncResult *res, EggTest *test)
 	egg_test_loop_quit (test);
 }
 
+static void
+pk_control_test_get_mime_types_cb (GObject *object, GAsyncResult *res, EggTest *test)
+{
+	PkControl *control = PK_CONTROL (object);
+	GError *error = NULL;
+	gchar **types;
+	guint len;
+
+	/* get the result */
+	types = pk_control_get_mime_types_finish (control, res, &error);
+	if (types == NULL) {
+		egg_test_failed (test, "failed to get mime types: %s", error->message);
+		g_error_free (error);
+		return;
+	}
+
+	/* check size */
+	len = g_strv_length (types);
+	if (len != 2) {
+		egg_test_failed (test, "length incorrect: %i", len);
+		return;
+	}
+
+	/* check value */
+	if (g_strcmp0 (types[0], "application/x-rpm") != 0) {
+		egg_test_failed (test, "data incorrect: %s", types[0]);
+		return;
+	}
+
+	egg_debug ("types = %s", types);
+	egg_test_loop_quit (test);
+}
+
 void
 pk_control_test (EggTest *test)
 {
@@ -515,6 +668,12 @@ pk_control_test (EggTest *test)
 	egg_test_loop_wait (test, 5000);
 	egg_test_success (test, "got tid in %i", egg_test_elapsed (test));
 
+	/************************************************************/
+	egg_test_title (test, "get mime-types async");
+	pk_control_get_mime_types_async (control, NULL, (GAsyncReadyCallback) pk_control_test_get_mime_types_cb, test);
+	egg_test_loop_wait (test, 5000);
+	egg_test_success (test, "got mime types in %i", egg_test_elapsed (test));
+
 #if 0
 	/************************************************************/
 	egg_test_title (test, "version major");
diff --git a/lib/packagekit-glib2/pk-control.h b/lib/packagekit-glib2/pk-control.h
index 06f27ae..460ea3e 100644
--- a/lib/packagekit-glib2/pk-control.h
+++ b/lib/packagekit-glib2/pk-control.h
@@ -33,6 +33,9 @@
 
 #include <glib-object.h>
 
+#include <packagekit-glib2/pk-enum.h>
+#include <packagekit-glib2/pk-bitfield.h>
+
 G_BEGIN_DECLS
 
 #define PK_TYPE_CONTROL		(pk_control_get_type ())
@@ -79,6 +82,71 @@ void		 pk_control_get_tid_async		(PkControl		*control,
 gchar		*pk_control_get_tid_finish		(PkControl		*control,
 							 GAsyncResult		*res,
 							 GError			**error);
+void		 pk_control_set_proxy_async		(PkControl		*control,
+							 const gchar		*proxy_http,
+							 const gchar		*proxy_ftp,
+							 GCancellable		*cancellable,
+							 GAsyncReadyCallback	 callback,
+							 gpointer		 user_data);
+gboolean	 pk_control_set_proxy_finish		(PkControl		*control,
+							 GAsyncResult		*res,
+							 GError			**error);
+void		 pk_control_get_actions_async		(PkControl		*control,
+							 GCancellable		*cancellable,
+							 GAsyncReadyCallback	 callback,
+							 gpointer		 user_data);
+PkBitfield	 pk_control_get_actions_finish		(PkControl		*control,
+							 GAsyncResult		*res,
+							 GError			**error);
+void		 pk_control_get_filters_async		(PkControl		*control,
+							 GCancellable		*cancellable,
+							 GAsyncReadyCallback	 callback,
+							 gpointer		 user_data);
+PkBitfield	 pk_control_get_filters_finish		(PkControl		*control,
+							 GAsyncResult		*res,
+							 GError			**error);
+void		 pk_control_get_groups_async		(PkControl		*control,
+							 GCancellable		*cancellable,
+							 GAsyncReadyCallback	 callback,
+							 gpointer		 user_data);
+PkBitfield	 pk_control_get_groups_finish		(PkControl		*control,
+							 GAsyncResult		*res,
+							 GError			**error);
+void		 pk_control_get_mime_types_async	(PkControl		*control,
+							 GCancellable		*cancellable,
+							 GAsyncReadyCallback	 callback,
+							 gpointer		 user_data);
+gchar		**pk_control_get_mime_types_finish	(PkControl		*control,
+							 GAsyncResult		*res,
+							 GError			**error);
+void		 pk_control_get_network_state_async	(PkControl		*control,
+							 GCancellable		*cancellable,
+							 GAsyncReadyCallback	 callback,
+							 gpointer		 user_data);
+PkNetworkEnum	 pk_control_get_network_state_finish	(PkControl		*control,
+							 GAsyncResult		*res,
+							 GError			**error);
+void		 pk_control_get_time_since_action_async	(PkControl		*control,
+							 PkRoleEnum		 role,
+							 guint			*seconds,
+							 GCancellable		*cancellable,
+							 GAsyncReadyCallback	 callback,
+							 gpointer		 user_data);
+gboolean	 pk_control_get_time_since_action_finish (PkControl		*control,
+							 GAsyncResult		*res,
+							 GError			**error);
+void		 pk_control_transaction_list_get_async	(PkControl		*control);
+gchar		**pk_control_transaction_list_get_finish (PkControl		*control,
+							 GAsyncResult		*res,
+							 GError			**error);
+void		 pk_control_can_authorize_async		(PkControl		*control,
+							 const gchar		*action_id,
+							 GCancellable		*cancellable,
+							 GAsyncReadyCallback	 callback,
+							 gpointer		 user_data);
+PkAuthorizeEnum	 pk_control_can_authorize_finish	(PkControl		*control,
+							 GAsyncResult		*res,
+							 GError			**error);
 
 G_END_DECLS
 
commit 411838b5646ecdf6b25f2afd69fc50f0e9b75050
Author: Richard Hughes <richard at hughsie.com>
Date:   Fri Aug 28 12:08:12 2009 +0100

    glib2: add pk_client_get_old_transactions_async()

diff --git a/lib/packagekit-glib2/pk-client.c b/lib/packagekit-glib2/pk-client.c
index 412727f..dca9e1e 100644
--- a/lib/packagekit-glib2/pk-client.c
+++ b/lib/packagekit-glib2/pk-client.c
@@ -110,6 +110,7 @@ typedef struct {
 	gchar				*value;
 	gpointer			 progress_user_data;
 	gpointer			 user_data;
+	guint				 number;
 	DBusGProxyCall			*call;
 	DBusGProxy			*proxy;
 	GCancellable			*cancellable;
@@ -714,6 +715,11 @@ pk_client_set_locale_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkClientState
 						       (DBusGProxyCallNotify) pk_client_method_cb, state, NULL,
 						       G_TYPE_STRV, state->package_ids,
 						       G_TYPE_INVALID);
+	} else if (state->role == PK_ROLE_ENUM_GET_OLD_TRANSACTIONS) {
+		state->call = dbus_g_proxy_begin_call (state->proxy, "GetOldTransactions",
+						       (DBusGProxyCallNotify) pk_client_method_cb, state, NULL,
+						       G_TYPE_STRV, state->package_ids,
+						       G_TYPE_INVALID);
 	} else if (state->role == PK_ROLE_ENUM_DOWNLOAD_PACKAGES) {
 		state->call = dbus_g_proxy_begin_call (state->proxy, "DownloadPackages",
 						       (DBusGProxyCallNotify) pk_client_method_cb, state, NULL,
@@ -1271,7 +1277,6 @@ pk_client_download_packages_async (PkClient *client, gchar **package_ids, const
 	g_object_unref (res);
 }
 
-
 /**
  * pk_client_get_updates_async:
  * @client: a valid #PkClient instance
@@ -1313,6 +1318,47 @@ pk_client_get_updates_async (PkClient *client, PkBitfield filters, GCancellable
 	g_object_unref (res);
 }
 
+/**
+ * pk_client_get_old_transactions_async:
+ * @client: a valid #PkClient instance
+ * @cancellable: a #GCancellable or %NULL
+ * @progress_callback: the function to run when the progress changes
+ * @progress_user_data: data to pass to @progress_callback
+ * @callback_ready: the function to run on completion
+ * @user_data: the data to pass to @callback_ready
+ *
+ * TODO
+ **/
+void
+pk_client_get_old_transactions_async (PkClient *client, guint number, GCancellable *cancellable,
+			     PkProgressCallback progress_callback, gpointer progress_user_data,
+			     GAsyncReadyCallback callback_ready, gpointer user_data)
+{
+	GSimpleAsyncResult *res;
+	PkClientState *state;
+
+	g_return_if_fail (PK_IS_CLIENT (client));
+	g_return_if_fail (callback_ready != NULL);
+
+	res = g_simple_async_result_new (G_OBJECT (client), callback_ready, user_data, pk_client_get_old_transactions_async);
+
+	/* save state */
+	state = g_slice_new0 (PkClientState);
+	state->role = PK_ROLE_ENUM_GET_OLD_TRANSACTIONS;
+	state->res = g_object_ref (res);
+	state->cancellable = cancellable;
+	state->client = client;
+	state->number = number;
+	state->progress_callback = progress_callback;
+	state->progress_user_data = progress_user_data;
+	state->progress = pk_progress_new ();
+	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
+
+	/* get tid */
+	pk_control_get_tid_async (client->priv->control, NULL, (GAsyncReadyCallback) pk_client_get_tid_cb, state);
+	g_object_unref (res);
+}
+
 
 /**
  * pk_client_update_system_async:
diff --git a/lib/packagekit-glib2/pk-client.h b/lib/packagekit-glib2/pk-client.h
index 7bf57b5..80098d4 100644
--- a/lib/packagekit-glib2/pk-client.h
+++ b/lib/packagekit-glib2/pk-client.h
@@ -159,6 +159,14 @@ void		 pk_client_get_updates_async		(PkClient		*client,
 							 GAsyncReadyCallback	 callback_ready,
 							 gpointer		 user_data);
 
+void		 pk_client_get_old_transactions_async	(PkClient		*client,
+							 guint			 number,
+							 GCancellable		*cancellable,
+							 PkProgressCallback	 progress_callback,
+							 gpointer		 progress_user_data,
+							 GAsyncReadyCallback	 callback_ready,
+							 gpointer		 user_data);
+
 void		 pk_client_update_system_async		(PkClient		*client,
 							 gboolean		 only_trusted,
 							 GCancellable		*cancellable,
commit 243c19a16d596ae50d993e11e62a27ac151e74f2
Author: Richard Hughes <richard at hughsie.com>
Date:   Fri Aug 28 12:01:50 2009 +0100

    glib2: use SetLocale automatically, still async

diff --git a/lib/packagekit-glib2/pk-client.c b/lib/packagekit-glib2/pk-client.c
index 578913d..412727f 100644
--- a/lib/packagekit-glib2/pk-client.c
+++ b/lib/packagekit-glib2/pk-client.c
@@ -643,35 +643,27 @@ pk_client_disconnect_proxy (DBusGProxy *proxy, PkClientState *state)
 }
 
 /**
- * pk_client_get_tid_cb:
+ * pk_client_set_locale_cb:
  **/
 static void
-pk_client_get_tid_cb (GObject *object, GAsyncResult *res, PkClientState *state)
+pk_client_set_locale_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkClientState *state)
 {
-	PkControl *control = PK_CONTROL (object);
-	GError *error = NULL;
-	const gchar *tid = NULL;
 	gchar *filters_text = NULL;
 	const gchar *enum_text;
+	GError *error = NULL;
+	gboolean ret;
 
-	tid = pk_control_get_tid_finish (control, res, &error);
-	if (tid == NULL) {
+	/* get the result */
+	ret = dbus_g_proxy_end_call (proxy, call, &error,
+				     G_TYPE_INVALID);
+	if (!ret) {
+		egg_warning ("failed to set locale: %s", error->message);
 		pk_client_state_finish (state, error);
-		g_error_free (error);
-		return;
+		goto out;
 	}
 
-	egg_debug ("tid = %s", tid);
-	state->tid = g_strdup (tid);
-
-	/* get a connection to the tranaction interface */
-	state->proxy = dbus_g_proxy_new_for_name (state->client->priv->connection,
-						  PK_DBUS_SERVICE, tid, PK_DBUS_INTERFACE_TRANSACTION);
-	if (state->proxy == NULL)
-		egg_error ("Cannot connect to PackageKit on %s", tid);
-
-	/* don't timeout, as dbus-glib sets the timeout ~25 seconds */
-	dbus_g_proxy_set_default_timeout (state->proxy, INT_MAX);
+	/* finished this call */
+	state->call = NULL;
 
 	/* setup the proxies ready for use */
 	pk_client_connect_proxy (state->proxy, state);
@@ -874,9 +866,50 @@ pk_client_get_tid_cb (GObject *object, GAsyncResult *res, PkClientState *state)
 
 	/* we'll have results from now on */
 	state->results = pk_results_new ();
-
-	/* deallocate temp state */
+out:
 	g_free (filters_text);
+	return;
+}
+
+/**
+ * pk_client_get_tid_cb:
+ **/
+static void
+pk_client_get_tid_cb (GObject *object, GAsyncResult *res, PkClientState *state)
+{
+	PkControl *control = PK_CONTROL (object);
+	GError *error = NULL;
+	const gchar *tid = NULL;
+	const gchar *locale;
+
+	tid = pk_control_get_tid_finish (control, res, &error);
+	if (tid == NULL) {
+		pk_client_state_finish (state, error);
+		g_error_free (error);
+		return;
+	}
+
+	egg_debug ("tid = %s", tid);
+	state->tid = g_strdup (tid);
+
+	/* get a connection to the tranaction interface */
+	state->proxy = dbus_g_proxy_new_for_name (state->client->priv->connection,
+						  PK_DBUS_SERVICE, tid, PK_DBUS_INTERFACE_TRANSACTION);
+	if (state->proxy == NULL)
+		egg_error ("Cannot connect to PackageKit on %s", tid);
+
+	/* don't timeout, as dbus-glib sets the timeout ~25 seconds */
+	dbus_g_proxy_set_default_timeout (state->proxy, INT_MAX);
+
+	/* set locale */
+	locale = (const gchar *) setlocale (LC_ALL, NULL);
+	state->call = dbus_g_proxy_begin_call (state->proxy, "SetLocale",
+					       (DBusGProxyCallNotify) pk_client_set_locale_cb, state, NULL,
+					       G_TYPE_STRING, locale,
+					       G_TYPE_INVALID);
+
+	/* we've sent this async */
+	egg_debug ("sent locale request");
 }
 
 /**
commit 2cd427314c2b8b050d4a1f2c825dd9c280fa7a3b
Author: Richard Hughes <richard at hughsie.com>
Date:   Fri Aug 28 11:42:06 2009 +0100

    glib2: finish all the client signal cache code

diff --git a/lib/packagekit-glib2/pk-client.c b/lib/packagekit-glib2/pk-client.c
index e489c09..578913d 100644
--- a/lib/packagekit-glib2/pk-client.c
+++ b/lib/packagekit-glib2/pk-client.c
@@ -437,7 +437,7 @@ pk_client_files_cb (DBusGProxy *proxy, const gchar *package_id, const gchar *fil
 {
 	gchar **files;
 	files = g_strsplit (filelist, ";", -1);
-//	pk_results_add_files (state->results, package_id, files);
+	pk_results_add_files (state->results, package_id, files);
 	g_strfreev (files);
 }
 
@@ -452,7 +452,8 @@ pk_client_repo_signature_required_cb (DBusGProxy *proxy, const gchar *package_id
 {
 	PkSigTypeEnum type_enum;
 	type_enum = pk_sig_type_enum_from_text (type_text);
-//	pk_results_add_signature_required (state->results, package_id, repository_name, key_url, key_userid, key_id, key_fingerprint, key_timestamp, type_enum);
+	pk_results_add_repo_signature_required (state->results, package_id, repository_name, key_url, key_userid,
+						key_id, key_fingerprint, key_timestamp, type_enum);
 }
 
 /**
@@ -462,7 +463,7 @@ static void
 pk_client_eula_required_cb (DBusGProxy *proxy, const gchar *eula_id, const gchar *package_id,
 			    const gchar *vendor_name, const gchar *license_agreement, PkClientState *state)
 {
-//	pk_results_add_eula_required (state->results, eula_id, package_id, vendor_name, license_agreement);
+	pk_results_add_eula_required (state->results, eula_id, package_id, vendor_name, license_agreement);
 }
 
 /**
@@ -474,7 +475,7 @@ pk_client_media_change_required_cb (DBusGProxy *proxy, const gchar *media_type_t
 {
 	PkMediaTypeEnum media_type_enum;
 	media_type_enum = pk_media_type_enum_from_text (media_type_text);
-//	pk_results_add_media_change_required (state->results, media_type_enum, media_id, media_text);
+	pk_results_add_media_change_required (state->results, media_type_enum, media_id, media_text);
 }
 
 /**
@@ -484,7 +485,7 @@ static void
 pk_client_repo_detail_cb (DBusGProxy *proxy, const gchar *repo_id,
 			  const gchar *description, gboolean enabled, PkClientState *state)
 {
-//	pk_results_add_repo_detail (state->results, repo_id, description, enabled);
+	pk_results_add_repo_detail (state->results, repo_id, description, enabled);
 }
 
 /**
@@ -495,7 +496,7 @@ pk_client_error_code_cb (DBusGProxy *proxy, const gchar *code_text, const gchar
 {
 	PkErrorCodeEnum code_enum;
 	code_enum = pk_error_enum_from_text (code_text);
-//	pk_results_add_error_code (state->results, code_enum, details);
+	pk_results_add_error_code (state->results, code_enum, details);
 }
 
 /**
@@ -506,7 +507,7 @@ pk_client_message_cb (DBusGProxy  *proxy, const gchar *message_text, const gchar
 {
 	PkMessageEnum message_enum;
 	message_enum = pk_message_enum_from_text (message_text);
-//	pk_results_add_message (state->results, message_enum, details);
+	pk_results_add_message (state->results, message_enum, details);
 }
 
 /**
diff --git a/lib/packagekit-glib2/pk-results.c b/lib/packagekit-glib2/pk-results.c
index f12f064..c087444 100644
--- a/lib/packagekit-glib2/pk-results.c
+++ b/lib/packagekit-glib2/pk-results.c
@@ -26,28 +26,9 @@
 
 #include "config.h"
 
-#include <stdlib.h>
-#include <stdio.h>
-#include <time.h>
-#include <errno.h>
-
-#include <string.h>
-#include <locale.h>
-#include <sys/time.h>
-#include <sys/types.h>
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif /* HAVE_UNISTD_H */
-
-#include <sys/wait.h>
-#include <fcntl.h>
-
-#include <glib/gi18n.h>
-#include <glib/gprintf.h>
-#include <dbus/dbus-glib.h>
+#include <glib-object.h>
 
 #include <packagekit-glib2/pk-results.h>
-#include <packagekit-glib2/pk-common.h>
 #include <packagekit-glib2/pk-enum.h>
 
 #include "egg-debug.h"
@@ -71,6 +52,13 @@ struct _PkResultsPrivate
 	GPtrArray		*distro_upgrade_array;
 	GPtrArray		*require_restart_array;
 	GPtrArray		*transaction_array;
+	GPtrArray		*files_array;
+	GPtrArray		*repo_signature_required_array;
+	GPtrArray		*eula_required_array;
+	GPtrArray		*media_change_required_array;
+	GPtrArray		*repo_detail_array;
+	GPtrArray		*error_code_array;
+	GPtrArray		*message_array;
 };
 
 G_DEFINE_TYPE (PkResults, pk_results, G_TYPE_OBJECT)
@@ -182,6 +170,102 @@ pk_result_item_transaction_free (PkResultItemTransaction *item)
 }
 
 /**
+ * pk_result_item_files_free:
+ **/
+static void
+pk_result_item_files_free (PkResultItemFiles *item)
+{
+	if (item == NULL)
+		return;
+	g_free (item->package_id);
+	g_strfreev (item->files);
+	g_free (item);
+}
+
+/**
+ * pk_result_item_repo_signature_required_free:
+ **/
+static void
+pk_result_item_repo_signature_required_free (PkResultItemRepoSignatureRequired *item)
+{
+	if (item == NULL)
+		return;
+	g_free (item->package_id);
+	g_free (item->repository_name);
+	g_free (item->key_url);
+	g_free (item->key_userid);
+	g_free (item->key_id);
+	g_free (item->key_fingerprint);
+	g_free (item->key_timestamp);
+	g_free (item);
+}
+
+/**
+ * pk_result_item_eula_required_free:
+ **/
+static void
+pk_result_item_eula_required_free (PkResultItemEulaRequired *item)
+{
+	if (item == NULL)
+		return;
+	g_free (item->eula_id);
+	g_free (item->package_id);
+	g_free (item->vendor_name);
+	g_free (item->license_agreement);
+	g_free (item);
+}
+
+/**
+ * pk_result_item_media_change_required_free:
+ **/
+static void
+pk_result_item_media_change_required_free (PkResultItemMediaChangeRequired *item)
+{
+	if (item == NULL)
+		return;
+	g_free (item->media_id);
+	g_free (item->media_text);
+	g_free (item);
+}
+
+/**
+ * pk_result_item_repo_detail_free:
+ **/
+static void
+pk_result_item_repo_detail_free (PkResultItemRepoDetail *item)
+{
+	if (item == NULL)
+		return;
+	g_free (item->repo_id);
+	g_free (item->description);
+	g_free (item);
+}
+
+/**
+ * pk_result_item_error_code_free:
+ **/
+static void
+pk_result_item_error_code_free (PkResultItemErrorCode *item)
+{
+	if (item == NULL)
+		return;
+	g_free (item->details);
+	g_free (item);
+}
+
+/**
+ * pk_result_item_message_free:
+ **/
+static void
+pk_result_item_message_free (PkResultItemMessage *item)
+{
+	if (item == NULL)
+		return;
+	g_free (item->details);
+	g_free (item);
+}
+
+/**
  * pk_results_set_exit_code:
  * @results: a valid #PkResults instance
  * @exit_enum: the exit code
@@ -416,6 +500,196 @@ pk_results_add_transaction (PkResults *results, const gchar *tid, const gchar *t
 }
 
 /**
+ * pk_results_add_files:
+ * @results: a valid #PkResults instance
+ *
+ * Adds some files details to the results set.
+ *
+ * Return value: %TRUE if the value was set
+ **/
+gboolean
+pk_results_add_files (PkResults *results, const gchar *package_id, gchar **files)
+{
+	PkResultItemFiles *item;
+
+	g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
+	g_return_val_if_fail (package_id != NULL, FALSE);
+	g_return_val_if_fail (files != NULL, FALSE);
+
+	/* copy and add to array */
+	item = g_new0 (PkResultItemFiles, 1);
+	item->package_id = g_strdup (package_id);
+	item->files = g_strdupv (files);
+	g_ptr_array_add (results->priv->files_array, item);
+
+	return TRUE;
+}
+
+/**
+ * pk_results_add_repo_signature_required:
+ * @results: a valid #PkResults instance
+ *
+ * Adds some repository signature details to the results set.
+ *
+ * Return value: %TRUE if the value was set
+ **/
+gboolean
+pk_results_add_repo_signature_required (PkResults *results, const gchar *package_id, const gchar *repository_name,
+					const gchar *key_url, const gchar *key_userid, const gchar *key_id,
+					const gchar *key_fingerprint, const gchar *key_timestamp,
+					PkSigTypeEnum type_enum)
+{
+	PkResultItemRepoSignatureRequired *item;
+
+	g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
+	g_return_val_if_fail (package_id != NULL, FALSE);
+
+	/* copy and add to array */
+	item = g_new0 (PkResultItemRepoSignatureRequired, 1);
+	item->package_id = g_strdup (package_id);
+	item->repository_name = g_strdup (repository_name);
+	item->key_url = g_strdup (key_url);
+	item->key_userid = g_strdup (key_userid);
+	item->key_id = g_strdup (key_id);
+	item->key_fingerprint = g_strdup (key_fingerprint);
+	item->key_timestamp = g_strdup (key_timestamp);
+	item->type = type_enum;
+	g_ptr_array_add (results->priv->repo_signature_required_array, item);
+
+	return TRUE;
+}
+
+/**
+ * pk_results_add_eula_required:
+ * @results: a valid #PkResults instance
+ *
+ * Adds some EULA details to the results set.
+ *
+ * Return value: %TRUE if the value was set
+ **/
+gboolean
+pk_results_add_eula_required (PkResults *results, const gchar *eula_id, const gchar *package_id,
+			      const gchar *vendor_name, const gchar *license_agreement)
+{
+	PkResultItemEulaRequired *item;
+
+	g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
+	g_return_val_if_fail (eula_id != NULL, FALSE);
+
+	/* copy and add to array */
+	item = g_new0 (PkResultItemEulaRequired, 1);
+	item->eula_id = g_strdup (eula_id);
+	item->package_id = g_strdup (package_id);
+	item->vendor_name = g_strdup (vendor_name);
+	item->license_agreement = g_strdup (license_agreement);
+	g_ptr_array_add (results->priv->eula_required_array, item);
+
+	return TRUE;
+}
+
+/**
+ * pk_results_add_media_change_required:
+ * @results: a valid #PkResults instance
+ *
+ * Adds some media change details to the results set.
+ *
+ * Return value: %TRUE if the value was set
+ **/
+gboolean
+pk_results_add_media_change_required (PkResults *results, PkMediaTypeEnum media_type_enum,
+				      const gchar *media_id, const gchar *media_text)
+{
+	PkResultItemMediaChangeRequired *item;
+
+	g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
+	g_return_val_if_fail (media_id != NULL, FALSE);
+
+	/* copy and add to array */
+	item = g_new0 (PkResultItemMediaChangeRequired, 1);
+	item->media_type = media_type_enum;
+	item->media_id = g_strdup (media_id);
+	item->media_text = g_strdup (media_text);
+	g_ptr_array_add (results->priv->media_change_required_array, item);
+
+	return TRUE;
+}
+
+/**
+ * pk_results_add_repo_detail:
+ * @results: a valid #PkResults instance
+ *
+ * Adds some repository details to the results set.
+ *
+ * Return value: %TRUE if the value was set
+ **/
+gboolean
+pk_results_add_repo_detail (PkResults *results, const gchar *repo_id,
+			    const gchar *description, gboolean enabled)
+{
+	PkResultItemRepoDetail *item;
+
+	g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
+	g_return_val_if_fail (repo_id != NULL, FALSE);
+
+	/* copy and add to array */
+	item = g_new0 (PkResultItemRepoDetail, 1);
+	item->repo_id = g_strdup (repo_id);
+	item->description = g_strdup (description);
+	item->enabled = enabled;
+	g_ptr_array_add (results->priv->repo_detail_array, item);
+
+	return TRUE;
+}
+
+/**
+ * pk_results_add_error_code:
+ * @results: a valid #PkResults instance
+ *
+ * Adds some error details to the results set.
+ *
+ * Return value: %TRUE if the value was set
+ **/
+gboolean
+pk_results_add_error_code (PkResults *results, PkErrorCodeEnum code_enum, const gchar *details)
+{
+	PkResultItemErrorCode *item;
+
+	g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
+
+	/* copy and add to array */
+	item = g_new0 (PkResultItemErrorCode, 1);
+	item->code = code_enum;
+	item->details = g_strdup (details);
+	g_ptr_array_add (results->priv->error_code_array, item);
+
+	return TRUE;
+}
+
+/**
+ * pk_results_add_message:
+ * @results: a valid #PkResults instance
+ *
+ * Adds some message details to the results set.
+ *
+ * Return value: %TRUE if the value was set
+ **/
+gboolean
+pk_results_add_message (PkResults *results, PkMessageEnum message_enum, const gchar *details)
+{
+	PkResultItemMessage *item;
+
+	g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
+
+	/* copy and add to array */
+	item = g_new0 (PkResultItemMessage, 1);
+	item->message = message_enum;
+	item->details = g_strdup (details);
+	g_ptr_array_add (results->priv->message_array, item);
+
+	return TRUE;
+}
+
+/**
  * pk_results_get_exit_code:
  * @results: a valid #PkResults instance
  *
@@ -584,8 +858,112 @@ pk_results_get_transaction_array (PkResults *results)
 }
 
 /**
+ * pk_results_get_files_array:
+ * @results: a valid #PkResults instance
+ *
+ * Gets the files from the transaction.
+ *
+ * Return value: A #GPtrArray array of #PkResultItemFiles's, free with g_ptr_array_unref().
+ **/
+GPtrArray *
+pk_results_get_files_array (PkResults *results)
+{
+	g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
+	return g_ptr_array_ref (results->priv->files_array);
+}
+
+/**
+ * pk_results_get_repo_signature_required_array:
+ * @results: a valid #PkResults instance
+ *
+ * Gets the repository signatures required from the transaction.
+ *
+ * Return value: A #GPtrArray array of #PkResultItemRepoSignatureRequired's, free with g_ptr_array_unref().
+ **/
+GPtrArray *
+pk_results_get_repo_signature_required_array (PkResults *results)
+{
+	g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
+	return g_ptr_array_ref (results->priv->repo_signature_required_array);
+}
+
+/**
+ * pk_results_get_eula_required_array:
+ * @results: a valid #PkResults instance
+ *
+ * Gets the eulas required from the transaction.
+ *
+ * Return value: A #GPtrArray array of #PkResultItemEulaRequired's, free with g_ptr_array_unref().
+ **/
+GPtrArray *
+pk_results_get_eula_required_array (PkResults *results)
+{
+	g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
+	return g_ptr_array_ref (results->priv->eula_required_array);
+}
+
+/**
+ * pk_results_get_media_change_required_array:
+ * @results: a valid #PkResults instance
+ *
+ * Gets the media changes required from the transaction.
+ *
+ * Return value: A #GPtrArray array of #PkResultItemMediaChangeRequired's, free with g_ptr_array_unref().
+ **/
+GPtrArray *
+pk_results_get_media_change_required_array (PkResults *results)
+{
+	g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
+	return g_ptr_array_ref (results->priv->media_change_required_array);
+}
+
+/**
+ * pk_results_get_repo_detail_array:
+ * @results: a valid #PkResults instance
+ *
+ * Gets the repository details from the transaction.
+ *
+ * Return value: A #GPtrArray array of #PkResultItemRepoDetail's, free with g_ptr_array_unref().
+ **/
+GPtrArray *
+pk_results_get_repo_detail_array (PkResults *results)
+{
+	g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
+	return g_ptr_array_ref (results->priv->repo_detail_array);
+}
+
+/**
+ * pk_results_get_error_code_array:
+ * @results: a valid #PkResults instance
+ *
+ * Gets the error codes from the transaction.
+ *
+ * Return value: A #GPtrArray array of #PkResultItemErrorCode's, free with g_ptr_array_unref().
+ **/
+GPtrArray *
+pk_results_get_error_code_array (PkResults *results)
+{
+	g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
+	return g_ptr_array_ref (results->priv->error_code_array);
+}
+
+/**
+ * pk_results_get_message_array:
+ * @results: a valid #PkResults instance
+ *
+ * Gets the messages from the transaction.
+ *
+ * Return value: A #GPtrArray array of #PkResultItemMessage's, free with g_ptr_array_unref().
+ **/
+GPtrArray *
+pk_results_get_message_array (PkResults *results)
+{
+	g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
+	return g_ptr_array_ref (results->priv->message_array);
+}
+
+/**
  * pk_results_class_init:
- * @klass: The PkResultsClass
  **/
 static void
 pk_results_class_init (PkResultsClass *klass)
@@ -597,7 +975,6 @@ pk_results_class_init (PkResultsClass *klass)
 
 /**
  * pk_results_init:
- * @results: This class instance
  **/
 static void
 pk_results_init (PkResults *results)
@@ -611,11 +988,17 @@ pk_results_init (PkResults *results)
 	results->priv->distro_upgrade_array = g_ptr_array_new_with_free_func ((GDestroyNotify) pk_result_item_distro_upgrade_free);
 	results->priv->require_restart_array = g_ptr_array_new_with_free_func ((GDestroyNotify) pk_result_item_require_restart_free);
 	results->priv->transaction_array = g_ptr_array_new_with_free_func ((GDestroyNotify) pk_result_item_transaction_free);
+	results->priv->files_array = g_ptr_array_new_with_free_func ((GDestroyNotify) pk_result_item_files_free);
+	results->priv->repo_signature_required_array = g_ptr_array_new_with_free_func ((GDestroyNotify) pk_result_item_repo_signature_required_free);
+	results->priv->eula_required_array = g_ptr_array_new_with_free_func ((GDestroyNotify) pk_result_item_eula_required_free);
+	results->priv->media_change_required_array = g_ptr_array_new_with_free_func ((GDestroyNotify) pk_result_item_media_change_required_free);
+	results->priv->repo_detail_array = g_ptr_array_new_with_free_func ((GDestroyNotify) pk_result_item_repo_detail_free);
+	results->priv->error_code_array = g_ptr_array_new_with_free_func ((GDestroyNotify) pk_result_item_error_code_free);
+	results->priv->message_array = g_ptr_array_new_with_free_func ((GDestroyNotify) pk_result_item_message_free);
 }
 
 /**
  * pk_results_finalize:
- * @object: The object to finalize
  **/
 static void
 pk_results_finalize (GObject *object)
@@ -630,6 +1013,13 @@ pk_results_finalize (GObject *object)
 	g_ptr_array_unref (priv->distro_upgrade_array);
 	g_ptr_array_unref (priv->require_restart_array);
 	g_ptr_array_unref (priv->transaction_array);
+	g_ptr_array_unref (priv->files_array);
+	g_ptr_array_unref (priv->repo_signature_required_array);
+	g_ptr_array_unref (priv->eula_required_array);
+	g_ptr_array_unref (priv->media_change_required_array);
+	g_ptr_array_unref (priv->repo_detail_array);
+	g_ptr_array_unref (priv->error_code_array);
+	g_ptr_array_unref (priv->message_array);
 
 	G_OBJECT_CLASS (pk_results_parent_class)->finalize (object);
 }
diff --git a/lib/packagekit-glib2/pk-results.h b/lib/packagekit-glib2/pk-results.h
index 9f65baf..b714c45 100644
--- a/lib/packagekit-glib2/pk-results.h
+++ b/lib/packagekit-glib2/pk-results.h
@@ -155,7 +155,7 @@ typedef struct
 /**
  * PkResultItemCategory:
  *
- * Object to represent category about the category.
+ * Object to represent details about the category.
  **/
 typedef struct
 {
@@ -166,6 +166,93 @@ typedef struct
 	gchar				*icon;
 } PkResultItemCategory;
 
+/**
+ * PkResultItemFiles:
+ *
+ * Object to represent details about the files.
+ **/
+typedef struct
+{
+	gchar				*package_id;
+	gchar				**files;
+} PkResultItemFiles;
+
+/**
+ * PkResultItemRepoSignatureRequired:
+ *
+ * Object to represent details about the repository signature request.
+ **/
+typedef struct
+{
+	gchar				*package_id;
+	gchar				*repository_name;
+	gchar				*key_url;
+	gchar				*key_userid;
+	gchar				*key_id;
+	gchar				*key_fingerprint;
+	gchar				*key_timestamp;
+	PkSigTypeEnum			 type;
+} PkResultItemRepoSignatureRequired;
+
+/**
+ * PkResultItemEulaRequired:
+ *
+ * Object to represent details about the EULA request.
+ **/
+typedef struct
+{
+	gchar				*eula_id;
+	gchar				*package_id;
+	gchar				*vendor_name;
+	gchar				*license_agreement;
+} PkResultItemEulaRequired;
+
+/**
+ * PkResultItemMediaChangeRequired:
+ *
+ * Object to represent details about the media change request.
+ **/
+typedef struct
+{
+	PkMediaTypeEnum			 media_type;
+	gchar				*media_id;
+	gchar				*media_text;
+} PkResultItemMediaChangeRequired;
+
+/**
+ * PkResultItemRepoDetail:
+ *
+ * Object to represent details about the remote repository.
+ **/
+typedef struct
+{
+	gchar				*repo_id;
+	gchar				*description;
+	gboolean			 enabled;
+} PkResultItemRepoDetail;
+
+/**
+ * PkResultItemErrorCode:
+ *
+ * Object to represent details about the error code.
+ **/
+typedef struct
+{
+	PkErrorCodeEnum			 code;
+	gchar				*details;
+} PkResultItemErrorCode;
+
+/**
+ * PkResultItemMessage:
+ *
+ * Object to represent details about the message.
+ **/
+typedef struct
+{
+	PkMessageEnum			 message;
+	gchar				*details;
+} PkResultItemMessage;
+
 GQuark		 pk_results_error_quark			(void);
 GType		 pk_results_get_type		  	(void);
 PkResults	*pk_results_new				(void);
@@ -221,12 +308,43 @@ gboolean	 pk_results_add_transaction		(PkResults		*results,
 							 const gchar		*data,
 							 guint			 uid,
 							 const gchar		*cmdline);
+gboolean	 pk_results_add_files 			(PkResults		*results,
+							 const gchar		*package_id,
+							 gchar			**files);
+gboolean	 pk_results_add_repo_signature_required	(PkResults		*results,
+							 const gchar		*package_id,
+							 const gchar		*repository_name,
+							 const gchar		*key_url,
+							 const gchar		*key_userid,
+							 const gchar		*key_id,
+							 const gchar		*key_fingerprint,
+							 const gchar		*key_timestamp,
+							 PkSigTypeEnum		 type_enum);
+gboolean	 pk_results_add_eula_required		(PkResults		*results,
+							 const gchar		*eula_id,
+							 const gchar		*package_id,
+							 const gchar		*vendor_name,
+							 const gchar		*license_agreement);
+gboolean	 pk_results_add_media_change_required	(PkResults		*results,
+							 PkMediaTypeEnum	 media_type_enum,
+							 const gchar		*media_id,
+							 const gchar		*media_text);
+gboolean	 pk_results_add_repo_detail 		(PkResults		*results,
+							 const gchar		*repo_id,
+							 const gchar		*description,
+							 gboolean		 enabled);
+gboolean	 pk_results_add_error_code 		(PkResults		*results,
+							 PkErrorCodeEnum	 code_enum,
+							 const gchar		*details);
+gboolean	 pk_results_add_message 		(PkResults		*results,
+							 PkMessageEnum		 message_enum,
+							 const gchar		*details);
 
 /* get single data */
 PkExitEnum	 pk_results_get_exit_code		(PkResults		*results);
 PkPackageSack	*pk_results_get_package_sack		(PkResults		*results);
 
-/* get package array objects */
+/* get array objects */
 GPtrArray	*pk_results_get_package_array		(PkResults		*results);
 GPtrArray	*pk_results_get_details_array		(PkResults		*results);
 GPtrArray	*pk_results_get_update_detail_array	(PkResults		*results);
@@ -234,6 +352,13 @@ GPtrArray	*pk_results_get_category_array		(PkResults		*results);
 GPtrArray	*pk_results_get_distro_upgrade_array	(PkResults		*results);
 GPtrArray	*pk_results_get_require_restart_array	(PkResults		*results);
 GPtrArray	*pk_results_get_transaction_array	(PkResults		*results);
+GPtrArray	*pk_results_get_files_array		(PkResults		*results);
+GPtrArray	*pk_results_get_repo_signature_required_array (PkResults	*results);
+GPtrArray	*pk_results_get_eula_required_array	(PkResults		*results);
+GPtrArray	*pk_results_get_media_change_required_array (PkResults		*results);
+GPtrArray	*pk_results_get_repo_detail_array	(PkResults		*results);
+GPtrArray	*pk_results_get_error_code_array	(PkResults		*results);
+GPtrArray	*pk_results_get_message_array		(PkResults		*results);
 
 G_END_DECLS
 
commit b64edc646f339aa213c269bfb2bc014f62832a4e
Author: Richard Hughes <richard at hughsie.com>
Date:   Fri Aug 28 10:36:31 2009 +0100

    glib2: connect up the rest of the client signals

diff --git a/lib/packagekit-glib2/pk-client.c b/lib/packagekit-glib2/pk-client.c
index a206e7f..e489c09 100644
--- a/lib/packagekit-glib2/pk-client.c
+++ b/lib/packagekit-glib2/pk-client.c
@@ -404,7 +404,6 @@ pk_client_distro_upgrade_cb (DBusGProxy *proxy, const gchar *type_text, const gc
 			     const gchar *summary, PkClientState *state)
 {
 	PkUpdateStateEnum type_enum;
-
 	type_enum = pk_update_state_enum_from_text (type_text);
 	pk_results_add_distro_upgrade (state->results, type_enum, name, summary);
 }
@@ -416,7 +415,6 @@ static void
 pk_client_require_restart_cb (DBusGProxy  *proxy, const gchar *restart_text, const gchar *package_id, PkClientState *state)
 {
 	PkRestartEnum restart_enum;
-
 	restart_enum = pk_restart_enum_from_text (restart_text);
 	pk_results_add_require_restart (state->results, restart_enum, package_id);
 }
@@ -432,6 +430,86 @@ pk_client_category_cb (DBusGProxy  *proxy, const gchar *parent_id, const gchar *
 }
 
 /**
+ * pk_client_files_cb:
+ */
+static void
+pk_client_files_cb (DBusGProxy *proxy, const gchar *package_id, const gchar *filelist, PkClientState *state)
+{
+	gchar **files;
+	files = g_strsplit (filelist, ";", -1);
+//	pk_results_add_files (state->results, package_id, files);
+	g_strfreev (files);
+}
+
+/**
+ * pk_client_repo_signature_required_cb:
+ **/
+static void
+pk_client_repo_signature_required_cb (DBusGProxy *proxy, const gchar *package_id, const gchar *repository_name,
+				      const gchar *key_url, const gchar *key_userid, const gchar *key_id,
+				      const gchar *key_fingerprint, const gchar *key_timestamp,
+				      const gchar *type_text, PkClientState *state)
+{
+	PkSigTypeEnum type_enum;
+	type_enum = pk_sig_type_enum_from_text (type_text);
+//	pk_results_add_signature_required (state->results, package_id, repository_name, key_url, key_userid, key_id, key_fingerprint, key_timestamp, type_enum);
+}
+
+/**
+ * pk_client_eula_required_cb:
+ **/
+static void
+pk_client_eula_required_cb (DBusGProxy *proxy, const gchar *eula_id, const gchar *package_id,
+			    const gchar *vendor_name, const gchar *license_agreement, PkClientState *state)
+{
+//	pk_results_add_eula_required (state->results, eula_id, package_id, vendor_name, license_agreement);
+}
+
+/**
+ * pk_client_media_change_required_cb:
+ **/
+static void
+pk_client_media_change_required_cb (DBusGProxy *proxy, const gchar *media_type_text,
+				    const gchar *media_id, const gchar *media_text, PkClientState *state)
+{
+	PkMediaTypeEnum media_type_enum;
+	media_type_enum = pk_media_type_enum_from_text (media_type_text);
+//	pk_results_add_media_change_required (state->results, media_type_enum, media_id, media_text);
+}
+
+/**
+ * pk_client_repo_detail_cb:
+ **/
+static void
+pk_client_repo_detail_cb (DBusGProxy *proxy, const gchar *repo_id,
+			  const gchar *description, gboolean enabled, PkClientState *state)
+{
+//	pk_results_add_repo_detail (state->results, repo_id, description, enabled);
+}
+
+/**
+ * pk_client_error_code_cb:
+ */
+static void
+pk_client_error_code_cb (DBusGProxy *proxy, const gchar *code_text, const gchar *details, PkClientState *state)
+{
+	PkErrorCodeEnum code_enum;
+	code_enum = pk_error_enum_from_text (code_text);
+//	pk_results_add_error_code (state->results, code_enum, details);
+}
+
+/**
+ * pk_client_message_cb:
+ */
+static void
+pk_client_message_cb (DBusGProxy  *proxy, const gchar *message_text, const gchar *details, PkClientState *state)
+{
+	PkMessageEnum message_enum;
+	message_enum = pk_message_enum_from_text (message_text);
+//	pk_results_add_message (state->results, message_enum, details);
+}
+
+/**
  * pk_client_connect_proxy:
  **/
 static void
@@ -505,7 +583,6 @@ pk_client_connect_proxy (DBusGProxy *proxy, PkClientState *state)
 				     G_CALLBACK (pk_client_allow_cancel_cb), state, NULL);
 	dbus_g_proxy_connect_signal (proxy, "CallerActiveChanged",
 				     G_CALLBACK (pk_client_caller_active_changed_cb), state, NULL);
-#if 0
 	dbus_g_proxy_connect_signal (proxy, "Files",
 				     G_CALLBACK (pk_client_files_cb), state, NULL);
 	dbus_g_proxy_connect_signal (proxy, "RepoSignatureRequired",
@@ -520,7 +597,6 @@ pk_client_connect_proxy (DBusGProxy *proxy, PkClientState *state)
 				     G_CALLBACK (pk_client_message_cb), state, NULL);
 	dbus_g_proxy_connect_signal (proxy, "MediaChangeRequired",
 				     G_CALLBACK (pk_client_media_change_required_cb), state, NULL);
-#endif
 }
 
 /**
@@ -551,7 +627,6 @@ pk_client_disconnect_proxy (DBusGProxy *proxy, PkClientState *state)
 					G_CALLBACK (pk_client_allow_cancel_cb), state);
 	dbus_g_proxy_disconnect_signal (proxy, "CallerActiveChanged",
 					G_CALLBACK (pk_client_caller_active_changed_cb), state);
-#if 0
 	dbus_g_proxy_disconnect_signal (proxy, "Files",
 					G_CALLBACK (pk_client_files_cb), state);
 	dbus_g_proxy_disconnect_signal (proxy, "RepoSignatureRequired",
@@ -562,9 +637,8 @@ pk_client_disconnect_proxy (DBusGProxy *proxy, PkClientState *state)
 					G_CALLBACK (pk_client_error_code_cb), state);
 	dbus_g_proxy_disconnect_signal (proxy, "Message",
 					G_CALLBACK (pk_client_message_cb), state);
-gi	dbus_g_proxy_disconnect_signal (proxy, "MediaChangeRequired",
+	dbus_g_proxy_disconnect_signal (proxy, "MediaChangeRequired",
 					G_CALLBACK (pk_client_media_change_required_cb), state);
-#endif
 }
 
 /**
commit 99462dd7066831e4f77987607b53ca13355a1b14
Author: Richard Hughes <richard at hughsie.com>
Date:   Fri Aug 28 10:22:06 2009 +0100

    glib2: add the caller-active callback

diff --git a/lib/packagekit-glib2/pk-client.c b/lib/packagekit-glib2/pk-client.c
index 7b257ad..a206e7f 100644
--- a/lib/packagekit-glib2/pk-client.c
+++ b/lib/packagekit-glib2/pk-client.c
@@ -325,6 +325,22 @@ pk_client_allow_cancel_cb (DBusGProxy *proxy, gboolean allow_cancel, PkClientSta
 }
 
 /**
+ * pk_client_caller_active_changed_cb:
+ */
+static void
+pk_client_caller_active_changed_cb (DBusGProxy *proxy, gboolean is_active, PkClientState *state)
+{
+	/* save progress */
+	g_object_set (state->progress,
+		      "caller-active", is_active,
+		      NULL);
+
+	/* do the callback for GUI programs */
+	if (state->progress_callback != NULL)
+		state->progress_callback (state->progress, PK_PROGRESS_TYPE_CALLER_ACTIVE, state->progress_user_data);
+}
+
+/**
  * pk_client_details_cb:
  */
 static void
@@ -487,6 +503,8 @@ pk_client_connect_proxy (DBusGProxy *proxy, PkClientState *state)
 				     G_CALLBACK (pk_client_category_cb), state, NULL);
 	dbus_g_proxy_connect_signal (proxy, "AllowCancel",
 				     G_CALLBACK (pk_client_allow_cancel_cb), state, NULL);
+	dbus_g_proxy_connect_signal (proxy, "CallerActiveChanged",
+				     G_CALLBACK (pk_client_caller_active_changed_cb), state, NULL);
 #if 0
 	dbus_g_proxy_connect_signal (proxy, "Files",
 				     G_CALLBACK (pk_client_files_cb), state, NULL);
@@ -500,8 +518,6 @@ pk_client_connect_proxy (DBusGProxy *proxy, PkClientState *state)
 				     G_CALLBACK (pk_client_error_code_cb), state, NULL);
 	dbus_g_proxy_connect_signal (proxy, "Message",
 				     G_CALLBACK (pk_client_message_cb), state, NULL);
-	dbus_g_proxy_connect_signal (proxy, "CallerActiveChanged",
-				     G_CALLBACK (pk_client_caller_active_changed_cb), state, NULL);
 	dbus_g_proxy_connect_signal (proxy, "MediaChangeRequired",
 				     G_CALLBACK (pk_client_media_change_required_cb), state, NULL);
 #endif
@@ -533,6 +549,8 @@ pk_client_disconnect_proxy (DBusGProxy *proxy, PkClientState *state)
 					G_CALLBACK (pk_client_require_restart_cb), state);
 	dbus_g_proxy_disconnect_signal (proxy, "AllowCancel",
 					G_CALLBACK (pk_client_allow_cancel_cb), state);
+	dbus_g_proxy_disconnect_signal (proxy, "CallerActiveChanged",
+					G_CALLBACK (pk_client_caller_active_changed_cb), state);
 #if 0
 	dbus_g_proxy_disconnect_signal (proxy, "Files",
 					G_CALLBACK (pk_client_files_cb), state);
@@ -544,9 +562,7 @@ pk_client_disconnect_proxy (DBusGProxy *proxy, PkClientState *state)
 					G_CALLBACK (pk_client_error_code_cb), state);
 	dbus_g_proxy_disconnect_signal (proxy, "Message",
 					G_CALLBACK (pk_client_message_cb), state);
-	dbus_g_proxy_disconnect_signal (proxy, "CallerActiveChanged",
-					G_CALLBACK (pk_client_caller_active_changed_cb), state);
-	dbus_g_proxy_disconnect_signal (proxy, "MediaChangeRequired",
+gi	dbus_g_proxy_disconnect_signal (proxy, "MediaChangeRequired",
 					G_CALLBACK (pk_client_media_change_required_cb), state);
 #endif
 }
diff --git a/lib/packagekit-glib2/pk-progress.c b/lib/packagekit-glib2/pk-progress.c
index 97ea39e..614f908 100644
--- a/lib/packagekit-glib2/pk-progress.c
+++ b/lib/packagekit-glib2/pk-progress.c
@@ -49,6 +49,7 @@ struct _PkProgressPrivate
 	gint				 subpercentage;
 	gboolean			 allow_cancel;
 	PkStatusEnum			 status;
+	gboolean			 caller_active;
 };
 
 enum {
@@ -58,6 +59,7 @@ enum {
 	PROP_SUBPERCENTAGE,
 	PROP_ALLOW_CANCEL,
 	PROP_STATUS,
+	PROP_CALLER_ACTIVE,
 	PROP_LAST
 };
 
@@ -88,6 +90,9 @@ pk_progress_get_property (GObject *object, guint prop_id, GValue *value, GParamS
 	case PROP_STATUS:
 		g_value_set_uint (value, priv->status);
 		break;
+	case PROP_CALLER_ACTIVE:
+		g_value_set_boolean (value, priv->caller_active);
+		break;
 	default:
 		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
 		break;
@@ -120,6 +125,9 @@ pk_progress_set_property (GObject *object, guint prop_id, const GValue *value, G
 	case PROP_STATUS:
 		priv->status = g_value_get_uint (value);
 		break;
+	case PROP_CALLER_ACTIVE:
+		priv->caller_active = g_value_get_boolean (value);
+		break;
 	default:
 		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
 		break;
@@ -179,6 +187,14 @@ pk_progress_class_init (PkProgressClass *klass)
 				   G_PARAM_READWRITE);
 	g_object_class_install_property (object_class, PROP_STATUS, pspec);
 
+	/**
+	 * PkPackage:caller-active:
+	 */
+	pspec = g_param_spec_boolean ("caller-active", NULL, NULL,
+				      FALSE,
+				      G_PARAM_READWRITE);
+	g_object_class_install_property (object_class, PROP_CALLER_ACTIVE, pspec);
+
 	g_type_class_add_private (klass, sizeof (PkProgressPrivate));
 }
 
diff --git a/lib/packagekit-glib2/pk-progress.h b/lib/packagekit-glib2/pk-progress.h
index a92ab42..330623c 100644
--- a/lib/packagekit-glib2/pk-progress.h
+++ b/lib/packagekit-glib2/pk-progress.h
@@ -75,6 +75,7 @@ typedef enum {
 	PK_PROGRESS_TYPE_SUBPERCENTAGE,
 	PK_PROGRESS_TYPE_ALLOW_CANCEL,
 	PK_PROGRESS_TYPE_STATUS,
+	PK_PROGRESS_TYPE_CALLER_ACTIVE,
 	PK_PROGRESS_TYPE_INVALID
 } PkProgressType;
 
commit eb74e59318ecd40c6022218879d75b8af44cd8d2
Author: Richard Hughes <richard at hughsie.com>
Date:   Fri Aug 28 10:19:47 2009 +0100

    glib2: add more client callbacks internally

diff --git a/lib/packagekit-glib2/pk-client.c b/lib/packagekit-glib2/pk-client.c
index 0636666..7b257ad 100644
--- a/lib/packagekit-glib2/pk-client.c
+++ b/lib/packagekit-glib2/pk-client.c
@@ -309,6 +309,22 @@ pk_client_status_changed_cb (DBusGProxy *proxy, const gchar *status_text, PkClie
 }
 
 /**
+ * pk_client_allow_cancel_cb:
+ */
+static void
+pk_client_allow_cancel_cb (DBusGProxy *proxy, gboolean allow_cancel, PkClientState *state)
+{
+	/* save progress */
+	g_object_set (state->progress,
+		      "allow-cancel", allow_cancel,
+		      NULL);
+
+	/* do the callback for GUI programs */
+	if (state->progress_callback != NULL)
+		state->progress_callback (state->progress, PK_PROGRESS_TYPE_ALLOW_CANCEL, state->progress_user_data);
+}
+
+/**
  * pk_client_details_cb:
  */
 static void
@@ -352,6 +368,54 @@ pk_client_update_detail_cb (DBusGProxy  *proxy, const gchar *package_id, const g
 }
 
 /**
+ * pk_client_transaction_cb:
+ */
+static void
+pk_client_transaction_cb (DBusGProxy *proxy, const gchar *old_tid, const gchar *timespec,
+			  gboolean succeeded, const gchar *role_text, guint duration,
+			  const gchar *data, guint uid, const gchar *cmdline, PkClientState *state)
+{
+	PkRoleEnum role_enum;
+	role_enum = pk_role_enum_from_text (role_text);
+	pk_results_add_transaction (state->results, old_tid, timespec, succeeded, role_enum, duration, data, uid, cmdline);
+}
+
+/**
+ * pk_client_distro_upgrade_cb:
+ */
+static void
+pk_client_distro_upgrade_cb (DBusGProxy *proxy, const gchar *type_text, const gchar *name,
+			     const gchar *summary, PkClientState *state)
+{
+	PkUpdateStateEnum type_enum;
+
+	type_enum = pk_update_state_enum_from_text (type_text);
+	pk_results_add_distro_upgrade (state->results, type_enum, name, summary);
+}
+
+/**
+ * pk_client_require_restart_cb:
+ */
+static void
+pk_client_require_restart_cb (DBusGProxy  *proxy, const gchar *restart_text, const gchar *package_id, PkClientState *state)
+{
+	PkRestartEnum restart_enum;
+
+	restart_enum = pk_restart_enum_from_text (restart_text);
+	pk_results_add_require_restart (state->results, restart_enum, package_id);
+}
+
+/**
+ * pk_client_category_cb:
+ */
+static void
+pk_client_category_cb (DBusGProxy  *proxy, const gchar *parent_id, const gchar *cat_id,
+		       const gchar *name, const gchar *summary, const gchar *icon, PkClientState *state)
+{
+	pk_results_add_category (state->results, parent_id, cat_id, name, summary, icon);
+}
+
+/**
  * pk_client_connect_proxy:
  **/
 static void
@@ -413,11 +477,17 @@ pk_client_connect_proxy (DBusGProxy *proxy, PkClientState *state)
 				     G_CALLBACK (pk_client_details_cb), state, NULL);
 	dbus_g_proxy_connect_signal (proxy, "UpdateDetail",
 				     G_CALLBACK (pk_client_update_detail_cb), state, NULL);
-#if 0
 	dbus_g_proxy_connect_signal (proxy, "Transaction",
 				     G_CALLBACK (pk_client_transaction_cb), state, NULL);
 	dbus_g_proxy_connect_signal (proxy, "DistroUpgrade",
 				     G_CALLBACK (pk_client_distro_upgrade_cb), state, NULL);
+	dbus_g_proxy_connect_signal (proxy, "RequireRestart",
+				     G_CALLBACK (pk_client_require_restart_cb), state, NULL);
+	dbus_g_proxy_connect_signal (proxy, "Category",
+				     G_CALLBACK (pk_client_category_cb), state, NULL);
+	dbus_g_proxy_connect_signal (proxy, "AllowCancel",
+				     G_CALLBACK (pk_client_allow_cancel_cb), state, NULL);
+#if 0
 	dbus_g_proxy_connect_signal (proxy, "Files",
 				     G_CALLBACK (pk_client_files_cb), state, NULL);
 	dbus_g_proxy_connect_signal (proxy, "RepoSignatureRequired",
@@ -428,20 +498,12 @@ pk_client_connect_proxy (DBusGProxy *proxy, PkClientState *state)
 				     G_CALLBACK (pk_client_repo_detail_cb), state, NULL);
 	dbus_g_proxy_connect_signal (proxy, "ErrorCode",
 				     G_CALLBACK (pk_client_error_code_cb), state, NULL);
-	dbus_g_proxy_connect_signal (proxy, "RequireRestart",
-				     G_CALLBACK (pk_client_require_restart_cb), state, NULL);
 	dbus_g_proxy_connect_signal (proxy, "Message",
 				     G_CALLBACK (pk_client_message_cb), state, NULL);
 	dbus_g_proxy_connect_signal (proxy, "CallerActiveChanged",
 				     G_CALLBACK (pk_client_caller_active_changed_cb), state, NULL);
-	dbus_g_proxy_connect_signal (proxy, "AllowCancel",
-				     G_CALLBACK (pk_client_allow_cancel_cb), state, NULL);
-	dbus_g_proxy_connect_signal (proxy, "Category",
-				     G_CALLBACK (pk_client_category_cb), state, NULL);
 	dbus_g_proxy_connect_signal (proxy, "MediaChangeRequired",
 				     G_CALLBACK (pk_client_media_change_required_cb), state, NULL);
-	dbus_g_proxy_connect_signal (proxy, "Destroy",
-				     G_CALLBACK (pk_client_destroy_cb), state, NULL);
 #endif
 }
 
@@ -463,11 +525,15 @@ pk_client_disconnect_proxy (DBusGProxy *proxy, PkClientState *state)
 					G_CALLBACK (pk_client_details_cb), state);
 	dbus_g_proxy_disconnect_signal (proxy, "UpdateDetail",
 					G_CALLBACK (pk_client_update_detail_cb), state);
-#if 0
 	dbus_g_proxy_disconnect_signal (proxy, "Transaction",
 					G_CALLBACK (pk_client_transaction_cb), state);
 	dbus_g_proxy_disconnect_signal (proxy, "DistroUpgrade",
 					G_CALLBACK (pk_client_distro_upgrade_cb), state);
+	dbus_g_proxy_disconnect_signal (proxy, "RequireRestart",
+					G_CALLBACK (pk_client_require_restart_cb), state);
+	dbus_g_proxy_disconnect_signal (proxy, "AllowCancel",
+					G_CALLBACK (pk_client_allow_cancel_cb), state);
+#if 0
 	dbus_g_proxy_disconnect_signal (proxy, "Files",
 					G_CALLBACK (pk_client_files_cb), state);
 	dbus_g_proxy_disconnect_signal (proxy, "RepoSignatureRequired",
@@ -476,16 +542,10 @@ pk_client_disconnect_proxy (DBusGProxy *proxy, PkClientState *state)
 					G_CALLBACK (pk_client_eula_required_cb), state);
 	dbus_g_proxy_disconnect_signal (proxy, "ErrorCode",
 					G_CALLBACK (pk_client_error_code_cb), state);
-	dbus_g_proxy_disconnect_signal (proxy, "RequireRestart",
-					G_CALLBACK (pk_client_require_restart_cb), state);
 	dbus_g_proxy_disconnect_signal (proxy, "Message",
 					G_CALLBACK (pk_client_message_cb), state);
 	dbus_g_proxy_disconnect_signal (proxy, "CallerActiveChanged",
 					G_CALLBACK (pk_client_caller_active_changed_cb), state);
-	dbus_g_proxy_disconnect_signal (proxy, "AllowCancel",
-					G_CALLBACK (pk_client_allow_cancel_cb), state);
-	dbus_g_proxy_disconnect_signal (proxy, "Destroy",
-					G_CALLBACK (pk_client_destroy_cb), state);
 	dbus_g_proxy_disconnect_signal (proxy, "MediaChangeRequired",
 					G_CALLBACK (pk_client_media_change_required_cb), state);
 #endif
diff --git a/lib/packagekit-glib2/pk-results.c b/lib/packagekit-glib2/pk-results.c
index 20e3f98..f12f064 100644
--- a/lib/packagekit-glib2/pk-results.c
+++ b/lib/packagekit-glib2/pk-results.c
@@ -67,6 +67,10 @@ struct _PkResultsPrivate
 	GPtrArray		*package_array;
 	GPtrArray		*details_array;
 	GPtrArray		*update_detail_array;
+	GPtrArray		*category_array;
+	GPtrArray		*distro_upgrade_array;
+	GPtrArray		*require_restart_array;
+	GPtrArray		*transaction_array;
 };
 
 G_DEFINE_TYPE (PkResults, pk_results, G_TYPE_OBJECT)
@@ -121,7 +125,6 @@ pk_result_item_update_detail_free (PkResultItemUpdateDetail *item)
 		g_date_free (item->updated);
 }
 
-#if 0
 /**
  * pk_result_item_category_free:
  **/
@@ -177,7 +180,6 @@ pk_result_item_transaction_free (PkResultItemTransaction *item)
 	g_free (item->cmdline);
 	g_free (item);
 }
-#endif
 
 /**
  * pk_results_set_exit_code:
@@ -297,6 +299,123 @@ pk_results_add_update_detail (PkResults *results, const gchar *package_id, const
 }
 
 /**
+ * pk_results_add_category:
+ * @results: a valid #PkResults instance
+ *
+ * Adds a category item to the results set.
+ *
+ * Return value: %TRUE if the value was set
+ **/
+gboolean
+pk_results_add_category (PkResults *results, const gchar *parent_id, const gchar *cat_id, const gchar *name,
+			 const gchar *summary, const gchar *icon)
+{
+	PkResultItemCategory *item;
+
+	g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
+	g_return_val_if_fail (name != NULL, FALSE);
+
+	/* copy and add to array */
+	item = g_new0 (PkResultItemCategory, 1);
+	item->parent_id = g_strdup (parent_id);
+	item->cat_id = g_strdup (cat_id);
+	item->name = g_strdup (name);
+	item->summary = g_strdup (summary);
+	item->icon = g_strdup (icon);
+	g_ptr_array_add (results->priv->category_array, item);
+
+	return TRUE;
+}
+
+/**
+ * pk_results_add_distro_upgrade:
+ * @results: a valid #PkResults instance
+ *
+ * Adds a distribution upgrade item to the results set.
+ *
+ * Return value: %TRUE if the value was set
+ **/
+gboolean
+pk_results_add_distro_upgrade (PkResults *results, PkUpdateStateEnum state_enum, const gchar *name, const gchar *summary)
+{
+	PkResultItemDistroUpgrade *item;
+
+	g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
+	g_return_val_if_fail (state_enum != PK_UPDATE_STATE_ENUM_UNKNOWN, FALSE);
+	g_return_val_if_fail (name != NULL, FALSE);
+
+	/* copy and add to array */
+	item = g_new0 (PkResultItemDistroUpgrade, 1);
+	item->state = state_enum;
+	item->name = g_strdup (name);
+	item->summary = g_strdup (summary);
+	g_ptr_array_add (results->priv->distro_upgrade_array, item);
+
+	return TRUE;
+}
+
+/**
+ * pk_results_add_require_restart:
+ * @results: a valid #PkResults instance
+ *
+ * Adds a require restart item to the results set.
+ *
+ * Return value: %TRUE if the value was set
+ **/
+gboolean
+pk_results_add_require_restart (PkResults *results, PkRestartEnum restart_enum, const gchar *package_id)
+{
+	PkResultItemRequireRestart *item;
+
+	g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
+	g_return_val_if_fail (restart_enum != PK_RESTART_ENUM_UNKNOWN, FALSE);
+	g_return_val_if_fail (package_id != NULL, FALSE);
+
+	/* copy and add to array */
+	item = g_new0 (PkResultItemRequireRestart, 1);
+	item->restart = restart_enum;
+	item->package_id = g_strdup (package_id);
+	g_ptr_array_add (results->priv->require_restart_array, item);
+
+	return TRUE;
+}
+
+/**
+ * pk_results_add_transaction:
+ * @results: a valid #PkResults instance
+ *
+ * Adds a transaction item to the results set.
+ *
+ * Return value: %TRUE if the value was set
+ **/
+gboolean
+pk_results_add_transaction (PkResults *results, const gchar *tid, const gchar *timespec,
+			    gboolean succeeded, PkRoleEnum role_enum,
+			    guint duration, const gchar *data,
+			    guint uid, const gchar *cmdline)
+{
+	PkResultItemTransaction *item;
+
+	g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
+	g_return_val_if_fail (role_enum != PK_ROLE_ENUM_UNKNOWN, FALSE);
+	g_return_val_if_fail (tid != NULL, FALSE);
+
+	/* copy and add to array */
+	item = g_new0 (PkResultItemTransaction, 1);
+	item->tid = g_strdup (tid);
+	item->timespec = g_strdup (timespec);
+	item->succeeded = succeeded;
+	item->role = role_enum;
+	item->duration = duration;
+	item->data = g_strdup (data);
+	item->uid = uid;
+	item->cmdline = g_strdup (cmdline);
+	g_ptr_array_add (results->priv->transaction_array, item);
+
+	return TRUE;
+}
+
+/**
  * pk_results_get_exit_code:
  * @results: a valid #PkResults instance
  *
@@ -405,6 +524,66 @@ pk_results_get_update_detail_array (PkResults *results)
 }
 
 /**
+ * pk_results_get_category_array:
+ * @results: a valid #PkResults instance
+ *
+ * Gets the categories from the transaction.
+ *
+ * Return value: A #GPtrArray array of #PkResultItemCategory's, free with g_ptr_array_unref().
+ **/
+GPtrArray *
+pk_results_get_category_array (PkResults *results)
+{
+	g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
+	return g_ptr_array_ref (results->priv->category_array);
+}
+
+/**
+ * pk_results_get_distro_upgrade_array:
+ * @results: a valid #PkResults instance
+ *
+ * Gets the distribution upgrades from the transaction.
+ *
+ * Return value: A #GPtrArray array of #PkResultItemDistroUpgrade's, free with g_ptr_array_unref().
+ **/
+GPtrArray *
+pk_results_get_distro_upgrade_array (PkResults *results)
+{
+	g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
+	return g_ptr_array_ref (results->priv->distro_upgrade_array);
+}
+
+/**
+ * pk_results_get_require_restart_array:
+ * @results: a valid #PkResults instance
+ *
+ * Gets the require restarts from the transaction.
+ *
+ * Return value: A #GPtrArray array of #PkResultItemRequireRestart's, free with g_ptr_array_unref().
+ **/
+GPtrArray *
+pk_results_get_require_restart_array (PkResults *results)
+{
+	g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
+	return g_ptr_array_ref (results->priv->require_restart_array);
+}
+
+/**
+ * pk_results_get_transaction_array:
+ * @results: a valid #PkResults instance
+ *
+ * Gets the transactions from the transaction.
+ *
+ * Return value: A #GPtrArray array of #PkResultItemTransaction's, free with g_ptr_array_unref().
+ **/
+GPtrArray *
+pk_results_get_transaction_array (PkResults *results)
+{
+	g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
+	return g_ptr_array_ref (results->priv->transaction_array);
+}
+
+/**
  * pk_results_class_init:
  * @klass: The PkResultsClass
  **/
@@ -428,6 +607,10 @@ pk_results_init (PkResults *results)
 	results->priv->package_array = g_ptr_array_new_with_free_func ((GDestroyNotify) pk_result_item_package_free);
 	results->priv->details_array = g_ptr_array_new_with_free_func ((GDestroyNotify) pk_result_item_details_free);
 	results->priv->update_detail_array = g_ptr_array_new_with_free_func ((GDestroyNotify) pk_result_item_update_detail_free);
+	results->priv->category_array = g_ptr_array_new_with_free_func ((GDestroyNotify) pk_result_item_category_free);
+	results->priv->distro_upgrade_array = g_ptr_array_new_with_free_func ((GDestroyNotify) pk_result_item_distro_upgrade_free);
+	results->priv->require_restart_array = g_ptr_array_new_with_free_func ((GDestroyNotify) pk_result_item_require_restart_free);
+	results->priv->transaction_array = g_ptr_array_new_with_free_func ((GDestroyNotify) pk_result_item_transaction_free);
 }
 
 /**
@@ -443,6 +626,10 @@ pk_results_finalize (GObject *object)
 	g_ptr_array_unref (priv->package_array);
 	g_ptr_array_unref (priv->details_array);
 	g_ptr_array_unref (priv->update_detail_array);
+	g_ptr_array_unref (priv->category_array);
+	g_ptr_array_unref (priv->distro_upgrade_array);
+	g_ptr_array_unref (priv->require_restart_array);
+	g_ptr_array_unref (priv->transaction_array);
 
 	G_OBJECT_CLASS (pk_results_parent_class)->finalize (object);
 }
diff --git a/lib/packagekit-glib2/pk-results.h b/lib/packagekit-glib2/pk-results.h
index 5e4411c..9f65baf 100644
--- a/lib/packagekit-glib2/pk-results.h
+++ b/lib/packagekit-glib2/pk-results.h
@@ -175,39 +175,65 @@ gboolean	 pk_results_set_exit_code		(PkResults	*results,
 							 PkExitEnum	 exit_enum);
 
 /* add */
-gboolean	 pk_results_add_package			(PkResults	*results,
-							 PkInfoEnum	 info_enum,
-							 const gchar	*package_id,
-							 const gchar	*summary);
-gboolean	 pk_results_add_details			(PkResults	*results,
-							 const gchar	*package_id,
-							 const gchar	*license,
-							 PkGroupEnum	 group_enum,
-							 const gchar	*description,
-							 const gchar	*url,
-							 guint64	 size);
-gboolean	 pk_results_add_update_detail		(PkResults	*results,
-							 const gchar	*package_id,
-							 const gchar	*updates,
-							 const gchar	*obsoletes,
-							 const gchar	*vendor_url,
-							 const gchar	*bugzilla_url,
-							 const gchar	*cve_url,
-							 PkRestartEnum	 restart_enum,
-							 const gchar	*update_text,
-							 const gchar	*changelog,
-							 PkUpdateStateEnum state_enum,
-							 GDate		*issued,
-							 GDate		*updated);
+gboolean	 pk_results_add_package			(PkResults		*results,
+							 PkInfoEnum		 info_enum,
+							 const gchar		*package_id,
+							 const gchar		*summary);
+gboolean	 pk_results_add_details			(PkResults		*results,
+							 const gchar		*package_id,
+							 const gchar		*license,
+							 PkGroupEnum		 group_enum,
+							 const gchar		*description,
+							 const gchar		*url,
+							 guint64		 size);
+gboolean	 pk_results_add_update_detail		(PkResults		*results,
+							 const gchar		*package_id,
+							 const gchar		*updates,
+							 const gchar		*obsoletes,
+							 const gchar		*vendor_url,
+							 const gchar		*bugzilla_url,
+							 const gchar		*cve_url,
+							 PkRestartEnum		 restart_enum,
+							 const gchar		*update_text,
+							 const gchar		*changelog,
+							 PkUpdateStateEnum	 state_enum,
+							 GDate			*issued,
+							 GDate			*updated);
+gboolean	 pk_results_add_category		(PkResults		*results,
+							 const gchar		*parent_id,
+							 const gchar		*cat_id,
+							 const gchar		*name,
+							 const gchar		*summary,
+							 const gchar		*icon);
+gboolean	 pk_results_add_distro_upgrade		(PkResults		*results,
+							 PkUpdateStateEnum	 state_enum,
+							 const gchar		*name,
+							 const gchar		*summary);
+gboolean	 pk_results_add_require_restart		(PkResults		*results,
+							 PkRestartEnum		 restart_enum,
+							 const gchar		*package_id);
+gboolean	 pk_results_add_transaction		(PkResults		*results,
+							 const gchar		*tid,
+							 const gchar		*timespec,
+							 gboolean		 succeeded,
+							 PkRoleEnum		 role_enum,
+							 guint			 duration,
+							 const gchar		*data,
+							 guint			 uid,
+							 const gchar		*cmdline);
 
 /* get single data */
-PkExitEnum	 pk_results_get_exit_code		(PkResults	*results);
-PkPackageSack	*pk_results_get_package_sack		(PkResults	*results);
+PkExitEnum	 pk_results_get_exit_code		(PkResults		*results);
+PkPackageSack	*pk_results_get_package_sack		(PkResults		*results);
 
 /* get package array objects */
-GPtrArray	*pk_results_get_package_array		(PkResults	*results);
-GPtrArray	*pk_results_get_details_array		(PkResults	*results);
-GPtrArray	*pk_results_get_update_detail_array	(PkResults	*results);
+GPtrArray	*pk_results_get_package_array		(PkResults		*results);
+GPtrArray	*pk_results_get_details_array		(PkResults		*results);
+GPtrArray	*pk_results_get_update_detail_array	(PkResults		*results);
+GPtrArray	*pk_results_get_category_array		(PkResults		*results);
+GPtrArray	*pk_results_get_distro_upgrade_array	(PkResults		*results);
+GPtrArray	*pk_results_get_require_restart_array	(PkResults		*results);
+GPtrArray	*pk_results_get_transaction_array	(PkResults		*results);
 
 G_END_DECLS
 
commit e837c33ff84deb8d76e13de0463f80bdea14f24a
Author: Richard Hughes <richard at hughsie.com>
Date:   Fri Aug 28 09:42:47 2009 +0100

    glib2: use a abstract progress object that we can easily extend in the future

diff --git a/lib/packagekit-glib2/Makefile.am b/lib/packagekit-glib2/Makefile.am
index d281443..1fb89b9 100644
--- a/lib/packagekit-glib2/Makefile.am
+++ b/lib/packagekit-glib2/Makefile.am
@@ -59,6 +59,8 @@ libpackagekit_glib2_la_SOURCES =				\
 	pk-marshal.h						\
 	pk-results.c						\
 	pk-results.h						\
+	pk-progress.c						\
+	pk-progress.h						\
 	$(NULL)
 
 libpackagekit_glib2_la_LIBADD =					\
diff --git a/lib/packagekit-glib2/pk-client.c b/lib/packagekit-glib2/pk-client.c
index 50f142b..0636666 100644
--- a/lib/packagekit-glib2/pk-client.c
+++ b/lib/packagekit-glib2/pk-client.c
@@ -91,15 +91,12 @@ static guint signals [SIGNAL_LAST] = { 0 };
 G_DEFINE_TYPE (PkClient, pk_client, G_TYPE_OBJECT)
 
 typedef struct {
-	DBusGProxyCall			*call;
-	DBusGProxy			*proxy;
 	gboolean			 allow_deps;
 	gboolean			 autoremove;
 	gboolean			 enabled;
 	gboolean			 force;
 	gboolean			 only_trusted;
 	gboolean			 recursive;
-	GCancellable			*cancellable;
 	gchar				*directory;
 	gchar				*eula_id;
 	gchar				**files;
@@ -111,13 +108,16 @@ typedef struct {
 	gchar				*search;
 	gchar				*tid;
 	gchar				*value;
+	gpointer			 progress_user_data;
 	gpointer			 user_data;
+	DBusGProxyCall			*call;
+	DBusGProxy			*proxy;
+	GCancellable			*cancellable;
 	GSimpleAsyncResult		*res;
 	PkBitfield			 filters;
 	PkClient			*client;
-	PkClientPackageCallback		 callback_package;
-	PkClientProgressCallback	 callback_progress;
-	PkClientStatusCallback		 callback_status;
+	PkProgress			*progress;
+	PkProgressCallback		 progress_callback;
 	PkProvidesEnum			 provides;
 	PkResults			*results;
 	PkRoleEnum			 role;
@@ -146,10 +146,10 @@ pk_client_state_finish (PkClientState *state, GError *error)
 	g_free (state->value);
 	g_strfreev (state->files);
 	g_strfreev (state->package_ids);
+	g_object_unref (state->progress);
 
-	if (state->client != NULL) {
+	if (state->client != NULL)
 		g_object_remove_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
-	}
 
 	if (state->cancellable != NULL) {
 		g_cancellable_cancel (state->cancellable);
@@ -241,9 +241,14 @@ pk_client_package_cb (DBusGProxy *proxy, const gchar *info_text, const gchar *pa
 	info_enum = pk_info_enum_from_text (info_text);
 	pk_results_add_package (state->results, info_enum, package_id, summary);
 
+	/* save progress */
+	g_object_set (state->progress,
+		      "package_id", package_id,
+		      NULL);
+
 	/* do the callback for GUI programs */
-	if (state->callback_package != NULL)
-		state->callback_package (state->client, package_id, state->user_data);
+	if (state->progress_callback != NULL)
+		state->progress_callback (state->progress, PK_PROGRESS_TYPE_PACKAGE_ID, state->progress_user_data);
 }
 
 /**
@@ -253,9 +258,30 @@ static void
 pk_client_progress_changed_cb (DBusGProxy *proxy, guint percentage, guint subpercentage,
 			       guint elapsed, guint remaining, PkClientState *state)
 {
+	gint percentage_new;
+	gint subpercentage_new;
+
+	/* convert to signed */
+	percentage_new = (gint) percentage;
+	subpercentage_new = (gint) subpercentage;
+
+	/* daemon is odd, and says that unknown is 101 */
+	if (percentage_new == 101)
+		percentage_new = -1;
+	if (subpercentage_new == 101)
+		subpercentage_new = -1;
+
+	/* save progress */
+	g_object_set (state->progress,
+		      "percentage", percentage_new,
+		      "subpercentage", subpercentage_new,
+		      NULL);
+
 	/* do the callback for GUI programs */
-	if (state->callback_progress != NULL)
-		state->callback_progress (state->client, percentage, state->user_data);
+	if (state->progress_callback != NULL) {
+		state->progress_callback (state->progress, PK_PROGRESS_TYPE_PERCENTAGE, state->progress_user_data);
+		state->progress_callback (state->progress, PK_PROGRESS_TYPE_SUBPERCENTAGE, state->progress_user_data);
+	}
 }
 
 /**
@@ -272,9 +298,14 @@ pk_client_status_changed_cb (DBusGProxy *proxy, const gchar *status_text, PkClie
 	/* save cached value */
 	state->client->priv->status = status_enum;
 
+	/* save progress */
+	g_object_set (state->progress,
+		      "status", status_enum,
+		      NULL);
+
 	/* do the callback for GUI programs */
-	if (state->callback_status != NULL)
-		state->callback_status (state->client, status_enum, state->user_data);
+	if (state->progress_callback != NULL)
+		state->progress_callback (state->progress, PK_PROGRESS_TYPE_STATUS, state->progress_user_data);
 }
 
 /**
@@ -726,17 +757,16 @@ pk_client_generic_finish (PkClient *client, GAsyncResult *res, GError **error)
  * pk_client_resolve_async:
  * @client: a valid #PkClient instance
  * @cancellable: a #GCancellable or %NULL
- * @callback_progress: the function to run when the progress changes
- * @callback_status: the function to run when the status changes
- * @callback_package: the function to run when the package changes
+ * @progress_callback: the function to run when the progress changes
+ * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
- * @user_data: the data to pass to @callback
+ * @user_data: the data to pass to @callback_ready
  *
  * TODO
  **/
 void
 pk_client_resolve_async (PkClient *client, PkBitfield filters, gchar **packages, GCancellable *cancellable,
-			 PkClientProgressCallback callback_progress, PkClientStatusCallback callback_status,
+			 PkProgressCallback progress_callback, gpointer progress_user_data,
 			 GAsyncReadyCallback callback_ready, gpointer user_data)
 {
 	GSimpleAsyncResult *res;
@@ -755,9 +785,9 @@ pk_client_resolve_async (PkClient *client, PkBitfield filters, gchar **packages,
 	state->client = client;
 	state->filters = filters;
 	state->package_ids = g_strdupv (packages);
-	state->callback_progress = callback_progress;
-	state->callback_status = callback_status;
-	state->user_data = user_data;
+	state->progress_callback = progress_callback;
+	state->progress_user_data = progress_user_data;
+	state->progress = pk_progress_new ();
 	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
 
 	/* get tid */
@@ -769,17 +799,16 @@ pk_client_resolve_async (PkClient *client, PkBitfield filters, gchar **packages,
  * pk_client_search_name_async:
  * @client: a valid #PkClient instance
  * @cancellable: a #GCancellable or %NULL
- * @callback_progress: the function to run when the progress changes
- * @callback_status: the function to run when the status changes
- * @callback_package: the function to run when the package changes
+ * @progress_callback: the function to run when the progress changes
+ * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
- * @user_data: the data to pass to @callback
+ * @user_data: the data to pass to @callback_ready
  *
  * TODO
  **/
 void
 pk_client_search_name_async (PkClient *client, PkBitfield filters, const gchar *search, GCancellable *cancellable,
-			     PkClientProgressCallback callback_progress, PkClientStatusCallback callback_status,
+			     PkProgressCallback progress_callback, gpointer progress_user_data,
 			     GAsyncReadyCallback callback_ready, gpointer user_data)
 {
 	GSimpleAsyncResult *res;
@@ -798,9 +827,9 @@ pk_client_search_name_async (PkClient *client, PkBitfield filters, const gchar *
 	state->client = client;
 	state->filters = filters;
 	state->search = g_strdup (search);
-	state->callback_progress = callback_progress;
-	state->callback_status = callback_status;
-	state->user_data = user_data;
+	state->progress_callback = progress_callback;
+	state->progress_user_data = progress_user_data;
+	state->progress = pk_progress_new ();
 	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
 
 	/* get tid */
@@ -812,17 +841,16 @@ pk_client_search_name_async (PkClient *client, PkBitfield filters, const gchar *
  * pk_client_search_details_async:
  * @client: a valid #PkClient instance
  * @cancellable: a #GCancellable or %NULL
- * @callback_progress: the function to run when the progress changes
- * @callback_status: the function to run when the status changes
- * @callback_package: the function to run when the package changes
+ * @progress_callback: the function to run when the progress changes
+ * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
- * @user_data: the data to pass to @callback
+ * @user_data: the data to pass to @callback_ready
  *
  * TODO
  **/
 void
 pk_client_search_details_async (PkClient *client, PkBitfield filters, const gchar *search, GCancellable *cancellable,
-			        PkClientProgressCallback callback_progress, PkClientStatusCallback callback_status,
+			        PkProgressCallback progress_callback, gpointer progress_user_data,
 			        GAsyncReadyCallback callback_ready, gpointer user_data)
 {
 	GSimpleAsyncResult *res;
@@ -841,9 +869,9 @@ pk_client_search_details_async (PkClient *client, PkBitfield filters, const gcha
 	state->client = client;
 	state->filters = filters;
 	state->search = g_strdup (search);
-	state->callback_progress = callback_progress;
-	state->callback_status = callback_status;
-	state->user_data = user_data;
+	state->progress_callback = progress_callback;
+	state->progress_user_data = progress_user_data;
+	state->progress = pk_progress_new ();
 	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
 
 	/* get tid */
@@ -855,17 +883,16 @@ pk_client_search_details_async (PkClient *client, PkBitfield filters, const gcha
  * pk_client_search_group_async:
  * @client: a valid #PkClient instance
  * @cancellable: a #GCancellable or %NULL
- * @callback_progress: the function to run when the progress changes
- * @callback_status: the function to run when the status changes
- * @callback_package: the function to run when the package changes
+ * @progress_callback: the function to run when the progress changes
+ * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
- * @user_data: the data to pass to @callback
+ * @user_data: the data to pass to @callback_ready
  *
  * TODO
  **/
 void
 pk_client_search_group_async (PkClient *client, PkBitfield filters, const gchar *search, GCancellable *cancellable,
-			      PkClientProgressCallback callback_progress, PkClientStatusCallback callback_status,
+			      PkProgressCallback progress_callback, gpointer progress_user_data,
 			      GAsyncReadyCallback callback_ready, gpointer user_data)
 {
 	GSimpleAsyncResult *res;
@@ -884,9 +911,9 @@ pk_client_search_group_async (PkClient *client, PkBitfield filters, const gchar
 	state->client = client;
 	state->filters = filters;
 	state->search = g_strdup (search);
-	state->callback_progress = callback_progress;
-	state->callback_status = callback_status;
-	state->user_data = user_data;
+	state->progress_callback = progress_callback;
+	state->progress_user_data = progress_user_data;
+	state->progress = pk_progress_new ();
 	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
 
 	/* get tid */
@@ -898,17 +925,16 @@ pk_client_search_group_async (PkClient *client, PkBitfield filters, const gchar
  * pk_client_search_file_async:
  * @client: a valid #PkClient instance
  * @cancellable: a #GCancellable or %NULL
- * @callback_progress: the function to run when the progress changes
- * @callback_status: the function to run when the status changes
- * @callback_package: the function to run when the package changes
+ * @progress_callback: the function to run when the progress changes
+ * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
- * @user_data: the data to pass to @callback
+ * @user_data: the data to pass to @callback_ready
  *
  * TODO
  **/
 void
 pk_client_search_file_async (PkClient *client, PkBitfield filters, const gchar *search, GCancellable *cancellable,
-			     PkClientProgressCallback callback_progress, PkClientStatusCallback callback_status,
+			     PkProgressCallback progress_callback, gpointer progress_user_data,
 			     GAsyncReadyCallback callback_ready, gpointer user_data)
 {
 	GSimpleAsyncResult *res;
@@ -927,9 +953,9 @@ pk_client_search_file_async (PkClient *client, PkBitfield filters, const gchar *
 	state->client = client;
 	state->filters = filters;
 	state->search = g_strdup (search);
-	state->callback_progress = callback_progress;
-	state->callback_status = callback_status;
-	state->user_data = user_data;
+	state->progress_callback = progress_callback;
+	state->progress_user_data = progress_user_data;
+	state->progress = pk_progress_new ();
 	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
 
 	/* get tid */
@@ -941,17 +967,16 @@ pk_client_search_file_async (PkClient *client, PkBitfield filters, const gchar *
  * pk_client_get_details_async:
  * @client: a valid #PkClient instance
  * @cancellable: a #GCancellable or %NULL
- * @callback_progress: the function to run when the progress changes
- * @callback_status: the function to run when the status changes
- * @callback_package: the function to run when the package changes
+ * @progress_callback: the function to run when the progress changes
+ * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
- * @user_data: the data to pass to @callback
+ * @user_data: the data to pass to @callback_ready
  *
  * TODO
  **/
 void
 pk_client_get_details_async (PkClient *client, gchar **package_ids, GCancellable *cancellable,
-			     PkClientProgressCallback callback_progress, PkClientStatusCallback callback_status,
+			     PkProgressCallback progress_callback, gpointer progress_user_data,
 			     GAsyncReadyCallback callback_ready, gpointer user_data)
 {
 	GSimpleAsyncResult *res;
@@ -969,9 +994,9 @@ pk_client_get_details_async (PkClient *client, gchar **package_ids, GCancellable
 	state->cancellable = cancellable;
 	state->client = client;
 	state->package_ids = g_strdupv (package_ids);
-	state->callback_progress = callback_progress;
-	state->callback_status = callback_status;
-	state->user_data = user_data;
+	state->progress_callback = progress_callback;
+	state->progress_user_data = progress_user_data;
+	state->progress = pk_progress_new ();
 	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
 
 	/* get tid */
@@ -983,17 +1008,16 @@ pk_client_get_details_async (PkClient *client, gchar **package_ids, GCancellable
  * pk_client_get_update_detail_async:
  * @client: a valid #PkClient instance
  * @cancellable: a #GCancellable or %NULL
- * @callback_progress: the function to run when the progress changes
- * @callback_status: the function to run when the status changes
- * @callback_package: the function to run when the package changes
+ * @progress_callback: the function to run when the progress changes
+ * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
- * @user_data: the data to pass to @callback
+ * @user_data: the data to pass to @callback_ready
  *
  * TODO
  **/
 void
 pk_client_get_update_detail_async (PkClient *client, gchar **package_ids, GCancellable *cancellable,
-				   PkClientProgressCallback callback_progress, PkClientStatusCallback callback_status,
+				   PkProgressCallback progress_callback, gpointer progress_user_data,
 				   GAsyncReadyCallback callback_ready, gpointer user_data)
 {
 	GSimpleAsyncResult *res;
@@ -1011,9 +1035,9 @@ pk_client_get_update_detail_async (PkClient *client, gchar **package_ids, GCance
 	state->cancellable = cancellable;
 	state->client = client;
 	state->package_ids = g_strdupv (package_ids);
-	state->callback_progress = callback_progress;
-	state->callback_status = callback_status;
-	state->user_data = user_data;
+	state->progress_callback = progress_callback;
+	state->progress_user_data = progress_user_data;
+	state->progress = pk_progress_new ();
 	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
 
 	/* get tid */
@@ -1025,17 +1049,17 @@ pk_client_get_update_detail_async (PkClient *client, gchar **package_ids, GCance
  * pk_client_download_packages_async:
  * @client: a valid #PkClient instance
  * @cancellable: a #GCancellable or %NULL
- * @callback_progress: the function to run when the progress changes
- * @callback_status: the function to run when the status changes
+ * @progress_callback: the function to run when the progress changes
+ * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
- * @user_data: the data to pass to @callback
+ * @user_data: the data to pass to @callback_ready
  *
  * TODO
  **/
 void
 pk_client_download_packages_async (PkClient *client, gchar **package_ids, const gchar *directory, GCancellable *cancellable,
-				   PkClientPackageCallback callback_package, PkClientProgressCallback callback_progress,
-				   PkClientStatusCallback callback_status, GAsyncReadyCallback callback_ready, gpointer user_data)
+				   PkProgressCallback progress_callback, gpointer progress_user_data,
+				   GAsyncReadyCallback callback_ready, gpointer user_data)
 {
 	GSimpleAsyncResult *res;
 	PkClientState *state;
@@ -1053,10 +1077,9 @@ pk_client_download_packages_async (PkClient *client, gchar **package_ids, const
 	state->client = client;
 	state->package_ids = g_strdupv (package_ids);
 	state->directory = g_strdup (directory);
-	state->callback_package = callback_package;
-	state->callback_progress = callback_progress;
-	state->callback_status = callback_status;
-	state->user_data = user_data;
+	state->progress_callback = progress_callback;
+	state->progress_user_data = progress_user_data;
+	state->progress = pk_progress_new ();
 	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
 
 	/* get tid */
@@ -1069,16 +1092,16 @@ pk_client_download_packages_async (PkClient *client, gchar **package_ids, const
  * pk_client_get_updates_async:
  * @client: a valid #PkClient instance
  * @cancellable: a #GCancellable or %NULL
- * @callback_progress: the function to run when the progress changes
- * @callback_status: the function to run when the status changes
+ * @progress_callback: the function to run when the progress changes
+ * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
- * @user_data: the data to pass to @callback
+ * @user_data: the data to pass to @callback_ready
  *
  * TODO
  **/
 void
 pk_client_get_updates_async (PkClient *client, PkBitfield filters, GCancellable *cancellable,
-			     PkClientProgressCallback callback_progress, PkClientStatusCallback callback_status,
+			     PkProgressCallback progress_callback, gpointer progress_user_data,
 			     GAsyncReadyCallback callback_ready, gpointer user_data)
 {
 	GSimpleAsyncResult *res;
@@ -1096,9 +1119,9 @@ pk_client_get_updates_async (PkClient *client, PkBitfield filters, GCancellable
 	state->cancellable = cancellable;
 	state->client = client;
 	state->filters = filters;
-	state->callback_progress = callback_progress;
-	state->callback_status = callback_status;
-	state->user_data = user_data;
+	state->progress_callback = progress_callback;
+	state->progress_user_data = progress_user_data;
+	state->progress = pk_progress_new ();
 	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
 
 	/* get tid */
@@ -1111,18 +1134,17 @@ pk_client_get_updates_async (PkClient *client, PkBitfield filters, GCancellable
  * pk_client_update_system_async:
  * @client: a valid #PkClient instance
  * @cancellable: a #GCancellable or %NULL
- * @callback_package: the function to run when the package changes
- * @callback_progress: the function to run when the progress changes
- * @callback_status: the function to run when the status changes
+ * @progress_callback: the function to run when the progress changes
+ * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
- * @user_data: the data to pass to @callback
+ * @user_data: the data to pass to @callback_ready
  *
  * TODO
  **/
 void
 pk_client_update_system_async (PkClient *client, gboolean only_trusted, GCancellable *cancellable,
-			       PkClientPackageCallback callback_package, PkClientProgressCallback callback_progress,
-			       PkClientStatusCallback callback_status, GAsyncReadyCallback callback_ready, gpointer user_data)
+			       PkProgressCallback progress_callback, gpointer progress_user_data,
+			       GAsyncReadyCallback callback_ready, gpointer user_data)
 {
 	GSimpleAsyncResult *res;
 	PkClientState *state;
@@ -1139,10 +1161,9 @@ pk_client_update_system_async (PkClient *client, gboolean only_trusted, GCancell
 	state->cancellable = cancellable;
 	state->client = client;
 	state->only_trusted = only_trusted;
-	state->callback_package = callback_package;
-	state->callback_progress = callback_progress;
-	state->callback_status = callback_status;
-	state->user_data = user_data;
+	state->progress_callback = progress_callback;
+	state->progress_user_data = progress_user_data;
+	state->progress = pk_progress_new ();
 	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
 
 	/* get tid */
@@ -1155,17 +1176,17 @@ pk_client_update_system_async (PkClient *client, gboolean only_trusted, GCancell
  * pk_client_get_depends_async:
  * @client: a valid #PkClient instance
  * @cancellable: a #GCancellable or %NULL
- * @callback_progress: the function to run when the progress changes
- * @callback_status: the function to run when the status changes
+ * @progress_callback: the function to run when the progress changes
+ * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
- * @user_data: the data to pass to @callback
+ * @user_data: the data to pass to @callback_ready
  *
  * TODO
  **/
 void
-pk_client_get_depends_async (PkClient *client, PkBitfield filters, gchar **package_ids, gboolean recursive,
-			     GCancellable *cancellable, PkClientProgressCallback callback_progress,
-			     PkClientStatusCallback callback_status, GAsyncReadyCallback callback_ready, gpointer user_data)
+pk_client_get_depends_async (PkClient *client, PkBitfield filters, gchar **package_ids, gboolean recursive, GCancellable *cancellable,
+			     PkProgressCallback progress_callback, gpointer progress_user_data,
+			     GAsyncReadyCallback callback_ready, gpointer user_data)
 {
 	GSimpleAsyncResult *res;
 	PkClientState *state;
@@ -1184,9 +1205,9 @@ pk_client_get_depends_async (PkClient *client, PkBitfield filters, gchar **packa
 	state->filters = filters;
 	state->recursive = recursive;
 	state->package_ids = g_strdupv (package_ids);
-	state->callback_progress = callback_progress;
-	state->callback_status = callback_status;
-	state->user_data = user_data;
+	state->progress_callback = progress_callback;
+	state->progress_user_data = progress_user_data;
+	state->progress = pk_progress_new ();
 	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
 
 	/* get tid */
@@ -1199,16 +1220,16 @@ pk_client_get_depends_async (PkClient *client, PkBitfield filters, gchar **packa
  * pk_client_get_packages_async:
  * @client: a valid #PkClient instance
  * @cancellable: a #GCancellable or %NULL
- * @callback_progress: the function to run when the progress changes
- * @callback_status: the function to run when the status changes
+ * @progress_callback: the function to run when the progress changes
+ * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
- * @user_data: the data to pass to @callback
+ * @user_data: the data to pass to @callback_ready
  *
  * TODO
  **/
 void
 pk_client_get_packages_async (PkClient *client, PkBitfield filters, GCancellable *cancellable,
-			      PkClientProgressCallback callback_progress, PkClientStatusCallback callback_status,
+			      PkProgressCallback progress_callback, gpointer progress_user_data,
 			      GAsyncReadyCallback callback_ready, gpointer user_data)
 {
 	GSimpleAsyncResult *res;
@@ -1226,9 +1247,9 @@ pk_client_get_packages_async (PkClient *client, PkBitfield filters, GCancellable
 	state->cancellable = cancellable;
 	state->client = client;
 	state->filters = filters;
-	state->callback_progress = callback_progress;
-	state->callback_status = callback_status;
-	state->user_data = user_data;
+	state->progress_callback = progress_callback;
+	state->progress_user_data = progress_user_data;
+	state->progress = pk_progress_new ();
 	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
 
 	/* get tid */
@@ -1243,17 +1264,17 @@ pk_client_get_packages_async (PkClient *client, PkBitfield filters, GCancellable
  * pk_client_get_requires_async:
  * @client: a valid #PkClient instance
  * @cancellable: a #GCancellable or %NULL
- * @callback_progress: the function to run when the progress changes
- * @callback_status: the function to run when the status changes
+ * @progress_callback: the function to run when the progress changes
+ * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
- * @user_data: the data to pass to @callback
+ * @user_data: the data to pass to @callback_ready
  *
  * TODO
  **/
 void
-pk_client_get_requires_async (PkClient *client, PkBitfield filters, gchar **package_ids, gboolean recursive,
-			      GCancellable *cancellable, PkClientProgressCallback callback_progress,
-			      PkClientStatusCallback callback_status, GAsyncReadyCallback callback_ready, gpointer user_data)
+pk_client_get_requires_async (PkClient *client, PkBitfield filters, gchar **package_ids, gboolean recursive, GCancellable *cancellable,
+			      PkProgressCallback progress_callback, gpointer progress_user_data,
+			      GAsyncReadyCallback callback_ready, gpointer user_data)
 {
 	GSimpleAsyncResult *res;
 	PkClientState *state;
@@ -1272,9 +1293,9 @@ pk_client_get_requires_async (PkClient *client, PkBitfield filters, gchar **pack
 	state->recursive = recursive;
 	state->filters = filters;
 	state->package_ids = g_strdupv (package_ids);
-	state->callback_progress = callback_progress;
-	state->callback_status = callback_status;
-	state->user_data = user_data;
+	state->progress_callback = progress_callback;
+	state->progress_user_data = progress_user_data;
+	state->progress = pk_progress_new ();
 	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
 
 	/* get tid */
@@ -1287,17 +1308,17 @@ pk_client_get_requires_async (PkClient *client, PkBitfield filters, gchar **pack
  * pk_client_what_provides_async:
  * @client: a valid #PkClient instance
  * @cancellable: a #GCancellable or %NULL
- * @callback_progress: the function to run when the progress changes
- * @callback_status: the function to run when the status changes
+ * @progress_callback: the function to run when the progress changes
+ * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
- * @user_data: the data to pass to @callback
+ * @user_data: the data to pass to @callback_ready
  *
  * TODO
  **/
 void
-pk_client_what_provides_async (PkClient *client, PkBitfield filters, PkProvidesEnum provides, const gchar *search,
-			       GCancellable *cancellable, PkClientProgressCallback callback_progress,
-			       PkClientStatusCallback callback_status, GAsyncReadyCallback callback_ready, gpointer user_data)
+pk_client_what_provides_async (PkClient *client, PkBitfield filters, PkProvidesEnum provides, const gchar *search, GCancellable *cancellable,
+			       PkProgressCallback progress_callback, gpointer progress_user_data,
+			       GAsyncReadyCallback callback_ready, gpointer user_data)
 {
 	GSimpleAsyncResult *res;
 	PkClientState *state;
@@ -1316,9 +1337,9 @@ pk_client_what_provides_async (PkClient *client, PkBitfield filters, PkProvidesE
 	state->filters = filters;
 	state->provides = provides;
 	state->search = g_strdup (search);
-	state->callback_progress = callback_progress;
-	state->callback_status = callback_status;
-	state->user_data = user_data;
+	state->progress_callback = progress_callback;
+	state->progress_user_data = progress_user_data;
+	state->progress = pk_progress_new ();
 	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
 
 	/* get tid */
@@ -1331,16 +1352,17 @@ pk_client_what_provides_async (PkClient *client, PkBitfield filters, PkProvidesE
  * pk_client_get_distro_upgrades_async:
  * @client: a valid #PkClient instance
  * @cancellable: a #GCancellable or %NULL
- * @callback_progress: the function to run when the progress changes
- * @callback_status: the function to run when the status changes
+ * @progress_callback: the function to run when the progress changes
+ * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
- * @user_data: the data to pass to @callback
+ * @user_data: the data to pass to @callback_ready
  *
  * TODO
  **/
 void
-pk_client_get_distro_upgrades_async (PkClient *client, GCancellable *cancellable, PkClientProgressCallback callback_progress,
-				     PkClientStatusCallback callback_status, GAsyncReadyCallback callback_ready, gpointer user_data)
+pk_client_get_distro_upgrades_async (PkClient *client, GCancellable *cancellable,
+				     PkProgressCallback progress_callback, gpointer progress_user_data,
+				     GAsyncReadyCallback callback_ready, gpointer user_data)
 {
 	GSimpleAsyncResult *res;
 	PkClientState *state;
@@ -1356,9 +1378,9 @@ pk_client_get_distro_upgrades_async (PkClient *client, GCancellable *cancellable
 	state->res = g_object_ref (res);
 	state->cancellable = cancellable;
 	state->client = client;
-	state->callback_progress = callback_progress;
-	state->callback_status = callback_status;
-	state->user_data = user_data;
+	state->progress_callback = progress_callback;
+	state->progress_user_data = progress_user_data;
+	state->progress = pk_progress_new ();
 	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
 
 	/* get tid */
@@ -1371,16 +1393,16 @@ pk_client_get_distro_upgrades_async (PkClient *client, GCancellable *cancellable
  * pk_client_get_files_async:
  * @client: a valid #PkClient instance
  * @cancellable: a #GCancellable or %NULL
- * @callback_progress: the function to run when the progress changes
- * @callback_status: the function to run when the status changes
+ * @progress_callback: the function to run when the progress changes
+ * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
- * @user_data: the data to pass to @callback
+ * @user_data: the data to pass to @callback_ready
  *
  * TODO
  **/
 void
 pk_client_get_files_async (PkClient *client, gchar **package_ids, GCancellable *cancellable,
-			   PkClientProgressCallback callback_progress, PkClientStatusCallback callback_status,
+			   PkProgressCallback progress_callback, gpointer progress_user_data,
 			   GAsyncReadyCallback callback_ready, gpointer user_data)
 {
 	GSimpleAsyncResult *res;
@@ -1398,9 +1420,9 @@ pk_client_get_files_async (PkClient *client, gchar **package_ids, GCancellable *
 	state->cancellable = cancellable;
 	state->client = client;
 	state->package_ids = g_strdupv (package_ids);
-	state->callback_progress = callback_progress;
-	state->callback_status = callback_status;
-	state->user_data = user_data;
+	state->progress_callback = progress_callback;
+	state->progress_user_data = progress_user_data;
+	state->progress = pk_progress_new ();
 	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
 
 	/* get tid */
@@ -1413,16 +1435,17 @@ pk_client_get_files_async (PkClient *client, gchar **package_ids, GCancellable *
  * pk_client_get_categories_async:
  * @client: a valid #PkClient instance
  * @cancellable: a #GCancellable or %NULL
- * @callback_progress: the function to run when the progress changes
- * @callback_status: the function to run when the status changes
+ * @progress_callback: the function to run when the progress changes
+ * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
- * @user_data: the data to pass to @callback
+ * @user_data: the data to pass to @callback_ready
  *
  * TODO
  **/
 void
-pk_client_get_categories_async (PkClient *client, GCancellable *cancellable, PkClientProgressCallback callback_progress,
-				PkClientStatusCallback callback_status, GAsyncReadyCallback callback_ready, gpointer user_data)
+pk_client_get_categories_async (PkClient *client, GCancellable *cancellable,
+				PkProgressCallback progress_callback, gpointer progress_user_data,
+				GAsyncReadyCallback callback_ready, gpointer user_data)
 {
 	GSimpleAsyncResult *res;
 	PkClientState *state;
@@ -1438,9 +1461,9 @@ pk_client_get_categories_async (PkClient *client, GCancellable *cancellable, PkC
 	state->res = g_object_ref (res);
 	state->cancellable = cancellable;
 	state->client = client;
-	state->callback_progress = callback_progress;
-	state->callback_status = callback_status;
-	state->user_data = user_data;
+	state->progress_callback = progress_callback;
+	state->progress_user_data = progress_user_data;
+	state->progress = pk_progress_new ();
 	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
 
 	/* get tid */
@@ -1453,18 +1476,16 @@ pk_client_get_categories_async (PkClient *client, GCancellable *cancellable, PkC
  * pk_client_remove_packages_async:
  * @client: a valid #PkClient instance
  * @cancellable: a #GCancellable or %NULL
- * @callback_package: the function to run when the package changes
- * @callback_progress: the function to run when the progress changes
- * @callback_status: the function to run when the status changes
+ * @progress_callback: the function to run when the progress changes
+ * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
- * @user_data: the data to pass to @callback
+ * @user_data: the data to pass to @callback_ready
  *
  * TODO
  **/
 void
-pk_client_remove_packages_async (PkClient *client, gchar **package_ids, gboolean allow_deps, gboolean autoremove,
-				 GCancellable *cancellable, PkClientPackageCallback callback_package,
-				 PkClientProgressCallback callback_progress, PkClientStatusCallback callback_status,
+pk_client_remove_packages_async (PkClient *client, gchar **package_ids, gboolean allow_deps, gboolean autoremove, GCancellable *cancellable,
+				 PkProgressCallback progress_callback, gpointer progress_user_data,
 				 GAsyncReadyCallback callback_ready, gpointer user_data)
 {
 	GSimpleAsyncResult *res;
@@ -1484,10 +1505,9 @@ pk_client_remove_packages_async (PkClient *client, gchar **package_ids, gboolean
 	state->autoremove = autoremove;
 	state->client = client;
 	state->package_ids = g_strdupv (package_ids);
-	state->callback_package = callback_package;
-	state->callback_progress = callback_progress;
-	state->callback_status = callback_status;
-	state->user_data = user_data;
+	state->progress_callback = progress_callback;
+	state->progress_user_data = progress_user_data;
+	state->progress = pk_progress_new ();
 	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
 
 	/* get tid */
@@ -1500,16 +1520,16 @@ pk_client_remove_packages_async (PkClient *client, gchar **package_ids, gboolean
  * pk_client_refresh_cache_async:
  * @client: a valid #PkClient instance
  * @cancellable: a #GCancellable or %NULL
- * @callback_progress: the function to run when the progress changes
- * @callback_status: the function to run when the status changes
+ * @progress_callback: the function to run when the progress changes
+ * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
- * @user_data: the data to pass to @callback
+ * @user_data: the data to pass to @callback_ready
  *
  * TODO
  **/
 void
 pk_client_refresh_cache_async (PkClient *client, gboolean force, GCancellable *cancellable,
-			       PkClientProgressCallback callback_progress, PkClientStatusCallback callback_status,
+			       PkProgressCallback progress_callback, gpointer progress_user_data,
 			       GAsyncReadyCallback callback_ready, gpointer user_data)
 {
 	GSimpleAsyncResult *res;
@@ -1527,9 +1547,9 @@ pk_client_refresh_cache_async (PkClient *client, gboolean force, GCancellable *c
 	state->cancellable = cancellable;
 	state->client = client;
 	state->force = force;
-	state->callback_progress = callback_progress;
-	state->callback_status = callback_status;
-	state->user_data = user_data;
+	state->progress_callback = progress_callback;
+	state->progress_user_data = progress_user_data;
+	state->progress = pk_progress_new ();
 	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
 
 	/* get tid */
@@ -1542,18 +1562,16 @@ pk_client_refresh_cache_async (PkClient *client, gboolean force, GCancellable *c
  * pk_client_install_packages_async:
  * @client: a valid #PkClient instance
  * @cancellable: a #GCancellable or %NULL
- * @callback_package: the function to run when the package changes
- * @callback_progress: the function to run when the progress changes
- * @callback_status: the function to run when the status changes
+ * @progress_callback: the function to run when the progress changes
+ * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
- * @user_data: the data to pass to @callback
+ * @user_data: the data to pass to @callback_ready
  *
  * TODO
  **/
 void
-pk_client_install_packages_async (PkClient *client, gboolean only_trusted, gchar **package_ids,
-				  GCancellable *cancellable, PkClientPackageCallback callback_package,
-				  PkClientProgressCallback callback_progress, PkClientStatusCallback callback_status,
+pk_client_install_packages_async (PkClient *client, gboolean only_trusted, gchar **package_ids, GCancellable *cancellable,
+				  PkProgressCallback progress_callback, gpointer progress_user_data,
 				  GAsyncReadyCallback callback_ready, gpointer user_data)
 {
 	GSimpleAsyncResult *res;
@@ -1572,10 +1590,9 @@ pk_client_install_packages_async (PkClient *client, gboolean only_trusted, gchar
 	state->client = client;
 	state->only_trusted = only_trusted;
 	state->package_ids = g_strdupv (package_ids);
-	state->callback_package = callback_package;
-	state->callback_progress = callback_progress;
-	state->callback_status = callback_status;
-	state->user_data = user_data;
+	state->progress_callback = progress_callback;
+	state->progress_user_data = progress_user_data;
+	state->progress = pk_progress_new ();
 	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
 
 	/* get tid */
@@ -1588,17 +1605,17 @@ pk_client_install_packages_async (PkClient *client, gboolean only_trusted, gchar
  * pk_client_install_signature_async:
  * @client: a valid #PkClient instance
  * @cancellable: a #GCancellable or %NULL
- * @callback_progress: the function to run when the progress changes
- * @callback_status: the function to run when the status changes
+ * @progress_callback: the function to run when the progress changes
+ * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
- * @user_data: the data to pass to @callback
+ * @user_data: the data to pass to @callback_ready
  *
  * TODO
  **/
 void
-pk_client_install_signature_async (PkClient *client, PkSigTypeEnum type, const gchar *key_id, const gchar *package_id,
-				   GCancellable *cancellable, PkClientProgressCallback callback_progress,
-				   PkClientStatusCallback callback_status, GAsyncReadyCallback callback_ready, gpointer user_data)
+pk_client_install_signature_async (PkClient *client, PkSigTypeEnum type, const gchar *key_id, const gchar *package_id, GCancellable *cancellable,
+				   PkProgressCallback progress_callback, gpointer progress_user_data,
+				   GAsyncReadyCallback callback_ready, gpointer user_data)
 {
 	GSimpleAsyncResult *res;
 	PkClientState *state;
@@ -1617,9 +1634,9 @@ pk_client_install_signature_async (PkClient *client, PkSigTypeEnum type, const g
 	state->type = type;
 	state->key_id = g_strdup (key_id);
 	state->package_id = g_strdup (package_id);
-	state->callback_progress = callback_progress;
-	state->callback_status = callback_status;
-	state->user_data = user_data;
+	state->progress_callback = progress_callback;
+	state->progress_user_data = progress_user_data;
+	state->progress = pk_progress_new ();
 	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
 
 	/* get tid */
@@ -1632,18 +1649,16 @@ pk_client_install_signature_async (PkClient *client, PkSigTypeEnum type, const g
  * pk_client_update_packages_async:
  * @client: a valid #PkClient instance
  * @cancellable: a #GCancellable or %NULL
- * @callback_package: the function to run when the package changes
- * @callback_progress: the function to run when the progress changes
- * @callback_status: the function to run when the status changes
+ * @progress_callback: the function to run when the progress changes
+ * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
- * @user_data: the data to pass to @callback
+ * @user_data: the data to pass to @callback_ready
  *
  * TODO
  **/
 void
-pk_client_update_packages_async (PkClient *client, gboolean only_trusted, gchar **package_ids,
-				 GCancellable *cancellable, PkClientPackageCallback callback_package,
-				 PkClientProgressCallback callback_progress, PkClientStatusCallback callback_status,
+pk_client_update_packages_async (PkClient *client, gboolean only_trusted, gchar **package_ids, GCancellable *cancellable,
+				 PkProgressCallback progress_callback, gpointer progress_user_data,
 				 GAsyncReadyCallback callback_ready, gpointer user_data)
 {
 	GSimpleAsyncResult *res;
@@ -1662,10 +1677,9 @@ pk_client_update_packages_async (PkClient *client, gboolean only_trusted, gchar
 	state->client = client;
 	state->only_trusted = only_trusted;
 	state->package_ids = g_strdupv (package_ids);
-	state->callback_package = callback_package;
-	state->callback_progress = callback_progress;
-	state->callback_status = callback_status;
-	state->user_data = user_data;
+	state->progress_callback = progress_callback;
+	state->progress_user_data = progress_user_data;
+	state->progress = pk_progress_new ();
 	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
 
 	/* get tid */
@@ -1678,18 +1692,16 @@ pk_client_update_packages_async (PkClient *client, gboolean only_trusted, gchar
  * pk_client_install_files_async:
  * @client: a valid #PkClient instance
  * @cancellable: a #GCancellable or %NULL
- * @callback_package: the function to run when the package changes
- * @callback_progress: the function to run when the progress changes
- * @callback_status: the function to run when the status changes
+ * @progress_callback: the function to run when the progress changes
+ * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
- * @user_data: the data to pass to @callback
+ * @user_data: the data to pass to @callback_ready
  *
  * TODO
  **/
 void
-pk_client_install_files_async (PkClient *client, gboolean only_trusted, gchar **files,
-			       GCancellable *cancellable, PkClientPackageCallback callback_package,
-			       PkClientProgressCallback callback_progress, PkClientStatusCallback callback_status,
+pk_client_install_files_async (PkClient *client, gboolean only_trusted, gchar **files, GCancellable *cancellable,
+			       PkProgressCallback progress_callback, gpointer progress_user_data,
 			       GAsyncReadyCallback callback_ready, gpointer user_data)
 {
 	GSimpleAsyncResult *res;
@@ -1708,10 +1720,9 @@ pk_client_install_files_async (PkClient *client, gboolean only_trusted, gchar **
 	state->client = client;
 	state->only_trusted = only_trusted;
 	state->files = g_strdupv (files);
-	state->callback_package = callback_package;
-	state->callback_progress = callback_progress;
-	state->callback_status = callback_status;
-	state->user_data = user_data;
+	state->progress_callback = progress_callback;
+	state->progress_user_data = progress_user_data;
+	state->progress = pk_progress_new ();
 	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
 
 	/* get tid */
@@ -1724,16 +1735,16 @@ pk_client_install_files_async (PkClient *client, gboolean only_trusted, gchar **
  * pk_client_accept_eula_async:
  * @client: a valid #PkClient instance
  * @cancellable: a #GCancellable or %NULL
- * @callback_progress: the function to run when the progress changes
- * @callback_status: the function to run when the status changes
+ * @progress_callback: the function to run when the progress changes
+ * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
- * @user_data: the data to pass to @callback
+ * @user_data: the data to pass to @callback_ready
  *
  * TODO
  **/
 void
 pk_client_accept_eula_async (PkClient *client, const gchar *eula_id, GCancellable *cancellable,
-			     PkClientProgressCallback callback_progress, PkClientStatusCallback callback_status,
+			     PkProgressCallback progress_callback, gpointer progress_user_data,
 			     GAsyncReadyCallback callback_ready, gpointer user_data)
 {
 	GSimpleAsyncResult *res;
@@ -1751,9 +1762,9 @@ pk_client_accept_eula_async (PkClient *client, const gchar *eula_id, GCancellabl
 	state->cancellable = cancellable;
 	state->client = client;
 	state->eula_id = g_strdup (eula_id);
-	state->callback_progress = callback_progress;
-	state->callback_status = callback_status;
-	state->user_data = user_data;
+	state->progress_callback = progress_callback;
+	state->progress_user_data = progress_user_data;
+	state->progress = pk_progress_new ();
 	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
 
 	/* get tid */
@@ -1766,16 +1777,16 @@ pk_client_accept_eula_async (PkClient *client, const gchar *eula_id, GCancellabl
  * pk_client_get_repo_list_async:
  * @client: a valid #PkClient instance
  * @cancellable: a #GCancellable or %NULL
- * @callback_progress: the function to run when the progress changes
- * @callback_status: the function to run when the status changes
+ * @progress_callback: the function to run when the progress changes
+ * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
- * @user_data: the data to pass to @callback
+ * @user_data: the data to pass to @callback_ready
  *
  * TODO
  **/
 void
 pk_client_get_repo_list_async (PkClient *client, PkBitfield filters, GCancellable *cancellable,
-			       PkClientProgressCallback callback_progress, PkClientStatusCallback callback_status,
+			       PkProgressCallback progress_callback, gpointer progress_user_data,
 			       GAsyncReadyCallback callback_ready, gpointer user_data)
 {
 	GSimpleAsyncResult *res;
@@ -1793,9 +1804,9 @@ pk_client_get_repo_list_async (PkClient *client, PkBitfield filters, GCancellabl
 	state->cancellable = cancellable;
 	state->client = client;
 	state->filters = filters;
-	state->callback_progress = callback_progress;
-	state->callback_status = callback_status;
-	state->user_data = user_data;
+	state->progress_callback = progress_callback;
+	state->progress_user_data = progress_user_data;
+	state->progress = pk_progress_new ();
 	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
 
 	/* get tid */
@@ -1808,17 +1819,17 @@ pk_client_get_repo_list_async (PkClient *client, PkBitfield filters, GCancellabl
  * pk_client_repo_enable_async:
  * @client: a valid #PkClient instance
  * @cancellable: a #GCancellable or %NULL
- * @callback_progress: the function to run when the progress changes
- * @callback_status: the function to run when the status changes
+ * @progress_callback: the function to run when the progress changes
+ * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
- * @user_data: the data to pass to @callback
+ * @user_data: the data to pass to @callback_ready
  *
  * TODO
  **/
 void
-pk_client_repo_enable_async (PkClient *client, const gchar *repo_id, gboolean enabled,
-			     GCancellable *cancellable, PkClientProgressCallback callback_progress,
-			     PkClientStatusCallback callback_status, GAsyncReadyCallback callback_ready, gpointer user_data)
+pk_client_repo_enable_async (PkClient *client, const gchar *repo_id, gboolean enabled, GCancellable *cancellable,
+			     PkProgressCallback progress_callback,
+			     gpointer progress_user_data, GAsyncReadyCallback callback_ready, gpointer user_data)
 {
 	GSimpleAsyncResult *res;
 	PkClientState *state;
@@ -1836,9 +1847,9 @@ pk_client_repo_enable_async (PkClient *client, const gchar *repo_id, gboolean en
 	state->client = client;
 	state->enabled = enabled;
 	state->repo_id = g_strdup (repo_id);
-	state->callback_progress = callback_progress;
-	state->callback_status = callback_status;
-	state->user_data = user_data;
+	state->progress_callback = progress_callback;
+	state->progress_user_data = progress_user_data;
+	state->progress = pk_progress_new ();
 	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
 
 	/* get tid */
@@ -1851,17 +1862,17 @@ pk_client_repo_enable_async (PkClient *client, const gchar *repo_id, gboolean en
  * pk_client_repo_set_data_async:
  * @client: a valid #PkClient instance
  * @cancellable: a #GCancellable or %NULL
- * @callback_progress: the function to run when the progress changes
- * @callback_status: the function to run when the status changes
+ * @progress_callback: the function to run when the progress changes
+ * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
- * @user_data: the data to pass to @callback
+ * @user_data: the data to pass to @callback_ready
  *
  * TODO
  **/
 void
-pk_client_repo_set_data_async (PkClient *client, const gchar *repo_id, const gchar *parameter, const gchar *value,
-			       GCancellable *cancellable, PkClientProgressCallback callback_progress,
-			       PkClientStatusCallback callback_status, GAsyncReadyCallback callback_ready, gpointer user_data)
+pk_client_repo_set_data_async (PkClient *client, const gchar *repo_id, const gchar *parameter, const gchar *value, GCancellable *cancellable,
+			       PkProgressCallback progress_callback,
+			       gpointer progress_user_data, GAsyncReadyCallback callback_ready, gpointer user_data)
 {
 	GSimpleAsyncResult *res;
 	PkClientState *state;
@@ -1880,9 +1891,9 @@ pk_client_repo_set_data_async (PkClient *client, const gchar *repo_id, const gch
 	state->repo_id = g_strdup (repo_id);
 	state->parameter = g_strdup (parameter);
 	state->value = g_strdup (value);
-	state->callback_progress = callback_progress;
-	state->callback_status = callback_status;
-	state->user_data = user_data;
+	state->progress_callback = progress_callback;
+	state->progress_user_data = progress_user_data;
+	state->progress = pk_progress_new ();
 	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
 
 	/* get tid */
@@ -1895,16 +1906,16 @@ pk_client_repo_set_data_async (PkClient *client, const gchar *repo_id, const gch
  * pk_client_simulate_install_files_async:
  * @client: a valid #PkClient instance
  * @cancellable: a #GCancellable or %NULL
- * @callback_progress: the function to run when the progress changes
- * @callback_status: the function to run when the status changes
+ * @progress_callback: the function to run when the progress changes
+ * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
- * @user_data: the data to pass to @callback
+ * @user_data: the data to pass to @callback_ready
  *
  * TODO
  **/
 void
 pk_client_simulate_install_files_async (PkClient *client, gchar **files, GCancellable *cancellable,
-					PkClientProgressCallback callback_progress, PkClientStatusCallback callback_status,
+					PkProgressCallback progress_callback, gpointer progress_user_data,
 					GAsyncReadyCallback callback_ready, gpointer user_data)
 {
 	GSimpleAsyncResult *res;
@@ -1922,9 +1933,9 @@ pk_client_simulate_install_files_async (PkClient *client, gchar **files, GCancel
 	state->cancellable = cancellable;
 	state->client = client;
 	state->files = g_strdupv (files);
-	state->callback_progress = callback_progress;
-	state->callback_status = callback_status;
-	state->user_data = user_data;
+	state->progress_callback = progress_callback;
+	state->progress_user_data = progress_user_data;
+	state->progress = pk_progress_new ();
 	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
 
 	/* get tid */
@@ -1937,16 +1948,16 @@ pk_client_simulate_install_files_async (PkClient *client, gchar **files, GCancel
  * pk_client_simulate_install_packages_async:
  * @client: a valid #PkClient instance
  * @cancellable: a #GCancellable or %NULL
- * @callback_progress: the function to run when the progress changes
- * @callback_status: the function to run when the status changes
+ * @progress_callback: the function to run when the progress changes
+ * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
- * @user_data: the data to pass to @callback
+ * @user_data: the data to pass to @callback_ready
  *
  * TODO
  **/
 void
 pk_client_simulate_install_packages_async (PkClient *client, gchar **package_ids, GCancellable *cancellable,
-					   PkClientProgressCallback callback_progress, PkClientStatusCallback callback_status,
+					   PkProgressCallback progress_callback, gpointer progress_user_data,
 					   GAsyncReadyCallback callback_ready, gpointer user_data)
 {
 	GSimpleAsyncResult *res;
@@ -1964,9 +1975,9 @@ pk_client_simulate_install_packages_async (PkClient *client, gchar **package_ids
 	state->cancellable = cancellable;
 	state->client = client;
 	state->package_ids = g_strdupv (package_ids);
-	state->callback_progress = callback_progress;
-	state->callback_status = callback_status;
-	state->user_data = user_data;
+	state->progress_callback = progress_callback;
+	state->progress_user_data = progress_user_data;
+	state->progress = pk_progress_new ();
 	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
 
 	/* get tid */
@@ -1979,16 +1990,16 @@ pk_client_simulate_install_packages_async (PkClient *client, gchar **package_ids
  * pk_client_simulate_remove_packages_async:
  * @client: a valid #PkClient instance
  * @cancellable: a #GCancellable or %NULL
- * @callback_progress: the function to run when the progress changes
- * @callback_status: the function to run when the status changes
+ * @progress_callback: the function to run when the progress changes
+ * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
- * @user_data: the data to pass to @callback
+ * @user_data: the data to pass to @callback_ready
  *
  * TODO
  **/
 void
 pk_client_simulate_remove_packages_async (PkClient *client, gchar **package_ids, GCancellable *cancellable,
-					  PkClientProgressCallback callback_progress, PkClientStatusCallback callback_status,
+					  PkProgressCallback progress_callback, gpointer progress_user_data,
 					  GAsyncReadyCallback callback_ready, gpointer user_data)
 {
 	GSimpleAsyncResult *res;
@@ -2006,9 +2017,9 @@ pk_client_simulate_remove_packages_async (PkClient *client, gchar **package_ids,
 	state->cancellable = cancellable;
 	state->client = client;
 	state->package_ids = g_strdupv (package_ids);
-	state->callback_progress = callback_progress;
-	state->callback_status = callback_status;
-	state->user_data = user_data;
+	state->progress_callback = progress_callback;
+	state->progress_user_data = progress_user_data;
+	state->progress = pk_progress_new ();
 	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
 
 	/* get tid */
@@ -2021,16 +2032,16 @@ pk_client_simulate_remove_packages_async (PkClient *client, gchar **package_ids,
  * pk_client_simulate_update_packages_async:
  * @client: a valid #PkClient instance
  * @cancellable: a #GCancellable or %NULL
- * @callback_progress: the function to run when the progress changes
- * @callback_status: the function to run when the status changes
+ * @progress_callback: the function to run when the progress changes
+ * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
- * @user_data: the data to pass to @callback
+ * @user_data: the data to pass to @callback_ready
  *
  * TODO
  **/
 void
 pk_client_simulate_update_packages_async (PkClient *client, gchar **package_ids, GCancellable *cancellable,
-					  PkClientProgressCallback callback_progress, PkClientStatusCallback callback_status,
+					  PkProgressCallback progress_callback, gpointer progress_user_data,
 					  GAsyncReadyCallback callback_ready, gpointer user_data)
 {
 	GSimpleAsyncResult *res;
@@ -2048,9 +2059,9 @@ pk_client_simulate_update_packages_async (PkClient *client, gchar **package_ids,
 	state->cancellable = cancellable;
 	state->client = client;
 	state->package_ids = g_strdupv (package_ids);
-	state->callback_progress = callback_progress;
-	state->callback_status = callback_status;
-	state->user_data = user_data;
+	state->progress_callback = progress_callback;
+	state->progress_user_data = progress_user_data;
+	state->progress = pk_progress_new ();
 	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
 
 	/* get tid */
@@ -2397,32 +2408,27 @@ pk_client_test_get_updates_cb (GObject *object, GAsyncResult *res, EggTest *test
 
 static guint _progress_cb = 0;
 static guint _status_cb = 0;
-//static guint _package_cb = 0;
+static guint _package_cb = 0;
+static guint _allow_cancel_cb = 0;
 
 void
-pk_client_test_progress_cb (PkClient *client, gint percentage, EggTest *test)
+pk_client_test_progress_cb (PkProgress *progress, PkProgressType type, EggTest *test)
 {
-	egg_debug ("progress now %i", percentage);
-	_progress_cb++;
+	if (type == PK_PROGRESS_TYPE_PACKAGE_ID)
+		_package_cb++;
+	if (type == PK_PROGRESS_TYPE_PERCENTAGE)
+		_progress_cb++;
+	if (type == PK_PROGRESS_TYPE_SUBPERCENTAGE)
+		_progress_cb++;
+	if (type == PK_PROGRESS_TYPE_ALLOW_CANCEL)
+		_allow_cancel_cb++;
+	if (type == PK_PROGRESS_TYPE_STATUS)
+		_status_cb++;
+
+//	egg_debug ("percentage now %i", percentage);
 }
 
 void
-pk_client_test_status_cb (PkClient *client, PkStatusEnum status, EggTest *test)
-{
-	egg_debug ("status now %s", pk_status_enum_to_text (status));
-	_status_cb++;
-}
-
-#if 0
-void
-pk_client_test_package_cb (PkClient *client, const gchar *package_id, EggTest *test)
-{
-	egg_debug ("package now %s", package_id);
-	_package_cb++;
-}
-#endif
-
-void
 pk_client_test (EggTest *test)
 {
 	PkClient *client;
@@ -2440,8 +2446,7 @@ pk_client_test (EggTest *test)
 	egg_test_title (test, "resolve package");
 	package_ids = g_strsplit ("glib2;2.14.0;i386;fedora,powertop", ",", -1);
 	pk_client_resolve_async (client, pk_bitfield_value (PK_FILTER_ENUM_INSTALLED), package_ids, NULL,
-				 (PkClientProgressCallback) pk_client_test_progress_cb,
-				 (PkClientStatusCallback) pk_client_test_status_cb,
+				 (PkProgressCallback) pk_client_test_progress_cb, test,
 				 (GAsyncReadyCallback) pk_client_test_resolve_cb, test);
 	g_strfreev (package_ids);
 	egg_test_loop_wait (test, 15000);
@@ -2470,8 +2475,7 @@ pk_client_test (EggTest *test)
 	egg_test_title (test, "get details about package");
 	package_ids = g_strsplit ("powertop;1.8-1.fc8;i386;fedora", ",", -1);
 	pk_client_get_details_async (client, package_ids, NULL,
-				     (PkClientProgressCallback) pk_client_test_progress_cb,
-				     (PkClientStatusCallback) pk_client_test_status_cb,
+				     (PkProgressCallback) pk_client_test_progress_cb, test,
 				     (GAsyncReadyCallback) pk_client_test_get_details_cb, test);
 	g_strfreev (package_ids);
 	egg_test_loop_wait (test, 15000);
@@ -2499,8 +2503,7 @@ pk_client_test (EggTest *test)
 	/************************************************************/
 	egg_test_title (test, "get updates");
 	pk_client_get_updates_async (client, pk_bitfield_value (PK_FILTER_ENUM_NONE), NULL,
-				     (PkClientProgressCallback) pk_client_test_progress_cb,
-				     (PkClientStatusCallback) pk_client_test_status_cb,
+				     (PkProgressCallback) pk_client_test_progress_cb, test,
 				     (GAsyncReadyCallback) pk_client_test_get_updates_cb, test);
 	egg_test_loop_wait (test, 15000);
 	egg_test_success (test, "got updates in %i", egg_test_elapsed (test));
diff --git a/lib/packagekit-glib2/pk-client.h b/lib/packagekit-glib2/pk-client.h
index 5ab3064..7bf57b5 100644
--- a/lib/packagekit-glib2/pk-client.h
+++ b/lib/packagekit-glib2/pk-client.h
@@ -32,7 +32,9 @@
 #define __PK_CLIENT_H
 
 #include <glib-object.h>
+
 #include <packagekit-glib2/pk-results.h>
+#include <packagekit-glib2/pk-progress.h>
 #include <packagekit-glib2/pk-bitfield.h>
 
 G_BEGIN_DECLS
@@ -74,16 +76,6 @@ GQuark		 pk_client_error_quark			(void);
 GType		 pk_client_get_type		  	(void);
 PkClient	*pk_client_new				(void);
 
-typedef void	(*PkClientProgressCallback)		(PkClient		*client,
-							 gint			 percentage,
-                                                         gpointer		 user_data);
-typedef void	(*PkClientStatusCallback)		(PkClient		*client,
-							 PkStatusEnum		 status,
-                                                         gpointer		 user_data);
-typedef void	(*PkClientPackageCallback)		(PkClient		*client,
-							 const gchar		*package_id,
-                                                         gpointer		 user_data);
-
 /* get transaction results */
 PkResults	*pk_client_generic_finish		(PkClient		*client,
 							 GAsyncResult		*res,
@@ -93,8 +85,8 @@ void		 pk_client_resolve_async		(PkClient		*client,
 							 PkBitfield		 filters,
 							 gchar			**packages,
 							 GCancellable		*cancellable,
-							 PkClientProgressCallback callback_progress,
-							 PkClientStatusCallback	 callback_status,
+							 PkProgressCallback	 progress_callback,
+							 gpointer		 progress_user_data,
 							 GAsyncReadyCallback	 callback_ready,
 							 gpointer		 user_data);
 
@@ -102,8 +94,8 @@ void		 pk_client_search_name_async		(PkClient		*client,
 							 PkBitfield		 filters,
 							 const gchar		*search,
 							 GCancellable		*cancellable,
-							 PkClientProgressCallback callback_progress,
-							 PkClientStatusCallback	 callback_status,
+							 PkProgressCallback	 progress_callback,
+							 gpointer		 progress_user_data,
 							 GAsyncReadyCallback	 callback_ready,
 							 gpointer		 user_data);
 
@@ -111,8 +103,8 @@ void		 pk_client_search_details_async		(PkClient		*client,
 							 PkBitfield		 filters,
 							 const gchar		*search,
 							 GCancellable		*cancellable,
-							 PkClientProgressCallback callback_progress,
-							 PkClientStatusCallback	 callback_status,
+							 PkProgressCallback	 progress_callback,
+							 gpointer		 progress_user_data,
 							 GAsyncReadyCallback	 callback_ready,
 							 gpointer		 user_data);
 
@@ -120,8 +112,8 @@ void		 pk_client_search_group_async		(PkClient		*client,
 							 PkBitfield		 filters,
 							 const gchar		*search,
 							 GCancellable		*cancellable,
-							 PkClientProgressCallback callback_progress,
-							 PkClientStatusCallback	 callback_status,
+							 PkProgressCallback	 progress_callback,
+							 gpointer		 progress_user_data,
 							 GAsyncReadyCallback	 callback_ready,
 							 gpointer		 user_data);
 
@@ -129,24 +121,24 @@ void		 pk_client_search_file_async		(PkClient		*client,
 							 PkBitfield		 filters,
 							 const gchar		*search,
 							 GCancellable		*cancellable,
-							 PkClientProgressCallback callback_progress,
-							 PkClientStatusCallback	 callback_status,
+							 PkProgressCallback	 progress_callback,
+							 gpointer		 progress_user_data,
 							 GAsyncReadyCallback	 callback_ready,
 							 gpointer		 user_data);
 
 void		 pk_client_get_details_async		(PkClient		*client,
 							 gchar			**package_ids,
 							 GCancellable		*cancellable,
-							 PkClientProgressCallback callback_progress,
-							 PkClientStatusCallback	 callback_status,
+							 PkProgressCallback	 progress_callback,
+							 gpointer		 progress_user_data,
 							 GAsyncReadyCallback	 callback_ready,
 							 gpointer		 user_data);
 
 void		 pk_client_get_update_detail_async	(PkClient		*client,
 							 gchar			**package_ids,
 							 GCancellable		*cancellable,
-							 PkClientProgressCallback callback_progress,
-							 PkClientStatusCallback	 callback_status,
+							 PkProgressCallback	 progress_callback,
+							 gpointer		 progress_user_data,
 							 GAsyncReadyCallback	 callback_ready,
 							 gpointer		 user_data);
 
@@ -154,26 +146,24 @@ void		 pk_client_download_packages_async	(PkClient		*client,
 							 gchar			**package_ids,
 							 const gchar		*directory,
 							 GCancellable		*cancellable,
-							 PkClientPackageCallback callback_package,
-							 PkClientProgressCallback callback_progress,
-							 PkClientStatusCallback	 callback_status,
+							 PkProgressCallback	 progress_callback,
+							 gpointer		 progress_user_data,
 							 GAsyncReadyCallback	 callback_ready,
 							 gpointer		 user_data);
 
 void		 pk_client_get_updates_async		(PkClient		*client,
 							 PkBitfield		 filters,
 							 GCancellable		*cancellable,
-							 PkClientProgressCallback callback_progress,
-							 PkClientStatusCallback	 callback_status,
+							 PkProgressCallback	 progress_callback,
+							 gpointer		 progress_user_data,
 							 GAsyncReadyCallback	 callback_ready,
 							 gpointer		 user_data);
 
 void		 pk_client_update_system_async		(PkClient		*client,
 							 gboolean		 only_trusted,
 							 GCancellable		*cancellable,
-							 PkClientPackageCallback callback_package,
-							 PkClientProgressCallback callback_progress,
-							 PkClientStatusCallback	 callback_status,
+							 PkProgressCallback	 progress_callback,
+							 gpointer		 progress_user_data,
 							 GAsyncReadyCallback	 callback_ready,
 							 gpointer		 user_data);
 
@@ -182,16 +172,16 @@ void		 pk_client_get_depends_async		(PkClient		*client,
 							 gchar			**package_ids,
 							 gboolean		 recursive,
 							 GCancellable		*cancellable,
-							 PkClientProgressCallback callback_progress,
-							 PkClientStatusCallback	 callback_status,
+							 PkProgressCallback	 progress_callback,
+							 gpointer		 progress_user_data,
 							 GAsyncReadyCallback	 callback_ready,
 							 gpointer		 user_data);
 
 void		 pk_client_get_packages_async		(PkClient		*client,
 							 PkBitfield		 filters,
 							 GCancellable		*cancellable,
-							 PkClientProgressCallback callback_progress,
-							 PkClientStatusCallback	 callback_status,
+							 PkProgressCallback	 progress_callback,
+							 gpointer		 progress_user_data,
 							 GAsyncReadyCallback	 callback_ready,
 							 gpointer		 user_data);
 
@@ -200,8 +190,8 @@ void		 pk_client_get_requires_async		(PkClient		*client,
 							 gchar			**package_ids,
 							 gboolean		 recursive,
 							 GCancellable		*cancellable,
-							 PkClientProgressCallback callback_progress,
-							 PkClientStatusCallback	 callback_status,
+							 PkProgressCallback	 progress_callback,
+							 gpointer		 progress_user_data,
 							 GAsyncReadyCallback	 callback_ready,
 							 gpointer		 user_data);
 
@@ -210,30 +200,30 @@ void		 pk_client_what_provides_async		(PkClient		*client,
 							 PkProvidesEnum		 provides,
 							 const gchar		*search,
 							 GCancellable		*cancellable,
-							 PkClientProgressCallback callback_progress,
-							 PkClientStatusCallback	 callback_status,
+							 PkProgressCallback	 progress_callback,
+							 gpointer		 progress_user_data,
 							 GAsyncReadyCallback	 callback_ready,
 							 gpointer		 user_data);
 
 void		 pk_client_get_distro_upgrades_async	(PkClient		*client,
 							 GCancellable		*cancellable,
-							 PkClientProgressCallback callback_progress,
-							 PkClientStatusCallback	 callback_status,
+							 PkProgressCallback	 progress_callback,
+							 gpointer		 progress_user_data,
 							 GAsyncReadyCallback	 callback_ready,
 							 gpointer		 user_data);
 
 void		 pk_client_get_files_async		(PkClient		*client,
 							 gchar			**package_ids,
 							 GCancellable		*cancellable,
-							 PkClientProgressCallback callback_progress,
-							 PkClientStatusCallback	 callback_status,
+							 PkProgressCallback	 progress_callback,
+							 gpointer		 progress_user_data,
 							 GAsyncReadyCallback	 callback_ready,
 							 gpointer		 user_data);
 
 void		 pk_client_get_categories_async		(PkClient		*client,
 							 GCancellable		*cancellable,
-							 PkClientProgressCallback callback_progress,
-							 PkClientStatusCallback	 callback_status,
+							 PkProgressCallback	 progress_callback,
+							 gpointer		 progress_user_data,
 							 GAsyncReadyCallback	 callback_ready,
 							 gpointer		 user_data);
 
@@ -242,17 +232,16 @@ void		 pk_client_remove_packages_async	(PkClient		*client,
 							 gboolean		 allow_deps,
 							 gboolean		 autoremove,
 							 GCancellable		*cancellable,
-							 PkClientPackageCallback callback_package,
-							 PkClientProgressCallback callback_progress,
-							 PkClientStatusCallback	 callback_status,
+							 PkProgressCallback	 progress_callback,
+							 gpointer		 progress_user_data,
 							 GAsyncReadyCallback	 callback_ready,
 							 gpointer		 user_data);
 
 void		 pk_client_refresh_cache_async		(PkClient		*client,
 							 gboolean		 force,
 							 GCancellable		*cancellable,
-							 PkClientProgressCallback callback_progress,
-							 PkClientStatusCallback	 callback_status,
+							 PkProgressCallback	 progress_callback,
+							 gpointer		 progress_user_data,
 							 GAsyncReadyCallback	 callback_ready,
 							 gpointer		 user_data);
 
@@ -260,9 +249,8 @@ void		 pk_client_install_packages_async	(PkClient		*client,
 							 gboolean		 only_trusted,
 							 gchar			**package_ids,
 							 GCancellable		*cancellable,
-							 PkClientPackageCallback callback_package,
-							 PkClientProgressCallback callback_progress,
-							 PkClientStatusCallback	 callback_status,
+							 PkProgressCallback	 progress_callback,
+							 gpointer		 progress_user_data,
 							 GAsyncReadyCallback	 callback_ready,
 							 gpointer		 user_data);
 
@@ -271,8 +259,8 @@ void		 pk_client_install_signature_async	(PkClient		*client,
 							 const gchar		*key_id,
 							 const gchar		*package_id,
 							 GCancellable		*cancellable,
-							 PkClientProgressCallback callback_progress,
-							 PkClientStatusCallback	 callback_status,
+							 PkProgressCallback	 progress_callback,
+							 gpointer		 progress_user_data,
 							 GAsyncReadyCallback	 callback_ready,
 							 gpointer		 user_data);
 
@@ -280,9 +268,8 @@ void		 pk_client_update_packages_async	(PkClient		*client,
 							 gboolean		 only_trusted,
 							 gchar			**package_ids,
 							 GCancellable		*cancellable,
-							 PkClientPackageCallback callback_package,
-							 PkClientProgressCallback callback_progress,
-							 PkClientStatusCallback	 callback_status,
+							 PkProgressCallback	 progress_callback,
+							 gpointer		 progress_user_data,
 							 GAsyncReadyCallback	 callback_ready,
 							 gpointer		 user_data);
 
@@ -290,25 +277,24 @@ void		 pk_client_install_files_async		(PkClient		*client,
 							 gboolean		 only_trusted,
 							 gchar			**files,
 							 GCancellable		*cancellable,
-							 PkClientPackageCallback callback_package,
-							 PkClientProgressCallback callback_progress,
-							 PkClientStatusCallback	 callback_status,
+							 PkProgressCallback	 progress_callback,
+							 gpointer		 progress_user_data,
 							 GAsyncReadyCallback	 callback_ready,
 							 gpointer		 user_data);
 
 void		 pk_client_accept_eula_async		(PkClient		*client,
 							 const gchar		*eula_id,
 							 GCancellable		*cancellable,
-							 PkClientProgressCallback callback_progress,
-							 PkClientStatusCallback	 callback_status,
+							 PkProgressCallback	 progress_callback,
+							 gpointer		 progress_user_data,
 							 GAsyncReadyCallback	 callback_ready,
 							 gpointer		 user_data);
 
 void		 pk_client_get_repo_list_async		(PkClient		*client,
 							 PkBitfield		 filters,
 							 GCancellable		*cancellable,
-							 PkClientProgressCallback callback_progress,
-							 PkClientStatusCallback	 callback_status,
+							 PkProgressCallback	 progress_callback,
+							 gpointer		 progress_user_data,
 							 GAsyncReadyCallback	 callback_ready,
 							 gpointer		 user_data);
 
@@ -316,8 +302,8 @@ void		 pk_client_repo_enable_async		(PkClient		*client,
 							 const gchar		*repo_id,
 							 gboolean		 enabled,
 							 GCancellable		*cancellable,
-							 PkClientProgressCallback callback_progress,
-							 PkClientStatusCallback	 callback_status,
+							 PkProgressCallback	 progress_callback,
+							 gpointer		 progress_user_data,
 							 GAsyncReadyCallback	 callback_ready,
 							 gpointer		 user_data);
 
@@ -326,40 +312,40 @@ void		 pk_client_repo_set_data_async		(PkClient		*client,
 							 const gchar		*parameter,
 							 const gchar		*value,
 							 GCancellable		*cancellable,
-							 PkClientProgressCallback callback_progress,
-							 PkClientStatusCallback	 callback_status,
+							 PkProgressCallback	 progress_callback,
+							 gpointer		 progress_user_data,
 							 GAsyncReadyCallback	 callback_ready,
 							 gpointer		 user_data);
 
 void		 pk_client_simulate_install_files_async	(PkClient		*client,
 							 gchar			**files,
 							 GCancellable		*cancellable,
-							 PkClientProgressCallback callback_progress,
-							 PkClientStatusCallback	 callback_status,
+							 PkProgressCallback	 progress_callback,
+							 gpointer		 progress_user_data,
 							 GAsyncReadyCallback	 callback_ready,
 							 gpointer		 user_data);
 
 void		 pk_client_simulate_install_packages_async (PkClient		*client,
 							 gchar			**package_ids,
 							 GCancellable		*cancellable,
-							 PkClientProgressCallback callback_progress,
-							 PkClientStatusCallback	 callback_status,
+							 PkProgressCallback	 progress_callback,
+							 gpointer		 progress_user_data,
 							 GAsyncReadyCallback	 callback_ready,
 							 gpointer		 user_data);
 
 void		 pk_client_simulate_remove_packages_async (PkClient		*client,
 							 gchar			**package_ids,
 							 GCancellable		*cancellable,
-							 PkClientProgressCallback callback_progress,
-							 PkClientStatusCallback	 callback_status,
+							 PkProgressCallback	 progress_callback,
+							 gpointer		 progress_user_data,
 							 GAsyncReadyCallback	 callback_ready,
 							 gpointer		 user_data);
 
 void		 pk_client_simulate_update_packages_async (PkClient		*client,
 							 gchar			**package_ids,
 							 GCancellable		*cancellable,
-							 PkClientProgressCallback callback_progress,
-							 PkClientStatusCallback	 callback_status,
+							 PkProgressCallback	 progress_callback,
+							 gpointer		 progress_user_data,
 							 GAsyncReadyCallback	 callback_ready,
 							 gpointer		 user_data);
 
diff --git a/lib/packagekit-glib2/pk-package-sack.c b/lib/packagekit-glib2/pk-package-sack.c
index 10c00ee..74345fc 100644
--- a/lib/packagekit-glib2/pk-package-sack.c
+++ b/lib/packagekit-glib2/pk-package-sack.c
@@ -440,7 +440,9 @@ pk_package_sack_merge_resolve_cb (GObject *source_object, GAsyncResult *res, PkP
  * Merges in details about packages using resolve.
  **/
 void
-pk_package_sack_merge_resolve_async (PkPackageSack *sack, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data)
+pk_package_sack_merge_resolve_async (PkPackageSack *sack, GCancellable *cancellable,
+				     PkProgressCallback progress_callback, gpointer progress_user_data,
+				     GAsyncReadyCallback callback, gpointer user_data)
 {
 	GSimpleAsyncResult *res;
 	PkPackageSackState *state;
@@ -462,7 +464,8 @@ pk_package_sack_merge_resolve_async (PkPackageSack *sack, GCancellable *cancella
 	/* start resolve async */
 	package_ids = pk_package_sack_get_package_ids (sack);
 	pk_client_resolve_async (sack->priv->client, pk_bitfield_value (PK_FILTER_ENUM_INSTALLED), package_ids,
-				 cancellable, NULL, NULL, (GAsyncReadyCallback) pk_package_sack_merge_resolve_cb, state);
+				 cancellable, progress_callback, progress_user_data,
+				 (GAsyncReadyCallback) pk_package_sack_merge_resolve_cb, state);
 
 	g_strfreev (package_ids);
 	g_object_unref (res);
@@ -569,7 +572,9 @@ pk_package_sack_merge_details_cb (GObject *source_object, GAsyncResult *res, PkP
  * Merges in details about packages.
  **/
 void
-pk_package_sack_merge_details_async (PkPackageSack *sack, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data)
+pk_package_sack_merge_details_async (PkPackageSack *sack, GCancellable *cancellable,
+				     PkProgressCallback progress_callback, gpointer progress_user_data,
+				     GAsyncReadyCallback callback, gpointer user_data)
 {
 	GSimpleAsyncResult *res;
 	PkPackageSackState *state;
@@ -591,7 +596,8 @@ pk_package_sack_merge_details_async (PkPackageSack *sack, GCancellable *cancella
 	/* start details async */
 	package_ids = pk_package_sack_get_package_ids (sack);
 	pk_client_get_details_async (sack->priv->client, package_ids,
-				     cancellable, NULL, NULL, (GAsyncReadyCallback) pk_package_sack_merge_details_cb, state);
+				     cancellable, progress_callback, progress_user_data,
+				     (GAsyncReadyCallback) pk_package_sack_merge_details_cb, state);
 
 	g_strfreev (package_ids);
 	g_object_unref (res);
@@ -678,7 +684,9 @@ pk_package_sack_merge_update_detail_cb (GObject *source_object, GAsyncResult *re
  * Merges in update details about packages.
  **/
 void
-pk_package_sack_merge_update_detail_async (PkPackageSack *sack, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data)
+pk_package_sack_merge_update_detail_async (PkPackageSack *sack, GCancellable *cancellable,
+					   PkProgressCallback progress_callback, gpointer progress_user_data,
+					   GAsyncReadyCallback callback, gpointer user_data)
 {
 	GSimpleAsyncResult *res;
 	PkPackageSackState *state;
@@ -700,7 +708,8 @@ pk_package_sack_merge_update_detail_async (PkPackageSack *sack, GCancellable *ca
 	/* start update_detail async */
 	package_ids = pk_package_sack_get_package_ids (sack);
 	pk_client_get_update_detail_async (sack->priv->client, package_ids,
-					   cancellable, NULL, NULL, (GAsyncReadyCallback) pk_package_sack_merge_update_detail_cb, state);
+					   cancellable, progress_callback, progress_user_data,
+					   (GAsyncReadyCallback) pk_package_sack_merge_update_detail_cb, state);
 
 	g_strfreev (package_ids);
 	g_object_unref (res);
@@ -937,7 +946,7 @@ pk_package_sack_test (EggTest *test)
 
 	/************************************************************/
 	egg_test_title (test, "merge resolve results");
-	pk_package_sack_merge_resolve_async (sack, NULL, (GAsyncReadyCallback) pk_package_sack_test_resolve_cb, test);
+	pk_package_sack_merge_resolve_async (sack, NULL, NULL, NULL, (GAsyncReadyCallback) pk_package_sack_test_resolve_cb, test);
 	egg_test_loop_wait (test, 5000);
 	egg_test_success (test, "resolved in %i", egg_test_elapsed (test));
 
@@ -963,7 +972,7 @@ pk_package_sack_test (EggTest *test)
 
 	/************************************************************/
 	egg_test_title (test, "merge details results");
-	pk_package_sack_merge_details_async (sack, NULL, (GAsyncReadyCallback) pk_package_sack_test_details_cb, test);
+	pk_package_sack_merge_details_async (sack, NULL, NULL, NULL, (GAsyncReadyCallback) pk_package_sack_test_details_cb, test);
 	egg_test_loop_wait (test, 5000);
 	egg_test_success (test, "got details in %i", egg_test_elapsed (test));
 
@@ -981,7 +990,7 @@ pk_package_sack_test (EggTest *test)
 
 	/************************************************************/
 	egg_test_title (test, "merge update detail results");
-	pk_package_sack_merge_update_detail_async (sack, NULL, (GAsyncReadyCallback) pk_package_sack_test_update_detail_cb, test);
+	pk_package_sack_merge_update_detail_async (sack, NULL, NULL, NULL, (GAsyncReadyCallback) pk_package_sack_test_update_detail_cb, test);
 	egg_test_loop_wait (test, 5000);
 	egg_test_success (test, "got update detail in %i", egg_test_elapsed (test));
 
diff --git a/lib/packagekit-glib2/pk-package-sack.h b/lib/packagekit-glib2/pk-package-sack.h
index 192607f..3d57fc8 100644
--- a/lib/packagekit-glib2/pk-package-sack.h
+++ b/lib/packagekit-glib2/pk-package-sack.h
@@ -33,6 +33,7 @@
 
 #include <glib-object.h>
 #include <gio/gio.h>
+#include <packagekit-glib2/pk-progress.h>
 #include <packagekit-glib2/pk-package.h>
 
 G_BEGIN_DECLS
@@ -99,18 +100,24 @@ gboolean	 pk_package_sack_merge_generic_finish	(PkPackageSack		*sack,
 /* merging in data to the array using Resolve() */
 void		 pk_package_sack_merge_resolve_async	(PkPackageSack		*sack,
 							 GCancellable		*cancellable,
+							 PkProgressCallback	 progress_callback,
+							 gpointer		 progress_user_data,
 							 GAsyncReadyCallback	 callback,
 							 gpointer		 user_data);
 
 /* merging in data to the array using Details() */
 void		 pk_package_sack_merge_details_async	(PkPackageSack		*sack,
 							 GCancellable		*cancellable,
+							 PkProgressCallback	 progress_callback,
+							 gpointer		 progress_user_data,
 							 GAsyncReadyCallback	 callback,
 							 gpointer		 user_data);
 
 /* merging in data to the array using UpdateDetail() */
 void		 pk_package_sack_merge_update_detail_async (PkPackageSack	*sack,
 							 GCancellable		*cancellable,
+							 PkProgressCallback	 progress_callback,
+							 gpointer		 progress_user_data,
 							 GAsyncReadyCallback	 callback,
 							 gpointer		 user_data);
 
diff --git a/lib/packagekit-glib2/pk-progress.c b/lib/packagekit-glib2/pk-progress.c
new file mode 100644
index 0000000..97ea39e
--- /dev/null
+++ b/lib/packagekit-glib2/pk-progress.c
@@ -0,0 +1,248 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2009 Richard Hughes <richard at hughsie.com>
+ *
+ * Licensed under the GNU General Public License Version 2
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+/**
+ * SECTION:pk-progress
+ * @short_description: GObject class for PackageKit progress access
+ *
+ * A nice GObject to use for accessing PackageKit asynchronously
+ */
+
+#include "config.h"
+
+#include <packagekit-glib2/pk-progress.h>
+#include <packagekit-glib2/pk-enum.h>
+
+#include "egg-debug.h"
+
+static void     pk_progress_finalize	(GObject     *object);
+
+#define PK_PROGRESS_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), PK_TYPE_PROGRESS, PkProgressPrivate))
+
+/**
+ * PkProgressPrivate:
+ *
+ * Private #PkProgress data
+ **/
+struct _PkProgressPrivate
+{
+	gchar				*package_id;
+	gint				 percentage;
+	gint				 subpercentage;
+	gboolean			 allow_cancel;
+	PkStatusEnum			 status;
+};
+
+enum {
+	PROP_0,
+	PROP_PACKAGE_ID,
+	PROP_PERCENTAGE,
+	PROP_SUBPERCENTAGE,
+	PROP_ALLOW_CANCEL,
+	PROP_STATUS,
+	PROP_LAST
+};
+
+G_DEFINE_TYPE (PkProgress, pk_progress, G_TYPE_OBJECT)
+
+/**
+ * pk_progress_get_property:
+ **/
+static void
+pk_progress_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec)
+{
+	PkProgress *progress = PK_PROGRESS (object);
+	PkProgressPrivate *priv = progress->priv;
+
+	switch (prop_id) {
+	case PROP_PACKAGE_ID:
+		g_value_set_string (value, priv->package_id);
+		break;
+	case PROP_PERCENTAGE:
+		g_value_set_int (value, priv->percentage);
+		break;
+	case PROP_SUBPERCENTAGE:
+		g_value_set_int (value, priv->subpercentage);
+		break;
+	case PROP_ALLOW_CANCEL:
+		g_value_set_boolean (value, priv->allow_cancel);
+		break;
+	case PROP_STATUS:
+		g_value_set_uint (value, priv->status);
+		break;
+	default:
+		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+		break;
+	}
+}
+
+/**
+ * pk_progress_set_property:
+ **/
+static void
+pk_progress_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec)
+{
+	PkProgress *progress = PK_PROGRESS (object);
+	PkProgressPrivate *priv = progress->priv;
+
+	switch (prop_id) {
+	case PROP_PACKAGE_ID:
+		g_free (priv->package_id);
+		priv->package_id = g_strdup (g_value_get_string (value));
+		break;
+	case PROP_PERCENTAGE:
+		priv->percentage = g_value_get_int (value);
+		break;
+	case PROP_SUBPERCENTAGE:
+		priv->subpercentage = g_value_get_int (value);
+		break;
+	case PROP_ALLOW_CANCEL:
+		priv->allow_cancel = g_value_get_boolean (value);
+		break;
+	case PROP_STATUS:
+		priv->status = g_value_get_uint (value);
+		break;
+	default:
+		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+		break;
+	}
+}
+
+/**
+ * pk_progress_class_init:
+ **/
+static void
+pk_progress_class_init (PkProgressClass *klass)
+{
+	GParamSpec *pspec;
+	GObjectClass *object_class = G_OBJECT_CLASS (klass);
+	object_class->get_property = pk_progress_get_property;
+	object_class->set_property = pk_progress_set_property;
+	object_class->finalize = pk_progress_finalize;
+
+	/**
+	 * PkPackage:package-id:
+	 */
+	pspec = g_param_spec_string ("package-id", NULL,
+				     "The full package_id, e.g. 'gnome-power-manager;0.1.2;i386;fedora'",
+				     NULL,
+				     G_PARAM_READWRITE);
+	g_object_class_install_property (object_class, PROP_PACKAGE_ID, pspec);
+
+	/**
+	 * PkProgress:percentage:
+	 */
+	pspec = g_param_spec_int ("percentage", NULL, NULL,
+				  -1, G_MAXINT, -1,
+				  G_PARAM_READWRITE);
+	g_object_class_install_property (object_class, PROP_PERCENTAGE, pspec);
+
+	/**
+	 * PkProgress:subpercentage:
+	 */
+	pspec = g_param_spec_int ("subpercentage", NULL, NULL,
+				  -1, G_MAXINT, -1,
+				  G_PARAM_READWRITE);
+	g_object_class_install_property (object_class, PROP_SUBPERCENTAGE, pspec);
+
+	/**
+	 * PkPackage:allow-cancel:
+	 */
+	pspec = g_param_spec_boolean ("allow-cancel", NULL, NULL,
+				      FALSE,
+				      G_PARAM_READWRITE);
+	g_object_class_install_property (object_class, PROP_ALLOW_CANCEL, pspec);
+
+	/**
+	 * PkProgress:status:
+	 */
+	pspec = g_param_spec_uint ("status", NULL, NULL,
+				   0, PK_STATUS_ENUM_UNKNOWN, PK_STATUS_ENUM_UNKNOWN,
+				   G_PARAM_READWRITE);
+	g_object_class_install_property (object_class, PROP_STATUS, pspec);
+
+	g_type_class_add_private (klass, sizeof (PkProgressPrivate));
+}
+
+/**
+ * pk_progress_init:
+ **/
+static void
+pk_progress_init (PkProgress *progress)
+{
+	progress->priv = PK_PROGRESS_GET_PRIVATE (progress);
+}
+
+/**
+ * pk_progress_finalize:
+ **/
+static void
+pk_progress_finalize (GObject *object)
+{
+	PkProgress *progress = PK_PROGRESS (object);
+	PkProgressPrivate *priv = progress->priv;
+
+	g_free (priv->package_id);
+
+	G_OBJECT_CLASS (pk_progress_parent_class)->finalize (object);
+}
+
+/**
+ * pk_progress_new:
+ *
+ * PkProgress is a nice GObject wrapper for PackageKit and makes writing
+ * frontends easy.
+ *
+ * Return value: A new %PkProgress instance
+ **/
+PkProgress *
+pk_progress_new (void)
+{
+	PkProgress *progress;
+	progress = g_object_new (PK_TYPE_PROGRESS, NULL);
+	return PK_PROGRESS (progress);
+}
+
+/***************************************************************************
+ ***                          MAKE CHECK TESTS                           ***
+ ***************************************************************************/
+#ifdef EGG_TEST
+#include "egg-test.h"
+
+void
+pk_progress_test (EggTest *test)
+{
+	PkProgress *progress;
+
+	if (!egg_test_start (test, "PkProgress"))
+		return;
+
+	/************************************************************/
+	egg_test_title (test, "get progress");
+	progress = pk_progress_new ();
+	egg_test_assert (test, progress != NULL);
+
+	g_object_unref (progress);
+
+	egg_test_end (test);
+}
+#endif
+
diff --git a/lib/packagekit-glib2/pk-progress.h b/lib/packagekit-glib2/pk-progress.h
new file mode 100644
index 0000000..a92ab42
--- /dev/null
+++ b/lib/packagekit-glib2/pk-progress.h
@@ -0,0 +1,88 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2009 Richard Hughes <richard at hughsie.com>
+ *
+ * Licensed under the GNU General Public License Version 2
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#if !defined (__PACKAGEKIT_H_INSIDE__) && !defined (PK_COMPILATION)
+#error "Only <packagekit.h> can be included directly."
+#endif
+
+/**
+ * SECTION:pk-progress
+ * @short_description: An abstract progress GObject
+ */
+
+#ifndef __PK_PROGRESS_H
+#define __PK_PROGRESS_H
+
+#include <glib-object.h>
+
+G_BEGIN_DECLS
+
+#define PK_TYPE_PROGRESS		(pk_progress_get_type ())
+#define PK_PROGRESS(o)			(G_TYPE_CHECK_INSTANCE_CAST ((o), PK_TYPE_PROGRESS, PkProgress))
+#define PK_PROGRESS_CLASS(k)		(G_TYPE_CHECK_CLASS_CAST((k), PK_TYPE_PROGRESS, PkProgressClass))
+#define PK_IS_PROGRESS(o)		(G_TYPE_CHECK_INSTANCE_TYPE ((o), PK_TYPE_PROGRESS))
+#define PK_IS_PROGRESS_CLASS(k)		(G_TYPE_CHECK_CLASS_TYPE ((k), PK_TYPE_PROGRESS))
+#define PK_PROGRESS_GET_CLASS(o)	(G_TYPE_INSTANCE_GET_CLASS ((o), PK_TYPE_PROGRESS, PkProgressClass))
+#define PK_PROGRESS_ERROR		(pk_progress_error_quark ())
+#define PK_PROGRESS_TYPE_ERROR		(pk_progress_error_get_type ())
+
+typedef struct _PkProgressPrivate	PkProgressPrivate;
+typedef struct _PkProgress		PkProgress;
+typedef struct _PkProgressClass		PkProgressClass;
+
+struct _PkProgress
+{
+	 GObject		 parent;
+	 PkProgressPrivate	*priv;
+};
+
+struct _PkProgressClass
+{
+	GObjectClass	parent_class;
+	/* padding for future expansion */
+	void (*_pk_reserved1) (void);
+	void (*_pk_reserved2) (void);
+	void (*_pk_reserved3) (void);
+	void (*_pk_reserved4) (void);
+	void (*_pk_reserved5) (void);
+};
+
+GQuark		 pk_progress_error_quark		(void);
+GType		 pk_progress_get_type		  	(void);
+PkProgress	*pk_progress_new			(void);
+
+typedef enum {
+	PK_PROGRESS_TYPE_PACKAGE_ID,
+	PK_PROGRESS_TYPE_PERCENTAGE,
+	PK_PROGRESS_TYPE_SUBPERCENTAGE,
+	PK_PROGRESS_TYPE_ALLOW_CANCEL,
+	PK_PROGRESS_TYPE_STATUS,
+	PK_PROGRESS_TYPE_INVALID
+} PkProgressType;
+
+typedef void	(*PkProgressCallback)			(PkProgress		*progress,
+							 PkProgressType		 type,
+                                                         gpointer		 user_data);
+
+G_END_DECLS
+
+#endif /* __PK_PROGRESS_H */
+
diff --git a/lib/packagekit-glib2/pk-self-test.c b/lib/packagekit-glib2/pk-self-test.c
index cd2d9ab..5b5cc66 100644
--- a/lib/packagekit-glib2/pk-self-test.c
+++ b/lib/packagekit-glib2/pk-self-test.c
@@ -35,6 +35,7 @@ main (int argc, char **argv)
 	egg_debug_init (TRUE);
 
 	/* tests go here */
+	pk_progress_test (test);
 	pk_results_test (test);
 	pk_package_test (test);
 	pk_control_test (test);
commit f440b42a433fb96ca951d5214ed0d31c642f41fc
Merge: ae561cc... a501e0d...
Author: Richard Hughes <richard at hughsie.com>
Date:   Fri Aug 28 08:40:09 2009 +0100

    Merge branch 'master' of git+ssh://git.packagekit.org/srv/git/PackageKit

commit ae561cc3fc77a04394b506a772f1addff7d8d808
Author: Richard Hughes <richard at hughsie.com>
Date:   Fri Aug 28 08:39:30 2009 +0100

    glib2: add some more PkResultItem types copied from glib(1)

diff --git a/lib/packagekit-glib2/pk-package-sack.h b/lib/packagekit-glib2/pk-package-sack.h
index a368115..192607f 100644
--- a/lib/packagekit-glib2/pk-package-sack.h
+++ b/lib/packagekit-glib2/pk-package-sack.h
@@ -92,6 +92,10 @@ PkPackage	*pk_package_sack_find_by_id		(PkPackageSack		*sack,
 							 const gchar		*package_id);
 guint64		 pk_package_sack_get_total_bytes	(PkPackageSack		*sack);
 
+gboolean	 pk_package_sack_merge_generic_finish	(PkPackageSack		*sack,
+							 GAsyncResult		*res,
+							 GError			**error);
+
 /* merging in data to the array using Resolve() */
 void		 pk_package_sack_merge_resolve_async	(PkPackageSack		*sack,
 							 GCancellable		*cancellable,
@@ -110,10 +114,6 @@ void		 pk_package_sack_merge_update_detail_async (PkPackageSack	*sack,
 							 GAsyncReadyCallback	 callback,
 							 gpointer		 user_data);
 
-gboolean	 pk_package_sack_merge_generic_finish	(PkPackageSack		*sack,
-							 GAsyncResult		*res,
-							 GError			**error);
-
 G_END_DECLS
 
 #endif /* __PK_PACKAGE_SACK_H */
diff --git a/lib/packagekit-glib2/pk-results.c b/lib/packagekit-glib2/pk-results.c
index fdf7fd9..20e3f98 100644
--- a/lib/packagekit-glib2/pk-results.c
+++ b/lib/packagekit-glib2/pk-results.c
@@ -121,6 +121,64 @@ pk_result_item_update_detail_free (PkResultItemUpdateDetail *item)
 		g_date_free (item->updated);
 }
 
+#if 0
+/**
+ * pk_result_item_category_free:
+ **/
+static void
+pk_result_item_category_free (PkResultItemCategory *item)
+{
+	if (item == NULL)
+		return;
+	g_free (item->parent_id);
+	g_free (item->cat_id);
+	g_free (item->name);
+	g_free (item->summary);
+	g_free (item->icon);
+	g_free (item);
+}
+
+/**
+ * pk_result_item_distro_upgrade_free:
+ **/
+static void
+pk_result_item_distro_upgrade_free (PkResultItemDistroUpgrade *item)
+{
+	if (item == NULL)
+		return;
+	g_free (item->name);
+	g_free (item->summary);
+	g_free (item);
+}
+
+/**
+ * pk_result_item_require_restart_free:
+ **/
+static void
+pk_result_item_require_restart_free (PkResultItemRequireRestart *item)
+{
+	if (item == NULL)
+		return;
+	g_free (item->package_id);
+	g_free (item);
+}
+
+/**
+ * pk_result_item_transaction_free:
+ **/
+static void
+pk_result_item_transaction_free (PkResultItemTransaction *item)
+{
+	if (item == NULL)
+		return;
+	g_free (item->tid);
+	g_free (item->timespec);
+	g_free (item->data);
+	g_free (item->cmdline);
+	g_free (item);
+}
+#endif
+
 /**
  * pk_results_set_exit_code:
  * @results: a valid #PkResults instance
diff --git a/lib/packagekit-glib2/pk-results.h b/lib/packagekit-glib2/pk-results.h
index 0188b52..5e4411c 100644
--- a/lib/packagekit-glib2/pk-results.h
+++ b/lib/packagekit-glib2/pk-results.h
@@ -67,6 +67,105 @@ struct _PkResultsClass
 	void (*_pk_reserved5) (void);
 };
 
+/**
+ * PkResultItemRequireRestart:
+ *
+ * Object to represent details about the require_restart.
+ **/
+typedef struct
+{
+	PkRestartEnum			 restart;
+	gchar				*package_id;
+} PkResultItemRequireRestart;
+
+/**
+ * PkResultItemTransaction:
+ *
+ * Object to represent details about the transaction.
+ **/
+typedef struct
+{
+	gchar				*tid;
+	gchar				*timespec;
+	gboolean			 succeeded;
+	PkRoleEnum			 role;
+	guint				 duration;
+	gchar				*data;
+	guint				 uid;
+	gchar				*cmdline;
+} PkResultItemTransaction;
+
+/**
+ * PkResultItemDetails:
+ *
+ * Object to represent details about the update.
+ **/
+typedef struct {
+	gchar		*package_id;
+	gchar		*license;
+	PkGroupEnum	 group_enum;
+	gchar		*description;
+	gchar		*url;
+	guint64		 size;
+} PkResultItemDetails;
+
+/**
+ * PkResultItemUpdateDetail:
+ *
+ * Object to represent details about the update.
+ **/
+typedef struct {
+	gchar		*package_id;
+	gchar		*updates;
+	gchar		*obsoletes;
+	gchar		*vendor_url;
+	gchar		*bugzilla_url;
+	gchar		*cve_url;
+	PkRestartEnum	 restart_enum;
+	gchar		*update_text;
+	gchar		*changelog;
+	PkUpdateStateEnum state_enum;
+	GDate		*issued;
+	GDate		*updated;
+} PkResultItemUpdateDetail;
+
+/**
+ * PkResultItemPackage:
+ *
+ * Object to represent details about a package.
+ **/
+typedef struct {
+	PkInfoEnum	 info_enum;
+	gchar		*package_id;
+	gchar		*summary;
+} PkResultItemPackage;
+
+/**
+ * PkResultItemDistroUpgrade:
+ *
+ * Object to represent details about the distribution update.
+ **/
+typedef struct
+{
+	PkUpdateStateEnum		 state;
+	gchar				*name;
+	gchar				*summary;
+} PkResultItemDistroUpgrade;
+
+/**
+ * PkResultItemCategory:
+ *
+ * Object to represent category about the category.
+ **/
+typedef struct
+{
+	gchar				*parent_id;
+	gchar				*cat_id;
+	gchar				*name;
+	gchar				*summary;
+	gchar				*icon;
+} PkResultItemCategory;
+
 GQuark		 pk_results_error_quark			(void);
 GType		 pk_results_get_type		  	(void);
 PkResults	*pk_results_new				(void);
@@ -103,44 +202,11 @@ gboolean	 pk_results_add_update_detail		(PkResults	*results,
 
 /* get single data */
 PkExitEnum	 pk_results_get_exit_code		(PkResults	*results);
-
-/* get package objects */
 PkPackageSack	*pk_results_get_package_sack		(PkResults	*results);
 
-/* get package array data */
-typedef struct {
-	PkInfoEnum	 info_enum;
-	gchar		*package_id;
-	gchar		*summary;	
-} PkResultItemPackage;
+/* get package array objects */
 GPtrArray	*pk_results_get_package_array		(PkResults	*results);
-
-/* get details array data */
-typedef struct {
-	gchar		*package_id;
-	gchar		*license;
-	PkGroupEnum	 group_enum;
-	gchar		*description;
-	gchar		*url;
-	guint64		 size;
-} PkResultItemDetails;
 GPtrArray	*pk_results_get_details_array		(PkResults	*results);
-
-/* get update detail array data */
-typedef struct {
-	gchar		*package_id;
-	gchar		*updates;
-	gchar		*obsoletes;
-	gchar		*vendor_url;
-	gchar		*bugzilla_url;
-	gchar		*cve_url;
-	PkRestartEnum	 restart_enum;
-	gchar		*update_text;
-	gchar		*changelog;
-	PkUpdateStateEnum state_enum;
-	GDate		*issued;
-	GDate		*updated;
-} PkResultItemUpdateDetail;
 GPtrArray	*pk_results_get_update_detail_array	(PkResults	*results);
 
 G_END_DECLS
commit a501e0d001988cd59e3d2a5a8ebe1ae8704da112
Author: Adrien Bustany <madcat at mymadcat.com>
Date:   Wed Aug 26 19:22:46 2009 -0400

    PackageKit-Qt : add const qualifier on some methods

diff --git a/lib/packagekit-qt/src/bitfield.cpp b/lib/packagekit-qt/src/bitfield.cpp
index e728c92..cc1c54e 100644
--- a/lib/packagekit-qt/src/bitfield.cpp
+++ b/lib/packagekit-qt/src/bitfield.cpp
@@ -14,7 +14,7 @@ Bitfield::~Bitfield ()
 {
 }
 
-qint64 Bitfield::operator& (qint64 mask)
+qint64 Bitfield::operator& (qint64 mask) const
 {
 	return m_val & (1 << mask);
 }
@@ -25,7 +25,7 @@ qint64 Bitfield::operator&= (qint64 mask)
 	return m_val;
 }
 
-qint64 Bitfield::operator| (qint64 mask)
+qint64 Bitfield::operator| (qint64 mask) const
 {
 	return m_val | (1 << mask);
 }
@@ -36,7 +36,7 @@ qint64 Bitfield::operator|= (qint64 mask)
 	return m_val;
 }
 
-Bitfield Bitfield::operator& (Bitfield mask)
+Bitfield Bitfield::operator& (Bitfield mask) const
 {
 	return m_val & mask.m_val;
 }
@@ -47,7 +47,7 @@ Bitfield Bitfield::operator&= (Bitfield mask)
 	return m_val;
 }
 
-Bitfield Bitfield::operator| (Bitfield mask)
+Bitfield Bitfield::operator| (Bitfield mask) const
 {
 	return m_val | mask.m_val;
 }
diff --git a/lib/packagekit-qt/src/bitfield.h b/lib/packagekit-qt/src/bitfield.h
index 30b260c..d7483a8 100644
--- a/lib/packagekit-qt/src/bitfield.h
+++ b/lib/packagekit-qt/src/bitfield.h
@@ -11,14 +11,14 @@ namespace PackageKit {
 		Bitfield (qint64 val);
 		~Bitfield ();
 
-		qint64 operator& (qint64 mask);
+		qint64 operator& (qint64 mask) const;
 		qint64 operator&= (qint64 mask);
-		qint64 operator| (qint64 mask);
+		qint64 operator| (qint64 mask) const;
 		qint64 operator|= (qint64 mask);
 
-		Bitfield operator& (Bitfield mask);
+		Bitfield operator& (Bitfield mask) const;
 		Bitfield operator&= (Bitfield mask);
-		Bitfield operator| (Bitfield mask);
+		Bitfield operator| (Bitfield mask) const;
 		Bitfield operator|= (Bitfield mask);
 
 		Bitfield& operator= (const Bitfield& other);
commit 610d97c1efeebbf0689d9396ecfb5b8126e65578
Author: Adrien Bustany <madcat at mymadcat.com>
Date:   Wed Aug 26 19:13:22 2009 -0400

    PackageKit-Qt : Add additionnal methods to preserve API with earlier versions

diff --git a/lib/packagekit-qt/src/bitfield.cpp b/lib/packagekit-qt/src/bitfield.cpp
index 8935daa..e728c92 100644
--- a/lib/packagekit-qt/src/bitfield.cpp
+++ b/lib/packagekit-qt/src/bitfield.cpp
@@ -36,6 +36,29 @@ qint64 Bitfield::operator|= (qint64 mask)
 	return m_val;
 }
 
+Bitfield Bitfield::operator& (Bitfield mask)
+{
+	return m_val & mask.m_val;
+}
+
+Bitfield Bitfield::operator&= (Bitfield mask)
+{
+	m_val &= mask.m_val;
+	return m_val;
+}
+
+Bitfield Bitfield::operator| (Bitfield mask)
+{
+	return m_val | mask.m_val;
+}
+
+Bitfield Bitfield::operator|= (Bitfield mask)
+{
+	m_val |= mask.m_val;
+	return m_val;
+}
+
+
 Bitfield& Bitfield::operator= (const Bitfield& other)
 {
 	if (this == &other)
diff --git a/lib/packagekit-qt/src/bitfield.h b/lib/packagekit-qt/src/bitfield.h
index ff89f2d..30b260c 100644
--- a/lib/packagekit-qt/src/bitfield.h
+++ b/lib/packagekit-qt/src/bitfield.h
@@ -16,6 +16,11 @@ namespace PackageKit {
 		qint64 operator| (qint64 mask);
 		qint64 operator|= (qint64 mask);
 
+		Bitfield operator& (Bitfield mask);
+		Bitfield operator&= (Bitfield mask);
+		Bitfield operator| (Bitfield mask);
+		Bitfield operator|= (Bitfield mask);
+
 		Bitfield& operator= (const Bitfield& other);
 
 	private:
commit 918d669795b6d955701502684ae05c0f5a2d8353
Author: Adrien Bustany <madcat at mymadcat.com>
Date:   Wed Aug 26 17:18:17 2009 -0400

    PackageKit-Qt : Add simulate support
    
    Add simulate_* to the Client
    Update the Actions bitfield to a custom type

diff --git a/lib/packagekit-qt/src/Makefile.am b/lib/packagekit-qt/src/Makefile.am
index d203e61..53695f1 100644
--- a/lib/packagekit-qt/src/Makefile.am
+++ b/lib/packagekit-qt/src/Makefile.am
@@ -21,6 +21,7 @@ libpackagekit_qt_include_HEADERS =				\
 	client.h						\
 	transaction.h						\
 	package.h						\
+	bitfield.h                      \
 	$(NULL)
 
 $(libpackagekit_qt_la_OBJECTS) :				\
@@ -52,6 +53,8 @@ libpackagekit_qt_la_SOURCES =					\
 	package.cpp						\
 	util.h							\
 	util.cpp						\
+	bitfield.h                      \
+	bitfield.cpp                    \
 	$(NULL)
 
 libpackagekit_qt_la_LIBADD =					\
diff --git a/lib/packagekit-qt/src/bitfield.cpp b/lib/packagekit-qt/src/bitfield.cpp
new file mode 100644
index 0000000..8935daa
--- /dev/null
+++ b/lib/packagekit-qt/src/bitfield.cpp
@@ -0,0 +1,47 @@
+#include "bitfield.h"
+
+using namespace PackageKit;
+
+Bitfield::Bitfield () : m_val (0)
+{
+}
+
+Bitfield::Bitfield (qint64 val) : m_val (val)
+{
+}
+
+Bitfield::~Bitfield ()
+{
+}
+
+qint64 Bitfield::operator& (qint64 mask)
+{
+	return m_val & (1 << mask);
+}
+
+qint64 Bitfield::operator&= (qint64 mask)
+{
+	m_val &= (1 << mask);
+	return m_val;
+}
+
+qint64 Bitfield::operator| (qint64 mask)
+{
+	return m_val | (1 << mask);
+}
+
+qint64 Bitfield::operator|= (qint64 mask)
+{
+	m_val |= (1 << mask);
+	return m_val;
+}
+
+Bitfield& Bitfield::operator= (const Bitfield& other)
+{
+	if (this == &other)
+		return *this;
+
+	m_val = other.m_val;
+
+	return *this;
+}
diff --git a/lib/packagekit-qt/src/bitfield.h b/lib/packagekit-qt/src/bitfield.h
new file mode 100644
index 0000000..ff89f2d
--- /dev/null
+++ b/lib/packagekit-qt/src/bitfield.h
@@ -0,0 +1,26 @@
+#ifndef BITFIELD_H
+#define BITFIELD_H
+
+#include <QtGlobal>
+
+namespace PackageKit {
+	class Bitfield
+	{
+	public:
+		Bitfield ();
+		Bitfield (qint64 val);
+		~Bitfield ();
+
+		qint64 operator& (qint64 mask);
+		qint64 operator&= (qint64 mask);
+		qint64 operator| (qint64 mask);
+		qint64 operator|= (qint64 mask);
+
+		Bitfield& operator= (const Bitfield& other);
+
+	private:
+		qint64 m_val;
+	};
+} // End namespace PackageKit
+
+#endif
diff --git a/lib/packagekit-qt/src/client.cpp b/lib/packagekit-qt/src/client.cpp
index aba8cc9..141afde 100644
--- a/lib/packagekit-qt/src/client.cpp
+++ b/lib/packagekit-qt/src/client.cpp
@@ -410,6 +410,46 @@ Package* Client::searchFromDesktopFile(const QString& path)
 
 }
 
+Transaction* Client::simulateInstallFiles(const QStringList& files)
+{
+	RUN_TRANSACTION(SimulateInstallFiles(files))
+}
+
+Transaction* Client::simulateInstallFile(const QString& file)
+{
+	return simulateInstallFiles(QStringList() << file);
+}
+
+Transaction* Client::simulateInstallPackages(const QList<Package*>& packages)
+{
+	RUN_TRANSACTION(SimulateInstallFiles(Util::packageListToPids(packages)))
+}
+
+Transaction* Client::simulateInstallPackage(Package* package)
+{
+	return simulateInstallPackages(QList<Package*>() << package);
+}
+
+Transaction* Client::simulateRemovePackages(const QList<Package*>& packages)
+{
+	RUN_TRANSACTION(SimulateRemovePackages(Util::packageListToPids(packages)))
+}
+
+Transaction* Client::simulateRemovePackage(Package* package)
+{
+	return simulateRemovePackages(QList<Package*>() << package);
+}
+
+Transaction* Client::simulateUpdatePackages(const QList<Package*>& packages)
+{
+	RUN_TRANSACTION(SimulateUpdatePackages(Util::packageListToPids(packages)))
+}
+
+Transaction* Client::simulateUpdatePackage(Package* package)
+{
+	return simulateUpdatePackages(QList<Package*>() << package);
+}
+
 Transaction* Client::updatePackages(bool only_trusted, const QList<Package*>& packages)
 {
 	RUN_TRANSACTION(UpdatePackages(only_trusted, Util::packageListToPids(packages)))
diff --git a/lib/packagekit-qt/src/client.h b/lib/packagekit-qt/src/client.h
index d46bb65..d8a4569 100644
--- a/lib/packagekit-qt/src/client.h
+++ b/lib/packagekit-qt/src/client.h
@@ -23,6 +23,7 @@
 
 #include <QtCore>
 #include <QDBusReply>
+#include <bitfield.h>
 
 namespace PackageKit {
 
@@ -83,39 +84,43 @@ public:
 	 * \sa getActions
 	 */
 	typedef enum {
-		ActionCancel		 = 0x00000001,
-		ActionGetDepends	 = 0x00000002,
-		ActionGetDetails	 = 0x00000004,
-		ActionGetFiles		 = 0x00000008,
-		ActionGetPackages	 = 0x00000010,
-		ActionGetRepoList	 = 0x00000020,
-		ActionGetRequires	 = 0x00000040,
-		ActionGetUpdateDetail	 = 0x00000080,
-		ActionGetUpdates	 = 0x00000100,
-		ActionInstallFiles	 = 0x00000200,
-		ActionInstallPackages	 = 0x00000400,
-		ActionInstallSignature	 = 0x00000800,
-		ActionRefreshCache	 = 0x00001000,
-		ActionRemovePackages	 = 0x00002000,
-		ActionRepoEnable	 = 0x00004000,
-		ActionRepoSetData	 = 0x00008000,
-		ActionResolve		 = 0x00010000,
-		ActionRollback		 = 0x00020000,
-		ActionSearchDetails	 = 0x00040000,
-		ActionSearchFile	 = 0x00080000,
-		ActionSearchGroup	 = 0x00100000,
-		ActionSearchName	 = 0x00200000,
-		ActionUpdatePackages	 = 0x00400000,
-		ActionUpdateSystem	 = 0x00800000,
-		ActionWhatProvides	 = 0x01000000,
-		ActionAcceptEula	 = 0x02000000,
-		ActionDownloadPackages	 = 0x04000000,
-		ActionGetDistroUpgrades	 = 0x08000000,
-		ActionGetCategories	 = 0x10000000,
-		ActionGetOldTransactions = 0x20000000,
-		UnknownAction		 = 0x40000000
+		ActionCancel                  = 1,
+		ActionGetDepends              = 2,
+		ActionGetDetails              = 3,
+		ActionGetFiles                = 4,
+		ActionGetPackages             = 5,
+		ActionGetRepoList             = 6,
+		ActionGetRequires             = 7,
+		ActionGetUpdateDetail         = 8,
+		ActionGetUpdates              = 9,
+		ActionInstallFiles            = 10,
+		ActionInstallPackages         = 11,
+		ActionInstallSignature        = 12,
+		ActionRefreshCache            = 13,
+		ActionRemovePackages          = 14,
+		ActionRepoEnable              = 15,
+		ActionRepoSetData             = 16,
+		ActionResolve                 = 17,
+		ActionRollback                = 18,
+		ActionSearchDetails           = 19,
+		ActionSearchFile              = 20,
+		ActionSearchGroup             = 21,
+		ActionSearchName              = 22,
+		ActionUpdatePackages          = 23,
+		ActionUpdateSystem            = 24,
+		ActionWhatProvides            = 25,
+		ActionAcceptEula              = 26,
+		ActionDownloadPackages        = 27,
+		ActionGetDistroUpgrades       = 28,
+		ActionGetCategories	          = 29,
+		ActionGetOldTransactions      = 30,
+		ActionSimulateInstallFiles    = 31,
+		ActionSimulateInstallPackages = 32,
+		ActionSimulateRemovePackages  = 33,
+		ActionSimulateUpdatePackages  = 34,
+		UnknownAction		          = 35
 	} Action;
-	Q_DECLARE_FLAGS(Actions, Action);
+	typedef Bitfield Actions;
 
 	/**
 	 * Returns all the actions supported by the current backend
@@ -708,6 +713,46 @@ public:
 	Package* searchFromDesktopFile(const QString& path);
 
 	/**
+	 * \brief Simulates an installation of \p files.
+	 *
+	 * You should call this method before installing \p files
+	 * \note: This method might emit packages with INSTALLING, REMOVING, UPDATING,
+	 *        REINSTALLING or OBSOLETING status.
+	 */
+	Transaction* simulateInstallFiles(const QStringList& files);
+	Transaction* simulateInstallFile(const QString& file);
+
+	/**
+	 * \brief Simulates an installation of \p packages.
+	 *
+	 * You should call this method before installing \p packages
+	 * \note: This method might emit packages with INSTALLING, REMOVING, UPDATING,
+	 *        REINSTALLING or OBSOLETING status.
+	 */
+	Transaction* simulateInstallPackages(const QList<Package*>& packages);
+	Transaction* simulateInstallPackage(Package* package);
+
+	/**
+	 * \brief Simulates a removal of \p packages.
+	 *
+	 * You should call this method before removing \p packages
+	 * \note: This method might emit packages with INSTALLING, REMOVING, UPDATING,
+	 *        REINSTALLING or OBSOLETING status.
+	 */
+	Transaction* simulateRemovePackages(const QList<Package*>& packages);
+	Transaction* simulateRemovePackage(Package* package);
+
+	/**
+	 * \brief Simulates an update of \p packages.
+	 *
+	 * You should call this method before updating \p packages
+	 * \note: This method might emit packages with INSTALLING, REMOVING, UPDATING,
+	 *        REINSTALLING or OBSOLETING status.
+	 */
+	Transaction* simulateUpdatePackages(const QList<Package*>& packages);
+	Transaction* simulateUpdatePackage(Package* package);
+
+	/**
 	 * Update the given \p packages
 	 */
 	Transaction* updatePackages(bool only_trusted, const QList<Package*>& packages);
@@ -772,7 +817,6 @@ private:
 	void setLastError (DaemonError e);
 	void setTransactionError (Transaction* t, DaemonError e);
 };
-Q_DECLARE_OPERATORS_FOR_FLAGS(Client::Actions)
 Q_DECLARE_OPERATORS_FOR_FLAGS(Client::Filters)
 
 } // End namespace PackageKit
diff --git a/lib/packagekit-qt/src/transactionproxy.h b/lib/packagekit-qt/src/transactionproxy.h
index 68e9a33..015091a 100644
--- a/lib/packagekit-qt/src/transactionproxy.h
+++ b/lib/packagekit-qt/src/transactionproxy.h
@@ -277,6 +277,34 @@ public Q_SLOTS: // METHODS
         return callWithArgumentList(QDBus::Block, QLatin1String("SetLocale"), argumentList);
     }
 
+    inline QDBusReply<void> SimulateInstallFiles(const QStringList &full_paths)
+    {
+        QList<QVariant> argumentList;
+        argumentList << qVariantFromValue(full_paths);
+        return callWithArgumentList(QDBus::Block, QLatin1String("SimulateInstallFiles"), argumentList);
+    }
+
+    inline QDBusReply<void> SimulateInstallPackages(const QStringList &package_ids)
+    {
+        QList<QVariant> argumentList;
+        argumentList << qVariantFromValue(package_ids);
+        return callWithArgumentList(QDBus::Block, QLatin1String("SimulateInstallPackages"), argumentList);
+    }
+
+    inline QDBusReply<void> SimulateRemovePackages(const QStringList &package_ids)
+    {
+        QList<QVariant> argumentList;
+        argumentList << qVariantFromValue(package_ids);
+        return callWithArgumentList(QDBus::Block, QLatin1String("SimulateRemovePackages"), argumentList);
+    }
+
+    inline QDBusReply<void> SimulateUpdatePackages(const QStringList &package_ids)
+    {
+        QList<QVariant> argumentList;
+        argumentList << qVariantFromValue(package_ids);
+        return callWithArgumentList(QDBus::Block, QLatin1String("SimulateUpdatePackages"), argumentList);
+    }
+
     inline QDBusReply<void> UpdatePackages(bool only_trusted, const QStringList &package_ids)
     {
         QList<QVariant> argumentList;
@@ -287,7 +315,7 @@ public Q_SLOTS: // METHODS
     inline QDBusReply<void> UpdateSystem(bool only_trusted)
     {
         QList<QVariant> argumentList;
-		argumentList << qVariantFromValue (only_trusted);
+        argumentList << qVariantFromValue (only_trusted);
         return callWithArgumentList(QDBus::Block, QLatin1String("UpdateSystem"), argumentList);
     }
 
commit 824784aef04046f8aace9512e0d8b5e6511439e3
Author: Anders F Bjorklund <afb at users.sourceforge.net>
Date:   Thu Aug 27 22:34:14 2009 +0200

    smart: implement only_trusted (hughsie's FIXMEs)

diff --git a/backends/smart/smartBackend.py b/backends/smart/smartBackend.py
index 1f08d5c..bb54b25 100755
--- a/backends/smart/smartBackend.py
+++ b/backends/smart/smartBackend.py
@@ -168,9 +168,10 @@ class PackageKitSmartBackend(PackageKitBaseBackend):
 
     @needs_cache
     def install_packages(self, only_trusted, packageids):
-
-        # FIXME: use only_trusted
-
+        if only_trusted:
+            self.error(ERROR_MISSING_GPG_SIGNATURE, "Trusted packages not available.")
+            return
+        end
         packages = []
         for packageid in packageids:
             ratio, results, suggestions = self._search_packageid(packageid)
@@ -204,6 +205,10 @@ class PackageKitSmartBackend(PackageKitBaseBackend):
 
     @needs_cache
     def install_files(self, only_trusted, paths):
+        if only_trusted:
+            self.error(ERROR_MISSING_GPG_SIGNATURE, "Trusted packages not available.")
+            return
+        end
         for path in paths:
             self.ctrl.addFileChannel(path)
         self.ctrl.reloadChannels()
@@ -264,9 +269,10 @@ class PackageKitSmartBackend(PackageKitBaseBackend):
 
     @needs_cache
     def update_packages(self, only_trusted, packageids):
-
-        # FIXME: use only_trusted
-
+        if only_trusted:
+            self.error(ERROR_MISSING_GPG_SIGNATURE, "Trusted packages not available.")
+            return
+        end
         packages = []
         for packageid in packageids:
             ratio, results, suggestions = self._search_packageid(packageid)
@@ -315,9 +321,10 @@ class PackageKitSmartBackend(PackageKitBaseBackend):
 
     @needs_cache
     def update_system(self, only_trusted):
-
-        # FIXME: use only_trusted
-
+        if only_trusted:
+            self.error(ERROR_MISSING_GPG_SIGNATURE, "Trusted packages not available.")
+            return
+        end
         self.status(STATUS_INFO)
         cache = self.ctrl.getCache()
 
commit 5e1191e87ecfd525cc5975e18501efa7d00f83df
Author: Richard Hughes <richard at hughsie.com>
Date:   Thu Aug 27 16:52:54 2009 +0100

    glib2: disable the property setting code to workaround a dbus-glib issue

diff --git a/lib/packagekit-glib2/pk-control.c b/lib/packagekit-glib2/pk-control.c
index bd26f86..c2a7e90 100644
--- a/lib/packagekit-glib2/pk-control.c
+++ b/lib/packagekit-glib2/pk-control.c
@@ -65,6 +65,7 @@ static void     pk_control_finalize	(GObject     *object);
  **/
 struct _PkControlPrivate
 {
+	DBusGProxyCall		*call;
 	DBusGProxy		*proxy;
 	DBusGConnection		*connection;
 	gboolean		 version_major;
@@ -257,6 +258,9 @@ pk_control_set_properties_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkControl
 	gboolean ret;
 	GHashTable *hash;
 
+	/* finished call */
+	control->priv->call = NULL;
+
 	/* we've sent this async */
 	egg_debug ("got reply to request");
 
@@ -297,10 +301,10 @@ pk_control_set_properties (PkControl *control)
 	}
 
 	/* does an async call, so properties may not be set until some time after the object is setup */
-	dbus_g_proxy_begin_call (proxy, "GetAll",
-			         (DBusGProxyCallNotify) pk_control_set_properties_cb, control, NULL,
-				 G_TYPE_STRING, "org.freedesktop.PackageKit",
-			         G_TYPE_INVALID);
+	control->priv->call = dbus_g_proxy_begin_call (proxy, "GetAll",
+						       (DBusGProxyCallNotify) pk_control_set_properties_cb, control, NULL,
+						       G_TYPE_STRING, "org.freedesktop.PackageKit",
+					               G_TYPE_INVALID);
 }
 
 /**
@@ -404,6 +408,7 @@ pk_control_init (PkControl *control)
 	GError *error = NULL;
 
 	control->priv = PK_CONTROL_GET_PRIVATE (control);
+	control->priv->call = NULL;
 
 	/* check dbus connections, exit if not valid */
 	control->priv->connection = dbus_g_bus_get (DBUS_BUS_SYSTEM, &error);
@@ -428,7 +433,7 @@ pk_control_init (PkControl *control)
 	dbus_g_proxy_set_default_timeout (control->priv->proxy, INT_MAX);
 
 	/* get properties async if they exist */
-	pk_control_set_properties (control);
+if (0)	pk_control_set_properties (control);
 }
 
 /**
@@ -441,6 +446,12 @@ pk_control_finalize (GObject *object)
 	PkControl *control = PK_CONTROL (object);
 	PkControlPrivate *priv = control->priv;
 
+	/* if we have a request in flight, cancel it */
+	if (control->priv->call != NULL) {
+		egg_warning ("cancel in flight call");
+		dbus_g_proxy_cancel_call (control->priv->proxy, control->priv->call);
+	}
+
 	g_object_unref (G_OBJECT (priv->proxy));
 
 	G_OBJECT_CLASS (pk_control_parent_class)->finalize (object);
@@ -504,6 +515,7 @@ pk_control_test (EggTest *test)
 	egg_test_loop_wait (test, 5000);
 	egg_test_success (test, "got tid in %i", egg_test_elapsed (test));
 
+#if 0
 	/************************************************************/
 	egg_test_title (test, "version major");
 	g_object_get (control, "version-major", &version, NULL);
@@ -518,6 +530,7 @@ pk_control_test (EggTest *test)
 	egg_test_title (test, "version micro");
 	g_object_get (control, "version-micro", &version, NULL);
 	egg_test_assert (test, (version == PK_MICRO_VERSION));
+#endif
 
 	g_object_unref (control);
 out:
commit 92553352df4089f696e0f72eafb4e04442a09de7
Author: Richard Hughes <richard at hughsie.com>
Date:   Thu Aug 27 16:52:19 2009 +0100

    glib2: test the GetUpdates functionality

diff --git a/lib/packagekit-glib2/pk-client.c b/lib/packagekit-glib2/pk-client.c
index 1113d01..50f142b 100644
--- a/lib/packagekit-glib2/pk-client.c
+++ b/lib/packagekit-glib2/pk-client.c
@@ -2358,6 +2358,43 @@ pk_client_test_get_details_cb (GObject *object, GAsyncResult *res, EggTest *test
 	egg_test_loop_quit (test);
 }
 
+static void
+pk_client_test_get_updates_cb (GObject *object, GAsyncResult *res, EggTest *test)
+{
+	PkClient *client = PK_CLIENT (object);
+	GError *error = NULL;
+	PkResults *results = NULL;
+	PkExitEnum exit_enum;
+	PkPackageSack *sack;
+	guint size;
+
+	/* get the results */
+	results = pk_client_generic_finish (client, res, &error);
+	if (results == NULL) {
+		egg_test_failed (test, "failed to resolve: %s", error->message);
+		g_error_free (error);
+		return;
+	}
+
+	exit_enum = pk_results_get_exit_code (results);
+	if (exit_enum != PK_EXIT_ENUM_SUCCESS)
+		egg_test_failed (test, "failed to resolve success: %s", pk_exit_enum_to_text (exit_enum));
+
+	sack = pk_results_get_package_sack (results);
+	if (sack == NULL)
+		egg_test_failed (test, "no details!");
+
+	/* check size */
+	size = pk_package_sack_get_size (sack);
+	if (size != 3)
+		egg_test_failed (test, "invalid number of updates: %i", size);
+
+	g_object_unref (sack);
+
+	egg_debug ("results exit enum = %s", pk_exit_enum_to_text (exit_enum));
+	egg_test_loop_quit (test);
+}
+
 static guint _progress_cb = 0;
 static guint _status_cb = 0;
 //static guint _package_cb = 0;
@@ -2454,6 +2491,27 @@ pk_client_test (EggTest *test)
 	else
 		egg_test_failed (test, "got %i updates", _status_cb);
 
+	/* reset */
+	_progress_cb = 0;
+	_status_cb = 0;
+//	_package_cb = 0;
+
+	/************************************************************/
+	egg_test_title (test, "get updates");
+	pk_client_get_updates_async (client, pk_bitfield_value (PK_FILTER_ENUM_NONE), NULL,
+				     (PkClientProgressCallback) pk_client_test_progress_cb,
+				     (PkClientStatusCallback) pk_client_test_status_cb,
+				     (GAsyncReadyCallback) pk_client_test_get_updates_cb, test);
+	egg_test_loop_wait (test, 15000);
+	egg_test_success (test, "got updates in %i", egg_test_elapsed (test));
+
+	/************************************************************/
+	egg_test_title (test, "got status updates");
+	if (_status_cb > 0)
+		egg_test_success (test, NULL);
+	else
+		egg_test_failed (test, "got %i updates", _status_cb);
+
 	g_object_unref (client);
 
 	egg_test_end (test);
commit b92e29aef57d1341ec4cc352e37067344ae815b9
Author: Richard Hughes <richard at hughsie.com>
Date:   Thu Aug 27 12:27:27 2009 +0100

    glib2: add all the daemon methods for the new client calls

diff --git a/lib/packagekit-glib2/pk-client.c b/lib/packagekit-glib2/pk-client.c
index 20ab4d3..1113d01 100644
--- a/lib/packagekit-glib2/pk-client.c
+++ b/lib/packagekit-glib2/pk-client.c
@@ -470,6 +470,7 @@ pk_client_get_tid_cb (GObject *object, GAsyncResult *res, PkClientState *state)
 	GError *error = NULL;
 	const gchar *tid = NULL;
 	gchar *filters_text = NULL;
+	const gchar *enum_text;
 
 	tid = pk_control_get_tid_finish (control, res, &error);
 	if (tid == NULL) {
@@ -539,6 +540,149 @@ pk_client_get_tid_cb (GObject *object, GAsyncResult *res, PkClientState *state)
 						       (DBusGProxyCallNotify) pk_client_method_cb, state, NULL,
 						       G_TYPE_STRV, state->package_ids,
 						       G_TYPE_INVALID);
+	} else if (state->role == PK_ROLE_ENUM_DOWNLOAD_PACKAGES) {
+		state->call = dbus_g_proxy_begin_call (state->proxy, "DownloadPackages",
+						       (DBusGProxyCallNotify) pk_client_method_cb, state, NULL,
+						       G_TYPE_STRV, state->package_ids,
+						       G_TYPE_STRING, state->directory,
+						       G_TYPE_INVALID);
+	} else if (state->role == PK_ROLE_ENUM_GET_UPDATES) {
+		filters_text = pk_filter_bitfield_to_text (state->filters);
+		state->call = dbus_g_proxy_begin_call (state->proxy, "GetUpdates",
+						       (DBusGProxyCallNotify) pk_client_method_cb, state, NULL,
+						       G_TYPE_STRING, filters_text,
+						       G_TYPE_INVALID);
+	} else if (state->role == PK_ROLE_ENUM_UPDATE_SYSTEM) {
+		state->call = dbus_g_proxy_begin_call (state->proxy, "UpdateSystem",
+						       (DBusGProxyCallNotify) pk_client_method_cb, state, NULL,
+						       G_TYPE_BOOLEAN, state->only_trusted,
+						       G_TYPE_INVALID);
+	} else if (state->role == PK_ROLE_ENUM_GET_DEPENDS) {
+		filters_text = pk_filter_bitfield_to_text (state->filters);
+		state->call = dbus_g_proxy_begin_call (state->proxy, "GetDepends",
+						       (DBusGProxyCallNotify) pk_client_method_cb, state, NULL,
+						       G_TYPE_STRING, filters_text,
+						       G_TYPE_STRV, state->package_ids,
+						       G_TYPE_BOOLEAN, state->recursive,
+						       G_TYPE_INVALID);
+	} else if (state->role == PK_ROLE_ENUM_GET_PACKAGES) {
+		filters_text = pk_filter_bitfield_to_text (state->filters);
+		state->call = dbus_g_proxy_begin_call (state->proxy, "GetPackages",
+						       (DBusGProxyCallNotify) pk_client_method_cb, state, NULL,
+						       G_TYPE_STRING, filters_text,
+						       G_TYPE_INVALID);
+	} else if (state->role == PK_ROLE_ENUM_GET_REQUIRES) {
+		filters_text = pk_filter_bitfield_to_text (state->filters);
+		state->call = dbus_g_proxy_begin_call (state->proxy, "GetRequires",
+						       (DBusGProxyCallNotify) pk_client_method_cb, state, NULL,
+						       G_TYPE_STRING, filters_text,
+						       G_TYPE_STRV, state->package_ids,
+						       G_TYPE_BOOLEAN, state->recursive,
+						       G_TYPE_INVALID);
+	} else if (state->role == PK_ROLE_ENUM_WHAT_PROVIDES) {
+		filters_text = pk_filter_bitfield_to_text (state->filters);
+		enum_text = pk_provides_enum_to_text (state->provides);
+		state->call = dbus_g_proxy_begin_call (state->proxy, "WhatProvides",
+						       (DBusGProxyCallNotify) pk_client_method_cb, state, NULL,
+						       G_TYPE_STRING, filters_text,
+						       G_TYPE_STRING, enum_text,
+						       G_TYPE_STRING, state->search,
+						       G_TYPE_INVALID);
+	} else if (state->role == PK_ROLE_ENUM_GET_DISTRO_UPGRADES) {
+		state->call = dbus_g_proxy_begin_call (state->proxy, "GetDistroUpgrades",
+						       (DBusGProxyCallNotify) pk_client_method_cb, state, NULL,
+						       G_TYPE_INVALID);
+	} else if (state->role == PK_ROLE_ENUM_GET_FILES) {
+		state->call = dbus_g_proxy_begin_call (state->proxy, "GetFiles",
+						       (DBusGProxyCallNotify) pk_client_method_cb, state, NULL,
+						       G_TYPE_STRV, state->package_ids,
+						       G_TYPE_INVALID);
+	} else if (state->role == PK_ROLE_ENUM_GET_CATEGORIES) {
+		state->call = dbus_g_proxy_begin_call (state->proxy, "GetCategories",
+						       (DBusGProxyCallNotify) pk_client_method_cb, state, NULL,
+						       G_TYPE_INVALID);
+	} else if (state->role == PK_ROLE_ENUM_REMOVE_PACKAGES) {
+		state->call = dbus_g_proxy_begin_call (state->proxy, "RemovePackages",
+						       (DBusGProxyCallNotify) pk_client_method_cb, state, NULL,
+						       G_TYPE_STRV, state->package_ids,
+						       G_TYPE_BOOLEAN, state->allow_deps,
+						       G_TYPE_BOOLEAN, state->autoremove,
+						       G_TYPE_INVALID);
+	} else if (state->role == PK_ROLE_ENUM_REFRESH_CACHE) {
+		state->call = dbus_g_proxy_begin_call (state->proxy, "RefreshCache",
+						       (DBusGProxyCallNotify) pk_client_method_cb, state, NULL,
+						       G_TYPE_BOOLEAN, state->force,
+						       G_TYPE_INVALID);
+	} else if (state->role == PK_ROLE_ENUM_INSTALL_PACKAGES) {
+		state->call = dbus_g_proxy_begin_call (state->proxy, "InstallPackages",
+						       (DBusGProxyCallNotify) pk_client_method_cb, state, NULL,
+						       G_TYPE_BOOLEAN, state->only_trusted,
+						       G_TYPE_STRV, state->package_ids,
+						       G_TYPE_INVALID);
+	} else if (state->role == PK_ROLE_ENUM_INSTALL_SIGNATURE) {
+		enum_text = pk_sig_type_enum_to_text (state->type);
+		state->call = dbus_g_proxy_begin_call (state->proxy, "InstallSignature",
+						       (DBusGProxyCallNotify) pk_client_method_cb, state, NULL,
+						       G_TYPE_STRING, enum_text,
+						       G_TYPE_STRING, state->key_id,
+						       G_TYPE_STRING, state->package_id,
+						       G_TYPE_INVALID);
+	} else if (state->role == PK_ROLE_ENUM_UPDATE_PACKAGES) {
+		state->call = dbus_g_proxy_begin_call (state->proxy, "UpdatePackages",
+						       (DBusGProxyCallNotify) pk_client_method_cb, state, NULL,
+						       G_TYPE_BOOLEAN, state->only_trusted,
+						       G_TYPE_STRV, state->package_ids,
+						       G_TYPE_INVALID);
+	} else if (state->role == PK_ROLE_ENUM_INSTALL_FILES) {
+		state->call = dbus_g_proxy_begin_call (state->proxy, "InstallFiles",
+						       (DBusGProxyCallNotify) pk_client_method_cb, state, NULL,
+						       G_TYPE_BOOLEAN, state->only_trusted,
+						       G_TYPE_STRV, state->files,
+						       G_TYPE_INVALID);
+	} else if (state->role == PK_ROLE_ENUM_ACCEPT_EULA) {
+		state->call = dbus_g_proxy_begin_call (state->proxy, "AcceptEula",
+						       (DBusGProxyCallNotify) pk_client_method_cb, state, NULL,
+						       G_TYPE_STRING, state->eula_id,
+						       G_TYPE_INVALID);
+	} else if (state->role == PK_ROLE_ENUM_GET_REPO_LIST) {
+		filters_text = pk_filter_bitfield_to_text (state->filters);
+		state->call = dbus_g_proxy_begin_call (state->proxy, "GetRepoList",
+						       (DBusGProxyCallNotify) pk_client_method_cb, state, NULL,
+						       G_TYPE_STRING, filters_text,
+						       G_TYPE_INVALID);
+	} else if (state->role == PK_ROLE_ENUM_REPO_ENABLE) {
+		state->call = dbus_g_proxy_begin_call (state->proxy, "RepoEnable",
+						       (DBusGProxyCallNotify) pk_client_method_cb, state, NULL,
+						       G_TYPE_STRING, state->repo_id,
+						       G_TYPE_BOOLEAN, state->enabled,
+						       G_TYPE_INVALID);
+	} else if (state->role == PK_ROLE_ENUM_REPO_SET_DATA) {
+		state->call = dbus_g_proxy_begin_call (state->proxy, "RepoSetData",
+						       (DBusGProxyCallNotify) pk_client_method_cb, state, NULL,
+						       G_TYPE_STRING, state->repo_id,
+						       G_TYPE_STRING, state->parameter,
+						       G_TYPE_STRING, state->value,
+						       G_TYPE_INVALID);
+	} else if (state->role == PK_ROLE_ENUM_SIMULATE_INSTALL_FILES) {
+		state->call = dbus_g_proxy_begin_call (state->proxy, "SimulateInstallFiles",
+						       (DBusGProxyCallNotify) pk_client_method_cb, state, NULL,
+						       G_TYPE_STRV, state->files,
+						       G_TYPE_INVALID);
+	} else if (state->role == PK_ROLE_ENUM_SIMULATE_INSTALL_PACKAGES) {
+		state->call = dbus_g_proxy_begin_call (state->proxy, "SimulateInstallPackages",
+						       (DBusGProxyCallNotify) pk_client_method_cb, state, NULL,
+						       G_TYPE_STRV, state->package_ids,
+						       G_TYPE_INVALID);
+	} else if (state->role == PK_ROLE_ENUM_SIMULATE_REMOVE_PACKAGES) {
+		state->call = dbus_g_proxy_begin_call (state->proxy, "SimulateRemovePackages",
+						       (DBusGProxyCallNotify) pk_client_method_cb, state, NULL,
+						       G_TYPE_STRV, state->package_ids,
+						       G_TYPE_INVALID);
+	} else if (state->role == PK_ROLE_ENUM_SIMULATE_UPDATE_PACKAGES) {
+		state->call = dbus_g_proxy_begin_call (state->proxy, "SimulateUpdatePackages",
+						       (DBusGProxyCallNotify) pk_client_method_cb, state, NULL,
+						       G_TYPE_STRV, state->package_ids,
+						       G_TYPE_INVALID);
 	} else {
 		g_assert_not_reached ();
 	}
commit f455d9ee74b0eed0a06bf1375887b7a7ff8b9da5
Merge: 7de6b04... 569ec78...
Author: Richard Hughes <richard at hughsie.com>
Date:   Thu Aug 27 12:00:04 2009 +0100

    Merge branch 'master' of git+ssh://git.packagekit.org/srv/git/PackageKit

commit 7de6b0417e85b94d00f05984951f882b937f8ff5
Author: Richard Hughes <richard at hughsie.com>
Date:   Thu Aug 27 11:59:01 2009 +0100

    glib2: add the rest of the client methods

diff --git a/lib/packagekit-glib2/pk-client.c b/lib/packagekit-glib2/pk-client.c
index 1be506b..20ab4d3 100644
--- a/lib/packagekit-glib2/pk-client.c
+++ b/lib/packagekit-glib2/pk-client.c
@@ -91,21 +91,37 @@ static guint signals [SIGNAL_LAST] = { 0 };
 G_DEFINE_TYPE (PkClient, pk_client, G_TYPE_OBJECT)
 
 typedef struct {
-	PkClient			*client;
+	DBusGProxyCall			*call;
+	DBusGProxy			*proxy;
+	gboolean			 allow_deps;
+	gboolean			 autoremove;
+	gboolean			 enabled;
+	gboolean			 force;
+	gboolean			 only_trusted;
+	gboolean			 recursive;
 	GCancellable			*cancellable;
-	gchar				*tid;
-	gchar				*search;
+	gchar				*directory;
+	gchar				*eula_id;
+	gchar				**files;
+	gchar				*key_id;
+	gchar				*package_id;
 	gchar				**package_ids;
+	gchar				*parameter;
+	gchar				*repo_id;
+	gchar				*search;
+	gchar				*tid;
+	gchar				*value;
+	gpointer			 user_data;
 	GSimpleAsyncResult		*res;
-	DBusGProxyCall			*call;
-	PkResults			*results;
-	DBusGProxy			*proxy;
 	PkBitfield			 filters;
+	PkClient			*client;
+	PkClientPackageCallback		 callback_package;
 	PkClientProgressCallback	 callback_progress;
 	PkClientStatusCallback		 callback_status;
-	PkClientPackageCallback		 callback_package;
-	gpointer			 user_data;
+	PkProvidesEnum			 provides;
+	PkResults			*results;
 	PkRoleEnum			 role;
+	PkSigTypeEnum			 type;
 } PkClientState;
 
 static void pk_client_finished_cb (DBusGProxy *proxy, const gchar *exit_text, guint runtime, PkClientState *state);
@@ -120,8 +136,16 @@ pk_client_state_finish (PkClientState *state, GError *error)
 	PkClientPrivate *priv;
 	priv = state->client->priv;
 
-	g_strfreev (state->package_ids);
+	g_free (state->directory);
+	g_free (state->eula_id);
+	g_free (state->key_id);
+	g_free (state->package_id);
+	g_free (state->parameter);
+	g_free (state->repo_id);
 	g_free (state->search);
+	g_free (state->value);
+	g_strfreev (state->files);
+	g_strfreev (state->package_ids);
 
 	if (state->client != NULL) {
 		g_object_remove_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
@@ -854,6 +878,1043 @@ pk_client_get_update_detail_async (PkClient *client, gchar **package_ids, GCance
 }
 
 /**
+ * pk_client_download_packages_async:
+ * @client: a valid #PkClient instance
+ * @cancellable: a #GCancellable or %NULL
+ * @callback_progress: the function to run when the progress changes
+ * @callback_status: the function to run when the status changes
+ * @callback_ready: the function to run on completion
+ * @user_data: the data to pass to @callback
+ *
+ * TODO
+ **/
+void
+pk_client_download_packages_async (PkClient *client, gchar **package_ids, const gchar *directory, GCancellable *cancellable,
+				   PkClientPackageCallback callback_package, PkClientProgressCallback callback_progress,
+				   PkClientStatusCallback callback_status, GAsyncReadyCallback callback_ready, gpointer user_data)
+{
+	GSimpleAsyncResult *res;
+	PkClientState *state;
+
+	g_return_if_fail (PK_IS_CLIENT (client));
+	g_return_if_fail (callback_ready != NULL);
+
+	res = g_simple_async_result_new (G_OBJECT (client), callback_ready, user_data, pk_client_download_packages_async);
+
+	/* save state */
+	state = g_slice_new0 (PkClientState);
+	state->role = PK_ROLE_ENUM_DOWNLOAD_PACKAGES;
+	state->res = g_object_ref (res);
+	state->cancellable = cancellable;
+	state->client = client;
+	state->package_ids = g_strdupv (package_ids);
+	state->directory = g_strdup (directory);
+	state->callback_package = callback_package;
+	state->callback_progress = callback_progress;
+	state->callback_status = callback_status;
+	state->user_data = user_data;
+	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
+
+	/* get tid */
+	pk_control_get_tid_async (client->priv->control, NULL, (GAsyncReadyCallback) pk_client_get_tid_cb, state);
+	g_object_unref (res);
+}
+
+
+/**
+ * pk_client_get_updates_async:
+ * @client: a valid #PkClient instance
+ * @cancellable: a #GCancellable or %NULL
+ * @callback_progress: the function to run when the progress changes
+ * @callback_status: the function to run when the status changes
+ * @callback_ready: the function to run on completion
+ * @user_data: the data to pass to @callback
+ *
+ * TODO
+ **/
+void
+pk_client_get_updates_async (PkClient *client, PkBitfield filters, GCancellable *cancellable,
+			     PkClientProgressCallback callback_progress, PkClientStatusCallback callback_status,
+			     GAsyncReadyCallback callback_ready, gpointer user_data)
+{
+	GSimpleAsyncResult *res;
+	PkClientState *state;
+
+	g_return_if_fail (PK_IS_CLIENT (client));
+	g_return_if_fail (callback_ready != NULL);
+
+	res = g_simple_async_result_new (G_OBJECT (client), callback_ready, user_data, pk_client_get_updates_async);
+
+	/* save state */
+	state = g_slice_new0 (PkClientState);
+	state->role = PK_ROLE_ENUM_GET_UPDATES;
+	state->res = g_object_ref (res);
+	state->cancellable = cancellable;
+	state->client = client;
+	state->filters = filters;
+	state->callback_progress = callback_progress;
+	state->callback_status = callback_status;
+	state->user_data = user_data;
+	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
+
+	/* get tid */
+	pk_control_get_tid_async (client->priv->control, NULL, (GAsyncReadyCallback) pk_client_get_tid_cb, state);
+	g_object_unref (res);
+}
+
+
+/**
+ * pk_client_update_system_async:
+ * @client: a valid #PkClient instance
+ * @cancellable: a #GCancellable or %NULL
+ * @callback_package: the function to run when the package changes
+ * @callback_progress: the function to run when the progress changes
+ * @callback_status: the function to run when the status changes
+ * @callback_ready: the function to run on completion
+ * @user_data: the data to pass to @callback
+ *
+ * TODO
+ **/
+void
+pk_client_update_system_async (PkClient *client, gboolean only_trusted, GCancellable *cancellable,
+			       PkClientPackageCallback callback_package, PkClientProgressCallback callback_progress,
+			       PkClientStatusCallback callback_status, GAsyncReadyCallback callback_ready, gpointer user_data)
+{
+	GSimpleAsyncResult *res;
+	PkClientState *state;
+
+	g_return_if_fail (PK_IS_CLIENT (client));
+	g_return_if_fail (callback_ready != NULL);
+
+	res = g_simple_async_result_new (G_OBJECT (client), callback_ready, user_data, pk_client_update_system_async);
+
+	/* save state */
+	state = g_slice_new0 (PkClientState);
+	state->role = PK_ROLE_ENUM_UPDATE_SYSTEM;
+	state->res = g_object_ref (res);
+	state->cancellable = cancellable;
+	state->client = client;
+	state->only_trusted = only_trusted;
+	state->callback_package = callback_package;
+	state->callback_progress = callback_progress;
+	state->callback_status = callback_status;
+	state->user_data = user_data;
+	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
+
+	/* get tid */
+	pk_control_get_tid_async (client->priv->control, NULL, (GAsyncReadyCallback) pk_client_get_tid_cb, state);
+	g_object_unref (res);
+}
+
+
+/**
+ * pk_client_get_depends_async:
+ * @client: a valid #PkClient instance
+ * @cancellable: a #GCancellable or %NULL
+ * @callback_progress: the function to run when the progress changes
+ * @callback_status: the function to run when the status changes
+ * @callback_ready: the function to run on completion
+ * @user_data: the data to pass to @callback
+ *
+ * TODO
+ **/
+void
+pk_client_get_depends_async (PkClient *client, PkBitfield filters, gchar **package_ids, gboolean recursive,
+			     GCancellable *cancellable, PkClientProgressCallback callback_progress,
+			     PkClientStatusCallback callback_status, GAsyncReadyCallback callback_ready, gpointer user_data)
+{
+	GSimpleAsyncResult *res;
+	PkClientState *state;
+
+	g_return_if_fail (PK_IS_CLIENT (client));
+	g_return_if_fail (callback_ready != NULL);
+
+	res = g_simple_async_result_new (G_OBJECT (client), callback_ready, user_data, pk_client_get_depends_async);
+
+	/* save state */
+	state = g_slice_new0 (PkClientState);
+	state->role = PK_ROLE_ENUM_GET_DEPENDS;
+	state->res = g_object_ref (res);
+	state->cancellable = cancellable;
+	state->client = client;
+	state->filters = filters;
+	state->recursive = recursive;
+	state->package_ids = g_strdupv (package_ids);
+	state->callback_progress = callback_progress;
+	state->callback_status = callback_status;
+	state->user_data = user_data;
+	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
+
+	/* get tid */
+	pk_control_get_tid_async (client->priv->control, NULL, (GAsyncReadyCallback) pk_client_get_tid_cb, state);
+	g_object_unref (res);
+}
+
+
+/**
+ * pk_client_get_packages_async:
+ * @client: a valid #PkClient instance
+ * @cancellable: a #GCancellable or %NULL
+ * @callback_progress: the function to run when the progress changes
+ * @callback_status: the function to run when the status changes
+ * @callback_ready: the function to run on completion
+ * @user_data: the data to pass to @callback
+ *
+ * TODO
+ **/
+void
+pk_client_get_packages_async (PkClient *client, PkBitfield filters, GCancellable *cancellable,
+			      PkClientProgressCallback callback_progress, PkClientStatusCallback callback_status,
+			      GAsyncReadyCallback callback_ready, gpointer user_data)
+{
+	GSimpleAsyncResult *res;
+	PkClientState *state;
+
+	g_return_if_fail (PK_IS_CLIENT (client));
+	g_return_if_fail (callback_ready != NULL);
+
+	res = g_simple_async_result_new (G_OBJECT (client), callback_ready, user_data, pk_client_get_packages_async);
+
+	/* save state */
+	state = g_slice_new0 (PkClientState);
+	state->role = PK_ROLE_ENUM_GET_PACKAGES;
+	state->res = g_object_ref (res);
+	state->cancellable = cancellable;
+	state->client = client;
+	state->filters = filters;
+	state->callback_progress = callback_progress;
+	state->callback_status = callback_status;
+	state->user_data = user_data;
+	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
+
+	/* get tid */
+	pk_control_get_tid_async (client->priv->control, NULL, (GAsyncReadyCallback) pk_client_get_tid_cb, state);
+	g_object_unref (res);
+}
+
+
+
+
+/**
+ * pk_client_get_requires_async:
+ * @client: a valid #PkClient instance
+ * @cancellable: a #GCancellable or %NULL
+ * @callback_progress: the function to run when the progress changes
+ * @callback_status: the function to run when the status changes
+ * @callback_ready: the function to run on completion
+ * @user_data: the data to pass to @callback
+ *
+ * TODO
+ **/
+void
+pk_client_get_requires_async (PkClient *client, PkBitfield filters, gchar **package_ids, gboolean recursive,
+			      GCancellable *cancellable, PkClientProgressCallback callback_progress,
+			      PkClientStatusCallback callback_status, GAsyncReadyCallback callback_ready, gpointer user_data)
+{
+	GSimpleAsyncResult *res;
+	PkClientState *state;
+
+	g_return_if_fail (PK_IS_CLIENT (client));
+	g_return_if_fail (callback_ready != NULL);
+
+	res = g_simple_async_result_new (G_OBJECT (client), callback_ready, user_data, pk_client_get_requires_async);
+
+	/* save state */
+	state = g_slice_new0 (PkClientState);
+	state->role = PK_ROLE_ENUM_GET_REQUIRES;
+	state->res = g_object_ref (res);
+	state->cancellable = cancellable;
+	state->client = client;
+	state->recursive = recursive;
+	state->filters = filters;
+	state->package_ids = g_strdupv (package_ids);
+	state->callback_progress = callback_progress;
+	state->callback_status = callback_status;
+	state->user_data = user_data;
+	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
+
+	/* get tid */
+	pk_control_get_tid_async (client->priv->control, NULL, (GAsyncReadyCallback) pk_client_get_tid_cb, state);
+	g_object_unref (res);
+}
+
+
+/**
+ * pk_client_what_provides_async:
+ * @client: a valid #PkClient instance
+ * @cancellable: a #GCancellable or %NULL
+ * @callback_progress: the function to run when the progress changes
+ * @callback_status: the function to run when the status changes
+ * @callback_ready: the function to run on completion
+ * @user_data: the data to pass to @callback
+ *
+ * TODO
+ **/
+void
+pk_client_what_provides_async (PkClient *client, PkBitfield filters, PkProvidesEnum provides, const gchar *search,
+			       GCancellable *cancellable, PkClientProgressCallback callback_progress,
+			       PkClientStatusCallback callback_status, GAsyncReadyCallback callback_ready, gpointer user_data)
+{
+	GSimpleAsyncResult *res;
+	PkClientState *state;
+
+	g_return_if_fail (PK_IS_CLIENT (client));
+	g_return_if_fail (callback_ready != NULL);
+
+	res = g_simple_async_result_new (G_OBJECT (client), callback_ready, user_data, pk_client_what_provides_async);
+
+	/* save state */
+	state = g_slice_new0 (PkClientState);
+	state->role = PK_ROLE_ENUM_WHAT_PROVIDES;
+	state->res = g_object_ref (res);
+	state->cancellable = cancellable;
+	state->client = client;
+	state->filters = filters;
+	state->provides = provides;
+	state->search = g_strdup (search);
+	state->callback_progress = callback_progress;
+	state->callback_status = callback_status;
+	state->user_data = user_data;
+	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
+
+	/* get tid */
+	pk_control_get_tid_async (client->priv->control, NULL, (GAsyncReadyCallback) pk_client_get_tid_cb, state);
+	g_object_unref (res);
+}
+
+
+/**
+ * pk_client_get_distro_upgrades_async:
+ * @client: a valid #PkClient instance
+ * @cancellable: a #GCancellable or %NULL
+ * @callback_progress: the function to run when the progress changes
+ * @callback_status: the function to run when the status changes
+ * @callback_ready: the function to run on completion
+ * @user_data: the data to pass to @callback
+ *
+ * TODO
+ **/
+void
+pk_client_get_distro_upgrades_async (PkClient *client, GCancellable *cancellable, PkClientProgressCallback callback_progress,
+				     PkClientStatusCallback callback_status, GAsyncReadyCallback callback_ready, gpointer user_data)
+{
+	GSimpleAsyncResult *res;
+	PkClientState *state;
+
+	g_return_if_fail (PK_IS_CLIENT (client));
+	g_return_if_fail (callback_ready != NULL);
+
+	res = g_simple_async_result_new (G_OBJECT (client), callback_ready, user_data, pk_client_get_distro_upgrades_async);
+
+	/* save state */
+	state = g_slice_new0 (PkClientState);
+	state->role = PK_ROLE_ENUM_GET_DISTRO_UPGRADES;
+	state->res = g_object_ref (res);
+	state->cancellable = cancellable;
+	state->client = client;
+	state->callback_progress = callback_progress;
+	state->callback_status = callback_status;
+	state->user_data = user_data;
+	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
+
+	/* get tid */
+	pk_control_get_tid_async (client->priv->control, NULL, (GAsyncReadyCallback) pk_client_get_tid_cb, state);
+	g_object_unref (res);
+}
+
+
+/**
+ * pk_client_get_files_async:
+ * @client: a valid #PkClient instance
+ * @cancellable: a #GCancellable or %NULL
+ * @callback_progress: the function to run when the progress changes
+ * @callback_status: the function to run when the status changes
+ * @callback_ready: the function to run on completion
+ * @user_data: the data to pass to @callback
+ *
+ * TODO
+ **/
+void
+pk_client_get_files_async (PkClient *client, gchar **package_ids, GCancellable *cancellable,
+			   PkClientProgressCallback callback_progress, PkClientStatusCallback callback_status,
+			   GAsyncReadyCallback callback_ready, gpointer user_data)
+{
+	GSimpleAsyncResult *res;
+	PkClientState *state;
+
+	g_return_if_fail (PK_IS_CLIENT (client));
+	g_return_if_fail (callback_ready != NULL);
+
+	res = g_simple_async_result_new (G_OBJECT (client), callback_ready, user_data, pk_client_get_files_async);
+
+	/* save state */
+	state = g_slice_new0 (PkClientState);
+	state->role = PK_ROLE_ENUM_GET_FILES;
+	state->res = g_object_ref (res);
+	state->cancellable = cancellable;
+	state->client = client;
+	state->package_ids = g_strdupv (package_ids);
+	state->callback_progress = callback_progress;
+	state->callback_status = callback_status;
+	state->user_data = user_data;
+	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
+
+	/* get tid */
+	pk_control_get_tid_async (client->priv->control, NULL, (GAsyncReadyCallback) pk_client_get_tid_cb, state);
+	g_object_unref (res);
+}
+
+
+/**
+ * pk_client_get_categories_async:
+ * @client: a valid #PkClient instance
+ * @cancellable: a #GCancellable or %NULL
+ * @callback_progress: the function to run when the progress changes
+ * @callback_status: the function to run when the status changes
+ * @callback_ready: the function to run on completion
+ * @user_data: the data to pass to @callback
+ *
+ * TODO
+ **/
+void
+pk_client_get_categories_async (PkClient *client, GCancellable *cancellable, PkClientProgressCallback callback_progress,
+				PkClientStatusCallback callback_status, GAsyncReadyCallback callback_ready, gpointer user_data)
+{
+	GSimpleAsyncResult *res;
+	PkClientState *state;
+
+	g_return_if_fail (PK_IS_CLIENT (client));
+	g_return_if_fail (callback_ready != NULL);
+
+	res = g_simple_async_result_new (G_OBJECT (client), callback_ready, user_data, pk_client_get_categories_async);
+
+	/* save state */
+	state = g_slice_new0 (PkClientState);
+	state->role = PK_ROLE_ENUM_GET_CATEGORIES;
+	state->res = g_object_ref (res);
+	state->cancellable = cancellable;
+	state->client = client;
+	state->callback_progress = callback_progress;
+	state->callback_status = callback_status;
+	state->user_data = user_data;
+	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
+
+	/* get tid */
+	pk_control_get_tid_async (client->priv->control, NULL, (GAsyncReadyCallback) pk_client_get_tid_cb, state);
+	g_object_unref (res);
+}
+
+
+/**
+ * pk_client_remove_packages_async:
+ * @client: a valid #PkClient instance
+ * @cancellable: a #GCancellable or %NULL
+ * @callback_package: the function to run when the package changes
+ * @callback_progress: the function to run when the progress changes
+ * @callback_status: the function to run when the status changes
+ * @callback_ready: the function to run on completion
+ * @user_data: the data to pass to @callback
+ *
+ * TODO
+ **/
+void
+pk_client_remove_packages_async (PkClient *client, gchar **package_ids, gboolean allow_deps, gboolean autoremove,
+				 GCancellable *cancellable, PkClientPackageCallback callback_package,
+				 PkClientProgressCallback callback_progress, PkClientStatusCallback callback_status,
+				 GAsyncReadyCallback callback_ready, gpointer user_data)
+{
+	GSimpleAsyncResult *res;
+	PkClientState *state;
+
+	g_return_if_fail (PK_IS_CLIENT (client));
+	g_return_if_fail (callback_ready != NULL);
+
+	res = g_simple_async_result_new (G_OBJECT (client), callback_ready, user_data, pk_client_remove_packages_async);
+
+	/* save state */
+	state = g_slice_new0 (PkClientState);
+	state->role = PK_ROLE_ENUM_REMOVE_PACKAGES;
+	state->res = g_object_ref (res);
+	state->cancellable = cancellable;
+	state->allow_deps = allow_deps;
+	state->autoremove = autoremove;
+	state->client = client;
+	state->package_ids = g_strdupv (package_ids);
+	state->callback_package = callback_package;
+	state->callback_progress = callback_progress;
+	state->callback_status = callback_status;
+	state->user_data = user_data;
+	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
+
+	/* get tid */
+	pk_control_get_tid_async (client->priv->control, NULL, (GAsyncReadyCallback) pk_client_get_tid_cb, state);
+	g_object_unref (res);
+}
+
+
+/**
+ * pk_client_refresh_cache_async:
+ * @client: a valid #PkClient instance
+ * @cancellable: a #GCancellable or %NULL
+ * @callback_progress: the function to run when the progress changes
+ * @callback_status: the function to run when the status changes
+ * @callback_ready: the function to run on completion
+ * @user_data: the data to pass to @callback
+ *
+ * TODO
+ **/
+void
+pk_client_refresh_cache_async (PkClient *client, gboolean force, GCancellable *cancellable,
+			       PkClientProgressCallback callback_progress, PkClientStatusCallback callback_status,
+			       GAsyncReadyCallback callback_ready, gpointer user_data)
+{
+	GSimpleAsyncResult *res;
+	PkClientState *state;
+
+	g_return_if_fail (PK_IS_CLIENT (client));
+	g_return_if_fail (callback_ready != NULL);
+
+	res = g_simple_async_result_new (G_OBJECT (client), callback_ready, user_data, pk_client_refresh_cache_async);
+
+	/* save state */
+	state = g_slice_new0 (PkClientState);
+	state->role = PK_ROLE_ENUM_REFRESH_CACHE;
+	state->res = g_object_ref (res);
+	state->cancellable = cancellable;
+	state->client = client;
+	state->force = force;
+	state->callback_progress = callback_progress;
+	state->callback_status = callback_status;
+	state->user_data = user_data;
+	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
+
+	/* get tid */
+	pk_control_get_tid_async (client->priv->control, NULL, (GAsyncReadyCallback) pk_client_get_tid_cb, state);
+	g_object_unref (res);
+}
+
+
+/**
+ * pk_client_install_packages_async:
+ * @client: a valid #PkClient instance
+ * @cancellable: a #GCancellable or %NULL
+ * @callback_package: the function to run when the package changes
+ * @callback_progress: the function to run when the progress changes
+ * @callback_status: the function to run when the status changes
+ * @callback_ready: the function to run on completion
+ * @user_data: the data to pass to @callback
+ *
+ * TODO
+ **/
+void
+pk_client_install_packages_async (PkClient *client, gboolean only_trusted, gchar **package_ids,
+				  GCancellable *cancellable, PkClientPackageCallback callback_package,
+				  PkClientProgressCallback callback_progress, PkClientStatusCallback callback_status,
+				  GAsyncReadyCallback callback_ready, gpointer user_data)
+{
+	GSimpleAsyncResult *res;
+	PkClientState *state;
+
+	g_return_if_fail (PK_IS_CLIENT (client));
+	g_return_if_fail (callback_ready != NULL);
+
+	res = g_simple_async_result_new (G_OBJECT (client), callback_ready, user_data, pk_client_install_packages_async);
+
+	/* save state */
+	state = g_slice_new0 (PkClientState);
+	state->role = PK_ROLE_ENUM_INSTALL_PACKAGES;
+	state->res = g_object_ref (res);
+	state->cancellable = cancellable;
+	state->client = client;
+	state->only_trusted = only_trusted;
+	state->package_ids = g_strdupv (package_ids);
+	state->callback_package = callback_package;
+	state->callback_progress = callback_progress;
+	state->callback_status = callback_status;
+	state->user_data = user_data;
+	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
+
+	/* get tid */
+	pk_control_get_tid_async (client->priv->control, NULL, (GAsyncReadyCallback) pk_client_get_tid_cb, state);
+	g_object_unref (res);
+}
+
+
+/**
+ * pk_client_install_signature_async:
+ * @client: a valid #PkClient instance
+ * @cancellable: a #GCancellable or %NULL
+ * @callback_progress: the function to run when the progress changes
+ * @callback_status: the function to run when the status changes
+ * @callback_ready: the function to run on completion
+ * @user_data: the data to pass to @callback
+ *
+ * TODO
+ **/
+void
+pk_client_install_signature_async (PkClient *client, PkSigTypeEnum type, const gchar *key_id, const gchar *package_id,
+				   GCancellable *cancellable, PkClientProgressCallback callback_progress,
+				   PkClientStatusCallback callback_status, GAsyncReadyCallback callback_ready, gpointer user_data)
+{
+	GSimpleAsyncResult *res;
+	PkClientState *state;
+
+	g_return_if_fail (PK_IS_CLIENT (client));
+	g_return_if_fail (callback_ready != NULL);
+
+	res = g_simple_async_result_new (G_OBJECT (client), callback_ready, user_data, pk_client_install_signature_async);
+
+	/* save state */
+	state = g_slice_new0 (PkClientState);
+	state->role = PK_ROLE_ENUM_INSTALL_SIGNATURE;
+	state->res = g_object_ref (res);
+	state->cancellable = cancellable;
+	state->client = client;
+	state->type = type;
+	state->key_id = g_strdup (key_id);
+	state->package_id = g_strdup (package_id);
+	state->callback_progress = callback_progress;
+	state->callback_status = callback_status;
+	state->user_data = user_data;
+	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
+
+	/* get tid */
+	pk_control_get_tid_async (client->priv->control, NULL, (GAsyncReadyCallback) pk_client_get_tid_cb, state);
+	g_object_unref (res);
+}
+
+
+/**
+ * pk_client_update_packages_async:
+ * @client: a valid #PkClient instance
+ * @cancellable: a #GCancellable or %NULL
+ * @callback_package: the function to run when the package changes
+ * @callback_progress: the function to run when the progress changes
+ * @callback_status: the function to run when the status changes
+ * @callback_ready: the function to run on completion
+ * @user_data: the data to pass to @callback
+ *
+ * TODO
+ **/
+void
+pk_client_update_packages_async (PkClient *client, gboolean only_trusted, gchar **package_ids,
+				 GCancellable *cancellable, PkClientPackageCallback callback_package,
+				 PkClientProgressCallback callback_progress, PkClientStatusCallback callback_status,
+				 GAsyncReadyCallback callback_ready, gpointer user_data)
+{
+	GSimpleAsyncResult *res;
+	PkClientState *state;
+
+	g_return_if_fail (PK_IS_CLIENT (client));
+	g_return_if_fail (callback_ready != NULL);
+
+	res = g_simple_async_result_new (G_OBJECT (client), callback_ready, user_data, pk_client_update_packages_async);
+
+	/* save state */
+	state = g_slice_new0 (PkClientState);
+	state->role = PK_ROLE_ENUM_UPDATE_PACKAGES;
+	state->res = g_object_ref (res);
+	state->cancellable = cancellable;
+	state->client = client;
+	state->only_trusted = only_trusted;
+	state->package_ids = g_strdupv (package_ids);
+	state->callback_package = callback_package;
+	state->callback_progress = callback_progress;
+	state->callback_status = callback_status;
+	state->user_data = user_data;
+	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
+
+	/* get tid */
+	pk_control_get_tid_async (client->priv->control, NULL, (GAsyncReadyCallback) pk_client_get_tid_cb, state);
+	g_object_unref (res);
+}
+
+
+/**
+ * pk_client_install_files_async:
+ * @client: a valid #PkClient instance
+ * @cancellable: a #GCancellable or %NULL
+ * @callback_package: the function to run when the package changes
+ * @callback_progress: the function to run when the progress changes
+ * @callback_status: the function to run when the status changes
+ * @callback_ready: the function to run on completion
+ * @user_data: the data to pass to @callback
+ *
+ * TODO
+ **/
+void
+pk_client_install_files_async (PkClient *client, gboolean only_trusted, gchar **files,
+			       GCancellable *cancellable, PkClientPackageCallback callback_package,
+			       PkClientProgressCallback callback_progress, PkClientStatusCallback callback_status,
+			       GAsyncReadyCallback callback_ready, gpointer user_data)
+{
+	GSimpleAsyncResult *res;
+	PkClientState *state;
+
+	g_return_if_fail (PK_IS_CLIENT (client));
+	g_return_if_fail (callback_ready != NULL);
+
+	res = g_simple_async_result_new (G_OBJECT (client), callback_ready, user_data, pk_client_install_files_async);
+
+	/* save state */
+	state = g_slice_new0 (PkClientState);
+	state->role = PK_ROLE_ENUM_INSTALL_FILES;
+	state->res = g_object_ref (res);
+	state->cancellable = cancellable;
+	state->client = client;
+	state->only_trusted = only_trusted;
+	state->files = g_strdupv (files);
+	state->callback_package = callback_package;
+	state->callback_progress = callback_progress;
+	state->callback_status = callback_status;
+	state->user_data = user_data;
+	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
+
+	/* get tid */
+	pk_control_get_tid_async (client->priv->control, NULL, (GAsyncReadyCallback) pk_client_get_tid_cb, state);
+	g_object_unref (res);
+}
+
+
+/**
+ * pk_client_accept_eula_async:
+ * @client: a valid #PkClient instance
+ * @cancellable: a #GCancellable or %NULL
+ * @callback_progress: the function to run when the progress changes
+ * @callback_status: the function to run when the status changes
+ * @callback_ready: the function to run on completion
+ * @user_data: the data to pass to @callback
+ *
+ * TODO
+ **/
+void
+pk_client_accept_eula_async (PkClient *client, const gchar *eula_id, GCancellable *cancellable,
+			     PkClientProgressCallback callback_progress, PkClientStatusCallback callback_status,
+			     GAsyncReadyCallback callback_ready, gpointer user_data)
+{
+	GSimpleAsyncResult *res;
+	PkClientState *state;
+
+	g_return_if_fail (PK_IS_CLIENT (client));
+	g_return_if_fail (callback_ready != NULL);
+
+	res = g_simple_async_result_new (G_OBJECT (client), callback_ready, user_data, pk_client_accept_eula_async);
+
+	/* save state */
+	state = g_slice_new0 (PkClientState);
+	state->role = PK_ROLE_ENUM_ACCEPT_EULA;
+	state->res = g_object_ref (res);
+	state->cancellable = cancellable;
+	state->client = client;
+	state->eula_id = g_strdup (eula_id);
+	state->callback_progress = callback_progress;
+	state->callback_status = callback_status;
+	state->user_data = user_data;
+	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
+
+	/* get tid */
+	pk_control_get_tid_async (client->priv->control, NULL, (GAsyncReadyCallback) pk_client_get_tid_cb, state);
+	g_object_unref (res);
+}
+
+
+/**
+ * pk_client_get_repo_list_async:
+ * @client: a valid #PkClient instance
+ * @cancellable: a #GCancellable or %NULL
+ * @callback_progress: the function to run when the progress changes
+ * @callback_status: the function to run when the status changes
+ * @callback_ready: the function to run on completion
+ * @user_data: the data to pass to @callback
+ *
+ * TODO
+ **/
+void
+pk_client_get_repo_list_async (PkClient *client, PkBitfield filters, GCancellable *cancellable,
+			       PkClientProgressCallback callback_progress, PkClientStatusCallback callback_status,
+			       GAsyncReadyCallback callback_ready, gpointer user_data)
+{
+	GSimpleAsyncResult *res;
+	PkClientState *state;
+
+	g_return_if_fail (PK_IS_CLIENT (client));
+	g_return_if_fail (callback_ready != NULL);
+
+	res = g_simple_async_result_new (G_OBJECT (client), callback_ready, user_data, pk_client_get_repo_list_async);
+
+	/* save state */
+	state = g_slice_new0 (PkClientState);
+	state->role = PK_ROLE_ENUM_GET_REPO_LIST;
+	state->res = g_object_ref (res);
+	state->cancellable = cancellable;
+	state->client = client;
+	state->filters = filters;
+	state->callback_progress = callback_progress;
+	state->callback_status = callback_status;
+	state->user_data = user_data;
+	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
+
+	/* get tid */
+	pk_control_get_tid_async (client->priv->control, NULL, (GAsyncReadyCallback) pk_client_get_tid_cb, state);
+	g_object_unref (res);
+}
+
+
+/**
+ * pk_client_repo_enable_async:
+ * @client: a valid #PkClient instance
+ * @cancellable: a #GCancellable or %NULL
+ * @callback_progress: the function to run when the progress changes
+ * @callback_status: the function to run when the status changes
+ * @callback_ready: the function to run on completion
+ * @user_data: the data to pass to @callback
+ *
+ * TODO
+ **/
+void
+pk_client_repo_enable_async (PkClient *client, const gchar *repo_id, gboolean enabled,
+			     GCancellable *cancellable, PkClientProgressCallback callback_progress,
+			     PkClientStatusCallback callback_status, GAsyncReadyCallback callback_ready, gpointer user_data)
+{
+	GSimpleAsyncResult *res;
+	PkClientState *state;
+
+	g_return_if_fail (PK_IS_CLIENT (client));
+	g_return_if_fail (callback_ready != NULL);
+
+	res = g_simple_async_result_new (G_OBJECT (client), callback_ready, user_data, pk_client_repo_enable_async);
+
+	/* save state */
+	state = g_slice_new0 (PkClientState);
+	state->role = PK_ROLE_ENUM_REPO_ENABLE;
+	state->res = g_object_ref (res);
+	state->cancellable = cancellable;
+	state->client = client;
+	state->enabled = enabled;
+	state->repo_id = g_strdup (repo_id);
+	state->callback_progress = callback_progress;
+	state->callback_status = callback_status;
+	state->user_data = user_data;
+	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
+
+	/* get tid */
+	pk_control_get_tid_async (client->priv->control, NULL, (GAsyncReadyCallback) pk_client_get_tid_cb, state);
+	g_object_unref (res);
+}
+
+
+/**
+ * pk_client_repo_set_data_async:
+ * @client: a valid #PkClient instance
+ * @cancellable: a #GCancellable or %NULL
+ * @callback_progress: the function to run when the progress changes
+ * @callback_status: the function to run when the status changes
+ * @callback_ready: the function to run on completion
+ * @user_data: the data to pass to @callback
+ *
+ * TODO
+ **/
+void
+pk_client_repo_set_data_async (PkClient *client, const gchar *repo_id, const gchar *parameter, const gchar *value,
+			       GCancellable *cancellable, PkClientProgressCallback callback_progress,
+			       PkClientStatusCallback callback_status, GAsyncReadyCallback callback_ready, gpointer user_data)
+{
+	GSimpleAsyncResult *res;
+	PkClientState *state;
+
+	g_return_if_fail (PK_IS_CLIENT (client));
+	g_return_if_fail (callback_ready != NULL);
+
+	res = g_simple_async_result_new (G_OBJECT (client), callback_ready, user_data, pk_client_repo_set_data_async);
+
+	/* save state */
+	state = g_slice_new0 (PkClientState);
+	state->role = PK_ROLE_ENUM_REPO_SET_DATA;
+	state->res = g_object_ref (res);
+	state->cancellable = cancellable;
+	state->client = client;
+	state->repo_id = g_strdup (repo_id);
+	state->parameter = g_strdup (parameter);
+	state->value = g_strdup (value);
+	state->callback_progress = callback_progress;
+	state->callback_status = callback_status;
+	state->user_data = user_data;
+	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
+
+	/* get tid */
+	pk_control_get_tid_async (client->priv->control, NULL, (GAsyncReadyCallback) pk_client_get_tid_cb, state);
+	g_object_unref (res);
+}
+
+
+/**
+ * pk_client_simulate_install_files_async:
+ * @client: a valid #PkClient instance
+ * @cancellable: a #GCancellable or %NULL
+ * @callback_progress: the function to run when the progress changes
+ * @callback_status: the function to run when the status changes
+ * @callback_ready: the function to run on completion
+ * @user_data: the data to pass to @callback
+ *
+ * TODO
+ **/
+void
+pk_client_simulate_install_files_async (PkClient *client, gchar **files, GCancellable *cancellable,
+					PkClientProgressCallback callback_progress, PkClientStatusCallback callback_status,
+					GAsyncReadyCallback callback_ready, gpointer user_data)
+{
+	GSimpleAsyncResult *res;
+	PkClientState *state;
+
+	g_return_if_fail (PK_IS_CLIENT (client));
+	g_return_if_fail (callback_ready != NULL);
+
+	res = g_simple_async_result_new (G_OBJECT (client), callback_ready, user_data, pk_client_simulate_install_files_async);
+
+	/* save state */
+	state = g_slice_new0 (PkClientState);
+	state->role = PK_ROLE_ENUM_SIMULATE_INSTALL_FILES;
+	state->res = g_object_ref (res);
+	state->cancellable = cancellable;
+	state->client = client;
+	state->files = g_strdupv (files);
+	state->callback_progress = callback_progress;
+	state->callback_status = callback_status;
+	state->user_data = user_data;
+	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
+
+	/* get tid */
+	pk_control_get_tid_async (client->priv->control, NULL, (GAsyncReadyCallback) pk_client_get_tid_cb, state);
+	g_object_unref (res);
+}
+
+
+/**
+ * pk_client_simulate_install_packages_async:
+ * @client: a valid #PkClient instance
+ * @cancellable: a #GCancellable or %NULL
+ * @callback_progress: the function to run when the progress changes
+ * @callback_status: the function to run when the status changes
+ * @callback_ready: the function to run on completion
+ * @user_data: the data to pass to @callback
+ *
+ * TODO
+ **/
+void
+pk_client_simulate_install_packages_async (PkClient *client, gchar **package_ids, GCancellable *cancellable,
+					   PkClientProgressCallback callback_progress, PkClientStatusCallback callback_status,
+					   GAsyncReadyCallback callback_ready, gpointer user_data)
+{
+	GSimpleAsyncResult *res;
+	PkClientState *state;
+
+	g_return_if_fail (PK_IS_CLIENT (client));
+	g_return_if_fail (callback_ready != NULL);
+
+	res = g_simple_async_result_new (G_OBJECT (client), callback_ready, user_data, pk_client_simulate_install_packages_async);
+
+	/* save state */
+	state = g_slice_new0 (PkClientState);
+	state->role = PK_ROLE_ENUM_SIMULATE_INSTALL_PACKAGES;
+	state->res = g_object_ref (res);
+	state->cancellable = cancellable;
+	state->client = client;
+	state->package_ids = g_strdupv (package_ids);
+	state->callback_progress = callback_progress;
+	state->callback_status = callback_status;
+	state->user_data = user_data;
+	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
+
+	/* get tid */
+	pk_control_get_tid_async (client->priv->control, NULL, (GAsyncReadyCallback) pk_client_get_tid_cb, state);
+	g_object_unref (res);
+}
+
+
+/**
+ * pk_client_simulate_remove_packages_async:
+ * @client: a valid #PkClient instance
+ * @cancellable: a #GCancellable or %NULL
+ * @callback_progress: the function to run when the progress changes
+ * @callback_status: the function to run when the status changes
+ * @callback_ready: the function to run on completion
+ * @user_data: the data to pass to @callback
+ *
+ * TODO
+ **/
+void
+pk_client_simulate_remove_packages_async (PkClient *client, gchar **package_ids, GCancellable *cancellable,
+					  PkClientProgressCallback callback_progress, PkClientStatusCallback callback_status,
+					  GAsyncReadyCallback callback_ready, gpointer user_data)
+{
+	GSimpleAsyncResult *res;
+	PkClientState *state;
+
+	g_return_if_fail (PK_IS_CLIENT (client));
+	g_return_if_fail (callback_ready != NULL);
+
+	res = g_simple_async_result_new (G_OBJECT (client), callback_ready, user_data, pk_client_simulate_remove_packages_async);
+
+	/* save state */
+	state = g_slice_new0 (PkClientState);
+	state->role = PK_ROLE_ENUM_SIMULATE_REMOVE_PACKAGES;
+	state->res = g_object_ref (res);
+	state->cancellable = cancellable;
+	state->client = client;
+	state->package_ids = g_strdupv (package_ids);
+	state->callback_progress = callback_progress;
+	state->callback_status = callback_status;
+	state->user_data = user_data;
+	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
+
+	/* get tid */
+	pk_control_get_tid_async (client->priv->control, NULL, (GAsyncReadyCallback) pk_client_get_tid_cb, state);
+	g_object_unref (res);
+}
+
+
+/**
+ * pk_client_simulate_update_packages_async:
+ * @client: a valid #PkClient instance
+ * @cancellable: a #GCancellable or %NULL
+ * @callback_progress: the function to run when the progress changes
+ * @callback_status: the function to run when the status changes
+ * @callback_ready: the function to run on completion
+ * @user_data: the data to pass to @callback
+ *
+ * TODO
+ **/
+void
+pk_client_simulate_update_packages_async (PkClient *client, gchar **package_ids, GCancellable *cancellable,
+					  PkClientProgressCallback callback_progress, PkClientStatusCallback callback_status,
+					  GAsyncReadyCallback callback_ready, gpointer user_data)
+{
+	GSimpleAsyncResult *res;
+	PkClientState *state;
+
+	g_return_if_fail (PK_IS_CLIENT (client));
+	g_return_if_fail (callback_ready != NULL);
+
+	res = g_simple_async_result_new (G_OBJECT (client), callback_ready, user_data, pk_client_simulate_update_packages_async);
+
+	/* save state */
+	state = g_slice_new0 (PkClientState);
+	state->role = PK_ROLE_ENUM_SIMULATE_UPDATE_PACKAGES;
+	state->res = g_object_ref (res);
+	state->cancellable = cancellable;
+	state->client = client;
+	state->package_ids = g_strdupv (package_ids);
+	state->callback_progress = callback_progress;
+	state->callback_status = callback_status;
+	state->user_data = user_data;
+	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
+
+	/* get tid */
+	pk_control_get_tid_async (client->priv->control, NULL, (GAsyncReadyCallback) pk_client_get_tid_cb, state);
+	g_object_unref (res);
+}
+
+/**
  * pk_client_get_property:
  **/
 static void
diff --git a/lib/packagekit-glib2/pk-client.h b/lib/packagekit-glib2/pk-client.h
index 693df95..5ab3064 100644
--- a/lib/packagekit-glib2/pk-client.h
+++ b/lib/packagekit-glib2/pk-client.h
@@ -150,7 +150,7 @@ void		 pk_client_get_update_detail_async	(PkClient		*client,
 							 GAsyncReadyCallback	 callback_ready,
 							 gpointer		 user_data);
 
-void		 pk_client_download_packages		(PkClient		*client,
+void		 pk_client_download_packages_async	(PkClient		*client,
 							 gchar			**package_ids,
 							 const gchar		*directory,
 							 GCancellable		*cancellable,
@@ -160,7 +160,7 @@ void		 pk_client_download_packages		(PkClient		*client,
 							 GAsyncReadyCallback	 callback_ready,
 							 gpointer		 user_data);
 
-void		 pk_client_get_updates			(PkClient		*client,
+void		 pk_client_get_updates_async		(PkClient		*client,
 							 PkBitfield		 filters,
 							 GCancellable		*cancellable,
 							 PkClientProgressCallback callback_progress,
@@ -168,7 +168,7 @@ void		 pk_client_get_updates			(PkClient		*client,
 							 GAsyncReadyCallback	 callback_ready,
 							 gpointer		 user_data);
 
-void		 pk_client_update_system		(PkClient		*client,
+void		 pk_client_update_system_async		(PkClient		*client,
 							 gboolean		 only_trusted,
 							 GCancellable		*cancellable,
 							 PkClientPackageCallback callback_package,
@@ -177,7 +177,7 @@ void		 pk_client_update_system		(PkClient		*client,
 							 GAsyncReadyCallback	 callback_ready,
 							 gpointer		 user_data);
 
-void		 pk_client_get_depends			(PkClient		*client,
+void		 pk_client_get_depends_async		(PkClient		*client,
 							 PkBitfield		 filters,
 							 gchar			**package_ids,
 							 gboolean		 recursive,
@@ -187,7 +187,7 @@ void		 pk_client_get_depends			(PkClient		*client,
 							 GAsyncReadyCallback	 callback_ready,
 							 gpointer		 user_data);
 
-void		 pk_client_get_packages			(PkClient		*client,
+void		 pk_client_get_packages_async		(PkClient		*client,
 							 PkBitfield		 filters,
 							 GCancellable		*cancellable,
 							 PkClientProgressCallback callback_progress,
@@ -195,15 +195,7 @@ void		 pk_client_get_packages			(PkClient		*client,
 							 GAsyncReadyCallback	 callback_ready,
 							 gpointer		 user_data);
 
-void		 pk_client_get_update_detail		(PkClient		*client,
-							 gchar			**package_ids,
-							 GCancellable		*cancellable,
-							 PkClientProgressCallback callback_progress,
-							 PkClientStatusCallback	 callback_status,
-							 GAsyncReadyCallback	 callback_ready,
-							 gpointer		 user_data);
-
-void		 pk_client_get_requires			(PkClient		*client,
+void		 pk_client_get_requires_async		(PkClient		*client,
 							 PkBitfield		 filters,
 							 gchar			**package_ids,
 							 gboolean		 recursive,
@@ -213,7 +205,7 @@ void		 pk_client_get_requires			(PkClient		*client,
 							 GAsyncReadyCallback	 callback_ready,
 							 gpointer		 user_data);
 
-void		 pk_client_what_provides		(PkClient		*client,
+void		 pk_client_what_provides_async		(PkClient		*client,
 							 PkBitfield		 filters,
 							 PkProvidesEnum		 provides,
 							 const gchar		*search,
@@ -223,22 +215,14 @@ void		 pk_client_what_provides		(PkClient		*client,
 							 GAsyncReadyCallback	 callback_ready,
 							 gpointer		 user_data);
 
-void		 pk_client_get_details			(PkClient		*client,
-							 gchar			**package_ids,
-							 GCancellable		*cancellable,
-							 PkClientProgressCallback callback_progress,
-							 PkClientStatusCallback	 callback_status,
-							 GAsyncReadyCallback	 callback_ready,
-							 gpointer		 user_data);
-
-void		 pk_client_get_distro_upgrades		(PkClient		*client,
+void		 pk_client_get_distro_upgrades_async	(PkClient		*client,
 							 GCancellable		*cancellable,
 							 PkClientProgressCallback callback_progress,
 							 PkClientStatusCallback	 callback_status,
 							 GAsyncReadyCallback	 callback_ready,
 							 gpointer		 user_data);
 
-void		 pk_client_get_files			(PkClient		*client,
+void		 pk_client_get_files_async		(PkClient		*client,
 							 gchar			**package_ids,
 							 GCancellable		*cancellable,
 							 PkClientProgressCallback callback_progress,
@@ -246,14 +230,14 @@ void		 pk_client_get_files			(PkClient		*client,
 							 GAsyncReadyCallback	 callback_ready,
 							 gpointer		 user_data);
 
-void		 pk_client_get_categories		(PkClient		*client,
+void		 pk_client_get_categories_async		(PkClient		*client,
 							 GCancellable		*cancellable,
 							 PkClientProgressCallback callback_progress,
 							 PkClientStatusCallback	 callback_status,
 							 GAsyncReadyCallback	 callback_ready,
 							 gpointer		 user_data);
 
-void		 pk_client_remove_packages		(PkClient		*client,
+void		 pk_client_remove_packages_async	(PkClient		*client,
 							 gchar			**package_ids,
 							 gboolean		 allow_deps,
 							 gboolean		 autoremove,
@@ -264,7 +248,7 @@ void		 pk_client_remove_packages		(PkClient		*client,
 							 GAsyncReadyCallback	 callback_ready,
 							 gpointer		 user_data);
 
-void		 pk_client_refresh_cache		(PkClient		*client,
+void		 pk_client_refresh_cache_async		(PkClient		*client,
 							 gboolean		 force,
 							 GCancellable		*cancellable,
 							 PkClientProgressCallback callback_progress,
@@ -272,7 +256,7 @@ void		 pk_client_refresh_cache		(PkClient		*client,
 							 GAsyncReadyCallback	 callback_ready,
 							 gpointer		 user_data);
 
-void		 pk_client_install_packages		(PkClient		*client,
+void		 pk_client_install_packages_async	(PkClient		*client,
 							 gboolean		 only_trusted,
 							 gchar			**package_ids,
 							 GCancellable		*cancellable,
@@ -282,7 +266,7 @@ void		 pk_client_install_packages		(PkClient		*client,
 							 GAsyncReadyCallback	 callback_ready,
 							 gpointer		 user_data);
 
-void		 pk_client_install_signature		(PkClient		*client,
+void		 pk_client_install_signature_async	(PkClient		*client,
 							 PkSigTypeEnum		 type,
 							 const gchar		*key_id,
 							 const gchar		*package_id,
@@ -292,7 +276,7 @@ void		 pk_client_install_signature		(PkClient		*client,
 							 GAsyncReadyCallback	 callback_ready,
 							 gpointer		 user_data);
 
-void		 pk_client_update_packages		(PkClient		*client,
+void		 pk_client_update_packages_async	(PkClient		*client,
 							 gboolean		 only_trusted,
 							 gchar			**package_ids,
 							 GCancellable		*cancellable,
@@ -302,9 +286,9 @@ void		 pk_client_update_packages		(PkClient		*client,
 							 GAsyncReadyCallback	 callback_ready,
 							 gpointer		 user_data);
 
-void		 pk_client_install_files		(PkClient		*client,
+void		 pk_client_install_files_async		(PkClient		*client,
 							 gboolean		 only_trusted,
-							 gchar			**files_rel,
+							 gchar			**files,
 							 GCancellable		*cancellable,
 							 PkClientPackageCallback callback_package,
 							 PkClientProgressCallback callback_progress,
@@ -312,7 +296,7 @@ void		 pk_client_install_files		(PkClient		*client,
 							 GAsyncReadyCallback	 callback_ready,
 							 gpointer		 user_data);
 
-void		 pk_client_accept_eula			(PkClient		*client,
+void		 pk_client_accept_eula_async		(PkClient		*client,
 							 const gchar		*eula_id,
 							 GCancellable		*cancellable,
 							 PkClientProgressCallback callback_progress,
@@ -320,7 +304,7 @@ void		 pk_client_accept_eula			(PkClient		*client,
 							 GAsyncReadyCallback	 callback_ready,
 							 gpointer		 user_data);
 
-void		 pk_client_get_repo_list		(PkClient		*client,
+void		 pk_client_get_repo_list_async		(PkClient		*client,
 							 PkBitfield		 filters,
 							 GCancellable		*cancellable,
 							 PkClientProgressCallback callback_progress,
@@ -328,7 +312,7 @@ void		 pk_client_get_repo_list		(PkClient		*client,
 							 GAsyncReadyCallback	 callback_ready,
 							 gpointer		 user_data);
 
-void		 pk_client_repo_enable			(PkClient		*client,
+void		 pk_client_repo_enable_async		(PkClient		*client,
 							 const gchar		*repo_id,
 							 gboolean		 enabled,
 							 GCancellable		*cancellable,
@@ -337,7 +321,7 @@ void		 pk_client_repo_enable			(PkClient		*client,
 							 GAsyncReadyCallback	 callback_ready,
 							 gpointer		 user_data);
 
-void		 pk_client_repo_set_data		(PkClient		*client,
+void		 pk_client_repo_set_data_async		(PkClient		*client,
 							 const gchar		*repo_id,
 							 const gchar		*parameter,
 							 const gchar		*value,
@@ -347,15 +331,15 @@ void		 pk_client_repo_set_data		(PkClient		*client,
 							 GAsyncReadyCallback	 callback_ready,
 							 gpointer		 user_data);
 
-void		 pk_client_simulate_install_files	(PkClient		*client,
-							 gchar			**files_rel,
+void		 pk_client_simulate_install_files_async	(PkClient		*client,
+							 gchar			**files,
 							 GCancellable		*cancellable,
 							 PkClientProgressCallback callback_progress,
 							 PkClientStatusCallback	 callback_status,
 							 GAsyncReadyCallback	 callback_ready,
 							 gpointer		 user_data);
 
-void		 pk_client_simulate_install_packages	(PkClient		*client,
+void		 pk_client_simulate_install_packages_async (PkClient		*client,
 							 gchar			**package_ids,
 							 GCancellable		*cancellable,
 							 PkClientProgressCallback callback_progress,
@@ -363,7 +347,7 @@ void		 pk_client_simulate_install_packages	(PkClient		*client,
 							 GAsyncReadyCallback	 callback_ready,
 							 gpointer		 user_data);
 
-void		 pk_client_simulate_remove_packages	(PkClient		*client,
+void		 pk_client_simulate_remove_packages_async (PkClient		*client,
 							 gchar			**package_ids,
 							 GCancellable		*cancellable,
 							 PkClientProgressCallback callback_progress,
@@ -371,7 +355,7 @@ void		 pk_client_simulate_remove_packages	(PkClient		*client,
 							 GAsyncReadyCallback	 callback_ready,
 							 gpointer		 user_data);
 
-void		 pk_client_simulate_update_packages	(PkClient		*client,
+void		 pk_client_simulate_update_packages_async (PkClient		*client,
 							 gchar			**package_ids,
 							 GCancellable		*cancellable,
 							 PkClientProgressCallback callback_progress,
commit 5d313e1d8133480ed94347207228a112b9d51592
Author: Richard Hughes <richard at hughsie.com>
Date:   Thu Aug 27 11:12:30 2009 +0100

    glib2: Add some more client prototypes

diff --git a/lib/packagekit-glib2/pk-client.h b/lib/packagekit-glib2/pk-client.h
index 9176047..693df95 100644
--- a/lib/packagekit-glib2/pk-client.h
+++ b/lib/packagekit-glib2/pk-client.h
@@ -150,7 +150,234 @@ void		 pk_client_get_update_detail_async	(PkClient		*client,
 							 GAsyncReadyCallback	 callback_ready,
 							 gpointer		 user_data);
 
-//							 PkClientPackageCallback callback_package,
+void		 pk_client_download_packages		(PkClient		*client,
+							 gchar			**package_ids,
+							 const gchar		*directory,
+							 GCancellable		*cancellable,
+							 PkClientPackageCallback callback_package,
+							 PkClientProgressCallback callback_progress,
+							 PkClientStatusCallback	 callback_status,
+							 GAsyncReadyCallback	 callback_ready,
+							 gpointer		 user_data);
+
+void		 pk_client_get_updates			(PkClient		*client,
+							 PkBitfield		 filters,
+							 GCancellable		*cancellable,
+							 PkClientProgressCallback callback_progress,
+							 PkClientStatusCallback	 callback_status,
+							 GAsyncReadyCallback	 callback_ready,
+							 gpointer		 user_data);
+
+void		 pk_client_update_system		(PkClient		*client,
+							 gboolean		 only_trusted,
+							 GCancellable		*cancellable,
+							 PkClientPackageCallback callback_package,
+							 PkClientProgressCallback callback_progress,
+							 PkClientStatusCallback	 callback_status,
+							 GAsyncReadyCallback	 callback_ready,
+							 gpointer		 user_data);
+
+void		 pk_client_get_depends			(PkClient		*client,
+							 PkBitfield		 filters,
+							 gchar			**package_ids,
+							 gboolean		 recursive,
+							 GCancellable		*cancellable,
+							 PkClientProgressCallback callback_progress,
+							 PkClientStatusCallback	 callback_status,
+							 GAsyncReadyCallback	 callback_ready,
+							 gpointer		 user_data);
+
+void		 pk_client_get_packages			(PkClient		*client,
+							 PkBitfield		 filters,
+							 GCancellable		*cancellable,
+							 PkClientProgressCallback callback_progress,
+							 PkClientStatusCallback	 callback_status,
+							 GAsyncReadyCallback	 callback_ready,
+							 gpointer		 user_data);
+
+void		 pk_client_get_update_detail		(PkClient		*client,
+							 gchar			**package_ids,
+							 GCancellable		*cancellable,
+							 PkClientProgressCallback callback_progress,
+							 PkClientStatusCallback	 callback_status,
+							 GAsyncReadyCallback	 callback_ready,
+							 gpointer		 user_data);
+
+void		 pk_client_get_requires			(PkClient		*client,
+							 PkBitfield		 filters,
+							 gchar			**package_ids,
+							 gboolean		 recursive,
+							 GCancellable		*cancellable,
+							 PkClientProgressCallback callback_progress,
+							 PkClientStatusCallback	 callback_status,
+							 GAsyncReadyCallback	 callback_ready,
+							 gpointer		 user_data);
+
+void		 pk_client_what_provides		(PkClient		*client,
+							 PkBitfield		 filters,
+							 PkProvidesEnum		 provides,
+							 const gchar		*search,
+							 GCancellable		*cancellable,
+							 PkClientProgressCallback callback_progress,
+							 PkClientStatusCallback	 callback_status,
+							 GAsyncReadyCallback	 callback_ready,
+							 gpointer		 user_data);
+
+void		 pk_client_get_details			(PkClient		*client,
+							 gchar			**package_ids,
+							 GCancellable		*cancellable,
+							 PkClientProgressCallback callback_progress,
+							 PkClientStatusCallback	 callback_status,
+							 GAsyncReadyCallback	 callback_ready,
+							 gpointer		 user_data);
+
+void		 pk_client_get_distro_upgrades		(PkClient		*client,
+							 GCancellable		*cancellable,
+							 PkClientProgressCallback callback_progress,
+							 PkClientStatusCallback	 callback_status,
+							 GAsyncReadyCallback	 callback_ready,
+							 gpointer		 user_data);
+
+void		 pk_client_get_files			(PkClient		*client,
+							 gchar			**package_ids,
+							 GCancellable		*cancellable,
+							 PkClientProgressCallback callback_progress,
+							 PkClientStatusCallback	 callback_status,
+							 GAsyncReadyCallback	 callback_ready,
+							 gpointer		 user_data);
+
+void		 pk_client_get_categories		(PkClient		*client,
+							 GCancellable		*cancellable,
+							 PkClientProgressCallback callback_progress,
+							 PkClientStatusCallback	 callback_status,
+							 GAsyncReadyCallback	 callback_ready,
+							 gpointer		 user_data);
+
+void		 pk_client_remove_packages		(PkClient		*client,
+							 gchar			**package_ids,
+							 gboolean		 allow_deps,
+							 gboolean		 autoremove,
+							 GCancellable		*cancellable,
+							 PkClientPackageCallback callback_package,
+							 PkClientProgressCallback callback_progress,
+							 PkClientStatusCallback	 callback_status,
+							 GAsyncReadyCallback	 callback_ready,
+							 gpointer		 user_data);
+
+void		 pk_client_refresh_cache		(PkClient		*client,
+							 gboolean		 force,
+							 GCancellable		*cancellable,
+							 PkClientProgressCallback callback_progress,
+							 PkClientStatusCallback	 callback_status,
+							 GAsyncReadyCallback	 callback_ready,
+							 gpointer		 user_data);
+
+void		 pk_client_install_packages		(PkClient		*client,
+							 gboolean		 only_trusted,
+							 gchar			**package_ids,
+							 GCancellable		*cancellable,
+							 PkClientPackageCallback callback_package,
+							 PkClientProgressCallback callback_progress,
+							 PkClientStatusCallback	 callback_status,
+							 GAsyncReadyCallback	 callback_ready,
+							 gpointer		 user_data);
+
+void		 pk_client_install_signature		(PkClient		*client,
+							 PkSigTypeEnum		 type,
+							 const gchar		*key_id,
+							 const gchar		*package_id,
+							 GCancellable		*cancellable,
+							 PkClientProgressCallback callback_progress,
+							 PkClientStatusCallback	 callback_status,
+							 GAsyncReadyCallback	 callback_ready,
+							 gpointer		 user_data);
+
+void		 pk_client_update_packages		(PkClient		*client,
+							 gboolean		 only_trusted,
+							 gchar			**package_ids,
+							 GCancellable		*cancellable,
+							 PkClientPackageCallback callback_package,
+							 PkClientProgressCallback callback_progress,
+							 PkClientStatusCallback	 callback_status,
+							 GAsyncReadyCallback	 callback_ready,
+							 gpointer		 user_data);
+
+void		 pk_client_install_files		(PkClient		*client,
+							 gboolean		 only_trusted,
+							 gchar			**files_rel,
+							 GCancellable		*cancellable,
+							 PkClientPackageCallback callback_package,
+							 PkClientProgressCallback callback_progress,
+							 PkClientStatusCallback	 callback_status,
+							 GAsyncReadyCallback	 callback_ready,
+							 gpointer		 user_data);
+
+void		 pk_client_accept_eula			(PkClient		*client,
+							 const gchar		*eula_id,
+							 GCancellable		*cancellable,
+							 PkClientProgressCallback callback_progress,
+							 PkClientStatusCallback	 callback_status,
+							 GAsyncReadyCallback	 callback_ready,
+							 gpointer		 user_data);
+
+void		 pk_client_get_repo_list		(PkClient		*client,
+							 PkBitfield		 filters,
+							 GCancellable		*cancellable,
+							 PkClientProgressCallback callback_progress,
+							 PkClientStatusCallback	 callback_status,
+							 GAsyncReadyCallback	 callback_ready,
+							 gpointer		 user_data);
+
+void		 pk_client_repo_enable			(PkClient		*client,
+							 const gchar		*repo_id,
+							 gboolean		 enabled,
+							 GCancellable		*cancellable,
+							 PkClientProgressCallback callback_progress,
+							 PkClientStatusCallback	 callback_status,
+							 GAsyncReadyCallback	 callback_ready,
+							 gpointer		 user_data);
+
+void		 pk_client_repo_set_data		(PkClient		*client,
+							 const gchar		*repo_id,
+							 const gchar		*parameter,
+							 const gchar		*value,
+							 GCancellable		*cancellable,
+							 PkClientProgressCallback callback_progress,
+							 PkClientStatusCallback	 callback_status,
+							 GAsyncReadyCallback	 callback_ready,
+							 gpointer		 user_data);
+
+void		 pk_client_simulate_install_files	(PkClient		*client,
+							 gchar			**files_rel,
+							 GCancellable		*cancellable,
+							 PkClientProgressCallback callback_progress,
+							 PkClientStatusCallback	 callback_status,
+							 GAsyncReadyCallback	 callback_ready,
+							 gpointer		 user_data);
+
+void		 pk_client_simulate_install_packages	(PkClient		*client,
+							 gchar			**package_ids,
+							 GCancellable		*cancellable,
+							 PkClientProgressCallback callback_progress,
+							 PkClientStatusCallback	 callback_status,
+							 GAsyncReadyCallback	 callback_ready,
+							 gpointer		 user_data);
+
+void		 pk_client_simulate_remove_packages	(PkClient		*client,
+							 gchar			**package_ids,
+							 GCancellable		*cancellable,
+							 PkClientProgressCallback callback_progress,
+							 PkClientStatusCallback	 callback_status,
+							 GAsyncReadyCallback	 callback_ready,
+							 gpointer		 user_data);
+
+void		 pk_client_simulate_update_packages	(PkClient		*client,
+							 gchar			**package_ids,
+							 GCancellable		*cancellable,
+							 PkClientProgressCallback callback_progress,
+							 PkClientStatusCallback	 callback_status,
+							 GAsyncReadyCallback	 callback_ready,
+							 gpointer		 user_data);
 
 G_END_DECLS
 
commit 8c17c04867275f5bcda64fa9fea94a824f0637c3
Author: Richard Hughes <richard at hughsie.com>
Date:   Thu Aug 27 11:04:18 2009 +0100

    glib2: Add some more client methods

diff --git a/lib/packagekit-glib2/pk-client.c b/lib/packagekit-glib2/pk-client.c
index 5817b23..1be506b 100644
--- a/lib/packagekit-glib2/pk-client.c
+++ b/lib/packagekit-glib2/pk-client.c
@@ -94,7 +94,8 @@ typedef struct {
 	PkClient			*client;
 	GCancellable			*cancellable;
 	gchar				*tid;
-	gchar				**packages;
+	gchar				*search;
+	gchar				**package_ids;
 	GSimpleAsyncResult		*res;
 	DBusGProxyCall			*call;
 	PkResults			*results;
@@ -119,7 +120,8 @@ pk_client_state_finish (PkClientState *state, GError *error)
 	PkClientPrivate *priv;
 	priv = state->client->priv;
 
-	g_strfreev (state->packages);
+	g_strfreev (state->package_ids);
+	g_free (state->search);
 
 	if (state->client != NULL) {
 		g_object_remove_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
@@ -473,17 +475,45 @@ pk_client_get_tid_cb (GObject *object, GAsyncResult *res, PkClientState *state)
 		state->call = dbus_g_proxy_begin_call (state->proxy, "Resolve",
 						       (DBusGProxyCallNotify) pk_client_method_cb, state, NULL,
 						       G_TYPE_STRING, filters_text,
-						       G_TYPE_STRV, state->packages,
+						       G_TYPE_STRV, state->package_ids,
+						       G_TYPE_INVALID);
+	} else if (state->role == PK_ROLE_ENUM_SEARCH_NAME) {
+		filters_text = pk_filter_bitfield_to_text (state->filters);
+		state->call = dbus_g_proxy_begin_call (state->proxy, "SearchName",
+						       (DBusGProxyCallNotify) pk_client_method_cb, state, NULL,
+						       G_TYPE_STRING, filters_text,
+						       G_TYPE_STRV, state->search,
+						       G_TYPE_INVALID);
+	} else if (state->role == PK_ROLE_ENUM_SEARCH_DETAILS) {
+		filters_text = pk_filter_bitfield_to_text (state->filters);
+		state->call = dbus_g_proxy_begin_call (state->proxy, "SearchDetails",
+						       (DBusGProxyCallNotify) pk_client_method_cb, state, NULL,
+						       G_TYPE_STRING, filters_text,
+						       G_TYPE_STRV, state->search,
+						       G_TYPE_INVALID);
+	} else if (state->role == PK_ROLE_ENUM_SEARCH_GROUP) {
+		filters_text = pk_filter_bitfield_to_text (state->filters);
+		state->call = dbus_g_proxy_begin_call (state->proxy, "SearchGroup",
+						       (DBusGProxyCallNotify) pk_client_method_cb, state, NULL,
+						       G_TYPE_STRING, filters_text,
+						       G_TYPE_STRV, state->search,
+						       G_TYPE_INVALID);
+	} else if (state->role == PK_ROLE_ENUM_SEARCH_FILE) {
+		filters_text = pk_filter_bitfield_to_text (state->filters);
+		state->call = dbus_g_proxy_begin_call (state->proxy, "SearchFile",
+						       (DBusGProxyCallNotify) pk_client_method_cb, state, NULL,
+						       G_TYPE_STRING, filters_text,
+						       G_TYPE_STRV, state->search,
 						       G_TYPE_INVALID);
 	} else if (state->role == PK_ROLE_ENUM_GET_DETAILS) {
 		state->call = dbus_g_proxy_begin_call (state->proxy, "GetDetails",
 						       (DBusGProxyCallNotify) pk_client_method_cb, state, NULL,
-						       G_TYPE_STRV, state->packages,
+						       G_TYPE_STRV, state->package_ids,
 						       G_TYPE_INVALID);
 	} else if (state->role == PK_ROLE_ENUM_GET_UPDATE_DETAIL) {
 		state->call = dbus_g_proxy_begin_call (state->proxy, "GetUpdateDetail",
 						       (DBusGProxyCallNotify) pk_client_method_cb, state, NULL,
-						       G_TYPE_STRV, state->packages,
+						       G_TYPE_STRV, state->package_ids,
 						       G_TYPE_INVALID);
 	} else {
 		g_assert_not_reached ();
@@ -499,7 +529,30 @@ pk_client_get_tid_cb (GObject *object, GAsyncResult *res, PkClientState *state)
 	g_free (filters_text);
 }
 
-/*****************************************************************************************************************************/
+/**
+ * pk_client_generic_finish:
+ * @client: a valid #PkClient instance
+ * @res: the #GAsyncResult
+ * @error: A #GError or %NULL
+ *
+ * Gets the result from the asynchronous function.
+ *
+ * Return value: the #PkResults, or %NULL
+ **/
+PkResults *
+pk_client_generic_finish (PkClient *client, GAsyncResult *res, GError **error)
+{
+	GSimpleAsyncResult *simple;
+
+	g_return_val_if_fail (PK_IS_CLIENT (client), NULL);
+	g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (res), NULL);
+
+	simple = G_SIMPLE_ASYNC_RESULT (res);
+	if (g_simple_async_result_propagate_error (simple, error))
+		return NULL;
+
+	return g_simple_async_result_get_op_res_gpointer (simple);
+}
 
 /**
  * pk_client_resolve_async:
@@ -532,11 +585,8 @@ pk_client_resolve_async (PkClient *client, PkBitfield filters, gchar **packages,
 	state->res = g_object_ref (res);
 	state->cancellable = cancellable;
 	state->client = client;
-	state->results = NULL;
-	state->proxy = NULL;
-	state->call = NULL;
 	state->filters = filters;
-	state->packages = g_strdupv (packages);
+	state->package_ids = g_strdupv (packages);
 	state->callback_progress = callback_progress;
 	state->callback_status = callback_status;
 	state->user_data = user_data;
@@ -548,39 +598,50 @@ pk_client_resolve_async (PkClient *client, PkBitfield filters, gchar **packages,
 }
 
 /**
- * pk_client_resolve_finish:
+ * pk_client_search_name_async:
  * @client: a valid #PkClient instance
- * @res: the #GAsyncResult
- * @error: A #GError or %NULL
- *
- * Gets the result from the asynchronous function.
+ * @cancellable: a #GCancellable or %NULL
+ * @callback_progress: the function to run when the progress changes
+ * @callback_status: the function to run when the status changes
+ * @callback_package: the function to run when the package changes
+ * @callback_ready: the function to run on completion
+ * @user_data: the data to pass to @callback
  *
- * Return value: the ID, or %NULL if unset
+ * TODO
  **/
-PkResults *
-pk_client_resolve_finish (PkClient *client, GAsyncResult *res, GError **error)
+void
+pk_client_search_name_async (PkClient *client, PkBitfield filters, const gchar *search, GCancellable *cancellable,
+			     PkClientProgressCallback callback_progress, PkClientStatusCallback callback_status,
+			     GAsyncReadyCallback callback_ready, gpointer user_data)
 {
-	GSimpleAsyncResult *simple;
-	gpointer source_tag;
-
-	g_return_val_if_fail (PK_IS_CLIENT (client), NULL);
-	g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (res), NULL);
+	GSimpleAsyncResult *res;
+	PkClientState *state;
 
-	simple = G_SIMPLE_ASYNC_RESULT (res);
-	source_tag = g_simple_async_result_get_source_tag (simple);
+	g_return_if_fail (PK_IS_CLIENT (client));
+	g_return_if_fail (callback_ready != NULL);
 
-	g_return_val_if_fail (source_tag == pk_client_resolve_async, NULL);
+	res = g_simple_async_result_new (G_OBJECT (client), callback_ready, user_data, pk_client_search_name_async);
 
-	if (g_simple_async_result_propagate_error (simple, error))
-		return NULL;
+	/* save state */
+	state = g_slice_new0 (PkClientState);
+	state->role = PK_ROLE_ENUM_SEARCH_NAME;
+	state->res = g_object_ref (res);
+	state->cancellable = cancellable;
+	state->client = client;
+	state->filters = filters;
+	state->search = g_strdup (search);
+	state->callback_progress = callback_progress;
+	state->callback_status = callback_status;
+	state->user_data = user_data;
+	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
 
-	return g_simple_async_result_get_op_res_gpointer (simple);
+	/* get tid */
+	pk_control_get_tid_async (client->priv->control, NULL, (GAsyncReadyCallback) pk_client_get_tid_cb, state);
+	g_object_unref (res);
 }
 
-/*****************************************************************************************************************************/
-
 /**
- * pk_client_get_details_async:
+ * pk_client_search_details_async:
  * @client: a valid #PkClient instance
  * @cancellable: a #GCancellable or %NULL
  * @callback_progress: the function to run when the progress changes
@@ -592,9 +653,9 @@ pk_client_resolve_finish (PkClient *client, GAsyncResult *res, GError **error)
  * TODO
  **/
 void
-pk_client_get_details_async (PkClient *client, gchar **packages, GCancellable *cancellable,
-			     PkClientProgressCallback callback_progress, PkClientStatusCallback callback_status,
-			     GAsyncReadyCallback callback_ready, gpointer user_data)
+pk_client_search_details_async (PkClient *client, PkBitfield filters, const gchar *search, GCancellable *cancellable,
+			        PkClientProgressCallback callback_progress, PkClientStatusCallback callback_status,
+			        GAsyncReadyCallback callback_ready, gpointer user_data)
 {
 	GSimpleAsyncResult *res;
 	PkClientState *state;
@@ -602,18 +663,16 @@ pk_client_get_details_async (PkClient *client, gchar **packages, GCancellable *c
 	g_return_if_fail (PK_IS_CLIENT (client));
 	g_return_if_fail (callback_ready != NULL);
 
-	res = g_simple_async_result_new (G_OBJECT (client), callback_ready, user_data, pk_client_get_details_async);
+	res = g_simple_async_result_new (G_OBJECT (client), callback_ready, user_data, pk_client_search_details_async);
 
 	/* save state */
 	state = g_slice_new0 (PkClientState);
-	state->role = PK_ROLE_ENUM_GET_DETAILS;
+	state->role = PK_ROLE_ENUM_SEARCH_DETAILS;
 	state->res = g_object_ref (res);
 	state->cancellable = cancellable;
 	state->client = client;
-	state->results = NULL;
-	state->proxy = NULL;
-	state->call = NULL;
-	state->packages = g_strdupv (packages);
+	state->filters = filters;
+	state->search = g_strdup (search);
 	state->callback_progress = callback_progress;
 	state->callback_status = callback_status;
 	state->user_data = user_data;
@@ -625,39 +684,50 @@ pk_client_get_details_async (PkClient *client, gchar **packages, GCancellable *c
 }
 
 /**
- * pk_client_get_details_finish:
+ * pk_client_search_group_async:
  * @client: a valid #PkClient instance
- * @res: the #GAsyncResult
- * @error: A #GError or %NULL
- *
- * Gets the result from the asynchronous function.
+ * @cancellable: a #GCancellable or %NULL
+ * @callback_progress: the function to run when the progress changes
+ * @callback_status: the function to run when the status changes
+ * @callback_package: the function to run when the package changes
+ * @callback_ready: the function to run on completion
+ * @user_data: the data to pass to @callback
  *
- * Return value: the ID, or %NULL if unset
+ * TODO
  **/
-PkResults *
-pk_client_get_details_finish (PkClient *client, GAsyncResult *res, GError **error)
+void
+pk_client_search_group_async (PkClient *client, PkBitfield filters, const gchar *search, GCancellable *cancellable,
+			      PkClientProgressCallback callback_progress, PkClientStatusCallback callback_status,
+			      GAsyncReadyCallback callback_ready, gpointer user_data)
 {
-	GSimpleAsyncResult *simple;
-	gpointer source_tag;
-
-	g_return_val_if_fail (PK_IS_CLIENT (client), NULL);
-	g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (res), NULL);
+	GSimpleAsyncResult *res;
+	PkClientState *state;
 
-	simple = G_SIMPLE_ASYNC_RESULT (res);
-	source_tag = g_simple_async_result_get_source_tag (simple);
+	g_return_if_fail (PK_IS_CLIENT (client));
+	g_return_if_fail (callback_ready != NULL);
 
-	g_return_val_if_fail (source_tag == pk_client_get_details_async, NULL);
+	res = g_simple_async_result_new (G_OBJECT (client), callback_ready, user_data, pk_client_search_group_async);
 
-	if (g_simple_async_result_propagate_error (simple, error))
-		return NULL;
+	/* save state */
+	state = g_slice_new0 (PkClientState);
+	state->role = PK_ROLE_ENUM_SEARCH_GROUP;
+	state->res = g_object_ref (res);
+	state->cancellable = cancellable;
+	state->client = client;
+	state->filters = filters;
+	state->search = g_strdup (search);
+	state->callback_progress = callback_progress;
+	state->callback_status = callback_status;
+	state->user_data = user_data;
+	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
 
-	return g_simple_async_result_get_op_res_gpointer (simple);
+	/* get tid */
+	pk_control_get_tid_async (client->priv->control, NULL, (GAsyncReadyCallback) pk_client_get_tid_cb, state);
+	g_object_unref (res);
 }
 
-/*****************************************************************************************************************************/
-
 /**
- * pk_client_get_update_detail_async:
+ * pk_client_search_file_async:
  * @client: a valid #PkClient instance
  * @cancellable: a #GCancellable or %NULL
  * @callback_progress: the function to run when the progress changes
@@ -669,9 +739,9 @@ pk_client_get_details_finish (PkClient *client, GAsyncResult *res, GError **erro
  * TODO
  **/
 void
-pk_client_get_update_detail_async (PkClient *client, gchar **packages, GCancellable *cancellable,
-				   PkClientProgressCallback callback_progress, PkClientStatusCallback callback_status,
-				   GAsyncReadyCallback callback_ready, gpointer user_data)
+pk_client_search_file_async (PkClient *client, PkBitfield filters, const gchar *search, GCancellable *cancellable,
+			     PkClientProgressCallback callback_progress, PkClientStatusCallback callback_status,
+			     GAsyncReadyCallback callback_ready, gpointer user_data)
 {
 	GSimpleAsyncResult *res;
 	PkClientState *state;
@@ -679,18 +749,16 @@ pk_client_get_update_detail_async (PkClient *client, gchar **packages, GCancella
 	g_return_if_fail (PK_IS_CLIENT (client));
 	g_return_if_fail (callback_ready != NULL);
 
-	res = g_simple_async_result_new (G_OBJECT (client), callback_ready, user_data, pk_client_get_update_detail_async);
+	res = g_simple_async_result_new (G_OBJECT (client), callback_ready, user_data, pk_client_search_file_async);
 
 	/* save state */
 	state = g_slice_new0 (PkClientState);
-	state->role = PK_ROLE_ENUM_GET_UPDATE_DETAIL;
+	state->role = PK_ROLE_ENUM_SEARCH_FILE;
 	state->res = g_object_ref (res);
 	state->cancellable = cancellable;
 	state->client = client;
-	state->results = NULL;
-	state->proxy = NULL;
-	state->call = NULL;
-	state->packages = g_strdupv (packages);
+	state->filters = filters;
+	state->search = g_strdup (search);
 	state->callback_progress = callback_progress;
 	state->callback_status = callback_status;
 	state->user_data = user_data;
@@ -702,33 +770,87 @@ pk_client_get_update_detail_async (PkClient *client, gchar **packages, GCancella
 }
 
 /**
- * pk_client_get_update_detail_finish:
+ * pk_client_get_details_async:
  * @client: a valid #PkClient instance
- * @res: the #GAsyncResult
- * @error: A #GError or %NULL
- *
- * Gets the result from the asynchronous function.
+ * @cancellable: a #GCancellable or %NULL
+ * @callback_progress: the function to run when the progress changes
+ * @callback_status: the function to run when the status changes
+ * @callback_package: the function to run when the package changes
+ * @callback_ready: the function to run on completion
+ * @user_data: the data to pass to @callback
  *
- * Return value: the ID, or %NULL if unset
+ * TODO
  **/
-PkResults *
-pk_client_get_update_detail_finish (PkClient *client, GAsyncResult *res, GError **error)
+void
+pk_client_get_details_async (PkClient *client, gchar **package_ids, GCancellable *cancellable,
+			     PkClientProgressCallback callback_progress, PkClientStatusCallback callback_status,
+			     GAsyncReadyCallback callback_ready, gpointer user_data)
 {
-	GSimpleAsyncResult *simple;
-	gpointer source_tag;
+	GSimpleAsyncResult *res;
+	PkClientState *state;
 
-	g_return_val_if_fail (PK_IS_CLIENT (client), NULL);
-	g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (res), NULL);
+	g_return_if_fail (PK_IS_CLIENT (client));
+	g_return_if_fail (callback_ready != NULL);
 
-	simple = G_SIMPLE_ASYNC_RESULT (res);
-	source_tag = g_simple_async_result_get_source_tag (simple);
+	res = g_simple_async_result_new (G_OBJECT (client), callback_ready, user_data, pk_client_get_details_async);
 
-	g_return_val_if_fail (source_tag == pk_client_get_update_detail_async, NULL);
+	/* save state */
+	state = g_slice_new0 (PkClientState);
+	state->role = PK_ROLE_ENUM_GET_DETAILS;
+	state->res = g_object_ref (res);
+	state->cancellable = cancellable;
+	state->client = client;
+	state->package_ids = g_strdupv (package_ids);
+	state->callback_progress = callback_progress;
+	state->callback_status = callback_status;
+	state->user_data = user_data;
+	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
 
-	if (g_simple_async_result_propagate_error (simple, error))
-		return NULL;
+	/* get tid */
+	pk_control_get_tid_async (client->priv->control, NULL, (GAsyncReadyCallback) pk_client_get_tid_cb, state);
+	g_object_unref (res);
+}
 
-	return g_simple_async_result_get_op_res_gpointer (simple);
+/**
+ * pk_client_get_update_detail_async:
+ * @client: a valid #PkClient instance
+ * @cancellable: a #GCancellable or %NULL
+ * @callback_progress: the function to run when the progress changes
+ * @callback_status: the function to run when the status changes
+ * @callback_package: the function to run when the package changes
+ * @callback_ready: the function to run on completion
+ * @user_data: the data to pass to @callback
+ *
+ * TODO
+ **/
+void
+pk_client_get_update_detail_async (PkClient *client, gchar **package_ids, GCancellable *cancellable,
+				   PkClientProgressCallback callback_progress, PkClientStatusCallback callback_status,
+				   GAsyncReadyCallback callback_ready, gpointer user_data)
+{
+	GSimpleAsyncResult *res;
+	PkClientState *state;
+
+	g_return_if_fail (PK_IS_CLIENT (client));
+	g_return_if_fail (callback_ready != NULL);
+
+	res = g_simple_async_result_new (G_OBJECT (client), callback_ready, user_data, pk_client_get_update_detail_async);
+
+	/* save state */
+	state = g_slice_new0 (PkClientState);
+	state->role = PK_ROLE_ENUM_GET_UPDATE_DETAIL;
+	state->res = g_object_ref (res);
+	state->cancellable = cancellable;
+	state->client = client;
+	state->package_ids = g_strdupv (package_ids);
+	state->callback_progress = callback_progress;
+	state->callback_status = callback_status;
+	state->user_data = user_data;
+	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
+
+	/* get tid */
+	pk_control_get_tid_async (client->priv->control, NULL, (GAsyncReadyCallback) pk_client_get_tid_cb, state);
+	g_object_unref (res);
 }
 
 /**
@@ -959,7 +1081,7 @@ pk_client_test_resolve_cb (GObject *object, GAsyncResult *res, EggTest *test)
 	guint i;
 
 	/* get the results */
-	results = pk_client_resolve_finish (client, res, &error);
+	results = pk_client_generic_finish (client, res, &error);
 	if (results == NULL) {
 		egg_test_failed (test, "failed to resolve: %s", error->message);
 		g_error_free (error);
@@ -1001,7 +1123,7 @@ pk_client_test_get_details_cb (GObject *object, GAsyncResult *res, EggTest *test
 	guint i;
 
 	/* get the results */
-	results = pk_client_get_details_finish (client, res, &error);
+	results = pk_client_generic_finish (client, res, &error);
 	if (results == NULL) {
 		egg_test_failed (test, "failed to resolve: %s", error->message);
 		g_error_free (error);
diff --git a/lib/packagekit-glib2/pk-client.h b/lib/packagekit-glib2/pk-client.h
index 9db092e..9176047 100644
--- a/lib/packagekit-glib2/pk-client.h
+++ b/lib/packagekit-glib2/pk-client.h
@@ -84,7 +84,11 @@ typedef void	(*PkClientPackageCallback)		(PkClient		*client,
 							 const gchar		*package_id,
                                                          gpointer		 user_data);
 
-/* resolve */
+/* get transaction results */
+PkResults	*pk_client_generic_finish		(PkClient		*client,
+							 GAsyncResult		*res,
+							 GError			**error);
+
 void		 pk_client_resolve_async		(PkClient		*client,
 							 PkBitfield		 filters,
 							 gchar			**packages,
@@ -93,33 +97,58 @@ void		 pk_client_resolve_async		(PkClient		*client,
 							 PkClientStatusCallback	 callback_status,
 							 GAsyncReadyCallback	 callback_ready,
 							 gpointer		 user_data);
-PkResults	*pk_client_resolve_finish		(PkClient		*client,
-							 GAsyncResult		*res,
-							 GError			**error);
 
-/* get_details */
+void		 pk_client_search_name_async		(PkClient		*client,
+							 PkBitfield		 filters,
+							 const gchar		*search,
+							 GCancellable		*cancellable,
+							 PkClientProgressCallback callback_progress,
+							 PkClientStatusCallback	 callback_status,
+							 GAsyncReadyCallback	 callback_ready,
+							 gpointer		 user_data);
+
+void		 pk_client_search_details_async		(PkClient		*client,
+							 PkBitfield		 filters,
+							 const gchar		*search,
+							 GCancellable		*cancellable,
+							 PkClientProgressCallback callback_progress,
+							 PkClientStatusCallback	 callback_status,
+							 GAsyncReadyCallback	 callback_ready,
+							 gpointer		 user_data);
+
+void		 pk_client_search_group_async		(PkClient		*client,
+							 PkBitfield		 filters,
+							 const gchar		*search,
+							 GCancellable		*cancellable,
+							 PkClientProgressCallback callback_progress,
+							 PkClientStatusCallback	 callback_status,
+							 GAsyncReadyCallback	 callback_ready,
+							 gpointer		 user_data);
+
+void		 pk_client_search_file_async		(PkClient		*client,
+							 PkBitfield		 filters,
+							 const gchar		*search,
+							 GCancellable		*cancellable,
+							 PkClientProgressCallback callback_progress,
+							 PkClientStatusCallback	 callback_status,
+							 GAsyncReadyCallback	 callback_ready,
+							 gpointer		 user_data);
+
 void		 pk_client_get_details_async		(PkClient		*client,
-							 gchar			**packages,
+							 gchar			**package_ids,
 							 GCancellable		*cancellable,
 							 PkClientProgressCallback callback_progress,
 							 PkClientStatusCallback	 callback_status,
 							 GAsyncReadyCallback	 callback_ready,
 							 gpointer		 user_data);
-PkResults	*pk_client_get_details_finish		(PkClient		*client,
-							 GAsyncResult		*res,
-							 GError			**error);
 
-/* get_update_detail */
 void		 pk_client_get_update_detail_async	(PkClient		*client,
-							 gchar			**packages,
+							 gchar			**package_ids,
 							 GCancellable		*cancellable,
 							 PkClientProgressCallback callback_progress,
 							 PkClientStatusCallback	 callback_status,
 							 GAsyncReadyCallback	 callback_ready,
 							 gpointer		 user_data);
-PkResults	*pk_client_get_update_detail_finish	(PkClient		*client,
-							 GAsyncResult		*res,
-							 GError			**error);
 
 //							 PkClientPackageCallback callback_package,
 
diff --git a/lib/packagekit-glib2/pk-package-sack.c b/lib/packagekit-glib2/pk-package-sack.c
index dc05793..10c00ee 100644
--- a/lib/packagekit-glib2/pk-package-sack.c
+++ b/lib/packagekit-glib2/pk-package-sack.c
@@ -385,7 +385,7 @@ pk_package_sack_merge_resolve_cb (GObject *source_object, GAsyncResult *res, PkP
 	PkPackage *package;
 
 	/* get the results */
-	results = pk_client_resolve_finish (client, res, &error);
+	results = pk_client_generic_finish (client, res, &error);
 	if (results == NULL) {
 		egg_warning ("failed to resolve: %s", error->message);
 		pk_package_sack_merge_bool_state_finish (state, error);
@@ -469,7 +469,7 @@ pk_package_sack_merge_resolve_async (PkPackageSack *sack, GCancellable *cancella
 }
 
 /**
- * pk_package_sack_merge_resolve_finish:
+ * pk_package_sack_merge_generic_finish:
  * @package_sack: a valid #PkPackageSack instance
  * @res: the #GAsyncResult
  * @error: A #GError or %NULL
@@ -479,18 +479,14 @@ pk_package_sack_merge_resolve_async (PkPackageSack *sack, GCancellable *cancella
  * Return value: %TRUE for success
  **/
 gboolean
-pk_package_sack_merge_resolve_finish (PkPackageSack *package_sack, GAsyncResult *res, GError **error)
+pk_package_sack_merge_generic_finish (PkPackageSack *package_sack, GAsyncResult *res, GError **error)
 {
 	GSimpleAsyncResult *simple;
-	gpointer source_tag;
 
 	g_return_val_if_fail (PK_IS_PACKAGE_SACK (package_sack), FALSE);
 	g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (res), FALSE);
 
 	simple = G_SIMPLE_ASYNC_RESULT (res);
-	source_tag = g_simple_async_result_get_source_tag (simple);
-
-	g_return_val_if_fail (source_tag == pk_package_sack_merge_resolve_async, FALSE);
 
 	if (g_simple_async_result_propagate_error (simple, error))
 		return FALSE;
@@ -515,7 +511,7 @@ pk_package_sack_merge_details_cb (GObject *source_object, GAsyncResult *res, PkP
 	PkPackage *package;
 
 	/* get the results */
-	results = pk_client_get_details_finish (client, res, &error);
+	results = pk_client_generic_finish (client, res, &error);
 	if (results == NULL) {
 		egg_warning ("failed to details: %s", error->message);
 		pk_package_sack_merge_bool_state_finish (state, error);
@@ -601,36 +597,6 @@ pk_package_sack_merge_details_async (PkPackageSack *sack, GCancellable *cancella
 	g_object_unref (res);
 }
 
-/**
- * pk_package_sack_merge_details_finish:
- * @package_sack: a valid #PkPackageSack instance
- * @res: the #GAsyncResult
- * @error: A #GError or %NULL
- *
- * Gets the result from the asynchronous function.
- *
- * Return value: %TRUE for success
- **/
-gboolean
-pk_package_sack_merge_details_finish (PkPackageSack *package_sack, GAsyncResult *res, GError **error)
-{
-	GSimpleAsyncResult *simple;
-	gpointer source_tag;
-
-	g_return_val_if_fail (PK_IS_PACKAGE_SACK (package_sack), FALSE);
-	g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (res), FALSE);
-
-	simple = G_SIMPLE_ASYNC_RESULT (res);
-	source_tag = g_simple_async_result_get_source_tag (simple);
-
-	g_return_val_if_fail (source_tag == pk_package_sack_merge_details_async, FALSE);
-
-	if (g_simple_async_result_propagate_error (simple, error))
-		return FALSE;
-
-	return g_simple_async_result_get_op_res_gboolean (simple);
-}
-
 /***************************************************************************************************/
 
 /**
@@ -648,7 +614,7 @@ pk_package_sack_merge_update_detail_cb (GObject *source_object, GAsyncResult *re
 	PkPackage *package;
 
 	/* get the results */
-	results = pk_client_get_update_detail_finish (client, res, &error);
+	results = pk_client_generic_finish (client, res, &error);
 	if (results == NULL) {
 		egg_warning ("failed to update_detail: %s", error->message);
 		pk_package_sack_merge_bool_state_finish (state, error);
@@ -740,39 +706,8 @@ pk_package_sack_merge_update_detail_async (PkPackageSack *sack, GCancellable *ca
 	g_object_unref (res);
 }
 
-/**
- * pk_package_sack_merge_update_detail_finish:
- * @package_sack: a valid #PkPackageSack instance
- * @res: the #GAsyncResult
- * @error: A #GError or %NULL
- *
- * Gets the result from the asynchronous function.
- *
- * Return value: %TRUE for success
- **/
-gboolean
-pk_package_sack_merge_update_detail_finish (PkPackageSack *package_sack, GAsyncResult *res, GError **error)
-{
-	GSimpleAsyncResult *simple;
-	gpointer source_tag;
-
-	g_return_val_if_fail (PK_IS_PACKAGE_SACK (package_sack), FALSE);
-	g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (res), FALSE);
-
-	simple = G_SIMPLE_ASYNC_RESULT (res);
-	source_tag = g_simple_async_result_get_source_tag (simple);
-
-	g_return_val_if_fail (source_tag == pk_package_sack_merge_update_detail_async, FALSE);
-
-	if (g_simple_async_result_propagate_error (simple, error))
-		return FALSE;
-
-	return g_simple_async_result_get_op_res_gboolean (simple);
-}
-
 /***************************************************************************************************/
 
-
 /**
  * pk_package_sack_get_property:
  **/
@@ -909,7 +844,7 @@ pk_package_sack_test_resolve_cb (GObject *object, GAsyncResult *res, EggTest *te
 	gboolean ret;
 
 	/* get the result */
-	ret = pk_package_sack_merge_resolve_finish (sack, res, &error);
+	ret = pk_package_sack_merge_generic_finish (sack, res, &error);
 	if (!ret) {
 		egg_test_failed (test, "failed to merge resolve: %s", error->message);
 		g_error_free (error);
@@ -927,7 +862,7 @@ pk_package_sack_test_details_cb (GObject *object, GAsyncResult *res, EggTest *te
 	gboolean ret;
 
 	/* get the result */
-	ret = pk_package_sack_merge_details_finish (sack, res, &error);
+	ret = pk_package_sack_merge_generic_finish (sack, res, &error);
 	if (!ret) {
 		egg_test_failed (test, "failed to merge details: %s", error->message);
 		g_error_free (error);
@@ -945,7 +880,7 @@ pk_package_sack_test_update_detail_cb (GObject *object, GAsyncResult *res, EggTe
 	gboolean ret;
 
 	/* get the result */
-	ret = pk_package_sack_merge_update_detail_finish (sack, res, &error);
+	ret = pk_package_sack_merge_generic_finish (sack, res, &error);
 	if (!ret) {
 		egg_test_failed (test, "failed to merge update detail: %s", error->message);
 		g_error_free (error);
diff --git a/lib/packagekit-glib2/pk-package-sack.h b/lib/packagekit-glib2/pk-package-sack.h
index ca47897..a368115 100644
--- a/lib/packagekit-glib2/pk-package-sack.h
+++ b/lib/packagekit-glib2/pk-package-sack.h
@@ -97,25 +97,20 @@ void		 pk_package_sack_merge_resolve_async	(PkPackageSack		*sack,
 							 GCancellable		*cancellable,
 							 GAsyncReadyCallback	 callback,
 							 gpointer		 user_data);
-gboolean	 pk_package_sack_merge_resolve_finish	(PkPackageSack		*sack,
-							 GAsyncResult		*res,
-							 GError			**error);
 
 /* merging in data to the array using Details() */
 void		 pk_package_sack_merge_details_async	(PkPackageSack		*sack,
 							 GCancellable		*cancellable,
 							 GAsyncReadyCallback	 callback,
 							 gpointer		 user_data);
-gboolean	 pk_package_sack_merge_details_finish	(PkPackageSack		*sack,
-							 GAsyncResult		*res,
-							 GError			**error);
 
 /* merging in data to the array using UpdateDetail() */
 void		 pk_package_sack_merge_update_detail_async (PkPackageSack	*sack,
 							 GCancellable		*cancellable,
 							 GAsyncReadyCallback	 callback,
 							 gpointer		 user_data);
-gboolean	 pk_package_sack_merge_update_detail_finish (PkPackageSack	*sack,
+
+gboolean	 pk_package_sack_merge_generic_finish	(PkPackageSack		*sack,
 							 GAsyncResult		*res,
 							 GError			**error);
 
commit 39714aca49473a74baf809348a87c023fdadc5b2
Author: Richard Hughes <richard at hughsie.com>
Date:   Thu Aug 27 10:24:56 2009 +0100

    glib2: add a pk_results_get_package_sack() method

diff --git a/lib/packagekit-glib2/pk-results.c b/lib/packagekit-glib2/pk-results.c
index eb585a9..fdf7fd9 100644
--- a/lib/packagekit-glib2/pk-results.c
+++ b/lib/packagekit-glib2/pk-results.c
@@ -269,6 +269,54 @@ pk_results_get_package_array (PkResults *results)
 }
 
 /**
+ * pk_results_get_package_sack:
+ * @results: a valid #PkResults instance
+ *
+ * Gets a package sack from the transaction.
+ *
+ * Return value: A #PkPackageSack of data.
+ **/
+PkPackageSack *
+pk_results_get_package_sack (PkResults *results)
+{
+	PkPackage *package;
+	PkPackageSack *sack;
+	GPtrArray *array;
+	guint i;
+	const PkResultItemPackage *item;
+	gboolean ret;
+
+	g_return_val_if_fail (PK_IS_RESULTS (results), NULL);
+
+	/* create a new sack */
+	sack = pk_package_sack_new ();
+
+	/* go through each of the bare packages */
+	array = results->priv->package_array;
+	for (i=0; i<array->len; i++) {
+		item = g_ptr_array_index (array, i);
+
+		/* create a PkPackage object */
+		package = pk_package_new ();
+		ret = pk_package_set_id (package, item->package_id, NULL);
+		if (!ret)
+			egg_error ("couldn't add package ID, internal error");
+
+		/* set data we already know */
+		g_object_set (package,
+			      "info", item->info_enum,
+			      "summary", item->summary,
+			      NULL);
+
+		/* add to sack */
+		pk_package_sack_add_package (sack, package);
+		g_object_unref (package);
+	}
+
+	return sack;
+}
+
+/**
  * pk_results_get_details_array:
  * @results: a valid #PkResults instance
  *
diff --git a/lib/packagekit-glib2/pk-results.h b/lib/packagekit-glib2/pk-results.h
index 7ca8e90..0188b52 100644
--- a/lib/packagekit-glib2/pk-results.h
+++ b/lib/packagekit-glib2/pk-results.h
@@ -33,6 +33,7 @@
 
 #include <glib-object.h>
 #include <packagekit-glib2/pk-enum.h>
+#include <packagekit-glib2/pk-package-sack.h>
 
 G_BEGIN_DECLS
 
@@ -103,6 +104,9 @@ gboolean	 pk_results_add_update_detail		(PkResults	*results,
 /* get single data */
 PkExitEnum	 pk_results_get_exit_code		(PkResults	*results);
 
+/* get package objects */
+PkPackageSack	*pk_results_get_package_sack		(PkResults	*results);
+
 /* get package array data */
 typedef struct {
 	PkInfoEnum	 info_enum;
commit 059ca69bc2eea10da9134964f2355535e68e97b9
Author: Richard Hughes <richard at hughsie.com>
Date:   Thu Aug 27 10:08:30 2009 +0100

    glib2: add ROLE and STATUS properties

diff --git a/lib/packagekit-glib2/pk-client.c b/lib/packagekit-glib2/pk-client.c
index 95357ac..5817b23 100644
--- a/lib/packagekit-glib2/pk-client.c
+++ b/lib/packagekit-glib2/pk-client.c
@@ -21,7 +21,9 @@
 
 /**
  * SECTION:pk-client
- * @short_description: TODO
+ * @short_description: GObject class for PackageKit client access
+ *
+ * A nice GObject to use for accessing PackageKit asynchronously
  */
 
 #include "config.h"
@@ -68,6 +70,8 @@ struct _PkClientPrivate
 {
 	DBusGConnection		*connection;
 	PkControl		*control;
+	PkRoleEnum		 role;
+	PkStatusEnum		 status;
 };
 
 enum {
@@ -77,8 +81,8 @@ enum {
 
 enum {
 	PROP_0,
-	/* TODO: add the other existing properties */
-	PROP_ID,
+	PROP_ROLE,
+	PROP_STATUS,
 	PROP_LAST
 };
 
@@ -236,11 +240,15 @@ pk_client_status_changed_cb (DBusGProxy *proxy, const gchar *status_text, PkClie
 {
 	PkStatusEnum status_enum;
 
+	/* convert from text */
+	status_enum = pk_status_enum_from_text (status_text);
+
+	/* save cached value */
+	state->client->priv->status = status_enum;
+
 	/* do the callback for GUI programs */
-	if (state->callback_status != NULL) {
-		status_enum = pk_status_enum_from_text (status_text);
+	if (state->callback_status != NULL)
 		state->callback_status (state->client, status_enum, state->user_data);
-	}
 }
 
 /**
@@ -729,13 +737,16 @@ pk_client_get_update_detail_finish (PkClient *client, GAsyncResult *res, GError
 static void
 pk_client_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec)
 {
-//	PkClient *client = PK_CLIENT (object);
-//	PkClientPrivate *priv = client->priv;
+	PkClient *client = PK_CLIENT (object);
+	PkClientPrivate *priv = client->priv;
 
 	switch (prop_id) {
-//	case PROP_ID:
-//		g_value_set_string (value, priv->id);
-//		break;
+	case PROP_ROLE:
+		g_value_set_uint (value, priv->role);
+		break;
+	case PROP_STATUS:
+		g_value_set_uint (value, priv->status);
+		break;
 	default:
 		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
 		break;
@@ -748,13 +759,7 @@ pk_client_get_property (GObject *object, guint prop_id, GValue *value, GParamSpe
 static void
 pk_client_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec)
 {
-//	PkClient *client = PK_CLIENT (object);
-//	PkClientPrivate *priv = client->priv;
-
 	switch (prop_id) {
-//	case PROP_INFO:
-//		priv->info = g_value_get_uint (value);
-//		break;
 	default:
 		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
 		break;
@@ -763,7 +768,6 @@ pk_client_set_property (GObject *object, guint prop_id, const GValue *value, GPa
 
 /**
  * pk_client_class_init:
- * @klass: The PkClientClass
  **/
 static void
 pk_client_class_init (PkClientClass *klass)
@@ -775,13 +779,20 @@ pk_client_class_init (PkClientClass *klass)
 	object_class->finalize = pk_client_finalize;
 
 	/**
-	 * PkClient:id:
+	 * PkClient:role:
 	 */
-	pspec = g_param_spec_string ("id", NULL,
-				     "The full client_id, e.g. 'gnome-power-manager;0.1.2;i386;fedora'",
-				     NULL,
-				     G_PARAM_READABLE);
-	g_object_class_install_property (object_class, PROP_ID, pspec);
+	pspec = g_param_spec_uint ("role", NULL, NULL,
+				   0, G_MAXUINT, 0,
+				   G_PARAM_READABLE);
+	g_object_class_install_property (object_class, PROP_ROLE, pspec);
+
+	/**
+	 * PkClient:status:
+	 */
+	pspec = g_param_spec_uint ("status", NULL, NULL,
+				   0, G_MAXUINT, 0,
+				   G_PARAM_READABLE);
+	g_object_class_install_property (object_class, PROP_STATUS, pspec);
 
 	/**
 	 * PkClient::changed:
@@ -801,7 +812,6 @@ pk_client_class_init (PkClientClass *klass)
 
 /**
  * pk_client_init:
- * @client: This class instance
  **/
 static void
 pk_client_init (PkClient *client)
@@ -809,6 +819,9 @@ pk_client_init (PkClient *client)
 	GError *error = NULL;
 	client->priv = PK_CLIENT_GET_PRIVATE (client);
 
+	client->priv->status = PK_STATUS_ENUM_UNKNOWN;
+	client->priv->role = PK_ROLE_ENUM_UNKNOWN;
+
 	/* check dbus connections, exit if not valid */
 	client->priv->connection = dbus_g_bus_get (DBUS_BUS_SYSTEM, &error);
 	if (error != NULL) {
@@ -900,7 +913,6 @@ pk_client_init (PkClient *client)
 
 /**
  * pk_client_finalize:
- * @object: The object to finalize
  **/
 static void
 pk_client_finalize (GObject *object)
@@ -916,7 +928,10 @@ pk_client_finalize (GObject *object)
 /**
  * pk_client_new:
  *
- * Return value: a new PkClient object.
+ * PkClient is a nice GObject wrapper for PackageKit and makes writing
+ * frontends easy.
+ *
+ * Return value: A new %PkClient instance
  **/
 PkClient *
 pk_client_new (void)
diff --git a/lib/packagekit-glib2/pk-client.h b/lib/packagekit-glib2/pk-client.h
index 81d1ea8..9db092e 100644
--- a/lib/packagekit-glib2/pk-client.h
+++ b/lib/packagekit-glib2/pk-client.h
@@ -40,10 +40,10 @@ G_BEGIN_DECLS
 #define PK_TYPE_CLIENT		(pk_client_get_type ())
 #define PK_CLIENT(o)		(G_TYPE_CHECK_INSTANCE_CAST ((o), PK_TYPE_CLIENT, PkClient))
 #define PK_CLIENT_CLASS(k)	(G_TYPE_CHECK_CLASS_CAST((k), PK_TYPE_CLIENT, PkClientClass))
-#define PK_IS_CLIENT(o)	(G_TYPE_CHECK_INSTANCE_TYPE ((o), PK_TYPE_CLIENT))
+#define PK_IS_CLIENT(o)		(G_TYPE_CHECK_INSTANCE_TYPE ((o), PK_TYPE_CLIENT))
 #define PK_IS_CLIENT_CLASS(k)	(G_TYPE_CHECK_CLASS_TYPE ((k), PK_TYPE_CLIENT))
 #define PK_CLIENT_GET_CLASS(o)	(G_TYPE_INSTANCE_GET_CLASS ((o), PK_TYPE_CLIENT, PkClientClass))
-#define PK_CLIENT_ERROR	(pk_client_error_quark ())
+#define PK_CLIENT_ERROR		(pk_client_error_quark ())
 #define PK_CLIENT_TYPE_ERROR	(pk_client_error_get_type ())
 
 typedef struct _PkClientPrivate	PkClientPrivate;
diff --git a/lib/packagekit-glib2/pk-package-sack.c b/lib/packagekit-glib2/pk-package-sack.c
index 4176f66..dc05793 100644
--- a/lib/packagekit-glib2/pk-package-sack.c
+++ b/lib/packagekit-glib2/pk-package-sack.c
@@ -1,6 +1,6 @@
 /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offsack: 8 -*-
  *
- * Copyright (C) 2008 Richard Hughes <richard at hughsie.com>
+ * Copyright (C) 2009 Richard Hughes <richard at hughsie.com>
  *
  * Licensed under the GNU General Public License Version 2
  *
diff --git a/lib/packagekit-glib2/pk-package.c b/lib/packagekit-glib2/pk-package.c
index b25f658..5f1295f 100644
--- a/lib/packagekit-glib2/pk-package.c
+++ b/lib/packagekit-glib2/pk-package.c
@@ -1,6 +1,6 @@
 /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
  *
- * Copyright (C) 2008 Richard Hughes <richard at hughsie.com>
+ * Copyright (C) 2009 Richard Hughes <richard at hughsie.com>
  *
  * Licensed under the GNU General Public License Version 2
  *
commit 3e59804fd97c9b58496e60a7f1a8f7aa03bbf60e
Author: Richard Hughes <richard at hughsie.com>
Date:   Thu Aug 27 09:40:11 2009 +0100

    glib2: add pk_package_sack_get_total_bytes() to get the total size of the sack

diff --git a/lib/packagekit-glib2/pk-package-sack.c b/lib/packagekit-glib2/pk-package-sack.c
index 9a8e937..4176f66 100644
--- a/lib/packagekit-glib2/pk-package-sack.c
+++ b/lib/packagekit-glib2/pk-package-sack.c
@@ -275,6 +275,37 @@ pk_package_sack_find_by_id (PkPackageSack *sack, const gchar *package_id)
 }
 
 /**
+ * pk_package_sack_get_total_bytes:
+ * @sack: a valid #PkPackageSack instance
+ *
+ * Gets the total size of the package sack in bytes.
+ *
+ * Return value: the size in bytes
+ **/
+guint64
+pk_package_sack_get_total_bytes (PkPackageSack *sack)
+{
+	PkPackage *package = NULL;
+	guint i;
+	GPtrArray *array;
+	guint64 bytes = 0;
+	guint64 bytes_tmp = 0;
+
+	g_return_val_if_fail (PK_IS_PACKAGE_SACK (sack), FALSE);
+
+	array = sack->priv->array;
+	for (i=0; i<array->len; i++) {
+		package = g_ptr_array_index (array, i);
+		g_object_get (package,
+			      "size", &bytes_tmp,
+			      NULL);
+		bytes += bytes_tmp;
+	}
+
+	return bytes;
+}
+
+/**
  * pk_package_sack_get_package_ids:
  **/
 static gchar **
@@ -934,6 +965,7 @@ pk_package_sack_test (EggTest *test)
 	gchar *text;
 	guint size;
 	PkInfoEnum info = PK_INFO_ENUM_UNKNOWN;
+	guint64 bytes;
 
 	if (!egg_test_start (test, "PkPackageSack"))
 		return;
@@ -1034,6 +1066,11 @@ pk_package_sack_test (EggTest *test)
 	g_object_unref (package);
 
 	/************************************************************/
+	egg_test_title (test, "chck size in bytes");
+	bytes = pk_package_sack_get_total_bytes (sack);
+	egg_test_assert (test, (bytes == 103424));
+
+	/************************************************************/
 	egg_test_title (test, "remove package");
 	ret = pk_package_sack_remove_package_by_id (sack, "powertop;1.8-1.fc8;i386;fedora");
 	egg_test_assert (test, ret);
diff --git a/lib/packagekit-glib2/pk-package-sack.h b/lib/packagekit-glib2/pk-package-sack.h
index f500c58..ca47897 100644
--- a/lib/packagekit-glib2/pk-package-sack.h
+++ b/lib/packagekit-glib2/pk-package-sack.h
@@ -90,6 +90,7 @@ gboolean	 pk_package_sack_remove_package_by_id	(PkPackageSack		*sack,
 							 const gchar		*package_id);
 PkPackage	*pk_package_sack_find_by_id		(PkPackageSack		*sack,
 							 const gchar		*package_id);
+guint64		 pk_package_sack_get_total_bytes	(PkPackageSack		*sack);
 
 /* merging in data to the array using Resolve() */
 void		 pk_package_sack_merge_resolve_async	(PkPackageSack		*sack,
commit 569ec7820cde902ceae465be1f0252c3a2b9e4c8
Author: kenda <kenda at fedoraproject.org>
Date:   Thu Aug 27 08:35:56 2009 +0000

    Sending translation for German

diff --git a/po/de.po b/po/de.po
index cb7ec1a..6b9bcea 100644
--- a/po/de.po
+++ b/po/de.po
@@ -20,8 +20,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: packagekit.master.de\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-08-25 08:29+0000\n"
-"PO-Revision-Date: 2009-08-25 16:10+0200\n"
+"POT-Creation-Date: 2009-08-27 02:34+0000\n"
+"PO-Revision-Date: 2009-08-27 10:36+0100\n"
 "Last-Translator: Marcus Nitzschke <kenda at fedoraproject.org>\n"
 "Language-Team: German <gnome-de at gnome.org>\n"
 "MIME-Version: 1.0\n"
@@ -46,12 +46,12 @@ msgstr "Erfolgreich"
 
 #. TRANSLATORS: if the repo is enabled
 #: ../client/pk-console.c:239
-#: ../client/pk-console.c:461
+#: ../client/pk-console.c:468
 msgid "True"
 msgstr "Wahr"
 
 #: ../client/pk-console.c:239
-#: ../client/pk-console.c:461
+#: ../client/pk-console.c:468
 msgid "False"
 msgstr "Falsch"
 
@@ -102,75 +102,80 @@ msgid "Affected packages: None"
 msgstr "Beteilige Pakete: Keine"
 
 #. TRANSLATORS: When processing, we might have to remove other dependencies
-#: ../client/pk-console.c:330
+#: ../client/pk-console.c:334
 msgid "The following packages have to be removed:"
 msgstr "Die folgenden Pakete müssen entfernt werden:"
 
 #. TRANSLATORS: When processing, we might have to install other dependencies
-#: ../client/pk-console.c:333
+#: ../client/pk-console.c:337
 msgid "The following packages have to be installed:"
 msgstr "Die folgenden Pakete müssen installiert werden:"
 
 #. TRANSLATORS: When processing, we might have to update other dependencies
-#: ../client/pk-console.c:336
+#: ../client/pk-console.c:340
 msgid "The following packages have to be updated:"
 msgstr "Die folgenden Pakete müssen aktualisiert werden:"
 
 #. TRANSLATORS: When processing, we might have to reinstall other dependencies
-#: ../client/pk-console.c:339
+#: ../client/pk-console.c:343
 msgid "The following packages have to be reinstalled:"
 msgstr "Die folgenden Pakete müssen neu installiert werden:"
 
+#. TRANSLATORS: When processing, we might have to downgrade other dependencies
+#: ../client/pk-console.c:346
+msgid "The following packages have to be downgraded:"
+msgstr "Die folgenden Pakete müssen heruntergestuft werden:"
+
 #. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:353
+#: ../client/pk-console.c:360
 msgid "Distribution"
 msgstr "Distribution"
 
 #. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:355
+#: ../client/pk-console.c:362
 msgid "Type"
 msgstr "Typ"
 
 #. TRANSLATORS: this is any summary text describing the upgrade
 #. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:357
-#: ../client/pk-console.c:380
+#: ../client/pk-console.c:364
+#: ../client/pk-console.c:387
 msgid "Summary"
 msgstr "Zusammenfassung"
 
 #. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:369
+#: ../client/pk-console.c:376
 msgid "Category"
 msgstr "Kategorie"
 
 #. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:371
+#: ../client/pk-console.c:378
 msgid "ID"
 msgstr "Kennung"
 
 #. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:374
+#: ../client/pk-console.c:381
 msgid "Parent"
 msgstr "Elternteil"
 
 #. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:377
+#: ../client/pk-console.c:384
 msgid "Name"
 msgstr "Name"
 
 #. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:383
+#: ../client/pk-console.c:390
 msgid "Icon"
 msgstr "Symbol"
 
 #. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:398
+#: ../client/pk-console.c:405
 msgid "Details about the update:"
 msgstr "Details zur Aktualisierung:"
 
 #. TRANSLATORS: details about the update, package name and version
 #. TRANSLATORS: title, the names of the packages that the method is processing
-#: ../client/pk-console.c:400
+#: ../client/pk-console.c:407
 #: ../src/pk-polkit-action-lookup.c:352
 msgid "Package"
 msgid_plural "Packages"
@@ -178,139 +183,139 @@ msgstr[0] "Paket"
 msgstr[1] "Pakete"
 
 #. TRANSLATORS: details about the update, any packages that this update updates
-#: ../client/pk-console.c:403
+#: ../client/pk-console.c:410
 msgid "Updates"
 msgstr "Aktualisierungen"
 
 #. TRANSLATORS: details about the update, any packages that this update obsoletes
-#: ../client/pk-console.c:407
+#: ../client/pk-console.c:414
 msgid "Obsoletes"
 msgstr "Veraltete"
 
 #. TRANSLATORS: details about the update, the vendor URLs
-#: ../client/pk-console.c:411
+#: ../client/pk-console.c:418
 msgid "Vendor"
 msgstr "Hersteller"
 
 #. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:415
+#: ../client/pk-console.c:422
 msgid "Bugzilla"
 msgstr "Bugzilla"
 
 #. TRANSLATORS: details about the update, the CVE URLs
-#: ../client/pk-console.c:419
+#: ../client/pk-console.c:426
 msgid "CVE"
 msgstr "CVE"
 
 #. TRANSLATORS: details about the update, if the package requires a restart
-#: ../client/pk-console.c:423
+#: ../client/pk-console.c:430
 msgid "Restart"
 msgstr "Neustart"
 
 #. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:427
+#: ../client/pk-console.c:434
 msgid "Update text"
 msgstr "Text aktualisieren"
 
 #. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:431
+#: ../client/pk-console.c:438
 msgid "Changes"
 msgstr "Änderungen"
 
 #. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:435
+#: ../client/pk-console.c:442
 msgid "State"
 msgstr "Status"
 
 #. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:440
+#: ../client/pk-console.c:447
 msgid "Issued"
 msgstr "Veröffentlicht"
 
 #. TRANSLATORS: details about the update, date the update was updated
-#: ../client/pk-console.c:445
+#: ../client/pk-console.c:452
 msgid "Updated"
 msgstr "Aktualisiert"
 
-#: ../client/pk-console.c:532
-#: ../client/pk-console.c:534
+#: ../client/pk-console.c:539
+#: ../client/pk-console.c:541
 msgid "Percentage"
 msgstr "Prozentsatz"
 
-#: ../client/pk-console.c:534
+#: ../client/pk-console.c:541
 msgid "Unknown"
 msgstr "Unbekannt"
 
 #. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:576
+#: ../client/pk-console.c:583
 msgid "System restart required by:"
 msgstr "Ein Neustart wird erfordert von:"
 
 #. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:579
+#: ../client/pk-console.c:586
 msgid "Session restart required:"
 msgstr "Ein Neustart der Sitzung ist erforderlich:"
 
 #. TRANSLATORS: a package requires the system to be restarted due to a security update
-#: ../client/pk-console.c:582
+#: ../client/pk-console.c:589
 msgid "System restart (security) required by:"
 msgstr "Ein Neustart (zur Verbesserung der Sicherheit) wird erfordert von:"
 
 #. TRANSLATORS: a package requires the session to be restarted due to a security update
-#: ../client/pk-console.c:585
+#: ../client/pk-console.c:592
 msgid "Session restart (security) required:"
 msgstr "Ein Neustart der Sitzung (zur Verbesserung der Sicherheit) ist erforderlich:"
 
 #. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:588
+#: ../client/pk-console.c:595
 msgid "Application restart required by:"
 msgstr "Ein Programm-Neustart wird benötigt von:"
 
 #. TRANSLATORS: a package needs to restart their system
-#: ../client/pk-console.c:643
+#: ../client/pk-console.c:650
 msgid "Please restart the computer to complete the update."
 msgstr "Bitte starten Sie den Computer neu, um das Update abzuschließen."
 
 #. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:646
+#: ../client/pk-console.c:653
 msgid "Please logout and login to complete the update."
 msgstr "Bitte erneut anmelden, um die Aktualisierung abzuschließen."
 
 #. TRANSLATORS: a package needs to restart the application
-#: ../client/pk-console.c:649
+#: ../client/pk-console.c:656
 msgid "Please restart the application as it is being used."
 msgstr "Starten Sie die Anwendung neu, da sie benutzt wird."
 
 #. TRANSLATORS: a package needs to restart their system (due to security)
-#: ../client/pk-console.c:652
+#: ../client/pk-console.c:659
 msgid "Please restart the computer to complete the update as important security updates have been installed."
 msgstr "Bitte starten Sie den Computer neu, um die Aktualisierung abzuschließen, denn es sind wichtige Sicherheitsaktualisierungen installiert worden."
 
 #. TRANSLATORS: a package needs to restart the session (due to security)
-#: ../client/pk-console.c:655
+#: ../client/pk-console.c:662
 msgid "Please logout and login to complete the update as important security updates have been installed."
 msgstr "Bitte erneut anmelden, um die Aktualisierung abzuschließen, denn es sind wichtige Sicherheitsaktualisierungen installiert worden."
 
 #. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:787
+#: ../client/pk-console.c:794
 #, c-format
 msgid "The package %s is already installed"
 msgstr "Das Paket »%s« ist bereits installiert"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:795
+#: ../client/pk-console.c:802
 #, c-format
 msgid "The package %s could not be installed: %s"
 msgstr "Das Paket »%s« konnte nicht installiert werden: %s"
 
 #. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
-#: ../client/pk-console.c:821
-#: ../client/pk-console.c:869
-#: ../client/pk-console.c:893
-#: ../client/pk-console.c:941
-#: ../client/pk-console.c:1037
-#: ../client/pk-console.c:1150
-#: ../client/pk-console.c:1211
+#: ../client/pk-console.c:828
+#: ../client/pk-console.c:876
+#: ../client/pk-console.c:900
+#: ../client/pk-console.c:948
+#: ../client/pk-console.c:1044
+#: ../client/pk-console.c:1157
+#: ../client/pk-console.c:1218
 #: ../client/pk-tools-common.c:62
 #: ../client/pk-tools-common.c:81
 #: ../client/pk-tools-common.c:89
@@ -319,277 +324,277 @@ msgid "Internal error: %s"
 msgstr "Interner Fehler: %s"
 
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:853
-#: ../client/pk-console.c:925
-#: ../client/pk-console.c:1243
+#: ../client/pk-console.c:860
+#: ../client/pk-console.c:932
+#: ../client/pk-console.c:1250
 msgid "Proceed with changes?"
 msgstr "Mit Änderungen fortfahren?"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:858
-#: ../client/pk-console.c:930
+#: ../client/pk-console.c:865
+#: ../client/pk-console.c:937
 msgid "The package install was canceled!"
 msgstr "Das Installieren der Pakete wurde abgebrochen!"
 
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:877
-#: ../client/pk-console.c:1611
+#: ../client/pk-console.c:884
+#: ../client/pk-console.c:1618
 #, c-format
 msgid "This tool could not install the packages: %s"
 msgstr "Folgende Pakete konnten nicht installiert werden: %s"
 
 #. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:949
+#: ../client/pk-console.c:956
 #, c-format
 msgid "This tool could not install the files: %s"
 msgstr "Folgende Dateien konnten nicht installiert werden: %s"
 
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:1005
+#: ../client/pk-console.c:1012
 #, c-format
 msgid "This tool could not remove %s: %s"
 msgstr "»%s« konnte nicht entfernt werden: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:1028
-#: ../client/pk-console.c:1066
-#: ../client/pk-console.c:1095
+#: ../client/pk-console.c:1035
+#: ../client/pk-console.c:1073
+#: ../client/pk-console.c:1102
 #, c-format
 msgid "This tool could not remove the packages: %s"
 msgstr "Folgende Pakete konnten nicht entfernt werden: %s"
 
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:1081
+#: ../client/pk-console.c:1088
 msgid "Proceed with additional packages?"
 msgstr "Mit zusätzlichen Paketen fortfahren?"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:1086
+#: ../client/pk-console.c:1093
 msgid "The package removal was canceled!"
 msgstr "Das Entfernen der Pakete wurde abgebrochen!"
 
 #. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:1127
+#: ../client/pk-console.c:1134
 #, c-format
 msgid "This tool could not download the package %s as it could not be found"
 msgstr "Das Paket »%s« konnte nicht heruntergeladen werden, weil es nicht gefunden wurde"
 
 #. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:1158
+#: ../client/pk-console.c:1165
 #, c-format
 msgid "This tool could not download the packages: %s"
 msgstr "Folgende Pakete konnten nicht heruntergeladen werden: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1190
-#: ../client/pk-console.c:1202
-#: ../client/pk-console.c:1257
+#: ../client/pk-console.c:1197
+#: ../client/pk-console.c:1209
+#: ../client/pk-console.c:1264
 #, c-format
 msgid "This tool could not update %s: %s"
 msgstr "»%s« konnte nicht aktualisiert werden: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:1248
+#: ../client/pk-console.c:1255
 msgid "The package update was canceled!"
 msgstr "Das Aktualisieren der Pakete wurde abgebrochen!"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1281
-#: ../client/pk-console.c:1289
+#: ../client/pk-console.c:1288
+#: ../client/pk-console.c:1296
 #, c-format
 msgid "This tool could not get the requirements for %s: %s"
 msgstr "Die Dateiliste für »%s« konnte nicht ermittelt werden: %s"
 
 #. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:1311
-#: ../client/pk-console.c:1319
+#: ../client/pk-console.c:1318
+#: ../client/pk-console.c:1326
 #, c-format
 msgid "This tool could not get the dependencies for %s: %s"
 msgstr "Die Abhängigkeiten für »%s« konnte nicht ermittelt werden: %s"
 
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:1341
-#: ../client/pk-console.c:1349
+#: ../client/pk-console.c:1348
+#: ../client/pk-console.c:1356
 #, c-format
 msgid "This tool could not get package details for %s: %s"
 msgstr "Die Detailinformationen für »%s« konnten nicht ermittelt werden: %s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1371
+#: ../client/pk-console.c:1378
 #, c-format
 msgid "This tool could not find the files for %s: %s"
 msgstr "Die Dateien für »%s« konnten nicht gefunden werden: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1379
+#: ../client/pk-console.c:1386
 #, c-format
 msgid "This tool could not get the file list for %s: %s"
 msgstr "Die Dateiliste für »%s« konnte nicht ermittelt werden: %s"
 
 #. TRANSLATORS: There was an error getting the list of packages. The filename follows
-#: ../client/pk-console.c:1401
+#: ../client/pk-console.c:1408
 #, c-format
 msgid "File already exists: %s"
 msgstr "Datei ist bereits vorhanden: %s"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1406
-#: ../client/pk-console.c:1462
-#: ../client/pk-console.c:1537
+#: ../client/pk-console.c:1413
+#: ../client/pk-console.c:1469
+#: ../client/pk-console.c:1544
 msgid "Getting package list"
 msgstr "Paketliste wird geholt"
 
 #. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1412
-#: ../client/pk-console.c:1468
-#: ../client/pk-console.c:1543
+#: ../client/pk-console.c:1419
+#: ../client/pk-console.c:1475
+#: ../client/pk-console.c:1550
 #, c-format
 msgid "This tool could not get package list: %s"
 msgstr "Folgende Paketliste konnte nicht geholt werden: %s"
 
 #. TRANSLATORS: There was an error saving the list
-#: ../client/pk-console.c:1423
+#: ../client/pk-console.c:1430
 #, c-format
 msgid "Failed to save to disk"
 msgstr "Speichern auf dem Datenträger ist fehlgeschlagen"
 
 #. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1457
-#: ../client/pk-console.c:1532
+#: ../client/pk-console.c:1464
+#: ../client/pk-console.c:1539
 #, c-format
 msgid "File does not exist: %s"
 msgstr "Datei nicht vorhanden: %s"
 
 #. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1489
+#: ../client/pk-console.c:1496
 msgid "Packages to add"
 msgstr "Hinzuzufügende Pakete"
 
 #. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1497
+#: ../client/pk-console.c:1504
 msgid "Packages to remove"
 msgstr "Zu entfernende Pakete"
 
 #. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1565
+#: ../client/pk-console.c:1572
 #, c-format
 msgid "No new packages need to be installed"
 msgstr "Es müssen keine neuen Pakete installiert werden"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1571
+#: ../client/pk-console.c:1578
 msgid "To install"
 msgstr "Zum Installieren"
 
 #. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1583
+#: ../client/pk-console.c:1590
 msgid "Searching for package: "
 msgstr "Suche nach Paket:"
 
 #. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1587
+#: ../client/pk-console.c:1594
 msgid "not found."
 msgstr "nicht gefunden."
 
 #. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1598
+#: ../client/pk-console.c:1605
 #, c-format
 msgid "No packages can be found to install"
 msgstr "Es können keine Pakete zum Installieren gefunden werden"
 
 #. TRANSLATORS: installing new packages from package list
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
-#: ../client/pk-console.c:1604
+#: ../client/pk-console.c:1611
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:886
 #, c-format
 msgid "Installing packages"
 msgstr "Pakete werden installiert"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1640
+#: ../client/pk-console.c:1647
 #, c-format
 msgid "This tool could not find the update details for %s: %s"
 msgstr "Die Aktualisierungsinformationen für »%s« konnten nicht gefunden werden: %s"
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1648
+#: ../client/pk-console.c:1655
 #, c-format
 msgid "This tool could not get the update details for %s: %s"
 msgstr "Die Aktualisierungsinformationen für »%s« konnten nicht ermittelt werden: %s"
 
 #. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
-#: ../client/pk-console.c:1679
+#: ../client/pk-console.c:1686
 msgid "Error:"
 msgstr "Fehler:"
 
 #. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1693
+#: ../client/pk-console.c:1700
 msgid "Package description"
 msgstr "Paketbeschreibung"
 
 #. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
-#: ../client/pk-console.c:1709
+#: ../client/pk-console.c:1716
 msgid "Message:"
 msgstr "Hinweis:"
 
 #. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1737
+#: ../client/pk-console.c:1744
 msgid "Package files"
 msgstr "Paketdateien"
 
 #. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1745
+#: ../client/pk-console.c:1752
 msgid "No files"
 msgstr "Keine Dateien"
 
 #. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1768
+#: ../client/pk-console.c:1775
 msgid "Repository signature required"
 msgstr "Signatur des Paketdepots wird benötigt"
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1778
+#: ../client/pk-console.c:1785
 msgid "Do you accept this signature?"
 msgstr "Akzeptieren Sie diese Signatur?"
 
 #. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1782
+#: ../client/pk-console.c:1789
 msgid "The signature was not accepted."
 msgstr "Diese Signatur wurde nicht akzeptiert."
 
 #. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1816
+#: ../client/pk-console.c:1823
 msgid "End user license agreement required"
 msgstr "Lizenzvereinbarung für Endbenutzer ist erforderlich"
 
 #. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1823
+#: ../client/pk-console.c:1830
 msgid "Do you agree to this license?"
 msgstr "Sind Sie mit dieser Lizenz einverstanden?"
 
 #. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1827
+#: ../client/pk-console.c:1834
 msgid "The license was refused."
 msgstr "Die Lizenz wurde zurückgewiesen."
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1856
+#: ../client/pk-console.c:1863
 msgid "The daemon crashed mid-transaction!"
 msgstr "Der Dämon stürzte während der Transaktion ab!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1909
+#: ../client/pk-console.c:1916
 msgid "PackageKit Console Interface"
 msgstr "Schnittstelle zur PackageKit-Konsole"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1911
+#: ../client/pk-console.c:1918
 msgid "Subcommands:"
 msgstr "Unterbefehle:"
 
 #. TRANSLATORS: command line argument, if we should show debugging information
 #. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:2004
+#: ../client/pk-console.c:2011
 #: ../client/pk-generate-pack.c:185
 #: ../client/pk-monitor.c:128
 #: ../contrib/command-not-found/pk-command-not-found.c:616
@@ -600,155 +605,155 @@ msgid "Show extra debugging information"
 msgstr "Erweiterte Fehlerdiagnose-Informationen anzeigen"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:2007
+#: ../client/pk-console.c:2014
 #: ../client/pk-monitor.c:130
 msgid "Show the program version and exit"
 msgstr "Programm-Version anzeigen und beenden"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:2010
+#: ../client/pk-console.c:2017
 msgid "Set the filter, e.g. installed"
 msgstr "Den Filter setzen, z.B. »installiert«"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:2013
+#: ../client/pk-console.c:2020
 msgid "Exit without waiting for actions to complete"
 msgstr "Beenden, ohne auf Beendigung der Aktionen zu warten"
 
 #. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:2040
+#: ../client/pk-console.c:2047
 msgid "This tool could not connect to system DBUS."
 msgstr "Es konnte keine Verbindung zum System-DBUS aufgebaut werden."
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:2130
+#: ../client/pk-console.c:2137
 msgid "The filter specified was invalid"
 msgstr "Der angegebene Filter war ungültig"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:2149
+#: ../client/pk-console.c:2156
 msgid "A search type is required, e.g. name"
 msgstr "Eine Suchart ist nötig, z.B. »Name«"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:2156
-#: ../client/pk-console.c:2165
-#: ../client/pk-console.c:2174
-#: ../client/pk-console.c:2183
+#: ../client/pk-console.c:2163
+#: ../client/pk-console.c:2172
+#: ../client/pk-console.c:2181
+#: ../client/pk-console.c:2190
 msgid "A search term is required"
 msgstr "Ein Suchbegriff ist erforderlich"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:2190
+#: ../client/pk-console.c:2197
 msgid "Invalid search type"
 msgstr "Ungültige Suchart"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:2196
+#: ../client/pk-console.c:2203
 msgid "A package name or filename to install is required"
 msgstr "Ein Paket- oder Dateiname ist zur Installation nötig"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2205
+#: ../client/pk-console.c:2212
 msgid "A type, key_id and package_id are required"
 msgstr "Ein Typ, Schlüsselkennung und Paketkennung sind nötig"
 
 #. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:2214
+#: ../client/pk-console.c:2221
 msgid "A package name to remove is required"
 msgstr "Zum Entfernen wird ein Paketname benötigt"
 
 #. TRANSLATORS: the user did not specify anything about what to download or where
-#: ../client/pk-console.c:2222
+#: ../client/pk-console.c:2229
 msgid "A destination directory and the package names to download are required"
 msgstr "Es ist ein Zielordner und die Namen der Pakete zum Herunterladen notwendig"
 
 #. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:2229
+#: ../client/pk-console.c:2236
 msgid "Directory not found"
 msgstr "Ordner nicht gefunden"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2237
+#: ../client/pk-console.c:2244
 msgid "A licence identifier (eula-id) is required"
 msgstr "Eine Lizenzbezeichnung (eula-id) ist erforderlich"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2247
+#: ../client/pk-console.c:2254
 msgid "A transaction identifier (tid) is required"
 msgstr "Eine Transaktionsbezeichnung (tid) ist erforderlich"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:2264
+#: ../client/pk-console.c:2271
 msgid "A package name to resolve is required"
 msgstr "Ein Paketname ist zur Auflösung erforderlich"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:2273
-#: ../client/pk-console.c:2282
+#: ../client/pk-console.c:2280
+#: ../client/pk-console.c:2289
 msgid "A repository name is required"
 msgstr "Ein Depotname wird benötigt"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2291
+#: ../client/pk-console.c:2298
 msgid "A repo name, parameter and value are required"
 msgstr "Ein Depotname, Parameter und Wert sind erforderlich"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:2305
+#: ../client/pk-console.c:2312
 msgid "An action, e.g. 'update-system' is required"
 msgstr "Ein Vorgang, z.B. »update-system«, wird benötigt"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:2312
+#: ../client/pk-console.c:2319
 msgid "A correct role is required"
 msgstr "Eine korrekte Rolle wird benötigt"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2319
+#: ../client/pk-console.c:2326
 msgid "Failed to get the time since this action was last completed"
 msgstr "Es war nicht möglich, die Zeit seit der letzten Fertigstellung festzustellen"
 
 #. TRANSLATORS: The user did not provide a package name
 #. TRANSLATORS: This is when the user fails to supply the package name
-#: ../client/pk-console.c:2329
-#: ../client/pk-console.c:2341
-#: ../client/pk-console.c:2350
-#: ../client/pk-console.c:2368
-#: ../client/pk-console.c:2377
+#: ../client/pk-console.c:2336
+#: ../client/pk-console.c:2348
+#: ../client/pk-console.c:2357
+#: ../client/pk-console.c:2375
+#: ../client/pk-console.c:2384
 #: ../client/pk-generate-pack.c:241
 msgid "A package name is required"
 msgstr "Ein Paketname wird benötigt"
 
 #. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:2359
+#: ../client/pk-console.c:2366
 msgid "A package provide string is required"
 msgstr "Die Zeichenkette »Stellt bereit« wird benötigt"
 
 #. TRANSLATORS: The user didn't specify a filename to create as a list
-#: ../client/pk-console.c:2386
+#: ../client/pk-console.c:2393
 msgid "A list file name to create is required"
 msgstr "Ein Dateiname ist zur Erstellung der Liste erforderlich"
 
 #. TRANSLATORS: The user didn't specify a filename to open as a list
-#: ../client/pk-console.c:2396
-#: ../client/pk-console.c:2406
+#: ../client/pk-console.c:2403
+#: ../client/pk-console.c:2413
 msgid "A list file to open is required"
 msgstr "Ein Dateiname ist zum Öffnen der Liste erforderlich"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2460
+#: ../client/pk-console.c:2467
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "Option »%s« wird nicht unterstützt"
 
 #. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2473
+#: ../client/pk-console.c:2480
 msgid "Incorrect privileges for this operation"
 msgstr "Sie haben nicht die notwendigen Rechte für diese Operation"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2476
+#: ../client/pk-console.c:2483
 msgid "Command failed"
 msgstr "Ausführung des Befehls fehlgeschlagen"
 
@@ -1247,7 +1252,6 @@ msgstr "Das Gerät konnte nicht gefunden werden"
 
 #. TRANSLATORS: we failed to release the current driver
 #: ../contrib/device-rebind/pk-device-rebind.c:202
-#, fuzzy
 msgid "Failed to unregister driver"
 msgstr "Treiber konnte nicht abgemeldet werden"
 
@@ -1280,7 +1284,7 @@ msgstr "Gerätepfade"
 #: ../contrib/device-rebind/pk-device-rebind.c:314
 #, fuzzy
 msgid "PackageKit Device Reloader"
-msgstr "PackageKit "
+msgstr "PackageKit Geräte-Aktualisierer"
 
 #. TRANSLATORS: user did not specify a valid device sysfs path
 #: ../contrib/device-rebind/pk-device-rebind.c:322
commit 1eab885d2150a1b9d89bd87fb40085988d94dbeb
Author: Richard Hughes <richard at hughsie.com>
Date:   Thu Aug 27 09:34:55 2009 +0100

    glib2: add pk_package_sack_merge_details_async() and pk_package_sack_merge_update_detail_async()

diff --git a/lib/packagekit-glib2/pk-package-sack.c b/lib/packagekit-glib2/pk-package-sack.c
index 36b9e13..9a8e937 100644
--- a/lib/packagekit-glib2/pk-package-sack.c
+++ b/lib/packagekit-glib2/pk-package-sack.c
@@ -308,10 +308,10 @@ typedef struct {
 /***************************************************************************************************/
 
 /**
- * pk_package_sack_merge_resolve_state_finish:
+ * pk_package_sack_merge_bool_state_finish:
  **/
 static void
-pk_package_sack_merge_resolve_state_finish (PkPackageSackState *state, GError *error)
+pk_package_sack_merge_bool_state_finish (PkPackageSackState *state, GError *error)
 {
 	/* remove weak ref */
 	if (state->sack != NULL)
@@ -357,7 +357,7 @@ pk_package_sack_merge_resolve_cb (GObject *source_object, GAsyncResult *res, PkP
 	results = pk_client_resolve_finish (client, res, &error);
 	if (results == NULL) {
 		egg_warning ("failed to resolve: %s", error->message);
-		pk_package_sack_merge_resolve_state_finish (state, error);
+		pk_package_sack_merge_bool_state_finish (state, error);
 		g_error_free (error);
 		return;
 	}
@@ -365,9 +365,9 @@ pk_package_sack_merge_resolve_cb (GObject *source_object, GAsyncResult *res, PkP
 	/* get the packages */
 	packages = pk_results_get_package_array (results);
 	if (packages->len == 0) {
-		egg_error ("%i", state->ret);
+		egg_warning ("%i", state->ret);
 		error = g_error_new (1, 0, "no packages found!");
-		pk_package_sack_merge_resolve_state_finish (state, error);
+		pk_package_sack_merge_bool_state_finish (state, error);
 		g_error_free (error);
 		return;
 	}
@@ -396,7 +396,7 @@ pk_package_sack_merge_resolve_cb (GObject *source_object, GAsyncResult *res, PkP
 	g_object_unref (results);
 
 	/* we're done */
-	pk_package_sack_merge_resolve_state_finish (state, error);
+	pk_package_sack_merge_bool_state_finish (state, error);
 }
 
 /**
@@ -443,7 +443,7 @@ pk_package_sack_merge_resolve_async (PkPackageSack *sack, GCancellable *cancella
  * @res: the #GAsyncResult
  * @error: A #GError or %NULL
  *
- * Gets the result from the asynchronous function. 
+ * Gets the result from the asynchronous function.
  *
  * Return value: %TRUE for success
  **/
@@ -470,6 +470,279 @@ pk_package_sack_merge_resolve_finish (PkPackageSack *package_sack, GAsyncResult
 /***************************************************************************************************/
 
 /**
+ * pk_package_sack_merge_details_cb:
+ **/
+static void
+pk_package_sack_merge_details_cb (GObject *source_object, GAsyncResult *res, PkPackageSackState *state)
+{
+	PkClient *client = PK_CLIENT (source_object);
+	GError *error = NULL;
+	PkResults *results;
+	GPtrArray *details;
+	const PkResultItemDetails *item;
+	guint i;
+	PkPackage *package;
+
+	/* get the results */
+	results = pk_client_get_details_finish (client, res, &error);
+	if (results == NULL) {
+		egg_warning ("failed to details: %s", error->message);
+		pk_package_sack_merge_bool_state_finish (state, error);
+		g_error_free (error);
+		return;
+	}
+
+	/* get the details */
+	details = pk_results_get_details_array (results);
+	if (details->len == 0) {
+		egg_error ("%i", state->ret);
+		error = g_error_new (1, 0, "no details found!");
+		pk_package_sack_merge_bool_state_finish (state, error);
+		g_error_free (error);
+		return;
+	}
+
+	/* set data on each item */
+	for (i=0; i<details->len; i++) {
+		item = g_ptr_array_index (details, i);
+
+		egg_debug ("%s\t%s\t%s", item->package_id, item->url, item->license);
+
+		/* get package, and set data */
+		package = pk_package_sack_find_by_id (state->sack, item->package_id);
+		if (package != NULL) {
+			g_object_set (package,
+				      "license", item->license,
+				      "group", item->group_enum,
+				      "description", item->description,
+				      "url", item->url,
+				      "size", item->size,
+				      NULL);
+			g_object_unref (package);
+		} else {
+			egg_warning ("failed to find %s", item->package_id);
+		}
+	}
+
+	/* all okay */
+	state->ret = TRUE;
+	g_object_unref (results);
+
+	/* we're done */
+	pk_package_sack_merge_bool_state_finish (state, error);
+}
+
+/**
+ * pk_package_sack_merge_details_async:
+ * @package_sack: a valid #PkPackageSack instance
+ * @cancellable: a #GCancellable or %NULL
+ * @callback: the function to run on completion
+ * @user_data: the data to pass to @callback
+ *
+ * Merges in details about packages.
+ **/
+void
+pk_package_sack_merge_details_async (PkPackageSack *sack, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data)
+{
+	GSimpleAsyncResult *res;
+	PkPackageSackState *state;
+	gchar **package_ids;
+
+	g_return_if_fail (PK_IS_PACKAGE_SACK (sack));
+	g_return_if_fail (callback != NULL);
+
+	res = g_simple_async_result_new (G_OBJECT (sack), callback, user_data, pk_package_sack_merge_details_async);
+
+	/* save state */
+	state = g_slice_new0 (PkPackageSackState);
+	state->res = g_object_ref (res);
+	state->cancellable = cancellable;
+	state->sack = sack;
+	state->ret = FALSE;
+	g_object_add_weak_pointer (G_OBJECT (state->sack), (gpointer) &state->sack);
+
+	/* start details async */
+	package_ids = pk_package_sack_get_package_ids (sack);
+	pk_client_get_details_async (sack->priv->client, package_ids,
+				     cancellable, NULL, NULL, (GAsyncReadyCallback) pk_package_sack_merge_details_cb, state);
+
+	g_strfreev (package_ids);
+	g_object_unref (res);
+}
+
+/**
+ * pk_package_sack_merge_details_finish:
+ * @package_sack: a valid #PkPackageSack instance
+ * @res: the #GAsyncResult
+ * @error: A #GError or %NULL
+ *
+ * Gets the result from the asynchronous function.
+ *
+ * Return value: %TRUE for success
+ **/
+gboolean
+pk_package_sack_merge_details_finish (PkPackageSack *package_sack, GAsyncResult *res, GError **error)
+{
+	GSimpleAsyncResult *simple;
+	gpointer source_tag;
+
+	g_return_val_if_fail (PK_IS_PACKAGE_SACK (package_sack), FALSE);
+	g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (res), FALSE);
+
+	simple = G_SIMPLE_ASYNC_RESULT (res);
+	source_tag = g_simple_async_result_get_source_tag (simple);
+
+	g_return_val_if_fail (source_tag == pk_package_sack_merge_details_async, FALSE);
+
+	if (g_simple_async_result_propagate_error (simple, error))
+		return FALSE;
+
+	return g_simple_async_result_get_op_res_gboolean (simple);
+}
+
+/***************************************************************************************************/
+
+/**
+ * pk_package_sack_merge_update_detail_cb:
+ **/
+static void
+pk_package_sack_merge_update_detail_cb (GObject *source_object, GAsyncResult *res, PkPackageSackState *state)
+{
+	PkClient *client = PK_CLIENT (source_object);
+	GError *error = NULL;
+	PkResults *results;
+	GPtrArray *update_details;
+	const PkResultItemUpdateDetail *item;
+	guint i;
+	PkPackage *package;
+
+	/* get the results */
+	results = pk_client_get_update_detail_finish (client, res, &error);
+	if (results == NULL) {
+		egg_warning ("failed to update_detail: %s", error->message);
+		pk_package_sack_merge_bool_state_finish (state, error);
+		g_error_free (error);
+		return;
+	}
+
+	/* get the update_details */
+	update_details = pk_results_get_update_detail_array (results);
+	if (update_details->len == 0) {
+		egg_error ("%i", state->ret);
+		error = g_error_new (1, 0, "no update details found!");
+		pk_package_sack_merge_bool_state_finish (state, error);
+		g_error_free (error);
+		return;
+	}
+
+	/* set data on each item */
+	for (i=0; i<update_details->len; i++) {
+		item = g_ptr_array_index (update_details, i);
+
+		egg_debug ("%s\t%s\t%s", item->package_id, item->updates, item->changelog);
+
+		/* get package, and set data */
+		package = pk_package_sack_find_by_id (state->sack, item->package_id);
+		if (package != NULL) {
+			g_object_set (package,
+				      "update-updates", item->updates,
+				      "update-obsoletes", item->obsoletes,
+				      "update-vendor-url", item->vendor_url,
+				      "update-bugzilla-url", item->bugzilla_url,
+				      "update-cve-url", item->cve_url,
+				      "update-restart", item->restart_enum,
+				      "update-text", item->update_text,
+				      "update-changelog", item->changelog,
+				      "update-state", item->state_enum,
+				      "update-issued", item->issued,
+				      "update-updated", item->updated,
+				      NULL);
+			g_object_unref (package);
+		} else {
+			egg_warning ("failed to find %s", item->package_id);
+		}
+	}
+
+	/* all okay */
+	state->ret = TRUE;
+	g_object_unref (results);
+
+	/* we're done */
+	pk_package_sack_merge_bool_state_finish (state, error);
+}
+
+/**
+ * pk_package_sack_merge_update_detail_async:
+ * @package_sack: a valid #PkPackageSack instance
+ * @cancellable: a #GCancellable or %NULL
+ * @callback: the function to run on completion
+ * @user_data: the data to pass to @callback
+ *
+ * Merges in update details about packages.
+ **/
+void
+pk_package_sack_merge_update_detail_async (PkPackageSack *sack, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data)
+{
+	GSimpleAsyncResult *res;
+	PkPackageSackState *state;
+	gchar **package_ids;
+
+	g_return_if_fail (PK_IS_PACKAGE_SACK (sack));
+	g_return_if_fail (callback != NULL);
+
+	res = g_simple_async_result_new (G_OBJECT (sack), callback, user_data, pk_package_sack_merge_update_detail_async);
+
+	/* save state */
+	state = g_slice_new0 (PkPackageSackState);
+	state->res = g_object_ref (res);
+	state->cancellable = cancellable;
+	state->sack = sack;
+	state->ret = FALSE;
+	g_object_add_weak_pointer (G_OBJECT (state->sack), (gpointer) &state->sack);
+
+	/* start update_detail async */
+	package_ids = pk_package_sack_get_package_ids (sack);
+	pk_client_get_update_detail_async (sack->priv->client, package_ids,
+					   cancellable, NULL, NULL, (GAsyncReadyCallback) pk_package_sack_merge_update_detail_cb, state);
+
+	g_strfreev (package_ids);
+	g_object_unref (res);
+}
+
+/**
+ * pk_package_sack_merge_update_detail_finish:
+ * @package_sack: a valid #PkPackageSack instance
+ * @res: the #GAsyncResult
+ * @error: A #GError or %NULL
+ *
+ * Gets the result from the asynchronous function.
+ *
+ * Return value: %TRUE for success
+ **/
+gboolean
+pk_package_sack_merge_update_detail_finish (PkPackageSack *package_sack, GAsyncResult *res, GError **error)
+{
+	GSimpleAsyncResult *simple;
+	gpointer source_tag;
+
+	g_return_val_if_fail (PK_IS_PACKAGE_SACK (package_sack), FALSE);
+	g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (res), FALSE);
+
+	simple = G_SIMPLE_ASYNC_RESULT (res);
+	source_tag = g_simple_async_result_get_source_tag (simple);
+
+	g_return_val_if_fail (source_tag == pk_package_sack_merge_update_detail_async, FALSE);
+
+	if (g_simple_async_result_propagate_error (simple, error))
+		return FALSE;
+
+	return g_simple_async_result_get_op_res_gboolean (simple);
+}
+
+/***************************************************************************************************/
+
+
+/**
  * pk_package_sack_get_property:
  **/
 static void
@@ -615,6 +888,42 @@ pk_package_sack_test_resolve_cb (GObject *object, GAsyncResult *res, EggTest *te
 	egg_test_loop_quit (test);
 }
 
+static void
+pk_package_sack_test_details_cb (GObject *object, GAsyncResult *res, EggTest *test)
+{
+	PkPackageSack *sack = PK_PACKAGE_SACK (object);
+	GError *error = NULL;
+	gboolean ret;
+
+	/* get the result */
+	ret = pk_package_sack_merge_details_finish (sack, res, &error);
+	if (!ret) {
+		egg_test_failed (test, "failed to merge details: %s", error->message);
+		g_error_free (error);
+		return;
+	}
+
+	egg_test_loop_quit (test);
+}
+
+static void
+pk_package_sack_test_update_detail_cb (GObject *object, GAsyncResult *res, EggTest *test)
+{
+	PkPackageSack *sack = PK_PACKAGE_SACK (object);
+	GError *error = NULL;
+	gboolean ret;
+
+	/* get the result */
+	ret = pk_package_sack_merge_update_detail_finish (sack, res, &error);
+	if (!ret) {
+		egg_test_failed (test, "failed to merge update detail: %s", error->message);
+		g_error_free (error);
+		return;
+	}
+
+	egg_test_loop_quit (test);
+}
+
 void
 pk_package_sack_test (EggTest *test)
 {
@@ -641,17 +950,17 @@ pk_package_sack_test (EggTest *test)
 
 	/************************************************************/
 	egg_test_title (test, "remove package not present");
-	ret = pk_package_sack_remove_package_by_id (sack, "glib2;2.14.0;i386;fedora");
+	ret = pk_package_sack_remove_package_by_id (sack, "powertop;1.8-1.fc8;i386;fedora");
 	egg_test_assert (test, !ret);
 
 	/************************************************************/
 	egg_test_title (test, "find package not present");
-	package = pk_package_sack_find_by_id (sack, "glib2;2.14.0;i386;fedora");
+	package = pk_package_sack_find_by_id (sack, "powertop;1.8-1.fc8;i386;fedora");
 	egg_test_assert (test, (package == NULL));
 
 	/************************************************************/
 	egg_test_title (test, "add package");
-	ret = pk_package_sack_add_package_by_id (sack, "glib2;2.14.0;i386;fedora", NULL);
+	ret = pk_package_sack_add_package_by_id (sack, "powertop;1.8-1.fc8;i386;fedora", NULL);
 	egg_test_assert (test, ret);
 
 	/************************************************************/
@@ -667,7 +976,7 @@ pk_package_sack_test (EggTest *test)
 
 	/************************************************************/
 	egg_test_title (test, "find package which is present");
-	package = pk_package_sack_find_by_id (sack, "glib2;2.14.0;i386;fedora");
+	package = pk_package_sack_find_by_id (sack, "powertop;1.8-1.fc8;i386;fedora");
 	egg_test_assert (test, (package != NULL));
 
 	/************************************************************/
@@ -676,7 +985,7 @@ pk_package_sack_test (EggTest *test)
 		      "info", &info,
 		      "summary", &text,
 		      NULL);
-	egg_test_assert (test, (g_strcmp0 (text, "The GLib library") == 0));
+	egg_test_assert (test, (g_strcmp0 (text, "Power consumption monitor") == 0));
 
 	/************************************************************/
 	egg_test_title (test, "check new info");
@@ -686,8 +995,47 @@ pk_package_sack_test (EggTest *test)
 	g_object_unref (package);
 
 	/************************************************************/
+	egg_test_title (test, "merge details results");
+	pk_package_sack_merge_details_async (sack, NULL, (GAsyncReadyCallback) pk_package_sack_test_details_cb, test);
+	egg_test_loop_wait (test, 5000);
+	egg_test_success (test, "got details in %i", egg_test_elapsed (test));
+
+	/************************************************************/
+	egg_test_title (test, "find package which is present");
+	package = pk_package_sack_find_by_id (sack, "powertop;1.8-1.fc8;i386;fedora");
+	egg_test_assert (test, (package != NULL));
+
+	/************************************************************/
+	egg_test_title (test, "check new url");
+	g_object_get (package,
+		      "url", &text,
+		      NULL);
+	egg_test_assert (test, (g_strcmp0 (text, "http://live.gnome.org/powertop") == 0));
+
+	/************************************************************/
+	egg_test_title (test, "merge update detail results");
+	pk_package_sack_merge_update_detail_async (sack, NULL, (GAsyncReadyCallback) pk_package_sack_test_update_detail_cb, test);
+	egg_test_loop_wait (test, 5000);
+	egg_test_success (test, "got update detail in %i", egg_test_elapsed (test));
+
+	/************************************************************/
+	egg_test_title (test, "find package which is present");
+	package = pk_package_sack_find_by_id (sack, "powertop;1.8-1.fc8;i386;fedora");
+	egg_test_assert (test, (package != NULL));
+
+	/************************************************************/
+	egg_test_title (test, "check new vendor url");
+	g_object_get (package,
+		      "update-vendor-url", &text,
+		      NULL);
+	egg_test_assert (test, (g_strcmp0 (text, "http://www.distro-update.org/page?moo;Bugfix release for powertop") == 0));
+
+	g_free (text);
+	g_object_unref (package);
+
+	/************************************************************/
 	egg_test_title (test, "remove package");
-	ret = pk_package_sack_remove_package_by_id (sack, "glib2;2.14.0;i386;fedora");
+	ret = pk_package_sack_remove_package_by_id (sack, "powertop;1.8-1.fc8;i386;fedora");
 	egg_test_assert (test, ret);
 
 	/************************************************************/
@@ -697,7 +1045,7 @@ pk_package_sack_test (EggTest *test)
 
 	/************************************************************/
 	egg_test_title (test, "remove already removed package");
-	ret = pk_package_sack_remove_package_by_id (sack, "glib2;2.14.0;i386;fedora");
+	ret = pk_package_sack_remove_package_by_id (sack, "powertop;1.8-1.fc8;i386;fedora");
 	egg_test_assert (test, !ret);
 
 	g_object_unref (sack);
diff --git a/lib/packagekit-glib2/pk-package-sack.h b/lib/packagekit-glib2/pk-package-sack.h
index 8fd9fbb..f500c58 100644
--- a/lib/packagekit-glib2/pk-package-sack.h
+++ b/lib/packagekit-glib2/pk-package-sack.h
@@ -109,12 +109,12 @@ gboolean	 pk_package_sack_merge_details_finish	(PkPackageSack		*sack,
 							 GAsyncResult		*res,
 							 GError			**error);
 
-/* merging in data to the array using UpdateDetails() */
-void		 pk_package_sack_merge_update_details_async (PkPackageSack	*sack,
+/* merging in data to the array using UpdateDetail() */
+void		 pk_package_sack_merge_update_detail_async (PkPackageSack	*sack,
 							 GCancellable		*cancellable,
 							 GAsyncReadyCallback	 callback,
 							 gpointer		 user_data);
-gboolean	 pk_package_sack_merge_update_details_finish (PkPackageSack	*sack,
+gboolean	 pk_package_sack_merge_update_detail_finish (PkPackageSack	*sack,
 							 GAsyncResult		*res,
 							 GError			**error);
 
diff --git a/lib/packagekit-glib2/pk-package.c b/lib/packagekit-glib2/pk-package.c
index af20bb0..b25f658 100644
--- a/lib/packagekit-glib2/pk-package.c
+++ b/lib/packagekit-glib2/pk-package.c
@@ -368,16 +368,22 @@ pk_package_set_property (GObject *object, guint prop_id, const GValue *value, GP
 		priv->update_state = g_value_get_uint (value);
 		break;
 	case PROP_UPDATE_ISSUED:
-		if (priv->update_issued != NULL)
+		if (priv->update_issued != NULL) {
 			g_date_free (priv->update_issued);
+			priv->update_issued = NULL;
+		}
 		date = g_value_get_pointer (value);
-		priv->update_issued = g_date_new_dmy (date->day, date->month, date->year);
+		if (date != NULL)
+			priv->update_issued = g_date_new_dmy (date->day, date->month, date->year);
 		break;
 	case PROP_UPDATE_UPDATED:
-		if (priv->update_updated != NULL)
+		if (priv->update_updated != NULL) {
 			g_date_free (priv->update_updated);
+			priv->update_updated = NULL;
+		}
 		date = g_value_get_pointer (value);
-		priv->update_updated = g_date_new_dmy (date->day, date->month, date->year);
+		if (date != NULL)
+			priv->update_updated = g_date_new_dmy (date->day, date->month, date->year);
 		break;
 	default:
 		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@@ -554,10 +560,10 @@ pk_package_class_init (PkPackageClass *klass)
 	/**
 	 * PkPackage:update-restart:
 	 */
-	pspec = g_param_spec_string ("update-restart", NULL,
-				     "The update restart type",
-				     NULL,
-				     G_PARAM_READWRITE);
+	pspec = g_param_spec_uint ("update-restart", NULL,
+				   "The update restart type",
+				   0, PK_RESTART_ENUM_UNKNOWN, PK_RESTART_ENUM_UNKNOWN,
+				   G_PARAM_READWRITE);
 	g_object_class_install_property (object_class, PROP_UPDATE_RESTART, pspec);
 
 	/**
commit 0e50abce10dd0fc22c506057f3443940b3603de2
Author: Richard Hughes <richard at hughsie.com>
Date:   Thu Aug 27 08:56:31 2009 +0100

    trivial: Update LINGUAS

diff --git a/po/LINGUAS b/po/LINGUAS
index 05d2462..103f148 100644
--- a/po/LINGUAS
+++ b/po/LINGUAS
@@ -37,5 +37,6 @@ ta
 te
 th
 tr
+uk
 zh_CN
 zh_TW
commit f384fa6f0ab8134e32c86fb0a456341a6310b54e
Merge: 6fdec97... d66cdac...
Author: Richard Hughes <richard at hughsie.com>
Date:   Thu Aug 27 08:52:21 2009 +0100

    Merge branch 'master' of git+ssh://git.packagekit.org/srv/git/PackageKit

commit 6fdec9777907753d99d7937c06c531bebfa14d04
Author: Richard Hughes <richard at hughsie.com>
Date:   Thu Aug 27 08:51:26 2009 +0100

    glib2: add PkClient ::Details and ::UpdateDetail code

diff --git a/lib/packagekit-glib2/Makefile.am b/lib/packagekit-glib2/Makefile.am
index 10ac001..d281443 100644
--- a/lib/packagekit-glib2/Makefile.am
+++ b/lib/packagekit-glib2/Makefile.am
@@ -51,6 +51,8 @@ libpackagekit_glib2_la_SOURCES =				\
 	pk-package-sack.h					\
 	pk-control.c						\
 	pk-control.h						\
+	pk-common.c						\
+	pk-common.h						\
 	pk-client.c						\
 	pk-client.h						\
 	pk-marshal.c						\
diff --git a/lib/packagekit-glib2/pk-client.c b/lib/packagekit-glib2/pk-client.c
index 22cd3e3..95357ac 100644
--- a/lib/packagekit-glib2/pk-client.c
+++ b/lib/packagekit-glib2/pk-client.c
@@ -244,6 +244,49 @@ pk_client_status_changed_cb (DBusGProxy *proxy, const gchar *status_text, PkClie
 }
 
 /**
+ * pk_client_details_cb:
+ */
+static void
+pk_client_details_cb (DBusGProxy *proxy, const gchar *package_id, const gchar *license,
+		      const gchar *group_text, const gchar *description, const gchar *url,
+		      guint64 size, PkClientState *state)
+{
+	PkGroupEnum group_enum;
+	group_enum = pk_group_enum_from_text (group_text);
+	pk_results_add_details (state->results, package_id, license, group_enum, description, url, size);
+}
+
+/**
+ * pk_client_update_detail_cb:
+ */
+static void
+pk_client_update_detail_cb (DBusGProxy  *proxy, const gchar *package_id, const gchar *updates,
+			    const gchar *obsoletes, const gchar *vendor_url, const gchar *bugzilla_url,
+			    const gchar *cve_url, const gchar *restart_text, const gchar *update_text,
+			    const gchar *changelog, const gchar *state_text, const gchar *issued_text,
+			    const gchar *updated_text, PkClientState *state)
+{
+	GDate *issued;
+	GDate *updated;
+	PkUpdateStateEnum state_enum;
+	PkRestartEnum restart_enum;
+
+	restart_enum = pk_restart_enum_from_text (restart_text);
+	state_enum = pk_update_state_enum_from_text (state_text);
+	issued = pk_iso8601_to_date (issued_text);
+	updated = pk_iso8601_to_date (updated_text);
+
+	pk_results_add_update_detail (state->results, package_id, updates, obsoletes, vendor_url,
+				      bugzilla_url, cve_url, restart_enum, update_text, changelog,
+				      state_enum, issued, updated);
+
+	if (issued != NULL)
+		g_date_free (issued);
+	if (updated != NULL)
+		g_date_free (updated);
+}
+
+/**
  * pk_client_connect_proxy:
  **/
 static void
@@ -301,15 +344,15 @@ pk_client_connect_proxy (DBusGProxy *proxy, PkClientState *state)
 				     G_CALLBACK (pk_client_status_changed_cb), state, NULL);
 	dbus_g_proxy_connect_signal (proxy, "ProgressChanged",
 				     G_CALLBACK (pk_client_progress_changed_cb), state, NULL);
+	dbus_g_proxy_connect_signal (proxy, "Details",
+				     G_CALLBACK (pk_client_details_cb), state, NULL);
+	dbus_g_proxy_connect_signal (proxy, "UpdateDetail",
+				     G_CALLBACK (pk_client_update_detail_cb), state, NULL);
 #if 0
 	dbus_g_proxy_connect_signal (proxy, "Transaction",
 				     G_CALLBACK (pk_client_transaction_cb), state, NULL);
-	dbus_g_proxy_connect_signal (proxy, "UpdateDetail",
-				     G_CALLBACK (pk_client_update_detail_cb), state, NULL);
 	dbus_g_proxy_connect_signal (proxy, "DistroUpgrade",
 				     G_CALLBACK (pk_client_distro_upgrade_cb), state, NULL);
-	dbus_g_proxy_connect_signal (proxy, "Details",
-				     G_CALLBACK (pk_client_details_cb), state, NULL);
 	dbus_g_proxy_connect_signal (proxy, "Files",
 				     G_CALLBACK (pk_client_files_cb), state, NULL);
 	dbus_g_proxy_connect_signal (proxy, "RepoSignatureRequired",
@@ -351,13 +394,15 @@ pk_client_disconnect_proxy (DBusGProxy *proxy, PkClientState *state)
 					G_CALLBACK (pk_client_progress_changed_cb), state);
 	dbus_g_proxy_disconnect_signal (proxy, "StatusChanged",
 					G_CALLBACK (pk_client_status_changed_cb), state);
+	dbus_g_proxy_disconnect_signal (proxy, "Details",
+					G_CALLBACK (pk_client_details_cb), state);
+	dbus_g_proxy_disconnect_signal (proxy, "UpdateDetail",
+					G_CALLBACK (pk_client_update_detail_cb), state);
 #if 0
 	dbus_g_proxy_disconnect_signal (proxy, "Transaction",
 					G_CALLBACK (pk_client_transaction_cb), state);
 	dbus_g_proxy_disconnect_signal (proxy, "DistroUpgrade",
 					G_CALLBACK (pk_client_distro_upgrade_cb), state);
-	dbus_g_proxy_disconnect_signal (proxy, "Details",
-					G_CALLBACK (pk_client_details_cb), state);
 	dbus_g_proxy_disconnect_signal (proxy, "Files",
 					G_CALLBACK (pk_client_files_cb), state);
 	dbus_g_proxy_disconnect_signal (proxy, "RepoSignatureRequired",
@@ -463,7 +508,7 @@ pk_client_get_tid_cb (GObject *object, GAsyncResult *res, PkClientState *state)
 void
 pk_client_resolve_async (PkClient *client, PkBitfield filters, gchar **packages, GCancellable *cancellable,
 			 PkClientProgressCallback callback_progress, PkClientStatusCallback callback_status,
-			 PkClientPackageCallback callback_package, GAsyncReadyCallback callback_ready, gpointer user_data)
+			 GAsyncReadyCallback callback_ready, gpointer user_data)
 {
 	GSimpleAsyncResult *res;
 	PkClientState *state;
@@ -486,7 +531,6 @@ pk_client_resolve_async (PkClient *client, PkBitfield filters, gchar **packages,
 	state->packages = g_strdupv (packages);
 	state->callback_progress = callback_progress;
 	state->callback_status = callback_status;
-	state->callback_package = callback_package;
 	state->user_data = user_data;
 	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
 
@@ -542,7 +586,7 @@ pk_client_resolve_finish (PkClient *client, GAsyncResult *res, GError **error)
 void
 pk_client_get_details_async (PkClient *client, gchar **packages, GCancellable *cancellable,
 			     PkClientProgressCallback callback_progress, PkClientStatusCallback callback_status,
-			     PkClientPackageCallback callback_package, GAsyncReadyCallback callback_ready, gpointer user_data)
+			     GAsyncReadyCallback callback_ready, gpointer user_data)
 {
 	GSimpleAsyncResult *res;
 	PkClientState *state;
@@ -564,7 +608,6 @@ pk_client_get_details_async (PkClient *client, gchar **packages, GCancellable *c
 	state->packages = g_strdupv (packages);
 	state->callback_progress = callback_progress;
 	state->callback_status = callback_status;
-	state->callback_package = callback_package;
 	state->user_data = user_data;
 	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
 
@@ -620,7 +663,7 @@ pk_client_get_details_finish (PkClient *client, GAsyncResult *res, GError **erro
 void
 pk_client_get_update_detail_async (PkClient *client, gchar **packages, GCancellable *cancellable,
 				   PkClientProgressCallback callback_progress, PkClientStatusCallback callback_status,
-				   PkClientPackageCallback callback_package, GAsyncReadyCallback callback_ready, gpointer user_data)
+				   GAsyncReadyCallback callback_ready, gpointer user_data)
 {
 	GSimpleAsyncResult *res;
 	PkClientState *state;
@@ -642,7 +685,6 @@ pk_client_get_update_detail_async (PkClient *client, gchar **packages, GCancella
 	state->packages = g_strdupv (packages);
 	state->callback_progress = callback_progress;
 	state->callback_status = callback_status;
-	state->callback_package = callback_package;
 	state->user_data = user_data;
 	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
 
@@ -932,9 +974,51 @@ pk_client_test_resolve_cb (GObject *object, GAsyncResult *res, EggTest *test)
 	egg_test_loop_quit (test);
 }
 
+static void
+pk_client_test_get_details_cb (GObject *object, GAsyncResult *res, EggTest *test)
+{
+	PkClient *client = PK_CLIENT (object);
+	GError *error = NULL;
+	PkResults *results = NULL;
+	PkExitEnum exit_enum;
+	GPtrArray *details;
+	const PkResultItemDetails *item;
+	guint i;
+
+	/* get the results */
+	results = pk_client_get_details_finish (client, res, &error);
+	if (results == NULL) {
+		egg_test_failed (test, "failed to resolve: %s", error->message);
+		g_error_free (error);
+		return;
+	}
+
+	exit_enum = pk_results_get_exit_code (results);
+	if (exit_enum != PK_EXIT_ENUM_SUCCESS)
+		egg_test_failed (test, "failed to resolve success: %s", pk_exit_enum_to_text (exit_enum));
+
+	details = pk_results_get_details_array (results);
+	if (details == NULL)
+		egg_test_failed (test, "no details!");
+
+	/* list, just for shits and giggles */
+	for (i=0; i<details->len; i++) {
+		item = g_ptr_array_index (details, i);
+		egg_debug ("%s\t%s\t%s", item->package_id, item->url, item->description);
+	}
+
+	if (details->len != 1)
+		egg_test_failed (test, "invalid number of details: %i", details->len);
+
+	g_ptr_array_unref (details);
+
+	egg_debug ("results exit enum = %s", pk_exit_enum_to_text (exit_enum));
+	egg_test_loop_quit (test);
+}
+
 static guint _progress_cb = 0;
 static guint _status_cb = 0;
-static guint _package_cb = 0;
+//static guint _package_cb = 0;
 
 void
 pk_client_test_progress_cb (PkClient *client, gint percentage, EggTest *test)
@@ -950,12 +1034,14 @@ pk_client_test_status_cb (PkClient *client, PkStatusEnum status, EggTest *test)
 	_status_cb++;
 }
 
+#if 0
 void
 pk_client_test_package_cb (PkClient *client, const gchar *package_id, EggTest *test)
 {
 	egg_debug ("package now %s", package_id);
 	_package_cb++;
 }
+#endif
 
 void
 pk_client_test (EggTest *test)
@@ -977,7 +1063,6 @@ pk_client_test (EggTest *test)
 	pk_client_resolve_async (client, pk_bitfield_value (PK_FILTER_ENUM_INSTALLED), package_ids, NULL,
 				 (PkClientProgressCallback) pk_client_test_progress_cb,
 				 (PkClientStatusCallback) pk_client_test_status_cb,
-				 (PkClientPackageCallback) pk_client_test_package_cb,
 				 (GAsyncReadyCallback) pk_client_test_resolve_cb, test);
 	g_strfreev (package_ids);
 	egg_test_loop_wait (test, 15000);
@@ -997,12 +1082,35 @@ pk_client_test (EggTest *test)
 	else
 		egg_test_failed (test, "got %i updates", _status_cb);
 
+	/* reset */
+	_progress_cb = 0;
+	_status_cb = 0;
+//	_package_cb = 0;
+
 	/************************************************************/
-	egg_test_title (test, "got package updates");
-	if (_package_cb > 0)
+	egg_test_title (test, "get details about package");
+	package_ids = g_strsplit ("powertop;1.8-1.fc8;i386;fedora", ",", -1);
+	pk_client_get_details_async (client, package_ids, NULL,
+				     (PkClientProgressCallback) pk_client_test_progress_cb,
+				     (PkClientStatusCallback) pk_client_test_status_cb,
+				     (GAsyncReadyCallback) pk_client_test_get_details_cb, test);
+	g_strfreev (package_ids);
+	egg_test_loop_wait (test, 15000);
+	egg_test_success (test, "resolved in %i", egg_test_elapsed (test));
+
+	/************************************************************/
+	egg_test_title (test, "got progress updates");
+	if (_progress_cb > 0)
 		egg_test_success (test, NULL);
 	else
-		egg_test_failed (test, "got %i updates", _package_cb);
+		egg_test_failed (test, "got %i updates", _progress_cb);
+
+	/************************************************************/
+	egg_test_title (test, "got status updates");
+	if (_status_cb > 0)
+		egg_test_success (test, NULL);
+	else
+		egg_test_failed (test, "got %i updates", _status_cb);
 
 	g_object_unref (client);
 
diff --git a/lib/packagekit-glib2/pk-client.h b/lib/packagekit-glib2/pk-client.h
index 5bbd9ce..81d1ea8 100644
--- a/lib/packagekit-glib2/pk-client.h
+++ b/lib/packagekit-glib2/pk-client.h
@@ -91,7 +91,6 @@ void		 pk_client_resolve_async		(PkClient		*client,
 							 GCancellable		*cancellable,
 							 PkClientProgressCallback callback_progress,
 							 PkClientStatusCallback	 callback_status,
-							 PkClientPackageCallback callback_package,
 							 GAsyncReadyCallback	 callback_ready,
 							 gpointer		 user_data);
 PkResults	*pk_client_resolve_finish		(PkClient		*client,
@@ -104,7 +103,6 @@ void		 pk_client_get_details_async		(PkClient		*client,
 							 GCancellable		*cancellable,
 							 PkClientProgressCallback callback_progress,
 							 PkClientStatusCallback	 callback_status,
-							 PkClientPackageCallback callback_package,
 							 GAsyncReadyCallback	 callback_ready,
 							 gpointer		 user_data);
 PkResults	*pk_client_get_details_finish		(PkClient		*client,
@@ -117,13 +115,14 @@ void		 pk_client_get_update_detail_async	(PkClient		*client,
 							 GCancellable		*cancellable,
 							 PkClientProgressCallback callback_progress,
 							 PkClientStatusCallback	 callback_status,
-							 PkClientPackageCallback callback_package,
 							 GAsyncReadyCallback	 callback_ready,
 							 gpointer		 user_data);
 PkResults	*pk_client_get_update_detail_finish	(PkClient		*client,
 							 GAsyncResult		*res,
 							 GError			**error);
 
+//							 PkClientPackageCallback callback_package,
+
 G_END_DECLS
 
 #endif /* __PK_CLIENT_H */
diff --git a/lib/packagekit-glib2/pk-package-sack.c b/lib/packagekit-glib2/pk-package-sack.c
index 319fdec..36b9e13 100644
--- a/lib/packagekit-glib2/pk-package-sack.c
+++ b/lib/packagekit-glib2/pk-package-sack.c
@@ -431,7 +431,7 @@ pk_package_sack_merge_resolve_async (PkPackageSack *sack, GCancellable *cancella
 	/* start resolve async */
 	package_ids = pk_package_sack_get_package_ids (sack);
 	pk_client_resolve_async (sack->priv->client, pk_bitfield_value (PK_FILTER_ENUM_INSTALLED), package_ids,
-				 cancellable, NULL, NULL, NULL, (GAsyncReadyCallback) pk_package_sack_merge_resolve_cb, state);
+				 cancellable, NULL, NULL, (GAsyncReadyCallback) pk_package_sack_merge_resolve_cb, state);
 
 	g_strfreev (package_ids);
 	g_object_unref (res);
commit e942425040b8f8a73bfbfcb657ee8e5ccc42d98f
Author: Richard Hughes <richard at hughsie.com>
Date:   Thu Aug 27 08:50:47 2009 +0100

    dummy: trivial, add more progress reports

diff --git a/backends/dummy/pk-backend-dummy.c b/backends/dummy/pk-backend-dummy.c
index 3de33f9..b20807b 100644
--- a/backends/dummy/pk-backend-dummy.c
+++ b/backends/dummy/pk-backend-dummy.c
@@ -162,6 +162,7 @@ backend_get_details (PkBackend *backend, gchar **package_ids)
 	const gchar *package_id;
 
 	pk_backend_set_status (backend, PK_STATUS_ENUM_QUERY);
+	pk_backend_set_percentage (backend, 0);
 
 	/* each one has a different detail for testing */
 	len = g_strv_length (package_ids);
@@ -204,6 +205,7 @@ backend_get_details (PkBackend *backend, gchar **package_ids)
 					    "import/export and creation of color separations.", "http://live.gnome.org/scribus", 44*1024*1024);
 		}
 	}
+	pk_backend_set_percentage (backend, 100);
 	pk_backend_finished (backend);
 }
 
@@ -297,6 +299,7 @@ backend_get_update_detail_timeout (gpointer data)
 		    "- xserver-1.6.0-primary.patch: Really, only look at VGA devices. (#488869)\n";
 
 	/* each one has a different detail for testing */
+	pk_backend_set_percentage (backend, 0);
 	len = g_strv_length (_package_ids);
 	for (i=0; i<len; i++) {
 		package_id = _package_ids[i];
@@ -344,6 +347,7 @@ backend_get_update_detail_timeout (gpointer data)
 			pk_backend_error_code (backend, PK_ERROR_ENUM_INTERNAL_ERROR, "the package update detail was not found for %s", package_id);
 		}
 	}
+	pk_backend_set_percentage (backend, 100);
 	pk_backend_finished (backend);
 	_signal_timeout = 0;
 	return FALSE;
commit d66cdac571a5764056ae3eb55bb9ee42902e56f7
Author: mvdz <mvdz at fedoraproject.org>
Date:   Thu Aug 27 07:16:42 2009 +0000

    Sending translation for po/uk.po

diff --git a/po/uk.po b/po/uk.po
new file mode 100644
index 0000000..f5749f5
--- /dev/null
+++ b/po/uk.po
@@ -0,0 +1,1517 @@
+# translation of packagekit.master.po to Ukrainian
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PackageKit package.
+#
+# Yuri Chornoivan <yurchor at ukr.net>, 2009.
+msgid ""
+msgstr ""
+"Project-Id-Version: packagekit.master\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-08-25 14:38+0000\n"
+"PO-Revision-Date: 2009-08-26 18:00+0300\n"
+"Last-Translator: Yuri Chornoivan <yurchor at ukr.net>\n"
+"Language-Team: Ukrainian <translation at linux.org.ua>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms:  nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"X-Generator: Lokalize 0.3\n"
+
+#. TRANSLATORS: this is an atomic transaction
+#: ../client/pk-console.c:235
+msgid "Transaction"
+msgstr "Операція"
+
+#. TRANSLATORS: this is the time the transaction was started in system timezone
+#: ../client/pk-console.c:237
+msgid "System time"
+msgstr "Системний час"
+
+#. TRANSLATORS: this is if the transaction succeeded or not
+#: ../client/pk-console.c:239
+msgid "Succeeded"
+msgstr "Успішне"
+
+#. TRANSLATORS: if the repo is enabled
+#: ../client/pk-console.c:239 ../client/pk-console.c:465
+msgid "True"
+msgstr "Так"
+
+#: ../client/pk-console.c:239 ../client/pk-console.c:465
+msgid "False"
+msgstr "Ні"
+
+#. TRANSLATORS: this is the transactions role, e.g. "update-system"
+#. TRANSLATORS: the trasaction role, e.g. update-system
+#: ../client/pk-console.c:241 ../src/pk-polkit-action-lookup.c:327
+msgid "Role"
+msgstr "Роль"
+
+#. TRANSLATORS: this is The duration of the transaction
+#: ../client/pk-console.c:246
+msgid "Duration"
+msgstr "Тривалість"
+
+#: ../client/pk-console.c:246
+msgid "(seconds)"
+msgstr "(секунд)"
+
+#. TRANSLATORS: this is The command line used to do the action
+#. TRANSLATORS: the command line of the thing that wants the authentication
+#: ../client/pk-console.c:250 ../src/pk-polkit-action-lookup.c:341
+msgid "Command line"
+msgstr "Командний рядок"
+
+#. TRANSLATORS: this is the user ID of the user that started the action
+#: ../client/pk-console.c:252
+msgid "User ID"
+msgstr "ІД користувача"
+
+#. TRANSLATORS: this is the username, e.g. hughsie
+#: ../client/pk-console.c:259
+msgid "Username"
+msgstr "Користувач"
+
+#. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
+#: ../client/pk-console.c:263
+msgid "Real name"
+msgstr "Справжнє ім’я"
+
+#: ../client/pk-console.c:271
+msgid "Affected packages:"
+msgstr "Задіяні пакунки:"
+
+#: ../client/pk-console.c:273
+msgid "Affected packages: None"
+msgstr "Задіяні пакунки: Немає"
+
+#. TRANSLATORS: When processing, we might have to remove other dependencies
+#: ../client/pk-console.c:334
+msgid "The following packages have to be removed:"
+msgstr "Наведені нижче пакунки буде вилучено:"
+
+#. TRANSLATORS: When processing, we might have to install other dependencies
+#: ../client/pk-console.c:337
+msgid "The following packages have to be installed:"
+msgstr "Слід встановити такі пакунки:"
+
+#. TRANSLATORS: When processing, we might have to update other dependencies
+#: ../client/pk-console.c:340
+msgid "The following packages have to be updated:"
+msgstr "Слід оновити такі пакунки:"
+
+#. TRANSLATORS: When processing, we might have to reinstall other dependencies
+#: ../client/pk-console.c:343
+msgid "The following packages have to be reinstalled:"
+msgstr "Слід перевстановити такі пакунки:"
+
+#. TRANSLATORS: this is the distro, e.g. Fedora 10
+#: ../client/pk-console.c:357
+msgid "Distribution"
+msgstr "Дистрибутив"
+
+#. TRANSLATORS: this is type of update, stable or testing
+#: ../client/pk-console.c:359
+msgid "Type"
+msgstr "Тип"
+
+#. TRANSLATORS: this is any summary text describing the upgrade
+#. TRANSLATORS: this is the summary of the group
+#: ../client/pk-console.c:361 ../client/pk-console.c:384
+msgid "Summary"
+msgstr "Резюме"
+
+#. TRANSLATORS: this is the group category name
+#: ../client/pk-console.c:373
+msgid "Category"
+msgstr "Категорія"
+
+#. TRANSLATORS: this is group identifier
+#: ../client/pk-console.c:375
+msgid "ID"
+msgstr "ІД"
+
+#. TRANSLATORS: this is the parent group
+#: ../client/pk-console.c:378
+msgid "Parent"
+msgstr "Батьківська"
+
+#. TRANSLATORS: this is the name of the parent group
+#: ../client/pk-console.c:381
+msgid "Name"
+msgstr "Назва"
+
+#. TRANSLATORS: this is preferred icon for the group
+#: ../client/pk-console.c:387
+msgid "Icon"
+msgstr "Значок"
+
+#. TRANSLATORS: this is a header for the package that can be updated
+#: ../client/pk-console.c:402
+msgid "Details about the update:"
+msgstr "Подробиці щодо оновлення:"
+
+#. TRANSLATORS: details about the update, package name and version
+#. TRANSLATORS: title, the names of the packages that the method is processing
+#: ../client/pk-console.c:404 ../src/pk-polkit-action-lookup.c:352
+msgid "Package"
+msgid_plural "Packages"
+msgstr[0] "Пакунок"
+msgstr[1] "Пакунки"
+msgstr[2] "Пакунки"
+
+#. TRANSLATORS: details about the update, any packages that this update updates
+#: ../client/pk-console.c:407
+msgid "Updates"
+msgstr "Оновлює"
+
+#. TRANSLATORS: details about the update, any packages that this update obsoletes
+#: ../client/pk-console.c:411
+msgid "Obsoletes"
+msgstr "Робить застарілим"
+
+#. TRANSLATORS: details about the update, the vendor URLs
+#: ../client/pk-console.c:415
+msgid "Vendor"
+msgstr "Постачальник"
+
+#. TRANSLATORS: details about the update, the bugzilla URLs
+#: ../client/pk-console.c:419
+msgid "Bugzilla"
+msgstr "Bugzilla"
+
+#. TRANSLATORS: details about the update, the CVE URLs
+#: ../client/pk-console.c:423
+msgid "CVE"
+msgstr "CVE"
+
+#. TRANSLATORS: details about the update, if the package requires a restart
+#: ../client/pk-console.c:427
+msgid "Restart"
+msgstr "Перезапуск"
+
+#. TRANSLATORS: details about the update, any description of the update
+#: ../client/pk-console.c:431
+msgid "Update text"
+msgstr "Текст оновлення"
+
+#. TRANSLATORS: details about the update, the changelog for the package
+#: ../client/pk-console.c:435
+msgid "Changes"
+msgstr "Зміни"
+
+#. TRANSLATORS: details about the update, the ongoing state of the update
+#: ../client/pk-console.c:439
+msgid "State"
+msgstr "Стан"
+
+#. TRANSLATORS: details about the update, date the update was issued
+#: ../client/pk-console.c:444
+msgid "Issued"
+msgstr "Випущено"
+
+#. TRANSLATORS: details about the update, date the update was updated
+#: ../client/pk-console.c:449
+msgid "Updated"
+msgstr "Оновлено"
+
+#: ../client/pk-console.c:536 ../client/pk-console.c:538
+msgid "Percentage"
+msgstr "Відсотки"
+
+#: ../client/pk-console.c:538
+msgid "Unknown"
+msgstr "Невідомо"
+
+#. TRANSLATORS: a package requires the system to be restarted
+#: ../client/pk-console.c:580
+msgid "System restart required by:"
+msgstr "Перезавантаження системи потрібне для:"
+
+#. TRANSLATORS: a package requires the session to be restarted
+#: ../client/pk-console.c:583
+msgid "Session restart required:"
+msgstr "Перезапуск сеансу потрібен:"
+
+#. TRANSLATORS: a package requires the system to be restarted due to a security update
+#: ../client/pk-console.c:586
+msgid "System restart (security) required by:"
+msgstr "Потрібне перезавантаження системи (безпека) для:"
+
+#. TRANSLATORS: a package requires the session to be restarted due to a security update
+#: ../client/pk-console.c:589
+msgid "Session restart (security) required:"
+msgstr "Потрібен перезапуск сеансу (безпека):"
+
+#. TRANSLATORS: a package requires the application to be restarted
+#: ../client/pk-console.c:592
+msgid "Application restart required by:"
+msgstr "Потрібен перезапуск програми для:"
+
+#. TRANSLATORS: a package needs to restart their system
+#: ../client/pk-console.c:647
+msgid "Please restart the computer to complete the update."
+msgstr "Щоб завершити оновлення, перезавантажте систему."
+
+#. TRANSLATORS: a package needs to restart the session
+#: ../client/pk-console.c:650
+msgid "Please logout and login to complete the update."
+msgstr "Щоб завершити оновлення, вийдіть з облікового запису і увійдіть знову."
+
+#. TRANSLATORS: a package needs to restart the application
+#: ../client/pk-console.c:653
+msgid "Please restart the application as it is being used."
+msgstr "Перезапустіть програму, оскільки вона зараз використовується."
+
+#. TRANSLATORS: a package needs to restart their system (due to security)
+#: ../client/pk-console.c:656
+msgid ""
+"Please restart the computer to complete the update as important security "
+"updates have been installed."
+msgstr "перезавантажте систему, щоб завершити встановлення важливих оновлень безпеки."
+
+#. TRANSLATORS: a package needs to restart the session (due to security)
+#: ../client/pk-console.c:659
+msgid ""
+"Please logout and login to complete the update as important security updates "
+"have been installed."
+msgstr ""
+"Щоб завершити встановлення важливих оновлень "
+"безпеки вийдіть з облікового запису і увійдіть до нього знову."
+
+#. TRANSLATORS: The package is already installed on the system
+#: ../client/pk-console.c:791, c-format
+msgid "The package %s is already installed"
+msgstr "Пакунок %s вже встановлено"
+
+#. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
+#: ../client/pk-console.c:799, c-format
+msgid "The package %s could not be installed: %s"
+msgstr "Не вдалося встановити пакунок %s: %s"
+
+#. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
+#: ../client/pk-console.c:825 ../client/pk-console.c:873
+#: ../client/pk-console.c:897 ../client/pk-console.c:945
+#: ../client/pk-console.c:1041 ../client/pk-console.c:1154
+#: ../client/pk-console.c:1215 ../client/pk-tools-common.c:62
+#: ../client/pk-tools-common.c:81 ../client/pk-tools-common.c:89, c-format
+msgid "Internal error: %s"
+msgstr "Внутрішня помилка: %s"
+
+#. TRANSLATORS: We are checking if it's okay to remove a list of packages
+#: ../client/pk-console.c:857 ../client/pk-console.c:929
+#: ../client/pk-console.c:1247
+msgid "Proceed with changes?"
+msgstr "Внести зміни:"
+
+#. TRANSLATORS: There was an error removing the packages. The detailed error follows
+#: ../client/pk-console.c:862 ../client/pk-console.c:934
+msgid "The package install was canceled!"
+msgstr "Встановлення пакунка скасовано!"
+
+#. TRANSLATORS: There was an error installing the packages. The detailed error follows
+#: ../client/pk-console.c:881 ../client/pk-console.c:1615, c-format
+msgid "This tool could not install the packages: %s"
+msgstr "Програмі не вдалося встановити пакунки: %s"
+
+#. TRANSLATORS: There was an error installing the files. The detailed error follows
+#: ../client/pk-console.c:953, c-format
+msgid "This tool could not install the files: %s"
+msgstr "Програмі не вдалося встановити файли: %s"
+
+#. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
+#: ../client/pk-console.c:1009, c-format
+msgid "This tool could not remove %s: %s"
+msgstr "Програмі не вдалося вилучити %s: %s"
+
+#. TRANSLATORS: There was an error removing the packages. The detailed error follows
+#: ../client/pk-console.c:1032 ../client/pk-console.c:1070
+#: ../client/pk-console.c:1099, c-format
+msgid "This tool could not remove the packages: %s"
+msgstr "Програмі не вдалося вилучити пакунки: %s"
+
+#. TRANSLATORS: We are checking if it's okay to remove a list of packages
+#: ../client/pk-console.c:1085
+msgid "Proceed with additional packages?"
+msgstr "Вилучити додаткові пакунки?"
+
+#. TRANSLATORS: There was an error removing the packages. The detailed error follows
+#: ../client/pk-console.c:1090
+msgid "The package removal was canceled!"
+msgstr "Вилучення пакунка скасовано!"
+
+#. TRANSLATORS: The package name was not found in any software sources
+#: ../client/pk-console.c:1131, c-format
+msgid "This tool could not download the package %s as it could not be found"
+msgstr "Програмі не вдалося звантажити пакунок %s, оскільки відповідний пакунок не було знайдено"
+
+#. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
+#: ../client/pk-console.c:1162, c-format
+msgid "This tool could not download the packages: %s"
+msgstr "Програмі не вдалося звантажити пакунки: %s"
+
+#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
+#: ../client/pk-console.c:1194 ../client/pk-console.c:1206
+#: ../client/pk-console.c:1261, c-format
+msgid "This tool could not update %s: %s"
+msgstr "Програмі не вдалося оновити %s: %s"
+
+#. TRANSLATORS: There was an error removing the packages. The detailed error follows
+#: ../client/pk-console.c:1252
+msgid "The package update was canceled!"
+msgstr "Оновлення пакунка скасовано!"
+
+#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
+#: ../client/pk-console.c:1285 ../client/pk-console.c:1293, c-format
+msgid "This tool could not get the requirements for %s: %s"
+msgstr "Програмі не вдалося отримати список файлів для %s: %s"
+
+#. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
+#: ../client/pk-console.c:1315 ../client/pk-console.c:1323, c-format
+msgid "This tool could not get the dependencies for %s: %s"
+msgstr "Програмі не вдалося отримати залежності для %s: %s"
+
+#. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
+#: ../client/pk-console.c:1345 ../client/pk-console.c:1353, c-format
+msgid "This tool could not get package details for %s: %s"
+msgstr "Програмі не вдалося отримати параметри пакунка %s: %s"
+
+#. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
+#: ../client/pk-console.c:1375, c-format
+msgid "This tool could not find the files for %s: %s"
+msgstr "Програмі не вдалося знайти файли %s: %s"
+
+#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
+#: ../client/pk-console.c:1383, c-format
+msgid "This tool could not get the file list for %s: %s"
+msgstr "Програмі не вдалося отримати список файлів %s: %s"
+
+#. TRANSLATORS: There was an error getting the list of packages. The filename follows
+#: ../client/pk-console.c:1405, c-format
+msgid "File already exists: %s"
+msgstr "Файл вже існує: %s"
+
+#. TRANSLATORS: follows a list of packages to install
+#: ../client/pk-console.c:1410 ../client/pk-console.c:1466
+#: ../client/pk-console.c:1541
+msgid "Getting package list"
+msgstr "Отримання списку пакунків"
+
+#. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
+#: ../client/pk-console.c:1416 ../client/pk-console.c:1472
+#: ../client/pk-console.c:1547, c-format
+msgid "This tool could not get package list: %s"
+msgstr "Програмі не вдалося отримати список пакунків: %s"
+
+#. TRANSLATORS: There was an error saving the list
+#: ../client/pk-console.c:1427, c-format
+msgid "Failed to save to disk"
+msgstr "Не вдалося зберегти на диск"
+
+#. TRANSLATORS: There was an error getting the list. The filename follows
+#: ../client/pk-console.c:1461 ../client/pk-console.c:1536, c-format
+msgid "File does not exist: %s"
+msgstr "Файла не існує: %s"
+
+#. TRANSLATORS: header to a list of packages newly added
+#: ../client/pk-console.c:1493
+msgid "Packages to add"
+msgstr "Пакунки, які буде додано"
+
+#. TRANSLATORS: header to a list of packages removed
+#: ../client/pk-console.c:1501
+msgid "Packages to remove"
+msgstr "Пакунки, які буде вилучено"
+
+#. TRANSLATORS: We didn't find any differences
+#: ../client/pk-console.c:1569, c-format
+msgid "No new packages need to be installed"
+msgstr "У встановленні нових пакунків немає потреби"
+
+#. TRANSLATORS: follows a list of packages to install
+#: ../client/pk-console.c:1575
+msgid "To install"
+msgstr "Пакунки, які буде встановлено"
+
+#. TRANSLATORS: searching takes some time....
+#: ../client/pk-console.c:1587
+msgid "Searching for package: "
+msgstr "Пошук пакунка:"
+
+#. TRANSLATORS: package was not found -- this is the end of a string ended in ...
+#: ../client/pk-console.c:1591
+msgid "not found."
+msgstr "не знайдено."
+
+#. TRANSLATORS: We didn't find any packages to install
+#: ../client/pk-console.c:1602, c-format
+msgid "No packages can be found to install"
+msgstr "Пакунків для встановлення не знайдено"
+
+#. TRANSLATORS: installing new packages from package list
+#. TRANSLATORS: we are now installing the debuginfo packages we found earlier
+#: ../client/pk-console.c:1608
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:886, c-format
+msgid "Installing packages"
+msgstr "Встановлення пакунків"
+
+#. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
+#: ../client/pk-console.c:1644, c-format
+msgid "This tool could not find the update details for %s: %s"
+msgstr "Програмі не вдалося знайти параметри оновлення %s: %s"
+
+#. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
+#: ../client/pk-console.c:1652, c-format
+msgid "This tool could not get the update details for %s: %s"
+msgstr "Програмі не вдалося отримати параметри оновлення %s: %s"
+
+#. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
+#: ../client/pk-console.c:1683
+msgid "Error:"
+msgstr "Помилка:"
+
+#. TRANSLATORS: This a list of details about the package
+#: ../client/pk-console.c:1697
+msgid "Package description"
+msgstr "Опис пакунка"
+
+#. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
+#: ../client/pk-console.c:1713
+msgid "Message:"
+msgstr "Повідомлення:"
+
+#. TRANSLATORS: This a list files contained in the package
+#: ../client/pk-console.c:1741
+msgid "Package files"
+msgstr "Файли пакунка"
+
+#. TRANSLATORS: This where the package has no files
+#: ../client/pk-console.c:1749
+msgid "No files"
+msgstr "Без файлів"
+
+#. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
+#: ../client/pk-console.c:1772
+msgid "Repository signature required"
+msgstr "Потрібен підпис сховища"
+
+#. TRANSLATORS: This a prompt asking the user to import the security key
+#: ../client/pk-console.c:1782
+msgid "Do you accept this signature?"
+msgstr "Чи підтверджуєте ви цей підпис?"
+
+#. TRANSLATORS: This is where the user declined the security key
+#: ../client/pk-console.c:1786
+msgid "The signature was not accepted."
+msgstr "Підпис не було підтверджено."
+
+#. TRANSLATORS: This a request for a EULA
+#: ../client/pk-console.c:1820
+msgid "End user license agreement required"
+msgstr "Потрібне підтвердження ліцензійної угоди з кінцевим користувачем (EULA)"
+
+#. TRANSLATORS: This a prompt asking the user to agree to the license
+#: ../client/pk-console.c:1827
+msgid "Do you agree to this license?"
+msgstr "Чи погоджуєтеся ви з цими умовами ліцензування?"
+
+#. TRANSLATORS: This is where the user declined the license
+#: ../client/pk-console.c:1831
+msgid "The license was refused."
+msgstr "Умови ліцензування було відкинуто."
+
+#. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
+#: ../client/pk-console.c:1860
+msgid "The daemon crashed mid-transaction!"
+msgstr "Аварійне завершення фонової служби під час операції!"
+
+#. TRANSLATORS: This is the header to the --help menu
+#: ../client/pk-console.c:1913
+msgid "PackageKit Console Interface"
+msgstr "Консольний інтерфейс PackageKit"
+
+#. these are commands we can use with pkcon
+#: ../client/pk-console.c:1915
+msgid "Subcommands:"
+msgstr "Підкоманди:"
+
+#. TRANSLATORS: command line argument, if we should show debugging information
+#. TRANSLATORS: if we should show debugging data
+#: ../client/pk-console.c:2008 ../client/pk-generate-pack.c:185
+#: ../client/pk-monitor.c:128
+#: ../contrib/command-not-found/pk-command-not-found.c:616
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:550
+#: ../contrib/device-rebind/pk-device-rebind.c:293 ../src/pk-main.c:211
+msgid "Show extra debugging information"
+msgstr "Показувати додаткові дані для усування вад"
+
+#. TRANSLATORS: command line argument, just show the version string
+#: ../client/pk-console.c:2011 ../client/pk-monitor.c:130
+msgid "Show the program version and exit"
+msgstr "Показати версію програми і завершити роботу"
+
+#. TRANSLATORS: command line argument, use a filter to narrow down results
+#: ../client/pk-console.c:2014
+msgid "Set the filter, e.g. installed"
+msgstr "Встановити фільтр, наприклад, встановлені"
+
+#. TRANSLATORS: command line argument, work asynchronously
+#: ../client/pk-console.c:2017
+msgid "Exit without waiting for actions to complete"
+msgstr "Завершити роботу, не чекаючи на завершення дії"
+
+#. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
+#: ../client/pk-console.c:2044
+msgid "This tool could not connect to system DBUS."
+msgstr "Цьому інструменту не вдалося з’єднатися з DBUS системи."
+
+#. TRANSLATORS: The user specified an incorrect filter
+#: ../client/pk-console.c:2134
+msgid "The filter specified was invalid"
+msgstr "Вказано некоректний фільтр"
+
+#. TRANSLATORS: a search type can be name, details, file, etc
+#: ../client/pk-console.c:2153
+msgid "A search type is required, e.g. name"
+msgstr "Тип пошуку, якщо такий потрібен, наприклад, назва"
+
+#. TRANSLATORS: the user needs to provide a search term
+#: ../client/pk-console.c:2160 ../client/pk-console.c:2169
+#: ../client/pk-console.c:2178 ../client/pk-console.c:2187
+msgid "A search term is required"
+msgstr "Потрібен ключ пошуку"
+
+#. TRANSLATORS: the search type was provided, but invalid
+#: ../client/pk-console.c:2194
+msgid "Invalid search type"
+msgstr "Некоректний тип пошуку"
+
+#. TRANSLATORS: the user did not specify what they wanted to install
+#: ../client/pk-console.c:2200
+msgid "A package name or filename to install is required"
+msgstr "Слід вказати назву пакунка або назву файла, який слід встановити"
+
+#. TRANSLATORS: geeky error, 99.9999% of users won't see this
+#: ../client/pk-console.c:2209
+msgid "A type, key_id and package_id are required"
+msgstr "Слід вказати тип, ідентифікатор ключа і ідентифікатор пакунка"
+
+#. TRANSLATORS: the user did not specify what they wanted to remove
+#: ../client/pk-console.c:2218
+msgid "A package name to remove is required"
+msgstr "Слід вказати назву пакунка, який потрібно вилучити"
+
+#. TRANSLATORS: the user did not specify anything about what to download or where
+#: ../client/pk-console.c:2226
+msgid "A destination directory and the package names to download are required"
+msgstr "Слід вказати каталог призначення і назви пакунків, які потрібно звантажити"
+
+#. TRANSLATORS: the directory does not exist, so we can't continue
+#: ../client/pk-console.c:2233
+msgid "Directory not found"
+msgstr "Каталог не знайдено"
+
+#. TRANSLATORS: geeky error, 99.9999% of users won't see this
+#: ../client/pk-console.c:2241
+msgid "A licence identifier (eula-id) is required"
+msgstr "Слід вказати ідентифікатор ліцензії (eula-id)"
+
+#. TRANSLATORS: geeky error, 99.9999% of users won't see this
+#: ../client/pk-console.c:2251
+msgid "A transaction identifier (tid) is required"
+msgstr "Слід вказати ідентифікатор операції (tid)"
+
+#. TRANSLATORS: The user did not specify a package name
+#: ../client/pk-console.c:2268
+msgid "A package name to resolve is required"
+msgstr "Слід вказати назву пакунка для розв’язання конфлікту"
+
+#. TRANSLATORS: The user did not specify a repository (software source) name
+#: ../client/pk-console.c:2277 ../client/pk-console.c:2286
+msgid "A repository name is required"
+msgstr "Слід вказати назву сховища"
+
+#. TRANSLATORS: The user didn't provide any data
+#: ../client/pk-console.c:2295
+msgid "A repo name, parameter and value are required"
+msgstr "Слід вказати назву сховища, параметр і значення"
+
+#. TRANSLATORS: The user didn't specify what action to use
+#: ../client/pk-console.c:2309
+msgid "An action, e.g. 'update-system' is required"
+msgstr "Слід вказати дію, наприклад «update-system»"
+
+#. TRANSLATORS: The user specified an invalid action
+#: ../client/pk-console.c:2316
+msgid "A correct role is required"
+msgstr "Слід вказати належну роль"
+
+#. TRANSLATORS: we keep a database updated with the time that an action was last executed
+#: ../client/pk-console.c:2323
+msgid "Failed to get the time since this action was last completed"
+msgstr "Не вдалося визначити час, коли цю дію було виконано востаннє"
+
+#. TRANSLATORS: The user did not provide a package name
+#. TRANSLATORS: This is when the user fails to supply the package name
+#: ../client/pk-console.c:2333 ../client/pk-console.c:2345
+#: ../client/pk-console.c:2354 ../client/pk-console.c:2372
+#: ../client/pk-console.c:2381 ../client/pk-generate-pack.c:241
+msgid "A package name is required"
+msgstr "Слід вказати назву пакунка"
+
+#. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
+#: ../client/pk-console.c:2363
+msgid "A package provide string is required"
+msgstr "Слід вказати рядок вмісту"
+
+#. TRANSLATORS: The user didn't specify a filename to create as a list
+#: ../client/pk-console.c:2390
+msgid "A list file name to create is required"
+msgstr "Слід вказати список назв файлів, які слід створити"
+
+#. TRANSLATORS: The user didn't specify a filename to open as a list
+#: ../client/pk-console.c:2400 ../client/pk-console.c:2410
+msgid "A list file to open is required"
+msgstr "Слід вказати список файлів, які слід відкрити"
+
+#. TRANSLATORS: The user tried to use an unsupported option on the command line
+#: ../client/pk-console.c:2464, c-format
+msgid "Option '%s' is not supported"
+msgstr "Підтримки параметра «%s» не передбачено"
+
+#. TRANSLATORS: User does not have permission to do this
+#: ../client/pk-console.c:2477
+msgid "Incorrect privileges for this operation"
+msgstr "Для цієї операції вказано неправильні права доступу"
+
+#. TRANSLATORS: Generic failure of what they asked to do
+#: ../client/pk-console.c:2480
+msgid "Command failed"
+msgstr "Спроба виконання команди зазнала невдачі"
+
+#. TRANSLATORS: This is the state of the transaction
+#: ../client/pk-generate-pack.c:101
+msgid "Downloading"
+msgstr "Звантаження"
+
+#. TRANSLATORS: This is when the main packages are being downloaded
+#: ../client/pk-generate-pack.c:121
+msgid "Downloading packages"
+msgstr "Звантаження пакунків"
+
+#. TRANSLATORS: This is when the dependency packages are being downloaded
+#: ../client/pk-generate-pack.c:126
+msgid "Downloading dependencies"
+msgstr "Звантаження залежностей"
+
+#. TRANSLATORS: we can exclude certain packages (glibc) when we know they'll exist on the target
+#: ../client/pk-generate-pack.c:188
+msgid "Set the file name of dependencies to be excluded"
+msgstr "Вкажіть назви файлів залежностей, які слід виключити"
+
+#. TRANSLATORS: the output location
+#: ../client/pk-generate-pack.c:191
+msgid "The output file or directory (the current directory is used if ommitted)"
+msgstr "Файл або каталог виведення даних (якщо пропустити, буде використано поточний каталог)"
+
+#. TRANSLATORS: put a list of packages in the pack
+#: ../client/pk-generate-pack.c:194
+msgid "The package to be put into the service pack"
+msgstr "Пакунок, призначений для створення пакунка обслуговування"
+
+#. TRANSLATORS: put all pending updates in the pack
+#: ../client/pk-generate-pack.c:197
+msgid "Put all updates available in the service pack"
+msgstr "Додати всі можливі оновлення до пакунка з обслуговування"
+
+#. TRANSLATORS: This is when the user fails to supply the correct arguments
+#: ../client/pk-generate-pack.c:225
+msgid "Neither --package or --updates option selected."
+msgstr "Не обрано ні параметра --package, ні параметра --updates."
+
+#. TRANSLATORS: This is when the user fails to supply just one argument
+#: ../client/pk-generate-pack.c:233
+msgid "Both options selected."
+msgstr "Обрано обидва параметра."
+
+#. TRANSLATORS: This is when the user fails to supply the output
+#: ../client/pk-generate-pack.c:249
+msgid "A output directory or file name is required"
+msgstr "Слід вказати каталог або файл для виведення даних"
+
+#. TRANSLATORS: This is when the backend doesn't have the capability to get-depends
+#. TRANSLATORS: This is when the backend doesn't have the capability to download
+#: ../client/pk-generate-pack.c:267 ../client/pk-generate-pack.c:273
+msgid "The package manager cannot perform this type of operation."
+msgstr "Керування пакунками не може виконувати дії цього типу."
+
+#. TRANSLATORS: This is when the distro didn't include libarchive support into PK
+#: ../client/pk-generate-pack.c:280
+msgid ""
+"Service packs cannot be created as PackageKit was not built with libarchive "
+"support."
+msgstr "Створення пакунків з обслуговування неможливе, оскільки PackageKit було зібрано без підтримки libarchive."
+
+#. TRANSLATORS: the user specified an absolute path, but didn't get the extension correct
+#: ../client/pk-generate-pack.c:291
+msgid "If specifying a file, the service pack name must end with"
+msgstr "Якщо вказано файл, назва пакунка з обслуговування має завершуватися на"
+
+#. TRANSLATORS: This is when file already exists
+#: ../client/pk-generate-pack.c:307
+msgid "A pack with the same name already exists, do you want to overwrite it?"
+msgstr "Вже існує пакунок з тією самою назвою, бажаєте перезаписати його?"
+
+#. TRANSLATORS: This is when the pack was not overwritten
+#: ../client/pk-generate-pack.c:310
+msgid "The pack was not overwritten."
+msgstr "Пакунок не було перезаписано."
+
+#. TRANSLATORS: This is when the temporary directory cannot be created, the directory name follows
+#: ../client/pk-generate-pack.c:323
+msgid "Failed to create directory:"
+msgstr "Спроба створення каталогу завершилася невдало:"
+
+#. TRANSLATORS: This is when the list of packages from the remote computer cannot be opened
+#: ../client/pk-generate-pack.c:333
+msgid "Failed to open package list."
+msgstr "Не вдалося відкрити список пакунків."
+
+#. TRANSLATORS: The package name is being matched up to available packages
+#: ../client/pk-generate-pack.c:344
+msgid "Finding package name."
+msgstr "Пошук назви пакунка."
+
+#. TRANSLATORS: This is when the package cannot be found in any software source. The detailed error follows
+#: ../client/pk-generate-pack.c:348, c-format
+msgid "Failed to find package '%s': %s"
+msgstr "Не вдалося знайти пакунок «%s»: %s"
+
+#. TRANSLATORS: This is telling the user we are in the process of making the pack
+#: ../client/pk-generate-pack.c:365
+msgid "Creating service pack..."
+msgstr "Створення пакунка з обслуговування..."
+
+#. TRANSLATORS: we succeeded in making the file
+#: ../client/pk-generate-pack.c:372, c-format
+msgid "Service pack created '%s'"
+msgstr "Створено пакунок з обслуговування «%s»"
+
+#. TRANSLATORS: we failed to make te file
+#: ../client/pk-generate-pack.c:377, c-format
+msgid "Failed to create '%s': %s"
+msgstr "Не вдалося створити «%s»: %s"
+
+#. TRANSLATORS: this is a program that monitors PackageKit
+#: ../client/pk-monitor.c:146
+msgid "PackageKit Monitor"
+msgstr "Монітор PackageKit"
+
+#: ../client/pk-monitor.c:183
+msgid "Cannot show the list of transactions"
+msgstr "Показ списку операції неможливий"
+
+#. TRANSLATORS: The package was not found in any software sources
+#: ../client/pk-tools-common.c:118, c-format
+msgid "The package could not be found"
+msgstr "Не вдалося знайти пакунок"
+
+#. TRANSLATORS: more than one package could be found that matched, to follow is a list of possible packages
+#: ../client/pk-tools-common.c:130
+msgid "More than one package matches:"
+msgstr "З ключем пошуку збігається декілька пакунків:"
+
+#. TRANSLATORS: This finds out which package in the list to use
+#: ../client/pk-tools-common.c:137
+msgid "Please choose the correct package: "
+msgstr "Будь ласка, оберіть належний пакунок:"
+
+#: ../client/pk-tools-common.c:162, c-format
+msgid "Please enter a number from 1 to %i: "
+msgstr "Будь ласка, введіть число від 1 до %i: "
+
+#. TRANSLATORS: when we are getting data from the daemon
+#: ../contrib/browser-plugin/pk-plugin-install.c:466
+msgid "Getting package information..."
+msgstr "Отримання даних щодо пакунка..."
+
+#. TRANSLATORS: run an applicaiton
+#: ../contrib/browser-plugin/pk-plugin-install.c:472, c-format
+msgid "Run %s"
+msgstr "Виконати %s"
+
+#. TRANSLATORS: show the installed version of a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:478
+msgid "Installed version"
+msgstr "Встановлена версія"
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:486, c-format
+msgid "Run version %s now"
+msgstr "Виконати версію %s"
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:492
+msgid "Run now"
+msgstr "Виконати зараз"
+
+#. TRANSLATORS: update to a new version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:498, c-format
+msgid "Update to version %s"
+msgstr "Оновити до версії %s"
+
+#. TRANSLATORS: To install a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:504, c-format
+msgid "Install %s now"
+msgstr "Встановити %s"
+
+#. TRANSLATORS: the version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:507
+msgid "Version"
+msgstr "Версія"
+
+#. TRANSLATORS: noting found, so can't install
+#: ../contrib/browser-plugin/pk-plugin-install.c:512
+msgid "No packages found for your system"
+msgstr "Для вашої системи пакунків не знайдено"
+
+#. TRANSLATORS: package is being installed
+#: ../contrib/browser-plugin/pk-plugin-install.c:517
+msgid "Installing..."
+msgstr "Встановлення..."
+
+#. TRANSLATORS: downloading repo data so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:349
+msgid "Downloading details about the software sources."
+msgstr "Звантаження даних щодо джерел програмного забезпечення."
+
+#. TRANSLATORS: downloading file lists so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:353
+msgid "Downloading filelists (this may take some time to complete)."
+msgstr "Звантаження списків файлів (виконання цієї дії може бути досить тривалим)."
+
+#. TRANSLATORS: waiting for native lock
+#: ../contrib/command-not-found/pk-command-not-found.c:357
+msgid "Waiting for package manager lock."
+msgstr "Очікування на зняття блокування керування пакунками."
+
+#. TRANSLATORS: loading package cache so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:361
+msgid "Loading list of packages."
+msgstr "Завантаження списку пакунків."
+
+#. TRANSLATORS: we failed to find the package, this shouldn't happen
+#: ../contrib/command-not-found/pk-command-not-found.c:420
+msgid "Failed to search for file"
+msgstr "Не вдалося виконати пошук файла"
+
+#. TRANSLATORS: we failed to launch the executable, the error follows
+#: ../contrib/command-not-found/pk-command-not-found.c:557
+msgid "Failed to launch:"
+msgstr "Не вдалося запустити:"
+
+#. TRANSLATORS: tool that gets called when the command is not found
+#: ../contrib/command-not-found/pk-command-not-found.c:632
+msgid "PackageKit Command Not Found"
+msgstr "Команди PackageKit не знайдено"
+
+#. TRANSLATORS: the prefix of all the output telling the user why it's not executing
+#: ../contrib/command-not-found/pk-command-not-found.c:658
+msgid "Command not found."
+msgstr "Команду не знайдено."
+
+#. TRANSLATORS: tell the user what we think the command is
+#: ../contrib/command-not-found/pk-command-not-found.c:665
+msgid "Similar command is:"
+msgstr "Подібною командою є:"
+
+#. TRANSLATORS: Ask the user if we should run the similar command
+#: ../contrib/command-not-found/pk-command-not-found.c:674
+msgid "Run similar command:"
+msgstr "Виконати подібну команду:"
+
+#. TRANSLATORS: show the user a list of commands that they could have meant
+#. TRANSLATORS: show the user a list of commands we could run
+#: ../contrib/command-not-found/pk-command-not-found.c:686
+#: ../contrib/command-not-found/pk-command-not-found.c:695
+msgid "Similar commands are:"
+msgstr "Подібними командами є:"
+
+#. TRANSLATORS: ask the user to choose a file to run
+#: ../contrib/command-not-found/pk-command-not-found.c:702
+msgid "Please choose a command to run"
+msgstr "Будь ласка, оберіть команду, яку слід виконати"
+
+#. TRANSLATORS: tell the user what package provides the command
+#: ../contrib/command-not-found/pk-command-not-found.c:721
+msgid "The package providing this file is:"
+msgstr "Пакунком, що містити цей файл є:"
+
+#. TRANSLATORS: as the user if we want to install a package to provide the command
+#: ../contrib/command-not-found/pk-command-not-found.c:726, c-format
+msgid "Install package '%s' to provide command '%s'?"
+msgstr "Встановити пакунок «%s», щоб забезпечити виконання команди «%s»?"
+
+#. TRANSLATORS: Show the user a list of packages that provide this command
+#: ../contrib/command-not-found/pk-command-not-found.c:747
+msgid "Packages providing this file are:"
+msgstr "Серед пакунків, що містять цей файл:"
+
+#. TRANSLATORS: Show the user a list of packages that they can install to provide this command
+#: ../contrib/command-not-found/pk-command-not-found.c:756
+msgid "Suitable packages are:"
+msgstr "Відповідними пакунками є:"
+
+#. get selection
+#. TRANSLATORS: ask the user to choose a file to install
+#: ../contrib/command-not-found/pk-command-not-found.c:764
+msgid "Please choose a package to install"
+msgstr "Будь ласка, оберіть пакунок, який слід встановити"
+
+#. TRANSLATORS: we are starting to install the packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:187
+msgid "Starting install"
+msgstr "Розпочинаємо встановлення"
+
+#. TRANSLATORS: we couldn't find the package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:397, c-format
+msgid "Failed to find the package %s, or already installed: %s"
+msgstr "Не вдалося знайти пакунок %s або пакунок вже встановлено: %s"
+
+#. command line argument, simulate what would be done, but don't actually do it
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:553
+msgid "Don't actually install any packages, only simulate what would be installed"
+msgstr "Не встановлювати пакунків, лише імітувати їх встановлення"
+
+#. command line argument, do we skip packages that depend on the ones specified
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:556
+msgid "Do not install dependencies of the core packages"
+msgstr "Не встановлювати залежностей основних пакунків"
+
+#. command line argument, do we operate quietly
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:559
+msgid "Do not display information or progress"
+msgstr "Не показувати повідомлень та даних про поступ"
+
+#. TRANSLATORS: tool that gets called when the command is not found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:577
+msgid "PackageKit Debuginfo Installer"
+msgstr "Встановлення даних для зневаджування PackageKit"
+
+#. TRANSLATORS: the use needs to specify a list of package names on the command line
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:589, c-format
+msgid "ERROR: Specify package names to install."
+msgstr "ПОМИЛКА: вкажіть назви пакунків, які слід встановити."
+
+#. TRANSLATORS: we are getting the list of repositories
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:623, c-format
+msgid "Getting sources list"
+msgstr "Отримання списку джерел"
+
+#. TRANSLATORS: all completed 100%
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:641
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:681
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:716
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:800
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:844
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:911
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:955, c-format
+msgid "OK."
+msgstr "Гаразд."
+
+#. TRANSLATORS: tell the user what we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:644, c-format
+msgid "Found %i enabled and %i disabled sources."
+msgstr "Знайдено %i увімкнених і %i вимкнених джерела."
+
+#. TRANSLATORS: we're finding repositories that match out pattern
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:651, c-format
+msgid "Finding debugging sources"
+msgstr "Пошук джерел даних для усування вад"
+
+#. TRANSLATORS: tell the user what we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:684, c-format
+msgid "Found %i disabled debuginfo repos."
+msgstr "Знайдено %i вимкнених сховища даних для усування вад."
+
+#. TRANSLATORS: we're now enabling all the debug sources we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:691, c-format
+msgid "Enabling debugging sources"
+msgstr "Вмикання джерел даних для усування вад"
+
+#. TRANSLATORS: operation was not successful
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:701
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:785
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:829
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:896
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:940
+msgid "FAILED."
+msgstr "НЕВДАЛО."
+
+#. TRANSLATORS: tell the user how many we enabled
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:719, c-format
+msgid "Enabled %i debugging sources."
+msgstr "Увімкнено %i джерел даних для усування вад."
+
+#. TRANSLATORS: we're now finding packages that match in all the repos
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:726, c-format
+msgid "Finding debugging packages"
+msgstr "Пошук пакунків для усування вад"
+
+#. TRANSLATORS: we couldn't find the package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:738, c-format
+msgid "Failed to find the package %s: %s"
+msgstr "Не вдалося знайти пакунок %s: %s"
+
+#. TRANSLATORS: we couldn't find the debuginfo package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:761, c-format
+msgid "Failed to find the debuginfo package %s: %s"
+msgstr "Не вдалося знайти пакунок з даними для усування вад %s: %s"
+
+#. TRANSLATORS: no debuginfo packages could be found to be installed
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:789, c-format
+msgid "Found no packages to install."
+msgstr "Не знайдено жодного пакунка для встановлення."
+
+#. TRANSLATORS: tell the user we found some packages, and then list them
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:803
+#, c-format
+msgid "Found %i packages:"
+msgstr "Знайдено %i пакунків:"
+
+#. TRANSLATORS: tell the user we are searching for deps
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:819
+#, c-format
+msgid "Finding packages that depend on these packages"
+msgstr "Пошук пакунків, які залежать від цих пакунків"
+
+#. TRANSLATORS: could not install, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:832
+#, c-format
+msgid "Could not find dependant packages: %s"
+msgstr "Не вдалося знайти залежних пакунків: %s"
+
+#. TRANSLATORS: tell the user we found some more packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:848
+#, c-format
+msgid "Found %i extra packages."
+msgstr "Знайдено %i додаткових пакунків."
+
+#. TRANSLATORS: tell the user we found some more packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:852
+#, c-format
+msgid "No extra packages required."
+msgstr "Потреби у додаткових пакунках немає."
+
+#. TRANSLATORS: tell the user we found some packages (and deps), and then list them
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:861
+#, c-format
+msgid "Found %i packages to install:"
+msgstr "Знайдено %i пакунків для встановлення:"
+
+#. TRANSLATORS: simulate mode is a testing mode where we quit before the action
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:874
+#, c-format
+msgid "Not installing packages in simulate mode"
+msgstr "Не встановлювати пакунки у режимі імітації"
+
+#. TRANSLATORS: could not install, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:899
+#, c-format
+msgid "Could not install packages: %s"
+msgstr "Не вдалося встановити пакунки: %s"
+
+#. TRANSLATORS: we are now disabling all debuginfo repos we previously enabled
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:931
+#, c-format
+msgid "Disabling sources previously enabled"
+msgstr "Вимикання раніше увімкнених джерел"
+
+#. TRANSLATORS: no debuginfo packages could be found to be installed, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:943
+#, c-format
+msgid "Could not disable the debugging sources: %s"
+msgstr "Не вдалося вимкнути джерела для усування вад: %s"
+
+#. TRANSLATORS: we disabled all the debugging repos that we enabled before
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:958
+#, c-format
+msgid "Disabled %i debugging sources."
+msgstr "Вимкнено %i джерел для усування вад."
+
+#. TRANSLATORS: couldn't open device to write
+#: ../contrib/device-rebind/pk-device-rebind.c:61
+msgid "Failed to open file"
+msgstr "Не вдалося відкрити файл"
+
+#. TRANSLATORS: could not write to the device
+#: ../contrib/device-rebind/pk-device-rebind.c:70
+msgid "Failed to write to the file"
+msgstr "Не вдалося виконати запис до файла"
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:110
+#: ../contrib/device-rebind/pk-device-rebind.c:147
+msgid "Failed to write to device"
+msgstr "Не вдалося виконати запис на пристрій"
+
+#. TRANSLATORS: the device could not be found in sysfs
+#: ../contrib/device-rebind/pk-device-rebind.c:175
+msgid "Device could not be found"
+msgstr "Не вдалося знайти пристрій"
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:202
+msgid "Failed to unregister driver"
+msgstr "Не вдалося скасувати реєстрацію драйвера"
+
+#. TRANSLATORS: we failed to bind the old driver
+#: ../contrib/device-rebind/pk-device-rebind.c:211
+msgid "Failed to register driver"
+msgstr "Не вдалося зареєструвати драйвер"
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:260
+msgid "Device path not found"
+msgstr "Не знайдено шляху до пристрою"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:268
+msgid "Incorrect device path specified"
+msgstr "Вказано неправильний шлях до пристрою"
+
+#. command line argument, simulate what would be done, but don't actually do it
+#: ../contrib/device-rebind/pk-device-rebind.c:296
+msgid "Don't actually touch the hardware, only simulate what would be done"
+msgstr "Не виконувати дій з обладнанням, лише імітувати їх виконання"
+
+#. TRANSLATORS: command line option: a list of files to install
+#: ../contrib/device-rebind/pk-device-rebind.c:299
+msgid "Device paths"
+msgstr "Шляхи пристроїв"
+
+#. TRANSLATORS: tool that gets called when the device needs reloading after installing firmware
+#: ../contrib/device-rebind/pk-device-rebind.c:314
+msgid "PackageKit Device Reloader"
+msgstr "Перезавантаження пристроїв PackageKit"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:322
+msgid "You need to specify at least one valid device path"
+msgstr "Слід вказати принаймні один коректний шлях до пристрою"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:332
+msgid "This script can only be used by the root user"
+msgstr "Цим скриптом можна скористатися лише від імені користувача root"
+
+#. TRANSLATORS: we're going to verify the path first
+#: ../contrib/device-rebind/pk-device-rebind.c:341
+msgid "Verifying device path"
+msgstr "Перевірка шляху до пристрою"
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:346
+msgid "Failed to verify device path"
+msgstr "Не вдалося перевірити шлях до пристрою"
+
+#. TRANSLATORS: we're going to try
+#: ../contrib/device-rebind/pk-device-rebind.c:360
+msgid "Attempting to rebind device"
+msgstr "Спроба повторної прив’язки пристрою"
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:365
+msgid "Failed to rebind device"
+msgstr "Повторна спроба прив’язки пристрою зазнала невдачі"
+
+#: ../data/packagekit-catalog.xml.in.h:1
+msgid "PackageKit Catalog"
+msgstr "Каталог PackageKit"
+
+#: ../data/packagekit-package-list.xml.in.h:1
+msgid "PackageKit Package List"
+msgstr "Список пакунків PackageKit"
+
+#: ../data/packagekit-servicepack.xml.in.h:1
+msgid "PackageKit Service Pack"
+msgstr "Пакунок з обслуговування PackageKit"
+
+#. SECURITY:
+#. - Normal users do not require admin authentication to accept new
+#. licence agreements.
+#. - Change this to 'auth_admin' for environments where users should not
+#. be given the option to make legal decisions.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:7
+msgid "Accept EULA"
+msgstr "Підтвердити EULA"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:8
+msgid "Authentication is required to accept a EULA"
+msgstr "Для підтвердження EULA слід виконати розпізнавання"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:9
+msgid "Authentication is required to cancel a task that was not started by yourself"
+msgstr "Для скасування дії, започаткованої не вами, слід пройти автентифікацію"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:10
+msgid "Authentication is required to change software source parameters"
+msgstr "Для зміни параметрів джерел програмного забезпечення слід пройти автентифікацію"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:11
+msgid ""
+"Authentication is required to consider a key used for signing packages as "
+"trusted"
+msgstr "Для визнання ключа, використаного для підписування пакунків, як надійного слід пройти автентифікацію"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:12
+msgid "Authentication is required to install a signed package"
+msgstr "Для встановлення підписаного пакунка слід пройти автентифікацію"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:13
+msgid "Authentication is required to install an untrusted package"
+msgstr "Для встановлення ненадійного пакунка слід пройти автентифікацію"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:14
+msgid "Authentication is required to refresh the system sources"
+msgstr "Для оновлення списку джерел системи слід пройти автентифікацію"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:15
+msgid "Authentication is required to reload the device with a new driver"
+msgstr "Для перезавантаження пристрою з новим драйвером слід пройти автентифікацію"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:16
+msgid "Authentication is required to remove packages"
+msgstr "Для вилучення пакунків слід пройти автентифікацію"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:17
+msgid "Authentication is required to rollback a transaction"
+msgstr "Для скасування дії слід пройти автентифікацію"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:18
+msgid ""
+"Authentication is required to set the network proxy used for downloading "
+"packages"
+msgstr "Для визначення проксі-сервера, який буде використано для звантаження пакунків, слід пройти автентифікацію"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:19
+msgid "Authentication is required to update packages"
+msgstr "Для оновлення пакунків слід пройти автентифікацію"
+
+#. SECURITY:
+#. - Normal users are allowed to cancel their own task without
+#. authentication, but a different user id needs the admin password
+#. to cancel another users task.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:25
+msgid "Cancel foreign task"
+msgstr "Скасування сторонніх завдань"
+
+#. SECURITY:
+#. - Normal users require admin authentication to enable or disable
+#. software sources as this can be used to enable new updates or
+#. install different versions of software.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:31
+msgid "Change software source parameters"
+msgstr "Зміна параметрів джерела програм"
+
+#. SECURITY:
+#. - Normal users do not need authentication to install signed packages
+#. from signed repositories, as this cannot exploit a system.
+#. - Paranoid users (or parents!) can change this to 'auth_admin' or
+#. 'auth_admin_keep'.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:38
+msgid "Install signed package"
+msgstr "Встановлення підписаного пакунка"
+
+#. SECURITY:
+#. - Normal users require admin authentication to install untrusted or
+#. unrecognised packages, as allowing users to do this without a
+#. password would be a massive security hole.
+#. - This is not retained as each package should be authenticated.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:45
+msgid "Install untrusted local file"
+msgstr "Встановлення ненадійного локального файла"
+
+#. SECURITY:
+#. - Normal users do not require admin authentication to refresh the
+#. cache, as this doesn't actually install or remove software.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:50
+msgid "Refresh system sources"
+msgstr "Оновлення списків джерел системи"
+
+#. SECURITY:
+#. - Normal users require admin authentication to rebind a driver
+#. so that it works after we install firmware.
+#. - This should not be set to 'yes' as unprivileged users could then
+#. try to rebind drivers in use, for instance security authentication
+#. devices.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:58
+msgid "Reload a device"
+msgstr "Перезавантаження пристрою"
+
+#. SECURITY:
+#. - Normal users require admin authentication to remove packages as
+#. this can make the system unbootable or stop other applications from
+#. working.
+#. - Be sure to close the tool used to remove the packages after the
+#. admin authentication has been obtained, otherwise packages can still
+#. be removed. If this is not possible, change this authentication to
+#. 'auth_admin'.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:68
+msgid "Remove package"
+msgstr "Вилучення пакунка"
+
+#. SECURITY:
+#. - Normal users require admin authentication to rollback system state
+#. as this will change a large number of packages, and could expose the
+#. system to previously patched security vulnerabilities.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:74
+msgid "Rollback to a previous transaction"
+msgstr "Повернення до попередньої операції"
+
+#. SECURITY:
+#. - Normal users do not require admin authentication to set the proxy
+#. used for downloading packages.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:79
+msgid "Set network proxy"
+msgstr "Встановлення проксі-сервер"
+
+#. SECURITY:
+#. - Normal users require admin authentication to add signing keys.
+#. - This implies adding an explicit trust, and should not be granted
+#. without a secure authentication.
+#. - This is not kept as each package should be authenticated.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:86
+msgid "Trust a key used for signing packages"
+msgstr "Визначення надійності ключа, яким підписано пакунки"
+
+#. SECURITY:
+#. - Normal users do not require admin authentication to update the
+#. system as the packages will be signed, and the action is required
+#. to update the system when unattended.
+#. - Changing this to anything other than 'yes' will break unattended
+#. updates.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:94
+msgid "Update packages"
+msgstr "Оновлення пакунків"
+
+#. TRANSLATORS: failed due to DBus security
+#: ../src/pk-main.c:87
+msgid "Startup failed due to security policies on this machine."
+msgstr "Спроба запуску зазнала невдачі через обмеження безпеки на цьому комп’ютері."
+
+#. TRANSLATORS: only two ways this can fail...
+#: ../src/pk-main.c:89
+msgid "This can happen for two reasons:"
+msgstr "Таке може трапитися з двох причин:"
+
+#. TRANSLATORS: only allowed to be owned by root
+#: ../src/pk-main.c:91
+msgid "The correct user is not launching the executable (usually root)"
+msgstr "Виконуваний файл було запущено не тим користувачем (його мав запустити root)"
+
+#. TRANSLATORS: or we are installed in a prefix
+#: ../src/pk-main.c:93
+msgid ""
+"The org.freedesktop.PackageKit.conf file is not installed in the system "
+"directory:"
+msgstr "У системному каталозі файл org.freedesktop.PackageKit.conf не встановлено:"
+
+#. TRANSLATORS: a backend is the system package tool, e.g. yum, apt
+#: ../src/pk-main.c:205
+msgid "Packaging backend to use, e.g. dummy"
+msgstr "Інструмент роботи з пакунками, наприклад, dummy"
+
+#. TRANSLATORS: if we should run in the background
+#: ../src/pk-main.c:208
+msgid "Daemonize and detach from the terminal"
+msgstr "Створити фонову службу і від’єднатися від термінала"
+
+#. TRANSLATORS: if we should not monitor how long we are inactive for
+#: ../src/pk-main.c:214
+msgid "Disable the idle timer"
+msgstr "Вимкнути відлік бездіяльності"
+
+#. TRANSLATORS: show version
+#: ../src/pk-main.c:217
+msgid "Show version and exit"
+msgstr "Показати версію і завершити роботу"
+
+#. TRANSLATORS: exit after we've started up, used for user profiling
+#: ../src/pk-main.c:220
+msgid "Exit after a small delay"
+msgstr "Завершити роботу з невеличкою затримкою"
+
+#. TRANSLATORS: exit straight away, used for automatic profiling
+#: ../src/pk-main.c:223
+msgid "Exit after the engine has loaded"
+msgstr "Завершити роботу після завантаження рушія"
+
+#. TRANSLATORS: describing the service that is running
+#: ../src/pk-main.c:238
+msgid "PackageKit service"
+msgstr "Служба PackageKit"
+
+#. TRANSLATORS: fatal error, dbus is not running
+#: ../src/pk-main.c:275
+msgid "Cannot connect to the system bus"
+msgstr "Не вдалося з’єднатися з системною шиною"
+
+#. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error follows
+#: ../src/pk-main.c:334
+msgid "Error trying to start:"
+msgstr "Помилка під час спроби запуску:"
+
+#: ../src/pk-polkit-action-lookup.c:147
+msgid "To install debugging packages, extra sources need to be enabled"
+msgstr "Для встановлення пакунків для усування вад слід увімкнути додаткові джерела програмного забезпечення"
+
+#. TRANSLATORS: is not GPG signed
+#: ../src/pk-polkit-action-lookup.c:168 ../src/pk-polkit-action-lookup.c:187
+msgid "The software is not from a trusted source."
+msgstr "Програмне забезпечення надійшло з ненадійного джерела."
+
+#: ../src/pk-polkit-action-lookup.c:173
+msgid "Do not update this package unless you are sure it is safe to do so."
+msgstr "Не оновлюйте цей пакунок, якщо не певні, що таке оновлення є безпечним."
+
+#: ../src/pk-polkit-action-lookup.c:174
+msgid "Do not update these packages unless you are sure it is safe to do so."
+msgstr "Не оновлюйте ці пакунки, якщо не певні, що таке оновлення є безпечним."
+
+#: ../src/pk-polkit-action-lookup.c:192
+msgid "Do not install this package unless you are sure it is safe to do so."
+msgstr "Не встановлюйте цей пакунок, якщо не певні, що таке встановлення є безпечним."
+
+#: ../src/pk-polkit-action-lookup.c:193
+msgid "Do not install these packages unless you are sure it is safe to do so."
+msgstr "Не встановлюйте ці пакунки, якщо не певні, що таке встановлення є безпечним."
+
+#. TRANSLATORS: warn the user that all bets are off
+#: ../src/pk-polkit-action-lookup.c:199
+msgid "Malicious software can damage your computer or cause other harm."
+msgstr "Зловмисне програмне забезпечення може пошкодити ваш комп’ютер або завдати інших неприємностей."
+
+#. TRANSLATORS: too many packages to list each one
+#: ../src/pk-polkit-action-lookup.c:274
+msgid "Many packages"
+msgstr "Багато пакунків"
+
+#. TRANSLATORS: if the transaction is forced to install only trusted packages
+#: ../src/pk-polkit-action-lookup.c:334
+msgid "Only trusted"
+msgstr "Лише надійні"
+
+
commit c6f9596c3a0634d14eb2eb1c2f795430c105ec50
Author: Richard Hughes <richard at hughsie.com>
Date:   Wed Aug 26 21:38:30 2009 +0100

    glib2: add pk_client_get_details_async() and pk_client_get_update_detail_async()

diff --git a/lib/packagekit-glib2/pk-client.c b/lib/packagekit-glib2/pk-client.c
index a3ffd43..22cd3e3 100644
--- a/lib/packagekit-glib2/pk-client.c
+++ b/lib/packagekit-glib2/pk-client.c
@@ -100,6 +100,7 @@ typedef struct {
 	PkClientStatusCallback		 callback_status;
 	PkClientPackageCallback		 callback_package;
 	gpointer			 user_data;
+	PkRoleEnum			 role;
 } PkClientState;
 
 static void pk_client_finished_cb (DBusGProxy *proxy, const gchar *exit_text, guint runtime, PkClientState *state);
@@ -389,7 +390,7 @@ pk_client_get_tid_cb (GObject *object, GAsyncResult *res, PkClientState *state)
 	PkControl *control = PK_CONTROL (object);
 	GError *error = NULL;
 	const gchar *tid = NULL;
-	gchar *filters_text;
+	gchar *filters_text = NULL;
 
 	tid = pk_control_get_tid_finish (control, res, &error);
 	if (tid == NULL) {
@@ -413,15 +414,27 @@ pk_client_get_tid_cb (GObject *object, GAsyncResult *res, PkClientState *state)
 	/* setup the proxies ready for use */
 	pk_client_connect_proxy (state->proxy, state);
 
-	/* send the filter as a string over the wire */
-	filters_text = pk_filter_bitfield_to_text (state->filters);
-
 	/* do this async, although this should be pretty fast anyway */
-	state->call = dbus_g_proxy_begin_call (state->proxy, "Resolve",
-					       (DBusGProxyCallNotify) pk_client_method_cb, state, NULL,
-					       G_TYPE_STRING, filters_text,
-					       G_TYPE_STRV, state->packages,
-					       G_TYPE_INVALID);
+	if (state->role == PK_ROLE_ENUM_RESOLVE) {
+		filters_text = pk_filter_bitfield_to_text (state->filters);
+		state->call = dbus_g_proxy_begin_call (state->proxy, "Resolve",
+						       (DBusGProxyCallNotify) pk_client_method_cb, state, NULL,
+						       G_TYPE_STRING, filters_text,
+						       G_TYPE_STRV, state->packages,
+						       G_TYPE_INVALID);
+	} else if (state->role == PK_ROLE_ENUM_GET_DETAILS) {
+		state->call = dbus_g_proxy_begin_call (state->proxy, "GetDetails",
+						       (DBusGProxyCallNotify) pk_client_method_cb, state, NULL,
+						       G_TYPE_STRV, state->packages,
+						       G_TYPE_INVALID);
+	} else if (state->role == PK_ROLE_ENUM_GET_UPDATE_DETAIL) {
+		state->call = dbus_g_proxy_begin_call (state->proxy, "GetUpdateDetail",
+						       (DBusGProxyCallNotify) pk_client_method_cb, state, NULL,
+						       G_TYPE_STRV, state->packages,
+						       G_TYPE_INVALID);
+	} else {
+		g_assert_not_reached ();
+	}
 
 	/* we've sent this async */
 	egg_debug ("sent request");
@@ -433,6 +446,8 @@ pk_client_get_tid_cb (GObject *object, GAsyncResult *res, PkClientState *state)
 	g_free (filters_text);
 }
 
+/*****************************************************************************************************************************/
+
 /**
  * pk_client_resolve_async:
  * @client: a valid #PkClient instance
@@ -460,6 +475,7 @@ pk_client_resolve_async (PkClient *client, PkBitfield filters, gchar **packages,
 
 	/* save state */
 	state = g_slice_new0 (PkClientState);
+	state->role = PK_ROLE_ENUM_RESOLVE;
 	state->res = g_object_ref (res);
 	state->cancellable = cancellable;
 	state->client = client;
@@ -485,7 +501,7 @@ pk_client_resolve_async (PkClient *client, PkBitfield filters, gchar **packages,
  * @res: the #GAsyncResult
  * @error: A #GError or %NULL
  *
- * Gets the result from the asynchronous function. 
+ * Gets the result from the asynchronous function.
  *
  * Return value: the ID, or %NULL if unset
  **/
@@ -509,6 +525,162 @@ pk_client_resolve_finish (PkClient *client, GAsyncResult *res, GError **error)
 	return g_simple_async_result_get_op_res_gpointer (simple);
 }
 
+/*****************************************************************************************************************************/
+
+/**
+ * pk_client_get_details_async:
+ * @client: a valid #PkClient instance
+ * @cancellable: a #GCancellable or %NULL
+ * @callback_progress: the function to run when the progress changes
+ * @callback_status: the function to run when the status changes
+ * @callback_package: the function to run when the package changes
+ * @callback_ready: the function to run on completion
+ * @user_data: the data to pass to @callback
+ *
+ * TODO
+ **/
+void
+pk_client_get_details_async (PkClient *client, gchar **packages, GCancellable *cancellable,
+			     PkClientProgressCallback callback_progress, PkClientStatusCallback callback_status,
+			     PkClientPackageCallback callback_package, GAsyncReadyCallback callback_ready, gpointer user_data)
+{
+	GSimpleAsyncResult *res;
+	PkClientState *state;
+
+	g_return_if_fail (PK_IS_CLIENT (client));
+	g_return_if_fail (callback_ready != NULL);
+
+	res = g_simple_async_result_new (G_OBJECT (client), callback_ready, user_data, pk_client_get_details_async);
+
+	/* save state */
+	state = g_slice_new0 (PkClientState);
+	state->role = PK_ROLE_ENUM_GET_DETAILS;
+	state->res = g_object_ref (res);
+	state->cancellable = cancellable;
+	state->client = client;
+	state->results = NULL;
+	state->proxy = NULL;
+	state->call = NULL;
+	state->packages = g_strdupv (packages);
+	state->callback_progress = callback_progress;
+	state->callback_status = callback_status;
+	state->callback_package = callback_package;
+	state->user_data = user_data;
+	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
+
+	/* get tid */
+	pk_control_get_tid_async (client->priv->control, NULL, (GAsyncReadyCallback) pk_client_get_tid_cb, state);
+	g_object_unref (res);
+}
+
+/**
+ * pk_client_get_details_finish:
+ * @client: a valid #PkClient instance
+ * @res: the #GAsyncResult
+ * @error: A #GError or %NULL
+ *
+ * Gets the result from the asynchronous function.
+ *
+ * Return value: the ID, or %NULL if unset
+ **/
+PkResults *
+pk_client_get_details_finish (PkClient *client, GAsyncResult *res, GError **error)
+{
+	GSimpleAsyncResult *simple;
+	gpointer source_tag;
+
+	g_return_val_if_fail (PK_IS_CLIENT (client), NULL);
+	g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (res), NULL);
+
+	simple = G_SIMPLE_ASYNC_RESULT (res);
+	source_tag = g_simple_async_result_get_source_tag (simple);
+
+	g_return_val_if_fail (source_tag == pk_client_get_details_async, NULL);
+
+	if (g_simple_async_result_propagate_error (simple, error))
+		return NULL;
+
+	return g_simple_async_result_get_op_res_gpointer (simple);
+}
+
+/*****************************************************************************************************************************/
+
+/**
+ * pk_client_get_update_detail_async:
+ * @client: a valid #PkClient instance
+ * @cancellable: a #GCancellable or %NULL
+ * @callback_progress: the function to run when the progress changes
+ * @callback_status: the function to run when the status changes
+ * @callback_package: the function to run when the package changes
+ * @callback_ready: the function to run on completion
+ * @user_data: the data to pass to @callback
+ *
+ * TODO
+ **/
+void
+pk_client_get_update_detail_async (PkClient *client, gchar **packages, GCancellable *cancellable,
+				   PkClientProgressCallback callback_progress, PkClientStatusCallback callback_status,
+				   PkClientPackageCallback callback_package, GAsyncReadyCallback callback_ready, gpointer user_data)
+{
+	GSimpleAsyncResult *res;
+	PkClientState *state;
+
+	g_return_if_fail (PK_IS_CLIENT (client));
+	g_return_if_fail (callback_ready != NULL);
+
+	res = g_simple_async_result_new (G_OBJECT (client), callback_ready, user_data, pk_client_get_update_detail_async);
+
+	/* save state */
+	state = g_slice_new0 (PkClientState);
+	state->role = PK_ROLE_ENUM_GET_UPDATE_DETAIL;
+	state->res = g_object_ref (res);
+	state->cancellable = cancellable;
+	state->client = client;
+	state->results = NULL;
+	state->proxy = NULL;
+	state->call = NULL;
+	state->packages = g_strdupv (packages);
+	state->callback_progress = callback_progress;
+	state->callback_status = callback_status;
+	state->callback_package = callback_package;
+	state->user_data = user_data;
+	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
+
+	/* get tid */
+	pk_control_get_tid_async (client->priv->control, NULL, (GAsyncReadyCallback) pk_client_get_tid_cb, state);
+	g_object_unref (res);
+}
+
+/**
+ * pk_client_get_update_detail_finish:
+ * @client: a valid #PkClient instance
+ * @res: the #GAsyncResult
+ * @error: A #GError or %NULL
+ *
+ * Gets the result from the asynchronous function.
+ *
+ * Return value: the ID, or %NULL if unset
+ **/
+PkResults *
+pk_client_get_update_detail_finish (PkClient *client, GAsyncResult *res, GError **error)
+{
+	GSimpleAsyncResult *simple;
+	gpointer source_tag;
+
+	g_return_val_if_fail (PK_IS_CLIENT (client), NULL);
+	g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (res), NULL);
+
+	simple = G_SIMPLE_ASYNC_RESULT (res);
+	source_tag = g_simple_async_result_get_source_tag (simple);
+
+	g_return_val_if_fail (source_tag == pk_client_get_update_detail_async, NULL);
+
+	if (g_simple_async_result_propagate_error (simple, error))
+		return NULL;
+
+	return g_simple_async_result_get_op_res_gpointer (simple);
+}
+
 /**
  * pk_client_get_property:
  **/
diff --git a/lib/packagekit-glib2/pk-client.h b/lib/packagekit-glib2/pk-client.h
index 374b8e0..5bbd9ce 100644
--- a/lib/packagekit-glib2/pk-client.h
+++ b/lib/packagekit-glib2/pk-client.h
@@ -84,6 +84,7 @@ typedef void	(*PkClientPackageCallback)		(PkClient		*client,
 							 const gchar		*package_id,
                                                          gpointer		 user_data);
 
+/* resolve */
 void		 pk_client_resolve_async		(PkClient		*client,
 							 PkBitfield		 filters,
 							 gchar			**packages,
@@ -97,6 +98,32 @@ PkResults	*pk_client_resolve_finish		(PkClient		*client,
 							 GAsyncResult		*res,
 							 GError			**error);
 
+/* get_details */
+void		 pk_client_get_details_async		(PkClient		*client,
+							 gchar			**packages,
+							 GCancellable		*cancellable,
+							 PkClientProgressCallback callback_progress,
+							 PkClientStatusCallback	 callback_status,
+							 PkClientPackageCallback callback_package,
+							 GAsyncReadyCallback	 callback_ready,
+							 gpointer		 user_data);
+PkResults	*pk_client_get_details_finish		(PkClient		*client,
+							 GAsyncResult		*res,
+							 GError			**error);
+
+/* get_update_detail */
+void		 pk_client_get_update_detail_async	(PkClient		*client,
+							 gchar			**packages,
+							 GCancellable		*cancellable,
+							 PkClientProgressCallback callback_progress,
+							 PkClientStatusCallback	 callback_status,
+							 PkClientPackageCallback callback_package,
+							 GAsyncReadyCallback	 callback_ready,
+							 gpointer		 user_data);
+PkResults	*pk_client_get_update_detail_finish	(PkClient		*client,
+							 GAsyncResult		*res,
+							 GError			**error);
+
 G_END_DECLS
 
 #endif /* __PK_CLIENT_H */
commit 582cd248442474055f2743f4bcaba8b4a66ce711
Author: Anders F Bjorklund <afb at users.sourceforge.net>
Date:   Wed Aug 26 22:31:08 2009 +0200

    ports: implement the newest group

diff --git a/backends/ports/pk-backend-ports.c b/backends/ports/pk-backend-ports.c
index 2148efb..ecd9e4a 100644
--- a/backends/ports/pk-backend-ports.c
+++ b/backends/ports/pk-backend-ports.c
@@ -90,7 +90,7 @@ backend_get_groups (PkBackend *backend)
 		/*	PK_GROUP_ENUM_ELECTRONICS, */
 		/*	PK_GROUP_ENUM_COLLECTIONS, */
 		/*	PK_GROUP_ENUM_VENDOR, */
-		/*	PK_GROUP_ENUM_NEWEST, */
+			PK_GROUP_ENUM_NEWEST,
 			-1);
 }
 
diff --git a/backends/ports/portsBackend.rb b/backends/ports/portsBackend.rb
index 273c067..81af152 100755
--- a/backends/ports/portsBackend.rb
+++ b/backends/ports/portsBackend.rb
@@ -207,10 +207,19 @@ end
 def search_group(filters, key)
     status(STATUS_QUERY)
     filterlist = filters.split(';')
-    category = GROUPS.invert[key] || GROUP_UNKNOWN
+    if key == GROUP_NEWEST
+      portmodified = Hash.new do |modified, portinfo|
+        modified[portinfo] = File.mtime(File.join(portinfo.portdir, 'Makefile')) if portinfo
+      end
+      ports = $portsdb.origins.sort { |a, b| portmodified[$portsdb.port(b)] \
+                                         <=>  portmodified[$portsdb.port(a)] }
+    else
+      category = GROUPS.invert[key] || GROUP_UNKNOWN
+      ports = $portsdb.origins(category)
+    end
     begin
-      $portsdb.each(category) do |portinfo|
-        port = PortInfo.new(portinfo)
+      ports.each do |origin|
+        port = $portsdb.port(origin)
         pkg = PkgInfo.new(port.pkgname)
         installed = pkg.installed?
         if filterlist.include? FILTER_NOT_INSTALLED and installed:
commit a431ed9723e19b8c316fa8d0249940c022838c62
Author: Richard Hughes <richard at hughsie.com>
Date:   Wed Aug 26 21:25:57 2009 +0100

    glib2: add pk_results_add_details() and pk_results_add_update_detail()

diff --git a/lib/packagekit-glib2/pk-results.c b/lib/packagekit-glib2/pk-results.c
index 10fd8ab..eb585a9 100644
--- a/lib/packagekit-glib2/pk-results.c
+++ b/lib/packagekit-glib2/pk-results.c
@@ -65,6 +65,8 @@ struct _PkResultsPrivate
 {
 	PkExitEnum		 exit_enum;
 	GPtrArray		*package_array;
+	GPtrArray		*details_array;
+	GPtrArray		*update_detail_array;
 };
 
 G_DEFINE_TYPE (PkResults, pk_results, G_TYPE_OBJECT)
@@ -83,6 +85,43 @@ pk_result_item_package_free (PkResultItemPackage *item)
 }
 
 /**
+ * pk_result_item_details_free:
+ **/
+static void
+pk_result_item_details_free (PkResultItemDetails *item)
+{
+	if (item == NULL)
+		return;
+	g_free (item->package_id);
+	g_free (item->license);
+	g_free (item->description);
+	g_free (item->url);
+	g_free (item);
+}
+
+/**
+ * pk_result_item_update_detail_free:
+ **/
+static void
+pk_result_item_update_detail_free (PkResultItemUpdateDetail *item)
+{
+	if (item == NULL)
+		return;
+	g_free (item->package_id);
+	g_free (item->updates);
+	g_free (item->obsoletes);
+	g_free (item->vendor_url);
+	g_free (item->bugzilla_url);
+	g_free (item->cve_url);
+	g_free (item->update_text);
+	g_free (item->changelog);
+	if (item->issued != NULL)
+		g_date_free (item->issued);
+	if (item->updated != NULL)
+		g_date_free (item->updated);
+}
+
+/**
  * pk_results_set_exit_code:
  * @results: a valid #PkResults instance
  * @exit_enum: the exit code
@@ -105,9 +144,8 @@ pk_results_set_exit_code (PkResults *results, PkExitEnum exit_enum)
 /**
  * pk_results_add_package:
  * @results: a valid #PkResults instance
- * @id: the valid results_id
  *
- * Sets the results object to have the given ID
+ * Adds a package to the results set.
  *
  * Return value: %TRUE if the value was set
  **/
@@ -131,6 +169,76 @@ pk_results_add_package (PkResults *results, PkInfoEnum info_enum, const gchar *p
 }
 
 /**
+ * pk_results_add_details:
+ * @results: a valid #PkResults instance
+ *
+ * Adds some package details to the results set.
+ *
+ * Return value: %TRUE if the value was set
+ **/
+gboolean
+pk_results_add_details (PkResults *results, const gchar	*package_id, const gchar *license,
+			PkGroupEnum group_enum, const gchar *description, const gchar *url, guint64 size)
+{
+	PkResultItemDetails *item;
+
+	g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
+	g_return_val_if_fail (package_id != NULL, FALSE);
+
+	/* copy and add to array */
+	item = g_new0 (PkResultItemDetails, 1);
+	item->package_id = g_strdup (package_id);
+	item->license = g_strdup (license);
+	item->group_enum = group_enum;
+	item->description = g_strdup (description);
+	item->url = g_strdup (url);
+	item->size = size;
+	g_ptr_array_add (results->priv->details_array, item);
+
+	return TRUE;
+}
+
+/**
+ * pk_results_add_update_detail:
+ * @results: a valid #PkResults instance
+ *
+ * Adds some update details to the results set.
+ *
+ * Return value: %TRUE if the value was set
+ **/
+gboolean
+pk_results_add_update_detail (PkResults *results, const gchar *package_id, const gchar *updates,
+			      const gchar *obsoletes, const gchar *vendor_url, const gchar *bugzilla_url,
+			      const gchar *cve_url, PkRestartEnum restart_enum, const gchar *update_text,
+			      const gchar *changelog, PkUpdateStateEnum state_enum, GDate *issued, GDate *updated)
+{
+	PkResultItemUpdateDetail *item;
+
+	g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
+	g_return_val_if_fail (package_id != NULL, FALSE);
+
+	/* copy and add to array */
+	item = g_new0 (PkResultItemUpdateDetail, 1);
+	item->package_id = g_strdup (package_id);
+	item->updates = g_strdup (updates);
+	item->obsoletes = g_strdup (obsoletes);
+	item->vendor_url = g_strdup (vendor_url);
+	item->bugzilla_url = g_strdup (bugzilla_url);
+	item->cve_url = g_strdup (cve_url);
+	item->restart_enum = restart_enum;
+	item->update_text = g_strdup (update_text);
+	item->changelog = g_strdup (changelog);
+	item->state_enum = state_enum;
+	if (issued != NULL)
+		item->issued = g_date_new_dmy (issued->day, issued->month, issued->year);
+	if (updated != NULL)
+		item->updated = g_date_new_dmy (updated->day, updated->month, updated->year);
+	g_ptr_array_add (results->priv->update_detail_array, item);
+
+	return TRUE;
+}
+
+/**
  * pk_results_get_exit_code:
  * @results: a valid #PkResults instance
  *
@@ -151,7 +259,7 @@ pk_results_get_exit_code (PkResults *results)
  *
  * Gets the packages from the transaction.
  *
- * Return value: A #GPtrArray array of #PkResultItemPackage's, free with g_ptr_array_unref().
+ * Return value: A #GPtrArray array of #PkResultItemDetails's, free with g_ptr_array_unref().
  **/
 GPtrArray *
 pk_results_get_package_array (PkResults *results)
@@ -161,6 +269,36 @@ pk_results_get_package_array (PkResults *results)
 }
 
 /**
+ * pk_results_get_details_array:
+ * @results: a valid #PkResults instance
+ *
+ * Gets the package details from the transaction.
+ *
+ * Return value: A #GPtrArray array of #PkResultItemPackage's, free with g_ptr_array_unref().
+ **/
+GPtrArray *
+pk_results_get_details_array (PkResults *results)
+{
+	g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
+	return g_ptr_array_ref (results->priv->details_array);
+}
+
+/**
+ * pk_results_get_update_detail_array:
+ * @results: a valid #PkResults instance
+ *
+ * Gets the update details from the transaction.
+ *
+ * Return value: A #GPtrArray array of #PkResultItemUpdateDetail's, free with g_ptr_array_unref().
+ **/
+GPtrArray *
+pk_results_get_update_detail_array (PkResults *results)
+{
+	g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
+	return g_ptr_array_ref (results->priv->update_detail_array);
+}
+
+/**
  * pk_results_class_init:
  * @klass: The PkResultsClass
  **/
@@ -182,6 +320,8 @@ pk_results_init (PkResults *results)
 	results->priv = PK_RESULTS_GET_PRIVATE (results);
 	results->priv->exit_enum = PK_EXIT_ENUM_UNKNOWN;
 	results->priv->package_array = g_ptr_array_new_with_free_func ((GDestroyNotify) pk_result_item_package_free);
+	results->priv->details_array = g_ptr_array_new_with_free_func ((GDestroyNotify) pk_result_item_details_free);
+	results->priv->update_detail_array = g_ptr_array_new_with_free_func ((GDestroyNotify) pk_result_item_update_detail_free);
 }
 
 /**
@@ -195,6 +335,8 @@ pk_results_finalize (GObject *object)
 	PkResultsPrivate *priv = results->priv;
 
 	g_ptr_array_unref (priv->package_array);
+	g_ptr_array_unref (priv->details_array);
+	g_ptr_array_unref (priv->update_detail_array);
 
 	G_OBJECT_CLASS (pk_results_parent_class)->finalize (object);
 }
diff --git a/lib/packagekit-glib2/pk-results.h b/lib/packagekit-glib2/pk-results.h
index c605ced..7ca8e90 100644
--- a/lib/packagekit-glib2/pk-results.h
+++ b/lib/packagekit-glib2/pk-results.h
@@ -79,11 +79,31 @@ gboolean	 pk_results_add_package			(PkResults	*results,
 							 PkInfoEnum	 info_enum,
 							 const gchar	*package_id,
 							 const gchar	*summary);
+gboolean	 pk_results_add_details			(PkResults	*results,
+							 const gchar	*package_id,
+							 const gchar	*license,
+							 PkGroupEnum	 group_enum,
+							 const gchar	*description,
+							 const gchar	*url,
+							 guint64	 size);
+gboolean	 pk_results_add_update_detail		(PkResults	*results,
+							 const gchar	*package_id,
+							 const gchar	*updates,
+							 const gchar	*obsoletes,
+							 const gchar	*vendor_url,
+							 const gchar	*bugzilla_url,
+							 const gchar	*cve_url,
+							 PkRestartEnum	 restart_enum,
+							 const gchar	*update_text,
+							 const gchar	*changelog,
+							 PkUpdateStateEnum state_enum,
+							 GDate		*issued,
+							 GDate		*updated);
 
 /* get single data */
 PkExitEnum	 pk_results_get_exit_code		(PkResults	*results);
 
-/* get array data */
+/* get package array data */
 typedef struct {
 	PkInfoEnum	 info_enum;
 	gchar		*package_id;
@@ -91,6 +111,34 @@ typedef struct {
 } PkResultItemPackage;
 GPtrArray	*pk_results_get_package_array		(PkResults	*results);
 
+/* get details array data */
+typedef struct {
+	gchar		*package_id;
+	gchar		*license;
+	PkGroupEnum	 group_enum;
+	gchar		*description;
+	gchar		*url;
+	guint64		 size;
+} PkResultItemDetails;
+GPtrArray	*pk_results_get_details_array		(PkResults	*results);
+
+/* get update detail array data */
+typedef struct {
+	gchar		*package_id;
+	gchar		*updates;
+	gchar		*obsoletes;
+	gchar		*vendor_url;
+	gchar		*bugzilla_url;
+	gchar		*cve_url;
+	PkRestartEnum	 restart_enum;
+	gchar		*update_text;
+	gchar		*changelog;
+	PkUpdateStateEnum state_enum;
+	GDate		*issued;
+	GDate		*updated;
+} PkResultItemUpdateDetail;
+GPtrArray	*pk_results_get_update_detail_array	(PkResults	*results);
+
 G_END_DECLS
 
 #endif /* __PK_RESULTS_H */
commit 9d8a72df0d101bdbe32abaaa14361afec4751846
Merge: 49da457... ca4e5f8...
Author: Richard Hughes <richard at hughsie.com>
Date:   Wed Aug 26 20:31:13 2009 +0100

    Merge branch 'master' of git+ssh://git.packagekit.org/srv/git/PackageKit

commit 49da457316b5a7b882126d83efbe4e42263c1f05
Author: Richard Hughes <richard at hughsie.com>
Date:   Wed Aug 26 20:30:35 2009 +0100

    glib2: add some more properties to PkPackage

diff --git a/lib/packagekit-glib2/pk-package.c b/lib/packagekit-glib2/pk-package.c
index 110fb6a..af20bb0 100644
--- a/lib/packagekit-glib2/pk-package.c
+++ b/lib/packagekit-glib2/pk-package.c
@@ -70,6 +70,22 @@ struct _PkPackagePrivate
 	gchar			*id_data;
 	gchar			*summary;
 	PkInfoEnum		 info;
+	gchar			*license;
+	PkGroupEnum		 group;
+	gchar			*description;
+	gchar			*url;
+	guint64			 size;
+	gchar			*update_updates;
+	gchar			*update_obsoletes;
+	gchar			*update_vendor_url;
+	gchar			*update_bugzilla_url;
+	gchar			*update_cve_url;
+	PkRestartEnum		 update_restart;
+	gchar			*update_text;
+	gchar			*update_changelog;
+	PkUpdateStateEnum	 update_state;
+	GDate			*update_issued;
+	GDate			*update_updated;
 };
 
 enum {
@@ -86,6 +102,22 @@ enum {
 	PROP_ID_DATA,
 	PROP_SUMMARY,
 	PROP_INFO,
+	PROP_LICENSE,
+	PROP_GROUP,
+	PROP_DESCRIPTION,
+	PROP_URL,
+	PROP_SIZE,
+	PROP_UPDATE_UPDATES,
+	PROP_UPDATE_OBSOLETES,
+	PROP_UPDATE_VENDOR_URL,
+	PROP_UPDATE_BUGZILLA_URL,
+	PROP_UPDATE_CVE_URL,
+	PROP_UPDATE_RESTART,
+	PROP_UPDATE_UPDATE_TEXT,
+	PROP_UPDATE_CHANGELOG,
+	PROP_UPDATE_STATE,
+	PROP_UPDATE_ISSUED,
+	PROP_UPDATE_UPDATED,
 	PROP_LAST
 };
 
@@ -211,6 +243,54 @@ pk_package_get_property (GObject *object, guint prop_id, GValue *value, GParamSp
 	case PROP_INFO:
 		g_value_set_uint (value, priv->info);
 		break;
+	case PROP_LICENSE:
+		g_value_set_string (value, priv->license);
+		break;
+	case PROP_GROUP:
+		g_value_set_uint (value, priv->group);
+		break;
+	case PROP_DESCRIPTION:
+		g_value_set_string (value, priv->description);
+		break;
+	case PROP_URL:
+		g_value_set_string (value, priv->url);
+		break;
+	case PROP_SIZE:
+		g_value_set_uint64 (value, priv->size);
+		break;
+	case PROP_UPDATE_UPDATES:
+		g_value_set_string (value, priv->update_updates);
+		break;
+	case PROP_UPDATE_OBSOLETES:
+		g_value_set_string (value, priv->update_obsoletes);
+		break;
+	case PROP_UPDATE_VENDOR_URL:
+		g_value_set_string (value, priv->update_vendor_url);
+		break;
+	case PROP_UPDATE_BUGZILLA_URL:
+		g_value_set_string (value, priv->update_bugzilla_url);
+		break;
+	case PROP_UPDATE_CVE_URL:
+		g_value_set_string (value, priv->update_cve_url);
+		break;
+	case PROP_UPDATE_RESTART:
+		g_value_set_uint (value, priv->update_restart);
+		break;
+	case PROP_UPDATE_UPDATE_TEXT:
+		g_value_set_string (value, priv->update_text);
+		break;
+	case PROP_UPDATE_CHANGELOG:
+		g_value_set_string (value, priv->update_changelog);
+		break;
+	case PROP_UPDATE_STATE:
+		g_value_set_uint (value, priv->update_state);
+		break;
+	case PROP_UPDATE_ISSUED:
+		g_value_set_pointer (value, priv->update_issued);
+		break;
+	case PROP_UPDATE_UPDATED:
+		g_value_set_pointer (value, priv->update_updated);
+		break;
 	default:
 		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
 		break;
@@ -225,6 +305,7 @@ pk_package_set_property (GObject *object, guint prop_id, const GValue *value, GP
 {
 	PkPackage *package = PK_PACKAGE (object);
 	PkPackagePrivate *priv = package->priv;
+	GDate *date;
 
 	switch (prop_id) {
 	case PROP_SUMMARY:
@@ -234,6 +315,70 @@ pk_package_set_property (GObject *object, guint prop_id, const GValue *value, GP
 	case PROP_INFO:
 		priv->info = g_value_get_uint (value);
 		break;
+	case PROP_LICENSE:
+		g_free (priv->license);
+		priv->license = g_strdup (g_value_get_string (value));
+		break;
+	case PROP_GROUP:
+		priv->group = g_value_get_uint (value);
+		break;
+	case PROP_DESCRIPTION:
+		g_free (priv->description);
+		priv->description = g_strdup (g_value_get_string (value));
+		break;
+	case PROP_URL:
+		g_free (priv->url);
+		priv->url = g_strdup (g_value_get_string (value));
+		break;
+	case PROP_SIZE:
+		priv->size = g_value_get_uint64 (value);
+		break;
+	case PROP_UPDATE_UPDATES:
+		g_free (priv->update_updates);
+		priv->update_updates = g_strdup (g_value_get_string (value));
+		break;
+	case PROP_UPDATE_OBSOLETES:
+		g_free (priv->update_obsoletes);
+		priv->update_obsoletes = g_strdup (g_value_get_string (value));
+		break;
+	case PROP_UPDATE_VENDOR_URL:
+		g_free (priv->update_vendor_url);
+		priv->update_vendor_url = g_strdup (g_value_get_string (value));
+		break;
+	case PROP_UPDATE_BUGZILLA_URL:
+		g_free (priv->update_bugzilla_url);
+		priv->update_bugzilla_url = g_strdup (g_value_get_string (value));
+		break;
+	case PROP_UPDATE_CVE_URL:
+		g_free (priv->update_cve_url);
+		priv->update_cve_url = g_strdup (g_value_get_string (value));
+		break;
+	case PROP_UPDATE_RESTART:
+		priv->update_restart = g_value_get_uint (value);
+		break;
+	case PROP_UPDATE_UPDATE_TEXT:
+		g_free (priv->update_text);
+		priv->update_text = g_strdup (g_value_get_string (value));
+		break;
+	case PROP_UPDATE_CHANGELOG:
+		g_free (priv->update_changelog);
+		priv->update_changelog = g_strdup (g_value_get_string (value));
+		break;
+	case PROP_UPDATE_STATE:
+		priv->update_state = g_value_get_uint (value);
+		break;
+	case PROP_UPDATE_ISSUED:
+		if (priv->update_issued != NULL)
+			g_date_free (priv->update_issued);
+		date = g_value_get_pointer (value);
+		priv->update_issued = g_date_new_dmy (date->day, date->month, date->year);
+		break;
+	case PROP_UPDATE_UPDATED:
+		if (priv->update_updated != NULL)
+			g_date_free (priv->update_updated);
+		date = g_value_get_pointer (value);
+		priv->update_updated = g_date_new_dmy (date->day, date->month, date->year);
+		break;
 	default:
 		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
 		break;
@@ -312,11 +457,153 @@ pk_package_class_init (PkPackageClass *klass)
 	 */
 	pspec = g_param_spec_uint ("info", NULL,
 				   "The PkInfoEnum package type, e.g. PK_INFO_ENUM_NORMAL",
-				   0, G_MAXUINT, 0,
+				   0, G_MAXUINT, PK_INFO_ENUM_UNKNOWN,
 				   G_PARAM_READWRITE);
 	g_object_class_install_property (object_class, PROP_INFO, pspec);
 
 	/**
+	 * PkPackage:license:
+	 */
+	pspec = g_param_spec_string ("license", NULL,
+				     "The package license",
+				     NULL,
+				     G_PARAM_READWRITE);
+	g_object_class_install_property (object_class, PROP_LICENSE, pspec);
+
+	/**
+	 * PkPackage:group:
+	 */
+	pspec = g_param_spec_uint ("group", NULL,
+				   "The package group",
+				   0, PK_GROUP_ENUM_UNKNOWN, PK_GROUP_ENUM_UNKNOWN,
+				   G_PARAM_READWRITE);
+	g_object_class_install_property (object_class, PROP_GROUP, pspec);
+
+	/**
+	 * PkPackage:description:
+	 */
+	pspec = g_param_spec_string ("description", NULL,
+				     "The package description",
+				     NULL,
+				     G_PARAM_READWRITE);
+	g_object_class_install_property (object_class, PROP_DESCRIPTION, pspec);
+
+	/**
+	 * PkPackage:url:
+	 */
+	pspec = g_param_spec_string ("url", NULL,
+				     "The package homepage URL",
+				     NULL,
+				     G_PARAM_READWRITE);
+	g_object_class_install_property (object_class, PROP_URL, pspec);
+
+	/**
+	 * PkPackage:size:
+	 */
+	pspec = g_param_spec_uint64 ("size", NULL,
+				     "The package size",
+				     0, G_MAXUINT64, 0,
+				     G_PARAM_READWRITE);
+	g_object_class_install_property (object_class, PROP_SIZE, pspec);
+
+	/**
+	 * PkPackage:update-updates:
+	 */
+	pspec = g_param_spec_string ("update-updates", NULL,
+				     "The update packages",
+				     NULL,
+				     G_PARAM_READWRITE);
+	g_object_class_install_property (object_class, PROP_UPDATE_UPDATES, pspec);
+
+	/**
+	 * PkPackage:update-obsoletes:
+	 */
+	pspec = g_param_spec_string ("update-obsoletes", NULL,
+				     "The update packages that are obsoleted",
+				     NULL,
+				     G_PARAM_READWRITE);
+	g_object_class_install_property (object_class, PROP_UPDATE_OBSOLETES, pspec);
+
+	/**
+	 * PkPackage:update-vendor-url:
+	 */
+	pspec = g_param_spec_string ("update-vendor-url", NULL,
+				     "The update vendor URL",
+				     NULL,
+				     G_PARAM_READWRITE);
+	g_object_class_install_property (object_class, PROP_UPDATE_VENDOR_URL, pspec);
+
+	/**
+	 * PkPackage:update-bugzilla-url:
+	 */
+	pspec = g_param_spec_string ("update-bugzilla-url", NULL,
+				     "The update bugzilla URL",
+				     NULL,
+				     G_PARAM_READWRITE);
+	g_object_class_install_property (object_class, PROP_UPDATE_BUGZILLA_URL, pspec);
+
+	/**
+	 * PkPackage:update-cve-url:
+	 */
+	pspec = g_param_spec_string ("update-cve-url", NULL,
+				     "The update CVE URL",
+				     NULL,
+				     G_PARAM_READWRITE);
+	g_object_class_install_property (object_class, PROP_UPDATE_CVE_URL, pspec);
+
+	/**
+	 * PkPackage:update-restart:
+	 */
+	pspec = g_param_spec_string ("update-restart", NULL,
+				     "The update restart type",
+				     NULL,
+				     G_PARAM_READWRITE);
+	g_object_class_install_property (object_class, PROP_UPDATE_RESTART, pspec);
+
+	/**
+	 * PkPackage:update-text:
+	 */
+	pspec = g_param_spec_string ("update-text", NULL,
+				     "The update description",
+				     NULL,
+				     G_PARAM_READWRITE);
+	g_object_class_install_property (object_class, PROP_UPDATE_UPDATE_TEXT, pspec);
+
+	/**
+	 * PkPackage:update-changelog:
+	 */
+	pspec = g_param_spec_string ("update-changelog", NULL,
+				     "The update ChangeLog",
+				     NULL,
+				     G_PARAM_READWRITE);
+	g_object_class_install_property (object_class, PROP_UPDATE_CHANGELOG, pspec);
+
+	/**
+	 * PkPackage:update-state:
+	 */
+	pspec = g_param_spec_uint ("update-state", NULL,
+				   "The update state",
+				   0, PK_UPDATE_STATE_ENUM_UNKNOWN, PK_UPDATE_STATE_ENUM_UNKNOWN,
+				   G_PARAM_READWRITE);
+	g_object_class_install_property (object_class, PROP_UPDATE_STATE, pspec);
+
+	/**
+	 * PkPackage:update-issued:
+	 */
+	pspec = g_param_spec_pointer ("update-issued", NULL,
+				      "When the update was issued",
+				      G_PARAM_READWRITE);
+	g_object_class_install_property (object_class, PROP_UPDATE_ISSUED, pspec);
+
+	/**
+	 * PkPackage:update-updated:
+	 */
+	pspec = g_param_spec_pointer ("update-updated", NULL,
+				      "When the update was last updated",
+				      G_PARAM_READWRITE);
+	g_object_class_install_property (object_class, PROP_UPDATE_UPDATED, pspec);
+
+	/**
 	 * PkPackage::changed:
 	 * @package: the #PkPackage instance that emitted the signal
 	 *
commit 151607ae697512e8e2564e10513f508c83474d05
Author: Richard Hughes <richard at hughsie.com>
Date:   Wed Aug 26 19:51:22 2009 +0100

    glib2: flesh out more of pk_client_resolve_async()

diff --git a/lib/packagekit-glib2/pk-client.c b/lib/packagekit-glib2/pk-client.c
index c0910fb..a3ffd43 100644
--- a/lib/packagekit-glib2/pk-client.c
+++ b/lib/packagekit-glib2/pk-client.c
@@ -87,15 +87,19 @@ static guint signals [SIGNAL_LAST] = { 0 };
 G_DEFINE_TYPE (PkClient, pk_client, G_TYPE_OBJECT)
 
 typedef struct {
-	PkClient		*client;
-	GCancellable		*cancellable;
-	gchar			*tid;
-	gchar			**packages;
-	GSimpleAsyncResult	*res;
-	DBusGProxyCall		*call;
-	PkResults		*results;
-	DBusGProxy		*proxy;
-	PkBitfield		 filters;
+	PkClient			*client;
+	GCancellable			*cancellable;
+	gchar				*tid;
+	gchar				**packages;
+	GSimpleAsyncResult		*res;
+	DBusGProxyCall			*call;
+	PkResults			*results;
+	DBusGProxy			*proxy;
+	PkBitfield			 filters;
+	PkClientProgressCallback	 callback_progress;
+	PkClientStatusCallback		 callback_status;
+	PkClientPackageCallback		 callback_package;
+	gpointer			 user_data;
 } PkClientState;
 
 static void pk_client_finished_cb (DBusGProxy *proxy, const gchar *exit_text, guint runtime, PkClientState *state);
@@ -201,8 +205,41 @@ pk_client_package_cb (DBusGProxy *proxy, const gchar *info_text, const gchar *pa
 {
 	PkInfoEnum info_enum;
 	g_return_if_fail (PK_IS_CLIENT (state->client));
+
+	/* add to results */
 	info_enum = pk_info_enum_from_text (info_text);
 	pk_results_add_package (state->results, info_enum, package_id, summary);
+
+	/* do the callback for GUI programs */
+	if (state->callback_package != NULL)
+		state->callback_package (state->client, package_id, state->user_data);
+}
+
+/**
+ * pk_client_progress_changed_cb:
+ */
+static void
+pk_client_progress_changed_cb (DBusGProxy *proxy, guint percentage, guint subpercentage,
+			       guint elapsed, guint remaining, PkClientState *state)
+{
+	/* do the callback for GUI programs */
+	if (state->callback_progress != NULL)
+		state->callback_progress (state->client, percentage, state->user_data);
+}
+
+/**
+ * pk_client_status_changed_cb:
+ */
+static void
+pk_client_status_changed_cb (DBusGProxy *proxy, const gchar *status_text, PkClientState *state)
+{
+	PkStatusEnum status_enum;
+
+	/* do the callback for GUI programs */
+	if (state->callback_status != NULL) {
+		status_enum = pk_status_enum_from_text (status_text);
+		state->callback_status (state->client, status_enum, state->user_data);
+	}
 }
 
 /**
@@ -259,11 +296,11 @@ pk_client_connect_proxy (DBusGProxy *proxy, PkClientState *state)
 				     G_CALLBACK (pk_client_finished_cb), state, NULL);
 	dbus_g_proxy_connect_signal (proxy, "Package",
 				     G_CALLBACK (pk_client_package_cb), state, NULL);
-#if 0
-	dbus_g_proxy_connect_signal (proxy, "ProgressChanged",
-				     G_CALLBACK (pk_client_progress_changed_cb), state, NULL);
 	dbus_g_proxy_connect_signal (proxy, "StatusChanged",
 				     G_CALLBACK (pk_client_status_changed_cb), state, NULL);
+	dbus_g_proxy_connect_signal (proxy, "ProgressChanged",
+				     G_CALLBACK (pk_client_progress_changed_cb), state, NULL);
+#if 0
 	dbus_g_proxy_connect_signal (proxy, "Transaction",
 				     G_CALLBACK (pk_client_transaction_cb), state, NULL);
 	dbus_g_proxy_connect_signal (proxy, "UpdateDetail",
@@ -307,13 +344,13 @@ pk_client_disconnect_proxy (DBusGProxy *proxy, PkClientState *state)
 {
 	dbus_g_proxy_disconnect_signal (proxy, "Finished",
 					G_CALLBACK (pk_client_finished_cb), state);
-#if 0
+	dbus_g_proxy_disconnect_signal (proxy, "Package",
+					G_CALLBACK (pk_client_package_cb), state);
 	dbus_g_proxy_disconnect_signal (proxy, "ProgressChanged",
 					G_CALLBACK (pk_client_progress_changed_cb), state);
 	dbus_g_proxy_disconnect_signal (proxy, "StatusChanged",
 					G_CALLBACK (pk_client_status_changed_cb), state);
-	dbus_g_proxy_disconnect_signal (proxy, "Package",
-					G_CALLBACK (pk_client_package_cb), state);
+#if 0
 	dbus_g_proxy_disconnect_signal (proxy, "Transaction",
 					G_CALLBACK (pk_client_transaction_cb), state);
 	dbus_g_proxy_disconnect_signal (proxy, "DistroUpgrade",
@@ -400,22 +437,26 @@ pk_client_get_tid_cb (GObject *object, GAsyncResult *res, PkClientState *state)
  * pk_client_resolve_async:
  * @client: a valid #PkClient instance
  * @cancellable: a #GCancellable or %NULL
- * @callback: the function to run on completion
+ * @callback_progress: the function to run when the progress changes
+ * @callback_status: the function to run when the status changes
+ * @callback_package: the function to run when the package changes
+ * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback
  *
  * TODO
  **/
 void
 pk_client_resolve_async (PkClient *client, PkBitfield filters, gchar **packages, GCancellable *cancellable,
-			 GAsyncReadyCallback callback, gpointer user_data)
+			 PkClientProgressCallback callback_progress, PkClientStatusCallback callback_status,
+			 PkClientPackageCallback callback_package, GAsyncReadyCallback callback_ready, gpointer user_data)
 {
 	GSimpleAsyncResult *res;
 	PkClientState *state;
 
 	g_return_if_fail (PK_IS_CLIENT (client));
-	g_return_if_fail (callback != NULL);
+	g_return_if_fail (callback_ready != NULL);
 
-	res = g_simple_async_result_new (G_OBJECT (client), callback, user_data, pk_client_resolve_async);
+	res = g_simple_async_result_new (G_OBJECT (client), callback_ready, user_data, pk_client_resolve_async);
 
 	/* save state */
 	state = g_slice_new0 (PkClientState);
@@ -427,6 +468,10 @@ pk_client_resolve_async (PkClient *client, PkBitfield filters, gchar **packages,
 	state->call = NULL;
 	state->filters = filters;
 	state->packages = g_strdupv (packages);
+	state->callback_progress = callback_progress;
+	state->callback_status = callback_status;
+	state->callback_package = callback_package;
+	state->user_data = user_data;
 	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
 
 	/* get tid */
@@ -715,6 +760,31 @@ pk_client_test_resolve_cb (GObject *object, GAsyncResult *res, EggTest *test)
 	egg_test_loop_quit (test);
 }
 
+static guint _progress_cb = 0;
+static guint _status_cb = 0;
+static guint _package_cb = 0;
+
+void
+pk_client_test_progress_cb (PkClient *client, gint percentage, EggTest *test)
+{
+	egg_debug ("progress now %i", percentage);
+	_progress_cb++;
+}
+
+void
+pk_client_test_status_cb (PkClient *client, PkStatusEnum status, EggTest *test)
+{
+	egg_debug ("status now %s", pk_status_enum_to_text (status));
+	_status_cb++;
+}
+
+void
+pk_client_test_package_cb (PkClient *client, const gchar *package_id, EggTest *test)
+{
+	egg_debug ("package now %s", package_id);
+	_package_cb++;
+}
+
 void
 pk_client_test (EggTest *test)
 {
@@ -730,13 +800,37 @@ pk_client_test (EggTest *test)
 	egg_test_assert (test, client != NULL);
 
 	/************************************************************/
-	egg_test_title (test, "get TID async");
+	egg_test_title (test, "resolve package");
 	package_ids = g_strsplit ("glib2;2.14.0;i386;fedora,powertop", ",", -1);
 	pk_client_resolve_async (client, pk_bitfield_value (PK_FILTER_ENUM_INSTALLED), package_ids, NULL,
+				 (PkClientProgressCallback) pk_client_test_progress_cb,
+				 (PkClientStatusCallback) pk_client_test_status_cb,
+				 (PkClientPackageCallback) pk_client_test_package_cb,
 				 (GAsyncReadyCallback) pk_client_test_resolve_cb, test);
 	g_strfreev (package_ids);
 	egg_test_loop_wait (test, 15000);
-	egg_test_success (test, "got tid in %i", egg_test_elapsed (test));
+	egg_test_success (test, "resolved in %i", egg_test_elapsed (test));
+
+	/************************************************************/
+	egg_test_title (test, "got progress updates");
+	if (_progress_cb > 0)
+		egg_test_success (test, NULL);
+	else
+		egg_test_failed (test, "got %i updates", _progress_cb);
+
+	/************************************************************/
+	egg_test_title (test, "got status updates");
+	if (_status_cb > 0)
+		egg_test_success (test, NULL);
+	else
+		egg_test_failed (test, "got %i updates", _status_cb);
+
+	/************************************************************/
+	egg_test_title (test, "got package updates");
+	if (_package_cb > 0)
+		egg_test_success (test, NULL);
+	else
+		egg_test_failed (test, "got %i updates", _package_cb);
 
 	g_object_unref (client);
 
diff --git a/lib/packagekit-glib2/pk-client.h b/lib/packagekit-glib2/pk-client.h
index 8397084..374b8e0 100644
--- a/lib/packagekit-glib2/pk-client.h
+++ b/lib/packagekit-glib2/pk-client.h
@@ -74,14 +74,24 @@ GQuark		 pk_client_error_quark			(void);
 GType		 pk_client_get_type		  	(void);
 PkClient	*pk_client_new				(void);
 
+typedef void	(*PkClientProgressCallback)		(PkClient		*client,
+							 gint			 percentage,
+                                                         gpointer		 user_data);
+typedef void	(*PkClientStatusCallback)		(PkClient		*client,
+							 PkStatusEnum		 status,
+                                                         gpointer		 user_data);
+typedef void	(*PkClientPackageCallback)		(PkClient		*client,
+							 const gchar		*package_id,
+                                                         gpointer		 user_data);
+
 void		 pk_client_resolve_async		(PkClient		*client,
 							 PkBitfield		 filters,
 							 gchar			**packages,
 							 GCancellable		*cancellable,
-							 /* TODO: progress cb */
-							 /* TODO: status cb */
-							 /* TODO: package cb */
-							 GAsyncReadyCallback	 callback,
+							 PkClientProgressCallback callback_progress,
+							 PkClientStatusCallback	 callback_status,
+							 PkClientPackageCallback callback_package,
+							 GAsyncReadyCallback	 callback_ready,
 							 gpointer		 user_data);
 PkResults	*pk_client_resolve_finish		(PkClient		*client,
 							 GAsyncResult		*res,
diff --git a/lib/packagekit-glib2/pk-package-sack.c b/lib/packagekit-glib2/pk-package-sack.c
index e97e23f..319fdec 100644
--- a/lib/packagekit-glib2/pk-package-sack.c
+++ b/lib/packagekit-glib2/pk-package-sack.c
@@ -431,7 +431,7 @@ pk_package_sack_merge_resolve_async (PkPackageSack *sack, GCancellable *cancella
 	/* start resolve async */
 	package_ids = pk_package_sack_get_package_ids (sack);
 	pk_client_resolve_async (sack->priv->client, pk_bitfield_value (PK_FILTER_ENUM_INSTALLED), package_ids,
-				 cancellable, (GAsyncReadyCallback) pk_package_sack_merge_resolve_cb, state);
+				 cancellable, NULL, NULL, NULL, (GAsyncReadyCallback) pk_package_sack_merge_resolve_cb, state);
 
 	g_strfreev (package_ids);
 	g_object_unref (res);
commit 12093802a9457a7a7f71311c139ae6fcf4f40a94
Author: Richard Hughes <richard at hughsie.com>
Date:   Wed Aug 26 19:50:58 2009 +0100

    dummy: add progress updates to resolve

diff --git a/backends/dummy/pk-backend-dummy.c b/backends/dummy/pk-backend-dummy.c
index fc30b11..3de33f9 100644
--- a/backends/dummy/pk-backend-dummy.c
+++ b/backends/dummy/pk-backend-dummy.c
@@ -609,6 +609,7 @@ backend_resolve (PkBackend *backend, PkBitfield filters, gchar **packages)
 	guint len;
 
 	pk_backend_set_status (backend, PK_STATUS_ENUM_QUERY);
+	pk_backend_set_percentage (backend, 0);
 
 	/* each one has a different detail for testing */
 	len = g_strv_length (packages);
@@ -633,6 +634,7 @@ backend_resolve (PkBackend *backend, PkBitfield filters, gchar **packages)
 			pk_backend_package (backend, PK_INFO_ENUM_INSTALLED,
 					    "gtkhtml2;2.19.1-4.fc8;i386;fedora", "An HTML widget for GTK+ 2.0");
 	}
+	pk_backend_set_percentage (backend, 100);
 	pk_backend_finished (backend);
 }
 
commit ca4e5f803455fe2563e441975af6082d23583da2
Merge: 4c02af9... 5722603...
Author: Daniel Nicoletti <dantti85-pk at yahoo.com.br>
Date:   Wed Aug 26 15:49:54 2009 -0300

    Merge branch 'master' of git+ssh://dantti@git.packagekit.org/srv/git/PackageKit

commit 4c02af944a95e8bd1cc52325f83046db0896ad08
Author: Daniel Nicoletti <dantti85-pk at yahoo.com.br>
Date:   Wed Aug 26 15:49:08 2009 -0300

    packagekit-qt: Added Downgrading package status

diff --git a/lib/packagekit-qt/src/package.h b/lib/packagekit-qt/src/package.h
index d859f69..968d818 100644
--- a/lib/packagekit-qt/src/package.h
+++ b/lib/packagekit-qt/src/package.h
@@ -103,6 +103,7 @@ public:
 		StateCollectionAvailable,
 		StateFinished,
 		StateReinstalling,
+		StateDowngrading,
 		UnknownState
 	} State;
 	/**
commit 5722603b205948c2749024b37e023484d3802d22
Author: Richard Hughes <richard at hughsie.com>
Date:   Wed Aug 26 18:29:10 2009 +0100

    glib2: Make pk_package_sack_merge_resolve_async() work correctly

diff --git a/lib/packagekit-glib2/pk-client.c b/lib/packagekit-glib2/pk-client.c
index 0729724..c0910fb 100644
--- a/lib/packagekit-glib2/pk-client.c
+++ b/lib/packagekit-glib2/pk-client.c
@@ -91,7 +91,7 @@ typedef struct {
 	GCancellable		*cancellable;
 	gchar			*tid;
 	gchar			**packages;
-	GSimpleAsyncResult	*result;
+	GSimpleAsyncResult	*res;
 	DBusGProxyCall		*call;
 	PkResults		*results;
 	DBusGProxy		*proxy;
@@ -99,6 +99,7 @@ typedef struct {
 } PkClientState;
 
 static void pk_client_finished_cb (DBusGProxy *proxy, const gchar *exit_text, guint runtime, PkClientState *state);
+static void pk_client_disconnect_proxy (DBusGProxy *proxy, PkClientState *state);
 
 /**
  * pk_client_state_finish:
@@ -121,20 +122,19 @@ pk_client_state_finish (PkClientState *state, GError *error)
 	}
 
 	if (state->proxy != NULL) {
-		dbus_g_proxy_disconnect_signal (state->proxy, "Finished",
-						G_CALLBACK (pk_client_finished_cb), state->client);
+		pk_client_disconnect_proxy (state->proxy, state);
 		g_object_unref (G_OBJECT (state->proxy));
 	}
 
 	if (state->results != NULL) {
-		g_simple_async_result_set_op_res_gpointer (state->result, g_object_ref (state->results), g_object_unref);
+		g_simple_async_result_set_op_res_gpointer (state->res, g_object_ref (state->results), g_object_unref);
 	} else {
-		g_simple_async_result_set_from_error (state->result, error);
+		g_simple_async_result_set_from_error (state->res, error);
 		g_error_free (error);
 	}
 
-	g_simple_async_result_complete_in_idle (state->result);
-	g_object_unref (state->result);
+	g_simple_async_result_complete_in_idle (state->res);
+	g_object_unref (state->res);
 	g_slice_free (PkClientState, state);
 }
 
@@ -147,7 +147,7 @@ pk_client_finished_cb (DBusGProxy *proxy, const gchar *exit_text, guint runtime,
 	GError *error = NULL;
 	PkExitEnum exit_enum;
 
-	egg_warning ("exit_text=%s", exit_text);
+	egg_debug ("exit_text=%s", exit_text);
 
 	/* yay */
 	exit_enum = pk_exit_enum_from_text (exit_text);
@@ -194,20 +194,169 @@ pk_client_method_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkClientState *sta
 }
 
 /**
+ * pk_client_package_cb:
+ */
+static void
+pk_client_package_cb (DBusGProxy *proxy, const gchar *info_text, const gchar *package_id, const gchar *summary, PkClientState *state)
+{
+	PkInfoEnum info_enum;
+	g_return_if_fail (PK_IS_CLIENT (state->client));
+	info_enum = pk_info_enum_from_text (info_text);
+	pk_results_add_package (state->results, info_enum, package_id, summary);
+}
+
+/**
+ * pk_client_connect_proxy:
+ **/
+static void
+pk_client_connect_proxy (DBusGProxy *proxy, PkClientState *state)
+{
+	/* add the signal types */
+	dbus_g_proxy_add_signal (proxy, "Finished",
+				 G_TYPE_STRING, G_TYPE_UINT, G_TYPE_INVALID);
+	dbus_g_proxy_add_signal (proxy, "ProgressChanged",
+				 G_TYPE_UINT, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_INVALID);
+	dbus_g_proxy_add_signal (proxy, "StatusChanged",
+				 G_TYPE_STRING, G_TYPE_INVALID);
+	dbus_g_proxy_add_signal (proxy, "Package",
+				 G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INVALID);
+	dbus_g_proxy_add_signal (proxy, "Transaction",
+				 G_TYPE_STRING, G_TYPE_STRING,
+				 G_TYPE_BOOLEAN, G_TYPE_STRING, G_TYPE_UINT, G_TYPE_STRING,
+				 G_TYPE_UINT, G_TYPE_STRING, G_TYPE_INVALID);
+	dbus_g_proxy_add_signal (proxy, "UpdateDetail",
+				 G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING,
+				 G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING,
+				 G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING,
+				 G_TYPE_STRING, G_TYPE_INVALID);
+	dbus_g_proxy_add_signal (proxy, "DistroUpgrade",
+				 G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INVALID);
+	dbus_g_proxy_add_signal (proxy, "Details",
+				 G_TYPE_STRING, G_TYPE_STRING,
+				 G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_UINT64,
+				 G_TYPE_INVALID);
+	dbus_g_proxy_add_signal (proxy, "Files", G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INVALID);
+	dbus_g_proxy_add_signal (proxy, "RepoSignatureRequired",
+				 G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING,
+				 G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING,
+				 G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INVALID);
+	dbus_g_proxy_add_signal (proxy, "EulaRequired",
+				 G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INVALID);
+	dbus_g_proxy_add_signal (proxy, "RepoDetail", G_TYPE_STRING, G_TYPE_STRING, G_TYPE_BOOLEAN, G_TYPE_INVALID);
+	dbus_g_proxy_add_signal (proxy, "ErrorCode", G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INVALID);
+	dbus_g_proxy_add_signal (proxy, "RequireRestart", G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INVALID);
+	dbus_g_proxy_add_signal (proxy, "Message", G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INVALID);
+	dbus_g_proxy_add_signal (proxy, "CallerActiveChanged", G_TYPE_BOOLEAN, G_TYPE_INVALID);
+	dbus_g_proxy_add_signal (proxy, "AllowCancel", G_TYPE_BOOLEAN, G_TYPE_INVALID);
+	dbus_g_proxy_add_signal (proxy, "Destroy", G_TYPE_INVALID);
+	dbus_g_proxy_add_signal (proxy, "Category", G_TYPE_STRING, G_TYPE_STRING,
+				 G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INVALID);
+	dbus_g_proxy_add_signal (proxy, "MediaChangeRequired",
+				 G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INVALID);
+
+	/* connect up the signals */
+	dbus_g_proxy_connect_signal (proxy, "Finished",
+				     G_CALLBACK (pk_client_finished_cb), state, NULL);
+	dbus_g_proxy_connect_signal (proxy, "Package",
+				     G_CALLBACK (pk_client_package_cb), state, NULL);
+#if 0
+	dbus_g_proxy_connect_signal (proxy, "ProgressChanged",
+				     G_CALLBACK (pk_client_progress_changed_cb), state, NULL);
+	dbus_g_proxy_connect_signal (proxy, "StatusChanged",
+				     G_CALLBACK (pk_client_status_changed_cb), state, NULL);
+	dbus_g_proxy_connect_signal (proxy, "Transaction",
+				     G_CALLBACK (pk_client_transaction_cb), state, NULL);
+	dbus_g_proxy_connect_signal (proxy, "UpdateDetail",
+				     G_CALLBACK (pk_client_update_detail_cb), state, NULL);
+	dbus_g_proxy_connect_signal (proxy, "DistroUpgrade",
+				     G_CALLBACK (pk_client_distro_upgrade_cb), state, NULL);
+	dbus_g_proxy_connect_signal (proxy, "Details",
+				     G_CALLBACK (pk_client_details_cb), state, NULL);
+	dbus_g_proxy_connect_signal (proxy, "Files",
+				     G_CALLBACK (pk_client_files_cb), state, NULL);
+	dbus_g_proxy_connect_signal (proxy, "RepoSignatureRequired",
+				     G_CALLBACK (pk_client_repo_signature_required_cb), state, NULL);
+	dbus_g_proxy_connect_signal (proxy, "EulaRequired",
+				     G_CALLBACK (pk_client_eula_required_cb), state, NULL);
+	dbus_g_proxy_connect_signal (proxy, "RepoDetail",
+				     G_CALLBACK (pk_client_repo_detail_cb), state, NULL);
+	dbus_g_proxy_connect_signal (proxy, "ErrorCode",
+				     G_CALLBACK (pk_client_error_code_cb), state, NULL);
+	dbus_g_proxy_connect_signal (proxy, "RequireRestart",
+				     G_CALLBACK (pk_client_require_restart_cb), state, NULL);
+	dbus_g_proxy_connect_signal (proxy, "Message",
+				     G_CALLBACK (pk_client_message_cb), state, NULL);
+	dbus_g_proxy_connect_signal (proxy, "CallerActiveChanged",
+				     G_CALLBACK (pk_client_caller_active_changed_cb), state, NULL);
+	dbus_g_proxy_connect_signal (proxy, "AllowCancel",
+				     G_CALLBACK (pk_client_allow_cancel_cb), state, NULL);
+	dbus_g_proxy_connect_signal (proxy, "Category",
+				     G_CALLBACK (pk_client_category_cb), state, NULL);
+	dbus_g_proxy_connect_signal (proxy, "MediaChangeRequired",
+				     G_CALLBACK (pk_client_media_change_required_cb), state, NULL);
+	dbus_g_proxy_connect_signal (proxy, "Destroy",
+				     G_CALLBACK (pk_client_destroy_cb), state, NULL);
+#endif
+}
+
+/**
+ * pk_client_disconnect_proxy:
+ **/
+static void
+pk_client_disconnect_proxy (DBusGProxy *proxy, PkClientState *state)
+{
+	dbus_g_proxy_disconnect_signal (proxy, "Finished",
+					G_CALLBACK (pk_client_finished_cb), state);
+#if 0
+	dbus_g_proxy_disconnect_signal (proxy, "ProgressChanged",
+					G_CALLBACK (pk_client_progress_changed_cb), state);
+	dbus_g_proxy_disconnect_signal (proxy, "StatusChanged",
+					G_CALLBACK (pk_client_status_changed_cb), state);
+	dbus_g_proxy_disconnect_signal (proxy, "Package",
+					G_CALLBACK (pk_client_package_cb), state);
+	dbus_g_proxy_disconnect_signal (proxy, "Transaction",
+					G_CALLBACK (pk_client_transaction_cb), state);
+	dbus_g_proxy_disconnect_signal (proxy, "DistroUpgrade",
+					G_CALLBACK (pk_client_distro_upgrade_cb), state);
+	dbus_g_proxy_disconnect_signal (proxy, "Details",
+					G_CALLBACK (pk_client_details_cb), state);
+	dbus_g_proxy_disconnect_signal (proxy, "Files",
+					G_CALLBACK (pk_client_files_cb), state);
+	dbus_g_proxy_disconnect_signal (proxy, "RepoSignatureRequired",
+					G_CALLBACK (pk_client_repo_signature_required_cb), state);
+	dbus_g_proxy_disconnect_signal (proxy, "EulaRequired",
+					G_CALLBACK (pk_client_eula_required_cb), state);
+	dbus_g_proxy_disconnect_signal (proxy, "ErrorCode",
+					G_CALLBACK (pk_client_error_code_cb), state);
+	dbus_g_proxy_disconnect_signal (proxy, "RequireRestart",
+					G_CALLBACK (pk_client_require_restart_cb), state);
+	dbus_g_proxy_disconnect_signal (proxy, "Message",
+					G_CALLBACK (pk_client_message_cb), state);
+	dbus_g_proxy_disconnect_signal (proxy, "CallerActiveChanged",
+					G_CALLBACK (pk_client_caller_active_changed_cb), state);
+	dbus_g_proxy_disconnect_signal (proxy, "AllowCancel",
+					G_CALLBACK (pk_client_allow_cancel_cb), state);
+	dbus_g_proxy_disconnect_signal (proxy, "Destroy",
+					G_CALLBACK (pk_client_destroy_cb), state);
+	dbus_g_proxy_disconnect_signal (proxy, "MediaChangeRequired",
+					G_CALLBACK (pk_client_media_change_required_cb), state);
+#endif
+}
+
+/**
  * pk_client_get_tid_cb:
  **/
 static void
-pk_client_get_tid_cb (GObject *object, GAsyncResult *result, PkClientState *state)
+pk_client_get_tid_cb (GObject *object, GAsyncResult *res, PkClientState *state)
 {
 	PkControl *control = PK_CONTROL (object);
 	GError *error = NULL;
 	const gchar *tid = NULL;
 	gchar *filters_text;
 
-	tid = pk_control_get_tid_finish (control, result, &error);
+	tid = pk_control_get_tid_finish (control, res, &error);
 	if (tid == NULL) {
 		pk_client_state_finish (state, error);
-//		egg_test_failed (test, "failed to get transaction: %s", error->message);
 		g_error_free (error);
 		return;
 	}
@@ -224,10 +373,8 @@ pk_client_get_tid_cb (GObject *object, GAsyncResult *result, PkClientState *stat
 	/* don't timeout, as dbus-glib sets the timeout ~25 seconds */
 	dbus_g_proxy_set_default_timeout (state->proxy, INT_MAX);
 
-	dbus_g_proxy_add_signal (state->proxy, "Finished",
-				 G_TYPE_STRING, G_TYPE_UINT, G_TYPE_INVALID);
-	dbus_g_proxy_connect_signal (state->proxy, "Finished",
-				     G_CALLBACK (pk_client_finished_cb), state, NULL);
+	/* setup the proxies ready for use */
+	pk_client_connect_proxy (state->proxy, state);
 
 	/* send the filter as a string over the wire */
 	filters_text = pk_filter_bitfield_to_text (state->filters);
@@ -262,17 +409,17 @@ void
 pk_client_resolve_async (PkClient *client, PkBitfield filters, gchar **packages, GCancellable *cancellable,
 			 GAsyncReadyCallback callback, gpointer user_data)
 {
-	GSimpleAsyncResult *result;
+	GSimpleAsyncResult *res;
 	PkClientState *state;
 
 	g_return_if_fail (PK_IS_CLIENT (client));
 	g_return_if_fail (callback != NULL);
 
-	result = g_simple_async_result_new (G_OBJECT (client), callback, user_data, pk_client_resolve_async);
+	res = g_simple_async_result_new (G_OBJECT (client), callback, user_data, pk_client_resolve_async);
 
 	/* save state */
 	state = g_slice_new0 (PkClientState);
-	state->result = g_object_ref (result);
+	state->res = g_object_ref (res);
 	state->cancellable = cancellable;
 	state->client = client;
 	state->results = NULL;
@@ -284,13 +431,13 @@ pk_client_resolve_async (PkClient *client, PkBitfield filters, gchar **packages,
 
 	/* get tid */
 	pk_control_get_tid_async (client->priv->control, NULL, (GAsyncReadyCallback) pk_client_get_tid_cb, state);
-	g_object_unref (result);
+	g_object_unref (res);
 }
 
 /**
  * pk_client_resolve_finish:
  * @client: a valid #PkClient instance
- * @result: the #GAsyncResult
+ * @res: the #GAsyncResult
  * @error: A #GError or %NULL
  *
  * Gets the result from the asynchronous function. 
@@ -298,15 +445,15 @@ pk_client_resolve_async (PkClient *client, PkBitfield filters, gchar **packages,
  * Return value: the ID, or %NULL if unset
  **/
 PkResults *
-pk_client_resolve_finish (PkClient *client, GAsyncResult *result, GError **error)
+pk_client_resolve_finish (PkClient *client, GAsyncResult *res, GError **error)
 {
 	GSimpleAsyncResult *simple;
 	gpointer source_tag;
 
 	g_return_val_if_fail (PK_IS_CLIENT (client), NULL);
-	g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (result), NULL);
+	g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (res), NULL);
 
-	simple = G_SIMPLE_ASYNC_RESULT (result);
+	simple = G_SIMPLE_ASYNC_RESULT (res);
 	source_tag = g_simple_async_result_get_source_tag (simple);
 
 	g_return_val_if_fail (source_tag == pk_client_resolve_async, NULL);
@@ -414,9 +561,82 @@ pk_client_init (PkClient *client)
 	/* use a control object */
 	client->priv->control = pk_control_new ();
 
+	/* DistroUpgrade, MediaChangeRequired */
+	dbus_g_object_register_marshaller (pk_marshal_VOID__STRING_STRING_STRING,
+					   G_TYPE_NONE, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INVALID);
+
+	/* ProgressChanged */
+	dbus_g_object_register_marshaller (pk_marshal_VOID__UINT_UINT_UINT_UINT,
+					   G_TYPE_NONE, G_TYPE_UINT,
+					   G_TYPE_UINT, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_INVALID);
+
+	/* AllowCancel */
+	dbus_g_object_register_marshaller (g_cclosure_marshal_VOID__BOOLEAN,
+					   G_TYPE_NONE, G_TYPE_BOOLEAN, G_TYPE_INVALID);
+
+	/* StatusChanged */
+	dbus_g_object_register_marshaller (pk_marshal_VOID__STRING,
+					   G_TYPE_NONE, G_TYPE_STRING, G_TYPE_INVALID);
+
 	/* Finished */
 	dbus_g_object_register_marshaller (pk_marshal_VOID__STRING_UINT,
 					   G_TYPE_NONE, G_TYPE_STRING, G_TYPE_UINT, G_TYPE_INVALID);
+
+	/* ErrorCode, RequireRestart, Message */
+	dbus_g_object_register_marshaller (pk_marshal_VOID__STRING_STRING,
+					   G_TYPE_NONE, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INVALID);
+
+	/* CallerActiveChanged */
+	dbus_g_object_register_marshaller (g_cclosure_marshal_VOID__BOOLEAN,
+					   G_TYPE_NONE, G_TYPE_BOOLEAN, G_TYPE_INVALID);
+
+	/* Details */
+	dbus_g_object_register_marshaller (pk_marshal_VOID__STRING_STRING_STRING_STRING_STRING_UINT64,
+					   G_TYPE_NONE, G_TYPE_STRING, G_TYPE_STRING,
+					   G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_UINT64,
+					   G_TYPE_INVALID);
+
+	/* EulaRequired */
+	dbus_g_object_register_marshaller (pk_marshal_VOID__STRING_STRING_STRING_STRING,
+					   G_TYPE_NONE, G_TYPE_STRING, G_TYPE_STRING,
+					   G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INVALID);
+
+	/* Files */
+	dbus_g_object_register_marshaller (pk_marshal_VOID__STRING_STRING,
+					   G_TYPE_NONE, G_TYPE_STRING,
+					   G_TYPE_STRING, G_TYPE_INVALID);
+
+	/* RepoSignatureRequired */
+	dbus_g_object_register_marshaller (pk_marshal_VOID__STRING_STRING_STRING_STRING_STRING_STRING_STRING_STRING,
+					   G_TYPE_NONE, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING,
+					   G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING,
+					   G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INVALID);
+
+	/* Package */
+	dbus_g_object_register_marshaller (pk_marshal_VOID__STRING_STRING_STRING,
+					   G_TYPE_NONE, G_TYPE_STRING, G_TYPE_STRING,
+					   G_TYPE_STRING, G_TYPE_INVALID);
+
+	/* RepoDetail */
+	dbus_g_object_register_marshaller (pk_marshal_VOID__STRING_STRING_BOOL,
+					   G_TYPE_NONE, G_TYPE_STRING, G_TYPE_STRING,
+					   G_TYPE_BOOLEAN, G_TYPE_INVALID);
+
+	/* UpdateDetail */
+	dbus_g_object_register_marshaller (pk_marshal_VOID__STRING_STRING_STRING_STRING_STRING_STRING_STRING_STRING_STRING_STRING_STRING_STRING,
+					   G_TYPE_NONE, G_TYPE_STRING, G_TYPE_STRING,
+					   G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING,
+					   G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING,
+					   G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INVALID);
+	/* Transaction */
+	dbus_g_object_register_marshaller (pk_marshal_VOID__STRING_STRING_BOOL_STRING_UINT_STRING_UINT_STRING,
+					   G_TYPE_NONE, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_BOOLEAN,
+					   G_TYPE_STRING, G_TYPE_UINT, G_TYPE_STRING,
+					   G_TYPE_UINT, G_TYPE_STRING, G_TYPE_INVALID);
+	/* Category */
+	dbus_g_object_register_marshaller (pk_marshal_VOID__STRING_STRING_STRING_STRING_STRING,
+					   G_TYPE_NONE, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING,
+					   G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INVALID);
 }
 
 /**
@@ -454,14 +674,18 @@ pk_client_new (void)
 #include "egg-test.h"
 
 static void
-pk_client_test_resolve_cb (GObject *object, GAsyncResult *result, EggTest *test)
+pk_client_test_resolve_cb (GObject *object, GAsyncResult *res, EggTest *test)
 {
 	PkClient *client = PK_CLIENT (object);
 	GError *error = NULL;
 	PkResults *results = NULL;
 	PkExitEnum exit_enum;
+	GPtrArray *packages;
+	const PkResultItemPackage *item;
+	guint i;
 
-	results = pk_client_resolve_finish (client, result, &error);
+	/* get the results */
+	results = pk_client_resolve_finish (client, res, &error);
 	if (results == NULL) {
 		egg_test_failed (test, "failed to resolve: %s", error->message);
 		g_error_free (error);
@@ -472,6 +696,21 @@ pk_client_test_resolve_cb (GObject *object, GAsyncResult *result, EggTest *test)
 	if (exit_enum != PK_EXIT_ENUM_SUCCESS)
 		egg_test_failed (test, "failed to resolve success: %s", pk_exit_enum_to_text (exit_enum));
 
+	packages = pk_results_get_package_array (results);
+	if (packages == NULL)
+		egg_test_failed (test, "no packages!");
+
+	/* list, just for shits and giggles */
+	for (i=0; i<packages->len; i++) {
+		item = g_ptr_array_index (packages, i);
+		egg_debug ("%s\t%s\t%s", pk_info_enum_to_text (item->info_enum), item->package_id, item->summary);
+	}
+
+	if (packages->len != 2)
+		egg_test_failed (test, "invalid number of packages: %i", packages->len);
+
+	g_ptr_array_unref (packages);
+
 	egg_debug ("results exit enum = %s", pk_exit_enum_to_text (exit_enum));
 	egg_test_loop_quit (test);
 }
@@ -492,7 +731,7 @@ pk_client_test (EggTest *test)
 
 	/************************************************************/
 	egg_test_title (test, "get TID async");
-	package_ids = g_strsplit ("gnome-power-manager,hal", ",", -1);
+	package_ids = g_strsplit ("glib2;2.14.0;i386;fedora,powertop", ",", -1);
 	pk_client_resolve_async (client, pk_bitfield_value (PK_FILTER_ENUM_INSTALLED), package_ids, NULL,
 				 (GAsyncReadyCallback) pk_client_test_resolve_cb, test);
 	g_strfreev (package_ids);
diff --git a/lib/packagekit-glib2/pk-client.h b/lib/packagekit-glib2/pk-client.h
index c111205..8397084 100644
--- a/lib/packagekit-glib2/pk-client.h
+++ b/lib/packagekit-glib2/pk-client.h
@@ -84,7 +84,7 @@ void		 pk_client_resolve_async		(PkClient		*client,
 							 GAsyncReadyCallback	 callback,
 							 gpointer		 user_data);
 PkResults	*pk_client_resolve_finish		(PkClient		*client,
-							 GAsyncResult		*result,
+							 GAsyncResult		*res,
 							 GError			**error);
 
 G_END_DECLS
diff --git a/lib/packagekit-glib2/pk-control.c b/lib/packagekit-glib2/pk-control.c
index f9fa25b..bd26f86 100644
--- a/lib/packagekit-glib2/pk-control.c
+++ b/lib/packagekit-glib2/pk-control.c
@@ -93,48 +93,50 @@ typedef struct {
 	PkControl		*control;
 	GCancellable		*cancellable;
 	gchar			*tid;
-	GSimpleAsyncResult	*result;
+	GSimpleAsyncResult	*res;
 	DBusGProxyCall		*call;
 } PkControlState;
 
+/***************************************************************************************************/
+
 /**
  * pk_control_get_tid_state_finish:
  **/
 static void
 pk_control_get_tid_state_finish (PkControlState *state, GError *error)
 {
-//	PkControlPrivate *priv;
-
-	if (state->control != NULL) {
-//		priv = state->control->priv;
+	/* remove weak ref */
+	if (state->control != NULL)
 		g_object_remove_weak_pointer (G_OBJECT (state->control), (gpointer) &state->control);
-	}
 
+	/* cancel */
 	if (state->cancellable != NULL) {
 		g_cancellable_cancel (state->cancellable);
 		g_object_unref (state->cancellable);
 	}
 
+	/* get result */
 	if (state->tid != NULL) {
-		g_simple_async_result_set_op_res_gpointer (state->result, g_strdup (state->tid), g_free);
+		g_simple_async_result_set_op_res_gpointer (state->res, g_strdup (state->tid), g_free);
 	} else {
-		g_simple_async_result_set_from_error (state->result, error);
+		g_simple_async_result_set_from_error (state->res, error);
 		g_error_free (error);
 	}
 
-	g_simple_async_result_complete_in_idle (state->result);
-	g_object_unref (state->result);
+	/* complete */
+	g_simple_async_result_complete_in_idle (state->res);
+
+	/* deallocate */
+	g_object_unref (state->res);
 	g_slice_free (PkControlState, state);
 }
 
-
 /**
  * pk_control_get_tid_cb:
  **/
 static void
 pk_control_get_tid_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkControlState *state)
 {
-//	PkControl *control = PK_CONTROL (state->control);
 	GError *error = NULL;
 	gchar *tid = NULL;
 	gboolean ret;
@@ -173,32 +175,34 @@ out:
 void
 pk_control_get_tid_async (PkControl *control, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data)
 {
-	GSimpleAsyncResult *result;
+	GSimpleAsyncResult *res;
 	PkControlState *state;
 
 	g_return_if_fail (PK_IS_CONTROL (control));
 	g_return_if_fail (callback != NULL);
 
-	result = g_simple_async_result_new (G_OBJECT (control), callback, user_data, pk_control_get_tid_async);
+	res = g_simple_async_result_new (G_OBJECT (control), callback, user_data, pk_control_get_tid_async);
 
 	/* save state */
 	state = g_slice_new0 (PkControlState);
-	state->result = g_object_ref (result);
+	state->res = g_object_ref (res);
 	state->cancellable = cancellable;
 	state->control = control;
+	state->call = NULL;
+	state->tid = NULL;
 	g_object_add_weak_pointer (G_OBJECT (state->control), (gpointer) &state->control);
 
 	/* call D-Bus method async */
 	state->call = dbus_g_proxy_begin_call (control->priv->proxy, "GetTid",
 					       (DBusGProxyCallNotify) pk_control_get_tid_cb, state,
 					       NULL, G_TYPE_INVALID);
-	g_object_unref (result);
+	g_object_unref (res);
 }
 
 /**
  * pk_control_get_tid_finish:
  * @control: a valid #PkControl instance
- * @result: the #GAsyncResult
+ * @res: the #GAsyncResult
  * @error: A #GError or %NULL
  *
  * Gets the result from the asynchronous function. 
@@ -206,15 +210,15 @@ pk_control_get_tid_async (PkControl *control, GCancellable *cancellable, GAsyncR
  * Return value: the ID, or %NULL if unset
  **/
 gchar *
-pk_control_get_tid_finish (PkControl *control, GAsyncResult *result, GError **error)
+pk_control_get_tid_finish (PkControl *control, GAsyncResult *res, GError **error)
 {
 	GSimpleAsyncResult *simple;
 	gpointer source_tag;
 
 	g_return_val_if_fail (PK_IS_CONTROL (control), NULL);
-	g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (result), NULL);
+	g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (res), NULL);
 
-	simple = G_SIMPLE_ASYNC_RESULT (result);
+	simple = G_SIMPLE_ASYNC_RESULT (res);
 	source_tag = g_simple_async_result_get_source_tag (simple);
 
 	g_return_val_if_fail (source_tag == pk_control_get_tid_async, NULL);
@@ -225,6 +229,8 @@ pk_control_get_tid_finish (PkControl *control, GAsyncResult *result, GError **er
 	return g_simple_async_result_get_op_res_gpointer (simple);
 }
 
+/***************************************************************************************************/
+
 /**
  * pk_control_set_properties_collect_cb:
  **/
@@ -460,13 +466,14 @@ pk_control_new (void)
 #include "egg-test.h"
 
 static void
-pk_control_test_get_tid_cb (GObject *object, GAsyncResult *result, EggTest *test)
+pk_control_test_get_tid_cb (GObject *object, GAsyncResult *res, EggTest *test)
 {
 	PkControl *control = PK_CONTROL (object);
 	GError *error = NULL;
 	const gchar *tid = NULL;
 
-	tid = pk_control_get_tid_finish (control, result, &error);
+	/* get the result */
+	tid = pk_control_get_tid_finish (control, res, &error);
 	if (tid == NULL) {
 		egg_test_failed (test, "failed to get transaction: %s", error->message);
 		g_error_free (error);
diff --git a/lib/packagekit-glib2/pk-control.h b/lib/packagekit-glib2/pk-control.h
index 4cbe30a..06f27ae 100644
--- a/lib/packagekit-glib2/pk-control.h
+++ b/lib/packagekit-glib2/pk-control.h
@@ -77,7 +77,7 @@ void		 pk_control_get_tid_async		(PkControl		*control,
 							 GAsyncReadyCallback	 callback,
 							 gpointer		 user_data);
 gchar		*pk_control_get_tid_finish		(PkControl		*control,
-							 GAsyncResult		*result,
+							 GAsyncResult		*res,
 							 GError			**error);
 
 G_END_DECLS
diff --git a/lib/packagekit-glib2/pk-package-sack.c b/lib/packagekit-glib2/pk-package-sack.c
index f852db1..e97e23f 100644
--- a/lib/packagekit-glib2/pk-package-sack.c
+++ b/lib/packagekit-glib2/pk-package-sack.c
@@ -240,6 +240,41 @@ pk_package_sack_remove_package_by_id (PkPackageSack *sack, const gchar *package_
 }
 
 /**
+ * pk_package_sack_find_by_id:
+ * @sack: a valid #PkPackageSack instance
+ * @package_id: a package_id descriptor
+ *
+ * Finds a package in a sack from reference. As soon as one package is found
+ * the search is stopped.
+ *
+ * Return value: the #PkPackage object, or %NULL if unfound. Free with g_object_unref()
+ **/
+PkPackage *
+pk_package_sack_find_by_id (PkPackageSack *sack, const gchar *package_id)
+{
+	PkPackage *package_tmp;
+	const gchar *id;
+	PkPackage *package = NULL;
+	guint i;
+	guint len;
+
+	g_return_val_if_fail (PK_IS_PACKAGE_SACK (sack), FALSE);
+	g_return_val_if_fail (package_id != NULL, FALSE);
+
+	len = sack->priv->array->len;
+	for (i=0; i<len; i++) {
+		package_tmp = g_ptr_array_index (sack->priv->array, i);
+		id = pk_package_get_id (package_tmp);
+		if (g_strcmp0 (package_id, id) == 0) {
+			package = g_object_ref (package_tmp);
+			break;
+		}
+	}
+
+	return package;
+}
+
+/**
  * pk_package_sack_get_package_ids:
  **/
 static gchar **
@@ -247,15 +282,15 @@ pk_package_sack_get_package_ids (PkPackageSack *sack)
 {
 	const gchar *id;
 	gchar **package_ids;
-	guint i;
-	guint len;
+	const GPtrArray *array;
 	PkPackage *package;
+	guint i;
 
 	/* create array of package_ids */
-	len = sack->priv->array->len;
-	package_ids = g_new0 (gchar *, len+1);
-	for (i=0; i<len; i++) {
-		package = g_ptr_array_index (sack->priv->array, i);
+	array = sack->priv->array;
+	package_ids = g_new0 (gchar *, array->len+1);
+	for (i=0; i<array->len; i++) {
+		package = g_ptr_array_index (array, i);
 		id = pk_package_get_id (package);
 		package_ids[i] = g_strdup (id);
 	}
@@ -264,62 +299,175 @@ pk_package_sack_get_package_ids (PkPackageSack *sack)
 }
 
 typedef struct {
-	PkRoleEnum		 role;
-	gchar			**package_ids;
 	PkPackageSack		*sack;
-} PkPackageSackAction;
+	GCancellable		*cancellable;
+	gboolean		 ret;
+	GSimpleAsyncResult	*res;
+} PkPackageSackState;
+
+/***************************************************************************************************/
 
 /**
- * pk_client_resolve_cb:
+ * pk_package_sack_merge_resolve_state_finish:
  **/
 static void
-pk_client_resolve_cb (GObject *object, GAsyncResult *result, PkPackageSackAction *action)
+pk_package_sack_merge_resolve_state_finish (PkPackageSackState *state, GError *error)
 {
-	PkClient *client = PK_CLIENT (object);
+	/* remove weak ref */
+	if (state->sack != NULL)
+		g_object_remove_weak_pointer (G_OBJECT (state->sack), (gpointer) &state->sack);
+
+	/* cancel */
+	if (state->cancellable != NULL) {
+		g_cancellable_cancel (state->cancellable);
+		g_object_unref (state->cancellable);
+	}
+
+	/* get result */
+	if (state->ret) {
+		g_simple_async_result_set_op_res_gboolean (state->res, state->ret);
+	} else {
+		g_simple_async_result_set_from_error (state->res, error);
+		g_error_free (error);
+	}
+
+	/* complete */
+	g_simple_async_result_complete_in_idle (state->res);
+
+	/* deallocate */
+	g_object_unref (state->res);
+	g_slice_free (PkPackageSackState, state);
+}
+
+/**
+ * pk_package_sack_merge_resolve_cb:
+ **/
+static void
+pk_package_sack_merge_resolve_cb (GObject *source_object, GAsyncResult *res, PkPackageSackState *state)
+{
+	PkClient *client = PK_CLIENT (source_object);
 	GError *error = NULL;
 	PkResults *results;
+	GPtrArray *packages;
+	const PkResultItemPackage *item;
+	guint i;
+	PkPackage *package;
 
-	results = pk_client_resolve_finish (client, result, &error);
+	/* get the results */
+	results = pk_client_resolve_finish (client, res, &error);
 	if (results == NULL) {
 		egg_warning ("failed to resolve: %s", error->message);
+		pk_package_sack_merge_resolve_state_finish (state, error);
 		g_error_free (error);
-		goto out;
+		return;
+	}
+
+	/* get the packages */
+	packages = pk_results_get_package_array (results);
+	if (packages->len == 0) {
+		egg_error ("%i", state->ret);
+		error = g_error_new (1, 0, "no packages found!");
+		pk_package_sack_merge_resolve_state_finish (state, error);
+		g_error_free (error);
+		return;
 	}
 
-	egg_warning ("results = %p", results);
+	/* set data on each item */
+	for (i=0; i<packages->len; i++) {
+		item = g_ptr_array_index (packages, i);
+
+		egg_debug ("%s\t%s\t%s", pk_info_enum_to_text (item->info_enum), item->package_id, item->summary);
+
+		/* get package, and set data */
+		package = pk_package_sack_find_by_id (state->sack, item->package_id);
+		if (package != NULL) {
+			g_object_set (package,
+				      "info", item->info_enum,
+				      "summary", item->summary,
+				      NULL);
+			g_object_unref (package);
+		} else {
+			egg_warning ("failed to find %s", item->package_id);
+		}
+	}
+
+	/* all okay */
+	state->ret = TRUE;
 	g_object_unref (results);
-out:
-//	g_free (tid);
-	return;
+
+	/* we're done */
+	pk_package_sack_merge_resolve_state_finish (state, error);
 }
 
 /**
  * pk_package_sack_merge_resolve_async:
- * @sack: a valid #PkPackageSack instance
+ * @package_sack: a valid #PkPackageSack instance
+ * @cancellable: a #GCancellable or %NULL
+ * @callback: the function to run on completion
+ * @user_data: the data to pass to @callback
  *
  * Merges in details about packages using resolve.
  **/
 void
-pk_package_sack_merge_resolve_async (PkPackageSack *sack, GCancellable *cancellable,
-			       PkPackageSackFinishedCb callback, gpointer user_data)
+pk_package_sack_merge_resolve_async (PkPackageSack *sack, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data)
 {
-	PkPackageSackAction *action;
+	GSimpleAsyncResult *res;
+	PkPackageSackState *state;
+	gchar **package_ids;
 
 	g_return_if_fail (PK_IS_PACKAGE_SACK (sack));
 	g_return_if_fail (callback != NULL);
 
-	/* create new action */
-	action = g_new0 (PkPackageSackAction, 1);
-//	action->callback = callback;
-//	action->user_data = user_data;
-	action->role = PK_ROLE_ENUM_RESOLVE;
-	action->package_ids = pk_package_sack_get_package_ids (sack);
-	action->sack = sack;
+	res = g_simple_async_result_new (G_OBJECT (sack), callback, user_data, pk_package_sack_merge_resolve_async);
 
-	/* get new tid */
-	pk_client_resolve_async (sack->priv->client, pk_bitfield_value (PK_FILTER_ENUM_INSTALLED), action->package_ids, cancellable, (GAsyncReadyCallback) pk_client_resolve_cb, action);
+	/* save state */
+	state = g_slice_new0 (PkPackageSackState);
+	state->res = g_object_ref (res);
+	state->cancellable = cancellable;
+	state->sack = sack;
+	state->ret = FALSE;
+	g_object_add_weak_pointer (G_OBJECT (state->sack), (gpointer) &state->sack);
+
+	/* start resolve async */
+	package_ids = pk_package_sack_get_package_ids (sack);
+	pk_client_resolve_async (sack->priv->client, pk_bitfield_value (PK_FILTER_ENUM_INSTALLED), package_ids,
+				 cancellable, (GAsyncReadyCallback) pk_package_sack_merge_resolve_cb, state);
+
+	g_strfreev (package_ids);
+	g_object_unref (res);
 }
 
+/**
+ * pk_package_sack_merge_resolve_finish:
+ * @package_sack: a valid #PkPackageSack instance
+ * @res: the #GAsyncResult
+ * @error: A #GError or %NULL
+ *
+ * Gets the result from the asynchronous function. 
+ *
+ * Return value: %TRUE for success
+ **/
+gboolean
+pk_package_sack_merge_resolve_finish (PkPackageSack *package_sack, GAsyncResult *res, GError **error)
+{
+	GSimpleAsyncResult *simple;
+	gpointer source_tag;
+
+	g_return_val_if_fail (PK_IS_PACKAGE_SACK (package_sack), FALSE);
+	g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (res), FALSE);
+
+	simple = G_SIMPLE_ASYNC_RESULT (res);
+	source_tag = g_simple_async_result_get_source_tag (simple);
+
+	g_return_val_if_fail (source_tag == pk_package_sack_merge_resolve_async, FALSE);
+
+	if (g_simple_async_result_propagate_error (simple, error))
+		return FALSE;
+
+	return g_simple_async_result_get_op_res_gboolean (simple);
+}
+
+/***************************************************************************************************/
 
 /**
  * pk_package_sack_get_property:
@@ -424,7 +572,6 @@ pk_package_sack_finalize (GObject *object)
 	PkPackageSack *sack = PK_PACKAGE_SACK (object);
 	PkPackageSackPrivate *priv = sack->priv;
 
-//	g_free (priv->id);
 	g_ptr_array_unref (priv->array);
 	g_object_unref (priv->client);
 
@@ -450,14 +597,34 @@ pk_package_sack_new (void)
 #ifdef EGG_TEST
 #include "egg-test.h"
 
+static void
+pk_package_sack_test_resolve_cb (GObject *object, GAsyncResult *res, EggTest *test)
+{
+	PkPackageSack *sack = PK_PACKAGE_SACK (object);
+	GError *error = NULL;
+	gboolean ret;
+
+	/* get the result */
+	ret = pk_package_sack_merge_resolve_finish (sack, res, &error);
+	if (!ret) {
+		egg_test_failed (test, "failed to merge resolve: %s", error->message);
+		g_error_free (error);
+		return;
+	}
+
+	egg_test_loop_quit (test);
+}
+
 void
 pk_package_sack_test (EggTest *test)
 {
 	gboolean ret;
 	PkPackageSack *sack;
+	PkPackage *package;
 	const gchar *id;
 	gchar *text;
 	guint size;
+	PkInfoEnum info = PK_INFO_ENUM_UNKNOWN;
 
 	if (!egg_test_start (test, "PkPackageSack"))
 		return;
@@ -474,12 +641,17 @@ pk_package_sack_test (EggTest *test)
 
 	/************************************************************/
 	egg_test_title (test, "remove package not present");
-	ret = pk_package_sack_remove_package_by_id (sack, "moo;moo;moo;moo");
+	ret = pk_package_sack_remove_package_by_id (sack, "glib2;2.14.0;i386;fedora");
 	egg_test_assert (test, !ret);
 
 	/************************************************************/
+	egg_test_title (test, "find package not present");
+	package = pk_package_sack_find_by_id (sack, "glib2;2.14.0;i386;fedora");
+	egg_test_assert (test, (package == NULL));
+
+	/************************************************************/
 	egg_test_title (test, "add package");
-	ret = pk_package_sack_add_package_by_id (sack, "moo;moo;moo;moo", NULL);
+	ret = pk_package_sack_add_package_by_id (sack, "glib2;2.14.0;i386;fedora", NULL);
 	egg_test_assert (test, ret);
 
 	/************************************************************/
@@ -488,8 +660,34 @@ pk_package_sack_test (EggTest *test)
 	egg_test_assert (test, (size == 1));
 
 	/************************************************************/
+	egg_test_title (test, "merge resolve results");
+	pk_package_sack_merge_resolve_async (sack, NULL, (GAsyncReadyCallback) pk_package_sack_test_resolve_cb, test);
+	egg_test_loop_wait (test, 5000);
+	egg_test_success (test, "resolved in %i", egg_test_elapsed (test));
+
+	/************************************************************/
+	egg_test_title (test, "find package which is present");
+	package = pk_package_sack_find_by_id (sack, "glib2;2.14.0;i386;fedora");
+	egg_test_assert (test, (package != NULL));
+
+	/************************************************************/
+	egg_test_title (test, "check new summary");
+	g_object_get (package,
+		      "info", &info,
+		      "summary", &text,
+		      NULL);
+	egg_test_assert (test, (g_strcmp0 (text, "The GLib library") == 0));
+
+	/************************************************************/
+	egg_test_title (test, "check new info");
+	egg_test_assert (test, (info == PK_INFO_ENUM_INSTALLED));
+
+	g_free (text);
+	g_object_unref (package);
+
+	/************************************************************/
 	egg_test_title (test, "remove package");
-	ret = pk_package_sack_remove_package_by_id (sack, "moo;moo;moo;moo");
+	ret = pk_package_sack_remove_package_by_id (sack, "glib2;2.14.0;i386;fedora");
 	egg_test_assert (test, ret);
 
 	/************************************************************/
@@ -499,20 +697,9 @@ pk_package_sack_test (EggTest *test)
 
 	/************************************************************/
 	egg_test_title (test, "remove already removed package");
-	ret = pk_package_sack_remove_package_by_id (sack, "moo;moo;moo;moo");
+	ret = pk_package_sack_remove_package_by_id (sack, "glib2;2.14.0;i386;fedora");
 	egg_test_assert (test, !ret);
 
-//static void
-//pk_client_test_copy_finished_cb (PkClient *client, PkExitEnum exit, guint runtime, EggTest *test)
-//{
-//	egg_test_loop_quit (test);
-//}
-
-
-	pk_package_sack_merge_resolve_async (sack, NULL, (PkPackageSackFinishedCb) &ret, NULL);
-	egg_test_loop_wait (test, 5000);
-	egg_test_success (test, "resolved in %i", egg_test_elapsed (test));
-
 	g_object_unref (sack);
 out:
 	egg_test_end (test);
diff --git a/lib/packagekit-glib2/pk-package-sack.h b/lib/packagekit-glib2/pk-package-sack.h
index fe17ebb..8fd9fbb 100644
--- a/lib/packagekit-glib2/pk-package-sack.h
+++ b/lib/packagekit-glib2/pk-package-sack.h
@@ -88,23 +88,35 @@ gboolean	 pk_package_sack_remove_package		(PkPackageSack		*sack,
 							 PkPackage		*package);
 gboolean	 pk_package_sack_remove_package_by_id	(PkPackageSack		*sack,
 							 const gchar		*package_id);
+PkPackage	*pk_package_sack_find_by_id		(PkPackageSack		*sack,
+							 const gchar		*package_id);
 
-/* merging in data to the array */
-typedef void	(*PkPackageSackFinishedCb) 		(PkPackageSack		*sack,
-							 PkPackageSackResults	*results,
-							 gpointer		 user_data);
+/* merging in data to the array using Resolve() */
 void		 pk_package_sack_merge_resolve_async	(PkPackageSack		*sack,
 							 GCancellable		*cancellable,
-							 PkPackageSackFinishedCb callback,
+							 GAsyncReadyCallback	 callback,
 							 gpointer		 user_data);
-void		 pk_package_sack_merge_details_async		(PkPackageSack		*sack,
+gboolean	 pk_package_sack_merge_resolve_finish	(PkPackageSack		*sack,
+							 GAsyncResult		*res,
+							 GError			**error);
+
+/* merging in data to the array using Details() */
+void		 pk_package_sack_merge_details_async	(PkPackageSack		*sack,
 							 GCancellable		*cancellable,
-							 PkPackageSackFinishedCb callback,
+							 GAsyncReadyCallback	 callback,
 							 gpointer		 user_data);
-void		 pk_package_sack_merge_update_details_async	(PkPackageSack		*sack,
+gboolean	 pk_package_sack_merge_details_finish	(PkPackageSack		*sack,
+							 GAsyncResult		*res,
+							 GError			**error);
+
+/* merging in data to the array using UpdateDetails() */
+void		 pk_package_sack_merge_update_details_async (PkPackageSack	*sack,
 							 GCancellable		*cancellable,
-							 PkPackageSackFinishedCb callback,
+							 GAsyncReadyCallback	 callback,
 							 gpointer		 user_data);
+gboolean	 pk_package_sack_merge_update_details_finish (PkPackageSack	*sack,
+							 GAsyncResult		*res,
+							 GError			**error);
 
 G_END_DECLS
 
diff --git a/lib/packagekit-glib2/pk-package.c b/lib/packagekit-glib2/pk-package.c
index cbca493..110fb6a 100644
--- a/lib/packagekit-glib2/pk-package.c
+++ b/lib/packagekit-glib2/pk-package.c
@@ -165,6 +165,22 @@ pk_package_get_id (PkPackage *package)
 }
 
 /**
+ * pk_package_print:
+ * @package: a valid #PkPackage instance
+ *
+ * Prints details about the package to standard out.
+ **/
+void
+pk_package_print (PkPackage *package)
+{
+	PkPackagePrivate *priv;
+	g_return_if_fail (PK_IS_PACKAGE (package));
+
+	priv = package->priv;
+	g_print ("%s-%s.%s\t%s\t%s\n", priv->id_name, priv->id_version, priv->id_arch, priv->id_data, priv->summary);
+}
+
+/**
  * pk_package_get_property:
  **/
 static void
@@ -285,7 +301,7 @@ pk_package_class_init (PkPackageClass *klass)
 	/**
 	 * PkPackage:summary:
 	 */
-	pspec = g_param_spec_string ("id-summary", NULL,
+	pspec = g_param_spec_string ("summary", NULL,
 				     "The package summary",
 				     NULL,
 				     G_PARAM_READWRITE);
diff --git a/lib/packagekit-glib2/pk-package.h b/lib/packagekit-glib2/pk-package.h
index c6aae4c..0920961 100644
--- a/lib/packagekit-glib2/pk-package.h
+++ b/lib/packagekit-glib2/pk-package.h
@@ -76,6 +76,7 @@ gboolean	 pk_package_set_id			(PkPackage	*package,
 							 const gchar	*package_id,
 							 GError		**error);
 const gchar	*pk_package_get_id			(PkPackage	*package);
+void		 pk_package_print			(PkPackage	*package);
 
 G_END_DECLS
 
commit cd35ad95f6c6787bfd1196c1d84321c52354fc39
Author: Richard Hughes <richard at hughsie.com>
Date:   Wed Aug 26 18:18:53 2009 +0100

    spec: allow resolve to match on an exact package_id

diff --git a/src/org.freedesktop.PackageKit.Transaction.xml b/src/org.freedesktop.PackageKit.Transaction.xml
index b21e483..12353cd 100644
--- a/src/org.freedesktop.PackageKit.Transaction.xml
+++ b/src/org.freedesktop.PackageKit.Transaction.xml
@@ -941,6 +941,11 @@
             other methods.
           </doc:para>
           <doc:para>
+            If the package is a fully formed package_id, then this should be treated
+            as an exact package match. This is useful to find the summary or installed
+            status of a package_id returned from other methods.
+          </doc:para>
+          <doc:para>
             This method typically emits
             <doc:tt>Error</doc:tt> and
             <doc:tt>Package</doc:tt>.
commit 2095897dd2ce0c9587cd07fc73a9ba2fc0d0d25f
Author: Richard Hughes <richard at hughsie.com>
Date:   Wed Aug 26 18:15:34 2009 +0100

    dummy: support resolve by exact package_id

diff --git a/backends/dummy/pk-backend-dummy.c b/backends/dummy/pk-backend-dummy.c
index 272acfd..fc30b11 100644
--- a/backends/dummy/pk-backend-dummy.c
+++ b/backends/dummy/pk-backend-dummy.c
@@ -613,23 +613,23 @@ backend_resolve (PkBackend *backend, PkBitfield filters, gchar **packages)
 	/* each one has a different detail for testing */
 	len = g_strv_length (packages);
 	for (i=0; i<len; i++) {
-		if (g_strcmp0 (packages[i], "vips-doc") == 0) {
+		if (g_strcmp0 (packages[i], "vips-doc") == 0 || g_strcmp0 (packages[i], "vips-doc;7.12.4-2.fc8;noarch;linva") == 0) {
 			if (!pk_bitfield_contain (filters, PK_FILTER_ENUM_INSTALLED)) {
 				pk_backend_package (backend, PK_INFO_ENUM_AVAILABLE,
 						    "vips-doc;7.12.4-2.fc8;noarch;linva", "The vips documentation package.");
 			}
-		} else if (g_strcmp0 (packages[i], "glib2") == 0) {
+		} else if (g_strcmp0 (packages[i], "glib2") == 0 || g_strcmp0 (packages[i], "glib2;2.14.0;i386;fedora") == 0) {
 			if (!pk_bitfield_contain (filters, PK_FILTER_ENUM_NOT_INSTALLED)) {
 				pk_backend_package (backend, PK_INFO_ENUM_INSTALLED,
 						    "glib2;2.14.0;i386;fedora", "The GLib library");
 			}
-		} else if (g_strcmp0 (packages[i], "powertop") == 0)
+		} else if (g_strcmp0 (packages[i], "powertop") == 0 || g_strcmp0 (packages[i], "powertop;1.8-1.fc8;i386;fedora") == 0)
 			pk_backend_package (backend, PK_INFO_ENUM_INSTALLED,
 					    "powertop;1.8-1.fc8;i386;fedora", "Power consumption monitor");
-		else if (g_strcmp0 (packages[i], "kernel") == 0)
+		else if (g_strcmp0 (packages[i], "kernel") == 0 || g_strcmp0 (packages[i], "kernel;2.6.23-0.115.rc3.git1.fc8;i386;installed") == 0)
 			pk_backend_package (backend, PK_INFO_ENUM_INSTALLED,
 					    "kernel;2.6.23-0.115.rc3.git1.fc8;i386;installed", "The Linux kernel (the core of the Linux operating system)");
-		else if (g_strcmp0 (packages[i], "gtkhtml2") == 0)
+		else if (g_strcmp0 (packages[i], "gtkhtml2") == 0 || g_strcmp0 (packages[i], "gtkhtml2;2.19.1-4.fc8;i386;fedora") == 0)
 			pk_backend_package (backend, PK_INFO_ENUM_INSTALLED,
 					    "gtkhtml2;2.19.1-4.fc8;i386;fedora", "An HTML widget for GTK+ 2.0");
 	}
commit 67d4ed34928b0089e4bb8791e1bb73110c17c6d6
Author: Richard Hughes <richard at hughsie.com>
Date:   Wed Aug 26 18:14:59 2009 +0100

    dummy: the result of resolve can never be UPDATING

diff --git a/backends/dummy/pk-backend-dummy.c b/backends/dummy/pk-backend-dummy.c
index 37064ac..272acfd 100644
--- a/backends/dummy/pk-backend-dummy.c
+++ b/backends/dummy/pk-backend-dummy.c
@@ -624,13 +624,13 @@ backend_resolve (PkBackend *backend, PkBitfield filters, gchar **packages)
 						    "glib2;2.14.0;i386;fedora", "The GLib library");
 			}
 		} else if (g_strcmp0 (packages[i], "powertop") == 0)
-			pk_backend_package (backend, PK_INFO_ENUM_UPDATING,
+			pk_backend_package (backend, PK_INFO_ENUM_INSTALLED,
 					    "powertop;1.8-1.fc8;i386;fedora", "Power consumption monitor");
 		else if (g_strcmp0 (packages[i], "kernel") == 0)
-			pk_backend_package (backend, PK_INFO_ENUM_UPDATING,
+			pk_backend_package (backend, PK_INFO_ENUM_INSTALLED,
 					    "kernel;2.6.23-0.115.rc3.git1.fc8;i386;installed", "The Linux kernel (the core of the Linux operating system)");
 		else if (g_strcmp0 (packages[i], "gtkhtml2") == 0)
-			pk_backend_package (backend, PK_INFO_ENUM_UPDATING,
+			pk_backend_package (backend, PK_INFO_ENUM_INSTALLED,
 					    "gtkhtml2;2.19.1-4.fc8;i386;fedora", "An HTML widget for GTK+ 2.0");
 	}
 	pk_backend_finished (backend);
commit e2178bd260d4e4208d223a8091d4e78b460af720
Author: Richard Hughes <richard at hughsie.com>
Date:   Wed Aug 26 15:12:15 2009 +0100

    glib2: use the Resolve() parameters

diff --git a/lib/packagekit-glib2/Makefile.am b/lib/packagekit-glib2/Makefile.am
index c77f6ac..10ac001 100644
--- a/lib/packagekit-glib2/Makefile.am
+++ b/lib/packagekit-glib2/Makefile.am
@@ -45,6 +45,8 @@ libpackagekit_glib2_la_SOURCES =				\
 	pk-enum.h						\
 	pk-package.c						\
 	pk-package.h						\
+	pk-bitfield.c						\
+	pk-bitfield.h						\
 	pk-package-sack.c					\
 	pk-package-sack.h					\
 	pk-control.c						\
diff --git a/lib/packagekit-glib2/pk-bitfield.c b/lib/packagekit-glib2/pk-bitfield.c
new file mode 120000
index 0000000..d2bcbbe
--- /dev/null
+++ b/lib/packagekit-glib2/pk-bitfield.c
@@ -0,0 +1 @@
+../packagekit-glib/pk-bitfield.c
\ No newline at end of file
diff --git a/lib/packagekit-glib2/pk-bitfield.h b/lib/packagekit-glib2/pk-bitfield.h
new file mode 120000
index 0000000..3873a63
--- /dev/null
+++ b/lib/packagekit-glib2/pk-bitfield.h
@@ -0,0 +1 @@
+../packagekit-glib/pk-bitfield.h
\ No newline at end of file
diff --git a/lib/packagekit-glib2/pk-client.c b/lib/packagekit-glib2/pk-client.c
index 6834d22..0729724 100644
--- a/lib/packagekit-glib2/pk-client.c
+++ b/lib/packagekit-glib2/pk-client.c
@@ -95,6 +95,7 @@ typedef struct {
 	DBusGProxyCall		*call;
 	PkResults		*results;
 	DBusGProxy		*proxy;
+	PkBitfield		 filters;
 } PkClientState;
 
 static void pk_client_finished_cb (DBusGProxy *proxy, const gchar *exit_text, guint runtime, PkClientState *state);
@@ -201,6 +202,7 @@ pk_client_get_tid_cb (GObject *object, GAsyncResult *result, PkClientState *stat
 	PkControl *control = PK_CONTROL (object);
 	GError *error = NULL;
 	const gchar *tid = NULL;
+	gchar *filters_text;
 
 	tid = pk_control_get_tid_finish (control, result, &error);
 	if (tid == NULL) {
@@ -227,10 +229,13 @@ pk_client_get_tid_cb (GObject *object, GAsyncResult *result, PkClientState *stat
 	dbus_g_proxy_connect_signal (state->proxy, "Finished",
 				     G_CALLBACK (pk_client_finished_cb), state, NULL);
 
+	/* send the filter as a string over the wire */
+	filters_text = pk_filter_bitfield_to_text (state->filters);
+
 	/* do this async, although this should be pretty fast anyway */
 	state->call = dbus_g_proxy_begin_call (state->proxy, "Resolve",
 					       (DBusGProxyCallNotify) pk_client_method_cb, state, NULL,
-					       G_TYPE_STRING, "installed", //TODO: add filter
+					       G_TYPE_STRING, filters_text,
 					       G_TYPE_STRV, state->packages,
 					       G_TYPE_INVALID);
 
@@ -239,6 +244,9 @@ pk_client_get_tid_cb (GObject *object, GAsyncResult *result, PkClientState *stat
 
 	/* we'll have results from now on */
 	state->results = pk_results_new ();
+
+	/* deallocate temp state */
+	g_free (filters_text);
 }
 
 /**
@@ -251,7 +259,8 @@ pk_client_get_tid_cb (GObject *object, GAsyncResult *result, PkClientState *stat
  * TODO
  **/
 void
-pk_client_resolve_async (PkClient *client, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data)
+pk_client_resolve_async (PkClient *client, PkBitfield filters, gchar **packages, GCancellable *cancellable,
+			 GAsyncReadyCallback callback, gpointer user_data)
 {
 	GSimpleAsyncResult *result;
 	PkClientState *state;
@@ -269,7 +278,8 @@ pk_client_resolve_async (PkClient *client, GCancellable *cancellable, GAsyncRead
 	state->results = NULL;
 	state->proxy = NULL;
 	state->call = NULL;
-	state->packages = g_strsplit ("gnome-power-manager,hal", ",", -1); //TODO: add parameter
+	state->filters = filters;
+	state->packages = g_strdupv (packages);
 	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
 
 	/* get tid */
@@ -470,6 +480,7 @@ void
 pk_client_test (EggTest *test)
 {
 	PkClient *client;
+	gchar **package_ids;
 
 	if (!egg_test_start (test, "PkClient"))
 		return;
@@ -481,12 +492,15 @@ pk_client_test (EggTest *test)
 
 	/************************************************************/
 	egg_test_title (test, "get TID async");
-	pk_client_resolve_async (client, NULL, (GAsyncReadyCallback) pk_client_test_resolve_cb, test);
+	package_ids = g_strsplit ("gnome-power-manager,hal", ",", -1);
+	pk_client_resolve_async (client, pk_bitfield_value (PK_FILTER_ENUM_INSTALLED), package_ids, NULL,
+				 (GAsyncReadyCallback) pk_client_test_resolve_cb, test);
+	g_strfreev (package_ids);
 	egg_test_loop_wait (test, 15000);
 	egg_test_success (test, "got tid in %i", egg_test_elapsed (test));
 
 	g_object_unref (client);
-out:
+
 	egg_test_end (test);
 }
 #endif
diff --git a/lib/packagekit-glib2/pk-client.h b/lib/packagekit-glib2/pk-client.h
index cdd5720..c111205 100644
--- a/lib/packagekit-glib2/pk-client.h
+++ b/lib/packagekit-glib2/pk-client.h
@@ -33,6 +33,7 @@
 
 #include <glib-object.h>
 #include <packagekit-glib2/pk-results.h>
+#include <packagekit-glib2/pk-bitfield.h>
 
 G_BEGIN_DECLS
 
@@ -74,6 +75,8 @@ GType		 pk_client_get_type		  	(void);
 PkClient	*pk_client_new				(void);
 
 void		 pk_client_resolve_async		(PkClient		*client,
+							 PkBitfield		 filters,
+							 gchar			**packages,
 							 GCancellable		*cancellable,
 							 /* TODO: progress cb */
 							 /* TODO: status cb */
diff --git a/lib/packagekit-glib2/pk-package-sack.c b/lib/packagekit-glib2/pk-package-sack.c
index da9eb5d..f852db1 100644
--- a/lib/packagekit-glib2/pk-package-sack.c
+++ b/lib/packagekit-glib2/pk-package-sack.c
@@ -317,7 +317,7 @@ pk_package_sack_merge_resolve_async (PkPackageSack *sack, GCancellable *cancella
 	action->sack = sack;
 
 	/* get new tid */
-	pk_client_resolve_async (sack->priv->client, cancellable, (GAsyncReadyCallback) pk_client_resolve_cb, action);
+	pk_client_resolve_async (sack->priv->client, pk_bitfield_value (PK_FILTER_ENUM_INSTALLED), action->package_ids, cancellable, (GAsyncReadyCallback) pk_client_resolve_cb, action);
 }
 
 
commit 9f4c538bbc1aa33dcc6824e2cfe61075f3c95ce8
Author: Richard Hughes <richard at hughsie.com>
Date:   Wed Aug 26 15:02:24 2009 +0100

    glib2: get the daemon properties async

diff --git a/lib/packagekit-glib2/pk-client.c b/lib/packagekit-glib2/pk-client.c
index e4a35b8..6834d22 100644
--- a/lib/packagekit-glib2/pk-client.c
+++ b/lib/packagekit-glib2/pk-client.c
@@ -66,7 +66,6 @@ static void     pk_client_finalize	(GObject     *object);
  **/
 struct _PkClientPrivate
 {
-//	DBusGProxy		*proxy;
 	DBusGConnection		*connection;
 	PkControl		*control;
 };
diff --git a/lib/packagekit-glib2/pk-control.c b/lib/packagekit-glib2/pk-control.c
index 93734e6..f9fa25b 100644
--- a/lib/packagekit-glib2/pk-control.c
+++ b/lib/packagekit-glib2/pk-control.c
@@ -50,6 +50,7 @@
 #include <packagekit-glib2/pk-control.h>
 #include <packagekit-glib2/pk-common.h>
 #include <packagekit-glib2/pk-enum.h>
+#include <packagekit-glib2/pk-version.h>
 
 #include "egg-debug.h"
 
@@ -66,6 +67,9 @@ struct _PkControlPrivate
 {
 	DBusGProxy		*proxy;
 	DBusGConnection		*connection;
+	gboolean		 version_major;
+	gboolean		 version_minor;
+	gboolean		 version_micro;
 };
 
 enum {
@@ -75,8 +79,9 @@ enum {
 
 enum {
 	PROP_0,
-	/* TODO: add the other existing properties */
-	PROP_ID,
+	PROP_VERSION_MAJOR,
+	PROP_VERSION_MINOR,
+	PROP_VERSION_MICRO,
 	PROP_LAST
 };
 
@@ -221,18 +226,96 @@ pk_control_get_tid_finish (PkControl *control, GAsyncResult *result, GError **er
 }
 
 /**
+ * pk_control_set_properties_collect_cb:
+ **/
+static void
+pk_control_set_properties_collect_cb (const char *key, const GValue *value, PkControl *control)
+{
+	if (g_strcmp0 (key, "version-major") == 0)
+		control->priv->version_major = g_value_get_uint (value);
+	else if (g_strcmp0 (key, "version-minor") == 0)
+		control->priv->version_minor = g_value_get_uint (value);
+	else if (g_strcmp0 (key, "version-micro") == 0)
+		control->priv->version_micro = g_value_get_uint (value);
+	else
+		egg_warning ("unhandled property '%s'", key);
+}
+
+/**
+ * pk_control_set_properties_cb:
+ **/
+static void
+pk_control_set_properties_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkControl *control)
+{
+	GError *error = NULL;
+	gboolean ret;
+	GHashTable *hash;
+
+	/* we've sent this async */
+	egg_debug ("got reply to request");
+
+	/* get the result */
+	ret = dbus_g_proxy_end_call (proxy, call, &error,
+				     dbus_g_type_get_map ("GHashTable", G_TYPE_STRING, G_TYPE_VALUE),
+				     &hash,
+				     G_TYPE_INVALID);
+	if (!ret) {
+		egg_warning ("failed to get properties: %s", error->message);
+		return;
+	}
+
+	/* process results */
+	if (hash != NULL) {
+		g_hash_table_foreach (hash, (GHFunc) pk_control_set_properties_collect_cb, control);
+		g_hash_table_unref (hash);
+	}
+	g_object_unref (proxy);
+}
+
+/**
+ * pk_control_set_properties:
+ **/
+static void
+pk_control_set_properties (PkControl *control)
+{
+	DBusGProxy *proxy;
+
+	/* connect to the correct path for properties */
+	proxy = dbus_g_proxy_new_for_name (control->priv->connection,
+					   "org.freedesktop.PackageKit",
+					   "/org/freedesktop/PackageKit",
+					   "org.freedesktop.DBus.Properties");
+	if (proxy == NULL) {
+		egg_warning ("Couldn't connect to proxy");
+		return;
+	}
+
+	/* does an async call, so properties may not be set until some time after the object is setup */
+	dbus_g_proxy_begin_call (proxy, "GetAll",
+			         (DBusGProxyCallNotify) pk_control_set_properties_cb, control, NULL,
+				 G_TYPE_STRING, "org.freedesktop.PackageKit",
+			         G_TYPE_INVALID);
+}
+
+/**
  * pk_control_get_property:
  **/
 static void
 pk_control_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec)
 {
-//	PkControl *control = PK_CONTROL (object);
-//	PkControlPrivate *priv = control->priv;
+	PkControl *control = PK_CONTROL (object);
+	PkControlPrivate *priv = control->priv;
 
 	switch (prop_id) {
-//	case PROP_ID:
-//		g_value_set_string (value, priv->id);
-//		break;
+	case PROP_VERSION_MAJOR:
+		g_value_set_uint (value, priv->version_major);
+		break;
+	case PROP_VERSION_MINOR:
+		g_value_set_uint (value, priv->version_minor);
+		break;
+	case PROP_VERSION_MICRO:
+		g_value_set_uint (value, priv->version_micro);
+		break;
 	default:
 		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
 		break;
@@ -245,13 +328,7 @@ pk_control_get_property (GObject *object, guint prop_id, GValue *value, GParamSp
 static void
 pk_control_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec)
 {
-//	PkControl *control = PK_CONTROL (object);
-//	PkControlPrivate *priv = control->priv;
-
 	switch (prop_id) {
-//	case PROP_INFO:
-//		priv->info = g_value_get_uint (value);
-//		break;
 	default:
 		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
 		break;
@@ -272,13 +349,28 @@ pk_control_class_init (PkControlClass *klass)
 	object_class->finalize = pk_control_finalize;
 
 	/**
-	 * PkControl:id:
+	 * PkControl:version-major:
 	 */
-	pspec = g_param_spec_string ("id", NULL,
-				     "The full control_id, e.g. 'gnome-power-manager;0.1.2;i386;fedora'",
-				     NULL,
-				     G_PARAM_READABLE);
-	g_object_class_install_property (object_class, PROP_ID, pspec);
+	pspec = g_param_spec_uint ("version-major", NULL, NULL,
+				   0, G_MAXUINT, 0,
+				   G_PARAM_READABLE);
+	g_object_class_install_property (object_class, PROP_VERSION_MAJOR, pspec);
+
+	/**
+	 * PkControl:version-minor:
+	 */
+	pspec = g_param_spec_uint ("version-minor", NULL, NULL,
+				   0, G_MAXUINT, 0,
+				   G_PARAM_READABLE);
+	g_object_class_install_property (object_class, PROP_VERSION_MINOR, pspec);
+
+	/**
+	 * PkControl:version-micro:
+	 */
+	pspec = g_param_spec_uint ("version-micro", NULL, NULL,
+				   0, G_MAXUINT, 0,
+				   G_PARAM_READABLE);
+	g_object_class_install_property (object_class, PROP_VERSION_MICRO, pspec);
 
 	/**
 	 * PkControl::changed:
@@ -304,6 +396,7 @@ static void
 pk_control_init (PkControl *control)
 {
 	GError *error = NULL;
+
 	control->priv = PK_CONTROL_GET_PRIVATE (control);
 
 	/* check dbus connections, exit if not valid */
@@ -314,6 +407,11 @@ pk_control_init (PkControl *control)
 		g_error ("This program cannot start until you start the dbus system service.");
 	}
 
+	/* we maintain a local copy */
+	control->priv->version_major = 0;
+	control->priv->version_minor = 0;
+	control->priv->version_micro = 0;
+
 	/* get a connection to the engine object */
 	control->priv->proxy = dbus_g_proxy_new_for_name (control->priv->connection,
 							  PK_DBUS_SERVICE, PK_DBUS_PATH, PK_DBUS_INTERFACE);
@@ -322,6 +420,9 @@ pk_control_init (PkControl *control)
 
 	/* don't timeout, as dbus-glib sets the timeout ~25 seconds */
 	dbus_g_proxy_set_default_timeout (control->priv->proxy, INT_MAX);
+
+	/* get properties async if they exist */
+	pk_control_set_properties (control);
 }
 
 /**
@@ -380,6 +481,7 @@ void
 pk_control_test (EggTest *test)
 {
 	PkControl *control;
+	guint version;
 
 	if (!egg_test_start (test, "PkControl"))
 		return;
@@ -395,6 +497,21 @@ pk_control_test (EggTest *test)
 	egg_test_loop_wait (test, 5000);
 	egg_test_success (test, "got tid in %i", egg_test_elapsed (test));
 
+	/************************************************************/
+	egg_test_title (test, "version major");
+	g_object_get (control, "version-major", &version, NULL);
+	egg_test_assert (test, (version == PK_MAJOR_VERSION));
+
+	/************************************************************/
+	egg_test_title (test, "version minor");
+	g_object_get (control, "version-minor", &version, NULL);
+	egg_test_assert (test, (version == PK_MINOR_VERSION));
+
+	/************************************************************/
+	egg_test_title (test, "version micro");
+	g_object_get (control, "version-micro", &version, NULL);
+	egg_test_assert (test, (version == PK_MICRO_VERSION));
+
 	g_object_unref (control);
 out:
 	egg_test_end (test);
diff --git a/lib/packagekit-glib2/pk-control.h b/lib/packagekit-glib2/pk-control.h
index 908fd4c..4cbe30a 100644
--- a/lib/packagekit-glib2/pk-control.h
+++ b/lib/packagekit-glib2/pk-control.h
@@ -25,7 +25,7 @@
 
 /**
  * SECTION:pk-control
- * @short_description: An abstract control GObject
+ * @short_description: An abstract control access GObject
  */
 
 #ifndef __PK_CONTROL_H
commit 8466500191250eabc4b9f8bc32dfa2dc82b201bf
Author: beckerde <beckerde at fedoraproject.org>
Date:   Wed Aug 26 15:39:36 2009 +0000

    Sending translation for Spanish

diff --git a/po/es.po b/po/es.po
index 3fbf841..3bf9a1b 100644
--- a/po/es.po
+++ b/po/es.po
@@ -9,9 +9,9 @@ msgid ""
 msgstr ""
 "Project-Id-Version: packagekit\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-08-25 08:29+0000\n"
-"PO-Revision-Date: 2009-08-25 10:52-0300\n"
-"Last-Translator: Héctor Daniel Cabrera <h.daniel.cabrera at gmail.com>\n"
+"POT-Creation-Date: 2009-08-26 14:37+0000\n"
+"PO-Revision-Date: 2009-08-26 12:47-0300\n"
+"Last-Translator: Domingo Becker <domingobecker at gmail.com>\n"
 "Language-Team: Fedora Spanish <fedora-trans-es at redhat.com>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -36,12 +36,12 @@ msgstr "Existosa"
 
 #. TRANSLATORS: if the repo is enabled
 #: ../client/pk-console.c:239
-#: ../client/pk-console.c:461
+#: ../client/pk-console.c:468
 msgid "True"
 msgstr "Verdadero"
 
 #: ../client/pk-console.c:239
-#: ../client/pk-console.c:461
+#: ../client/pk-console.c:468
 msgid "False"
 msgstr "Falso"
 
@@ -92,75 +92,80 @@ msgid "Affected packages: None"
 msgstr "Paquetes afectados: Ninguno"
 
 #. TRANSLATORS: When processing, we might have to remove other dependencies
-#: ../client/pk-console.c:330
+#: ../client/pk-console.c:334
 msgid "The following packages have to be removed:"
 msgstr "Se eliminarán los siguientes paquetes:"
 
 #. TRANSLATORS: When processing, we might have to install other dependencies
-#: ../client/pk-console.c:333
+#: ../client/pk-console.c:337
 msgid "The following packages have to be installed:"
 msgstr "Los siguientes paquetes se deben instalar:"
 
 #. TRANSLATORS: When processing, we might have to update other dependencies
-#: ../client/pk-console.c:336
+#: ../client/pk-console.c:340
 msgid "The following packages have to be updated:"
 msgstr "Los siguientes paquetes se deben actualizar:"
 
 #. TRANSLATORS: When processing, we might have to reinstall other dependencies
-#: ../client/pk-console.c:339
+#: ../client/pk-console.c:343
 msgid "The following packages have to be reinstalled:"
 msgstr "Los siguientes paquetes se deben reinstalar:"
 
+#. TRANSLATORS: When processing, we might have to downgrade other dependencies
+#: ../client/pk-console.c:346
+msgid "The following packages have to be downgraded:"
+msgstr "Los siguientes paquetes se deben desactualizar:"
+
 #. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:353
+#: ../client/pk-console.c:360
 msgid "Distribution"
 msgstr "Distribución"
 
 #. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:355
+#: ../client/pk-console.c:362
 msgid "Type"
 msgstr "Tipo"
 
 #. TRANSLATORS: this is any summary text describing the upgrade
 #. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:357
-#: ../client/pk-console.c:380
+#: ../client/pk-console.c:364
+#: ../client/pk-console.c:387
 msgid "Summary"
 msgstr "Resúmen"
 
 #. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:369
+#: ../client/pk-console.c:376
 msgid "Category"
 msgstr "Categoría"
 
 #. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:371
+#: ../client/pk-console.c:378
 msgid "ID"
 msgstr "ID"
 
 #. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:374
+#: ../client/pk-console.c:381
 msgid "Parent"
 msgstr "Padre"
 
 #. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:377
+#: ../client/pk-console.c:384
 msgid "Name"
 msgstr "Nombre"
 
 #. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:383
+#: ../client/pk-console.c:390
 msgid "Icon"
 msgstr "Icono"
 
 #. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:398
+#: ../client/pk-console.c:405
 msgid "Details about the update:"
 msgstr "Detalles acerca de la actualización:"
 
 #. TRANSLATORS: details about the update, package name and version
 #. TRANSLATORS: title, the names of the packages that the method is processing
-#: ../client/pk-console.c:400
+#: ../client/pk-console.c:407
 #: ../src/pk-polkit-action-lookup.c:352
 msgid "Package"
 msgid_plural "Packages"
@@ -168,139 +173,139 @@ msgstr[0] "Paquete"
 msgstr[1] "Paquetes"
 
 #. TRANSLATORS: details about the update, any packages that this update updates
-#: ../client/pk-console.c:403
+#: ../client/pk-console.c:410
 msgid "Updates"
 msgstr "Actualizaciones"
 
 #. TRANSLATORS: details about the update, any packages that this update obsoletes
-#: ../client/pk-console.c:407
+#: ../client/pk-console.c:414
 msgid "Obsoletes"
 msgstr "Sustituye"
 
 #. TRANSLATORS: details about the update, the vendor URLs
-#: ../client/pk-console.c:411
+#: ../client/pk-console.c:418
 msgid "Vendor"
 msgstr "Fabricante"
 
 #. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:415
+#: ../client/pk-console.c:422
 msgid "Bugzilla"
 msgstr "Bugzilla"
 
 #. TRANSLATORS: details about the update, the CVE URLs
-#: ../client/pk-console.c:419
+#: ../client/pk-console.c:426
 msgid "CVE"
 msgstr "CVE"
 
 #. TRANSLATORS: details about the update, if the package requires a restart
-#: ../client/pk-console.c:423
+#: ../client/pk-console.c:430
 msgid "Restart"
 msgstr "Reiniciar"
 
 #. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:427
+#: ../client/pk-console.c:434
 msgid "Update text"
 msgstr "Texto de actualización"
 
 #. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:431
+#: ../client/pk-console.c:438
 msgid "Changes"
 msgstr "Cambios"
 
 #. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:435
+#: ../client/pk-console.c:442
 msgid "State"
 msgstr "Estado"
 
 #. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:440
+#: ../client/pk-console.c:447
 msgid "Issued"
 msgstr "Emitido"
 
 #. TRANSLATORS: details about the update, date the update was updated
-#: ../client/pk-console.c:445
+#: ../client/pk-console.c:452
 msgid "Updated"
 msgstr "Actualizado"
 
-#: ../client/pk-console.c:532
-#: ../client/pk-console.c:534
+#: ../client/pk-console.c:539
+#: ../client/pk-console.c:541
 msgid "Percentage"
 msgstr "Porcentaje"
 
-#: ../client/pk-console.c:534
+#: ../client/pk-console.c:541
 msgid "Unknown"
 msgstr "Desconocido"
 
 #. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:576
+#: ../client/pk-console.c:583
 msgid "System restart required by:"
 msgstr "Se necesita reiniciar el sistema debido a:"
 
 #. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:579
+#: ../client/pk-console.c:586
 msgid "Session restart required:"
 msgstr "Se necesita reiniciar la sesión:"
 
 #. TRANSLATORS: a package requires the system to be restarted due to a security update
-#: ../client/pk-console.c:582
+#: ../client/pk-console.c:589
 msgid "System restart (security) required by:"
 msgstr "Reinicio del sistema (seguridad) solicitado por:"
 
 #. TRANSLATORS: a package requires the session to be restarted due to a security update
-#: ../client/pk-console.c:585
+#: ../client/pk-console.c:592
 msgid "Session restart (security) required:"
 msgstr "Reinicio de la sesión (seguridad) solicitado por:"
 
 #. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:588
+#: ../client/pk-console.c:595
 msgid "Application restart required by:"
 msgstr "Se necesita reiniciar una aplicación debido a:"
 
 #. TRANSLATORS: a package needs to restart their system
-#: ../client/pk-console.c:643
+#: ../client/pk-console.c:650
 msgid "Please restart the computer to complete the update."
 msgstr "Reinicie el equipo para completar la actualización."
 
 #. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:646
+#: ../client/pk-console.c:653
 msgid "Please logout and login to complete the update."
 msgstr "Cierre la sesión y vuelva a entrar para completar la actualización."
 
 #. TRANSLATORS: a package needs to restart the application
-#: ../client/pk-console.c:649
+#: ../client/pk-console.c:656
 msgid "Please restart the application as it is being used."
 msgstr "Reinicie la aplicación que está usando."
 
 #. TRANSLATORS: a package needs to restart their system (due to security)
-#: ../client/pk-console.c:652
+#: ../client/pk-console.c:659
 msgid "Please restart the computer to complete the update as important security updates have been installed."
 msgstr "Por favor, reinicie el equipo para completar la actualización, ya que se han instalado actualizaciones de seguridad importantes."
 
 #. TRANSLATORS: a package needs to restart the session (due to security)
-#: ../client/pk-console.c:655
+#: ../client/pk-console.c:662
 msgid "Please logout and login to complete the update as important security updates have been installed."
 msgstr "Por favor, cierre la sesión y vuelva a registrarse para completar la actualización, ya que se han instalado actualizaciones de seguridad importantes."
 
 #. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:787
+#: ../client/pk-console.c:794
 #, c-format
 msgid "The package %s is already installed"
 msgstr "El paquete %s ya está instalado"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:795
+#: ../client/pk-console.c:802
 #, c-format
 msgid "The package %s could not be installed: %s"
 msgstr "No se pudo instalar el paquete %s: %s"
 
 #. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
-#: ../client/pk-console.c:821
-#: ../client/pk-console.c:869
-#: ../client/pk-console.c:893
-#: ../client/pk-console.c:941
-#: ../client/pk-console.c:1037
-#: ../client/pk-console.c:1150
-#: ../client/pk-console.c:1211
+#: ../client/pk-console.c:828
+#: ../client/pk-console.c:876
+#: ../client/pk-console.c:900
+#: ../client/pk-console.c:948
+#: ../client/pk-console.c:1044
+#: ../client/pk-console.c:1157
+#: ../client/pk-console.c:1218
 #: ../client/pk-tools-common.c:62
 #: ../client/pk-tools-common.c:81
 #: ../client/pk-tools-common.c:89
@@ -309,277 +314,277 @@ msgid "Internal error: %s"
 msgstr "Error interno: %s"
 
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:853
-#: ../client/pk-console.c:925
-#: ../client/pk-console.c:1243
+#: ../client/pk-console.c:860
+#: ../client/pk-console.c:932
+#: ../client/pk-console.c:1250
 msgid "Proceed with changes?"
 msgstr "¿Proceder con los cambios?"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:858
-#: ../client/pk-console.c:930
+#: ../client/pk-console.c:865
+#: ../client/pk-console.c:937
 msgid "The package install was canceled!"
 msgstr "¡Se canceló la instalación del paquete!"
 
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:877
-#: ../client/pk-console.c:1611
+#: ../client/pk-console.c:884
+#: ../client/pk-console.c:1618
 #, c-format
 msgid "This tool could not install the packages: %s"
 msgstr "Esta herramienta no pudo instalar los paquetes: %s"
 
 #. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:949
+#: ../client/pk-console.c:956
 #, c-format
 msgid "This tool could not install the files: %s"
 msgstr "Esta herramienta no pudo instalar los archivos: %s"
 
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:1005
+#: ../client/pk-console.c:1012
 #, c-format
 msgid "This tool could not remove %s: %s"
 msgstr "Esta herramienta no pudo eliminar %s: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:1028
-#: ../client/pk-console.c:1066
-#: ../client/pk-console.c:1095
+#: ../client/pk-console.c:1035
+#: ../client/pk-console.c:1073
+#: ../client/pk-console.c:1102
 #, c-format
 msgid "This tool could not remove the packages: %s"
 msgstr "Esta herramienta no pudo eliminar los paquetes: %s"
 
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:1081
+#: ../client/pk-console.c:1088
 msgid "Proceed with additional packages?"
 msgstr "¿Proceder con los paquetes adicionales?"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:1086
+#: ../client/pk-console.c:1093
 msgid "The package removal was canceled!"
 msgstr "Se canceló la eliminación de paquetes"
 
 #. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:1127
+#: ../client/pk-console.c:1134
 #, c-format
 msgid "This tool could not download the package %s as it could not be found"
 msgstr "Esta herramienta no pudo descargar el paquete %s debido a que no se encontró"
 
 #. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:1158
+#: ../client/pk-console.c:1165
 #, c-format
 msgid "This tool could not download the packages: %s"
 msgstr "Esta herramienta no pudo descargar los paquetes: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1190
-#: ../client/pk-console.c:1202
-#: ../client/pk-console.c:1257
+#: ../client/pk-console.c:1197
+#: ../client/pk-console.c:1209
+#: ../client/pk-console.c:1264
 #, c-format
 msgid "This tool could not update %s: %s"
 msgstr "Esta herramienta no pudo actualizar %s: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:1248
+#: ../client/pk-console.c:1255
 msgid "The package update was canceled!"
 msgstr "¡Se canceló la actualización del paquete!"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1281
-#: ../client/pk-console.c:1289
+#: ../client/pk-console.c:1288
+#: ../client/pk-console.c:1296
 #, c-format
 msgid "This tool could not get the requirements for %s: %s"
 msgstr "Esta herramienta no pudo obtener los requerimientos de %s: %s"
 
 #. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:1311
-#: ../client/pk-console.c:1319
+#: ../client/pk-console.c:1318
+#: ../client/pk-console.c:1326
 #, c-format
 msgid "This tool could not get the dependencies for %s: %s"
 msgstr "Esta herramienta no pudo obtener las dependencias de %s: %s"
 
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:1341
-#: ../client/pk-console.c:1349
+#: ../client/pk-console.c:1348
+#: ../client/pk-console.c:1356
 #, c-format
 msgid "This tool could not get package details for %s: %s"
 msgstr "Esta herramienta no pudo obtener los detalles del paquete %s: %s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1371
+#: ../client/pk-console.c:1378
 #, c-format
 msgid "This tool could not find the files for %s: %s"
 msgstr "Esta herramienta no pudo encontrar los archivos de %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1379
+#: ../client/pk-console.c:1386
 #, c-format
 msgid "This tool could not get the file list for %s: %s"
 msgstr "Esta herramienta no pudo obtener la lista de archivos de %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of packages. The filename follows
-#: ../client/pk-console.c:1401
+#: ../client/pk-console.c:1408
 #, c-format
 msgid "File already exists: %s"
 msgstr "El archivo ya existe: %s"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1406
-#: ../client/pk-console.c:1462
-#: ../client/pk-console.c:1537
+#: ../client/pk-console.c:1413
+#: ../client/pk-console.c:1469
+#: ../client/pk-console.c:1544
 msgid "Getting package list"
 msgstr "Obteniendo la lista de paquetes"
 
 #. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1412
-#: ../client/pk-console.c:1468
-#: ../client/pk-console.c:1543
+#: ../client/pk-console.c:1419
+#: ../client/pk-console.c:1475
+#: ../client/pk-console.c:1550
 #, c-format
 msgid "This tool could not get package list: %s"
 msgstr "Esta herramienta no pudo obtener la lista de paquetes: %s"
 
 #. TRANSLATORS: There was an error saving the list
-#: ../client/pk-console.c:1423
+#: ../client/pk-console.c:1430
 #, c-format
 msgid "Failed to save to disk"
 msgstr "Falló al guardar en el disco"
 
 #. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1457
-#: ../client/pk-console.c:1532
+#: ../client/pk-console.c:1464
+#: ../client/pk-console.c:1539
 #, c-format
 msgid "File does not exist: %s"
 msgstr "El archivo no existe: %s"
 
 #. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1489
+#: ../client/pk-console.c:1496
 msgid "Packages to add"
 msgstr "Paquetes para añadir"
 
 #. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1497
+#: ../client/pk-console.c:1504
 msgid "Packages to remove"
 msgstr "Paquetes para eliminar"
 
 #. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1565
+#: ../client/pk-console.c:1572
 #, c-format
 msgid "No new packages need to be installed"
 msgstr "No hay paquetes nuevos para instalar"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1571
+#: ../client/pk-console.c:1578
 msgid "To install"
 msgstr "Para instalar"
 
 #. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1583
+#: ../client/pk-console.c:1590
 msgid "Searching for package: "
 msgstr "Buscando el paquete: "
 
 #. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1587
+#: ../client/pk-console.c:1594
 msgid "not found."
 msgstr "no encontrado."
 
 #. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1598
+#: ../client/pk-console.c:1605
 #, c-format
 msgid "No packages can be found to install"
 msgstr "No se encontró ningún paquete para instalar"
 
 #. TRANSLATORS: installing new packages from package list
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
-#: ../client/pk-console.c:1604
+#: ../client/pk-console.c:1611
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:886
 #, c-format
 msgid "Installing packages"
 msgstr "Instalando paquetes"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1640
+#: ../client/pk-console.c:1647
 #, c-format
 msgid "This tool could not find the update details for %s: %s"
 msgstr "Esta herramienta no pudo encontrar los detalles de actualización de %s: %s"
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1648
+#: ../client/pk-console.c:1655
 #, c-format
 msgid "This tool could not get the update details for %s: %s"
 msgstr "Esta herramienta no pudo obtener los detalles de actualización de %s: %s"
 
 #. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
-#: ../client/pk-console.c:1679
+#: ../client/pk-console.c:1686
 msgid "Error:"
 msgstr "Error:"
 
 #. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1693
+#: ../client/pk-console.c:1700
 msgid "Package description"
 msgstr "Descripción del paquete"
 
 #. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
-#: ../client/pk-console.c:1709
+#: ../client/pk-console.c:1716
 msgid "Message:"
 msgstr "Mensaje:"
 
 #. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1737
+#: ../client/pk-console.c:1744
 msgid "Package files"
 msgstr "Archivos del paquete"
 
 #. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1745
+#: ../client/pk-console.c:1752
 msgid "No files"
 msgstr "No hay archivos"
 
 #. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1768
+#: ../client/pk-console.c:1775
 msgid "Repository signature required"
 msgstr "Se requiere la firma del repositorio"
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1778
+#: ../client/pk-console.c:1785
 msgid "Do you accept this signature?"
 msgstr "¿Acepta esta firma?"
 
 #. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1782
+#: ../client/pk-console.c:1789
 msgid "The signature was not accepted."
 msgstr "No se aceptó la firma."
 
 #. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1816
+#: ../client/pk-console.c:1823
 msgid "End user license agreement required"
 msgstr "Se requiere un acuerdo de licencia de usuario final"
 
 #. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1823
+#: ../client/pk-console.c:1830
 msgid "Do you agree to this license?"
 msgstr "¿Está de acuerdo con esta licencia?"
 
 #. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1827
+#: ../client/pk-console.c:1834
 msgid "The license was refused."
 msgstr "Se rechazó la licencia."
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1856
+#: ../client/pk-console.c:1863
 msgid "The daemon crashed mid-transaction!"
 msgstr "El demonio se colgó en medio de una transacción."
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1909
+#: ../client/pk-console.c:1916
 msgid "PackageKit Console Interface"
 msgstr "Interfaz de consola de PackageKit"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1911
+#: ../client/pk-console.c:1918
 msgid "Subcommands:"
 msgstr "Subcomandos:"
 
 #. TRANSLATORS: command line argument, if we should show debugging information
 #. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:2004
+#: ../client/pk-console.c:2011
 #: ../client/pk-generate-pack.c:185
 #: ../client/pk-monitor.c:128
 #: ../contrib/command-not-found/pk-command-not-found.c:616
@@ -590,155 +595,155 @@ msgid "Show extra debugging information"
 msgstr "Mostrar información extra de depuración"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:2007
+#: ../client/pk-console.c:2014
 #: ../client/pk-monitor.c:130
 msgid "Show the program version and exit"
 msgstr "Mostrar la versión del programa y salir"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:2010
+#: ../client/pk-console.c:2017
 msgid "Set the filter, e.g. installed"
 msgstr "Establecer el filtro, ej. instalado"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:2013
+#: ../client/pk-console.c:2020
 msgid "Exit without waiting for actions to complete"
 msgstr "Salir sin esperar que las acciones se completen"
 
 #. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:2040
+#: ../client/pk-console.c:2047
 msgid "This tool could not connect to system DBUS."
 msgstr "Esta herramienta no se pudo conectar al DBUS del sistema."
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:2130
+#: ../client/pk-console.c:2137
 msgid "The filter specified was invalid"
 msgstr "El filtro especificado fue inválido"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:2149
+#: ../client/pk-console.c:2156
 msgid "A search type is required, e.g. name"
 msgstr "Se necesita un tipo de búsqueda, por ejemplo, nombre"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:2156
-#: ../client/pk-console.c:2165
-#: ../client/pk-console.c:2174
-#: ../client/pk-console.c:2183
+#: ../client/pk-console.c:2163
+#: ../client/pk-console.c:2172
+#: ../client/pk-console.c:2181
+#: ../client/pk-console.c:2190
 msgid "A search term is required"
 msgstr "Se necesita un término de búsqueda"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:2190
+#: ../client/pk-console.c:2197
 msgid "Invalid search type"
 msgstr "Tipo de búsqueda inválido"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:2196
+#: ../client/pk-console.c:2203
 msgid "A package name or filename to install is required"
 msgstr "Se requiere un nombre de paquete o nombre de archivo para instalar"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2205
+#: ../client/pk-console.c:2212
 msgid "A type, key_id and package_id are required"
 msgstr "Se necesita un tipo, key_id y package_id"
 
 #. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:2214
+#: ../client/pk-console.c:2221
 msgid "A package name to remove is required"
 msgstr "Necesita un nombre de paquete para eliminar"
 
 #. TRANSLATORS: the user did not specify anything about what to download or where
-#: ../client/pk-console.c:2222
+#: ../client/pk-console.c:2229
 msgid "A destination directory and the package names to download are required"
 msgstr "Se necesita un directorio de destino y los nombres de los paquetes a descargar"
 
 #. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:2229
+#: ../client/pk-console.c:2236
 msgid "Directory not found"
 msgstr "Directorio no encontrado"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2237
+#: ../client/pk-console.c:2244
 msgid "A licence identifier (eula-id) is required"
 msgstr "Se necesita un identificador de licencia (eula-id)"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2247
+#: ../client/pk-console.c:2254
 msgid "A transaction identifier (tid) is required"
 msgstr "Se necesita un identificador de transacción (tid)"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:2264
+#: ../client/pk-console.c:2271
 msgid "A package name to resolve is required"
 msgstr "Se necesita un nombre de paquete para resolver"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:2273
-#: ../client/pk-console.c:2282
+#: ../client/pk-console.c:2280
+#: ../client/pk-console.c:2289
 msgid "A repository name is required"
 msgstr "Se necesita un nombre de repositorio"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2291
+#: ../client/pk-console.c:2298
 msgid "A repo name, parameter and value are required"
 msgstr "Debe especificar un nombre de repositorio, parámetro y valor"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:2305
+#: ../client/pk-console.c:2312
 msgid "An action, e.g. 'update-system' is required"
 msgstr "Debe especificar una acción, por ejemplo, «update-system»"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:2312
+#: ../client/pk-console.c:2319
 msgid "A correct role is required"
 msgstr "Se necesita un rol correcto"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2319
+#: ../client/pk-console.c:2326
 msgid "Failed to get the time since this action was last completed"
 msgstr "Falló al obtener la hora de la última vez que se completó esta acción"
 
 #. TRANSLATORS: The user did not provide a package name
 #. TRANSLATORS: This is when the user fails to supply the package name
-#: ../client/pk-console.c:2329
-#: ../client/pk-console.c:2341
-#: ../client/pk-console.c:2350
-#: ../client/pk-console.c:2368
-#: ../client/pk-console.c:2377
+#: ../client/pk-console.c:2336
+#: ../client/pk-console.c:2348
+#: ../client/pk-console.c:2357
+#: ../client/pk-console.c:2375
+#: ../client/pk-console.c:2384
 #: ../client/pk-generate-pack.c:241
 msgid "A package name is required"
 msgstr "Se necesita un nombre de paquete"
 
 #. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:2359
+#: ../client/pk-console.c:2366
 msgid "A package provide string is required"
 msgstr "Se necesita la cadena de lo que proporciona el paquete"
 
 #. TRANSLATORS: The user didn't specify a filename to create as a list
-#: ../client/pk-console.c:2386
+#: ../client/pk-console.c:2393
 msgid "A list file name to create is required"
 msgstr "Se necesita un nombre de archivo de la lista"
 
 #. TRANSLATORS: The user didn't specify a filename to open as a list
-#: ../client/pk-console.c:2396
-#: ../client/pk-console.c:2406
+#: ../client/pk-console.c:2403
+#: ../client/pk-console.c:2413
 msgid "A list file to open is required"
 msgstr "Se necesita un archivo de lista para abrir"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2460
+#: ../client/pk-console.c:2467
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "La opción «%s» no está soportada"
 
 #. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2473
+#: ../client/pk-console.c:2480
 msgid "Incorrect privileges for this operation"
 msgstr "Privilegios incorrectos para esta operación"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2476
+#: ../client/pk-console.c:2483
 msgid "Command failed"
 msgstr "Falló el comando"
 
commit 5afc8e735a2949fb40a7993a3354e10e93d777e9
Author: Richard Hughes <richard at hughsie.com>
Date:   Wed Aug 26 14:35:36 2009 +0100

    Checkin a very early version of the glib2 library for review

diff --git a/configure.ac b/configure.ac
index 1c65215..a138016 100644
--- a/configure.ac
+++ b/configure.ac
@@ -537,6 +537,13 @@ AC_ARG_ENABLE(ruck, AS_HELP_STRING([--enable-ruck],[Build ruck client]),
 	      build_ruck=$enableval,build_ruck=yes)
 AM_CONDITIONAL(PK_BUILD_RUCK, test $build_ruck = "yes")
 
+dnl ---------------------------------------------------------------------------
+dnl - Able to build GLib2 library
+dnl ---------------------------------------------------------------------------
+AC_ARG_ENABLE(glib2, AS_HELP_STRING([--enable-glib2],[Build glib2 library (experimental)]),
+	      build_glib2=$enableval,build_glib2=no)
+AM_CONDITIONAL(PK_BUILD_GLIB2, test $build_glib2 = "yes")
+
 # backends
 AC_ARG_ENABLE(alpm, AS_HELP_STRING([--enable-alpm],[use the ALPM backend]),enable_alpm=$enableval,enable_alpm=no)
 AC_ARG_ENABLE(apt, AS_HELP_STRING([--enable-apt],[use the APT backend]),enable_apt=$enableval,enable_apt=no)
@@ -810,6 +817,9 @@ lib/Makefile
 lib/packagekit-glib/pk-version.h
 lib/packagekit-glib/Makefile
 lib/packagekit-glib/packagekit-glib.pc
+lib/packagekit-glib2/pk-version.h
+lib/packagekit-glib2/Makefile
+lib/packagekit-glib2/packagekit-glib2.pc
 lib/packagekit-qt/Makefile
 lib/packagekit-qt/modules/Makefile
 lib/packagekit-qt/src/Makefile
@@ -849,6 +859,7 @@ echo "
         pm-utils scripts:          ${build_pm_utils}
         RUCK client:               ${build_ruck}
         QT library:                ${build_qt}
+        GLib2:                     ${build_glib2}
 	Managed bindings:          ${build_managed}
 
         Backends:
diff --git a/lib/Makefile.am b/lib/Makefile.am
index 05d5a2f..d509ce9 100644
--- a/lib/Makefile.am
+++ b/lib/Makefile.am
@@ -8,3 +8,7 @@ if PK_BUILD_MANAGED
 SUBDIRS += packagekit-sharp
 endif
 
+if PK_BUILD_GLIB2
+SUBDIRS += packagekit-glib2
+endif
+
diff --git a/lib/packagekit-glib2/.gitignore b/lib/packagekit-glib2/.gitignore
new file mode 100644
index 0000000..a013a7d
--- /dev/null
+++ b/lib/packagekit-glib2/.gitignore
@@ -0,0 +1,12 @@
+.deps
+.libs
+*.o
+*.la
+*.lo
+*-marshal.c
+*-marshal.h
+pk-self-test
+*.loT
+*.db
+pk-version.h
+
diff --git a/lib/packagekit-glib2/Makefile.am b/lib/packagekit-glib2/Makefile.am
new file mode 100644
index 0000000..c77f6ac
--- /dev/null
+++ b/lib/packagekit-glib2/Makefile.am
@@ -0,0 +1,124 @@
+NULL =
+
+INCLUDES = \
+	$(GLIB_CFLAGS)						\
+	$(DBUS_CFLAGS)						\
+	$(POLKIT_CFLAGS)					\
+	$(SQLITE_CFLAGS)					\
+	-I$(top_srcdir)/lib					\
+	-I$(top_builddir)/lib					\
+	-I.							\
+	-DPK_COMPILATION					\
+	-DPK_DB_DIR=\""$(PK_DB_DIR)"\" 				\
+	-DEGG_LOG_FILE=\""$(PK_LOG_DIR)/PackageKit"\"		\
+	-DEGG_VERBOSE="\"PK_VERBOSE\""				\
+	-DEGG_LOGGING="\"PK_LOGGING\""				\
+	-DEGG_CONSOLE="\"PK_CONSOLE\""				\
+	-DLOCALSTATEDIR=\""$(localstatedir)"\" 			\
+	-DPACKAGE_DATA_DIR=\""$(datadir)"\"			\
+	-DPACKAGE_LOCALE_DIR=\""$(prefix)/$(DATADIRNAME)/locale"\"
+
+pkgconfigdir = $(libdir)/pkgconfig
+pkgconfig_DATA = 						\
+	packagekit-glib2.pc					\
+	$(NULL)
+
+lib_LTLIBRARIES =						\
+	libpackagekit-glib2.la					\
+	$(NULL)
+
+libpackagekit_glib2_includedir = $(includedir)/PackageKit/packagekit-glib2
+
+libpackagekit_glib2_include_HEADERS =				\
+	packagekit.h						\
+	pk-package.h						\
+	$(NULL)
+
+libpackagekit_glib2_la_SOURCES =				\
+	packagekit.h						\
+	egg-debug.c						\
+	egg-debug.h						\
+	egg-string.c						\
+	egg-string.h						\
+	pk-version.h						\
+	pk-enum.c						\
+	pk-enum.h						\
+	pk-package.c						\
+	pk-package.h						\
+	pk-package-sack.c					\
+	pk-package-sack.h					\
+	pk-control.c						\
+	pk-control.h						\
+	pk-client.c						\
+	pk-client.h						\
+	pk-marshal.c						\
+	pk-marshal.h						\
+	pk-results.c						\
+	pk-results.h						\
+	$(NULL)
+
+libpackagekit_glib2_la_LIBADD =					\
+	$(GLIB_LIBS)						\
+	$(DBUS_LIBS)						\
+	$(ARCHIVE_LIBS)						\
+	$(NULL)
+
+libpackagekit_glib2_la_LDFLAGS =				\
+	-version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE)	\
+	-export-dynamic						\
+	-no-undefined						\
+	-export-symbols-regex '^pk_.*'				\
+	$(NULL)
+
+libpackagekit_glib2_la_CFLAGS =					\
+	$(WARNINGFLAGS_C)					\
+	$(NULL)
+
+if EGG_BUILD_TESTS
+check_PROGRAMS =						\
+	pk-self-test
+
+pk_self_test_SOURCES =						\
+	$(libpackagekit_glib2_la_SOURCES)			\
+	egg-test.h						\
+	egg-test.c						\
+	pk-self-test.c						\
+	$(NULL)
+
+pk_self_test_LDADD =						\
+	$(GLIB_LIBS)						\
+	$(DBUS_LIBS)						\
+	$(SELFTEST_LIBS)					\
+	$(POLKIT_LIBS)						\
+	$(SQLITE_LIBS)						\
+	$(ARCHIVE_LIBS)						\
+	$(NULL)
+
+pk_self_test_CFLAGS = -DEGG_TEST $(AM_CFLAGS)
+
+TESTS = pk-self-test
+endif
+
+EXTRA_DIST =							\
+	packagekit-glib2.pc.in					\
+	pk-version.h.in						\
+	pk-marshal.list
+
+BUILT_SOURCES = 						\
+	pk-marshal.c						\
+	pk-marshal.h						\
+	$(NULL)
+
+pk-marshal.c: pk-marshal.list
+	echo "#include \"pk-marshal.h\"" > $@ && \
+	@GLIB_GENMARSHAL@ $< --prefix=pk_marshal --body >> $@
+
+pk-marshal.h: pk-marshal.list
+	@GLIB_GENMARSHAL@ $< --prefix=pk_marshal --header > $@
+
+CLEANFILES = $(BUILT_SOURCES)
+
+clean-local:
+	rm -f *~
+	rm -f $(CLEANFILES)
+
diff --git a/lib/packagekit-glib2/egg-debug.c b/lib/packagekit-glib2/egg-debug.c
new file mode 120000
index 0000000..69011e0
--- /dev/null
+++ b/lib/packagekit-glib2/egg-debug.c
@@ -0,0 +1 @@
+../packagekit-glib/egg-debug.c
\ No newline at end of file
diff --git a/lib/packagekit-glib2/egg-debug.h b/lib/packagekit-glib2/egg-debug.h
new file mode 120000
index 0000000..7341ca0
--- /dev/null
+++ b/lib/packagekit-glib2/egg-debug.h
@@ -0,0 +1 @@
+../packagekit-glib/egg-debug.h
\ No newline at end of file
diff --git a/lib/packagekit-glib2/egg-string.c b/lib/packagekit-glib2/egg-string.c
new file mode 120000
index 0000000..8f96c3f
--- /dev/null
+++ b/lib/packagekit-glib2/egg-string.c
@@ -0,0 +1 @@
+../packagekit-glib/egg-string.c
\ No newline at end of file
diff --git a/lib/packagekit-glib2/egg-string.h b/lib/packagekit-glib2/egg-string.h
new file mode 120000
index 0000000..5c8a11e
--- /dev/null
+++ b/lib/packagekit-glib2/egg-string.h
@@ -0,0 +1 @@
+../packagekit-glib/egg-string.h
\ No newline at end of file
diff --git a/lib/packagekit-glib2/egg-test.c b/lib/packagekit-glib2/egg-test.c
new file mode 120000
index 0000000..287c886
--- /dev/null
+++ b/lib/packagekit-glib2/egg-test.c
@@ -0,0 +1 @@
+../packagekit-glib/egg-test.c
\ No newline at end of file
diff --git a/lib/packagekit-glib2/egg-test.h b/lib/packagekit-glib2/egg-test.h
new file mode 120000
index 0000000..4e50b66
--- /dev/null
+++ b/lib/packagekit-glib2/egg-test.h
@@ -0,0 +1 @@
+../packagekit-glib/egg-test.h
\ No newline at end of file
diff --git a/lib/packagekit-glib2/packagekit-glib2.pc.in b/lib/packagekit-glib2/packagekit-glib2.pc.in
new file mode 100644
index 0000000..ec073f4
--- /dev/null
+++ b/lib/packagekit-glib2/packagekit-glib2.pc.in
@@ -0,0 +1 @@
+../packagekit-glib/packagekit-glib.pc.in
\ No newline at end of file
diff --git a/lib/packagekit-glib2/packagekit.h b/lib/packagekit-glib2/packagekit.h
new file mode 100644
index 0000000..515f9af
--- /dev/null
+++ b/lib/packagekit-glib2/packagekit.h
@@ -0,0 +1,36 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2008-2009 Richard Hughes <richard at hughsie.com>
+ *
+ * Licensed under the GNU General Public License Version 2
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __PACKAGEKIT_H__
+#define __PACKAGEKIT_H__
+
+#define __PACKAGEKIT_H_INSIDE__
+
+#include <packagekit-glib/pk-version.h>
+#include <packagekit-glib/pk-client.h>
+#include <packagekit-glib/pk-common.h>
+#include <packagekit-glib/pk-control.h>
+#include <packagekit-glib/pk-enum.h>
+
+#undef __PACKAGEKIT_H_INSIDE__
+
+#endif /* __PACKAGEKIT_H__ */
+
diff --git a/lib/packagekit-glib2/pk-client.c b/lib/packagekit-glib2/pk-client.c
new file mode 100644
index 0000000..e4a35b8
--- /dev/null
+++ b/lib/packagekit-glib2/pk-client.c
@@ -0,0 +1,494 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2008 Richard Hughes <richard at hughsie.com>
+ *
+ * Licensed under the GNU General Public License Version 2
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+/**
+ * SECTION:pk-client
+ * @short_description: TODO
+ */
+
+#include "config.h"
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <time.h>
+#include <errno.h>
+
+#include <string.h>
+#include <locale.h>
+#include <sys/time.h>
+#include <sys/types.h>
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif /* HAVE_UNISTD_H */
+
+#include <sys/wait.h>
+#include <fcntl.h>
+
+#include <glib/gi18n.h>
+#include <glib/gprintf.h>
+#include <dbus/dbus-glib.h>
+#include <gio/gio.h>
+
+#include <packagekit-glib2/pk-client.h>
+#include <packagekit-glib2/pk-control.h>
+#include <packagekit-glib2/pk-common.h>
+#include <packagekit-glib2/pk-enum.h>
+#include <packagekit-glib2/pk-marshal.h>
+
+#include "egg-debug.h"
+
+static void     pk_client_finalize	(GObject     *object);
+
+#define PK_CLIENT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), PK_TYPE_CLIENT, PkClientPrivate))
+
+/**
+ * PkClientPrivate:
+ *
+ * Private #PkClient data
+ **/
+struct _PkClientPrivate
+{
+//	DBusGProxy		*proxy;
+	DBusGConnection		*connection;
+	PkControl		*control;
+};
+
+enum {
+	SIGNAL_CHANGED,
+	SIGNAL_LAST
+};
+
+enum {
+	PROP_0,
+	/* TODO: add the other existing properties */
+	PROP_ID,
+	PROP_LAST
+};
+
+static guint signals [SIGNAL_LAST] = { 0 };
+
+G_DEFINE_TYPE (PkClient, pk_client, G_TYPE_OBJECT)
+
+typedef struct {
+	PkClient		*client;
+	GCancellable		*cancellable;
+	gchar			*tid;
+	gchar			**packages;
+	GSimpleAsyncResult	*result;
+	DBusGProxyCall		*call;
+	PkResults		*results;
+	DBusGProxy		*proxy;
+} PkClientState;
+
+static void pk_client_finished_cb (DBusGProxy *proxy, const gchar *exit_text, guint runtime, PkClientState *state);
+
+/**
+ * pk_client_state_finish:
+ **/
+static void
+pk_client_state_finish (PkClientState *state, GError *error)
+{
+	PkClientPrivate *priv;
+	priv = state->client->priv;
+
+	g_strfreev (state->packages);
+
+	if (state->client != NULL) {
+		g_object_remove_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
+	}
+
+	if (state->cancellable != NULL) {
+		g_cancellable_cancel (state->cancellable);
+		g_object_unref (state->cancellable);
+	}
+
+	if (state->proxy != NULL) {
+		dbus_g_proxy_disconnect_signal (state->proxy, "Finished",
+						G_CALLBACK (pk_client_finished_cb), state->client);
+		g_object_unref (G_OBJECT (state->proxy));
+	}
+
+	if (state->results != NULL) {
+		g_simple_async_result_set_op_res_gpointer (state->result, g_object_ref (state->results), g_object_unref);
+	} else {
+		g_simple_async_result_set_from_error (state->result, error);
+		g_error_free (error);
+	}
+
+	g_simple_async_result_complete_in_idle (state->result);
+	g_object_unref (state->result);
+	g_slice_free (PkClientState, state);
+}
+
+/**
+ * pk_client_finished_cb:
+ */
+static void
+pk_client_finished_cb (DBusGProxy *proxy, const gchar *exit_text, guint runtime, PkClientState *state)
+{
+	GError *error = NULL;
+	PkExitEnum exit_enum;
+
+	egg_warning ("exit_text=%s", exit_text);
+
+	/* yay */
+	exit_enum = pk_exit_enum_from_text (exit_text);
+	pk_results_set_exit_code (state->results, exit_enum);
+
+	/* failed */
+	if (exit_enum != PK_EXIT_ENUM_SUCCESS) {
+		/* TODO: get error code and error message */
+		error = g_error_new (1, 0, "Failed to run: %s", exit_text);
+		pk_client_state_finish (state, error);
+		return;
+	}
+
+	/* we're done */
+	pk_client_state_finish (state, error);
+}
+
+/**
+ * pk_client_method_cb:
+ **/
+static void
+pk_client_method_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkClientState *state)
+{
+//	PkClient *client = PK_CLIENT (state->client);
+	GError *error = NULL;
+	gboolean ret;
+
+	/* we've sent this async */
+	egg_debug ("got reply to request");
+
+	/* get the result */
+	ret = dbus_g_proxy_end_call (proxy, call, &error,
+				     G_TYPE_INVALID);
+	if (!ret) {
+		egg_warning ("failed: %s", error->message);
+		pk_client_state_finish (state, error);
+		return;
+	}
+
+	/* finished this call */
+	state->call = NULL;
+
+	/* wait for ::Finished() */
+}
+
+/**
+ * pk_client_get_tid_cb:
+ **/
+static void
+pk_client_get_tid_cb (GObject *object, GAsyncResult *result, PkClientState *state)
+{
+	PkControl *control = PK_CONTROL (object);
+	GError *error = NULL;
+	const gchar *tid = NULL;
+
+	tid = pk_control_get_tid_finish (control, result, &error);
+	if (tid == NULL) {
+		pk_client_state_finish (state, error);
+//		egg_test_failed (test, "failed to get transaction: %s", error->message);
+		g_error_free (error);
+		return;
+	}
+
+	egg_debug ("tid = %s", tid);
+	state->tid = g_strdup (tid);
+
+	/* get a connection to the tranaction interface */
+	state->proxy = dbus_g_proxy_new_for_name (state->client->priv->connection,
+						  PK_DBUS_SERVICE, tid, PK_DBUS_INTERFACE_TRANSACTION);
+	if (state->proxy == NULL)
+		egg_error ("Cannot connect to PackageKit on %s", tid);
+
+	/* don't timeout, as dbus-glib sets the timeout ~25 seconds */
+	dbus_g_proxy_set_default_timeout (state->proxy, INT_MAX);
+
+	dbus_g_proxy_add_signal (state->proxy, "Finished",
+				 G_TYPE_STRING, G_TYPE_UINT, G_TYPE_INVALID);
+	dbus_g_proxy_connect_signal (state->proxy, "Finished",
+				     G_CALLBACK (pk_client_finished_cb), state, NULL);
+
+	/* do this async, although this should be pretty fast anyway */
+	state->call = dbus_g_proxy_begin_call (state->proxy, "Resolve",
+					       (DBusGProxyCallNotify) pk_client_method_cb, state, NULL,
+					       G_TYPE_STRING, "installed", //TODO: add filter
+					       G_TYPE_STRV, state->packages,
+					       G_TYPE_INVALID);
+
+	/* we've sent this async */
+	egg_debug ("sent request");
+
+	/* we'll have results from now on */
+	state->results = pk_results_new ();
+}
+
+/**
+ * pk_client_resolve_async:
+ * @client: a valid #PkClient instance
+ * @cancellable: a #GCancellable or %NULL
+ * @callback: the function to run on completion
+ * @user_data: the data to pass to @callback
+ *
+ * TODO
+ **/
+void
+pk_client_resolve_async (PkClient *client, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data)
+{
+	GSimpleAsyncResult *result;
+	PkClientState *state;
+
+	g_return_if_fail (PK_IS_CLIENT (client));
+	g_return_if_fail (callback != NULL);
+
+	result = g_simple_async_result_new (G_OBJECT (client), callback, user_data, pk_client_resolve_async);
+
+	/* save state */
+	state = g_slice_new0 (PkClientState);
+	state->result = g_object_ref (result);
+	state->cancellable = cancellable;
+	state->client = client;
+	state->results = NULL;
+	state->proxy = NULL;
+	state->call = NULL;
+	state->packages = g_strsplit ("gnome-power-manager,hal", ",", -1); //TODO: add parameter
+	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
+
+	/* get tid */
+	pk_control_get_tid_async (client->priv->control, NULL, (GAsyncReadyCallback) pk_client_get_tid_cb, state);
+	g_object_unref (result);
+}
+
+/**
+ * pk_client_resolve_finish:
+ * @client: a valid #PkClient instance
+ * @result: the #GAsyncResult
+ * @error: A #GError or %NULL
+ *
+ * Gets the result from the asynchronous function. 
+ *
+ * Return value: the ID, or %NULL if unset
+ **/
+PkResults *
+pk_client_resolve_finish (PkClient *client, GAsyncResult *result, GError **error)
+{
+	GSimpleAsyncResult *simple;
+	gpointer source_tag;
+
+	g_return_val_if_fail (PK_IS_CLIENT (client), NULL);
+	g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (result), NULL);
+
+	simple = G_SIMPLE_ASYNC_RESULT (result);
+	source_tag = g_simple_async_result_get_source_tag (simple);
+
+	g_return_val_if_fail (source_tag == pk_client_resolve_async, NULL);
+
+	if (g_simple_async_result_propagate_error (simple, error))
+		return NULL;
+
+	return g_simple_async_result_get_op_res_gpointer (simple);
+}
+
+/**
+ * pk_client_get_property:
+ **/
+static void
+pk_client_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec)
+{
+//	PkClient *client = PK_CLIENT (object);
+//	PkClientPrivate *priv = client->priv;
+
+	switch (prop_id) {
+//	case PROP_ID:
+//		g_value_set_string (value, priv->id);
+//		break;
+	default:
+		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+		break;
+	}
+}
+
+/**
+ * pk_client_set_property:
+ **/
+static void
+pk_client_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec)
+{
+//	PkClient *client = PK_CLIENT (object);
+//	PkClientPrivate *priv = client->priv;
+
+	switch (prop_id) {
+//	case PROP_INFO:
+//		priv->info = g_value_get_uint (value);
+//		break;
+	default:
+		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+		break;
+	}
+}
+
+/**
+ * pk_client_class_init:
+ * @klass: The PkClientClass
+ **/
+static void
+pk_client_class_init (PkClientClass *klass)
+{
+	GParamSpec *pspec;
+	GObjectClass *object_class = G_OBJECT_CLASS (klass);
+	object_class->get_property = pk_client_get_property;
+	object_class->set_property = pk_client_set_property;
+	object_class->finalize = pk_client_finalize;
+
+	/**
+	 * PkClient:id:
+	 */
+	pspec = g_param_spec_string ("id", NULL,
+				     "The full client_id, e.g. 'gnome-power-manager;0.1.2;i386;fedora'",
+				     NULL,
+				     G_PARAM_READABLE);
+	g_object_class_install_property (object_class, PROP_ID, pspec);
+
+	/**
+	 * PkClient::changed:
+	 * @client: the #PkClient instance that emitted the signal
+	 *
+	 * The ::changed signal is emitted when the client data may have changed.
+	 **/
+	signals [SIGNAL_CHANGED] =
+		g_signal_new ("changed",
+			      G_TYPE_FROM_CLASS (object_class), G_SIGNAL_RUN_LAST,
+			      G_STRUCT_OFFSET (PkClientClass, changed),
+			      NULL, NULL, g_cclosure_marshal_VOID__VOID,
+			      G_TYPE_NONE, 0);
+
+	g_type_class_add_private (klass, sizeof (PkClientPrivate));
+}
+
+/**
+ * pk_client_init:
+ * @client: This class instance
+ **/
+static void
+pk_client_init (PkClient *client)
+{
+	GError *error = NULL;
+	client->priv = PK_CLIENT_GET_PRIVATE (client);
+
+	/* check dbus connections, exit if not valid */
+	client->priv->connection = dbus_g_bus_get (DBUS_BUS_SYSTEM, &error);
+	if (error != NULL) {
+		egg_warning ("%s", error->message);
+		g_error_free (error);
+		g_error ("This program cannot start until you start the dbus system service.");
+	}
+
+	/* use a control object */
+	client->priv->control = pk_control_new ();
+
+	/* Finished */
+	dbus_g_object_register_marshaller (pk_marshal_VOID__STRING_UINT,
+					   G_TYPE_NONE, G_TYPE_STRING, G_TYPE_UINT, G_TYPE_INVALID);
+}
+
+/**
+ * pk_client_finalize:
+ * @object: The object to finalize
+ **/
+static void
+pk_client_finalize (GObject *object)
+{
+	PkClient *client = PK_CLIENT (object);
+	PkClientPrivate *priv = client->priv;
+
+	g_object_unref (priv->control);
+
+	G_OBJECT_CLASS (pk_client_parent_class)->finalize (object);
+}
+
+/**
+ * pk_client_new:
+ *
+ * Return value: a new PkClient object.
+ **/
+PkClient *
+pk_client_new (void)
+{
+	PkClient *client;
+	client = g_object_new (PK_TYPE_CLIENT, NULL);
+	return PK_CLIENT (client);
+}
+
+/***************************************************************************
+ ***                          MAKE CHECK TESTS                           ***
+ ***************************************************************************/
+#ifdef EGG_TEST
+#include "egg-test.h"
+
+static void
+pk_client_test_resolve_cb (GObject *object, GAsyncResult *result, EggTest *test)
+{
+	PkClient *client = PK_CLIENT (object);
+	GError *error = NULL;
+	PkResults *results = NULL;
+	PkExitEnum exit_enum;
+
+	results = pk_client_resolve_finish (client, result, &error);
+	if (results == NULL) {
+		egg_test_failed (test, "failed to resolve: %s", error->message);
+		g_error_free (error);
+		return;
+	}
+
+	exit_enum = pk_results_get_exit_code (results);
+	if (exit_enum != PK_EXIT_ENUM_SUCCESS)
+		egg_test_failed (test, "failed to resolve success: %s", pk_exit_enum_to_text (exit_enum));
+
+	egg_debug ("results exit enum = %s", pk_exit_enum_to_text (exit_enum));
+	egg_test_loop_quit (test);
+}
+
+void
+pk_client_test (EggTest *test)
+{
+	PkClient *client;
+
+	if (!egg_test_start (test, "PkClient"))
+		return;
+
+	/************************************************************/
+	egg_test_title (test, "get client");
+	client = pk_client_new ();
+	egg_test_assert (test, client != NULL);
+
+	/************************************************************/
+	egg_test_title (test, "get TID async");
+	pk_client_resolve_async (client, NULL, (GAsyncReadyCallback) pk_client_test_resolve_cb, test);
+	egg_test_loop_wait (test, 15000);
+	egg_test_success (test, "got tid in %i", egg_test_elapsed (test));
+
+	g_object_unref (client);
+out:
+	egg_test_end (test);
+}
+#endif
+
diff --git a/lib/packagekit-glib2/pk-client.h b/lib/packagekit-glib2/pk-client.h
new file mode 100644
index 0000000..cdd5720
--- /dev/null
+++ b/lib/packagekit-glib2/pk-client.h
@@ -0,0 +1,90 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2009 Richard Hughes <richard at hughsie.com>
+ *
+ * Licensed under the GNU General Public License Version 2
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#if !defined (__PACKAGEKIT_H_INSIDE__) && !defined (PK_COMPILATION)
+#error "Only <packagekit.h> can be included directly."
+#endif
+
+/**
+ * SECTION:pk-client
+ * @short_description: An abstract client GObject
+ */
+
+#ifndef __PK_CLIENT_H
+#define __PK_CLIENT_H
+
+#include <glib-object.h>
+#include <packagekit-glib2/pk-results.h>
+
+G_BEGIN_DECLS
+
+#define PK_TYPE_CLIENT		(pk_client_get_type ())
+#define PK_CLIENT(o)		(G_TYPE_CHECK_INSTANCE_CAST ((o), PK_TYPE_CLIENT, PkClient))
+#define PK_CLIENT_CLASS(k)	(G_TYPE_CHECK_CLASS_CAST((k), PK_TYPE_CLIENT, PkClientClass))
+#define PK_IS_CLIENT(o)	(G_TYPE_CHECK_INSTANCE_TYPE ((o), PK_TYPE_CLIENT))
+#define PK_IS_CLIENT_CLASS(k)	(G_TYPE_CHECK_CLASS_TYPE ((k), PK_TYPE_CLIENT))
+#define PK_CLIENT_GET_CLASS(o)	(G_TYPE_INSTANCE_GET_CLASS ((o), PK_TYPE_CLIENT, PkClientClass))
+#define PK_CLIENT_ERROR	(pk_client_error_quark ())
+#define PK_CLIENT_TYPE_ERROR	(pk_client_error_get_type ())
+
+typedef struct _PkClientPrivate	PkClientPrivate;
+typedef struct _PkClient		PkClient;
+typedef struct _PkClientClass		PkClientClass;
+
+struct _PkClient
+{
+	 GObject		 parent;
+	 PkClientPrivate	*priv;
+};
+
+struct _PkClientClass
+{
+	GObjectClass	parent_class;
+
+	/* signals */
+	void		(* changed)			(PkClient	*client);
+	/* padding for future expansion */
+	void (*_pk_reserved1) (void);
+	void (*_pk_reserved2) (void);
+	void (*_pk_reserved3) (void);
+	void (*_pk_reserved4) (void);
+	void (*_pk_reserved5) (void);
+};
+
+GQuark		 pk_client_error_quark			(void);
+GType		 pk_client_get_type		  	(void);
+PkClient	*pk_client_new				(void);
+
+void		 pk_client_resolve_async		(PkClient		*client,
+							 GCancellable		*cancellable,
+							 /* TODO: progress cb */
+							 /* TODO: status cb */
+							 /* TODO: package cb */
+							 GAsyncReadyCallback	 callback,
+							 gpointer		 user_data);
+PkResults	*pk_client_resolve_finish		(PkClient		*client,
+							 GAsyncResult		*result,
+							 GError			**error);
+
+G_END_DECLS
+
+#endif /* __PK_CLIENT_H */
+
diff --git a/lib/packagekit-glib2/pk-common.c b/lib/packagekit-glib2/pk-common.c
new file mode 120000
index 0000000..2650e3d
--- /dev/null
+++ b/lib/packagekit-glib2/pk-common.c
@@ -0,0 +1 @@
+../packagekit-glib/pk-common.c
\ No newline at end of file
diff --git a/lib/packagekit-glib2/pk-common.h b/lib/packagekit-glib2/pk-common.h
new file mode 120000
index 0000000..2ca1197
--- /dev/null
+++ b/lib/packagekit-glib2/pk-common.h
@@ -0,0 +1 @@
+../packagekit-glib/pk-common.h
\ No newline at end of file
diff --git a/lib/packagekit-glib2/pk-control.c b/lib/packagekit-glib2/pk-control.c
new file mode 100644
index 0000000..93734e6
--- /dev/null
+++ b/lib/packagekit-glib2/pk-control.c
@@ -0,0 +1,403 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2008 Richard Hughes <richard at hughsie.com>
+ *
+ * Licensed under the GNU General Public License Version 2
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+/**
+ * SECTION:pk-control
+ * @short_description: TODO
+ */
+
+#include "config.h"
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <time.h>
+#include <errno.h>
+
+#include <string.h>
+#include <locale.h>
+#include <sys/time.h>
+#include <sys/types.h>
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif /* HAVE_UNISTD_H */
+
+#include <sys/wait.h>
+#include <fcntl.h>
+
+#include <glib/gi18n.h>
+#include <glib/gprintf.h>
+#include <dbus/dbus-glib.h>
+#include <gio/gio.h>
+
+#include <packagekit-glib2/pk-control.h>
+#include <packagekit-glib2/pk-common.h>
+#include <packagekit-glib2/pk-enum.h>
+
+#include "egg-debug.h"
+
+static void     pk_control_finalize	(GObject     *object);
+
+#define PK_CONTROL_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), PK_TYPE_CONTROL, PkControlPrivate))
+
+/**
+ * PkControlPrivate:
+ *
+ * Private #PkControl data
+ **/
+struct _PkControlPrivate
+{
+	DBusGProxy		*proxy;
+	DBusGConnection		*connection;
+};
+
+enum {
+	SIGNAL_CHANGED,
+	SIGNAL_LAST
+};
+
+enum {
+	PROP_0,
+	/* TODO: add the other existing properties */
+	PROP_ID,
+	PROP_LAST
+};
+
+static guint signals [SIGNAL_LAST] = { 0 };
+
+G_DEFINE_TYPE (PkControl, pk_control, G_TYPE_OBJECT)
+
+typedef struct {
+	PkControl		*control;
+	GCancellable		*cancellable;
+	gchar			*tid;
+	GSimpleAsyncResult	*result;
+	DBusGProxyCall		*call;
+} PkControlState;
+
+/**
+ * pk_control_get_tid_state_finish:
+ **/
+static void
+pk_control_get_tid_state_finish (PkControlState *state, GError *error)
+{
+//	PkControlPrivate *priv;
+
+	if (state->control != NULL) {
+//		priv = state->control->priv;
+		g_object_remove_weak_pointer (G_OBJECT (state->control), (gpointer) &state->control);
+	}
+
+	if (state->cancellable != NULL) {
+		g_cancellable_cancel (state->cancellable);
+		g_object_unref (state->cancellable);
+	}
+
+	if (state->tid != NULL) {
+		g_simple_async_result_set_op_res_gpointer (state->result, g_strdup (state->tid), g_free);
+	} else {
+		g_simple_async_result_set_from_error (state->result, error);
+		g_error_free (error);
+	}
+
+	g_simple_async_result_complete_in_idle (state->result);
+	g_object_unref (state->result);
+	g_slice_free (PkControlState, state);
+}
+
+
+/**
+ * pk_control_get_tid_cb:
+ **/
+static void
+pk_control_get_tid_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkControlState *state)
+{
+//	PkControl *control = PK_CONTROL (state->control);
+	GError *error = NULL;
+	gchar *tid = NULL;
+	gboolean ret;
+
+	/* get the result */
+	ret = dbus_g_proxy_end_call (proxy, call, &error,
+				     G_TYPE_STRING, &tid,
+				     G_TYPE_INVALID);
+	if (!ret) {
+		egg_warning ("failed: %s", error->message);
+		pk_control_get_tid_state_finish (state, error);
+		goto out;
+	}
+
+	/* finished this call */
+	state->call = NULL;
+
+	/* TODO: set locale */
+	state->tid = g_strdup (tid);
+
+	/* we're done */
+	pk_control_get_tid_state_finish (state, error);
+out:
+	g_free (tid);
+}
+
+/**
+ * pk_control_get_tid_async:
+ * @control: a valid #PkControl instance
+ * @cancellable: a #GCancellable or %NULL
+ * @callback: the function to run on completion
+ * @user_data: the data to pass to @callback
+ *
+ * Gets a transacton ID from the daemon.
+ **/
+void
+pk_control_get_tid_async (PkControl *control, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data)
+{
+	GSimpleAsyncResult *result;
+	PkControlState *state;
+
+	g_return_if_fail (PK_IS_CONTROL (control));
+	g_return_if_fail (callback != NULL);
+
+	result = g_simple_async_result_new (G_OBJECT (control), callback, user_data, pk_control_get_tid_async);
+
+	/* save state */
+	state = g_slice_new0 (PkControlState);
+	state->result = g_object_ref (result);
+	state->cancellable = cancellable;
+	state->control = control;
+	g_object_add_weak_pointer (G_OBJECT (state->control), (gpointer) &state->control);
+
+	/* call D-Bus method async */
+	state->call = dbus_g_proxy_begin_call (control->priv->proxy, "GetTid",
+					       (DBusGProxyCallNotify) pk_control_get_tid_cb, state,
+					       NULL, G_TYPE_INVALID);
+	g_object_unref (result);
+}
+
+/**
+ * pk_control_get_tid_finish:
+ * @control: a valid #PkControl instance
+ * @result: the #GAsyncResult
+ * @error: A #GError or %NULL
+ *
+ * Gets the result from the asynchronous function. 
+ *
+ * Return value: the ID, or %NULL if unset
+ **/
+gchar *
+pk_control_get_tid_finish (PkControl *control, GAsyncResult *result, GError **error)
+{
+	GSimpleAsyncResult *simple;
+	gpointer source_tag;
+
+	g_return_val_if_fail (PK_IS_CONTROL (control), NULL);
+	g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (result), NULL);
+
+	simple = G_SIMPLE_ASYNC_RESULT (result);
+	source_tag = g_simple_async_result_get_source_tag (simple);
+
+	g_return_val_if_fail (source_tag == pk_control_get_tid_async, NULL);
+
+	if (g_simple_async_result_propagate_error (simple, error))
+		return NULL;
+
+	return g_simple_async_result_get_op_res_gpointer (simple);
+}
+
+/**
+ * pk_control_get_property:
+ **/
+static void
+pk_control_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec)
+{
+//	PkControl *control = PK_CONTROL (object);
+//	PkControlPrivate *priv = control->priv;
+
+	switch (prop_id) {
+//	case PROP_ID:
+//		g_value_set_string (value, priv->id);
+//		break;
+	default:
+		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+		break;
+	}
+}
+
+/**
+ * pk_control_set_property:
+ **/
+static void
+pk_control_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec)
+{
+//	PkControl *control = PK_CONTROL (object);
+//	PkControlPrivate *priv = control->priv;
+
+	switch (prop_id) {
+//	case PROP_INFO:
+//		priv->info = g_value_get_uint (value);
+//		break;
+	default:
+		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+		break;
+	}
+}
+
+/**
+ * pk_control_class_init:
+ * @klass: The PkControlClass
+ **/
+static void
+pk_control_class_init (PkControlClass *klass)
+{
+	GParamSpec *pspec;
+	GObjectClass *object_class = G_OBJECT_CLASS (klass);
+	object_class->get_property = pk_control_get_property;
+	object_class->set_property = pk_control_set_property;
+	object_class->finalize = pk_control_finalize;
+
+	/**
+	 * PkControl:id:
+	 */
+	pspec = g_param_spec_string ("id", NULL,
+				     "The full control_id, e.g. 'gnome-power-manager;0.1.2;i386;fedora'",
+				     NULL,
+				     G_PARAM_READABLE);
+	g_object_class_install_property (object_class, PROP_ID, pspec);
+
+	/**
+	 * PkControl::changed:
+	 * @control: the #PkControl instance that emitted the signal
+	 *
+	 * The ::changed signal is emitted when the control data may have changed.
+	 **/
+	signals [SIGNAL_CHANGED] =
+		g_signal_new ("changed",
+			      G_TYPE_FROM_CLASS (object_class), G_SIGNAL_RUN_LAST,
+			      G_STRUCT_OFFSET (PkControlClass, changed),
+			      NULL, NULL, g_cclosure_marshal_VOID__VOID,
+			      G_TYPE_NONE, 0);
+
+	g_type_class_add_private (klass, sizeof (PkControlPrivate));
+}
+
+/**
+ * pk_control_init:
+ * @control: This class instance
+ **/
+static void
+pk_control_init (PkControl *control)
+{
+	GError *error = NULL;
+	control->priv = PK_CONTROL_GET_PRIVATE (control);
+
+	/* check dbus connections, exit if not valid */
+	control->priv->connection = dbus_g_bus_get (DBUS_BUS_SYSTEM, &error);
+	if (error != NULL) {
+		egg_warning ("%s", error->message);
+		g_error_free (error);
+		g_error ("This program cannot start until you start the dbus system service.");
+	}
+
+	/* get a connection to the engine object */
+	control->priv->proxy = dbus_g_proxy_new_for_name (control->priv->connection,
+							  PK_DBUS_SERVICE, PK_DBUS_PATH, PK_DBUS_INTERFACE);
+	if (control->priv->proxy == NULL)
+		egg_error ("Cannot connect to PackageKit.");
+
+	/* don't timeout, as dbus-glib sets the timeout ~25 seconds */
+	dbus_g_proxy_set_default_timeout (control->priv->proxy, INT_MAX);
+}
+
+/**
+ * pk_control_finalize:
+ * @object: The object to finalize
+ **/
+static void
+pk_control_finalize (GObject *object)
+{
+	PkControl *control = PK_CONTROL (object);
+	PkControlPrivate *priv = control->priv;
+
+	g_object_unref (G_OBJECT (priv->proxy));
+
+	G_OBJECT_CLASS (pk_control_parent_class)->finalize (object);
+}
+
+/**
+ * pk_control_new:
+ *
+ * Return value: a new PkControl object.
+ **/
+PkControl *
+pk_control_new (void)
+{
+	PkControl *control;
+	control = g_object_new (PK_TYPE_CONTROL, NULL);
+	return PK_CONTROL (control);
+}
+
+/***************************************************************************
+ ***                          MAKE CHECK TESTS                           ***
+ ***************************************************************************/
+#ifdef EGG_TEST
+#include "egg-test.h"
+
+static void
+pk_control_test_get_tid_cb (GObject *object, GAsyncResult *result, EggTest *test)
+{
+	PkControl *control = PK_CONTROL (object);
+	GError *error = NULL;
+	const gchar *tid = NULL;
+
+	tid = pk_control_get_tid_finish (control, result, &error);
+	if (tid == NULL) {
+		egg_test_failed (test, "failed to get transaction: %s", error->message);
+		g_error_free (error);
+		return;
+	}
+
+	egg_debug ("tid = %s", tid);
+	egg_test_loop_quit (test);
+}
+
+void
+pk_control_test (EggTest *test)
+{
+	PkControl *control;
+
+	if (!egg_test_start (test, "PkControl"))
+		return;
+
+	/************************************************************/
+	egg_test_title (test, "get control");
+	control = pk_control_new ();
+	egg_test_assert (test, control != NULL);
+
+	/************************************************************/
+	egg_test_title (test, "get TID async");
+	pk_control_get_tid_async (control, NULL, (GAsyncReadyCallback) pk_control_test_get_tid_cb, test);
+	egg_test_loop_wait (test, 5000);
+	egg_test_success (test, "got tid in %i", egg_test_elapsed (test));
+
+	g_object_unref (control);
+out:
+	egg_test_end (test);
+}
+#endif
+
diff --git a/lib/packagekit-glib2/pk-control.h b/lib/packagekit-glib2/pk-control.h
new file mode 100644
index 0000000..908fd4c
--- /dev/null
+++ b/lib/packagekit-glib2/pk-control.h
@@ -0,0 +1,86 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2009 Richard Hughes <richard at hughsie.com>
+ *
+ * Licensed under the GNU General Public License Version 2
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#if !defined (__PACKAGEKIT_H_INSIDE__) && !defined (PK_COMPILATION)
+#error "Only <packagekit.h> can be included directly."
+#endif
+
+/**
+ * SECTION:pk-control
+ * @short_description: An abstract control GObject
+ */
+
+#ifndef __PK_CONTROL_H
+#define __PK_CONTROL_H
+
+#include <glib-object.h>
+
+G_BEGIN_DECLS
+
+#define PK_TYPE_CONTROL		(pk_control_get_type ())
+#define PK_CONTROL(o)		(G_TYPE_CHECK_INSTANCE_CAST ((o), PK_TYPE_CONTROL, PkControl))
+#define PK_CONTROL_CLASS(k)	(G_TYPE_CHECK_CLASS_CAST((k), PK_TYPE_CONTROL, PkControlClass))
+#define PK_IS_CONTROL(o)	(G_TYPE_CHECK_INSTANCE_TYPE ((o), PK_TYPE_CONTROL))
+#define PK_IS_CONTROL_CLASS(k)	(G_TYPE_CHECK_CLASS_TYPE ((k), PK_TYPE_CONTROL))
+#define PK_CONTROL_GET_CLASS(o)	(G_TYPE_INSTANCE_GET_CLASS ((o), PK_TYPE_CONTROL, PkControlClass))
+#define PK_CONTROL_ERROR	(pk_control_error_quark ())
+#define PK_CONTROL_TYPE_ERROR	(pk_control_error_get_type ())
+
+typedef struct _PkControlPrivate	PkControlPrivate;
+typedef struct _PkControl		PkControl;
+typedef struct _PkControlClass		PkControlClass;
+
+struct _PkControl
+{
+	 GObject		 parent;
+	 PkControlPrivate	*priv;
+};
+
+struct _PkControlClass
+{
+	GObjectClass	parent_class;
+
+	/* signals */
+	void		(* changed)			(PkControl	*control);
+	/* padding for future expansion */
+	void (*_pk_reserved1) (void);
+	void (*_pk_reserved2) (void);
+	void (*_pk_reserved3) (void);
+	void (*_pk_reserved4) (void);
+	void (*_pk_reserved5) (void);
+};
+
+GQuark		 pk_control_error_quark			(void);
+GType		 pk_control_get_type		  	(void);
+PkControl	*pk_control_new				(void);
+
+void		 pk_control_get_tid_async		(PkControl		*control,
+							 GCancellable		*cancellable,
+							 GAsyncReadyCallback	 callback,
+							 gpointer		 user_data);
+gchar		*pk_control_get_tid_finish		(PkControl		*control,
+							 GAsyncResult		*result,
+							 GError			**error);
+
+G_END_DECLS
+
+#endif /* __PK_CONTROL_H */
+
diff --git a/lib/packagekit-glib2/pk-enum.c b/lib/packagekit-glib2/pk-enum.c
new file mode 120000
index 0000000..6d8595a
--- /dev/null
+++ b/lib/packagekit-glib2/pk-enum.c
@@ -0,0 +1 @@
+../packagekit-glib/pk-enum.c
\ No newline at end of file
diff --git a/lib/packagekit-glib2/pk-enum.h b/lib/packagekit-glib2/pk-enum.h
new file mode 120000
index 0000000..083e2a5
--- /dev/null
+++ b/lib/packagekit-glib2/pk-enum.h
@@ -0,0 +1 @@
+../packagekit-glib/pk-enum.h
\ No newline at end of file
diff --git a/lib/packagekit-glib2/pk-marshal.list b/lib/packagekit-glib2/pk-marshal.list
new file mode 120000
index 0000000..dc61df6
--- /dev/null
+++ b/lib/packagekit-glib2/pk-marshal.list
@@ -0,0 +1 @@
+../packagekit-glib/pk-marshal.list
\ No newline at end of file
diff --git a/lib/packagekit-glib2/pk-package-sack.c b/lib/packagekit-glib2/pk-package-sack.c
new file mode 100644
index 0000000..da9eb5d
--- /dev/null
+++ b/lib/packagekit-glib2/pk-package-sack.c
@@ -0,0 +1,521 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offsack: 8 -*-
+ *
+ * Copyright (C) 2008 Richard Hughes <richard at hughsie.com>
+ *
+ * Licensed under the GNU General Public License Version 2
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+/**
+ * SECTION:pk-package-sack
+ * @short_description: TODO
+ */
+
+#include "config.h"
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <time.h>
+#include <errno.h>
+
+#include <string.h>
+#include <locale.h>
+#include <sys/time.h>
+#include <sys/types.h>
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif /* HAVE_UNISTD_H */
+
+#include <sys/wait.h>
+#include <fcntl.h>
+
+#include <glib/gi18n.h>
+#include <glib/gprintf.h>
+#include <dbus/dbus-glib.h>
+
+#include <packagekit-glib2/pk-package-sack.h>
+#include <packagekit-glib2/pk-client.h>
+#include <packagekit-glib2/pk-common.h>
+#include <packagekit-glib2/pk-enum.h>
+#include <packagekit-glib2/pk-results.h>
+
+#include "egg-debug.h"
+
+static void     pk_package_sack_finalize	(GObject     *object);
+
+#define PK_PACKAGE_SACK_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), PK_TYPE_PACKAGE_SACK, PkPackageSackPrivate))
+
+/**
+ * PkPackageSackPrivate:
+ *
+ * Private #PkPackageSack data
+ **/
+struct _PkPackageSackPrivate
+{
+	GPtrArray		*array;
+	PkClient		*client;
+};
+
+enum {
+	SIGNAL_CHANGED,
+	SIGNAL_LAST
+};
+
+enum {
+	PROP_0,
+	PROP_ID,
+	PROP_LAST
+};
+
+G_DEFINE_TYPE (PkPackageSack, pk_package_sack, G_TYPE_OBJECT)
+
+/**
+ * pk_package_sack_get_size:
+ * @sack: a valid #PkPackageSack instance
+ *
+ * Gets the number of packages in the sack
+ *
+ * Return value: the number of packages in the sack
+ **/
+guint
+pk_package_sack_get_size (PkPackageSack *sack)
+{
+	g_return_val_if_fail (PK_IS_PACKAGE_SACK (sack), FALSE);
+
+	return sack->priv->array->len;
+}
+
+/**
+ * pk_package_sack_get_index:
+ * @sack: a valid #PkPackageSack instance
+ * @i: the instance to get
+ *
+ * Gets a packages from the sack
+ *
+ * Return value: a %PkPackage instance
+ **/
+PkPackage *
+pk_package_sack_get_index (PkPackageSack *sack, guint i)
+{
+	PkPackage *package = NULL;
+
+	g_return_val_if_fail (PK_IS_PACKAGE_SACK (sack), FALSE);
+
+	/* index invalid */
+	if (i >= sack->priv->array->len)
+		goto out;
+
+	/* get object */
+	package = g_object_ref (g_ptr_array_index (sack->priv->array, i));
+out:
+	return package;
+}
+
+/**
+ * pk_package_sack_add_package:
+ * @sack: a valid #PkPackageSack instance
+ * @package: a valid #PkPackage instance
+ *
+ * Adds a package to the sack.
+ *
+ * Return value: %TRUE if the package was added to the sack
+ **/
+gboolean
+pk_package_sack_add_package (PkPackageSack *sack, PkPackage *package)
+{
+	g_return_val_if_fail (PK_IS_PACKAGE_SACK (sack), FALSE);
+	g_return_val_if_fail (PK_IS_PACKAGE (package), FALSE);
+
+	/* add to array */
+	g_ptr_array_add (sack->priv->array, g_object_ref (package));
+
+	return TRUE;
+}
+
+/**
+ * pk_package_sack_add_package:
+ * @sack: a valid #PkPackageSack instance
+ * @package_id: a package_id descriptor
+ * @error: a %GError to put the error code and message in, or %NULL
+ *
+ * Adds a package reference to the sack.
+ *
+ * Return value: %TRUE if the package was added to the sack
+ **/
+gboolean
+pk_package_sack_add_package_by_id (PkPackageSack *sack, const gchar *package_id, GError **error)
+{
+	PkPackage *package;
+	gboolean ret;
+
+	g_return_val_if_fail (PK_IS_PACKAGE_SACK (sack), FALSE);
+	g_return_val_if_fail (package_id != NULL, FALSE);
+	g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+
+	/* create new object */
+	package = pk_package_new ();
+	ret = pk_package_set_id (package, package_id, error);
+	if (!ret) {
+		g_object_unref (package);
+		goto out;
+	}
+	
+	/* add to array */
+	g_ptr_array_add (sack->priv->array, package);
+out:
+	return ret;
+}
+
+/**
+ * pk_package_sack_remove_package:
+ * @sack: a valid #PkPackageSack instance
+ * @package: a valid #PkPackage instance
+ * @package_id: a package_id descriptor
+ *
+ * Removes a package reference from the sack. The pointers have to match exactly.
+ *
+ * Return value: %TRUE if the package was removed from the sack
+ **/
+gboolean
+pk_package_sack_remove_package (PkPackageSack *sack, PkPackage *package)
+{
+	gboolean ret;
+
+	g_return_val_if_fail (PK_IS_PACKAGE_SACK (sack), FALSE);
+	g_return_val_if_fail (PK_IS_PACKAGE (package), FALSE);
+
+	/* remove from array */
+	ret = g_ptr_array_remove (sack->priv->array, package);
+
+	return ret;
+}
+
+/**
+ * pk_package_sack_remove_package_by_id:
+ * @sack: a valid #PkPackageSack instance
+ * @package_id: a package_id descriptor
+ *
+ * Removes a package reference from the sack. As soon as one package is removed
+ * the search is stopped.
+ *
+ * Return value: %TRUE if the package was removed to the sack
+ **/
+gboolean
+pk_package_sack_remove_package_by_id (PkPackageSack *sack, const gchar *package_id)
+{
+	PkPackage *package;
+	const gchar *id;
+	gboolean ret = FALSE;
+	guint i;
+	guint len;
+
+	g_return_val_if_fail (PK_IS_PACKAGE_SACK (sack), FALSE);
+	g_return_val_if_fail (package_id != NULL, FALSE);
+
+	len = sack->priv->array->len;
+	for (i=0; i<len; i++) {
+		package = g_ptr_array_index (sack->priv->array, i);
+		id = pk_package_get_id (package);
+		if (g_strcmp0 (package_id, id) == 0) {
+			g_ptr_array_remove_index (sack->priv->array, i);
+			ret = TRUE;
+			break;
+		}
+	}
+
+	return ret;
+}
+
+/**
+ * pk_package_sack_get_package_ids:
+ **/
+static gchar **
+pk_package_sack_get_package_ids (PkPackageSack *sack)
+{
+	const gchar *id;
+	gchar **package_ids;
+	guint i;
+	guint len;
+	PkPackage *package;
+
+	/* create array of package_ids */
+	len = sack->priv->array->len;
+	package_ids = g_new0 (gchar *, len+1);
+	for (i=0; i<len; i++) {
+		package = g_ptr_array_index (sack->priv->array, i);
+		id = pk_package_get_id (package);
+		package_ids[i] = g_strdup (id);
+	}
+
+	return package_ids;
+}
+
+typedef struct {
+	PkRoleEnum		 role;
+	gchar			**package_ids;
+	PkPackageSack		*sack;
+} PkPackageSackAction;
+
+/**
+ * pk_client_resolve_cb:
+ **/
+static void
+pk_client_resolve_cb (GObject *object, GAsyncResult *result, PkPackageSackAction *action)
+{
+	PkClient *client = PK_CLIENT (object);
+	GError *error = NULL;
+	PkResults *results;
+
+	results = pk_client_resolve_finish (client, result, &error);
+	if (results == NULL) {
+		egg_warning ("failed to resolve: %s", error->message);
+		g_error_free (error);
+		goto out;
+	}
+
+	egg_warning ("results = %p", results);
+	g_object_unref (results);
+out:
+//	g_free (tid);
+	return;
+}
+
+/**
+ * pk_package_sack_merge_resolve_async:
+ * @sack: a valid #PkPackageSack instance
+ *
+ * Merges in details about packages using resolve.
+ **/
+void
+pk_package_sack_merge_resolve_async (PkPackageSack *sack, GCancellable *cancellable,
+			       PkPackageSackFinishedCb callback, gpointer user_data)
+{
+	PkPackageSackAction *action;
+
+	g_return_if_fail (PK_IS_PACKAGE_SACK (sack));
+	g_return_if_fail (callback != NULL);
+
+	/* create new action */
+	action = g_new0 (PkPackageSackAction, 1);
+//	action->callback = callback;
+//	action->user_data = user_data;
+	action->role = PK_ROLE_ENUM_RESOLVE;
+	action->package_ids = pk_package_sack_get_package_ids (sack);
+	action->sack = sack;
+
+	/* get new tid */
+	pk_client_resolve_async (sack->priv->client, cancellable, (GAsyncReadyCallback) pk_client_resolve_cb, action);
+}
+
+
+/**
+ * pk_package_sack_get_property:
+ **/
+static void
+pk_package_sack_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec)
+{
+//	PkPackageSack *sack = PK_PACKAGE_SACK (object);
+//	PkPackageSackPrivate *priv = sack->priv;
+
+	switch (prop_id) {
+	case PROP_ID:
+//		g_value_sack_string (value, priv->id);
+		break;
+	default:
+		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+		break;
+	}
+}
+
+/**
+ * pk_package_sack_set_property:
+ **/
+static void
+pk_package_sack_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec)
+{
+//	PkPackageSack *sack = PK_PACKAGE_SACK (object);
+//	PkPackageSackPrivate *priv = sack->priv;
+
+	switch (prop_id) {
+	case PROP_ID:
+//		priv->info = g_value_get_uint (value);
+		break;
+	default:
+		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+		break;
+	}
+}
+
+/**
+ * pk_package_sack_class_init:
+ * @klass: The PkPackageSackClass
+ **/
+static void
+pk_package_sack_class_init (PkPackageSackClass *klass)
+{
+	GParamSpec *pspec;
+	GObjectClass *object_class = G_OBJECT_CLASS (klass);
+	object_class->get_property = pk_package_sack_get_property;
+	object_class->set_property = pk_package_sack_set_property;
+	object_class->finalize = pk_package_sack_finalize;
+
+	/**
+	 * PkPackageSack:id:
+	 */
+	pspec = g_param_spec_string ("id", NULL,
+				     "The full package_id, e.g. 'gnome-power-manager;0.1.2;i386;fedora'",
+				     NULL,
+				     G_PARAM_READABLE);
+	g_object_class_install_property (object_class, PROP_ID, pspec);
+
+#if 0
+	/**
+	 * PkPackageSack::changed:
+	 * @sack: the #PkPackageSack instance that emitted the signal
+	 *
+	 * The ::changed signal is emitted when the sack data may have changed.
+	 **/
+	signals [SIGNAL_CHANGED] =
+		g_signal_new ("changed",
+			      G_TYPE_FROM_CLASS (object_class), G_SIGNAL_RUN_LAST,
+			      G_STRUCT_OFFSACK (PkPackageSackClass, changed),
+			      NULL, NULL, g_cclosure_marshal_VOID__VOID,
+			      G_TYPE_NONE, 0);
+#endif
+
+	g_type_class_add_private (klass, sizeof (PkPackageSackPrivate));
+}
+
+/**
+ * pk_package_sack_init:
+ * @sack: This class instance
+ **/
+static void
+pk_package_sack_init (PkPackageSack *sack)
+{
+	PkPackageSackPrivate *priv;
+	sack->priv = PK_PACKAGE_SACK_GET_PRIVATE (sack);
+	priv = sack->priv;
+
+	priv->array = g_ptr_array_new_with_free_func (g_object_unref);
+	priv->client = pk_client_new ();
+}
+
+/**
+ * pk_package_sack_finalize:
+ * @object: The object to finalize
+ **/
+static void
+pk_package_sack_finalize (GObject *object)
+{
+	PkPackageSack *sack = PK_PACKAGE_SACK (object);
+	PkPackageSackPrivate *priv = sack->priv;
+
+//	g_free (priv->id);
+	g_ptr_array_unref (priv->array);
+	g_object_unref (priv->client);
+
+	G_OBJECT_CLASS (pk_package_sack_parent_class)->finalize (object);
+}
+
+/**
+ * pk_package_sack_new:
+ *
+ * Return value: a new PkPackageSack object.
+ **/
+PkPackageSack *
+pk_package_sack_new (void)
+{
+	PkPackageSack *sack;
+	sack = g_object_new (PK_TYPE_PACKAGE_SACK, NULL);
+	return PK_PACKAGE_SACK (sack);
+}
+
+/***************************************************************************
+ ***                          MAKE CHECK TESTS                           ***
+ ***************************************************************************/
+#ifdef EGG_TEST
+#include "egg-test.h"
+
+void
+pk_package_sack_test (EggTest *test)
+{
+	gboolean ret;
+	PkPackageSack *sack;
+	const gchar *id;
+	gchar *text;
+	guint size;
+
+	if (!egg_test_start (test, "PkPackageSack"))
+		return;
+
+	/************************************************************/
+	egg_test_title (test, "get package_sack");
+	sack = pk_package_sack_new ();
+	egg_test_assert (test, sack != NULL);
+
+	/************************************************************/
+	egg_test_title (test, "get size of unused package sack");
+	size = pk_package_sack_get_size (sack);
+	egg_test_assert (test, (size == 0));
+
+	/************************************************************/
+	egg_test_title (test, "remove package not present");
+	ret = pk_package_sack_remove_package_by_id (sack, "moo;moo;moo;moo");
+	egg_test_assert (test, !ret);
+
+	/************************************************************/
+	egg_test_title (test, "add package");
+	ret = pk_package_sack_add_package_by_id (sack, "moo;moo;moo;moo", NULL);
+	egg_test_assert (test, ret);
+
+	/************************************************************/
+	egg_test_title (test, "get size of package sack");
+	size = pk_package_sack_get_size (sack);
+	egg_test_assert (test, (size == 1));
+
+	/************************************************************/
+	egg_test_title (test, "remove package");
+	ret = pk_package_sack_remove_package_by_id (sack, "moo;moo;moo;moo");
+	egg_test_assert (test, ret);
+
+	/************************************************************/
+	egg_test_title (test, "get size of package sack");
+	size = pk_package_sack_get_size (sack);
+	egg_test_assert (test, (size == 0));
+
+	/************************************************************/
+	egg_test_title (test, "remove already removed package");
+	ret = pk_package_sack_remove_package_by_id (sack, "moo;moo;moo;moo");
+	egg_test_assert (test, !ret);
+
+//static void
+//pk_client_test_copy_finished_cb (PkClient *client, PkExitEnum exit, guint runtime, EggTest *test)
+//{
+//	egg_test_loop_quit (test);
+//}
+
+
+	pk_package_sack_merge_resolve_async (sack, NULL, (PkPackageSackFinishedCb) &ret, NULL);
+	egg_test_loop_wait (test, 5000);
+	egg_test_success (test, "resolved in %i", egg_test_elapsed (test));
+
+	g_object_unref (sack);
+out:
+	egg_test_end (test);
+}
+#endif
+
diff --git a/lib/packagekit-glib2/pk-package-sack.h b/lib/packagekit-glib2/pk-package-sack.h
new file mode 100644
index 0000000..fe17ebb
--- /dev/null
+++ b/lib/packagekit-glib2/pk-package-sack.h
@@ -0,0 +1,112 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offsack: 8 -*-
+ *
+ * Copyright (C) 2009 Richard Hughes <richard at hughsie.com>
+ *
+ * Licensed under the GNU General Public License Version 2
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#if !defined (__PACKAGE_SACKKIT_H_INSIDE__) && !defined (PK_COMPILATION)
+#error "Only <packagekit.h> can be included directly."
+#endif
+
+/**
+ * SECTION:pk-package-sack
+ * @short_description: An abstract package sack GObject
+ */
+
+#ifndef __PK_PACKAGE_SACK_H
+#define __PK_PACKAGE_SACK_H
+
+#include <glib-object.h>
+#include <gio/gio.h>
+#include <packagekit-glib2/pk-package.h>
+
+G_BEGIN_DECLS
+
+#define PK_TYPE_PACKAGE_SACK		(pk_package_sack_get_type ())
+#define PK_PACKAGE_SACK(o)		(G_TYPE_CHECK_INSTANCE_CAST ((o), PK_TYPE_PACKAGE_SACK, PkPackageSack))
+#define PK_PACKAGE_SACK_CLASS(k)	(G_TYPE_CHECK_CLASS_CAST((k), PK_TYPE_PACKAGE_SACK, PkPackageSackClass))
+#define PK_IS_PACKAGE_SACK(o)		(G_TYPE_CHECK_INSTANCE_TYPE ((o), PK_TYPE_PACKAGE_SACK))
+#define PK_IS_PACKAGE_SACK_CLASS(k)	(G_TYPE_CHECK_CLASS_TYPE ((k), PK_TYPE_PACKAGE_SACK))
+#define PK_PACKAGE_SACK_GET_CLASS(o)	(G_TYPE_INSTANCE_GET_CLASS ((o), PK_TYPE_PACKAGE_SACK, PkPackageSackClass))
+#define PK_PACKAGE_SACK_ERROR		(pk_package_sack_error_quark ())
+#define PK_PACKAGE_SACK_TYPE_ERROR	(pk_package_sack_error_get_type ())
+
+typedef struct _PkPackageSackPrivate	PkPackageSackPrivate;
+typedef struct _PkPackageSack		PkPackageSack;
+typedef struct _PkPackageSackClass	PkPackageSackClass;
+typedef struct _PkPackageSackResults	PkPackageSackResults;
+
+struct _PkPackageSack
+{
+	 GObject		 parent;
+	 PkPackageSackPrivate	*priv;
+};
+
+struct _PkPackageSackClass
+{
+	GObjectClass	parent_class;
+
+	/* signals */
+	void		(* changed)			(PkPackageSack	*sack);
+	/* padding for future expansion */
+	void (*_pk_reserved1) (void);
+	void (*_pk_reserved2) (void);
+	void (*_pk_reserved3) (void);
+	void (*_pk_reserved4) (void);
+	void (*_pk_reserved5) (void);
+};
+
+GQuark		 pk_package_sack_error_quark		(void);
+GType		 pk_package_sack_get_type		(void);
+PkPackageSack	*pk_package_sack_new			(void);
+
+/* managing the array */
+guint		 pk_package_sack_get_size		(PkPackageSack		*sack);
+PkPackage	*pk_package_sack_get_index		(PkPackageSack		*sack,
+							 guint			 i);
+gboolean	 pk_package_sack_add_package		(PkPackageSack		*sack,
+							 PkPackage		*package);
+gboolean	 pk_package_sack_add_package_by_id	(PkPackageSack		*sack,
+							 const gchar		*package_id,
+							 GError			**error);
+gboolean	 pk_package_sack_remove_package		(PkPackageSack		*sack,
+							 PkPackage		*package);
+gboolean	 pk_package_sack_remove_package_by_id	(PkPackageSack		*sack,
+							 const gchar		*package_id);
+
+/* merging in data to the array */
+typedef void	(*PkPackageSackFinishedCb) 		(PkPackageSack		*sack,
+							 PkPackageSackResults	*results,
+							 gpointer		 user_data);
+void		 pk_package_sack_merge_resolve_async	(PkPackageSack		*sack,
+							 GCancellable		*cancellable,
+							 PkPackageSackFinishedCb callback,
+							 gpointer		 user_data);
+void		 pk_package_sack_merge_details_async		(PkPackageSack		*sack,
+							 GCancellable		*cancellable,
+							 PkPackageSackFinishedCb callback,
+							 gpointer		 user_data);
+void		 pk_package_sack_merge_update_details_async	(PkPackageSack		*sack,
+							 GCancellable		*cancellable,
+							 PkPackageSackFinishedCb callback,
+							 gpointer		 user_data);
+
+G_END_DECLS
+
+#endif /* __PK_PACKAGE_SACK_H */
+
diff --git a/lib/packagekit-glib2/pk-package.c b/lib/packagekit-glib2/pk-package.c
new file mode 100644
index 0000000..cbca493
--- /dev/null
+++ b/lib/packagekit-glib2/pk-package.c
@@ -0,0 +1,431 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2008 Richard Hughes <richard at hughsie.com>
+ *
+ * Licensed under the GNU General Public License Version 2
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+/**
+ * SECTION:pk-package
+ * @short_description: TODO
+ */
+
+#include "config.h"
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <time.h>
+#include <errno.h>
+
+#include <string.h>
+#include <locale.h>
+#include <sys/time.h>
+#include <sys/types.h>
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif /* HAVE_UNISTD_H */
+
+#include <sys/wait.h>
+#include <fcntl.h>
+
+#include <glib/gi18n.h>
+#include <glib/gprintf.h>
+#include <dbus/dbus-glib.h>
+
+#include <packagekit-glib2/pk-package.h>
+#include <packagekit-glib2/pk-common.h>
+#include <packagekit-glib2/pk-enum.h>
+
+#include "egg-debug.h"
+
+static void     pk_package_finalize	(GObject     *object);
+
+#define PK_PACKAGE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), PK_TYPE_PACKAGE, PkPackagePrivate))
+
+/**
+ * PkPackagePrivate:
+ *
+ * Private #PkPackage data
+ **/
+struct _PkPackagePrivate
+{
+	gchar			*id;
+	gchar			*id_name;
+	gchar			*id_version;
+	gchar			*id_arch;
+	gchar			*id_data;
+	gchar			*summary;
+	PkInfoEnum		 info;
+};
+
+enum {
+	SIGNAL_CHANGED,
+	SIGNAL_LAST
+};
+
+enum {
+	PROP_0,
+	PROP_ID,
+	PROP_ID_NAME,
+	PROP_ID_VERSION,
+	PROP_ID_ARCH,
+	PROP_ID_DATA,
+	PROP_SUMMARY,
+	PROP_INFO,
+	PROP_LAST
+};
+
+static guint signals [SIGNAL_LAST] = { 0 };
+
+G_DEFINE_TYPE (PkPackage, pk_package, G_TYPE_OBJECT)
+
+/**
+ * pk_package_set_id:
+ * @package: a valid #PkPackage instance
+ * @id: the valid package_id
+ * @error: a %GError to put the error code and message in, or %NULL
+ *
+ * Sets the package object to have the given ID
+ *
+ * Return value: %TRUE if the package_id was set
+ **/
+gboolean
+pk_package_set_id (PkPackage *package, const gchar *package_id, GError **error)
+{
+	gboolean ret;
+	gchar **sections = NULL;
+	PkPackagePrivate *priv = package->priv;
+
+	g_return_val_if_fail (PK_IS_PACKAGE (package), FALSE);
+	g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+
+	/* check valid UTF8 */
+	ret = g_utf8_validate (package_id, -1, NULL);
+	if (!ret) {
+		if (error != NULL)
+			*error = g_error_new (1, 0, "invalid UTF8!");
+		goto out;
+	}
+
+	/* split by delimeter */
+	sections = g_strsplit (package_id, ";", -1);
+	ret = (g_strv_length (sections) == 4);
+	if (!ret) {
+		if (error != NULL)
+			*error = g_error_new (1, 0, "invalid number of sections");
+		goto out;
+	}
+
+	/* name has to be valid */
+	ret = (sections[0][0] != '\0');
+	if (!ret) {
+		if (error != NULL)
+			*error = g_error_new (1, 0, "name invalid");
+		goto out;
+	}
+
+	/* save */
+	priv->id = g_strdup (package_id);
+	priv->id_name = g_strdup (sections[0]);
+	priv->id_version = g_strdup (sections[1]);
+	priv->id_arch = g_strdup (sections[2]);
+	priv->id_data = g_strdup (sections[3]);
+out:
+	g_strfreev (sections);
+	return ret;
+}
+
+/**
+ * pk_package_get_id:
+ * @package: a valid #PkPackage instance
+ *
+ * Gets the package object ID
+ *
+ * Return value: the ID, or %NULL if unset
+ **/
+const gchar *
+pk_package_get_id (PkPackage *package)
+{
+	g_return_val_if_fail (PK_IS_PACKAGE (package), FALSE);
+	return package->priv->id;
+}
+
+/**
+ * pk_package_get_property:
+ **/
+static void
+pk_package_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec)
+{
+	PkPackage *package = PK_PACKAGE (object);
+	PkPackagePrivate *priv = package->priv;
+
+	switch (prop_id) {
+	case PROP_ID:
+		g_value_set_string (value, priv->id);
+		break;
+	case PROP_ID_NAME:
+		g_value_set_string (value, priv->id_name);
+		break;
+	case PROP_ID_VERSION:
+		g_value_set_string (value, priv->id_version);
+		break;
+	case PROP_ID_ARCH:
+		g_value_set_string (value, priv->id_arch);
+		break;
+	case PROP_ID_DATA:
+		g_value_set_string (value, priv->id_data);
+		break;
+	case PROP_SUMMARY:
+		g_value_set_string (value, priv->summary);
+		break;
+	case PROP_INFO:
+		g_value_set_uint (value, priv->info);
+		break;
+	default:
+		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+		break;
+	}
+}
+
+/**
+ * pk_package_set_property:
+ **/
+static void
+pk_package_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec)
+{
+	PkPackage *package = PK_PACKAGE (object);
+	PkPackagePrivate *priv = package->priv;
+
+	switch (prop_id) {
+	case PROP_SUMMARY:
+		g_free (priv->summary);
+		priv->summary = g_strdup (g_value_get_string (value));
+		break;
+	case PROP_INFO:
+		priv->info = g_value_get_uint (value);
+		break;
+	default:
+		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+		break;
+	}
+}
+
+/**
+ * pk_package_class_init:
+ * @klass: The PkPackageClass
+ **/
+static void
+pk_package_class_init (PkPackageClass *klass)
+{
+	GParamSpec *pspec;
+	GObjectClass *object_class = G_OBJECT_CLASS (klass);
+	object_class->get_property = pk_package_get_property;
+	object_class->set_property = pk_package_set_property;
+	object_class->finalize = pk_package_finalize;
+
+	/**
+	 * PkPackage:id:
+	 */
+	pspec = g_param_spec_string ("id", NULL,
+				     "The full package_id, e.g. 'gnome-power-manager;0.1.2;i386;fedora'",
+				     NULL,
+				     G_PARAM_READABLE);
+	g_object_class_install_property (object_class, PROP_ID, pspec);
+
+	/**
+	 * PkPackage:id-name:
+	 */
+	pspec = g_param_spec_string ("id-name", NULL,
+				     "The package name, e.g. 'gnome-power-manager'",
+				     NULL,
+				     G_PARAM_READABLE);
+	g_object_class_install_property (object_class, PROP_ID_NAME, pspec);
+
+	/**
+	 * PkPackage:id-version:
+	 */
+	pspec = g_param_spec_string ("id-version", NULL,
+				     "The package version, e.g. '0.1.2'",
+				     NULL,
+				     G_PARAM_READABLE);
+	g_object_class_install_property (object_class, PROP_ID_VERSION, pspec);
+
+	/**
+	 * PkPackage:id-arch:
+	 */
+	pspec = g_param_spec_string ("id-arch", NULL,
+				     "The package architecture, e.g. 'i386'",
+				     NULL,
+				     G_PARAM_READABLE);
+	g_object_class_install_property (object_class, PROP_ID_ARCH, pspec);
+
+	/**
+	 * PkPackage:id-data:
+	 */
+	pspec = g_param_spec_string ("id-data", NULL,
+				     "The package data, e.g. 'fedora'",
+				     NULL,
+				     G_PARAM_READABLE);
+	g_object_class_install_property (object_class, PROP_ID_DATA, pspec);
+
+	/**
+	 * PkPackage:summary:
+	 */
+	pspec = g_param_spec_string ("id-summary", NULL,
+				     "The package summary",
+				     NULL,
+				     G_PARAM_READWRITE);
+	g_object_class_install_property (object_class, PROP_SUMMARY, pspec);
+
+	/**
+	 * PkPackage:info:
+	 */
+	pspec = g_param_spec_uint ("info", NULL,
+				   "The PkInfoEnum package type, e.g. PK_INFO_ENUM_NORMAL",
+				   0, G_MAXUINT, 0,
+				   G_PARAM_READWRITE);
+	g_object_class_install_property (object_class, PROP_INFO, pspec);
+
+	/**
+	 * PkPackage::changed:
+	 * @package: the #PkPackage instance that emitted the signal
+	 *
+	 * The ::changed signal is emitted when the package data may have changed.
+	 **/
+	signals [SIGNAL_CHANGED] =
+		g_signal_new ("changed",
+			      G_TYPE_FROM_CLASS (object_class), G_SIGNAL_RUN_LAST,
+			      G_STRUCT_OFFSET (PkPackageClass, changed),
+			      NULL, NULL, g_cclosure_marshal_VOID__VOID,
+			      G_TYPE_NONE, 0);
+
+	g_type_class_add_private (klass, sizeof (PkPackagePrivate));
+}
+
+/**
+ * pk_package_init:
+ * @package: This class instance
+ **/
+static void
+pk_package_init (PkPackage *package)
+{
+	package->priv = PK_PACKAGE_GET_PRIVATE (package);
+}
+
+/**
+ * pk_package_finalize:
+ * @object: The object to finalize
+ **/
+static void
+pk_package_finalize (GObject *object)
+{
+	PkPackage *package = PK_PACKAGE (object);
+	PkPackagePrivate *priv = package->priv;
+
+	g_free (priv->id);
+	g_free (priv->id_name);
+	g_free (priv->id_version);
+	g_free (priv->id_arch);
+	g_free (priv->id_data);
+	g_free (priv->summary);
+
+	G_OBJECT_CLASS (pk_package_parent_class)->finalize (object);
+}
+
+/**
+ * pk_package_new:
+ *
+ * Return value: a new PkPackage object.
+ **/
+PkPackage *
+pk_package_new (void)
+{
+	PkPackage *package;
+	package = g_object_new (PK_TYPE_PACKAGE, NULL);
+	return PK_PACKAGE (package);
+}
+
+/***************************************************************************
+ ***                          MAKE CHECK TESTS                           ***
+ ***************************************************************************/
+#ifdef EGG_TEST
+#include "egg-test.h"
+
+void
+pk_package_test (EggTest *test)
+{
+	gboolean ret;
+	PkPackage *package;
+	const gchar *id;
+	gchar *text;
+
+	if (!egg_test_start (test, "PkPackage"))
+		return;
+
+	/************************************************************/
+	egg_test_title (test, "get package");
+	package = pk_package_new ();
+	egg_test_assert (test, package != NULL);
+
+	/************************************************************/
+	egg_test_title (test, "get id of unset package");
+	id = pk_package_get_id (package);
+	egg_test_assert (test, (id == NULL));
+
+	/************************************************************/
+	egg_test_title (test, "get name of unset package");
+	g_object_get (package, "id-name", &text, NULL);
+	egg_test_assert (test, (text == NULL));
+	g_free (text);
+
+	/************************************************************/
+	egg_test_title (test, "set invalid id");
+	ret = pk_package_set_id (package, "gnome-power-manager", NULL);
+	egg_test_assert (test, !ret);
+
+	/************************************************************/
+	egg_test_title (test, "set invalid id (sections)");
+	ret = pk_package_set_id (package, "gnome-power-manager;0.1.2;i386", NULL);
+	egg_test_assert (test, !ret);
+
+	/************************************************************/
+	egg_test_title (test, "set invalid name");
+	ret = pk_package_set_id (package, ";0.1.2;i386;fedora", NULL);
+	egg_test_assert (test, !ret);
+
+	/************************************************************/
+	egg_test_title (test, "set valid name");
+	ret = pk_package_set_id (package, "gnome-power-manager;0.1.2;i386;fedora", NULL);
+	egg_test_assert (test, ret);
+
+	/************************************************************/
+	egg_test_title (test, "get id of unset package");
+	id = pk_package_get_id (package);
+	egg_test_assert (test, (g_strcmp0 (id, "gnome-power-manager;0.1.2;i386;fedora") == 0));
+
+	/************************************************************/
+	egg_test_title (test, "get name of unset package");
+	g_object_get (package, "id-name", &text, NULL);
+	egg_test_assert (test, (g_strcmp0 (text, "gnome-power-manager") == 0));
+	g_free (text);
+
+	g_object_unref (package);
+out:
+	egg_test_end (test);
+}
+#endif
+
diff --git a/lib/packagekit-glib2/pk-package.h b/lib/packagekit-glib2/pk-package.h
new file mode 100644
index 0000000..c6aae4c
--- /dev/null
+++ b/lib/packagekit-glib2/pk-package.h
@@ -0,0 +1,83 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2009 Richard Hughes <richard at hughsie.com>
+ *
+ * Licensed under the GNU General Public License Version 2
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#if !defined (__PACKAGEKIT_H_INSIDE__) && !defined (PK_COMPILATION)
+#error "Only <packagekit.h> can be included directly."
+#endif
+
+/**
+ * SECTION:pk-package
+ * @short_description: An abstract package GObject
+ */
+
+#ifndef __PK_PACKAGE_H
+#define __PK_PACKAGE_H
+
+#include <glib-object.h>
+
+G_BEGIN_DECLS
+
+#define PK_TYPE_PACKAGE		(pk_package_get_type ())
+#define PK_PACKAGE(o)		(G_TYPE_CHECK_INSTANCE_CAST ((o), PK_TYPE_PACKAGE, PkPackage))
+#define PK_PACKAGE_CLASS(k)	(G_TYPE_CHECK_CLASS_CAST((k), PK_TYPE_PACKAGE, PkPackageClass))
+#define PK_IS_PACKAGE(o)	(G_TYPE_CHECK_INSTANCE_TYPE ((o), PK_TYPE_PACKAGE))
+#define PK_IS_PACKAGE_CLASS(k)	(G_TYPE_CHECK_CLASS_TYPE ((k), PK_TYPE_PACKAGE))
+#define PK_PACKAGE_GET_CLASS(o)	(G_TYPE_INSTANCE_GET_CLASS ((o), PK_TYPE_PACKAGE, PkPackageClass))
+#define PK_PACKAGE_ERROR	(pk_package_error_quark ())
+#define PK_PACKAGE_TYPE_ERROR	(pk_package_error_get_type ())
+
+typedef struct _PkPackagePrivate	PkPackagePrivate;
+typedef struct _PkPackage		PkPackage;
+typedef struct _PkPackageClass		PkPackageClass;
+
+struct _PkPackage
+{
+	 GObject		 parent;
+	 PkPackagePrivate	*priv;
+};
+
+struct _PkPackageClass
+{
+	GObjectClass	parent_class;
+
+	/* signals */
+	void		(* changed)			(PkPackage	*package);
+	/* padding for future expansion */
+	void (*_pk_reserved1) (void);
+	void (*_pk_reserved2) (void);
+	void (*_pk_reserved3) (void);
+	void (*_pk_reserved4) (void);
+	void (*_pk_reserved5) (void);
+};
+
+GQuark		 pk_package_error_quark			(void);
+GType		 pk_package_get_type		  	(void);
+PkPackage	*pk_package_new				(void);
+
+gboolean	 pk_package_set_id			(PkPackage	*package,
+							 const gchar	*package_id,
+							 GError		**error);
+const gchar	*pk_package_get_id			(PkPackage	*package);
+
+G_END_DECLS
+
+#endif /* __PK_PACKAGE_H */
+
diff --git a/lib/packagekit-glib2/pk-results.c b/lib/packagekit-glib2/pk-results.c
new file mode 100644
index 0000000..10fd8ab
--- /dev/null
+++ b/lib/packagekit-glib2/pk-results.c
@@ -0,0 +1,274 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2009 Richard Hughes <richard at hughsie.com>
+ *
+ * Licensed under the GNU General Public License Version 2
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+/**
+ * SECTION:pk-results
+ * @short_description: TODO
+ */
+
+#include "config.h"
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <time.h>
+#include <errno.h>
+
+#include <string.h>
+#include <locale.h>
+#include <sys/time.h>
+#include <sys/types.h>
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif /* HAVE_UNISTD_H */
+
+#include <sys/wait.h>
+#include <fcntl.h>
+
+#include <glib/gi18n.h>
+#include <glib/gprintf.h>
+#include <dbus/dbus-glib.h>
+
+#include <packagekit-glib2/pk-results.h>
+#include <packagekit-glib2/pk-common.h>
+#include <packagekit-glib2/pk-enum.h>
+
+#include "egg-debug.h"
+
+static void     pk_results_finalize	(GObject     *object);
+
+#define PK_RESULTS_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), PK_TYPE_RESULTS, PkResultsPrivate))
+
+/**
+ * PkResultsPrivate:
+ *
+ * Private #PkResults data
+ **/
+struct _PkResultsPrivate
+{
+	PkExitEnum		 exit_enum;
+	GPtrArray		*package_array;
+};
+
+G_DEFINE_TYPE (PkResults, pk_results, G_TYPE_OBJECT)
+
+/**
+ * pk_result_item_package_free:
+ **/
+static void
+pk_result_item_package_free (PkResultItemPackage *item)
+{
+	if (item == NULL)
+		return;
+	g_free (item->package_id);
+	g_free (item->summary);
+	g_free (item);
+}
+
+/**
+ * pk_results_set_exit_code:
+ * @results: a valid #PkResults instance
+ * @exit_enum: the exit code
+ *
+ * Sets the results object to have the given exit code.
+ *
+ * Return value: %TRUE if the value was set
+ **/
+gboolean
+pk_results_set_exit_code (PkResults *results, PkExitEnum exit_enum)
+{
+	g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
+	g_return_val_if_fail (exit_enum != PK_EXIT_ENUM_UNKNOWN, FALSE);
+
+	results->priv->exit_enum = exit_enum;
+
+	return TRUE;
+}
+
+/**
+ * pk_results_add_package:
+ * @results: a valid #PkResults instance
+ * @id: the valid results_id
+ *
+ * Sets the results object to have the given ID
+ *
+ * Return value: %TRUE if the value was set
+ **/
+gboolean
+pk_results_add_package (PkResults *results, PkInfoEnum info_enum, const gchar *package_id, const gchar *summary)
+{
+	PkResultItemPackage *item;
+
+	g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
+	g_return_val_if_fail (info_enum != PK_INFO_ENUM_UNKNOWN, FALSE);
+	g_return_val_if_fail (package_id != NULL, FALSE);
+
+	/* copy and add to array */
+	item = g_new0 (PkResultItemPackage, 1);
+	item->info_enum = info_enum;
+	item->package_id = g_strdup (package_id);
+	item->summary = g_strdup (summary);
+	g_ptr_array_add (results->priv->package_array, item);
+
+	return TRUE;
+}
+
+/**
+ * pk_results_get_exit_code:
+ * @results: a valid #PkResults instance
+ *
+ * Gets the exit enum.
+ *
+ * Return value: The #PkExitEnum or %PK_EXIT_ENUM_UNKNOWN for error or if it was not set
+ **/
+PkExitEnum
+pk_results_get_exit_code (PkResults *results)
+{
+	g_return_val_if_fail (PK_IS_RESULTS (results), PK_EXIT_ENUM_UNKNOWN);
+	return results->priv->exit_enum;
+}
+
+/**
+ * pk_results_get_package_array:
+ * @results: a valid #PkResults instance
+ *
+ * Gets the packages from the transaction.
+ *
+ * Return value: A #GPtrArray array of #PkResultItemPackage's, free with g_ptr_array_unref().
+ **/
+GPtrArray *
+pk_results_get_package_array (PkResults *results)
+{
+	g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
+	return g_ptr_array_ref (results->priv->package_array);
+}
+
+/**
+ * pk_results_class_init:
+ * @klass: The PkResultsClass
+ **/
+static void
+pk_results_class_init (PkResultsClass *klass)
+{
+	GObjectClass *object_class = G_OBJECT_CLASS (klass);
+	object_class->finalize = pk_results_finalize;
+	g_type_class_add_private (klass, sizeof (PkResultsPrivate));
+}
+
+/**
+ * pk_results_init:
+ * @results: This class instance
+ **/
+static void
+pk_results_init (PkResults *results)
+{
+	results->priv = PK_RESULTS_GET_PRIVATE (results);
+	results->priv->exit_enum = PK_EXIT_ENUM_UNKNOWN;
+	results->priv->package_array = g_ptr_array_new_with_free_func ((GDestroyNotify) pk_result_item_package_free);
+}
+
+/**
+ * pk_results_finalize:
+ * @object: The object to finalize
+ **/
+static void
+pk_results_finalize (GObject *object)
+{
+	PkResults *results = PK_RESULTS (object);
+	PkResultsPrivate *priv = results->priv;
+
+	g_ptr_array_unref (priv->package_array);
+
+	G_OBJECT_CLASS (pk_results_parent_class)->finalize (object);
+}
+
+/**
+ * pk_results_new:
+ *
+ * Return value: a new PkResults object.
+ **/
+PkResults *
+pk_results_new (void)
+{
+	PkResults *results;
+	results = g_object_new (PK_TYPE_RESULTS, NULL);
+	return PK_RESULTS (results);
+}
+
+/***************************************************************************
+ ***                          MAKE CHECK TESTS                           ***
+ ***************************************************************************/
+#ifdef EGG_TEST
+#include "egg-test.h"
+
+void
+pk_results_test (EggTest *test)
+{
+	gboolean ret;
+	PkResults *results;
+	PkExitEnum exit_enum;
+	GPtrArray *packages;
+
+	if (!egg_test_start (test, "PkResults"))
+		return;
+
+	/************************************************************/
+	egg_test_title (test, "get results");
+	results = pk_results_new ();
+	egg_test_assert (test, results != NULL);
+
+	/************************************************************/
+	egg_test_title (test, "get exit code of unset results");
+	exit_enum = pk_results_get_exit_code (results);
+	egg_test_assert (test, (exit_enum == PK_EXIT_ENUM_UNKNOWN));
+
+	/************************************************************/
+	egg_test_title (test, "get package list of unset results");
+	packages = pk_results_get_package_array (results);
+	egg_test_assert (test, (packages->len == 0));
+	g_ptr_array_unref (packages);
+
+	/************************************************************/
+	egg_test_title (test, "set valid exit code");
+	ret = pk_results_set_exit_code (results, PK_EXIT_ENUM_CANCELLED);
+	egg_test_assert (test, ret);
+
+	/************************************************************/
+	egg_test_title (test, "get exit code of set results");
+	exit_enum = pk_results_get_exit_code (results);
+	egg_test_assert (test, (exit_enum == PK_EXIT_ENUM_CANCELLED));
+
+	/************************************************************/
+	egg_test_title (test, "add package");
+	ret = pk_results_add_package (results, PK_INFO_ENUM_AVAILABLE, "gnome-power-manager;0.1.2;i386;fedora", "Power manager for GNOME");
+	egg_test_assert (test, ret);
+
+	/************************************************************/
+	egg_test_title (test, "get package list of set results");
+	packages = pk_results_get_package_array (results);
+	egg_test_assert (test, (packages->len == 1));
+	g_ptr_array_unref (packages);
+
+	g_object_unref (results);
+out:
+	egg_test_end (test);
+}
+#endif
+
diff --git a/lib/packagekit-glib2/pk-results.h b/lib/packagekit-glib2/pk-results.h
new file mode 100644
index 0000000..c605ced
--- /dev/null
+++ b/lib/packagekit-glib2/pk-results.h
@@ -0,0 +1,97 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2009 Richard Hughes <richard at hughsie.com>
+ *
+ * Licensed under the GNU General Public License Version 2
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#if !defined (__PACKAGEKIT_H_INSIDE__) && !defined (PK_COMPILATION)
+#error "Only <packagekit.h> can be included directly."
+#endif
+
+/**
+ * SECTION:pk-results
+ * @short_description: An abstract results GObject
+ */
+
+#ifndef __PK_RESULTS_H
+#define __PK_RESULTS_H
+
+#include <glib-object.h>
+#include <packagekit-glib2/pk-enum.h>
+
+G_BEGIN_DECLS
+
+#define PK_TYPE_RESULTS		(pk_results_get_type ())
+#define PK_RESULTS(o)		(G_TYPE_CHECK_INSTANCE_CAST ((o), PK_TYPE_RESULTS, PkResults))
+#define PK_RESULTS_CLASS(k)	(G_TYPE_CHECK_CLASS_CAST((k), PK_TYPE_RESULTS, PkResultsClass))
+#define PK_IS_RESULTS(o)	(G_TYPE_CHECK_INSTANCE_TYPE ((o), PK_TYPE_RESULTS))
+#define PK_IS_RESULTS_CLASS(k)	(G_TYPE_CHECK_CLASS_TYPE ((k), PK_TYPE_RESULTS))
+#define PK_RESULTS_GET_CLASS(o)	(G_TYPE_INSTANCE_GET_CLASS ((o), PK_TYPE_RESULTS, PkResultsClass))
+#define PK_RESULTS_ERROR	(pk_results_error_quark ())
+#define PK_RESULTS_TYPE_ERROR	(pk_results_error_get_type ())
+
+typedef struct _PkResultsPrivate	PkResultsPrivate;
+typedef struct _PkResults		PkResults;
+typedef struct _PkResultsClass		PkResultsClass;
+
+struct _PkResults
+{
+	 GObject		 parent;
+	 PkResultsPrivate	*priv;
+};
+
+struct _PkResultsClass
+{
+	GObjectClass	parent_class;
+	/* padding for future expansion */
+	void (*_pk_reserved1) (void);
+	void (*_pk_reserved2) (void);
+	void (*_pk_reserved3) (void);
+	void (*_pk_reserved4) (void);
+	void (*_pk_reserved5) (void);
+};
+
+GQuark		 pk_results_error_quark			(void);
+GType		 pk_results_get_type		  	(void);
+PkResults	*pk_results_new				(void);
+
+/* set */
+gboolean	 pk_results_set_exit_code		(PkResults	*results,
+							 PkExitEnum	 exit_enum);
+
+/* add */
+gboolean	 pk_results_add_package			(PkResults	*results,
+							 PkInfoEnum	 info_enum,
+							 const gchar	*package_id,
+							 const gchar	*summary);
+
+/* get single data */
+PkExitEnum	 pk_results_get_exit_code		(PkResults	*results);
+
+/* get array data */
+typedef struct {
+	PkInfoEnum	 info_enum;
+	gchar		*package_id;
+	gchar		*summary;	
+} PkResultItemPackage;
+GPtrArray	*pk_results_get_package_array		(PkResults	*results);
+
+G_END_DECLS
+
+#endif /* __PK_RESULTS_H */
+
diff --git a/lib/packagekit-glib2/pk-self-test.c b/lib/packagekit-glib2/pk-self-test.c
new file mode 100644
index 0000000..cd2d9ab
--- /dev/null
+++ b/lib/packagekit-glib2/pk-self-test.c
@@ -0,0 +1,46 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2007-2009 Richard Hughes <richard at hughsie.com>
+ *
+ * Licensed under the GNU General Public License Version 2
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#include "config.h"
+
+#include <glib-object.h>
+#include "egg-test.h"
+#include "egg-debug.h"
+
+int
+main (int argc, char **argv)
+{
+	EggTest *test;
+
+	g_type_init ();
+	test = egg_test_init ();
+	egg_debug_init (TRUE);
+
+	/* tests go here */
+	pk_results_test (test);
+	pk_package_test (test);
+	pk_control_test (test);
+	pk_client_test (test);
+	pk_package_sack_test (test);
+
+	return (egg_test_finish (test));
+}
+
diff --git a/lib/packagekit-glib2/pk-version.h.in b/lib/packagekit-glib2/pk-version.h.in
new file mode 120000
index 0000000..911a3dc
--- /dev/null
+++ b/lib/packagekit-glib2/pk-version.h.in
@@ -0,0 +1 @@
+../packagekit-glib/pk-version.h.in
\ No newline at end of file
commit ef587b96c6629ea00c3d0f367e4bf992b4c4dd71
Author: Daniel Nicoletti <dantti85-pk at yahoo.com.br>
Date:   Wed Aug 26 10:15:58 2009 -0300

    Added DOWNGRADING enum and added it to simulate spec

diff --git a/backends/dummy/pk-backend-dummy.c b/backends/dummy/pk-backend-dummy.c
index 4ea7919..37064ac 100644
--- a/backends/dummy/pk-backend-dummy.c
+++ b/backends/dummy/pk-backend-dummy.c
@@ -1199,7 +1199,7 @@ backend_simulate_install_packages (PkBackend *backend, gchar **package_ids)
 	pk_backend_package (backend, PK_INFO_ENUM_INSTALLED,
 			    "glib2;2.14.0;i386;fedora", "The GLib library");
 
-	pk_backend_package (backend, PK_INFO_ENUM_OBSOLETING,
+	pk_backend_package (backend, PK_INFO_ENUM_DOWNGRADING,
 			    "kernel;2.6.23-0.115.rc3.git1.fc8;i386;installed", "The Linux kernel (the core of the Linux operating system)");
 
 	pk_backend_package (backend, PK_INFO_ENUM_UPDATING,
diff --git a/client/pk-console.c b/client/pk-console.c
index 188a313..b606e79 100644
--- a/client/pk-console.c
+++ b/client/pk-console.c
@@ -342,6 +342,9 @@ pk_console_print_deps_list (PkPackageList *list)
 	/* TRANSLATORS: When processing, we might have to reinstall other dependencies */
 	found += pk_console_print_deps_list_info (list, PK_INFO_ENUM_REINSTALLING, _("The following packages have to be reinstalled:"));
 
+	/* TRANSLATORS: When processing, we might have to downgrade other dependencies */
+	found += pk_console_print_deps_list_info (list, PK_INFO_ENUM_DOWNGRADING, _("The following packages have to be downgraded:"));
+
 	return found;
 }
 
diff --git a/lib/packagekit-glib/pk-client.c b/lib/packagekit-glib/pk-client.c
index 11d0159..d96b18f 100644
--- a/lib/packagekit-glib/pk-client.c
+++ b/lib/packagekit-glib/pk-client.c
@@ -3782,7 +3782,8 @@ out:
  * @files_rel: a file such as "/home/hughsie/Desktop/hal-devel-0.10.0.rpm"
  * @error: a %GError to put the error code and message in, or %NULL
  * Simulate an installation of files.
- * NOTE: This method might emit packages with INSTALLING, REMOVING, UPDATING or REINSTALLING status.
+ * NOTE: This method might emit packages with INSTALLING, REMOVING, UPDATING,
+ *       REINSTALLING or DOWNGRADING status.
  * Return value: %TRUE if the daemon queued the transaction
  **/
 gboolean
@@ -3867,10 +3868,8 @@ pk_client_simulate_install_files (PkClient *client, gchar **files_rel, GError **
  * @package_ids: a null terminated array of package_id structures such as "hal;0.0.1;i386;fedora"
  * @error: a %GError to put the error code and message in, or %NULL
  * Simulate an installation of packages.
- * NOTE: This method might emit packages with INSTALLING, REMOVING, UPDATING or REINSTALLING status
- *       if the backend supports SimulateInstallPackages, otherwise it will silently fallback
- *       to use GetDepends("~installed", packages, recursive=TRUE), which might emit only
- *       AVAILABLE packages.
+ * NOTE: This method might emit packages with INSTALLING, REMOVING, UPDATING,
+ *       REINSTALLING or DOWNGRADING status.
  * Return value: %TRUE if the daemon queued the transaction
  **/
 gboolean
@@ -3943,10 +3942,8 @@ pk_client_simulate_install_packages (PkClient *client, gchar **package_ids, GErr
  * @package_ids: a null terminated array of package_id structures such as "hal;0.0.1;i386;fedora"
  * @error: a %GError to put the error code and message in, or %NULL
  * Simulate a removal of packages.
- * NOTE: This method might emit packages with INSTALLING, REMOVING, UPDATING or REINSTALLING status
- *       if the backend supports SimulateRemovePackages, otherwise it will silently fallback
- *       to use GetRequires("installed", packages, recursive=TRUE), which might emit only
- *       INSTALLED packages.
+ * NOTE: This method might emit packages with INSTALLING, REMOVING, UPDATING,
+ *       REINSTALLING or DOWNGRADING status.
  * Return value: %TRUE if the daemon queued the transaction
  **/
 gboolean
@@ -4019,10 +4016,8 @@ pk_client_simulate_remove_packages (PkClient *client, gchar **package_ids, GErro
  * @package_ids: a null terminated array of package_id structures such as "hal;0.0.1;i386;fedora"
  * @error: a %GError to put the error code and message in, or %NULL
  * Simulate an update of packages.
- * NOTE: This method might emit packages with INSTALLING, REMOVING, UPDATING or REINSTALLING status
- *       if the backend supports SimulateUpdatePackages, otherwise it will silently fallback
- *       to use GetDepends("~installed", packages, recursive=TRUE), which might emit only
- *       AVAILABLE packages.
+ * NOTE: This method might emit packages with INSTALLING, REMOVING, UPDATING,
+ *       REINSTALLING or DOWNGRADING status.
  * Return value: %TRUE if the daemon queued the transaction
  **/
 gboolean
diff --git a/lib/packagekit-glib/pk-enum.c b/lib/packagekit-glib/pk-enum.c
index eb58450..4053bff 100644
--- a/lib/packagekit-glib/pk-enum.c
+++ b/lib/packagekit-glib/pk-enum.c
@@ -323,6 +323,7 @@ static const PkEnumMatch enum_info[] = {
 	{PK_INFO_ENUM_COLLECTION_AVAILABLE,	"collection-available"},
 	{PK_INFO_ENUM_FINISHED,			"finished"},
 	{PK_INFO_ENUM_REINSTALLING,		"reinstalling"},
+	{PK_INFO_ENUM_DOWNGRADING,		"downgrading"},
 	{0, NULL}
 };
 
diff --git a/lib/packagekit-glib/pk-enum.h b/lib/packagekit-glib/pk-enum.h
index ab10470..292111d 100644
--- a/lib/packagekit-glib/pk-enum.h
+++ b/lib/packagekit-glib/pk-enum.h
@@ -395,6 +395,7 @@ typedef enum {
 	PK_INFO_ENUM_COLLECTION_AVAILABLE,
 	PK_INFO_ENUM_FINISHED,
 	PK_INFO_ENUM_REINSTALLING,
+	PK_INFO_ENUM_DOWNGRADING,
 	PK_INFO_ENUM_UNKNOWN
 } PkInfoEnum;
 
diff --git a/src/pk-backend.c b/src/pk-backend.c
index 6b6b9e5..0a95267 100644
--- a/src/pk-backend.c
+++ b/src/pk-backend.c
@@ -822,7 +822,8 @@ pk_backend_package_emulate_finished (PkBackend *backend)
 	    info == PK_INFO_ENUM_REMOVING ||
 	    info == PK_INFO_ENUM_CLEANUP ||
 	    info == PK_INFO_ENUM_OBSOLETING ||
-	    info == PK_INFO_ENUM_REINSTALLING) {
+	    info == PK_INFO_ENUM_REINSTALLING ||
+	    info == PK_INFO_ENUM_DOWNGRADING) {
 		package_id = pk_package_id_to_string (backend->priv->last_package->id);
 		pk_backend_package (backend, PK_INFO_ENUM_FINISHED, package_id, backend->priv->last_package->summary);
 		g_free (package_id);
commit 1f35a8a886f5af14395664108b58cdde3fdb2337
Author: Daniel Nicoletti <dantti85-pk at yahoo.com.br>
Date:   Wed Aug 26 09:44:04 2009 -0300

    Added REINSTALLING to pk_backend_package_emulate_finished()

diff --git a/src/pk-backend.c b/src/pk-backend.c
index 0e6955d..6b6b9e5 100644
--- a/src/pk-backend.c
+++ b/src/pk-backend.c
@@ -821,7 +821,8 @@ pk_backend_package_emulate_finished (PkBackend *backend)
 	    info == PK_INFO_ENUM_INSTALLING ||
 	    info == PK_INFO_ENUM_REMOVING ||
 	    info == PK_INFO_ENUM_CLEANUP ||
-	    info == PK_INFO_ENUM_OBSOLETING) {
+	    info == PK_INFO_ENUM_OBSOLETING ||
+	    info == PK_INFO_ENUM_REINSTALLING) {
 		package_id = pk_package_id_to_string (backend->priv->last_package->id);
 		pk_backend_package (backend, PK_INFO_ENUM_FINISHED, package_id, backend->priv->last_package->summary);
 		g_free (package_id);
commit cf9f0832dd8261452ae85993493ef2a93bea3777
Author: Anders F Bjorklund <afb at users.sourceforge.net>
Date:   Wed Aug 26 14:15:56 2009 +0200

    Add the backend internal API for Simulate

diff --git a/backends/ports/pk-backend-ports.c b/backends/ports/pk-backend-ports.c
index b7967ae..2148efb 100644
--- a/backends/ports/pk-backend-ports.c
+++ b/backends/ports/pk-backend-ports.c
@@ -432,6 +432,10 @@ PK_BACKEND_OPTIONS (
 	backend_search_name,			/* search_name */
 	backend_update_packages,		/* update_packages */
 	backend_update_system,			/* update_system */
-	NULL			/* what_provides */
+	NULL,			/* what_provides */
+	NULL,					/* simulate_install_files */
+	NULL,					/* simulate_install_packages */
+	NULL,					/* simulate_remove_packages */
+	NULL					/* simulate_update_packages */
 );
 
commit df81c97ca44da57377f3f766bd0a57cc229d099c
Author: Anders F Bjorklund <afb at users.sourceforge.net>
Date:   Wed Aug 26 12:37:43 2009 +0200

    trivial: not using helper suffix

diff --git a/backends/ports/portsBackend.rb b/backends/ports/portsBackend.rb
index 26095a2..273c067 100755
--- a/backends/ports/portsBackend.rb
+++ b/backends/ports/portsBackend.rb
@@ -557,7 +557,7 @@ end
 PORTUPGRADE="#{PREFIX}/sbin/portupgrade"
 
 # use a non-interactive (default) dialog program
-DIALOG="#{PROGRAM_DIR}/helpers/default-dialog.rb"
+DIALOG="#{PROGRAM_DIR}/helpers/default-dialog"
 
 USE_PKG = true # use packages
 BIN_PKG = true # build packages
commit f35b8c61f32a9d865a61592a2f559b9fbde4660e
Author: Anders F Bjorklund <afb at users.sourceforge.net>
Date:   Wed Aug 26 12:33:30 2009 +0200

    Update feature matrix for ports.

diff --git a/docs/html/pk-matrix.html b/docs/html/pk-matrix.html
index a7b3cb9..dbc8d03 100644
--- a/docs/html/pk-matrix.html
+++ b/docs/html/pk-matrix.html
@@ -64,7 +64,7 @@
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- pisi -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- poldek -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- portage -->
-<td><img src="img/status-bad.png" alt="[no]"/></td><!-- ports -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- ports -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- smart -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- urpmi -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- yum -->
@@ -234,7 +234,7 @@
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pisi -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- poldek -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- portage -->
-<td><img src="img/status-bad.png" alt="[no]"/></td><!-- ports -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- ports -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- smart -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- urpmi -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- yum -->
commit b9664d1a3ea918a7cc98b7941c569375188d9ae8
Author: Anders F Bjorklund <afb at users.sourceforge.net>
Date:   Wed Aug 26 12:31:13 2009 +0200

    ports: implement download-packages and install-files

diff --git a/backends/ports/pk-backend-ports.c b/backends/ports/pk-backend-ports.c
index 6cf1a79..b7967ae 100644
--- a/backends/ports/pk-backend-ports.c
+++ b/backends/ports/pk-backend-ports.c
@@ -106,6 +106,16 @@ backend_get_filters (PkBackend *backend)
 }
 
 /**
+ * pk_backend_get_mime_types:
+ */
+static gchar *
+backend_get_mime_types (PkBackend *backend)
+{
+	return g_strdup ("application/x-compressed-tar;"	/* .tgz */
+	                 "application/x-bzip-compressed-tar"	/* .tbz */);
+}
+
+/**
  * backend_cancel:
  */
 static void
@@ -116,6 +126,20 @@ backend_cancel (PkBackend *backend)
 }
 
 /**
+ * backend_download_packages:
+ */
+static void
+backend_download_packages (PkBackend *backend, gchar **package_ids, const gchar *directory)
+{
+	gchar *package_ids_temp;
+
+	/* send the complete list as stdin */
+	package_ids_temp = pk_package_ids_to_text (package_ids);
+	pk_backend_spawn_helper (spawn, BACKEND_FILE, "download-packages", directory, package_ids_temp, NULL);
+	g_free (package_ids_temp);
+}
+
+/**
  * backend_get_depends:
  */
 static void
@@ -198,6 +222,20 @@ backend_install_packages (PkBackend *backend, gboolean only_trusted, gchar **pac
 }
 
 /**
+ * backend_install_files:
+ */
+static void
+backend_install_files (PkBackend *backend, gboolean only_trusted, gchar **full_paths)
+{
+	gchar *full_paths_temp;
+
+	/* send the complete list as stdin */
+	full_paths_temp = g_strjoinv (PK_BACKEND_SPAWN_FILENAME_DELIM, full_paths);
+	pk_backend_spawn_helper (spawn, BACKEND_FILE, "install-files", pk_backend_bool_to_text (only_trusted), full_paths_temp, NULL);
+	g_free (full_paths_temp);
+}
+
+/**
  * backend_refresh_cache:
  */
 static void
@@ -366,9 +404,9 @@ PK_BACKEND_OPTIONS (
 	backend_destroy,			/* destroy */
 	backend_get_groups,			/* get_groups */
 	backend_get_filters,			/* get_filters */
-	NULL,			/* get_mime_types */
+	backend_get_mime_types,			/* get_mime_types */
 	backend_cancel,				/* cancel */
-	NULL,		/* download_packages */
+	backend_download_packages,		/* download_packages */
 	NULL,					/* get_categories */
 	backend_get_depends,			/* get_depends */
 	backend_get_details,			/* get_details */
@@ -379,7 +417,7 @@ PK_BACKEND_OPTIONS (
 	backend_get_requires,			/* get_requires */
 	backend_get_update_detail,		/* get_update_detail */
 	backend_get_updates,			/* get_updates */
-	NULL,			/* install_files */
+	backend_install_files,			/* install_files */
 	backend_install_packages,		/* install_packages */
 	NULL,			/* install_signature */
 	backend_refresh_cache,			/* refresh_cache */
diff --git a/backends/ports/portsBackend.rb b/backends/ports/portsBackend.rb
index 0ec6046..26095a2 100755
--- a/backends/ports/portsBackend.rb
+++ b/backends/ports/portsBackend.rb
@@ -616,11 +616,7 @@ def update_system(only_trusted)
     end
 end
 
-def install_packages(only_trusted, package_ids)
-    if only_trusted
-        error(ERROR_MISSING_GPG_SIGNATURE, "Trusted packages not available.")
-        return
-    end
+def download_packages(directory, package_ids)
     pkgnames = []
     package_ids.each do |package|
       name, version, arch, data = package.split(';')
@@ -629,13 +625,103 @@ def install_packages(only_trusted, package_ids)
         next
       end
       pkgname = "#{name}-#{version}"
-      pkg = PkgInfo.new(pkgname)
-      if pkg.installed?
-        error(ERROR_PACKAGE_ALREADY_INSTALLED, "The package #{pkgname} is already installed")
-      else
-        pkgnames << pkgname
-      end
+      pkgnames << pkgname
+    end
+
+    args = [ '-f' ] # download even if installed
+    args.concat pkgnames
+    packages = ENV['PACKAGES']
+    pkgname = nil
+    status(STATUS_DEP_RESOLVE)
+    ENV['PACKAGES'] = directory
+    stdin, stdout, stderr = Open3.popen3(PkgDB::command(:pkg_fetch), *args)
+    stdout.each_line do |line|
+        if line.match(/^\-\-\-\>/)
+            if line.match(/Fetching (.*)\-(.*)/)
+                status(STATUS_DOWNLOAD)
+                _resolve(FILTER_NONE, $1)
+                pkgname = "#{$1}-#{$2}"
+            elsif line.match(/Saved as (.*)/)
+                next unless pkgname
+                pkg = PkgInfo.new(pkgname)
+                file_list = $1
+                data = pkg.installed? ? "installed" : "ports"
+                package_id = sprintf "%s;%s;%s;%s", pkg.name, pkg.version, $pkg_arch, data
+                files(package_id, file_list)
+                pkgname = nil
+            end
+            message(MESSAGE_UNKNOWN, line.chomp)
+        end
+    end
+    stderr.each_line do |line|
+        if line.match(/\*\* Failed to fetch (.*)\-(.*)/)
+          pkgname = "#{$1}-#{$2}"
+          next unless pkgnames.include?(pkgname)
+          message(ERROR_PACKAGE_DOWNLOAD_FAILED, "Failed to fetch #{pkgname}")
+        else
+          message(MESSAGE_BACKEND_ERROR, line.chomp)
+        end
+    end
+    ENV['PACKAGES'] = packages
+end
+
+def install_files(only_trusted, inst_files)
+    if only_trusted
+        error(ERROR_MISSING_GPG_SIGNATURE, "Trusted packages not available.")
+        return
     end
+    pkg_path = ENV['PKG_PATH']
+    path = []
+    pkgnames = []
+    inst_files.each do |file|
+        begin
+            pkg = PkgFileInfo.new(file)
+            pkgname = pkg.fullname
+            if pkg.installed?
+              error(ERROR_PACKAGE_ALREADY_INSTALLED, "The package #{pkgname} is already installed")
+            elsif $portsdb.glob(pkgname).empty?
+              # portinstall is a little picky about installing packages for mismatched ports
+              error(ERROR_PACKAGE_NOT_FOUND, "Port for #{pkgname} was not found", exit=true)
+            else
+              pkgnames << pkgname
+            end
+        rescue ArgumentError
+            error(ERROR_INVALID_PACKAGE_FILE, "File #{file} is not a package")
+            next
+        end
+        path << File.dirname(file)
+    end
+    path << $packages_dir # add default dir for depends
+    ENV['PKG_PATH'] = path.join(':')
+    _install(pkgnames)
+    ENV['PKG_PATH'] = pkg_path
+end
+
+def install_packages(only_trusted, package_ids)
+    if only_trusted
+        error(ERROR_MISSING_GPG_SIGNATURE, "Trusted packages not available.")
+        return
+    end
+    pkgnames = []
+    package_ids.each do |package|
+        name, version, arch, data = package.split(';')
+        if $portsdb.glob(name)
+            pkgname = "#{name}-#{version}"
+            pkg = PkgInfo.new(pkgname)
+            if pkg.installed?
+              error(ERROR_PACKAGE_ALREADY_INSTALLED, "The package #{pkgname} is already installed")
+            else
+              pkgnames << pkg.fullname
+            end
+        else
+            error(ERROR_PACKAGE_NOT_FOUND, "Package #{name} was not found", exit=false)
+            next
+        end
+    end
+    _install(pkgnames)
+end
+
+def _install(pkgnames)
     return if pkgnames.empty?
     args = ['-M', 'DIALOG='+DIALOG]
     args << '-P' if USE_PKG
@@ -669,9 +755,7 @@ def install_packages(only_trusted, package_ids)
           message(MESSAGE_BACKEND_ERROR, line.chomp)
         end
     end
-    package_ids.each do |package|
-      name, version, arch, data = package.split(';')
-      pkgname = "#{name}-#{version}"
+    pkgnames.each do |pkgname|
       _resolve(FILTER_INSTALLED, pkgname)
     end
 end
@@ -802,6 +886,11 @@ end
 
 def dispatch_command(cmd, args)
     case
+    when cmd == 'download-packages'
+        directory = args[0]
+        package_ids = args[1].split(PACKAGE_IDS_DELIM)
+        download_packages(directory, package_ids)
+        finished()
     when cmd == 'get-packages'
         filters = args[0]
         get_packages(filters)
@@ -863,6 +952,11 @@ def dispatch_command(cmd, args)
         filters = args[0]
         get_updates(filters)
         finished()
+    when cmd == 'install-files'
+        only_trusted = to_b(args[0])
+        files_to_inst = args[1].split(FILENAME_DELIM)
+        install_files(only_trusted, files_to_inst)
+        finished()
     when cmd == 'install-packages'
         only_trusted = to_b(args[0])
         package_ids = args[1].split(PACKAGE_IDS_DELIM)
commit 8aabb63ac2a0b47fa881bd372ef0d8d6a0001c95
Author: Anders F Bjorklund <afb at users.sourceforge.net>
Date:   Wed Aug 26 12:28:04 2009 +0200

    ports: need to use right error code for unsupported only_trusted

diff --git a/backends/ports/portsBackend.rb b/backends/ports/portsBackend.rb
index 04147dc..0ec6046 100755
--- a/backends/ports/portsBackend.rb
+++ b/backends/ports/portsBackend.rb
@@ -579,7 +579,7 @@ BIN_PKG = true # build packages
 
 def update_system(only_trusted)
     if only_trusted
-        error(ERROR_NOT_SUPPORTED, "Trusted packages not available.")
+        error(ERROR_MISSING_GPG_SIGNATURE, "Trusted packages not available.")
         return
     end
     args = ['-M', 'DIALOG='+DIALOG]
@@ -618,7 +618,7 @@ end
 
 def install_packages(only_trusted, package_ids)
     if only_trusted
-        error(ERROR_NOT_SUPPORTED, "Trusted packages not available.")
+        error(ERROR_MISSING_GPG_SIGNATURE, "Trusted packages not available.")
         return
     end
     pkgnames = []
commit 7d07be376695be65d9e5daa8258da623d026bb3f
Author: Valeriy Lyasotskiy <onestep at ukr.net>
Date:   Tue Aug 25 19:41:17 2009 +0300

    alpm: fix GetDepends by removing obsolete code; set correct error when package_id was not correct

diff --git a/backends/alpm/pk-backend-alpm.c b/backends/alpm/pk-backend-alpm.c
index e466546..2c6dbdc 100644
--- a/backends/alpm/pk-backend-alpm.c
+++ b/backends/alpm/pk-backend-alpm.c
@@ -821,7 +821,7 @@ backend_get_depends (PkBackend *backend, PkBitfield filters, gchar **package_ids
 
 		pmpkg_t *pkg = pkg_from_package_id_str (package_ids[iterator]);
 		if (pkg == NULL) {
-			pk_backend_error_code (backend, PK_ERROR_ENUM_REPO_NOT_FOUND, alpm_strerrorlast ());
+			pk_backend_error_code (backend, PK_ERROR_ENUM_PACKAGE_ID_INVALID, alpm_strerrorlast ());
 			pk_backend_finished (backend);
 			return;
 		}
@@ -857,12 +857,6 @@ backend_get_depends (PkBackend *backend, PkBitfield filters, gchar **package_ids
 					emit_package (backend, dep_pkg, ALPM_LOCAL_DB_ALIAS, PK_INFO_ENUM_INSTALLED);
 				}
 			}
-
-			if (found == FALSE) {
-				pk_backend_error_code (backend, PK_ERROR_ENUM_REPO_NOT_FOUND, alpm_strerrorlast ());
-				pk_backend_finished (backend);
-				return;
-			}
 		}
 	}
 
commit b743c75f9ab7c27b739041bbce48c413a5736fb8
Author: Valeriy Lyasotskiy <onestep at ukr.net>
Date:   Tue Aug 25 19:35:23 2009 +0300

    alpm: migrate to pacman 3.3 branch

diff --git a/backends/alpm/pk-backend-alpm.c b/backends/alpm/pk-backend-alpm.c
index 9e4ce35..e466546 100644
--- a/backends/alpm/pk-backend-alpm.c
+++ b/backends/alpm/pk-backend-alpm.c
@@ -54,6 +54,8 @@ PkBackend *backend_instance = NULL;
 GHashTable *group_map;
 
 alpm_list_t *syncfirst = NULL;
+alpm_list_t *holdpkg = NULL;
+
 alpm_list_t *downloaded_files = NULL;
 gchar *current_file = NULL;
 
@@ -267,7 +269,7 @@ cb_dl_progress (const char *filename, off_t file_xfered, off_t file_total)
 				pmdb_t *db = alpm_list_getdata (repos);
 
 				/* iterate pkgs */
-				for (packages = alpm_db_getpkgcache (db); current_pkg == NULL && packages; packages = alpm_list_next (packages)) {
+				for (packages = alpm_db_get_pkgcache (db); current_pkg == NULL && packages; packages = alpm_list_next (packages)) {
 					pmpkg_t *pkg = alpm_list_getdata (packages);
 
 					/* compare package information with file name */
@@ -419,11 +421,21 @@ set_repeating_option(const char *ptr, const char *option, void (*optionfunc) (co
  * @param name name of the package to be added
  */
 static void
-option_add_syncfirst(const char *name) {
+option_add_syncfirst (const char *name) {
 	syncfirst = alpm_list_add (syncfirst, strdup (name));
 }
 
 /**
+ * option_add_holdpkg:
+ * Add package name to HoldPkg list
+ * @param name name of the package to be added
+ */
+static void
+option_add_holdpkg (const char *name) {
+	holdpkg = alpm_list_add (holdpkg, strdup (name));
+}
+
+/**
  * parse_config:
  * Parse config file and set all the needed options
  * Based heavily on the pacman source code
@@ -538,7 +550,7 @@ parse_config (const char *file, const char *givensection, pmdb_t * const givendb
 					} else if (g_strcmp0 (key, "IgnoreGroup") == 0) {
 						set_repeating_option (ptr, "IgnoreGroup", alpm_option_add_ignoregrp);
 					} else if (g_strcmp0 (key, "HoldPkg") == 0) {
-						set_repeating_option (ptr, "HoldPkg", alpm_option_add_holdpkg);
+						set_repeating_option (ptr, "HoldPkg", option_add_holdpkg);
 					} else if (g_strcmp0 (key, "SyncFirst") == 0) {
 						set_repeating_option (ptr, "SyncFirst", option_add_syncfirst);
 					} else if (g_strcmp0 (key, "DBPath") == 0) {
@@ -555,9 +567,6 @@ parse_config (const char *file, const char *givensection, pmdb_t * const givendb
 					} else if (g_strcmp0 (key, "LogFile") == 0) {
 						alpm_option_set_logfile (ptr);
 						egg_debug ("config: logfile: %s", ptr);
-					} else if (g_strcmp0 (key, "XferCommand") == 0) {
-						alpm_option_set_xfercommand (ptr);
-						egg_debug ("config: xfercommand: %s", ptr);
 					} else {
 						egg_error ("config file %s, line %d: directive '%s' not recognized.", file, linenum, key);
 						return 1;
@@ -977,7 +986,7 @@ backend_search (PkBackend *backend, pmdb_t *repo, const gchar *needle, PkAlpmSea
 	}
 
 	/* get package cache for specified repo */
-	pkg_cache = alpm_db_getpkgcache (repo);
+	pkg_cache = alpm_db_get_pkgcache (repo);
 
 	/* iterate package cache */
 	for (iterator = pkg_cache; iterator; iterator = alpm_list_next (iterator)) {
@@ -1132,7 +1141,7 @@ backend_get_updates (PkBackend *backend, PkBitfield filters)
 	pk_backend_set_allow_cancel (backend, FALSE);
 
 	/* iterate through list of installed packages to find update for each */
-	for (list_iterator = alpm_db_getpkgcache (alpm_option_get_localdb ()); list_iterator; list_iterator = alpm_list_next (list_iterator)) {
+	for (list_iterator = alpm_db_get_pkgcache (alpm_option_get_localdb ()); list_iterator; list_iterator = alpm_list_next (list_iterator)) {
 		alpm_list_t *db_iterator;
 
 		pmpkg_t *pkg = alpm_list_getdata (list_iterator);
@@ -1519,7 +1528,7 @@ backend_update_system_thread (PkBackend *backend)
 	}
 
 	/* set action, prepare and commit transaction */
-	if (alpm_trans_sysupgrade () != 0 || alpm_trans_prepare (&data) != 0 || alpm_trans_commit (&data) != 0) {
+	if (alpm_trans_sysupgrade (FALSE) != 0 || alpm_trans_prepare (&data) != 0 || alpm_trans_commit (&data) != 0) {
 		pk_backend_error_code (backend, PK_ERROR_ENUM_TRANSACTION_ERROR, alpm_strerrorlast ());
 		alpm_trans_release ();
 		pk_backend_finished (backend);
commit 061d68fda3a5ef957cbc9bd33c49d9dc9a7bd4ce
Merge: 440dc5b... d424569...
Author: Valeriy Lyasotskiy <onestep at ukr.net>
Date:   Tue Aug 25 19:32:59 2009 +0300

    Merge branch 'master' of git+ssh://onestep_ua@git.packagekit.org/srv/git/PackageKit

commit 440dc5b1ba982efcc69eb73c83eec84ff6893216
Author: Valeriy Lyasotskiy <onestep at ukr.net>
Date:   Tue Aug 25 19:32:40 2009 +0300

    alpm: code cleanup in cb_trans_evt; honor dependencies when installing package

diff --git a/backends/alpm/pk-backend-alpm.c b/backends/alpm/pk-backend-alpm.c
index 14d1c3d..9e4ce35 100644
--- a/backends/alpm/pk-backend-alpm.c
+++ b/backends/alpm/pk-backend-alpm.c
@@ -156,14 +156,23 @@ pkg_equals_to (pmpkg_t *pkg, const gchar *name, const gchar *version)
 */
 
 static void
+emit_package (PkBackend *backend, pmpkg_t *pkg, const gchar *repo, PkInfoEnum info)
+{
+	gchar *package_id_str;
+
+	egg_debug ("alpm: emitting package with name %s", alpm_pkg_get_name (pkg));
+
+	package_id_str = pkg_to_package_id_str (pkg, repo);
+	pk_backend_package (backend, info, package_id_str, alpm_pkg_get_desc (pkg));
+	g_free (package_id_str);
+}
+
+static void
 cb_trans_evt (pmtransevt_t event, void *data1, void *data2)
 {
-	/* TODO: Add more code here */
 	gchar **package_ids;
-	gchar *package_id_needle;
-	gchar *package_id_str;
-	GString *package_id_builder;
 
+	/* TODO: Add more code here */
 	switch (event) {
 		case PM_TRANS_EVT_REMOVE_START:
 			pk_backend_set_allow_cancel (backend_instance, FALSE);
@@ -171,9 +180,7 @@ cb_trans_evt (pmtransevt_t event, void *data1, void *data2)
 			/* reset transaction subprogress */
 			trans_subprogress = -1;
 
-			package_id_str = pkg_to_package_id_str (data1, ALPM_LOCAL_DB_ALIAS);
-			pk_backend_package (backend_instance, PK_INFO_ENUM_REMOVING, package_id_str, alpm_pkg_get_desc (data1));
-			g_free (package_id_str);
+			emit_package (backend_instance, data1, ALPM_LOCAL_DB_ALIAS, PK_INFO_ENUM_REMOVING);
 			break;
 		case PM_TRANS_EVT_ADD_START:
 			pk_backend_set_allow_cancel (backend_instance, FALSE);
@@ -182,28 +189,26 @@ cb_trans_evt (pmtransevt_t event, void *data1, void *data2)
 			trans_subprogress = -1;
 
 			pk_backend_set_status (backend_instance, PK_STATUS_ENUM_INSTALL);
-			package_id_needle = pkg_to_package_id_str (data1, "");
-			egg_debug ("needle is %s", package_id_needle);
-			package_ids = pk_backend_get_strv (backend_instance, "package_ids");
 
+			package_ids = pk_backend_get_strv (backend_instance, "package_ids");
 			if (package_ids != NULL) {
-				/* search for this package in package_ids */
 				unsigned int iterator;
+
+				/* search for package in package_ids */
+				gchar *package_id_needle = pkg_to_package_id_str (data1, "");
+
+				egg_debug ("needle is %s", package_id_needle);
 				for (iterator = 0; iterator < g_strv_length (package_ids); ++iterator)
 					if (strstr (package_ids[iterator], package_id_needle) != NULL) {
 						pk_backend_package (backend_instance, PK_INFO_ENUM_INSTALLING, package_ids[iterator], alpm_pkg_get_desc (data1));
 						break;
 					}
-			} else {
+
+				g_free (package_id_needle);
+			} else
 				/* we are installing a local file */
-				package_id_builder = g_string_new (package_id_needle);
-				g_string_append (package_id_builder, "local");
-				package_id_str = g_string_free (package_id_builder, FALSE);
-				pk_backend_package (backend_instance, PK_INFO_ENUM_INSTALLING, package_id_str, alpm_pkg_get_desc (data1));
-				g_free (package_id_str);
-			}
+				emit_package (backend_instance, data1, "local", PK_INFO_ENUM_INSTALLING);
 
-			g_free (package_id_needle);
 			break;
 		case PM_TRANS_EVT_UPGRADE_START:
 			pk_backend_set_allow_cancel (backend_instance, FALSE);
@@ -211,9 +216,7 @@ cb_trans_evt (pmtransevt_t event, void *data1, void *data2)
 			/* reset transaction subprogress */
 			trans_subprogress = -1;
 
-			package_id_str = pkg_to_package_id_str (data1, "local");
-			pk_backend_package (backend_instance, PK_INFO_ENUM_UPDATING, package_id_str, alpm_pkg_get_desc (data1));
-			g_free (package_id_str);
+			emit_package (backend_instance, data1, ALPM_LOCAL_DB_ALIAS, PK_INFO_ENUM_UPDATING);
 			break;
 		default: egg_debug ("alpm: event %i happened", event);
 	}
@@ -279,12 +282,8 @@ cb_dl_progress (const char *filename, off_t file_xfered, off_t file_total)
 				}
 			}
 
-			/* emit package */
-			if (current_pkg != NULL) {
-				gchar *package_id = pkg_to_package_id_str (current_pkg, repo_name);
-				pk_backend_package (backend_instance, PK_INFO_ENUM_DOWNLOADING, package_id, alpm_pkg_get_desc (current_pkg));
-				g_free (package_id);
-			}
+			if (current_pkg != NULL)
+				emit_package (backend_instance, current_pkg, repo_name, PK_INFO_ENUM_DOWNLOADING);
 		}
 	}
 
@@ -308,18 +307,6 @@ cb_dl_total (off_t total)
 		trans_xfered = 0;
 }
 
-static void
-emit_package (PkBackend *backend, pmpkg_t *pkg, const gchar *repo, PkInfoEnum info)
-{
-	gchar *package_id_str;
-
-	egg_debug ("alpm: emitting package with name %s", alpm_pkg_get_name (pkg));
-
-	package_id_str = pkg_to_package_id_str (pkg, repo);
-	pk_backend_package (backend, info, package_id_str, alpm_pkg_get_desc (pkg));
-	g_free (package_id_str);
-}
-
 /**
  * strtrim:
  * Trim whitespaces and newlines from a string
@@ -1235,7 +1222,7 @@ backend_install_packages_thread (PkBackend *backend)
 	gchar **package_ids = pk_backend_get_strv (backend, "package_ids");
 
 	/* create a new transaction */
-	if (alpm_trans_init (PM_TRANS_TYPE_SYNC, PM_TRANS_FLAG_NODEPS, cb_trans_evt, cb_trans_conv, cb_trans_progress) != 0) {
+	if (alpm_trans_init (PM_TRANS_TYPE_SYNC, 0, cb_trans_evt, cb_trans_conv, cb_trans_progress) != 0) {
 		pk_backend_error_code (backend, PK_ERROR_ENUM_TRANSACTION_ERROR, alpm_strerrorlast ());
 		pk_backend_finished (backend);
 		return FALSE;
commit d4245695ef02dae46aa4d3f510b93a86a3921cf1
Merge: b83e9fb... 81a90e7...
Author: Daniel Nicoletti <dantti85-pk at yahoo.com.br>
Date:   Tue Aug 25 13:22:43 2009 -0300

    Merge branch 'master' of git+ssh://dantti@git.packagekit.org/srv/git/PackageKit

commit b83e9fb64a47b293e0e3ebac9625061675bcf12f
Author: Daniel Nicoletti <dantti85-pk at yahoo.com.br>
Date:   Tue Aug 25 13:21:58 2009 -0300

    Added packagekit-qt docs to be generated and uploaded.

diff --git a/docs/html/upload.sh b/docs/html/upload.sh
index 0ada09a..9b92984 100755
--- a/docs/html/upload.sh
+++ b/docs/html/upload.sh
@@ -28,4 +28,6 @@ docbook2html ../../../gnome-packagekit/docs/dbus/org.freedesktop.PackageKit.ref.
 mv r1.html api-reference-session.html
 scp api-reference-session.html $USER@$SERVER:/$LOCATION/gtk-doc/
 rm api-reference-session.html
+doxygen ../../lib/packagekit-qt/Doxyfile
+scp ../packagekit-qt/html/* $USER@$SERVER:/$LOCATION/qt-doc/
 
diff --git a/lib/packagekit-qt/Doxyfile b/lib/packagekit-qt/Doxyfile
index f6c395f..388a083 100644
--- a/lib/packagekit-qt/Doxyfile
+++ b/lib/packagekit-qt/Doxyfile
@@ -38,7 +38,7 @@ PROJECT_NUMBER         = 2.0
 # If a relative path is entered, it will be relative to the location 
 # where doxygen was started. If left blank the current directory will be used.
 
-OUTPUT_DIRECTORY       = doc
+OUTPUT_DIRECTORY       = ../../docs/packagekit-qt
 
 # If the CREATE_SUBDIRS tag is set to YES, then doxygen will create 
 # 4096 sub-directories (in 2 levels) under the output directory of each output 
@@ -462,7 +462,7 @@ WARN_LOGFILE           =
 # directories like "/usr/src/myproject". Separate the files or directories 
 # with spaces.
 
-INPUT                  =  src
+INPUT                  =  ../../lib/packagekit-qt/src
 # This tag can be used to specify the character encoding of the source files that 
 # doxygen parses. Internally doxygen uses the UTF-8 encoding, which is also the default 
 # input encoding. Doxygen uses libiconv (or the iconv built into libc) for the transcoding. 
commit d2257d4b7b1e50b3164a009748a07d213470bc6c
Author: Daniel Nicoletti <dantti85-pk at yahoo.com.br>
Date:   Tue Aug 25 13:01:33 2009 -0300

    Added aptcc to pk-matrix.html

diff --git a/docs/html/pk-matrix.html b/docs/html/pk-matrix.html
index 10e2be7..a7b3cb9 100644
--- a/docs/html/pk-matrix.html
+++ b/docs/html/pk-matrix.html
@@ -22,6 +22,7 @@
 <tr>
 <td width="150px">&nbsp;</td>
 <td><center>apt</center></td>
+<td><center>aptcc</center></td>
 <td><center>alpm</center></td>
 <td><center>box</center></td>
 <td><center>conary</center></td>
@@ -38,6 +39,7 @@
 <tr>
 <td><b>Cancel</b></td>
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- apt -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- aptcc -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- alpm -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- box -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- conary -->
@@ -54,6 +56,7 @@
 <tr>
 <td><b>DownloadPackages</b></td>
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- apt -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- aptcc -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- alpm -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- box -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- conary -->
@@ -70,6 +73,7 @@
 <tr>
 <td><b>GetDepends</b></td>
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- apt -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- aptcc -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- alpm -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- box -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- conary -->
@@ -86,6 +90,7 @@
 <tr>
 <td><b>GetDetails</b></td>
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- apt -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- aptcc -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- alpm -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- box -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- conary -->
@@ -102,6 +107,7 @@
 <tr>
 <td><b>GetDistroUpgrades</b></td>
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- apt -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- aptcc -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- alpm -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- box -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- conary -->
@@ -118,6 +124,7 @@
 <tr>
 <td><b>GetFiles</b></td>
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- apt -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- aptcc -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- alpm -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- box -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- conary -->
@@ -134,6 +141,7 @@
 <tr>
 <td><b>GetPackages</b></td>
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- apt -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- aptcc -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- alpm -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- box -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- conary -->
@@ -150,6 +158,7 @@
 <tr>
 <td><b>GetRepoList</b></td>
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- apt -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- aptcc -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- alpm -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- box -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- conary -->
@@ -166,6 +175,7 @@
 <tr>
 <td><b>GetRequires</b></td>
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- apt -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- aptcc -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- alpm -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- box -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- conary -->
@@ -182,6 +192,7 @@
 <tr>
 <td><b>GetUpdateDetail</b></td>
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- apt -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- aptcc -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- alpm -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- box -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- conary -->
@@ -198,6 +209,7 @@
 <tr>
 <td><b>GetUpdates</b></td>
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- apt -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- aptcc -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- alpm -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- box -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- conary -->
@@ -214,6 +226,7 @@
 <tr>
 <td><b>InstallFiles</b></td>
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- apt -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- aptcc -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- alpm -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- box -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- conary -->
@@ -230,6 +243,7 @@
 <tr>
 <td><b>InstallPackages</b></td>
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- apt -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- aptcc -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- alpm -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- box -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- conary -->
@@ -246,6 +260,7 @@
 <tr>
 <td><b>InstallSignature</b></td>
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- apt -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- aptcc -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- alpm -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- box -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- conary -->
@@ -262,6 +277,7 @@
 <tr>
 <td><b>RefreshCache</b></td>
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- apt -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- aptcc -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- alpm -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- box -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- conary -->
@@ -278,6 +294,7 @@
 <tr>
 <td><b>RemovePackages</b></td>
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- apt -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- aptcc -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- alpm -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- box -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- conary -->
@@ -294,6 +311,7 @@
 <tr>
 <td><b>RepoEnable</b></td>
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- apt -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- aptcc -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- alpm -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- box -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- conary -->
@@ -310,6 +328,7 @@
 <tr>
 <td><b>RepoSetData</b></td>
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- apt -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- aptcc -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- alpm -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- box -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- conary -->
@@ -326,6 +345,7 @@
 <tr>
 <td><b>Resolve</b></td>
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- apt -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- aptcc -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- alpm -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- box -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- conary -->
@@ -342,6 +362,7 @@
 <tr>
 <td><b>Rollback</b></td>
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- apt -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- apt -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- alpm -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- box -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- conary -->
@@ -358,6 +379,7 @@
 <tr>
 <td><b>SearchDetails</b></td>
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- apt -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- aptcc -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- alpm -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- box -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- conary -->
@@ -374,6 +396,7 @@
 <tr>
 <td><b>SearchFile</b></td>
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- apt -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- aptcc -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- alpm -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- box -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- conary -->
@@ -390,6 +413,7 @@
 <tr>
 <td><b>SearchGroup</b></td>
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- apt -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- aptcc -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- alpm -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- box -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- conary -->
@@ -406,6 +430,7 @@
 <tr>
 <td><b>SearchName</b></td>
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- apt -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- aptcc -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- alpm -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- box -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- conary -->
@@ -422,6 +447,7 @@
 <tr>
 <td><b>SimulateInstallFiles</b></td>
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- apt -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- aptcc -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- alpm -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- box -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- conary -->
@@ -438,6 +464,7 @@
 <tr>
 <td><b>SimulateInstallPackages</b></td>
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- apt -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- aptcc -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- alpm -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- box -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- conary -->
@@ -454,6 +481,7 @@
 <tr>
 <td><b>SimulateRemovePackages</b></td>
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- apt -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- aptcc -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- alpm -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- box -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- conary -->
@@ -470,6 +498,7 @@
 <tr>
 <td><b>SimulateUpdatePackages</b></td>
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- apt -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- aptcc -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- alpm -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- box -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- conary -->
@@ -486,6 +515,7 @@
 <tr>
 <td><b>UpdatePackages</b></td>
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- apt -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- aptcc -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- alpm -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- box -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- conary -->
@@ -502,6 +532,7 @@
 <tr>
 <td><b>UpdateSystem</b></td>
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- apt -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- aptcc -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- alpm -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- box -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- conary -->
@@ -518,6 +549,7 @@
 <tr>
 <td><b>WhatProvides</b></td>
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- apt -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- aptcc -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- alpm -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- box -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- conary -->
@@ -538,6 +570,7 @@
 <tr>
 <td width="150px">&nbsp;</td>
 <td><center>apt</center></td>
+<td><center>aptcc</center></td>
 <td><center>alpm</center></td>
 <td><center>box</center></td>
 <td><center>conary</center></td>
@@ -554,6 +587,7 @@
 <tr>
 <td><b>Installed</b></td>
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- apt -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- aptcc -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- alpm -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- box -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- conary -->
@@ -570,6 +604,7 @@
 <tr>
 <td><b>Development</b></td>
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- apt -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- aptcc -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- alpm -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- box -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- conary -->
@@ -586,6 +621,7 @@
 <tr>
 <td><b>GUI</b></td>
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- apt -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- aptcc -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- alpm -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- box -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- conary -->
@@ -602,6 +638,7 @@
 <tr>
 <td><b>Free</b></td>
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- apt -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- aptcc -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- alpm -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- box -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- conary -->
@@ -618,6 +655,7 @@
 <tr>
 <td><b>Visible</b></td>
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- apt -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- aptcc -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- alpm -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- box -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- conary -->
@@ -634,6 +672,7 @@
 <tr>
 <td><b>Supported</b></td>
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- apt -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- aptcc -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- alpm -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- box -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- conary -->
@@ -650,6 +689,7 @@
 <tr>
 <td><b>Newest</b></td>
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- apt -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- aptcc -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- alpm -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- box -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- conary -->
@@ -666,6 +706,7 @@
 <tr>
 <td><b>Collections</b></td>
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- apt -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- aptcc -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- alpm -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- box -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- conary -->
@@ -682,6 +723,7 @@
 <tr>
 <td><b>Arch</b></td>
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- apt -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- aptcc -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- alpm -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- box -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- conary -->
commit 81a90e739313831d80af76ef6e36854f96e676d9
Author: raven <raven at fedoraproject.org>
Date:   Tue Aug 25 14:25:12 2009 +0000

    Sending translation for Polish

diff --git a/po/pl.po b/po/pl.po
index 1f4eea3..3a6c159 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -5,8 +5,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: pl\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-08-24 19:37+0000\n"
-"PO-Revision-Date: 2009-08-25 00:50+0200\n"
+"POT-Creation-Date: 2009-08-25 08:29+0000\n"
+"PO-Revision-Date: 2009-08-25 16:24+0200\n"
 "Last-Translator: Piotr DrÄ…g <piotrdrag at gmail.com>\n"
 "Language-Team: Polish <pl at li.org>\n"
 "MIME-Version: 1.0\n"
@@ -31,11 +31,11 @@ msgid "Succeeded"
 msgstr "Powodzenie"
 
 #. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:239 ../client/pk-console.c:406
+#: ../client/pk-console.c:239 ../client/pk-console.c:461
 msgid "True"
 msgstr "Prawda"
 
-#: ../client/pk-console.c:239 ../client/pk-console.c:406
+#: ../client/pk-console.c:239 ../client/pk-console.c:461
 msgid "False"
 msgstr "Fałsz"
 
@@ -83,55 +83,75 @@ msgstr "Dotyczy pakietów:"
 msgid "Affected packages: None"
 msgstr "Dotyczy pakietów: żadnych"
 
+#. TRANSLATORS: When processing, we might have to remove other dependencies
+#: ../client/pk-console.c:330
+msgid "The following packages have to be removed:"
+msgstr "Następujące pakiety muszą zostać usunięte:"
+
+#. TRANSLATORS: When processing, we might have to install other dependencies
+#: ../client/pk-console.c:333
+msgid "The following packages have to be installed:"
+msgstr "Następujące pakiety muszą zostać zainstalowane:"
+
+#. TRANSLATORS: When processing, we might have to update other dependencies
+#: ../client/pk-console.c:336
+msgid "The following packages have to be updated:"
+msgstr "Następujące pakiety muszą zostać zaktualizowane:"
+
+#. TRANSLATORS: When processing, we might have to reinstall other dependencies
+#: ../client/pk-console.c:339
+msgid "The following packages have to be reinstalled:"
+msgstr "Następujące pakiety muszą zostać ponownie zainstalowane:"
+
 #. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:298
+#: ../client/pk-console.c:353
 msgid "Distribution"
 msgstr "Dystrybucja"
 
 #. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:300
+#: ../client/pk-console.c:355
 msgid "Type"
 msgstr "Typ"
 
 #. TRANSLATORS: this is any summary text describing the upgrade
 #. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:302 ../client/pk-console.c:325
+#: ../client/pk-console.c:357 ../client/pk-console.c:380
 msgid "Summary"
 msgstr "Podsumowanie"
 
 #. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:314
+#: ../client/pk-console.c:369
 msgid "Category"
 msgstr "Kategoria"
 
 #. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:316
+#: ../client/pk-console.c:371
 msgid "ID"
 msgstr "Identyfikator"
 
 #. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:319
+#: ../client/pk-console.c:374
 msgid "Parent"
 msgstr "Nadrzędna"
 
 #. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:322
+#: ../client/pk-console.c:377
 msgid "Name"
 msgstr "Nazwa"
 
 #. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:328
+#: ../client/pk-console.c:383
 msgid "Icon"
 msgstr "Ikona"
 
 #. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:343
+#: ../client/pk-console.c:398
 msgid "Details about the update:"
 msgstr "Szczegóły aktualizacji:"
 
 #. TRANSLATORS: details about the update, package name and version
 #. TRANSLATORS: title, the names of the packages that the method is processing
-#: ../client/pk-console.c:345 ../src/pk-polkit-action-lookup.c:352
+#: ../client/pk-console.c:400 ../src/pk-polkit-action-lookup.c:352
 msgid "Package"
 msgid_plural "Packages"
 msgstr[0] "Pakiet"
@@ -139,110 +159,110 @@ msgstr[1] "Pakiety"
 msgstr[2] "Pakietów"
 
 #. TRANSLATORS: details about the update, any packages that this update updates
-#: ../client/pk-console.c:348
+#: ../client/pk-console.c:403
 msgid "Updates"
 msgstr "Aktualizuje"
 
 #. TRANSLATORS: details about the update, any packages that this update obsoletes
-#: ../client/pk-console.c:352
+#: ../client/pk-console.c:407
 msgid "Obsoletes"
 msgstr "Zastępuje"
 
 #. TRANSLATORS: details about the update, the vendor URLs
-#: ../client/pk-console.c:356
+#: ../client/pk-console.c:411
 msgid "Vendor"
 msgstr "Producent"
 
 #. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:360
+#: ../client/pk-console.c:415
 msgid "Bugzilla"
 msgstr "Bugzilla"
 
 #. TRANSLATORS: details about the update, the CVE URLs
-#: ../client/pk-console.c:364
+#: ../client/pk-console.c:419
 msgid "CVE"
 msgstr "CVE"
 
 #. TRANSLATORS: details about the update, if the package requires a restart
-#: ../client/pk-console.c:368
+#: ../client/pk-console.c:423
 msgid "Restart"
 msgstr "Uruchom ponownie"
 
 #. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:372
+#: ../client/pk-console.c:427
 msgid "Update text"
 msgstr "Tekst aktualizacji"
 
 #. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:376
+#: ../client/pk-console.c:431
 msgid "Changes"
 msgstr "Zmiany"
 
 #. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:380
+#: ../client/pk-console.c:435
 msgid "State"
 msgstr "Stan"
 
 #. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:385
+#: ../client/pk-console.c:440
 msgid "Issued"
 msgstr "Wydano"
 
 #. TRANSLATORS: details about the update, date the update was updated
-#: ../client/pk-console.c:390
+#: ../client/pk-console.c:445
 msgid "Updated"
 msgstr "Zaktualizowano"
 
-#: ../client/pk-console.c:477 ../client/pk-console.c:479
+#: ../client/pk-console.c:532 ../client/pk-console.c:534
 msgid "Percentage"
 msgstr "Procentowo"
 
-#: ../client/pk-console.c:479
+#: ../client/pk-console.c:534
 msgid "Unknown"
 msgstr "Nieznane"
 
 #. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:521
+#: ../client/pk-console.c:576
 msgid "System restart required by:"
 msgstr "Ponowne uruchomienie systemu jest wymagane przez:"
 
 #. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:524
+#: ../client/pk-console.c:579
 msgid "Session restart required:"
 msgstr "Wymagane jest ponowne uruchomienie sesji:"
 
 #. TRANSLATORS: a package requires the system to be restarted due to a security update
-#: ../client/pk-console.c:527
+#: ../client/pk-console.c:582
 msgid "System restart (security) required by:"
 msgstr "Ponowne uruchomienie systemu jest wymagane przez:"
 
 #. TRANSLATORS: a package requires the session to be restarted due to a security update
-#: ../client/pk-console.c:530
+#: ../client/pk-console.c:585
 msgid "Session restart (security) required:"
 msgstr "Wymagane jest ponowne uruchomienie sesji (z powodu bezpieczeństwa):"
 
 #. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:533
+#: ../client/pk-console.c:588
 msgid "Application restart required by:"
 msgstr "Ponowne uruchomienie programu jest wymagane przez:"
 
 #. TRANSLATORS: a package needs to restart their system
-#: ../client/pk-console.c:588
+#: ../client/pk-console.c:643
 msgid "Please restart the computer to complete the update."
 msgstr "Proszę uruchomić ponownie komputer, aby zakończyć aktualizację."
 
 #. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:591
+#: ../client/pk-console.c:646
 msgid "Please logout and login to complete the update."
 msgstr "Proszę wylogować się i zalogować, aby zakończyć aktualizację."
 
 #. TRANSLATORS: a package needs to restart the application
-#: ../client/pk-console.c:594
+#: ../client/pk-console.c:649
 msgid "Please restart the application as it is being used."
 msgstr "Proszę uruchomić program ponownie, ponieważ jest używany."
 
 #. TRANSLATORS: a package needs to restart their system (due to security)
-#: ../client/pk-console.c:597
+#: ../client/pk-console.c:652
 msgid ""
 "Please restart the computer to complete the update as important security "
 "updates have been installed."
@@ -251,7 +271,7 @@ msgstr ""
 "zainstalowano aktualizacje bezpieczeństwa."
 
 #. TRANSLATORS: a package needs to restart the session (due to security)
-#: ../client/pk-console.c:600
+#: ../client/pk-console.c:655
 msgid ""
 "Please logout and login to complete the update as important security updates "
 "have been installed."
@@ -260,290 +280,288 @@ msgstr ""
 "zainstalowano aktualizacje bezpieczeństwa."
 
 #. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:727
+#: ../client/pk-console.c:787
 #, c-format
 msgid "The package %s is already installed"
 msgstr "Pakiet %s jest już zainstalowany"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:735
+#: ../client/pk-console.c:795
 #, c-format
 msgid "The package %s could not be installed: %s"
 msgstr "Nie można zainstalować pakietu %s: %s"
 
 #. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
-#: ../client/pk-console.c:760 ../client/pk-console.c:783
-#: ../client/pk-console.c:933 ../client/pk-console.c:1046
-#: ../client/pk-tools-common.c:62 ../client/pk-tools-common.c:81
-#: ../client/pk-tools-common.c:89
+#: ../client/pk-console.c:821 ../client/pk-console.c:869
+#: ../client/pk-console.c:893 ../client/pk-console.c:941
+#: ../client/pk-console.c:1037 ../client/pk-console.c:1150
+#: ../client/pk-console.c:1211 ../client/pk-tools-common.c:62
+#: ../client/pk-tools-common.c:81 ../client/pk-tools-common.c:89
 #, c-format
 msgid "Internal error: %s"
 msgstr "Wewnętrzny błąd: %s"
 
+#. TRANSLATORS: We are checking if it's okay to remove a list of packages
+#: ../client/pk-console.c:853 ../client/pk-console.c:925
+#: ../client/pk-console.c:1243
+msgid "Proceed with changes?"
+msgstr "Kontynuować wprowadzanie zmian?"
+
+#. TRANSLATORS: There was an error removing the packages. The detailed error follows
+#: ../client/pk-console.c:858 ../client/pk-console.c:930
+msgid "The package install was canceled!"
+msgstr "Anulowano instalacjÄ™ pakietu!"
+
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:768 ../client/pk-console.c:1442
+#: ../client/pk-console.c:877 ../client/pk-console.c:1611
 #, c-format
 msgid "This tool could not install the packages: %s"
 msgstr "To narzędzie nie może zainstalować pakietów: %s"
 
 #. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:791
+#: ../client/pk-console.c:949
 #, c-format
 msgid "This tool could not install the files: %s"
 msgstr "To narzędzie nie może zainstalować plików: %s"
 
-#. TRANSLATORS: When processing, we might have to remove other dependencies
-#: ../client/pk-console.c:863
-msgid "The following packages have to be removed:"
-msgstr "Następujące pakiety muszą zostać usunięte:"
-
-#. TRANSLATORS: When processing, we might have to install other dependencies
-#: ../client/pk-console.c:866
-msgid "The following packages have to be installed:"
-msgstr "Następujące pakiety muszą zostać zainstalowane:"
-
-#. TRANSLATORS: When processing, we might have to update other dependencies
-#: ../client/pk-console.c:869
-msgid "The following packages have to be updated:"
-msgstr "Następujące pakiety muszą zostać zaktualizowane:"
-
-#. TRANSLATORS: When processing, we might have to reinstall other dependencies
-#: ../client/pk-console.c:872
-msgid "The following packages have to be reinstalled:"
-msgstr "Następujące pakiety muszą zostać ponownie zainstalowane:"
-
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:901
+#: ../client/pk-console.c:1005
 #, c-format
 msgid "This tool could not remove %s: %s"
 msgstr "To narzędzie nie może usunąć %s: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:924 ../client/pk-console.c:962
-#: ../client/pk-console.c:991
+#: ../client/pk-console.c:1028 ../client/pk-console.c:1066
+#: ../client/pk-console.c:1095
 #, c-format
 msgid "This tool could not remove the packages: %s"
 msgstr "To narzędzie nie może usunąć pakietów: %s"
 
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:977
+#: ../client/pk-console.c:1081
 msgid "Proceed with additional packages?"
 msgstr "Kontynuować usuwanie dodatkowych pakietów?"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:982
+#: ../client/pk-console.c:1086
 msgid "The package removal was canceled!"
 msgstr "Anulowano usunięcie pakietu!"
 
 #. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:1023
+#: ../client/pk-console.c:1127
 #, c-format
 msgid "This tool could not download the package %s as it could not be found"
 msgstr "To narzędzie nie może pobrać pakietu %s, ponieważ nie można go znaleźć"
 
 #. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:1054
+#: ../client/pk-console.c:1158
 #, c-format
 msgid "This tool could not download the packages: %s"
 msgstr "To narzędzie nie może pobrać pakietów: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1081 ../client/pk-console.c:1090
+#: ../client/pk-console.c:1190 ../client/pk-console.c:1202
+#: ../client/pk-console.c:1257
 #, c-format
 msgid "This tool could not update %s: %s"
 msgstr "To narzędzie nie może zaktualizować %s: %s"
 
+#. TRANSLATORS: There was an error removing the packages. The detailed error follows
+#: ../client/pk-console.c:1248
+msgid "The package update was canceled!"
+msgstr "Anulowano aktualizacjÄ™ pakietu!"
+
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1112 ../client/pk-console.c:1120
+#: ../client/pk-console.c:1281 ../client/pk-console.c:1289
 #, c-format
 msgid "This tool could not get the requirements for %s: %s"
 msgstr "To narzędzie nie może uzyskać wymagań dla %s: %s"
 
 #. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:1142 ../client/pk-console.c:1150
+#: ../client/pk-console.c:1311 ../client/pk-console.c:1319
 #, c-format
 msgid "This tool could not get the dependencies for %s: %s"
 msgstr "To narzędzie nie może uzyskać zależności dla %s: %s"
 
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:1172 ../client/pk-console.c:1180
+#: ../client/pk-console.c:1341 ../client/pk-console.c:1349
 #, c-format
 msgid "This tool could not get package details for %s: %s"
 msgstr "To narzędzie nie może uzyskać szczegółów pakietu %s: %s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1202
+#: ../client/pk-console.c:1371
 #, c-format
 msgid "This tool could not find the files for %s: %s"
 msgstr "To narzędzie nie może znaleźć plików dla %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1210
+#: ../client/pk-console.c:1379
 #, c-format
 msgid "This tool could not get the file list for %s: %s"
 msgstr "To narzędzie nie może uzyskać listy plików dla %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of packages. The filename follows
-#: ../client/pk-console.c:1232
+#: ../client/pk-console.c:1401
 #, c-format
 msgid "File already exists: %s"
 msgstr "Plik już istnieje: %s"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1237 ../client/pk-console.c:1293
-#: ../client/pk-console.c:1368
+#: ../client/pk-console.c:1406 ../client/pk-console.c:1462
+#: ../client/pk-console.c:1537
 msgid "Getting package list"
 msgstr "Pobieranie listy pakietów"
 
 #. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1243 ../client/pk-console.c:1299
-#: ../client/pk-console.c:1374
+#: ../client/pk-console.c:1412 ../client/pk-console.c:1468
+#: ../client/pk-console.c:1543
 #, c-format
 msgid "This tool could not get package list: %s"
 msgstr "To narzędzie nie może pobrać listy pakietów: %s"
 
 #. TRANSLATORS: There was an error saving the list
-#: ../client/pk-console.c:1254
+#: ../client/pk-console.c:1423
 #, c-format
 msgid "Failed to save to disk"
 msgstr "Zapisanie na dysku nie powiodło się"
 
 #. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1288 ../client/pk-console.c:1363
+#: ../client/pk-console.c:1457 ../client/pk-console.c:1532
 #, c-format
 msgid "File does not exist: %s"
 msgstr "Plik nie istnieje: %s"
 
 #. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1320
+#: ../client/pk-console.c:1489
 msgid "Packages to add"
 msgstr "Pakiety do dodania"
 
 #. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1328
+#: ../client/pk-console.c:1497
 msgid "Packages to remove"
 msgstr "Pakiety do usunięcia"
 
 #. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1396
+#: ../client/pk-console.c:1565
 #, c-format
 msgid "No new packages need to be installed"
 msgstr "Nie trzeba instalować nowych pakietów"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1402
+#: ../client/pk-console.c:1571
 msgid "To install"
 msgstr "Do zainstalowania"
 
 #. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1414
+#: ../client/pk-console.c:1583
 msgid "Searching for package: "
 msgstr "Wyszukiwanie pakietu: "
 
 #. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1418
+#: ../client/pk-console.c:1587
 msgid "not found."
 msgstr "nie znaleziono."
 
 #. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1429
+#: ../client/pk-console.c:1598
 #, c-format
 msgid "No packages can be found to install"
 msgstr "Nie można znaleźć pakietów do zainstalowania"
 
 #. TRANSLATORS: installing new packages from package list
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
-#: ../client/pk-console.c:1435
+#: ../client/pk-console.c:1604
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:886
 #, c-format
 msgid "Installing packages"
 msgstr "Instalowanie pakietów"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1471
+#: ../client/pk-console.c:1640
 #, c-format
 msgid "This tool could not find the update details for %s: %s"
 msgstr "To narzędzie nie może znaleźć szczegółów aktualizacji dla %s: %s"
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1479
+#: ../client/pk-console.c:1648
 #, c-format
 msgid "This tool could not get the update details for %s: %s"
 msgstr "To narzędzie nie może uzyskać szczegółów aktualizacji dla %s: %s"
 
 #. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
-#: ../client/pk-console.c:1510
+#: ../client/pk-console.c:1679
 msgid "Error:"
 msgstr "BÅ‚Ä…d:"
 
 #. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1524
+#: ../client/pk-console.c:1693
 msgid "Package description"
 msgstr "Opis pakietu"
 
 #. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
-#: ../client/pk-console.c:1540
+#: ../client/pk-console.c:1709
 msgid "Message:"
 msgstr "Komunikat:"
 
 #. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1568
+#: ../client/pk-console.c:1737
 msgid "Package files"
 msgstr "Pliki pakietu"
 
 #. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1576
+#: ../client/pk-console.c:1745
 msgid "No files"
 msgstr "Brak plików"
 
 #. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1599
+#: ../client/pk-console.c:1768
 msgid "Repository signature required"
 msgstr "Wymagany jest podpis repozytorium"
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1609
+#: ../client/pk-console.c:1778
 msgid "Do you accept this signature?"
 msgstr "Zaakceptować ten podpis?"
 
 #. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1613
+#: ../client/pk-console.c:1782
 msgid "The signature was not accepted."
 msgstr "Podpis nie został zaakceptowany."
 
 #. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1647
+#: ../client/pk-console.c:1816
 msgid "End user license agreement required"
 msgstr "Licencja jest wymagana"
 
 #. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1654
+#: ../client/pk-console.c:1823
 msgid "Do you agree to this license?"
 msgstr "Zaakceptować tę licencję?"
 
 #. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1658
+#: ../client/pk-console.c:1827
 msgid "The license was refused."
 msgstr "Odrzucono licencjÄ™."
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1687
+#: ../client/pk-console.c:1856
 msgid "The daemon crashed mid-transaction!"
 msgstr "Demon zawiesił się w połowie transakcji!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1740
+#: ../client/pk-console.c:1909
 msgid "PackageKit Console Interface"
 msgstr "Interfejs konsoli PackageKit"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1742
+#: ../client/pk-console.c:1911
 msgid "Subcommands:"
 msgstr "Podpolecenia:"
 
 #. TRANSLATORS: command line argument, if we should show debugging information
 #. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:1835 ../client/pk-generate-pack.c:185
+#: ../client/pk-console.c:2004 ../client/pk-generate-pack.c:185
 #: ../client/pk-monitor.c:128
 #: ../contrib/command-not-found/pk-command-not-found.c:616
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:550
@@ -552,148 +570,148 @@ msgid "Show extra debugging information"
 msgstr "Wyświetla dodatkowe informacje o debugowaniu"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1838 ../client/pk-monitor.c:130
+#: ../client/pk-console.c:2007 ../client/pk-monitor.c:130
 msgid "Show the program version and exit"
 msgstr "Wyświetla wersję programu i wyłącza"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1841
+#: ../client/pk-console.c:2010
 msgid "Set the filter, e.g. installed"
 msgstr "Ustawia filtr, np. zainstalowane"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1844
+#: ../client/pk-console.c:2013
 msgid "Exit without waiting for actions to complete"
 msgstr "Wyłącza bez oczekiwania na zakończenie działań"
 
 #. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:1871
+#: ../client/pk-console.c:2040
 msgid "This tool could not connect to system DBUS."
 msgstr "To narzędzie nie może połączyć się z systemowym D-Bus."
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1961
+#: ../client/pk-console.c:2130
 msgid "The filter specified was invalid"
 msgstr "Podany filtr jest nieprawidłowy"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1980
+#: ../client/pk-console.c:2149
 msgid "A search type is required, e.g. name"
 msgstr "Wymagany jest typ wyszukiwania, np. nazwa"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1987 ../client/pk-console.c:1996
-#: ../client/pk-console.c:2005 ../client/pk-console.c:2014
+#: ../client/pk-console.c:2156 ../client/pk-console.c:2165
+#: ../client/pk-console.c:2174 ../client/pk-console.c:2183
 msgid "A search term is required"
 msgstr "Wymagany jest wyszukiwany termin"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:2021
+#: ../client/pk-console.c:2190
 msgid "Invalid search type"
 msgstr "Nieprawidłowy typ wyszukiwania"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:2027
+#: ../client/pk-console.c:2196
 msgid "A package name or filename to install is required"
 msgstr "Wymagana jest nazwa pakietu lub pliku do zainstalowania"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2036
+#: ../client/pk-console.c:2205
 msgid "A type, key_id and package_id are required"
 msgstr "Wymagany jest typ, key_id i package_id"
 
 #. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:2045
+#: ../client/pk-console.c:2214
 msgid "A package name to remove is required"
 msgstr "Wymagana jest nazwa pakietu do usunięcia"
 
 #. TRANSLATORS: the user did not specify anything about what to download or where
-#: ../client/pk-console.c:2053
+#: ../client/pk-console.c:2222
 msgid "A destination directory and the package names to download are required"
 msgstr "Wymagany jest katalog docelowy i nazwy pakietów do pobrania"
 
 #. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:2060
+#: ../client/pk-console.c:2229
 msgid "Directory not found"
 msgstr "Nie znaleziono katalogu"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2068
+#: ../client/pk-console.c:2237
 msgid "A licence identifier (eula-id) is required"
 msgstr "Wymagany jest identyfikator licencji (eula-id)"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2078
+#: ../client/pk-console.c:2247
 msgid "A transaction identifier (tid) is required"
 msgstr "Wymagany jest identyfikator transakcji (tid)"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:2095
+#: ../client/pk-console.c:2264
 msgid "A package name to resolve is required"
 msgstr "Wymagana jest nazwa pakietu do rozwiÄ…zania"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:2104 ../client/pk-console.c:2113
+#: ../client/pk-console.c:2273 ../client/pk-console.c:2282
 msgid "A repository name is required"
 msgstr "Wymagana jest nazwa repozytorium"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2122
+#: ../client/pk-console.c:2291
 msgid "A repo name, parameter and value are required"
 msgstr "Wymagana jest nazwa, parametr i wartość repozytorium"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:2136
+#: ../client/pk-console.c:2305
 msgid "An action, e.g. 'update-system' is required"
 msgstr "Wymagane jest działanie, np. \"update-system\""
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:2143
+#: ../client/pk-console.c:2312
 msgid "A correct role is required"
 msgstr "Wymagana jest bieżąca rola"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2150
+#: ../client/pk-console.c:2319
 msgid "Failed to get the time since this action was last completed"
 msgstr ""
 "Uzyskanie czasu od ostatniego zakończenia tego działania nie powiodło się"
 
 #. TRANSLATORS: The user did not provide a package name
 #. TRANSLATORS: This is when the user fails to supply the package name
-#: ../client/pk-console.c:2160 ../client/pk-console.c:2172
-#: ../client/pk-console.c:2181 ../client/pk-console.c:2199
-#: ../client/pk-console.c:2208 ../client/pk-generate-pack.c:241
+#: ../client/pk-console.c:2329 ../client/pk-console.c:2341
+#: ../client/pk-console.c:2350 ../client/pk-console.c:2368
+#: ../client/pk-console.c:2377 ../client/pk-generate-pack.c:241
 msgid "A package name is required"
 msgstr "Wymagana jest nazwa pakietu"
 
 #. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:2190
+#: ../client/pk-console.c:2359
 msgid "A package provide string is required"
 msgstr "Wymagany jest łańcuch dostarczania pakietu"
 
 #. TRANSLATORS: The user didn't specify a filename to create as a list
-#: ../client/pk-console.c:2217
+#: ../client/pk-console.c:2386
 msgid "A list file name to create is required"
 msgstr "Wymagana jest lista nazw plików do utworzenia"
 
 #. TRANSLATORS: The user didn't specify a filename to open as a list
-#: ../client/pk-console.c:2227 ../client/pk-console.c:2237
+#: ../client/pk-console.c:2396 ../client/pk-console.c:2406
 msgid "A list file to open is required"
 msgstr "Wymagana jest lista plików do otwarcia"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2291
+#: ../client/pk-console.c:2460
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "Opcja \"%s\" nie jest obsługiwana"
 
 #. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2304
+#: ../client/pk-console.c:2473
 msgid "Incorrect privileges for this operation"
 msgstr "Niepoprawne uprawnienia dla tego działania"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2307
+#: ../client/pk-console.c:2476
 msgid "Command failed"
 msgstr "Polecenie nie powiodło się"
 
commit d2e49cef087dcbf8b3b41bde33a65d2eb74de249
Author: kenda <kenda at fedoraproject.org>
Date:   Tue Aug 25 14:13:37 2009 +0000

    Sending translation for German

diff --git a/po/de.po b/po/de.po
index 5e0e444..cb7ec1a 100644
--- a/po/de.po
+++ b/po/de.po
@@ -14,14 +14,15 @@
 # Stefan Posdzich <cheekyboinc at foresightlinux.org>, 2008.
 # Fabian Affolter <fab at fedoraproject.org>, 2009.
 # Christian Kirbach <Christian.Kirbach at googlemail.com>, 2009.
+# Marcus Nitzschke <kenda at fedoraproject.org>, 2009.
 #
 msgid ""
 msgstr ""
 "Project-Id-Version: packagekit.master.de\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-08-24 11:06+0100\n"
-"PO-Revision-Date: 2009-07-15 22:15+0200\n"
-"Last-Translator: Christian Kirbach <Christian.Kirbach at googlemail.com>\n"
+"POT-Creation-Date: 2009-08-25 08:29+0000\n"
+"PO-Revision-Date: 2009-08-25 16:10+0200\n"
+"Last-Translator: Marcus Nitzschke <kenda at fedoraproject.org>\n"
 "Language-Team: German <gnome-de at gnome.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -44,17 +45,20 @@ msgid "Succeeded"
 msgstr "Erfolgreich"
 
 #. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:239 ../client/pk-console.c:406
+#: ../client/pk-console.c:239
+#: ../client/pk-console.c:461
 msgid "True"
 msgstr "Wahr"
 
-#: ../client/pk-console.c:239 ../client/pk-console.c:406
+#: ../client/pk-console.c:239
+#: ../client/pk-console.c:461
 msgid "False"
 msgstr "Falsch"
 
 #. TRANSLATORS: this is the transactions role, e.g. "update-system"
 #. TRANSLATORS: the trasaction role, e.g. update-system
-#: ../client/pk-console.c:241 ../src/pk-polkit-action-lookup.c:327
+#: ../client/pk-console.c:241
+#: ../src/pk-polkit-action-lookup.c:327
 msgid "Role"
 msgstr "Rolle"
 
@@ -69,7 +73,8 @@ msgstr "(Sekunden)"
 
 #. TRANSLATORS: this is The command line used to do the action
 #. TRANSLATORS: the command line of the thing that wants the authentication
-#: ../client/pk-console.c:250 ../src/pk-polkit-action-lookup.c:341
+#: ../client/pk-console.c:250
+#: ../src/pk-polkit-action-lookup.c:341
 msgid "Command line"
 msgstr "Befehlszeile"
 
@@ -96,608 +101,654 @@ msgstr "Beteiligte Pakete:"
 msgid "Affected packages: None"
 msgstr "Beteilige Pakete: Keine"
 
+#. TRANSLATORS: When processing, we might have to remove other dependencies
+#: ../client/pk-console.c:330
+msgid "The following packages have to be removed:"
+msgstr "Die folgenden Pakete müssen entfernt werden:"
+
+#. TRANSLATORS: When processing, we might have to install other dependencies
+#: ../client/pk-console.c:333
+msgid "The following packages have to be installed:"
+msgstr "Die folgenden Pakete müssen installiert werden:"
+
+#. TRANSLATORS: When processing, we might have to update other dependencies
+#: ../client/pk-console.c:336
+msgid "The following packages have to be updated:"
+msgstr "Die folgenden Pakete müssen aktualisiert werden:"
+
+#. TRANSLATORS: When processing, we might have to reinstall other dependencies
+#: ../client/pk-console.c:339
+msgid "The following packages have to be reinstalled:"
+msgstr "Die folgenden Pakete müssen neu installiert werden:"
+
 #. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:298
+#: ../client/pk-console.c:353
 msgid "Distribution"
 msgstr "Distribution"
 
 #. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:300
+#: ../client/pk-console.c:355
 msgid "Type"
 msgstr "Typ"
 
 #. TRANSLATORS: this is any summary text describing the upgrade
 #. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:302 ../client/pk-console.c:325
+#: ../client/pk-console.c:357
+#: ../client/pk-console.c:380
 msgid "Summary"
 msgstr "Zusammenfassung"
 
 #. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:314
+#: ../client/pk-console.c:369
 msgid "Category"
 msgstr "Kategorie"
 
 #. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:316
+#: ../client/pk-console.c:371
 msgid "ID"
 msgstr "Kennung"
 
 #. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:319
+#: ../client/pk-console.c:374
 msgid "Parent"
 msgstr "Elternteil"
 
 #. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:322
+#: ../client/pk-console.c:377
 msgid "Name"
 msgstr "Name"
 
 #. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:328
+#: ../client/pk-console.c:383
 msgid "Icon"
 msgstr "Symbol"
 
 #. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:343
+#: ../client/pk-console.c:398
 msgid "Details about the update:"
 msgstr "Details zur Aktualisierung:"
 
 #. TRANSLATORS: details about the update, package name and version
 #. TRANSLATORS: title, the names of the packages that the method is processing
-#: ../client/pk-console.c:345 ../src/pk-polkit-action-lookup.c:352
-#, fuzzy
+#: ../client/pk-console.c:400
+#: ../src/pk-polkit-action-lookup.c:352
 msgid "Package"
 msgid_plural "Packages"
 msgstr[0] "Paket"
-msgstr[1] "Paket"
+msgstr[1] "Pakete"
 
 #. TRANSLATORS: details about the update, any packages that this update updates
-#: ../client/pk-console.c:348
+#: ../client/pk-console.c:403
 msgid "Updates"
 msgstr "Aktualisierungen"
 
 #. TRANSLATORS: details about the update, any packages that this update obsoletes
-#: ../client/pk-console.c:352
+#: ../client/pk-console.c:407
 msgid "Obsoletes"
 msgstr "Veraltete"
 
 #. TRANSLATORS: details about the update, the vendor URLs
-#: ../client/pk-console.c:356
+#: ../client/pk-console.c:411
 msgid "Vendor"
 msgstr "Hersteller"
 
 #. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:360
+#: ../client/pk-console.c:415
 msgid "Bugzilla"
 msgstr "Bugzilla"
 
 #. TRANSLATORS: details about the update, the CVE URLs
-#: ../client/pk-console.c:364
+#: ../client/pk-console.c:419
 msgid "CVE"
 msgstr "CVE"
 
 #. TRANSLATORS: details about the update, if the package requires a restart
-#: ../client/pk-console.c:368
+#: ../client/pk-console.c:423
 msgid "Restart"
 msgstr "Neustart"
 
 #. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:372
+#: ../client/pk-console.c:427
 msgid "Update text"
 msgstr "Text aktualisieren"
 
 #. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:376
+#: ../client/pk-console.c:431
 msgid "Changes"
 msgstr "Änderungen"
 
 #. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:380
+#: ../client/pk-console.c:435
 msgid "State"
 msgstr "Status"
 
 #. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:385
+#: ../client/pk-console.c:440
 msgid "Issued"
 msgstr "Veröffentlicht"
 
 #. TRANSLATORS: details about the update, date the update was updated
-#: ../client/pk-console.c:390
+#: ../client/pk-console.c:445
 msgid "Updated"
 msgstr "Aktualisiert"
 
-#: ../client/pk-console.c:477 ../client/pk-console.c:479
+#: ../client/pk-console.c:532
+#: ../client/pk-console.c:534
 msgid "Percentage"
 msgstr "Prozentsatz"
 
-#: ../client/pk-console.c:479
+#: ../client/pk-console.c:534
 msgid "Unknown"
 msgstr "Unbekannt"
 
 #. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:521
+#: ../client/pk-console.c:576
 msgid "System restart required by:"
 msgstr "Ein Neustart wird erfordert von:"
 
 #. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:524
+#: ../client/pk-console.c:579
 msgid "Session restart required:"
 msgstr "Ein Neustart der Sitzung ist erforderlich:"
 
 #. TRANSLATORS: a package requires the system to be restarted due to a security update
-#: ../client/pk-console.c:527
+#: ../client/pk-console.c:582
 msgid "System restart (security) required by:"
 msgstr "Ein Neustart (zur Verbesserung der Sicherheit) wird erfordert von:"
 
 #. TRANSLATORS: a package requires the session to be restarted due to a security update
-#: ../client/pk-console.c:530
+#: ../client/pk-console.c:585
 msgid "Session restart (security) required:"
-msgstr ""
-"Ein Neustart der Sitzung (zur Verbesserung der Sicherheit) ist erforderlich:"
+msgstr "Ein Neustart der Sitzung (zur Verbesserung der Sicherheit) ist erforderlich:"
 
 #. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:533
+#: ../client/pk-console.c:588
 msgid "Application restart required by:"
 msgstr "Ein Programm-Neustart wird benötigt von:"
 
 #. TRANSLATORS: a package needs to restart their system
-#: ../client/pk-console.c:588
+#: ../client/pk-console.c:643
 msgid "Please restart the computer to complete the update."
 msgstr "Bitte starten Sie den Computer neu, um das Update abzuschließen."
 
 #. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:591
+#: ../client/pk-console.c:646
 msgid "Please logout and login to complete the update."
 msgstr "Bitte erneut anmelden, um die Aktualisierung abzuschließen."
 
 #. TRANSLATORS: a package needs to restart the application
-#: ../client/pk-console.c:594
+#: ../client/pk-console.c:649
 msgid "Please restart the application as it is being used."
 msgstr "Starten Sie die Anwendung neu, da sie benutzt wird."
 
 #. TRANSLATORS: a package needs to restart their system (due to security)
-#: ../client/pk-console.c:597
-msgid ""
-"Please restart the computer to complete the update as important security "
-"updates have been installed."
-msgstr ""
-"Bitte starten Sie den Computer neu, um die Aktualisierung abzuschließen, "
-"denn es sind wichtige Sicherheitsaktualisierungen installiert worden."
+#: ../client/pk-console.c:652
+msgid "Please restart the computer to complete the update as important security updates have been installed."
+msgstr "Bitte starten Sie den Computer neu, um die Aktualisierung abzuschließen, denn es sind wichtige Sicherheitsaktualisierungen installiert worden."
 
 #. TRANSLATORS: a package needs to restart the session (due to security)
-#: ../client/pk-console.c:600
-msgid ""
-"Please logout and login to complete the update as important security updates "
-"have been installed."
-msgstr ""
-"Bitte erneut anmelden, um die Aktualisierung abzuschließen, denn es sind "
-"wichtige Sicherheitsaktualisierungen installiert worden."
+#: ../client/pk-console.c:655
+msgid "Please logout and login to complete the update as important security updates have been installed."
+msgstr "Bitte erneut anmelden, um die Aktualisierung abzuschließen, denn es sind wichtige Sicherheitsaktualisierungen installiert worden."
 
 #. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:727
+#: ../client/pk-console.c:787
 #, c-format
 msgid "The package %s is already installed"
 msgstr "Das Paket »%s« ist bereits installiert"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:735
+#: ../client/pk-console.c:795
 #, c-format
 msgid "The package %s could not be installed: %s"
 msgstr "Das Paket »%s« konnte nicht installiert werden: %s"
 
 #. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
-#: ../client/pk-console.c:760 ../client/pk-console.c:783
-#: ../client/pk-console.c:879 ../client/pk-console.c:996
-#: ../client/pk-tools-common.c:62 ../client/pk-tools-common.c:81
+#: ../client/pk-console.c:821
+#: ../client/pk-console.c:869
+#: ../client/pk-console.c:893
+#: ../client/pk-console.c:941
+#: ../client/pk-console.c:1037
+#: ../client/pk-console.c:1150
+#: ../client/pk-console.c:1211
+#: ../client/pk-tools-common.c:62
+#: ../client/pk-tools-common.c:81
 #: ../client/pk-tools-common.c:89
 #, c-format
 msgid "Internal error: %s"
 msgstr "Interner Fehler: %s"
 
+#. TRANSLATORS: We are checking if it's okay to remove a list of packages
+#: ../client/pk-console.c:853
+#: ../client/pk-console.c:925
+#: ../client/pk-console.c:1243
+msgid "Proceed with changes?"
+msgstr "Mit Änderungen fortfahren?"
+
+#. TRANSLATORS: There was an error removing the packages. The detailed error follows
+#: ../client/pk-console.c:858
+#: ../client/pk-console.c:930
+msgid "The package install was canceled!"
+msgstr "Das Installieren der Pakete wurde abgebrochen!"
+
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:768 ../client/pk-console.c:1392
+#: ../client/pk-console.c:877
+#: ../client/pk-console.c:1611
 #, c-format
 msgid "This tool could not install the packages: %s"
 msgstr "Folgende Pakete konnten nicht installiert werden: %s"
 
 #. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:791
+#: ../client/pk-console.c:949
 #, c-format
 msgid "This tool could not install the files: %s"
 msgstr "Folgende Dateien konnten nicht installiert werden: %s"
 
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:847
+#: ../client/pk-console.c:1005
 #, c-format
 msgid "This tool could not remove %s: %s"
 msgstr "»%s« konnte nicht entfernt werden: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:870 ../client/pk-console.c:908
-#: ../client/pk-console.c:941
+#: ../client/pk-console.c:1028
+#: ../client/pk-console.c:1066
+#: ../client/pk-console.c:1095
 #, c-format
 msgid "This tool could not remove the packages: %s"
 msgstr "Folgende Pakete konnten nicht entfernt werden: %s"
 
-#. TRANSLATORS: When removing, we might have to remove other dependencies
-#: ../client/pk-console.c:920
-msgid "The following packages have to be removed:"
-msgstr "Die folgenden Pakete müssen entfernt werden:"
-
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:927
-msgid "Proceed removing additional packages?"
-msgstr "Sollen die zusätzlichen Pakete entfernt werden?"
+#: ../client/pk-console.c:1081
+msgid "Proceed with additional packages?"
+msgstr "Mit zusätzlichen Paketen fortfahren?"
 
-#. TRANSLATORS: We did not remove any packages
-#: ../client/pk-console.c:932
+#. TRANSLATORS: There was an error removing the packages. The detailed error follows
+#: ../client/pk-console.c:1086
 msgid "The package removal was canceled!"
 msgstr "Das Entfernen der Pakete wurde abgebrochen!"
 
 #. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:973
+#: ../client/pk-console.c:1127
 #, c-format
 msgid "This tool could not download the package %s as it could not be found"
-msgstr ""
-"Das Paket »%s« konnte nicht heruntergeladen werden, weil es nicht gefunden "
-"wurde"
+msgstr "Das Paket »%s« konnte nicht heruntergeladen werden, weil es nicht gefunden wurde"
 
 #. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:1004
+#: ../client/pk-console.c:1158
 #, c-format
 msgid "This tool could not download the packages: %s"
 msgstr "Folgende Pakete konnten nicht heruntergeladen werden: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1031 ../client/pk-console.c:1040
+#: ../client/pk-console.c:1190
+#: ../client/pk-console.c:1202
+#: ../client/pk-console.c:1257
 #, c-format
 msgid "This tool could not update %s: %s"
 msgstr "»%s« konnte nicht aktualisiert werden: %s"
 
+#. TRANSLATORS: There was an error removing the packages. The detailed error follows
+#: ../client/pk-console.c:1248
+msgid "The package update was canceled!"
+msgstr "Das Aktualisieren der Pakete wurde abgebrochen!"
+
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1062 ../client/pk-console.c:1070
+#: ../client/pk-console.c:1281
+#: ../client/pk-console.c:1289
 #, c-format
 msgid "This tool could not get the requirements for %s: %s"
 msgstr "Die Dateiliste für »%s« konnte nicht ermittelt werden: %s"
 
 #. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:1092 ../client/pk-console.c:1100
+#: ../client/pk-console.c:1311
+#: ../client/pk-console.c:1319
 #, c-format
 msgid "This tool could not get the dependencies for %s: %s"
 msgstr "Die Abhängigkeiten für »%s« konnte nicht ermittelt werden: %s"
 
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:1122 ../client/pk-console.c:1130
+#: ../client/pk-console.c:1341
+#: ../client/pk-console.c:1349
 #, c-format
 msgid "This tool could not get package details for %s: %s"
 msgstr "Die Detailinformationen für »%s« konnten nicht ermittelt werden: %s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1152
+#: ../client/pk-console.c:1371
 #, c-format
 msgid "This tool could not find the files for %s: %s"
 msgstr "Die Dateien für »%s« konnten nicht gefunden werden: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1160
+#: ../client/pk-console.c:1379
 #, c-format
 msgid "This tool could not get the file list for %s: %s"
 msgstr "Die Dateiliste für »%s« konnte nicht ermittelt werden: %s"
 
 #. TRANSLATORS: There was an error getting the list of packages. The filename follows
-#: ../client/pk-console.c:1182
+#: ../client/pk-console.c:1401
 #, c-format
 msgid "File already exists: %s"
 msgstr "Datei ist bereits vorhanden: %s"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1187 ../client/pk-console.c:1243
-#: ../client/pk-console.c:1318
+#: ../client/pk-console.c:1406
+#: ../client/pk-console.c:1462
+#: ../client/pk-console.c:1537
 msgid "Getting package list"
 msgstr "Paketliste wird geholt"
 
 #. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1193 ../client/pk-console.c:1249
-#: ../client/pk-console.c:1324
+#: ../client/pk-console.c:1412
+#: ../client/pk-console.c:1468
+#: ../client/pk-console.c:1543
 #, c-format
 msgid "This tool could not get package list: %s"
 msgstr "Folgende Paketliste konnte nicht geholt werden: %s"
 
 #. TRANSLATORS: There was an error saving the list
-#: ../client/pk-console.c:1204
+#: ../client/pk-console.c:1423
 #, c-format
 msgid "Failed to save to disk"
 msgstr "Speichern auf dem Datenträger ist fehlgeschlagen"
 
 #. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1238 ../client/pk-console.c:1313
+#: ../client/pk-console.c:1457
+#: ../client/pk-console.c:1532
 #, c-format
 msgid "File does not exist: %s"
 msgstr "Datei nicht vorhanden: %s"
 
 #. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1270
+#: ../client/pk-console.c:1489
 msgid "Packages to add"
 msgstr "Hinzuzufügende Pakete"
 
 #. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1278
+#: ../client/pk-console.c:1497
 msgid "Packages to remove"
 msgstr "Zu entfernende Pakete"
 
 #. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1346
+#: ../client/pk-console.c:1565
 #, c-format
 msgid "No new packages need to be installed"
 msgstr "Es müssen keine neuen Pakete installiert werden"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1352
+#: ../client/pk-console.c:1571
 msgid "To install"
 msgstr "Zum Installieren"
 
 #. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1364
+#: ../client/pk-console.c:1583
 msgid "Searching for package: "
 msgstr "Suche nach Paket:"
 
 #. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1368
+#: ../client/pk-console.c:1587
 msgid "not found."
 msgstr "nicht gefunden."
 
 #. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1379
+#: ../client/pk-console.c:1598
 #, c-format
 msgid "No packages can be found to install"
 msgstr "Es können keine Pakete zum Installieren gefunden werden"
 
 #. TRANSLATORS: installing new packages from package list
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
-#: ../client/pk-console.c:1385
+#: ../client/pk-console.c:1604
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:886
 #, c-format
 msgid "Installing packages"
 msgstr "Pakete werden installiert"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1421
+#: ../client/pk-console.c:1640
 #, c-format
 msgid "This tool could not find the update details for %s: %s"
-msgstr ""
-"Die Aktualisierungsinformationen für »%s« konnten nicht gefunden werden: %s"
+msgstr "Die Aktualisierungsinformationen für »%s« konnten nicht gefunden werden: %s"
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1429
+#: ../client/pk-console.c:1648
 #, c-format
 msgid "This tool could not get the update details for %s: %s"
-msgstr ""
-"Die Aktualisierungsinformationen für »%s« konnten nicht ermittelt werden: %s"
+msgstr "Die Aktualisierungsinformationen für »%s« konnten nicht ermittelt werden: %s"
 
 #. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
-#: ../client/pk-console.c:1460
+#: ../client/pk-console.c:1679
 msgid "Error:"
 msgstr "Fehler:"
 
 #. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1474
+#: ../client/pk-console.c:1693
 msgid "Package description"
 msgstr "Paketbeschreibung"
 
 #. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
-#: ../client/pk-console.c:1490
+#: ../client/pk-console.c:1709
 msgid "Message:"
 msgstr "Hinweis:"
 
 #. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1518
+#: ../client/pk-console.c:1737
 msgid "Package files"
 msgstr "Paketdateien"
 
 #. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1526
+#: ../client/pk-console.c:1745
 msgid "No files"
 msgstr "Keine Dateien"
 
 #. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1549
+#: ../client/pk-console.c:1768
 msgid "Repository signature required"
 msgstr "Signatur des Paketdepots wird benötigt"
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1559
+#: ../client/pk-console.c:1778
 msgid "Do you accept this signature?"
 msgstr "Akzeptieren Sie diese Signatur?"
 
 #. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1563
+#: ../client/pk-console.c:1782
 msgid "The signature was not accepted."
 msgstr "Diese Signatur wurde nicht akzeptiert."
 
 #. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1597
+#: ../client/pk-console.c:1816
 msgid "End user license agreement required"
 msgstr "Lizenzvereinbarung für Endbenutzer ist erforderlich"
 
 #. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1604
+#: ../client/pk-console.c:1823
 msgid "Do you agree to this license?"
 msgstr "Sind Sie mit dieser Lizenz einverstanden?"
 
 #. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1608
+#: ../client/pk-console.c:1827
 msgid "The license was refused."
 msgstr "Die Lizenz wurde zurückgewiesen."
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1637
+#: ../client/pk-console.c:1856
 msgid "The daemon crashed mid-transaction!"
 msgstr "Der Dämon stürzte während der Transaktion ab!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1690
+#: ../client/pk-console.c:1909
 msgid "PackageKit Console Interface"
 msgstr "Schnittstelle zur PackageKit-Konsole"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1692
+#: ../client/pk-console.c:1911
 msgid "Subcommands:"
 msgstr "Unterbefehle:"
 
 #. TRANSLATORS: command line argument, if we should show debugging information
 #. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:1785 ../client/pk-generate-pack.c:185
+#: ../client/pk-console.c:2004
+#: ../client/pk-generate-pack.c:185
 #: ../client/pk-monitor.c:128
 #: ../contrib/command-not-found/pk-command-not-found.c:616
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:550
-#: ../contrib/device-rebind/pk-device-rebind.c:293 ../src/pk-main.c:211
+#: ../contrib/device-rebind/pk-device-rebind.c:293
+#: ../src/pk-main.c:211
 msgid "Show extra debugging information"
 msgstr "Erweiterte Fehlerdiagnose-Informationen anzeigen"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1788 ../client/pk-monitor.c:130
+#: ../client/pk-console.c:2007
+#: ../client/pk-monitor.c:130
 msgid "Show the program version and exit"
 msgstr "Programm-Version anzeigen und beenden"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1791
+#: ../client/pk-console.c:2010
 msgid "Set the filter, e.g. installed"
 msgstr "Den Filter setzen, z.B. »installiert«"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1794
+#: ../client/pk-console.c:2013
 msgid "Exit without waiting for actions to complete"
 msgstr "Beenden, ohne auf Beendigung der Aktionen zu warten"
 
 #. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:1821
+#: ../client/pk-console.c:2040
 msgid "This tool could not connect to system DBUS."
 msgstr "Es konnte keine Verbindung zum System-DBUS aufgebaut werden."
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1911
+#: ../client/pk-console.c:2130
 msgid "The filter specified was invalid"
 msgstr "Der angegebene Filter war ungültig"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1930
+#: ../client/pk-console.c:2149
 msgid "A search type is required, e.g. name"
 msgstr "Eine Suchart ist nötig, z.B. »Name«"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1937 ../client/pk-console.c:1946
-#: ../client/pk-console.c:1955 ../client/pk-console.c:1964
+#: ../client/pk-console.c:2156
+#: ../client/pk-console.c:2165
+#: ../client/pk-console.c:2174
+#: ../client/pk-console.c:2183
 msgid "A search term is required"
 msgstr "Ein Suchbegriff ist erforderlich"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1971
+#: ../client/pk-console.c:2190
 msgid "Invalid search type"
 msgstr "Ungültige Suchart"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1977
+#: ../client/pk-console.c:2196
 msgid "A package name or filename to install is required"
 msgstr "Ein Paket- oder Dateiname ist zur Installation nötig"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1986
+#: ../client/pk-console.c:2205
 msgid "A type, key_id and package_id are required"
 msgstr "Ein Typ, Schlüsselkennung und Paketkennung sind nötig"
 
 #. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:1995
+#: ../client/pk-console.c:2214
 msgid "A package name to remove is required"
 msgstr "Zum Entfernen wird ein Paketname benötigt"
 
 #. TRANSLATORS: the user did not specify anything about what to download or where
-#: ../client/pk-console.c:2003
-#, fuzzy
+#: ../client/pk-console.c:2222
 msgid "A destination directory and the package names to download are required"
-msgstr "Es sind ein Zielordner und dann ein Paketname zum Herunterladen nötig"
+msgstr "Es ist ein Zielordner und die Namen der Pakete zum Herunterladen notwendig"
 
 #. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:2010
+#: ../client/pk-console.c:2229
 msgid "Directory not found"
 msgstr "Ordner nicht gefunden"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2018
+#: ../client/pk-console.c:2237
 msgid "A licence identifier (eula-id) is required"
 msgstr "Eine Lizenzbezeichnung (eula-id) ist erforderlich"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2028
+#: ../client/pk-console.c:2247
 msgid "A transaction identifier (tid) is required"
 msgstr "Eine Transaktionsbezeichnung (tid) ist erforderlich"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:2045
+#: ../client/pk-console.c:2264
 msgid "A package name to resolve is required"
 msgstr "Ein Paketname ist zur Auflösung erforderlich"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:2054 ../client/pk-console.c:2063
+#: ../client/pk-console.c:2273
+#: ../client/pk-console.c:2282
 msgid "A repository name is required"
 msgstr "Ein Depotname wird benötigt"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2072
+#: ../client/pk-console.c:2291
 msgid "A repo name, parameter and value are required"
 msgstr "Ein Depotname, Parameter und Wert sind erforderlich"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:2086
+#: ../client/pk-console.c:2305
 msgid "An action, e.g. 'update-system' is required"
 msgstr "Ein Vorgang, z.B. »update-system«, wird benötigt"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:2093
+#: ../client/pk-console.c:2312
 msgid "A correct role is required"
 msgstr "Eine korrekte Rolle wird benötigt"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2100
+#: ../client/pk-console.c:2319
 msgid "Failed to get the time since this action was last completed"
-msgstr ""
-"Es war nicht möglich, die Zeit seit der letzten Fertigstellung festzustellen"
+msgstr "Es war nicht möglich, die Zeit seit der letzten Fertigstellung festzustellen"
 
 #. TRANSLATORS: The user did not provide a package name
 #. TRANSLATORS: This is when the user fails to supply the package name
-#: ../client/pk-console.c:2110 ../client/pk-console.c:2122
-#: ../client/pk-console.c:2131 ../client/pk-console.c:2149
-#: ../client/pk-console.c:2158 ../client/pk-generate-pack.c:241
+#: ../client/pk-console.c:2329
+#: ../client/pk-console.c:2341
+#: ../client/pk-console.c:2350
+#: ../client/pk-console.c:2368
+#: ../client/pk-console.c:2377
+#: ../client/pk-generate-pack.c:241
 msgid "A package name is required"
 msgstr "Ein Paketname wird benötigt"
 
 #. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:2140
+#: ../client/pk-console.c:2359
 msgid "A package provide string is required"
 msgstr "Die Zeichenkette »Stellt bereit« wird benötigt"
 
 #. TRANSLATORS: The user didn't specify a filename to create as a list
-#: ../client/pk-console.c:2167
+#: ../client/pk-console.c:2386
 msgid "A list file name to create is required"
 msgstr "Ein Dateiname ist zur Erstellung der Liste erforderlich"
 
 #. TRANSLATORS: The user didn't specify a filename to open as a list
-#: ../client/pk-console.c:2177 ../client/pk-console.c:2187
+#: ../client/pk-console.c:2396
+#: ../client/pk-console.c:2406
 msgid "A list file to open is required"
 msgstr "Ein Dateiname ist zum Öffnen der Liste erforderlich"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2241
+#: ../client/pk-console.c:2460
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "Option »%s« wird nicht unterstützt"
 
 #. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2254
+#: ../client/pk-console.c:2473
 msgid "Incorrect privileges for this operation"
 msgstr "Sie haben nicht die notwendigen Rechte für diese Operation"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2257
+#: ../client/pk-console.c:2476
 msgid "Command failed"
 msgstr "Ausführung des Befehls fehlgeschlagen"
 
@@ -723,11 +774,8 @@ msgstr "Den Dateinamen der Abhängigkeiten festlegen, die ausgeschlossen werden"
 
 #. TRANSLATORS: the output location
 #: ../client/pk-generate-pack.c:191
-msgid ""
-"The output file or directory (the current directory is used if ommitted)"
-msgstr ""
-"Die Ausgabedatei oder der Ausgabeordner (falls leer, wird der aktuelle "
-"Ordner verwendet)"
+msgid "The output file or directory (the current directory is used if ommitted)"
+msgstr "Die Ausgabedatei oder der Ausgabeordner (falls leer, wird der aktuelle Ordner verwendet)"
 
 #. TRANSLATORS: put a list of packages in the pack
 #: ../client/pk-generate-pack.c:194
@@ -756,31 +804,25 @@ msgstr "Ein Ausgabeordner oder Dateiname ist erforderlich"
 
 #. TRANSLATORS: This is when the backend doesn't have the capability to get-depends
 #. TRANSLATORS: This is when the backend doesn't have the capability to download
-#: ../client/pk-generate-pack.c:267 ../client/pk-generate-pack.c:273
+#: ../client/pk-generate-pack.c:267
+#: ../client/pk-generate-pack.c:273
 msgid "The package manager cannot perform this type of operation."
 msgstr "Die Paketverwaltung kann diesen Aufgabentyp nicht ausführen."
 
 #. TRANSLATORS: This is when the distro didn't include libarchive support into PK
 #: ../client/pk-generate-pack.c:280
-msgid ""
-"Service packs cannot be created as PackageKit was not built with libarchive "
-"support."
-msgstr ""
-"Service-Packs können nicht erstellt werden, weil PackageKit ohne "
-"Unterstützung für »libarchive« erstellt wurde."
+msgid "Service packs cannot be created as PackageKit was not built with libarchive support."
+msgstr "Service-Packs können nicht erstellt werden, weil PackageKit ohne Unterstützung für »libarchive« erstellt wurde."
 
 #. TRANSLATORS: the user specified an absolute path, but didn't get the extension correct
 #: ../client/pk-generate-pack.c:291
 msgid "If specifying a file, the service pack name must end with"
-msgstr ""
-"Wenn Sie eine Datei angeben, dann muss der Name des Service-Packs enden mit"
+msgstr "Wenn Sie eine Datei angeben, dann muss der Name des Service-Packs enden mit"
 
 #. TRANSLATORS: This is when file already exists
 #: ../client/pk-generate-pack.c:307
 msgid "A pack with the same name already exists, do you want to overwrite it?"
-msgstr ""
-"Ein Service-Pack mit dem selben Namen existiert bereits, soll es "
-"überschrieben werden?"
+msgstr "Ein Service-Pack mit dem selben Namen existiert bereits, soll es überschrieben werden?"
 
 #. TRANSLATORS: This is when the pack was not overwritten
 #: ../client/pk-generate-pack.c:310
@@ -832,7 +874,7 @@ msgstr "PackageKit-Monitor"
 
 #: ../client/pk-monitor.c:183
 msgid "Cannot show the list of transactions"
-msgstr ""
+msgstr "Liste der Transaktionen kann nicht angezeigt werden"
 
 #. TRANSLATORS: The package was not found in any software sources
 #: ../client/pk-tools-common.c:118
@@ -912,24 +954,22 @@ msgstr "Es wird installiert …"
 #. TRANSLATORS: downloading repo data so we can search
 #: ../contrib/command-not-found/pk-command-not-found.c:349
 msgid "Downloading details about the software sources."
-msgstr ""
+msgstr "Details über Softwarequellen werden heruntergeladen"
 
 #. TRANSLATORS: downloading file lists so we can search
 #: ../contrib/command-not-found/pk-command-not-found.c:353
 msgid "Downloading filelists (this may take some time to complete)."
-msgstr ""
+msgstr "Dateilisten werden heruntergeladen (dies kann einen Moment dauern)"
 
 #. TRANSLATORS: waiting for native lock
 #: ../contrib/command-not-found/pk-command-not-found.c:357
-#, fuzzy
 msgid "Waiting for package manager lock."
-msgstr "Paketnamen werden gesucht."
+msgstr "Auf Blockierung des Paketmanagers wird gewartet"
 
 #. TRANSLATORS: loading package cache so we can search
 #: ../contrib/command-not-found/pk-command-not-found.c:361
-#, fuzzy
 msgid "Loading list of packages."
-msgstr "Pakete werden heruntergeladen"
+msgstr "Paketliste wird geladen."
 
 #. TRANSLATORS: we failed to find the package, this shouldn't happen
 #: ../contrib/command-not-found/pk-command-not-found.c:420
@@ -982,8 +1022,7 @@ msgstr "Das folgende Paket stellt diese Datei bereit:"
 #: ../contrib/command-not-found/pk-command-not-found.c:726
 #, c-format
 msgid "Install package '%s' to provide command '%s'?"
-msgstr ""
-"Soll das Paket »%s« installiert werden, welches den Befehl »%s« bereitstellt?"
+msgstr "Soll das Paket »%s« installiert werden, welches den Befehl »%s« bereitstellt?"
 
 #. TRANSLATORS: Show the user a list of packages that provide this command
 #: ../contrib/command-not-found/pk-command-not-found.c:747
@@ -1010,17 +1049,12 @@ msgstr "Installation wird begonnen"
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:397
 #, c-format
 msgid "Failed to find the package %s, or already installed: %s"
-msgstr ""
-"Das Paket »%s« konnte nicht gefunden werden, oder es ist bereits installiert: "
-"%s"
+msgstr "Das Paket »%s« konnte nicht gefunden werden, oder es ist bereits installiert: %s"
 
 #. command line argument, simulate what would be done, but don't actually do it
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:553
-msgid ""
-"Don't actually install any packages, only simulate what would be installed"
-msgstr ""
-"Keine Pakete tatsächlich installieren, sondern nur die Installation "
-"simulieren"
+msgid "Don't actually install any packages, only simulate what would be installed"
+msgstr "Keine Pakete tatsächlich installieren, sondern nur die Installation simulieren"
 
 #. command line argument, do we skip packages that depend on the ones specified
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:556
@@ -1192,103 +1226,91 @@ msgstr "%i Fehlerdiagnose-Quellen wurden deaktiviert."
 
 #. TRANSLATORS: couldn't open device to write
 #: ../contrib/device-rebind/pk-device-rebind.c:61
-#, fuzzy
 msgid "Failed to open file"
-msgstr "Die Suche nach der Datei ist fehlgeschlagen"
+msgstr "Das Öffnen der Datei ist fehlgeschlagen"
 
 #. TRANSLATORS: could not write to the device
 #: ../contrib/device-rebind/pk-device-rebind.c:70
-#, fuzzy
 msgid "Failed to write to the file"
-msgstr "Die Suche nach der Datei ist fehlgeschlagen"
+msgstr "Das Schreiben in die Datei ist fehlgeschlagen"
 
 #. TRANSLATORS: we failed to release the current driver
 #: ../contrib/device-rebind/pk-device-rebind.c:110
 #: ../contrib/device-rebind/pk-device-rebind.c:147
-#, fuzzy
 msgid "Failed to write to device"
-msgstr "Speichern auf dem Datenträger ist fehlgeschlagen"
+msgstr "Das Schreiben auf dem Gerät ist fehlgeschlagen"
 
 #. TRANSLATORS: the device could not be found in sysfs
 #: ../contrib/device-rebind/pk-device-rebind.c:175
-#, fuzzy
 msgid "Device could not be found"
-msgstr "Das Paket konnte nicht gefunden werden"
+msgstr "Das Gerät konnte nicht gefunden werden"
 
 #. TRANSLATORS: we failed to release the current driver
 #: ../contrib/device-rebind/pk-device-rebind.c:202
 #, fuzzy
 msgid "Failed to unregister driver"
-msgstr "Ordner konnte nicht erstellt werden:"
+msgstr "Treiber konnte nicht abgemeldet werden"
 
 #. TRANSLATORS: we failed to bind the old driver
 #: ../contrib/device-rebind/pk-device-rebind.c:211
-#, fuzzy
 msgid "Failed to register driver"
-msgstr "Ordner konnte nicht erstellt werden:"
+msgstr "Treiber konnte nicht registriert werden"
 
 #. TRANSLATORS: user did not specify a device sysfs path that exists
 #: ../contrib/device-rebind/pk-device-rebind.c:260
-#, fuzzy
 msgid "Device path not found"
-msgstr "Ordner nicht gefunden"
+msgstr "Gerätepfad nicht gefunden"
 
 #. TRANSLATORS: user did not specify a valid device sysfs path
 #: ../contrib/device-rebind/pk-device-rebind.c:268
 msgid "Incorrect device path specified"
-msgstr ""
+msgstr "Falschen Gerätepfad angegeben"
 
 #. command line argument, simulate what would be done, but don't actually do it
 #: ../contrib/device-rebind/pk-device-rebind.c:296
-#, fuzzy
 msgid "Don't actually touch the hardware, only simulate what would be done"
-msgstr ""
-"Keine Pakete tatsächlich installieren, sondern nur die Installation "
-"simulieren"
+msgstr "Keine Hardware tatsächlich anrühren, sondern nur simulieren, was gemacht wird"
 
 #. TRANSLATORS: command line option: a list of files to install
 #: ../contrib/device-rebind/pk-device-rebind.c:299
 msgid "Device paths"
-msgstr ""
+msgstr "Gerätepfade"
 
 #. TRANSLATORS: tool that gets called when the device needs reloading after installing firmware
 #: ../contrib/device-rebind/pk-device-rebind.c:314
 #, fuzzy
 msgid "PackageKit Device Reloader"
-msgstr "PackageKit Service-Pack"
+msgstr "PackageKit "
 
 #. TRANSLATORS: user did not specify a valid device sysfs path
 #: ../contrib/device-rebind/pk-device-rebind.c:322
-#, fuzzy
 msgid "You need to specify at least one valid device path"
-msgstr "Sie müssen eine Dateiliste zum Erzeugen angeben"
+msgstr "Sie müssen mindestens einen korrekten Gerätepfad angeben"
 
 #. TRANSLATORS: user did not specify a valid device sysfs path
 #: ../contrib/device-rebind/pk-device-rebind.c:332
 msgid "This script can only be used by the root user"
-msgstr ""
+msgstr "Dieses Skript kann nur von dem Root-Benutzer verwendet werden."
 
 #. TRANSLATORS: we're going to verify the path first
 #: ../contrib/device-rebind/pk-device-rebind.c:341
 msgid "Verifying device path"
-msgstr ""
+msgstr "Gerätepfad wird geprüft"
 
 #. TRANSLATORS: user did not specify a device sysfs path that exists
 #: ../contrib/device-rebind/pk-device-rebind.c:346
-#, fuzzy
 msgid "Failed to verify device path"
-msgstr "Die Suche nach der Datei ist fehlgeschlagen"
+msgstr "Überprüfung des Gerätepfades ist fehlgeschlagen"
 
 #. TRANSLATORS: we're going to try
 #: ../contrib/device-rebind/pk-device-rebind.c:360
 msgid "Attempting to rebind device"
-msgstr ""
+msgstr "Neu Einbinden des Gerätes wird versucht"
 
 #. TRANSLATORS: we failed to release the current driver
 #: ../contrib/device-rebind/pk-device-rebind.c:365
-#, fuzzy
 msgid "Failed to rebind device"
-msgstr "Ordner konnte nicht erstellt werden:"
+msgstr "Neu Einbinden des Gerätes ist fehlgeschlagen"
 
 #: ../data/packagekit-catalog.xml.in.h:1
 msgid "PackageKit Catalog"
@@ -1317,44 +1339,32 @@ msgid "Authentication is required to accept a EULA"
 msgstr "Legitimation ist zum Annehmen der EULA erforderlich"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:9
-msgid ""
-"Authentication is required to cancel a task that was not started by yourself"
-msgstr ""
-"Legitimation ist zum Abbrechen einer Aufgabe erforderlich, die nicht von "
-"Ihnen initiiert wurde"
+msgid "Authentication is required to cancel a task that was not started by yourself"
+msgstr "Legitimation ist zum Abbrechen einer Aufgabe erforderlich, die nicht von Ihnen initiiert wurde"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:10
 msgid "Authentication is required to change software source parameters"
-msgstr ""
-"Legitimation ist zur Änderung der Einstellungen zu den Softwarequellen "
-"erforderlich"
+msgstr "Legitimation ist zur Änderung der Einstellungen zu den Softwarequellen erforderlich"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:11
-msgid ""
-"Authentication is required to consider a key used for signing packages as "
-"trusted"
-msgstr ""
-"Legitimation ist zum Vertrauen eines Paketsignaturschlüssels erforderlich"
+msgid "Authentication is required to consider a key used for signing packages as trusted"
+msgstr "Legitimation ist zum Vertrauen eines Paketsignaturschlüssels erforderlich"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:12
 msgid "Authentication is required to install a signed package"
-msgstr ""
-"Legitimation ist zum Installieren eines signierten Paketes erforderlich"
+msgstr "Legitimation ist zum Installieren eines signierten Paketes erforderlich"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:13
 msgid "Authentication is required to install an untrusted package"
-msgstr ""
-"Legitimation ist zum Installieren eines nicht vertrauenswürdigen Paketes "
-"erforderlich"
+msgstr "Legitimation ist zum Installieren eines nicht vertrauenswürdigen Paketes erforderlich"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:14
 msgid "Authentication is required to refresh the system sources"
 msgstr "Legitimation ist zum Aktualisieren der Systemressourcen erforderlich"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:15
-#, fuzzy
 msgid "Authentication is required to reload the device with a new driver"
-msgstr "Legitimation ist zum Aktualisieren der Systemressourcen erforderlich"
+msgstr "Legitimation ist erforderlich, um das Gerät mit einem neuen Treiber zu laden"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:16
 msgid "Authentication is required to remove packages"
@@ -1365,12 +1375,8 @@ msgid "Authentication is required to rollback a transaction"
 msgstr "Legitimation ist zum Revidieren einer Transaktion erforderlich"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:18
-msgid ""
-"Authentication is required to set the network proxy used for downloading "
-"packages"
-msgstr ""
-"Legitimation ist zum Festlegen eines Netzwerk-Proxys zum Herunterladen von "
-"Paketen erforderlich"
+msgid "Authentication is required to set the network proxy used for downloading packages"
+msgstr "Legitimation ist zum Festlegen eines Netzwerk-Proxys zum Herunterladen von Paketen erforderlich"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:19
 msgid "Authentication is required to update packages"
@@ -1431,7 +1437,7 @@ msgstr "Systemressourcen aktualisieren"
 #.
 #: ../policy/org.freedesktop.packagekit.policy.in.h:58
 msgid "Reload a device"
-msgstr ""
+msgstr "Ein Gerät neu laden"
 
 #. SECURITY:
 #. - Normal users require admin authentication to remove packages as
@@ -1497,17 +1503,12 @@ msgstr "Dies kann aus zwei Gründen passieren:"
 #. TRANSLATORS: only allowed to be owned by root
 #: ../src/pk-main.c:91
 msgid "The correct user is not launching the executable (usually root)"
-msgstr ""
-"Der korrekte Benutzer führt nicht das Programm aus (normalerweise root)"
+msgstr "Der korrekte Benutzer führt nicht das Programm aus (normalerweise root)"
 
 #. TRANSLATORS: or we are installed in a prefix
 #: ../src/pk-main.c:93
-msgid ""
-"The org.freedesktop.PackageKit.conf file is not installed in the system "
-"directory:"
-msgstr ""
-"Die org.freedesktop.PackageKit.conf-Datei ist nicht auf Ihrem Rechner im "
-"Systemordner installiert:"
+msgid "The org.freedesktop.PackageKit.conf file is not installed in the system directory:"
+msgstr "Die org.freedesktop.PackageKit.conf-Datei ist nicht auf Ihrem Rechner im Systemordner installiert:"
 
 #. TRANSLATORS: a backend is the system package tool, e.g. yum, apt
 #: ../src/pk-main.c:205
@@ -1556,49 +1557,39 @@ msgstr "Fehler beim Startversuch:"
 
 #: ../src/pk-polkit-action-lookup.c:147
 msgid "To install debugging packages, extra sources need to be enabled"
-msgstr ""
-"Zur Installation von Fehlerdiagnose-Paketen müssen zusätzliche Quellen "
-"aktiviert werden"
+msgstr "Zur Installation von Fehlerdiagnose-Paketen müssen zusätzliche Quellen aktiviert werden"
 
 #. TRANSLATORS: is not GPG signed
-#: ../src/pk-polkit-action-lookup.c:168 ../src/pk-polkit-action-lookup.c:187
+#: ../src/pk-polkit-action-lookup.c:168
+#: ../src/pk-polkit-action-lookup.c:187
 msgid "The software is not from a trusted source."
 msgstr "Sie Software stammt nicht aus einer vertrauenswürdigen Quelle."
 
 #: ../src/pk-polkit-action-lookup.c:173
 msgid "Do not update this package unless you are sure it is safe to do so."
-msgstr ""
-"Aktualisieren Sie dieses Paket nur, wenn Sie überzeugt sind, dass dies "
-"sicher ist."
+msgstr "Aktualisieren Sie dieses Paket nur, wenn Sie überzeugt sind, dass dies sicher ist."
 
 #: ../src/pk-polkit-action-lookup.c:174
-#, fuzzy
 msgid "Do not update these packages unless you are sure it is safe to do so."
-msgstr ""
-"Aktualisieren Sie dieses Paket nur, wenn Sie überzeugt sind, dass dies "
-"sicher ist."
+msgstr "Aktualisieren Sie diese Pakete nur, wenn Sie dies für sicher halten."
 
 #: ../src/pk-polkit-action-lookup.c:192
 msgid "Do not install this package unless you are sure it is safe to do so."
 msgstr "Installieren Sie dieses Paket nur, wenn Sie dies für sicher halten."
 
 #: ../src/pk-polkit-action-lookup.c:193
-#, fuzzy
 msgid "Do not install these packages unless you are sure it is safe to do so."
-msgstr "Installieren Sie dieses Paket nur, wenn Sie dies für sicher halten."
+msgstr "Installieren Sie diese Pakete nur, wenn Sie dies für sicher halten."
 
 #. TRANSLATORS: warn the user that all bets are off
 #: ../src/pk-polkit-action-lookup.c:199
 msgid "Malicious software can damage your computer or cause other harm."
-msgstr ""
-"Bösartige Software kann Ihren Computer beschädigen oder anderen Schaden "
-"anrichten."
+msgstr "Bösartige Software kann Ihren Computer beschädigen oder anderen Schaden anrichten."
 
 #. TRANSLATORS: too many packages to list each one
 #: ../src/pk-polkit-action-lookup.c:274
-#, fuzzy
 msgid "Many packages"
-msgstr "Pakete aktualisieren"
+msgstr "Viele Pakete"
 
 #. TRANSLATORS: if the transaction is forced to install only trusted packages
 #: ../src/pk-polkit-action-lookup.c:334
@@ -1607,7 +1598,6 @@ msgstr "Nur vertrauenswürdige"
 
 #~ msgid "The action, one of 'create', 'add', or 'remove'"
 #~ msgstr "Aktion ('create', 'add' oder 'remove')"
-
 #~ msgid "Main cache file to use (if not specififed, default is used)"
 #~ msgstr ""
 #~ "Hauptzwischenspeicher-Datei (wenn nicht genannt, wird die Standarddatei "
@@ -1617,10 +1607,8 @@ msgstr "Nur vertrauenswürdige"
 #~ msgid "Source cache file to add to the main database"
 #~ msgstr ""
 #~ "Quellen-Zwischenspeicher, der zur Hauptdatenbank hinzugefügt werden soll"
-
 #~ msgid "Icon directory"
 #~ msgstr "Symbol-Verzeichnis"
-
 #~ msgid "Name of the remote repo"
 #~ msgstr "Name der entfernten Quelle"
 
@@ -1632,105 +1620,74 @@ msgstr "Nur vertrauenswürdige"
 #~ msgid "Main database file to use (if not specififed, default is used)"
 #~ msgstr ""
 #~ "Hauptdatenbank-Datei (wenn nicht genannt, wird die Standard-Datei benutzt)"
-
 #~ msgid "You need to specify a search type, e.g. name"
 #~ msgstr "Sie müssen einen Suchtyp angeben, z.B. einen Namen"
-
 #~ msgid "You need to specify a search term"
 #~ msgstr "Sie müssen einen Suchwert angeben"
-
 #~ msgid "You need to specify a package to remove"
 #~ msgstr "Sie müssen ein Paket zum Löschen angeben"
-
 #~ msgid "You need to specify a package name to resolve"
 #~ msgstr "Sie müssen einen Paketnamen zum Auflösen angeben"
-
 #~ msgid "You need to specify a repository name"
 #~ msgstr "Sie müssen einen Repository-Namen angeben"
-
 #~ msgid "You need to specify an action, e.g. 'update-system'"
 #~ msgstr "Sie müssen eine Aktion angeben, z.B. 'update-system'"
-
 #~ msgid "You need to specify a correct role"
 #~ msgstr "Sie müssen eine korrekte Rolle angeben"
-
 #~ msgid "You need to specify a package to find the details for"
 #~ msgstr "Sie müssen ein Paket, für das nach Details gesucht wird, angeben"
-
 #~ msgid "You need to specify a package to find the files for"
 #~ msgstr "Sie müssen ein Paket, für das nach Dateien gesucht wird, angeben"
-
 #~ msgid "You need to specify a list file to open"
 #~ msgstr "Sie müssen eine Dateiliste zum Öffnen angeben"
-
 #~ msgid "This tool could not remove the packages: '%s'"
 #~ msgstr "Dieser Werkzeug konnte das Paket nicht entfernen: '%s'"
-
 #~ msgid "Could not find package to remove"
 #~ msgstr "Packet zum Löschen konnte nicht gefunden werden"
-
 #~ msgid "Cancelled!"
 #~ msgstr "Abbruch!"
-
 #~ msgid "Could not find package to download"
 #~ msgstr "Das Packet zum Herunterladen konnte nicht gefunden werden"
-
 #~ msgid "Could not find package to update"
 #~ msgstr "Das Packet zum Aktualisieren konnte nicht gefunden werden"
-
 #~ msgid "Could not find what packages require"
 #~ msgstr "Konnte nicht herausfinden, was die Packete benötigen"
-
 #~ msgid "Could not find details for"
 #~ msgstr "Konnte keine Details finden für"
-
 #~ msgid "Okay to import key?"
 #~ msgstr "Soll der Schlüssel importiert werden?"
-
 #~ msgid "Did not import key"
 #~ msgstr "Schlüssel wurde nicht importiert"
-
 #~ msgid "Did not agree to licence, task will fail"
 #~ msgstr "Sie stimmten der Lizenz nicht zu, die Aufgabe wird fehlschlagen"
-
 #~ msgid "failed to download: invalid package_id and/or directory"
 #~ msgstr ""
 #~ "Herunterladen fehlgeschlagen: Ungültige package_id und/oder ungültiges "
 #~ "Verzeichnis"
-
 #~ msgid "Could not find a valid metadata file"
 #~ msgstr "Eine gültige Metadata–Datei konnte nicht gefunden werden"
-
 #~ msgid "Okay to download the additional packages"
 #~ msgstr "Möchten Sie die zusätzlichen Packete herunterladen"
-
 #~ msgid "You need to specify the pack name and packages to be packed\n"
 #~ msgstr "Sie müssen einen Packnamen und Packete zum Packen angeben\n"
-
 #~ msgid ""
 #~ "Invalid name for the service pack, Specify a name with .servicepack "
 #~ "extension\n"
 #~ msgstr ""
 #~ "Ungültiger Name für ein Service Pack, geben Sie einen Namen an mit ."
 #~ "servicepack als Endung\n"
-
 #~ msgid "Could not set database readonly"
 #~ msgstr "Datenbank konnte nicht nur-lesbar gesetzt werden"
-
 #~ msgid "Could not open database: %s"
 #~ msgstr "Datenbank %s konnte nicht geöffnet werden"
-
 #~ msgid "You probably need to run this program as the root user"
 #~ msgstr "Sie sollten dieses Programm vermutlich als Benutzer root ausführen"
-
 #~ msgid "<span color='#%06x' underline='single' size='larger'>Run %s</span>"
 #~ msgstr ""
 #~ "<span color='#%06x' underline='single' size='larger'>%s wird ausgeführt</"
 #~ "span>"
-
 #~ msgid "<big>%s</big>"
 #~ msgstr "<big>%s</big>"
-
 #~ msgid ""
 #~ "\n"
 #~ "<span color='#%06x' underline='single'>Run version %s now</span>"
@@ -1738,30 +1695,27 @@ msgstr "Nur vertrauenswürdige"
 #~ "\n"
 #~ "<span color='#%06x' underline='single'>Version %s wird jetzt ausgeführt</"
 #~ "span>"
-
 #~ msgid ""
 #~ "\n"
 #~ "<span color='#%06x' underline='single'>Run now</span>"
 #~ msgstr ""
 #~ "\n"
 #~ "<span color='#%06x' underline='single'>Wird jetzt ausgeführt</span>"
-
 #~ msgid ""
 #~ "\n"
 #~ "<span color='#%06x' underline='single'>Upgrade to version %s</span>"
 #~ msgstr ""
 #~ "\n"
 #~ "<span color='#%06x' underline='single'>Aktualisiere zu Version %s</span>"
-
 #~ msgid ""
 #~ "<span color='#%06x' underline='single' size='larger'>Install %s Now</span>"
 #~ msgstr ""
 #~ "<span color='#%06x' underline='single' size='larger'>%s wird jetzt "
 #~ "installiert</span>"
-
 #~ msgid ""
 #~ "\n"
 #~ "<small>Version: %s</small>"
 #~ msgstr ""
 #~ "\n"
 #~ "<small>Version: %s</small>"
+
commit ca755c7dbf0e3c6f6e0a1b50a80b82fb5e9c2adc
Author: logan <logan at fedoraproject.org>
Date:   Tue Aug 25 13:53:09 2009 +0000

    Sending translation for Spanish

diff --git a/po/es.po b/po/es.po
index 5241da4..3fbf841 100644
--- a/po/es.po
+++ b/po/es.po
@@ -9,9 +9,9 @@ msgid ""
 msgstr ""
 "Project-Id-Version: packagekit\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-08-24 19:37+0000\n"
-"PO-Revision-Date: 2009-08-24 19:28-0300\n"
-"Last-Translator: Domingo Becker <domingobecker at gmail.com>\n"
+"POT-Creation-Date: 2009-08-25 08:29+0000\n"
+"PO-Revision-Date: 2009-08-25 10:52-0300\n"
+"Last-Translator: Héctor Daniel Cabrera <h.daniel.cabrera at gmail.com>\n"
 "Language-Team: Fedora Spanish <fedora-trans-es at redhat.com>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -36,12 +36,12 @@ msgstr "Existosa"
 
 #. TRANSLATORS: if the repo is enabled
 #: ../client/pk-console.c:239
-#: ../client/pk-console.c:406
+#: ../client/pk-console.c:461
 msgid "True"
 msgstr "Verdadero"
 
 #: ../client/pk-console.c:239
-#: ../client/pk-console.c:406
+#: ../client/pk-console.c:461
 msgid "False"
 msgstr "Falso"
 
@@ -91,56 +91,76 @@ msgstr "Paquete afectados:"
 msgid "Affected packages: None"
 msgstr "Paquetes afectados: Ninguno"
 
+#. TRANSLATORS: When processing, we might have to remove other dependencies
+#: ../client/pk-console.c:330
+msgid "The following packages have to be removed:"
+msgstr "Se eliminarán los siguientes paquetes:"
+
+#. TRANSLATORS: When processing, we might have to install other dependencies
+#: ../client/pk-console.c:333
+msgid "The following packages have to be installed:"
+msgstr "Los siguientes paquetes se deben instalar:"
+
+#. TRANSLATORS: When processing, we might have to update other dependencies
+#: ../client/pk-console.c:336
+msgid "The following packages have to be updated:"
+msgstr "Los siguientes paquetes se deben actualizar:"
+
+#. TRANSLATORS: When processing, we might have to reinstall other dependencies
+#: ../client/pk-console.c:339
+msgid "The following packages have to be reinstalled:"
+msgstr "Los siguientes paquetes se deben reinstalar:"
+
 #. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:298
+#: ../client/pk-console.c:353
 msgid "Distribution"
 msgstr "Distribución"
 
 #. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:300
+#: ../client/pk-console.c:355
 msgid "Type"
 msgstr "Tipo"
 
 #. TRANSLATORS: this is any summary text describing the upgrade
 #. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:302
-#: ../client/pk-console.c:325
+#: ../client/pk-console.c:357
+#: ../client/pk-console.c:380
 msgid "Summary"
 msgstr "Resúmen"
 
 #. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:314
+#: ../client/pk-console.c:369
 msgid "Category"
 msgstr "Categoría"
 
 #. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:316
+#: ../client/pk-console.c:371
 msgid "ID"
 msgstr "ID"
 
 #. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:319
+#: ../client/pk-console.c:374
 msgid "Parent"
 msgstr "Padre"
 
 #. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:322
+#: ../client/pk-console.c:377
 msgid "Name"
 msgstr "Nombre"
 
 #. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:328
+#: ../client/pk-console.c:383
 msgid "Icon"
 msgstr "Icono"
 
 #. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:343
+#: ../client/pk-console.c:398
 msgid "Details about the update:"
 msgstr "Detalles acerca de la actualización:"
 
 #. TRANSLATORS: details about the update, package name and version
 #. TRANSLATORS: title, the names of the packages that the method is processing
-#: ../client/pk-console.c:345
+#: ../client/pk-console.c:400
 #: ../src/pk-polkit-action-lookup.c:352
 msgid "Package"
 msgid_plural "Packages"
@@ -148,136 +168,139 @@ msgstr[0] "Paquete"
 msgstr[1] "Paquetes"
 
 #. TRANSLATORS: details about the update, any packages that this update updates
-#: ../client/pk-console.c:348
+#: ../client/pk-console.c:403
 msgid "Updates"
 msgstr "Actualizaciones"
 
 #. TRANSLATORS: details about the update, any packages that this update obsoletes
-#: ../client/pk-console.c:352
+#: ../client/pk-console.c:407
 msgid "Obsoletes"
 msgstr "Sustituye"
 
 #. TRANSLATORS: details about the update, the vendor URLs
-#: ../client/pk-console.c:356
+#: ../client/pk-console.c:411
 msgid "Vendor"
 msgstr "Fabricante"
 
 #. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:360
+#: ../client/pk-console.c:415
 msgid "Bugzilla"
 msgstr "Bugzilla"
 
 #. TRANSLATORS: details about the update, the CVE URLs
-#: ../client/pk-console.c:364
+#: ../client/pk-console.c:419
 msgid "CVE"
 msgstr "CVE"
 
 #. TRANSLATORS: details about the update, if the package requires a restart
-#: ../client/pk-console.c:368
+#: ../client/pk-console.c:423
 msgid "Restart"
 msgstr "Reiniciar"
 
 #. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:372
+#: ../client/pk-console.c:427
 msgid "Update text"
 msgstr "Texto de actualización"
 
 #. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:376
+#: ../client/pk-console.c:431
 msgid "Changes"
 msgstr "Cambios"
 
 #. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:380
+#: ../client/pk-console.c:435
 msgid "State"
 msgstr "Estado"
 
 #. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:385
+#: ../client/pk-console.c:440
 msgid "Issued"
 msgstr "Emitido"
 
 #. TRANSLATORS: details about the update, date the update was updated
-#: ../client/pk-console.c:390
+#: ../client/pk-console.c:445
 msgid "Updated"
 msgstr "Actualizado"
 
-#: ../client/pk-console.c:477
-#: ../client/pk-console.c:479
+#: ../client/pk-console.c:532
+#: ../client/pk-console.c:534
 msgid "Percentage"
 msgstr "Porcentaje"
 
-#: ../client/pk-console.c:479
+#: ../client/pk-console.c:534
 msgid "Unknown"
 msgstr "Desconocido"
 
 #. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:521
+#: ../client/pk-console.c:576
 msgid "System restart required by:"
 msgstr "Se necesita reiniciar el sistema debido a:"
 
 #. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:524
+#: ../client/pk-console.c:579
 msgid "Session restart required:"
 msgstr "Se necesita reiniciar la sesión:"
 
 #. TRANSLATORS: a package requires the system to be restarted due to a security update
-#: ../client/pk-console.c:527
+#: ../client/pk-console.c:582
 msgid "System restart (security) required by:"
 msgstr "Reinicio del sistema (seguridad) solicitado por:"
 
 #. TRANSLATORS: a package requires the session to be restarted due to a security update
-#: ../client/pk-console.c:530
+#: ../client/pk-console.c:585
 msgid "Session restart (security) required:"
 msgstr "Reinicio de la sesión (seguridad) solicitado por:"
 
 #. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:533
+#: ../client/pk-console.c:588
 msgid "Application restart required by:"
 msgstr "Se necesita reiniciar una aplicación debido a:"
 
 #. TRANSLATORS: a package needs to restart their system
-#: ../client/pk-console.c:588
+#: ../client/pk-console.c:643
 msgid "Please restart the computer to complete the update."
 msgstr "Reinicie el equipo para completar la actualización."
 
 #. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:591
+#: ../client/pk-console.c:646
 msgid "Please logout and login to complete the update."
 msgstr "Cierre la sesión y vuelva a entrar para completar la actualización."
 
 #. TRANSLATORS: a package needs to restart the application
-#: ../client/pk-console.c:594
+#: ../client/pk-console.c:649
 msgid "Please restart the application as it is being used."
 msgstr "Reinicie la aplicación que está usando."
 
 #. TRANSLATORS: a package needs to restart their system (due to security)
-#: ../client/pk-console.c:597
+#: ../client/pk-console.c:652
 msgid "Please restart the computer to complete the update as important security updates have been installed."
 msgstr "Por favor, reinicie el equipo para completar la actualización, ya que se han instalado actualizaciones de seguridad importantes."
 
 #. TRANSLATORS: a package needs to restart the session (due to security)
-#: ../client/pk-console.c:600
+#: ../client/pk-console.c:655
 msgid "Please logout and login to complete the update as important security updates have been installed."
 msgstr "Por favor, cierre la sesión y vuelva a registrarse para completar la actualización, ya que se han instalado actualizaciones de seguridad importantes."
 
 #. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:727
+#: ../client/pk-console.c:787
 #, c-format
 msgid "The package %s is already installed"
 msgstr "El paquete %s ya está instalado"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:735
+#: ../client/pk-console.c:795
 #, c-format
 msgid "The package %s could not be installed: %s"
 msgstr "No se pudo instalar el paquete %s: %s"
 
 #. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
-#: ../client/pk-console.c:760
-#: ../client/pk-console.c:783
-#: ../client/pk-console.c:933
-#: ../client/pk-console.c:1046
+#: ../client/pk-console.c:821
+#: ../client/pk-console.c:869
+#: ../client/pk-console.c:893
+#: ../client/pk-console.c:941
+#: ../client/pk-console.c:1037
+#: ../client/pk-console.c:1150
+#: ../client/pk-console.c:1211
 #: ../client/pk-tools-common.c:62
 #: ../client/pk-tools-common.c:81
 #: ../client/pk-tools-common.c:89
@@ -285,279 +308,278 @@ msgstr "No se pudo instalar el paquete %s: %s"
 msgid "Internal error: %s"
 msgstr "Error interno: %s"
 
+#. TRANSLATORS: We are checking if it's okay to remove a list of packages
+#: ../client/pk-console.c:853
+#: ../client/pk-console.c:925
+#: ../client/pk-console.c:1243
+msgid "Proceed with changes?"
+msgstr "¿Proceder con los cambios?"
+
+#. TRANSLATORS: There was an error removing the packages. The detailed error follows
+#: ../client/pk-console.c:858
+#: ../client/pk-console.c:930
+msgid "The package install was canceled!"
+msgstr "¡Se canceló la instalación del paquete!"
+
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:768
-#: ../client/pk-console.c:1442
+#: ../client/pk-console.c:877
+#: ../client/pk-console.c:1611
 #, c-format
 msgid "This tool could not install the packages: %s"
 msgstr "Esta herramienta no pudo instalar los paquetes: %s"
 
 #. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:791
+#: ../client/pk-console.c:949
 #, c-format
 msgid "This tool could not install the files: %s"
 msgstr "Esta herramienta no pudo instalar los archivos: %s"
 
-#. TRANSLATORS: When processing, we might have to remove other dependencies
-#: ../client/pk-console.c:863
-msgid "The following packages have to be removed:"
-msgstr "Se eliminarán los siguientes paquetes:"
-
-#. TRANSLATORS: When processing, we might have to install other dependencies
-#: ../client/pk-console.c:866
-msgid "The following packages have to be installed:"
-msgstr "Los siguientes paquetes se deben instalar:"
-
-#. TRANSLATORS: When processing, we might have to update other dependencies
-#: ../client/pk-console.c:869
-msgid "The following packages have to be updated:"
-msgstr "Los siguientes paquetes se deben actualizar:"
-
-#. TRANSLATORS: When processing, we might have to reinstall other dependencies
-#: ../client/pk-console.c:872
-msgid "The following packages have to be reinstalled:"
-msgstr "Los siguientes paquetes se deben reinstalar:"
-
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:901
+#: ../client/pk-console.c:1005
 #, c-format
 msgid "This tool could not remove %s: %s"
 msgstr "Esta herramienta no pudo eliminar %s: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:924
-#: ../client/pk-console.c:962
-#: ../client/pk-console.c:991
+#: ../client/pk-console.c:1028
+#: ../client/pk-console.c:1066
+#: ../client/pk-console.c:1095
 #, c-format
 msgid "This tool could not remove the packages: %s"
 msgstr "Esta herramienta no pudo eliminar los paquetes: %s"
 
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:977
+#: ../client/pk-console.c:1081
 msgid "Proceed with additional packages?"
 msgstr "¿Proceder con los paquetes adicionales?"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:982
+#: ../client/pk-console.c:1086
 msgid "The package removal was canceled!"
 msgstr "Se canceló la eliminación de paquetes"
 
 #. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:1023
+#: ../client/pk-console.c:1127
 #, c-format
 msgid "This tool could not download the package %s as it could not be found"
 msgstr "Esta herramienta no pudo descargar el paquete %s debido a que no se encontró"
 
 #. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:1054
+#: ../client/pk-console.c:1158
 #, c-format
 msgid "This tool could not download the packages: %s"
 msgstr "Esta herramienta no pudo descargar los paquetes: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1081
-#: ../client/pk-console.c:1090
+#: ../client/pk-console.c:1190
+#: ../client/pk-console.c:1202
+#: ../client/pk-console.c:1257
 #, c-format
 msgid "This tool could not update %s: %s"
 msgstr "Esta herramienta no pudo actualizar %s: %s"
 
+#. TRANSLATORS: There was an error removing the packages. The detailed error follows
+#: ../client/pk-console.c:1248
+msgid "The package update was canceled!"
+msgstr "¡Se canceló la actualización del paquete!"
+
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1112
-#: ../client/pk-console.c:1120
+#: ../client/pk-console.c:1281
+#: ../client/pk-console.c:1289
 #, c-format
 msgid "This tool could not get the requirements for %s: %s"
 msgstr "Esta herramienta no pudo obtener los requerimientos de %s: %s"
 
 #. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:1142
-#: ../client/pk-console.c:1150
+#: ../client/pk-console.c:1311
+#: ../client/pk-console.c:1319
 #, c-format
 msgid "This tool could not get the dependencies for %s: %s"
 msgstr "Esta herramienta no pudo obtener las dependencias de %s: %s"
 
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:1172
-#: ../client/pk-console.c:1180
+#: ../client/pk-console.c:1341
+#: ../client/pk-console.c:1349
 #, c-format
 msgid "This tool could not get package details for %s: %s"
 msgstr "Esta herramienta no pudo obtener los detalles del paquete %s: %s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1202
+#: ../client/pk-console.c:1371
 #, c-format
 msgid "This tool could not find the files for %s: %s"
 msgstr "Esta herramienta no pudo encontrar los archivos de %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1210
+#: ../client/pk-console.c:1379
 #, c-format
 msgid "This tool could not get the file list for %s: %s"
 msgstr "Esta herramienta no pudo obtener la lista de archivos de %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of packages. The filename follows
-#: ../client/pk-console.c:1232
+#: ../client/pk-console.c:1401
 #, c-format
 msgid "File already exists: %s"
 msgstr "El archivo ya existe: %s"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1237
-#: ../client/pk-console.c:1293
-#: ../client/pk-console.c:1368
+#: ../client/pk-console.c:1406
+#: ../client/pk-console.c:1462
+#: ../client/pk-console.c:1537
 msgid "Getting package list"
 msgstr "Obteniendo la lista de paquetes"
 
 #. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1243
-#: ../client/pk-console.c:1299
-#: ../client/pk-console.c:1374
+#: ../client/pk-console.c:1412
+#: ../client/pk-console.c:1468
+#: ../client/pk-console.c:1543
 #, c-format
 msgid "This tool could not get package list: %s"
 msgstr "Esta herramienta no pudo obtener la lista de paquetes: %s"
 
 #. TRANSLATORS: There was an error saving the list
-#: ../client/pk-console.c:1254
+#: ../client/pk-console.c:1423
 #, c-format
 msgid "Failed to save to disk"
 msgstr "Falló al guardar en el disco"
 
 #. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1288
-#: ../client/pk-console.c:1363
+#: ../client/pk-console.c:1457
+#: ../client/pk-console.c:1532
 #, c-format
 msgid "File does not exist: %s"
 msgstr "El archivo no existe: %s"
 
 #. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1320
+#: ../client/pk-console.c:1489
 msgid "Packages to add"
 msgstr "Paquetes para añadir"
 
 #. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1328
+#: ../client/pk-console.c:1497
 msgid "Packages to remove"
 msgstr "Paquetes para eliminar"
 
 #. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1396
+#: ../client/pk-console.c:1565
 #, c-format
 msgid "No new packages need to be installed"
 msgstr "No hay paquetes nuevos para instalar"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1402
+#: ../client/pk-console.c:1571
 msgid "To install"
 msgstr "Para instalar"
 
 #. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1414
+#: ../client/pk-console.c:1583
 msgid "Searching for package: "
 msgstr "Buscando el paquete: "
 
 #. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1418
+#: ../client/pk-console.c:1587
 msgid "not found."
 msgstr "no encontrado."
 
 #. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1429
+#: ../client/pk-console.c:1598
 #, c-format
 msgid "No packages can be found to install"
 msgstr "No se encontró ningún paquete para instalar"
 
 #. TRANSLATORS: installing new packages from package list
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
-#: ../client/pk-console.c:1435
+#: ../client/pk-console.c:1604
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:886
 #, c-format
 msgid "Installing packages"
 msgstr "Instalando paquetes"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1471
+#: ../client/pk-console.c:1640
 #, c-format
 msgid "This tool could not find the update details for %s: %s"
 msgstr "Esta herramienta no pudo encontrar los detalles de actualización de %s: %s"
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1479
+#: ../client/pk-console.c:1648
 #, c-format
 msgid "This tool could not get the update details for %s: %s"
 msgstr "Esta herramienta no pudo obtener los detalles de actualización de %s: %s"
 
 #. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
-#: ../client/pk-console.c:1510
+#: ../client/pk-console.c:1679
 msgid "Error:"
 msgstr "Error:"
 
 #. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1524
+#: ../client/pk-console.c:1693
 msgid "Package description"
 msgstr "Descripción del paquete"
 
 #. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
-#: ../client/pk-console.c:1540
+#: ../client/pk-console.c:1709
 msgid "Message:"
 msgstr "Mensaje:"
 
 #. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1568
+#: ../client/pk-console.c:1737
 msgid "Package files"
 msgstr "Archivos del paquete"
 
 #. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1576
+#: ../client/pk-console.c:1745
 msgid "No files"
 msgstr "No hay archivos"
 
 #. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1599
+#: ../client/pk-console.c:1768
 msgid "Repository signature required"
 msgstr "Se requiere la firma del repositorio"
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1609
+#: ../client/pk-console.c:1778
 msgid "Do you accept this signature?"
 msgstr "¿Acepta esta firma?"
 
 #. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1613
+#: ../client/pk-console.c:1782
 msgid "The signature was not accepted."
 msgstr "No se aceptó la firma."
 
 #. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1647
+#: ../client/pk-console.c:1816
 msgid "End user license agreement required"
 msgstr "Se requiere un acuerdo de licencia de usuario final"
 
 #. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1654
+#: ../client/pk-console.c:1823
 msgid "Do you agree to this license?"
 msgstr "¿Está de acuerdo con esta licencia?"
 
 #. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1658
+#: ../client/pk-console.c:1827
 msgid "The license was refused."
 msgstr "Se rechazó la licencia."
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1687
+#: ../client/pk-console.c:1856
 msgid "The daemon crashed mid-transaction!"
 msgstr "El demonio se colgó en medio de una transacción."
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1740
+#: ../client/pk-console.c:1909
 msgid "PackageKit Console Interface"
 msgstr "Interfaz de consola de PackageKit"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1742
+#: ../client/pk-console.c:1911
 msgid "Subcommands:"
 msgstr "Subcomandos:"
 
 #. TRANSLATORS: command line argument, if we should show debugging information
 #. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:1835
+#: ../client/pk-console.c:2004
 #: ../client/pk-generate-pack.c:185
 #: ../client/pk-monitor.c:128
 #: ../contrib/command-not-found/pk-command-not-found.c:616
@@ -568,155 +590,155 @@ msgid "Show extra debugging information"
 msgstr "Mostrar información extra de depuración"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1838
+#: ../client/pk-console.c:2007
 #: ../client/pk-monitor.c:130
 msgid "Show the program version and exit"
 msgstr "Mostrar la versión del programa y salir"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1841
+#: ../client/pk-console.c:2010
 msgid "Set the filter, e.g. installed"
 msgstr "Establecer el filtro, ej. instalado"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1844
+#: ../client/pk-console.c:2013
 msgid "Exit without waiting for actions to complete"
 msgstr "Salir sin esperar que las acciones se completen"
 
 #. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:1871
+#: ../client/pk-console.c:2040
 msgid "This tool could not connect to system DBUS."
 msgstr "Esta herramienta no se pudo conectar al DBUS del sistema."
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1961
+#: ../client/pk-console.c:2130
 msgid "The filter specified was invalid"
 msgstr "El filtro especificado fue inválido"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1980
+#: ../client/pk-console.c:2149
 msgid "A search type is required, e.g. name"
 msgstr "Se necesita un tipo de búsqueda, por ejemplo, nombre"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1987
-#: ../client/pk-console.c:1996
-#: ../client/pk-console.c:2005
-#: ../client/pk-console.c:2014
+#: ../client/pk-console.c:2156
+#: ../client/pk-console.c:2165
+#: ../client/pk-console.c:2174
+#: ../client/pk-console.c:2183
 msgid "A search term is required"
 msgstr "Se necesita un término de búsqueda"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:2021
+#: ../client/pk-console.c:2190
 msgid "Invalid search type"
 msgstr "Tipo de búsqueda inválido"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:2027
+#: ../client/pk-console.c:2196
 msgid "A package name or filename to install is required"
 msgstr "Se requiere un nombre de paquete o nombre de archivo para instalar"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2036
+#: ../client/pk-console.c:2205
 msgid "A type, key_id and package_id are required"
 msgstr "Se necesita un tipo, key_id y package_id"
 
 #. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:2045
+#: ../client/pk-console.c:2214
 msgid "A package name to remove is required"
 msgstr "Necesita un nombre de paquete para eliminar"
 
 #. TRANSLATORS: the user did not specify anything about what to download or where
-#: ../client/pk-console.c:2053
+#: ../client/pk-console.c:2222
 msgid "A destination directory and the package names to download are required"
 msgstr "Se necesita un directorio de destino y los nombres de los paquetes a descargar"
 
 #. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:2060
+#: ../client/pk-console.c:2229
 msgid "Directory not found"
 msgstr "Directorio no encontrado"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2068
+#: ../client/pk-console.c:2237
 msgid "A licence identifier (eula-id) is required"
 msgstr "Se necesita un identificador de licencia (eula-id)"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2078
+#: ../client/pk-console.c:2247
 msgid "A transaction identifier (tid) is required"
 msgstr "Se necesita un identificador de transacción (tid)"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:2095
+#: ../client/pk-console.c:2264
 msgid "A package name to resolve is required"
 msgstr "Se necesita un nombre de paquete para resolver"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:2104
-#: ../client/pk-console.c:2113
+#: ../client/pk-console.c:2273
+#: ../client/pk-console.c:2282
 msgid "A repository name is required"
 msgstr "Se necesita un nombre de repositorio"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2122
+#: ../client/pk-console.c:2291
 msgid "A repo name, parameter and value are required"
 msgstr "Debe especificar un nombre de repositorio, parámetro y valor"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:2136
+#: ../client/pk-console.c:2305
 msgid "An action, e.g. 'update-system' is required"
 msgstr "Debe especificar una acción, por ejemplo, «update-system»"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:2143
+#: ../client/pk-console.c:2312
 msgid "A correct role is required"
 msgstr "Se necesita un rol correcto"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2150
+#: ../client/pk-console.c:2319
 msgid "Failed to get the time since this action was last completed"
 msgstr "Falló al obtener la hora de la última vez que se completó esta acción"
 
 #. TRANSLATORS: The user did not provide a package name
 #. TRANSLATORS: This is when the user fails to supply the package name
-#: ../client/pk-console.c:2160
-#: ../client/pk-console.c:2172
-#: ../client/pk-console.c:2181
-#: ../client/pk-console.c:2199
-#: ../client/pk-console.c:2208
+#: ../client/pk-console.c:2329
+#: ../client/pk-console.c:2341
+#: ../client/pk-console.c:2350
+#: ../client/pk-console.c:2368
+#: ../client/pk-console.c:2377
 #: ../client/pk-generate-pack.c:241
 msgid "A package name is required"
 msgstr "Se necesita un nombre de paquete"
 
 #. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:2190
+#: ../client/pk-console.c:2359
 msgid "A package provide string is required"
 msgstr "Se necesita la cadena de lo que proporciona el paquete"
 
 #. TRANSLATORS: The user didn't specify a filename to create as a list
-#: ../client/pk-console.c:2217
+#: ../client/pk-console.c:2386
 msgid "A list file name to create is required"
 msgstr "Se necesita un nombre de archivo de la lista"
 
 #. TRANSLATORS: The user didn't specify a filename to open as a list
-#: ../client/pk-console.c:2227
-#: ../client/pk-console.c:2237
+#: ../client/pk-console.c:2396
+#: ../client/pk-console.c:2406
 msgid "A list file to open is required"
 msgstr "Se necesita un archivo de lista para abrir"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2291
+#: ../client/pk-console.c:2460
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "La opción «%s» no está soportada"
 
 #. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2304
+#: ../client/pk-console.c:2473
 msgid "Incorrect privileges for this operation"
 msgstr "Privilegios incorrectos para esta operación"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2307
+#: ../client/pk-console.c:2476
 msgid "Command failed"
 msgstr "Falló el comando"
 
commit 114e50b14bc0c1e9c12c94853053d518a0c6c31e
Author: Anders F Bjorklund <afb at users.sourceforge.net>
Date:   Tue Aug 25 12:58:42 2009 +0200

    avoid realpath segfault on freebsd

diff --git a/lib/packagekit-glib/pk-client.c b/lib/packagekit-glib/pk-client.c
index a171459..11d0159 100644
--- a/lib/packagekit-glib/pk-client.c
+++ b/lib/packagekit-glib/pk-client.c
@@ -3354,6 +3354,7 @@ pk_resolve_local_path (const gchar *rel_path)
 	if (rel_path == NULL)
 		return NULL;
 
+#ifndef __FreeBSD__
 	/* ITS4: ignore, glibc allocates us a buffer to try and fix some brain damage */
 	temp = realpath (rel_path, NULL);
 	if (temp != NULL) {
@@ -3361,6 +3362,15 @@ pk_resolve_local_path (const gchar *rel_path)
 		/* yes, free, not g_free */
 		free (temp);
 	}
+#else /* __FreeBSD__ */
+{
+	char abs_path[PATH_MAX];
+	temp = realpath (rel_path, abs_path);
+	if (temp != NULL) {
+		real = g_strdup (temp);
+	}
+}
+#endif
 	return real;
 }
 
commit 0ae99c0a980e76f6f86db9970f304fb3999ef489
Author: Richard Hughes <richard at hughsie.com>
Date:   Tue Aug 25 11:26:48 2009 +0100

    daemon: Fix a critial typo that crashes the daemon when we did SimulateInstallFiles

diff --git a/src/pk-transaction.c b/src/pk-transaction.c
index 6a80e63..f3ba266 100644
--- a/src/pk-transaction.c
+++ b/src/pk-transaction.c
@@ -1399,7 +1399,7 @@ pk_transaction_set_running (PkTransaction *transaction)
 	else if (priv->role == PK_ROLE_ENUM_REPO_SET_DATA)
 		desc->repo_set_data (priv->backend, priv->cached_repo_id, priv->cached_parameter, priv->cached_value);
 	else if (priv->role == PK_ROLE_ENUM_SIMULATE_INSTALL_FILES)
-		desc->simulate_install_files (priv->backend, priv->cached_package_ids);
+		desc->simulate_install_files (priv->backend, priv->cached_full_paths);
 	else if (priv->role == PK_ROLE_ENUM_SIMULATE_INSTALL_PACKAGES) {
 		/* fallback to a method we do have */
 		if (desc->simulate_install_packages != NULL) {
commit 0a63ac6ac855ce4ca84514854164ae6a87d3fdd1
Author: Richard Hughes <richard at hughsie.com>
Date:   Tue Aug 25 11:26:12 2009 +0100

    trivial: do fatal_criticals inside of gdb

diff --git a/src/gdb.sh b/src/gdb.sh
index 31e6b99..b391e45 100755
--- a/src/gdb.sh
+++ b/src/gdb.sh
@@ -1,4 +1,4 @@
 export G_DEBUG=fatal_criticals
 sudo touch /etc/PackageKit/PackageKit.conf
-sudo gdb --args .libs/lt-packagekitd --verbose --backend=yum --disable-timer
+sudo G_DEBUG=fatal_criticals gdb --args .libs/lt-packagekitd --verbose --backend=yum --disable-timer
 
commit a16213d2461e66416c99bb34397dad3ce1bc29a1
Author: Richard Hughes <richard at hughsie.com>
Date:   Tue Aug 25 11:25:48 2009 +0100

    pkcon: Ignore local files when we are printing the deps list

diff --git a/client/pk-console.c b/client/pk-console.c
index 9a171ed..188a313 100644
--- a/client/pk-console.c
+++ b/client/pk-console.c
@@ -306,6 +306,10 @@ pk_console_print_deps_list_info (PkPackageList *list, PkInfoEnum info, const gch
 		if (obj->info != info)
 			continue;
 
+		/* is this package already local */
+		if (g_strcmp0 (obj->id->data, "local") == 0)
+			continue;
+
 		/* print header if it's not been done before */
 		if (!ret) {
 			g_print ("%s\n", header);
@@ -823,7 +827,7 @@ pk_console_install_stuff (PkClient *client, gchar **packages, GError **error)
 				goto out;
 			}
 
-			egg_debug ("Simullating install for %s", package_ids[0]);
+			egg_debug ("Simulating install for %s", package_ids[0]);
 			ret = pk_client_simulate_install_packages (client_sync, package_ids, error);
 			if (!ret) {
 				egg_warning ("failed to simulate a package install");
@@ -895,7 +899,7 @@ pk_console_install_stuff (PkClient *client, gchar **packages, GError **error)
 				goto out;
 			}
 
-			egg_debug ("Simullating install for %s", files[0]);
+			egg_debug ("Simulating install for %s", files[0]);
 			ret = pk_client_simulate_install_files (client_sync, files, error);
 			if (!ret) {
 				egg_warning ("failed to simulate a package install");
commit 37dc24b60b288403a06cbecb1a5468076439937e
Author: Richard Hughes <richard at hughsie.com>
Date:   Tue Aug 25 11:25:17 2009 +0100

    yum: support SimulateInstallFiles properly

diff --git a/backends/yum/yumBackend.py b/backends/yum/yumBackend.py
index 54a2b62..d140a93 100755
--- a/backends/yum/yumBackend.py
+++ b/backends/yum/yumBackend.py
@@ -82,6 +82,32 @@ StatusPercentageMap = {
     STATUS_CLEANUP     : 95
 }
 
+# this isn't defined in yum as it's only used in the rollback plugin
+TS_REPACKAGING = 'repackaging'
+
+# Map yum transactions with pk info enums
+TransactionsInfoMap = {
+    TS_UPDATE       : INFO_UPDATING,
+    TS_ERASE        : INFO_REMOVING,
+    TS_INSTALL      : INFO_INSTALLING,
+    TS_TRUEINSTALL  : INFO_INSTALLING,
+    TS_OBSOLETED    : INFO_OBSOLETING,
+    TS_OBSOLETING   : INFO_INSTALLING,
+    TS_UPDATED      : INFO_CLEANUP
+}
+
+# Map yum transactions with pk state enums
+TransactionsStateMap = {
+    TS_UPDATE       : STATUS_UPDATE,
+    TS_ERASE        : STATUS_REMOVE,
+    TS_INSTALL      : STATUS_INSTALL,
+    TS_TRUEINSTALL  : STATUS_INSTALL,
+    TS_OBSOLETED    : STATUS_OBSOLETE,
+    TS_OBSOLETING   : STATUS_INSTALL,
+    TS_UPDATED      : STATUS_CLEANUP,
+    TS_REPACKAGING  : STATUS_REPACKAGING
+}
+
 class GPGKeyNotImported(exceptions.Exception):
     pass
 
@@ -2085,7 +2111,10 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
 
     def _pkg_to_id(self, pkg):
         pkgver = _get_package_ver(pkg)
-        package_id = self.get_package_id(pkg.name, pkgver, pkg.arch, pkg.repo)
+        repo = str(pkg.repo)
+        if repo.startswith('/'):
+            repo = "local"
+        package_id = self.get_package_id(pkg.name, pkgver, pkg.arch, repo)
         return package_id
 
     def _show_package(self, pkg, status):
@@ -2482,9 +2511,19 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
             self.error(ERROR_LOCAL_INSTALL_FAILED, "Can't install %s" % " or ".join(inst_files), exit=False)
             return
 
+        # do the depsolve to pull in deps
+        try:
+            rc, msgs =  self.yumbase.buildTransaction()
+        except Exception, e:
+            self.error(ERROR_INTERNAL_ERROR, _format_str(traceback.format_exc()))
+        if rc != 2:
+            self.error(ERROR_DEP_RESOLUTION_FAILED, _format_msgs(msgs))
+
         # add each package
         for txmbr in self.yumbase.tsInfo:
-            package_list.append((txmbr.po, INFO_INSTALLING))
+            if txmbr.output_state in TransactionsInfoMap.keys():
+                info = TransactionsInfoMap[txmbr.output_state]
+                package_list.append((txmbr.po, info))
 
         self.percentage(90)
         self._show_package_list(package_list)
@@ -2739,28 +2778,6 @@ class PackageKitCallback(RPMBaseCallback):
         self.percent_start = 0
         self.percent_length = 0
 
-        # this isn't defined in yum as it's only used in the rollback plugin
-        TS_REPACKAGING = 'repackaging'
-
-        # Map yum transactions with pk info enums
-        self.info_actions = { TS_UPDATE : INFO_UPDATING,
-                        TS_ERASE: INFO_REMOVING,
-                        TS_INSTALL: INFO_INSTALLING,
-                        TS_TRUEINSTALL : INFO_INSTALLING,
-                        TS_OBSOLETED: INFO_OBSOLETING,
-                        TS_OBSOLETING: INFO_INSTALLING,
-                        TS_UPDATED: INFO_CLEANUP}
-
-        # Map yum transactions with pk state enums
-        self.state_actions = { TS_UPDATE : STATUS_UPDATE,
-                        TS_ERASE: STATUS_REMOVE,
-                        TS_INSTALL: STATUS_INSTALL,
-                        TS_TRUEINSTALL : STATUS_INSTALL,
-                        TS_OBSOLETED: STATUS_OBSOLETE,
-                        TS_OBSOLETING: STATUS_INSTALL,
-                        TS_UPDATED: STATUS_CLEANUP,
-                        TS_REPACKAGING: STATUS_REPACKAGING}
-
     def _showName(self, status):
         # curpkg is a yum package object or simple string of the package name
         if type(self.curpkg) in types.StringTypes:
@@ -2782,8 +2799,8 @@ class PackageKitCallback(RPMBaseCallback):
         if str(package) != str(self.curpkg):
             self.curpkg = package
             try:
-                self.base.status(self.state_actions[action])
-                self._showName(self.info_actions[action])
+                self.base.status(TransactionsStateMap[action])
+                self._showName(TransactionsInfoMap[action])
             except exceptions.KeyError, e:
                 self.base.message(MESSAGE_BACKEND_ERROR, "The constant '%s' was unknown, please report. details: %s" % (action, _to_unicode(e)))
 
commit 28ce097757f4ab640e21a595e1d7aae5f2034a5c
Author: Richard Hughes <richard at hughsie.com>
Date:   Tue Aug 25 09:55:48 2009 +0100

    yum: pretect against broken repo ChangeLog metadata. Fixes rh#519083

diff --git a/backends/yum/yumBackend.py b/backends/yum/yumBackend.py
index 15b26bf..54a2b62 100755
--- a/backends/yum/yumBackend.py
+++ b/backends/yum/yumBackend.py
@@ -2194,7 +2194,13 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
             if pkgfilter.pre_process(pkg):
                 # we pre-get the ChangeLog data so that the changes file is
                 # downloaded at GetUpdates time, not when we open the GUI
-                changelog = pkg.returnChangelog()
+                # get each element of the ChangeLog
+                try:
+                    changelog = pkg.returnChangelog()
+                except yum.Errors.RepoError, e:
+                    self.error(ERROR_REPO_NOT_AVAILABLE, _to_unicode(e))
+                except Exception, e:
+                    self.error(ERROR_INTERNAL_ERROR, _format_str(traceback.format_exc()))
 
                 # Get info about package in updates info
                 notice = md.get_notice((pkg.name, pkg.version, pkg.release))
commit c5cf138400bf1bf50b09851c873880073e140def
Author: raven <raven at fedoraproject.org>
Date:   Mon Aug 24 22:50:39 2009 +0000

    Sending translation for Polish

diff --git a/po/pl.po b/po/pl.po
index 30b8b3c..1f4eea3 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -5,8 +5,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: pl\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-08-24 14:39+0000\n"
-"PO-Revision-Date: 2009-08-24 20:44+0200\n"
+"POT-Creation-Date: 2009-08-24 19:37+0000\n"
+"PO-Revision-Date: 2009-08-25 00:50+0200\n"
 "Last-Translator: Piotr DrÄ…g <piotrdrag at gmail.com>\n"
 "Language-Team: Polish <pl at li.org>\n"
 "MIME-Version: 1.0\n"
@@ -273,7 +273,7 @@ msgstr "Nie można zainstalować pakietu %s: %s"
 
 #. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
 #: ../client/pk-console.c:760 ../client/pk-console.c:783
-#: ../client/pk-console.c:930 ../client/pk-console.c:1043
+#: ../client/pk-console.c:933 ../client/pk-console.c:1046
 #: ../client/pk-tools-common.c:62 ../client/pk-tools-common.c:81
 #: ../client/pk-tools-common.c:89
 #, c-format
@@ -281,7 +281,7 @@ msgid "Internal error: %s"
 msgstr "Wewnętrzny błąd: %s"
 
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:768 ../client/pk-console.c:1439
+#: ../client/pk-console.c:768 ../client/pk-console.c:1442
 #, c-format
 msgid "This tool could not install the packages: %s"
 msgstr "To narzędzie nie może zainstalować pakietów: %s"
@@ -292,253 +292,258 @@ msgstr "To narzędzie nie może zainstalować pakietów: %s"
 msgid "This tool could not install the files: %s"
 msgstr "To narzędzie nie może zainstalować plików: %s"
 
-#. TRANSLATORS: When removing, we might have to remove other dependencies
+#. TRANSLATORS: When processing, we might have to remove other dependencies
 #: ../client/pk-console.c:863
 msgid "The following packages have to be removed:"
 msgstr "Następujące pakiety muszą zostać usunięte:"
 
-#. TRANSLATORS: When removing, we might have to install other dependencies
+#. TRANSLATORS: When processing, we might have to install other dependencies
 #: ../client/pk-console.c:866
 msgid "The following packages have to be installed:"
 msgstr "Następujące pakiety muszą zostać zainstalowane:"
 
-#. TRANSLATORS: When removing, we might have to update other dependencies
+#. TRANSLATORS: When processing, we might have to update other dependencies
 #: ../client/pk-console.c:869
 msgid "The following packages have to be updated:"
 msgstr "Następujące pakiety muszą zostać zaktualizowane:"
 
+#. TRANSLATORS: When processing, we might have to reinstall other dependencies
+#: ../client/pk-console.c:872
+msgid "The following packages have to be reinstalled:"
+msgstr "Następujące pakiety muszą zostać ponownie zainstalowane:"
+
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:898
+#: ../client/pk-console.c:901
 #, c-format
 msgid "This tool could not remove %s: %s"
 msgstr "To narzędzie nie może usunąć %s: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:921 ../client/pk-console.c:959
-#: ../client/pk-console.c:988
+#: ../client/pk-console.c:924 ../client/pk-console.c:962
+#: ../client/pk-console.c:991
 #, c-format
 msgid "This tool could not remove the packages: %s"
 msgstr "To narzędzie nie może usunąć pakietów: %s"
 
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:974
+#: ../client/pk-console.c:977
 msgid "Proceed with additional packages?"
 msgstr "Kontynuować usuwanie dodatkowych pakietów?"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:979
+#: ../client/pk-console.c:982
 msgid "The package removal was canceled!"
 msgstr "Anulowano usunięcie pakietu!"
 
 #. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:1020
+#: ../client/pk-console.c:1023
 #, c-format
 msgid "This tool could not download the package %s as it could not be found"
 msgstr "To narzędzie nie może pobrać pakietu %s, ponieważ nie można go znaleźć"
 
 #. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:1051
+#: ../client/pk-console.c:1054
 #, c-format
 msgid "This tool could not download the packages: %s"
 msgstr "To narzędzie nie może pobrać pakietów: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1078 ../client/pk-console.c:1087
+#: ../client/pk-console.c:1081 ../client/pk-console.c:1090
 #, c-format
 msgid "This tool could not update %s: %s"
 msgstr "To narzędzie nie może zaktualizować %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1109 ../client/pk-console.c:1117
+#: ../client/pk-console.c:1112 ../client/pk-console.c:1120
 #, c-format
 msgid "This tool could not get the requirements for %s: %s"
 msgstr "To narzędzie nie może uzyskać wymagań dla %s: %s"
 
 #. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:1139 ../client/pk-console.c:1147
+#: ../client/pk-console.c:1142 ../client/pk-console.c:1150
 #, c-format
 msgid "This tool could not get the dependencies for %s: %s"
 msgstr "To narzędzie nie może uzyskać zależności dla %s: %s"
 
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:1169 ../client/pk-console.c:1177
+#: ../client/pk-console.c:1172 ../client/pk-console.c:1180
 #, c-format
 msgid "This tool could not get package details for %s: %s"
 msgstr "To narzędzie nie może uzyskać szczegółów pakietu %s: %s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1199
+#: ../client/pk-console.c:1202
 #, c-format
 msgid "This tool could not find the files for %s: %s"
 msgstr "To narzędzie nie może znaleźć plików dla %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1207
+#: ../client/pk-console.c:1210
 #, c-format
 msgid "This tool could not get the file list for %s: %s"
 msgstr "To narzędzie nie może uzyskać listy plików dla %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of packages. The filename follows
-#: ../client/pk-console.c:1229
+#: ../client/pk-console.c:1232
 #, c-format
 msgid "File already exists: %s"
 msgstr "Plik już istnieje: %s"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1234 ../client/pk-console.c:1290
-#: ../client/pk-console.c:1365
+#: ../client/pk-console.c:1237 ../client/pk-console.c:1293
+#: ../client/pk-console.c:1368
 msgid "Getting package list"
 msgstr "Pobieranie listy pakietów"
 
 #. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1240 ../client/pk-console.c:1296
-#: ../client/pk-console.c:1371
+#: ../client/pk-console.c:1243 ../client/pk-console.c:1299
+#: ../client/pk-console.c:1374
 #, c-format
 msgid "This tool could not get package list: %s"
 msgstr "To narzędzie nie może pobrać listy pakietów: %s"
 
 #. TRANSLATORS: There was an error saving the list
-#: ../client/pk-console.c:1251
+#: ../client/pk-console.c:1254
 #, c-format
 msgid "Failed to save to disk"
 msgstr "Zapisanie na dysku nie powiodło się"
 
 #. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1285 ../client/pk-console.c:1360
+#: ../client/pk-console.c:1288 ../client/pk-console.c:1363
 #, c-format
 msgid "File does not exist: %s"
 msgstr "Plik nie istnieje: %s"
 
 #. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1317
+#: ../client/pk-console.c:1320
 msgid "Packages to add"
 msgstr "Pakiety do dodania"
 
 #. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1325
+#: ../client/pk-console.c:1328
 msgid "Packages to remove"
 msgstr "Pakiety do usunięcia"
 
 #. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1393
+#: ../client/pk-console.c:1396
 #, c-format
 msgid "No new packages need to be installed"
 msgstr "Nie trzeba instalować nowych pakietów"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1399
+#: ../client/pk-console.c:1402
 msgid "To install"
 msgstr "Do zainstalowania"
 
 #. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1411
+#: ../client/pk-console.c:1414
 msgid "Searching for package: "
 msgstr "Wyszukiwanie pakietu: "
 
 #. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1415
+#: ../client/pk-console.c:1418
 msgid "not found."
 msgstr "nie znaleziono."
 
 #. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1426
+#: ../client/pk-console.c:1429
 #, c-format
 msgid "No packages can be found to install"
 msgstr "Nie można znaleźć pakietów do zainstalowania"
 
 #. TRANSLATORS: installing new packages from package list
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
-#: ../client/pk-console.c:1432
+#: ../client/pk-console.c:1435
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:886
 #, c-format
 msgid "Installing packages"
 msgstr "Instalowanie pakietów"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1468
+#: ../client/pk-console.c:1471
 #, c-format
 msgid "This tool could not find the update details for %s: %s"
 msgstr "To narzędzie nie może znaleźć szczegółów aktualizacji dla %s: %s"
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1476
+#: ../client/pk-console.c:1479
 #, c-format
 msgid "This tool could not get the update details for %s: %s"
 msgstr "To narzędzie nie może uzyskać szczegółów aktualizacji dla %s: %s"
 
 #. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
-#: ../client/pk-console.c:1507
+#: ../client/pk-console.c:1510
 msgid "Error:"
 msgstr "BÅ‚Ä…d:"
 
 #. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1521
+#: ../client/pk-console.c:1524
 msgid "Package description"
 msgstr "Opis pakietu"
 
 #. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
-#: ../client/pk-console.c:1537
+#: ../client/pk-console.c:1540
 msgid "Message:"
 msgstr "Komunikat:"
 
 #. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1565
+#: ../client/pk-console.c:1568
 msgid "Package files"
 msgstr "Pliki pakietu"
 
 #. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1573
+#: ../client/pk-console.c:1576
 msgid "No files"
 msgstr "Brak plików"
 
 #. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1596
+#: ../client/pk-console.c:1599
 msgid "Repository signature required"
 msgstr "Wymagany jest podpis repozytorium"
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1606
+#: ../client/pk-console.c:1609
 msgid "Do you accept this signature?"
 msgstr "Zaakceptować ten podpis?"
 
 #. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1610
+#: ../client/pk-console.c:1613
 msgid "The signature was not accepted."
 msgstr "Podpis nie został zaakceptowany."
 
 #. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1644
+#: ../client/pk-console.c:1647
 msgid "End user license agreement required"
 msgstr "Licencja jest wymagana"
 
 #. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1651
+#: ../client/pk-console.c:1654
 msgid "Do you agree to this license?"
 msgstr "Zaakceptować tę licencję?"
 
 #. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1655
+#: ../client/pk-console.c:1658
 msgid "The license was refused."
 msgstr "Odrzucono licencjÄ™."
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1684
+#: ../client/pk-console.c:1687
 msgid "The daemon crashed mid-transaction!"
 msgstr "Demon zawiesił się w połowie transakcji!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1737
+#: ../client/pk-console.c:1740
 msgid "PackageKit Console Interface"
 msgstr "Interfejs konsoli PackageKit"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1739
+#: ../client/pk-console.c:1742
 msgid "Subcommands:"
 msgstr "Podpolecenia:"
 
 #. TRANSLATORS: command line argument, if we should show debugging information
 #. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:1832 ../client/pk-generate-pack.c:185
+#: ../client/pk-console.c:1835 ../client/pk-generate-pack.c:185
 #: ../client/pk-monitor.c:128
 #: ../contrib/command-not-found/pk-command-not-found.c:616
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:550
@@ -547,148 +552,148 @@ msgid "Show extra debugging information"
 msgstr "Wyświetla dodatkowe informacje o debugowaniu"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1835 ../client/pk-monitor.c:130
+#: ../client/pk-console.c:1838 ../client/pk-monitor.c:130
 msgid "Show the program version and exit"
 msgstr "Wyświetla wersję programu i wyłącza"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1838
+#: ../client/pk-console.c:1841
 msgid "Set the filter, e.g. installed"
 msgstr "Ustawia filtr, np. zainstalowane"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1841
+#: ../client/pk-console.c:1844
 msgid "Exit without waiting for actions to complete"
 msgstr "Wyłącza bez oczekiwania na zakończenie działań"
 
 #. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:1868
+#: ../client/pk-console.c:1871
 msgid "This tool could not connect to system DBUS."
 msgstr "To narzędzie nie może połączyć się z systemowym D-Bus."
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1958
+#: ../client/pk-console.c:1961
 msgid "The filter specified was invalid"
 msgstr "Podany filtr jest nieprawidłowy"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1977
+#: ../client/pk-console.c:1980
 msgid "A search type is required, e.g. name"
 msgstr "Wymagany jest typ wyszukiwania, np. nazwa"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1984 ../client/pk-console.c:1993
-#: ../client/pk-console.c:2002 ../client/pk-console.c:2011
+#: ../client/pk-console.c:1987 ../client/pk-console.c:1996
+#: ../client/pk-console.c:2005 ../client/pk-console.c:2014
 msgid "A search term is required"
 msgstr "Wymagany jest wyszukiwany termin"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:2018
+#: ../client/pk-console.c:2021
 msgid "Invalid search type"
 msgstr "Nieprawidłowy typ wyszukiwania"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:2024
+#: ../client/pk-console.c:2027
 msgid "A package name or filename to install is required"
 msgstr "Wymagana jest nazwa pakietu lub pliku do zainstalowania"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2033
+#: ../client/pk-console.c:2036
 msgid "A type, key_id and package_id are required"
 msgstr "Wymagany jest typ, key_id i package_id"
 
 #. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:2042
+#: ../client/pk-console.c:2045
 msgid "A package name to remove is required"
 msgstr "Wymagana jest nazwa pakietu do usunięcia"
 
 #. TRANSLATORS: the user did not specify anything about what to download or where
-#: ../client/pk-console.c:2050
+#: ../client/pk-console.c:2053
 msgid "A destination directory and the package names to download are required"
 msgstr "Wymagany jest katalog docelowy i nazwy pakietów do pobrania"
 
 #. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:2057
+#: ../client/pk-console.c:2060
 msgid "Directory not found"
 msgstr "Nie znaleziono katalogu"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2065
+#: ../client/pk-console.c:2068
 msgid "A licence identifier (eula-id) is required"
 msgstr "Wymagany jest identyfikator licencji (eula-id)"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2075
+#: ../client/pk-console.c:2078
 msgid "A transaction identifier (tid) is required"
 msgstr "Wymagany jest identyfikator transakcji (tid)"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:2092
+#: ../client/pk-console.c:2095
 msgid "A package name to resolve is required"
 msgstr "Wymagana jest nazwa pakietu do rozwiÄ…zania"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:2101 ../client/pk-console.c:2110
+#: ../client/pk-console.c:2104 ../client/pk-console.c:2113
 msgid "A repository name is required"
 msgstr "Wymagana jest nazwa repozytorium"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2119
+#: ../client/pk-console.c:2122
 msgid "A repo name, parameter and value are required"
 msgstr "Wymagana jest nazwa, parametr i wartość repozytorium"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:2133
+#: ../client/pk-console.c:2136
 msgid "An action, e.g. 'update-system' is required"
 msgstr "Wymagane jest działanie, np. \"update-system\""
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:2140
+#: ../client/pk-console.c:2143
 msgid "A correct role is required"
 msgstr "Wymagana jest bieżąca rola"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2147
+#: ../client/pk-console.c:2150
 msgid "Failed to get the time since this action was last completed"
 msgstr ""
 "Uzyskanie czasu od ostatniego zakończenia tego działania nie powiodło się"
 
 #. TRANSLATORS: The user did not provide a package name
 #. TRANSLATORS: This is when the user fails to supply the package name
-#: ../client/pk-console.c:2157 ../client/pk-console.c:2169
-#: ../client/pk-console.c:2178 ../client/pk-console.c:2196
-#: ../client/pk-console.c:2205 ../client/pk-generate-pack.c:241
+#: ../client/pk-console.c:2160 ../client/pk-console.c:2172
+#: ../client/pk-console.c:2181 ../client/pk-console.c:2199
+#: ../client/pk-console.c:2208 ../client/pk-generate-pack.c:241
 msgid "A package name is required"
 msgstr "Wymagana jest nazwa pakietu"
 
 #. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:2187
+#: ../client/pk-console.c:2190
 msgid "A package provide string is required"
 msgstr "Wymagany jest łańcuch dostarczania pakietu"
 
 #. TRANSLATORS: The user didn't specify a filename to create as a list
-#: ../client/pk-console.c:2214
+#: ../client/pk-console.c:2217
 msgid "A list file name to create is required"
 msgstr "Wymagana jest lista nazw plików do utworzenia"
 
 #. TRANSLATORS: The user didn't specify a filename to open as a list
-#: ../client/pk-console.c:2224 ../client/pk-console.c:2234
+#: ../client/pk-console.c:2227 ../client/pk-console.c:2237
 msgid "A list file to open is required"
 msgstr "Wymagana jest lista plików do otwarcia"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2288
+#: ../client/pk-console.c:2291
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "Opcja \"%s\" nie jest obsługiwana"
 
 #. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2301
+#: ../client/pk-console.c:2304
 msgid "Incorrect privileges for this operation"
 msgstr "Niepoprawne uprawnienia dla tego działania"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2304
+#: ../client/pk-console.c:2307
 msgid "Command failed"
 msgstr "Polecenie nie powiodło się"
 
commit 072a896ec7d4778e166937088f5ef3f1ce054899
Author: igor <igor at fedoraproject.org>
Date:   Mon Aug 24 22:32:15 2009 +0000

    Sending translation for Brazilian Portuguese

diff --git a/po/pt_BR.po b/po/pt_BR.po
index b60b236..9b8da22 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -8,8 +8,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-08-24 11:06+0100\n"
-"PO-Revision-Date: 2009-08-21 15:44-0300\n"
+"POT-Creation-Date: 2009-08-24 19:37+0000\n"
+"PO-Revision-Date: 2009-08-24 19:33-0300\n"
 "Last-Translator: Igor Pires Soares <igor at projetofedora.org>\n"
 "Language-Team: Brazilian Portuguese <fedora-trans-pt_br at redhat.com>\n"
 "MIME-Version: 1.0\n"
@@ -35,17 +35,20 @@ msgid "Succeeded"
 msgstr "Concluído"
 
 #. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:239 ../client/pk-console.c:406
+#: ../client/pk-console.c:239
+#: ../client/pk-console.c:406
 msgid "True"
 msgstr "Verdadeiro"
 
-#: ../client/pk-console.c:239 ../client/pk-console.c:406
+#: ../client/pk-console.c:239
+#: ../client/pk-console.c:406
 msgid "False"
 msgstr "Falso"
 
 #. TRANSLATORS: this is the transactions role, e.g. "update-system"
 #. TRANSLATORS: the trasaction role, e.g. update-system
-#: ../client/pk-console.c:241 ../src/pk-polkit-action-lookup.c:327
+#: ../client/pk-console.c:241
+#: ../src/pk-polkit-action-lookup.c:327
 msgid "Role"
 msgstr "Modo"
 
@@ -60,7 +63,8 @@ msgstr "(segundos)"
 
 #. TRANSLATORS: this is The command line used to do the action
 #. TRANSLATORS: the command line of the thing that wants the authentication
-#: ../client/pk-console.c:250 ../src/pk-polkit-action-lookup.c:341
+#: ../client/pk-console.c:250
+#: ../src/pk-polkit-action-lookup.c:341
 msgid "Command line"
 msgstr "Linha de comando"
 
@@ -99,7 +103,8 @@ msgstr "Tipo"
 
 #. TRANSLATORS: this is any summary text describing the upgrade
 #. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:302 ../client/pk-console.c:325
+#: ../client/pk-console.c:302
+#: ../client/pk-console.c:325
 msgid "Summary"
 msgstr "Sumário"
 
@@ -135,7 +140,8 @@ msgstr "Detalhes sobre a atualização:"
 
 #. TRANSLATORS: details about the update, package name and version
 #. TRANSLATORS: title, the names of the packages that the method is processing
-#: ../client/pk-console.c:345 ../src/pk-polkit-action-lookup.c:352
+#: ../client/pk-console.c:345
+#: ../src/pk-polkit-action-lookup.c:352
 msgid "Package"
 msgid_plural "Packages"
 msgstr[0] "Pacote"
@@ -196,7 +202,8 @@ msgstr "Emissão"
 msgid "Updated"
 msgstr "Atualizado em"
 
-#: ../client/pk-console.c:477 ../client/pk-console.c:479
+#: ../client/pk-console.c:477
+#: ../client/pk-console.c:479
 msgid "Percentage"
 msgstr "Porcentagem"
 
@@ -237,9 +244,7 @@ msgstr "Por favor, reinicie o computador para completar a atualização."
 #. TRANSLATORS: a package needs to restart the session
 #: ../client/pk-console.c:591
 msgid "Please logout and login to complete the update."
-msgstr ""
-"Por favor, encerre a sessão e inicie-a novamente para completar a "
-"atualização."
+msgstr "Por favor, encerre a sessão e inicie-a novamente para completar a atualização."
 
 #. TRANSLATORS: a package needs to restart the application
 #: ../client/pk-console.c:594
@@ -248,21 +253,13 @@ msgstr "Por favor, reinicie o aplicativo que está sendo usado."
 
 #. TRANSLATORS: a package needs to restart their system (due to security)
 #: ../client/pk-console.c:597
-msgid ""
-"Please restart the computer to complete the update as important security "
-"updates have been installed."
-msgstr ""
-"Por favor, reinicie o computador para completar a atualização pois "
-"importantes atualizações de segurança foram instaladas."
+msgid "Please restart the computer to complete the update as important security updates have been installed."
+msgstr "Por favor, reinicie o computador para completar a atualização pois importantes atualizações de segurança foram instaladas."
 
 #. TRANSLATORS: a package needs to restart the session (due to security)
 #: ../client/pk-console.c:600
-msgid ""
-"Please logout and login to complete the update as important security updates "
-"have been installed."
-msgstr ""
-"Por favor, encerre a sessão e inicie-a novamente para completar a "
-"atualização pois importantes atualizações de segurança foram instaladas."
+msgid "Please logout and login to complete the update as important security updates have been installed."
+msgstr "Por favor, encerre a sessão e inicie-a novamente para completar a atualização pois importantes atualizações de segurança foram instaladas."
 
 #. TRANSLATORS: The package is already installed on the system
 #: ../client/pk-console.c:727
@@ -277,16 +274,20 @@ msgid "The package %s could not be installed: %s"
 msgstr "O pacote %s não pôde ser instalado: %s"
 
 #. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
-#: ../client/pk-console.c:760 ../client/pk-console.c:783
-#: ../client/pk-console.c:879 ../client/pk-console.c:996
-#: ../client/pk-tools-common.c:62 ../client/pk-tools-common.c:81
+#: ../client/pk-console.c:760
+#: ../client/pk-console.c:783
+#: ../client/pk-console.c:933
+#: ../client/pk-console.c:1046
+#: ../client/pk-tools-common.c:62
+#: ../client/pk-tools-common.c:81
 #: ../client/pk-tools-common.c:89
 #, c-format
 msgid "Internal error: %s"
 msgstr "Erro interno: %s"
 
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:768 ../client/pk-console.c:1392
+#: ../client/pk-console.c:768
+#: ../client/pk-console.c:1442
 #, c-format
 msgid "This tool could not install the packages: %s"
 msgstr "Esta ferramenta não pôde instalar os pacotes: %s"
@@ -297,396 +298,425 @@ msgstr "Esta ferramenta não pôde instalar os pacotes: %s"
 msgid "This tool could not install the files: %s"
 msgstr "Esta ferramenta não pôde instalar os arquivos: %s"
 
+#. TRANSLATORS: When processing, we might have to remove other dependencies
+#: ../client/pk-console.c:863
+msgid "The following packages have to be removed:"
+msgstr "Os seguintes pacotes têm que ser removidos:"
+
+#. TRANSLATORS: When processing, we might have to install other dependencies
+#: ../client/pk-console.c:866
+msgid "The following packages have to be installed:"
+msgstr "Os seguintes pacotes têm que ser instalados:"
+
+#. TRANSLATORS: When processing, we might have to update other dependencies
+#: ../client/pk-console.c:869
+msgid "The following packages have to be updated:"
+msgstr "Os seguintes pacotes têm que ser atualizados:"
+
+#. TRANSLATORS: When processing, we might have to reinstall other dependencies
+#: ../client/pk-console.c:872
+msgid "The following packages have to be reinstalled:"
+msgstr "Os seguintes pacotes têm que ser reinstalados:"
+
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:847
+#: ../client/pk-console.c:901
 #, c-format
 msgid "This tool could not remove %s: %s"
 msgstr "Esta ferramenta não pôde remover %s: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:870 ../client/pk-console.c:908
-#: ../client/pk-console.c:941
+#: ../client/pk-console.c:924
+#: ../client/pk-console.c:962
+#: ../client/pk-console.c:991
 #, c-format
 msgid "This tool could not remove the packages: %s"
 msgstr "Esta ferramente não pôde remover os pacotes: %s"
 
-#. TRANSLATORS: When removing, we might have to remove other dependencies
-#: ../client/pk-console.c:920
-msgid "The following packages have to be removed:"
-msgstr "Os seguintes pacotes têm que ser removidos:"
-
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:927
-msgid "Proceed removing additional packages?"
+#: ../client/pk-console.c:977
+msgid "Proceed with additional packages?"
 msgstr "Continuar com a remoção dos pacotes adicionais?"
 
-#. TRANSLATORS: We did not remove any packages
-#: ../client/pk-console.c:932
+#. TRANSLATORS: There was an error removing the packages. The detailed error follows
+#: ../client/pk-console.c:982
 msgid "The package removal was canceled!"
 msgstr "A remoção do pacote foi cancelada!"
 
 #. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:973
+#: ../client/pk-console.c:1023
 #, c-format
 msgid "This tool could not download the package %s as it could not be found"
-msgstr ""
-"Esta ferramenta não pôde baixar o pacote %s, pois ele não foi localizado"
+msgstr "Esta ferramenta não pôde baixar o pacote %s, pois ele não foi localizado"
 
 #. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:1004
+#: ../client/pk-console.c:1054
 #, c-format
 msgid "This tool could not download the packages: %s"
 msgstr "Esta ferramenta não pôde baixar os pacotes: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1031 ../client/pk-console.c:1040
+#: ../client/pk-console.c:1081
+#: ../client/pk-console.c:1090
 #, c-format
 msgid "This tool could not update %s: %s"
 msgstr "Esta ferramenta não pôde atualizar %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1062 ../client/pk-console.c:1070
+#: ../client/pk-console.c:1112
+#: ../client/pk-console.c:1120
 #, c-format
 msgid "This tool could not get the requirements for %s: %s"
 msgstr "Esta ferramenta não pôde obter os requerimentos para %s: %s"
 
 #. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:1092 ../client/pk-console.c:1100
+#: ../client/pk-console.c:1142
+#: ../client/pk-console.c:1150
 #, c-format
 msgid "This tool could not get the dependencies for %s: %s"
 msgstr "Esta ferramenta não pôde obter as dependências para %s: %s"
 
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:1122 ../client/pk-console.c:1130
+#: ../client/pk-console.c:1172
+#: ../client/pk-console.c:1180
 #, c-format
 msgid "This tool could not get package details for %s: %s"
 msgstr "Esta ferramenta não pôde obter os detalhes do pacote para %s: %s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1152
+#: ../client/pk-console.c:1202
 #, c-format
 msgid "This tool could not find the files for %s: %s"
 msgstr "Esta ferramenta não pôde localizar os arquivos para %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1160
+#: ../client/pk-console.c:1210
 #, c-format
 msgid "This tool could not get the file list for %s: %s"
 msgstr "Esta ferramenta não pôde obter a lista de arquivos para %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of packages. The filename follows
-#: ../client/pk-console.c:1182
+#: ../client/pk-console.c:1232
 #, c-format
 msgid "File already exists: %s"
 msgstr "O arquivo já existe: %s"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1187 ../client/pk-console.c:1243
-#: ../client/pk-console.c:1318
+#: ../client/pk-console.c:1237
+#: ../client/pk-console.c:1293
+#: ../client/pk-console.c:1368
 msgid "Getting package list"
 msgstr "Obtendo lista de pacotes"
 
 #. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1193 ../client/pk-console.c:1249
-#: ../client/pk-console.c:1324
+#: ../client/pk-console.c:1243
+#: ../client/pk-console.c:1299
+#: ../client/pk-console.c:1374
 #, c-format
 msgid "This tool could not get package list: %s"
 msgstr "Esta ferramente não pôde obter a lista de pacotes: %s"
 
 #. TRANSLATORS: There was an error saving the list
-#: ../client/pk-console.c:1204
+#: ../client/pk-console.c:1254
 #, c-format
 msgid "Failed to save to disk"
 msgstr "Falha ao salvar no disco"
 
 #. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1238 ../client/pk-console.c:1313
+#: ../client/pk-console.c:1288
+#: ../client/pk-console.c:1363
 #, c-format
 msgid "File does not exist: %s"
 msgstr "O arquivo não existe: %s"
 
 #. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1270
+#: ../client/pk-console.c:1320
 msgid "Packages to add"
 msgstr "Pacotes a serem adicionados"
 
 #. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1278
+#: ../client/pk-console.c:1328
 msgid "Packages to remove"
 msgstr "Pacotes a serem removidos"
 
 #. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1346
+#: ../client/pk-console.c:1396
 #, c-format
 msgid "No new packages need to be installed"
 msgstr "Nenhum pacote novo precisa ser instalado"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1352
+#: ../client/pk-console.c:1402
 msgid "To install"
 msgstr "Instalando"
 
 #. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1364
+#: ../client/pk-console.c:1414
 msgid "Searching for package: "
 msgstr "Pesquisando pelo pacote:"
 
 #. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1368
+#: ../client/pk-console.c:1418
 msgid "not found."
 msgstr "não encontrado."
 
 #. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1379
+#: ../client/pk-console.c:1429
 #, c-format
 msgid "No packages can be found to install"
 msgstr "Nenhum pacote pôde ser localizado para instalação"
 
 #. TRANSLATORS: installing new packages from package list
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
-#: ../client/pk-console.c:1385
+#: ../client/pk-console.c:1435
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:886
 #, c-format
 msgid "Installing packages"
 msgstr "Instalando pacotes"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1421
+#: ../client/pk-console.c:1471
 #, c-format
 msgid "This tool could not find the update details for %s: %s"
-msgstr ""
-"Esta ferramenta não pôde localizar os detalhes de atualização para %s: %s"
+msgstr "Esta ferramenta não pôde localizar os detalhes de atualização para %s: %s"
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1429
+#: ../client/pk-console.c:1479
 #, c-format
 msgid "This tool could not get the update details for %s: %s"
 msgstr "Esta ferramenta não pôde obter os detalhes de atualização para %s: %s"
 
 #. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
-#: ../client/pk-console.c:1460
+#: ../client/pk-console.c:1510
 msgid "Error:"
 msgstr "Erro:"
 
 #. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1474
+#: ../client/pk-console.c:1524
 msgid "Package description"
 msgstr "Descrição do pacote"
 
 #. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
-#: ../client/pk-console.c:1490
+#: ../client/pk-console.c:1540
 msgid "Message:"
 msgstr "Mensagem:"
 
 #. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1518
+#: ../client/pk-console.c:1568
 msgid "Package files"
 msgstr "Arquivos do pacote"
 
 #. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1526
+#: ../client/pk-console.c:1576
 msgid "No files"
 msgstr "Nenhum arquivo"
 
 #. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1549
+#: ../client/pk-console.c:1599
 msgid "Repository signature required"
 msgstr "A assinatura do repositório é necessária"
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1559
+#: ../client/pk-console.c:1609
 msgid "Do you accept this signature?"
 msgstr "Você aceita essa assinatura?"
 
 #. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1563
+#: ../client/pk-console.c:1613
 msgid "The signature was not accepted."
 msgstr "A assinatura não foi aceita."
 
 #. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1597
+#: ../client/pk-console.c:1647
 msgid "End user license agreement required"
 msgstr "É necessário um contrato de licença para o usuário final"
 
 #. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1604
+#: ../client/pk-console.c:1654
 msgid "Do you agree to this license?"
 msgstr "Você concorda com a licença?"
 
 #. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1608
+#: ../client/pk-console.c:1658
 msgid "The license was refused."
 msgstr "A licença foi recusada."
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1637
+#: ../client/pk-console.c:1687
 msgid "The daemon crashed mid-transaction!"
 msgstr "O daemon travou no meio da transação!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1690
+#: ../client/pk-console.c:1740
 msgid "PackageKit Console Interface"
 msgstr "Interface em Console do PackageKit"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1692
+#: ../client/pk-console.c:1742
 msgid "Subcommands:"
 msgstr "Subcomandos:"
 
 #. TRANSLATORS: command line argument, if we should show debugging information
 #. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:1785 ../client/pk-generate-pack.c:185
+#: ../client/pk-console.c:1835
+#: ../client/pk-generate-pack.c:185
 #: ../client/pk-monitor.c:128
 #: ../contrib/command-not-found/pk-command-not-found.c:616
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:550
-#: ../contrib/device-rebind/pk-device-rebind.c:293 ../src/pk-main.c:211
+#: ../contrib/device-rebind/pk-device-rebind.c:293
+#: ../src/pk-main.c:211
 msgid "Show extra debugging information"
 msgstr "Mostrar informações extras de depuração"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1788 ../client/pk-monitor.c:130
+#: ../client/pk-console.c:1838
+#: ../client/pk-monitor.c:130
 msgid "Show the program version and exit"
 msgstr "Mostrar a versão do programa e sair"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1791
+#: ../client/pk-console.c:1841
 msgid "Set the filter, e.g. installed"
 msgstr "Definir o filtro, p. ex.: instalados"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1794
+#: ../client/pk-console.c:1844
 msgid "Exit without waiting for actions to complete"
 msgstr "Sair sem esperar pelo término das ações"
 
 #. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:1821
+#: ../client/pk-console.c:1871
 msgid "This tool could not connect to system DBUS."
 msgstr "Esta ferramenta não pôde conectar ao DBUS do sistema."
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1911
+#: ../client/pk-console.c:1961
 msgid "The filter specified was invalid"
 msgstr "O filtro especificado era inválido"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1930
+#: ../client/pk-console.c:1980
 msgid "A search type is required, e.g. name"
 msgstr "Um tipo de pesquisa é requerido, p. ex. nome"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1937 ../client/pk-console.c:1946
-#: ../client/pk-console.c:1955 ../client/pk-console.c:1964
+#: ../client/pk-console.c:1987
+#: ../client/pk-console.c:1996
+#: ../client/pk-console.c:2005
+#: ../client/pk-console.c:2014
 msgid "A search term is required"
 msgstr "Um termo de pesquisa é requerido"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1971
+#: ../client/pk-console.c:2021
 msgid "Invalid search type"
 msgstr "Tipo de pesquisa inválido"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1977
+#: ../client/pk-console.c:2027
 msgid "A package name or filename to install is required"
 msgstr "O nome do pacote ou arquivo é requerido"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1986
+#: ../client/pk-console.c:2036
 msgid "A type, key_id and package_id are required"
 msgstr "Um tipo, key_id e package_id são requeridos"
 
 #. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:1995
+#: ../client/pk-console.c:2045
 msgid "A package name to remove is required"
 msgstr "O nome do pacote para remoção é requerido"
 
 #. TRANSLATORS: the user did not specify anything about what to download or where
-#: ../client/pk-console.c:2003
+#: ../client/pk-console.c:2053
 msgid "A destination directory and the package names to download are required"
-msgstr ""
-"O diretório de destino e os os nomes dos pacotes a serem baixados são "
-"requeridos"
+msgstr "O diretório de destino e os os nomes dos pacotes a serem baixados são requeridos"
 
 #. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:2010
+#: ../client/pk-console.c:2060
 msgid "Directory not found"
 msgstr "Diretório não encontrado"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2018
+#: ../client/pk-console.c:2068
 msgid "A licence identifier (eula-id) is required"
 msgstr "Um identificador de licença (eula-id) é requerido"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2028
+#: ../client/pk-console.c:2078
 msgid "A transaction identifier (tid) is required"
 msgstr "Um identificador de transação (tid) é requerido"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:2045
+#: ../client/pk-console.c:2095
 msgid "A package name to resolve is required"
 msgstr "O nome de pacote a ser analisado é requerido"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:2054 ../client/pk-console.c:2063
+#: ../client/pk-console.c:2104
+#: ../client/pk-console.c:2113
 msgid "A repository name is required"
 msgstr "O nome do repositório é requerido"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2072
+#: ../client/pk-console.c:2122
 msgid "A repo name, parameter and value are required"
 msgstr "Um nome de repositório, parâmetro e um valor são requeridos"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:2086
+#: ../client/pk-console.c:2136
 msgid "An action, e.g. 'update-system' is required"
 msgstr "Uma ação, p. ex. \"update-system\" é requerida"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:2093
+#: ../client/pk-console.c:2143
 msgid "A correct role is required"
 msgstr "Um modo correto é requerido"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2100
+#: ../client/pk-console.c:2150
 msgid "Failed to get the time since this action was last completed"
 msgstr "Falha ao obter o tempo em que essa ação foi completada pela última vez"
 
 #. TRANSLATORS: The user did not provide a package name
 #. TRANSLATORS: This is when the user fails to supply the package name
-#: ../client/pk-console.c:2110 ../client/pk-console.c:2122
-#: ../client/pk-console.c:2131 ../client/pk-console.c:2149
-#: ../client/pk-console.c:2158 ../client/pk-generate-pack.c:241
+#: ../client/pk-console.c:2160
+#: ../client/pk-console.c:2172
+#: ../client/pk-console.c:2181
+#: ../client/pk-console.c:2199
+#: ../client/pk-console.c:2208
+#: ../client/pk-generate-pack.c:241
 msgid "A package name is required"
 msgstr "O nome do pacote é requerido"
 
 #. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:2140
+#: ../client/pk-console.c:2190
 msgid "A package provide string is required"
 msgstr "É necessário especificar o que o pacote fornece"
 
 #. TRANSLATORS: The user didn't specify a filename to create as a list
-#: ../client/pk-console.c:2167
+#: ../client/pk-console.c:2217
 msgid "A list file name to create is required"
 msgstr "O nome de arquivo da lista a ser criada é requerido"
 
 #. TRANSLATORS: The user didn't specify a filename to open as a list
-#: ../client/pk-console.c:2177 ../client/pk-console.c:2187
+#: ../client/pk-console.c:2227
+#: ../client/pk-console.c:2237
 msgid "A list file to open is required"
 msgstr "Uma lista de arquivos a serem abertos é requerida"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2241
+#: ../client/pk-console.c:2291
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "A opção \"%s\" não é suportada"
 
 #. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2254
+#: ../client/pk-console.c:2304
 msgid "Incorrect privileges for this operation"
 msgstr "Privilégios incorretos para esta operação"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2257
+#: ../client/pk-console.c:2307
 msgid "Command failed"
 msgstr "O comando falhou"
 
@@ -712,8 +742,7 @@ msgstr "Defina o nome de arquivo das dependências a serem excluídas"
 
 #. TRANSLATORS: the output location
 #: ../client/pk-generate-pack.c:191
-msgid ""
-"The output file or directory (the current directory is used if ommitted)"
+msgid "The output file or directory (the current directory is used if ommitted)"
 msgstr "O diretório ou arquivo de saída (o diretório atual é usado se omitido)"
 
 #. TRANSLATORS: put a list of packages in the pack
@@ -743,31 +772,25 @@ msgstr "Um diretório ou arquivo de saída é requerido"
 
 #. TRANSLATORS: This is when the backend doesn't have the capability to get-depends
 #. TRANSLATORS: This is when the backend doesn't have the capability to download
-#: ../client/pk-generate-pack.c:267 ../client/pk-generate-pack.c:273
+#: ../client/pk-generate-pack.c:267
+#: ../client/pk-generate-pack.c:273
 msgid "The package manager cannot perform this type of operation."
 msgstr "O gerenciador de pacotes não pode realizar este tipo de operação."
 
 #. TRANSLATORS: This is when the distro didn't include libarchive support into PK
 #: ../client/pk-generate-pack.c:280
-msgid ""
-"Service packs cannot be created as PackageKit was not built with libarchive "
-"support."
-msgstr ""
-"Os pacotes de serviço não podem ser criados já que o PackageKIt não foi "
-"compilado com suporte à libarchive."
+msgid "Service packs cannot be created as PackageKit was not built with libarchive support."
+msgstr "Os pacotes de serviço não podem ser criados já que o PackageKIt não foi compilado com suporte à libarchive."
 
 #. TRANSLATORS: the user specified an absolute path, but didn't get the extension correct
 #: ../client/pk-generate-pack.c:291
 msgid "If specifying a file, the service pack name must end with"
-msgstr ""
-"Se um arquivo for especificado, o nome do pacote de serviços deve terminar "
-"com"
+msgstr "Se um arquivo for especificado, o nome do pacote de serviços deve terminar com"
 
 #. TRANSLATORS: This is when file already exists
 #: ../client/pk-generate-pack.c:307
 msgid "A pack with the same name already exists, do you want to overwrite it?"
-msgstr ""
-"Um pacote de serviços com o mesmo nome já existe, você deseja sobrescrevê-lo?"
+msgstr "Um pacote de serviços com o mesmo nome já existe, você deseja sobrescrevê-lo?"
 
 #. TRANSLATORS: This is when the pack was not overwritten
 #: ../client/pk-generate-pack.c:310
@@ -904,8 +927,7 @@ msgstr "Baixando detalhes das fontes de programas."
 #. TRANSLATORS: downloading file lists so we can search
 #: ../contrib/command-not-found/pk-command-not-found.c:353
 msgid "Downloading filelists (this may take some time to complete)."
-msgstr ""
-"Baixando listas de arquivos (isso pode levar algum tempo para ser concluído)."
+msgstr "Baixando listas de arquivos (isso pode levar algum tempo para ser concluído)."
 
 #. TRANSLATORS: waiting for native lock
 #: ../contrib/command-not-found/pk-command-not-found.c:357
@@ -999,10 +1021,8 @@ msgstr "Falha ao localizar o pacote %s ou ele já está instalado: %s"
 
 #. command line argument, simulate what would be done, but don't actually do it
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:553
-msgid ""
-"Don't actually install any packages, only simulate what would be installed"
-msgstr ""
-"Não instala os pacotes na realidade, apenas simula o que seria instalado"
+msgid "Don't actually install any packages, only simulate what would be installed"
+msgstr "Não instala os pacotes na realidade, apenas simula o que seria instalado"
 
 #. command line argument, do we skip packages that depend on the ones specified
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:556
@@ -1285,24 +1305,16 @@ msgid "Authentication is required to accept a EULA"
 msgstr "É necessário autenticar para aceitar uma licença EULA"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:9
-msgid ""
-"Authentication is required to cancel a task that was not started by yourself"
-msgstr ""
-"É necessário autenticar para cancelar uma tarefa que não foi iniciada por "
-"você"
+msgid "Authentication is required to cancel a task that was not started by yourself"
+msgstr "É necessário autenticar para cancelar uma tarefa que não foi iniciada por você"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:10
 msgid "Authentication is required to change software source parameters"
-msgstr ""
-"É necessário autenticar para alterar os parâmetros das fontes de programas"
+msgstr "É necessário autenticar para alterar os parâmetros das fontes de programas"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:11
-msgid ""
-"Authentication is required to consider a key used for signing packages as "
-"trusted"
-msgstr ""
-"É necessário autenticar para considerar uma chave usada para assinar pacotes "
-"como confiáveis"
+msgid "Authentication is required to consider a key used for signing packages as trusted"
+msgstr "É necessário autenticar para considerar uma chave usada para assinar pacotes como confiáveis"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:12
 msgid "Authentication is required to install a signed package"
@@ -1318,8 +1330,7 @@ msgstr "É necessário autenticar para recarregar as fontes do sistema"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:15
 msgid "Authentication is required to reload the device with a new driver"
-msgstr ""
-"É necessário autenticar para recarregar o dispositivo com o novo driver"
+msgstr "É necessário autenticar para recarregar o dispositivo com o novo driver"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:16
 msgid "Authentication is required to remove packages"
@@ -1330,12 +1341,8 @@ msgid "Authentication is required to rollback a transaction"
 msgstr "É necessário autenticar para retroceder uma transação"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:18
-msgid ""
-"Authentication is required to set the network proxy used for downloading "
-"packages"
-msgstr ""
-"É necessário autenticar para definir o proxy de rede usado para baixar "
-"pacotes"
+msgid "Authentication is required to set the network proxy used for downloading packages"
+msgstr "É necessário autenticar para definir o proxy de rede usado para baixar pacotes"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:19
 msgid "Authentication is required to update packages"
@@ -1466,12 +1473,8 @@ msgstr "O usuário correto não está iniciando o executável (normalmente o roo
 
 #. TRANSLATORS: or we are installed in a prefix
 #: ../src/pk-main.c:93
-msgid ""
-"The org.freedesktop.PackageKit.conf file is not installed in the system "
-"directory:"
-msgstr ""
-"O arquivo org.freedesktop.PackageKit.conf não está instalado no diretório do "
-"sistema:"
+msgid "The org.freedesktop.PackageKit.conf file is not installed in the system directory:"
+msgstr "O arquivo org.freedesktop.PackageKit.conf não está instalado no diretório do sistema:"
 
 #. TRANSLATORS: a backend is the system package tool, e.g. yum, apt
 #: ../src/pk-main.c:205
@@ -1520,45 +1523,34 @@ msgstr "Erro ao tentar iniciar:"
 
 #: ../src/pk-polkit-action-lookup.c:147
 msgid "To install debugging packages, extra sources need to be enabled"
-msgstr ""
-"Fontes extras precisam ser habilitadas para a instalação dos pacotes de "
-"depuração"
+msgstr "Fontes extras precisam ser habilitadas para a instalação dos pacotes de depuração"
 
 #. TRANSLATORS: is not GPG signed
-#: ../src/pk-polkit-action-lookup.c:168 ../src/pk-polkit-action-lookup.c:187
+#: ../src/pk-polkit-action-lookup.c:168
+#: ../src/pk-polkit-action-lookup.c:187
 msgid "The software is not from a trusted source."
 msgstr "O programa não vem de uma fonte confiável."
 
 #: ../src/pk-polkit-action-lookup.c:173
 msgid "Do not update this package unless you are sure it is safe to do so."
-msgstr ""
-"Não atualize este pacote a não ser que você esteja certo de que é seguro "
-"fazer isso."
+msgstr "Não atualize este pacote a não ser que você esteja certo de que é seguro fazer isso."
 
 #: ../src/pk-polkit-action-lookup.c:174
 msgid "Do not update these packages unless you are sure it is safe to do so."
-msgstr ""
-"Não atualize estes pacotes a não ser que você esteja certo de que é seguro "
-"fazer isso."
+msgstr "Não atualize estes pacotes a não ser que você esteja certo de que é seguro fazer isso."
 
 #: ../src/pk-polkit-action-lookup.c:192
 msgid "Do not install this package unless you are sure it is safe to do so."
-msgstr ""
-"Não instale este pacote a não ser que você esteja certo de que é seguro "
-"fazer isso."
+msgstr "Não instale este pacote a não ser que você esteja certo de que é seguro fazer isso."
 
 #: ../src/pk-polkit-action-lookup.c:193
 msgid "Do not install these packages unless you are sure it is safe to do so."
-msgstr ""
-"Não instale estes pacotes a não ser que você esteja certo de que é seguro "
-"fazer isso."
+msgstr "Não instale estes pacotes a não ser que você esteja certo de que é seguro fazer isso."
 
 #. TRANSLATORS: warn the user that all bets are off
 #: ../src/pk-polkit-action-lookup.c:199
 msgid "Malicious software can damage your computer or cause other harm."
-msgstr ""
-"Programas maliciosos podem danificar o seu computador ou causar outros "
-"prejuízos."
+msgstr "Programas maliciosos podem danificar o seu computador ou causar outros prejuízos."
 
 #. TRANSLATORS: too many packages to list each one
 #: ../src/pk-polkit-action-lookup.c:274
@@ -1572,200 +1564,149 @@ msgstr "Somente confiáveis"
 
 #~ msgid "The action, one of 'create', 'add', or 'remove'"
 #~ msgstr "A ação, uma entre as opções \"create\", \"add\" ou \"remove\""
-
 #~ msgid "Main cache file to use (if not specififed, default is used)"
 #~ msgstr ""
 #~ "O arquivo principal de cache a ser usado (se não for especificado, o "
 #~ "padrão é usado)"
-
 #~ msgid "Source cache file to add to the main database"
 #~ msgstr "O arquivo fonte do cache para adicionar ao banco de dados principal"
-
 #~ msgid "Icon directory"
 #~ msgstr "Diretório de ícones"
-
 #~ msgid "Name of the remote repo"
 #~ msgstr "Nome do repositório remoto"
-
 #~ msgid "PackageKit Application Database Installer"
 #~ msgstr "Instalador do bancos de dados de aplicativos do PackageKit"
-
 #~ msgid "Main database file to use (if not specififed, default is used)"
 #~ msgstr ""
 #~ "Arquivo principal do banco de dados a ser usado (se não for especificado "
 #~ "o padrão é usado)"
-
 #~ msgid "You need to specify a search type, e.g. name"
 #~ msgstr "Você precisa especificar um tipo de pesquisa, p. ex. nome"
-
 #~ msgid "You need to specify a search term"
 #~ msgstr "Você precisa especificar um termo de pesquisa"
-
 #~ msgid "You need to specify a package to remove"
 #~ msgstr "Você precisa especificar um pacote a ser removido"
-
 #~ msgid "You need to specify a package name to resolve"
 #~ msgstr "Você precisa especificar um nome de pacote a ser analisado"
-
 #~ msgid "You need to specify a repository name"
 #~ msgstr "Você precisa especificar um nome de repositório"
-
 #~ msgid "You need to specify a correct role"
 #~ msgstr "Você precisa especificar um papel correto"
-
 #~ msgid "Failed to get last time"
 #~ msgstr "Falha ao obter o último horário"
-
 #~ msgid "You need to specify a package to find the details for"
 #~ msgstr ""
 #~ "Você precisa especificar o pacote para o qual você quer localizar os "
 #~ "detalhes"
-
 #~ msgid "You need to specify a package to find the files for"
 #~ msgstr ""
 #~ "Você precisa especificar o pacote para o qual você quer localizar os "
 #~ "arquivos"
-
 #~ msgid "You need to specify a list file to open"
 #~ msgstr "Você precisa especificar um arquivo de lista a ser aberto"
-
 #~ msgid "This tool could not remove the packages: '%s'"
 #~ msgstr "Esta ferramente não pôde remover os pacotes: \"%s\""
-
 #~ msgid "Install local file"
 #~ msgstr "Instalar um arquivo local"
-
 #~ msgid "Okay to import key?"
 #~ msgstr "A chave pode ser importada?"
-
 #~ msgid "Did not import key"
 #~ msgstr "Não importar a chave"
-
 #~ msgid "Eula required"
 #~ msgstr "Uma Eula é necessária"
-
 #~ msgid "Do you agree?"
 #~ msgstr "Você concorda?"
-
 #~ msgid "Could not find package to remove"
 #~ msgstr "Não foi possível localizar o pacote a ser removido"
-
 #~ msgid "Cancelled!"
 #~ msgstr "Cancelado!"
-
 #~ msgid "Could not find package to update"
 #~ msgstr "Não foi possível localizar o pacote a ser atualizado"
-
 #~ msgid "Could not find what packages require"
 #~ msgstr "Não foi possível localizar quais pacotes necessitam desse pacote"
-
 #~ msgid "Could not find details for"
 #~ msgstr "Não foi possível localizar os detalhes para"
-
 #~ msgid "failed to download: invalid package_id and/or directory"
 #~ msgstr "falha ao baixar: package_id e/ou diretório inválidos"
-
 #~ msgid "Could not find a valid metadata file"
 #~ msgstr "Não foi possível localizar um arquivo de metadados válido"
-
 #~ msgid "Okay to download the additional packages"
 #~ msgstr "Os pacotes adicionais podem ser baixados"
-
 #~ msgid "You need to specify the pack name and packages to be packed\n"
 #~ msgstr ""
 #~ "Você precisa especificar o nome do pacote de serviços e os pacotes a "
 #~ "serem incluídos\n"
-
 #~ msgid ""
 #~ "Invalid name for the service pack, Specify a name with .servicepack "
 #~ "extension\n"
 #~ msgstr ""
 #~ "Nome inválido para o pacote de serviços. Especifique um nome com a "
 #~ "extensão .servicepack\n"
-
 #~ msgid "Could not set database readonly"
 #~ msgstr "Não foi possível configurar o banco de dados para somente leitura"
-
 #~ msgid "Could not open database: %s"
 #~ msgstr "Não foi possível abrir o banco de dados: %s"
-
 #~ msgid "You probably need to run this program as the root user"
 #~ msgstr "Você provavelmente precisa executar este programa como usuário root"
-
 #~ msgid "<span color='#%06x' underline='single' size='larger'>Run %s</span>"
 #~ msgstr ""
 #~ "<span color='#%06x' underline='single' size='larger'>Executar %s</span>"
-
 #~ msgid "<big>%s</big>"
 #~ msgstr "<big>%s</big>"
-
 #~ msgid ""
 #~ "\n"
 #~ "<span color='#%06x' underline='single'>Run version %s now</span>"
 #~ msgstr ""
 #~ "\n"
 #~ "<span color='#%06x' underline='single'>Executar versão %s agora</span>"
-
 #~ msgid ""
 #~ "\n"
 #~ "<span color='#%06x' underline='single'>Run now</span>"
 #~ msgstr ""
 #~ "\n"
 #~ "<span color='#%06x' underline='single'>Executar agora</span>"
-
 #~ msgid ""
 #~ "\n"
 #~ "<span color='#%06x' underline='single'>Upgrade to version %s</span>"
 #~ msgstr ""
 #~ "\n"
 #~ "<span color='#%06x' underline='single'>Atualizar para a versão %s</span>"
-
 #~ msgid ""
 #~ "<span color='#%06x' underline='single' size='larger'>Install %s Now</span>"
 #~ msgstr ""
 #~ "<span color='#%06x' underline='single' size='larger'>Instalar %s agora</"
 #~ "span>"
-
 #~ msgid ""
 #~ "\n"
 #~ "<small>Version: %s</small>"
 #~ msgstr ""
 #~ "\n"
 #~ "<small>Versão: %s</small>"
-
 #~ msgid ""
 #~ "You need to specify the package to download and the destination directory"
 #~ msgstr ""
 #~ "Você precisa especificar o pacote a ser baixado e o diretório de destino"
-
 #~ msgid ""
 #~ "Could not find a package with that name to install, or package already "
 #~ "installed"
 #~ msgstr ""
 #~ "Não foi possível encontrar um pacote com esse nome para instalar ou o "
 #~ "pacote já está instalado"
-
 #~ msgid "Could not find a package with that name to update"
 #~ msgstr ""
 #~ "Não foi possível encontrar um pacote com esse nome para ser atualizado"
-
 #~ msgid "Authentication is required to install a local file"
 #~ msgstr "É necessário autenticar para instalar um arquivo local"
-
 #~ msgid "Authentication is required to install a security signature"
 #~ msgstr "É necessário autenticar para instalar uma assinatura de segurança"
-
 #~ msgid "Authentication is required to update all packages"
 #~ msgstr "É necessário autenticar para atualizar todos os pacotes"
-
 #~ msgid "Install security signature"
 #~ msgstr "Instalar uma assinatura de segurança"
-
 #~ msgid "Refresh package lists"
 #~ msgstr "Recarregar listas de pacotes"
-
 #~ msgid "Update all packages"
 #~ msgstr "Atualizar todos os pacotes"
-
 #~ msgid "Could not find a description for this package"
 #~ msgstr "Não foi possível encontrar uma descrição para esse pacote"
+
commit ef76227235bf22d64b3ac745f30ec3c0f27ab857
Author: beckerde <beckerde at fedoraproject.org>
Date:   Mon Aug 24 22:20:08 2009 +0000

    Sending translation for Spanish

diff --git a/po/es.po b/po/es.po
index 43be14d..5241da4 100644
--- a/po/es.po
+++ b/po/es.po
@@ -9,8 +9,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: packagekit\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-08-24 11:06+0100\n"
-"PO-Revision-Date: 2009-08-23 10:38-0300\n"
+"POT-Creation-Date: 2009-08-24 19:37+0000\n"
+"PO-Revision-Date: 2009-08-24 19:28-0300\n"
 "Last-Translator: Domingo Becker <domingobecker at gmail.com>\n"
 "Language-Team: Fedora Spanish <fedora-trans-es at redhat.com>\n"
 "MIME-Version: 1.0\n"
@@ -35,17 +35,20 @@ msgid "Succeeded"
 msgstr "Existosa"
 
 #. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:239 ../client/pk-console.c:406
+#: ../client/pk-console.c:239
+#: ../client/pk-console.c:406
 msgid "True"
 msgstr "Verdadero"
 
-#: ../client/pk-console.c:239 ../client/pk-console.c:406
+#: ../client/pk-console.c:239
+#: ../client/pk-console.c:406
 msgid "False"
 msgstr "Falso"
 
 #. TRANSLATORS: this is the transactions role, e.g. "update-system"
 #. TRANSLATORS: the trasaction role, e.g. update-system
-#: ../client/pk-console.c:241 ../src/pk-polkit-action-lookup.c:327
+#: ../client/pk-console.c:241
+#: ../src/pk-polkit-action-lookup.c:327
 msgid "Role"
 msgstr "Rol"
 
@@ -60,7 +63,8 @@ msgstr "(segundos)"
 
 #. TRANSLATORS: this is The command line used to do the action
 #. TRANSLATORS: the command line of the thing that wants the authentication
-#: ../client/pk-console.c:250 ../src/pk-polkit-action-lookup.c:341
+#: ../client/pk-console.c:250
+#: ../src/pk-polkit-action-lookup.c:341
 msgid "Command line"
 msgstr "Línea de comandos"
 
@@ -99,7 +103,8 @@ msgstr "Tipo"
 
 #. TRANSLATORS: this is any summary text describing the upgrade
 #. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:302 ../client/pk-console.c:325
+#: ../client/pk-console.c:302
+#: ../client/pk-console.c:325
 msgid "Summary"
 msgstr "Resúmen"
 
@@ -135,7 +140,8 @@ msgstr "Detalles acerca de la actualización:"
 
 #. TRANSLATORS: details about the update, package name and version
 #. TRANSLATORS: title, the names of the packages that the method is processing
-#: ../client/pk-console.c:345 ../src/pk-polkit-action-lookup.c:352
+#: ../client/pk-console.c:345
+#: ../src/pk-polkit-action-lookup.c:352
 msgid "Package"
 msgid_plural "Packages"
 msgstr[0] "Paquete"
@@ -196,7 +202,8 @@ msgstr "Emitido"
 msgid "Updated"
 msgstr "Actualizado"
 
-#: ../client/pk-console.c:477 ../client/pk-console.c:479
+#: ../client/pk-console.c:477
+#: ../client/pk-console.c:479
 msgid "Percentage"
 msgstr "Porcentaje"
 
@@ -246,22 +253,13 @@ msgstr "Reinicie la aplicación que está usando."
 
 #. TRANSLATORS: a package needs to restart their system (due to security)
 #: ../client/pk-console.c:597
-msgid ""
-"Please restart the computer to complete the update as important security "
-"updates have been installed."
-msgstr ""
-"Por favor, reinicie el equipo para completar la actualización, ya que se han "
-"instalado actualizaciones de seguridad importantes."
+msgid "Please restart the computer to complete the update as important security updates have been installed."
+msgstr "Por favor, reinicie el equipo para completar la actualización, ya que se han instalado actualizaciones de seguridad importantes."
 
 #. TRANSLATORS: a package needs to restart the session (due to security)
 #: ../client/pk-console.c:600
-msgid ""
-"Please logout and login to complete the update as important security updates "
-"have been installed."
-msgstr ""
-"Por favor, cierre la sesión y vuelva a registrarse para completar la "
-"actualización, ya que se han instalado actualizaciones de seguridad "
-"importantes."
+msgid "Please logout and login to complete the update as important security updates have been installed."
+msgstr "Por favor, cierre la sesión y vuelva a registrarse para completar la actualización, ya que se han instalado actualizaciones de seguridad importantes."
 
 #. TRANSLATORS: The package is already installed on the system
 #: ../client/pk-console.c:727
@@ -276,16 +274,20 @@ msgid "The package %s could not be installed: %s"
 msgstr "No se pudo instalar el paquete %s: %s"
 
 #. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
-#: ../client/pk-console.c:760 ../client/pk-console.c:783
-#: ../client/pk-console.c:879 ../client/pk-console.c:996
-#: ../client/pk-tools-common.c:62 ../client/pk-tools-common.c:81
+#: ../client/pk-console.c:760
+#: ../client/pk-console.c:783
+#: ../client/pk-console.c:933
+#: ../client/pk-console.c:1046
+#: ../client/pk-tools-common.c:62
+#: ../client/pk-tools-common.c:81
 #: ../client/pk-tools-common.c:89
 #, c-format
 msgid "Internal error: %s"
 msgstr "Error interno: %s"
 
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:768 ../client/pk-console.c:1392
+#: ../client/pk-console.c:768
+#: ../client/pk-console.c:1442
 #, c-format
 msgid "This tool could not install the packages: %s"
 msgstr "Esta herramienta no pudo instalar los paquetes: %s"
@@ -296,397 +298,425 @@ msgstr "Esta herramienta no pudo instalar los paquetes: %s"
 msgid "This tool could not install the files: %s"
 msgstr "Esta herramienta no pudo instalar los archivos: %s"
 
+#. TRANSLATORS: When processing, we might have to remove other dependencies
+#: ../client/pk-console.c:863
+msgid "The following packages have to be removed:"
+msgstr "Se eliminarán los siguientes paquetes:"
+
+#. TRANSLATORS: When processing, we might have to install other dependencies
+#: ../client/pk-console.c:866
+msgid "The following packages have to be installed:"
+msgstr "Los siguientes paquetes se deben instalar:"
+
+#. TRANSLATORS: When processing, we might have to update other dependencies
+#: ../client/pk-console.c:869
+msgid "The following packages have to be updated:"
+msgstr "Los siguientes paquetes se deben actualizar:"
+
+#. TRANSLATORS: When processing, we might have to reinstall other dependencies
+#: ../client/pk-console.c:872
+msgid "The following packages have to be reinstalled:"
+msgstr "Los siguientes paquetes se deben reinstalar:"
+
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:847
+#: ../client/pk-console.c:901
 #, c-format
 msgid "This tool could not remove %s: %s"
 msgstr "Esta herramienta no pudo eliminar %s: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:870 ../client/pk-console.c:908
-#: ../client/pk-console.c:941
+#: ../client/pk-console.c:924
+#: ../client/pk-console.c:962
+#: ../client/pk-console.c:991
 #, c-format
 msgid "This tool could not remove the packages: %s"
 msgstr "Esta herramienta no pudo eliminar los paquetes: %s"
 
-#. TRANSLATORS: When removing, we might have to remove other dependencies
-#: ../client/pk-console.c:920
-msgid "The following packages have to be removed:"
-msgstr "Se eliminarán los siguientes paquetes:"
-
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:927
-msgid "Proceed removing additional packages?"
-msgstr "¿Proceder con la eliminación de los paquetes adicionales?"
+#: ../client/pk-console.c:977
+msgid "Proceed with additional packages?"
+msgstr "¿Proceder con los paquetes adicionales?"
 
-#. TRANSLATORS: We did not remove any packages
-#: ../client/pk-console.c:932
+#. TRANSLATORS: There was an error removing the packages. The detailed error follows
+#: ../client/pk-console.c:982
 msgid "The package removal was canceled!"
 msgstr "Se canceló la eliminación de paquetes"
 
 #. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:973
+#: ../client/pk-console.c:1023
 #, c-format
 msgid "This tool could not download the package %s as it could not be found"
-msgstr ""
-"Esta herramienta no pudo descargar el paquete %s debido a que no se encontró"
+msgstr "Esta herramienta no pudo descargar el paquete %s debido a que no se encontró"
 
 #. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:1004
+#: ../client/pk-console.c:1054
 #, c-format
 msgid "This tool could not download the packages: %s"
 msgstr "Esta herramienta no pudo descargar los paquetes: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1031 ../client/pk-console.c:1040
+#: ../client/pk-console.c:1081
+#: ../client/pk-console.c:1090
 #, c-format
 msgid "This tool could not update %s: %s"
 msgstr "Esta herramienta no pudo actualizar %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1062 ../client/pk-console.c:1070
+#: ../client/pk-console.c:1112
+#: ../client/pk-console.c:1120
 #, c-format
 msgid "This tool could not get the requirements for %s: %s"
 msgstr "Esta herramienta no pudo obtener los requerimientos de %s: %s"
 
 #. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:1092 ../client/pk-console.c:1100
+#: ../client/pk-console.c:1142
+#: ../client/pk-console.c:1150
 #, c-format
 msgid "This tool could not get the dependencies for %s: %s"
 msgstr "Esta herramienta no pudo obtener las dependencias de %s: %s"
 
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:1122 ../client/pk-console.c:1130
+#: ../client/pk-console.c:1172
+#: ../client/pk-console.c:1180
 #, c-format
 msgid "This tool could not get package details for %s: %s"
 msgstr "Esta herramienta no pudo obtener los detalles del paquete %s: %s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1152
+#: ../client/pk-console.c:1202
 #, c-format
 msgid "This tool could not find the files for %s: %s"
 msgstr "Esta herramienta no pudo encontrar los archivos de %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1160
+#: ../client/pk-console.c:1210
 #, c-format
 msgid "This tool could not get the file list for %s: %s"
 msgstr "Esta herramienta no pudo obtener la lista de archivos de %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of packages. The filename follows
-#: ../client/pk-console.c:1182
+#: ../client/pk-console.c:1232
 #, c-format
 msgid "File already exists: %s"
 msgstr "El archivo ya existe: %s"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1187 ../client/pk-console.c:1243
-#: ../client/pk-console.c:1318
+#: ../client/pk-console.c:1237
+#: ../client/pk-console.c:1293
+#: ../client/pk-console.c:1368
 msgid "Getting package list"
 msgstr "Obteniendo la lista de paquetes"
 
 #. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1193 ../client/pk-console.c:1249
-#: ../client/pk-console.c:1324
+#: ../client/pk-console.c:1243
+#: ../client/pk-console.c:1299
+#: ../client/pk-console.c:1374
 #, c-format
 msgid "This tool could not get package list: %s"
 msgstr "Esta herramienta no pudo obtener la lista de paquetes: %s"
 
 #. TRANSLATORS: There was an error saving the list
-#: ../client/pk-console.c:1204
+#: ../client/pk-console.c:1254
 #, c-format
 msgid "Failed to save to disk"
 msgstr "Falló al guardar en el disco"
 
 #. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1238 ../client/pk-console.c:1313
+#: ../client/pk-console.c:1288
+#: ../client/pk-console.c:1363
 #, c-format
 msgid "File does not exist: %s"
 msgstr "El archivo no existe: %s"
 
 #. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1270
+#: ../client/pk-console.c:1320
 msgid "Packages to add"
 msgstr "Paquetes para añadir"
 
 #. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1278
+#: ../client/pk-console.c:1328
 msgid "Packages to remove"
 msgstr "Paquetes para eliminar"
 
 #. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1346
+#: ../client/pk-console.c:1396
 #, c-format
 msgid "No new packages need to be installed"
 msgstr "No hay paquetes nuevos para instalar"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1352
+#: ../client/pk-console.c:1402
 msgid "To install"
 msgstr "Para instalar"
 
 #. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1364
+#: ../client/pk-console.c:1414
 msgid "Searching for package: "
 msgstr "Buscando el paquete: "
 
 #. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1368
+#: ../client/pk-console.c:1418
 msgid "not found."
 msgstr "no encontrado."
 
 #. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1379
+#: ../client/pk-console.c:1429
 #, c-format
 msgid "No packages can be found to install"
 msgstr "No se encontró ningún paquete para instalar"
 
 #. TRANSLATORS: installing new packages from package list
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
-#: ../client/pk-console.c:1385
+#: ../client/pk-console.c:1435
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:886
 #, c-format
 msgid "Installing packages"
 msgstr "Instalando paquetes"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1421
+#: ../client/pk-console.c:1471
 #, c-format
 msgid "This tool could not find the update details for %s: %s"
-msgstr ""
-"Esta herramienta no pudo encontrar los detalles de actualización de %s: %s"
+msgstr "Esta herramienta no pudo encontrar los detalles de actualización de %s: %s"
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1429
+#: ../client/pk-console.c:1479
 #, c-format
 msgid "This tool could not get the update details for %s: %s"
-msgstr ""
-"Esta herramienta no pudo obtener los detalles de actualización de %s: %s"
+msgstr "Esta herramienta no pudo obtener los detalles de actualización de %s: %s"
 
 #. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
-#: ../client/pk-console.c:1460
+#: ../client/pk-console.c:1510
 msgid "Error:"
 msgstr "Error:"
 
 #. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1474
+#: ../client/pk-console.c:1524
 msgid "Package description"
 msgstr "Descripción del paquete"
 
 #. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
-#: ../client/pk-console.c:1490
+#: ../client/pk-console.c:1540
 msgid "Message:"
 msgstr "Mensaje:"
 
 #. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1518
+#: ../client/pk-console.c:1568
 msgid "Package files"
 msgstr "Archivos del paquete"
 
 #. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1526
+#: ../client/pk-console.c:1576
 msgid "No files"
 msgstr "No hay archivos"
 
 #. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1549
+#: ../client/pk-console.c:1599
 msgid "Repository signature required"
 msgstr "Se requiere la firma del repositorio"
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1559
+#: ../client/pk-console.c:1609
 msgid "Do you accept this signature?"
 msgstr "¿Acepta esta firma?"
 
 #. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1563
+#: ../client/pk-console.c:1613
 msgid "The signature was not accepted."
 msgstr "No se aceptó la firma."
 
 #. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1597
+#: ../client/pk-console.c:1647
 msgid "End user license agreement required"
 msgstr "Se requiere un acuerdo de licencia de usuario final"
 
 #. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1604
+#: ../client/pk-console.c:1654
 msgid "Do you agree to this license?"
 msgstr "¿Está de acuerdo con esta licencia?"
 
 #. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1608
+#: ../client/pk-console.c:1658
 msgid "The license was refused."
 msgstr "Se rechazó la licencia."
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1637
+#: ../client/pk-console.c:1687
 msgid "The daemon crashed mid-transaction!"
 msgstr "El demonio se colgó en medio de una transacción."
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1690
+#: ../client/pk-console.c:1740
 msgid "PackageKit Console Interface"
 msgstr "Interfaz de consola de PackageKit"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1692
+#: ../client/pk-console.c:1742
 msgid "Subcommands:"
 msgstr "Subcomandos:"
 
 #. TRANSLATORS: command line argument, if we should show debugging information
 #. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:1785 ../client/pk-generate-pack.c:185
+#: ../client/pk-console.c:1835
+#: ../client/pk-generate-pack.c:185
 #: ../client/pk-monitor.c:128
 #: ../contrib/command-not-found/pk-command-not-found.c:616
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:550
-#: ../contrib/device-rebind/pk-device-rebind.c:293 ../src/pk-main.c:211
+#: ../contrib/device-rebind/pk-device-rebind.c:293
+#: ../src/pk-main.c:211
 msgid "Show extra debugging information"
 msgstr "Mostrar información extra de depuración"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1788 ../client/pk-monitor.c:130
+#: ../client/pk-console.c:1838
+#: ../client/pk-monitor.c:130
 msgid "Show the program version and exit"
 msgstr "Mostrar la versión del programa y salir"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1791
+#: ../client/pk-console.c:1841
 msgid "Set the filter, e.g. installed"
 msgstr "Establecer el filtro, ej. instalado"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1794
+#: ../client/pk-console.c:1844
 msgid "Exit without waiting for actions to complete"
 msgstr "Salir sin esperar que las acciones se completen"
 
 #. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:1821
+#: ../client/pk-console.c:1871
 msgid "This tool could not connect to system DBUS."
 msgstr "Esta herramienta no se pudo conectar al DBUS del sistema."
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1911
+#: ../client/pk-console.c:1961
 msgid "The filter specified was invalid"
 msgstr "El filtro especificado fue inválido"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1930
+#: ../client/pk-console.c:1980
 msgid "A search type is required, e.g. name"
 msgstr "Se necesita un tipo de búsqueda, por ejemplo, nombre"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1937 ../client/pk-console.c:1946
-#: ../client/pk-console.c:1955 ../client/pk-console.c:1964
+#: ../client/pk-console.c:1987
+#: ../client/pk-console.c:1996
+#: ../client/pk-console.c:2005
+#: ../client/pk-console.c:2014
 msgid "A search term is required"
 msgstr "Se necesita un término de búsqueda"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1971
+#: ../client/pk-console.c:2021
 msgid "Invalid search type"
 msgstr "Tipo de búsqueda inválido"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1977
+#: ../client/pk-console.c:2027
 msgid "A package name or filename to install is required"
 msgstr "Se requiere un nombre de paquete o nombre de archivo para instalar"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1986
+#: ../client/pk-console.c:2036
 msgid "A type, key_id and package_id are required"
 msgstr "Se necesita un tipo, key_id y package_id"
 
 #. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:1995
+#: ../client/pk-console.c:2045
 msgid "A package name to remove is required"
 msgstr "Necesita un nombre de paquete para eliminar"
 
 #. TRANSLATORS: the user did not specify anything about what to download or where
-#: ../client/pk-console.c:2003
+#: ../client/pk-console.c:2053
 msgid "A destination directory and the package names to download are required"
-msgstr ""
-"Se necesita un directorio de destino y los nombres de los paquetes a "
-"descargar"
+msgstr "Se necesita un directorio de destino y los nombres de los paquetes a descargar"
 
 #. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:2010
+#: ../client/pk-console.c:2060
 msgid "Directory not found"
 msgstr "Directorio no encontrado"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2018
+#: ../client/pk-console.c:2068
 msgid "A licence identifier (eula-id) is required"
 msgstr "Se necesita un identificador de licencia (eula-id)"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2028
+#: ../client/pk-console.c:2078
 msgid "A transaction identifier (tid) is required"
 msgstr "Se necesita un identificador de transacción (tid)"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:2045
+#: ../client/pk-console.c:2095
 msgid "A package name to resolve is required"
 msgstr "Se necesita un nombre de paquete para resolver"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:2054 ../client/pk-console.c:2063
+#: ../client/pk-console.c:2104
+#: ../client/pk-console.c:2113
 msgid "A repository name is required"
 msgstr "Se necesita un nombre de repositorio"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2072
+#: ../client/pk-console.c:2122
 msgid "A repo name, parameter and value are required"
 msgstr "Debe especificar un nombre de repositorio, parámetro y valor"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:2086
+#: ../client/pk-console.c:2136
 msgid "An action, e.g. 'update-system' is required"
 msgstr "Debe especificar una acción, por ejemplo, «update-system»"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:2093
+#: ../client/pk-console.c:2143
 msgid "A correct role is required"
 msgstr "Se necesita un rol correcto"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2100
+#: ../client/pk-console.c:2150
 msgid "Failed to get the time since this action was last completed"
 msgstr "Falló al obtener la hora de la última vez que se completó esta acción"
 
 #. TRANSLATORS: The user did not provide a package name
 #. TRANSLATORS: This is when the user fails to supply the package name
-#: ../client/pk-console.c:2110 ../client/pk-console.c:2122
-#: ../client/pk-console.c:2131 ../client/pk-console.c:2149
-#: ../client/pk-console.c:2158 ../client/pk-generate-pack.c:241
+#: ../client/pk-console.c:2160
+#: ../client/pk-console.c:2172
+#: ../client/pk-console.c:2181
+#: ../client/pk-console.c:2199
+#: ../client/pk-console.c:2208
+#: ../client/pk-generate-pack.c:241
 msgid "A package name is required"
 msgstr "Se necesita un nombre de paquete"
 
 #. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:2140
+#: ../client/pk-console.c:2190
 msgid "A package provide string is required"
 msgstr "Se necesita la cadena de lo que proporciona el paquete"
 
 #. TRANSLATORS: The user didn't specify a filename to create as a list
-#: ../client/pk-console.c:2167
+#: ../client/pk-console.c:2217
 msgid "A list file name to create is required"
 msgstr "Se necesita un nombre de archivo de la lista"
 
 #. TRANSLATORS: The user didn't specify a filename to open as a list
-#: ../client/pk-console.c:2177 ../client/pk-console.c:2187
+#: ../client/pk-console.c:2227
+#: ../client/pk-console.c:2237
 msgid "A list file to open is required"
 msgstr "Se necesita un archivo de lista para abrir"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2241
+#: ../client/pk-console.c:2291
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "La opción «%s» no está soportada"
 
 #. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2254
+#: ../client/pk-console.c:2304
 msgid "Incorrect privileges for this operation"
 msgstr "Privilegios incorrectos para esta operación"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2257
+#: ../client/pk-console.c:2307
 msgid "Command failed"
 msgstr "Falló el comando"
 
@@ -712,10 +742,8 @@ msgstr "Establezca el nombre del archivo de dependencias para excluir"
 
 #. TRANSLATORS: the output location
 #: ../client/pk-generate-pack.c:191
-msgid ""
-"The output file or directory (the current directory is used if ommitted)"
-msgstr ""
-"El directorio o archivo de salida (se usará si se omite el directorio actual)"
+msgid "The output file or directory (the current directory is used if ommitted)"
+msgstr "El directorio o archivo de salida (se usará si se omite el directorio actual)"
 
 #. TRANSLATORS: put a list of packages in the pack
 #: ../client/pk-generate-pack.c:194
@@ -744,25 +772,20 @@ msgstr "Se necesita un directorio o nombre de archivo de salida"
 
 #. TRANSLATORS: This is when the backend doesn't have the capability to get-depends
 #. TRANSLATORS: This is when the backend doesn't have the capability to download
-#: ../client/pk-generate-pack.c:267 ../client/pk-generate-pack.c:273
+#: ../client/pk-generate-pack.c:267
+#: ../client/pk-generate-pack.c:273
 msgid "The package manager cannot perform this type of operation."
 msgstr "El gestor de paquetes no puede realizar este tipo de operación."
 
 #. TRANSLATORS: This is when the distro didn't include libarchive support into PK
 #: ../client/pk-generate-pack.c:280
-msgid ""
-"Service packs cannot be created as PackageKit was not built with libarchive "
-"support."
-msgstr ""
-"No se pueden crear paquetes de servicio ya que PackageKit no se construyó "
-"con soporte para libarchive."
+msgid "Service packs cannot be created as PackageKit was not built with libarchive support."
+msgstr "No se pueden crear paquetes de servicio ya que PackageKit no se construyó con soporte para libarchive."
 
 #. TRANSLATORS: the user specified an absolute path, but didn't get the extension correct
 #: ../client/pk-generate-pack.c:291
 msgid "If specifying a file, the service pack name must end with"
-msgstr ""
-"Si especifica un archivo, el nombre del paquete de servicio debe finalizar "
-"con"
+msgstr "Si especifica un archivo, el nombre del paquete de servicio debe finalizar con"
 
 #. TRANSLATORS: This is when file already exists
 #: ../client/pk-generate-pack.c:307
@@ -904,8 +927,7 @@ msgstr "Descargando detalles acerca de las fuentes de software"
 #. TRANSLATORS: downloading file lists so we can search
 #: ../contrib/command-not-found/pk-command-not-found.c:353
 msgid "Downloading filelists (this may take some time to complete)."
-msgstr ""
-"Descargando listas de archivo (esto podría tardar un tiempo en completarse)."
+msgstr "Descargando listas de archivo (esto podría tardar un tiempo en completarse)."
 
 #. TRANSLATORS: waiting for native lock
 #: ../contrib/command-not-found/pk-command-not-found.c:357
@@ -995,17 +1017,12 @@ msgstr "Iniciando la instalación"
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:397
 #, c-format
 msgid "Failed to find the package %s, or already installed: %s"
-msgstr ""
-"No se ha podido encontrar el paquete %s, o tal vez ya se encuentre "
-"instalado: %s"
+msgstr "No se ha podido encontrar el paquete %s, o tal vez ya se encuentre instalado: %s"
 
 #. command line argument, simulate what would be done, but don't actually do it
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:553
-msgid ""
-"Don't actually install any packages, only simulate what would be installed"
-msgstr ""
-"No se instala ningún paquete realmente, solo se indica cuáles serían "
-"instalados"
+msgid "Don't actually install any packages, only simulate what would be installed"
+msgstr "No se instala ningún paquete realmente, solo se indica cuáles serían instalados"
 
 #. command line argument, do we skip packages that depend on the ones specified
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:556
@@ -1288,22 +1305,16 @@ msgid "Authentication is required to accept a EULA"
 msgstr "Se necesita autenticación para aceptar una EULA"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:9
-msgid ""
-"Authentication is required to cancel a task that was not started by yourself"
+msgid "Authentication is required to cancel a task that was not started by yourself"
 msgstr "Se necesita autenticación para cancelar una tarea que no inició usted"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:10
 msgid "Authentication is required to change software source parameters"
-msgstr ""
-"Se necesita autenticación para cambiar los parámetros de fuente de software"
+msgstr "Se necesita autenticación para cambiar los parámetros de fuente de software"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:11
-msgid ""
-"Authentication is required to consider a key used for signing packages as "
-"trusted"
-msgstr ""
-"Se necesita autenticación para considerar una clave usada para firmar "
-"paquetes como confiable"
+msgid "Authentication is required to consider a key used for signing packages as trusted"
+msgstr "Se necesita autenticación para considerar una clave usada para firmar paquetes como confiable"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:12
 msgid "Authentication is required to install a signed package"
@@ -1319,9 +1330,7 @@ msgstr "Se necesita autenticación para refrescar las fuentes del sistema"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:15
 msgid "Authentication is required to reload the device with a new driver"
-msgstr ""
-"Se necesita autenticación para recargar el dispositivo con un controlador "
-"nuevo"
+msgstr "Se necesita autenticación para recargar el dispositivo con un controlador nuevo"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:16
 msgid "Authentication is required to remove packages"
@@ -1332,12 +1341,8 @@ msgid "Authentication is required to rollback a transaction"
 msgstr "Se necesita autenticación para deshacer una transacción"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:18
-msgid ""
-"Authentication is required to set the network proxy used for downloading "
-"packages"
-msgstr ""
-"Se necesita autenticación para cambiar el proxy de red usado para descargar "
-"paquetes"
+msgid "Authentication is required to set the network proxy used for downloading packages"
+msgstr "Se necesita autenticación para cambiar el proxy de red usado para descargar paquetes"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:19
 msgid "Authentication is required to update packages"
@@ -1468,12 +1473,8 @@ msgstr "El usuario correcto no esta lanzando el ejecutable (generalmente root)"
 
 #. TRANSLATORS: or we are installed in a prefix
 #: ../src/pk-main.c:93
-msgid ""
-"The org.freedesktop.PackageKit.conf file is not installed in the system "
-"directory:"
-msgstr ""
-"El archivo org.freedesktop.PackageKit.conf no está instalado en el "
-"directorio del sistema:"
+msgid "The org.freedesktop.PackageKit.conf file is not installed in the system directory:"
+msgstr "El archivo org.freedesktop.PackageKit.conf no está instalado en el directorio del sistema:"
 
 #. TRANSLATORS: a backend is the system package tool, e.g. yum, apt
 #: ../src/pk-main.c:205
@@ -1522,42 +1523,34 @@ msgstr "Error intentando iniciar:"
 
 #: ../src/pk-polkit-action-lookup.c:147
 msgid "To install debugging packages, extra sources need to be enabled"
-msgstr ""
-"Para poder instalar paquetes de depuración, es necesario habilitar nuevas "
-"fuentes"
+msgstr "Para poder instalar paquetes de depuración, es necesario habilitar nuevas fuentes"
 
 #. TRANSLATORS: is not GPG signed
-#: ../src/pk-polkit-action-lookup.c:168 ../src/pk-polkit-action-lookup.c:187
+#: ../src/pk-polkit-action-lookup.c:168
+#: ../src/pk-polkit-action-lookup.c:187
 msgid "The software is not from a trusted source."
 msgstr "El software no proviene de una fuente confiable."
 
 #: ../src/pk-polkit-action-lookup.c:173
 msgid "Do not update this package unless you are sure it is safe to do so."
-msgstr ""
-"No actualice este paquete a menos que sepa con certeza que es seguro hacerlo."
+msgstr "No actualice este paquete a menos que sepa con certeza que es seguro hacerlo."
 
 #: ../src/pk-polkit-action-lookup.c:174
 msgid "Do not update these packages unless you are sure it is safe to do so."
-msgstr ""
-"No actualice estos paquete a menos que sepa con certeza que es seguro "
-"hacerlo."
+msgstr "No actualice estos paquete a menos que sepa con certeza que es seguro hacerlo."
 
 #: ../src/pk-polkit-action-lookup.c:192
 msgid "Do not install this package unless you are sure it is safe to do so."
-msgstr ""
-"No instale este paquete a menos que sepa con certeza que es seguro hacerlo."
+msgstr "No instale este paquete a menos que sepa con certeza que es seguro hacerlo."
 
 #: ../src/pk-polkit-action-lookup.c:193
 msgid "Do not install these packages unless you are sure it is safe to do so."
-msgstr ""
-"No instale estos paquete a menos que sepa con certeza que es seguro hacerlo."
+msgstr "No instale estos paquete a menos que sepa con certeza que es seguro hacerlo."
 
 #. TRANSLATORS: warn the user that all bets are off
 #: ../src/pk-polkit-action-lookup.c:199
 msgid "Malicious software can damage your computer or cause other harm."
-msgstr ""
-"Un software considerado maligno puede provocar diferentes clases de daño, "
-"por ejemplo, podría dañar su computadora. "
+msgstr "Un software considerado maligno puede provocar diferentes clases de daño, por ejemplo, podría dañar su computadora. "
 
 #. TRANSLATORS: too many packages to list each one
 #: ../src/pk-polkit-action-lookup.c:274
@@ -1573,184 +1566,136 @@ msgstr "Solo confiable"
 #~ msgstr ""
 #~ "Archivo caché principal a usar (si no se especifica, se usará el "
 #~ "predeterminado)"
-
 #~ msgid "Source cache file to add to the main database"
 #~ msgstr "Archivo caché fuente para agregar a la base de datos principal"
-
 #~ msgid "Icon directory"
 #~ msgstr "Directorio de Iconos"
-
 #~ msgid "Name of the remote repo"
 #~ msgstr "Nombre del repo remoto"
-
 #~ msgid "PackageKit Application Database Installer"
 #~ msgstr "Instalador de la Base de Datos de Aplicaciones de PackageKit"
-
 #~ msgid "Main database file to use (if not specififed, default is used)"
 #~ msgstr ""
 #~ "Base de datos principal a usar (si no se especifica se usará el "
 #~ "predeterminado)"
-
 #~ msgid "You need to specify a search type, e.g. name"
 #~ msgstr "Debe especificar el tipo de búsqueda, por ejemplo, nombre"
-
 #~ msgid "You need to specify a search term"
 #~ msgstr "Debe especificar un término de búsqueda"
-
 #~ msgid "You need to specify a package to remove"
 #~ msgstr "Debe especificar un paquete a eliminar"
-
 #~ msgid "You need to specify a package name to resolve"
 #~ msgstr "Debe especificar un nombre de paquete a resolver"
-
 #~ msgid "You need to specify a repository name"
 #~ msgstr "Debe especificar un nombre de repositorio"
-
 #~ msgid "You need to specify a correct role"
 #~ msgstr "Debe especificar un rol correcto"
-
 #~ msgid "Failed to get last time"
 #~ msgstr "Fállo al obtener última hora"
-
 #~ msgid "You need to specify a package to find the details for"
 #~ msgstr "Debe especificar un paquete para el que buscar la descripción"
-
 #~ msgid "You need to specify a package to find the files for"
 #~ msgstr "Debe especificar un paquete para el que buscar los archivos"
-
 #~ msgid "You need to specify a list file to open"
 #~ msgstr "Debe especificar un archivo de lista a abrir"
-
 #~ msgid "This tool could not remove the packages: '%s'"
 #~ msgstr "Esta herramienta no pudo eliminar los paquetes: '%s'"
-
 #~ msgid "Install local file"
 #~ msgstr "Instalar archivo local"
-
 #~ msgid "Okay to import key?"
 #~ msgstr "¿De acuerto con importer la clave?"
-
 #~ msgid "Did not import key"
 #~ msgstr "No se importó la clave"
-
 #~ msgid "Do you agree?"
 #~ msgstr "¿Está de acuerdo?"
-
 #~ msgid "Could not find package to remove"
 #~ msgstr "No se pudo encontrar el paquete a eliminar"
-
 #~ msgid "Cancelled!"
 #~ msgstr "Cancelado!"
-
 #~ msgid "Could not find package to update"
 #~ msgstr "No se pudo encontrar el paquete a actualizar"
-
 #~ msgid "Could not find what packages require"
 #~ msgstr "No se pudo encontrar cuales paquetes requiere este paquete"
-
 #~ msgid "Could not find details for"
 #~ msgstr "No se pudieron obtener los detalles de "
 
 #, fuzzy
 #~ msgid "Could not set database readonly"
 #~ msgstr "No se pudo abrir la base de datos: %s"
-
 #~ msgid "Could not open database: %s"
 #~ msgstr "No se pudo abrir la base de datos: %s"
-
 #~ msgid "You probably need to run this program as the root user"
 #~ msgstr "Probablemente necesita ejecutar este programa como el usuario root"
-
 #~ msgid "<span color='#%06x' underline='single' size='larger'>Run %s</span>"
 #~ msgstr ""
 #~ "<span color='#%06x' underline='single' size='larger'>Ejecutar %s</span>"
-
 #~ msgid "<big>%s</big>"
 #~ msgstr "<big>%s</big>"
-
 #~ msgid ""
 #~ "\n"
 #~ "<span color='#%06x' underline='single'>Run version %s now</span>"
 #~ msgstr ""
 #~ "\n"
 #~ "<span color='#%06x' underline='single'>Ejecutar versión %s ahora</span>"
-
 #~ msgid ""
 #~ "\n"
 #~ "<span color='#%06x' underline='single'>Run now</span>"
 #~ msgstr ""
 #~ "\n"
 #~ "<span color='#%06x' underline='single'>Ejecutar ahora</span>"
-
 #~ msgid ""
 #~ "\n"
 #~ "<span color='#%06x' underline='single'>Upgrade to version %s</span>"
 #~ msgstr ""
 #~ "\n"
 #~ "<span color='#%06x' underline='single'>Actualizar a la versión %s</span>"
-
 #~ msgid ""
 #~ "<span color='#%06x' underline='single' size='larger'>Install %s Now</span>"
 #~ msgstr ""
 #~ "<span color='#%06x' underline='single' size='larger'>Instalar %s Ahora</"
 #~ "span>"
-
 #~ msgid ""
 #~ "\n"
 #~ "<small>Version: %s</small>"
 #~ msgstr ""
 #~ "\n"
 #~ "<small>Versión: %s</small>"
-
 #~ msgid "failed to download: invalid package_id and/or directory"
 #~ msgstr "falló la descarga: id de paquete inválido y/o directorio"
-
 #~ msgid "Could not find a valid metadata file"
 #~ msgstr "No se pudo encontrar un archivo de metadatos válido"
-
 #~ msgid "Okay to download the additional packages"
 #~ msgstr "Listo para descargar los paquetes adicionales"
-
 #~ msgid "You need to specify the pack name and packages to be packed\n"
 #~ msgstr "Debe especificar el nombre de grupo y los paquetes a agrupar\n"
-
 #~ msgid ""
 #~ "Invalid name for the service pack, Specify a name with .servicepack "
 #~ "extension\n"
 #~ msgstr ""
 #~ "Nombre inválido para el paquete de servicio. Especifique un nombre con la "
 #~ "extensión .servicepack\n"
-
 #~ msgid "Authentication is required to install a local file"
 #~ msgstr "Se requiere autenticación para instalar un archivo local"
-
 #~ msgid "Authentication is required to install a security signature"
 #~ msgstr "Se requiere autenticación para instalar una firma de seguridad"
-
 #~ msgid "Authentication is required to update all packages"
 #~ msgstr "Se requiere autenticación para actualizar todos los paquetes"
-
 #~ msgid "Install security signature"
 #~ msgstr "Instalar firma de seguridad"
-
 #~ msgid "Refresh package lists"
 #~ msgstr "Refrescar lista de paquetes"
-
 #~ msgid "Update all packages"
 #~ msgstr "Actualizar todos los paquetes"
-
 #~ msgid ""
 #~ "Could not find a package with that name to install, or package already "
 #~ "installed"
 #~ msgstr ""
 #~ "No se pudo encontrar un paquete con ese nombre para instalar, o el "
 #~ "paquete ya está instalado"
-
 #~ msgid "Could not find a package with that name to update"
 #~ msgstr "No se pudo encontrar un paquete con ese nombre para actualizar"
-
 #~ msgid "Could not find a description for this package"
 #~ msgstr "No se pudo encontrar una descripcion para este paquete"
-
 #~ msgid "You need to specify a package to find the description for"
 #~ msgstr "Debe especificar un paquete para el que buscar la descripción"
+
commit e4af3c4017656d9e75d5f37238259c988551d213
Author: Richard Hughes <richard at hughsie.com>
Date:   Mon Aug 24 22:35:50 2009 +0100

    yum: add a simple implimentation of SimulateInstallFiles

diff --git a/backends/yum/pk-backend-yum.c b/backends/yum/pk-backend-yum.c
index d28c177..53bb947 100644
--- a/backends/yum/pk-backend-yum.c
+++ b/backends/yum/pk-backend-yum.c
@@ -472,6 +472,20 @@ backend_get_categories (PkBackend *backend)
 	pk_backend_spawn_helper (spawn, "yumBackend.py", "get-categories", NULL);
 }
 
+/**
+ * backend_simulate_install_files:
+ */
+static void
+backend_simulate_install_files (PkBackend *backend, gchar **full_paths)
+{
+	gchar *package_ids_temp;
+
+	/* send the complete list as stdin */
+	package_ids_temp = g_strjoinv (PK_BACKEND_SPAWN_FILENAME_DELIM, full_paths);
+	pk_backend_spawn_helper (spawn, "yumBackend.py", "simulate-install-files", package_ids_temp, NULL);
+	g_free (package_ids_temp);
+}
+
 PK_BACKEND_OPTIONS (
 	"YUM",					/* description */
 	"Tim Lauridsen <timlau at fedoraproject.org>, Richard Hughes <richard at hughsie.com>",	/* author */
@@ -508,7 +522,7 @@ PK_BACKEND_OPTIONS (
 	backend_update_packages,		/* update_packages */
 	backend_update_system,			/* update_system */
 	backend_what_provides,			/* what_provides */
-	NULL,					/* simulate_install_files */
+	backend_simulate_install_files,		/* simulate_install_files */
 	NULL,					/* simulate_install_packages */
 	NULL,					/* simulate_remove_packages */
 	NULL					/* simulate_update_packages */
diff --git a/backends/yum/yumBackend.py b/backends/yum/yumBackend.py
index dbcf5f3..15b26bf 100755
--- a/backends/yum/yumBackend.py
+++ b/backends/yum/yumBackend.py
@@ -2442,6 +2442,48 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
             except IOError, e:
                 self.error(ERROR_CANNOT_WRITE_REPO_CONFIG, _to_unicode(e))
 
+    def simulate_install_files(self, inst_files):
+        '''
+        Install the package containing the inst_file file
+        '''
+        try:
+            self._check_init()
+        except PkError, e:
+            self.error(e.code, e.details, exit=False)
+            return
+        self.yumbase.conf.cache = 0 # Allow new files
+        self.allow_cancel(True)
+        self.percentage(0)
+        self.status(STATUS_RUNNING)
+
+        # common checks copied from yum
+        for inst_file in inst_files:
+            if not self._check_local_file(inst_file):
+                return
+
+        package_list = []
+        txmbrs = []
+        for inst_file in inst_files:
+            try:
+                txmbr = self.yumbase.installLocal(inst_file)
+            except Exception, e:
+                self.error(ERROR_INTERNAL_ERROR, _format_str(traceback.format_exc()))
+            if txmbr:
+                txmbrs.extend(txmbr)
+            else:
+                self.error(ERROR_LOCAL_INSTALL_FAILED, "Can't install %s as no transaction" % _to_unicode(inst_file))
+        if len(self.yumbase.tsInfo) == 0:
+            self.error(ERROR_LOCAL_INSTALL_FAILED, "Can't install %s" % " or ".join(inst_files), exit=False)
+            return
+
+        # add each package
+        for txmbr in self.yumbase.tsInfo:
+            package_list.append((txmbr.po, INFO_INSTALLING))
+
+        self.percentage(90)
+        self._show_package_list(package_list)
+        self.percentage(100)
+
     def install_signature(self, sigtype, key_id, package):
         self._check_init(repo_setup=False)
         self.yumbase.conf.cache = 0 # Allow new files
commit ed7599134d98b2c177ac70e431d0be12e854fa18
Author: Richard Hughes <richard at hughsie.com>
Date:   Mon Aug 24 22:33:57 2009 +0100

    Add the simulate stuff to the common python class

diff --git a/lib/python/packagekit/backend.py b/lib/python/packagekit/backend.py
index d3c6b33..0308ff7 100644
--- a/lib/python/packagekit/backend.py
+++ b/lib/python/packagekit/backend.py
@@ -484,6 +484,34 @@ class PackageKitBaseBackend:
         '''
         self.error(ERROR_NOT_SUPPORTED, "This function is not implemented in this backend", exit=False)
 
+    def simulate_install_files (self, inst_files):
+        '''
+        Implement the {backend}-simulate-install-files functionality
+        Needed to be implemented in a sub class
+        '''
+        self.error(ERROR_NOT_SUPPORTED, "This function is not implemented in this backend", exit=False)
+
+    def simulate_install_packages(self, package_ids):
+        '''
+        Implement the {backend}-simulate-install-packages functionality
+        Needed to be implemented in a sub class
+        '''
+        self.error(ERROR_NOT_SUPPORTED, "This function is not implemented in this backend", exit=False)
+
+    def simulate_remove_packages(self, package_ids):
+        '''
+        Implement the {backend}-simulate-remove-packages functionality
+        Needed to be implemented in a sub class
+        '''
+        self.error(ERROR_NOT_SUPPORTED, "This function is not implemented in this backend", exit=False)
+
+    def simulate_update_packages(self, package_ids):
+        '''
+        Implement the {backend}-simulate-update-packages functionality
+        Needed to be implemented in a sub class
+        '''
+        self.error(ERROR_NOT_SUPPORTED, "This function is not implemented in this backend", exit=False)
+
     def customTracebackHandler(self, tb):
         '''
         Custom Traceback Handler
@@ -637,6 +665,22 @@ class PackageKitBaseBackend:
         elif cmd == 'get-categories':
             self.get_categories()
             self.finished()
+        elif cmd == 'simulate-install-files':
+            files_to_inst = args[0].split(FILENAME_DELIM)
+            self.simulate_install_files(files_to_inst)
+            self.finished()
+        elif cmd == 'simulate-install-packages':
+            package_ids = args[0].split(PACKAGE_IDS_DELIM)
+            self.simulate_install_packages(package_ids)
+            self.finished()
+        elif cmd == 'simulate-remove-packages':
+            package_ids = args[0].split(PACKAGE_IDS_DELIM)
+            self.simulate_remove_packages(package_ids)
+            self.finished()
+        elif cmd == 'simulate-update-packages':
+            package_ids = args[0].split(PACKAGE_IDS_DELIM)
+            self.simulate_update_packages(package_ids)
+            self.finished()
         else:
             errmsg = "command '%s' is not known" % cmd
             self.error(ERROR_INTERNAL_ERROR, errmsg, exit=False)
commit 4fa73d04c4674cbb7903e2894a43cccca7f4e718
Author: Daniel Nicoletti <dantti85-pk at yahoo.com.br>
Date:   Mon Aug 24 17:46:57 2009 -0300

    Added simulate methods to pk-matrix.html

diff --git a/docs/html/pk-matrix.html b/docs/html/pk-matrix.html
index af36283..10e2be7 100644
--- a/docs/html/pk-matrix.html
+++ b/docs/html/pk-matrix.html
@@ -420,6 +420,70 @@
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- zypp -->
 </tr>
 <tr>
+<td><b>SimulateInstallFiles</b></td>
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- apt -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- alpm -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- box -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- conary -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- opkg -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- pisi -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- poldek -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- portage -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- ports -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- smart -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- urpmi -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- yum -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- zypp -->
+</tr>
+<tr>
+<td><b>SimulateInstallPackages</b></td>
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- apt -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- alpm -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- box -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- conary -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- opkg -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- pisi -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- poldek -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- portage -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- ports -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- smart -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- urpmi -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- yum -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- zypp -->
+</tr>
+<tr>
+<td><b>SimulateRemovePackages</b></td>
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- apt -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- alpm -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- box -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- conary -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- opkg -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- pisi -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- poldek -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- portage -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- ports -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- smart -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- urpmi -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- yum -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- zypp -->
+</tr>
+<tr>
+<td><b>SimulateUpdatePackages</b></td>
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- apt -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- alpm -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- box -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- conary -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- opkg -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- pisi -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- poldek -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- portage -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- ports -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- smart -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- urpmi -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- yum -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- zypp -->
+</tr>
+<tr>
 <td><b>UpdatePackages</b></td>
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- apt -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- alpm -->
commit 194eae21a3e5be60f3e542f38e8b1e35a1a6a08d
Author: Daniel Nicoletti <dantti85-pk at yahoo.com.br>
Date:   Mon Aug 24 20:41:01 2009 +0100

    pkcon: simulate installing packages and files if possible
    
    Signed-off-by: Richard Hughes <richard at hughsie.com>

diff --git a/client/pk-console.c b/client/pk-console.c
index 79815a4..9a171ed 100644
--- a/client/pk-console.c
+++ b/client/pk-console.c
@@ -757,11 +757,14 @@ pk_console_install_stuff (PkClient *client, gchar **packages, GError **error)
 	gboolean ret = TRUE;
 	gboolean installed;
 	gboolean is_local;
+	gboolean accept_changes;
 	gchar *package_id = NULL;
 	gchar **package_ids = NULL;
 	gchar **files = NULL;
 	guint i;
 	guint length;
+	PkPackageList *list;
+	PkPackageList *list_single;
 	GPtrArray *array_packages;
 	GPtrArray *array_files;
 	GError *error_local = NULL;
@@ -769,6 +772,8 @@ pk_console_install_stuff (PkClient *client, gchar **packages, GError **error)
 	array_packages = g_ptr_array_new ();
 	array_files = g_ptr_array_new ();
 	length = g_strv_length (packages);
+	list = pk_package_list_new ();
+
 	for (i=2; i<length; i++) {
 		/* are we a local file */
 		is_local = g_file_test (packages[i], G_FILE_TEST_EXISTS | G_FILE_TEST_IS_REGULAR);
@@ -808,6 +813,55 @@ pk_console_install_stuff (PkClient *client, gchar **packages, GError **error)
 		/* convert to strv */
 		package_ids = pk_ptr_array_to_strv (array_packages);
 
+		/* can we simulate? */
+		if (pk_bitfield_contain (roles, PK_ROLE_ENUM_SIMULATE_INSTALL_PACKAGES)) {
+			ret = pk_client_reset (client_sync, &error_local);
+			if (!ret) {
+				/* TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows */
+				*error = g_error_new (1, 0, _("Internal error: %s"), error_local->message);
+				g_error_free (error_local);
+				goto out;
+			}
+
+			egg_debug ("Simullating install for %s", package_ids[0]);
+			ret = pk_client_simulate_install_packages (client_sync, package_ids, error);
+			if (!ret) {
+				egg_warning ("failed to simulate a package install");
+				goto out;
+			}
+
+			/* see how many packages there are */
+			list_single = pk_client_get_package_list (client_sync);
+			pk_obj_list_add_list (PK_OBJ_LIST(list), PK_OBJ_LIST(list_single));
+			g_object_unref (list_single);
+
+			/* one of the simulate-install-packages failed */
+			if (!ret)
+				goto out;
+
+			/* if there are no required packages, just do the remove */
+			length = pk_package_list_get_size (list);
+			if (length != 0) {
+				/* present this to the user */
+				if (awaiting_space)
+					g_print ("\n");
+
+				/* print the additional deps to the screen */
+				pk_console_print_deps_list (list);
+
+				/* TRANSLATORS: We are checking if it's okay to remove a list of packages */
+				accept_changes = pk_console_get_prompt (_("Proceed with changes?"), FALSE);
+
+				/* we chickened out */
+				if (!accept_changes) {
+					/* TRANSLATORS: There was an error removing the packages. The detailed error follows */
+					*error = g_error_new (1, 0, "%s", _("The package install was canceled!"));
+					ret = FALSE;
+					goto out;
+				}
+			}
+		}
+
 		/* reset */
 		ret = pk_client_reset (client, &error_local);
 		if (!ret) {
@@ -831,6 +885,55 @@ pk_console_install_stuff (PkClient *client, gchar **packages, GError **error)
 		/* convert to strv */
 		files = pk_ptr_array_to_strv (array_files);
 
+		/* can we simulate? */
+		if (pk_bitfield_contain (roles, PK_ROLE_ENUM_SIMULATE_INSTALL_FILES)) {
+			ret = pk_client_reset (client_sync, &error_local);
+			if (!ret) {
+				/* TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows */
+				*error = g_error_new (1, 0, _("Internal error: %s"), error_local->message);
+				g_error_free (error_local);
+				goto out;
+			}
+
+			egg_debug ("Simullating install for %s", files[0]);
+			ret = pk_client_simulate_install_files (client_sync, files, error);
+			if (!ret) {
+				egg_warning ("failed to simulate a package install");
+				goto out;
+			}
+
+			/* see how many packages there are */
+			list_single = pk_client_get_package_list (client_sync);
+			pk_obj_list_add_list (PK_OBJ_LIST(list), PK_OBJ_LIST(list_single));
+			g_object_unref (list_single);
+
+			/* one of the simulate-install-files failed */
+			if (!ret)
+				goto out;
+
+			/* if there are no required packages, just do the remove */
+			length = pk_package_list_get_size (list);
+			if (length != 0) {
+				/* present this to the user */
+				if (awaiting_space)
+					g_print ("\n");
+
+				/* print the additional deps to the screen */
+				pk_console_print_deps_list (list);
+
+				/* TRANSLATORS: We are checking if it's okay to remove a list of packages */
+				accept_changes = pk_console_get_prompt (_("Proceed with changes?"), FALSE);
+
+				/* we chickened out */
+				if (!accept_changes) {
+					/* TRANSLATORS: There was an error removing the packages. The detailed error follows */
+					*error = g_error_new (1, 0, "%s", _("The package install was canceled!"));
+					ret = FALSE;
+					goto out;
+				}
+			}
+		}
+
 		/* reset */
 		ret = pk_client_reset (client, &error_local);
 		if (!ret) {
@@ -850,6 +953,7 @@ pk_console_install_stuff (PkClient *client, gchar **packages, GError **error)
 	}
 
 out:
+	g_object_unref (list);
 	g_strfreev (package_ids);
 	g_strfreev (files);
 	g_ptr_array_foreach (array_files, (GFunc) g_free, NULL);
@@ -1136,7 +1240,7 @@ pk_console_update_package (PkClient *client, const gchar *package, GError **erro
 		pk_console_print_deps_list (list);
 
 		/* TRANSLATORS: We are checking if it's okay to remove a list of packages */
-		accept_changes = pk_console_get_prompt (_("Are you ok with these changes?"), FALSE);
+		accept_changes = pk_console_get_prompt (_("Proceed with changes?"), FALSE);
 
 		/* we chickened out */
 		if (!accept_changes) {
commit 1fcc0fb9a5ba0f871728d641b03dc0944e36a698
Author: Richard Hughes <richard at hughsie.com>
Date:   Mon Aug 24 20:37:46 2009 +0100

    Make 'pkcon update foo' actually work

diff --git a/client/pk-console.c b/client/pk-console.c
index c425182..79815a4 100644
--- a/client/pk-console.c
+++ b/client/pk-console.c
@@ -1080,7 +1080,7 @@ pk_console_update_package (PkClient *client, const gchar *package, GError **erro
 	PkPackageList *list_single;
 
 	list = pk_package_list_new ();
-	package_id = pk_console_perhaps_resolve (client, pk_bitfield_value (PK_FILTER_ENUM_INSTALLED), package, &error_local);
+	package_id = pk_console_perhaps_resolve (client, pk_bitfield_value (PK_FILTER_ENUM_NOT_INSTALLED), package, &error_local);
 	if (package_id == NULL) {
 		/* TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows */
 		*error = g_error_new (1, 0, _("This tool could not update %s: %s"), package, error_local->message);
commit 1bd577a389e474ccd4e110fe2809e89341159459
Author: Richard Hughes <richard at hughsie.com>
Date:   Mon Aug 24 20:35:23 2009 +0100

    pkcon: simulate updating packages if possible

diff --git a/client/pk-console.c b/client/pk-console.c
index 1260225..c425182 100644
--- a/client/pk-console.c
+++ b/client/pk-console.c
@@ -1073,8 +1073,13 @@ pk_console_update_package (PkClient *client, const gchar *package, GError **erro
 	gboolean ret;
 	gchar *package_id;
 	gchar **package_ids;
+	guint length;
 	GError *error_local = NULL;
+	gboolean accept_changes;
+	PkPackageList *list;
+	PkPackageList *list_single;
 
+	list = pk_package_list_new ();
 	package_id = pk_console_perhaps_resolve (client, pk_bitfield_value (PK_FILTER_ENUM_INSTALLED), package, &error_local);
 	if (package_id == NULL) {
 		/* TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows */
@@ -1082,14 +1087,74 @@ pk_console_update_package (PkClient *client, const gchar *package, GError **erro
 		g_error_free (error_local);
 		return FALSE;
 	}
-
 	package_ids = pk_package_ids_from_id (package_id);
+
+	/* are we dumb and can't simulate? */
+	if (!pk_bitfield_contain (roles, PK_ROLE_ENUM_SIMULATE_UPDATE_PACKAGES)) {
+		/* no, just try to update it without deps */
+		ret = pk_client_update_packages (client, TRUE, package_ids, error);
+		if (!ret) {
+			/* TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows */
+			*error = g_error_new (1, 0, _("This tool could not update %s: %s"), package, error_local->message);
+			g_error_free (error_local);
+		}
+		goto out;
+	}
+
+	ret = pk_client_reset (client_sync, &error_local);
+	if (!ret) {
+		/* TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows */
+		*error = g_error_new (1, 0, _("Internal error: %s"), error_local->message);
+		g_error_free (error_local);
+		goto out;
+	}
+
+	egg_debug ("Simulating update for %s", package_ids[0]);
+	ret = pk_client_simulate_update_packages (client_sync, package_ids, error);
+	if (!ret) {
+		egg_warning ("failed to simulate a package update");
+		goto out;
+	}
+
+	/* see how many packages there are */
+	list_single = pk_client_get_package_list (client_sync);
+	pk_obj_list_add_list (PK_OBJ_LIST(list), PK_OBJ_LIST(list_single));
+	g_object_unref (list_single);
+
+	/* one of the simulate-update-packages failed */
+	if (!ret)
+		goto out;
+
+	/* if there are no required packages, just do the remove */
+	length = pk_package_list_get_size (list);
+	if (length != 0) {
+		/* present this to the user */
+		if (awaiting_space)
+			g_print ("\n");
+
+		/* print the additional deps to the screen */
+		pk_console_print_deps_list (list);
+
+		/* TRANSLATORS: We are checking if it's okay to remove a list of packages */
+		accept_changes = pk_console_get_prompt (_("Are you ok with these changes?"), FALSE);
+
+		/* we chickened out */
+		if (!accept_changes) {
+			/* TRANSLATORS: There was an error removing the packages. The detailed error follows */
+			*error = g_error_new (1, 0, "%s", _("The package update was canceled!"));
+			ret = FALSE;
+			goto out;
+		}
+	}
+
 	ret = pk_client_update_packages (client, TRUE, package_ids, error);
 	if (!ret) {
 		/* TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows */
 		*error = g_error_new (1, 0, _("This tool could not update %s: %s"), package, error_local->message);
 		g_error_free (error_local);
 	}
+out:
+	g_object_unref (list);
 	g_strfreev (package_ids);
 	g_free (package_id);
 	return ret;
commit 41c7388dfc12eda1861a07eec7f2cb833f2d2b71
Author: Richard Hughes <richard at hughsie.com>
Date:   Mon Aug 24 20:33:59 2009 +0100

    glib: trap errors from simulate clients in the same way as the other methods

diff --git a/lib/packagekit-glib/pk-client.c b/lib/packagekit-glib/pk-client.c
index 2a31735..a171459 100644
--- a/lib/packagekit-glib/pk-client.c
+++ b/lib/packagekit-glib/pk-client.c
@@ -3838,8 +3838,14 @@ pk_client_simulate_install_files (PkClient *client, gchar **files_rel, GError **
 		pk_client_change_status (client, PK_STATUS_ENUM_WAIT);
 
 		/* spin until finished */
-		if (client->priv->synchronous)
+		if (client->priv->synchronous) {
 			g_main_loop_run (client->priv->loop);
+			if (PK_IS_CLIENT (client) && client->priv->error != NULL) {
+				ret = FALSE;
+				if (error != NULL)
+					*error = g_error_copy (client->priv->error);
+			}
+		}
 	}
 
 	return ret;
@@ -3908,8 +3914,14 @@ pk_client_simulate_install_packages (PkClient *client, gchar **package_ids, GErr
 		pk_client_change_status (client, PK_STATUS_ENUM_WAIT);
 
 		/* spin until finished */
-		if (client->priv->synchronous)
+		if (client->priv->synchronous) {
 			g_main_loop_run (client->priv->loop);
+			if (PK_IS_CLIENT (client) && client->priv->error != NULL) {
+				ret = FALSE;
+				if (error != NULL)
+					*error = g_error_copy (client->priv->error);
+			}
+		}
 	}
 
 	return ret;
@@ -3978,8 +3990,14 @@ pk_client_simulate_remove_packages (PkClient *client, gchar **package_ids, GErro
 		pk_client_change_status (client, PK_STATUS_ENUM_WAIT);
 
 		/* spin until finished */
-		if (client->priv->synchronous)
+		if (client->priv->synchronous) {
 			g_main_loop_run (client->priv->loop);
+			if (PK_IS_CLIENT (client) && client->priv->error != NULL) {
+				ret = FALSE;
+				if (error != NULL)
+					*error = g_error_copy (client->priv->error);
+			}
+		}
 	}
 
 	return ret;
@@ -4048,8 +4066,14 @@ pk_client_simulate_update_packages (PkClient *client, gchar **package_ids, GErro
 		pk_client_change_status (client, PK_STATUS_ENUM_WAIT);
 
 		/* spin until finished */
-		if (client->priv->synchronous)
+		if (client->priv->synchronous) {
 			g_main_loop_run (client->priv->loop);
+			if (PK_IS_CLIENT (client) && client->priv->error != NULL) {
+				ret = FALSE;
+				if (error != NULL)
+					*error = g_error_copy (client->priv->error);
+			}
+		}
 	}
 
 	return ret;
commit b534b8c9bc3c58f0b9d93e38569bc3f09e605ce1
Author: Richard Hughes <richard at hughsie.com>
Date:   Mon Aug 24 20:33:22 2009 +0100

    Fix compile on ~FreeBSD by doing conditional code in a better way

diff --git a/lib/packagekit-glib/pk-common.c b/lib/packagekit-glib/pk-common.c
index 83d0c28..1db2a69 100644
--- a/lib/packagekit-glib/pk-common.c
+++ b/lib/packagekit-glib/pk-common.c
@@ -214,7 +214,10 @@ pk_get_distro_id (void)
 	}
 
 #ifdef __FreeBSD__
-        {
+	ret = TRUE;
+#endif
+	/* FreeBSD */
+	if (ret) {
 		/* we can't get version from /etc */
 		version = pk_get_os_release ();
 		if (version == NULL)
@@ -234,8 +237,6 @@ pk_get_distro_id (void)
 		distro = g_strdup_printf ("freebsd-%s-%s", split[0], arch);
 		goto out;
 	}
-#endif
-
 out:
 	g_strfreev (split);
 	g_free (version);
commit c97ef61855e8de6fd0ae81a179aadc63f6e0348f
Merge: 101a76a... 2969fc9...
Author: Richard Hughes <richard at hughsie.com>
Date:   Mon Aug 24 20:30:28 2009 +0100

    Merge branch 'master' of git+ssh://git.packagekit.org/srv/git/PackageKit

commit 101a76a498286e300d7168a9ae924636265e1175
Author: Daniel Nicoletti <dantti85-pk at yahoo.com.br>
Date:   Mon Aug 24 20:13:39 2009 +0100

    pkcon: move up a forward declaration
    
    Signed-off-by: Richard Hughes <richard at hughsie.com>

diff --git a/client/pk-console.c b/client/pk-console.c
index 3d51572..1260225 100644
--- a/client/pk-console.c
+++ b/client/pk-console.c
@@ -287,6 +287,61 @@ pk_console_transaction_cb (PkClient *client, const PkTransactionObj *obj, gpoint
 }
 
 /**
+ * pk_console_print_deps_list_info:
+ **/
+static guint
+pk_console_print_deps_list_info (PkPackageList *list, PkInfoEnum info, const gchar *header)
+{
+	const PkPackageObj *obj;
+	gboolean ret = FALSE;
+	guint found = 0;
+	guint i;
+	guint length;
+
+	length = pk_package_list_get_size (list);
+	for (i=0; i<length; i++) {
+		obj = pk_package_list_get_obj (list, i);
+
+		/* are we interested in this type */
+		if (obj->info != info)
+			continue;
+
+		/* print header if it's not been done before */
+		if (!ret) {
+			g_print ("%s\n", header);
+			ret = TRUE;
+		}
+
+		/* print package */
+		g_print ("%i\t%s-%s.%s\n", ++found, obj->id->name, obj->id->version, obj->id->arch);
+	}
+	return found;
+}
+
+/**
+ * pk_console_print_deps_list:
+ **/
+static guint
+pk_console_print_deps_list (PkPackageList *list)
+{
+	guint found = 0;
+
+	/* TRANSLATORS: When processing, we might have to remove other dependencies */
+	found += pk_console_print_deps_list_info (list, PK_INFO_ENUM_REMOVING, _("The following packages have to be removed:"));
+
+	/* TRANSLATORS: When processing, we might have to install other dependencies */
+	found += pk_console_print_deps_list_info (list, PK_INFO_ENUM_INSTALLING, _("The following packages have to be installed:"));
+
+	/* TRANSLATORS: When processing, we might have to update other dependencies */
+	found += pk_console_print_deps_list_info (list, PK_INFO_ENUM_UPDATING, _("The following packages have to be updated:"));
+
+	/* TRANSLATORS: When processing, we might have to reinstall other dependencies */
+	found += pk_console_print_deps_list_info (list, PK_INFO_ENUM_REINSTALLING, _("The following packages have to be reinstalled:"));
+
+	return found;
+}
+
+/**
  * pk_console_distro_upgrade_cb:
  **/
 static void
@@ -820,61 +875,6 @@ pk_console_remove_only (PkClient *client, gchar **package_ids, gboolean force, G
 }
 
 /**
- * pk_console_print_deps_list_info:
- **/
-static guint
-pk_console_print_deps_list_info (PkPackageList *list, PkInfoEnum info, const gchar *header)
-{
-	const PkPackageObj *obj;
-	gboolean ret = FALSE;
-	guint found = 0;
-	guint i;
-	guint length;
-
-	length = pk_package_list_get_size (list);
-	for (i=0; i<length; i++) {
-		obj = pk_package_list_get_obj (list, i);
-
-		/* are we interested in this type */
-		if (obj->info != info)
-			continue;
-
-		/* print header if it's not been done before */
-		if (!ret) {
-			g_print ("%s\n", header);
-			ret = TRUE;
-		}
-
-		/* print package */
-		g_print ("%i\t%s-%s.%s\n", ++found, obj->id->name, obj->id->version, obj->id->arch);
-	}
-	return found;
-}
-
-/**
- * pk_console_print_deps_list:
- **/
-static guint
-pk_console_print_deps_list (PkPackageList *list)
-{
-	guint found = 0;
-
-	/* TRANSLATORS: When processing, we might have to remove other dependencies */
-	found += pk_console_print_deps_list_info (list, PK_INFO_ENUM_REMOVING, _("The following packages have to be removed:"));
-
-	/* TRANSLATORS: When processing, we might have to install other dependencies */
-	found += pk_console_print_deps_list_info (list, PK_INFO_ENUM_INSTALLING, _("The following packages have to be installed:"));
-
-	/* TRANSLATORS: When processing, we might have to update other dependencies */
-	found += pk_console_print_deps_list_info (list, PK_INFO_ENUM_UPDATING, _("The following packages have to be updated:"));
-
-	/* TRANSLATORS: When processing, we might have to reinstall other dependencies */
-	found += pk_console_print_deps_list_info (list, PK_INFO_ENUM_REINSTALLING, _("The following packages have to be reinstalled:"));
-
-	return found;
-}
-
-/**
  * pk_console_remove_packages:
  **/
 static gboolean
commit 37b096512249ab80215a9da072e6c2cfd013e0f0
Author: Daniel Nicoletti <dantti85-pk at yahoo.com.br>
Date:   Mon Aug 24 20:11:43 2009 +0100

    dummy: test reinstall info enum
    
    Signed-off-by: Richard Hughes <richard at hughsie.com>

diff --git a/backends/dummy/pk-backend-dummy.c b/backends/dummy/pk-backend-dummy.c
index 8954392..4ea7919 100644
--- a/backends/dummy/pk-backend-dummy.c
+++ b/backends/dummy/pk-backend-dummy.c
@@ -1190,7 +1190,7 @@ backend_simulate_install_packages (PkBackend *backend, gchar **package_ids)
 	pk_backend_package (backend, PK_INFO_ENUM_UPDATING,
 			    "lib7;7.0.1-6.fc13;i386;fedora", "C Libraries");
 
-	pk_backend_package (backend, PK_INFO_ENUM_INSTALLING,
+	pk_backend_package (backend, PK_INFO_ENUM_REINSTALLING,
 			    "libssl;3.5.7-2.fc13;i386;fedora", "SSL Libraries");
 
 	pk_backend_package (backend, PK_INFO_ENUM_AVAILABLE,
commit dd6fdd71bef9e4e806b245c15b1c034185bc4470
Author: Daniel Nicoletti <dantti85-pk at yahoo.com.br>
Date:   Mon Aug 24 20:11:16 2009 +0100

    dummy: respect the filter settings
    
    Signed-off-by: Richard Hughes <richard at hughsie.com>

diff --git a/backends/dummy/pk-backend-dummy.c b/backends/dummy/pk-backend-dummy.c
index 8ce7775..8954392 100644
--- a/backends/dummy/pk-backend-dummy.c
+++ b/backends/dummy/pk-backend-dummy.c
@@ -46,6 +46,7 @@ static gboolean _use_eula = FALSE;
 static gboolean _use_media = FALSE;
 static gboolean _use_gpg = FALSE;
 static gboolean _use_distro_upgrade = FALSE;
+static PkBitfield _filters = 0;
 
 /**
  * backend_initialize:
@@ -612,13 +613,17 @@ backend_resolve (PkBackend *backend, PkBitfield filters, gchar **packages)
 	/* each one has a different detail for testing */
 	len = g_strv_length (packages);
 	for (i=0; i<len; i++) {
-		if (g_strcmp0 (packages[i], "vips-doc") == 0)
-			pk_backend_package (backend, PK_INFO_ENUM_AVAILABLE,
-					    "vips-doc;7.12.4-2.fc8;noarch;linva", "The vips documentation package.");
-		else if (g_strcmp0 (packages[i], "glib2") == 0)
-			pk_backend_package (backend, PK_INFO_ENUM_INSTALLED,
-					    "glib2;2.14.0;i386;fedora", "The GLib library");
-		else if (g_strcmp0 (packages[i], "powertop") == 0)
+		if (g_strcmp0 (packages[i], "vips-doc") == 0) {
+			if (!pk_bitfield_contain (filters, PK_FILTER_ENUM_INSTALLED)) {
+				pk_backend_package (backend, PK_INFO_ENUM_AVAILABLE,
+						    "vips-doc;7.12.4-2.fc8;noarch;linva", "The vips documentation package.");
+			}
+		} else if (g_strcmp0 (packages[i], "glib2") == 0) {
+			if (!pk_bitfield_contain (filters, PK_FILTER_ENUM_NOT_INSTALLED)) {
+				pk_backend_package (backend, PK_INFO_ENUM_INSTALLED,
+						    "glib2;2.14.0;i386;fedora", "The GLib library");
+			}
+		} else if (g_strcmp0 (packages[i], "powertop") == 0)
 			pk_backend_package (backend, PK_INFO_ENUM_UPDATING,
 					    "powertop;1.8-1.fc8;i386;fedora", "Power consumption monitor");
 		else if (g_strcmp0 (packages[i], "kernel") == 0)
@@ -1086,12 +1091,19 @@ backend_what_provides_timeout (gpointer data)
 					    "gstreamer-plugins-flumpegdemux;0.10.15-5.lvn;i386;available",
 					    "MPEG demuxer for GStreamer");
 		} else {
-			pk_backend_package (backend, PK_INFO_ENUM_INSTALLED,
-					    "evince;0.9.3-5.fc8;i386;installed",
-					    "PDF Document viewer");
-			pk_backend_package (backend, PK_INFO_ENUM_AVAILABLE,
-					    "scribus;1.3.4-1.fc8;i386;fedora",
-					    "Scribus is an desktop open source page layout program");
+			/* pkcon install vips-doc says it's installed cause evince is INSTALLED */
+			if (g_strcmp0 (_search, "vips-doc") != 0) {
+				if (!pk_bitfield_contain (_filters, PK_FILTER_ENUM_NOT_INSTALLED)) {
+					pk_backend_package (backend, PK_INFO_ENUM_INSTALLED,
+							    "evince;0.9.3-5.fc8;i386;installed",
+							    "PDF Document viewer");
+				}
+				if (!pk_bitfield_contain (_filters, PK_FILTER_ENUM_INSTALLED)) {
+					pk_backend_package (backend, PK_INFO_ENUM_AVAILABLE,
+							    "scribus;1.3.4-1.fc8;i386;fedora",
+							    "Scribus is an desktop open source page layout program");
+				}
+			}
 		}
 		pk_backend_finished (backend);
 		return FALSE;
@@ -1110,6 +1122,7 @@ backend_what_provides (PkBackend *backend, PkBitfield filters, PkProvidesEnum pr
 	_progress_percentage = 0;
 	_search = search;
 	_signal_timeout = g_timeout_add (200, backend_what_provides_timeout, backend);
+	_filters = filters;
 	pk_backend_set_status (backend, PK_STATUS_ENUM_REQUEST);
 	pk_backend_set_allow_cancel (backend, TRUE);
 	pk_backend_set_percentage (backend, _progress_percentage);
commit 2969fc944fa34568c43906537d3cb199f447d45c
Author: raven <raven at fedoraproject.org>
Date:   Mon Aug 24 18:45:24 2009 +0000

    Sending translation for Polish

diff --git a/po/pl.po b/po/pl.po
index f7a5bfb..30b8b3c 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -5,8 +5,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: pl\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-08-24 11:06+0100\n"
-"PO-Revision-Date: 2009-08-22 12:10+0200\n"
+"POT-Creation-Date: 2009-08-24 14:39+0000\n"
+"PO-Revision-Date: 2009-08-24 20:44+0200\n"
 "Last-Translator: Piotr DrÄ…g <piotrdrag at gmail.com>\n"
 "Language-Team: Polish <pl at li.org>\n"
 "MIME-Version: 1.0\n"
@@ -273,7 +273,7 @@ msgstr "Nie można zainstalować pakietu %s: %s"
 
 #. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
 #: ../client/pk-console.c:760 ../client/pk-console.c:783
-#: ../client/pk-console.c:879 ../client/pk-console.c:996
+#: ../client/pk-console.c:930 ../client/pk-console.c:1043
 #: ../client/pk-tools-common.c:62 ../client/pk-tools-common.c:81
 #: ../client/pk-tools-common.c:89
 #, c-format
@@ -281,7 +281,7 @@ msgid "Internal error: %s"
 msgstr "Wewnętrzny błąd: %s"
 
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:768 ../client/pk-console.c:1392
+#: ../client/pk-console.c:768 ../client/pk-console.c:1439
 #, c-format
 msgid "This tool could not install the packages: %s"
 msgstr "To narzędzie nie może zainstalować pakietów: %s"
@@ -292,243 +292,253 @@ msgstr "To narzędzie nie może zainstalować pakietów: %s"
 msgid "This tool could not install the files: %s"
 msgstr "To narzędzie nie może zainstalować plików: %s"
 
+#. TRANSLATORS: When removing, we might have to remove other dependencies
+#: ../client/pk-console.c:863
+msgid "The following packages have to be removed:"
+msgstr "Następujące pakiety muszą zostać usunięte:"
+
+#. TRANSLATORS: When removing, we might have to install other dependencies
+#: ../client/pk-console.c:866
+msgid "The following packages have to be installed:"
+msgstr "Następujące pakiety muszą zostać zainstalowane:"
+
+#. TRANSLATORS: When removing, we might have to update other dependencies
+#: ../client/pk-console.c:869
+msgid "The following packages have to be updated:"
+msgstr "Następujące pakiety muszą zostać zaktualizowane:"
+
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:847
+#: ../client/pk-console.c:898
 #, c-format
 msgid "This tool could not remove %s: %s"
 msgstr "To narzędzie nie może usunąć %s: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:870 ../client/pk-console.c:908
-#: ../client/pk-console.c:941
+#: ../client/pk-console.c:921 ../client/pk-console.c:959
+#: ../client/pk-console.c:988
 #, c-format
 msgid "This tool could not remove the packages: %s"
 msgstr "To narzędzie nie może usunąć pakietów: %s"
 
-#. TRANSLATORS: When removing, we might have to remove other dependencies
-#: ../client/pk-console.c:920
-msgid "The following packages have to be removed:"
-msgstr "Następujące pakiety muszą zostać usunięte:"
-
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:927
-msgid "Proceed removing additional packages?"
+#: ../client/pk-console.c:974
+msgid "Proceed with additional packages?"
 msgstr "Kontynuować usuwanie dodatkowych pakietów?"
 
-#. TRANSLATORS: We did not remove any packages
-#: ../client/pk-console.c:932
+#. TRANSLATORS: There was an error removing the packages. The detailed error follows
+#: ../client/pk-console.c:979
 msgid "The package removal was canceled!"
 msgstr "Anulowano usunięcie pakietu!"
 
 #. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:973
+#: ../client/pk-console.c:1020
 #, c-format
 msgid "This tool could not download the package %s as it could not be found"
 msgstr "To narzędzie nie może pobrać pakietu %s, ponieważ nie można go znaleźć"
 
 #. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:1004
+#: ../client/pk-console.c:1051
 #, c-format
 msgid "This tool could not download the packages: %s"
 msgstr "To narzędzie nie może pobrać pakietów: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1031 ../client/pk-console.c:1040
+#: ../client/pk-console.c:1078 ../client/pk-console.c:1087
 #, c-format
 msgid "This tool could not update %s: %s"
 msgstr "To narzędzie nie może zaktualizować %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1062 ../client/pk-console.c:1070
+#: ../client/pk-console.c:1109 ../client/pk-console.c:1117
 #, c-format
 msgid "This tool could not get the requirements for %s: %s"
 msgstr "To narzędzie nie może uzyskać wymagań dla %s: %s"
 
 #. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:1092 ../client/pk-console.c:1100
+#: ../client/pk-console.c:1139 ../client/pk-console.c:1147
 #, c-format
 msgid "This tool could not get the dependencies for %s: %s"
 msgstr "To narzędzie nie może uzyskać zależności dla %s: %s"
 
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:1122 ../client/pk-console.c:1130
+#: ../client/pk-console.c:1169 ../client/pk-console.c:1177
 #, c-format
 msgid "This tool could not get package details for %s: %s"
 msgstr "To narzędzie nie może uzyskać szczegółów pakietu %s: %s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1152
+#: ../client/pk-console.c:1199
 #, c-format
 msgid "This tool could not find the files for %s: %s"
 msgstr "To narzędzie nie może znaleźć plików dla %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1160
+#: ../client/pk-console.c:1207
 #, c-format
 msgid "This tool could not get the file list for %s: %s"
 msgstr "To narzędzie nie może uzyskać listy plików dla %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of packages. The filename follows
-#: ../client/pk-console.c:1182
+#: ../client/pk-console.c:1229
 #, c-format
 msgid "File already exists: %s"
 msgstr "Plik już istnieje: %s"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1187 ../client/pk-console.c:1243
-#: ../client/pk-console.c:1318
+#: ../client/pk-console.c:1234 ../client/pk-console.c:1290
+#: ../client/pk-console.c:1365
 msgid "Getting package list"
 msgstr "Pobieranie listy pakietów"
 
 #. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1193 ../client/pk-console.c:1249
-#: ../client/pk-console.c:1324
+#: ../client/pk-console.c:1240 ../client/pk-console.c:1296
+#: ../client/pk-console.c:1371
 #, c-format
 msgid "This tool could not get package list: %s"
 msgstr "To narzędzie nie może pobrać listy pakietów: %s"
 
 #. TRANSLATORS: There was an error saving the list
-#: ../client/pk-console.c:1204
+#: ../client/pk-console.c:1251
 #, c-format
 msgid "Failed to save to disk"
 msgstr "Zapisanie na dysku nie powiodło się"
 
 #. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1238 ../client/pk-console.c:1313
+#: ../client/pk-console.c:1285 ../client/pk-console.c:1360
 #, c-format
 msgid "File does not exist: %s"
 msgstr "Plik nie istnieje: %s"
 
 #. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1270
+#: ../client/pk-console.c:1317
 msgid "Packages to add"
 msgstr "Pakiety do dodania"
 
 #. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1278
+#: ../client/pk-console.c:1325
 msgid "Packages to remove"
 msgstr "Pakiety do usunięcia"
 
 #. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1346
+#: ../client/pk-console.c:1393
 #, c-format
 msgid "No new packages need to be installed"
 msgstr "Nie trzeba instalować nowych pakietów"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1352
+#: ../client/pk-console.c:1399
 msgid "To install"
 msgstr "Do zainstalowania"
 
 #. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1364
+#: ../client/pk-console.c:1411
 msgid "Searching for package: "
 msgstr "Wyszukiwanie pakietu: "
 
 #. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1368
+#: ../client/pk-console.c:1415
 msgid "not found."
 msgstr "nie znaleziono."
 
 #. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1379
+#: ../client/pk-console.c:1426
 #, c-format
 msgid "No packages can be found to install"
 msgstr "Nie można znaleźć pakietów do zainstalowania"
 
 #. TRANSLATORS: installing new packages from package list
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
-#: ../client/pk-console.c:1385
+#: ../client/pk-console.c:1432
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:886
 #, c-format
 msgid "Installing packages"
 msgstr "Instalowanie pakietów"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1421
+#: ../client/pk-console.c:1468
 #, c-format
 msgid "This tool could not find the update details for %s: %s"
 msgstr "To narzędzie nie może znaleźć szczegółów aktualizacji dla %s: %s"
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1429
+#: ../client/pk-console.c:1476
 #, c-format
 msgid "This tool could not get the update details for %s: %s"
 msgstr "To narzędzie nie może uzyskać szczegółów aktualizacji dla %s: %s"
 
 #. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
-#: ../client/pk-console.c:1460
+#: ../client/pk-console.c:1507
 msgid "Error:"
 msgstr "BÅ‚Ä…d:"
 
 #. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1474
+#: ../client/pk-console.c:1521
 msgid "Package description"
 msgstr "Opis pakietu"
 
 #. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
-#: ../client/pk-console.c:1490
+#: ../client/pk-console.c:1537
 msgid "Message:"
 msgstr "Komunikat:"
 
 #. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1518
+#: ../client/pk-console.c:1565
 msgid "Package files"
 msgstr "Pliki pakietu"
 
 #. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1526
+#: ../client/pk-console.c:1573
 msgid "No files"
 msgstr "Brak plików"
 
 #. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1549
+#: ../client/pk-console.c:1596
 msgid "Repository signature required"
 msgstr "Wymagany jest podpis repozytorium"
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1559
+#: ../client/pk-console.c:1606
 msgid "Do you accept this signature?"
 msgstr "Zaakceptować ten podpis?"
 
 #. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1563
+#: ../client/pk-console.c:1610
 msgid "The signature was not accepted."
 msgstr "Podpis nie został zaakceptowany."
 
 #. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1597
+#: ../client/pk-console.c:1644
 msgid "End user license agreement required"
 msgstr "Licencja jest wymagana"
 
 #. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1604
+#: ../client/pk-console.c:1651
 msgid "Do you agree to this license?"
 msgstr "Zaakceptować tę licencję?"
 
 #. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1608
+#: ../client/pk-console.c:1655
 msgid "The license was refused."
 msgstr "Odrzucono licencjÄ™."
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1637
+#: ../client/pk-console.c:1684
 msgid "The daemon crashed mid-transaction!"
 msgstr "Demon zawiesił się w połowie transakcji!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1690
+#: ../client/pk-console.c:1737
 msgid "PackageKit Console Interface"
 msgstr "Interfejs konsoli PackageKit"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1692
+#: ../client/pk-console.c:1739
 msgid "Subcommands:"
 msgstr "Podpolecenia:"
 
 #. TRANSLATORS: command line argument, if we should show debugging information
 #. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:1785 ../client/pk-generate-pack.c:185
+#: ../client/pk-console.c:1832 ../client/pk-generate-pack.c:185
 #: ../client/pk-monitor.c:128
 #: ../contrib/command-not-found/pk-command-not-found.c:616
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:550
@@ -537,148 +547,148 @@ msgid "Show extra debugging information"
 msgstr "Wyświetla dodatkowe informacje o debugowaniu"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1788 ../client/pk-monitor.c:130
+#: ../client/pk-console.c:1835 ../client/pk-monitor.c:130
 msgid "Show the program version and exit"
 msgstr "Wyświetla wersję programu i wyłącza"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1791
+#: ../client/pk-console.c:1838
 msgid "Set the filter, e.g. installed"
 msgstr "Ustawia filtr, np. zainstalowane"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1794
+#: ../client/pk-console.c:1841
 msgid "Exit without waiting for actions to complete"
 msgstr "Wyłącza bez oczekiwania na zakończenie działań"
 
 #. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:1821
+#: ../client/pk-console.c:1868
 msgid "This tool could not connect to system DBUS."
 msgstr "To narzędzie nie może połączyć się z systemowym D-Bus."
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1911
+#: ../client/pk-console.c:1958
 msgid "The filter specified was invalid"
 msgstr "Podany filtr jest nieprawidłowy"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1930
+#: ../client/pk-console.c:1977
 msgid "A search type is required, e.g. name"
 msgstr "Wymagany jest typ wyszukiwania, np. nazwa"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1937 ../client/pk-console.c:1946
-#: ../client/pk-console.c:1955 ../client/pk-console.c:1964
+#: ../client/pk-console.c:1984 ../client/pk-console.c:1993
+#: ../client/pk-console.c:2002 ../client/pk-console.c:2011
 msgid "A search term is required"
 msgstr "Wymagany jest wyszukiwany termin"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1971
+#: ../client/pk-console.c:2018
 msgid "Invalid search type"
 msgstr "Nieprawidłowy typ wyszukiwania"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1977
+#: ../client/pk-console.c:2024
 msgid "A package name or filename to install is required"
 msgstr "Wymagana jest nazwa pakietu lub pliku do zainstalowania"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1986
+#: ../client/pk-console.c:2033
 msgid "A type, key_id and package_id are required"
 msgstr "Wymagany jest typ, key_id i package_id"
 
 #. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:1995
+#: ../client/pk-console.c:2042
 msgid "A package name to remove is required"
 msgstr "Wymagana jest nazwa pakietu do usunięcia"
 
 #. TRANSLATORS: the user did not specify anything about what to download or where
-#: ../client/pk-console.c:2003
+#: ../client/pk-console.c:2050
 msgid "A destination directory and the package names to download are required"
 msgstr "Wymagany jest katalog docelowy i nazwy pakietów do pobrania"
 
 #. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:2010
+#: ../client/pk-console.c:2057
 msgid "Directory not found"
 msgstr "Nie znaleziono katalogu"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2018
+#: ../client/pk-console.c:2065
 msgid "A licence identifier (eula-id) is required"
 msgstr "Wymagany jest identyfikator licencji (eula-id)"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2028
+#: ../client/pk-console.c:2075
 msgid "A transaction identifier (tid) is required"
 msgstr "Wymagany jest identyfikator transakcji (tid)"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:2045
+#: ../client/pk-console.c:2092
 msgid "A package name to resolve is required"
 msgstr "Wymagana jest nazwa pakietu do rozwiÄ…zania"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:2054 ../client/pk-console.c:2063
+#: ../client/pk-console.c:2101 ../client/pk-console.c:2110
 msgid "A repository name is required"
 msgstr "Wymagana jest nazwa repozytorium"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2072
+#: ../client/pk-console.c:2119
 msgid "A repo name, parameter and value are required"
 msgstr "Wymagana jest nazwa, parametr i wartość repozytorium"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:2086
+#: ../client/pk-console.c:2133
 msgid "An action, e.g. 'update-system' is required"
 msgstr "Wymagane jest działanie, np. \"update-system\""
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:2093
+#: ../client/pk-console.c:2140
 msgid "A correct role is required"
 msgstr "Wymagana jest bieżąca rola"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2100
+#: ../client/pk-console.c:2147
 msgid "Failed to get the time since this action was last completed"
 msgstr ""
 "Uzyskanie czasu od ostatniego zakończenia tego działania nie powiodło się"
 
 #. TRANSLATORS: The user did not provide a package name
 #. TRANSLATORS: This is when the user fails to supply the package name
-#: ../client/pk-console.c:2110 ../client/pk-console.c:2122
-#: ../client/pk-console.c:2131 ../client/pk-console.c:2149
-#: ../client/pk-console.c:2158 ../client/pk-generate-pack.c:241
+#: ../client/pk-console.c:2157 ../client/pk-console.c:2169
+#: ../client/pk-console.c:2178 ../client/pk-console.c:2196
+#: ../client/pk-console.c:2205 ../client/pk-generate-pack.c:241
 msgid "A package name is required"
 msgstr "Wymagana jest nazwa pakietu"
 
 #. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:2140
+#: ../client/pk-console.c:2187
 msgid "A package provide string is required"
 msgstr "Wymagany jest łańcuch dostarczania pakietu"
 
 #. TRANSLATORS: The user didn't specify a filename to create as a list
-#: ../client/pk-console.c:2167
+#: ../client/pk-console.c:2214
 msgid "A list file name to create is required"
 msgstr "Wymagana jest lista nazw plików do utworzenia"
 
 #. TRANSLATORS: The user didn't specify a filename to open as a list
-#: ../client/pk-console.c:2177 ../client/pk-console.c:2187
+#: ../client/pk-console.c:2224 ../client/pk-console.c:2234
 msgid "A list file to open is required"
 msgstr "Wymagana jest lista plików do otwarcia"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2241
+#: ../client/pk-console.c:2288
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "Opcja \"%s\" nie jest obsługiwana"
 
 #. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2254
+#: ../client/pk-console.c:2301
 msgid "Incorrect privileges for this operation"
 msgstr "Niepoprawne uprawnienia dla tego działania"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2257
+#: ../client/pk-console.c:2304
 msgid "Command failed"
 msgstr "Polecenie nie powiodło się"
 
commit b7eea2bf830a121146dd2ac5ebde03478ad5bdfe
Merge: de29496... 4ef103a...
Author: Anders F Bjorklund <afb at users.sourceforge.net>
Date:   Mon Aug 24 18:37:08 2009 +0200

    Merge branch 'master' of git+ssh://afb@git.packagekit.org/srv/git/PackageKit

commit de29496e669d7241d767269e48e6a1a863efd88e
Author: Anders F Bjorklund <afb at users.sourceforge.net>
Date:   Mon Aug 24 18:10:17 2009 +0200

    Update feature matrix for ports.

diff --git a/docs/html/pk-matrix.html b/docs/html/pk-matrix.html
index 3cc008d..af36283 100644
--- a/docs/html/pk-matrix.html
+++ b/docs/html/pk-matrix.html
@@ -189,7 +189,7 @@
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- pisi -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- poldek -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- portage -->
-<td><img src="img/status-bad.png" alt="[no]"/></td><!-- ports -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- ports -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- smart -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- urpmi -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- yum -->
@@ -205,7 +205,7 @@
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pisi -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- poldek -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- portage -->
-<td><img src="img/status-bad.png" alt="[no]"/></td><!-- ports -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- ports -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- smart -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- urpmi -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- yum -->
@@ -237,7 +237,7 @@
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pisi -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- poldek -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- portage -->
-<td><img src="img/status-bad.png" alt="[no]"/></td><!-- ports -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- ports -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- smart -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- urpmi -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- yum -->
@@ -285,7 +285,7 @@
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pisi -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- poldek -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- portage -->
-<td><img src="img/status-bad.png" alt="[no]"/></td><!-- ports -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- ports -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- smart -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- urpmi -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- yum -->
@@ -429,7 +429,7 @@
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pisi -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- poldek -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- portage -->
-<td><img src="img/status-bad.png" alt="[no]"/></td><!-- ports -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- ports -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- smart -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- urpmi -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- yum -->
@@ -445,7 +445,7 @@
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pisi -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- poldek -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- portage -->
-<td><img src="img/status-bad.png" alt="[no]"/></td><!-- ports -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- ports -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- smart -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- urpmi -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- yum -->
commit 27ec5990603ba32c37c9b894ac44857603ca7064
Author: Anders F Bjorklund <afb at users.sourceforge.net>
Date:   Mon Aug 24 18:09:31 2009 +0200

    ports: implement the remaining read-write items

diff --git a/backends/ports/helpers/Makefile.am b/backends/ports/helpers/Makefile.am
new file mode 100644
index 0000000..2635ce5
--- /dev/null
+++ b/backends/ports/helpers/Makefile.am
@@ -0,0 +1,15 @@
+
+helperdir = $(datadir)/PackageKit/helpers/ports
+
+NULL =
+
+dist_helper_DATA = 					\
+	default-dialog					\
+	$(NULL)
+
+install-data-hook:
+	chmod a+rx $(DESTDIR)$(helperdir)/default-dialog
+
+clean-local :
+	rm -f *~
+
diff --git a/backends/ports/helpers/default-dialog b/backends/ports/helpers/default-dialog
new file mode 100755
index 0000000..119aa08
--- /dev/null
+++ b/backends/ports/helpers/default-dialog
@@ -0,0 +1,23 @@
+#!/usr/local/bin/ruby
+
+# This goes instead of dialog(1), it will
+# just return the default options selection
+#
+# Ex: make config DIALOG=default-dialog
+
+box = ARGV[0]
+exit(-1) unless box == "--checklist"
+
+text, height, width, list_height = ARGV[1, 4]
+
+i = 5
+while i < ARGV.count do
+  tag, item, status = ARGV[i, 3]
+  if status == "on"
+    $stderr.puts tag
+  end
+  i += 3
+end
+
+# "OK"
+exit(0)
diff --git a/backends/ports/pk-backend-ports.c b/backends/ports/pk-backend-ports.c
index ba95ab0..6cf1a79 100644
--- a/backends/ports/pk-backend-ports.c
+++ b/backends/ports/pk-backend-ports.c
@@ -158,6 +158,46 @@ backend_get_files (PkBackend *backend, gchar **package_ids)
 }
 
 /**
+ * backend_get_update_detail:
+ */
+static void
+backend_get_update_detail (PkBackend *backend, gchar **package_ids)
+{
+	gchar *package_ids_temp;
+
+	package_ids_temp = pk_package_ids_to_text (package_ids);
+	pk_backend_spawn_helper (spawn, BACKEND_FILE, "get-update-detail", package_ids_temp, NULL);
+	g_free (package_ids_temp);
+}
+
+/**
+ * backend_get_updates:
+ */
+static void
+backend_get_updates (PkBackend *backend, PkBitfield filters)
+{
+	gchar *filters_text;
+
+	filters_text = pk_filter_bitfield_to_text (filters);
+	pk_backend_spawn_helper (spawn, BACKEND_FILE, "get-updates", filters_text, NULL);
+	g_free (filters_text);
+}
+
+/**
+ * backend_install_packages:
+ */
+static void
+backend_install_packages (PkBackend *backend, gboolean only_trusted, gchar **package_ids)
+{
+	gchar *package_ids_temp;
+
+	/* send the complete list as stdin */
+	package_ids_temp = pk_package_ids_to_text (package_ids);
+	pk_backend_spawn_helper (spawn, BACKEND_FILE, "install-packages", pk_backend_bool_to_text (only_trusted), package_ids_temp, NULL);
+	g_free (package_ids_temp);
+}
+
+/**
  * backend_refresh_cache:
  */
 static void
@@ -174,6 +214,19 @@ backend_refresh_cache (PkBackend *backend, gboolean force)
 }
 
 /**
+ * backend_remove_packages:
+ */
+static void
+backend_remove_packages (PkBackend *backend, gchar **package_ids, gboolean allow_deps, gboolean autoremove)
+{
+	gchar *package_ids_temp;
+
+	package_ids_temp = pk_package_ids_to_text (package_ids);
+	pk_backend_spawn_helper (spawn, BACKEND_FILE, "remove-packages", pk_backend_bool_to_text (allow_deps), pk_backend_bool_to_text (autoremove), package_ids_temp, NULL);
+	g_free (package_ids_temp);
+}
+
+/**
  * pk_backend_resolve:
  */
 static void
@@ -242,6 +295,20 @@ backend_search_name (PkBackend *backend, PkBitfield filters, const gchar *search
 }
 
 /**
+ * backend_update_packages:
+ */
+static void
+backend_update_packages (PkBackend *backend, gboolean only_trusted, gchar **package_ids)
+{
+	gchar *package_ids_temp;
+
+	/* send the complete list as stdin */
+	package_ids_temp = pk_package_ids_to_text (package_ids);
+	pk_backend_spawn_helper (spawn, BACKEND_FILE, "update-packages", package_ids_temp, NULL);
+	g_free (package_ids_temp);
+}
+
+/**
  * backend_get_packages:
  */
 static void
@@ -283,6 +350,15 @@ backend_get_requires (PkBackend *backend, PkBitfield filters, gchar **package_id
 	g_free (package_ids_temp);
 }
 
+/**
+ * backend_update_system:
+ */
+static void
+backend_update_system (PkBackend *backend, gboolean only_trusted)
+{
+	pk_backend_spawn_helper (spawn, BACKEND_FILE, "update-system", pk_backend_bool_to_text (only_trusted), NULL);
+}
+
 PK_BACKEND_OPTIONS (
 	"Ports",				/* description */
 	"Anders F Björklund <afb at users.sourceforge.net>",	/* author */
@@ -301,13 +377,13 @@ PK_BACKEND_OPTIONS (
 	backend_get_packages,			/* get_packages */
 	backend_get_repo_list,			/* get_repo_list */
 	backend_get_requires,			/* get_requires */
-	NULL,		/* get_update_detail */
-	NULL,			/* get_updates */
+	backend_get_update_detail,		/* get_update_detail */
+	backend_get_updates,			/* get_updates */
 	NULL,			/* install_files */
-	NULL,		/* install_packages */
+	backend_install_packages,		/* install_packages */
 	NULL,			/* install_signature */
 	backend_refresh_cache,			/* refresh_cache */
-	NULL,		/* remove_packages */
+	backend_remove_packages,		/* remove_packages */
 	NULL,			/* repo_enable */
 	NULL,			/* repo_set_data */
 	backend_resolve,			/* resolve */
@@ -316,8 +392,8 @@ PK_BACKEND_OPTIONS (
 	backend_search_file,			/* search_file */
 	backend_search_group,			/* search_group */
 	backend_search_name,			/* search_name */
-	NULL,		/* update_packages */
-	NULL,			/* update_system */
+	backend_update_packages,		/* update_packages */
+	backend_update_system,			/* update_system */
 	NULL			/* what_provides */
 );
 
diff --git a/backends/ports/portsBackend.rb b/backends/ports/portsBackend.rb
index 9843a1a..04147dc 100755
--- a/backends/ports/portsBackend.rb
+++ b/backends/ports/portsBackend.rb
@@ -20,8 +20,10 @@
 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 
 require 'pkgtools'
+require 'open3' # ignores exitcodes
 
-$LOAD_PATH.unshift File.dirname(File.expand_path($PROGRAM_NAME))
+PROGRAM_DIR=File.dirname(File.expand_path($PROGRAM_NAME))
+$LOAD_PATH.unshift PROGRAM_DIR
 
 require 'ruby_packagekit/enums'
 
@@ -169,6 +171,10 @@ end
 
 def resolve(filters, packages)
     status(STATUS_QUERY)
+    _resolve(filters, packages)
+end
+
+def _resolve(filters, packages)
     filterlist = filters.split(';')
     packages.each do |package|
       portnames = $portsdb.glob(package)
@@ -322,6 +328,7 @@ end
 
 def get_depends(filters, package_ids, recursive)
     status(STATUS_INFO)
+    filterlist = filters.split(';')
     package_ids.each do |package|
       name, version, arch, data = package.split(';')
 
@@ -332,9 +339,13 @@ def get_depends(filters, package_ids, recursive)
         next if pkg.version != version
 
         if pkg.pkgdep
-        pkg.pkgdep.each do |dep|
-            resolve(FILTER_INSTALLED, dep)
-        end
+          pkg.pkgdep.each do |dep|
+            _resolve(filters, dep)
+          end
+        elsif port.all_depends
+          port.all_depends.each do |dep|
+            _resolve(filters, dep)
+          end
         end
        end
       else
@@ -423,18 +434,308 @@ def get_requires(filters, package_ids, recursive)
     end
 end
 
+# (ports-mgmt/portaudit)
+PORTAUDIT="#{PREFIX}/sbin/portaudit"
+
 def refresh_cache(force)
     percentage(0)
     status(STATUS_DOWNLOAD_PACKAGELIST)
     $portsdb.update(fetch=true)
+    if File.exist?(PORTAUDIT)
+      status(STATUS_DOWNLOAD_UPDATEINFO)
+      system(PORTAUDIT, '-q', '-F')
+    end
     percentage(50)
     status(STATUS_REFRESH_CACHE)
     $portsdb.update_db(force)
     percentage(100)
 end
 
+def get_updates(filters)
+    status(STATUS_DEP_RESOLVE)
+    filterlist = filters.split(';')
+    list = []
+    $pkgdb.glob.each do |pkgname|
+        list |= $pkgdb.recurse(pkgname)
+    end
+    status(STATUS_INFO)
+    list.each do |pkg|
+        pkgname = pkg.fullname
+        if origin = pkg.origin
+            if portinfo = $portsdb[origin]
+              newpkg = portinfo.pkgname
+            elsif $portsdb.exist?(origin, quick = true)
+              pkgname = $portsdb.exist?(origin) or next
+              newpkg = PkgInfo.new(pkgname)
+            else
+              # pkg's port is not in portsdb
+              next
+            end
+            if newpkg.version > pkg.version
+              data = "ports"
+              package_id = sprintf "%s;%s;%s;%s", pkg.name, pkg.version, $pkg_arch, data
+              status = INFO_NORMAL
+              if File.exist?(PORTAUDIT)
+                system("PATH=/sbin:$PATH #{PORTAUDIT} -q '#{pkg.fullname}'") # /sbin/md5
+                status = INFO_SECURITY if ($? != 0)
+              end
+              summary = pkg.comment
+              if summary
+                summary.chomp.chomp
+                summary = summary.gsub(/\n/, ' ')
+                summary = summary.gsub(/\t/, ' ')
+              end
+              package(package_id, status, summary)
+            end
+        end
+    end
+end
+
+def get_update_detail(package_ids)
+    status(STATUS_INFO)
+    package_ids.each do |package|
+      name, version, arch, data = package.split(';')
+
+     pkgnames = $portsdb.glob(name)
+      if pkgnames
+       pkgnames.each do |port|
+        pkg = PkgInfo.new(port.pkgname)
+
+        updates = ''
+        obsoletes = ''
+
+        oldpkg = $pkgdb.glob(port.origin).first
+        next if pkg == oldpkg
+        if oldpkg
+          next if oldpkg.version != version
+          data = 'ports'
+          package = sprintf "%s;%s;%s;%s", pkg.name, pkg.version, $pkg_arch, data
+          data = oldpkg.installed? ? 'installed' : 'ports'
+          updates = sprintf "%s;%s;%s;%s", oldpkg.name, oldpkg.version, $pkg_arch, data
+        else
+          pkgnames = $portsdb.glob(name)
+          pkgnames.each do |oldport|
+            oldpkg = PkgInfo.new(oldport.pkgname)
+            next if oldpkg.version != version
+          end
+          data = oldpkg.installed? ? 'installed' : 'ports'
+          obsoletes = sprintf "%s;%s;%s;%s", oldpkg.name, oldpkg.version, $pkg_arch, data
+        end
+
+        state = UPDATE_STATE_STABLE
+
+        vendor_urls = []
+        bugzilla_urls = []
+        cve_urls = []
+
+        description = ''
+
+        issued = ''
+        updated = ''
+
+        # TODO: http://www.vuxml.org
+
+        vendor_urls = vendor_urls.join(';')
+        bugzilla_urls = bugzilla_urls.join(';')
+        cve_urls = cve_urls.join(';')
+
+        reboot = 'none'
+        changelog = ''
+
+        update_detail(package,
+                updates, obsoletes, vendor_urls, bugzilla_urls, cve_urls,
+                reboot, description, changelog, state, issued, updated)
+        break
+       end
+      else
+        error(ERROR_PACKAGE_NOT_FOUND, "Package #{package} was not found")
+      end
+    end
+end
+
+# (ports-mgmt/portupgrade)
+PORTUPGRADE="#{PREFIX}/sbin/portupgrade"
+
+# use a non-interactive (default) dialog program
+DIALOG="#{PROGRAM_DIR}/helpers/default-dialog.rb"
+
+USE_PKG = true # use packages
+BIN_PKG = true # build packages
+
+# Here are the extra subphases used, when:
+# ---> Using the port instead of a package
+
+# ---> Building '#{portdir}'
+# ===> Cleaning for #{pkgname}
+# [fetch distfiles]
+# ===> Extracting for #{pkgname}
+# [fetch patchfiles]
+# ===> Patching for #{pkgname}
+# ===> Configuring for #{pkgname}
+# ===> Building for #{pkgname}
+# ===> Installing for #{pkgname}
+# ===> Building package for #{pkgname}
+# ===> Cleaning for #{pkgname}
+
+def update_system(only_trusted)
+    if only_trusted
+        error(ERROR_NOT_SUPPORTED, "Trusted packages not available.")
+        return
+    end
+    args = ['-M', 'DIALOG='+DIALOG]
+    args << '-P' if USE_PKG
+    args << '-p' if BIN_PKG
+    args << '-a' # all installed
+    status(STATUS_DEP_RESOLVE)
+    stdin, stdout, stderr = Open3.popen3(PORTUPGRADE, *args)
+    stdout.each_line do |line|
+        if line.match(/^\=+\>/)
+            message(MESSAGE_UNKNOWN, line.chomp)
+        elsif line.match(/^\-\-\-\>/)
+           if line.match(/Upgrading '(.*)\-(.*)' to '(.*)\-(.*)'/)
+                status(STATUS_UPDATE)
+                _resolve(FILTER_NONE, $1)
+            elsif line.match(/Fetching (.*)\-(.*)/)
+                status(STATUS_DOWNLOAD)
+                _resolve(FILTER_NONE, $1)
+            elsif line.match(/SECURITY REPORT/)
+                # important safety tip
+            end
+            message(MESSAGE_UNKNOWN, line.chomp)
+        end
+    end
+    stderr.each_line do |line|
+        if line.match(/\[Updating the pkgdb.*\]/)
+          status(STATUS_WAIT)
+        elsif line.match(/^\*\* Command failed \[exit code (\d)\]: (.*)/)
+          error(ERROR_TRANSACTION_ERROR, $2)
+        elsif not line.match(/\[Gathering depends.*\]/) \
+          and not line.match(/^\*\* Could not find the latest version/)
+          message(MESSAGE_BACKEND_ERROR, line.chomp)
+        end
+    end
+end
+
+def install_packages(only_trusted, package_ids)
+    if only_trusted
+        error(ERROR_NOT_SUPPORTED, "Trusted packages not available.")
+        return
+    end
+    pkgnames = []
+    package_ids.each do |package|
+      name, version, arch, data = package.split(';')
+      if not $portsdb.glob(name)
+        error(ERROR_PACKAGE_NOT_FOUND, "Package #{name} was not found", exit=false)
+        next
+      end
+      pkgname = "#{name}-#{version}"
+      pkg = PkgInfo.new(pkgname)
+      if pkg.installed?
+        error(ERROR_PACKAGE_ALREADY_INSTALLED, "The package #{pkgname} is already installed")
+      else
+        pkgnames << pkgname
+      end
+    end
+    return if pkgnames.empty?
+    args = ['-M', 'DIALOG='+DIALOG]
+    args << '-P' if USE_PKG
+    args << '-p' if BIN_PKG
+    args.concat pkgnames
+    status(STATUS_DEP_RESOLVE)
+    stdin, stdout, stderr = Open3.popen3(PkgDB::command(:portinstall), *args)
+    stdout.each_line do |line|
+        if line.match(/^\=+\>/)
+            message(MESSAGE_UNKNOWN, line.chomp)
+        elsif line.match(/^\-\-\-\>/)
+            if line.match(/Installing '(.*)\-(.*)'/)
+                status(STATUS_INSTALL)
+                _resolve(FILTER_NONE, $1)
+            elsif line.match(/Fetching (.*)\-(.*)/)
+                status(STATUS_DOWNLOAD)
+                _resolve(FILTER_NONE, $1)
+            elsif line.match(/SECURITY REPORT/)
+                # important safety tip
+            end
+            message(MESSAGE_UNKNOWN, line.chomp)
+        end
+     end
+    stderr.each_line do |line|
+        if line.match(/\[Updating the pkgdb.*\]/)
+          status(STATUS_WAIT)
+        elsif line.match(/^\*\* Command failed \[exit code (\d)\]: (.*)/)
+          error(ERROR_TRANSACTION_ERROR, $2)
+        elsif not line.match(/\[Gathering depends.*\]/) \
+          and not line.match(/^\*\* Could not find the latest version/)
+          message(MESSAGE_BACKEND_ERROR, line.chomp)
+        end
+    end
+    package_ids.each do |package|
+      name, version, arch, data = package.split(';')
+      pkgname = "#{name}-#{version}"
+      _resolve(FILTER_INSTALLED, pkgname)
+    end
+end
+
+def remove_packages(allowdep, autoremove, package_ids)
+    if autoremove
+        error(ERROR_NOT_SUPPORTED, "Automatic removal not available.", exit=false)
+    end
+    pkgnames = []
+    package_ids.each do |package|
+      name, version, arch, data = package.split(';')
+      if not $portsdb.glob(name)
+        error(ERROR_PACKAGE_NOT_FOUND, "Package #{name} was not found", exit=false)
+        next
+      end
+      pkgname = "#{name}-#{version}"
+      pkg = PkgInfo.new(pkgname)
+      if not pkg.installed?
+        error(ERROR_PACKAGE_NOT_INSTALLED, "The package #{pkgname} is not installed")
+      else
+        pkgnames << pkgname
+      end
+    end
+    return if pkgnames.empty?
+    status(STATUS_DEP_RESOLVE)
+    args = []
+    args << '--recursive' if allowdep
+    args.concat pkgnames
+    stdin, stdout, stderr = Open3.popen3(PkgDB::command(:pkg_deinstall), *args)
+    stdout.each_line do |line|
+        if line.match(/^\=+\>/)
+            message(MESSAGE_UNKNOWN, line.chomp)
+        elsif line.match(/^\-\-\-\>/)
+            if line.match(/Deinstalling '(.*)\-(.*)'/)
+                status(STATUS_REMOVE)
+                _resolve(FILTER_NONE, $1)
+            end
+            message(MESSAGE_UNKNOWN, line.chomp)
+        end
+    end
+    stderr.each_line do |line|
+        if line.match(/\[Updating the pkgdb.*\]/)
+           status(STATUS_WAIT)
+        elsif line.match(/^\*\* Command failed \[exit code (\d)\]: (.*)/)
+          error(ERROR_TRANSACTION_ERROR, $2)
+        elsif not line.match(/\[Gathering depends.*\]/) \
+          and not line.match(/^\*\* Could not find the latest version/)
+           message(MESSAGE_BACKEND_ERROR, line.chomp)
+        end
+    end
+    package_ids.each do |package|
+      name, version, arch, data = package.split(';')
+      pkgname = "#{name}-#{version}"
+      _resolve(FILTER_NOT_INSTALLED, pkgname)
+    end
+end
+
 #######################################################################
 
+def message(typ, msg)
+   $stdout.printf "message\t%s\t%s\n", typ, msg
+   $stdout.flush
+end
+
 def package(package_id, status, summary)
    $stdout.printf "package\t%s\t%s\t%s\n", status, package_id, summary
    $stdout.flush
@@ -445,6 +746,11 @@ def repo_detail(repoid, name, state)
    $stdout.flush
 end
 
+def update_detail(package_id, updates, obsoletes, vendor_url, bugzilla_url, cve_url, restart, update_text, changelog, state, issued, updated)
+   $stdout.printf "updatedetail\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n", package_id, updates, obsoletes, vendor_url, bugzilla_url, cve_url, restart, update_text, changelog, state, issued, updated
+   $stdout.flush
+end
+
 def details(package_id, package_license, group, desc, url, bytes)
    $stdout.printf "details\t%s\t%s\t%s\t%s\t%s\t%d\n", package_id, package_license, group, desc, url, bytes
    $stdout.flush
@@ -489,6 +795,8 @@ end
 def to_b(string)
     return true if string == true || string =~ /^true$/i
     return false if string == false || string.nil? || string =~ /^false$/i
+    return true if string == "yes"
+    return false if string == "no"
     raise ArgumentError.new("invalid value for bool: \"#{string}\"")
 end
 
@@ -547,10 +855,33 @@ def dispatch_command(cmd, args)
         recursive = to_b(args[2])
         get_requires(filters, package_ids, recursive)
         finished()
+    when cmd == 'get-update-detail'
+        package_ids = args[0].split(PACKAGE_IDS_DELIM)
+        get_update_detail(package_ids)
+        finished()
+    when cmd == 'get-updates'
+        filters = args[0]
+        get_updates(filters)
+        finished()
+    when cmd == 'install-packages'
+        only_trusted = to_b(args[0])
+        package_ids = args[1].split(PACKAGE_IDS_DELIM)
+        install_packages(only_trusted, package_ids)
+        finished()
     when cmd == 'refresh-cache'
         force = to_b(args[0])
         refresh_cache(force)
         finished()
+    when cmd == 'remove-packages'
+        allowdeps = to_b(args[0])
+        autoremove = to_b(args[1])
+        package_ids = args[2].split(PACKAGE_IDS_DELIM)
+        remove_packages(allowdeps, autoremove, package_ids)
+        finished()
+    when cmd == 'update-system'
+        only_trusted = to_b(args[0])
+        update_system(only_trusted)
+        finished()
     else
         errmsg = "command '#{cmd}' is not known"
         error(ERROR_INTERNAL_ERROR, errmsg, exit=false)
commit 4ef103afcc0a003de4107855792aeb895224abfb
Author: Richard Hughes <richard at hughsie.com>
Date:   Mon Aug 24 15:47:34 2009 +0100

    glib: fix up the self tests after recent error change

diff --git a/lib/packagekit-glib/pk-client.c b/lib/packagekit-glib/pk-client.c
index 5d2cf88..2a31735 100644
--- a/lib/packagekit-glib/pk-client.c
+++ b/lib/packagekit-glib/pk-client.c
@@ -1458,7 +1458,7 @@ pk_client_get_updates (PkClient *client, PkBitfield filters, GError **error)
 		/* spin until finished */
 		if (client->priv->synchronous) {
 			g_main_loop_run (client->priv->loop);
-			if (client->priv->error != NULL) {
+			if (PK_IS_CLIENT (client) && client->priv->error != NULL) {
 				ret = FALSE;
 				if (error != NULL)
 					*error = g_error_copy (client->priv->error);
@@ -1529,7 +1529,7 @@ pk_client_get_categories (PkClient *client, GError **error)
 		/* spin until finished */
 		if (client->priv->synchronous) {
 			g_main_loop_run (client->priv->loop);
-			if (client->priv->error != NULL) {
+			if (PK_IS_CLIENT (client) && client->priv->error != NULL) {
 				ret = FALSE;
 				if (error != NULL)
 					*error = g_error_copy (client->priv->error);
@@ -1609,7 +1609,7 @@ pk_client_update_system (PkClient *client, gboolean only_trusted, GError **error
 		/* spin until finished */
 		if (client->priv->synchronous) {
 			g_main_loop_run (client->priv->loop);
-			if (client->priv->error != NULL) {
+			if (PK_IS_CLIENT (client) && client->priv->error != NULL) {
 				ret = FALSE;
 				if (error != NULL)
 					*error = g_error_copy (client->priv->error);
@@ -1688,7 +1688,7 @@ pk_client_search_name (PkClient *client, PkBitfield filters, const gchar *search
 		/* spin until finished */
 		if (client->priv->synchronous) {
 			g_main_loop_run (client->priv->loop);
-			if (client->priv->error != NULL) {
+			if (PK_IS_CLIENT (client) && client->priv->error != NULL) {
 				ret = FALSE;
 				if (error != NULL)
 					*error = g_error_copy (client->priv->error);
@@ -1769,7 +1769,7 @@ pk_client_search_details (PkClient *client, PkBitfield filters, const gchar *sea
 		/* spin until finished */
 		if (client->priv->synchronous) {
 			g_main_loop_run (client->priv->loop);
-			if (client->priv->error != NULL) {
+			if (PK_IS_CLIENT (client) && client->priv->error != NULL) {
 				ret = FALSE;
 				if (error != NULL)
 					*error = g_error_copy (client->priv->error);
@@ -1848,7 +1848,7 @@ pk_client_search_group (PkClient *client, PkBitfield filters, const gchar *searc
 		/* spin until finished */
 		if (client->priv->synchronous) {
 			g_main_loop_run (client->priv->loop);
-			if (client->priv->error != NULL) {
+			if (PK_IS_CLIENT (client) && client->priv->error != NULL) {
 				ret = FALSE;
 				if (error != NULL)
 					*error = g_error_copy (client->priv->error);
@@ -1927,7 +1927,7 @@ pk_client_search_file (PkClient *client, PkBitfield filters, const gchar *search
 		/* spin until finished */
 		if (client->priv->synchronous) {
 			g_main_loop_run (client->priv->loop);
-			if (client->priv->error != NULL) {
+			if (PK_IS_CLIENT (client) && client->priv->error != NULL) {
 				ret = FALSE;
 				if (error != NULL)
 					*error = g_error_copy (client->priv->error);
@@ -2021,7 +2021,7 @@ pk_client_get_depends (PkClient *client, PkBitfield filters, gchar **package_ids
 		/* spin until finished */
 		if (client->priv->synchronous) {
 			g_main_loop_run (client->priv->loop);
-			if (client->priv->error != NULL) {
+			if (PK_IS_CLIENT (client) && client->priv->error != NULL) {
 				ret = FALSE;
 				if (error != NULL)
 					*error = g_error_copy (client->priv->error);
@@ -2107,7 +2107,7 @@ pk_client_download_packages (PkClient *client, gchar **package_ids, const gchar
 		/* spin until finished */
 		if (client->priv->synchronous) {
 			g_main_loop_run (client->priv->loop);
-			if (client->priv->error != NULL) {
+			if (PK_IS_CLIENT (client) && client->priv->error != NULL) {
 				ret = FALSE;
 				if (error != NULL)
 					*error = g_error_copy (client->priv->error);
@@ -2182,7 +2182,7 @@ pk_client_get_packages (PkClient *client, PkBitfield filters, GError **error)
 		/* spin until finished */
 		if (client->priv->synchronous) {
 			g_main_loop_run (client->priv->loop);
-			if (client->priv->error != NULL) {
+			if (PK_IS_CLIENT (client) && client->priv->error != NULL) {
 				ret = FALSE;
 				if (error != NULL)
 					*error = g_error_copy (client->priv->error);
@@ -2319,7 +2319,7 @@ pk_client_get_requires (PkClient *client, PkBitfield filters, gchar **package_id
 		/* spin until finished */
 		if (client->priv->synchronous) {
 			g_main_loop_run (client->priv->loop);
-			if (client->priv->error != NULL) {
+			if (PK_IS_CLIENT (client) && client->priv->error != NULL) {
 				ret = FALSE;
 				if (error != NULL)
 					*error = g_error_copy (client->priv->error);
@@ -2409,7 +2409,7 @@ pk_client_what_provides (PkClient *client, PkBitfield filters, PkProvidesEnum pr
 		/* spin until finished */
 		if (client->priv->synchronous) {
 			g_main_loop_run (client->priv->loop);
-			if (client->priv->error != NULL) {
+			if (PK_IS_CLIENT (client) && client->priv->error != NULL) {
 				ret = FALSE;
 				if (error != NULL)
 					*error = g_error_copy (client->priv->error);
@@ -2496,7 +2496,7 @@ pk_client_get_update_detail (PkClient *client, gchar **package_ids, GError **err
 		/* spin until finished */
 		if (client->priv->synchronous) {
 			g_main_loop_run (client->priv->loop);
-			if (client->priv->error != NULL) {
+			if (PK_IS_CLIENT (client) && client->priv->error != NULL) {
 				ret = FALSE;
 				if (error != NULL)
 					*error = g_error_copy (client->priv->error);
@@ -2570,7 +2570,7 @@ pk_client_rollback (PkClient *client, const gchar *transaction_id, GError **erro
 		/* spin until finished */
 		if (client->priv->synchronous) {
 			g_main_loop_run (client->priv->loop);
-			if (client->priv->error != NULL) {
+			if (PK_IS_CLIENT (client) && client->priv->error != NULL) {
 				ret = FALSE;
 				if (error != NULL)
 					*error = g_error_copy (client->priv->error);
@@ -2651,7 +2651,7 @@ pk_client_resolve (PkClient *client, PkBitfield filters, gchar **packages, GErro
 		/* spin until finished */
 		if (client->priv->synchronous) {
 			g_main_loop_run (client->priv->loop);
-			if (client->priv->error != NULL) {
+			if (PK_IS_CLIENT (client) && client->priv->error != NULL) {
 				ret = FALSE;
 				if (error != NULL)
 					*error = g_error_copy (client->priv->error);
@@ -2738,7 +2738,7 @@ pk_client_get_details (PkClient *client, gchar **package_ids, GError **error)
 		/* spin until finished */
 		if (client->priv->synchronous) {
 			g_main_loop_run (client->priv->loop);
-			if (client->priv->error != NULL) {
+			if (PK_IS_CLIENT (client) && client->priv->error != NULL) {
 				ret = FALSE;
 				if (error != NULL)
 					*error = g_error_copy (client->priv->error);
@@ -2809,7 +2809,7 @@ pk_client_get_distro_upgrades (PkClient *client, GError **error)
 		/* spin until finished */
 		if (client->priv->synchronous) {
 			g_main_loop_run (client->priv->loop);
-			if (client->priv->error != NULL) {
+			if (PK_IS_CLIENT (client) && client->priv->error != NULL) {
 				ret = FALSE;
 				if (error != NULL)
 					*error = g_error_copy (client->priv->error);
@@ -2894,7 +2894,7 @@ pk_client_get_files (PkClient *client, gchar **package_ids, GError **error)
 		/* spin until finished */
 		if (client->priv->synchronous) {
 			g_main_loop_run (client->priv->loop);
-			if (client->priv->error != NULL) {
+			if (PK_IS_CLIENT (client) && client->priv->error != NULL) {
 				ret = FALSE;
 				if (error != NULL)
 					*error = g_error_copy (client->priv->error);
@@ -2988,7 +2988,7 @@ pk_client_remove_packages (PkClient *client, gchar **package_ids, gboolean allow
 		/* spin until finished */
 		if (client->priv->synchronous) {
 			g_main_loop_run (client->priv->loop);
-			if (client->priv->error != NULL) {
+			if (PK_IS_CLIENT (client) && client->priv->error != NULL) {
 				ret = FALSE;
 				if (error != NULL)
 					*error = g_error_copy (client->priv->error);
@@ -3064,7 +3064,7 @@ pk_client_refresh_cache (PkClient *client, gboolean force, GError **error)
 		/* spin until finished */
 		if (client->priv->synchronous) {
 			g_main_loop_run (client->priv->loop);
-			if (client->priv->error != NULL) {
+			if (PK_IS_CLIENT (client) && client->priv->error != NULL) {
 				ret = FALSE;
 				if (error != NULL)
 					*error = g_error_copy (client->priv->error);
@@ -3152,7 +3152,7 @@ pk_client_install_packages (PkClient *client, gboolean only_trusted, gchar **pac
 		/* spin until finished */
 		if (client->priv->synchronous) {
 			g_main_loop_run (client->priv->loop);
-			if (client->priv->error != NULL) {
+			if (PK_IS_CLIENT (client) && client->priv->error != NULL) {
 				ret = FALSE;
 				if (error != NULL)
 					*error = g_error_copy (client->priv->error);
@@ -3234,7 +3234,7 @@ pk_client_install_signature (PkClient *client, PkSigTypeEnum type, const gchar *
 		/* spin until finished */
 		if (client->priv->synchronous) {
 			g_main_loop_run (client->priv->loop);
-			if (client->priv->error != NULL) {
+			if (PK_IS_CLIENT (client) && client->priv->error != NULL) {
 				ret = FALSE;
 				if (error != NULL)
 					*error = g_error_copy (client->priv->error);
@@ -3326,7 +3326,7 @@ pk_client_update_packages (PkClient *client, gboolean only_trusted, gchar **pack
 		/* spin until finished */
 		if (client->priv->synchronous) {
 			g_main_loop_run (client->priv->loop);
-			if (client->priv->error != NULL) {
+			if (PK_IS_CLIENT (client) && client->priv->error != NULL) {
 				ret = FALSE;
 				if (error != NULL)
 					*error = g_error_copy (client->priv->error);
@@ -3450,7 +3450,7 @@ pk_client_install_files (PkClient *client, gboolean only_trusted, gchar **files_
 		/* spin until finished */
 		if (client->priv->synchronous) {
 			g_main_loop_run (client->priv->loop);
-			if (client->priv->error != NULL) {
+			if (PK_IS_CLIENT (client) && client->priv->error != NULL) {
 				ret = FALSE;
 				if (error != NULL)
 					*error = g_error_copy (client->priv->error);
@@ -3525,7 +3525,7 @@ pk_client_get_repo_list (PkClient *client, PkBitfield filters, GError **error)
 		/* spin until finished */
 		if (client->priv->synchronous) {
 			g_main_loop_run (client->priv->loop);
-			if (client->priv->error != NULL) {
+			if (PK_IS_CLIENT (client) && client->priv->error != NULL) {
 				ret = FALSE;
 				if (error != NULL)
 					*error = g_error_copy (client->priv->error);
@@ -3599,7 +3599,7 @@ pk_client_accept_eula (PkClient *client, const gchar *eula_id, GError **error)
 		/* spin until finished */
 		if (client->priv->synchronous) {
 			g_main_loop_run (client->priv->loop);
-			if (client->priv->error != NULL) {
+			if (PK_IS_CLIENT (client) && client->priv->error != NULL) {
 				ret = FALSE;
 				if (error != NULL)
 					*error = g_error_copy (client->priv->error);
@@ -3674,7 +3674,7 @@ pk_client_repo_enable (PkClient *client, const gchar *repo_id, gboolean enabled,
 		/* spin until finished */
 		if (client->priv->synchronous) {
 			g_main_loop_run (client->priv->loop);
-			if (client->priv->error != NULL) {
+			if (PK_IS_CLIENT (client) && client->priv->error != NULL) {
 				ret = FALSE;
 				if (error != NULL)
 					*error = g_error_copy (client->priv->error);
@@ -3755,7 +3755,7 @@ pk_client_repo_set_data (PkClient *client, const gchar *repo_id, const gchar *pa
 		/* spin until finished */
 		if (client->priv->synchronous) {
 			g_main_loop_run (client->priv->loop);
-			if (client->priv->error != NULL) {
+			if (PK_IS_CLIENT (client) && client->priv->error != NULL) {
 				ret = FALSE;
 				if (error != NULL)
 					*error = g_error_copy (client->priv->error);
@@ -4157,7 +4157,7 @@ pk_client_get_old_transactions (PkClient *client, guint number, GError **error)
 		/* spin until finished */
 		if (client->priv->synchronous) {
 			g_main_loop_run (client->priv->loop);
-			if (client->priv->error != NULL) {
+			if (PK_IS_CLIENT (client) && client->priv->error != NULL) {
 				ret = FALSE;
 				if (error != NULL)
 					*error = g_error_copy (client->priv->error);
commit 15a5cdd38f48fb4b047e32c0f803d83b5492c088
Author: Daniel Nicoletti <dantti85-pk at yahoo.com.br>
Date:   Mon Aug 24 13:51:32 2009 +0100

    Add the InfoReinstalling enum type
    
    Signed-off-by: Richard Hughes <richard at hughsie.com>

diff --git a/client/pk-console.c b/client/pk-console.c
index 2bd7cea..3d51572 100644
--- a/client/pk-console.c
+++ b/client/pk-console.c
@@ -859,15 +859,18 @@ pk_console_print_deps_list (PkPackageList *list)
 {
 	guint found = 0;
 
-	/* TRANSLATORS: When removing, we might have to remove other dependencies */
+	/* TRANSLATORS: When processing, we might have to remove other dependencies */
 	found += pk_console_print_deps_list_info (list, PK_INFO_ENUM_REMOVING, _("The following packages have to be removed:"));
 
-	/* TRANSLATORS: When removing, we might have to install other dependencies */
+	/* TRANSLATORS: When processing, we might have to install other dependencies */
 	found += pk_console_print_deps_list_info (list, PK_INFO_ENUM_INSTALLING, _("The following packages have to be installed:"));
 
-	/* TRANSLATORS: When removing, we might have to update other dependencies */
+	/* TRANSLATORS: When processing, we might have to update other dependencies */
 	found += pk_console_print_deps_list_info (list, PK_INFO_ENUM_UPDATING, _("The following packages have to be updated:"));
 
+	/* TRANSLATORS: When processing, we might have to reinstall other dependencies */
+	found += pk_console_print_deps_list_info (list, PK_INFO_ENUM_REINSTALLING, _("The following packages have to be reinstalled:"));
+
 	return found;
 }
 
diff --git a/lib/packagekit-glib/pk-enum.c b/lib/packagekit-glib/pk-enum.c
index 41eef4f..eb58450 100644
--- a/lib/packagekit-glib/pk-enum.c
+++ b/lib/packagekit-glib/pk-enum.c
@@ -322,6 +322,7 @@ static const PkEnumMatch enum_info[] = {
 	{PK_INFO_ENUM_COLLECTION_INSTALLED,	"collection-installed"},
 	{PK_INFO_ENUM_COLLECTION_AVAILABLE,	"collection-available"},
 	{PK_INFO_ENUM_FINISHED,			"finished"},
+	{PK_INFO_ENUM_REINSTALLING,		"reinstalling"},
 	{0, NULL}
 };
 
diff --git a/lib/packagekit-glib/pk-enum.h b/lib/packagekit-glib/pk-enum.h
index 2542ce8..ab10470 100644
--- a/lib/packagekit-glib/pk-enum.h
+++ b/lib/packagekit-glib/pk-enum.h
@@ -394,6 +394,7 @@ typedef enum {
 	PK_INFO_ENUM_COLLECTION_INSTALLED,
 	PK_INFO_ENUM_COLLECTION_AVAILABLE,
 	PK_INFO_ENUM_FINISHED,
+	PK_INFO_ENUM_REINSTALLING,
 	PK_INFO_ENUM_UNKNOWN
 } PkInfoEnum;
 
diff --git a/lib/packagekit-qt/src/package.h b/lib/packagekit-qt/src/package.h
index 6385c8e..d859f69 100644
--- a/lib/packagekit-qt/src/package.h
+++ b/lib/packagekit-qt/src/package.h
@@ -102,6 +102,7 @@ public:
 		StateCollectionInstalled,
 		StateCollectionAvailable,
 		StateFinished,
+		StateReinstalling,
 		UnknownState
 	} State;
 	/**
commit de681b7a8746c833fde233f5f41004e246eb405a
Author: Richard Hughes <richard at hughsie.com>
Date:   Mon Aug 24 13:05:18 2009 +0100

    Print the different types of action from simulate with a different list prefix
    
    Inspired from a patch by Daniel Nicoletti, many thanks.

diff --git a/client/pk-console.c b/client/pk-console.c
index 8d81004..2bd7cea 100644
--- a/client/pk-console.c
+++ b/client/pk-console.c
@@ -820,6 +820,58 @@ pk_console_remove_only (PkClient *client, gchar **package_ids, gboolean force, G
 }
 
 /**
+ * pk_console_print_deps_list_info:
+ **/
+static guint
+pk_console_print_deps_list_info (PkPackageList *list, PkInfoEnum info, const gchar *header)
+{
+	const PkPackageObj *obj;
+	gboolean ret = FALSE;
+	guint found = 0;
+	guint i;
+	guint length;
+
+	length = pk_package_list_get_size (list);
+	for (i=0; i<length; i++) {
+		obj = pk_package_list_get_obj (list, i);
+
+		/* are we interested in this type */
+		if (obj->info != info)
+			continue;
+
+		/* print header if it's not been done before */
+		if (!ret) {
+			g_print ("%s\n", header);
+			ret = TRUE;
+		}
+
+		/* print package */
+		g_print ("%i\t%s-%s.%s\n", ++found, obj->id->name, obj->id->version, obj->id->arch);
+	}
+	return found;
+}
+
+/**
+ * pk_console_print_deps_list:
+ **/
+static guint
+pk_console_print_deps_list (PkPackageList *list)
+{
+	guint found = 0;
+
+	/* TRANSLATORS: When removing, we might have to remove other dependencies */
+	found += pk_console_print_deps_list_info (list, PK_INFO_ENUM_REMOVING, _("The following packages have to be removed:"));
+
+	/* TRANSLATORS: When removing, we might have to install other dependencies */
+	found += pk_console_print_deps_list_info (list, PK_INFO_ENUM_INSTALLING, _("The following packages have to be installed:"));
+
+	/* TRANSLATORS: When removing, we might have to update other dependencies */
+	found += pk_console_print_deps_list_info (list, PK_INFO_ENUM_UPDATING, _("The following packages have to be updated:"));
+
+	return found;
+}
+
+/**
  * pk_console_remove_packages:
  **/
 static gboolean
@@ -827,7 +879,6 @@ pk_console_remove_packages (PkClient *client, gchar **packages, GError **error)
 {
 	gchar *package_id;
 	gboolean ret = TRUE;
-	const PkPackageObj *obj;
 	guint i;
 	guint length;
 	gboolean remove_deps;
@@ -916,20 +967,16 @@ pk_console_remove_packages (PkClient *client, gchar **packages, GError **error)
 	if (awaiting_space)
 		g_print ("\n");
 
-	/* TRANSLATORS: When removing, we might have to remove other dependencies */
-	g_print ("%s\n", _("The following packages have to be removed:"));
-	for (i=0; i<length; i++) {
-		obj = pk_package_list_get_obj (list, i);
-		g_print ("%i\t%s-%s.%s\n", i, obj->id->name, obj->id->version, obj->id->arch);
-	}
+	/* print the additional deps to the screen */
+	pk_console_print_deps_list (list);
 
 	/* TRANSLATORS: We are checking if it's okay to remove a list of packages */
-	remove_deps = pk_console_get_prompt (_("Proceed removing additional packages?"), FALSE);
+	remove_deps = pk_console_get_prompt (_("Proceed with additional packages?"), FALSE);
 
 	/* we chickened out */
 	if (!remove_deps) {
-		/* TRANSLATORS: We did not remove any packages */
-		g_print ("%s\n", _("The package removal was canceled!"));
+		/* TRANSLATORS: There was an error removing the packages. The detailed error follows */
+		*error = g_error_new (1, 0, "%s", _("The package removal was canceled!"));
 		ret = FALSE;
 		goto out;
 	}
commit df946fe6ac1598774e89c0662315bfea4e2c4209
Author: Daniel Nicoletti <dantti85-pk at yahoo.com.br>
Date:   Mon Aug 24 12:44:17 2009 +0100

    Fixup the package types if we are emulating the simulate methods
    
    Signed-off-by: Richard Hughes <richard at hughsie.com>

diff --git a/src/pk-backend.c b/src/pk-backend.c
index 680d10e..0e6955d 100644
--- a/src/pk-backend.c
+++ b/src/pk-backend.c
@@ -888,6 +888,19 @@ pk_backend_package (PkBackend *backend, PkInfoEnum info, const gchar *package_id
 		ret = FALSE;
 		goto out;
 	}
+
+	/* fix up available and installed when doing simulate roles */
+	if (backend->priv->role == PK_ROLE_ENUM_SIMULATE_INSTALL_FILES ||
+	    backend->priv->role == PK_ROLE_ENUM_SIMULATE_INSTALL_PACKAGES ||
+	    backend->priv->role == PK_ROLE_ENUM_SIMULATE_REMOVE_PACKAGES ||
+	    backend->priv->role == PK_ROLE_ENUM_SIMULATE_UPDATE_PACKAGES) {
+		if (info == PK_INFO_ENUM_AVAILABLE)
+			info = PK_INFO_ENUM_INSTALLING;
+		else if (info == PK_INFO_ENUM_INSTALLED)
+			info = PK_INFO_ENUM_REMOVING;
+	}
+
+	/* create a new package object AFTER we emulate the info value */
 	obj = pk_package_obj_new (info, id, summary_safe);
 	if (obj == NULL) {
 		egg_warning ("Failed to create object summary: '%s'", summary_safe);
commit 400ae048918077c5e5554e0b5f7d52830e0f9ffb
Author: Richard Hughes <richard at hughsie.com>
Date:   Mon Aug 24 12:40:08 2009 +0100

    When we fall back to legacy methods for simulate, filter only the newest packages

diff --git a/src/pk-transaction.c b/src/pk-transaction.c
index 316e37d..6a80e63 100644
--- a/src/pk-transaction.c
+++ b/src/pk-transaction.c
@@ -1218,6 +1218,7 @@ pk_transaction_set_running (PkTransaction *transaction)
 	GError *error = NULL;
 	PkBackendDesc *desc;
 	PkStore *store;
+	PkBitfield filters;
 	PkTransactionPrivate *priv = PK_TRANSACTION_GET_PRIVATE (transaction);
 	g_return_val_if_fail (PK_IS_TRANSACTION (transaction), FALSE);
 	g_return_val_if_fail (transaction->priv->tid != NULL, FALSE);
@@ -1400,22 +1401,28 @@ pk_transaction_set_running (PkTransaction *transaction)
 	else if (priv->role == PK_ROLE_ENUM_SIMULATE_INSTALL_FILES)
 		desc->simulate_install_files (priv->backend, priv->cached_package_ids);
 	else if (priv->role == PK_ROLE_ENUM_SIMULATE_INSTALL_PACKAGES) {
+		/* fallback to a method we do have */
 		if (desc->simulate_install_packages != NULL) {
 			desc->simulate_install_packages (priv->backend, priv->cached_package_ids);
 		} else {
-			desc->get_depends (priv->backend, PK_FILTER_ENUM_NOT_INSTALLED, priv->cached_package_ids, TRUE);
+			filters = pk_bitfield_from_enums (PK_FILTER_ENUM_NOT_INSTALLED, PK_FILTER_ENUM_NEWEST, -1);
+			desc->get_depends (priv->backend, filters, priv->cached_package_ids, TRUE);
 		}
 	} else if (priv->role == PK_ROLE_ENUM_SIMULATE_REMOVE_PACKAGES) {
+		/* fallback to a method we do have */
 		if (desc->simulate_remove_packages != NULL) {
 			desc->simulate_remove_packages (priv->backend, priv->cached_package_ids);
 		} else {
-			desc->get_requires (priv->backend, PK_FILTER_ENUM_INSTALLED, priv->cached_package_ids, TRUE);
+			filters = pk_bitfield_from_enums (PK_FILTER_ENUM_INSTALLED, PK_FILTER_ENUM_NEWEST, -1);
+			desc->get_requires (priv->backend, filters, priv->cached_package_ids, TRUE);
 		}
 	} else if (priv->role == PK_ROLE_ENUM_SIMULATE_UPDATE_PACKAGES) {
+		/* fallback to a method we do have */
 		if (desc->simulate_update_packages != NULL) {
 			desc->simulate_update_packages (priv->backend, priv->cached_package_ids);
 		} else {
-			desc->get_depends (priv->backend, PK_FILTER_ENUM_NOT_INSTALLED, priv->cached_package_ids, TRUE);
+			filters = pk_bitfield_from_enums (PK_FILTER_ENUM_NOT_INSTALLED, PK_FILTER_ENUM_NEWEST, -1);
+			desc->get_depends (priv->backend, filters, priv->cached_package_ids, TRUE);
 		}
 	} else {
 		egg_error ("failed to run as role not assigned");
commit 0ca33277112b2f8dd4075441f238631cc901f5c0
Author: Anders F Bjorklund <afb at users.sourceforge.net>
Date:   Mon Aug 24 13:30:44 2009 +0200

    add FreeBSD distro ID

diff --git a/lib/packagekit-glib/pk-common.c b/lib/packagekit-glib/pk-common.c
index 2e737aa..83d0c28 100644
--- a/lib/packagekit-glib/pk-common.c
+++ b/lib/packagekit-glib/pk-common.c
@@ -48,6 +48,24 @@
 #include "egg-string.h"
 
 /**
+ * pk_get_os_release:
+ *
+ * Return value: The current OS release, e.g. "7.2-RELEASE"
+ * Note: Don't use this function if you can get this data from /etc/foo
+ **/
+static gchar *
+pk_get_os_release (void)
+{
+	gint retval;
+	struct utsname buf;
+
+	retval = uname (&buf);
+	if (retval != 0)
+		return g_strdup ("unknown");
+	return g_strdup (buf.release);
+}
+
+/**
  * pk_get_machine_type:
  *
  * Return value: The current machine ID, e.g. "i386"
@@ -195,6 +213,29 @@ pk_get_distro_id (void)
 		goto out;
 	}
 
+#ifdef __FreeBSD__
+        {
+		/* we can't get version from /etc */
+		version = pk_get_os_release ();
+		if (version == NULL)
+			goto out;
+
+		/* 7.2-RELEASE */
+		split = g_strsplit (version, "-", 0);
+		if (split == NULL)
+			goto out;
+
+		/* we can't get arch from /etc */
+		arch = pk_get_machine_type ();
+		if (arch == NULL)
+			goto out;
+
+		/* complete! */
+		distro = g_strdup_printf ("freebsd-%s-%s", split[0], arch);
+		goto out;
+	}
+#endif
+
 out:
 	g_strfreev (split);
 	g_free (version);
commit 5b481487258cb1a92467473fdde361fc1c55451d
Merge: 827e05d... 514e1c8...
Author: Anders F Bjorklund <afb at users.sourceforge.net>
Date:   Mon Aug 24 13:14:38 2009 +0200

    Merge branch 'master' of git+ssh://afb@git.packagekit.org/srv/git/PackageKit

commit 514e1c8e60aadd7ff54da76eab3538ed978518dc
Author: Richard Hughes <richard at hughsie.com>
Date:   Mon Aug 24 11:08:54 2009 +0100

    Refresh the translations

diff --git a/po/as.po b/po/as.po
index a1bbe4b..e2e165a 100644
--- a/po/as.po
+++ b/po/as.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: packagekit.master.PackageKit.as\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-04-23 02:18+0000\n"
+"POT-Creation-Date: 2009-08-24 11:06+0100\n"
 "PO-Revision-Date: 2009-04-23 11:39+0530\n"
 "Last-Translator: Amitakhya Phukan <aphukan at fedoraproject.org>\n"
 "Language-Team: Assamese <fedora-trans-as at redhat.com>\n"
@@ -17,230 +17,264 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
 
 #. TRANSLATORS: this is an atomic transaction
-#: ../client/pk-console.c:234
+#: ../client/pk-console.c:235
 msgid "Transaction"
 msgstr "লেন-দেন"
 
 #. TRANSLATORS: this is the time the transaction was started in system timezone
-#: ../client/pk-console.c:236
+#: ../client/pk-console.c:237
 msgid "System time"
 msgstr "ব্যৱস্থাপ্ৰণালীৰ সময়"
 
 #. TRANSLATORS: this is if the transaction succeeded or not
-#: ../client/pk-console.c:238
+#: ../client/pk-console.c:239
 msgid "Succeeded"
 msgstr "সফল হ'ল"
 
 #. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:238 ../client/pk-console.c:405
+#: ../client/pk-console.c:239 ../client/pk-console.c:406
 msgid "True"
 msgstr "True"
 
-#: ../client/pk-console.c:238 ../client/pk-console.c:405
+#: ../client/pk-console.c:239 ../client/pk-console.c:406
 msgid "False"
 msgstr "False"
 
 #. TRANSLATORS: this is the transactions role, e.g. "update-system"
-#: ../client/pk-console.c:240
+#. TRANSLATORS: the trasaction role, e.g. update-system
+#: ../client/pk-console.c:241 ../src/pk-polkit-action-lookup.c:327
 msgid "Role"
 msgstr "ভূমিকা"
 
 #. TRANSLATORS: this is The duration of the transaction
-#: ../client/pk-console.c:245
+#: ../client/pk-console.c:246
 msgid "Duration"
 msgstr "কালাৱধি"
 
-#: ../client/pk-console.c:245
+#: ../client/pk-console.c:246
 msgid "(seconds)"
 msgstr "(ছেকেণ্ড)"
 
 #. TRANSLATORS: this is The command line used to do the action
-#: ../client/pk-console.c:249
+#. TRANSLATORS: the command line of the thing that wants the authentication
+#: ../client/pk-console.c:250 ../src/pk-polkit-action-lookup.c:341
 msgid "Command line"
 msgstr "আদেশ শাৰী"
 
 #. TRANSLATORS: this is the user ID of the user that started the action
-#: ../client/pk-console.c:251
+#: ../client/pk-console.c:252
 msgid "User ID"
 msgstr "ব্যৱহাৰকৰ্তাৰ ID"
 
 #. TRANSLATORS: this is the username, e.g. hughsie
-#: ../client/pk-console.c:258
+#: ../client/pk-console.c:259
 msgid "Username"
 msgstr "ব্যৱহাৰকৰ্তাৰ নাম"
 
 #. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
-#: ../client/pk-console.c:262
+#: ../client/pk-console.c:263
 msgid "Real name"
 msgstr "প্ৰকৃত নাম"
 
-#: ../client/pk-console.c:270
+#: ../client/pk-console.c:271
 msgid "Affected packages:"
 msgstr "প্ৰভাৱিত সৰঞ্জাম:"
 
-#: ../client/pk-console.c:272
+#: ../client/pk-console.c:273
 msgid "Affected packages: None"
 msgstr "প্ৰভাৱিত সৰঞ্জাম: কোনো নাই"
 
 #. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:297
+#: ../client/pk-console.c:298
 msgid "Distribution"
 msgstr "বিতৰণ "
 
 #. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:299
+#: ../client/pk-console.c:300
 msgid "Type"
 msgstr "ধৰণ"
 
 #. TRANSLATORS: this is any summary text describing the upgrade
 #. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:301 ../client/pk-console.c:324
+#: ../client/pk-console.c:302 ../client/pk-console.c:325
 msgid "Summary"
 msgstr "সাৰাংশ"
 
 #. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:313
+#: ../client/pk-console.c:314
 msgid "Category"
 msgstr "বিভাগ"
 
 #. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:315
+#: ../client/pk-console.c:316
 msgid "ID"
 msgstr "ID"
 
 #. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:318
+#: ../client/pk-console.c:319
 msgid "Parent"
 msgstr "পেৰেন্ট"
 
 #. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:321
+#: ../client/pk-console.c:322
 msgid "Name"
 msgstr "নাম"
 
 #. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:327
+#: ../client/pk-console.c:328
 msgid "Icon"
 msgstr "আইকন"
 
 #. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:342
+#: ../client/pk-console.c:343
 msgid "Details about the update:"
 msgstr "উন্নয়নৰ বিৱৰণ:"
 
 #. TRANSLATORS: details about the update, package name and version
-#: ../client/pk-console.c:344
+#. TRANSLATORS: title, the names of the packages that the method is processing
+#: ../client/pk-console.c:345 ../src/pk-polkit-action-lookup.c:352
+#, fuzzy
 msgid "Package"
-msgstr "সৰঞ্জাম"
+msgid_plural "Packages"
+msgstr[0] "সৰঞ্জাম"
+msgstr[1] "সৰঞ্জাম"
 
 #. TRANSLATORS: details about the update, any packages that this update updates
-#: ../client/pk-console.c:347
+#: ../client/pk-console.c:348
 msgid "Updates"
 msgstr "ব্যৱস্থাপ্ৰণালী বৰ্ত্তমানলৈ অনা তথ্য"
 
 #. TRANSLATORS: details about the update, any packages that this update obsoletes
-#: ../client/pk-console.c:351
+#: ../client/pk-console.c:352
 msgid "Obsoletes"
 msgstr "অপ্ৰচলিত"
 
 #. TRANSLATORS: details about the update, the vendor URLs
-#: ../client/pk-console.c:355
+#: ../client/pk-console.c:356
 msgid "Vendor"
 msgstr "বিক্ৰেতা"
 
 #. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:359
+#: ../client/pk-console.c:360
 msgid "Bugzilla"
 msgstr "Bugzilla"
 
 #. TRANSLATORS: details about the update, the CVE URLs
-#: ../client/pk-console.c:363
+#: ../client/pk-console.c:364
 msgid "CVE"
 msgstr "CVE"
 
 #. TRANSLATORS: details about the update, if the package requires a restart
-#: ../client/pk-console.c:367
+#: ../client/pk-console.c:368
 msgid "Restart"
 msgstr "পুনৰাৰম্ভ"
 
 #. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:371
+#: ../client/pk-console.c:372
 msgid "Update text"
 msgstr "টেক্সট উন্নত কৰক"
 
 #. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:375
+#: ../client/pk-console.c:376
 msgid "Changes"
 msgstr "সলনিবোৰ"
 
 #. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:379
+#: ../client/pk-console.c:380
 msgid "State"
 msgstr "অৱস্থা"
 
 #. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:384
+#: ../client/pk-console.c:385
 msgid "Issued"
 msgstr "প্ৰদান কৰা হ'ল"
 
 #. TRANSLATORS: details about the update, date the update was updated
-#: ../client/pk-console.c:389
+#: ../client/pk-console.c:390
 msgid "Updated"
 msgstr "উন্নত কৰা হ'ল"
 
-#: ../client/pk-console.c:476 ../client/pk-console.c:478
+#: ../client/pk-console.c:477 ../client/pk-console.c:479
 msgid "Percentage"
 msgstr "শতাংশ"
 
-#: ../client/pk-console.c:478
+#: ../client/pk-console.c:479
 msgid "Unknown"
 msgstr "অজ্ঞাত"
 
 #. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:529
+#: ../client/pk-console.c:521
 msgid "System restart required by:"
 msgstr "-ৰ দ্বাৰা ব্যৱস্থাপ্ৰণালীৰ পুনৰাৰম্ভৰ প্ৰয়োজন:"
 
 #. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:532
+#: ../client/pk-console.c:524
 msgid "Session restart required:"
 msgstr "অধিবেশনৰ পুনৰাৰম্ভৰ প্ৰয়োজন:"
 
+#. TRANSLATORS: a package requires the system to be restarted due to a security update
+#: ../client/pk-console.c:527
+#, fuzzy
+msgid "System restart (security) required by:"
+msgstr "-ৰ দ্বাৰা ব্যৱস্থাপ্ৰণালীৰ পুনৰাৰম্ভৰ প্ৰয়োজন:"
+
+#. TRANSLATORS: a package requires the session to be restarted due to a security update
+#: ../client/pk-console.c:530
+#, fuzzy
+msgid "Session restart (security) required:"
+msgstr "অধিবেশনৰ পুনৰাৰম্ভৰ প্ৰয়োজন:"
+
 #. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:535
+#: ../client/pk-console.c:533
 msgid "Application restart required by:"
 msgstr "-ৰ দ্বাৰা অনুপ্ৰয়োগৰ পুনৰাৰম্ভৰ প্ৰয়োজন: "
 
-#. TRANSLATORS: a package needs to restart they system
-#: ../client/pk-console.c:572
+#. TRANSLATORS: a package needs to restart their system
+#: ../client/pk-console.c:588
 msgid "Please restart the computer to complete the update."
 msgstr "উন্নয়ন সম্পূৰ্ণ কৰিবলৈ অনুগ্ৰহ কৰি কম্পিউটাৰ পুনৰাৰম্ভ কৰক ।"
 
 #. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:575
+#: ../client/pk-console.c:591
 msgid "Please logout and login to complete the update."
 msgstr "উন্নয়ন সম্পূৰ্ণ কৰিবলৈ প্ৰস্থান কৰি প্ৰৱেশ কৰক ।"
 
 #. TRANSLATORS: a package needs to restart the application
-#: ../client/pk-console.c:578
+#: ../client/pk-console.c:594
 msgid "Please restart the application as it is being used."
 msgstr "ব্যৱহাৰ কৰাৰ সময়ত অনুপ্ৰয়োগ পুনৰাৰম্ভ কৰক ।"
 
+#. TRANSLATORS: a package needs to restart their system (due to security)
+#: ../client/pk-console.c:597
+#, fuzzy
+msgid ""
+"Please restart the computer to complete the update as important security "
+"updates have been installed."
+msgstr "উন্নয়ন সম্পূৰ্ণ কৰিবলৈ অনুগ্ৰহ কৰি কম্পিউটাৰ পুনৰাৰম্ভ কৰক ।"
+
+#. TRANSLATORS: a package needs to restart the session (due to security)
+#: ../client/pk-console.c:600
+#, fuzzy
+msgid ""
+"Please logout and login to complete the update as important security updates "
+"have been installed."
+msgstr "উন্নয়ন সম্পূৰ্ণ কৰিবলৈ প্ৰস্থান কৰি প্ৰৱেশ কৰক ।"
+
 #. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:691
+#: ../client/pk-console.c:727
 #, c-format
 msgid "The package %s is already installed"
 msgstr "%s সৰঞ্জাম ইতিমধ্যে সংস্থাপিত"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:699
+#: ../client/pk-console.c:735
 #, c-format
 msgid "The package %s could not be installed: %s"
 msgstr "%s সৰঞ্জাম সংস্থাপন কৰিব নোৱাৰি: %s"
 
 #. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
-#: ../client/pk-console.c:724 ../client/pk-console.c:751
-#: ../client/pk-console.c:847 ../client/pk-console.c:964
+#: ../client/pk-console.c:760 ../client/pk-console.c:783
+#: ../client/pk-console.c:879 ../client/pk-console.c:996
 #: ../client/pk-tools-common.c:62 ../client/pk-tools-common.c:81
 #: ../client/pk-tools-common.c:89
 #, c-format
@@ -248,400 +282,404 @@ msgid "Internal error: %s"
 msgstr "অভ্যন্তৰীণ ত্ৰুটি: %s"
 
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:732 ../client/pk-console.c:1360
+#: ../client/pk-console.c:768 ../client/pk-console.c:1392
 #, c-format
 msgid "This tool could not install the packages: %s"
 msgstr "এই সৰঞ্জামে সৰঞ্জামসমূহ সংস্থাপন কৰিব নোৱাৰিলে: %s"
 
 #. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:759
+#: ../client/pk-console.c:791
 #, c-format
 msgid "This tool could not install the files: %s"
 msgstr "এই সৰঞ্জামে নথিপত্ৰসমূহ সংস্থাপন কৰিব নোৱাৰিলে: %s"
 
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:815
+#: ../client/pk-console.c:847
 #, c-format
 msgid "This tool could not remove %s: %s"
 msgstr "এই সৰঞ্জামে %s ক আঁতৰাব নোৱাৰিলে: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:838 ../client/pk-console.c:876
-#: ../client/pk-console.c:909
+#: ../client/pk-console.c:870 ../client/pk-console.c:908
+#: ../client/pk-console.c:941
 #, c-format
 msgid "This tool could not remove the packages: %s"
 msgstr "এই সৰঞ্জামে সৰঞ্জামসমূহ আঁতৰাব নোৱাৰিলে: %s"
 
 #. TRANSLATORS: When removing, we might have to remove other dependencies
-#: ../client/pk-console.c:888
+#: ../client/pk-console.c:920
 msgid "The following packages have to be removed:"
 msgstr "তলৰ সৰঞ্জামসমূহ আঁতৰাব লাগিব:"
 
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:895
+#: ../client/pk-console.c:927
 msgid "Proceed removing additional packages?"
 msgstr "অতিৰিক্ত সৰঞ্জাম আঁতৰুৱা কামত আগবাঢ়োঁ ?"
 
 #. TRANSLATORS: We did not remove any packages
-#: ../client/pk-console.c:900
+#: ../client/pk-console.c:932
 msgid "The package removal was canceled!"
 msgstr "সৰঞ্জামৰ আঁতৰুৱা বাতিল কৰা হ'ল!"
 
 #. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:941
+#: ../client/pk-console.c:973
 #, c-format
 msgid "This tool could not download the package %s as it could not be found"
 msgstr "এই সৰঞ্জামে %s সৰঞ্জাম ডাউন্‌লোড কৰিব নোৱাৰিলে কাৰণ তাক পোৱা ন'গ'ল"
 
 #. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:972
+#: ../client/pk-console.c:1004
 #, c-format
 msgid "This tool could not download the packages: %s"
 msgstr "এই সৰঞ্জামে সৰঞ্জামসমূহ ডাউন্‌লোড কৰিব নোৱাৰিলে: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:999 ../client/pk-console.c:1008
+#: ../client/pk-console.c:1031 ../client/pk-console.c:1040
 #, c-format
 msgid "This tool could not update %s: %s"
 msgstr "এই সৰঞ্জামে %s উন্নত কৰিব নোৱাৰিলে: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1030 ../client/pk-console.c:1038
+#: ../client/pk-console.c:1062 ../client/pk-console.c:1070
 #, c-format
 msgid "This tool could not get the requirements for %s: %s"
 msgstr "এই সৰঞ্জামে %s ৰ প্ৰয়োজনতা নাপালে: %s"
 
 #. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:1060 ../client/pk-console.c:1068
+#: ../client/pk-console.c:1092 ../client/pk-console.c:1100
 #, c-format
 msgid "This tool could not get the dependencies for %s: %s"
 msgstr "এই সৰঞ্জামে %s ৰ নিৰ্ভৰতা নাপালে: %s"
 
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:1090 ../client/pk-console.c:1098
+#: ../client/pk-console.c:1122 ../client/pk-console.c:1130
 #, c-format
 msgid "This tool could not get package details for %s: %s"
 msgstr "এই সৰঞ্জামে %s ৰ কাৰণে সৰঞ্জামৰ বিৱৰণ নাপালে: %s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1120
+#: ../client/pk-console.c:1152
 #, c-format
 msgid "This tool could not find the files for %s: %s"
 msgstr "এই সৰঞ্জামে %s ৰ কাৰণে নথিপত্ৰ বিচাৰি নাপালে: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1128
+#: ../client/pk-console.c:1160
 #, c-format
 msgid "This tool could not get the file list for %s: %s"
 msgstr "এই সৰঞ্জামে %s ৰ কাৰণে নথিপত্ৰৰ তালিকা বিচাৰি নাপালে: %s"
 
 #. TRANSLATORS: There was an error getting the list of packages. The filename follows
-#: ../client/pk-console.c:1150
+#: ../client/pk-console.c:1182
 #, c-format
 msgid "File already exists: %s"
 msgstr "নথিপত্ৰ ইতিমধ্যে আছে: %s"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1155 ../client/pk-console.c:1211
-#: ../client/pk-console.c:1286
+#: ../client/pk-console.c:1187 ../client/pk-console.c:1243
+#: ../client/pk-console.c:1318
 msgid "Getting package list"
 msgstr "সৰঞ্জামৰ তালিকা প্ৰাপ্ত কৰা হৈছে"
 
 #. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1161 ../client/pk-console.c:1217
-#: ../client/pk-console.c:1292
+#: ../client/pk-console.c:1193 ../client/pk-console.c:1249
+#: ../client/pk-console.c:1324
 #, c-format
 msgid "This tool could not get package list: %s"
 msgstr "এই সৰঞ্জামে সৰঞ্জামৰ তালিকা নাপালে: %s"
 
 #. TRANSLATORS: There was an error saving the list
-#: ../client/pk-console.c:1172
+#: ../client/pk-console.c:1204
 #, c-format
 msgid "Failed to save to disk"
 msgstr "ডিষ্কলৈ ৰক্ষা কৰিব নোৱাৰি"
 
 #. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1206 ../client/pk-console.c:1281
+#: ../client/pk-console.c:1238 ../client/pk-console.c:1313
 #, c-format
 msgid "File does not exist: %s"
 msgstr "নথিপত্ৰ নাই: %s"
 
 #. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1238
+#: ../client/pk-console.c:1270
 msgid "Packages to add"
 msgstr "যোগ কৰিব লগা সৰঞ্জাম"
 
 #. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1246
+#: ../client/pk-console.c:1278
 msgid "Packages to remove"
 msgstr "আঁতৰাব লগা সৰঞ্জাম"
 
 #. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1314
+#: ../client/pk-console.c:1346
 #, c-format
 msgid "No new packages need to be installed"
 msgstr "নতুন সৰঞ্জাম সংস্থাপন কৰাৰ প্ৰয়োজন নাই"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1320
+#: ../client/pk-console.c:1352
 msgid "To install"
 msgstr "সংস্থাপন কৰিব লগা"
 
 #. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1332
+#: ../client/pk-console.c:1364
 msgid "Searching for package: "
 msgstr "সৰঞ্জাম বিচৰা হৈছে: "
 
 #. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1336
+#: ../client/pk-console.c:1368
 msgid "not found."
 msgstr "পোৱা নাযায় ।"
 
 #. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1347
+#: ../client/pk-console.c:1379
 #, c-format
 msgid "No packages can be found to install"
 msgstr "সংস্থাপন কৰিবলৈ একো সৰঞ্জাম পোৱা নাযায়"
 
 #. TRANSLATORS: installing new packages from package list
-#: ../client/pk-console.c:1353
+#. TRANSLATORS: we are now installing the debuginfo packages we found earlier
+#: ../client/pk-console.c:1385
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:886
+#, c-format
 msgid "Installing packages"
 msgstr "সৰঞ্জাম সংস্থাপন কৰা হৈছে"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1389
+#: ../client/pk-console.c:1421
 #, c-format
 msgid "This tool could not find the update details for %s: %s"
 msgstr "এই সৰঞ্জামে %s ৰ উন্নয়নৰ বিৱৰণ নাপালে: %s"
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1397
+#: ../client/pk-console.c:1429
 #, c-format
 msgid "This tool could not get the update details for %s: %s"
 msgstr "এই সৰঞ্জামে %s ৰ উন্নয়নৰ বিৱৰণ নাপালে: %s"
 
 #. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
-#: ../client/pk-console.c:1443
+#: ../client/pk-console.c:1460
 msgid "Error:"
 msgstr "ত্ৰুটি"
 
 #. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1457
+#: ../client/pk-console.c:1474
 msgid "Package description"
 msgstr "সৰঞ্জামৰ বিৱৰণ"
 
 #. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
-#: ../client/pk-console.c:1473
+#: ../client/pk-console.c:1490
 msgid "Message:"
 msgstr "বাৰ্তা:"
 
 #. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1501
+#: ../client/pk-console.c:1518
 msgid "Package files"
 msgstr "সৰঞ্জামৰ নথিপত্ৰ"
 
 #. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1509
+#: ../client/pk-console.c:1526
 msgid "No files"
 msgstr "কোনো নথিপত্ৰ নাই"
 
 #. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1532
+#: ../client/pk-console.c:1549
 msgid "Repository signature required"
 msgstr "কোনো নথিপত্ৰ নাই"
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1542
+#: ../client/pk-console.c:1559
 msgid "Do you accept this signature?"
 msgstr "ভঁৰালৰ চহিৰ প্ৰয়োজন"
 
 #. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1546
+#: ../client/pk-console.c:1563
 msgid "The signature was not accepted."
 msgstr "চহি গ্ৰহণ কৰা ন'হ'ল ।"
 
 #. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1580
+#: ../client/pk-console.c:1597
 msgid "End user license agreement required"
 msgstr "ব্যৱহাৰকৰ্তাৰ অনুজ্ঞাপত্ৰৰ চুক্তিৰ প্ৰয়োজন"
 
 #. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1587
+#: ../client/pk-console.c:1604
 msgid "Do you agree to this license?"
 msgstr "আপুনি এই অনুজ্ঞাপত্ৰ মানি লয় নে ?"
 
 #. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1591
+#: ../client/pk-console.c:1608
 msgid "The license was refused."
 msgstr "অনুজ্ঞাপত্ৰ অগ্ৰাহ্য কৰা হয় ।"
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1620
+#: ../client/pk-console.c:1637
 msgid "The daemon crashed mid-transaction!"
 msgstr "লেন-দেনৰ মাজতে ডেমন ক্ৰেশ্ব হ'ল!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1673
+#: ../client/pk-console.c:1690
 msgid "PackageKit Console Interface"
 msgstr "PackageKit ক'ন্সোল সংযোগমাধ্যম"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1675
+#: ../client/pk-console.c:1692
 msgid "Subcommands:"
 msgstr "উপ-আদেশ:"
 
 #. TRANSLATORS: command line argument, if we should show debugging information
 #. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:1767 ../client/pk-generate-pack.c:185
-#: ../client/pk-monitor.c:125
-#: ../contrib/command-not-found/pk-command-not-found.c:518
-#: ../src/pk-main.c:199
+#: ../client/pk-console.c:1785 ../client/pk-generate-pack.c:185
+#: ../client/pk-monitor.c:128
+#: ../contrib/command-not-found/pk-command-not-found.c:616
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:550
+#: ../contrib/device-rebind/pk-device-rebind.c:293 ../src/pk-main.c:211
 msgid "Show extra debugging information"
 msgstr "অতিৰিক্ত ডিবাগ তথ্য প্ৰদৰ্শন কৰা হ'ব"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1770 ../client/pk-monitor.c:127
+#: ../client/pk-console.c:1788 ../client/pk-monitor.c:130
 msgid "Show the program version and exit"
 msgstr "অনুপ্ৰয়োগৰ সংস্কৰণ দেখুৱাই প্ৰস্থান কৰক"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1773
+#: ../client/pk-console.c:1791
 msgid "Set the filter, e.g. installed"
 msgstr "ফিল্টাৰ নিৰ্ধাৰণ কৰক, যেনে সংস্থাপিত"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1776
+#: ../client/pk-console.c:1794
 msgid "Exit without waiting for actions to complete"
 msgstr "কাম সম্পূৰ্ণ নকৰাকে প্ৰস্থান কৰক"
 
 #. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:1803
+#: ../client/pk-console.c:1821
 msgid "This tool could not connect to system DBUS."
 msgstr "এই সৰঞ্জামে ব্যৱস্থাপ্ৰণালীৰ DBUS লৈ সংযোগ কৰিব নোৱাৰিলে ।"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1894
+#: ../client/pk-console.c:1911
 msgid "The filter specified was invalid"
 msgstr "নিৰ্ধাৰিত ফিল্টাৰ অবৈধ"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1912
+#: ../client/pk-console.c:1930
 msgid "A search type is required, e.g. name"
 msgstr "বিচৰাৰ ধৰণৰ প্ৰয়োজন, যেনে নাম"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1918 ../client/pk-console.c:1926
-#: ../client/pk-console.c:1934 ../client/pk-console.c:1942
+#: ../client/pk-console.c:1937 ../client/pk-console.c:1946
+#: ../client/pk-console.c:1955 ../client/pk-console.c:1964
 msgid "A search term is required"
 msgstr "বিচাৰিবলৈ শব্দৰ প্ৰয়োজন"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1948
+#: ../client/pk-console.c:1971
 msgid "Invalid search type"
 msgstr "অবৈধ বিচৰাৰ ধৰণ"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1954
+#: ../client/pk-console.c:1977
 msgid "A package name or filename to install is required"
 msgstr "সংস্থাপন কৰিবলৈ সৰঞ্জামৰ নাম বা নথিপত্ৰৰ নামৰ প্ৰয়োজন"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1962
+#: ../client/pk-console.c:1986
 msgid "A type, key_id and package_id are required"
 msgstr "এটা ধৰণ, key_id আৰু package_id ৰ প্ৰয়োজন"
 
 #. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:1970
+#: ../client/pk-console.c:1995
 msgid "A package name to remove is required"
 msgstr "আঁতৰাবলৈ এটা সৰঞ্জামৰ নামৰ প্ৰয়োজন"
 
 #. TRANSLATORS: the user did not specify anything about what to download or where
-#: ../client/pk-console.c:1977
-msgid ""
-"A destination directory and then the package names to download are required"
+#: ../client/pk-console.c:2003
+#, fuzzy
+msgid "A destination directory and the package names to download are required"
 msgstr "ডাউন্‌লোড কৰিবলৈ গন্তব্যৰ পঞ্জিকা আৰু তাৰ পিছত সৰঞ্জামৰ নামৰ প্ৰয়োজন"
 
 #. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:1983
+#: ../client/pk-console.c:2010
 msgid "Directory not found"
 msgstr "পঞ্জিকা পোৱা ন'গ'ল"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1990
+#: ../client/pk-console.c:2018
 msgid "A licence identifier (eula-id) is required"
 msgstr "অনুজ্ঞাপত্ৰৰ চিনাকি এটাৰ (eula-id) প্ৰয়োজন"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1999
+#: ../client/pk-console.c:2028
 msgid "A transaction identifier (tid) is required"
 msgstr "লেন-দেনৰ চিনাকি এটাৰ (tid) প্ৰয়োজন"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:2015
+#: ../client/pk-console.c:2045
 msgid "A package name to resolve is required"
 msgstr "বিশ্লেষণ কৰিবলৈ এটা সৰঞ্জামৰ নামৰ প্ৰয়োজন"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:2023 ../client/pk-console.c:2031
+#: ../client/pk-console.c:2054 ../client/pk-console.c:2063
 msgid "A repository name is required"
 msgstr "এটা ভঁৰালৰ নামৰ প্ৰয়োজন"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2039
+#: ../client/pk-console.c:2072
 msgid "A repo name, parameter and value are required"
 msgstr "এটা ভঁৰালৰ নাম, স্থিতিমাপ আৰু মানৰ প্ৰয়োজন"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:2052
+#: ../client/pk-console.c:2086
 msgid "An action, e.g. 'update-system' is required"
 msgstr "এটা কাৰ্য্য, যেনে 'update-system' ৰ প্ৰয়োজন"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:2058
+#: ../client/pk-console.c:2093
 msgid "A correct role is required"
 msgstr "এটা শুদ্ধ ভূমিকাৰ প্ৰয়োজন"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2064
+#: ../client/pk-console.c:2100
 msgid "Failed to get the time since this action was last completed"
 msgstr "যোৱাবাৰৰ কাম শেষ হোৱাৰ সময় পাবলৈ বিফল"
 
 #. TRANSLATORS: The user did not provide a package name
 #. TRANSLATORS: This is when the user fails to supply the package name
-#: ../client/pk-console.c:2073 ../client/pk-console.c:2084
-#: ../client/pk-console.c:2092 ../client/pk-console.c:2108
-#: ../client/pk-console.c:2116 ../client/pk-generate-pack.c:241
+#: ../client/pk-console.c:2110 ../client/pk-console.c:2122
+#: ../client/pk-console.c:2131 ../client/pk-console.c:2149
+#: ../client/pk-console.c:2158 ../client/pk-generate-pack.c:241
 msgid "A package name is required"
 msgstr "এটা সৰঞ্জামৰ নামৰ প্ৰয়োজন"
 
 #. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:2100
+#: ../client/pk-console.c:2140
 msgid "A package provide string is required"
 msgstr "এটা সৰঞ্জাম দিওঁতাৰ শব্দৰ প্ৰয়োজন"
 
 #. TRANSLATORS: The user didn't specify a filename to create as a list
-#: ../client/pk-console.c:2124
+#: ../client/pk-console.c:2167
 msgid "A list file name to create is required"
 msgstr "সৃষ্টি কৰিব লগা এটা তালিকাৰ নথিপত্ৰৰ নামৰ প্ৰয়োজন"
 
 #. TRANSLATORS: The user didn't specify a filename to open as a list
-#: ../client/pk-console.c:2133 ../client/pk-console.c:2142
+#: ../client/pk-console.c:2177 ../client/pk-console.c:2187
 msgid "A list file to open is required"
 msgstr "খুলিব লগা এটা তালিকাৰ নথিপত্ৰৰ প্ৰয়োজন"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2195
+#: ../client/pk-console.c:2241
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "'%s' বিকল্প অসমৰ্থিত"
 
 #. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2208
+#: ../client/pk-console.c:2254
 msgid "Incorrect privileges for this operation"
 msgstr "এই কাৰ্য্যৰ বাবে অশুদ্ধ সুবিধা"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2211
+#: ../client/pk-console.c:2257
 msgid "Command failed"
 msgstr "আদেশ বিফল"
 
@@ -669,8 +707,7 @@ msgstr "আওকাণ কৰিব লগা নিৰ্ভৰতাৰ নà¦
 #: ../client/pk-generate-pack.c:191
 msgid ""
 "The output file or directory (the current directory is used if ommitted)"
-msgstr ""
-"নিৰ্গমৰ নথিপত্ৰ বা পঞ্জিকা (একো নিদিলে বৰ্ত্তমানৰ পঞ্জিকা ব্যৱহাৰ কৰা হ'ব)"
+msgstr "নিৰ্গমৰ নথিপত্ৰ বা পঞ্জিকা (একো নিদিলে বৰ্ত্তমানৰ পঞ্জিকা ব্যৱহাৰ কৰা হ'ব)"
 
 #. TRANSLATORS: put a list of packages in the pack
 #: ../client/pk-generate-pack.c:194
@@ -703,64 +740,75 @@ msgstr "নিৰ্গম পঞ্জিকা বা নথিপত্ৰৰ
 msgid "The package manager cannot perform this type of operation."
 msgstr "সৰঞ্জামৰ পৰিচালকে এনে ধৰণৰ কাম কৰিব নোৱাৰে ।"
 
+#. TRANSLATORS: This is when the distro didn't include libarchive support into PK
+#: ../client/pk-generate-pack.c:280
+msgid ""
+"Service packs cannot be created as PackageKit was not built with libarchive "
+"support."
+msgstr ""
+
 #. TRANSLATORS: the user specified an absolute path, but didn't get the extension correct
-#: ../client/pk-generate-pack.c:285
+#: ../client/pk-generate-pack.c:291
 msgid "If specifying a file, the service pack name must end with"
 msgstr "নথিপত্ৰ নিৰ্ধাৰণ কৰিলে, সেৱাৰ গোটৰ নাম এইটোৰে অন্ত হ'ব লাগিব"
 
 #. TRANSLATORS: This is when file already exists
-#: ../client/pk-generate-pack.c:301
+#: ../client/pk-generate-pack.c:307
 msgid "A pack with the same name already exists, do you want to overwrite it?"
 msgstr "একে নামৰ গোট আছেই, আপুনি তাৰ ওপৰতে লিখিব বিচাৰে নেকি ?"
 
 #. TRANSLATORS: This is when the pack was not overwritten
-#: ../client/pk-generate-pack.c:304
+#: ../client/pk-generate-pack.c:310
 msgid "The pack was not overwritten."
 msgstr "গোটৰ ওপৰত পুনঃ লিখা ন'গ'ল ।"
 
 #. TRANSLATORS: This is when the temporary directory cannot be created, the directory name follows
-#: ../client/pk-generate-pack.c:317
+#: ../client/pk-generate-pack.c:323
 msgid "Failed to create directory:"
 msgstr "পঞ্জিকা সৃষ্টি কৰিবলৈ বিফল:"
 
 #. TRANSLATORS: This is when the list of packages from the remote computer cannot be opened
-#: ../client/pk-generate-pack.c:327
+#: ../client/pk-generate-pack.c:333
 msgid "Failed to open package list."
 msgstr "সৰঞ্জামৰ তালিকা খুলিবলৈ বিফল ।"
 
 #. TRANSLATORS: The package name is being matched up to available packages
-#: ../client/pk-generate-pack.c:338
+#: ../client/pk-generate-pack.c:344
 msgid "Finding package name."
 msgstr "সৰঞ্জামৰ নাম বিচৰা হৈছে ।"
 
 #. TRANSLATORS: This is when the package cannot be found in any software source. The detailed error follows
-#: ../client/pk-generate-pack.c:342
+#: ../client/pk-generate-pack.c:348
 #, c-format
 msgid "Failed to find package '%s': %s"
 msgstr "'%s' সৰঞ্জাম বিচাৰি পোৱা ন'গ'ল: %s"
 
 #. TRANSLATORS: This is telling the user we are in the process of making the pack
-#: ../client/pk-generate-pack.c:359
+#: ../client/pk-generate-pack.c:365
 msgid "Creating service pack..."
 msgstr "সেৱাৰ গোট সৃষ্টি কৰা হৈছে..."
 
 #. TRANSLATORS: we succeeded in making the file
-#: ../client/pk-generate-pack.c:366
+#: ../client/pk-generate-pack.c:372
 #, c-format
 msgid "Service pack created '%s'"
 msgstr "'%s' সেৱাৰ গোট সৃষ্টি কৰা হ'ল"
 
 #. TRANSLATORS: we failed to make te file
-#: ../client/pk-generate-pack.c:371
+#: ../client/pk-generate-pack.c:377
 #, c-format
 msgid "Failed to create '%s': %s"
 msgstr "'%s' সৃষ্টি কৰিবলৈ বিফল: %s"
 
 #. TRANSLATORS: this is a program that monitors PackageKit
-#: ../client/pk-monitor.c:143
+#: ../client/pk-monitor.c:146
 msgid "PackageKit Monitor"
 msgstr "PackageKit Monitor"
 
+#: ../client/pk-monitor.c:183
+msgid "Cannot show the list of transactions"
+msgstr ""
+
 #. TRANSLATORS: The package was not found in any software sources
 #: ../client/pk-tools-common.c:118
 #, c-format
@@ -782,128 +830,433 @@ msgstr "অনুগ্ৰহ কৰি শুদ্ধ সৰঞ্জাম à¦
 msgid "Please enter a number from 1 to %i: "
 msgstr "১ ৰ পৰা %i লৈ এটা সংখ্যা দিয়ক: "
 
+#. TRANSLATORS: when we are getting data from the daemon
+#: ../contrib/browser-plugin/pk-plugin-install.c:466
+msgid "Getting package information..."
+msgstr "সৰঞ্জামৰ তথ্য পোৱা হৈছে..."
+
+#. TRANSLATORS: run an applicaiton
+#: ../contrib/browser-plugin/pk-plugin-install.c:472
+#, c-format
+msgid "Run %s"
+msgstr "%s চলাওক"
+
+#. TRANSLATORS: show the installed version of a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:478
+msgid "Installed version"
+msgstr "সংস্থাপিত সংস্কৰণ"
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:486
+#, c-format
+msgid "Run version %s now"
+msgstr "সংস্কৰণ %s এতিয়া চলাওক"
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:492
+msgid "Run now"
+msgstr "এতিয়া চলাওক"
+
+#. TRANSLATORS: update to a new version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:498
+#, c-format
+msgid "Update to version %s"
+msgstr "%s সংস্কৰণলৈ উন্নত কৰক"
+
+#. TRANSLATORS: To install a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:504
+#, c-format
+msgid "Install %s now"
+msgstr "এতিয়া %s সংস্থাপন কৰক"
+
+#. TRANSLATORS: the version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:507
+msgid "Version"
+msgstr "সংস্কৰণ"
+
+#. TRANSLATORS: noting found, so can't install
+#: ../contrib/browser-plugin/pk-plugin-install.c:512
+msgid "No packages found for your system"
+msgstr "আপোনাৰ ব্যৱস্থাপ্ৰণালীৰ বাবে সৰঞ্জাম পোৱা ন'গ'ল"
+
+#. TRANSLATORS: package is being installed
+#: ../contrib/browser-plugin/pk-plugin-install.c:517
+msgid "Installing..."
+msgstr "সংস্থাপন কৰা হৈছে..."
+
+#. TRANSLATORS: downloading repo data so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:349
+msgid "Downloading details about the software sources."
+msgstr ""
+
+#. TRANSLATORS: downloading file lists so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:353
+msgid "Downloading filelists (this may take some time to complete)."
+msgstr ""
+
+#. TRANSLATORS: waiting for native lock
+#: ../contrib/command-not-found/pk-command-not-found.c:357
+#, fuzzy
+msgid "Waiting for package manager lock."
+msgstr "সৰঞ্জামৰ নাম বিচৰা হৈছে ।"
+
+#. TRANSLATORS: loading package cache so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:361
+#, fuzzy
+msgid "Loading list of packages."
+msgstr "সৰঞ্জাম ডাউন্‌লোড কৰা হৈছে"
+
 #. TRANSLATORS: we failed to find the package, this shouldn't happen
-#: ../contrib/command-not-found/pk-command-not-found.c:369
+#: ../contrib/command-not-found/pk-command-not-found.c:420
 msgid "Failed to search for file"
 msgstr "নথিপত্ৰ বিচাৰিব পৰা ন'গ'ল"
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:493
+#: ../contrib/command-not-found/pk-command-not-found.c:557
 msgid "Failed to launch:"
 msgstr "আৰম্ভ কৰিবলৈ বিফল:"
 
 #. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/command-not-found/pk-command-not-found.c:534
+#: ../contrib/command-not-found/pk-command-not-found.c:632
 msgid "PackageKit Command Not Found"
 msgstr "PackageKit আদেশ পোৱা ন'গ'ল"
 
 #. TRANSLATORS: the prefix of all the output telling the user why it's not executing
-#: ../contrib/command-not-found/pk-command-not-found.c:557
+#: ../contrib/command-not-found/pk-command-not-found.c:658
 msgid "Command not found."
 msgstr "আদেশ পোৱা নাযায় ।"
 
 #. TRANSLATORS: tell the user what we think the command is
-#: ../contrib/command-not-found/pk-command-not-found.c:564
+#: ../contrib/command-not-found/pk-command-not-found.c:665
 msgid "Similar command is:"
 msgstr "একে ধৰণৰ আদেশ হ'ল:"
 
 #. TRANSLATORS: Ask the user if we should run the similar command
-#: ../contrib/command-not-found/pk-command-not-found.c:573
+#: ../contrib/command-not-found/pk-command-not-found.c:674
 msgid "Run similar command:"
 msgstr "একে ধৰণৰ আদেশ চলাওক:"
 
 #. TRANSLATORS: show the user a list of commands that they could have meant
 #. TRANSLATORS: show the user a list of commands we could run
-#: ../contrib/command-not-found/pk-command-not-found.c:585
-#: ../contrib/command-not-found/pk-command-not-found.c:594
+#: ../contrib/command-not-found/pk-command-not-found.c:686
+#: ../contrib/command-not-found/pk-command-not-found.c:695
 msgid "Similar commands are:"
 msgstr "একে ধৰণৰ আদেশ হ'ল:"
 
 #. TRANSLATORS: ask the user to choose a file to run
-#: ../contrib/command-not-found/pk-command-not-found.c:601
+#: ../contrib/command-not-found/pk-command-not-found.c:702
 msgid "Please choose a command to run"
 msgstr "চলাবলৈ এটা আদেশ বাচি লওক"
 
 #. TRANSLATORS: tell the user what package provides the command
-#: ../contrib/command-not-found/pk-command-not-found.c:616
+#: ../contrib/command-not-found/pk-command-not-found.c:721
 msgid "The package providing this file is:"
 msgstr "এই নথিপত্ৰ দিয়া সৰঞ্জাম হ'ল:"
 
 #. TRANSLATORS: as the user if we want to install a package to provide the command
-#: ../contrib/command-not-found/pk-command-not-found.c:621
+#: ../contrib/command-not-found/pk-command-not-found.c:726
 #, c-format
 msgid "Install package '%s' to provide command '%s'?"
 msgstr "'%s' সৰঞ্জাম সংস্থাপন কৰা যাওক যি '%s' আদেশ দিয়ে ?"
 
 #. TRANSLATORS: Show the user a list of packages that provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:642
+#: ../contrib/command-not-found/pk-command-not-found.c:747
 msgid "Packages providing this file are:"
 msgstr "এই নথিপত্ৰ দিয়া সৰঞ্জামসমূহ হ'ল:"
 
 #. TRANSLATORS: Show the user a list of packages that they can install to provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:651
+#: ../contrib/command-not-found/pk-command-not-found.c:756
 msgid "Suitable packages are:"
 msgstr "উপযুক্ত সৰঞ্জাম হ'ল:"
 
 #. get selection
 #. TRANSLATORS: ask the user to choose a file to install
-#: ../contrib/command-not-found/pk-command-not-found.c:659
+#: ../contrib/command-not-found/pk-command-not-found.c:764
 msgid "Please choose a package to install"
 msgstr "সংস্থাপন কৰিবলৈ এটা সৰঞ্জাম নিৰ্ব্বাচন কৰক"
 
-#. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/src/contents.cpp:298
-msgid "Getting package information..."
-msgstr "সৰঞ্জামৰ তথ্য পোৱা হৈছে..."
+#. TRANSLATORS: we are starting to install the packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:187
+#, fuzzy
+msgid "Starting install"
+msgstr "সংস্থাপন কৰিব লগা"
 
-#. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/src/contents.cpp:304
+#. TRANSLATORS: we couldn't find the package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:397
+#, fuzzy, c-format
+msgid "Failed to find the package %s, or already installed: %s"
+msgstr "%s সৰঞ্জাম ইতিমধ্যে সংস্থাপিত"
+
+#. command line argument, simulate what would be done, but don't actually do it
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:553
+msgid ""
+"Don't actually install any packages, only simulate what would be installed"
+msgstr ""
+
+#. command line argument, do we skip packages that depend on the ones specified
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:556
+msgid "Do not install dependencies of the core packages"
+msgstr ""
+
+#. command line argument, do we operate quietly
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:559
+msgid "Do not display information or progress"
+msgstr ""
+
+#. TRANSLATORS: tool that gets called when the command is not found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:577
+#, fuzzy
+msgid "PackageKit Debuginfo Installer"
+msgstr "PackageKit ক'ন্সোল সংযোগমাধ্যম"
+
+#. TRANSLATORS: the use needs to specify a list of package names on the command line
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:589
+#, fuzzy, c-format
+msgid "ERROR: Specify package names to install."
+msgstr "নতুন সৰঞ্জাম সংস্থাপন কৰাৰ প্ৰয়োজন নাই"
+
+#. TRANSLATORS: we are getting the list of repositories
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:623
+#, fuzzy, c-format
+msgid "Getting sources list"
+msgstr "সৰঞ্জামৰ তালিকা প্ৰাপ্ত কৰা হৈছে"
+
+#. TRANSLATORS: all completed 100%
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:641
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:681
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:716
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:800
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:844
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:911
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:955
 #, c-format
-msgid "Run %s"
-msgstr "%s চলাওক"
+msgid "OK."
+msgstr ""
 
-#. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/src/contents.cpp:310
-msgid "Installed version"
-msgstr "সংস্থাপিত সংস্কৰণ"
+#. TRANSLATORS: tell the user what we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:644
+#, c-format
+msgid "Found %i enabled and %i disabled sources."
+msgstr ""
 
-#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/src/contents.cpp:318
+#. TRANSLATORS: we're finding repositories that match out pattern
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:651
 #, c-format
-msgid "Run version %s now"
-msgstr "সংস্কৰণ %s এতিয়া চলাওক"
+msgid "Finding debugging sources"
+msgstr ""
 
-#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/src/contents.cpp:324
-msgid "Run now"
-msgstr "এতিয়া চলাওক"
+#. TRANSLATORS: tell the user what we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:684
+#, c-format
+msgid "Found %i disabled debuginfo repos."
+msgstr ""
 
-#. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/src/contents.cpp:330
+#. TRANSLATORS: we're now enabling all the debug sources we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:691
 #, c-format
-msgid "Update to version %s"
-msgstr "%s সংস্কৰণলৈ উন্নত কৰক"
+msgid "Enabling debugging sources"
+msgstr ""
 
-#. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/src/contents.cpp:336
+#. TRANSLATORS: operation was not successful
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:701
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:785
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:829
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:896
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:940
+msgid "FAILED."
+msgstr ""
+
+#. TRANSLATORS: tell the user how many we enabled
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:719
 #, c-format
-msgid "Install %s now"
-msgstr "এতিয়া %s সংস্থাপন কৰক"
+msgid "Enabled %i debugging sources."
+msgstr ""
 
-#. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/src/contents.cpp:339
-msgid "Version"
-msgstr "সংস্কৰণ"
+#. TRANSLATORS: we're now finding packages that match in all the repos
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:726
+#, fuzzy, c-format
+msgid "Finding debugging packages"
+msgstr "সৰঞ্জামৰ নাম বিচৰা হৈছে ।"
 
-#. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/src/contents.cpp:344
-msgid "No packages found for your system"
-msgstr "আপোনাৰ ব্যৱস্থাপ্ৰণালীৰ বাবে সৰঞ্জাম পোৱা ন'গ'ল"
+#. TRANSLATORS: we couldn't find the package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:738
+#, fuzzy, c-format
+msgid "Failed to find the package %s: %s"
+msgstr "'%s' সৰঞ্জাম বিচাৰি পোৱা ন'গ'ল: %s"
 
-#. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/src/contents.cpp:349
-msgid "Installing..."
-msgstr "সংস্থাপন কৰা হৈছে..."
+#. TRANSLATORS: we couldn't find the debuginfo package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:761
+#, fuzzy, c-format
+msgid "Failed to find the debuginfo package %s: %s"
+msgstr "'%s' সৰঞ্জাম বিচাৰি পোৱা ন'গ'ল: %s"
+
+#. TRANSLATORS: no debuginfo packages could be found to be installed
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:789
+#, fuzzy, c-format
+msgid "Found no packages to install."
+msgstr "নতুন সৰঞ্জাম সংস্থাপন কৰাৰ প্ৰয়োজন নাই"
+
+#. TRANSLATORS: tell the user we found some packages, and then list them
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:803
+#, fuzzy, c-format
+msgid "Found %i packages:"
+msgstr "সৰঞ্জাম ডাউন্‌লোড কৰা হৈছে"
+
+#. TRANSLATORS: tell the user we are searching for deps
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:819
+#, c-format
+msgid "Finding packages that depend on these packages"
+msgstr ""
+
+#. TRANSLATORS: could not install, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:832
+#, fuzzy, c-format
+msgid "Could not find dependant packages: %s"
+msgstr "'%s' সৰঞ্জাম বিচাৰি পোৱা ন'গ'ল: %s"
+
+#. TRANSLATORS: tell the user we found some more packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:848
+#, c-format
+msgid "Found %i extra packages."
+msgstr ""
+
+#. TRANSLATORS: tell the user we found some more packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:852
+#, fuzzy, c-format
+msgid "No extra packages required."
+msgstr "এটা সৰঞ্জামৰ নামৰ প্ৰয়োজন"
+
+#. TRANSLATORS: tell the user we found some packages (and deps), and then list them
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:861
+#, fuzzy, c-format
+msgid "Found %i packages to install:"
+msgstr "নতুন সৰঞ্জাম সংস্থাপন কৰাৰ প্ৰয়োজন নাই"
+
+#. TRANSLATORS: simulate mode is a testing mode where we quit before the action
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:874
+#, fuzzy, c-format
+msgid "Not installing packages in simulate mode"
+msgstr "সৰঞ্জাম সংস্থাপন কৰা হৈছে"
+
+#. TRANSLATORS: could not install, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:899
+#, fuzzy, c-format
+msgid "Could not install packages: %s"
+msgstr "এই সৰঞ্জামে সৰঞ্জামসমূহ সংস্থাপন কৰিব নোৱাৰিলে: %s"
+
+#. TRANSLATORS: we are now disabling all debuginfo repos we previously enabled
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:931
+#, c-format
+msgid "Disabling sources previously enabled"
+msgstr ""
+
+#. TRANSLATORS: no debuginfo packages could be found to be installed, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:943
+#, c-format
+msgid "Could not disable the debugging sources: %s"
+msgstr ""
+
+#. TRANSLATORS: we disabled all the debugging repos that we enabled before
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:958
+#, c-format
+msgid "Disabled %i debugging sources."
+msgstr ""
+
+#. TRANSLATORS: couldn't open device to write
+#: ../contrib/device-rebind/pk-device-rebind.c:61
+#, fuzzy
+msgid "Failed to open file"
+msgstr "নথিপত্ৰ বিচাৰিব পৰা ন'গ'ল"
+
+#. TRANSLATORS: could not write to the device
+#: ../contrib/device-rebind/pk-device-rebind.c:70
+#, fuzzy
+msgid "Failed to write to the file"
+msgstr "নথিপত্ৰ বিচাৰিব পৰা ন'গ'ল"
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:110
+#: ../contrib/device-rebind/pk-device-rebind.c:147
+#, fuzzy
+msgid "Failed to write to device"
+msgstr "ডিষ্কলৈ ৰক্ষা কৰিব নোৱাৰি"
+
+#. TRANSLATORS: the device could not be found in sysfs
+#: ../contrib/device-rebind/pk-device-rebind.c:175
+#, fuzzy
+msgid "Device could not be found"
+msgstr "সৰঞ্জাম পোৱা ন'গ'ল"
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:202
+#, fuzzy
+msgid "Failed to unregister driver"
+msgstr "পঞ্জিকা সৃষ্টি কৰিবলৈ বিফল:"
+
+#. TRANSLATORS: we failed to bind the old driver
+#: ../contrib/device-rebind/pk-device-rebind.c:211
+#, fuzzy
+msgid "Failed to register driver"
+msgstr "পঞ্জিকা সৃষ্টি কৰিবলৈ বিফল:"
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:260
+#, fuzzy
+msgid "Device path not found"
+msgstr "পঞ্জিকা পোৱা ন'গ'ল"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:268
+msgid "Incorrect device path specified"
+msgstr ""
+
+#. command line argument, simulate what would be done, but don't actually do it
+#: ../contrib/device-rebind/pk-device-rebind.c:296
+msgid "Don't actually touch the hardware, only simulate what would be done"
+msgstr ""
+
+#. TRANSLATORS: command line option: a list of files to install
+#: ../contrib/device-rebind/pk-device-rebind.c:299
+msgid "Device paths"
+msgstr ""
+
+#. TRANSLATORS: tool that gets called when the device needs reloading after installing firmware
+#: ../contrib/device-rebind/pk-device-rebind.c:314
+#, fuzzy
+msgid "PackageKit Device Reloader"
+msgstr "PackageKit সেৱাৰ গোট"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:322
+msgid "You need to specify at least one valid device path"
+msgstr ""
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:332
+msgid "This script can only be used by the root user"
+msgstr ""
+
+#. TRANSLATORS: we're going to verify the path first
+#: ../contrib/device-rebind/pk-device-rebind.c:341
+msgid "Verifying device path"
+msgstr ""
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:346
+#, fuzzy
+msgid "Failed to verify device path"
+msgstr "নথিপত্ৰ বিচাৰিব পৰা ন'গ'ল"
+
+#. TRANSLATORS: we're going to try
+#: ../contrib/device-rebind/pk-device-rebind.c:360
+msgid "Attempting to rebind device"
+msgstr ""
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:365
+#, fuzzy
+msgid "Failed to rebind device"
+msgstr "পঞ্জিকা সৃষ্টি কৰিবলৈ বিফল:"
 
 #: ../data/packagekit-catalog.xml.in.h:1
 msgid "PackageKit Catalog"
@@ -917,24 +1270,30 @@ msgstr "PackageKit সৰঞ্জামৰ তালিকা"
 msgid "PackageKit Service Pack"
 msgstr "PackageKit সেৱাৰ গোট"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:1
+#. SECURITY:
+#. - Normal users do not require admin authentication to accept new
+#. licence agreements.
+#. - Change this to 'auth_admin' for environments where users should not
+#. be given the option to make legal decisions.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:7
 msgid "Accept EULA"
 msgstr "EULA গ্ৰহণ কৰক"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:2
+#: ../policy/org.freedesktop.packagekit.policy.in.h:8
 msgid "Authentication is required to accept a EULA"
 msgstr "এটা EULA গ্ৰহণ কৰিবলৈ প্ৰমাণীকৰণৰ প্ৰয়োজন"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:3
+#: ../policy/org.freedesktop.packagekit.policy.in.h:9
 msgid ""
 "Authentication is required to cancel a task that was not started by yourself"
 msgstr "আপুনি নিজেই আৰম্ভ নকৰা কাৰ্য্য এটা বাতিল কৰিবলৈ প্ৰমাণীকৰণৰ প্ৰয়োজন"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:4
+#: ../policy/org.freedesktop.packagekit.policy.in.h:10
 msgid "Authentication is required to change software source parameters"
 msgstr "চালনাজ্ঞানৰ উৎসৰ স্থিতিমাপ সলনি কৰিবলৈ প্ৰমাণীকৰণৰ প্ৰয়োজন"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:5
+#: ../policy/org.freedesktop.packagekit.policy.in.h:11
 msgid ""
 "Authentication is required to consider a key used for signing packages as "
 "trusted"
@@ -942,74 +1301,146 @@ msgstr ""
 "বিশ্বাসী হিচাপে সৰঞ্জাম চহি কৰিবলৈ ব্যৱহাৰ কৰা চাবিক মানি ল'বলৈ প্ৰমাণীকৰণৰ "
 "প্ৰয়োজন"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:6
+#: ../policy/org.freedesktop.packagekit.policy.in.h:12
 msgid "Authentication is required to install a signed package"
 msgstr "চহি কৰা সৰঞ্জাম সংস্থাপন কৰিবলৈ প্ৰমাণীকৰণৰ প্ৰয়োজন"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:7
+#: ../policy/org.freedesktop.packagekit.policy.in.h:13
 msgid "Authentication is required to install an untrusted package"
 msgstr "অবিশ্বাসী সৰঞ্জাম সংস্থাপন কৰিবলৈ প্ৰমাণীকৰণৰ প্ৰয়োজন"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:8
+#: ../policy/org.freedesktop.packagekit.policy.in.h:14
 msgid "Authentication is required to refresh the system sources"
 msgstr "ব্যৱস্থাপ্ৰণালীৰ সম্পদক সতেজ কৰিবলৈ প্ৰমাণীকৰণৰ প্ৰয়োজন"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:9
+#: ../policy/org.freedesktop.packagekit.policy.in.h:15
+#, fuzzy
+msgid "Authentication is required to reload the device with a new driver"
+msgstr "ব্যৱস্থাপ্ৰণালীৰ সম্পদক সতেজ কৰিবলৈ প্ৰমাণীকৰণৰ প্ৰয়োজন"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:16
 msgid "Authentication is required to remove packages"
 msgstr "সৰঞ্জাম আঁতৰাবলৈ প্ৰমাণীকৰণৰ প্ৰয়োজন"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:10
+#: ../policy/org.freedesktop.packagekit.policy.in.h:17
 msgid "Authentication is required to rollback a transaction"
 msgstr "এটা লেন-দেন নোহোৱা কৰিবলৈ প্ৰমাণীকৰণৰ প্ৰয়োজন"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:11
+#: ../policy/org.freedesktop.packagekit.policy.in.h:18
 msgid ""
 "Authentication is required to set the network proxy used for downloading "
 "packages"
-msgstr ""
-"সৰঞ্জাম ডাউন্‌লোড কৰা নে'টৱৰ্ক নিযুক্তক প্ৰতিষ্ঠা কৰিবলৈ প্ৰমাণীকৰণৰ প্ৰয়োজন"
+msgstr "সৰঞ্জাম ডাউন্‌লোড কৰা নে'টৱৰ্ক নিযুক্তক প্ৰতিষ্ঠা কৰিবলৈ প্ৰমাণীকৰণৰ প্ৰয়োজন"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:12
+#: ../policy/org.freedesktop.packagekit.policy.in.h:19
 msgid "Authentication is required to update packages"
 msgstr "সৰঞ্জাম উন্নত কৰিবলৈ প্ৰমাণীকৰণৰ প্ৰয়োজন"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:13
+#. SECURITY:
+#. - Normal users are allowed to cancel their own task without
+#. authentication, but a different user id needs the admin password
+#. to cancel another users task.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:25
 msgid "Cancel foreign task"
 msgstr "বিদেশী কাৰ্য্য বাতিল কৰক"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:14
+#. SECURITY:
+#. - Normal users require admin authentication to enable or disable
+#. software sources as this can be used to enable new updates or
+#. install different versions of software.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:31
 msgid "Change software source parameters"
 msgstr "চালনাজ্ঞানৰ উৎসৰ স্থিতিমাপ সলনি কৰক"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:15
+#. SECURITY:
+#. - Normal users do not need authentication to install signed packages
+#. from signed repositories, as this cannot exploit a system.
+#. - Paranoid users (or parents!) can change this to 'auth_admin' or
+#. 'auth_admin_keep'.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:38
 msgid "Install signed package"
 msgstr "চহি কৰা সৰঞ্জাম সংস্থাপন কৰক"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:16
+#. SECURITY:
+#. - Normal users require admin authentication to install untrusted or
+#. unrecognised packages, as allowing users to do this without a
+#. password would be a massive security hole.
+#. - This is not retained as each package should be authenticated.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:45
 msgid "Install untrusted local file"
 msgstr "2    "
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:17
+#. SECURITY:
+#. - Normal users do not require admin authentication to refresh the
+#. cache, as this doesn't actually install or remove software.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:50
 msgid "Refresh system sources"
 msgstr "ব্যৱস্থাপ্ৰণালীৰ সম্পদক সতেজ কৰক"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:18
+#. SECURITY:
+#. - Normal users require admin authentication to rebind a driver
+#. so that it works after we install firmware.
+#. - This should not be set to 'yes' as unprivileged users could then
+#. try to rebind drivers in use, for instance security authentication
+#. devices.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:58
+msgid "Reload a device"
+msgstr ""
+
+#. SECURITY:
+#. - Normal users require admin authentication to remove packages as
+#. this can make the system unbootable or stop other applications from
+#. working.
+#. - Be sure to close the tool used to remove the packages after the
+#. admin authentication has been obtained, otherwise packages can still
+#. be removed. If this is not possible, change this authentication to
+#. 'auth_admin'.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:68
 msgid "Remove package"
 msgstr "সৰঞ্জাম আঁতৰাওঁক"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:19
+#. SECURITY:
+#. - Normal users require admin authentication to rollback system state
+#. as this will change a large number of packages, and could expose the
+#. system to previously patched security vulnerabilities.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:74
 msgid "Rollback to a previous transaction"
 msgstr "আগৰ লেন-দেনলৈ ঘূৰি যাওক"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:20
+#. SECURITY:
+#. - Normal users do not require admin authentication to set the proxy
+#. used for downloading packages.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:79
 msgid "Set network proxy"
 msgstr "নে'টৱৰ্ক নিযুক্তক নিৰ্ধাৰিত কৰক"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:21
+#. SECURITY:
+#. - Normal users require admin authentication to add signing keys.
+#. - This implies adding an explicit trust, and should not be granted
+#. without a secure authentication.
+#. - This is not kept as each package should be authenticated.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:86
 msgid "Trust a key used for signing packages"
 msgstr "সৰঞ্জাম চহি কৰিবলৈ ব্যৱহাৰ কৰা চাবিক মানি লওক"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:22
+#. SECURITY:
+#. - Normal users do not require admin authentication to update the
+#. system as the packages will be signed, and the action is required
+#. to update the system when unattended.
+#. - Changing this to anything other than 'yes' will break unattended
+#. updates.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:94
 msgid "Update packages"
 msgstr "সৰঞ্জাম উন্নত কৰক"
 
@@ -1034,53 +1465,91 @@ msgid ""
 "The org.freedesktop.PackageKit.conf file is not installed in the system "
 "directory:"
 msgstr ""
-"org.freedesktop.PackageKit.conf নথিপত্ৰ ব্যৱস্থাপ্ৰণালীৰ পঞ্জিকাত সংস্থাপিত "
-"নহয়:"
+"org.freedesktop.PackageKit.conf নথিপত্ৰ ব্যৱস্থাপ্ৰণালীৰ পঞ্জিকাত সংস্থাপিত নহয়:"
 
 #. TRANSLATORS: a backend is the system package tool, e.g. yum, apt
-#: ../src/pk-main.c:193
+#: ../src/pk-main.c:205
 msgid "Packaging backend to use, e.g. dummy"
 msgstr "ব্যৱহাৰ কৰিব লগা গোট সৃষ্টি কৰাৰ বেক-এণ্ড, যেনে dummy"
 
 #. TRANSLATORS: if we should run in the background
-#: ../src/pk-main.c:196
+#: ../src/pk-main.c:208
 msgid "Daemonize and detach from the terminal"
 msgstr "ডেমন কৰি তাৰ টাৰ্মিনেলৰ পৰা বিচ্ছিন্ন কৰক"
 
 #. TRANSLATORS: if we should not monitor how long we are inactive for
-#: ../src/pk-main.c:202
+#: ../src/pk-main.c:214
 msgid "Disable the idle timer"
 msgstr "idle timer নিষ্ক্ৰিয় কৰক"
 
 #. TRANSLATORS: show version
-#: ../src/pk-main.c:205
+#: ../src/pk-main.c:217
 msgid "Show version and exit"
 msgstr "সংস্কৰণ দেখুৱাই প্ৰস্থান কৰক"
 
 #. TRANSLATORS: exit after we've started up, used for user profiling
-#: ../src/pk-main.c:208
+#: ../src/pk-main.c:220
 msgid "Exit after a small delay"
 msgstr "কিছু সময়ৰ পিছত বাহিৰ হওক"
 
 #. TRANSLATORS: exit straight away, used for automatic profiling
-#: ../src/pk-main.c:211
+#: ../src/pk-main.c:223
 msgid "Exit after the engine has loaded"
 msgstr "কলঘৰ তুলি লোৱাৰ পিছত বাহিৰ হওক"
 
 #. TRANSLATORS: describing the service that is running
-#: ../src/pk-main.c:226
+#: ../src/pk-main.c:238
 msgid "PackageKit service"
 msgstr "PackageKit সেৱা"
 
 #. TRANSLATORS: fatal error, dbus is not running
-#: ../src/pk-main.c:263
+#: ../src/pk-main.c:275
 msgid "Cannot connect to the system bus"
 msgstr "ব্যৱস্থাপ্ৰণালীৰ বাছৰ সৈতে সংযোগ স্থাপনত ব্যৰ্থ"
 
-#. TRANSLATORS: cannot register on system bus, unknown reason
-#: ../src/pk-main.c:313
-#, c-format
+#. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error follows
+#: ../src/pk-main.c:334
 msgid "Error trying to start:"
 msgstr "আৰম্ভ কৰিবলৈ চেষ্টা কৰোঁতে ভুল:"
 
+#: ../src/pk-polkit-action-lookup.c:147
+#, fuzzy
+msgid "To install debugging packages, extra sources need to be enabled"
+msgstr "নতুন সৰঞ্জাম সংস্থাপন কৰাৰ প্ৰয়োজন নাই"
 
+#. TRANSLATORS: is not GPG signed
+#: ../src/pk-polkit-action-lookup.c:168 ../src/pk-polkit-action-lookup.c:187
+msgid "The software is not from a trusted source."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:173
+msgid "Do not update this package unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:174
+msgid "Do not update these packages unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:192
+msgid "Do not install this package unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:193
+msgid "Do not install these packages unless you are sure it is safe to do so."
+msgstr ""
+
+#. TRANSLATORS: warn the user that all bets are off
+#: ../src/pk-polkit-action-lookup.c:199
+msgid "Malicious software can damage your computer or cause other harm."
+msgstr ""
+
+#. TRANSLATORS: too many packages to list each one
+#: ../src/pk-polkit-action-lookup.c:274
+#, fuzzy
+msgid "Many packages"
+msgstr "সৰঞ্জাম উন্নত কৰক"
+
+#. TRANSLATORS: if the transaction is forced to install only trusted packages
+#: ../src/pk-polkit-action-lookup.c:334
+msgid "Only trusted"
+msgstr ""
diff --git a/po/bg.po b/po/bg.po
index fab01b3..d390649 100644
--- a/po/bg.po
+++ b/po/bg.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit master\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-05-27 13:27+0300\n"
+"POT-Creation-Date: 2009-08-24 11:06+0100\n"
 "PO-Revision-Date: 2009-05-27 13:28+0300\n"
 "Last-Translator: Alexander Shopov <ash at contact.bg>\n"
 "Language-Team: Bulgarian <dict at fsa-bg.org>\n"
@@ -16,230 +16,264 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
 
 #. TRANSLATORS: this is an atomic transaction
-#: ../client/pk-console.c:234
+#: ../client/pk-console.c:235
 msgid "Transaction"
 msgstr "Транзакция"
 
 #. TRANSLATORS: this is the time the transaction was started in system timezone
-#: ../client/pk-console.c:236
+#: ../client/pk-console.c:237
 msgid "System time"
 msgstr "Системно време"
 
 #. TRANSLATORS: this is if the transaction succeeded or not
-#: ../client/pk-console.c:238
+#: ../client/pk-console.c:239
 msgid "Succeeded"
 msgstr "Успех"
 
 #. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:238 ../client/pk-console.c:405
+#: ../client/pk-console.c:239 ../client/pk-console.c:406
 msgid "True"
 msgstr "Истина"
 
-#: ../client/pk-console.c:238 ../client/pk-console.c:405
+#: ../client/pk-console.c:239 ../client/pk-console.c:406
 msgid "False"
 msgstr "Лъжа"
 
 #. TRANSLATORS: this is the transactions role, e.g. "update-system"
-#: ../client/pk-console.c:240
+#. TRANSLATORS: the trasaction role, e.g. update-system
+#: ../client/pk-console.c:241 ../src/pk-polkit-action-lookup.c:327
 msgid "Role"
 msgstr "Роля"
 
 #. TRANSLATORS: this is The duration of the transaction
-#: ../client/pk-console.c:245
+#: ../client/pk-console.c:246
 msgid "Duration"
 msgstr "Продължителност"
 
-#: ../client/pk-console.c:245
+#: ../client/pk-console.c:246
 msgid "(seconds)"
 msgstr "(секунди)"
 
 #. TRANSLATORS: this is The command line used to do the action
-#: ../client/pk-console.c:249
+#. TRANSLATORS: the command line of the thing that wants the authentication
+#: ../client/pk-console.c:250 ../src/pk-polkit-action-lookup.c:341
 msgid "Command line"
 msgstr "Команден ред"
 
 #. TRANSLATORS: this is the user ID of the user that started the action
-#: ../client/pk-console.c:251
+#: ../client/pk-console.c:252
 msgid "User ID"
 msgstr "Идентификатор на потребител"
 
 #. TRANSLATORS: this is the username, e.g. hughsie
-#: ../client/pk-console.c:258
+#: ../client/pk-console.c:259
 msgid "Username"
 msgstr "Потребителско име"
 
 #. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
-#: ../client/pk-console.c:262
+#: ../client/pk-console.c:263
 msgid "Real name"
 msgstr "Истинско име"
 
-#: ../client/pk-console.c:270
+#: ../client/pk-console.c:271
 msgid "Affected packages:"
 msgstr "Засегнати пакети:"
 
-#: ../client/pk-console.c:272
+#: ../client/pk-console.c:273
 msgid "Affected packages: None"
 msgstr "Засегнати пакети: няма"
 
 #. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:297
+#: ../client/pk-console.c:298
 msgid "Distribution"
 msgstr "Дистрибуция"
 
 #. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:299
+#: ../client/pk-console.c:300
 msgid "Type"
 msgstr "Вид"
 
 #. TRANSLATORS: this is any summary text describing the upgrade
 #. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:301 ../client/pk-console.c:324
+#: ../client/pk-console.c:302 ../client/pk-console.c:325
 msgid "Summary"
 msgstr "Обобщение"
 
 #. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:313
+#: ../client/pk-console.c:314
 msgid "Category"
 msgstr "Категория"
 
 #. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:315
+#: ../client/pk-console.c:316
 msgid "ID"
 msgstr "Идентификатор"
 
 #. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:318
+#: ../client/pk-console.c:319
 msgid "Parent"
 msgstr "Родител"
 
 #. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:321
+#: ../client/pk-console.c:322
 msgid "Name"
 msgstr "Име"
 
 #. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:327
+#: ../client/pk-console.c:328
 msgid "Icon"
 msgstr "Икона"
 
 #. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:342
+#: ../client/pk-console.c:343
 msgid "Details about the update:"
 msgstr "Подробности за обновлението:"
 
 #. TRANSLATORS: details about the update, package name and version
-#: ../client/pk-console.c:344
+#. TRANSLATORS: title, the names of the packages that the method is processing
+#: ../client/pk-console.c:345 ../src/pk-polkit-action-lookup.c:352
+#, fuzzy
 msgid "Package"
-msgstr "Пакет"
+msgid_plural "Packages"
+msgstr[0] "Пакет"
+msgstr[1] "Пакет"
 
 #. TRANSLATORS: details about the update, any packages that this update updates
-#: ../client/pk-console.c:347
+#: ../client/pk-console.c:348
 msgid "Updates"
 msgstr "Обновява"
 
 #. TRANSLATORS: details about the update, any packages that this update obsoletes
-#: ../client/pk-console.c:351
+#: ../client/pk-console.c:352
 msgid "Obsoletes"
 msgstr "Наследява"
 
 #. TRANSLATORS: details about the update, the vendor URLs
-#: ../client/pk-console.c:355
+#: ../client/pk-console.c:356
 msgid "Vendor"
 msgstr "Производител"
 
 #. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:359
+#: ../client/pk-console.c:360
 msgid "Bugzilla"
 msgstr "Bugzilla"
 
 #. TRANSLATORS: details about the update, the CVE URLs
-#: ../client/pk-console.c:363
+#: ../client/pk-console.c:364
 msgid "CVE"
 msgstr "CVE"
 
 #. TRANSLATORS: details about the update, if the package requires a restart
-#: ../client/pk-console.c:367
+#: ../client/pk-console.c:368
 msgid "Restart"
 msgstr "Рестартиране"
 
 #. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:371
+#: ../client/pk-console.c:372
 msgid "Update text"
 msgstr "Обновяване на текста"
 
 #. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:375
+#: ../client/pk-console.c:376
 msgid "Changes"
 msgstr "Промени"
 
 #. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:379
+#: ../client/pk-console.c:380
 msgid "State"
 msgstr "Състояние"
 
 #. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:384
+#: ../client/pk-console.c:385
 msgid "Issued"
 msgstr "Издаден"
 
 #. TRANSLATORS: details about the update, date the update was updated
-#: ../client/pk-console.c:389
+#: ../client/pk-console.c:390
 msgid "Updated"
 msgstr "Обновен"
 
-#: ../client/pk-console.c:476 ../client/pk-console.c:478
+#: ../client/pk-console.c:477 ../client/pk-console.c:479
 msgid "Percentage"
 msgstr "Процент"
 
-#: ../client/pk-console.c:478
+#: ../client/pk-console.c:479
 msgid "Unknown"
 msgstr "Неизвестно"
 
 #. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:529
+#: ../client/pk-console.c:521
 msgid "System restart required by:"
 msgstr "Изисква се рестартиране на машината от:"
 
 #. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:532
+#: ../client/pk-console.c:524
 msgid "Session restart required:"
 msgstr "Изисква се рестартиране на сесията:"
 
+#. TRANSLATORS: a package requires the system to be restarted due to a security update
+#: ../client/pk-console.c:527
+#, fuzzy
+msgid "System restart (security) required by:"
+msgstr "Изисква се рестартиране на машината от:"
+
+#. TRANSLATORS: a package requires the session to be restarted due to a security update
+#: ../client/pk-console.c:530
+#, fuzzy
+msgid "Session restart (security) required:"
+msgstr "Изисква се рестартиране на сесията:"
+
 #. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:535
+#: ../client/pk-console.c:533
 msgid "Application restart required by:"
 msgstr "Изисква се рестартиране на програма от:"
 
-#. TRANSLATORS: a package needs to restart they system
-#: ../client/pk-console.c:572
+#. TRANSLATORS: a package needs to restart their system
+#: ../client/pk-console.c:588
 msgid "Please restart the computer to complete the update."
 msgstr "Рестартирайте компютъра, за да завършите инсталацията."
 
 #. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:575
+#: ../client/pk-console.c:591
 msgid "Please logout and login to complete the update."
 msgstr "Излезте и влезте отново в системата."
 
 #. TRANSLATORS: a package needs to restart the application
-#: ../client/pk-console.c:578
+#: ../client/pk-console.c:594
 msgid "Please restart the application as it is being used."
 msgstr "Рестартирайте приложението, защото в момента се ползва."
 
+#. TRANSLATORS: a package needs to restart their system (due to security)
+#: ../client/pk-console.c:597
+#, fuzzy
+msgid ""
+"Please restart the computer to complete the update as important security "
+"updates have been installed."
+msgstr "Рестартирайте компютъра, за да завършите инсталацията."
+
+#. TRANSLATORS: a package needs to restart the session (due to security)
+#: ../client/pk-console.c:600
+#, fuzzy
+msgid ""
+"Please logout and login to complete the update as important security updates "
+"have been installed."
+msgstr "Излезте и влезте отново в системата."
+
 #. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:691
+#: ../client/pk-console.c:727
 #, c-format
 msgid "The package %s is already installed"
 msgstr "Пакетът „%s“ вече е инсталиран"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:699
+#: ../client/pk-console.c:735
 #, c-format
 msgid "The package %s could not be installed: %s"
 msgstr "Пакетът „%s“ не може да бъде инсталиран: %s"
 
 #. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
-#: ../client/pk-console.c:724 ../client/pk-console.c:751
-#: ../client/pk-console.c:847 ../client/pk-console.c:964
+#: ../client/pk-console.c:760 ../client/pk-console.c:783
+#: ../client/pk-console.c:879 ../client/pk-console.c:996
 #: ../client/pk-tools-common.c:62 ../client/pk-tools-common.c:81
 #: ../client/pk-tools-common.c:89
 #, c-format
@@ -247,169 +281,172 @@ msgid "Internal error: %s"
 msgstr "Вътрешна грешка: %s"
 
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:732 ../client/pk-console.c:1360
+#: ../client/pk-console.c:768 ../client/pk-console.c:1392
 #, c-format
 msgid "This tool could not install the packages: %s"
 msgstr "Този инструмент не може да инсталира следните пакети: %s"
 
 #. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:759
+#: ../client/pk-console.c:791
 #, c-format
 msgid "This tool could not install the files: %s"
 msgstr "Този инструмент не може да инсталира следните файлове: %s"
 
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:815
+#: ../client/pk-console.c:847
 #, c-format
 msgid "This tool could not remove %s: %s"
 msgstr "Този инструмент не може да деинсталира „%s“: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:838 ../client/pk-console.c:876
-#: ../client/pk-console.c:909
+#: ../client/pk-console.c:870 ../client/pk-console.c:908
+#: ../client/pk-console.c:941
 #, c-format
 msgid "This tool could not remove the packages: %s"
 msgstr "Този инструмент не може да деинсталира следните пакети: %s"
 
 #. TRANSLATORS: When removing, we might have to remove other dependencies
-#: ../client/pk-console.c:888
+#: ../client/pk-console.c:920
 msgid "The following packages have to be removed:"
 msgstr "Следните пакети трябва да бъдат деинсталирани:"
 
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:895
+#: ../client/pk-console.c:927
 msgid "Proceed removing additional packages?"
 msgstr "Да се продължи ли с деинсталацията на пакети?"
 
 #. TRANSLATORS: We did not remove any packages
-#: ../client/pk-console.c:900
+#: ../client/pk-console.c:932
 msgid "The package removal was canceled!"
 msgstr "Деинсталирането на пакети бе отменено!"
 
 #. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:941
+#: ../client/pk-console.c:973
 #, c-format
 msgid "This tool could not download the package %s as it could not be found"
 msgstr ""
 "Този инструмент не може да изтегли пакета „%s“, защото не може да бъде открит"
 
 #. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:972
+#: ../client/pk-console.c:1004
 #, c-format
 msgid "This tool could not download the packages: %s"
 msgstr "Този инструмент не може да изтегли пакетите: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:999 ../client/pk-console.c:1008
+#: ../client/pk-console.c:1031 ../client/pk-console.c:1040
 #, c-format
 msgid "This tool could not update %s: %s"
 msgstr "Този инструмент не може да обнови „%s“: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1030 ../client/pk-console.c:1038
+#: ../client/pk-console.c:1062 ../client/pk-console.c:1070
 #, c-format
 msgid "This tool could not get the requirements for %s: %s"
 msgstr "Този инструмент не може да получи изискванията на „%s“: %s"
 
 #. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:1060 ../client/pk-console.c:1068
+#: ../client/pk-console.c:1092 ../client/pk-console.c:1100
 #, c-format
 msgid "This tool could not get the dependencies for %s: %s"
 msgstr "Този инструмент не може да получи зависимостите на „%s“: %s"
 
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:1090 ../client/pk-console.c:1098
+#: ../client/pk-console.c:1122 ../client/pk-console.c:1130
 #, c-format
 msgid "This tool could not get package details for %s: %s"
 msgstr "Този инструмент не може да получи подробностите за „%s“: %s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1120
+#: ../client/pk-console.c:1152
 #, c-format
 msgid "This tool could not find the files for %s: %s"
 msgstr "Този инструмент не може да открие файловете на „%s“: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1128
+#: ../client/pk-console.c:1160
 #, c-format
 msgid "This tool could not get the file list for %s: %s"
 msgstr "Този инструмент не може да открие списъка с файловете на „%s“: %s"
 
 #. TRANSLATORS: There was an error getting the list of packages. The filename follows
-#: ../client/pk-console.c:1150
+#: ../client/pk-console.c:1182
 #, c-format
 msgid "File already exists: %s"
 msgstr "Файлът вече съществува: %s"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1155 ../client/pk-console.c:1211
-#: ../client/pk-console.c:1286
+#: ../client/pk-console.c:1187 ../client/pk-console.c:1243
+#: ../client/pk-console.c:1318
 msgid "Getting package list"
 msgstr "Получаване на информация за пакета"
 
 #. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1161 ../client/pk-console.c:1217
-#: ../client/pk-console.c:1292
+#: ../client/pk-console.c:1193 ../client/pk-console.c:1249
+#: ../client/pk-console.c:1324
 #, c-format
 msgid "This tool could not get package list: %s"
 msgstr "Този инструмент не може да получи списъка с пакети: %s"
 
 #. TRANSLATORS: There was an error saving the list
-#: ../client/pk-console.c:1172
+#: ../client/pk-console.c:1204
 #, c-format
 msgid "Failed to save to disk"
 msgstr "Неуспешен запис на диска"
 
 #. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1206 ../client/pk-console.c:1281
+#: ../client/pk-console.c:1238 ../client/pk-console.c:1313
 #, c-format
 msgid "File does not exist: %s"
 msgstr "Файлът не съществува: %s"
 
 #. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1238
+#: ../client/pk-console.c:1270
 msgid "Packages to add"
 msgstr "Пакети за добавяне"
 
 #. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1246
+#: ../client/pk-console.c:1278
 msgid "Packages to remove"
 msgstr "Пакети за деинсталиране"
 
 #. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1314
+#: ../client/pk-console.c:1346
 #, c-format
 msgid "No new packages need to be installed"
 msgstr "Няма нови пакети за инсталиране"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1320
+#: ../client/pk-console.c:1352
 msgid "To install"
 msgstr "За инсталиране"
 
 #. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1332
+#: ../client/pk-console.c:1364
 msgid "Searching for package: "
 msgstr "Търсене на пакет: "
 
 #. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1336
+#: ../client/pk-console.c:1368
 msgid "not found."
 msgstr "не е открит."
 
 #. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1347
+#: ../client/pk-console.c:1379
 #, c-format
 msgid "No packages can be found to install"
 msgstr "Не са открити пакети за инсталиране"
 
 #. TRANSLATORS: installing new packages from package list
-#: ../client/pk-console.c:1353
+#. TRANSLATORS: we are now installing the debuginfo packages we found earlier
+#: ../client/pk-console.c:1385
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:886
+#, c-format
 msgid "Installing packages"
 msgstr "Инсталиране на пакети"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1389
+#: ../client/pk-console.c:1421
 #, c-format
 msgid "This tool could not find the update details for %s: %s"
 msgstr ""
@@ -417,7 +454,7 @@ msgstr ""
 "s“: %s"
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1397
+#: ../client/pk-console.c:1429
 #, c-format
 msgid "This tool could not get the update details for %s: %s"
 msgstr ""
@@ -425,228 +462,229 @@ msgstr ""
 "s“: %s"
 
 #. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
-#: ../client/pk-console.c:1443
+#: ../client/pk-console.c:1460
 msgid "Error:"
 msgstr "Грешка:"
 
 #. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1457
+#: ../client/pk-console.c:1474
 msgid "Package description"
 msgstr "Описание на пакета"
 
 #. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
-#: ../client/pk-console.c:1473
+#: ../client/pk-console.c:1490
 msgid "Message:"
 msgstr "Съобщение:"
 
 #. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1501
+#: ../client/pk-console.c:1518
 msgid "Package files"
 msgstr "Файлове на пакета"
 
 #. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1509
+#: ../client/pk-console.c:1526
 msgid "No files"
 msgstr "Без файлове"
 
 #. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1532
+#: ../client/pk-console.c:1549
 msgid "Repository signature required"
 msgstr "Изисква се подпис на хранилището"
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1542
+#: ../client/pk-console.c:1559
 msgid "Do you accept this signature?"
 msgstr "Приемате ли този подпис?"
 
 #. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1546
+#: ../client/pk-console.c:1563
 msgid "The signature was not accepted."
 msgstr "Подписът не бе приет."
 
 #. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1580
+#: ../client/pk-console.c:1597
 msgid "End user license agreement required"
 msgstr "Изисква се съгласие с лицензионно споразумение с краен потребител"
 
 #. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1587
+#: ../client/pk-console.c:1604
 msgid "Do you agree to this license?"
 msgstr "Приемате ли този лиценз?"
 
 #. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1591
+#: ../client/pk-console.c:1608
 msgid "The license was refused."
 msgstr "Лицензът не бе приет."
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1620
+#: ../client/pk-console.c:1637
 msgid "The daemon crashed mid-transaction!"
 msgstr "Демонът заби по време на транзакция!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1673
+#: ../client/pk-console.c:1690
 msgid "PackageKit Console Interface"
 msgstr "Конзолен интерфейс на PackageKit Console"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1675
+#: ../client/pk-console.c:1692
 msgid "Subcommands:"
 msgstr "Подкоманди:"
 
 #. TRANSLATORS: command line argument, if we should show debugging information
 #. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:1767 ../client/pk-generate-pack.c:185
-#: ../client/pk-monitor.c:125
-#: ../contrib/command-not-found/pk-command-not-found.c:518
-#: ../src/pk-main.c:211
+#: ../client/pk-console.c:1785 ../client/pk-generate-pack.c:185
+#: ../client/pk-monitor.c:128
+#: ../contrib/command-not-found/pk-command-not-found.c:616
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:550
+#: ../contrib/device-rebind/pk-device-rebind.c:293 ../src/pk-main.c:211
 msgid "Show extra debugging information"
 msgstr "Показване на допълнителна информация за изчистване на грешки"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1770 ../client/pk-monitor.c:127
+#: ../client/pk-console.c:1788 ../client/pk-monitor.c:130
 msgid "Show the program version and exit"
 msgstr "Извеждане на версията на програмата и изход"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1773
+#: ../client/pk-console.c:1791
 msgid "Set the filter, e.g. installed"
 msgstr "Задаване на филтър, напр. инсталирани"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1776
+#: ../client/pk-console.c:1794
 msgid "Exit without waiting for actions to complete"
 msgstr "Изход без изчакване на завършването на действията"
 
 #. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:1803
+#: ../client/pk-console.c:1821
 msgid "This tool could not connect to system DBUS."
 msgstr "Този инструмент не може да се свърже към системната шина."
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1894
+#: ../client/pk-console.c:1911
 msgid "The filter specified was invalid"
 msgstr "Указаният филтър е неправилен"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1912
+#: ../client/pk-console.c:1930
 msgid "A search type is required, e.g. name"
 msgstr "Трябва да укажете вида на търсенето, напр. по име"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1918 ../client/pk-console.c:1926
-#: ../client/pk-console.c:1934 ../client/pk-console.c:1942
+#: ../client/pk-console.c:1937 ../client/pk-console.c:1946
+#: ../client/pk-console.c:1955 ../client/pk-console.c:1964
 msgid "A search term is required"
 msgstr "Трябва да укажете дума за търсене"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1948
+#: ../client/pk-console.c:1971
 msgid "Invalid search type"
 msgstr "Неправилен вид търсене"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1954
+#: ../client/pk-console.c:1977
 msgid "A package name or filename to install is required"
 msgstr "Трябва да укажете име на пакет или файл за инсталиране"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1962
+#: ../client/pk-console.c:1986
 msgid "A type, key_id and package_id are required"
 msgstr "Трябва да укажете вид, идентификатор на ключ и на пакет"
 
 #. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:1970
+#: ../client/pk-console.c:1995
 msgid "A package name to remove is required"
 msgstr "Трябва да укажете име на пакет за деинсталиране"
 
 #. TRANSLATORS: the user did not specify anything about what to download or where
-#: ../client/pk-console.c:1977
-msgid ""
-"A destination directory and then the package names to download are required"
+#: ../client/pk-console.c:2003
+#, fuzzy
+msgid "A destination directory and the package names to download are required"
 msgstr ""
 "Трябва да укажете целевата папка и имената на пакетите, които да се изтеглят"
 
 #. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:1983
+#: ../client/pk-console.c:2010
 msgid "Directory not found"
 msgstr "Папката не е открита"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1990
+#: ../client/pk-console.c:2018
 msgid "A licence identifier (eula-id) is required"
 msgstr "Трябва да укажете идентификатор на лиценз"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1999
+#: ../client/pk-console.c:2028
 msgid "A transaction identifier (tid) is required"
 msgstr "Трябва да укажете идентификатор на транзакция (tid)"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:2015
+#: ../client/pk-console.c:2045
 msgid "A package name to resolve is required"
 msgstr "Трябва да укажете име на пакет"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:2023 ../client/pk-console.c:2031
+#: ../client/pk-console.c:2054 ../client/pk-console.c:2063
 msgid "A repository name is required"
 msgstr "Трябва да укажете име на хранилището"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2039
+#: ../client/pk-console.c:2072
 msgid "A repo name, parameter and value are required"
 msgstr "Трябва да укажете име на хранилище, параметър и стойност"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:2052
+#: ../client/pk-console.c:2086
 msgid "An action, e.g. 'update-system' is required"
 msgstr "Трябва да укажете действие, напр. „update-system“"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:2058
+#: ../client/pk-console.c:2093
 msgid "A correct role is required"
 msgstr "Трябва да укажете правилна роля"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2064
+#: ../client/pk-console.c:2100
 msgid "Failed to get the time since this action was last completed"
 msgstr "Неуспешно получаване на времето от последно завършване на операцията"
 
 #. TRANSLATORS: The user did not provide a package name
 #. TRANSLATORS: This is when the user fails to supply the package name
-#: ../client/pk-console.c:2073 ../client/pk-console.c:2084
-#: ../client/pk-console.c:2092 ../client/pk-console.c:2108
-#: ../client/pk-console.c:2116 ../client/pk-generate-pack.c:241
+#: ../client/pk-console.c:2110 ../client/pk-console.c:2122
+#: ../client/pk-console.c:2131 ../client/pk-console.c:2149
+#: ../client/pk-console.c:2158 ../client/pk-generate-pack.c:241
 msgid "A package name is required"
 msgstr "Трябва да укажете име на пакет"
 
 #. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:2100
+#: ../client/pk-console.c:2140
 msgid "A package provide string is required"
 msgstr "Трябва да укажете име на пакет предоставящ ресурса"
 
 #. TRANSLATORS: The user didn't specify a filename to create as a list
-#: ../client/pk-console.c:2124
+#: ../client/pk-console.c:2167
 msgid "A list file name to create is required"
 msgstr "Трябва да укажете име на списък с файлове, който да се създаде"
 
 #. TRANSLATORS: The user didn't specify a filename to open as a list
-#: ../client/pk-console.c:2133 ../client/pk-console.c:2142
+#: ../client/pk-console.c:2177 ../client/pk-console.c:2187
 msgid "A list file to open is required"
 msgstr "Трябва да укажете име на списък с файлове, който да бъде отворен"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2195
+#: ../client/pk-console.c:2241
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "Опцията „%s“ не се поддържа"
 
 #. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2208
+#: ../client/pk-console.c:2254
 msgid "Incorrect privileges for this operation"
 msgstr "Нямате необходимите права за тази операция"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2211
+#: ../client/pk-console.c:2257
 msgid "Command failed"
 msgstr "Неуспешна команда"
 
@@ -707,65 +745,76 @@ msgstr "Трябва да укажете изходен файл или папк
 msgid "The package manager cannot perform this type of operation."
 msgstr "Мениджърът на пакети не може да извърши тази операция."
 
+#. TRANSLATORS: This is when the distro didn't include libarchive support into PK
+#: ../client/pk-generate-pack.c:280
+msgid ""
+"Service packs cannot be created as PackageKit was not built with libarchive "
+"support."
+msgstr ""
+
 #. TRANSLATORS: the user specified an absolute path, but didn't get the extension correct
-#: ../client/pk-generate-pack.c:285
+#: ../client/pk-generate-pack.c:291
 msgid "If specifying a file, the service pack name must end with"
 msgstr "Ако указвате файл, името на сервизния пакет трябва да завършва с"
 
 #. TRANSLATORS: This is when file already exists
-#: ../client/pk-generate-pack.c:301
+#: ../client/pk-generate-pack.c:307
 msgid "A pack with the same name already exists, do you want to overwrite it?"
 msgstr ""
 "Вече съществува сервизен пакет с такова име. Искате ли да го презапишете?"
 
 #. TRANSLATORS: This is when the pack was not overwritten
-#: ../client/pk-generate-pack.c:304
+#: ../client/pk-generate-pack.c:310
 msgid "The pack was not overwritten."
 msgstr "Сервизният пакет не бе презаписан."
 
 #. TRANSLATORS: This is when the temporary directory cannot be created, the directory name follows
-#: ../client/pk-generate-pack.c:317
+#: ../client/pk-generate-pack.c:323
 msgid "Failed to create directory:"
 msgstr "Следната папка не бе създадена:"
 
 #. TRANSLATORS: This is when the list of packages from the remote computer cannot be opened
-#: ../client/pk-generate-pack.c:327
+#: ../client/pk-generate-pack.c:333
 msgid "Failed to open package list."
 msgstr "Списъкът с пакети не можа да бъде отворен."
 
 #. TRANSLATORS: The package name is being matched up to available packages
-#: ../client/pk-generate-pack.c:338
+#: ../client/pk-generate-pack.c:344
 msgid "Finding package name."
 msgstr "Търсене на пакет по име."
 
 #. TRANSLATORS: This is when the package cannot be found in any software source. The detailed error follows
-#: ../client/pk-generate-pack.c:342
+#: ../client/pk-generate-pack.c:348
 #, c-format
 msgid "Failed to find package '%s': %s"
 msgstr "Пакетът „%s“ не бе открит: %s"
 
 #. TRANSLATORS: This is telling the user we are in the process of making the pack
-#: ../client/pk-generate-pack.c:359
+#: ../client/pk-generate-pack.c:365
 msgid "Creating service pack..."
 msgstr "Създаване на сервизен пакет…"
 
 #. TRANSLATORS: we succeeded in making the file
-#: ../client/pk-generate-pack.c:366
+#: ../client/pk-generate-pack.c:372
 #, c-format
 msgid "Service pack created '%s'"
 msgstr "Сервизният пакет „%s“ е създаден"
 
 #. TRANSLATORS: we failed to make te file
-#: ../client/pk-generate-pack.c:371
+#: ../client/pk-generate-pack.c:377
 #, c-format
 msgid "Failed to create '%s': %s"
 msgstr "Неуспешно създаване на „%s“: %s"
 
 #. TRANSLATORS: this is a program that monitors PackageKit
-#: ../client/pk-monitor.c:143
+#: ../client/pk-monitor.c:146
 msgid "PackageKit Monitor"
 msgstr "Датчик на PackageKit"
 
+#: ../client/pk-monitor.c:183
+msgid "Cannot show the list of transactions"
+msgstr ""
+
 #. TRANSLATORS: The package was not found in any software sources
 #: ../client/pk-tools-common.c:118
 #, c-format
@@ -787,128 +836,433 @@ msgstr "Изберете правилния пакет: "
 msgid "Please enter a number from 1 to %i: "
 msgstr "Въведете число от 1 до %i: "
 
+#. TRANSLATORS: when we are getting data from the daemon
+#: ../contrib/browser-plugin/pk-plugin-install.c:466
+msgid "Getting package information..."
+msgstr "Получаване на информация за пакета…"
+
+#. TRANSLATORS: run an applicaiton
+#: ../contrib/browser-plugin/pk-plugin-install.c:472
+#, c-format
+msgid "Run %s"
+msgstr "Изпълняване на %s"
+
+#. TRANSLATORS: show the installed version of a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:478
+msgid "Installed version"
+msgstr "Инсталирана версия"
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:486
+#, c-format
+msgid "Run version %s now"
+msgstr "Незабавно изпълнение на версия %s"
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:492
+msgid "Run now"
+msgstr "Незабавно изпълнение"
+
+#. TRANSLATORS: update to a new version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:498
+#, c-format
+msgid "Update to version %s"
+msgstr "Обновяване до версия %s"
+
+#. TRANSLATORS: To install a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:504
+#, c-format
+msgid "Install %s now"
+msgstr "Инсталиране на %s"
+
+#. TRANSLATORS: the version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:507
+msgid "Version"
+msgstr "Версия"
+
+#. TRANSLATORS: noting found, so can't install
+#: ../contrib/browser-plugin/pk-plugin-install.c:512
+msgid "No packages found for your system"
+msgstr "За вашата система не са открити пакети"
+
+#. TRANSLATORS: package is being installed
+#: ../contrib/browser-plugin/pk-plugin-install.c:517
+msgid "Installing..."
+msgstr "Инсталиране…"
+
+#. TRANSLATORS: downloading repo data so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:349
+msgid "Downloading details about the software sources."
+msgstr ""
+
+#. TRANSLATORS: downloading file lists so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:353
+msgid "Downloading filelists (this may take some time to complete)."
+msgstr ""
+
+#. TRANSLATORS: waiting for native lock
+#: ../contrib/command-not-found/pk-command-not-found.c:357
+#, fuzzy
+msgid "Waiting for package manager lock."
+msgstr "Търсене на пакет по име."
+
+#. TRANSLATORS: loading package cache so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:361
+#, fuzzy
+msgid "Loading list of packages."
+msgstr "Изтегляне на пакети"
+
 #. TRANSLATORS: we failed to find the package, this shouldn't happen
-#: ../contrib/command-not-found/pk-command-not-found.c:369
+#: ../contrib/command-not-found/pk-command-not-found.c:420
 msgid "Failed to search for file"
 msgstr "Неуспешно търсене на файл"
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:493
+#: ../contrib/command-not-found/pk-command-not-found.c:557
 msgid "Failed to launch:"
 msgstr "Неуспешно стартиране:"
 
 #. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/command-not-found/pk-command-not-found.c:534
+#: ../contrib/command-not-found/pk-command-not-found.c:632
 msgid "PackageKit Command Not Found"
 msgstr "Командата на PackageKit не е открита"
 
 #. TRANSLATORS: the prefix of all the output telling the user why it's not executing
-#: ../contrib/command-not-found/pk-command-not-found.c:557
+#: ../contrib/command-not-found/pk-command-not-found.c:658
 msgid "Command not found."
 msgstr "Командата не е открита."
 
 #. TRANSLATORS: tell the user what we think the command is
-#: ../contrib/command-not-found/pk-command-not-found.c:564
+#: ../contrib/command-not-found/pk-command-not-found.c:665
 msgid "Similar command is:"
 msgstr "Подобна команда е:"
 
 #. TRANSLATORS: Ask the user if we should run the similar command
-#: ../contrib/command-not-found/pk-command-not-found.c:573
+#: ../contrib/command-not-found/pk-command-not-found.c:674
 msgid "Run similar command:"
 msgstr "Изпълняване на подобната команда:"
 
 #. TRANSLATORS: show the user a list of commands that they could have meant
 #. TRANSLATORS: show the user a list of commands we could run
-#: ../contrib/command-not-found/pk-command-not-found.c:585
-#: ../contrib/command-not-found/pk-command-not-found.c:594
+#: ../contrib/command-not-found/pk-command-not-found.c:686
+#: ../contrib/command-not-found/pk-command-not-found.c:695
 msgid "Similar commands are:"
 msgstr "Подобни команди са:"
 
 #. TRANSLATORS: ask the user to choose a file to run
-#: ../contrib/command-not-found/pk-command-not-found.c:601
+#: ../contrib/command-not-found/pk-command-not-found.c:702
 msgid "Please choose a command to run"
 msgstr "Изберете командата за изпълнение"
 
 #. TRANSLATORS: tell the user what package provides the command
-#: ../contrib/command-not-found/pk-command-not-found.c:616
+#: ../contrib/command-not-found/pk-command-not-found.c:721
 msgid "The package providing this file is:"
 msgstr "Пакетът, който предоставя този файл е:"
 
 #. TRANSLATORS: as the user if we want to install a package to provide the command
-#: ../contrib/command-not-found/pk-command-not-found.c:621
+#: ../contrib/command-not-found/pk-command-not-found.c:726
 #, c-format
 msgid "Install package '%s' to provide command '%s'?"
 msgstr "Да се инсталира ли пакетът „%s“, който предоставя командата „%s“?"
 
 #. TRANSLATORS: Show the user a list of packages that provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:642
+#: ../contrib/command-not-found/pk-command-not-found.c:747
 msgid "Packages providing this file are:"
 msgstr "Пакетите, които предоставят този файл са:"
 
 #. TRANSLATORS: Show the user a list of packages that they can install to provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:651
+#: ../contrib/command-not-found/pk-command-not-found.c:756
 msgid "Suitable packages are:"
 msgstr "Подходящите пакети са:"
 
 #. get selection
 #. TRANSLATORS: ask the user to choose a file to install
-#: ../contrib/command-not-found/pk-command-not-found.c:659
+#: ../contrib/command-not-found/pk-command-not-found.c:764
 msgid "Please choose a package to install"
 msgstr "Изберете пакета за инсталиране"
 
-#. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/src/contents.cpp:298
-msgid "Getting package information..."
-msgstr "Получаване на информация за пакета…"
+#. TRANSLATORS: we are starting to install the packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:187
+#, fuzzy
+msgid "Starting install"
+msgstr "За инсталиране"
 
-#. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/src/contents.cpp:304
+#. TRANSLATORS: we couldn't find the package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:397
+#, fuzzy, c-format
+msgid "Failed to find the package %s, or already installed: %s"
+msgstr "Пакетът „%s“ вече е инсталиран"
+
+#. command line argument, simulate what would be done, but don't actually do it
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:553
+msgid ""
+"Don't actually install any packages, only simulate what would be installed"
+msgstr ""
+
+#. command line argument, do we skip packages that depend on the ones specified
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:556
+msgid "Do not install dependencies of the core packages"
+msgstr ""
+
+#. command line argument, do we operate quietly
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:559
+msgid "Do not display information or progress"
+msgstr ""
+
+#. TRANSLATORS: tool that gets called when the command is not found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:577
+#, fuzzy
+msgid "PackageKit Debuginfo Installer"
+msgstr "Конзолен интерфейс на PackageKit Console"
+
+#. TRANSLATORS: the use needs to specify a list of package names on the command line
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:589
+#, fuzzy, c-format
+msgid "ERROR: Specify package names to install."
+msgstr "Няма нови пакети за инсталиране"
+
+#. TRANSLATORS: we are getting the list of repositories
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:623
+#, fuzzy, c-format
+msgid "Getting sources list"
+msgstr "Получаване на информация за пакета"
+
+#. TRANSLATORS: all completed 100%
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:641
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:681
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:716
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:800
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:844
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:911
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:955
 #, c-format
-msgid "Run %s"
-msgstr "Изпълняване на %s"
+msgid "OK."
+msgstr ""
 
-#. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/src/contents.cpp:310
-msgid "Installed version"
-msgstr "Инсталирана версия"
+#. TRANSLATORS: tell the user what we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:644
+#, c-format
+msgid "Found %i enabled and %i disabled sources."
+msgstr ""
 
-#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/src/contents.cpp:318
+#. TRANSLATORS: we're finding repositories that match out pattern
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:651
 #, c-format
-msgid "Run version %s now"
-msgstr "Незабавно изпълнение на версия %s"
+msgid "Finding debugging sources"
+msgstr ""
 
-#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/src/contents.cpp:324
-msgid "Run now"
-msgstr "Незабавно изпълнение"
+#. TRANSLATORS: tell the user what we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:684
+#, c-format
+msgid "Found %i disabled debuginfo repos."
+msgstr ""
 
-#. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/src/contents.cpp:330
+#. TRANSLATORS: we're now enabling all the debug sources we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:691
 #, c-format
-msgid "Update to version %s"
-msgstr "Обновяване до версия %s"
+msgid "Enabling debugging sources"
+msgstr ""
 
-#. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/src/contents.cpp:336
+#. TRANSLATORS: operation was not successful
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:701
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:785
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:829
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:896
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:940
+msgid "FAILED."
+msgstr ""
+
+#. TRANSLATORS: tell the user how many we enabled
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:719
 #, c-format
-msgid "Install %s now"
-msgstr "Инсталиране на %s"
+msgid "Enabled %i debugging sources."
+msgstr ""
 
-#. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/src/contents.cpp:339
-msgid "Version"
-msgstr "Версия"
+#. TRANSLATORS: we're now finding packages that match in all the repos
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:726
+#, fuzzy, c-format
+msgid "Finding debugging packages"
+msgstr "Търсене на пакет по име."
 
-#. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/src/contents.cpp:344
-msgid "No packages found for your system"
-msgstr "За вашата система не са открити пакети"
+#. TRANSLATORS: we couldn't find the package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:738
+#, fuzzy, c-format
+msgid "Failed to find the package %s: %s"
+msgstr "Пакетът „%s“ не бе открит: %s"
 
-#. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/src/contents.cpp:349
-msgid "Installing..."
-msgstr "Инсталиране…"
+#. TRANSLATORS: we couldn't find the debuginfo package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:761
+#, fuzzy, c-format
+msgid "Failed to find the debuginfo package %s: %s"
+msgstr "Пакетът „%s“ не бе открит: %s"
+
+#. TRANSLATORS: no debuginfo packages could be found to be installed
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:789
+#, fuzzy, c-format
+msgid "Found no packages to install."
+msgstr "Няма нови пакети за инсталиране"
+
+#. TRANSLATORS: tell the user we found some packages, and then list them
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:803
+#, fuzzy, c-format
+msgid "Found %i packages:"
+msgstr "Изтегляне на пакети"
+
+#. TRANSLATORS: tell the user we are searching for deps
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:819
+#, c-format
+msgid "Finding packages that depend on these packages"
+msgstr ""
+
+#. TRANSLATORS: could not install, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:832
+#, fuzzy, c-format
+msgid "Could not find dependant packages: %s"
+msgstr "Пакетът „%s“ не бе открит: %s"
+
+#. TRANSLATORS: tell the user we found some more packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:848
+#, c-format
+msgid "Found %i extra packages."
+msgstr ""
+
+#. TRANSLATORS: tell the user we found some more packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:852
+#, fuzzy, c-format
+msgid "No extra packages required."
+msgstr "Трябва да укажете име на пакет"
+
+#. TRANSLATORS: tell the user we found some packages (and deps), and then list them
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:861
+#, fuzzy, c-format
+msgid "Found %i packages to install:"
+msgstr "Няма нови пакети за инсталиране"
+
+#. TRANSLATORS: simulate mode is a testing mode where we quit before the action
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:874
+#, fuzzy, c-format
+msgid "Not installing packages in simulate mode"
+msgstr "Инсталиране на пакети"
+
+#. TRANSLATORS: could not install, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:899
+#, fuzzy, c-format
+msgid "Could not install packages: %s"
+msgstr "Този инструмент не може да инсталира следните пакети: %s"
+
+#. TRANSLATORS: we are now disabling all debuginfo repos we previously enabled
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:931
+#, c-format
+msgid "Disabling sources previously enabled"
+msgstr ""
+
+#. TRANSLATORS: no debuginfo packages could be found to be installed, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:943
+#, c-format
+msgid "Could not disable the debugging sources: %s"
+msgstr ""
+
+#. TRANSLATORS: we disabled all the debugging repos that we enabled before
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:958
+#, c-format
+msgid "Disabled %i debugging sources."
+msgstr ""
+
+#. TRANSLATORS: couldn't open device to write
+#: ../contrib/device-rebind/pk-device-rebind.c:61
+#, fuzzy
+msgid "Failed to open file"
+msgstr "Неуспешно търсене на файл"
+
+#. TRANSLATORS: could not write to the device
+#: ../contrib/device-rebind/pk-device-rebind.c:70
+#, fuzzy
+msgid "Failed to write to the file"
+msgstr "Неуспешно търсене на файл"
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:110
+#: ../contrib/device-rebind/pk-device-rebind.c:147
+#, fuzzy
+msgid "Failed to write to device"
+msgstr "Неуспешен запис на диска"
+
+#. TRANSLATORS: the device could not be found in sysfs
+#: ../contrib/device-rebind/pk-device-rebind.c:175
+#, fuzzy
+msgid "Device could not be found"
+msgstr "Пакетът не бе открит"
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:202
+#, fuzzy
+msgid "Failed to unregister driver"
+msgstr "Следната папка не бе създадена:"
+
+#. TRANSLATORS: we failed to bind the old driver
+#: ../contrib/device-rebind/pk-device-rebind.c:211
+#, fuzzy
+msgid "Failed to register driver"
+msgstr "Следната папка не бе създадена:"
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:260
+#, fuzzy
+msgid "Device path not found"
+msgstr "Папката не е открита"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:268
+msgid "Incorrect device path specified"
+msgstr ""
+
+#. command line argument, simulate what would be done, but don't actually do it
+#: ../contrib/device-rebind/pk-device-rebind.c:296
+msgid "Don't actually touch the hardware, only simulate what would be done"
+msgstr ""
+
+#. TRANSLATORS: command line option: a list of files to install
+#: ../contrib/device-rebind/pk-device-rebind.c:299
+msgid "Device paths"
+msgstr ""
+
+#. TRANSLATORS: tool that gets called when the device needs reloading after installing firmware
+#: ../contrib/device-rebind/pk-device-rebind.c:314
+#, fuzzy
+msgid "PackageKit Device Reloader"
+msgstr "Сервизен пакет на PackageKit"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:322
+msgid "You need to specify at least one valid device path"
+msgstr ""
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:332
+msgid "This script can only be used by the root user"
+msgstr ""
+
+#. TRANSLATORS: we're going to verify the path first
+#: ../contrib/device-rebind/pk-device-rebind.c:341
+msgid "Verifying device path"
+msgstr ""
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:346
+#, fuzzy
+msgid "Failed to verify device path"
+msgstr "Неуспешно търсене на файл"
+
+#. TRANSLATORS: we're going to try
+#: ../contrib/device-rebind/pk-device-rebind.c:360
+msgid "Attempting to rebind device"
+msgstr ""
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:365
+#, fuzzy
+msgid "Failed to rebind device"
+msgstr "Следната папка не бе създадена:"
 
 #: ../data/packagekit-catalog.xml.in.h:1
 msgid "PackageKit Catalog"
@@ -922,51 +1276,62 @@ msgstr "Списък с пакети на PackageKit"
 msgid "PackageKit Service Pack"
 msgstr "Сервизен пакет на PackageKit"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:1
+#. SECURITY:
+#. - Normal users do not require admin authentication to accept new
+#. licence agreements.
+#. - Change this to 'auth_admin' for environments where users should not
+#. be given the option to make legal decisions.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:7
 msgid "Accept EULA"
 msgstr "Приемане на EULA"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:2
+#: ../policy/org.freedesktop.packagekit.policy.in.h:8
 msgid "Authentication is required to accept a EULA"
 msgstr "За приемането на EULA се изисква идентификация"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:3
+#: ../policy/org.freedesktop.packagekit.policy.in.h:9
 msgid ""
 "Authentication is required to cancel a task that was not started by yourself"
 msgstr ""
 "Изисква се идентификация за отмяната на задача, която е стартирана от друг"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:4
+#: ../policy/org.freedesktop.packagekit.policy.in.h:10
 msgid "Authentication is required to change software source parameters"
 msgstr "За промяната на източниците на софтуер се изисква идентификация"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:5
+#: ../policy/org.freedesktop.packagekit.policy.in.h:11
 msgid ""
 "Authentication is required to consider a key used for signing packages as "
 "trusted"
 msgstr "За приемането на ключ за подписване на пакети се изисква идентификация"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:6
+#: ../policy/org.freedesktop.packagekit.policy.in.h:12
 msgid "Authentication is required to install a signed package"
 msgstr "За инсталирането на подписан пакет се изисква идентификация"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:7
+#: ../policy/org.freedesktop.packagekit.policy.in.h:13
 msgid "Authentication is required to install an untrusted package"
 msgstr "За инсталирането на недоверен пакет се изисква идентификация"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:8
+#: ../policy/org.freedesktop.packagekit.policy.in.h:14
 msgid "Authentication is required to refresh the system sources"
 msgstr "За обновяването на системните източници се изисква идентификация"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:9
+#: ../policy/org.freedesktop.packagekit.policy.in.h:15
+#, fuzzy
+msgid "Authentication is required to reload the device with a new driver"
+msgstr "За обновяването на системните източници се изисква идентификация"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:16
 msgid "Authentication is required to remove packages"
 msgstr "За деинсталирането на пакет се изисква идентификация"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:10
+#: ../policy/org.freedesktop.packagekit.policy.in.h:17
 msgid "Authentication is required to rollback a transaction"
 msgstr "За връщането на транзакция се изисква идентификация"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:11
+#: ../policy/org.freedesktop.packagekit.policy.in.h:18
 msgid ""
 "Authentication is required to set the network proxy used for downloading "
 "packages"
@@ -974,47 +1339,115 @@ msgstr ""
 "За задаването на сървър-посредник при изтеглянето на пакети се изисква "
 "идентификация"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:12
+#: ../policy/org.freedesktop.packagekit.policy.in.h:19
 msgid "Authentication is required to update packages"
 msgstr "За обновяването на пакети се изисква идентификация"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:13
+#. SECURITY:
+#. - Normal users are allowed to cancel their own task without
+#. authentication, but a different user id needs the admin password
+#. to cancel another users task.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:25
 msgid "Cancel foreign task"
 msgstr "Отмяна на чуждата задача"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:14
+#. SECURITY:
+#. - Normal users require admin authentication to enable or disable
+#. software sources as this can be used to enable new updates or
+#. install different versions of software.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:31
 msgid "Change software source parameters"
 msgstr "Промяна на параметрите на източник на софтуер"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:15
+#. SECURITY:
+#. - Normal users do not need authentication to install signed packages
+#. from signed repositories, as this cannot exploit a system.
+#. - Paranoid users (or parents!) can change this to 'auth_admin' or
+#. 'auth_admin_keep'.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:38
 msgid "Install signed package"
 msgstr "Инсталиране на подписан пакет"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:16
+#. SECURITY:
+#. - Normal users require admin authentication to install untrusted or
+#. unrecognised packages, as allowing users to do this without a
+#. password would be a massive security hole.
+#. - This is not retained as each package should be authenticated.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:45
 msgid "Install untrusted local file"
 msgstr "Инсталиране на недоверен локален файл"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:17
+#. SECURITY:
+#. - Normal users do not require admin authentication to refresh the
+#. cache, as this doesn't actually install or remove software.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:50
 msgid "Refresh system sources"
 msgstr "Обновяване на източниците на софтуер"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:18
+#. SECURITY:
+#. - Normal users require admin authentication to rebind a driver
+#. so that it works after we install firmware.
+#. - This should not be set to 'yes' as unprivileged users could then
+#. try to rebind drivers in use, for instance security authentication
+#. devices.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:58
+msgid "Reload a device"
+msgstr ""
+
+#. SECURITY:
+#. - Normal users require admin authentication to remove packages as
+#. this can make the system unbootable or stop other applications from
+#. working.
+#. - Be sure to close the tool used to remove the packages after the
+#. admin authentication has been obtained, otherwise packages can still
+#. be removed. If this is not possible, change this authentication to
+#. 'auth_admin'.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:68
 msgid "Remove package"
 msgstr "Деинсталиране на пакeт"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:19
+#. SECURITY:
+#. - Normal users require admin authentication to rollback system state
+#. as this will change a large number of packages, and could expose the
+#. system to previously patched security vulnerabilities.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:74
 msgid "Rollback to a previous transaction"
 msgstr "Връщане към минала транзакция"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:20
+#. SECURITY:
+#. - Normal users do not require admin authentication to set the proxy
+#. used for downloading packages.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:79
 msgid "Set network proxy"
 msgstr "Задаване на сървър-посредник"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:21
+#. SECURITY:
+#. - Normal users require admin authentication to add signing keys.
+#. - This implies adding an explicit trust, and should not be granted
+#. without a secure authentication.
+#. - This is not kept as each package should be authenticated.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:86
 msgid "Trust a key used for signing packages"
 msgstr "Доверен ключ за подписването на пакети"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:22
+#. SECURITY:
+#. - Normal users do not require admin authentication to update the
+#. system as the packages will be signed, and the action is required
+#. to update the system when unattended.
+#. - Changing this to anything other than 'yes' will break unattended
+#. updates.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:94
 msgid "Update packages"
 msgstr "Обновяване на пакети"
 
@@ -1083,8 +1516,50 @@ msgstr "Услуга PackageKit"
 msgid "Cannot connect to the system bus"
 msgstr "Не може да се осъществи връзка към системната шина"
 
-#. TRANSLATORS: cannot register on system bus, unknown reason
-#: ../src/pk-main.c:331
-#, c-format
-msgid "Error trying to start: %s\n"
+#. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error follows
+#: ../src/pk-main.c:334
+#, fuzzy
+msgid "Error trying to start:"
 msgstr "Грешка при опита за стартиране на: %s\n"
+
+#: ../src/pk-polkit-action-lookup.c:147
+#, fuzzy
+msgid "To install debugging packages, extra sources need to be enabled"
+msgstr "Няма нови пакети за инсталиране"
+
+#. TRANSLATORS: is not GPG signed
+#: ../src/pk-polkit-action-lookup.c:168 ../src/pk-polkit-action-lookup.c:187
+msgid "The software is not from a trusted source."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:173
+msgid "Do not update this package unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:174
+msgid "Do not update these packages unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:192
+msgid "Do not install this package unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:193
+msgid "Do not install these packages unless you are sure it is safe to do so."
+msgstr ""
+
+#. TRANSLATORS: warn the user that all bets are off
+#: ../src/pk-polkit-action-lookup.c:199
+msgid "Malicious software can damage your computer or cause other harm."
+msgstr ""
+
+#. TRANSLATORS: too many packages to list each one
+#: ../src/pk-polkit-action-lookup.c:274
+#, fuzzy
+msgid "Many packages"
+msgstr "Обновяване на пакети"
+
+#. TRANSLATORS: if the transaction is forced to install only trusted packages
+#: ../src/pk-polkit-action-lookup.c:334
+msgid "Only trusted"
+msgstr ""
diff --git a/po/bn_IN.po b/po/bn_IN.po
index d553769..62810da 100644
--- a/po/bn_IN.po
+++ b/po/bn_IN.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: packagekit.master\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-05-27 02:34+0000\n"
+"POT-Creation-Date: 2009-08-24 11:06+0100\n"
 "PO-Revision-Date: 2009-05-27 12:33+0530\n"
 "Last-Translator: Runa Bhattacharjee <runab at fedoraproject.org>\n"
 "Language-Team: Bengali INDIA <fedora-trans-bn_in at redhat.com>\n"
@@ -19,230 +19,264 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
 #. TRANSLATORS: this is an atomic transaction
-#: ../client/pk-console.c:234
+#: ../client/pk-console.c:235
 msgid "Transaction"
 msgstr "ট্রানসাকশন"
 
 #. TRANSLATORS: this is the time the transaction was started in system timezone
-#: ../client/pk-console.c:236
+#: ../client/pk-console.c:237
 msgid "System time"
 msgstr "সিস্টেমের সময়"
 
 #. TRANSLATORS: this is if the transaction succeeded or not
-#: ../client/pk-console.c:238
+#: ../client/pk-console.c:239
 msgid "Succeeded"
 msgstr "সফল"
 
 #. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:238 ../client/pk-console.c:405
+#: ../client/pk-console.c:239 ../client/pk-console.c:406
 msgid "True"
 msgstr "সত্য (true)"
 
-#: ../client/pk-console.c:238 ../client/pk-console.c:405
+#: ../client/pk-console.c:239 ../client/pk-console.c:406
 msgid "False"
 msgstr "অসত্য (false)"
 
 #. TRANSLATORS: this is the transactions role, e.g. "update-system"
-#: ../client/pk-console.c:240
+#. TRANSLATORS: the trasaction role, e.g. update-system
+#: ../client/pk-console.c:241 ../src/pk-polkit-action-lookup.c:327
 msgid "Role"
 msgstr "ভূমিকা"
 
 #. TRANSLATORS: this is The duration of the transaction
-#: ../client/pk-console.c:245
+#: ../client/pk-console.c:246
 msgid "Duration"
 msgstr "অবকাল"
 
-#: ../client/pk-console.c:245
+#: ../client/pk-console.c:246
 msgid "(seconds)"
 msgstr "(সেকেন্ড)"
 
 #. TRANSLATORS: this is The command line used to do the action
-#: ../client/pk-console.c:249
+#. TRANSLATORS: the command line of the thing that wants the authentication
+#: ../client/pk-console.c:250 ../src/pk-polkit-action-lookup.c:341
 msgid "Command line"
 msgstr "কমান্ড-লাইন"
 
 #. TRANSLATORS: this is the user ID of the user that started the action
-#: ../client/pk-console.c:251
+#: ../client/pk-console.c:252
 msgid "User ID"
 msgstr "ব্যবহারকারীর ID"
 
 #. TRANSLATORS: this is the username, e.g. hughsie
-#: ../client/pk-console.c:258
+#: ../client/pk-console.c:259
 msgid "Username"
 msgstr "ব্যবহারকারীর নাম"
 
 #. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
-#: ../client/pk-console.c:262
+#: ../client/pk-console.c:263
 msgid "Real name"
 msgstr "নাম"
 
-#: ../client/pk-console.c:270
+#: ../client/pk-console.c:271
 msgid "Affected packages:"
 msgstr "প্রভাবিত প্যাকেজ:"
 
-#: ../client/pk-console.c:272
+#: ../client/pk-console.c:273
 msgid "Affected packages: None"
 msgstr "প্রভাবিত প্যাকেজ: একটিও নয়"
 
 #. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:297
+#: ../client/pk-console.c:298
 msgid "Distribution"
 msgstr "ডিস্ট্রিবিউশন"
 
 #. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:299
+#: ../client/pk-console.c:300
 msgid "Type"
 msgstr "ধরন"
 
 #. TRANSLATORS: this is any summary text describing the upgrade
 #. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:301 ../client/pk-console.c:324
+#: ../client/pk-console.c:302 ../client/pk-console.c:325
 msgid "Summary"
 msgstr "সার-সংক্ষেপ"
 
 #. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:313
+#: ../client/pk-console.c:314
 msgid "Category"
 msgstr "শ্রেণী"
 
 #. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:315
+#: ../client/pk-console.c:316
 msgid "ID"
 msgstr "ID"
 
 #. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:318
+#: ../client/pk-console.c:319
 msgid "Parent"
 msgstr "ঊর্ধ্বতন"
 
 #. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:321
+#: ../client/pk-console.c:322
 msgid "Name"
 msgstr "নাম"
 
 #. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:327
+#: ../client/pk-console.c:328
 msgid "Icon"
 msgstr "আইকন"
 
 #. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:342
+#: ../client/pk-console.c:343
 msgid "Details about the update:"
 msgstr "আপডেট সংক্রান্ত বিবরণ:"
 
 #. TRANSLATORS: details about the update, package name and version
-#: ../client/pk-console.c:344
+#. TRANSLATORS: title, the names of the packages that the method is processing
+#: ../client/pk-console.c:345 ../src/pk-polkit-action-lookup.c:352
+#, fuzzy
 msgid "Package"
-msgstr "প্যাকেজ"
+msgid_plural "Packages"
+msgstr[0] "প্যাকেজ"
+msgstr[1] "প্যাকেজ"
 
 #. TRANSLATORS: details about the update, any packages that this update updates
-#: ../client/pk-console.c:347
+#: ../client/pk-console.c:348
 msgid "Updates"
 msgstr "আপডেট"
 
 #. TRANSLATORS: details about the update, any packages that this update obsoletes
-#: ../client/pk-console.c:351
+#: ../client/pk-console.c:352
 msgid "Obsoletes"
 msgstr "অবচিত"
 
 #. TRANSLATORS: details about the update, the vendor URLs
-#: ../client/pk-console.c:355
+#: ../client/pk-console.c:356
 msgid "Vendor"
 msgstr "বিক্রেতা"
 
 #. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:359
+#: ../client/pk-console.c:360
 msgid "Bugzilla"
 msgstr "Bugzilla"
 
 #. TRANSLATORS: details about the update, the CVE URLs
-#: ../client/pk-console.c:363
+#: ../client/pk-console.c:364
 msgid "CVE"
 msgstr "CVE"
 
 #. TRANSLATORS: details about the update, if the package requires a restart
-#: ../client/pk-console.c:367
+#: ../client/pk-console.c:368
 msgid "Restart"
 msgstr "পুনরারম্ভ"
 
 #. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:371
+#: ../client/pk-console.c:372
 msgid "Update text"
 msgstr "আপডেট সংক্রান্ত টেক্সট"
 
 #. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:375
+#: ../client/pk-console.c:376
 msgid "Changes"
 msgstr "পরিবর্তন"
 
 #. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:379
+#: ../client/pk-console.c:380
 msgid "State"
 msgstr "অবস্থা"
 
 #. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:384
+#: ../client/pk-console.c:385
 msgid "Issued"
 msgstr "প্রকাশনার সময়ক্ষণ"
 
 #. TRANSLATORS: details about the update, date the update was updated
-#: ../client/pk-console.c:389
+#: ../client/pk-console.c:390
 msgid "Updated"
 msgstr "আপডেটের সময়ক্ষণ"
 
-#: ../client/pk-console.c:476 ../client/pk-console.c:478
+#: ../client/pk-console.c:477 ../client/pk-console.c:479
 msgid "Percentage"
 msgstr "শতাংশ"
 
-#: ../client/pk-console.c:478
+#: ../client/pk-console.c:479
 msgid "Unknown"
 msgstr "অজানা"
 
 #. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:529
+#: ../client/pk-console.c:521
 msgid "System restart required by:"
 msgstr "চিহ্নিত প্যাকেজের ক্ষেত্রে সিস্টেম পুনরারম্ভ করা আবশ্যক:"
 
 #. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:532
+#: ../client/pk-console.c:524
 msgid "Session restart required:"
 msgstr "সেশান পুনরারম্ভ করা আবশ্যক:"
 
+#. TRANSLATORS: a package requires the system to be restarted due to a security update
+#: ../client/pk-console.c:527
+#, fuzzy
+msgid "System restart (security) required by:"
+msgstr "চিহ্নিত প্যাকেজের ক্ষেত্রে সিস্টেম পুনরারম্ভ করা আবশ্যক:"
+
+#. TRANSLATORS: a package requires the session to be restarted due to a security update
+#: ../client/pk-console.c:530
+#, fuzzy
+msgid "Session restart (security) required:"
+msgstr "সেশান পুনরারম্ভ করা আবশ্যক:"
+
 #. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:535
+#: ../client/pk-console.c:533
 msgid "Application restart required by:"
 msgstr "চিহ্নিত প্যাকেজের ক্ষেত্রে অ্যাপ্লিকেশন পুনরারম্ভ করা আবশ্যক:"
 
-#. TRANSLATORS: a package needs to restart they system
-#: ../client/pk-console.c:572
+#. TRANSLATORS: a package needs to restart their system
+#: ../client/pk-console.c:588
 msgid "Please restart the computer to complete the update."
 msgstr "আপডেট সম্পূর্ণ করার জন্য অনুগ্রহ করে কম্পিউটার পুনরায় আরম্ভ করুন।"
 
 #. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:575
+#: ../client/pk-console.c:591
 msgid "Please logout and login to complete the update."
 msgstr "আপডেট সম্পন্ন করার জন্য অনুগ্রহ করে লগ-আউট করে পুনরায় লগ-ইন করুন।"
 
 #. TRANSLATORS: a package needs to restart the application
-#: ../client/pk-console.c:578
+#: ../client/pk-console.c:594
 msgid "Please restart the application as it is being used."
 msgstr "অ্যাপ্লিকেশনটি বর্তমানে চলছে, অনুগ্রহ করে এটি পুনরারম্ভ করুন।"
 
+#. TRANSLATORS: a package needs to restart their system (due to security)
+#: ../client/pk-console.c:597
+#, fuzzy
+msgid ""
+"Please restart the computer to complete the update as important security "
+"updates have been installed."
+msgstr "আপডেট সম্পূর্ণ করার জন্য অনুগ্রহ করে কম্পিউটার পুনরায় আরম্ভ করুন।"
+
+#. TRANSLATORS: a package needs to restart the session (due to security)
+#: ../client/pk-console.c:600
+#, fuzzy
+msgid ""
+"Please logout and login to complete the update as important security updates "
+"have been installed."
+msgstr "আপডেট সম্পন্ন করার জন্য অনুগ্রহ করে লগ-আউট করে পুনরায় লগ-ইন করুন।"
+
 #. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:691
+#: ../client/pk-console.c:727
 #, c-format
 msgid "The package %s is already installed"
 msgstr "%s প্যাকেজটি বর্তমানে ইনস্টল করা রয়েছে"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:699
+#: ../client/pk-console.c:735
 #, c-format
 msgid "The package %s could not be installed: %s"
 msgstr "%s প্যাকেজ ইনস্টল করা যায়নি: %s"
 
 #. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
-#: ../client/pk-console.c:724 ../client/pk-console.c:751
-#: ../client/pk-console.c:847 ../client/pk-console.c:964
+#: ../client/pk-console.c:760 ../client/pk-console.c:783
+#: ../client/pk-console.c:879 ../client/pk-console.c:996
 #: ../client/pk-tools-common.c:62 ../client/pk-tools-common.c:81
 #: ../client/pk-tools-common.c:89
 #, c-format
@@ -250,399 +284,404 @@ msgid "Internal error: %s"
 msgstr "অভ্যন্তরীণ ত্রুটি: %s"
 
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:732 ../client/pk-console.c:1360
+#: ../client/pk-console.c:768 ../client/pk-console.c:1392
 #, c-format
 msgid "This tool could not install the packages: %s"
 msgstr "এই সামগ্রী দ্বারা প্যাকেজগুলি ইনস্টল করা যায়নি: %s"
 
 #. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:759
+#: ../client/pk-console.c:791
 #, c-format
 msgid "This tool could not install the files: %s"
 msgstr "এই সামগ্রী দ্বারা ফাইল ইনস্টল করা যায়নি: %s"
 
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:815
+#: ../client/pk-console.c:847
 #, c-format
 msgid "This tool could not remove %s: %s"
 msgstr "এই সামগ্রী দ্বারা %s মুছে ফেলা যায়নি: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:838 ../client/pk-console.c:876
-#: ../client/pk-console.c:909
+#: ../client/pk-console.c:870 ../client/pk-console.c:908
+#: ../client/pk-console.c:941
 #, c-format
 msgid "This tool could not remove the packages: %s"
 msgstr "এই সামগ্রী দ্বারা প্যাকেজ মুছে ফেলা যায়নি: %s"
 
 #. TRANSLATORS: When removing, we might have to remove other dependencies
-#: ../client/pk-console.c:888
+#: ../client/pk-console.c:920
 msgid "The following packages have to be removed:"
 msgstr "নিম্নলিখিত প্যাকেজগুলি অপসারণ করা আবশ্যক:"
 
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:895
+#: ../client/pk-console.c:927
 msgid "Proceed removing additional packages?"
 msgstr "অতিরিক্ত প্যাকেজ অপসারণ করা হবে কি?"
 
 #. TRANSLATORS: We did not remove any packages
-#: ../client/pk-console.c:900
+#: ../client/pk-console.c:932
 msgid "The package removal was canceled!"
 msgstr "প্যাকেজ অপসারণের কর্ম বাতিল করা হয়েছে!"
 
 #. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:941
+#: ../client/pk-console.c:973
 #, c-format
 msgid "This tool could not download the package %s as it could not be found"
 msgstr "%s প্যাকেজ পাওয়া না যাওয়ার ফলে এই সামগ্রী দ্বারা তা ডাউনলোড করা যায়নি"
 
 #. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:972
+#: ../client/pk-console.c:1004
 #, c-format
 msgid "This tool could not download the packages: %s"
 msgstr "এই সামগ্রী দ্বারা প্যাকেজ ডাউনলোড করা যায়নি: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:999 ../client/pk-console.c:1008
+#: ../client/pk-console.c:1031 ../client/pk-console.c:1040
 #, c-format
 msgid "This tool could not update %s: %s"
 msgstr "এই সামগ্রী দ্বারা %s আপডেট করা যায়নি: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1030 ../client/pk-console.c:1038
+#: ../client/pk-console.c:1062 ../client/pk-console.c:1070
 #, c-format
 msgid "This tool could not get the requirements for %s: %s"
 msgstr "এই সামগ্রী দ্বারা %s-র ক্ষেত্রে আবশ্যক মান পাওয়া যায়নি: %s"
 
 #. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:1060 ../client/pk-console.c:1068
+#: ../client/pk-console.c:1092 ../client/pk-console.c:1100
 #, c-format
 msgid "This tool could not get the dependencies for %s: %s"
 msgstr "এই সামগ্রী দ্বারা %s-র ক্ষেত্রে প্রয়োজনীয় নির্ভরতা পাওয়া যায়নি: %s"
 
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:1090 ../client/pk-console.c:1098
+#: ../client/pk-console.c:1122 ../client/pk-console.c:1130
 #, c-format
 msgid "This tool could not get package details for %s: %s"
 msgstr "এই সামগ্রী দ্বারা %s প্যাকেজ সংক্রান্ত বিবরণ পাওয়া যায়নি: %s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1120
+#: ../client/pk-console.c:1152
 #, c-format
 msgid "This tool could not find the files for %s: %s"
 msgstr "এই সামগ্রী দ্বারা %s প্যাকেজের ফাইল পাওয়া যায়নি: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1128
+#: ../client/pk-console.c:1160
 #, c-format
 msgid "This tool could not get the file list for %s: %s"
 msgstr "এই সামগ্রী দ্বারা %s-র ফাইলের তালিকা পাওয়া যায়নি: %s"
 
 #. TRANSLATORS: There was an error getting the list of packages. The filename follows
-#: ../client/pk-console.c:1150
+#: ../client/pk-console.c:1182
 #, c-format
 msgid "File already exists: %s"
 msgstr "উল্লিখিত ফাইল বর্তমানে উপস্থিত রয়েছে: %s"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1155 ../client/pk-console.c:1211
-#: ../client/pk-console.c:1286
+#: ../client/pk-console.c:1187 ../client/pk-console.c:1243
+#: ../client/pk-console.c:1318
 msgid "Getting package list"
 msgstr "প্যাকেজের তালিকা প্রাপ্ত করা হচ্ছে"
 
 #. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1161 ../client/pk-console.c:1217
-#: ../client/pk-console.c:1292
+#: ../client/pk-console.c:1193 ../client/pk-console.c:1249
+#: ../client/pk-console.c:1324
 #, c-format
 msgid "This tool could not get package list: %s"
 msgstr "এই সামগ্রী দ্বারা প্যাকেজের তালিকা তৈরি করা যায়নি: %s"
 
 #. TRANSLATORS: There was an error saving the list
-#: ../client/pk-console.c:1172
+#: ../client/pk-console.c:1204
 #, c-format
 msgid "Failed to save to disk"
 msgstr "ডিস্কে সংরক্ষণ করতে ব্যর্থ"
 
 #. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1206 ../client/pk-console.c:1281
+#: ../client/pk-console.c:1238 ../client/pk-console.c:1313
 #, c-format
 msgid "File does not exist: %s"
 msgstr "ফাইল উপস্থিত নেই: %s"
 
 #. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1238
+#: ../client/pk-console.c:1270
 msgid "Packages to add"
 msgstr "যোগ করার উদ্দেশ্যে চিহ্নিত প্যাকেজ"
 
 #. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1246
+#: ../client/pk-console.c:1278
 msgid "Packages to remove"
 msgstr "অপসারণের উদ্দেশ্যে চিহ্নিত প্যাকেজ"
 
 #. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1314
+#: ../client/pk-console.c:1346
 #, c-format
 msgid "No new packages need to be installed"
 msgstr "কোনো নতুন প্যাকেজ ইনস্টল করা যায়নি"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1320
+#: ../client/pk-console.c:1352
 msgid "To install"
 msgstr "ইনস্টলেশনের জন্য চিহ্নিত"
 
 #. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1332
+#: ../client/pk-console.c:1364
 msgid "Searching for package: "
 msgstr "প্যাকেজ অনুসন্ধান করা হচ্ছে: "
 
 #. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1336
+#: ../client/pk-console.c:1368
 msgid "not found."
 msgstr "পাওয়া যায়নি।"
 
 #. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1347
+#: ../client/pk-console.c:1379
 #, c-format
 msgid "No packages can be found to install"
 msgstr "ইনস্টলেশনের জন্য কোনো প্যাকেজ পাওয়া যায়নি"
 
 #. TRANSLATORS: installing new packages from package list
-#: ../client/pk-console.c:1353
+#. TRANSLATORS: we are now installing the debuginfo packages we found earlier
+#: ../client/pk-console.c:1385
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:886
+#, c-format
 msgid "Installing packages"
 msgstr "প্যাকেজ ইনস্টল করা হচ্ছে"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1389
+#: ../client/pk-console.c:1421
 #, c-format
 msgid "This tool could not find the update details for %s: %s"
 msgstr "এই সামগ্রী দ্বারা %s প্যাকেজের আপডেট সংক্রান্ত বিবরণ পাওয়া যায়নি: %s"
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1397
+#: ../client/pk-console.c:1429
 #, c-format
 msgid "This tool could not get the update details for %s: %s"
 msgstr "এই সামগ্রী দ্বারা %s প্যাকেজের আপডেট সংক্রান্ত বিবরণ প্রাপ্ত হয়নি: %s"
 
 #. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
-#: ../client/pk-console.c:1443
+#: ../client/pk-console.c:1460
 msgid "Error:"
 msgstr "ত্রুটি:"
 
 #. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1457
+#: ../client/pk-console.c:1474
 msgid "Package description"
 msgstr "প্যাকেজের বিবরণ"
 
 #. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
-#: ../client/pk-console.c:1473
+#: ../client/pk-console.c:1490
 msgid "Message:"
 msgstr "বার্তা:"
 
 #. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1501
+#: ../client/pk-console.c:1518
 msgid "Package files"
 msgstr "প্যাকেজের ফাইল"
 
 #. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1509
+#: ../client/pk-console.c:1526
 msgid "No files"
 msgstr "কোনো ফাইল উপস্থিত নেই"
 
 #. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1532
+#: ../client/pk-console.c:1549
 msgid "Repository signature required"
 msgstr "সংগ্রহস্থলের স্বাক্ষর আবশ্যক"
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1542
+#: ../client/pk-console.c:1559
 msgid "Do you accept this signature?"
 msgstr "এই স্বাক্ষর গ্রহণ করা হবে কি?"
 
 #. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1546
+#: ../client/pk-console.c:1563
 msgid "The signature was not accepted."
 msgstr "স্বাক্ষর গ্রহণ করা হয়নি।"
 
 #. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1580
+#: ../client/pk-console.c:1597
 msgid "End user license agreement required"
 msgstr "ব্যবহারকারীদের লাইসেন্স সংক্রান্ত চুক্তিপত্র আবশ্যক"
 
 #. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1587
+#: ../client/pk-console.c:1604
 msgid "Do you agree to this license?"
 msgstr "লাইসেন্স অনুযায়ী আপনি সম্মত কি?"
 
 #. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1591
+#: ../client/pk-console.c:1608
 msgid "The license was refused."
 msgstr "লাইসেন্স প্রত্যাখ্যান করা হয়েছে।"
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1620
+#: ../client/pk-console.c:1637
 msgid "The daemon crashed mid-transaction!"
 msgstr "সম্প্রচার চলাকালে ডেমন বিপর্যস্ত হয়েছে!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1673
+#: ../client/pk-console.c:1690
 msgid "PackageKit Console Interface"
 msgstr "PackageKit কনসোল ইন্টারফেস"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1675
+#: ../client/pk-console.c:1692
 msgid "Subcommands:"
 msgstr "সাব-কমান্ড:"
 
 #. TRANSLATORS: command line argument, if we should show debugging information
 #. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:1767 ../client/pk-generate-pack.c:185
-#: ../client/pk-monitor.c:125
-#: ../contrib/command-not-found/pk-command-not-found.c:520
-#: ../src/pk-main.c:211
+#: ../client/pk-console.c:1785 ../client/pk-generate-pack.c:185
+#: ../client/pk-monitor.c:128
+#: ../contrib/command-not-found/pk-command-not-found.c:616
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:550
+#: ../contrib/device-rebind/pk-device-rebind.c:293 ../src/pk-main.c:211
 msgid "Show extra debugging information"
 msgstr "ডিবাগ সংক্রান্ত অতিরিক্ত তথ্য প্রদর্শন করা হবে"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1770 ../client/pk-monitor.c:127
+#: ../client/pk-console.c:1788 ../client/pk-monitor.c:130
 msgid "Show the program version and exit"
 msgstr "প্রোগ্রামের সংস্করণ প্রদর্শন করে প্রস্থান করা হবে"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1773
+#: ../client/pk-console.c:1791
 msgid "Set the filter, e.g. installed"
 msgstr "ফিল্টার নির্ধারণ করুন, উদাহরণ, installed"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1776
+#: ../client/pk-console.c:1794
 msgid "Exit without waiting for actions to complete"
 msgstr "কর্ম সমাপ্তির অপেক্ষা না করে প্রস্থান করা হবে"
 
 #. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:1803
+#: ../client/pk-console.c:1821
 msgid "This tool could not connect to system DBUS."
 msgstr "এই সামগ্রী দ্বারা সিস্টেম DBUS-র সাথে সংযোগ স্থাপন করতে ব্যর্থ।"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1894
+#: ../client/pk-console.c:1911
 msgid "The filter specified was invalid"
 msgstr "নির্ধারিত ফিল্টার বৈধ নয়"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1912
+#: ../client/pk-console.c:1930
 msgid "A search type is required, e.g. name"
 msgstr "অনুসন্ধানের ধরন আবশ্যক, উদাহরণ নাম (name)"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1918 ../client/pk-console.c:1926
-#: ../client/pk-console.c:1934 ../client/pk-console.c:1942
+#: ../client/pk-console.c:1937 ../client/pk-console.c:1946
+#: ../client/pk-console.c:1955 ../client/pk-console.c:1964
 msgid "A search term is required"
 msgstr "অনুসন্ধানের উদ্দেশ্যে কিছু তথ্য লেখা আবশ্যক"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1948
+#: ../client/pk-console.c:1971
 msgid "Invalid search type"
 msgstr "অনুসন্ধানের ধরন বৈধ নয়"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1954
+#: ../client/pk-console.c:1977
 msgid "A package name or filename to install is required"
 msgstr "ইনস্টলেশনের জন্য প্যাকেজের নাম অথবা ফাইলের নাম উল্লেখ করা আবশ্যক"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1962
+#: ../client/pk-console.c:1986
 msgid "A type, key_id and package_id are required"
 msgstr "ধরন, key_id ও package_id উল্লেখ করা আবশ্যক"
 
 #. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:1970
+#: ../client/pk-console.c:1995
 msgid "A package name to remove is required"
 msgstr "অপসারণের জন্য প্যাকেজের নাম উল্লেখ করা আবশ্যক"
 
 #. TRANSLATORS: the user did not specify anything about what to download or where
-#: ../client/pk-console.c:1977
-msgid "A destination directory and then the package names to download are required"
+#: ../client/pk-console.c:2003
+#, fuzzy
+msgid "A destination directory and the package names to download are required"
 msgstr "উদ্দিষ্ট ডিরেক্টরি ও ডাউনলোড করার উদ্দেশ্যে প্যাকেজ উল্লেখ করা আবশ্যক"
 
 #. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:1983
+#: ../client/pk-console.c:2010
 msgid "Directory not found"
 msgstr "ডিরেক্টরি পাওয়া যায়নি"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1990
+#: ../client/pk-console.c:2018
 msgid "A licence identifier (eula-id) is required"
 msgstr "লাইসেন্স পরিচয়কারী (eula-id) উল্লেখ করা আবশ্যক"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1999
+#: ../client/pk-console.c:2028
 msgid "A transaction identifier (tid) is required"
 msgstr "ট্রানসাকশন পরিচয়কারী (tid) উল্লেখ করা আবশ্যক"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:2015
+#: ../client/pk-console.c:2045
 msgid "A package name to resolve is required"
 msgstr "মীমাংসা করার উদ্দেশ্যে প্যাকেজের নাম উল্লেখ করা আবশ্যক"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:2023 ../client/pk-console.c:2031
+#: ../client/pk-console.c:2054 ../client/pk-console.c:2063
 msgid "A repository name is required"
 msgstr "সংগ্রহস্থলের নাম উল্লেখ আবশ্যক"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2039
+#: ../client/pk-console.c:2072
 msgid "A repo name, parameter and value are required"
 msgstr "একটি repo-র নাম, পরামিতি ও মান নির্ধারণ করা আবশ্যক"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:2052
+#: ../client/pk-console.c:2086
 msgid "An action, e.g. 'update-system' is required"
 msgstr "কর্ম নির্ধারণ করা আবশ্যক, উদাহরণ 'update-system'"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:2058
+#: ../client/pk-console.c:2093
 msgid "A correct role is required"
 msgstr "সঠিক ভূমিকা উল্লেখ করা আবশ্যক"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2064
+#: ../client/pk-console.c:2100
 msgid "Failed to get the time since this action was last completed"
 msgstr "চিহ্নিত কর্ম সর্বশেষ সমাপ্তির সময়ের পরে অতিবাহিত সময় প্রাপ্ত করা যায়নি"
 
 #. TRANSLATORS: The user did not provide a package name
 #. TRANSLATORS: This is when the user fails to supply the package name
-#: ../client/pk-console.c:2073 ../client/pk-console.c:2084
-#: ../client/pk-console.c:2092 ../client/pk-console.c:2108
-#: ../client/pk-console.c:2116 ../client/pk-generate-pack.c:241
+#: ../client/pk-console.c:2110 ../client/pk-console.c:2122
+#: ../client/pk-console.c:2131 ../client/pk-console.c:2149
+#: ../client/pk-console.c:2158 ../client/pk-generate-pack.c:241
 msgid "A package name is required"
 msgstr "প্যাকেজের নাম উল্লেখ করা আবশ্যক"
 
 #. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:2100
+#: ../client/pk-console.c:2140
 msgid "A package provide string is required"
 msgstr "প্যাকেজ দ্বারা উপলব্ধ (provides) সামগ্রী সংক্রান্ত তথ্য উল্লেখ করা আবশ্যক"
 
 #. TRANSLATORS: The user didn't specify a filename to create as a list
-#: ../client/pk-console.c:2124
+#: ../client/pk-console.c:2167
 msgid "A list file name to create is required"
 msgstr "তালিকা রূপে নির্মাণের জন্য ফাইলের নাম উল্লেখ করা আবশ্যক"
 
 #. TRANSLATORS: The user didn't specify a filename to open as a list
-#: ../client/pk-console.c:2133 ../client/pk-console.c:2142
+#: ../client/pk-console.c:2177 ../client/pk-console.c:2187
 msgid "A list file to open is required"
 msgstr "তালিকা রূপে প্রদর্শনের জন্য ফাইলের নাম উল্লেখ করা আবশ্যক"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2195
+#: ../client/pk-console.c:2241
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "'%s' বিকল্পটি সমর্থিত নয়"
 
 #. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2208
+#: ../client/pk-console.c:2254
 msgid "Incorrect privileges for this operation"
 msgstr "এই কর্মের জন্য প্রয়োজনীয় অনুমতি আপনার জন্য উপলব্ধ নয়"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2211
+#: ../client/pk-console.c:2257
 msgid "Command failed"
 msgstr "কমান্ড বিফল"
 
@@ -668,8 +707,10 @@ msgstr "উপেক্ষা করার উদ্দেশ্যে নির
 
 #. TRANSLATORS: the output location
 #: ../client/pk-generate-pack.c:191
-msgid "The output file or directory (the current directory is used if ommitted)"
-msgstr "আউটপুট ফাইল অথবা ডিরেক্টরি (মান লেখা না হলে বর্তমান ডিরেক্টরি প্রয়োগ করা হবে)"
+msgid ""
+"The output file or directory (the current directory is used if ommitted)"
+msgstr ""
+"আউটপুট ফাইল অথবা ডিরেক্টরি (মান লেখা না হলে বর্তমান ডিরেক্টরি প্রয়োগ করা হবে)"
 
 #. TRANSLATORS: put a list of packages in the pack
 #: ../client/pk-generate-pack.c:194
@@ -707,17 +748,21 @@ msgstr "প্যাকেজ পরিচালন ব্যবস্থা দ
 msgid ""
 "Service packs cannot be created as PackageKit was not built with libarchive "
 "support."
-msgstr "libarchive সমর্থন সহ PackageKit নির্মিত না হওয়ার ফলে সার্ভিস প্যাক তৈরি করা সম্ভব নয়।"
+msgstr ""
+"libarchive সমর্থন সহ PackageKit নির্মিত না হওয়ার ফলে সার্ভিস প্যাক তৈরি করা সম্ভব "
+"নয়।"
 
 #. TRANSLATORS: the user specified an absolute path, but didn't get the extension correct
 #: ../client/pk-generate-pack.c:291
 msgid "If specifying a file, the service pack name must end with"
-msgstr "ফাইল নির্ধারণ করা হলে, সার্ভিস প্যাকের নামের শেষ চিহ্নিত মান উপস্থিত থাকা আবশ্যক"
+msgstr ""
+"ফাইল নির্ধারণ করা হলে, সার্ভিস প্যাকের নামের শেষ চিহ্নিত মান উপস্থিত থাকা আবশ্যক"
 
 #. TRANSLATORS: This is when file already exists
 #: ../client/pk-generate-pack.c:307
 msgid "A pack with the same name already exists, do you want to overwrite it?"
-msgstr "এই নামের একটি প্যাক বর্তমানে উপস্থিত রয়েছে, আপনি কি এটি নতুন করে লিখতে ইচ্ছুক?"
+msgstr ""
+"এই নামের একটি প্যাক বর্তমানে উপস্থিত রয়েছে, আপনি কি এটি নতুন করে লিখতে ইচ্ছুক?"
 
 #. TRANSLATORS: This is when the pack was not overwritten
 #: ../client/pk-generate-pack.c:310
@@ -763,10 +808,14 @@ msgid "Failed to create '%s': %s"
 msgstr "'%s' নির্মাণ করতে ব্যর্থ: %s"
 
 #. TRANSLATORS: this is a program that monitors PackageKit
-#: ../client/pk-monitor.c:143
+#: ../client/pk-monitor.c:146
 msgid "PackageKit Monitor"
 msgstr "PackageKit Monitor"
 
+#: ../client/pk-monitor.c:183
+msgid "Cannot show the list of transactions"
+msgstr ""
+
 #. TRANSLATORS: The package was not found in any software sources
 #: ../client/pk-tools-common.c:118
 #, c-format
@@ -788,55 +837,131 @@ msgstr "অনুগ্রহ করে সঠিক প্যাকেজ নà¦
 msgid "Please enter a number from 1 to %i: "
 msgstr "অনুগ্রহ করে ১ থেকে %i-র মধ্যে একটি সংখ্যা লিখুন: "
 
+#. TRANSLATORS: when we are getting data from the daemon
+#: ../contrib/browser-plugin/pk-plugin-install.c:466
+msgid "Getting package information..."
+msgstr "প্যাকেজ সংক্রান্ত তথ্য প্রাপ্ত করা হচ্ছে..."
+
+#. TRANSLATORS: run an applicaiton
+#: ../contrib/browser-plugin/pk-plugin-install.c:472
+#, c-format
+msgid "Run %s"
+msgstr "%s সঞ্চালন করুন"
+
+#. TRANSLATORS: show the installed version of a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:478
+msgid "Installed version"
+msgstr "ইনস্টল করা সংস্করণ"
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:486
+#, c-format
+msgid "Run version %s now"
+msgstr "%s সংস্করণ এখন সঞ্চালন করুন"
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:492
+msgid "Run now"
+msgstr "এখন সঞ্চালন করুন"
+
+#. TRANSLATORS: update to a new version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:498
+#, c-format
+msgid "Update to version %s"
+msgstr "%s সংস্করণে আপডেট করুন"
+
+#. TRANSLATORS: To install a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:504
+#, c-format
+msgid "Install %s now"
+msgstr "%s এখন ইনস্টল করুন"
+
+#. TRANSLATORS: the version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:507
+msgid "Version"
+msgstr "সংস্করণ"
+
+#. TRANSLATORS: noting found, so can't install
+#: ../contrib/browser-plugin/pk-plugin-install.c:512
+msgid "No packages found for your system"
+msgstr "আপনার সিস্টেমের জন্য কোনো প্যাকেজ পাওয়া যায়নি"
+
+#. TRANSLATORS: package is being installed
+#: ../contrib/browser-plugin/pk-plugin-install.c:517
+msgid "Installing..."
+msgstr "ইনস্টল করা হচ্ছে..."
+
+#. TRANSLATORS: downloading repo data so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:349
+msgid "Downloading details about the software sources."
+msgstr ""
+
+#. TRANSLATORS: downloading file lists so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:353
+msgid "Downloading filelists (this may take some time to complete)."
+msgstr ""
+
+#. TRANSLATORS: waiting for native lock
+#: ../contrib/command-not-found/pk-command-not-found.c:357
+#, fuzzy
+msgid "Waiting for package manager lock."
+msgstr "প্যাকেজের নাম অনুসন্ধান করা হচ্ছে।"
+
+#. TRANSLATORS: loading package cache so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:361
+#, fuzzy
+msgid "Loading list of packages."
+msgstr "প্যাকেজ ডাউনলোড করা হচ্ছে"
+
 #. TRANSLATORS: we failed to find the package, this shouldn't happen
-#: ../contrib/command-not-found/pk-command-not-found.c:371
+#: ../contrib/command-not-found/pk-command-not-found.c:420
 msgid "Failed to search for file"
 msgstr "ফাইল অনুসন্ধান করতে ব্যর্থ"
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:495
+#: ../contrib/command-not-found/pk-command-not-found.c:557
 msgid "Failed to launch:"
 msgstr "চিহ্নিত সামগ্রী আরম্ভ করতে ব্যর্থ:"
 
 #. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/command-not-found/pk-command-not-found.c:536
+#: ../contrib/command-not-found/pk-command-not-found.c:632
 msgid "PackageKit Command Not Found"
 msgstr "PackageKit কমান্ড পাওয়া যায়নি"
 
 #. TRANSLATORS: the prefix of all the output telling the user why it's not executing
-#: ../contrib/command-not-found/pk-command-not-found.c:559
+#: ../contrib/command-not-found/pk-command-not-found.c:658
 msgid "Command not found."
 msgstr "কমান্ড পাওয়া যায়নি।"
 
 #. TRANSLATORS: tell the user what we think the command is
-#: ../contrib/command-not-found/pk-command-not-found.c:566
+#: ../contrib/command-not-found/pk-command-not-found.c:665
 msgid "Similar command is:"
 msgstr "অনুরূপ কমান্ড হল:"
 
 #. TRANSLATORS: Ask the user if we should run the similar command
-#: ../contrib/command-not-found/pk-command-not-found.c:575
+#: ../contrib/command-not-found/pk-command-not-found.c:674
 msgid "Run similar command:"
 msgstr "অনুরূপ কমান্ড সঞ্চালন করুন:"
 
 #. TRANSLATORS: show the user a list of commands that they could have meant
 #. TRANSLATORS: show the user a list of commands we could run
-#: ../contrib/command-not-found/pk-command-not-found.c:587
-#: ../contrib/command-not-found/pk-command-not-found.c:596
+#: ../contrib/command-not-found/pk-command-not-found.c:686
+#: ../contrib/command-not-found/pk-command-not-found.c:695
 msgid "Similar commands are:"
 msgstr "অনুরূপ কমান্ড হল:"
 
 #. TRANSLATORS: ask the user to choose a file to run
-#: ../contrib/command-not-found/pk-command-not-found.c:603
+#: ../contrib/command-not-found/pk-command-not-found.c:702
 msgid "Please choose a command to run"
 msgstr "অনুগ্রহ করে সঞ্চালনের জন্য কমান্ড নির্বাচন করুন"
 
 #. TRANSLATORS: tell the user what package provides the command
-#: ../contrib/command-not-found/pk-command-not-found.c:618
+#: ../contrib/command-not-found/pk-command-not-found.c:721
 msgid "The package providing this file is:"
 msgstr "এই প্যাকেজ উপলব্ধকারী ফাইল হল:"
 
 #. TRANSLATORS: as the user if we want to install a package to provide the command
-#: ../contrib/command-not-found/pk-command-not-found.c:623
+#: ../contrib/command-not-found/pk-command-not-found.c:726
 #, c-format
 msgid "Install package '%s' to provide command '%s'?"
 msgstr ""
@@ -844,74 +969,303 @@ msgstr ""
 "উপলব্ধ করা হবে।"
 
 #. TRANSLATORS: Show the user a list of packages that provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:644
+#: ../contrib/command-not-found/pk-command-not-found.c:747
 msgid "Packages providing this file are:"
 msgstr "এই ফাইল উপলব্ধকারী প্যাকেজগুলি হল:"
 
 #. TRANSLATORS: Show the user a list of packages that they can install to provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:653
+#: ../contrib/command-not-found/pk-command-not-found.c:756
 msgid "Suitable packages are:"
 msgstr "প্রযোজ্য প্যাকেজগুলি হল:"
 
 #. get selection
 #. TRANSLATORS: ask the user to choose a file to install
-#: ../contrib/command-not-found/pk-command-not-found.c:661
+#: ../contrib/command-not-found/pk-command-not-found.c:764
 msgid "Please choose a package to install"
 msgstr "অনুগ্রহ করে ইনস্টল করার জন্য একটি প্যাকেজ নির্বাচন করুন"
 
-#. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/src/contents.cpp:298
-msgid "Getting package information..."
-msgstr "প্যাকেজ সংক্রান্ত তথ্য প্রাপ্ত করা হচ্ছে..."
+#. TRANSLATORS: we are starting to install the packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:187
+#, fuzzy
+msgid "Starting install"
+msgstr "ইনস্টলেশনের জন্য চিহ্নিত"
 
-#. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/src/contents.cpp:304
+#. TRANSLATORS: we couldn't find the package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:397
+#, fuzzy, c-format
+msgid "Failed to find the package %s, or already installed: %s"
+msgstr "%s প্যাকেজটি বর্তমানে ইনস্টল করা রয়েছে"
+
+#. command line argument, simulate what would be done, but don't actually do it
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:553
+msgid ""
+"Don't actually install any packages, only simulate what would be installed"
+msgstr ""
+
+#. command line argument, do we skip packages that depend on the ones specified
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:556
+msgid "Do not install dependencies of the core packages"
+msgstr ""
+
+#. command line argument, do we operate quietly
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:559
+msgid "Do not display information or progress"
+msgstr ""
+
+#. TRANSLATORS: tool that gets called when the command is not found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:577
+#, fuzzy
+msgid "PackageKit Debuginfo Installer"
+msgstr "PackageKit কনসোল ইন্টারফেস"
+
+#. TRANSLATORS: the use needs to specify a list of package names on the command line
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:589
+#, fuzzy, c-format
+msgid "ERROR: Specify package names to install."
+msgstr "কোনো নতুন প্যাকেজ ইনস্টল করা যায়নি"
+
+#. TRANSLATORS: we are getting the list of repositories
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:623
+#, fuzzy, c-format
+msgid "Getting sources list"
+msgstr "প্যাকেজের তালিকা প্রাপ্ত করা হচ্ছে"
+
+#. TRANSLATORS: all completed 100%
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:641
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:681
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:716
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:800
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:844
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:911
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:955
 #, c-format
-msgid "Run %s"
-msgstr "%s সঞ্চালন করুন"
+msgid "OK."
+msgstr ""
 
-#. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/src/contents.cpp:310
-msgid "Installed version"
-msgstr "ইনস্টল করা সংস্করণ"
+#. TRANSLATORS: tell the user what we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:644
+#, c-format
+msgid "Found %i enabled and %i disabled sources."
+msgstr ""
 
-#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/src/contents.cpp:318
+#. TRANSLATORS: we're finding repositories that match out pattern
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:651
 #, c-format
-msgid "Run version %s now"
-msgstr "%s সংস্করণ এখন সঞ্চালন করুন"
+msgid "Finding debugging sources"
+msgstr ""
 
-#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/src/contents.cpp:324
-msgid "Run now"
-msgstr "এখন সঞ্চালন করুন"
+#. TRANSLATORS: tell the user what we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:684
+#, c-format
+msgid "Found %i disabled debuginfo repos."
+msgstr ""
 
-#. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/src/contents.cpp:330
+#. TRANSLATORS: we're now enabling all the debug sources we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:691
 #, c-format
-msgid "Update to version %s"
-msgstr "%s সংস্করণে আপডেট করুন"
+msgid "Enabling debugging sources"
+msgstr ""
 
-#. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/src/contents.cpp:336
+#. TRANSLATORS: operation was not successful
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:701
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:785
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:829
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:896
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:940
+msgid "FAILED."
+msgstr ""
+
+#. TRANSLATORS: tell the user how many we enabled
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:719
 #, c-format
-msgid "Install %s now"
-msgstr "%s এখন ইনস্টল করুন"
+msgid "Enabled %i debugging sources."
+msgstr ""
 
-#. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/src/contents.cpp:339
-msgid "Version"
-msgstr "সংস্করণ"
+#. TRANSLATORS: we're now finding packages that match in all the repos
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:726
+#, fuzzy, c-format
+msgid "Finding debugging packages"
+msgstr "প্যাকেজের নাম অনুসন্ধান করা হচ্ছে।"
 
-#. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/src/contents.cpp:344
-msgid "No packages found for your system"
-msgstr "আপনার সিস্টেমের জন্য কোনো প্যাকেজ পাওয়া যায়নি"
+#. TRANSLATORS: we couldn't find the package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:738
+#, fuzzy, c-format
+msgid "Failed to find the package %s: %s"
+msgstr "'%s' প্যাকেজ পাওয়া যায়নি: %s"
 
-#. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/src/contents.cpp:349
-msgid "Installing..."
-msgstr "ইনস্টল করা হচ্ছে..."
+#. TRANSLATORS: we couldn't find the debuginfo package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:761
+#, fuzzy, c-format
+msgid "Failed to find the debuginfo package %s: %s"
+msgstr "'%s' প্যাকেজ পাওয়া যায়নি: %s"
+
+#. TRANSLATORS: no debuginfo packages could be found to be installed
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:789
+#, fuzzy, c-format
+msgid "Found no packages to install."
+msgstr "কোনো নতুন প্যাকেজ ইনস্টল করা যায়নি"
+
+#. TRANSLATORS: tell the user we found some packages, and then list them
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:803
+#, fuzzy, c-format
+msgid "Found %i packages:"
+msgstr "প্যাকেজ ডাউনলোড করা হচ্ছে"
+
+#. TRANSLATORS: tell the user we are searching for deps
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:819
+#, c-format
+msgid "Finding packages that depend on these packages"
+msgstr ""
+
+#. TRANSLATORS: could not install, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:832
+#, fuzzy, c-format
+msgid "Could not find dependant packages: %s"
+msgstr "'%s' প্যাকেজ পাওয়া যায়নি: %s"
+
+#. TRANSLATORS: tell the user we found some more packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:848
+#, c-format
+msgid "Found %i extra packages."
+msgstr ""
+
+#. TRANSLATORS: tell the user we found some more packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:852
+#, fuzzy, c-format
+msgid "No extra packages required."
+msgstr "প্যাকেজের নাম উল্লেখ করা আবশ্যক"
+
+#. TRANSLATORS: tell the user we found some packages (and deps), and then list them
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:861
+#, fuzzy, c-format
+msgid "Found %i packages to install:"
+msgstr "কোনো নতুন প্যাকেজ ইনস্টল করা যায়নি"
+
+#. TRANSLATORS: simulate mode is a testing mode where we quit before the action
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:874
+#, fuzzy, c-format
+msgid "Not installing packages in simulate mode"
+msgstr "প্যাকেজ ইনস্টল করা হচ্ছে"
+
+#. TRANSLATORS: could not install, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:899
+#, fuzzy, c-format
+msgid "Could not install packages: %s"
+msgstr "এই সামগ্রী দ্বারা প্যাকেজগুলি ইনস্টল করা যায়নি: %s"
+
+#. TRANSLATORS: we are now disabling all debuginfo repos we previously enabled
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:931
+#, c-format
+msgid "Disabling sources previously enabled"
+msgstr ""
+
+#. TRANSLATORS: no debuginfo packages could be found to be installed, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:943
+#, c-format
+msgid "Could not disable the debugging sources: %s"
+msgstr ""
+
+#. TRANSLATORS: we disabled all the debugging repos that we enabled before
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:958
+#, c-format
+msgid "Disabled %i debugging sources."
+msgstr ""
+
+#. TRANSLATORS: couldn't open device to write
+#: ../contrib/device-rebind/pk-device-rebind.c:61
+#, fuzzy
+msgid "Failed to open file"
+msgstr "ফাইল অনুসন্ধান করতে ব্যর্থ"
+
+#. TRANSLATORS: could not write to the device
+#: ../contrib/device-rebind/pk-device-rebind.c:70
+#, fuzzy
+msgid "Failed to write to the file"
+msgstr "ফাইল অনুসন্ধান করতে ব্যর্থ"
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:110
+#: ../contrib/device-rebind/pk-device-rebind.c:147
+#, fuzzy
+msgid "Failed to write to device"
+msgstr "ডিস্কে সংরক্ষণ করতে ব্যর্থ"
+
+#. TRANSLATORS: the device could not be found in sysfs
+#: ../contrib/device-rebind/pk-device-rebind.c:175
+#, fuzzy
+msgid "Device could not be found"
+msgstr "প্যাকেজ পাওয়া যায়নি"
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:202
+#, fuzzy
+msgid "Failed to unregister driver"
+msgstr "ডিরেক্টরি নির্মাণ করতে ব্যর্থ:"
+
+#. TRANSLATORS: we failed to bind the old driver
+#: ../contrib/device-rebind/pk-device-rebind.c:211
+#, fuzzy
+msgid "Failed to register driver"
+msgstr "ডিরেক্টরি নির্মাণ করতে ব্যর্থ:"
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:260
+#, fuzzy
+msgid "Device path not found"
+msgstr "ডিরেক্টরি পাওয়া যায়নি"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:268
+msgid "Incorrect device path specified"
+msgstr ""
+
+#. command line argument, simulate what would be done, but don't actually do it
+#: ../contrib/device-rebind/pk-device-rebind.c:296
+msgid "Don't actually touch the hardware, only simulate what would be done"
+msgstr ""
+
+#. TRANSLATORS: command line option: a list of files to install
+#: ../contrib/device-rebind/pk-device-rebind.c:299
+msgid "Device paths"
+msgstr ""
+
+#. TRANSLATORS: tool that gets called when the device needs reloading after installing firmware
+#: ../contrib/device-rebind/pk-device-rebind.c:314
+#, fuzzy
+msgid "PackageKit Device Reloader"
+msgstr "PackageKit সার্ভিস প্যাক"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:322
+msgid "You need to specify at least one valid device path"
+msgstr ""
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:332
+msgid "This script can only be used by the root user"
+msgstr ""
+
+#. TRANSLATORS: we're going to verify the path first
+#: ../contrib/device-rebind/pk-device-rebind.c:341
+msgid "Verifying device path"
+msgstr ""
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:346
+#, fuzzy
+msgid "Failed to verify device path"
+msgstr "ফাইল অনুসন্ধান করতে ব্যর্থ"
+
+#. TRANSLATORS: we're going to try
+#: ../contrib/device-rebind/pk-device-rebind.c:360
+msgid "Attempting to rebind device"
+msgstr ""
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:365
+#, fuzzy
+msgid "Failed to rebind device"
+msgstr "ডিরেক্টরি নির্মাণ করতে ব্যর্থ:"
 
 #: ../data/packagekit-catalog.xml.in.h:1
 msgid "PackageKit Catalog"
@@ -925,102 +1279,185 @@ msgstr "PackageKit প্যাকেজের তালিকা"
 msgid "PackageKit Service Pack"
 msgstr "PackageKit সার্ভিস প্যাক"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:1
+#. SECURITY:
+#. - Normal users do not require admin authentication to accept new
+#. licence agreements.
+#. - Change this to 'auth_admin' for environments where users should not
+#. be given the option to make legal decisions.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:7
 msgid "Accept EULA"
 msgstr "EULA-র শর্তাবলী গ্রহণ করুন"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:2
+#: ../policy/org.freedesktop.packagekit.policy.in.h:8
 msgid "Authentication is required to accept a EULA"
 msgstr "EULA-র শর্তাবলী গ্রহণ করার জন্য অনুমোদন প্রয়োজন"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:3
-msgid "Authentication is required to cancel a task that was not started by yourself"
+#: ../policy/org.freedesktop.packagekit.policy.in.h:9
+msgid ""
+"Authentication is required to cancel a task that was not started by yourself"
 msgstr "আপনার দ্বারা আরম্ভ না করা কোনো কর্ম বন্ধ করার জন্য অনুমোদন প্রয়োজন"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:4
+#: ../policy/org.freedesktop.packagekit.policy.in.h:10
 msgid "Authentication is required to change software source parameters"
 msgstr "সফ্টওয়্যারের উৎস সংক্রান্ত পরামিতি পরিবর্তনের জন্য অনুমোদন প্রয়োজন"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:5
+#: ../policy/org.freedesktop.packagekit.policy.in.h:11
 msgid ""
 "Authentication is required to consider a key used for signing packages as "
 "trusted"
-msgstr "প্যাকেজ স্বাক্ষর করার জন্য ব্যবহৃত কোনো কি-কে বিশ্বস্ত ধার্য করার জন্য অনুমোদন প্রয়োজন"
+msgstr ""
+"প্যাকেজ স্বাক্ষর করার জন্য ব্যবহৃত কোনো কি-কে বিশ্বস্ত ধার্য করার জন্য অনুমোদন প্রয়োজন"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:6
+#: ../policy/org.freedesktop.packagekit.policy.in.h:12
 msgid "Authentication is required to install a signed package"
 msgstr "স্বাক্ষরিত প্যাকেজ ইনস্টল করার জন্য অনুমোদন আবশ্যক"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:7
+#: ../policy/org.freedesktop.packagekit.policy.in.h:13
 msgid "Authentication is required to install an untrusted package"
 msgstr "অবিশ্বস্ত প্যাকেজ ইনস্টল করার জন্য অনুমোদন প্রয়োজন"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:8
+#: ../policy/org.freedesktop.packagekit.policy.in.h:14
 msgid "Authentication is required to refresh the system sources"
 msgstr "সিস্টেমের উৎস নতুন করে প্রদর্শনের জন্য অনুমোদন আবশ্যক"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:9
+#: ../policy/org.freedesktop.packagekit.policy.in.h:15
+#, fuzzy
+msgid "Authentication is required to reload the device with a new driver"
+msgstr "সিস্টেমের উৎস নতুন করে প্রদর্শনের জন্য অনুমোদন আবশ্যক"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:16
 msgid "Authentication is required to remove packages"
 msgstr "প্যাকেজ অপসারণের জন্য অনুমোদন প্রয়োজন"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:10
+#: ../policy/org.freedesktop.packagekit.policy.in.h:17
 msgid "Authentication is required to rollback a transaction"
 msgstr "ট্রানসাকশন রোল-ব্যাক করার জন্য অনুমোদন প্রয়োজন"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:11
+#: ../policy/org.freedesktop.packagekit.policy.in.h:18
 msgid ""
 "Authentication is required to set the network proxy used for downloading "
 "packages"
-msgstr "প্যাকেজ ডাউনলোড করার জন্য ব্যবহৃত নেটওয়ার্ক প্রক্সি নির্ধারণের জন্য অনুমোদন প্রয়োজন"
+msgstr ""
+"প্যাকেজ ডাউনলোড করার জন্য ব্যবহৃত নেটওয়ার্ক প্রক্সি নির্ধারণের জন্য অনুমোদন প্রয়োজন"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:12
+#: ../policy/org.freedesktop.packagekit.policy.in.h:19
 msgid "Authentication is required to update packages"
 msgstr "প্যাকেজ আপডেট করার জন্য অনুমোদন প্রয়োজন"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:13
+#. SECURITY:
+#. - Normal users are allowed to cancel their own task without
+#. authentication, but a different user id needs the admin password
+#. to cancel another users task.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:25
 msgid "Cancel foreign task"
 msgstr "বহিস্থিত কর্ম বাতিল করুন"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:14
+#. SECURITY:
+#. - Normal users require admin authentication to enable or disable
+#. software sources as this can be used to enable new updates or
+#. install different versions of software.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:31
 msgid "Change software source parameters"
 msgstr "সফ্টওয়্যার উৎসের পরামিতি পরিবর্তন করুন"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:15
+#. SECURITY:
+#. - Normal users do not need authentication to install signed packages
+#. from signed repositories, as this cannot exploit a system.
+#. - Paranoid users (or parents!) can change this to 'auth_admin' or
+#. 'auth_admin_keep'.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:38
 msgid "Install signed package"
 msgstr "স্বাক্ষরিত প্যাকেজ ইনস্টল করুন"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:16
+#. SECURITY:
+#. - Normal users require admin authentication to install untrusted or
+#. unrecognised packages, as allowing users to do this without a
+#. password would be a massive security hole.
+#. - This is not retained as each package should be authenticated.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:45
 msgid "Install untrusted local file"
 msgstr "অবিশ্বস্ত স্থানীয় ফাইল ইনস্টল করুন"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:17
+#. SECURITY:
+#. - Normal users do not require admin authentication to refresh the
+#. cache, as this doesn't actually install or remove software.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:50
 msgid "Refresh system sources"
 msgstr "সিস্টেমের উৎস নতুন করে পড়া হবে"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:18
+#. SECURITY:
+#. - Normal users require admin authentication to rebind a driver
+#. so that it works after we install firmware.
+#. - This should not be set to 'yes' as unprivileged users could then
+#. try to rebind drivers in use, for instance security authentication
+#. devices.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:58
+msgid "Reload a device"
+msgstr ""
+
+#. SECURITY:
+#. - Normal users require admin authentication to remove packages as
+#. this can make the system unbootable or stop other applications from
+#. working.
+#. - Be sure to close the tool used to remove the packages after the
+#. admin authentication has been obtained, otherwise packages can still
+#. be removed. If this is not possible, change this authentication to
+#. 'auth_admin'.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:68
 msgid "Remove package"
 msgstr "প্যাকেজ মুছে ফেলুন"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:19
+#. SECURITY:
+#. - Normal users require admin authentication to rollback system state
+#. as this will change a large number of packages, and could expose the
+#. system to previously patched security vulnerabilities.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:74
 msgid "Rollback to a previous transaction"
 msgstr "পূর্ববর্তী একটি ট্রানসাকশন রোল-ব্যাক করুন"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:20
+#. SECURITY:
+#. - Normal users do not require admin authentication to set the proxy
+#. used for downloading packages.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:79
 msgid "Set network proxy"
 msgstr "নেটওয়ার্ক প্রক্সি নির্ধারণ করুন"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:21
+#. SECURITY:
+#. - Normal users require admin authentication to add signing keys.
+#. - This implies adding an explicit trust, and should not be granted
+#. without a secure authentication.
+#. - This is not kept as each package should be authenticated.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:86
 msgid "Trust a key used for signing packages"
 msgstr "প্যাকেজ স্বাক্ষর করার জন্য একটি কি-কে বিশ্বস্ত রূপে ধার্য করুন"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:22
+#. SECURITY:
+#. - Normal users do not require admin authentication to update the
+#. system as the packages will be signed, and the action is required
+#. to update the system when unattended.
+#. - Changing this to anything other than 'yes' will break unattended
+#. updates.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:94
 msgid "Update packages"
 msgstr "প্যাকেজ আপডেট করুন"
 
 #. TRANSLATORS: failed due to DBus security
 #: ../src/pk-main.c:87
 msgid "Startup failed due to security policies on this machine."
-msgstr "এই মেশিনের জন্য নির্ধারিত নিরাপত্তা সংক্রান্ত নিয়মনীতির কারণে প্রারম্ভ করতে ব্যর্থ।"
+msgstr ""
+"এই মেশিনের জন্য নির্ধারিত নিরাপত্তা সংক্রান্ত নিয়মনীতির কারণে প্রারম্ভ করতে ব্যর্থ।"
 
 #. TRANSLATORS: only two ways this can fail...
 #: ../src/pk-main.c:89
@@ -1037,7 +1474,8 @@ msgstr "সঠিক ব্যবহারকারী (সাধারণত ro
 msgid ""
 "The org.freedesktop.PackageKit.conf file is not installed in the system "
 "directory:"
-msgstr "সিস্টেম ডিরেক্টরির মধ্যে org.freedesktop.PackageKit.conf ফাইলটি ইনস্টল করা হয়নি:"
+msgstr ""
+"সিস্টেম ডিরেক্টরির মধ্যে org.freedesktop.PackageKit.conf ফাইলটি ইনস্টল করা হয়নি:"
 
 #. TRANSLATORS: a backend is the system package tool, e.g. yum, apt
 #: ../src/pk-main.c:205
@@ -1079,9 +1517,49 @@ msgstr "PackageKit পরিসেবা"
 msgid "Cannot connect to the system bus"
 msgstr "সিস্টেম বাসের সাথে সংযোগ স্থাপন করতে ব্যর্থ"
 
-#. TRANSLATORS: cannot register on system bus, unknown reason
-#: ../src/pk-main.c:331
-#, c-format
+#. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error follows
+#: ../src/pk-main.c:334
 msgid "Error trying to start:"
 msgstr "আরম্ভ করতে সমস্যা:"
 
+#: ../src/pk-polkit-action-lookup.c:147
+#, fuzzy
+msgid "To install debugging packages, extra sources need to be enabled"
+msgstr "কোনো নতুন প্যাকেজ ইনস্টল করা যায়নি"
+
+#. TRANSLATORS: is not GPG signed
+#: ../src/pk-polkit-action-lookup.c:168 ../src/pk-polkit-action-lookup.c:187
+msgid "The software is not from a trusted source."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:173
+msgid "Do not update this package unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:174
+msgid "Do not update these packages unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:192
+msgid "Do not install this package unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:193
+msgid "Do not install these packages unless you are sure it is safe to do so."
+msgstr ""
+
+#. TRANSLATORS: warn the user that all bets are off
+#: ../src/pk-polkit-action-lookup.c:199
+msgid "Malicious software can damage your computer or cause other harm."
+msgstr ""
+
+#. TRANSLATORS: too many packages to list each one
+#: ../src/pk-polkit-action-lookup.c:274
+#, fuzzy
+msgid "Many packages"
+msgstr "প্যাকেজ আপডেট করুন"
+
+#. TRANSLATORS: if the transaction is forced to install only trusted packages
+#: ../src/pk-polkit-action-lookup.c:334
+msgid "Only trusted"
+msgstr ""
diff --git a/po/ca.po b/po/ca.po
index 3381775..551f343 100644
--- a/po/ca.po
+++ b/po/ca.po
@@ -22,7 +22,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: packagekit\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-03-27 19:07+0000\n"
+"POT-Creation-Date: 2009-08-24 11:06+0100\n"
 "PO-Revision-Date: 2009-03-27 08:46+0100\n"
 "Last-Translator: Xavier Conde Rueda <xavi.conde at gmail.com>\n"
 "Language-Team: Catalan <fedora at softcatala.net>\n"
@@ -32,230 +32,264 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
 
 #. TRANSLATORS: this is an atomic transaction
-#: ../client/pk-console.c:234
+#: ../client/pk-console.c:235
 msgid "Transaction"
 msgstr "Transacció"
 
 #. TRANSLATORS: this is the time the transaction was started in system timezone
-#: ../client/pk-console.c:236
+#: ../client/pk-console.c:237
 msgid "System time"
 msgstr "Temps del sistema"
 
 #. TRANSLATORS: this is if the transaction succeeded or not
-#: ../client/pk-console.c:238
+#: ../client/pk-console.c:239
 msgid "Succeeded"
 msgstr "Fet"
 
 #. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:238 ../client/pk-console.c:405
+#: ../client/pk-console.c:239 ../client/pk-console.c:406
 msgid "True"
 msgstr "Cert"
 
-#: ../client/pk-console.c:238 ../client/pk-console.c:405
+#: ../client/pk-console.c:239 ../client/pk-console.c:406
 msgid "False"
 msgstr "Fals"
 
 #. TRANSLATORS: this is the transactions role, e.g. "update-system"
-#: ../client/pk-console.c:240
+#. TRANSLATORS: the trasaction role, e.g. update-system
+#: ../client/pk-console.c:241 ../src/pk-polkit-action-lookup.c:327
 msgid "Role"
 msgstr "Rol"
 
 #. TRANSLATORS: this is The duration of the transaction
-#: ../client/pk-console.c:245
+#: ../client/pk-console.c:246
 msgid "Duration"
 msgstr "Durada"
 
-#: ../client/pk-console.c:245
+#: ../client/pk-console.c:246
 msgid "(seconds)"
 msgstr "(segons)"
 
 #. TRANSLATORS: this is The command line used to do the action
-#: ../client/pk-console.c:249
+#. TRANSLATORS: the command line of the thing that wants the authentication
+#: ../client/pk-console.c:250 ../src/pk-polkit-action-lookup.c:341
 msgid "Command line"
 msgstr "Línia d'ordres"
 
 #. TRANSLATORS: this is the user ID of the user that started the action
-#: ../client/pk-console.c:251
+#: ../client/pk-console.c:252
 msgid "User ID"
 msgstr "ID d'usuari"
 
 #. TRANSLATORS: this is the username, e.g. hughsie
-#: ../client/pk-console.c:258
+#: ../client/pk-console.c:259
 msgid "Username"
 msgstr "Nom d'usuari"
 
 #. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
-#: ../client/pk-console.c:262
+#: ../client/pk-console.c:263
 msgid "Real name"
 msgstr "Nom real"
 
-#: ../client/pk-console.c:270
+#: ../client/pk-console.c:271
 msgid "Affected packages:"
 msgstr "Paquets afectats:"
 
-#: ../client/pk-console.c:272
+#: ../client/pk-console.c:273
 msgid "Affected packages: None"
 msgstr "Paquets afectats: cap"
 
 #. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:297
+#: ../client/pk-console.c:298
 msgid "Distribution"
 msgstr "Distribució"
 
 #. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:299
+#: ../client/pk-console.c:300
 msgid "Type"
 msgstr "Tipus"
 
 #. TRANSLATORS: this is any summary text describing the upgrade
 #. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:301 ../client/pk-console.c:324
+#: ../client/pk-console.c:302 ../client/pk-console.c:325
 msgid "Summary"
 msgstr "Resum"
 
 #. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:313
+#: ../client/pk-console.c:314
 msgid "Category"
 msgstr "Categoria"
 
 #. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:315
+#: ../client/pk-console.c:316
 msgid "ID"
 msgstr "ID"
 
 #. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:318
+#: ../client/pk-console.c:319
 msgid "Parent"
 msgstr "Pare"
 
 #. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:321
+#: ../client/pk-console.c:322
 msgid "Name"
 msgstr "Nom"
 
 #. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:327
+#: ../client/pk-console.c:328
 msgid "Icon"
 msgstr "Icona"
 
 #. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:342
+#: ../client/pk-console.c:343
 msgid "Details about the update:"
 msgstr "Detalls quant a l'actualització:"
 
 #. TRANSLATORS: details about the update, package name and version
-#: ../client/pk-console.c:344
+#. TRANSLATORS: title, the names of the packages that the method is processing
+#: ../client/pk-console.c:345 ../src/pk-polkit-action-lookup.c:352
+#, fuzzy
 msgid "Package"
-msgstr "Paquet"
+msgid_plural "Packages"
+msgstr[0] "Paquet"
+msgstr[1] "Paquet"
 
 #. TRANSLATORS: details about the update, any packages that this update updates
-#: ../client/pk-console.c:347
+#: ../client/pk-console.c:348
 msgid "Updates"
 msgstr "Actualitzacions"
 
 #. TRANSLATORS: details about the update, any packages that this update obsoletes
-#: ../client/pk-console.c:351
+#: ../client/pk-console.c:352
 msgid "Obsoletes"
 msgstr "Obsolets"
 
 #. TRANSLATORS: details about the update, the vendor URLs
-#: ../client/pk-console.c:355
+#: ../client/pk-console.c:356
 msgid "Vendor"
 msgstr "Proveïdor"
 
 #. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:359
+#: ../client/pk-console.c:360
 msgid "Bugzilla"
 msgstr "Bugzilla"
 
 #. TRANSLATORS: details about the update, the CVE URLs
-#: ../client/pk-console.c:363
+#: ../client/pk-console.c:364
 msgid "CVE"
 msgstr "CVE"
 
 #. TRANSLATORS: details about the update, if the package requires a restart
-#: ../client/pk-console.c:367
+#: ../client/pk-console.c:368
 msgid "Restart"
 msgstr "Reinicia"
 
 #. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:371
+#: ../client/pk-console.c:372
 msgid "Update text"
 msgstr "Actualitza el text"
 
 #. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:375
+#: ../client/pk-console.c:376
 msgid "Changes"
 msgstr "Canvis"
 
 #. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:379
+#: ../client/pk-console.c:380
 msgid "State"
 msgstr "Estat"
 
 #. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:384
+#: ../client/pk-console.c:385
 msgid "Issued"
 msgstr "Emès"
 
 #. TRANSLATORS: details about the update, date the update was updated
-#: ../client/pk-console.c:389
+#: ../client/pk-console.c:390
 msgid "Updated"
 msgstr "Actualitzat"
 
-#: ../client/pk-console.c:476 ../client/pk-console.c:478
+#: ../client/pk-console.c:477 ../client/pk-console.c:479
 msgid "Percentage"
 msgstr "Percentatge"
 
-#: ../client/pk-console.c:478
+#: ../client/pk-console.c:479
 msgid "Unknown"
 msgstr "Desconegut"
 
 #. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:529
+#: ../client/pk-console.c:521
 msgid "System restart required by:"
 msgstr "Es requereix reiniciar el sistema per:"
 
 #. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:532
+#: ../client/pk-console.c:524
 msgid "Session restart required:"
 msgstr "Es requereix reiniciar la sessió:"
 
+#. TRANSLATORS: a package requires the system to be restarted due to a security update
+#: ../client/pk-console.c:527
+#, fuzzy
+msgid "System restart (security) required by:"
+msgstr "Es requereix reiniciar el sistema per:"
+
+#. TRANSLATORS: a package requires the session to be restarted due to a security update
+#: ../client/pk-console.c:530
+#, fuzzy
+msgid "Session restart (security) required:"
+msgstr "Es requereix reiniciar la sessió:"
+
 #. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:535
+#: ../client/pk-console.c:533
 msgid "Application restart required by:"
 msgstr "Es requereix reiniciar l'aplicació per:"
 
-#. TRANSLATORS: a package needs to restart they system
-#: ../client/pk-console.c:572
+#. TRANSLATORS: a package needs to restart their system
+#: ../client/pk-console.c:588
 msgid "Please restart the computer to complete the update."
 msgstr "Reinicieu l'ordinador per completar l'actualització."
 
 #. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:575
+#: ../client/pk-console.c:591
 msgid "Please logout and login to complete the update."
 msgstr "Sortiu i torneu a entrar per completar l'actualització."
 
 #. TRANSLATORS: a package needs to restart the application
-#: ../client/pk-console.c:578
+#: ../client/pk-console.c:594
 msgid "Please restart the application as it is being used."
 msgstr "Cal que reinicieu l'aplicació perquè s'està fent servir."
 
+#. TRANSLATORS: a package needs to restart their system (due to security)
+#: ../client/pk-console.c:597
+#, fuzzy
+msgid ""
+"Please restart the computer to complete the update as important security "
+"updates have been installed."
+msgstr "Reinicieu l'ordinador per completar l'actualització."
+
+#. TRANSLATORS: a package needs to restart the session (due to security)
+#: ../client/pk-console.c:600
+#, fuzzy
+msgid ""
+"Please logout and login to complete the update as important security updates "
+"have been installed."
+msgstr "Sortiu i torneu a entrar per completar l'actualització."
+
 #. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:691
+#: ../client/pk-console.c:727
 #, c-format
 msgid "The package %s is already installed"
 msgstr "El paquet %s ja està instal·lat"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:699
+#: ../client/pk-console.c:735
 #, c-format
 msgid "The package %s could not be installed: %s"
 msgstr "El paquet %s no s'ha pogut instal·lar: %s"
 
 #. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
-#: ../client/pk-console.c:724 ../client/pk-console.c:751
-#: ../client/pk-console.c:847 ../client/pk-console.c:964
+#: ../client/pk-console.c:760 ../client/pk-console.c:783
+#: ../client/pk-console.c:879 ../client/pk-console.c:996
 #: ../client/pk-tools-common.c:62 ../client/pk-tools-common.c:81
 #: ../client/pk-tools-common.c:89
 #, c-format
@@ -263,358 +297,367 @@ msgid "Internal error: %s"
 msgstr "Error intern: %s"
 
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:732 ../client/pk-console.c:1360
+#: ../client/pk-console.c:768 ../client/pk-console.c:1392
 #, c-format
 msgid "This tool could not install the packages: %s"
 msgstr "No s'ha pogut instal·lar els paquets: %s"
 
 #. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:759
+#: ../client/pk-console.c:791
 #, c-format
 msgid "This tool could not install the files: %s"
 msgstr "No s'ha pogut instal·lar els fitxers: %s"
 
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:815
+#: ../client/pk-console.c:847
 #, c-format
 msgid "This tool could not remove %s: %s"
 msgstr "No s'ha pogut esborrar %s: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:838 ../client/pk-console.c:876
-#: ../client/pk-console.c:909
+#: ../client/pk-console.c:870 ../client/pk-console.c:908
+#: ../client/pk-console.c:941
 #, c-format
 msgid "This tool could not remove the packages: %s"
 msgstr "No s'han pogut esborrar els paquets: %s"
 
 #. TRANSLATORS: When removing, we might have to remove other dependencies
-#: ../client/pk-console.c:888
+#: ../client/pk-console.c:920
 msgid "The following packages have to be removed:"
 msgstr "Els següents paquets s'han d'esborrar:"
 
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:895
+#: ../client/pk-console.c:927
 msgid "Proceed removing additional packages?"
 msgstr "Voleu esborrar paquets adicionals?"
 
 #. TRANSLATORS: We did not remove any packages
-#: ../client/pk-console.c:900
+#: ../client/pk-console.c:932
 msgid "The package removal was canceled!"
 msgstr "L'esborrament dels paquets s'ha cancel·lat!"
 
 #. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:941
+#: ../client/pk-console.c:973
 #, c-format
 msgid "This tool could not download the package %s as it could not be found"
 msgstr "No s'ha pogut baixar el paquet %s perquè no s'ha trobat"
 
 #. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:972
+#: ../client/pk-console.c:1004
 #, c-format
 msgid "This tool could not download the packages: %s"
 msgstr "No s'han pogut baixar els paquets: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:999 ../client/pk-console.c:1008
+#: ../client/pk-console.c:1031 ../client/pk-console.c:1040
 #, c-format
 msgid "This tool could not update %s: %s"
 msgstr "No s'ha pogut actualitzar %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1030 ../client/pk-console.c:1038
+#: ../client/pk-console.c:1062 ../client/pk-console.c:1070
 #, c-format
 msgid "This tool could not get the requirements for %s: %s"
 msgstr "No s'han pogut obtenir els requeriments per a %s: %s"
 
 #. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:1060 ../client/pk-console.c:1068
+#: ../client/pk-console.c:1092 ../client/pk-console.c:1100
 #, c-format
 msgid "This tool could not get the dependencies for %s: %s"
 msgstr "No s'han pogut obtenir les dependències per a %s: %s"
 
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:1090 ../client/pk-console.c:1098
+#: ../client/pk-console.c:1122 ../client/pk-console.c:1130
 #, c-format
 msgid "This tool could not get package details for %s: %s"
 msgstr "No s'ha pogut obtenir els detalls del paquet %s: %s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1120
+#: ../client/pk-console.c:1152
 #, c-format
 msgid "This tool could not find the files for %s: %s"
 msgstr "No s'han pogut trobar els fitxers %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1128
+#: ../client/pk-console.c:1160
 #, c-format
 msgid "This tool could not get the file list for %s: %s"
 msgstr "No s'ha pogut obtenir la llista de fitxers per a %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of packages. The filename follows
-#: ../client/pk-console.c:1150
+#: ../client/pk-console.c:1182
 #, c-format
 msgid "File already exists: %s"
 msgstr "El fitxer ja existeix: %s"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1155 ../client/pk-console.c:1211
-#: ../client/pk-console.c:1286
+#: ../client/pk-console.c:1187 ../client/pk-console.c:1243
+#: ../client/pk-console.c:1318
 msgid "Getting package list"
 msgstr "S'està obtenint la llista de paquets"
 
 #. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1161 ../client/pk-console.c:1217
-#: ../client/pk-console.c:1292
+#: ../client/pk-console.c:1193 ../client/pk-console.c:1249
+#: ../client/pk-console.c:1324
 #, c-format
 msgid "This tool could not get package list: %s"
 msgstr "No s'ha pogut obtenir la llista de paquets: %s"
 
 #. TRANSLATORS: There was an error saving the list
-#: ../client/pk-console.c:1172
+#: ../client/pk-console.c:1204
 #, c-format
 msgid "Failed to save to disk"
 msgstr "S'ha produït un error en desar al disc"
 
 #. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1206 ../client/pk-console.c:1281
+#: ../client/pk-console.c:1238 ../client/pk-console.c:1313
 #, c-format
 msgid "File does not exist: %s"
 msgstr "El fitxer no existeix: %s"
 
 #. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1238
+#: ../client/pk-console.c:1270
 msgid "Packages to add"
 msgstr "Paquets a afegir"
 
 #. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1246
+#: ../client/pk-console.c:1278
 msgid "Packages to remove"
 msgstr "Paquets a esborrar"
 
 #. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1314
+#: ../client/pk-console.c:1346
 #, c-format
 msgid "No new packages need to be installed"
 msgstr "No és necessari instal·lar paquets nous"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1320
+#: ../client/pk-console.c:1352
 msgid "To install"
 msgstr "Per a instal·lar"
 
 #. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1332
+#: ../client/pk-console.c:1364
 msgid "Searching for package: "
 msgstr "S'està cercant el paquet:"
 
 #. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1336
+#: ../client/pk-console.c:1368
 msgid "not found."
 msgstr "no s'ha trobat."
 
 #. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1347
+#: ../client/pk-console.c:1379
 #, c-format
 msgid "No packages can be found to install"
 msgstr "No s'han trobat paquets per a instal·lar"
 
 #. TRANSLATORS: installing new packages from package list
-#: ../client/pk-console.c:1353
+#. TRANSLATORS: we are now installing the debuginfo packages we found earlier
+#: ../client/pk-console.c:1385
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:886
+#, c-format
 msgid "Installing packages"
 msgstr "S'estan instal·lant els paquets"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1389
+#: ../client/pk-console.c:1421
 #, c-format
 msgid "This tool could not find the update details for %s: %s"
 msgstr "No s'han trobat els detalls per a actualitzar %s: %s"
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1397
+#: ../client/pk-console.c:1429
 #, c-format
 msgid "This tool could not get the update details for %s: %s"
 msgstr "No s'han pogut obtenir els detalls per a actualitzar %s: %s"
 
 #. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
-#: ../client/pk-console.c:1443
+#: ../client/pk-console.c:1460
 msgid "Error:"
 msgstr "S'ha produït un error:"
 
 #. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1457
+#: ../client/pk-console.c:1474
 msgid "Package description"
 msgstr "Descripció del paquet"
 
+#. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
+#: ../client/pk-console.c:1490
+msgid "Message:"
+msgstr ""
+
 #. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1491
+#: ../client/pk-console.c:1518
 msgid "Package files"
 msgstr "Fitxers del paquet"
 
 #. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1499
+#: ../client/pk-console.c:1526
 msgid "No files"
 msgstr "Sense fitxers"
 
 #. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1522
+#: ../client/pk-console.c:1549
 msgid "Repository signature required"
 msgstr "Es requereix la firma del repositori"
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1532
+#: ../client/pk-console.c:1559
 msgid "Do you accept this signature?"
 msgstr "Accepteu aquesta firma?"
 
 #. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1536
+#: ../client/pk-console.c:1563
 msgid "The signature was not accepted."
 msgstr "No s'ha acceptat la firma."
 
 #. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1570
+#: ../client/pk-console.c:1597
 msgid "End user license agreement required"
 msgstr "Es requeriex l'acord de llicència d'usuari final"
 
 #. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1577
+#: ../client/pk-console.c:1604
 msgid "Do you agree to this license?"
 msgstr "Esteu d'acord amb aquesta llicència?"
 
 #. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1581
+#: ../client/pk-console.c:1608
 msgid "The license was refused."
 msgstr "La llicència s'ha rebutjat."
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1610
+#: ../client/pk-console.c:1637
 msgid "The daemon crashed mid-transaction!"
 msgstr "Ha fallat el dimoni durant una transacció."
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1663
+#: ../client/pk-console.c:1690
 msgid "PackageKit Console Interface"
 msgstr "Interfície de consola de PackageKit"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1665
+#: ../client/pk-console.c:1692
 msgid "Subcommands:"
 msgstr "Subordres:"
 
 #. TRANSLATORS: command line argument, if we should show debugging information
 #. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:1757 ../client/pk-generate-pack.c:185
-#: ../client/pk-monitor.c:125
-#: ../contrib/command-not-found/pk-command-not-found.c:518
-#: ../src/pk-main.c:199
+#: ../client/pk-console.c:1785 ../client/pk-generate-pack.c:185
+#: ../client/pk-monitor.c:128
+#: ../contrib/command-not-found/pk-command-not-found.c:616
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:550
+#: ../contrib/device-rebind/pk-device-rebind.c:293 ../src/pk-main.c:211
 msgid "Show extra debugging information"
 msgstr "Mostra informació extra de depuració"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1760 ../client/pk-monitor.c:127
+#: ../client/pk-console.c:1788 ../client/pk-monitor.c:130
 msgid "Show the program version and exit"
 msgstr "Mostra la versió de l'aplicació i surt"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1763
+#: ../client/pk-console.c:1791
 msgid "Set the filter, e.g. installed"
 msgstr "Configura el filtre, p.e. instal·lats"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1766
+#: ../client/pk-console.c:1794
 msgid "Exit without waiting for actions to complete"
 msgstr "Surt sense esperar que les accions es completin"
 
 #. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:1793
+#: ../client/pk-console.c:1821
 msgid "This tool could not connect to system DBUS."
 msgstr "No s'ha pogut connectar amb el sistema DBUS."
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1880
+#: ../client/pk-console.c:1911
 msgid "The filter specified was invalid"
 msgstr "El filtre especificat era invàlid"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1898
+#: ../client/pk-console.c:1930
 msgid "A search type is required, e.g. name"
 msgstr "Es requreix un mot de cerca, p.e. nom"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1904 ../client/pk-console.c:1912
-#: ../client/pk-console.c:1920 ../client/pk-console.c:1928
+#: ../client/pk-console.c:1937 ../client/pk-console.c:1946
+#: ../client/pk-console.c:1955 ../client/pk-console.c:1964
 msgid "A search term is required"
 msgstr "Es requereix un terme de cerca"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1934
+#: ../client/pk-console.c:1971
 msgid "Invalid search type"
 msgstr "Tipus de cerca invàlida"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1940
+#: ../client/pk-console.c:1977
 msgid "A package name or filename to install is required"
 msgstr "Es requreix un nom de paquet o fitxer per instal·lar"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1948
+#: ../client/pk-console.c:1986
 msgid "A type, key_id and package_id are required"
 msgstr "Es requereixen un tipus, una clau_id i un paquet_id"
 
 #. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:1956
+#: ../client/pk-console.c:1995
 msgid "A package name to remove is required"
 msgstr "Es requereix un nom de paquet per eliminar"
 
 #. TRANSLATORS: the user did not specify anything about what to download or where
-#: ../client/pk-console.c:1963
-msgid ""
-"A destination directory and then the package names to download are required"
+#: ../client/pk-console.c:2003
+#, fuzzy
+msgid "A destination directory and the package names to download are required"
 msgstr ""
 "Us cal especificar el directori destí i els noms des paquets per a "
 "descarregar"
 
 #. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:1969
+#: ../client/pk-console.c:2010
 msgid "Directory not found"
 msgstr "No s'ha trobar el directori"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1976
+#: ../client/pk-console.c:2018
 msgid "A licence identifier (eula-id) is required"
 msgstr "Es requreix un identificador de llicència (eula-id)"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1985
+#: ../client/pk-console.c:2028
 msgid "A transaction identifier (tid) is required"
 msgstr "Es requreix un identificador de transacció (idt)"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:2001
+#: ../client/pk-console.c:2045
 msgid "A package name to resolve is required"
 msgstr "Es requereix un nom de paquet per resoldre"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:2009 ../client/pk-console.c:2017
+#: ../client/pk-console.c:2054 ../client/pk-console.c:2063
 msgid "A repository name is required"
 msgstr "Es requreix un nom del repositori"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2025
+#: ../client/pk-console.c:2072
 msgid "A repo name, parameter and value are required"
 msgstr "Es requreixen el nom o el paràmetre d'un repositori i el seu valor"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:2038
+#: ../client/pk-console.c:2086
 msgid "An action, e.g. 'update-system' is required"
 msgstr "Es requereix una acció, p.e. 'update-system'"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:2044
+#: ../client/pk-console.c:2093
 msgid "A correct role is required"
 msgstr "Es requereix un rol correcte"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2050
+#: ../client/pk-console.c:2100
 msgid "Failed to get the time since this action was last completed"
 msgstr ""
 "No s'ha pogut obtenir l'hora des que aquesta acció es va completar per "
@@ -622,40 +665,40 @@ msgstr ""
 
 #. TRANSLATORS: The user did not provide a package name
 #. TRANSLATORS: This is when the user fails to supply the package name
-#: ../client/pk-console.c:2059 ../client/pk-console.c:2070
-#: ../client/pk-console.c:2078 ../client/pk-console.c:2094
-#: ../client/pk-console.c:2102 ../client/pk-generate-pack.c:241
+#: ../client/pk-console.c:2110 ../client/pk-console.c:2122
+#: ../client/pk-console.c:2131 ../client/pk-console.c:2149
+#: ../client/pk-console.c:2158 ../client/pk-generate-pack.c:241
 msgid "A package name is required"
 msgstr "Es requreix un nom del paquet"
 
 #. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:2086
+#: ../client/pk-console.c:2140
 msgid "A package provide string is required"
 msgstr "Es requreix una cadena de proveïdor de paquet"
 
 #. TRANSLATORS: The user didn't specify a filename to create as a list
-#: ../client/pk-console.c:2110
+#: ../client/pk-console.c:2167
 msgid "A list file name to create is required"
 msgstr "Es requreix un fitxer de llista per crear"
 
 #. TRANSLATORS: The user didn't specify a filename to open as a list
-#: ../client/pk-console.c:2119 ../client/pk-console.c:2128
+#: ../client/pk-console.c:2177 ../client/pk-console.c:2187
 msgid "A list file to open is required"
 msgstr "Es requereix un fitxer de llista per obrir"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2181
+#: ../client/pk-console.c:2241
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "L'opció '%s' no està disponible"
 
 #. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2194
+#: ../client/pk-console.c:2254
 msgid "Incorrect privileges for this operation"
 msgstr "No teniu els privilegis necessaris per a aquesta operació"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2197
+#: ../client/pk-console.c:2257
 msgid "Command failed"
 msgstr "Ha fallat l'ordre"
 
@@ -716,64 +759,75 @@ msgstr "Es requreix un directori de sortida o un nom de fitxer"
 msgid "The package manager cannot perform this type of operation."
 msgstr "El gestor de paquets no pot dur a terme aquest tipus d'operació."
 
+#. TRANSLATORS: This is when the distro didn't include libarchive support into PK
+#: ../client/pk-generate-pack.c:280
+msgid ""
+"Service packs cannot be created as PackageKit was not built with libarchive "
+"support."
+msgstr ""
+
 #. TRANSLATORS: the user specified an absolute path, but didn't get the extension correct
-#: ../client/pk-generate-pack.c:285
+#: ../client/pk-generate-pack.c:291
 msgid "If specifying a file, the service pack name must end with"
 msgstr "Si s'especifica un fitxer, el nom de paquet de servei ha d'acabar amb"
 
 #. TRANSLATORS: This is when file already exists
-#: ../client/pk-generate-pack.c:301
+#: ../client/pk-generate-pack.c:307
 msgid "A pack with the same name already exists, do you want to overwrite it?"
 msgstr "Ja existeix un paquet amb el mateix nom, desitgeu sobreescriure'l?"
 
 #. TRANSLATORS: This is when the pack was not overwritten
-#: ../client/pk-generate-pack.c:304
+#: ../client/pk-generate-pack.c:310
 msgid "The pack was not overwritten."
 msgstr "No s'ha sobreescrit el paquet"
 
 #. TRANSLATORS: This is when the temporary directory cannot be created, the directory name follows
-#: ../client/pk-generate-pack.c:317
+#: ../client/pk-generate-pack.c:323
 msgid "Failed to create directory:"
 msgstr "Ha fallat la creació del directori:"
 
 #. TRANSLATORS: This is when the list of packages from the remote computer cannot be opened
-#: ../client/pk-generate-pack.c:327
+#: ../client/pk-generate-pack.c:333
 msgid "Failed to open package list."
 msgstr "S'ha produït un error en obrir la llista de paquets."
 
 #. TRANSLATORS: The package name is being matched up to available packages
-#: ../client/pk-generate-pack.c:338
+#: ../client/pk-generate-pack.c:344
 msgid "Finding package name."
 msgstr "S'està cercant el nom del paquet."
 
 #. TRANSLATORS: This is when the package cannot be found in any software source. The detailed error follows
-#: ../client/pk-generate-pack.c:342
+#: ../client/pk-generate-pack.c:348
 #, c-format
 msgid "Failed to find package '%s': %s"
 msgstr "Ha fallat en trobar el paquet '%s': %s"
 
 #. TRANSLATORS: This is telling the user we are in the process of making the pack
-#: ../client/pk-generate-pack.c:359
+#: ../client/pk-generate-pack.c:365
 msgid "Creating service pack..."
 msgstr "S'està creant el service pack..."
 
 #. TRANSLATORS: we succeeded in making the file
-#: ../client/pk-generate-pack.c:366
+#: ../client/pk-generate-pack.c:372
 #, c-format
 msgid "Service pack created '%s'"
 msgstr "S'ha creat el service pack '%s'"
 
 #. TRANSLATORS: we failed to make te file
-#: ../client/pk-generate-pack.c:371
+#: ../client/pk-generate-pack.c:377
 #, c-format
 msgid "Failed to create '%s': %s"
 msgstr "Ha fallat la creació de '%s': %s"
 
 #. TRANSLATORS: this is a program that monitors PackageKit
-#: ../client/pk-monitor.c:143
+#: ../client/pk-monitor.c:146
 msgid "PackageKit Monitor"
 msgstr "Monitor de PackageKit"
 
+#: ../client/pk-monitor.c:183
+msgid "Cannot show the list of transactions"
+msgstr ""
+
 #. TRANSLATORS: The package was not found in any software sources
 #: ../client/pk-tools-common.c:118
 #, c-format
@@ -795,128 +849,434 @@ msgstr "Escolliu el paquet correcte:"
 msgid "Please enter a number from 1 to %i: "
 msgstr "Introduïu un número de l'1 fins al %i:"
 
+#. TRANSLATORS: when we are getting data from the daemon
+#: ../contrib/browser-plugin/pk-plugin-install.c:466
+msgid "Getting package information..."
+msgstr "S'està obtenint informació dels paquets..."
+
+#. TRANSLATORS: run an applicaiton
+#: ../contrib/browser-plugin/pk-plugin-install.c:472
+#, c-format
+msgid "Run %s"
+msgstr "Executa %s"
+
+#. TRANSLATORS: show the installed version of a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:478
+msgid "Installed version"
+msgstr "Versió instal·lada"
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:486
+#, c-format
+msgid "Run version %s now"
+msgstr "Executa la versió %s ara"
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:492
+msgid "Run now"
+msgstr "Executa ara"
+
+#. TRANSLATORS: update to a new version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:498
+#, c-format
+msgid "Update to version %s"
+msgstr "Actualitza a la versió %s"
+
+#. TRANSLATORS: To install a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:504
+#, c-format
+msgid "Install %s now"
+msgstr "Instal·la %s ara"
+
+#. TRANSLATORS: the version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:507
+msgid "Version"
+msgstr "Versió"
+
+#. TRANSLATORS: noting found, so can't install
+#: ../contrib/browser-plugin/pk-plugin-install.c:512
+msgid "No packages found for your system"
+msgstr "No s'han trobat paquets per al vostre sistema"
+
+#. TRANSLATORS: package is being installed
+#: ../contrib/browser-plugin/pk-plugin-install.c:517
+msgid "Installing..."
+msgstr "S'està instal·lant..."
+
+#. TRANSLATORS: downloading repo data so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:349
+msgid "Downloading details about the software sources."
+msgstr ""
+
+#. TRANSLATORS: downloading file lists so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:353
+msgid "Downloading filelists (this may take some time to complete)."
+msgstr ""
+
+#. TRANSLATORS: waiting for native lock
+#: ../contrib/command-not-found/pk-command-not-found.c:357
+#, fuzzy
+msgid "Waiting for package manager lock."
+msgstr "S'està cercant el nom del paquet."
+
+#. TRANSLATORS: loading package cache so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:361
+#, fuzzy
+msgid "Loading list of packages."
+msgstr "S'estàn baixant els paquets"
+
 #. TRANSLATORS: we failed to find the package, this shouldn't happen
-#: ../contrib/command-not-found/pk-command-not-found.c:369
+#: ../contrib/command-not-found/pk-command-not-found.c:420
 msgid "Failed to search for file"
 msgstr "S'ha produït un error en cercar el fitxer"
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:493
+#: ../contrib/command-not-found/pk-command-not-found.c:557
 msgid "Failed to launch:"
 msgstr "S'ha produït un error en executar:"
 
 #. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/command-not-found/pk-command-not-found.c:534
+#: ../contrib/command-not-found/pk-command-not-found.c:632
 msgid "PackageKit Command Not Found"
 msgstr "No s'ha trobat l'ordre al PackageKit"
 
 #. TRANSLATORS: the prefix of all the output telling the user why it's not executing
-#: ../contrib/command-not-found/pk-command-not-found.c:556
+#: ../contrib/command-not-found/pk-command-not-found.c:658
 msgid "Command not found."
 msgstr "No s'ha trobat l'ordre."
 
 #. TRANSLATORS: tell the user what we think the command is
-#: ../contrib/command-not-found/pk-command-not-found.c:563
+#: ../contrib/command-not-found/pk-command-not-found.c:665
 msgid "Similar command is:"
 msgstr "Una ordre similar és:"
 
 #. TRANSLATORS: Ask the user if we should run the similar command
-#: ../contrib/command-not-found/pk-command-not-found.c:572
+#: ../contrib/command-not-found/pk-command-not-found.c:674
 msgid "Run similar command:"
 msgstr "Executa una ordre similar:"
 
 #. TRANSLATORS: show the user a list of commands that they could have meant
 #. TRANSLATORS: show the user a list of commands we could run
-#: ../contrib/command-not-found/pk-command-not-found.c:584
-#: ../contrib/command-not-found/pk-command-not-found.c:593
+#: ../contrib/command-not-found/pk-command-not-found.c:686
+#: ../contrib/command-not-found/pk-command-not-found.c:695
 msgid "Similar commands are:"
 msgstr "Ordres similars són:"
 
 #. TRANSLATORS: ask the user to choose a file to run
-#: ../contrib/command-not-found/pk-command-not-found.c:600
+#: ../contrib/command-not-found/pk-command-not-found.c:702
 msgid "Please choose a command to run"
 msgstr "Trieu una ordre per a executar"
 
 #. TRANSLATORS: tell the user what package provides the command
-#: ../contrib/command-not-found/pk-command-not-found.c:615
+#: ../contrib/command-not-found/pk-command-not-found.c:721
 msgid "The package providing this file is:"
 msgstr "El paquet que proveeix aquest fitxer és:"
 
 #. TRANSLATORS: as the user if we want to install a package to provide the command
-#: ../contrib/command-not-found/pk-command-not-found.c:620
+#: ../contrib/command-not-found/pk-command-not-found.c:726
 #, c-format
 msgid "Install package '%s' to provide command '%s'?"
 msgstr "Voleu instal·lar el paquet '%s' per proveir l'ordre '%s'?"
 
 #. TRANSLATORS: Show the user a list of packages that provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:641
+#: ../contrib/command-not-found/pk-command-not-found.c:747
 msgid "Packages providing this file are:"
 msgstr "Paquets que proveeixen aquest fitxer són:"
 
 #. TRANSLATORS: Show the user a list of packages that they can install to provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:650
+#: ../contrib/command-not-found/pk-command-not-found.c:756
 msgid "Suitable packages are:"
 msgstr "Paquets adequats són:"
 
 #. get selection
 #. TRANSLATORS: ask the user to choose a file to install
-#: ../contrib/command-not-found/pk-command-not-found.c:658
+#: ../contrib/command-not-found/pk-command-not-found.c:764
 msgid "Please choose a package to install"
 msgstr "Seleccioneu el paquet a instal·lar"
 
-#. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/src/contents.cpp:298
-msgid "Getting package information..."
-msgstr "S'està obtenint informació dels paquets..."
+#. TRANSLATORS: we are starting to install the packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:187
+#, fuzzy
+msgid "Starting install"
+msgstr "Per a instal·lar"
 
-#. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/src/contents.cpp:304
+#. TRANSLATORS: we couldn't find the package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:397
+#, fuzzy, c-format
+msgid "Failed to find the package %s, or already installed: %s"
+msgstr "El paquet %s ja està instal·lat"
+
+#. command line argument, simulate what would be done, but don't actually do it
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:553
+msgid ""
+"Don't actually install any packages, only simulate what would be installed"
+msgstr ""
+
+#. command line argument, do we skip packages that depend on the ones specified
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:556
+msgid "Do not install dependencies of the core packages"
+msgstr ""
+
+#. command line argument, do we operate quietly
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:559
+msgid "Do not display information or progress"
+msgstr ""
+
+#. TRANSLATORS: tool that gets called when the command is not found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:577
+#, fuzzy
+msgid "PackageKit Debuginfo Installer"
+msgstr "Interfície de consola de PackageKit"
+
+#. TRANSLATORS: the use needs to specify a list of package names on the command line
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:589
+#, fuzzy, c-format
+msgid "ERROR: Specify package names to install."
+msgstr "Us cal especificar un paquet o fitxer per a instal·lar"
+
+#. TRANSLATORS: we are getting the list of repositories
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:623
+#, fuzzy, c-format
+msgid "Getting sources list"
+msgstr "S'està obtenint la llista de paquets"
+
+#. TRANSLATORS: all completed 100%
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:641
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:681
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:716
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:800
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:844
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:911
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:955
 #, c-format
-msgid "Run %s"
-msgstr "Executa %s"
+msgid "OK."
+msgstr ""
 
-#. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/src/contents.cpp:310
-msgid "Installed version"
-msgstr "Versió instal·lada"
+#. TRANSLATORS: tell the user what we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:644
+#, c-format
+msgid "Found %i enabled and %i disabled sources."
+msgstr ""
 
-#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/src/contents.cpp:318
+#. TRANSLATORS: we're finding repositories that match out pattern
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:651
 #, c-format
-msgid "Run version %s now"
-msgstr "Executa la versió %s ara"
+msgid "Finding debugging sources"
+msgstr ""
 
-#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/src/contents.cpp:324
-msgid "Run now"
-msgstr "Executa ara"
+#. TRANSLATORS: tell the user what we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:684
+#, c-format
+msgid "Found %i disabled debuginfo repos."
+msgstr ""
 
-#. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/src/contents.cpp:330
+#. TRANSLATORS: we're now enabling all the debug sources we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:691
 #, c-format
-msgid "Update to version %s"
-msgstr "Actualitza a la versió %s"
+msgid "Enabling debugging sources"
+msgstr ""
 
-#. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/src/contents.cpp:336
+#. TRANSLATORS: operation was not successful
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:701
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:785
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:829
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:896
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:940
+msgid "FAILED."
+msgstr ""
+
+#. TRANSLATORS: tell the user how many we enabled
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:719
 #, c-format
-msgid "Install %s now"
-msgstr "Instal·la %s ara"
+msgid "Enabled %i debugging sources."
+msgstr ""
 
-#. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/src/contents.cpp:339
-msgid "Version"
-msgstr "Versió"
+#. TRANSLATORS: we're now finding packages that match in all the repos
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:726
+#, fuzzy, c-format
+msgid "Finding debugging packages"
+msgstr "S'està cercant el nom del paquet."
 
-#. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/src/contents.cpp:344
-msgid "No packages found for your system"
-msgstr "No s'han trobat paquets per al vostre sistema"
+#. TRANSLATORS: we couldn't find the package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:738
+#, fuzzy, c-format
+msgid "Failed to find the package %s: %s"
+msgstr "Ha fallat en trobar el paquet '%s': %s"
 
-#. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/src/contents.cpp:349
-msgid "Installing..."
-msgstr "S'està instal·lant..."
+#. TRANSLATORS: we couldn't find the debuginfo package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:761
+#, fuzzy, c-format
+msgid "Failed to find the debuginfo package %s: %s"
+msgstr "Ha fallat en trobar el paquet '%s': %s"
+
+#. TRANSLATORS: no debuginfo packages could be found to be installed
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:789
+#, fuzzy, c-format
+msgid "Found no packages to install."
+msgstr "No és necessari instal·lar paquets nous"
+
+#. TRANSLATORS: tell the user we found some packages, and then list them
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:803
+#, fuzzy, c-format
+msgid "Found %i packages:"
+msgstr "S'estàn baixant els paquets"
+
+#. TRANSLATORS: tell the user we are searching for deps
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:819
+#, c-format
+msgid "Finding packages that depend on these packages"
+msgstr ""
+
+#. TRANSLATORS: could not install, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:832
+#, fuzzy, c-format
+msgid "Could not find dependant packages: %s"
+msgstr "No s'han trobat coincidències en cap paquet"
+
+#. TRANSLATORS: tell the user we found some more packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:848
+#, c-format
+msgid "Found %i extra packages."
+msgstr ""
+
+#. TRANSLATORS: tell the user we found some more packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:852
+#, fuzzy, c-format
+msgid "No extra packages required."
+msgstr "Es requreix un nom del paquet"
+
+#. TRANSLATORS: tell the user we found some packages (and deps), and then list them
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:861
+#, fuzzy, c-format
+msgid "Found %i packages to install:"
+msgstr "No és necessari instal·lar paquets nous"
+
+#. TRANSLATORS: simulate mode is a testing mode where we quit before the action
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:874
+#, fuzzy, c-format
+msgid "Not installing packages in simulate mode"
+msgstr "S'estan instal·lant els paquets"
+
+#. TRANSLATORS: could not install, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:899
+#, fuzzy, c-format
+msgid "Could not install packages: %s"
+msgstr "No s'ha pogut instal·lar els paquets: %s"
+
+#. TRANSLATORS: we are now disabling all debuginfo repos we previously enabled
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:931
+#, c-format
+msgid "Disabling sources previously enabled"
+msgstr ""
+
+#. TRANSLATORS: no debuginfo packages could be found to be installed, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:943
+#, c-format
+msgid "Could not disable the debugging sources: %s"
+msgstr ""
+
+#. TRANSLATORS: we disabled all the debugging repos that we enabled before
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:958
+#, c-format
+msgid "Disabled %i debugging sources."
+msgstr ""
+
+#. TRANSLATORS: couldn't open device to write
+#: ../contrib/device-rebind/pk-device-rebind.c:61
+#, fuzzy
+msgid "Failed to open file"
+msgstr "S'ha produït un error en cercar el fitxer"
+
+#. TRANSLATORS: could not write to the device
+#: ../contrib/device-rebind/pk-device-rebind.c:70
+#, fuzzy
+msgid "Failed to write to the file"
+msgstr "S'ha produït un error en cercar el fitxer"
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:110
+#: ../contrib/device-rebind/pk-device-rebind.c:147
+#, fuzzy
+msgid "Failed to write to device"
+msgstr "S'ha produït un error en desar al disc"
+
+#. TRANSLATORS: the device could not be found in sysfs
+#: ../contrib/device-rebind/pk-device-rebind.c:175
+#, fuzzy
+msgid "Device could not be found"
+msgstr "No s'ha pogut trobar el paquet"
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:202
+#, fuzzy
+msgid "Failed to unregister driver"
+msgstr "Ha fallat la creació del directori:"
+
+#. TRANSLATORS: we failed to bind the old driver
+#: ../contrib/device-rebind/pk-device-rebind.c:211
+#, fuzzy
+msgid "Failed to register driver"
+msgstr "Ha fallat la creació del directori:"
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:260
+#, fuzzy
+msgid "Device path not found"
+msgstr "No s'ha trobar el directori"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:268
+msgid "Incorrect device path specified"
+msgstr ""
+
+#. command line argument, simulate what would be done, but don't actually do it
+#: ../contrib/device-rebind/pk-device-rebind.c:296
+msgid "Don't actually touch the hardware, only simulate what would be done"
+msgstr ""
+
+#. TRANSLATORS: command line option: a list of files to install
+#: ../contrib/device-rebind/pk-device-rebind.c:299
+msgid "Device paths"
+msgstr ""
+
+#. TRANSLATORS: tool that gets called when the device needs reloading after installing firmware
+#: ../contrib/device-rebind/pk-device-rebind.c:314
+#, fuzzy
+msgid "PackageKit Device Reloader"
+msgstr "Service Pack de PackageKit"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:322
+#, fuzzy
+msgid "You need to specify at least one valid device path"
+msgstr "Us cal especificar una llista de fitxers a crear"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:332
+msgid "This script can only be used by the root user"
+msgstr ""
+
+#. TRANSLATORS: we're going to verify the path first
+#: ../contrib/device-rebind/pk-device-rebind.c:341
+msgid "Verifying device path"
+msgstr ""
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:346
+#, fuzzy
+msgid "Failed to verify device path"
+msgstr "S'ha produït un error en cercar el fitxer"
+
+#. TRANSLATORS: we're going to try
+#: ../contrib/device-rebind/pk-device-rebind.c:360
+msgid "Attempting to rebind device"
+msgstr ""
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:365
+#, fuzzy
+msgid "Failed to rebind device"
+msgstr "Ha fallat la creació del directori:"
 
 #: ../data/packagekit-catalog.xml.in.h:1
 msgid "PackageKit Catalog"
@@ -930,26 +1290,30 @@ msgstr "Llista de paquets de Packagekit"
 msgid "PackageKit Service Pack"
 msgstr "Service Pack de PackageKit"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:1
+#. SECURITY:
+#. - Normal users do not require admin authentication to accept new
+#. licence agreements.
+#. - Change this to 'auth_admin' for environments where users should not
+#. be given the option to make legal decisions.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:7
 msgid "Accept EULA"
 msgstr "Accepta l'EULA"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:2
+#: ../policy/org.freedesktop.packagekit.policy.in.h:8
 msgid "Authentication is required to accept a EULA"
 msgstr "Cal autenticació per a acceptar l'EULA"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:3
+#: ../policy/org.freedesktop.packagekit.policy.in.h:9
 msgid ""
 "Authentication is required to cancel a task that was not started by yourself"
-msgstr ""
-"Cal autenticació per a cancel·lar una tasca que no vau començar"
+msgstr "Cal autenticació per a cancel·lar una tasca que no vau començar"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:4
+#: ../policy/org.freedesktop.packagekit.policy.in.h:10
 msgid "Authentication is required to change software source parameters"
-msgstr ""
-"Cal autenticació per canviar els paràmetres de la font del programari"
+msgstr "Cal autenticació per canviar els paràmetres de la font del programari"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:5
+#: ../policy/org.freedesktop.packagekit.policy.in.h:11
 msgid ""
 "Authentication is required to consider a key used for signing packages as "
 "trusted"
@@ -957,74 +1321,147 @@ msgstr ""
 "Cal autenticació per a considerar de confiança una clau usada per a signar "
 "paquets"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:6
+#: ../policy/org.freedesktop.packagekit.policy.in.h:12
 msgid "Authentication is required to install a signed package"
 msgstr "Cal autenticació per a instal·lar un paquet signat"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:7
+#: ../policy/org.freedesktop.packagekit.policy.in.h:13
 msgid "Authentication is required to install an untrusted package"
 msgstr "Cal autenticació per a instal·lar un paquet no confiable"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:8
+#: ../policy/org.freedesktop.packagekit.policy.in.h:14
 msgid "Authentication is required to refresh the system sources"
 msgstr "Cal autenticació per a actualitzar les fonts del sistema"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:9
+#: ../policy/org.freedesktop.packagekit.policy.in.h:15
+#, fuzzy
+msgid "Authentication is required to reload the device with a new driver"
+msgstr "Cal autenticació per a actualitzar les fonts del sistema"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:16
 msgid "Authentication is required to remove packages"
 msgstr "Cal autenticació per a suprimir paquets"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:10
+#: ../policy/org.freedesktop.packagekit.policy.in.h:17
 msgid "Authentication is required to rollback a transaction"
 msgstr "Cal autenticació per a desfer una transacció"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:11
+#: ../policy/org.freedesktop.packagekit.policy.in.h:18
 msgid ""
 "Authentication is required to set the network proxy used for downloading "
 "packages"
 msgstr ""
 "Cal autenticació per a establir el servidor intermediari per a baixar paquets"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:12
+#: ../policy/org.freedesktop.packagekit.policy.in.h:19
 msgid "Authentication is required to update packages"
 msgstr "Cal autenticació per a actualitzar paquets"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:13
+#. SECURITY:
+#. - Normal users are allowed to cancel their own task without
+#. authentication, but a different user id needs the admin password
+#. to cancel another users task.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:25
 msgid "Cancel foreign task"
 msgstr "Cancel·la tasca externa"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:14
+#. SECURITY:
+#. - Normal users require admin authentication to enable or disable
+#. software sources as this can be used to enable new updates or
+#. install different versions of software.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:31
 msgid "Change software source parameters"
 msgstr "Canvia els paràmetres de la font de programari"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:15
+#. SECURITY:
+#. - Normal users do not need authentication to install signed packages
+#. from signed repositories, as this cannot exploit a system.
+#. - Paranoid users (or parents!) can change this to 'auth_admin' or
+#. 'auth_admin_keep'.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:38
 msgid "Install signed package"
 msgstr "Instal·la el paquet signat"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:16
+#. SECURITY:
+#. - Normal users require admin authentication to install untrusted or
+#. unrecognised packages, as allowing users to do this without a
+#. password would be a massive security hole.
+#. - This is not retained as each package should be authenticated.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:45
 msgid "Install untrusted local file"
 msgstr "Instal·la el fitxer local no confiable"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:17
+#. SECURITY:
+#. - Normal users do not require admin authentication to refresh the
+#. cache, as this doesn't actually install or remove software.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:50
 msgid "Refresh system sources"
 msgstr "Actualitza les fonts del sistema"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:18
+#. SECURITY:
+#. - Normal users require admin authentication to rebind a driver
+#. so that it works after we install firmware.
+#. - This should not be set to 'yes' as unprivileged users could then
+#. try to rebind drivers in use, for instance security authentication
+#. devices.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:58
+msgid "Reload a device"
+msgstr ""
+
+#. SECURITY:
+#. - Normal users require admin authentication to remove packages as
+#. this can make the system unbootable or stop other applications from
+#. working.
+#. - Be sure to close the tool used to remove the packages after the
+#. admin authentication has been obtained, otherwise packages can still
+#. be removed. If this is not possible, change this authentication to
+#. 'auth_admin'.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:68
 msgid "Remove package"
 msgstr "Suprimeix el paquet"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:19
+#. SECURITY:
+#. - Normal users require admin authentication to rollback system state
+#. as this will change a large number of packages, and could expose the
+#. system to previously patched security vulnerabilities.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:74
 msgid "Rollback to a previous transaction"
 msgstr "Torna a l'estat d'una transacció anterior"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:20
+#. SECURITY:
+#. - Normal users do not require admin authentication to set the proxy
+#. used for downloading packages.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:79
 msgid "Set network proxy"
 msgstr "Estableix el servidor intermediari"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:21
+#. SECURITY:
+#. - Normal users require admin authentication to add signing keys.
+#. - This implies adding an explicit trust, and should not be granted
+#. without a secure authentication.
+#. - This is not kept as each package should be authenticated.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:86
 msgid "Trust a key used for signing packages"
 msgstr "Confia en una clau usada per signar paquets"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:22
+#. SECURITY:
+#. - Normal users do not require admin authentication to update the
+#. system as the packages will be signed, and the action is required
+#. to update the system when unattended.
+#. - Changing this to anything other than 'yes' will break unattended
+#. updates.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:94
 msgid "Update packages"
 msgstr "Actualitza paquets"
 
@@ -1054,51 +1491,92 @@ msgstr ""
 "del sistema:"
 
 #. TRANSLATORS: a backend is the system package tool, e.g. yum, apt
-#: ../src/pk-main.c:193
+#: ../src/pk-main.c:205
 msgid "Packaging backend to use, e.g. dummy"
 msgstr "Administrador de paquets a usar, p.ex. dummy"
 
 #. TRANSLATORS: if we should run in the background
-#: ../src/pk-main.c:196
+#: ../src/pk-main.c:208
 msgid "Daemonize and detach from the terminal"
 msgstr "Convertir en dimoni i lliurar la finestra de l'intèrpret de comandes"
 
 #. TRANSLATORS: if we should not monitor how long we are inactive for
-#: ../src/pk-main.c:202
+#: ../src/pk-main.c:214
 msgid "Disable the idle timer"
 msgstr "Inhabilita el temporitzador de repós"
 
 #. TRANSLATORS: show version
-#: ../src/pk-main.c:205
+#: ../src/pk-main.c:217
 msgid "Show version and exit"
 msgstr "Mostra la versió i surt"
 
 #. TRANSLATORS: exit after we've started up, used for user profiling
-#: ../src/pk-main.c:208
+#: ../src/pk-main.c:220
 msgid "Exit after a small delay"
 msgstr "Surt després de un petit retràs"
 
 #. TRANSLATORS: exit straight away, used for automatic profiling
-#: ../src/pk-main.c:211
+#: ../src/pk-main.c:223
 msgid "Exit after the engine has loaded"
 msgstr "Surt després que el motor s'hagi carregat"
 
 #. TRANSLATORS: describing the service that is running
-#: ../src/pk-main.c:226
+#: ../src/pk-main.c:238
 msgid "PackageKit service"
 msgstr "servei PackageKit"
 
 #. TRANSLATORS: fatal error, dbus is not running
-#: ../src/pk-main.c:263
+#: ../src/pk-main.c:275
 msgid "Cannot connect to the system bus"
 msgstr "No s'ha pogut connectar amb el bus del sistema"
 
-#. TRANSLATORS: cannot register on system bus, unknown reason
-#: ../src/pk-main.c:313
-#, c-format
+#. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error follows
+#: ../src/pk-main.c:334
 msgid "Error trying to start:"
 msgstr "Ha fallat en intentar executar:"
 
+#: ../src/pk-polkit-action-lookup.c:147
+#, fuzzy
+msgid "To install debugging packages, extra sources need to be enabled"
+msgstr "No és necessari instal·lar paquets nous"
+
+#. TRANSLATORS: is not GPG signed
+#: ../src/pk-polkit-action-lookup.c:168 ../src/pk-polkit-action-lookup.c:187
+msgid "The software is not from a trusted source."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:173
+msgid "Do not update this package unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:174
+msgid "Do not update these packages unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:192
+msgid "Do not install this package unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:193
+msgid "Do not install these packages unless you are sure it is safe to do so."
+msgstr ""
+
+#. TRANSLATORS: warn the user that all bets are off
+#: ../src/pk-polkit-action-lookup.c:199
+msgid "Malicious software can damage your computer or cause other harm."
+msgstr ""
+
+#. TRANSLATORS: too many packages to list each one
+#: ../src/pk-polkit-action-lookup.c:274
+#, fuzzy
+msgid "Many packages"
+msgstr "Actualitza paquets"
+
+#. TRANSLATORS: if the transaction is forced to install only trusted packages
+#: ../src/pk-polkit-action-lookup.c:334
+msgid "Only trusted"
+msgstr ""
+
 #~ msgid "The action, one of 'create', 'add', or 'remove'"
 #~ msgstr "L'acció, una de 'crea', 'afegeix' o 'elimina'"
 
@@ -1130,9 +1608,6 @@ msgstr "Ha fallat en intentar executar:"
 #~ msgid "You need to specify a search term"
 #~ msgstr "us cal especificar un terme de cerca"
 
-#~ msgid "You need to specify a package or file to install"
-#~ msgstr "Us cal especificar un paquet o fitxer per a instal·lar"
-
 #~ msgid "You need to specify a package to remove"
 #~ msgstr "Us cal especificar un paquet per a esborrar"
 
@@ -1154,9 +1629,6 @@ msgstr "Ha fallat en intentar executar:"
 #~ msgid "You need to specify a package to find the files for"
 #~ msgstr "Us cal especificar un paquet per a trobar-ne els seus fitxers"
 
-#~ msgid "You need to specify a list file to create"
-#~ msgstr "Us cal especificar una llista de fitxers a crear"
-
 #~ msgid "You need to specify a list file to open"
 #~ msgstr "Us cal especificar una llista de fitxers a obrir"
 
@@ -1190,9 +1662,6 @@ msgstr "Ha fallat en intentar executar:"
 #~ msgid "Could not find details for"
 #~ msgstr "No s'han pogut trobar els detalls per a"
 
-#~ msgid "Could not find a package match"
-#~ msgstr "No s'han trobat coincidències en cap paquet"
-
 #~ msgid "Could not set database readonly"
 #~ msgstr "No s'ha pogut establir la base de dades a només lectura"
 
diff --git a/po/cs.po b/po/cs.po
index 353d3e2..7ec773d 100644
--- a/po/cs.po
+++ b/po/cs.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: packagekit.master.cs\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-07-01 08:31+0000\n"
+"POT-Creation-Date: 2009-08-24 11:06+0100\n"
 "PO-Revision-Date: 2009-07-01 14:04+0100\n"
 "Last-Translator: Dušan Hokův <dusan at mirc.cz>\n"
 "Language-Team: Czech <fedora-cs-list at redhat.com>\n"
@@ -19,687 +19,692 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
 #. TRANSLATORS: this is an atomic transaction
-#: ../client/pk-console.c:231
+#: ../client/pk-console.c:235
 msgid "Transaction"
 msgstr "Transakce"
 
 #. TRANSLATORS: this is the time the transaction was started in system timezone
-#: ../client/pk-console.c:233
+#: ../client/pk-console.c:237
 msgid "System time"
 msgstr "Systémový čas"
 
 #. TRANSLATORS: this is if the transaction succeeded or not
-#: ../client/pk-console.c:235
+#: ../client/pk-console.c:239
 msgid "Succeeded"
 msgstr ""
 
 #. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:235
-#: ../client/pk-console.c:402
+#: ../client/pk-console.c:239 ../client/pk-console.c:406
 msgid "True"
 msgstr ""
 
-#: ../client/pk-console.c:235
-#: ../client/pk-console.c:402
+#: ../client/pk-console.c:239 ../client/pk-console.c:406
 msgid "False"
 msgstr ""
 
 #. TRANSLATORS: this is the transactions role, e.g. "update-system"
 #. TRANSLATORS: the trasaction role, e.g. update-system
-#: ../client/pk-console.c:237
-#: ../src/pk-polkit-action-lookup.c:256
+#: ../client/pk-console.c:241 ../src/pk-polkit-action-lookup.c:327
 msgid "Role"
 msgstr ""
 
 #. TRANSLATORS: this is The duration of the transaction
-#: ../client/pk-console.c:242
+#: ../client/pk-console.c:246
 msgid "Duration"
 msgstr ""
 
-#: ../client/pk-console.c:242
+#: ../client/pk-console.c:246
 msgid "(seconds)"
 msgstr "(sekund)"
 
 #. TRANSLATORS: this is The command line used to do the action
 #. TRANSLATORS: the command line of the thing that wants the authentication
-#: ../client/pk-console.c:246
-#: ../src/pk-polkit-action-lookup.c:270
+#: ../client/pk-console.c:250 ../src/pk-polkit-action-lookup.c:341
 msgid "Command line"
 msgstr "Příkazový řádek"
 
 #. TRANSLATORS: this is the user ID of the user that started the action
-#: ../client/pk-console.c:248
+#: ../client/pk-console.c:252
 msgid "User ID"
 msgstr "Uživatelské ID"
 
 #. TRANSLATORS: this is the username, e.g. hughsie
-#: ../client/pk-console.c:255
+#: ../client/pk-console.c:259
 msgid "Username"
 msgstr "Uživatelské jméno"
 
 #. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
-#: ../client/pk-console.c:259
+#: ../client/pk-console.c:263
 msgid "Real name"
 msgstr "Skutečné jméno"
 
-#: ../client/pk-console.c:267
+#: ../client/pk-console.c:271
 #, fuzzy
 msgid "Affected packages:"
 msgstr "Aktualizovat balík"
 
-#: ../client/pk-console.c:269
+#: ../client/pk-console.c:273
 msgid "Affected packages: None"
 msgstr ""
 
 #. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:294
+#: ../client/pk-console.c:298
 msgid "Distribution"
 msgstr "Distribuce"
 
 #. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:296
+#: ../client/pk-console.c:300
 msgid "Type"
 msgstr "Typ"
 
 #. TRANSLATORS: this is any summary text describing the upgrade
 #. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:298
-#: ../client/pk-console.c:321
+#: ../client/pk-console.c:302 ../client/pk-console.c:325
 msgid "Summary"
 msgstr "Souhrn"
 
 #. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:310
+#: ../client/pk-console.c:314
 msgid "Category"
 msgstr "Kategorie"
 
 #. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:312
+#: ../client/pk-console.c:316
 msgid "ID"
 msgstr "ID"
 
 #. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:315
+#: ../client/pk-console.c:319
 msgid "Parent"
 msgstr ""
 
 #. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:318
+#: ../client/pk-console.c:322
 msgid "Name"
 msgstr "Název"
 
 #. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:324
+#: ../client/pk-console.c:328
 msgid "Icon"
 msgstr "Ikona"
 
 #. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:339
+#: ../client/pk-console.c:343
 msgid "Details about the update:"
 msgstr "Detaily o aktualizaci:"
 
 #. TRANSLATORS: details about the update, package name and version
-#: ../client/pk-console.c:341
+#. TRANSLATORS: title, the names of the packages that the method is processing
+#: ../client/pk-console.c:345 ../src/pk-polkit-action-lookup.c:352
+#, fuzzy
 msgid "Package"
-msgstr "Balík"
+msgid_plural "Packages"
+msgstr[0] "Balík"
+msgstr[1] "Balík"
 
 #. TRANSLATORS: details about the update, any packages that this update updates
-#: ../client/pk-console.c:344
+#: ../client/pk-console.c:348
 #, fuzzy
 msgid "Updates"
 msgstr "Aktualizovat balík"
 
 #. TRANSLATORS: details about the update, any packages that this update obsoletes
-#: ../client/pk-console.c:348
+#: ../client/pk-console.c:352
 msgid "Obsoletes"
 msgstr "Zastarává"
 
 #. TRANSLATORS: details about the update, the vendor URLs
-#: ../client/pk-console.c:352
+#: ../client/pk-console.c:356
 msgid "Vendor"
 msgstr "Výrobce"
 
 #. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:356
+#: ../client/pk-console.c:360
 msgid "Bugzilla"
 msgstr "Bugzilla"
 
 #. TRANSLATORS: details about the update, the CVE URLs
-#: ../client/pk-console.c:360
+#: ../client/pk-console.c:364
 msgid "CVE"
 msgstr "CVE"
 
 #. TRANSLATORS: details about the update, if the package requires a restart
-#: ../client/pk-console.c:364
+#: ../client/pk-console.c:368
 msgid "Restart"
 msgstr "Restart"
 
 #. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:368
+#: ../client/pk-console.c:372
 #, fuzzy
 msgid "Update text"
 msgstr "Aktualizovat podrobnosti"
 
 #. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:372
+#: ../client/pk-console.c:376
 msgid "Changes"
 msgstr ""
 
 #. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:376
+#: ../client/pk-console.c:380
 msgid "State"
 msgstr "Stav"
 
 #. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:381
+#: ../client/pk-console.c:385
 msgid "Issued"
 msgstr ""
 
 #. TRANSLATORS: details about the update, date the update was updated
-#: ../client/pk-console.c:386
+#: ../client/pk-console.c:390
 #, fuzzy
 msgid "Updated"
 msgstr "Aktualizovat podrobnosti"
 
-#: ../client/pk-console.c:473
-#: ../client/pk-console.c:475
+#: ../client/pk-console.c:477 ../client/pk-console.c:479
 msgid "Percentage"
 msgstr ""
 
-#: ../client/pk-console.c:475
+#: ../client/pk-console.c:479
 msgid "Unknown"
 msgstr "Neznámý"
 
 #. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:517
+#: ../client/pk-console.c:521
 #, fuzzy
 msgid "System restart required by:"
 msgstr "Je požadován restart systému"
 
 #. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:520
+#: ../client/pk-console.c:524
 #, fuzzy
 msgid "Session restart required:"
 msgstr "Je požadován restart systému"
 
+#. TRANSLATORS: a package requires the system to be restarted due to a security update
+#: ../client/pk-console.c:527
+#, fuzzy
+msgid "System restart (security) required by:"
+msgstr "Je požadován restart systému"
+
+#. TRANSLATORS: a package requires the session to be restarted due to a security update
+#: ../client/pk-console.c:530
+#, fuzzy
+msgid "Session restart (security) required:"
+msgstr "Je požadován restart systému"
+
 #. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:523
+#: ../client/pk-console.c:533
 #, fuzzy
 msgid "Application restart required by:"
 msgstr "Je vyžadován restart aplikace"
 
-#. TRANSLATORS: a package needs to restart they system
-#: ../client/pk-console.c:578
+#. TRANSLATORS: a package needs to restart their system
+#: ../client/pk-console.c:588
 msgid "Please restart the computer to complete the update."
 msgstr "Prosím restartujte počítač pro dokončení aktualizace."
 
 #. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:581
+#: ../client/pk-console.c:591
 msgid "Please logout and login to complete the update."
 msgstr "Prosím odhlaste se a znovu se přihlašte pro dokončení aktualizace."
 
 #. TRANSLATORS: a package needs to restart the application
-#: ../client/pk-console.c:584
+#: ../client/pk-console.c:594
 msgid "Please restart the application as it is being used."
 msgstr "Prosím restartujte aplikaci, protože je právě používána."
 
+#. TRANSLATORS: a package needs to restart their system (due to security)
+#: ../client/pk-console.c:597
+#, fuzzy
+msgid ""
+"Please restart the computer to complete the update as important security "
+"updates have been installed."
+msgstr "Prosím restartujte počítač pro dokončení aktualizace."
+
+#. TRANSLATORS: a package needs to restart the session (due to security)
+#: ../client/pk-console.c:600
+#, fuzzy
+msgid ""
+"Please logout and login to complete the update as important security updates "
+"have been installed."
+msgstr "Prosím odhlaste se a znovu se přihlašte pro dokončení aktualizace."
+
 #. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:711
+#: ../client/pk-console.c:727
 #, fuzzy, c-format
 msgid "The package %s is already installed"
 msgstr "Balík '%s' je již nainstalován"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:719
+#: ../client/pk-console.c:735
 #, fuzzy, c-format
 msgid "The package %s could not be installed: %s"
 msgstr "Balík '%s' nemůže být nainstalován: %s"
 
 #. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
-#: ../client/pk-console.c:744
-#: ../client/pk-console.c:767
-#: ../client/pk-console.c:863
-#: ../client/pk-console.c:980
-#: ../client/pk-tools-common.c:62
-#: ../client/pk-tools-common.c:81
+#: ../client/pk-console.c:760 ../client/pk-console.c:783
+#: ../client/pk-console.c:879 ../client/pk-console.c:996
+#: ../client/pk-tools-common.c:62 ../client/pk-tools-common.c:81
 #: ../client/pk-tools-common.c:89
 #, c-format
 msgid "Internal error: %s"
 msgstr "Interní chyba: %s"
 
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:752
-#: ../client/pk-console.c:1376
+#: ../client/pk-console.c:768 ../client/pk-console.c:1392
 #, c-format
 msgid "This tool could not install the packages: %s"
 msgstr "Tento nástroj není schopen nainstalovat balíky: %s"
 
 #. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:775
+#: ../client/pk-console.c:791
 #, c-format
 msgid "This tool could not install the files: %s"
 msgstr "Tento nástroj není schopen nainstalovat soubory: %s"
 
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:831
+#: ../client/pk-console.c:847
 #, fuzzy, c-format
 msgid "This tool could not remove %s: %s"
 msgstr "Tento nástroj nemůže odstranit '%s': %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:854
-#: ../client/pk-console.c:892
-#: ../client/pk-console.c:925
+#: ../client/pk-console.c:870 ../client/pk-console.c:908
+#: ../client/pk-console.c:941
 #, c-format
 msgid "This tool could not remove the packages: %s"
 msgstr "Tento nástroj nemůže odstranit balíky: %s"
 
 #. TRANSLATORS: When removing, we might have to remove other dependencies
-#: ../client/pk-console.c:904
+#: ../client/pk-console.c:920
 msgid "The following packages have to be removed:"
 msgstr "Následující balíky musí být odstraněny:"
 
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:911
+#: ../client/pk-console.c:927
 msgid "Proceed removing additional packages?"
 msgstr "Souhlasíte s odstraněním doplňkových balíků? "
 
 #. TRANSLATORS: We did not remove any packages
-#: ../client/pk-console.c:916
+#: ../client/pk-console.c:932
 msgid "The package removal was canceled!"
 msgstr "Odstranění baličku bylo zrušeno!"
 
 #. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:957
+#: ../client/pk-console.c:973
 #, fuzzy, c-format
 msgid "This tool could not download the package %s as it could not be found"
 msgstr "Tento nástroj nemůže stáhnout balík '%s', protože nemůže být nalezen"
 
 #. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:988
+#: ../client/pk-console.c:1004
 #, c-format
 msgid "This tool could not download the packages: %s"
 msgstr "Tento nástroj nemůže stáhnout balíky: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1015
-#: ../client/pk-console.c:1024
+#: ../client/pk-console.c:1031 ../client/pk-console.c:1040
 #, fuzzy, c-format
 msgid "This tool could not update %s: %s"
 msgstr "Tento nástroj nemůže aktualizovat '%s': %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1046
-#: ../client/pk-console.c:1054
+#: ../client/pk-console.c:1062 ../client/pk-console.c:1070
 #, fuzzy, c-format
 msgid "This tool could not get the requirements for %s: %s"
 msgstr "Tento nástroj nemůže získat  požadavky pro '%s': %s"
 
 #. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:1076
-#: ../client/pk-console.c:1084
+#: ../client/pk-console.c:1092 ../client/pk-console.c:1100
 #, fuzzy, c-format
 msgid "This tool could not get the dependencies for %s: %s"
 msgstr "Tento nástroj nemůže získat závislosti pro '%s': %s"
 
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:1106
-#: ../client/pk-console.c:1114
+#: ../client/pk-console.c:1122 ../client/pk-console.c:1130
 #, fuzzy, c-format
 msgid "This tool could not get package details for %s: %s"
 msgstr "Tento nástroj nemůže získat detaily o '%s': %s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1136
+#: ../client/pk-console.c:1152
 #, fuzzy, c-format
 msgid "This tool could not find the files for %s: %s"
 msgstr "Tento nástroj nemůže najít soubory pro '%s': %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1144
+#: ../client/pk-console.c:1160
 #, fuzzy, c-format
 msgid "This tool could not get the file list for %s: %s"
 msgstr "Tento nástroj nemůže získat seznam souborů pro '%s': %s"
 
 #. TRANSLATORS: There was an error getting the list of packages. The filename follows
-#: ../client/pk-console.c:1166
+#: ../client/pk-console.c:1182
 #, c-format
 msgid "File already exists: %s"
 msgstr "Soubor již existuje: %s"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1171
-#: ../client/pk-console.c:1227
-#: ../client/pk-console.c:1302
+#: ../client/pk-console.c:1187 ../client/pk-console.c:1243
+#: ../client/pk-console.c:1318
 msgid "Getting package list"
 msgstr "Získávám seznam balíků"
 
 #. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1177
-#: ../client/pk-console.c:1233
-#: ../client/pk-console.c:1308
+#: ../client/pk-console.c:1193 ../client/pk-console.c:1249
+#: ../client/pk-console.c:1324
 #, fuzzy, c-format
 msgid "This tool could not get package list: %s"
 msgstr "Tento nástroj nemůže odstranit balíky: %s"
 
 #. TRANSLATORS: There was an error saving the list
-#: ../client/pk-console.c:1188
+#: ../client/pk-console.c:1204
 #, c-format
 msgid "Failed to save to disk"
 msgstr "Selhalo uložení na disk"
 
 #. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1222
-#: ../client/pk-console.c:1297
+#: ../client/pk-console.c:1238 ../client/pk-console.c:1313
 #, c-format
 msgid "File does not exist: %s"
 msgstr "Soubor neexistuje: %s"
 
 #. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1254
+#: ../client/pk-console.c:1270
 #, fuzzy
 msgid "Packages to add"
 msgstr "PackageKit Monitor"
 
 #. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1262
+#: ../client/pk-console.c:1278
 #, fuzzy
 msgid "Packages to remove"
 msgstr "Služba PackageKit"
 
 #. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1330
+#: ../client/pk-console.c:1346
 #, fuzzy, c-format
 msgid "No new packages need to be installed"
 msgstr "Balík '%s' nemůže být nainstalován: %s"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1336
+#: ../client/pk-console.c:1352
 msgid "To install"
 msgstr ""
 
 #. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1348
+#: ../client/pk-console.c:1364
 msgid "Searching for package: "
 msgstr ""
 
 #. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1352
+#: ../client/pk-console.c:1368
 #, fuzzy
 msgid "not found."
 msgstr "Adresář nenalezen"
 
 #. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1363
+#: ../client/pk-console.c:1379
 #, fuzzy, c-format
 msgid "No packages can be found to install"
 msgstr "Pro váš systém nebyly nalezeny žádné balíky"
 
 #. TRANSLATORS: installing new packages from package list
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
-#: ../client/pk-console.c:1369
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:868
+#: ../client/pk-console.c:1385
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:886
 #, fuzzy, c-format
 msgid "Installing packages"
 msgstr "Nainstalovat balík"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1405
+#: ../client/pk-console.c:1421
 #, fuzzy, c-format
 msgid "This tool could not find the update details for %s: %s"
 msgstr "Tento nástroj nemůže najít podrobnosti o aktualizaci pro '%s': %s"
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1413
+#: ../client/pk-console.c:1429
 #, fuzzy, c-format
 msgid "This tool could not get the update details for %s: %s"
 msgstr "Tento nástroj nemůže získat podrobnosti o aktualizaci pro '%s': %s"
 
 #. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
-#: ../client/pk-console.c:1444
+#: ../client/pk-console.c:1460
 msgid "Error:"
 msgstr "Chyba: "
 
 #. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1458
+#: ../client/pk-console.c:1474
 msgid "Package description"
 msgstr "Popis balíku"
 
 #. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
-#: ../client/pk-console.c:1474
+#: ../client/pk-console.c:1490
 msgid "Message:"
 msgstr "Zpráva:"
 
 #. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1502
+#: ../client/pk-console.c:1518
 msgid "Package files"
 msgstr "Soubory v balíku"
 
 #. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1510
+#: ../client/pk-console.c:1526
 msgid "No files"
 msgstr "Žádné soubory"
 
 #. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1533
+#: ../client/pk-console.c:1549
 msgid "Repository signature required"
 msgstr "Vyžaduje podpis repozitáře"
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1543
+#: ../client/pk-console.c:1559
 #, fuzzy
 msgid "Do you accept this signature?"
 msgstr "Příjímáte tento podpis?"
 
 #. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1547
+#: ../client/pk-console.c:1563
 msgid "The signature was not accepted."
 msgstr "Podpis nebyl přijat."
 
 #. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1581
+#: ../client/pk-console.c:1597
 msgid "End user license agreement required"
 msgstr "Vyžaduje souhlas s licencí koncového uživatele"
 
 #. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1588
+#: ../client/pk-console.c:1604
 msgid "Do you agree to this license?"
 msgstr "Souhlasíte s touto licencí?"
 
 #. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1592
+#: ../client/pk-console.c:1608
 msgid "The license was refused."
 msgstr "Licence byla odmítnuta."
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1621
+#: ../client/pk-console.c:1637
 msgid "The daemon crashed mid-transaction!"
 msgstr "Démon havaroval během činnosti!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1674
+#: ../client/pk-console.c:1690
 msgid "PackageKit Console Interface"
 msgstr "Konzolové rozhraní PackageKitu"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1676
+#: ../client/pk-console.c:1692
 msgid "Subcommands:"
 msgstr "Dílčí příkazy:"
 
 #. TRANSLATORS: command line argument, if we should show debugging information
 #. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:1768
-#: ../client/pk-generate-pack.c:185
-#: ../client/pk-monitor.c:125
-#: ../contrib/command-not-found/pk-command-not-found.c:521
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:532
-#: ../src/pk-main.c:211
+#: ../client/pk-console.c:1785 ../client/pk-generate-pack.c:185
+#: ../client/pk-monitor.c:128
+#: ../contrib/command-not-found/pk-command-not-found.c:616
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:550
+#: ../contrib/device-rebind/pk-device-rebind.c:293 ../src/pk-main.c:211
 msgid "Show extra debugging information"
 msgstr "Zobrazit dodatečné ladící informace"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1771
-#: ../client/pk-monitor.c:127
+#: ../client/pk-console.c:1788 ../client/pk-monitor.c:130
 msgid "Show the program version and exit"
 msgstr "Zobrazit verzi programu a ukončit se"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1774
+#: ../client/pk-console.c:1791
 msgid "Set the filter, e.g. installed"
 msgstr "Nastavit filtr, např. nainstalované"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1777
+#: ../client/pk-console.c:1794
 msgid "Exit without waiting for actions to complete"
 msgstr "Ukončit bez varovaní o nedokončených akcích"
 
 #. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:1804
+#: ../client/pk-console.c:1821
 msgid "This tool could not connect to system DBUS."
 msgstr "Tento nástroj se nemůže připojit k systému DBUS"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1893
+#: ../client/pk-console.c:1911
 msgid "The filter specified was invalid"
 msgstr ""
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1911
+#: ../client/pk-console.c:1930
 msgid "A search type is required, e.g. name"
 msgstr ""
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1917
-#: ../client/pk-console.c:1925
-#: ../client/pk-console.c:1933
-#: ../client/pk-console.c:1941
+#: ../client/pk-console.c:1937 ../client/pk-console.c:1946
+#: ../client/pk-console.c:1955 ../client/pk-console.c:1964
 msgid "A search term is required"
 msgstr ""
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1947
+#: ../client/pk-console.c:1971
 msgid "Invalid search type"
 msgstr "Neplatný typ vyhledávání"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1953
+#: ../client/pk-console.c:1977
 msgid "A package name or filename to install is required"
 msgstr ""
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1961
+#: ../client/pk-console.c:1986
 #, fuzzy
 msgid "A type, key_id and package_id are required"
 msgstr "Je nutné určit typ, key_id a package_id"
 
 #. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:1969
+#: ../client/pk-console.c:1995
 #, fuzzy
 msgid "A package name to remove is required"
 msgstr "Následující balíky musí být odstraněny"
 
 #. TRANSLATORS: the user did not specify anything about what to download or where
-#: ../client/pk-console.c:1976
+#: ../client/pk-console.c:2003
 #, fuzzy
-msgid "A destination directory and then the package names to download are required"
+msgid "A destination directory and the package names to download are required"
 msgstr "Je nutné určit cílový adresář a poté balík, který se má stáhnout"
 
 #. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:1982
+#: ../client/pk-console.c:2010
 msgid "Directory not found"
 msgstr "Adresář nenalezen"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1989
+#: ../client/pk-console.c:2018
 #, fuzzy
 msgid "A licence identifier (eula-id) is required"
 msgstr "Musíte zadat identifikaci licence (eula-id)"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1998
+#: ../client/pk-console.c:2028
 msgid "A transaction identifier (tid) is required"
 msgstr ""
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:2014
+#: ../client/pk-console.c:2045
 #, fuzzy
 msgid "A package name to resolve is required"
 msgstr "Následující balíky musí být odstraněny"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:2022
-#: ../client/pk-console.c:2030
+#: ../client/pk-console.c:2054 ../client/pk-console.c:2063
 #, fuzzy
 msgid "A repository name is required"
 msgstr "Vyžaduje podpis repozitáře"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2038
+#: ../client/pk-console.c:2072
 #, fuzzy
 msgid "A repo name, parameter and value are required"
 msgstr "Je nutné určit název/parametr a hodnotu repozitáře"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:2051
+#: ../client/pk-console.c:2086
 #, fuzzy
 msgid "An action, e.g. 'update-system' is required"
 msgstr "Je nutné zadat akci, např. 'update-system'"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:2057
+#: ../client/pk-console.c:2093
 #, fuzzy
 msgid "A correct role is required"
 msgstr "Je požadováno odhlášení a přihlášení"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2063
+#: ../client/pk-console.c:2100
 msgid "Failed to get the time since this action was last completed"
 msgstr ""
 
 #. TRANSLATORS: The user did not provide a package name
 #. TRANSLATORS: This is when the user fails to supply the package name
-#: ../client/pk-console.c:2072
-#: ../client/pk-console.c:2083
-#: ../client/pk-console.c:2091
-#: ../client/pk-console.c:2107
-#: ../client/pk-console.c:2115
-#: ../client/pk-generate-pack.c:241
+#: ../client/pk-console.c:2110 ../client/pk-console.c:2122
+#: ../client/pk-console.c:2131 ../client/pk-console.c:2149
+#: ../client/pk-console.c:2158 ../client/pk-generate-pack.c:241
 #, fuzzy
 msgid "A package name is required"
 msgstr "Je požadováno odhlášení a přihlášení"
 
 #. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:2099
+#: ../client/pk-console.c:2140
 #, fuzzy
 msgid "A package provide string is required"
 msgstr "Je požadováno odhlášení a přihlášení"
 
 #. TRANSLATORS: The user didn't specify a filename to create as a list
-#: ../client/pk-console.c:2123
+#: ../client/pk-console.c:2167
 msgid "A list file name to create is required"
 msgstr ""
 
 #. TRANSLATORS: The user didn't specify a filename to open as a list
-#: ../client/pk-console.c:2132
-#: ../client/pk-console.c:2141
+#: ../client/pk-console.c:2177 ../client/pk-console.c:2187
 #, fuzzy
 msgid "A list file to open is required"
 msgstr "Je požadováno odhlášení a přihlášení"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2194
+#: ../client/pk-console.c:2241
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "Volba '%s' není podporována "
 
 #. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2207
+#: ../client/pk-console.c:2254
 #, fuzzy
 msgid "Incorrect privileges for this operation"
 msgstr "Nemáte nezbytné oprávnění pro tuto operaci"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2210
+#: ../client/pk-console.c:2257
 msgid "Command failed"
 msgstr "Příkaz selhal"
 
@@ -726,7 +731,8 @@ msgstr "Nastavte soubor se závislostmi, které mají být vynechány"
 #. TRANSLATORS: the output location
 #: ../client/pk-generate-pack.c:191
 #, fuzzy
-msgid "The output file or directory (the current directory is used if ommitted)"
+msgid ""
+"The output file or directory (the current directory is used if ommitted)"
 msgstr "Výstupní adresář (aktuální adresář, pokud není žádný uveden)"
 
 #. TRANSLATORS: put a list of packages in the pack
@@ -757,14 +763,15 @@ msgstr "Je požadováno odhlášení a přihlášení"
 
 #. TRANSLATORS: This is when the backend doesn't have the capability to get-depends
 #. TRANSLATORS: This is when the backend doesn't have the capability to download
-#: ../client/pk-generate-pack.c:267
-#: ../client/pk-generate-pack.c:273
+#: ../client/pk-generate-pack.c:267 ../client/pk-generate-pack.c:273
 msgid "The package manager cannot perform this type of operation."
 msgstr ""
 
 #. TRANSLATORS: This is when the distro didn't include libarchive support into PK
 #: ../client/pk-generate-pack.c:280
-msgid "Service packs cannot be created as PackageKit was not built with libarchive support."
+msgid ""
+"Service packs cannot be created as PackageKit was not built with libarchive "
+"support."
 msgstr ""
 
 #. TRANSLATORS: the user specified an absolute path, but didn't get the extension correct
@@ -821,10 +828,14 @@ msgid "Failed to create '%s': %s"
 msgstr "Nemohu vytvořit '%s': %s"
 
 #. TRANSLATORS: this is a program that monitors PackageKit
-#: ../client/pk-monitor.c:143
+#: ../client/pk-monitor.c:146
 msgid "PackageKit Monitor"
 msgstr "PackageKit Monitor"
 
+#: ../client/pk-monitor.c:183
+msgid "Cannot show the list of transactions"
+msgstr ""
+
 #. TRANSLATORS: The package was not found in any software sources
 #: ../client/pk-tools-common.c:118
 #, c-format
@@ -846,321 +857,441 @@ msgstr "Prosím vyberte správný balík: "
 msgid "Please enter a number from 1 to %i: "
 msgstr "Prosím zadejte číslo od 1 do %i: "
 
+#. TRANSLATORS: when we are getting data from the daemon
+#: ../contrib/browser-plugin/pk-plugin-install.c:466
+msgid "Getting package information..."
+msgstr "Zjišťuji informace o balících..."
+
+#. TRANSLATORS: run an applicaiton
+#: ../contrib/browser-plugin/pk-plugin-install.c:472
+#, c-format
+msgid "Run %s"
+msgstr "Spustit %s"
+
+#. TRANSLATORS: show the installed version of a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:478
+msgid "Installed version"
+msgstr "Nainstalovaná verze"
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:486
+#, c-format
+msgid "Run version %s now"
+msgstr "Spustit verzi %s"
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:492
+msgid "Run now"
+msgstr "Spustit ihned"
+
+#. TRANSLATORS: update to a new version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:498
+#, c-format
+msgid "Update to version %s"
+msgstr "Aktualizovat na verzi %s"
+
+#. TRANSLATORS: To install a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:504
+#, c-format
+msgid "Install %s now"
+msgstr "Instalovat %s"
+
+#. TRANSLATORS: the version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:507
+msgid "Version"
+msgstr "Verze"
+
+#. TRANSLATORS: noting found, so can't install
+#: ../contrib/browser-plugin/pk-plugin-install.c:512
+msgid "No packages found for your system"
+msgstr "Pro váš systém nebyly nalezeny žádné balíky"
+
+#. TRANSLATORS: package is being installed
+#: ../contrib/browser-plugin/pk-plugin-install.c:517
+msgid "Installing..."
+msgstr "Instaluji..."
+
+#. TRANSLATORS: downloading repo data so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:349
+msgid "Downloading details about the software sources."
+msgstr ""
+
+#. TRANSLATORS: downloading file lists so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:353
+msgid "Downloading filelists (this may take some time to complete)."
+msgstr ""
+
+#. TRANSLATORS: waiting for native lock
+#: ../contrib/command-not-found/pk-command-not-found.c:357
+#, fuzzy
+msgid "Waiting for package manager lock."
+msgstr "Hledám jméno balíku."
+
+#. TRANSLATORS: loading package cache so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:361
+#, fuzzy
+msgid "Loading list of packages."
+msgstr "Stahuji balíky"
+
 #. TRANSLATORS: we failed to find the package, this shouldn't happen
-#: ../contrib/command-not-found/pk-command-not-found.c:372
+#: ../contrib/command-not-found/pk-command-not-found.c:420
 #, fuzzy
 msgid "Failed to search for file"
 msgstr "Nepodařilo se získat poslední čas"
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:496
+#: ../contrib/command-not-found/pk-command-not-found.c:557
 #, fuzzy
 msgid "Failed to launch:"
 msgstr "Nepodařilo se získat poslední čas"
 
 #. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/command-not-found/pk-command-not-found.c:537
+#: ../contrib/command-not-found/pk-command-not-found.c:632
 #, fuzzy
 msgid "PackageKit Command Not Found"
 msgstr "PackageKit Monitor"
 
 #. TRANSLATORS: the prefix of all the output telling the user why it's not executing
-#: ../contrib/command-not-found/pk-command-not-found.c:560
+#: ../contrib/command-not-found/pk-command-not-found.c:658
 #, fuzzy
 msgid "Command not found."
 msgstr "Adresář nenalezen"
 
 #. TRANSLATORS: tell the user what we think the command is
-#: ../contrib/command-not-found/pk-command-not-found.c:567
+#: ../contrib/command-not-found/pk-command-not-found.c:665
 #, fuzzy
 msgid "Similar command is:"
 msgstr "Dílčí příkazy:"
 
 #. TRANSLATORS: Ask the user if we should run the similar command
-#: ../contrib/command-not-found/pk-command-not-found.c:576
+#: ../contrib/command-not-found/pk-command-not-found.c:674
 msgid "Run similar command:"
 msgstr ""
 
 #. TRANSLATORS: show the user a list of commands that they could have meant
 #. TRANSLATORS: show the user a list of commands we could run
-#: ../contrib/command-not-found/pk-command-not-found.c:588
-#: ../contrib/command-not-found/pk-command-not-found.c:597
+#: ../contrib/command-not-found/pk-command-not-found.c:686
+#: ../contrib/command-not-found/pk-command-not-found.c:695
 #, fuzzy
 msgid "Similar commands are:"
 msgstr "Dílčí příkazy:"
 
 #. TRANSLATORS: ask the user to choose a file to run
-#: ../contrib/command-not-found/pk-command-not-found.c:604
+#: ../contrib/command-not-found/pk-command-not-found.c:702
 msgid "Please choose a command to run"
 msgstr ""
 
 #. TRANSLATORS: tell the user what package provides the command
-#: ../contrib/command-not-found/pk-command-not-found.c:619
+#: ../contrib/command-not-found/pk-command-not-found.c:721
 msgid "The package providing this file is:"
 msgstr ""
 
 #. TRANSLATORS: as the user if we want to install a package to provide the command
-#: ../contrib/command-not-found/pk-command-not-found.c:624
+#: ../contrib/command-not-found/pk-command-not-found.c:726
 #, c-format
 msgid "Install package '%s' to provide command '%s'?"
 msgstr ""
 
 #. TRANSLATORS: Show the user a list of packages that provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:645
+#: ../contrib/command-not-found/pk-command-not-found.c:747
 msgid "Packages providing this file are:"
 msgstr ""
 
 #. TRANSLATORS: Show the user a list of packages that they can install to provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:654
+#: ../contrib/command-not-found/pk-command-not-found.c:756
 msgid "Suitable packages are:"
 msgstr ""
 
 #. get selection
 #. TRANSLATORS: ask the user to choose a file to install
-#: ../contrib/command-not-found/pk-command-not-found.c:662
+#: ../contrib/command-not-found/pk-command-not-found.c:764
 #, fuzzy
 msgid "Please choose a package to install"
 msgstr "Nemohu najít balík, který se má instalovat"
 
-#. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/src/contents.cpp:299
-msgid "Getting package information..."
-msgstr "Zjišťuji informace o balících..."
-
-#. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/src/contents.cpp:305
-#, c-format
-msgid "Run %s"
-msgstr "Spustit %s"
-
-#. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/src/contents.cpp:311
-msgid "Installed version"
-msgstr "Nainstalovaná verze"
-
-#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/src/contents.cpp:319
-#, c-format
-msgid "Run version %s now"
-msgstr "Spustit verzi %s"
-
-#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/src/contents.cpp:325
-msgid "Run now"
-msgstr "Spustit ihned"
-
-#. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/src/contents.cpp:331
-#, c-format
-msgid "Update to version %s"
-msgstr "Aktualizovat na verzi %s"
-
-#. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/src/contents.cpp:337
-#, c-format
-msgid "Install %s now"
-msgstr "Instalovat %s"
-
-#. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/src/contents.cpp:340
-msgid "Version"
-msgstr "Verze"
-
-#. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/src/contents.cpp:345
-msgid "No packages found for your system"
-msgstr "Pro váš systém nebyly nalezeny žádné balíky"
-
-#. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/src/contents.cpp:350
-msgid "Installing..."
-msgstr "Instaluji..."
-
 #. TRANSLATORS: we are starting to install the packages
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:186
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:187
 msgid "Starting install"
 msgstr ""
 
 #. TRANSLATORS: we couldn't find the package name, non-fatal
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:379
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:397
 #, fuzzy, c-format
 msgid "Failed to find the package %s, or already installed: %s"
 msgstr "Balík '%s' je již nainstalován"
 
 #. command line argument, simulate what would be done, but don't actually do it
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:535
-msgid "Don't actually install any packages, only simulate what would be installed"
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:553
+msgid ""
+"Don't actually install any packages, only simulate what would be installed"
 msgstr ""
 
 #. command line argument, do we skip packages that depend on the ones specified
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:538
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:556
 msgid "Do not install dependencies of the core packages"
 msgstr ""
 
 #. command line argument, do we operate quietly
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:541
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:559
 msgid "Do not display information or progress"
 msgstr ""
 
 #. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:559
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:577
 #, fuzzy
 msgid "PackageKit Debuginfo Installer"
 msgstr "Konzolové rozhraní PackageKitu"
 
 #. TRANSLATORS: the use needs to specify a list of package names on the command line
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:571
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:589
 #, fuzzy, c-format
 msgid "ERROR: Specify package names to install."
 msgstr "Vyberte balík nebo soubor, která se bude instalovat"
 
 #. TRANSLATORS: we are getting the list of repositories
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:605
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:623
 #, fuzzy, c-format
 msgid "Getting sources list"
 msgstr "Zjišťuji informace o balících..."
 
 #. TRANSLATORS: all completed 100%
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:623
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:663
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:698
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:782
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:826
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:893
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:937
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:641
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:681
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:716
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:800
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:844
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:911
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:955
 #, c-format
 msgid "OK."
 msgstr "OK."
 
 #. TRANSLATORS: tell the user what we found
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:626
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:644
 #, c-format
 msgid "Found %i enabled and %i disabled sources."
 msgstr ""
 
 #. TRANSLATORS: we're finding repositories that match out pattern
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:633
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:651
 #, c-format
 msgid "Finding debugging sources"
 msgstr ""
 
 #. TRANSLATORS: tell the user what we found
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:666
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:684
 #, c-format
 msgid "Found %i disabled debuginfo repos."
 msgstr ""
 
 #. TRANSLATORS: we're now enabling all the debug sources we found
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:673
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:691
 #, c-format
 msgid "Enabling debugging sources"
 msgstr ""
 
 #. TRANSLATORS: operation was not successful
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:683
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:767
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:811
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:878
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:922
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:701
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:785
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:829
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:896
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:940
 msgid "FAILED."
 msgstr "SELHALO."
 
 #. TRANSLATORS: tell the user how many we enabled
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:701
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:719
 #, c-format
 msgid "Enabled %i debugging sources."
 msgstr ""
 
 #. TRANSLATORS: we're now finding packages that match in all the repos
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:708
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:726
 #, fuzzy, c-format
 msgid "Finding debugging packages"
 msgstr "Hledám jméno balíku."
 
 #. TRANSLATORS: we couldn't find the package name, non-fatal
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:720
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:738
 #, fuzzy, c-format
 msgid "Failed to find the package %s: %s"
 msgstr "Nemohu najít balík '%s': %s"
 
 #. TRANSLATORS: we couldn't find the debuginfo package name, non-fatal
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:743
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:761
 #, fuzzy, c-format
 msgid "Failed to find the debuginfo package %s: %s"
 msgstr "Nemohu najít balík '%s': %s"
 
 #. TRANSLATORS: no debuginfo packages could be found to be installed
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:771
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:789
 #, fuzzy, c-format
 msgid "Found no packages to install."
 msgstr "Balík '%s' nemůže být nainstalován: %s"
 
 #. TRANSLATORS: tell the user we found some packages, and then list them
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:785
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:803
 #, fuzzy, c-format
 msgid "Found %i packages:"
 msgstr "Stahuji"
 
 #. TRANSLATORS: tell the user we are searching for deps
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:801
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:819
 #, c-format
 msgid "Finding packages that depend on these packages"
 msgstr ""
 
 #. TRANSLATORS: could not install, detailed error follows
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:814
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:832
 #, fuzzy, c-format
 msgid "Could not find dependant packages: %s"
 msgstr "Nemohu najít odpovídající balík"
 
 #. TRANSLATORS: tell the user we found some more packages
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:830
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:848
 #, c-format
 msgid "Found %i extra packages."
 msgstr ""
 
 #. TRANSLATORS: tell the user we found some more packages
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:834
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:852
 #, fuzzy, c-format
 msgid "No extra packages required."
 msgstr "Nemohu zjistit, které balíky jsou vyžadovány"
 
 #. TRANSLATORS: tell the user we found some packages (and deps), and then list them
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:843
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:861
 #, fuzzy, c-format
 msgid "Found %i packages to install:"
 msgstr "Balík '%s' nemůže být nainstalován: %s"
 
 #. TRANSLATORS: simulate mode is a testing mode where we quit before the action
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:856
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:874
 #, fuzzy, c-format
 msgid "Not installing packages in simulate mode"
 msgstr "Nainstalovat balík"
 
-#. TRANSLATORS: coul dnot install, detailed error follows
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:881
+#. TRANSLATORS: could not install, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:899
 #, fuzzy, c-format
 msgid "Could not install packages: %s"
 msgstr "Tento nástroj není schopen nainstalovat balíky: %s"
 
 #. TRANSLATORS: we are now disabling all debuginfo repos we previously enabled
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:913
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:931
 #, c-format
 msgid "Disabling sources previously enabled"
 msgstr ""
 
 #. TRANSLATORS: no debuginfo packages could be found to be installed, detailed error follows
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:925
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:943
 #, c-format
 msgid "Could not disable the debugging sources: %s"
 msgstr ""
 
 #. TRANSLATORS: we disabled all the debugging repos that we enabled before
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:940
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:958
 #, c-format
 msgid "Disabled %i debugging sources."
 msgstr ""
 
+#. TRANSLATORS: couldn't open device to write
+#: ../contrib/device-rebind/pk-device-rebind.c:61
+#, fuzzy
+msgid "Failed to open file"
+msgstr "Nepodařilo se získat poslední čas"
+
+#. TRANSLATORS: could not write to the device
+#: ../contrib/device-rebind/pk-device-rebind.c:70
+#, fuzzy
+msgid "Failed to write to the file"
+msgstr "Nepodařilo se získat poslední čas"
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:110
+#: ../contrib/device-rebind/pk-device-rebind.c:147
+#, fuzzy
+msgid "Failed to write to device"
+msgstr "Selhalo uložení na disk"
+
+#. TRANSLATORS: the device could not be found in sysfs
+#: ../contrib/device-rebind/pk-device-rebind.c:175
+#, fuzzy
+msgid "Device could not be found"
+msgstr "Balík nebyl nalezen."
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:202
+#, fuzzy
+msgid "Failed to unregister driver"
+msgstr "Nepodařilo se vytvořit adresář."
+
+#. TRANSLATORS: we failed to bind the old driver
+#: ../contrib/device-rebind/pk-device-rebind.c:211
+#, fuzzy
+msgid "Failed to register driver"
+msgstr "Nepodařilo se vytvořit adresář."
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:260
+#, fuzzy
+msgid "Device path not found"
+msgstr "Adresář nenalezen"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:268
+msgid "Incorrect device path specified"
+msgstr ""
+
+#. command line argument, simulate what would be done, but don't actually do it
+#: ../contrib/device-rebind/pk-device-rebind.c:296
+msgid "Don't actually touch the hardware, only simulate what would be done"
+msgstr ""
+
+#. TRANSLATORS: command line option: a list of files to install
+#: ../contrib/device-rebind/pk-device-rebind.c:299
+msgid "Device paths"
+msgstr ""
+
+#. TRANSLATORS: tool that gets called when the device needs reloading after installing firmware
+#: ../contrib/device-rebind/pk-device-rebind.c:314
+#, fuzzy
+msgid "PackageKit Device Reloader"
+msgstr "Balící služba PackageKit"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:322
+#, fuzzy
+msgid "You need to specify at least one valid device path"
+msgstr "Je nutné určit časový termín"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:332
+msgid "This script can only be used by the root user"
+msgstr ""
+
+#. TRANSLATORS: we're going to verify the path first
+#: ../contrib/device-rebind/pk-device-rebind.c:341
+msgid "Verifying device path"
+msgstr ""
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:346
+#, fuzzy
+msgid "Failed to verify device path"
+msgstr "Nepodařilo se získat poslední čas"
+
+#. TRANSLATORS: we're going to try
+#: ../contrib/device-rebind/pk-device-rebind.c:360
+msgid "Attempting to rebind device"
+msgstr ""
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:365
+#, fuzzy
+msgid "Failed to rebind device"
+msgstr "Nepodařilo se vytvořit adresář."
+
 #: ../data/packagekit-catalog.xml.in.h:1
 msgid "PackageKit Catalog"
 msgstr "PackageKit Katalog"
@@ -1173,97 +1304,181 @@ msgstr "PackageKit seznam balíků"
 msgid "PackageKit Service Pack"
 msgstr "Balící služba PackageKit"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:1
+#. SECURITY:
+#. - Normal users do not require admin authentication to accept new
+#. licence agreements.
+#. - Change this to 'auth_admin' for environments where users should not
+#. be given the option to make legal decisions.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:7
 msgid "Accept EULA"
 msgstr "Přijmout licenční smlouvu"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:2
+#: ../policy/org.freedesktop.packagekit.policy.in.h:8
 msgid "Authentication is required to accept a EULA"
 msgstr "Pro přijetí licenční smlouvy je vyžadováno oprávnění"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:3
+#: ../policy/org.freedesktop.packagekit.policy.in.h:9
 #, fuzzy
-msgid "Authentication is required to cancel a task that was not started by yourself"
+msgid ""
+"Authentication is required to cancel a task that was not started by yourself"
 msgstr "Pro změnu parametrů zdrojů softwaru je vyžádováno oprávnění"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:4
+#: ../policy/org.freedesktop.packagekit.policy.in.h:10
 msgid "Authentication is required to change software source parameters"
 msgstr "Pro změnu parametrů zdrojů softwaru je vyžádováno oprávnění"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:5
+#: ../policy/org.freedesktop.packagekit.policy.in.h:11
 #, fuzzy
-msgid "Authentication is required to consider a key used for signing packages as trusted"
+msgid ""
+"Authentication is required to consider a key used for signing packages as "
+"trusted"
 msgstr "K obnovení seznamů balíků je vyžadováno oprávnění"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:6
+#: ../policy/org.freedesktop.packagekit.policy.in.h:12
 #, fuzzy
 msgid "Authentication is required to install a signed package"
 msgstr "K instalaci balíku je vyžadováno oprávnění"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:7
+#: ../policy/org.freedesktop.packagekit.policy.in.h:13
 #, fuzzy
 msgid "Authentication is required to install an untrusted package"
 msgstr "K instalaci balíku je vyžadováno oprávnění"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:8
+#: ../policy/org.freedesktop.packagekit.policy.in.h:14
 #, fuzzy
 msgid "Authentication is required to refresh the system sources"
 msgstr "K obnovení seznamů balíků je vyžadováno oprávnění"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:9
+#: ../policy/org.freedesktop.packagekit.policy.in.h:15
+#, fuzzy
+msgid "Authentication is required to reload the device with a new driver"
+msgstr "K obnovení seznamů balíků je vyžadováno oprávnění"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:16
 msgid "Authentication is required to remove packages"
 msgstr "K odstranění balíků je vyžadováno oprávnění"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:10
+#: ../policy/org.freedesktop.packagekit.policy.in.h:17
 msgid "Authentication is required to rollback a transaction"
 msgstr "K vrácení akce je vyžadováno oprávnění"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:11
+#: ../policy/org.freedesktop.packagekit.policy.in.h:18
 #, fuzzy
-msgid "Authentication is required to set the network proxy used for downloading packages"
+msgid ""
+"Authentication is required to set the network proxy used for downloading "
+"packages"
 msgstr "K odstranění balíků je vyžadováno oprávnění"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:12
+#: ../policy/org.freedesktop.packagekit.policy.in.h:19
 msgid "Authentication is required to update packages"
 msgstr "K aktualizaci balíků je vyžadováno oprávnění"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:13
+#. SECURITY:
+#. - Normal users are allowed to cancel their own task without
+#. authentication, but a different user id needs the admin password
+#. to cancel another users task.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:25
 msgid "Cancel foreign task"
 msgstr ""
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:14
+#. SECURITY:
+#. - Normal users require admin authentication to enable or disable
+#. software sources as this can be used to enable new updates or
+#. install different versions of software.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:31
 msgid "Change software source parameters"
 msgstr "Změnit parametry zdrojů softwaru"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:15
+#. SECURITY:
+#. - Normal users do not need authentication to install signed packages
+#. from signed repositories, as this cannot exploit a system.
+#. - Paranoid users (or parents!) can change this to 'auth_admin' or
+#. 'auth_admin_keep'.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:38
 msgid "Install signed package"
 msgstr "Nainstalovat podepsaný balík"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:16
+#. SECURITY:
+#. - Normal users require admin authentication to install untrusted or
+#. unrecognised packages, as allowing users to do this without a
+#. password would be a massive security hole.
+#. - This is not retained as each package should be authenticated.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:45
 msgid "Install untrusted local file"
 msgstr "Nainstalovat místní nedůvěryhodný soubor"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:17
+#. SECURITY:
+#. - Normal users do not require admin authentication to refresh the
+#. cache, as this doesn't actually install or remove software.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:50
 msgid "Refresh system sources"
 msgstr ""
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:18
+#. SECURITY:
+#. - Normal users require admin authentication to rebind a driver
+#. so that it works after we install firmware.
+#. - This should not be set to 'yes' as unprivileged users could then
+#. try to rebind drivers in use, for instance security authentication
+#. devices.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:58
+msgid "Reload a device"
+msgstr ""
+
+#. SECURITY:
+#. - Normal users require admin authentication to remove packages as
+#. this can make the system unbootable or stop other applications from
+#. working.
+#. - Be sure to close the tool used to remove the packages after the
+#. admin authentication has been obtained, otherwise packages can still
+#. be removed. If this is not possible, change this authentication to
+#. 'auth_admin'.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:68
 msgid "Remove package"
 msgstr "Odstranit balík"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:19
+#. SECURITY:
+#. - Normal users require admin authentication to rollback system state
+#. as this will change a large number of packages, and could expose the
+#. system to previously patched security vulnerabilities.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:74
 msgid "Rollback to a previous transaction"
 msgstr "Vrátit poslední akci"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:20
+#. SECURITY:
+#. - Normal users do not require admin authentication to set the proxy
+#. used for downloading packages.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:79
 msgid "Set network proxy"
 msgstr "Nastavit proxy sítě"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:21
+#. SECURITY:
+#. - Normal users require admin authentication to add signing keys.
+#. - This implies adding an explicit trust, and should not be granted
+#. without a secure authentication.
+#. - This is not kept as each package should be authenticated.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:86
 msgid "Trust a key used for signing packages"
 msgstr ""
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:22
+#. SECURITY:
+#. - Normal users do not require admin authentication to update the
+#. system as the packages will be signed, and the action is required
+#. to update the system when unattended.
+#. - Changing this to anything other than 'yes' will break unattended
+#. updates.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:94
 #, fuzzy
 msgid "Update packages"
 msgstr "Aktualizovat balík"
@@ -1285,8 +1500,12 @@ msgstr "Aplikace není spuštěna pod správným uživatelem (obvykle superuživ
 
 #. TRANSLATORS: or we are installed in a prefix
 #: ../src/pk-main.c:93
-msgid "The org.freedesktop.PackageKit.conf file is not installed in the system directory:"
-msgstr "Soubor org.freedesktop.PackageKit.conf není nainstalován v systémovém adresáři:"
+msgid ""
+"The org.freedesktop.PackageKit.conf file is not installed in the system "
+"directory:"
+msgstr ""
+"Soubor org.freedesktop.PackageKit.conf není nainstalován v systémovém "
+"adresáři:"
 
 #. TRANSLATORS: a backend is the system package tool, e.g. yum, apt
 #: ../src/pk-main.c:205
@@ -1329,163 +1548,209 @@ msgid "Cannot connect to the system bus"
 msgstr "Nemohu se připojit k systémové sběrnici"
 
 #. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error follows
-#: ../src/pk-main.c:331
+#: ../src/pk-main.c:334
 msgid "Error trying to start:"
 msgstr "Chyba při pokusu o spuštění:"
 
-#: ../src/pk-polkit-action-lookup.c:143
+#: ../src/pk-polkit-action-lookup.c:147
 #, fuzzy
 msgid "To install debugging packages, extra sources need to be enabled"
 msgstr "Balík '%s' nemůže být nainstalován: %s"
 
 #. TRANSLATORS: is not GPG signed
-#: ../src/pk-polkit-action-lookup.c:156
-#: ../src/pk-polkit-action-lookup.c:175
+#: ../src/pk-polkit-action-lookup.c:168 ../src/pk-polkit-action-lookup.c:187
 msgid "The software is not from a trusted source."
 msgstr ""
 
-#. TRANSLATORS: user has to trust provider -- I know, this sucks
-#: ../src/pk-polkit-action-lookup.c:160
+#: ../src/pk-polkit-action-lookup.c:173
 msgid "Do not update this package unless you are sure it is safe to do so."
 msgstr ""
 
-#. TRANSLATORS: warn the user that all bets are off
-#: ../src/pk-polkit-action-lookup.c:164
-#: ../src/pk-polkit-action-lookup.c:183
-msgid "Malicious software can damage your computer or cause other harm."
+#: ../src/pk-polkit-action-lookup.c:174
+msgid "Do not update these packages unless you are sure it is safe to do so."
 msgstr ""
 
-#. TRANSLATORS: user has to trust provider -- I know, this sucks
-#: ../src/pk-polkit-action-lookup.c:179
+#: ../src/pk-polkit-action-lookup.c:192
 msgid "Do not install this package unless you are sure it is safe to do so."
 msgstr ""
 
+#: ../src/pk-polkit-action-lookup.c:193
+msgid "Do not install these packages unless you are sure it is safe to do so."
+msgstr ""
+
+#. TRANSLATORS: warn the user that all bets are off
+#: ../src/pk-polkit-action-lookup.c:199
+msgid "Malicious software can damage your computer or cause other harm."
+msgstr ""
+
+#. TRANSLATORS: too many packages to list each one
+#: ../src/pk-polkit-action-lookup.c:274
+#, fuzzy
+msgid "Many packages"
+msgstr "Aktualizovat balík"
+
 #. TRANSLATORS: if the transaction is forced to install only trusted packages
-#: ../src/pk-polkit-action-lookup.c:263
+#: ../src/pk-polkit-action-lookup.c:334
 msgid "Only trusted"
 msgstr "Pouze důvěryhodné"
 
 #~ msgid "You need to specify a search type, e.g. name"
 #~ msgstr "Je nutné stanovit typ vyhledávání, např. jméno"
+
 #~ msgid "You need to specify a search term"
 #~ msgstr "Je nutné uvést termín, který se bude hledat"
+
 #~ msgid "You need to specify a package to remove"
 #~ msgstr "Vyberte balík, který se má odstranit"
+
 #~ msgid "You need to specify a package name to resolve"
 #~ msgstr "K vyřešení je nutné uvést název balíku"
+
 #~ msgid "You need to specify a repository name"
 #~ msgstr "Je nutné zadat název repozitáře"
+
 #~ msgid "You need to specify a correct role"
 #~ msgstr "Je nutné určit správnou roli"
+
 #~ msgid "Failed to get last time"
 #~ msgstr "Nepodařilo se získat poslední čas"
+
 #~ msgid "You need to specify a package to find the details for"
 #~ msgstr "Je nutné určit balík, pro který se mají najít podrobnosti"
+
 #~ msgid "You need to specify a package to find the files for"
 #~ msgstr "Je nutné určit balík, pro který se mají najít soubory"
 
 #, fuzzy
-#~ msgid "You need to specify a list file to create"
-#~ msgstr "Je nutné určit časový termín"
-
-#, fuzzy
 #~ msgid "You need to specify a list file to open"
 #~ msgstr "Je nutné určit časový termín"
+
 #~ msgid "This tool could not remove the packages: '%s'"
 #~ msgstr "Tento nástroj nemůže odstranit balíky: '%s'"
+
 #~ msgid "Install local file"
 #~ msgstr "Nainstalovat místní soubor"
+
 #~ msgid "Okay to import key?"
 #~ msgstr "Chcete importovat klíč?"
+
 #~ msgid "Did not import key"
 #~ msgstr "Klíč nebyl importován"
+
 #~ msgid "Do you agree?"
 #~ msgstr "Souhlasíte?"
+
 #~ msgid "Could not find package to remove"
 #~ msgstr "Nemohu najít balík, který se má odstranit"
+
 #~ msgid "Cancelled!"
 #~ msgstr "Zrušeno!"
+
 #~ msgid "Could not find package to update"
 #~ msgstr "Nemohu najít balík, který se má aktualizovat"
+
 #~ msgid "Could not find details for"
 #~ msgstr "Nemohu zjistit detaily pro"
 
 #, fuzzy
 #~ msgid "Could not set database readonly"
 #~ msgstr "Nemohu otevřít databázi: %s"
+
 #~ msgid "Could not open database: %s"
 #~ msgstr "Nemohu otevřít databázi: %s"
+
 #~ msgid "You probably need to run this program as the root user"
 #~ msgstr "Nejspíše budete muset spustit tento program jako superuživatel"
+
 #~ msgid "<span color='#%06x' underline='single' size='larger'>Run %s</span>"
 #~ msgstr ""
 #~ "<span color='#%06x' underline='single' size='larger'>Spustit %s</span>"
+
 #~ msgid "<big>%s</big>"
 #~ msgstr "<big>%s</big>"
+
 #~ msgid ""
 #~ "\n"
 #~ "<span color='#%06x' underline='single'>Run version %s now</span>"
 #~ msgstr ""
 #~ "\n"
 #~ "<span color='#%06x' underline='single'>Ihned spustit verzi %s</span>"
+
 #~ msgid ""
 #~ "\n"
 #~ "<span color='#%06x' underline='single'>Run now</span>"
 #~ msgstr ""
 #~ "\n"
 #~ "<span color='#%06x' underline='single'>Ihned spustit</span>"
+
 #~ msgid ""
 #~ "\n"
 #~ "<span color='#%06x' underline='single'>Upgrade to version %s</span>"
 #~ msgstr ""
 #~ "\n"
 #~ "<span color='#%06x' underline='single'>Aktualizovat na verzi %s</span>"
+
 #~ msgid ""
 #~ "<span color='#%06x' underline='single' size='larger'>Install %s Now</span>"
 #~ msgstr ""
 #~ "<span color='#%06x' underline='single' size='larger'>Ihned instalovat %s</"
 #~ "span>"
+
 #~ msgid ""
 #~ "\n"
 #~ "<small>Version: %s</small>"
 #~ msgstr ""
 #~ "\n"
 #~ "<small>Verze: %s</small>"
+
 #~ msgid "failed to download: invalid package_id and/or directory"
 #~ msgstr "stahování selhala: neplatné package_id a/nebo adresář"
+
 #~ msgid "Could not find a valid metadata file"
 #~ msgstr "Nemohu najít platný soubor metadat"
+
 #~ msgid "Okay to download the additional packages"
 #~ msgstr "Souhlasíte s stažením doplňkových balíků"
+
 #~ msgid "You need to specify the pack name and packages to be packed\n"
 #~ msgstr "Musíte určit jméno balíku a balíčky, které mají být zabaleny\n"
+
 #~ msgid ""
 #~ "Invalid name for the service pack, Specify a name with .servicepack "
 #~ "extension\n"
 #~ msgstr ""
 #~ "Neplatné jméno opravného balíčku. Zadejte jméno s příponou .servicepack\n"
+
 #~ msgid "Authentication is required to install a local file"
 #~ msgstr "K instalaci místního souboru je vyžadováno oprávnění"
+
 #~ msgid "Authentication is required to install a security signature"
 #~ msgstr "K instalaci bezpečnostního podpisu je vyžadováno oprávnění"
+
 #~ msgid "Authentication is required to update all packages"
 #~ msgstr "K aktualizaci všech balíků je vyžadováno oprávnění"
+
 #~ msgid "Install security signature"
 #~ msgstr "Nainstalovat bezpečnostní podpis"
+
 #~ msgid "Refresh package lists"
 #~ msgstr "Obnovit seznam balíků"
+
 #~ msgid "Update all packages"
 #~ msgstr "Aktualizovat všechny balíky"
+
 #~ msgid ""
 #~ "Could not find a package with that name to install, or package already "
 #~ "installed"
 #~ msgstr ""
 #~ "K danému názvu nemohu najít balík k nainstalovaní ani balík, který už je "
 #~ "nainstalovaný"
+
 #~ msgid "Could not find a package with that name to update"
 #~ msgstr "K daného názvu nemohu najít balík, který se má aktualizovat"
+
 #~ msgid "Could not find a description for this package"
 #~ msgstr "Nemohu získat popis tohoto balíku"
+
 #~ msgid "You need to specify a package to find the description for"
 #~ msgstr "Je nutné určit balík, pro který se má najít popis"
-
diff --git a/po/da.po b/po/da.po
index df95b2b..bc3a485 100644
--- a/po/da.po
+++ b/po/da.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: packagekit\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-07-16 19:32+0000\n"
+"POT-Creation-Date: 2009-08-24 11:06+0100\n"
 "PO-Revision-Date: 2009-07-16 22:59+0200\n"
 "Last-Translator: Kris Thomsen <lakristho at gmail.com>\n"
 "Language-Team: Danish <dansk at dansk-gruppen.dk>\n"
@@ -16,258 +16,264 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 
 #. TRANSLATORS: this is an atomic transaction
-#: ../client/pk-console.c:231
+#: ../client/pk-console.c:235
 msgid "Transaction"
 msgstr "Overførsel"
 
 #. TRANSLATORS: this is the time the transaction was started in system timezone
-#: ../client/pk-console.c:233
+#: ../client/pk-console.c:237
 msgid "System time"
 msgstr "Systemtid"
 
 #. TRANSLATORS: this is if the transaction succeeded or not
-#: ../client/pk-console.c:235
+#: ../client/pk-console.c:239
 msgid "Succeeded"
 msgstr "Gennemført"
 
 #. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:235 ../client/pk-console.c:402
+#: ../client/pk-console.c:239 ../client/pk-console.c:406
 msgid "True"
 msgstr "Sandt"
 
-#: ../client/pk-console.c:235 ../client/pk-console.c:402
+#: ../client/pk-console.c:239 ../client/pk-console.c:406
 msgid "False"
 msgstr "Falskt"
 
 #. TRANSLATORS: this is the transactions role, e.g. "update-system"
 #. TRANSLATORS: the trasaction role, e.g. update-system
-#: ../client/pk-console.c:237 ../src/pk-polkit-action-lookup.c:256
+#: ../client/pk-console.c:241 ../src/pk-polkit-action-lookup.c:327
 msgid "Role"
 msgstr "Rolle"
 
 #. TRANSLATORS: this is The duration of the transaction
-#: ../client/pk-console.c:242
+#: ../client/pk-console.c:246
 msgid "Duration"
 msgstr "Varighed"
 
-#: ../client/pk-console.c:242
+#: ../client/pk-console.c:246
 msgid "(seconds)"
 msgstr "(sekunder)"
 
 #. TRANSLATORS: this is The command line used to do the action
 #. TRANSLATORS: the command line of the thing that wants the authentication
-#: ../client/pk-console.c:246 ../src/pk-polkit-action-lookup.c:270
+#: ../client/pk-console.c:250 ../src/pk-polkit-action-lookup.c:341
 msgid "Command line"
 msgstr "Kommandolinje"
 
 #. TRANSLATORS: this is the user ID of the user that started the action
-#: ../client/pk-console.c:248
+#: ../client/pk-console.c:252
 msgid "User ID"
 msgstr "Bruger-id"
 
 #. TRANSLATORS: this is the username, e.g. hughsie
-#: ../client/pk-console.c:255
+#: ../client/pk-console.c:259
 msgid "Username"
 msgstr "Brugernavn"
 
 #. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
-#: ../client/pk-console.c:259
+#: ../client/pk-console.c:263
 msgid "Real name"
 msgstr "Rigtige navn"
 
-#: ../client/pk-console.c:267
+#: ../client/pk-console.c:271
 msgid "Affected packages:"
 msgstr "Berørte pakker:"
 
-#: ../client/pk-console.c:269
+#: ../client/pk-console.c:273
 msgid "Affected packages: None"
 msgstr "Berørte pakker: Ingen"
 
 #. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:294
+#: ../client/pk-console.c:298
 msgid "Distribution"
 msgstr "Distribution"
 
 #. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:296
+#: ../client/pk-console.c:300
 msgid "Type"
 msgstr "Type"
 
 #. TRANSLATORS: this is any summary text describing the upgrade
 #. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:298 ../client/pk-console.c:321
+#: ../client/pk-console.c:302 ../client/pk-console.c:325
 msgid "Summary"
 msgstr "Resumé"
 
 #. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:310
+#: ../client/pk-console.c:314
 msgid "Category"
 msgstr "Kategori"
 
 #. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:312
+#: ../client/pk-console.c:316
 msgid "ID"
 msgstr "Id"
 
 #. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:315
+#: ../client/pk-console.c:319
 msgid "Parent"
 msgstr "Overliggende"
 
 #. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:318
+#: ../client/pk-console.c:322
 msgid "Name"
 msgstr "Navn"
 
 #. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:324
+#: ../client/pk-console.c:328
 msgid "Icon"
 msgstr "Ikon"
 
 #. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:339
+#: ../client/pk-console.c:343
 msgid "Details about the update:"
 msgstr "Detaljer om opdateringen:"
 
 #. TRANSLATORS: details about the update, package name and version
-#: ../client/pk-console.c:341
+#. TRANSLATORS: title, the names of the packages that the method is processing
+#: ../client/pk-console.c:345 ../src/pk-polkit-action-lookup.c:352
+#, fuzzy
 msgid "Package"
-msgstr "Pakke"
+msgid_plural "Packages"
+msgstr[0] "Pakke"
+msgstr[1] "Pakke"
 
 #. TRANSLATORS: details about the update, any packages that this update updates
-#: ../client/pk-console.c:344
+#: ../client/pk-console.c:348
 msgid "Updates"
 msgstr "Opdateringer"
 
 #. TRANSLATORS: details about the update, any packages that this update obsoletes
-#: ../client/pk-console.c:348
+#: ../client/pk-console.c:352
 msgid "Obsoletes"
 msgstr "Forældede"
 
 #. TRANSLATORS: details about the update, the vendor URLs
-#: ../client/pk-console.c:352
+#: ../client/pk-console.c:356
 msgid "Vendor"
 msgstr "Leverandør"
 
 #. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:356
+#: ../client/pk-console.c:360
 msgid "Bugzilla"
 msgstr "Bugzilla"
 
 #. TRANSLATORS: details about the update, the CVE URLs
-#: ../client/pk-console.c:360
+#: ../client/pk-console.c:364
 msgid "CVE"
 msgstr "CVE"
 
 #. TRANSLATORS: details about the update, if the package requires a restart
-#: ../client/pk-console.c:364
+#: ../client/pk-console.c:368
 msgid "Restart"
 msgstr "Genstart"
 
 #. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:368
+#: ../client/pk-console.c:372
 msgid "Update text"
 msgstr "Opdateringstekst"
 
 #. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:372
+#: ../client/pk-console.c:376
 msgid "Changes"
 msgstr "Ændringer"
 
 #. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:376
+#: ../client/pk-console.c:380
 msgid "State"
 msgstr "Status"
 
 #. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:381
+#: ../client/pk-console.c:385
 msgid "Issued"
 msgstr "Udgivet"
 
 #. TRANSLATORS: details about the update, date the update was updated
-#: ../client/pk-console.c:386
+#: ../client/pk-console.c:390
 msgid "Updated"
 msgstr "Opdateret"
 
-#: ../client/pk-console.c:473 ../client/pk-console.c:475
+#: ../client/pk-console.c:477 ../client/pk-console.c:479
 msgid "Percentage"
 msgstr "Procent"
 
-#: ../client/pk-console.c:475
+#: ../client/pk-console.c:479
 msgid "Unknown"
 msgstr "Ukendt"
 
 #. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:517
+#: ../client/pk-console.c:521
 msgid "System restart required by:"
 msgstr "Systemgenstart kræves af:"
 
 #. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:520
+#: ../client/pk-console.c:524
 msgid "Session restart required:"
 msgstr "Sessionsgenstart kræves:"
 
 #. TRANSLATORS: a package requires the system to be restarted due to a security update
-#: ../client/pk-console.c:523
+#: ../client/pk-console.c:527
 msgid "System restart (security) required by:"
 msgstr "Systemgenstart (sikkerhed) kræves af:"
 
 #. TRANSLATORS: a package requires the session to be restarted due to a security update
-#: ../client/pk-console.c:526
+#: ../client/pk-console.c:530
 msgid "Session restart (security) required:"
 msgstr "Sessionsgenstart (sikkerhed) kræves:"
 
 #. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:529
+#: ../client/pk-console.c:533
 msgid "Application restart required by:"
 msgstr "Programgenstart kræves af:"
 
 #. TRANSLATORS: a package needs to restart their system
-#: ../client/pk-console.c:584
+#: ../client/pk-console.c:588
 msgid "Please restart the computer to complete the update."
 msgstr "Genstart venligst computeren for at fuldføre opdateringen."
 
 #. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:587
+#: ../client/pk-console.c:591
 msgid "Please logout and login to complete the update."
 msgstr "Log venligst ud og ind igen for at fuldføre opdateringen."
 
 #. TRANSLATORS: a package needs to restart the application
-#: ../client/pk-console.c:590
+#: ../client/pk-console.c:594
 msgid "Please restart the application as it is being used."
 msgstr "Genstart venligst programmet, da det er i brug."
 
 #. TRANSLATORS: a package needs to restart their system (due to security)
-#: ../client/pk-console.c:593
+#: ../client/pk-console.c:597
 msgid ""
 "Please restart the computer to complete the update as important security "
 "updates have been installed."
-msgstr "Genstart venligst computeren for at fuldføre opdateringen, eftersom "
-"vigtige sikkerhedsopdateringer er blevet installeret."
+msgstr ""
+"Genstart venligst computeren for at fuldføre opdateringen, eftersom vigtige "
+"sikkerhedsopdateringer er blevet installeret."
 
 #. TRANSLATORS: a package needs to restart the session (due to security)
-#: ../client/pk-console.c:596
+#: ../client/pk-console.c:600
 msgid ""
 "Please logout and login to complete the update as important security updates "
 "have been installed."
-msgstr "Log venligst ud og ind igen for at fuldføre opdateringen, eftersom "
-"vigtige sikkerhedsopdateringer er blevet installeret."
+msgstr ""
+"Log venligst ud og ind igen for at fuldføre opdateringen, eftersom vigtige "
+"sikkerhedsopdateringer er blevet installeret."
 
 #. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:723
+#: ../client/pk-console.c:727
 #, c-format
 msgid "The package %s is already installed"
 msgstr "Pakken %s er allerede installeret"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:731
+#: ../client/pk-console.c:735
 #, c-format
 msgid "The package %s could not be installed: %s"
 msgstr "Pakken %s kunne ikke installeres: %s"
 
 #. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
-#: ../client/pk-console.c:756 ../client/pk-console.c:779
-#: ../client/pk-console.c:875 ../client/pk-console.c:992
+#: ../client/pk-console.c:760 ../client/pk-console.c:783
+#: ../client/pk-console.c:879 ../client/pk-console.c:996
 #: ../client/pk-tools-common.c:62 ../client/pk-tools-common.c:81
 #: ../client/pk-tools-common.c:89
 #, c-format
@@ -275,404 +281,404 @@ msgid "Internal error: %s"
 msgstr "Intern fejl: %s"
 
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:764 ../client/pk-console.c:1388
+#: ../client/pk-console.c:768 ../client/pk-console.c:1392
 #, c-format
 msgid "This tool could not install the packages: %s"
 msgstr "Dette værktøj kunne ikke installere pakkerne: %s"
 
 #. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:787
+#: ../client/pk-console.c:791
 #, c-format
 msgid "This tool could not install the files: %s"
 msgstr "Dette værktøj kunne ikke installere filerne: %s"
 
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:843
+#: ../client/pk-console.c:847
 #, c-format
 msgid "This tool could not remove %s: %s"
 msgstr "Dette værktøj kunne ikke fjerne %s: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:866 ../client/pk-console.c:904
-#: ../client/pk-console.c:937
+#: ../client/pk-console.c:870 ../client/pk-console.c:908
+#: ../client/pk-console.c:941
 #, c-format
 msgid "This tool could not remove the packages: %s"
 msgstr "Dette værktøj kunne ikke fjerne pakkerne: %s"
 
 #. TRANSLATORS: When removing, we might have to remove other dependencies
-#: ../client/pk-console.c:916
+#: ../client/pk-console.c:920
 msgid "The following packages have to be removed:"
 msgstr "Følgende pakker er nødt til at blive fjernet:"
 
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:923
+#: ../client/pk-console.c:927
 msgid "Proceed removing additional packages?"
 msgstr "Fortsæt fjernelse af ekstra pakker?"
 
 #. TRANSLATORS: We did not remove any packages
-#: ../client/pk-console.c:928
+#: ../client/pk-console.c:932
 msgid "The package removal was canceled!"
 msgstr "Fjernelsen af pakker blev annulleret!"
 
 #. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:969
+#: ../client/pk-console.c:973
 #, c-format
 msgid "This tool could not download the package %s as it could not be found"
 msgstr "Dette værktøj kunne ikke hente pakken %s fordi den ikke kunne findes"
 
 #. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:1000
+#: ../client/pk-console.c:1004
 #, c-format
 msgid "This tool could not download the packages: %s"
 msgstr "Dette værktøj kunne ikke hente pakkerne: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1027 ../client/pk-console.c:1036
+#: ../client/pk-console.c:1031 ../client/pk-console.c:1040
 #, c-format
 msgid "This tool could not update %s: %s"
 msgstr "Dette værktøj kunne ikke opdatere %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1058 ../client/pk-console.c:1066
+#: ../client/pk-console.c:1062 ../client/pk-console.c:1070
 #, c-format
 msgid "This tool could not get the requirements for %s: %s"
 msgstr "Dette værktøj kunne ikke hente kravene for %s: %s"
 
 #. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:1088 ../client/pk-console.c:1096
+#: ../client/pk-console.c:1092 ../client/pk-console.c:1100
 #, c-format
 msgid "This tool could not get the dependencies for %s: %s"
 msgstr "Dette værktøj kunne ikke hente afhængighederne for %s: %s"
 
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:1118 ../client/pk-console.c:1126
+#: ../client/pk-console.c:1122 ../client/pk-console.c:1130
 #, c-format
 msgid "This tool could not get package details for %s: %s"
 msgstr "Dette værktøj kunne ikke hente pakkedetaljer for %s: %s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1148
+#: ../client/pk-console.c:1152
 #, c-format
 msgid "This tool could not find the files for %s: %s"
 msgstr "Dette værktøj kunne ikke finde filerne til %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1156
+#: ../client/pk-console.c:1160
 #, c-format
 msgid "This tool could not get the file list for %s: %s"
 msgstr "Dette værktøj kunne ikke hente fillisten for %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of packages. The filename follows
-#: ../client/pk-console.c:1178
+#: ../client/pk-console.c:1182
 #, c-format
 msgid "File already exists: %s"
 msgstr "Fil findes allerede: %s"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1183 ../client/pk-console.c:1239
-#: ../client/pk-console.c:1314
+#: ../client/pk-console.c:1187 ../client/pk-console.c:1243
+#: ../client/pk-console.c:1318
 msgid "Getting package list"
 msgstr "Henter pakkeliste"
 
 #. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1189 ../client/pk-console.c:1245
-#: ../client/pk-console.c:1320
+#: ../client/pk-console.c:1193 ../client/pk-console.c:1249
+#: ../client/pk-console.c:1324
 #, c-format
 msgid "This tool could not get package list: %s"
 msgstr "Dette værktøj kunne ikke hente pakkeliste: %s"
 
 #. TRANSLATORS: There was an error saving the list
-#: ../client/pk-console.c:1200
+#: ../client/pk-console.c:1204
 #, c-format
 msgid "Failed to save to disk"
 msgstr "Kunne ikke gemme på disk"
 
 #. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1234 ../client/pk-console.c:1309
+#: ../client/pk-console.c:1238 ../client/pk-console.c:1313
 #, c-format
 msgid "File does not exist: %s"
 msgstr "Fil findes ikke: %s"
 
 #. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1266
+#: ../client/pk-console.c:1270
 msgid "Packages to add"
 msgstr "Pakker at tilføje"
 
 #. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1274
+#: ../client/pk-console.c:1278
 msgid "Packages to remove"
 msgstr "Pakker at fjerne"
 
 #. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1342
+#: ../client/pk-console.c:1346
 #, c-format
 msgid "No new packages need to be installed"
 msgstr "Ingen nye pakker behøver at blive installeret"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1348
+#: ../client/pk-console.c:1352
 msgid "To install"
 msgstr "At installere"
 
 #. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1360
+#: ../client/pk-console.c:1364
 msgid "Searching for package: "
 msgstr "Søger efter pakke: "
 
 #. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1364
+#: ../client/pk-console.c:1368
 msgid "not found."
 msgstr "ikke fundet."
 
 #. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1375
+#: ../client/pk-console.c:1379
 #, c-format
 msgid "No packages can be found to install"
 msgstr "Ingen pakker kunne findes til installation"
 
 #. TRANSLATORS: installing new packages from package list
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
-#: ../client/pk-console.c:1381
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:868
+#: ../client/pk-console.c:1385
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:886
 #, c-format
 msgid "Installing packages"
 msgstr "Installerer pakker"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1417
+#: ../client/pk-console.c:1421
 #, c-format
 msgid "This tool could not find the update details for %s: %s"
 msgstr "Dette værktøj kunne ikke finde opdateringsdetaljer for %s: %s"
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1425
+#: ../client/pk-console.c:1429
 #, c-format
 msgid "This tool could not get the update details for %s: %s"
 msgstr "Dette værktøj kunne ikke hente opdateringsdetaljer for %s: %s"
 
 #. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
-#: ../client/pk-console.c:1456
+#: ../client/pk-console.c:1460
 msgid "Error:"
 msgstr "Fejl:"
 
 #. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1470
+#: ../client/pk-console.c:1474
 msgid "Package description"
 msgstr "Pakkebeskrivelse"
 
 #. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
-#: ../client/pk-console.c:1486
+#: ../client/pk-console.c:1490
 msgid "Message:"
 msgstr "Besked:"
 
 #. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1514
+#: ../client/pk-console.c:1518
 msgid "Package files"
 msgstr "Pakkefiler"
 
 #. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1522
+#: ../client/pk-console.c:1526
 msgid "No files"
 msgstr "Ingen filer"
 
 #. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1545
+#: ../client/pk-console.c:1549
 msgid "Repository signature required"
 msgstr "Signatur til pakkearkiv kræves"
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1555
+#: ../client/pk-console.c:1559
 msgid "Do you accept this signature?"
 msgstr "Accepterer du denne signatur?"
 
 #. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1559
+#: ../client/pk-console.c:1563
 msgid "The signature was not accepted."
 msgstr "Signaturen blev ikke accepteret."
 
 #. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1593
+#: ../client/pk-console.c:1597
 msgid "End user license agreement required"
 msgstr "Slutbruger licensaftale kræves"
 
 #. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1600
+#: ../client/pk-console.c:1604
 msgid "Do you agree to this license?"
 msgstr "Accepterer du denne licens?"
 
 #. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1604
+#: ../client/pk-console.c:1608
 msgid "The license was refused."
 msgstr "Licensen blev afvist."
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1633
+#: ../client/pk-console.c:1637
 msgid "The daemon crashed mid-transaction!"
 msgstr "Dæmonen brød sammen under overførslen!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1686
+#: ../client/pk-console.c:1690
 msgid "PackageKit Console Interface"
 msgstr "PackageKit konsolgrænseflade"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1688
+#: ../client/pk-console.c:1692
 msgid "Subcommands:"
 msgstr "Underkommandoer:"
 
 #. TRANSLATORS: command line argument, if we should show debugging information
 #. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:1780 ../client/pk-generate-pack.c:185
-#: ../client/pk-monitor.c:125
-#: ../contrib/command-not-found/pk-command-not-found.c:521
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:532
-#: ../src/pk-main.c:211
+#: ../client/pk-console.c:1785 ../client/pk-generate-pack.c:185
+#: ../client/pk-monitor.c:128
+#: ../contrib/command-not-found/pk-command-not-found.c:616
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:550
+#: ../contrib/device-rebind/pk-device-rebind.c:293 ../src/pk-main.c:211
 msgid "Show extra debugging information"
 msgstr "Vis ekstra fejlsøgningsinformation"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1783 ../client/pk-monitor.c:127
+#: ../client/pk-console.c:1788 ../client/pk-monitor.c:130
 msgid "Show the program version and exit"
 msgstr "Vis programversionen og afslut"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1786
+#: ../client/pk-console.c:1791
 msgid "Set the filter, e.g. installed"
 msgstr "Sæt filteret, f.eks. installeret"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1789
+#: ../client/pk-console.c:1794
 msgid "Exit without waiting for actions to complete"
 msgstr "Afslut uden at vente på at handlingerne færdiggøres"
 
 #. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:1816
+#: ../client/pk-console.c:1821
 msgid "This tool could not connect to system DBUS."
 msgstr "Dette værktøj kunne ikke forbinde til system-DBUS."
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1905
+#: ../client/pk-console.c:1911
 msgid "The filter specified was invalid"
 msgstr "Filteret det blev angivet er ugyldigt"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1923
+#: ../client/pk-console.c:1930
 msgid "A search type is required, e.g. name"
 msgstr "En søgetype kræves, f.eks. navn"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1929 ../client/pk-console.c:1937
-#: ../client/pk-console.c:1945 ../client/pk-console.c:1953
+#: ../client/pk-console.c:1937 ../client/pk-console.c:1946
+#: ../client/pk-console.c:1955 ../client/pk-console.c:1964
 msgid "A search term is required"
 msgstr "En søgeterm kræves"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1959
+#: ../client/pk-console.c:1971
 msgid "Invalid search type"
 msgstr "Ugyldig søgetype"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1965
+#: ../client/pk-console.c:1977
 msgid "A package name or filename to install is required"
 msgstr "Et pakkenavn eller filnavn at installere kræves"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1973
+#: ../client/pk-console.c:1986
 msgid "A type, key_id and package_id are required"
 msgstr "En type, nøgle_id og pakke_id kræves"
 
 #. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:1981
+#: ../client/pk-console.c:1995
 msgid "A package name to remove is required"
 msgstr "Et pakkenavn til fjernelse kræves"
 
 #. TRANSLATORS: the user did not specify anything about what to download or where
-#: ../client/pk-console.c:1988
-msgid ""
-"A destination directory and then the package names to download are required"
+#: ../client/pk-console.c:2003
+#, fuzzy
+msgid "A destination directory and the package names to download are required"
 msgstr "En destinationsmappe og derefter pakkenavnene til hentning kræves"
 
 #. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:1994
+#: ../client/pk-console.c:2010
 msgid "Directory not found"
 msgstr "Mappe ikke fundet"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2001
+#: ../client/pk-console.c:2018
 msgid "A licence identifier (eula-id) is required"
 msgstr "En licensgenkender (eula-id) kræves"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2010
+#: ../client/pk-console.c:2028
 msgid "A transaction identifier (tid) is required"
 msgstr "En overførselsgenkender (tid) kræves"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:2026
+#: ../client/pk-console.c:2045
 msgid "A package name to resolve is required"
 msgstr "Et pakkenavn til at løse kræves"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:2034 ../client/pk-console.c:2042
+#: ../client/pk-console.c:2054 ../client/pk-console.c:2063
 msgid "A repository name is required"
 msgstr "Et pakkearkivnavn kræves"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2050
+#: ../client/pk-console.c:2072
 msgid "A repo name, parameter and value are required"
 msgstr "Et pakkearkivnavn, parameter og værdi kræves"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:2063
+#: ../client/pk-console.c:2086
 msgid "An action, e.g. 'update-system' is required"
 msgstr "En handling, f.eks. \"update-system\" kræves"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:2069
+#: ../client/pk-console.c:2093
 msgid "A correct role is required"
 msgstr "En korrekt rolle kræves"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2075
+#: ../client/pk-console.c:2100
 msgid "Failed to get the time since this action was last completed"
 msgstr "Kunne ikke hente tid siden denne handling sidst blev gennemført"
 
 #. TRANSLATORS: The user did not provide a package name
 #. TRANSLATORS: This is when the user fails to supply the package name
-#: ../client/pk-console.c:2084 ../client/pk-console.c:2095
-#: ../client/pk-console.c:2103 ../client/pk-console.c:2119
-#: ../client/pk-console.c:2127 ../client/pk-generate-pack.c:241
+#: ../client/pk-console.c:2110 ../client/pk-console.c:2122
+#: ../client/pk-console.c:2131 ../client/pk-console.c:2149
+#: ../client/pk-console.c:2158 ../client/pk-generate-pack.c:241
 msgid "A package name is required"
 msgstr "Et pakkenavn kræves"
 
 #. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:2111
+#: ../client/pk-console.c:2140
 msgid "A package provide string is required"
 msgstr "En pakke udbydningsstreng kræves"
 
 #. TRANSLATORS: The user didn't specify a filename to create as a list
-#: ../client/pk-console.c:2135
+#: ../client/pk-console.c:2167
 msgid "A list file name to create is required"
 msgstr "Et listefilnavn til at oprette kræves"
 
 #. TRANSLATORS: The user didn't specify a filename to open as a list
-#: ../client/pk-console.c:2144 ../client/pk-console.c:2153
+#: ../client/pk-console.c:2177 ../client/pk-console.c:2187
 msgid "A list file to open is required"
 msgstr "En listefil til at åbne kræves"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2206
+#: ../client/pk-console.c:2241
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "Indstilling \"%s\" er ikke understøttet"
 
 #. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2219
+#: ../client/pk-console.c:2254
 msgid "Incorrect privileges for this operation"
 msgstr "Rettigheder for denne operation er ikke rigtige"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2222
+#: ../client/pk-console.c:2257
 msgid "Command failed"
 msgstr "Kommando fejlede"
 
@@ -797,10 +803,14 @@ msgid "Failed to create '%s': %s"
 msgstr "Kunne ikke oprette \"%s\": %s"
 
 #. TRANSLATORS: this is a program that monitors PackageKit
-#: ../client/pk-monitor.c:143
+#: ../client/pk-monitor.c:146
 msgid "PackageKit Monitor"
 msgstr "PackageKit overvåger"
 
+#: ../client/pk-monitor.c:183
+msgid "Cannot show the list of transactions"
+msgstr ""
+
 #. TRANSLATORS: The package was not found in any software sources
 #: ../client/pk-tools-common.c:118
 #, c-format
@@ -822,314 +832,433 @@ msgstr "Vælg venligst den rigtige pakke: "
 msgid "Please enter a number from 1 to %i: "
 msgstr "Indtast et nummer fra 1 til %i: "
 
+#. TRANSLATORS: when we are getting data from the daemon
+#: ../contrib/browser-plugin/pk-plugin-install.c:466
+msgid "Getting package information..."
+msgstr "Henter information om pakke..."
+
+#. TRANSLATORS: run an applicaiton
+#: ../contrib/browser-plugin/pk-plugin-install.c:472
+#, c-format
+msgid "Run %s"
+msgstr "Kør %s"
+
+#. TRANSLATORS: show the installed version of a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:478
+msgid "Installed version"
+msgstr "Installeret version"
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:486
+#, c-format
+msgid "Run version %s now"
+msgstr "Kør version %s nu"
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:492
+msgid "Run now"
+msgstr "Kør nu"
+
+#. TRANSLATORS: update to a new version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:498
+#, c-format
+msgid "Update to version %s"
+msgstr "Opdatér til version %s"
+
+#. TRANSLATORS: To install a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:504
+#, c-format
+msgid "Install %s now"
+msgstr "Installér %s nu"
+
+#. TRANSLATORS: the version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:507
+msgid "Version"
+msgstr "Version"
+
+#. TRANSLATORS: noting found, so can't install
+#: ../contrib/browser-plugin/pk-plugin-install.c:512
+msgid "No packages found for your system"
+msgstr "Ingen pakker fundet til dit system"
+
+#. TRANSLATORS: package is being installed
+#: ../contrib/browser-plugin/pk-plugin-install.c:517
+msgid "Installing..."
+msgstr "Installerer..."
+
+#. TRANSLATORS: downloading repo data so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:349
+msgid "Downloading details about the software sources."
+msgstr ""
+
+#. TRANSLATORS: downloading file lists so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:353
+msgid "Downloading filelists (this may take some time to complete)."
+msgstr ""
+
+#. TRANSLATORS: waiting for native lock
+#: ../contrib/command-not-found/pk-command-not-found.c:357
+#, fuzzy
+msgid "Waiting for package manager lock."
+msgstr "Finder pakkenavn."
+
+#. TRANSLATORS: loading package cache so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:361
+#, fuzzy
+msgid "Loading list of packages."
+msgstr "Henter pakker"
+
 #. TRANSLATORS: we failed to find the package, this shouldn't happen
-#: ../contrib/command-not-found/pk-command-not-found.c:372
+#: ../contrib/command-not-found/pk-command-not-found.c:420
 msgid "Failed to search for file"
 msgstr "Kunne ikke søge efter fil"
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:496
+#: ../contrib/command-not-found/pk-command-not-found.c:557
 msgid "Failed to launch:"
 msgstr "Kunne ikke starte:"
 
 #. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/command-not-found/pk-command-not-found.c:537
+#: ../contrib/command-not-found/pk-command-not-found.c:632
 msgid "PackageKit Command Not Found"
 msgstr "PackageKit-kommando ikke fundet"
 
 #. TRANSLATORS: the prefix of all the output telling the user why it's not executing
-#: ../contrib/command-not-found/pk-command-not-found.c:560
+#: ../contrib/command-not-found/pk-command-not-found.c:658
 msgid "Command not found."
 msgstr "Kommando ikke fundet."
 
 #. TRANSLATORS: tell the user what we think the command is
-#: ../contrib/command-not-found/pk-command-not-found.c:567
+#: ../contrib/command-not-found/pk-command-not-found.c:665
 msgid "Similar command is:"
 msgstr "Lignende kommando er:"
 
 #. TRANSLATORS: Ask the user if we should run the similar command
-#: ../contrib/command-not-found/pk-command-not-found.c:576
+#: ../contrib/command-not-found/pk-command-not-found.c:674
 msgid "Run similar command:"
 msgstr "Kør lignende kommando:"
 
 #. TRANSLATORS: show the user a list of commands that they could have meant
 #. TRANSLATORS: show the user a list of commands we could run
-#: ../contrib/command-not-found/pk-command-not-found.c:588
-#: ../contrib/command-not-found/pk-command-not-found.c:597
+#: ../contrib/command-not-found/pk-command-not-found.c:686
+#: ../contrib/command-not-found/pk-command-not-found.c:695
 msgid "Similar commands are:"
 msgstr "Lignende kommandoer er:"
 
 #. TRANSLATORS: ask the user to choose a file to run
-#: ../contrib/command-not-found/pk-command-not-found.c:604
+#: ../contrib/command-not-found/pk-command-not-found.c:702
 msgid "Please choose a command to run"
 msgstr "Vælg venligst en kommando at køre"
 
 #. TRANSLATORS: tell the user what package provides the command
-#: ../contrib/command-not-found/pk-command-not-found.c:619
+#: ../contrib/command-not-found/pk-command-not-found.c:721
 msgid "The package providing this file is:"
 msgstr "Pakken der udbyder denne fil er:"
 
 #. TRANSLATORS: as the user if we want to install a package to provide the command
-#: ../contrib/command-not-found/pk-command-not-found.c:624
+#: ../contrib/command-not-found/pk-command-not-found.c:726
 #, c-format
 msgid "Install package '%s' to provide command '%s'?"
 msgstr "Installér pakke \"%s\" for at udbyde kommando \"%s\"?"
 
 #. TRANSLATORS: Show the user a list of packages that provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:645
+#: ../contrib/command-not-found/pk-command-not-found.c:747
 msgid "Packages providing this file are:"
 msgstr "Pakker der udbyder denne fil er:"
 
 #. TRANSLATORS: Show the user a list of packages that they can install to provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:654
+#: ../contrib/command-not-found/pk-command-not-found.c:756
 msgid "Suitable packages are:"
 msgstr "Passende pakker er:"
 
 #. get selection
 #. TRANSLATORS: ask the user to choose a file to install
-#: ../contrib/command-not-found/pk-command-not-found.c:662
+#: ../contrib/command-not-found/pk-command-not-found.c:764
 msgid "Please choose a package to install"
 msgstr "Vælg venligst en pakke at installere"
 
-#. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/pk-plugin-install.c:433
-msgid "Getting package information..."
-msgstr "Henter information om pakke..."
-
-#. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/pk-plugin-install.c:439
-#, c-format
-msgid "Run %s"
-msgstr "Kør %s"
-
-#. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:445
-msgid "Installed version"
-msgstr "Installeret version"
-
-#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:453
-#, c-format
-msgid "Run version %s now"
-msgstr "Kør version %s nu"
-
-#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:459
-msgid "Run now"
-msgstr "Kør nu"
-
-#. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:465
-#, c-format
-msgid "Update to version %s"
-msgstr "Opdatér til version %s"
-
-#. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:471
-#, c-format
-msgid "Install %s now"
-msgstr "Installér %s nu"
-
-#. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:474
-msgid "Version"
-msgstr "Version"
-
-#. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/pk-plugin-install.c:479
-msgid "No packages found for your system"
-msgstr "Ingen pakker fundet til dit system"
-
-#. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/pk-plugin-install.c:484
-msgid "Installing..."
-msgstr "Installerer..."
-
 #. TRANSLATORS: we are starting to install the packages
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:186
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:187
 msgid "Starting install"
 msgstr "Starter installation"
 
 #. TRANSLATORS: we couldn't find the package name, non-fatal
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:379
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:397
 #, c-format
 msgid "Failed to find the package %s, or already installed: %s"
 msgstr "Kunne ikke finde pakken %s, eller pakken er allerede installeret: %s"
 
 #. command line argument, simulate what would be done, but don't actually do it
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:535
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:553
 msgid ""
 "Don't actually install any packages, only simulate what would be installed"
 msgstr "Installér ikke nogen pakker, lad kun som om de ville blive installeret"
 
 #. command line argument, do we skip packages that depend on the ones specified
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:538
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:556
 msgid "Do not install dependencies of the core packages"
 msgstr "Installér ikke afhængigheder til kerne-pakkerne"
 
 #. command line argument, do we operate quietly
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:541
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:559
 msgid "Do not display information or progress"
 msgstr "Vis ikke information eller fremgang"
 
 #. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:559
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:577
 msgid "PackageKit Debuginfo Installer"
 msgstr "PackageKit installationsprogram til fejlsøgningsinformation"
 
 #. TRANSLATORS: the use needs to specify a list of package names on the command line
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:571
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:589
 #, c-format
 msgid "ERROR: Specify package names to install."
 msgstr "FEJL: Angiv pakkenavne som skal installeres."
 
 #. TRANSLATORS: we are getting the list of repositories
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:605
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:623
 #, c-format
 msgid "Getting sources list"
 msgstr "Henter liste over pakkearkiver"
 
 #. TRANSLATORS: all completed 100%
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:623
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:663
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:698
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:782
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:826
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:893
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:937
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:641
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:681
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:716
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:800
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:844
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:911
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:955
 #, c-format
 msgid "OK."
 msgstr "O.k."
 
 #. TRANSLATORS: tell the user what we found
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:626
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:644
 #, c-format
 msgid "Found %i enabled and %i disabled sources."
 msgstr "Fandt %i aktiverede og %i deaktiverede pakkearkiver."
 
 #. TRANSLATORS: we're finding repositories that match out pattern
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:633
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:651
 #, c-format
 msgid "Finding debugging sources"
 msgstr "Finder fejlsøgningspakkearkiver"
 
 #. TRANSLATORS: tell the user what we found
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:666
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:684
 #, c-format
 msgid "Found %i disabled debuginfo repos."
 msgstr "Fandt %i deaktiverede pakkearkiver med fejlsøgningsinformation."
 
 #. TRANSLATORS: we're now enabling all the debug sources we found
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:673
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:691
 #, c-format
 msgid "Enabling debugging sources"
 msgstr "Aktiverer fejlsøgningspakkearkiver"
 
 #. TRANSLATORS: operation was not successful
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:683
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:767
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:811
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:878
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:922
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:701
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:785
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:829
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:896
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:940
 msgid "FAILED."
 msgstr "MISLYKKEDES."
 
 #. TRANSLATORS: tell the user how many we enabled
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:701
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:719
 #, c-format
 msgid "Enabled %i debugging sources."
 msgstr "Aktiverede %i fejlsøgningspakkearkiver."
 
 #. TRANSLATORS: we're now finding packages that match in all the repos
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:708
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:726
 #, c-format
 msgid "Finding debugging packages"
 msgstr "Finder fejlsøgningspakker"
 
 #. TRANSLATORS: we couldn't find the package name, non-fatal
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:720
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:738
 #, c-format
 msgid "Failed to find the package %s: %s"
 msgstr "Kunne ikke finde pakken \"%s\": %s"
 
 #. TRANSLATORS: we couldn't find the debuginfo package name, non-fatal
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:743
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:761
 #, c-format
 msgid "Failed to find the debuginfo package %s: %s"
 msgstr "Kunne ikke finde pakken med fejlsøgningsinformation \"%s\": %s"
 
 #. TRANSLATORS: no debuginfo packages could be found to be installed
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:771
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:789
 #, c-format
 msgid "Found no packages to install."
 msgstr "Fandt ingen pakker at installere."
 
 #. TRANSLATORS: tell the user we found some packages, and then list them
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:785
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:803
 #, c-format
 msgid "Found %i packages:"
 msgstr "Fandt %i pakker:"
 
 #. TRANSLATORS: tell the user we are searching for deps
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:801
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:819
 #, c-format
 msgid "Finding packages that depend on these packages"
 msgstr "Finder pakker som afhænger af disse pakker"
 
 #. TRANSLATORS: could not install, detailed error follows
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:814
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:832
 #, c-format
 msgid "Could not find dependant packages: %s"
 msgstr "Kunne ikke finde afhængige pakker: %s"
 
 #. TRANSLATORS: tell the user we found some more packages
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:830
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:848
 #, c-format
 msgid "Found %i extra packages."
 msgstr "Fandt %i ekstra pakker."
 
 #. TRANSLATORS: tell the user we found some more packages
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:834
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:852
 #, c-format
 msgid "No extra packages required."
 msgstr "Ingen ekstra pakker er krævet."
 
 #. TRANSLATORS: tell the user we found some packages (and deps), and then list them
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:843
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:861
 #, c-format
 msgid "Found %i packages to install:"
 msgstr "Fandt %i pakker at installere:"
 
 #. TRANSLATORS: simulate mode is a testing mode where we quit before the action
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:856
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:874
 #, c-format
 msgid "Not installing packages in simulate mode"
 msgstr "Installerer ikke pakker i simuleringstilstand"
 
-#. TRANSLATORS: coul dnot install, detailed error follows
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:881
+#. TRANSLATORS: could not install, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:899
 #, c-format
 msgid "Could not install packages: %s"
 msgstr "Kunne ikke installere pakker: %s"
 
 #. TRANSLATORS: we are now disabling all debuginfo repos we previously enabled
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:913
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:931
 #, c-format
 msgid "Disabling sources previously enabled"
 msgstr "Deaktiverer pakkearkiver som tidligere er aktiveret"
 
 #. TRANSLATORS: no debuginfo packages could be found to be installed, detailed error follows
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:925
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:943
 #, c-format
 msgid "Could not disable the debugging sources: %s"
 msgstr "Kunne ikke deaktivere fejlsøgningspakkearkiverne: %s"
 
 #. TRANSLATORS: we disabled all the debugging repos that we enabled before
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:940
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:958
 #, c-format
 msgid "Disabled %i debugging sources."
 msgstr "Deaktiverede %i fejlsøgningspakkearkiver."
 
+#. TRANSLATORS: couldn't open device to write
+#: ../contrib/device-rebind/pk-device-rebind.c:61
+#, fuzzy
+msgid "Failed to open file"
+msgstr "Kunne ikke søge efter fil"
+
+#. TRANSLATORS: could not write to the device
+#: ../contrib/device-rebind/pk-device-rebind.c:70
+#, fuzzy
+msgid "Failed to write to the file"
+msgstr "Kunne ikke søge efter fil"
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:110
+#: ../contrib/device-rebind/pk-device-rebind.c:147
+#, fuzzy
+msgid "Failed to write to device"
+msgstr "Kunne ikke gemme på disk"
+
+#. TRANSLATORS: the device could not be found in sysfs
+#: ../contrib/device-rebind/pk-device-rebind.c:175
+#, fuzzy
+msgid "Device could not be found"
+msgstr "Pakken kunne ikke findes"
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:202
+#, fuzzy
+msgid "Failed to unregister driver"
+msgstr "Kunne ikke oprette mappe:"
+
+#. TRANSLATORS: we failed to bind the old driver
+#: ../contrib/device-rebind/pk-device-rebind.c:211
+#, fuzzy
+msgid "Failed to register driver"
+msgstr "Kunne ikke oprette mappe:"
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:260
+#, fuzzy
+msgid "Device path not found"
+msgstr "Mappe ikke fundet"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:268
+msgid "Incorrect device path specified"
+msgstr ""
+
+#. command line argument, simulate what would be done, but don't actually do it
+#: ../contrib/device-rebind/pk-device-rebind.c:296
+#, fuzzy
+msgid "Don't actually touch the hardware, only simulate what would be done"
+msgstr "Installér ikke nogen pakker, lad kun som om de ville blive installeret"
+
+#. TRANSLATORS: command line option: a list of files to install
+#: ../contrib/device-rebind/pk-device-rebind.c:299
+msgid "Device paths"
+msgstr ""
+
+#. TRANSLATORS: tool that gets called when the device needs reloading after installing firmware
+#: ../contrib/device-rebind/pk-device-rebind.c:314
+#, fuzzy
+msgid "PackageKit Device Reloader"
+msgstr "PackageKit-servicepakke"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:322
+msgid "You need to specify at least one valid device path"
+msgstr ""
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:332
+msgid "This script can only be used by the root user"
+msgstr ""
+
+#. TRANSLATORS: we're going to verify the path first
+#: ../contrib/device-rebind/pk-device-rebind.c:341
+msgid "Verifying device path"
+msgstr ""
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:346
+#, fuzzy
+msgid "Failed to verify device path"
+msgstr "Kunne ikke søge efter fil"
+
+#. TRANSLATORS: we're going to try
+#: ../contrib/device-rebind/pk-device-rebind.c:360
+msgid "Attempting to rebind device"
+msgstr ""
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:365
+#, fuzzy
+msgid "Failed to rebind device"
+msgstr "Kunne ikke oprette mappe:"
+
 #: ../data/packagekit-catalog.xml.in.h:1
 msgid "PackageKit Catalog"
 msgstr "PackageKit-katalog"
@@ -1188,21 +1317,26 @@ msgid "Authentication is required to refresh the system sources"
 msgstr "Godkendelse kræves for at opdatere systemkilderne"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:15
+#, fuzzy
+msgid "Authentication is required to reload the device with a new driver"
+msgstr "Godkendelse kræves for at opdatere systemkilderne"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:16
 msgid "Authentication is required to remove packages"
 msgstr "Godkendelse kræves for at fjerne pakker"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:16
+#: ../policy/org.freedesktop.packagekit.policy.in.h:17
 msgid "Authentication is required to rollback a transaction"
 msgstr "Godkendelse kræves for at rulle en transaktion tilbage"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:17
+#: ../policy/org.freedesktop.packagekit.policy.in.h:18
 msgid ""
 "Authentication is required to set the network proxy used for downloading "
 "packages"
 msgstr ""
 "Godkendelse kræves for at sætte netværksproxyen brugt til hentning af pakker"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:18
+#: ../policy/org.freedesktop.packagekit.policy.in.h:19
 msgid "Authentication is required to update packages"
 msgstr "Godkendelse kræves for at opdatere pakker"
 
@@ -1211,7 +1345,7 @@ msgstr "Godkendelse kræves for at opdatere pakker"
 #. authentication, but a different user id needs the admin password
 #. to cancel another users task.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:24
+#: ../policy/org.freedesktop.packagekit.policy.in.h:25
 msgid "Cancel foreign task"
 msgstr "Annullér fremmed opgave"
 
@@ -1220,7 +1354,7 @@ msgstr "Annullér fremmed opgave"
 #. software sources as this can be used to enable new updates or
 #. install different versions of software.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:30
+#: ../policy/org.freedesktop.packagekit.policy.in.h:31
 msgid "Change software source parameters"
 msgstr "Ændr softwarekildeparametre"
 
@@ -1230,7 +1364,7 @@ msgstr "Ændr softwarekildeparametre"
 #. - Paranoid users (or parents!) can change this to 'auth_admin' or
 #. 'auth_admin_keep'.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:37
+#: ../policy/org.freedesktop.packagekit.policy.in.h:38
 msgid "Install signed package"
 msgstr "Installér signeret pakke"
 
@@ -1240,7 +1374,7 @@ msgstr "Installér signeret pakke"
 #. password would be a massive security hole.
 #. - This is not retained as each package should be authenticated.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:44
+#: ../policy/org.freedesktop.packagekit.policy.in.h:45
 msgid "Install untrusted local file"
 msgstr "Installér upålidelig lokal fil"
 
@@ -1248,11 +1382,22 @@ msgstr "Installér upålidelig lokal fil"
 #. - Normal users do not require admin authentication to refresh the
 #. cache, as this doesn't actually install or remove software.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:49
+#: ../policy/org.freedesktop.packagekit.policy.in.h:50
 msgid "Refresh system sources"
 msgstr "Opdatér systemkilder"
 
 #. SECURITY:
+#. - Normal users require admin authentication to rebind a driver
+#. so that it works after we install firmware.
+#. - This should not be set to 'yes' as unprivileged users could then
+#. try to rebind drivers in use, for instance security authentication
+#. devices.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:58
+msgid "Reload a device"
+msgstr ""
+
+#. SECURITY:
 #. - Normal users require admin authentication to remove packages as
 #. this can make the system unbootable or stop other applications from
 #. working.
@@ -1261,7 +1406,7 @@ msgstr "Opdatér systemkilder"
 #. be removed. If this is not possible, change this authentication to
 #. 'auth_admin'.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:59
+#: ../policy/org.freedesktop.packagekit.policy.in.h:68
 msgid "Remove package"
 msgstr "Fjern pakke"
 
@@ -1270,7 +1415,7 @@ msgstr "Fjern pakke"
 #. as this will change a large number of packages, and could expose the
 #. system to previously patched security vulnerabilities.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:65
+#: ../policy/org.freedesktop.packagekit.policy.in.h:74
 msgid "Rollback to a previous transaction"
 msgstr "Rul tilbage til en tidligere overførsel"
 
@@ -1278,7 +1423,7 @@ msgstr "Rul tilbage til en tidligere overførsel"
 #. - Normal users do not require admin authentication to set the proxy
 #. used for downloading packages.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:70
+#: ../policy/org.freedesktop.packagekit.policy.in.h:79
 msgid "Set network proxy"
 msgstr "Sæt netværksproxy"
 
@@ -1288,7 +1433,7 @@ msgstr "Sæt netværksproxy"
 #. without a secure authentication.
 #. - This is not kept as each package should be authenticated.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:77
+#: ../policy/org.freedesktop.packagekit.policy.in.h:86
 msgid "Trust a key used for signing packages"
 msgstr "Betro en nøgle brugt til signering af pakker"
 
@@ -1299,7 +1444,7 @@ msgstr "Betro en nøgle brugt til signering af pakker"
 #. - Changing this to anything other than 'yes' will break unattended
 #. updates.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:85
+#: ../policy/org.freedesktop.packagekit.policy.in.h:94
 msgid "Update packages"
 msgstr "Opdatér pakker"
 
@@ -1368,37 +1513,52 @@ msgid "Cannot connect to the system bus"
 msgstr "Kan ikke forbinde til systembussen"
 
 #. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error follows
-#: ../src/pk-main.c:331
+#: ../src/pk-main.c:334
 msgid "Error trying to start:"
 msgstr "Kunne ikke starte:"
 
-#: ../src/pk-polkit-action-lookup.c:143
+#: ../src/pk-polkit-action-lookup.c:147
 msgid "To install debugging packages, extra sources need to be enabled"
 msgstr ""
 "For at installere fejlsøgningspakker skal ekstra pakkearkiver aktiveres"
 
 #. TRANSLATORS: is not GPG signed
-#: ../src/pk-polkit-action-lookup.c:156 ../src/pk-polkit-action-lookup.c:175
+#: ../src/pk-polkit-action-lookup.c:168 ../src/pk-polkit-action-lookup.c:187
 msgid "The software is not from a trusted source."
 msgstr "Softwaren er ikke fra en betroet kilde."
 
-#. TRANSLATORS: user has to trust provider -- I know, this sucks
-#: ../src/pk-polkit-action-lookup.c:160
+#: ../src/pk-polkit-action-lookup.c:173
 msgid "Do not update this package unless you are sure it is safe to do so."
 msgstr "Opdatér ikke denne pakke medmindre du er sikker på, at det er sikkert."
 
-#. TRANSLATORS: warn the user that all bets are off
-#: ../src/pk-polkit-action-lookup.c:164 ../src/pk-polkit-action-lookup.c:183
-msgid "Malicious software can damage your computer or cause other harm."
-msgstr "Ondsindet software kan ødelægge din computer eller gøre anden skade."
+#: ../src/pk-polkit-action-lookup.c:174
+#, fuzzy
+msgid "Do not update these packages unless you are sure it is safe to do so."
+msgstr "Opdatér ikke denne pakke medmindre du er sikker på, at det er sikkert."
 
-#. TRANSLATORS: user has to trust provider -- I know, this sucks
-#: ../src/pk-polkit-action-lookup.c:179
+#: ../src/pk-polkit-action-lookup.c:192
 msgid "Do not install this package unless you are sure it is safe to do so."
 msgstr ""
 "Installér ikke denne pakke medmindre du er sikker på, at det er sikkert."
 
+#: ../src/pk-polkit-action-lookup.c:193
+#, fuzzy
+msgid "Do not install these packages unless you are sure it is safe to do so."
+msgstr ""
+"Installér ikke denne pakke medmindre du er sikker på, at det er sikkert."
+
+#. TRANSLATORS: warn the user that all bets are off
+#: ../src/pk-polkit-action-lookup.c:199
+msgid "Malicious software can damage your computer or cause other harm."
+msgstr "Ondsindet software kan ødelægge din computer eller gøre anden skade."
+
+#. TRANSLATORS: too many packages to list each one
+#: ../src/pk-polkit-action-lookup.c:274
+#, fuzzy
+msgid "Many packages"
+msgstr "Opdatér pakker"
+
 #. TRANSLATORS: if the transaction is forced to install only trusted packages
-#: ../src/pk-polkit-action-lookup.c:263
+#: ../src/pk-polkit-action-lookup.c:334
 msgid "Only trusted"
 msgstr "Kun betroede"
diff --git a/po/de.po b/po/de.po
index a708fcb..5e0e444 100644
--- a/po/de.po
+++ b/po/de.po
@@ -18,9 +18,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: packagekit.master.de\n"
-"Report-Msgid-Bugs-To: https://bugs.freedesktop.org/enter_bug.cgi?"
-"product=PackageKit&component=General\n"
-"POT-Creation-Date: 2009-07-21 03:24+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-08-24 11:06+0100\n"
 "PO-Revision-Date: 2009-07-15 22:15+0200\n"
 "Last-Translator: Christian Kirbach <Christian.Kirbach at googlemail.com>\n"
 "Language-Team: German <gnome-de at gnome.org>\n"
@@ -30,230 +29,234 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
 #. TRANSLATORS: this is an atomic transaction
-#: ../client/pk-console.c:231
+#: ../client/pk-console.c:235
 msgid "Transaction"
 msgstr "Transaktion"
 
 #. TRANSLATORS: this is the time the transaction was started in system timezone
-#: ../client/pk-console.c:233
+#: ../client/pk-console.c:237
 msgid "System time"
 msgstr "Systemzeit"
 
 #. TRANSLATORS: this is if the transaction succeeded or not
-#: ../client/pk-console.c:235
+#: ../client/pk-console.c:239
 msgid "Succeeded"
 msgstr "Erfolgreich"
 
 #. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:235 ../client/pk-console.c:402
+#: ../client/pk-console.c:239 ../client/pk-console.c:406
 msgid "True"
 msgstr "Wahr"
 
-#: ../client/pk-console.c:235 ../client/pk-console.c:402
+#: ../client/pk-console.c:239 ../client/pk-console.c:406
 msgid "False"
 msgstr "Falsch"
 
 #. TRANSLATORS: this is the transactions role, e.g. "update-system"
 #. TRANSLATORS: the trasaction role, e.g. update-system
-#: ../client/pk-console.c:237 ../src/pk-polkit-action-lookup.c:256
+#: ../client/pk-console.c:241 ../src/pk-polkit-action-lookup.c:327
 msgid "Role"
 msgstr "Rolle"
 
 #. TRANSLATORS: this is The duration of the transaction
-#: ../client/pk-console.c:242
+#: ../client/pk-console.c:246
 msgid "Duration"
 msgstr "Dauer"
 
-#: ../client/pk-console.c:242
+#: ../client/pk-console.c:246
 msgid "(seconds)"
 msgstr "(Sekunden)"
 
 #. TRANSLATORS: this is The command line used to do the action
 #. TRANSLATORS: the command line of the thing that wants the authentication
-#: ../client/pk-console.c:246 ../src/pk-polkit-action-lookup.c:270
+#: ../client/pk-console.c:250 ../src/pk-polkit-action-lookup.c:341
 msgid "Command line"
 msgstr "Befehlszeile"
 
 #. TRANSLATORS: this is the user ID of the user that started the action
-#: ../client/pk-console.c:248
+#: ../client/pk-console.c:252
 msgid "User ID"
 msgstr "Benutzerkennung"
 
 #. TRANSLATORS: this is the username, e.g. hughsie
-#: ../client/pk-console.c:255
+#: ../client/pk-console.c:259
 msgid "Username"
 msgstr "Benutzername"
 
 #. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
-#: ../client/pk-console.c:259
+#: ../client/pk-console.c:263
 msgid "Real name"
 msgstr "Echter Name"
 
-#: ../client/pk-console.c:267
+#: ../client/pk-console.c:271
 msgid "Affected packages:"
 msgstr "Beteiligte Pakete:"
 
-#: ../client/pk-console.c:269
+#: ../client/pk-console.c:273
 msgid "Affected packages: None"
 msgstr "Beteilige Pakete: Keine"
 
 #. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:294
+#: ../client/pk-console.c:298
 msgid "Distribution"
 msgstr "Distribution"
 
 #. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:296
+#: ../client/pk-console.c:300
 msgid "Type"
 msgstr "Typ"
 
 #. TRANSLATORS: this is any summary text describing the upgrade
 #. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:298 ../client/pk-console.c:321
+#: ../client/pk-console.c:302 ../client/pk-console.c:325
 msgid "Summary"
 msgstr "Zusammenfassung"
 
 #. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:310
+#: ../client/pk-console.c:314
 msgid "Category"
 msgstr "Kategorie"
 
 #. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:312
+#: ../client/pk-console.c:316
 msgid "ID"
 msgstr "Kennung"
 
 #. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:315
+#: ../client/pk-console.c:319
 msgid "Parent"
 msgstr "Elternteil"
 
 #. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:318
+#: ../client/pk-console.c:322
 msgid "Name"
 msgstr "Name"
 
 #. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:324
+#: ../client/pk-console.c:328
 msgid "Icon"
 msgstr "Symbol"
 
 #. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:339
+#: ../client/pk-console.c:343
 msgid "Details about the update:"
 msgstr "Details zur Aktualisierung:"
 
 #. TRANSLATORS: details about the update, package name and version
-#: ../client/pk-console.c:341
+#. TRANSLATORS: title, the names of the packages that the method is processing
+#: ../client/pk-console.c:345 ../src/pk-polkit-action-lookup.c:352
+#, fuzzy
 msgid "Package"
-msgstr "Paket"
+msgid_plural "Packages"
+msgstr[0] "Paket"
+msgstr[1] "Paket"
 
 #. TRANSLATORS: details about the update, any packages that this update updates
-#: ../client/pk-console.c:344
+#: ../client/pk-console.c:348
 msgid "Updates"
 msgstr "Aktualisierungen"
 
 #. TRANSLATORS: details about the update, any packages that this update obsoletes
-#: ../client/pk-console.c:348
+#: ../client/pk-console.c:352
 msgid "Obsoletes"
 msgstr "Veraltete"
 
 #. TRANSLATORS: details about the update, the vendor URLs
-#: ../client/pk-console.c:352
+#: ../client/pk-console.c:356
 msgid "Vendor"
 msgstr "Hersteller"
 
 #. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:356
+#: ../client/pk-console.c:360
 msgid "Bugzilla"
 msgstr "Bugzilla"
 
 #. TRANSLATORS: details about the update, the CVE URLs
-#: ../client/pk-console.c:360
+#: ../client/pk-console.c:364
 msgid "CVE"
 msgstr "CVE"
 
 #. TRANSLATORS: details about the update, if the package requires a restart
-#: ../client/pk-console.c:364
+#: ../client/pk-console.c:368
 msgid "Restart"
 msgstr "Neustart"
 
 #. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:368
+#: ../client/pk-console.c:372
 msgid "Update text"
 msgstr "Text aktualisieren"
 
 #. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:372
+#: ../client/pk-console.c:376
 msgid "Changes"
 msgstr "Änderungen"
 
 #. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:376
+#: ../client/pk-console.c:380
 msgid "State"
 msgstr "Status"
 
 #. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:381
+#: ../client/pk-console.c:385
 msgid "Issued"
 msgstr "Veröffentlicht"
 
 #. TRANSLATORS: details about the update, date the update was updated
-#: ../client/pk-console.c:386
+#: ../client/pk-console.c:390
 msgid "Updated"
 msgstr "Aktualisiert"
 
-#: ../client/pk-console.c:473 ../client/pk-console.c:475
+#: ../client/pk-console.c:477 ../client/pk-console.c:479
 msgid "Percentage"
 msgstr "Prozentsatz"
 
-#: ../client/pk-console.c:475
+#: ../client/pk-console.c:479
 msgid "Unknown"
 msgstr "Unbekannt"
 
 #. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:517
+#: ../client/pk-console.c:521
 msgid "System restart required by:"
 msgstr "Ein Neustart wird erfordert von:"
 
 #. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:520
+#: ../client/pk-console.c:524
 msgid "Session restart required:"
 msgstr "Ein Neustart der Sitzung ist erforderlich:"
 
 #. TRANSLATORS: a package requires the system to be restarted due to a security update
-#: ../client/pk-console.c:523
+#: ../client/pk-console.c:527
 msgid "System restart (security) required by:"
 msgstr "Ein Neustart (zur Verbesserung der Sicherheit) wird erfordert von:"
 
 #. TRANSLATORS: a package requires the session to be restarted due to a security update
-#: ../client/pk-console.c:526
+#: ../client/pk-console.c:530
 msgid "Session restart (security) required:"
 msgstr ""
 "Ein Neustart der Sitzung (zur Verbesserung der Sicherheit) ist erforderlich:"
 
 #. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:529
+#: ../client/pk-console.c:533
 msgid "Application restart required by:"
 msgstr "Ein Programm-Neustart wird benötigt von:"
 
 #. TRANSLATORS: a package needs to restart their system
-#: ../client/pk-console.c:584
+#: ../client/pk-console.c:588
 msgid "Please restart the computer to complete the update."
 msgstr "Bitte starten Sie den Computer neu, um das Update abzuschließen."
 
 #. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:587
+#: ../client/pk-console.c:591
 msgid "Please logout and login to complete the update."
 msgstr "Bitte erneut anmelden, um die Aktualisierung abzuschließen."
 
 #. TRANSLATORS: a package needs to restart the application
-#: ../client/pk-console.c:590
+#: ../client/pk-console.c:594
 msgid "Please restart the application as it is being used."
 msgstr "Starten Sie die Anwendung neu, da sie benutzt wird."
 
 #. TRANSLATORS: a package needs to restart their system (due to security)
-#: ../client/pk-console.c:593
+#: ../client/pk-console.c:597
 msgid ""
 "Please restart the computer to complete the update as important security "
 "updates have been installed."
@@ -262,7 +265,7 @@ msgstr ""
 "denn es sind wichtige Sicherheitsaktualisierungen installiert worden."
 
 #. TRANSLATORS: a package needs to restart the session (due to security)
-#: ../client/pk-console.c:596
+#: ../client/pk-console.c:600
 msgid ""
 "Please logout and login to complete the update as important security updates "
 "have been installed."
@@ -271,20 +274,20 @@ msgstr ""
 "wichtige Sicherheitsaktualisierungen installiert worden."
 
 #. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:723
+#: ../client/pk-console.c:727
 #, c-format
 msgid "The package %s is already installed"
 msgstr "Das Paket »%s« ist bereits installiert"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:731
+#: ../client/pk-console.c:735
 #, c-format
 msgid "The package %s could not be installed: %s"
 msgstr "Das Paket »%s« konnte nicht installiert werden: %s"
 
 #. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
-#: ../client/pk-console.c:756 ../client/pk-console.c:779
-#: ../client/pk-console.c:875 ../client/pk-console.c:992
+#: ../client/pk-console.c:760 ../client/pk-console.c:783
+#: ../client/pk-console.c:879 ../client/pk-console.c:996
 #: ../client/pk-tools-common.c:62 ../client/pk-tools-common.c:81
 #: ../client/pk-tools-common.c:89
 #, c-format
@@ -292,47 +295,47 @@ msgid "Internal error: %s"
 msgstr "Interner Fehler: %s"
 
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:764 ../client/pk-console.c:1388
+#: ../client/pk-console.c:768 ../client/pk-console.c:1392
 #, c-format
 msgid "This tool could not install the packages: %s"
 msgstr "Folgende Pakete konnten nicht installiert werden: %s"
 
 #. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:787
+#: ../client/pk-console.c:791
 #, c-format
 msgid "This tool could not install the files: %s"
 msgstr "Folgende Dateien konnten nicht installiert werden: %s"
 
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:843
+#: ../client/pk-console.c:847
 #, c-format
 msgid "This tool could not remove %s: %s"
 msgstr "»%s« konnte nicht entfernt werden: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:866 ../client/pk-console.c:904
-#: ../client/pk-console.c:937
+#: ../client/pk-console.c:870 ../client/pk-console.c:908
+#: ../client/pk-console.c:941
 #, c-format
 msgid "This tool could not remove the packages: %s"
 msgstr "Folgende Pakete konnten nicht entfernt werden: %s"
 
 #. TRANSLATORS: When removing, we might have to remove other dependencies
-#: ../client/pk-console.c:916
+#: ../client/pk-console.c:920
 msgid "The following packages have to be removed:"
 msgstr "Die folgenden Pakete müssen entfernt werden:"
 
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:923
+#: ../client/pk-console.c:927
 msgid "Proceed removing additional packages?"
 msgstr "Sollen die zusätzlichen Pakete entfernt werden?"
 
 #. TRANSLATORS: We did not remove any packages
-#: ../client/pk-console.c:928
+#: ../client/pk-console.c:932
 msgid "The package removal was canceled!"
 msgstr "Das Entfernen der Pakete wurde abgebrochen!"
 
 #. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:969
+#: ../client/pk-console.c:973
 #, c-format
 msgid "This tool could not download the package %s as it could not be found"
 msgstr ""
@@ -340,364 +343,361 @@ msgstr ""
 "wurde"
 
 #. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:1000
+#: ../client/pk-console.c:1004
 #, c-format
 msgid "This tool could not download the packages: %s"
 msgstr "Folgende Pakete konnten nicht heruntergeladen werden: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1027 ../client/pk-console.c:1036
+#: ../client/pk-console.c:1031 ../client/pk-console.c:1040
 #, c-format
 msgid "This tool could not update %s: %s"
 msgstr "»%s« konnte nicht aktualisiert werden: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1058 ../client/pk-console.c:1066
+#: ../client/pk-console.c:1062 ../client/pk-console.c:1070
 #, c-format
 msgid "This tool could not get the requirements for %s: %s"
 msgstr "Die Dateiliste für »%s« konnte nicht ermittelt werden: %s"
 
 #. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:1088 ../client/pk-console.c:1096
+#: ../client/pk-console.c:1092 ../client/pk-console.c:1100
 #, c-format
 msgid "This tool could not get the dependencies for %s: %s"
 msgstr "Die Abhängigkeiten für »%s« konnte nicht ermittelt werden: %s"
 
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:1118 ../client/pk-console.c:1126
+#: ../client/pk-console.c:1122 ../client/pk-console.c:1130
 #, c-format
 msgid "This tool could not get package details for %s: %s"
 msgstr "Die Detailinformationen für »%s« konnten nicht ermittelt werden: %s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1148
+#: ../client/pk-console.c:1152
 #, c-format
 msgid "This tool could not find the files for %s: %s"
 msgstr "Die Dateien für »%s« konnten nicht gefunden werden: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1156
+#: ../client/pk-console.c:1160
 #, c-format
 msgid "This tool could not get the file list for %s: %s"
 msgstr "Die Dateiliste für »%s« konnte nicht ermittelt werden: %s"
 
 #. TRANSLATORS: There was an error getting the list of packages. The filename follows
-#: ../client/pk-console.c:1178
+#: ../client/pk-console.c:1182
 #, c-format
 msgid "File already exists: %s"
 msgstr "Datei ist bereits vorhanden: %s"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1183 ../client/pk-console.c:1239
-#: ../client/pk-console.c:1314
+#: ../client/pk-console.c:1187 ../client/pk-console.c:1243
+#: ../client/pk-console.c:1318
 msgid "Getting package list"
 msgstr "Paketliste wird geholt"
 
 #. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1189 ../client/pk-console.c:1245
-#: ../client/pk-console.c:1320
+#: ../client/pk-console.c:1193 ../client/pk-console.c:1249
+#: ../client/pk-console.c:1324
 #, c-format
 msgid "This tool could not get package list: %s"
 msgstr "Folgende Paketliste konnte nicht geholt werden: %s"
 
 #. TRANSLATORS: There was an error saving the list
-#: ../client/pk-console.c:1200
+#: ../client/pk-console.c:1204
 #, c-format
 msgid "Failed to save to disk"
 msgstr "Speichern auf dem Datenträger ist fehlgeschlagen"
 
 #. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1234 ../client/pk-console.c:1309
+#: ../client/pk-console.c:1238 ../client/pk-console.c:1313
 #, c-format
 msgid "File does not exist: %s"
 msgstr "Datei nicht vorhanden: %s"
 
 #. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1266
+#: ../client/pk-console.c:1270
 msgid "Packages to add"
 msgstr "Hinzuzufügende Pakete"
 
 #. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1274
+#: ../client/pk-console.c:1278
 msgid "Packages to remove"
 msgstr "Zu entfernende Pakete"
 
 #. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1342
+#: ../client/pk-console.c:1346
 #, c-format
 msgid "No new packages need to be installed"
 msgstr "Es müssen keine neuen Pakete installiert werden"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1348
+#: ../client/pk-console.c:1352
 msgid "To install"
 msgstr "Zum Installieren"
 
 #. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1360
+#: ../client/pk-console.c:1364
 msgid "Searching for package: "
 msgstr "Suche nach Paket:"
 
 #. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1364
+#: ../client/pk-console.c:1368
 msgid "not found."
 msgstr "nicht gefunden."
 
 #. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1375
+#: ../client/pk-console.c:1379
 #, c-format
 msgid "No packages can be found to install"
 msgstr "Es können keine Pakete zum Installieren gefunden werden"
 
 #. TRANSLATORS: installing new packages from package list
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
-#: ../client/pk-console.c:1381
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:868
+#: ../client/pk-console.c:1385
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:886
 #, c-format
 msgid "Installing packages"
 msgstr "Pakete werden installiert"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1417
+#: ../client/pk-console.c:1421
 #, c-format
 msgid "This tool could not find the update details for %s: %s"
 msgstr ""
 "Die Aktualisierungsinformationen für »%s« konnten nicht gefunden werden: %s"
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1425
+#: ../client/pk-console.c:1429
 #, c-format
 msgid "This tool could not get the update details for %s: %s"
 msgstr ""
 "Die Aktualisierungsinformationen für »%s« konnten nicht ermittelt werden: %s"
 
 #. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
-#: ../client/pk-console.c:1456
+#: ../client/pk-console.c:1460
 msgid "Error:"
 msgstr "Fehler:"
 
 #. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1470
+#: ../client/pk-console.c:1474
 msgid "Package description"
 msgstr "Paketbeschreibung"
 
 #. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
-#: ../client/pk-console.c:1486
+#: ../client/pk-console.c:1490
 msgid "Message:"
 msgstr "Hinweis:"
 
 #. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1514
+#: ../client/pk-console.c:1518
 msgid "Package files"
 msgstr "Paketdateien"
 
 #. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1522
+#: ../client/pk-console.c:1526
 msgid "No files"
 msgstr "Keine Dateien"
 
 #. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1545
+#: ../client/pk-console.c:1549
 msgid "Repository signature required"
 msgstr "Signatur des Paketdepots wird benötigt"
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1555
+#: ../client/pk-console.c:1559
 msgid "Do you accept this signature?"
 msgstr "Akzeptieren Sie diese Signatur?"
 
 #. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1559
+#: ../client/pk-console.c:1563
 msgid "The signature was not accepted."
 msgstr "Diese Signatur wurde nicht akzeptiert."
 
 #. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1593
+#: ../client/pk-console.c:1597
 msgid "End user license agreement required"
 msgstr "Lizenzvereinbarung für Endbenutzer ist erforderlich"
 
 #. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1600
+#: ../client/pk-console.c:1604
 msgid "Do you agree to this license?"
 msgstr "Sind Sie mit dieser Lizenz einverstanden?"
 
 #. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1604
+#: ../client/pk-console.c:1608
 msgid "The license was refused."
 msgstr "Die Lizenz wurde zurückgewiesen."
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1633
+#: ../client/pk-console.c:1637
 msgid "The daemon crashed mid-transaction!"
 msgstr "Der Dämon stürzte während der Transaktion ab!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1686
+#: ../client/pk-console.c:1690
 msgid "PackageKit Console Interface"
 msgstr "Schnittstelle zur PackageKit-Konsole"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1688
+#: ../client/pk-console.c:1692
 msgid "Subcommands:"
 msgstr "Unterbefehle:"
 
 #. TRANSLATORS: command line argument, if we should show debugging information
 #. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:1781 ../client/pk-generate-pack.c:185
+#: ../client/pk-console.c:1785 ../client/pk-generate-pack.c:185
 #: ../client/pk-monitor.c:128
-#: ../contrib/command-not-found/pk-command-not-found.c:521
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:532
-#: ../src/pk-main.c:211
+#: ../contrib/command-not-found/pk-command-not-found.c:616
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:550
+#: ../contrib/device-rebind/pk-device-rebind.c:293 ../src/pk-main.c:211
 msgid "Show extra debugging information"
 msgstr "Erweiterte Fehlerdiagnose-Informationen anzeigen"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1784 ../client/pk-monitor.c:130
+#: ../client/pk-console.c:1788 ../client/pk-monitor.c:130
 msgid "Show the program version and exit"
 msgstr "Programm-Version anzeigen und beenden"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1787
+#: ../client/pk-console.c:1791
 msgid "Set the filter, e.g. installed"
 msgstr "Den Filter setzen, z.B. »installiert«"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1790
+#: ../client/pk-console.c:1794
 msgid "Exit without waiting for actions to complete"
 msgstr "Beenden, ohne auf Beendigung der Aktionen zu warten"
 
 #. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:1817
+#: ../client/pk-console.c:1821
 msgid "This tool could not connect to system DBUS."
 msgstr "Es konnte keine Verbindung zum System-DBUS aufgebaut werden."
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1907
+#: ../client/pk-console.c:1911
 msgid "The filter specified was invalid"
 msgstr "Der angegebene Filter war ungültig"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1926
+#: ../client/pk-console.c:1930
 msgid "A search type is required, e.g. name"
 msgstr "Eine Suchart ist nötig, z.B. »Name«"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1933 ../client/pk-console.c:1942
-#: ../client/pk-console.c:1951 ../client/pk-console.c:1960
+#: ../client/pk-console.c:1937 ../client/pk-console.c:1946
+#: ../client/pk-console.c:1955 ../client/pk-console.c:1964
 msgid "A search term is required"
 msgstr "Ein Suchbegriff ist erforderlich"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1967
+#: ../client/pk-console.c:1971
 msgid "Invalid search type"
 msgstr "Ungültige Suchart"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1973
+#: ../client/pk-console.c:1977
 msgid "A package name or filename to install is required"
 msgstr "Ein Paket- oder Dateiname ist zur Installation nötig"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1982
+#: ../client/pk-console.c:1986
 msgid "A type, key_id and package_id are required"
 msgstr "Ein Typ, Schlüsselkennung und Paketkennung sind nötig"
 
 #. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:1991
+#: ../client/pk-console.c:1995
 msgid "A package name to remove is required"
 msgstr "Zum Entfernen wird ein Paketname benötigt"
 
 #. TRANSLATORS: the user did not specify anything about what to download or where
-#: ../client/pk-console.c:1999
+#: ../client/pk-console.c:2003
 #, fuzzy
-#| msgid ""
-#| "A destination directory and then the package names to download are "
-#| "required"
 msgid "A destination directory and the package names to download are required"
 msgstr "Es sind ein Zielordner und dann ein Paketname zum Herunterladen nötig"
 
 #. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:2006
+#: ../client/pk-console.c:2010
 msgid "Directory not found"
 msgstr "Ordner nicht gefunden"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2014
+#: ../client/pk-console.c:2018
 msgid "A licence identifier (eula-id) is required"
 msgstr "Eine Lizenzbezeichnung (eula-id) ist erforderlich"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2024
+#: ../client/pk-console.c:2028
 msgid "A transaction identifier (tid) is required"
 msgstr "Eine Transaktionsbezeichnung (tid) ist erforderlich"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:2041
+#: ../client/pk-console.c:2045
 msgid "A package name to resolve is required"
 msgstr "Ein Paketname ist zur Auflösung erforderlich"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:2050 ../client/pk-console.c:2059
+#: ../client/pk-console.c:2054 ../client/pk-console.c:2063
 msgid "A repository name is required"
 msgstr "Ein Depotname wird benötigt"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2068
+#: ../client/pk-console.c:2072
 msgid "A repo name, parameter and value are required"
 msgstr "Ein Depotname, Parameter und Wert sind erforderlich"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:2082
+#: ../client/pk-console.c:2086
 msgid "An action, e.g. 'update-system' is required"
 msgstr "Ein Vorgang, z.B. »update-system«, wird benötigt"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:2089
+#: ../client/pk-console.c:2093
 msgid "A correct role is required"
 msgstr "Eine korrekte Rolle wird benötigt"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2096
+#: ../client/pk-console.c:2100
 msgid "Failed to get the time since this action was last completed"
 msgstr ""
 "Es war nicht möglich, die Zeit seit der letzten Fertigstellung festzustellen"
 
 #. TRANSLATORS: The user did not provide a package name
 #. TRANSLATORS: This is when the user fails to supply the package name
-#: ../client/pk-console.c:2106 ../client/pk-console.c:2118
-#: ../client/pk-console.c:2127 ../client/pk-console.c:2145
-#: ../client/pk-console.c:2154 ../client/pk-generate-pack.c:241
+#: ../client/pk-console.c:2110 ../client/pk-console.c:2122
+#: ../client/pk-console.c:2131 ../client/pk-console.c:2149
+#: ../client/pk-console.c:2158 ../client/pk-generate-pack.c:241
 msgid "A package name is required"
 msgstr "Ein Paketname wird benötigt"
 
 #. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:2136
+#: ../client/pk-console.c:2140
 msgid "A package provide string is required"
 msgstr "Die Zeichenkette »Stellt bereit« wird benötigt"
 
 #. TRANSLATORS: The user didn't specify a filename to create as a list
-#: ../client/pk-console.c:2163
+#: ../client/pk-console.c:2167
 msgid "A list file name to create is required"
 msgstr "Ein Dateiname ist zur Erstellung der Liste erforderlich"
 
 #. TRANSLATORS: The user didn't specify a filename to open as a list
-#: ../client/pk-console.c:2173 ../client/pk-console.c:2183
+#: ../client/pk-console.c:2177 ../client/pk-console.c:2187
 msgid "A list file to open is required"
 msgstr "Ein Dateiname ist zum Öffnen der Liste erforderlich"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2237
+#: ../client/pk-console.c:2241
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "Option »%s« wird nicht unterstützt"
 
 #. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2250
+#: ../client/pk-console.c:2254
 msgid "Incorrect privileges for this operation"
 msgstr "Sie haben nicht die notwendigen Rechte für diese Operation"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2253
+#: ../client/pk-console.c:2257
 msgid "Command failed"
 msgstr "Ausführung des Befehls fehlgeschlagen"
 
@@ -855,137 +855,159 @@ msgstr "Bitte wählen Sie das richtige Paket: "
 msgid "Please enter a number from 1 to %i: "
 msgstr "Bitte geben Sie eine Zahl zwischen 1 und %i ein: "
 
+#. TRANSLATORS: when we are getting data from the daemon
+#: ../contrib/browser-plugin/pk-plugin-install.c:466
+msgid "Getting package information..."
+msgstr "Paket-Informationen werden gelesen …"
+
+#. TRANSLATORS: run an applicaiton
+#: ../contrib/browser-plugin/pk-plugin-install.c:472
+#, c-format
+msgid "Run %s"
+msgstr "%s starten"
+
+#. TRANSLATORS: show the installed version of a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:478
+msgid "Installed version"
+msgstr "Installierte Version"
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:486
+#, c-format
+msgid "Run version %s now"
+msgstr "Jetzt Version %s starten"
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:492
+msgid "Run now"
+msgstr "Jetzt ausführen"
+
+#. TRANSLATORS: update to a new version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:498
+#, c-format
+msgid "Update to version %s"
+msgstr "Aktualisierung auf Version %s"
+
+#. TRANSLATORS: To install a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:504
+#, c-format
+msgid "Install %s now"
+msgstr "%s jetzt installieren"
+
+#. TRANSLATORS: the version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:507
+msgid "Version"
+msgstr "Version"
+
+#. TRANSLATORS: noting found, so can't install
+#: ../contrib/browser-plugin/pk-plugin-install.c:512
+msgid "No packages found for your system"
+msgstr "Keine Pakete für Ihr System gefunden"
+
+#. TRANSLATORS: package is being installed
+#: ../contrib/browser-plugin/pk-plugin-install.c:517
+msgid "Installing..."
+msgstr "Es wird installiert …"
+
+#. TRANSLATORS: downloading repo data so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:349
+msgid "Downloading details about the software sources."
+msgstr ""
+
+#. TRANSLATORS: downloading file lists so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:353
+msgid "Downloading filelists (this may take some time to complete)."
+msgstr ""
+
+#. TRANSLATORS: waiting for native lock
+#: ../contrib/command-not-found/pk-command-not-found.c:357
+#, fuzzy
+msgid "Waiting for package manager lock."
+msgstr "Paketnamen werden gesucht."
+
+#. TRANSLATORS: loading package cache so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:361
+#, fuzzy
+msgid "Loading list of packages."
+msgstr "Pakete werden heruntergeladen"
+
 #. TRANSLATORS: we failed to find the package, this shouldn't happen
-#: ../contrib/command-not-found/pk-command-not-found.c:372
+#: ../contrib/command-not-found/pk-command-not-found.c:420
 msgid "Failed to search for file"
 msgstr "Die Suche nach der Datei ist fehlgeschlagen"
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:496
+#: ../contrib/command-not-found/pk-command-not-found.c:557
 msgid "Failed to launch:"
 msgstr "Start ist fehlgeschlagen:"
 
 #. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/command-not-found/pk-command-not-found.c:537
+#: ../contrib/command-not-found/pk-command-not-found.c:632
 msgid "PackageKit Command Not Found"
 msgstr "PackageKit-Befehl wurde nicht gefunden"
 
 #. TRANSLATORS: the prefix of all the output telling the user why it's not executing
-#: ../contrib/command-not-found/pk-command-not-found.c:560
+#: ../contrib/command-not-found/pk-command-not-found.c:658
 msgid "Command not found."
 msgstr "Befehl wurde nicht gefunden."
 
 #. TRANSLATORS: tell the user what we think the command is
-#: ../contrib/command-not-found/pk-command-not-found.c:567
+#: ../contrib/command-not-found/pk-command-not-found.c:665
 msgid "Similar command is:"
 msgstr "Ein ähnlicher Befehl lautet:"
 
 #. TRANSLATORS: Ask the user if we should run the similar command
-#: ../contrib/command-not-found/pk-command-not-found.c:576
+#: ../contrib/command-not-found/pk-command-not-found.c:674
 msgid "Run similar command:"
 msgstr "Ähnlichen Befehl ausführen:"
 
 #. TRANSLATORS: show the user a list of commands that they could have meant
 #. TRANSLATORS: show the user a list of commands we could run
-#: ../contrib/command-not-found/pk-command-not-found.c:588
-#: ../contrib/command-not-found/pk-command-not-found.c:597
+#: ../contrib/command-not-found/pk-command-not-found.c:686
+#: ../contrib/command-not-found/pk-command-not-found.c:695
 msgid "Similar commands are:"
 msgstr "Ähnliche Befehle sind:"
 
 #. TRANSLATORS: ask the user to choose a file to run
-#: ../contrib/command-not-found/pk-command-not-found.c:604
+#: ../contrib/command-not-found/pk-command-not-found.c:702
 msgid "Please choose a command to run"
 msgstr "Bitte wählen Sie einen Befehl zum Ausführen"
 
 #. TRANSLATORS: tell the user what package provides the command
-#: ../contrib/command-not-found/pk-command-not-found.c:619
+#: ../contrib/command-not-found/pk-command-not-found.c:721
 msgid "The package providing this file is:"
 msgstr "Das folgende Paket stellt diese Datei bereit:"
 
 #. TRANSLATORS: as the user if we want to install a package to provide the command
-#: ../contrib/command-not-found/pk-command-not-found.c:624
+#: ../contrib/command-not-found/pk-command-not-found.c:726
 #, c-format
 msgid "Install package '%s' to provide command '%s'?"
 msgstr ""
 "Soll das Paket »%s« installiert werden, welches den Befehl »%s« bereitstellt?"
 
 #. TRANSLATORS: Show the user a list of packages that provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:645
+#: ../contrib/command-not-found/pk-command-not-found.c:747
 msgid "Packages providing this file are:"
 msgstr "Pakete, die diese Datei bereitstellen, sind:"
 
 #. TRANSLATORS: Show the user a list of packages that they can install to provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:654
+#: ../contrib/command-not-found/pk-command-not-found.c:756
 msgid "Suitable packages are:"
 msgstr "Passende Pakete sind:"
 
 #. get selection
 #. TRANSLATORS: ask the user to choose a file to install
-#: ../contrib/command-not-found/pk-command-not-found.c:662
+#: ../contrib/command-not-found/pk-command-not-found.c:764
 msgid "Please choose a package to install"
 msgstr "Bitte wählen Sie ein Paket zum Installieren"
 
-#. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/pk-plugin-install.c:433
-msgid "Getting package information..."
-msgstr "Paket-Informationen werden gelesen …"
-
-#. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/pk-plugin-install.c:439
-#, c-format
-msgid "Run %s"
-msgstr "%s starten"
-
-#. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:445
-msgid "Installed version"
-msgstr "Installierte Version"
-
-#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:453
-#, c-format
-msgid "Run version %s now"
-msgstr "Jetzt Version %s starten"
-
-#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:459
-msgid "Run now"
-msgstr "Jetzt ausführen"
-
-#. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:465
-#, c-format
-msgid "Update to version %s"
-msgstr "Aktualisierung auf Version %s"
-
-#. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:471
-#, c-format
-msgid "Install %s now"
-msgstr "%s jetzt installieren"
-
-#. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:474
-msgid "Version"
-msgstr "Version"
-
-#. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/pk-plugin-install.c:479
-msgid "No packages found for your system"
-msgstr "Keine Pakete für Ihr System gefunden"
-
-#. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/pk-plugin-install.c:484
-msgid "Installing..."
-msgstr "Es wird installiert …"
-
 #. TRANSLATORS: we are starting to install the packages
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:186
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:187
 msgid "Starting install"
 msgstr "Installation wird begonnen"
 
 #. TRANSLATORS: we couldn't find the package name, non-fatal
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:379
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:397
 #, c-format
 msgid "Failed to find the package %s, or already installed: %s"
 msgstr ""
@@ -993,7 +1015,7 @@ msgstr ""
 "%s"
 
 #. command line argument, simulate what would be done, but don't actually do it
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:535
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:553
 msgid ""
 "Don't actually install any packages, only simulate what would be installed"
 msgstr ""
@@ -1001,173 +1023,273 @@ msgstr ""
 "simulieren"
 
 #. command line argument, do we skip packages that depend on the ones specified
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:538
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:556
 msgid "Do not install dependencies of the core packages"
 msgstr "Keine Abhängigkeiten der Grundpakete installieren"
 
 #. command line argument, do we operate quietly
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:541
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:559
 msgid "Do not display information or progress"
 msgstr "Keine Informationen oder Fortschritt anzeigen"
 
 #. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:559
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:577
 msgid "PackageKit Debuginfo Installer"
 msgstr "PackageKit Fehlerdiagnose-Installation"
 
 #. TRANSLATORS: the use needs to specify a list of package names on the command line
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:571
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:589
 #, c-format
 msgid "ERROR: Specify package names to install."
 msgstr "FEHLER: Sie müssen Paketnamen zum Installieren angeben."
 
 #. TRANSLATORS: we are getting the list of repositories
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:605
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:623
 #, c-format
 msgid "Getting sources list"
 msgstr "Quellenliste wird geholt"
 
 #. TRANSLATORS: all completed 100%
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:623
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:663
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:698
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:782
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:826
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:893
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:937
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:641
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:681
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:716
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:800
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:844
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:911
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:955
 #, c-format
 msgid "OK."
 msgstr "OK."
 
 #. TRANSLATORS: tell the user what we found
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:626
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:644
 #, c-format
 msgid "Found %i enabled and %i disabled sources."
 msgstr "Es wurden %i aktivierte und %i deaktivierte Quellen gefunden."
 
 #. TRANSLATORS: we're finding repositories that match out pattern
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:633
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:651
 #, c-format
 msgid "Finding debugging sources"
 msgstr "Fehlerdiagnose-Quellen werden gesucht"
 
 #. TRANSLATORS: tell the user what we found
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:666
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:684
 #, c-format
 msgid "Found %i disabled debuginfo repos."
 msgstr "Es wurden %i deaktivierte Fehlerdiagnose-Depots gefunden."
 
 #. TRANSLATORS: we're now enabling all the debug sources we found
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:673
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:691
 #, c-format
 msgid "Enabling debugging sources"
 msgstr "Fehlerdiagnose-Quellen werden aktiviert"
 
 #. TRANSLATORS: operation was not successful
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:683
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:767
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:811
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:878
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:922
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:701
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:785
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:829
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:896
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:940
 msgid "FAILED."
 msgstr "FEHLGESCHLAGEN."
 
 #. TRANSLATORS: tell the user how many we enabled
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:701
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:719
 #, c-format
 msgid "Enabled %i debugging sources."
 msgstr "%i Fehlerdiagnose-Quellen wurden aktiviert."
 
 #. TRANSLATORS: we're now finding packages that match in all the repos
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:708
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:726
 #, c-format
 msgid "Finding debugging packages"
 msgstr "Fehlerdiagnose-Pakete werden gesucht."
 
 #. TRANSLATORS: we couldn't find the package name, non-fatal
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:720
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:738
 #, c-format
 msgid "Failed to find the package %s: %s"
 msgstr "Das Paket »%s« konnte nicht gefunden werden: %s"
 
 #. TRANSLATORS: we couldn't find the debuginfo package name, non-fatal
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:743
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:761
 #, c-format
 msgid "Failed to find the debuginfo package %s: %s"
 msgstr "Das Fehlerdiagnose-Paket »%s« konnte nicht gefunden werden: %s"
 
 #. TRANSLATORS: no debuginfo packages could be found to be installed
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:771
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:789
 #, c-format
 msgid "Found no packages to install."
 msgstr "Es wurden keine Pakete zum Installieren gefunden."
 
 #. TRANSLATORS: tell the user we found some packages, and then list them
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:785
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:803
 #, c-format
 msgid "Found %i packages:"
 msgstr "Es wurden %i Pakete gefunden:"
 
 #. TRANSLATORS: tell the user we are searching for deps
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:801
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:819
 #, c-format
 msgid "Finding packages that depend on these packages"
 msgstr "Es werden Pakete gesucht, die von diesen Paketen abhängen"
 
 #. TRANSLATORS: could not install, detailed error follows
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:814
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:832
 #, c-format
 msgid "Could not find dependant packages: %s"
 msgstr "Es konnten keine abhängigen Pakete gefunden werden: %s"
 
 #. TRANSLATORS: tell the user we found some more packages
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:830
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:848
 #, c-format
 msgid "Found %i extra packages."
 msgstr "Es wurden %i zusätzliche Pakete gefunden."
 
 #. TRANSLATORS: tell the user we found some more packages
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:834
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:852
 #, c-format
 msgid "No extra packages required."
 msgstr "Es werden keine zusätzlichen Pakete benötigt."
 
 #. TRANSLATORS: tell the user we found some packages (and deps), and then list them
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:843
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:861
 #, c-format
 msgid "Found %i packages to install:"
 msgstr "Es wurden %i Pakete zum Installieren gefunden:"
 
 #. TRANSLATORS: simulate mode is a testing mode where we quit before the action
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:856
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:874
 #, c-format
 msgid "Not installing packages in simulate mode"
 msgstr "Es werden im Simulationsmodus keine Pakete installiert"
 
-#. TRANSLATORS: coul dnot install, detailed error follows
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:881
+#. TRANSLATORS: could not install, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:899
 #, c-format
 msgid "Could not install packages: %s"
 msgstr "Die Pakete konnten nicht installiert werden: %s"
 
 #. TRANSLATORS: we are now disabling all debuginfo repos we previously enabled
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:913
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:931
 #, c-format
 msgid "Disabling sources previously enabled"
 msgstr "Zuvor aktivierte Quellen werden deaktiviert"
 
 #. TRANSLATORS: no debuginfo packages could be found to be installed, detailed error follows
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:925
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:943
 #, c-format
 msgid "Could not disable the debugging sources: %s"
 msgstr "Die Fehlerdiagnose-Quellen konnten nicht deaktiviert werden: %s"
 
 #. TRANSLATORS: we disabled all the debugging repos that we enabled before
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:940
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:958
 #, c-format
 msgid "Disabled %i debugging sources."
 msgstr "%i Fehlerdiagnose-Quellen wurden deaktiviert."
 
+#. TRANSLATORS: couldn't open device to write
+#: ../contrib/device-rebind/pk-device-rebind.c:61
+#, fuzzy
+msgid "Failed to open file"
+msgstr "Die Suche nach der Datei ist fehlgeschlagen"
+
+#. TRANSLATORS: could not write to the device
+#: ../contrib/device-rebind/pk-device-rebind.c:70
+#, fuzzy
+msgid "Failed to write to the file"
+msgstr "Die Suche nach der Datei ist fehlgeschlagen"
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:110
+#: ../contrib/device-rebind/pk-device-rebind.c:147
+#, fuzzy
+msgid "Failed to write to device"
+msgstr "Speichern auf dem Datenträger ist fehlgeschlagen"
+
+#. TRANSLATORS: the device could not be found in sysfs
+#: ../contrib/device-rebind/pk-device-rebind.c:175
+#, fuzzy
+msgid "Device could not be found"
+msgstr "Das Paket konnte nicht gefunden werden"
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:202
+#, fuzzy
+msgid "Failed to unregister driver"
+msgstr "Ordner konnte nicht erstellt werden:"
+
+#. TRANSLATORS: we failed to bind the old driver
+#: ../contrib/device-rebind/pk-device-rebind.c:211
+#, fuzzy
+msgid "Failed to register driver"
+msgstr "Ordner konnte nicht erstellt werden:"
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:260
+#, fuzzy
+msgid "Device path not found"
+msgstr "Ordner nicht gefunden"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:268
+msgid "Incorrect device path specified"
+msgstr ""
+
+#. command line argument, simulate what would be done, but don't actually do it
+#: ../contrib/device-rebind/pk-device-rebind.c:296
+#, fuzzy
+msgid "Don't actually touch the hardware, only simulate what would be done"
+msgstr ""
+"Keine Pakete tatsächlich installieren, sondern nur die Installation "
+"simulieren"
+
+#. TRANSLATORS: command line option: a list of files to install
+#: ../contrib/device-rebind/pk-device-rebind.c:299
+msgid "Device paths"
+msgstr ""
+
+#. TRANSLATORS: tool that gets called when the device needs reloading after installing firmware
+#: ../contrib/device-rebind/pk-device-rebind.c:314
+#, fuzzy
+msgid "PackageKit Device Reloader"
+msgstr "PackageKit Service-Pack"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:322
+#, fuzzy
+msgid "You need to specify at least one valid device path"
+msgstr "Sie müssen eine Dateiliste zum Erzeugen angeben"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:332
+msgid "This script can only be used by the root user"
+msgstr ""
+
+#. TRANSLATORS: we're going to verify the path first
+#: ../contrib/device-rebind/pk-device-rebind.c:341
+msgid "Verifying device path"
+msgstr ""
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:346
+#, fuzzy
+msgid "Failed to verify device path"
+msgstr "Die Suche nach der Datei ist fehlgeschlagen"
+
+#. TRANSLATORS: we're going to try
+#: ../contrib/device-rebind/pk-device-rebind.c:360
+msgid "Attempting to rebind device"
+msgstr ""
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:365
+#, fuzzy
+msgid "Failed to rebind device"
+msgstr "Ordner konnte nicht erstellt werden:"
+
 #: ../data/packagekit-catalog.xml.in.h:1
 msgid "PackageKit Catalog"
 msgstr "PackageKit-Katalog"
@@ -1230,14 +1352,19 @@ msgid "Authentication is required to refresh the system sources"
 msgstr "Legitimation ist zum Aktualisieren der Systemressourcen erforderlich"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:15
+#, fuzzy
+msgid "Authentication is required to reload the device with a new driver"
+msgstr "Legitimation ist zum Aktualisieren der Systemressourcen erforderlich"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:16
 msgid "Authentication is required to remove packages"
 msgstr "Legitimation ist zum Entfernen eines Paketes erforderlich"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:16
+#: ../policy/org.freedesktop.packagekit.policy.in.h:17
 msgid "Authentication is required to rollback a transaction"
 msgstr "Legitimation ist zum Revidieren einer Transaktion erforderlich"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:17
+#: ../policy/org.freedesktop.packagekit.policy.in.h:18
 msgid ""
 "Authentication is required to set the network proxy used for downloading "
 "packages"
@@ -1245,7 +1372,7 @@ msgstr ""
 "Legitimation ist zum Festlegen eines Netzwerk-Proxys zum Herunterladen von "
 "Paketen erforderlich"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:18
+#: ../policy/org.freedesktop.packagekit.policy.in.h:19
 msgid "Authentication is required to update packages"
 msgstr "Legitimation ist zum Aktualisieren von Paketen erforderlich"
 
@@ -1254,7 +1381,7 @@ msgstr "Legitimation ist zum Aktualisieren von Paketen erforderlich"
 #. authentication, but a different user id needs the admin password
 #. to cancel another users task.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:24
+#: ../policy/org.freedesktop.packagekit.policy.in.h:25
 msgid "Cancel foreign task"
 msgstr "Externe Aufgabe abbrechen"
 
@@ -1263,7 +1390,7 @@ msgstr "Externe Aufgabe abbrechen"
 #. software sources as this can be used to enable new updates or
 #. install different versions of software.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:30
+#: ../policy/org.freedesktop.packagekit.policy.in.h:31
 msgid "Change software source parameters"
 msgstr "Einstellungen der Depotquelle ändern"
 
@@ -1273,7 +1400,7 @@ msgstr "Einstellungen der Depotquelle ändern"
 #. - Paranoid users (or parents!) can change this to 'auth_admin' or
 #. 'auth_admin_keep'.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:37
+#: ../policy/org.freedesktop.packagekit.policy.in.h:38
 msgid "Install signed package"
 msgstr "Signierte Pakete installieren"
 
@@ -1283,7 +1410,7 @@ msgstr "Signierte Pakete installieren"
 #. password would be a massive security hole.
 #. - This is not retained as each package should be authenticated.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:44
+#: ../policy/org.freedesktop.packagekit.policy.in.h:45
 msgid "Install untrusted local file"
 msgstr "Nicht vertrauenswürdige lokale Datei installieren"
 
@@ -1291,11 +1418,22 @@ msgstr "Nicht vertrauenswürdige lokale Datei installieren"
 #. - Normal users do not require admin authentication to refresh the
 #. cache, as this doesn't actually install or remove software.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:49
+#: ../policy/org.freedesktop.packagekit.policy.in.h:50
 msgid "Refresh system sources"
 msgstr "Systemressourcen aktualisieren"
 
 #. SECURITY:
+#. - Normal users require admin authentication to rebind a driver
+#. so that it works after we install firmware.
+#. - This should not be set to 'yes' as unprivileged users could then
+#. try to rebind drivers in use, for instance security authentication
+#. devices.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:58
+msgid "Reload a device"
+msgstr ""
+
+#. SECURITY:
 #. - Normal users require admin authentication to remove packages as
 #. this can make the system unbootable or stop other applications from
 #. working.
@@ -1304,7 +1442,7 @@ msgstr "Systemressourcen aktualisieren"
 #. be removed. If this is not possible, change this authentication to
 #. 'auth_admin'.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:59
+#: ../policy/org.freedesktop.packagekit.policy.in.h:68
 msgid "Remove package"
 msgstr "Paket entfernen"
 
@@ -1313,7 +1451,7 @@ msgstr "Paket entfernen"
 #. as this will change a large number of packages, and could expose the
 #. system to previously patched security vulnerabilities.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:65
+#: ../policy/org.freedesktop.packagekit.policy.in.h:74
 msgid "Rollback to a previous transaction"
 msgstr "Eine vorhergehende Transaktion revidieren"
 
@@ -1321,7 +1459,7 @@ msgstr "Eine vorhergehende Transaktion revidieren"
 #. - Normal users do not require admin authentication to set the proxy
 #. used for downloading packages.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:70
+#: ../policy/org.freedesktop.packagekit.policy.in.h:79
 msgid "Set network proxy"
 msgstr "Netwerk-Proxy festlegen"
 
@@ -1331,7 +1469,7 @@ msgstr "Netwerk-Proxy festlegen"
 #. without a secure authentication.
 #. - This is not kept as each package should be authenticated.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:77
+#: ../policy/org.freedesktop.packagekit.policy.in.h:86
 msgid "Trust a key used for signing packages"
 msgstr "Einem Schlüssel zum Signieren von Paketen vertrauen"
 
@@ -1342,7 +1480,7 @@ msgstr "Einem Schlüssel zum Signieren von Paketen vertrauen"
 #. - Changing this to anything other than 'yes' will break unattended
 #. updates.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:85
+#: ../policy/org.freedesktop.packagekit.policy.in.h:94
 msgid "Update packages"
 msgstr "Pakete aktualisieren"
 
@@ -1412,42 +1550,58 @@ msgid "Cannot connect to the system bus"
 msgstr "Verbindung zum System-Bus konnte nicht hergestellt werden"
 
 #. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error follows
-#: ../src/pk-main.c:331
+#: ../src/pk-main.c:334
 msgid "Error trying to start:"
 msgstr "Fehler beim Startversuch:"
 
-#: ../src/pk-polkit-action-lookup.c:143
+#: ../src/pk-polkit-action-lookup.c:147
 msgid "To install debugging packages, extra sources need to be enabled"
 msgstr ""
 "Zur Installation von Fehlerdiagnose-Paketen müssen zusätzliche Quellen "
 "aktiviert werden"
 
 #. TRANSLATORS: is not GPG signed
-#: ../src/pk-polkit-action-lookup.c:156 ../src/pk-polkit-action-lookup.c:175
+#: ../src/pk-polkit-action-lookup.c:168 ../src/pk-polkit-action-lookup.c:187
 msgid "The software is not from a trusted source."
 msgstr "Sie Software stammt nicht aus einer vertrauenswürdigen Quelle."
 
-#. TRANSLATORS: user has to trust provider -- I know, this sucks
-#: ../src/pk-polkit-action-lookup.c:160
+#: ../src/pk-polkit-action-lookup.c:173
 msgid "Do not update this package unless you are sure it is safe to do so."
 msgstr ""
 "Aktualisieren Sie dieses Paket nur, wenn Sie überzeugt sind, dass dies "
 "sicher ist."
 
+#: ../src/pk-polkit-action-lookup.c:174
+#, fuzzy
+msgid "Do not update these packages unless you are sure it is safe to do so."
+msgstr ""
+"Aktualisieren Sie dieses Paket nur, wenn Sie überzeugt sind, dass dies "
+"sicher ist."
+
+#: ../src/pk-polkit-action-lookup.c:192
+msgid "Do not install this package unless you are sure it is safe to do so."
+msgstr "Installieren Sie dieses Paket nur, wenn Sie dies für sicher halten."
+
+#: ../src/pk-polkit-action-lookup.c:193
+#, fuzzy
+msgid "Do not install these packages unless you are sure it is safe to do so."
+msgstr "Installieren Sie dieses Paket nur, wenn Sie dies für sicher halten."
+
 #. TRANSLATORS: warn the user that all bets are off
-#: ../src/pk-polkit-action-lookup.c:164 ../src/pk-polkit-action-lookup.c:183
+#: ../src/pk-polkit-action-lookup.c:199
 msgid "Malicious software can damage your computer or cause other harm."
 msgstr ""
 "Bösartige Software kann Ihren Computer beschädigen oder anderen Schaden "
 "anrichten."
 
-#. TRANSLATORS: user has to trust provider -- I know, this sucks
-#: ../src/pk-polkit-action-lookup.c:179
-msgid "Do not install this package unless you are sure it is safe to do so."
-msgstr "Installieren Sie dieses Paket nur, wenn Sie dies für sicher halten."
+#. TRANSLATORS: too many packages to list each one
+#: ../src/pk-polkit-action-lookup.c:274
+#, fuzzy
+msgid "Many packages"
+msgstr "Pakete aktualisieren"
 
 #. TRANSLATORS: if the transaction is forced to install only trusted packages
-#: ../src/pk-polkit-action-lookup.c:263
+#: ../src/pk-polkit-action-lookup.c:334
 msgid "Only trusted"
 msgstr "Nur vertrauenswürdige"
 
@@ -1506,9 +1660,6 @@ msgstr "Nur vertrauenswürdige"
 #~ msgid "You need to specify a package to find the files for"
 #~ msgstr "Sie müssen ein Paket, für das nach Dateien gesucht wird, angeben"
 
-#~ msgid "You need to specify a list file to create"
-#~ msgstr "Sie müssen eine Dateiliste zum Erzeugen angeben"
-
 #~ msgid "You need to specify a list file to open"
 #~ msgstr "Sie müssen eine Dateiliste zum Öffnen angeben"
 
diff --git a/po/el.po b/po/el.po
index 1c962af..c9c5e56 100644
--- a/po/el.po
+++ b/po/el.po
@@ -7,9 +7,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: packagekit.master\n"
-"Report-Msgid-Bugs-To: https://bugs.freedesktop.org/enter_bug.cgi?"
-"product=PackageKit&component=General\n"
-"POT-Creation-Date: 2009-08-05 03:24+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-08-24 11:06+0100\n"
 "PO-Revision-Date: 2009-08-04 15:47+0300\n"
 "Last-Translator: Jennie Petoumenou <epetoumenou at gmail.com>\n"
 "Language-Team: Ελληνικά <team at gnome.gr>\n"
@@ -20,237 +19,236 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
 #. TRANSLATORS: this is an atomic transaction
-#: ../client/pk-console.c:231
+#: ../client/pk-console.c:235
 msgid "Transaction"
 msgstr "Εργασία"
 
 #. TRANSLATORS: this is the time the transaction was started in system timezone
-#: ../client/pk-console.c:233
+#: ../client/pk-console.c:237
 msgid "System time"
 msgstr "Ώρα συστήματος"
 
 #. TRANSLATORS: this is if the transaction succeeded or not
-#: ../client/pk-console.c:235
+#: ../client/pk-console.c:239
 msgid "Succeeded"
 msgstr "Επιτυχής"
 
 #. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:235 ../client/pk-console.c:402
+#: ../client/pk-console.c:239 ../client/pk-console.c:406
 msgid "True"
 msgstr "Αληθές"
 
-#: ../client/pk-console.c:235 ../client/pk-console.c:402
+#: ../client/pk-console.c:239 ../client/pk-console.c:406
 msgid "False"
 msgstr "Ψευδές"
 
 #. TRANSLATORS: this is the transactions role, e.g. "update-system"
 #. TRANSLATORS: the trasaction role, e.g. update-system
-#: ../client/pk-console.c:237 ../src/pk-polkit-action-lookup.c:331
+#: ../client/pk-console.c:241 ../src/pk-polkit-action-lookup.c:327
 msgid "Role"
 msgstr "Ρόλος"
 
 #. TRANSLATORS: this is The duration of the transaction
-#: ../client/pk-console.c:242
+#: ../client/pk-console.c:246
 msgid "Duration"
 msgstr "Διάρκεια"
 
-#: ../client/pk-console.c:242
+#: ../client/pk-console.c:246
 msgid "(seconds)"
 msgstr "(δευτερόλεπτα)"
 
 #. TRANSLATORS: this is The command line used to do the action
 #. TRANSLATORS: the command line of the thing that wants the authentication
-#: ../client/pk-console.c:246 ../src/pk-polkit-action-lookup.c:345
+#: ../client/pk-console.c:250 ../src/pk-polkit-action-lookup.c:341
 msgid "Command line"
 msgstr "Γραμμή εντολών"
 
 #. TRANSLATORS: this is the user ID of the user that started the action
-#: ../client/pk-console.c:248
+#: ../client/pk-console.c:252
 msgid "User ID"
 msgstr "ID χρήστη"
 
 #. TRANSLATORS: this is the username, e.g. hughsie
-#: ../client/pk-console.c:255
+#: ../client/pk-console.c:259
 msgid "Username"
 msgstr "Όνομα χρήστη"
 
 #. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
-#: ../client/pk-console.c:259
+#: ../client/pk-console.c:263
 msgid "Real name"
 msgstr "Πραγματικό όνομα"
 
-#: ../client/pk-console.c:267
+#: ../client/pk-console.c:271
 msgid "Affected packages:"
 msgstr "Επηρεαζόμενα πακέτα:"
 
-#: ../client/pk-console.c:269
+#: ../client/pk-console.c:273
 msgid "Affected packages: None"
 msgstr "Επηρεαζόμενα πακέτα: Κανένα"
 
 #. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:294
+#: ../client/pk-console.c:298
 msgid "Distribution"
 msgstr "Διανομή"
 
 #. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:296
+#: ../client/pk-console.c:300
 msgid "Type"
 msgstr "Τύπος"
 
 #. TRANSLATORS: this is any summary text describing the upgrade
 #. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:298 ../client/pk-console.c:321
+#: ../client/pk-console.c:302 ../client/pk-console.c:325
 msgid "Summary"
 msgstr "Περίληψη"
 
 #. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:310
+#: ../client/pk-console.c:314
 msgid "Category"
 msgstr "Κατηγορία"
 
 #. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:312
+#: ../client/pk-console.c:316
 msgid "ID"
 msgstr "ID"
 
 #. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:315
+#: ../client/pk-console.c:319
 msgid "Parent"
 msgstr "Γονική"
 
 #. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:318
+#: ../client/pk-console.c:322
 msgid "Name"
 msgstr "Όνομα"
 
 #. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:324
+#: ../client/pk-console.c:328
 msgid "Icon"
 msgstr "Εικονίδιο"
 
 #. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:339
+#: ../client/pk-console.c:343
 msgid "Details about the update:"
 msgstr "Λεπτομέρειες ενημέρωσης:"
 
 #. TRANSLATORS: details about the update, package name and version
 #. TRANSLATORS: title, the names of the packages that the method is processing
-#: ../client/pk-console.c:341 ../src/pk-polkit-action-lookup.c:356
+#: ../client/pk-console.c:345 ../src/pk-polkit-action-lookup.c:352
 #, fuzzy
-#| msgid "Package"
 msgid "Package"
 msgid_plural "Packages"
 msgstr[0] "Πακέτο"
 msgstr[1] "Πακέτο"
 
 #. TRANSLATORS: details about the update, any packages that this update updates
-#: ../client/pk-console.c:344
+#: ../client/pk-console.c:348
 msgid "Updates"
 msgstr "Ενημερώνει"
 
 #. TRANSLATORS: details about the update, any packages that this update obsoletes
-#: ../client/pk-console.c:348
+#: ../client/pk-console.c:352
 msgid "Obsoletes"
 msgstr "Αντικαθιστά"
 
 #. TRANSLATORS: details about the update, the vendor URLs
-#: ../client/pk-console.c:352
+#: ../client/pk-console.c:356
 msgid "Vendor"
 msgstr "Κατασκευαστής"
 
 #. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:356
+#: ../client/pk-console.c:360
 msgid "Bugzilla"
 msgstr "Bugzilla"
 
 #. TRANSLATORS: details about the update, the CVE URLs
-#: ../client/pk-console.c:360
+#: ../client/pk-console.c:364
 msgid "CVE"
 msgstr "CVE"
 
 #. TRANSLATORS: details about the update, if the package requires a restart
-#: ../client/pk-console.c:364
+#: ../client/pk-console.c:368
 msgid "Restart"
 msgstr "Επανεκκίνηση"
 
 #. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:368
+#: ../client/pk-console.c:372
 msgid "Update text"
 msgstr "Ενημέρωση περιγραφής"
 
 #. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:372
+#: ../client/pk-console.c:376
 msgid "Changes"
 msgstr "Αλλαγές"
 
 #. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:376
+#: ../client/pk-console.c:380
 msgid "State"
 msgstr "Κατάσταση"
 
 #. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:381
+#: ../client/pk-console.c:385
 msgid "Issued"
 msgstr "Δημοσίευση"
 
 #. TRANSLATORS: details about the update, date the update was updated
-#: ../client/pk-console.c:386
+#: ../client/pk-console.c:390
 msgid "Updated"
 msgstr "Ενημέρωση"
 
-#: ../client/pk-console.c:473 ../client/pk-console.c:475
+#: ../client/pk-console.c:477 ../client/pk-console.c:479
 msgid "Percentage"
 msgstr "Ποσοστό"
 
-#: ../client/pk-console.c:475
+#: ../client/pk-console.c:479
 msgid "Unknown"
 msgstr "Άγνωστο"
 
 #. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:517
+#: ../client/pk-console.c:521
 msgid "System restart required by:"
 msgstr "Απαιτείται επανεκκίνηση του συστήματος από το:"
 
 #. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:520
+#: ../client/pk-console.c:524
 msgid "Session restart required:"
 msgstr "Απαιτείται επανεκκίνηση της συνεδρίας από το:"
 
 #. TRANSLATORS: a package requires the system to be restarted due to a security update
-#: ../client/pk-console.c:523
+#: ../client/pk-console.c:527
 msgid "System restart (security) required by:"
 msgstr "Απαιτείται επανεκκίνηση του συστήματος (για λόγους ασφαλείας) από το:"
 
 #. TRANSLATORS: a package requires the session to be restarted due to a security update
-#: ../client/pk-console.c:526
+#: ../client/pk-console.c:530
 msgid "Session restart (security) required:"
 msgstr "Απαιτείται επανεκκίνηση της συνεδρίας (για λόγους ασφαλείας) από το:"
 
 #. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:529
+#: ../client/pk-console.c:533
 msgid "Application restart required by:"
 msgstr "Απαιτείται επανεκκίνηση της εφαρμογής από το:"
 
 #. TRANSLATORS: a package needs to restart their system
-#: ../client/pk-console.c:584
+#: ../client/pk-console.c:588
 msgid "Please restart the computer to complete the update."
 msgstr ""
 "Παρακαλώ, επανεκκινήστε τον υπολογιστή σας για να ολοκληρωθεί η ενημέρωση."
 
 #. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:587
+#: ../client/pk-console.c:591
 msgid "Please logout and login to complete the update."
 msgstr ""
 "Παρακαλώ, αποσυνδεθείτε και συνδεθείτε εκ νέου για να ολοκληρωθεί η "
 "ενημέρωση."
 
 #. TRANSLATORS: a package needs to restart the application
-#: ../client/pk-console.c:590
+#: ../client/pk-console.c:594
 msgid "Please restart the application as it is being used."
 msgstr "Παρακαλώ, επανεκκινήστε την εφαρμογή, γιατί χρησιμοποιείται."
 
 #. TRANSLATORS: a package needs to restart their system (due to security)
-#: ../client/pk-console.c:593
+#: ../client/pk-console.c:597
 msgid ""
 "Please restart the computer to complete the update as important security "
 "updates have been installed."
@@ -259,7 +257,7 @@ msgstr ""
 "γιατί εγκαταστάθηκαν σημαντικές ενημερώσεις ασφαλείας."
 
 #. TRANSLATORS: a package needs to restart the session (due to security)
-#: ../client/pk-console.c:596
+#: ../client/pk-console.c:600
 msgid ""
 "Please logout and login to complete the update as important security updates "
 "have been installed."
@@ -268,20 +266,20 @@ msgstr ""
 "ενημέρωση, γιατί εγκαταστάθηκαν σημαντικές ενημερώσεις ασφαλείας."
 
 #. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:723
+#: ../client/pk-console.c:727
 #, c-format
 msgid "The package %s is already installed"
 msgstr "Το πακέτο %s είναι ήδη εγκατεστημένο"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:731
+#: ../client/pk-console.c:735
 #, c-format
 msgid "The package %s could not be installed: %s"
 msgstr "Δεν ήταν δυνατή η εγκατάσταση του πακέτου %s: %s"
 
 #. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
-#: ../client/pk-console.c:756 ../client/pk-console.c:779
-#: ../client/pk-console.c:875 ../client/pk-console.c:992
+#: ../client/pk-console.c:760 ../client/pk-console.c:783
+#: ../client/pk-console.c:879 ../client/pk-console.c:996
 #: ../client/pk-tools-common.c:62 ../client/pk-tools-common.c:81
 #: ../client/pk-tools-common.c:89
 #, c-format
@@ -289,407 +287,407 @@ msgid "Internal error: %s"
 msgstr "Εσωτερικό σφάλμα: %s"
 
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:764 ../client/pk-console.c:1388
+#: ../client/pk-console.c:768 ../client/pk-console.c:1392
 #, c-format
 msgid "This tool could not install the packages: %s"
 msgstr "Δεν ήταν δυνατή η εγκατάσταση των πακέτων: %s"
 
 #. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:787
+#: ../client/pk-console.c:791
 #, c-format
 msgid "This tool could not install the files: %s"
 msgstr "Δεν ήταν δυνατή η εγκατάσταση των αρχείων: %s"
 
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:843
+#: ../client/pk-console.c:847
 #, c-format
 msgid "This tool could not remove %s: %s"
 msgstr "Δεν ήταν δυνατή η αφαίρεση του %s: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:866 ../client/pk-console.c:904
-#: ../client/pk-console.c:937
+#: ../client/pk-console.c:870 ../client/pk-console.c:908
+#: ../client/pk-console.c:941
 #, c-format
 msgid "This tool could not remove the packages: %s"
 msgstr "Δεν ήταν δυνατή η αφαίρεση των πακέτων: %s"
 
 #. TRANSLATORS: When removing, we might have to remove other dependencies
-#: ../client/pk-console.c:916
+#: ../client/pk-console.c:920
 msgid "The following packages have to be removed:"
 msgstr "Τα παρακάτω πακέτα πρέπει να αφαιρεθούν:"
 
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:923
+#: ../client/pk-console.c:927
 msgid "Proceed removing additional packages?"
 msgstr "Μπορούν να αφαιρεθούν τα επιπλέον πακέτα;"
 
 #. TRANSLATORS: We did not remove any packages
-#: ../client/pk-console.c:928
+#: ../client/pk-console.c:932
 msgid "The package removal was canceled!"
 msgstr "Η αφαίρεση των πακέτων ακυρώθηκε!"
 
 #. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:969
+#: ../client/pk-console.c:973
 #, c-format
 msgid "This tool could not download the package %s as it could not be found"
 msgstr "Δεν ήταν δυνατή η λήψη του πακέτου %s, γιατί δε βρέθηκε"
 
 #. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:1000
+#: ../client/pk-console.c:1004
 #, c-format
 msgid "This tool could not download the packages: %s"
 msgstr "Δεν ήταν δυνατή η λήψη των πακέτων: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1027 ../client/pk-console.c:1036
+#: ../client/pk-console.c:1031 ../client/pk-console.c:1040
 #, c-format
 msgid "This tool could not update %s: %s"
 msgstr "Δεν ήταν δυνατή η ενημέρωση του %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1058 ../client/pk-console.c:1066
+#: ../client/pk-console.c:1062 ../client/pk-console.c:1070
 #, c-format
 msgid "This tool could not get the requirements for %s: %s"
 msgstr "Δεν ήταν δυνατή η λήψη των απαιτούμενων για το %s: %s"
 
 #. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:1088 ../client/pk-console.c:1096
+#: ../client/pk-console.c:1092 ../client/pk-console.c:1100
 #, c-format
 msgid "This tool could not get the dependencies for %s: %s"
 msgstr "Δεν ήταν δυνατή η λήψη των εξαρτήσεων του %s: %s"
 
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:1118 ../client/pk-console.c:1126
+#: ../client/pk-console.c:1122 ../client/pk-console.c:1130
 #, c-format
 msgid "This tool could not get package details for %s: %s"
 msgstr "Δεν ήταν δυνατή η λήψη των λεπτομερειών πακέτου του %s: %s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1148
+#: ../client/pk-console.c:1152
 #, c-format
 msgid "This tool could not find the files for %s: %s"
 msgstr "Δε βρέθηκαν τα αρχεία για το %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1156
+#: ../client/pk-console.c:1160
 #, c-format
 msgid "This tool could not get the file list for %s: %s"
 msgstr "Δεν ήταν δυνατή η λήψη της λίστας αρχείων για το %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of packages. The filename follows
-#: ../client/pk-console.c:1178
+#: ../client/pk-console.c:1182
 #, c-format
 msgid "File already exists: %s"
 msgstr "Το αρχείο υπάρχει ήδη: %s"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1183 ../client/pk-console.c:1239
-#: ../client/pk-console.c:1314
+#: ../client/pk-console.c:1187 ../client/pk-console.c:1243
+#: ../client/pk-console.c:1318
 msgid "Getting package list"
 msgstr "Λήψη της λίστας πακέτων..."
 
 #. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1189 ../client/pk-console.c:1245
-#: ../client/pk-console.c:1320
+#: ../client/pk-console.c:1193 ../client/pk-console.c:1249
+#: ../client/pk-console.c:1324
 #, c-format
 msgid "This tool could not get package list: %s"
 msgstr "Δεν ήταν δυνατή η λήψη της λίστας πακέτων: %s"
 
 #. TRANSLATORS: There was an error saving the list
-#: ../client/pk-console.c:1200
+#: ../client/pk-console.c:1204
 #, c-format
 msgid "Failed to save to disk"
 msgstr "Απέτυχε η αποθήκευση στο δίσκο"
 
 #. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1234 ../client/pk-console.c:1309
+#: ../client/pk-console.c:1238 ../client/pk-console.c:1313
 #, c-format
 msgid "File does not exist: %s"
 msgstr "Δεν υπάρχει το αρχείο: %s"
 
 #. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1266
+#: ../client/pk-console.c:1270
 msgid "Packages to add"
 msgstr "Πακέτα προς εγκατάσταση"
 
 #. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1274
+#: ../client/pk-console.c:1278
 msgid "Packages to remove"
 msgstr "Πακέτα προς αφαίρεση"
 
 #. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1342
+#: ../client/pk-console.c:1346
 #, c-format
 msgid "No new packages need to be installed"
 msgstr "Δεν χρειάζεται να εγκατασταθούν νέα πακέτα"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1348
+#: ../client/pk-console.c:1352
 msgid "To install"
 msgstr "Προς εγκατάσταση"
 
 #. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1360
+#: ../client/pk-console.c:1364
 msgid "Searching for package: "
 msgstr "Αναζήτηση για το πακέτο:"
 
 #. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1364
+#: ../client/pk-console.c:1368
 msgid "not found."
 msgstr "δε βρέθηκε."
 
 #. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1375
+#: ../client/pk-console.c:1379
 #, c-format
 msgid "No packages can be found to install"
 msgstr "Δε βρέθηκαν πακέτα προς εγκατάσταση"
 
 #. TRANSLATORS: installing new packages from package list
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
-#: ../client/pk-console.c:1381
+#: ../client/pk-console.c:1385
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:886
 #, c-format
 msgid "Installing packages"
 msgstr "Εγκατάσταση πακέτων..."
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1417
+#: ../client/pk-console.c:1421
 #, c-format
 msgid "This tool could not find the update details for %s: %s"
 msgstr "Δε βρέθηκαν οι λεπτομέρειες ενημέρωσης του %s: %s"
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1425
+#: ../client/pk-console.c:1429
 #, c-format
 msgid "This tool could not get the update details for %s: %s"
 msgstr "Δεν ήταν δυνατή η λήψη των λεπτομερειών ενημέρωσης του %s: %s"
 
 #. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
-#: ../client/pk-console.c:1456
+#: ../client/pk-console.c:1460
 msgid "Error:"
 msgstr "Σφάλμα:"
 
 #. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1470
+#: ../client/pk-console.c:1474
 msgid "Package description"
 msgstr "Περιγραφή πακέτου"
 
 #. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
-#: ../client/pk-console.c:1486
+#: ../client/pk-console.c:1490
 msgid "Message:"
 msgstr "Μήνυμα:"
 
 #. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1514
+#: ../client/pk-console.c:1518
 msgid "Package files"
 msgstr "Αρχεία πακέτου"
 
 #. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1522
+#: ../client/pk-console.c:1526
 msgid "No files"
 msgstr "Χωρίς αρχεία"
 
 #. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1545
+#: ../client/pk-console.c:1549
 msgid "Repository signature required"
 msgstr "Απαιτείται η υπογραφή του αποθετηρίου"
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1555
+#: ../client/pk-console.c:1559
 msgid "Do you accept this signature?"
 msgstr "Αποδέχεστε την υπογραφή;"
 
 #. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1559
+#: ../client/pk-console.c:1563
 msgid "The signature was not accepted."
 msgstr "Η υπογραφή δεν έγινε δεκτή."
 
 #. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1593
+#: ../client/pk-console.c:1597
 msgid "End user license agreement required"
 msgstr "Απαιτείται αποδοχή της άδειας τελικού χρήστη"
 
 #. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1600
+#: ../client/pk-console.c:1604
 msgid "Do you agree to this license?"
 msgstr "Αποδέχεστε την άδεια χρήσης;"
 
 #. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1604
+#: ../client/pk-console.c:1608
 msgid "The license was refused."
 msgstr "Η άδεια χρήσης δεν έγινε δεκτή."
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1633
+#: ../client/pk-console.c:1637
 msgid "The daemon crashed mid-transaction!"
 msgstr "Η υπηρεσία κατέρρευσε κατά τη διάρκεια της εργασίας!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1686
+#: ../client/pk-console.c:1690
 msgid "PackageKit Console Interface"
 msgstr "Διεπαφή κονσόλας Packagekit"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1688
+#: ../client/pk-console.c:1692
 msgid "Subcommands:"
 msgstr "Υποεντολές:"
 
 #. TRANSLATORS: command line argument, if we should show debugging information
 #. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:1781 ../client/pk-generate-pack.c:185
+#: ../client/pk-console.c:1785 ../client/pk-generate-pack.c:185
 #: ../client/pk-monitor.c:128
-#: ../contrib/command-not-found/pk-command-not-found.c:610
+#: ../contrib/command-not-found/pk-command-not-found.c:616
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:550
-#: ../src/pk-main.c:211
+#: ../contrib/device-rebind/pk-device-rebind.c:293 ../src/pk-main.c:211
 msgid "Show extra debugging information"
 msgstr "Εμφάνιση επιπρόσθετων πληροφοριών αποσφαλμάτωσης"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1784 ../client/pk-monitor.c:130
+#: ../client/pk-console.c:1788 ../client/pk-monitor.c:130
 msgid "Show the program version and exit"
 msgstr "Εμφάνιση της έκδοσης του προγράμματος και έξοδος"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1787
+#: ../client/pk-console.c:1791
 msgid "Set the filter, e.g. installed"
 msgstr "Ορισμός του φίλτρου, π.χ. εγκατεστημένα"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1790
+#: ../client/pk-console.c:1794
 msgid "Exit without waiting for actions to complete"
 msgstr "Έξοδος χωρίς να περιμένετε να ολοκληρωθούν οι ενέργειες"
 
 #. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:1817
+#: ../client/pk-console.c:1821
 msgid "This tool could not connect to system DBUS."
 msgstr "Δεν ήταν δυνατή η σύνδεση στο DBUS του συστήματος."
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1907
+#: ../client/pk-console.c:1911
 msgid "The filter specified was invalid"
 msgstr "Το φίλτρο που ορίστηκε δεν ήταν έγκυρο"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1926
+#: ../client/pk-console.c:1930
 msgid "A search type is required, e.g. name"
 msgstr "Πρέπει να οριστεί ο τύπος της αναζήτησης, π.χ. όνομα"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1933 ../client/pk-console.c:1942
-#: ../client/pk-console.c:1951 ../client/pk-console.c:1960
+#: ../client/pk-console.c:1937 ../client/pk-console.c:1946
+#: ../client/pk-console.c:1955 ../client/pk-console.c:1964
 msgid "A search term is required"
 msgstr "Πρέπει να οριστεί όρος προς αναζήτηση"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1967
+#: ../client/pk-console.c:1971
 msgid "Invalid search type"
 msgstr "Μη έγκυρος τύπος αναζήτησης"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1973
+#: ../client/pk-console.c:1977
 msgid "A package name or filename to install is required"
 msgstr "Πρέπει να οριστεί όνομα πακέτου ή αρχείου προς εγκατάσταση"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1982
+#: ../client/pk-console.c:1986
 msgid "A type, key_id and package_id are required"
 msgstr ""
 "Πρέπει να οριστεί ο τύπος, το όνομα κλειδιού (key_id) και το όνομα πακέτου "
 "(package_id)"
 
 #. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:1991
+#: ../client/pk-console.c:1995
 msgid "A package name to remove is required"
 msgstr "Πρέπει να οριστεί όνομα πακέτου προς αφαίρεση"
 
 #. TRANSLATORS: the user did not specify anything about what to download or where
-#: ../client/pk-console.c:1999
+#: ../client/pk-console.c:2003
 msgid "A destination directory and the package names to download are required"
 msgstr ""
 "Πρέπει να οριστεί ο κατάλογος προορισμού και τα ονόματα των πακέτων που θα "
 "ληφθούν"
 
 #. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:2006
+#: ../client/pk-console.c:2010
 msgid "Directory not found"
 msgstr "Δε βρέθηκε ο κατάλογος"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2014
+#: ../client/pk-console.c:2018
 msgid "A licence identifier (eula-id) is required"
 msgstr "Πρέπει να οριστεί αναγνωριστικό EULA (eula-id)"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2024
+#: ../client/pk-console.c:2028
 msgid "A transaction identifier (tid) is required"
 msgstr "Πρέπει να οριστεί αναγνωριστικό εργασίας (tid)"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:2041
+#: ../client/pk-console.c:2045
 msgid "A package name to resolve is required"
 msgstr "Πρέπει να οριστεί όνομα πακέτου για τον καθορισμό"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:2050 ../client/pk-console.c:2059
+#: ../client/pk-console.c:2054 ../client/pk-console.c:2063
 msgid "A repository name is required"
 msgstr "Πρέπει να οριστεί όνομα αποθετηρίου"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2068
+#: ../client/pk-console.c:2072
 msgid "A repo name, parameter and value are required"
 msgstr "Πρέπει να οριστούν όνομα, παράμετρος και τιμή αποθετηρίου"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:2082
+#: ../client/pk-console.c:2086
 msgid "An action, e.g. 'update-system' is required"
 msgstr "Πρέπει να οριστεί μια ενέργεια, π.χ. 'ενημέρωση συστήματος'"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:2089
+#: ../client/pk-console.c:2093
 msgid "A correct role is required"
 msgstr "Πρέπει να οριστεί έγκυρη ενέργεια"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2096
+#: ../client/pk-console.c:2100
 msgid "Failed to get the time since this action was last completed"
 msgstr "Δε βρέθηκε ο χρόνος που είχε ολοκληρωθεί για τελευταία φορά η ενέργεια"
 
 #. TRANSLATORS: The user did not provide a package name
 #. TRANSLATORS: This is when the user fails to supply the package name
-#: ../client/pk-console.c:2106 ../client/pk-console.c:2118
-#: ../client/pk-console.c:2127 ../client/pk-console.c:2145
-#: ../client/pk-console.c:2154 ../client/pk-generate-pack.c:241
+#: ../client/pk-console.c:2110 ../client/pk-console.c:2122
+#: ../client/pk-console.c:2131 ../client/pk-console.c:2149
+#: ../client/pk-console.c:2158 ../client/pk-generate-pack.c:241
 msgid "A package name is required"
 msgstr "Πρέπει να οριστεί όνομα πακέτου"
 
 #. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:2136
+#: ../client/pk-console.c:2140
 msgid "A package provide string is required"
 msgstr "Πρέπει να οριστεί αλφαριθμητικό με το τι παρέχει το αρχείο"
 
 #. TRANSLATORS: The user didn't specify a filename to create as a list
-#: ../client/pk-console.c:2163
+#: ../client/pk-console.c:2167
 msgid "A list file name to create is required"
 msgstr "Πρέπει να οριστεί το όνομα του νέου αρχείου λίστας"
 
 #. TRANSLATORS: The user didn't specify a filename to open as a list
-#: ../client/pk-console.c:2173 ../client/pk-console.c:2183
+#: ../client/pk-console.c:2177 ../client/pk-console.c:2187
 msgid "A list file to open is required"
 msgstr "Πρέπει να οριστεί το αρχείο λίστας που θα ανοίξει"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2237
+#: ../client/pk-console.c:2241
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "Η επιλογή '%s' δεν υποστηρίζεται"
 
 #. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2250
+#: ../client/pk-console.c:2254
 msgid "Incorrect privileges for this operation"
 msgstr "Δεν έχετε τα κατάλληλα προνόμια για αυτή την ενέργεια"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2253
+#: ../client/pk-console.c:2257
 msgid "Command failed"
 msgstr "Η εντολή απέτυχε"
 
@@ -847,6 +845,60 @@ msgstr "Παρακαλώ, επιλέξτε το σωστό πακέτο: "
 msgid "Please enter a number from 1 to %i: "
 msgstr "Παρακαλώ, εισάγετε έναν αριθμό από το 1 μέχρι το %i: "
 
+#. TRANSLATORS: when we are getting data from the daemon
+#: ../contrib/browser-plugin/pk-plugin-install.c:466
+msgid "Getting package information..."
+msgstr "Λήψη πληροφοριών πακέτου..."
+
+#. TRANSLATORS: run an applicaiton
+#: ../contrib/browser-plugin/pk-plugin-install.c:472
+#, c-format
+msgid "Run %s"
+msgstr "Εκτέλεση %s"
+
+#. TRANSLATORS: show the installed version of a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:478
+msgid "Installed version"
+msgstr "Εγκατεστημένη έκδοση"
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:486
+#, c-format
+msgid "Run version %s now"
+msgstr "Εκτέλεση της έκδοσης %s τώρα"
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:492
+msgid "Run now"
+msgstr "Εκτέλεση τώρα"
+
+#. TRANSLATORS: update to a new version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:498
+#, c-format
+msgid "Update to version %s"
+msgstr "Εγκατάσταση της ενημερωμένης έκδοσης %s"
+
+#. TRANSLATORS: To install a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:504
+#, c-format
+msgid "Install %s now"
+msgstr "Εγκατάσταση %s τώρα"
+
+#. TRANSLATORS: the version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:507
+msgid "Version"
+msgstr "Έκδοση"
+
+#. TRANSLATORS: noting found, so can't install
+#: ../contrib/browser-plugin/pk-plugin-install.c:512
+msgid "No packages found for your system"
+msgstr "Δε βρέθηκαν πακέτα για το σύστημά σας"
+
+#. TRANSLATORS: package is being installed
+#: ../contrib/browser-plugin/pk-plugin-install.c:517
+msgid "Installing..."
+msgstr "Εγκατάσταση..."
+
 #. TRANSLATORS: downloading repo data so we can search
 #: ../contrib/command-not-found/pk-command-not-found.c:349
 msgid "Downloading details about the software sources."
@@ -860,140 +912,84 @@ msgstr ""
 #. TRANSLATORS: waiting for native lock
 #: ../contrib/command-not-found/pk-command-not-found.c:357
 #, fuzzy
-#| msgid "Finding package name."
 msgid "Waiting for package manager lock."
 msgstr "Εύρεση ονόματος πακέτου..."
 
 #. TRANSLATORS: loading package cache so we can search
 #: ../contrib/command-not-found/pk-command-not-found.c:361
 #, fuzzy
-#| msgid "Downloading packages"
 msgid "Loading list of packages."
 msgstr "Λήψη πακέτων..."
 
 #. TRANSLATORS: we failed to find the package, this shouldn't happen
-#: ../contrib/command-not-found/pk-command-not-found.c:414
+#: ../contrib/command-not-found/pk-command-not-found.c:420
 msgid "Failed to search for file"
 msgstr "Δεν ήταν δυνατή η αναζήτηση για το αρχείο"
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:551
+#: ../contrib/command-not-found/pk-command-not-found.c:557
 msgid "Failed to launch:"
 msgstr "Δεν ήταν δυνατή η εκκίνηση:"
 
 #. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/command-not-found/pk-command-not-found.c:626
+#: ../contrib/command-not-found/pk-command-not-found.c:632
 msgid "PackageKit Command Not Found"
 msgstr "Δε βρέθηκε η εντολή του PackageKit"
 
 #. TRANSLATORS: the prefix of all the output telling the user why it's not executing
-#: ../contrib/command-not-found/pk-command-not-found.c:652
+#: ../contrib/command-not-found/pk-command-not-found.c:658
 msgid "Command not found."
 msgstr "Η εντολή δε βρέθηκε."
 
 #. TRANSLATORS: tell the user what we think the command is
-#: ../contrib/command-not-found/pk-command-not-found.c:659
+#: ../contrib/command-not-found/pk-command-not-found.c:665
 msgid "Similar command is:"
 msgstr "Παρόμοια εντολή:"
 
 #. TRANSLATORS: Ask the user if we should run the similar command
-#: ../contrib/command-not-found/pk-command-not-found.c:668
+#: ../contrib/command-not-found/pk-command-not-found.c:674
 msgid "Run similar command:"
 msgstr "Εκτέλεση της παρόμοιας εντολής;"
 
 #. TRANSLATORS: show the user a list of commands that they could have meant
 #. TRANSLATORS: show the user a list of commands we could run
-#: ../contrib/command-not-found/pk-command-not-found.c:680
-#: ../contrib/command-not-found/pk-command-not-found.c:689
+#: ../contrib/command-not-found/pk-command-not-found.c:686
+#: ../contrib/command-not-found/pk-command-not-found.c:695
 msgid "Similar commands are:"
 msgstr "Παρόμοιες εντολές:"
 
 #. TRANSLATORS: ask the user to choose a file to run
-#: ../contrib/command-not-found/pk-command-not-found.c:696
+#: ../contrib/command-not-found/pk-command-not-found.c:702
 msgid "Please choose a command to run"
 msgstr "Παρακαλώ, επιλέξτε εντολή προς εκτέλεση"
 
 #. TRANSLATORS: tell the user what package provides the command
-#: ../contrib/command-not-found/pk-command-not-found.c:715
+#: ../contrib/command-not-found/pk-command-not-found.c:721
 msgid "The package providing this file is:"
 msgstr "Το πακέτο που παρέχει αυτό το αρχείο είναι το:"
 
 #. TRANSLATORS: as the user if we want to install a package to provide the command
-#: ../contrib/command-not-found/pk-command-not-found.c:720
+#: ../contrib/command-not-found/pk-command-not-found.c:726
 #, c-format
 msgid "Install package '%s' to provide command '%s'?"
 msgstr "Εγκατάσταση του πακέτου '%s' που παρέχει την εντολή '%s';"
 
 #. TRANSLATORS: Show the user a list of packages that provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:741
+#: ../contrib/command-not-found/pk-command-not-found.c:747
 msgid "Packages providing this file are:"
 msgstr "Πακέτα που παρέχουν αυτό το αρχείο:"
 
 #. TRANSLATORS: Show the user a list of packages that they can install to provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:750
+#: ../contrib/command-not-found/pk-command-not-found.c:756
 msgid "Suitable packages are:"
 msgstr "Κατάλληλα πακέτα:"
 
 #. get selection
 #. TRANSLATORS: ask the user to choose a file to install
-#: ../contrib/command-not-found/pk-command-not-found.c:758
+#: ../contrib/command-not-found/pk-command-not-found.c:764
 msgid "Please choose a package to install"
 msgstr "Παρακαλώ, επιλέξτε πακέτο προς εγκατάσταση"
 
-#. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/pk-plugin-install.c:433
-msgid "Getting package information..."
-msgstr "Λήψη πληροφοριών πακέτου..."
-
-#. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/pk-plugin-install.c:439
-#, c-format
-msgid "Run %s"
-msgstr "Εκτέλεση %s"
-
-#. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:445
-msgid "Installed version"
-msgstr "Εγκατεστημένη έκδοση"
-
-#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:453
-#, c-format
-msgid "Run version %s now"
-msgstr "Εκτέλεση της έκδοσης %s τώρα"
-
-#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:459
-msgid "Run now"
-msgstr "Εκτέλεση τώρα"
-
-#. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:465
-#, c-format
-msgid "Update to version %s"
-msgstr "Εγκατάσταση της ενημερωμένης έκδοσης %s"
-
-#. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:471
-#, c-format
-msgid "Install %s now"
-msgstr "Εγκατάσταση %s τώρα"
-
-#. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:474
-msgid "Version"
-msgstr "Έκδοση"
-
-#. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/pk-plugin-install.c:479
-msgid "No packages found for your system"
-msgstr "Δε βρέθηκαν πακέτα για το σύστημά σας"
-
-#. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/pk-plugin-install.c:484
-msgid "Installing..."
-msgstr "Εγκατάσταση..."
-
 #. TRANSLATORS: we are starting to install the packages
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:187
 msgid "Starting install"
@@ -1179,6 +1175,103 @@ msgstr "Δεν ήταν δυνατή η απενεργοποίηση των πη
 msgid "Disabled %i debugging sources."
 msgstr "Απενεργοποιήθηκαν %i πηγές αποσφαλμάτωσης."
 
+#. TRANSLATORS: couldn't open device to write
+#: ../contrib/device-rebind/pk-device-rebind.c:61
+#, fuzzy
+msgid "Failed to open file"
+msgstr "Δεν ήταν δυνατή η αναζήτηση για το αρχείο"
+
+#. TRANSLATORS: could not write to the device
+#: ../contrib/device-rebind/pk-device-rebind.c:70
+#, fuzzy
+msgid "Failed to write to the file"
+msgstr "Δεν ήταν δυνατή η αναζήτηση για το αρχείο"
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:110
+#: ../contrib/device-rebind/pk-device-rebind.c:147
+#, fuzzy
+msgid "Failed to write to device"
+msgstr "Απέτυχε η αποθήκευση στο δίσκο"
+
+#. TRANSLATORS: the device could not be found in sysfs
+#: ../contrib/device-rebind/pk-device-rebind.c:175
+#, fuzzy
+msgid "Device could not be found"
+msgstr "Δε βρέθηκε το πακέτο"
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:202
+#, fuzzy
+msgid "Failed to unregister driver"
+msgstr "Απέτυχε η δημιουργία του καταλόγου:"
+
+#. TRANSLATORS: we failed to bind the old driver
+#: ../contrib/device-rebind/pk-device-rebind.c:211
+#, fuzzy
+msgid "Failed to register driver"
+msgstr "Απέτυχε η δημιουργία του καταλόγου:"
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:260
+#, fuzzy
+msgid "Device path not found"
+msgstr "Δε βρέθηκε ο κατάλογος"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:268
+msgid "Incorrect device path specified"
+msgstr ""
+
+#. command line argument, simulate what would be done, but don't actually do it
+#: ../contrib/device-rebind/pk-device-rebind.c:296
+#, fuzzy
+msgid "Don't actually touch the hardware, only simulate what would be done"
+msgstr "Να μη γίνει πραγματική εγκατάσταση πακέτων, μόνο προσομοίωση"
+
+#. TRANSLATORS: command line option: a list of files to install
+#: ../contrib/device-rebind/pk-device-rebind.c:299
+msgid "Device paths"
+msgstr ""
+
+#. TRANSLATORS: tool that gets called when the device needs reloading after installing firmware
+#: ../contrib/device-rebind/pk-device-rebind.c:314
+#, fuzzy
+msgid "PackageKit Device Reloader"
+msgstr "Πακέτο τεκμηρίωσης PackageKit"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:322
+msgid "You need to specify at least one valid device path"
+msgstr ""
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:332
+msgid "This script can only be used by the root user"
+msgstr ""
+
+#. TRANSLATORS: we're going to verify the path first
+#: ../contrib/device-rebind/pk-device-rebind.c:341
+msgid "Verifying device path"
+msgstr ""
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:346
+#, fuzzy
+msgid "Failed to verify device path"
+msgstr "Δεν ήταν δυνατή η αναζήτηση για το αρχείο"
+
+#. TRANSLATORS: we're going to try
+#: ../contrib/device-rebind/pk-device-rebind.c:360
+msgid "Attempting to rebind device"
+msgstr ""
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:365
+#, fuzzy
+msgid "Failed to rebind device"
+msgstr "Απέτυχε η δημιουργία του καταλόγου:"
+
 #: ../data/packagekit-catalog.xml.in.h:1
 msgid "PackageKit Catalog"
 msgstr "Κατάλογος PackageKit"
@@ -1238,15 +1331,20 @@ msgid "Authentication is required to refresh the system sources"
 msgstr "Απαιτείται πιστοποίηση για την ανανέωση των πηγών του συστήματος"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:15
+#, fuzzy
+msgid "Authentication is required to reload the device with a new driver"
+msgstr "Απαιτείται πιστοποίηση για την ανανέωση των πηγών του συστήματος"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:16
 msgid "Authentication is required to remove packages"
 msgstr "Απαιτείται πιστοποίηση για την αφαίρεση πακέτων"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:16
+#: ../policy/org.freedesktop.packagekit.policy.in.h:17
 msgid "Authentication is required to rollback a transaction"
 msgstr ""
 "Απαιτείται πιστοποίηση για την επαναφορά στην κατάσταση πριν από την εργασία"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:17
+#: ../policy/org.freedesktop.packagekit.policy.in.h:18
 msgid ""
 "Authentication is required to set the network proxy used for downloading "
 "packages"
@@ -1254,7 +1352,7 @@ msgstr ""
 "Απαιτείται πιστοποίηση για τον ορισμό διαμεσολαβητή δικτύου για τη λήψη "
 "πακέτων"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:18
+#: ../policy/org.freedesktop.packagekit.policy.in.h:19
 msgid "Authentication is required to update packages"
 msgstr "Απαιτείται πιστοποίηση για την ενημέρωση πακέτων"
 
@@ -1263,7 +1361,7 @@ msgstr "Απαιτείται πιστοποίηση για την ενημέρω
 #. authentication, but a different user id needs the admin password
 #. to cancel another users task.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:24
+#: ../policy/org.freedesktop.packagekit.policy.in.h:25
 msgid "Cancel foreign task"
 msgstr "Ακύρωση ενέργειας άλλου χρήστη"
 
@@ -1272,7 +1370,7 @@ msgstr "Ακύρωση ενέργειας άλλου χρήστη"
 #. software sources as this can be used to enable new updates or
 #. install different versions of software.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:30
+#: ../policy/org.freedesktop.packagekit.policy.in.h:31
 msgid "Change software source parameters"
 msgstr "Αλλαγή παραμέτρων πηγών λογισμικού"
 
@@ -1282,7 +1380,7 @@ msgstr "Αλλαγή παραμέτρων πηγών λογισμικού"
 #. - Paranoid users (or parents!) can change this to 'auth_admin' or
 #. 'auth_admin_keep'.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:37
+#: ../policy/org.freedesktop.packagekit.policy.in.h:38
 msgid "Install signed package"
 msgstr "Εγκατάσταση υπογεγραμμένου πακέτου"
 
@@ -1292,7 +1390,7 @@ msgstr "Εγκατάσταση υπογεγραμμένου πακέτου"
 #. password would be a massive security hole.
 #. - This is not retained as each package should be authenticated.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:44
+#: ../policy/org.freedesktop.packagekit.policy.in.h:45
 msgid "Install untrusted local file"
 msgstr "Εγκατάσταση μη έμπιστου τοπικού αρχείου"
 
@@ -1300,11 +1398,22 @@ msgstr "Εγκατάσταση μη έμπιστου τοπικού αρχείο
 #. - Normal users do not require admin authentication to refresh the
 #. cache, as this doesn't actually install or remove software.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:49
+#: ../policy/org.freedesktop.packagekit.policy.in.h:50
 msgid "Refresh system sources"
 msgstr "Ανανέωση πηγών συστήματος"
 
 #. SECURITY:
+#. - Normal users require admin authentication to rebind a driver
+#. so that it works after we install firmware.
+#. - This should not be set to 'yes' as unprivileged users could then
+#. try to rebind drivers in use, for instance security authentication
+#. devices.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:58
+msgid "Reload a device"
+msgstr ""
+
+#. SECURITY:
 #. - Normal users require admin authentication to remove packages as
 #. this can make the system unbootable or stop other applications from
 #. working.
@@ -1313,7 +1422,7 @@ msgstr "Ανανέωση πηγών συστήματος"
 #. be removed. If this is not possible, change this authentication to
 #. 'auth_admin'.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:59
+#: ../policy/org.freedesktop.packagekit.policy.in.h:68
 msgid "Remove package"
 msgstr "Αφαίρεση πακέτου"
 
@@ -1322,7 +1431,7 @@ msgstr "Αφαίρεση πακέτου"
 #. as this will change a large number of packages, and could expose the
 #. system to previously patched security vulnerabilities.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:65
+#: ../policy/org.freedesktop.packagekit.policy.in.h:74
 msgid "Rollback to a previous transaction"
 msgstr "Επαναφορά στην κατάσταση πριν από προηγούμενη εργασία"
 
@@ -1330,7 +1439,7 @@ msgstr "Επαναφορά στην κατάσταση πριν από προηÎ
 #. - Normal users do not require admin authentication to set the proxy
 #. used for downloading packages.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:70
+#: ../policy/org.freedesktop.packagekit.policy.in.h:79
 msgid "Set network proxy"
 msgstr "Ορισμός διαμεσολαβητή δικτύουν"
 
@@ -1340,7 +1449,7 @@ msgstr "Ορισμός διαμεσολαβητή δικτύουν"
 #. without a secure authentication.
 #. - This is not kept as each package should be authenticated.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:77
+#: ../policy/org.freedesktop.packagekit.policy.in.h:86
 msgid "Trust a key used for signing packages"
 msgstr "Ορισμός ως έμπιστου του κλειδιού για την υπογραφή πακέτων"
 
@@ -1351,7 +1460,7 @@ msgstr "Ορισμός ως έμπιστου του κλειδιού για τη
 #. - Changing this to anything other than 'yes' will break unattended
 #. updates.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:85
+#: ../policy/org.freedesktop.packagekit.policy.in.h:94
 msgid "Update packages"
 msgstr "Ενημέρωση πακέτων"
 
@@ -1434,7 +1543,7 @@ msgstr ""
 "αποσφαλμάτωσης"
 
 #. TRANSLATORS: is not GPG signed
-#: ../src/pk-polkit-action-lookup.c:168 ../src/pk-polkit-action-lookup.c:191
+#: ../src/pk-polkit-action-lookup.c:168 ../src/pk-polkit-action-lookup.c:187
 msgid "The software is not from a trusted source."
 msgstr "Το λογισμικό δεν προέρχεται από έμπιστη πηγή."
 
@@ -1444,35 +1553,32 @@ msgstr "Ενημερώστε αυτό το πακέτο μόνο αν είστε
 
 #: ../src/pk-polkit-action-lookup.c:174
 #, fuzzy
-#| msgid "Do not update this package unless you are sure it is safe to do so."
 msgid "Do not update these packages unless you are sure it is safe to do so."
 msgstr "Ενημερώστε αυτό το πακέτο μόνο αν είστε βέβαιοι ότι είναι ασφαλές."
 
-#. TRANSLATORS: warn the user that all bets are off
-#: ../src/pk-polkit-action-lookup.c:180 ../src/pk-polkit-action-lookup.c:203
-msgid "Malicious software can damage your computer or cause other harm."
-msgstr ""
-"Η εγκατάσταση κακόβουλου λογισμικού μπορεί να προκαλέσει ζημιές στον "
-"υπολογιστή σας ή και αλλού."
-
-#: ../src/pk-polkit-action-lookup.c:196
+#: ../src/pk-polkit-action-lookup.c:192
 msgid "Do not install this package unless you are sure it is safe to do so."
 msgstr "Εγκαταστήστε αυτό το πακέτο μόνο αν είστε βέβαιοι ότι είναι ασφαλές."
 
-#: ../src/pk-polkit-action-lookup.c:197
+#: ../src/pk-polkit-action-lookup.c:193
 #, fuzzy
-#| msgid "Do not install this package unless you are sure it is safe to do so."
 msgid "Do not install these packages unless you are sure it is safe to do so."
 msgstr "Εγκαταστήστε αυτό το πακέτο μόνο αν είστε βέβαιοι ότι είναι ασφαλές."
 
+#. TRANSLATORS: warn the user that all bets are off
+#: ../src/pk-polkit-action-lookup.c:199
+msgid "Malicious software can damage your computer or cause other harm."
+msgstr ""
+"Η εγκατάσταση κακόβουλου λογισμικού μπορεί να προκαλέσει ζημιές στον "
+"υπολογιστή σας ή και αλλού."
+
 #. TRANSLATORS: too many packages to list each one
-#: ../src/pk-polkit-action-lookup.c:278
+#: ../src/pk-polkit-action-lookup.c:274
 #, fuzzy
-#| msgid "Update packages"
 msgid "Many packages"
 msgstr "Ενημέρωση πακέτων"
 
 #. TRANSLATORS: if the transaction is forced to install only trusted packages
-#: ../src/pk-polkit-action-lookup.c:338
+#: ../src/pk-polkit-action-lookup.c:334
 msgid "Only trusted"
 msgstr "Μόνο έμπιστα"
diff --git a/po/en_GB.po b/po/en_GB.po
index 147fac3..c5cc4e0 100644
--- a/po/en_GB.po
+++ b/po/en_GB.po
@@ -2,609 +2,1481 @@
 # Copyright (C) 2009 THE PackageKit'S COPYRIGHT HOLDER
 # This file is distributed under the same license as the PackageKit package.
 # Tim Waugh <twaugh at redhat.com>, 2009.
-# 
-# 
+#
+#
 msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-11-28 01:31+0000\n"
+"POT-Creation-Date: 2009-08-24 11:06+0100\n"
 "PO-Revision-Date: 2009-01-16 12:28+0000\n"
 "Last-Translator: Tim Waugh <twaugh at redhat.com>\n"
 "Language-Team: English/GB <en at li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. TRANSLATORS: this is an atomic transaction
+#: ../client/pk-console.c:235
+msgid "Transaction"
+msgstr ""
+
+#. TRANSLATORS: this is the time the transaction was started in system timezone
+#: ../client/pk-console.c:237
+msgid "System time"
+msgstr ""
+
+#. TRANSLATORS: this is if the transaction succeeded or not
+#: ../client/pk-console.c:239
+msgid "Succeeded"
+msgstr ""
+
+#. TRANSLATORS: if the repo is enabled
+#: ../client/pk-console.c:239 ../client/pk-console.c:406
+msgid "True"
+msgstr ""
+
+#: ../client/pk-console.c:239 ../client/pk-console.c:406
+msgid "False"
+msgstr ""
+
+#. TRANSLATORS: this is the transactions role, e.g. "update-system"
+#. TRANSLATORS: the trasaction role, e.g. update-system
+#: ../client/pk-console.c:241 ../src/pk-polkit-action-lookup.c:327
+msgid "Role"
+msgstr ""
+
+#. TRANSLATORS: this is The duration of the transaction
+#: ../client/pk-console.c:246
+msgid "Duration"
+msgstr ""
+
+#: ../client/pk-console.c:246
+msgid "(seconds)"
+msgstr ""
+
+#. TRANSLATORS: this is The command line used to do the action
+#. TRANSLATORS: the command line of the thing that wants the authentication
+#: ../client/pk-console.c:250 ../src/pk-polkit-action-lookup.c:341
+#, fuzzy
+msgid "Command line"
+msgstr "Command failed"
+
+#. TRANSLATORS: this is the user ID of the user that started the action
+#: ../client/pk-console.c:252
+msgid "User ID"
+msgstr ""
+
+#. TRANSLATORS: this is the username, e.g. hughsie
+#: ../client/pk-console.c:259
+msgid "Username"
+msgstr ""
+
+#. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
+#: ../client/pk-console.c:263
+msgid "Real name"
+msgstr ""
+
+#: ../client/pk-console.c:271
+msgid "Affected packages:"
+msgstr ""
+
+#: ../client/pk-console.c:273
+msgid "Affected packages: None"
+msgstr ""
+
+#. TRANSLATORS: this is the distro, e.g. Fedora 10
+#: ../client/pk-console.c:298
+msgid "Distribution"
+msgstr ""
+
+#. TRANSLATORS: this is type of update, stable or testing
+#: ../client/pk-console.c:300
+msgid "Type"
+msgstr ""
+
+#. TRANSLATORS: this is any summary text describing the upgrade
+#. TRANSLATORS: this is the summary of the group
+#: ../client/pk-console.c:302 ../client/pk-console.c:325
+msgid "Summary"
+msgstr ""
+
+#. TRANSLATORS: this is the group category name
+#: ../client/pk-console.c:314
+msgid "Category"
+msgstr ""
+
+#. TRANSLATORS: this is group identifier
+#: ../client/pk-console.c:316
+msgid "ID"
+msgstr ""
+
+#. TRANSLATORS: this is the parent group
+#: ../client/pk-console.c:319
+msgid "Parent"
+msgstr ""
+
+#. TRANSLATORS: this is the name of the parent group
+#: ../client/pk-console.c:322
+msgid "Name"
+msgstr ""
+
+#. TRANSLATORS: this is preferred icon for the group
+#: ../client/pk-console.c:328
+msgid "Icon"
+msgstr ""
 
 #. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:287
+#: ../client/pk-console.c:343
 msgid "Details about the update:"
 msgstr "Details about the update:"
 
-#: ../client/pk-console.c:480
+#. TRANSLATORS: details about the update, package name and version
+#. TRANSLATORS: title, the names of the packages that the method is processing
+#: ../client/pk-console.c:345 ../src/pk-polkit-action-lookup.c:352
+#, fuzzy
+msgid "Package"
+msgid_plural "Packages"
+msgstr[0] "Package files"
+msgstr[1] "Package files"
+
+#. TRANSLATORS: details about the update, any packages that this update updates
+#: ../client/pk-console.c:348
+msgid "Updates"
+msgstr ""
+
+#. TRANSLATORS: details about the update, any packages that this update obsoletes
+#: ../client/pk-console.c:352
+msgid "Obsoletes"
+msgstr ""
+
+#. TRANSLATORS: details about the update, the vendor URLs
+#: ../client/pk-console.c:356
+msgid "Vendor"
+msgstr ""
+
+#. TRANSLATORS: details about the update, the bugzilla URLs
+#: ../client/pk-console.c:360
+msgid "Bugzilla"
+msgstr ""
+
+#. TRANSLATORS: details about the update, the CVE URLs
+#: ../client/pk-console.c:364
+msgid "CVE"
+msgstr ""
+
+#. TRANSLATORS: details about the update, if the package requires a restart
+#: ../client/pk-console.c:368
+msgid "Restart"
+msgstr ""
+
+#. TRANSLATORS: details about the update, any description of the update
+#: ../client/pk-console.c:372
+msgid "Update text"
+msgstr ""
+
+#. TRANSLATORS: details about the update, the changelog for the package
+#: ../client/pk-console.c:376
+msgid "Changes"
+msgstr ""
+
+#. TRANSLATORS: details about the update, the ongoing state of the update
+#: ../client/pk-console.c:380
+msgid "State"
+msgstr ""
+
+#. TRANSLATORS: details about the update, date the update was issued
+#: ../client/pk-console.c:385
+msgid "Issued"
+msgstr ""
+
+#. TRANSLATORS: details about the update, date the update was updated
+#: ../client/pk-console.c:390
+msgid "Updated"
+msgstr ""
+
+#: ../client/pk-console.c:477 ../client/pk-console.c:479
+msgid "Percentage"
+msgstr ""
+
+#: ../client/pk-console.c:479
+msgid "Unknown"
+msgstr ""
+
+#. TRANSLATORS: a package requires the system to be restarted
+#: ../client/pk-console.c:521
+msgid "System restart required by:"
+msgstr ""
+
+#. TRANSLATORS: a package requires the session to be restarted
+#: ../client/pk-console.c:524
+#, fuzzy
+msgid "Session restart required:"
+msgstr "Repository signature required"
+
+#. TRANSLATORS: a package requires the system to be restarted due to a security update
+#: ../client/pk-console.c:527
+msgid "System restart (security) required by:"
+msgstr ""
+
+#. TRANSLATORS: a package requires the session to be restarted due to a security update
+#: ../client/pk-console.c:530
+msgid "Session restart (security) required:"
+msgstr ""
+
+#. TRANSLATORS: a package requires the application to be restarted
+#: ../client/pk-console.c:533
+msgid "Application restart required by:"
+msgstr ""
+
+#. TRANSLATORS: a package needs to restart their system
+#: ../client/pk-console.c:588
 msgid "Please restart the computer to complete the update."
 msgstr "Please restart the computer to complete the update."
 
-#: ../client/pk-console.c:482
+#. TRANSLATORS: a package needs to restart the session
+#: ../client/pk-console.c:591
 msgid "Please logout and login to complete the update."
 msgstr "Please logout and login to complete the update."
 
-#: ../client/pk-console.c:484
+#. TRANSLATORS: a package needs to restart the application
+#: ../client/pk-console.c:594
 msgid "Please restart the application as it is being used."
 msgstr "Please restart the application as it is being used."
 
+#. TRANSLATORS: a package needs to restart their system (due to security)
+#: ../client/pk-console.c:597
+#, fuzzy
+msgid ""
+"Please restart the computer to complete the update as important security "
+"updates have been installed."
+msgstr "Please restart the computer to complete the update."
+
+#. TRANSLATORS: a package needs to restart the session (due to security)
+#: ../client/pk-console.c:600
+#, fuzzy
+msgid ""
+"Please logout and login to complete the update as important security updates "
+"have been installed."
+msgstr "Please logout and login to complete the update."
+
 #. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:596
+#: ../client/pk-console.c:727
 #, c-format
 msgid "The package %s is already installed"
 msgstr "The package %s is already installed"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:604
+#: ../client/pk-console.c:735
 #, c-format
 msgid "The package %s could not be installed: %s"
 msgstr "The package %s could not be installed: %s"
 
 #. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
-#: ../client/pk-console.c:629 ../client/pk-console.c:656
-#: ../client/pk-console.c:752 ../client/pk-console.c:869
-#: ../client/pk-tools-common.c:61 ../client/pk-tools-common.c:79
-#: ../client/pk-tools-common.c:86
+#: ../client/pk-console.c:760 ../client/pk-console.c:783
+#: ../client/pk-console.c:879 ../client/pk-console.c:996
+#: ../client/pk-tools-common.c:62 ../client/pk-tools-common.c:81
+#: ../client/pk-tools-common.c:89
 #, c-format
 msgid "Internal error: %s"
 msgstr "Internal error: %s"
 
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:637 ../client/pk-console.c:1264
+#: ../client/pk-console.c:768 ../client/pk-console.c:1392
 #, c-format
 msgid "This tool could not install the packages: %s"
 msgstr "This tool could not install the packages: %s"
 
 #. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:664
+#: ../client/pk-console.c:791
 #, c-format
 msgid "This tool could not install the files: %s"
 msgstr "This tool could not install the files: %s"
 
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:720
+#: ../client/pk-console.c:847
 #, c-format
 msgid "This tool could not remove %s: %s"
 msgstr "This tool could not remove %s: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:743 ../client/pk-console.c:781
-#: ../client/pk-console.c:814
+#: ../client/pk-console.c:870 ../client/pk-console.c:908
+#: ../client/pk-console.c:941
 #, c-format
 msgid "This tool could not remove the packages: %s"
 msgstr "This tool could not remove the packages: %s"
 
 #. TRANSLATORS: When removing, we might have to remove other dependencies
-#: ../client/pk-console.c:793
+#: ../client/pk-console.c:920
 msgid "The following packages have to be removed:"
 msgstr "The following packages have to be removed:"
 
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:800
+#: ../client/pk-console.c:927
 msgid "Proceed removing additional packages?"
 msgstr "Proceed removing additional packages?"
 
 #. TRANSLATORS: We did not remove any packages
-#: ../client/pk-console.c:805
+#: ../client/pk-console.c:932
 msgid "The package removal was canceled!"
 msgstr "The package removal was cancelled!"
 
 #. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:846
+#: ../client/pk-console.c:973
 #, c-format
 msgid "This tool could not download the package %s as it could not be found"
 msgstr "This tool could not download the package %s as it could not be found"
 
 #. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:877
+#: ../client/pk-console.c:1004
 #, c-format
 msgid "This tool could not download the packages: %s"
 msgstr "This tool could not download the packages: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:904 ../client/pk-console.c:913
+#: ../client/pk-console.c:1031 ../client/pk-console.c:1040
 #, c-format
 msgid "This tool could not update %s: %s"
 msgstr "This tool could not update %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:935 ../client/pk-console.c:943
+#: ../client/pk-console.c:1062 ../client/pk-console.c:1070
 #, c-format
 msgid "This tool could not get the requirements for %s: %s"
 msgstr "This tool could not get the requirements for %s: %s"
 
 #. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:965 ../client/pk-console.c:973
+#: ../client/pk-console.c:1092 ../client/pk-console.c:1100
 #, c-format
 msgid "This tool could not get the dependencies for %s: %s"
 msgstr "This tool could not get the dependencies for %s: %s"
 
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:995 ../client/pk-console.c:1003
+#: ../client/pk-console.c:1122 ../client/pk-console.c:1130
 #, c-format
 msgid "This tool could not get package details for %s: %s"
 msgstr "This tool could not get package details for %s: %s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1025
+#: ../client/pk-console.c:1152
 #, c-format
 msgid "This tool could not find the files for %s: %s"
 msgstr "This tool could not find the files for %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1033
+#: ../client/pk-console.c:1160
 #, c-format
 msgid "This tool could not get the file list for %s: %s"
 msgstr "This tool could not get the file list for %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of packages. The filename follows
-#: ../client/pk-console.c:1055
+#: ../client/pk-console.c:1182
 #, c-format
 msgid "File already exists: %s"
 msgstr "File already exists: %s"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1060 ../client/pk-console.c:1116
-#: ../client/pk-console.c:1191
+#: ../client/pk-console.c:1187 ../client/pk-console.c:1243
+#: ../client/pk-console.c:1318
 msgid "Getting package list"
 msgstr "Getting package list"
 
 #. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1066 ../client/pk-console.c:1122
-#: ../client/pk-console.c:1197
+#: ../client/pk-console.c:1193 ../client/pk-console.c:1249
+#: ../client/pk-console.c:1324
 #, c-format
 msgid "This tool could not get package list: %s"
 msgstr "This tool could not get package list: %s"
 
 #. TRANSLATORS: There was an error saving the list
-#: ../client/pk-console.c:1077
+#: ../client/pk-console.c:1204
+#, c-format
 msgid "Failed to save to disk"
 msgstr "Failed to save to disk"
 
 #. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1111 ../client/pk-console.c:1186
+#: ../client/pk-console.c:1238 ../client/pk-console.c:1313
 #, c-format
 msgid "File does not exist: %s"
 msgstr "File does not exist: %s"
 
 #. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1143
+#: ../client/pk-console.c:1270
 msgid "Packages to add"
 msgstr "Packages to add"
 
 #. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1151
+#: ../client/pk-console.c:1278
 msgid "Packages to remove"
 msgstr "Packages to remove"
 
 #. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1219
+#: ../client/pk-console.c:1346
+#, c-format
 msgid "No new packages need to be installed"
 msgstr "No new packages need to be installed"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1225
+#: ../client/pk-console.c:1352
 msgid "To install"
 msgstr "To install"
 
 #. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1236
+#: ../client/pk-console.c:1364
 msgid "Searching for package: "
 msgstr "Searching for package: "
 
 #. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1240
+#: ../client/pk-console.c:1368
 msgid "not found."
 msgstr "not found."
 
 #. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1251
+#: ../client/pk-console.c:1379
+#, c-format
 msgid "No packages can be found to install"
 msgstr "No packages can be found to install"
 
 #. TRANSLATORS: installing new packages from package list
-#: ../client/pk-console.c:1257
+#. TRANSLATORS: we are now installing the debuginfo packages we found earlier
+#: ../client/pk-console.c:1385
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:886
+#, c-format
 msgid "Installing packages"
 msgstr "Installing packages"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1293
+#: ../client/pk-console.c:1421
 #, c-format
 msgid "This tool could not find the update details for %s: %s"
 msgstr "This tool could not find the update details for %s: %s"
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1301
+#: ../client/pk-console.c:1429
 #, c-format
 msgid "This tool could not get the update details for %s: %s"
 msgstr "This tool could not get the update details for %s: %s"
 
 #. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
-#: ../client/pk-console.c:1347
+#: ../client/pk-console.c:1460
 msgid "Error:"
 msgstr "Error:"
 
 #. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1361
+#: ../client/pk-console.c:1474
 msgid "Package description"
 msgstr "Package description"
 
+#. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
+#: ../client/pk-console.c:1490
+msgid "Message:"
+msgstr ""
+
 #. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1394
+#: ../client/pk-console.c:1518
 msgid "Package files"
 msgstr "Package files"
 
 #. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1403
+#: ../client/pk-console.c:1526
 msgid "No files"
 msgstr "No files"
 
 #. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1426
+#: ../client/pk-console.c:1549
 msgid "Repository signature required"
 msgstr "Repository signature required"
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1436
+#: ../client/pk-console.c:1559
 msgid "Do you accept this signature?"
 msgstr "Do you accept this signature?"
 
 #. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1440
+#: ../client/pk-console.c:1563
 msgid "The signature was not accepted."
 msgstr "The signature was not accepted."
 
 #. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1474
+#: ../client/pk-console.c:1597
 msgid "End user license agreement required"
 msgstr "End user licence agreement required"
 
 #. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1481
+#: ../client/pk-console.c:1604
 msgid "Do you agree to this license?"
 msgstr "Do you agree to this licence?"
 
 #. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1485
+#: ../client/pk-console.c:1608
 msgid "The license was refused."
 msgstr "The licence was refused."
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1514
+#: ../client/pk-console.c:1637
 msgid "The daemon crashed mid-transaction!"
 msgstr "The daemon crashed mid-transaction!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1567
+#: ../client/pk-console.c:1690
 msgid "PackageKit Console Interface"
 msgstr "PackageKit Console Interface"
 
-#: ../client/pk-console.c:1567
+#. these are commands we can use with pkcon
+#: ../client/pk-console.c:1692
 msgid "Subcommands:"
 msgstr "Subcommands:"
 
-#: ../client/pk-console.c:1658 ../client/pk-generate-pack.c:184
-#: ../client/pk-monitor.c:115 ../src/pk-main.c:191
+#. TRANSLATORS: command line argument, if we should show debugging information
+#. TRANSLATORS: if we should show debugging data
+#: ../client/pk-console.c:1785 ../client/pk-generate-pack.c:185
+#: ../client/pk-monitor.c:128
+#: ../contrib/command-not-found/pk-command-not-found.c:616
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:550
+#: ../contrib/device-rebind/pk-device-rebind.c:293 ../src/pk-main.c:211
 msgid "Show extra debugging information"
 msgstr "Show extra debugging information"
 
-#: ../client/pk-console.c:1660 ../client/pk-monitor.c:117
+#. TRANSLATORS: command line argument, just show the version string
+#: ../client/pk-console.c:1788 ../client/pk-monitor.c:130
 msgid "Show the program version and exit"
 msgstr "Show the program version and exit"
 
-#: ../client/pk-console.c:1662
+#. TRANSLATORS: command line argument, use a filter to narrow down results
+#: ../client/pk-console.c:1791
 msgid "Set the filter, e.g. installed"
 msgstr "Set the filter, e.g. installed"
 
-#: ../client/pk-console.c:1664
+#. TRANSLATORS: command line argument, work asynchronously
+#: ../client/pk-console.c:1794
 msgid "Exit without waiting for actions to complete"
 msgstr "Exit without waiting for actions to complete"
 
 #. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:1691
+#: ../client/pk-console.c:1821
 msgid "This tool could not connect to system DBUS."
 msgstr "This tool could not connect to system DBUS."
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1776
+#: ../client/pk-console.c:1911
 msgid "The filter specified was invalid"
 msgstr "The filter specified was invalid"
 
-#: ../client/pk-console.c:1793
-msgid "You need to specify a search type, e.g. name"
-msgstr "You need to specify a search type, e.g. name"
+#. TRANSLATORS: a search type can be name, details, file, etc
+#: ../client/pk-console.c:1930
+msgid "A search type is required, e.g. name"
+msgstr ""
 
-#: ../client/pk-console.c:1798 ../client/pk-console.c:1805
-#: ../client/pk-console.c:1812 ../client/pk-console.c:1819
-#: ../client/pk-console.c:1930 ../client/pk-console.c:1940
-#: ../client/pk-console.c:1947 ../client/pk-console.c:1954
-msgid "You need to specify a search term"
-msgstr "You need to specify a search term"
+#. TRANSLATORS: the user needs to provide a search term
+#: ../client/pk-console.c:1937 ../client/pk-console.c:1946
+#: ../client/pk-console.c:1955 ../client/pk-console.c:1964
+msgid "A search term is required"
+msgstr ""
 
-#: ../client/pk-console.c:1824
+#. TRANSLATORS: the search type was provided, but invalid
+#: ../client/pk-console.c:1971
 msgid "Invalid search type"
 msgstr "Invalid search type"
 
-#: ../client/pk-console.c:1829
-msgid "You need to specify a package or file to install"
-msgstr "You need to specify a package or file to install"
+#. TRANSLATORS: the user did not specify what they wanted to install
+#: ../client/pk-console.c:1977
+msgid "A package name or filename to install is required"
+msgstr ""
 
-#: ../client/pk-console.c:1836
-msgid "You need to specify a type, key_id and package_id"
+#. TRANSLATORS: geeky error, 99.9999% of users won't see this
+#: ../client/pk-console.c:1986
+#, fuzzy
+msgid "A type, key_id and package_id are required"
 msgstr "You need to specify a type, key_id and package_id"
 
-#: ../client/pk-console.c:1843
-msgid "You need to specify a package to remove"
-msgstr "You need to specify a package to remove"
+#. TRANSLATORS: the user did not specify what they wanted to remove
+#: ../client/pk-console.c:1995
+msgid "A package name to remove is required"
+msgstr ""
 
-#: ../client/pk-console.c:1849
-msgid ""
-"You need to specify the destination directory and then the packages to "
-"download"
+#. TRANSLATORS: the user did not specify anything about what to download or where
+#: ../client/pk-console.c:2003
+#, fuzzy
+msgid "A destination directory and the package names to download are required"
 msgstr ""
 "You need to specify the destination directory and then the packages to "
 "download"
 
-#: ../client/pk-console.c:1854
+#. TRANSLATORS: the directory does not exist, so we can't continue
+#: ../client/pk-console.c:2010
 msgid "Directory not found"
 msgstr "Directory not found"
 
-#: ../client/pk-console.c:1860
-msgid "You need to specify a licence identifier (eula-id)"
+#. TRANSLATORS: geeky error, 99.9999% of users won't see this
+#: ../client/pk-console.c:2018
+#, fuzzy
+msgid "A licence identifier (eula-id) is required"
 msgstr "You need to specify a licence identifier (eula-id)"
 
-#: ../client/pk-console.c:1876
-msgid "You need to specify a package name to resolve"
-msgstr "You need to specify a package name to resolve"
+#. TRANSLATORS: geeky error, 99.9999% of users won't see this
+#: ../client/pk-console.c:2028
+msgid "A transaction identifier (tid) is required"
+msgstr ""
+
+#. TRANSLATORS: The user did not specify a package name
+#: ../client/pk-console.c:2045
+msgid "A package name to resolve is required"
+msgstr ""
 
-#: ../client/pk-console.c:1885 ../client/pk-console.c:1892
-msgid "You need to specify a repository name"
-msgstr "You need to specify a repository name"
+#. TRANSLATORS: The user did not specify a repository (software source) name
+#: ../client/pk-console.c:2054 ../client/pk-console.c:2063
+#, fuzzy
+msgid "A repository name is required"
+msgstr "Repository signature required"
 
-#: ../client/pk-console.c:1899
-msgid "You need to specify a repo name/parameter and value"
+#. TRANSLATORS: The user didn't provide any data
+#: ../client/pk-console.c:2072
+#, fuzzy
+msgid "A repo name, parameter and value are required"
 msgstr "You need to specify a repo name/parameter and value"
 
-#: ../client/pk-console.c:1912
-msgid "You need to specify an action, e.g. 'update-system'"
+#. TRANSLATORS: The user didn't specify what action to use
+#: ../client/pk-console.c:2086
+#, fuzzy
+msgid "An action, e.g. 'update-system' is required"
 msgstr "You need to specify an action, e.g. 'update-system'"
 
-#: ../client/pk-console.c:1917
-msgid "You need to specify a correct role"
-msgstr "You need to specify a correct role"
+#. TRANSLATORS: The user specified an invalid action
+#: ../client/pk-console.c:2093
+msgid "A correct role is required"
+msgstr ""
 
-#: ../client/pk-console.c:1922
-msgid "Failed to get last time"
-msgstr "Failed to get last time"
+#. TRANSLATORS: we keep a database updated with the time that an action was last executed
+#: ../client/pk-console.c:2100
+msgid "Failed to get the time since this action was last completed"
+msgstr ""
 
-#: ../client/pk-console.c:1961
-msgid "You need to specify a package to find the details for"
-msgstr "You need to specify a package to find the details for"
+#. TRANSLATORS: The user did not provide a package name
+#. TRANSLATORS: This is when the user fails to supply the package name
+#: ../client/pk-console.c:2110 ../client/pk-console.c:2122
+#: ../client/pk-console.c:2131 ../client/pk-console.c:2149
+#: ../client/pk-console.c:2158 ../client/pk-generate-pack.c:241
+msgid "A package name is required"
+msgstr ""
 
-#: ../client/pk-console.c:1968
-msgid "You need to specify a package to find the files for"
-msgstr "You need to specify a package to find the files for"
+#. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
+#: ../client/pk-console.c:2140
+msgid "A package provide string is required"
+msgstr ""
 
-#: ../client/pk-console.c:1975
-msgid "You need to specify a list file to create"
-msgstr "You need to specify a list file to create"
+#. TRANSLATORS: The user didn't specify a filename to create as a list
+#: ../client/pk-console.c:2167
+msgid "A list file name to create is required"
+msgstr ""
 
-#: ../client/pk-console.c:1983 ../client/pk-console.c:1991
-msgid "You need to specify a list file to open"
-msgstr "You need to specify a list file to open"
+#. TRANSLATORS: The user didn't specify a filename to open as a list
+#: ../client/pk-console.c:2177 ../client/pk-console.c:2187
+msgid "A list file to open is required"
+msgstr ""
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2044
+#: ../client/pk-console.c:2241
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "Option '%s' is not supported"
 
 #. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2057
-msgid "You don't have the necessary privileges for this operation"
+#: ../client/pk-console.c:2254
+#, fuzzy
+msgid "Incorrect privileges for this operation"
 msgstr "You don't have the necessary privileges for this operation"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2060
+#: ../client/pk-console.c:2257
 msgid "Command failed"
 msgstr "Command failed"
 
 #. TRANSLATORS: This is the state of the transaction
-#: ../client/pk-generate-pack.c:100
+#: ../client/pk-generate-pack.c:101
 msgid "Downloading"
 msgstr "Downloading"
 
 #. TRANSLATORS: This is when the main packages are being downloaded
-#: ../client/pk-generate-pack.c:120
+#: ../client/pk-generate-pack.c:121
 msgid "Downloading packages"
 msgstr "Downloading packages"
 
 #. TRANSLATORS: This is when the dependency packages are being downloaded
-#: ../client/pk-generate-pack.c:125
+#: ../client/pk-generate-pack.c:126
 msgid "Downloading dependencies"
 msgstr "Downloading dependencies"
 
-#: ../client/pk-generate-pack.c:186
+#. TRANSLATORS: we can exclude certain packages (glibc) when we know they'll exist on the target
+#: ../client/pk-generate-pack.c:188
 msgid "Set the file name of dependencies to be excluded"
 msgstr "Set the file name of dependencies to be excluded"
 
-#: ../client/pk-generate-pack.c:188
-msgid "The output directory (the current directory is used if ommitted)"
+#. TRANSLATORS: the output location
+#: ../client/pk-generate-pack.c:191
+#, fuzzy
+msgid ""
+"The output file or directory (the current directory is used if ommitted)"
 msgstr "The output directory (the current directory is used if omitted)"
 
-#: ../client/pk-generate-pack.c:190
+#. TRANSLATORS: put a list of packages in the pack
+#: ../client/pk-generate-pack.c:194
 msgid "The package to be put into the service pack"
 msgstr "The package to be put into the service pack"
 
-#: ../client/pk-generate-pack.c:192
+#. TRANSLATORS: put all pending updates in the pack
+#: ../client/pk-generate-pack.c:197
 msgid "Put all updates available in the service pack"
 msgstr "Put all updates available in the service pack"
 
 #. TRANSLATORS: This is when the user fails to supply the correct arguments
-#: ../client/pk-generate-pack.c:220
+#: ../client/pk-generate-pack.c:225
 msgid "Neither --package or --updates option selected."
 msgstr "Neither --package or --updates option selected."
 
 #. TRANSLATORS: This is when the user fails to supply just one argument
-#: ../client/pk-generate-pack.c:228
+#: ../client/pk-generate-pack.c:233
 msgid "Both options selected."
 msgstr "Both options selected."
 
+#. TRANSLATORS: This is when the user fails to supply the output
+#: ../client/pk-generate-pack.c:249
+msgid "A output directory or file name is required"
+msgstr ""
+
+#. TRANSLATORS: This is when the backend doesn't have the capability to get-depends
+#. TRANSLATORS: This is when the backend doesn't have the capability to download
+#: ../client/pk-generate-pack.c:267 ../client/pk-generate-pack.c:273
+msgid "The package manager cannot perform this type of operation."
+msgstr ""
+
+#. TRANSLATORS: This is when the distro didn't include libarchive support into PK
+#: ../client/pk-generate-pack.c:280
+msgid ""
+"Service packs cannot be created as PackageKit was not built with libarchive "
+"support."
+msgstr ""
+
+#. TRANSLATORS: the user specified an absolute path, but didn't get the extension correct
+#: ../client/pk-generate-pack.c:291
+msgid "If specifying a file, the service pack name must end with"
+msgstr ""
+
 #. TRANSLATORS: This is when file already exists
-#: ../client/pk-generate-pack.c:261
+#: ../client/pk-generate-pack.c:307
 msgid "A pack with the same name already exists, do you want to overwrite it?"
 msgstr "A pack with the same name already exists, do you want to overwrite it?"
 
 #. TRANSLATORS: This is when the pack was not overwritten
-#: ../client/pk-generate-pack.c:264
+#: ../client/pk-generate-pack.c:310
 msgid "The pack was not overwritten."
 msgstr "The pack was not overwritten."
 
 #. TRANSLATORS: This is when the temporary directory cannot be created, the directory name follows
-#: ../client/pk-generate-pack.c:276
+#: ../client/pk-generate-pack.c:323
 msgid "Failed to create directory:"
 msgstr "Failed to create directory:"
 
 #. TRANSLATORS: This is when the list of packages from the remote computer cannot be opened
-#: ../client/pk-generate-pack.c:285
+#: ../client/pk-generate-pack.c:333
 msgid "Failed to open package list."
 msgstr "Failed to open package list."
 
 #. TRANSLATORS: The package name is being matched up to available packages
-#: ../client/pk-generate-pack.c:295
+#: ../client/pk-generate-pack.c:344
 msgid "Finding package name."
 msgstr "Finding package name."
 
 #. TRANSLATORS: This is when the package cannot be found in any software source. The detailed error follows
-#: ../client/pk-generate-pack.c:299
+#: ../client/pk-generate-pack.c:348
 #, c-format
 msgid "Failed to find package '%s': %s"
 msgstr "Failed to find package '%s': %s"
 
 #. TRANSLATORS: This is telling the user we are in the process of making the pack
-#: ../client/pk-generate-pack.c:315
+#: ../client/pk-generate-pack.c:365
 msgid "Creating service pack..."
 msgstr "Creating service pack..."
 
 #. TRANSLATORS: we succeeded in making the file
-#: ../client/pk-generate-pack.c:322
+#: ../client/pk-generate-pack.c:372
 #, c-format
 msgid "Service pack created '%s'"
 msgstr "Service pack created '%s'"
 
 #. TRANSLATORS: we failed to make te file
-#: ../client/pk-generate-pack.c:326
+#: ../client/pk-generate-pack.c:377
 #, c-format
 msgid "Failed to create '%s': %s"
 msgstr "Failed to create '%s': %s"
 
-#: ../client/pk-monitor.c:132
+#. TRANSLATORS: this is a program that monitors PackageKit
+#: ../client/pk-monitor.c:146
 msgid "PackageKit Monitor"
 msgstr "PackageKit Monitor"
 
+#: ../client/pk-monitor.c:183
+msgid "Cannot show the list of transactions"
+msgstr ""
+
 #. TRANSLATORS: The package was not found in any software sources
-#: ../client/pk-tools-common.c:114
+#: ../client/pk-tools-common.c:118
+#, c-format
 msgid "The package could not be found"
 msgstr "The package could not be found"
 
 #. TRANSLATORS: more than one package could be found that matched, to follow is a list of possible packages
-#: ../client/pk-tools-common.c:125
+#: ../client/pk-tools-common.c:130
 msgid "More than one package matches:"
 msgstr "More than one package matches:"
 
 #. TRANSLATORS: This finds out which package in the list to use
-#: ../client/pk-tools-common.c:132
+#: ../client/pk-tools-common.c:137
 msgid "Please choose the correct package: "
 msgstr "Please choose the correct package: "
 
-#: ../client/pk-tools-common.c:158
+#: ../client/pk-tools-common.c:162
 #, c-format
 msgid "Please enter a number from 1 to %i: "
 msgstr "Please enter a number from 1 to %i: "
 
 #. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/packagekit-plugin/src/contents.cpp:298
+#: ../contrib/browser-plugin/pk-plugin-install.c:466
 msgid "Getting package information..."
 msgstr "Getting package information..."
 
 #. TRANSLATORS: run an applicaiton
-#: ../contrib/packagekit-plugin/src/contents.cpp:304
+#: ../contrib/browser-plugin/pk-plugin-install.c:472
 #, c-format
 msgid "Run %s"
 msgstr "Run %s"
 
 #. TRANSLATORS: show the installed version of a package
-#: ../contrib/packagekit-plugin/src/contents.cpp:310
+#: ../contrib/browser-plugin/pk-plugin-install.c:478
 msgid "Installed version"
 msgstr "Installed version"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/packagekit-plugin/src/contents.cpp:318
+#: ../contrib/browser-plugin/pk-plugin-install.c:486
 #, c-format
 msgid "Run version %s now"
 msgstr "Run version %s now"
 
-#: ../contrib/packagekit-plugin/src/contents.cpp:324
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:492
 msgid "Run now"
 msgstr "Run now"
 
 #. TRANSLATORS: update to a new version of the package
-#: ../contrib/packagekit-plugin/src/contents.cpp:330
+#: ../contrib/browser-plugin/pk-plugin-install.c:498
 #, c-format
 msgid "Update to version %s"
 msgstr "Update to version %s"
 
 #. TRANSLATORS: To install a package
-#: ../contrib/packagekit-plugin/src/contents.cpp:336
+#: ../contrib/browser-plugin/pk-plugin-install.c:504
 #, c-format
 msgid "Install %s now"
 msgstr "Install %s now"
 
 #. TRANSLATORS: the version of the package
-#: ../contrib/packagekit-plugin/src/contents.cpp:339
+#: ../contrib/browser-plugin/pk-plugin-install.c:507
 msgid "Version"
 msgstr "Version"
 
 #. TRANSLATORS: noting found, so can't install
-#: ../contrib/packagekit-plugin/src/contents.cpp:344
+#: ../contrib/browser-plugin/pk-plugin-install.c:512
 msgid "No packages found for your system"
 msgstr "No packages found for your system"
 
 #. TRANSLATORS: package is being installed
-#: ../contrib/packagekit-plugin/src/contents.cpp:349
+#: ../contrib/browser-plugin/pk-plugin-install.c:517
 msgid "Installing..."
 msgstr "Installing..."
 
+#. TRANSLATORS: downloading repo data so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:349
+msgid "Downloading details about the software sources."
+msgstr ""
+
+#. TRANSLATORS: downloading file lists so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:353
+msgid "Downloading filelists (this may take some time to complete)."
+msgstr ""
+
+#. TRANSLATORS: waiting for native lock
+#: ../contrib/command-not-found/pk-command-not-found.c:357
+#, fuzzy
+msgid "Waiting for package manager lock."
+msgstr "Finding package name."
+
+#. TRANSLATORS: loading package cache so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:361
+#, fuzzy
+msgid "Loading list of packages."
+msgstr "Downloading packages"
+
+#. TRANSLATORS: we failed to find the package, this shouldn't happen
+#: ../contrib/command-not-found/pk-command-not-found.c:420
+#, fuzzy
+msgid "Failed to search for file"
+msgstr "Failed to save to disk"
+
+#. TRANSLATORS: we failed to launch the executable, the error follows
+#: ../contrib/command-not-found/pk-command-not-found.c:557
+#, fuzzy
+msgid "Failed to launch:"
+msgstr "Failed to get last time"
+
+#. TRANSLATORS: tool that gets called when the command is not found
+#: ../contrib/command-not-found/pk-command-not-found.c:632
+#, fuzzy
+msgid "PackageKit Command Not Found"
+msgstr "PackageKit Monitor"
+
+#. TRANSLATORS: the prefix of all the output telling the user why it's not executing
+#: ../contrib/command-not-found/pk-command-not-found.c:658
+#, fuzzy
+msgid "Command not found."
+msgstr "not found."
+
+#. TRANSLATORS: tell the user what we think the command is
+#: ../contrib/command-not-found/pk-command-not-found.c:665
+#, fuzzy
+msgid "Similar command is:"
+msgstr "Subcommands:"
+
+#. TRANSLATORS: Ask the user if we should run the similar command
+#: ../contrib/command-not-found/pk-command-not-found.c:674
+msgid "Run similar command:"
+msgstr ""
+
+#. TRANSLATORS: show the user a list of commands that they could have meant
+#. TRANSLATORS: show the user a list of commands we could run
+#: ../contrib/command-not-found/pk-command-not-found.c:686
+#: ../contrib/command-not-found/pk-command-not-found.c:695
+#, fuzzy
+msgid "Similar commands are:"
+msgstr "Subcommands:"
+
+#. TRANSLATORS: ask the user to choose a file to run
+#: ../contrib/command-not-found/pk-command-not-found.c:702
+msgid "Please choose a command to run"
+msgstr ""
+
+#. TRANSLATORS: tell the user what package provides the command
+#: ../contrib/command-not-found/pk-command-not-found.c:721
+#, fuzzy
+msgid "The package providing this file is:"
+msgstr "The package %s is already installed"
+
+#. TRANSLATORS: as the user if we want to install a package to provide the command
+#: ../contrib/command-not-found/pk-command-not-found.c:726
+#, c-format
+msgid "Install package '%s' to provide command '%s'?"
+msgstr ""
+
+#. TRANSLATORS: Show the user a list of packages that provide this command
+#: ../contrib/command-not-found/pk-command-not-found.c:747
+msgid "Packages providing this file are:"
+msgstr ""
+
+#. TRANSLATORS: Show the user a list of packages that they can install to provide this command
+#: ../contrib/command-not-found/pk-command-not-found.c:756
+msgid "Suitable packages are:"
+msgstr ""
+
+#. get selection
+#. TRANSLATORS: ask the user to choose a file to install
+#: ../contrib/command-not-found/pk-command-not-found.c:764
+#, fuzzy
+msgid "Please choose a package to install"
+msgstr "Please choose the correct package: "
+
+#. TRANSLATORS: we are starting to install the packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:187
+#, fuzzy
+msgid "Starting install"
+msgstr "To install"
+
+#. TRANSLATORS: we couldn't find the package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:397
+#, fuzzy, c-format
+msgid "Failed to find the package %s, or already installed: %s"
+msgstr "The package %s is already installed"
+
+#. command line argument, simulate what would be done, but don't actually do it
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:553
+msgid ""
+"Don't actually install any packages, only simulate what would be installed"
+msgstr ""
+
+#. command line argument, do we skip packages that depend on the ones specified
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:556
+msgid "Do not install dependencies of the core packages"
+msgstr ""
+
+#. command line argument, do we operate quietly
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:559
+msgid "Do not display information or progress"
+msgstr ""
+
+#. TRANSLATORS: tool that gets called when the command is not found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:577
+#, fuzzy
+msgid "PackageKit Debuginfo Installer"
+msgstr "PackageKit Console Interface"
+
+#. TRANSLATORS: the use needs to specify a list of package names on the command line
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:589
+#, fuzzy, c-format
+msgid "ERROR: Specify package names to install."
+msgstr "You need to specify a package or file to install"
+
+#. TRANSLATORS: we are getting the list of repositories
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:623
+#, fuzzy, c-format
+msgid "Getting sources list"
+msgstr "Getting package list"
+
+#. TRANSLATORS: all completed 100%
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:641
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:681
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:716
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:800
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:844
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:911
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:955
+#, c-format
+msgid "OK."
+msgstr ""
+
+#. TRANSLATORS: tell the user what we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:644
+#, c-format
+msgid "Found %i enabled and %i disabled sources."
+msgstr ""
+
+#. TRANSLATORS: we're finding repositories that match out pattern
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:651
+#, c-format
+msgid "Finding debugging sources"
+msgstr ""
+
+#. TRANSLATORS: tell the user what we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:684
+#, c-format
+msgid "Found %i disabled debuginfo repos."
+msgstr ""
+
+#. TRANSLATORS: we're now enabling all the debug sources we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:691
+#, c-format
+msgid "Enabling debugging sources"
+msgstr ""
+
+#. TRANSLATORS: operation was not successful
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:701
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:785
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:829
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:896
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:940
+msgid "FAILED."
+msgstr ""
+
+#. TRANSLATORS: tell the user how many we enabled
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:719
+#, c-format
+msgid "Enabled %i debugging sources."
+msgstr ""
+
+#. TRANSLATORS: we're now finding packages that match in all the repos
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:726
+#, fuzzy, c-format
+msgid "Finding debugging packages"
+msgstr "Finding package name."
+
+#. TRANSLATORS: we couldn't find the package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:738
+#, fuzzy, c-format
+msgid "Failed to find the package %s: %s"
+msgstr "Failed to find package '%s': %s"
+
+#. TRANSLATORS: we couldn't find the debuginfo package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:761
+#, fuzzy, c-format
+msgid "Failed to find the debuginfo package %s: %s"
+msgstr "Failed to find package '%s': %s"
+
+#. TRANSLATORS: no debuginfo packages could be found to be installed
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:789
+#, fuzzy, c-format
+msgid "Found no packages to install."
+msgstr "No new packages need to be installed"
+
+#. TRANSLATORS: tell the user we found some packages, and then list them
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:803
+#, fuzzy, c-format
+msgid "Found %i packages:"
+msgstr "Downloading packages"
+
+#. TRANSLATORS: tell the user we are searching for deps
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:819
+#, c-format
+msgid "Finding packages that depend on these packages"
+msgstr ""
+
+#. TRANSLATORS: could not install, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:832
+#, fuzzy, c-format
+msgid "Could not find dependant packages: %s"
+msgstr "Failed to find package '%s': %s"
+
+#. TRANSLATORS: tell the user we found some more packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:848
+#, c-format
+msgid "Found %i extra packages."
+msgstr ""
+
+#. TRANSLATORS: tell the user we found some more packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:852
+#, c-format
+msgid "No extra packages required."
+msgstr ""
+
+#. TRANSLATORS: tell the user we found some packages (and deps), and then list them
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:861
+#, fuzzy, c-format
+msgid "Found %i packages to install:"
+msgstr "No new packages need to be installed"
+
+#. TRANSLATORS: simulate mode is a testing mode where we quit before the action
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:874
+#, fuzzy, c-format
+msgid "Not installing packages in simulate mode"
+msgstr "Installing packages"
+
+#. TRANSLATORS: could not install, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:899
+#, fuzzy, c-format
+msgid "Could not install packages: %s"
+msgstr "This tool could not install the packages: %s"
+
+#. TRANSLATORS: we are now disabling all debuginfo repos we previously enabled
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:931
+#, c-format
+msgid "Disabling sources previously enabled"
+msgstr ""
+
+#. TRANSLATORS: no debuginfo packages could be found to be installed, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:943
+#, c-format
+msgid "Could not disable the debugging sources: %s"
+msgstr ""
+
+#. TRANSLATORS: we disabled all the debugging repos that we enabled before
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:958
+#, c-format
+msgid "Disabled %i debugging sources."
+msgstr ""
+
+#. TRANSLATORS: couldn't open device to write
+#: ../contrib/device-rebind/pk-device-rebind.c:61
+#, fuzzy
+msgid "Failed to open file"
+msgstr "Failed to open package list."
+
+#. TRANSLATORS: could not write to the device
+#: ../contrib/device-rebind/pk-device-rebind.c:70
+#, fuzzy
+msgid "Failed to write to the file"
+msgstr "Failed to get last time"
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:110
+#: ../contrib/device-rebind/pk-device-rebind.c:147
+#, fuzzy
+msgid "Failed to write to device"
+msgstr "Failed to save to disk"
+
+#. TRANSLATORS: the device could not be found in sysfs
+#: ../contrib/device-rebind/pk-device-rebind.c:175
+#, fuzzy
+msgid "Device could not be found"
+msgstr "The package could not be found"
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:202
+#, fuzzy
+msgid "Failed to unregister driver"
+msgstr "Failed to create directory:"
+
+#. TRANSLATORS: we failed to bind the old driver
+#: ../contrib/device-rebind/pk-device-rebind.c:211
+#, fuzzy
+msgid "Failed to register driver"
+msgstr "Failed to create directory:"
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:260
+#, fuzzy
+msgid "Device path not found"
+msgstr "Directory not found"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:268
+msgid "Incorrect device path specified"
+msgstr ""
+
+#. command line argument, simulate what would be done, but don't actually do it
+#: ../contrib/device-rebind/pk-device-rebind.c:296
+msgid "Don't actually touch the hardware, only simulate what would be done"
+msgstr ""
+
+#. TRANSLATORS: command line option: a list of files to install
+#: ../contrib/device-rebind/pk-device-rebind.c:299
+msgid "Device paths"
+msgstr ""
+
+#. TRANSLATORS: tool that gets called when the device needs reloading after installing firmware
+#: ../contrib/device-rebind/pk-device-rebind.c:314
+#, fuzzy
+msgid "PackageKit Device Reloader"
+msgstr "PackageKit Service Pack"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:322
+#, fuzzy
+msgid "You need to specify at least one valid device path"
+msgstr "You need to specify a list file to create"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:332
+msgid "This script can only be used by the root user"
+msgstr ""
+
+#. TRANSLATORS: we're going to verify the path first
+#: ../contrib/device-rebind/pk-device-rebind.c:341
+msgid "Verifying device path"
+msgstr ""
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:346
+#, fuzzy
+msgid "Failed to verify device path"
+msgstr "Failed to save to disk"
+
+#. TRANSLATORS: we're going to try
+#: ../contrib/device-rebind/pk-device-rebind.c:360
+msgid "Attempting to rebind device"
+msgstr ""
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:365
+#, fuzzy
+msgid "Failed to rebind device"
+msgstr "Failed to create directory:"
+
 #: ../data/packagekit-catalog.xml.in.h:1
 msgid "PackageKit Catalog"
 msgstr "PackageKit Catalog"
 
+#: ../data/packagekit-package-list.xml.in.h:1
+msgid "PackageKit Package List"
+msgstr "PackageKit Package List"
+
 #: ../data/packagekit-servicepack.xml.in.h:1
 msgid "PackageKit Service Pack"
 msgstr "PackageKit Service Pack"
 
-#: ../data/packagekit-package-list.xml.in.h:1
-msgid "PackageKit Package List"
-msgstr "PackageKit Package List"
+#. SECURITY:
+#. - Normal users do not require admin authentication to accept new
+#. licence agreements.
+#. - Change this to 'auth_admin' for environments where users should not
+#. be given the option to make legal decisions.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:7
+msgid "Accept EULA"
+msgstr ""
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:8
+msgid "Authentication is required to accept a EULA"
+msgstr ""
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:9
+msgid ""
+"Authentication is required to cancel a task that was not started by yourself"
+msgstr ""
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:10
+msgid "Authentication is required to change software source parameters"
+msgstr ""
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:11
+msgid ""
+"Authentication is required to consider a key used for signing packages as "
+"trusted"
+msgstr ""
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:12
+msgid "Authentication is required to install a signed package"
+msgstr ""
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:13
+msgid "Authentication is required to install an untrusted package"
+msgstr ""
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:14
+msgid "Authentication is required to refresh the system sources"
+msgstr ""
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:15
+msgid "Authentication is required to reload the device with a new driver"
+msgstr ""
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:16
+msgid "Authentication is required to remove packages"
+msgstr ""
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:17
+msgid "Authentication is required to rollback a transaction"
+msgstr ""
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:18
+msgid ""
+"Authentication is required to set the network proxy used for downloading "
+"packages"
+msgstr ""
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:19
+msgid "Authentication is required to update packages"
+msgstr ""
+
+#. SECURITY:
+#. - Normal users are allowed to cancel their own task without
+#. authentication, but a different user id needs the admin password
+#. to cancel another users task.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:25
+msgid "Cancel foreign task"
+msgstr ""
+
+#. SECURITY:
+#. - Normal users require admin authentication to enable or disable
+#. software sources as this can be used to enable new updates or
+#. install different versions of software.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:31
+msgid "Change software source parameters"
+msgstr ""
+
+#. SECURITY:
+#. - Normal users do not need authentication to install signed packages
+#. from signed repositories, as this cannot exploit a system.
+#. - Paranoid users (or parents!) can change this to 'auth_admin' or
+#. 'auth_admin_keep'.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:38
+#, fuzzy
+msgid "Install signed package"
+msgstr "Installing packages"
+
+#. SECURITY:
+#. - Normal users require admin authentication to install untrusted or
+#. unrecognised packages, as allowing users to do this without a
+#. password would be a massive security hole.
+#. - This is not retained as each package should be authenticated.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:45
+msgid "Install untrusted local file"
+msgstr ""
 
-#: ../src/pk-main.c:86
+#. SECURITY:
+#. - Normal users do not require admin authentication to refresh the
+#. cache, as this doesn't actually install or remove software.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:50
+msgid "Refresh system sources"
+msgstr ""
+
+#. SECURITY:
+#. - Normal users require admin authentication to rebind a driver
+#. so that it works after we install firmware.
+#. - This should not be set to 'yes' as unprivileged users could then
+#. try to rebind drivers in use, for instance security authentication
+#. devices.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:58
+msgid "Reload a device"
+msgstr ""
+
+#. SECURITY:
+#. - Normal users require admin authentication to remove packages as
+#. this can make the system unbootable or stop other applications from
+#. working.
+#. - Be sure to close the tool used to remove the packages after the
+#. admin authentication has been obtained, otherwise packages can still
+#. be removed. If this is not possible, change this authentication to
+#. 'auth_admin'.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:68
+msgid "Remove package"
+msgstr ""
+
+#. SECURITY:
+#. - Normal users require admin authentication to rollback system state
+#. as this will change a large number of packages, and could expose the
+#. system to previously patched security vulnerabilities.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:74
+msgid "Rollback to a previous transaction"
+msgstr ""
+
+#. SECURITY:
+#. - Normal users do not require admin authentication to set the proxy
+#. used for downloading packages.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:79
+msgid "Set network proxy"
+msgstr ""
+
+#. SECURITY:
+#. - Normal users require admin authentication to add signing keys.
+#. - This implies adding an explicit trust, and should not be granted
+#. without a secure authentication.
+#. - This is not kept as each package should be authenticated.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:86
+msgid "Trust a key used for signing packages"
+msgstr ""
+
+#. SECURITY:
+#. - Normal users do not require admin authentication to update the
+#. system as the packages will be signed, and the action is required
+#. to update the system when unattended.
+#. - Changing this to anything other than 'yes' will break unattended
+#. updates.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:94
+msgid "Update packages"
+msgstr ""
+
+#. TRANSLATORS: failed due to DBus security
+#: ../src/pk-main.c:87
 msgid "Startup failed due to security policies on this machine."
 msgstr "Startup failed due to security policies on this machine."
 
-#: ../src/pk-main.c:87
+#. TRANSLATORS: only two ways this can fail...
+#: ../src/pk-main.c:89
 msgid "This can happen for two reasons:"
 msgstr "This can happen for two reasons:"
 
-#: ../src/pk-main.c:88
+#. TRANSLATORS: only allowed to be owned by root
+#: ../src/pk-main.c:91
 msgid "The correct user is not launching the executable (usually root)"
 msgstr "The correct user is not launching the executable (usually root)"
 
-#: ../src/pk-main.c:89
+#. TRANSLATORS: or we are installed in a prefix
+#: ../src/pk-main.c:93
 msgid ""
 "The org.freedesktop.PackageKit.conf file is not installed in the system "
 "directory:"
@@ -612,40 +1484,116 @@ msgstr ""
 "The org.freedesktop.PackageKit.conf file is not installed in the system "
 "directory:"
 
-#: ../src/pk-main.c:187
+#. TRANSLATORS: a backend is the system package tool, e.g. yum, apt
+#: ../src/pk-main.c:205
 msgid "Packaging backend to use, e.g. dummy"
 msgstr "Packaging backend to use, e.g. dummy"
 
-#: ../src/pk-main.c:189
+#. TRANSLATORS: if we should run in the background
+#: ../src/pk-main.c:208
 msgid "Daemonize and detach from the terminal"
 msgstr "Daemonize and detach from the terminal"
 
-#: ../src/pk-main.c:193
+#. TRANSLATORS: if we should not monitor how long we are inactive for
+#: ../src/pk-main.c:214
 msgid "Disable the idle timer"
 msgstr "Disable the idle timer"
 
-#: ../src/pk-main.c:195
+#. TRANSLATORS: show version
+#: ../src/pk-main.c:217
 msgid "Show version and exit"
 msgstr "Show version and exit"
 
-#: ../src/pk-main.c:197
+#. TRANSLATORS: exit after we've started up, used for user profiling
+#: ../src/pk-main.c:220
 msgid "Exit after a small delay"
 msgstr "Exit after a small delay"
 
-#: ../src/pk-main.c:199
+#. TRANSLATORS: exit straight away, used for automatic profiling
+#: ../src/pk-main.c:223
 msgid "Exit after the engine has loaded"
 msgstr "Exit after the engine has loaded"
 
-#: ../src/pk-main.c:213
+#. TRANSLATORS: describing the service that is running
+#: ../src/pk-main.c:238
 msgid "PackageKit service"
 msgstr "PackageKit service"
 
-#: ../src/pk-main.c:249
+#. TRANSLATORS: fatal error, dbus is not running
+#: ../src/pk-main.c:275
 msgid "Cannot connect to the system bus"
 msgstr "Cannot connect to the system bus"
 
-#: ../src/pk-main.c:298
-#, c-format
+#. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error follows
+#: ../src/pk-main.c:334
 msgid "Error trying to start:"
 msgstr "Error trying to start:"
 
+#: ../src/pk-polkit-action-lookup.c:147
+#, fuzzy
+msgid "To install debugging packages, extra sources need to be enabled"
+msgstr "No new packages need to be installed"
+
+#. TRANSLATORS: is not GPG signed
+#: ../src/pk-polkit-action-lookup.c:168 ../src/pk-polkit-action-lookup.c:187
+msgid "The software is not from a trusted source."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:173
+msgid "Do not update this package unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:174
+msgid "Do not update these packages unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:192
+msgid "Do not install this package unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:193
+msgid "Do not install these packages unless you are sure it is safe to do so."
+msgstr ""
+
+#. TRANSLATORS: warn the user that all bets are off
+#: ../src/pk-polkit-action-lookup.c:199
+msgid "Malicious software can damage your computer or cause other harm."
+msgstr ""
+
+#. TRANSLATORS: too many packages to list each one
+#: ../src/pk-polkit-action-lookup.c:274
+#, fuzzy
+msgid "Many packages"
+msgstr "Installing packages"
+
+#. TRANSLATORS: if the transaction is forced to install only trusted packages
+#: ../src/pk-polkit-action-lookup.c:334
+msgid "Only trusted"
+msgstr ""
+
+#~ msgid "You need to specify a search type, e.g. name"
+#~ msgstr "You need to specify a search type, e.g. name"
+
+#~ msgid "You need to specify a search term"
+#~ msgstr "You need to specify a search term"
+
+#~ msgid "You need to specify a package to remove"
+#~ msgstr "You need to specify a package to remove"
+
+#~ msgid "You need to specify a package name to resolve"
+#~ msgstr "You need to specify a package name to resolve"
+
+#~ msgid "You need to specify a repository name"
+#~ msgstr "You need to specify a repository name"
+
+#~ msgid "You need to specify a correct role"
+#~ msgstr "You need to specify a correct role"
+
+#~ msgid "You need to specify a package to find the details for"
+#~ msgstr "You need to specify a package to find the details for"
+
+#~ msgid "You need to specify a package to find the files for"
+#~ msgstr "You need to specify a package to find the files for"
+
+#~ msgid "You need to specify a list file to open"
+#~ msgstr "You need to specify a list file to open"
diff --git a/po/es.po b/po/es.po
index 1fe85c0..43be14d 100644
--- a/po/es.po
+++ b/po/es.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: packagekit\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-08-23 08:29+0000\n"
+"POT-Creation-Date: 2009-08-24 11:06+0100\n"
 "PO-Revision-Date: 2009-08-23 10:38-0300\n"
 "Last-Translator: Domingo Becker <domingobecker at gmail.com>\n"
 "Language-Team: Fedora Spanish <fedora-trans-es at redhat.com>\n"
@@ -20,688 +20,673 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
 #. TRANSLATORS: this is an atomic transaction
-#: ../client/pk-console.c:231
+#: ../client/pk-console.c:235
 msgid "Transaction"
 msgstr "Transacción"
 
 #. TRANSLATORS: this is the time the transaction was started in system timezone
-#: ../client/pk-console.c:233
+#: ../client/pk-console.c:237
 msgid "System time"
 msgstr "Hora del sistema"
 
 #. TRANSLATORS: this is if the transaction succeeded or not
-#: ../client/pk-console.c:235
+#: ../client/pk-console.c:239
 msgid "Succeeded"
 msgstr "Existosa"
 
 #. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:235
-#: ../client/pk-console.c:402
+#: ../client/pk-console.c:239 ../client/pk-console.c:406
 msgid "True"
 msgstr "Verdadero"
 
-#: ../client/pk-console.c:235
-#: ../client/pk-console.c:402
+#: ../client/pk-console.c:239 ../client/pk-console.c:406
 msgid "False"
 msgstr "Falso"
 
 #. TRANSLATORS: this is the transactions role, e.g. "update-system"
 #. TRANSLATORS: the trasaction role, e.g. update-system
-#: ../client/pk-console.c:237
-#: ../src/pk-polkit-action-lookup.c:327
+#: ../client/pk-console.c:241 ../src/pk-polkit-action-lookup.c:327
 msgid "Role"
 msgstr "Rol"
 
 #. TRANSLATORS: this is The duration of the transaction
-#: ../client/pk-console.c:242
+#: ../client/pk-console.c:246
 msgid "Duration"
 msgstr "Duración"
 
-#: ../client/pk-console.c:242
+#: ../client/pk-console.c:246
 msgid "(seconds)"
 msgstr "(segundos)"
 
 #. TRANSLATORS: this is The command line used to do the action
 #. TRANSLATORS: the command line of the thing that wants the authentication
-#: ../client/pk-console.c:246
-#: ../src/pk-polkit-action-lookup.c:341
+#: ../client/pk-console.c:250 ../src/pk-polkit-action-lookup.c:341
 msgid "Command line"
 msgstr "Línea de comandos"
 
 #. TRANSLATORS: this is the user ID of the user that started the action
-#: ../client/pk-console.c:248
+#: ../client/pk-console.c:252
 msgid "User ID"
 msgstr "ID del usuario"
 
 #. TRANSLATORS: this is the username, e.g. hughsie
-#: ../client/pk-console.c:255
+#: ../client/pk-console.c:259
 msgid "Username"
 msgstr "Nombre de usuario"
 
 #. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
-#: ../client/pk-console.c:259
+#: ../client/pk-console.c:263
 msgid "Real name"
 msgstr "Nombre real"
 
-#: ../client/pk-console.c:267
+#: ../client/pk-console.c:271
 msgid "Affected packages:"
 msgstr "Paquete afectados:"
 
-#: ../client/pk-console.c:269
+#: ../client/pk-console.c:273
 msgid "Affected packages: None"
 msgstr "Paquetes afectados: Ninguno"
 
 #. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:294
+#: ../client/pk-console.c:298
 msgid "Distribution"
 msgstr "Distribución"
 
 #. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:296
+#: ../client/pk-console.c:300
 msgid "Type"
 msgstr "Tipo"
 
 #. TRANSLATORS: this is any summary text describing the upgrade
 #. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:298
-#: ../client/pk-console.c:321
+#: ../client/pk-console.c:302 ../client/pk-console.c:325
 msgid "Summary"
 msgstr "Resúmen"
 
 #. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:310
+#: ../client/pk-console.c:314
 msgid "Category"
 msgstr "Categoría"
 
 #. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:312
+#: ../client/pk-console.c:316
 msgid "ID"
 msgstr "ID"
 
 #. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:315
+#: ../client/pk-console.c:319
 msgid "Parent"
 msgstr "Padre"
 
 #. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:318
+#: ../client/pk-console.c:322
 msgid "Name"
 msgstr "Nombre"
 
 #. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:324
+#: ../client/pk-console.c:328
 msgid "Icon"
 msgstr "Icono"
 
 #. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:339
+#: ../client/pk-console.c:343
 msgid "Details about the update:"
 msgstr "Detalles acerca de la actualización:"
 
 #. TRANSLATORS: details about the update, package name and version
 #. TRANSLATORS: title, the names of the packages that the method is processing
-#: ../client/pk-console.c:341
-#: ../src/pk-polkit-action-lookup.c:352
+#: ../client/pk-console.c:345 ../src/pk-polkit-action-lookup.c:352
 msgid "Package"
 msgid_plural "Packages"
 msgstr[0] "Paquete"
 msgstr[1] "Paquetes"
 
 #. TRANSLATORS: details about the update, any packages that this update updates
-#: ../client/pk-console.c:344
+#: ../client/pk-console.c:348
 msgid "Updates"
 msgstr "Actualizaciones"
 
 #. TRANSLATORS: details about the update, any packages that this update obsoletes
-#: ../client/pk-console.c:348
+#: ../client/pk-console.c:352
 msgid "Obsoletes"
 msgstr "Sustituye"
 
 #. TRANSLATORS: details about the update, the vendor URLs
-#: ../client/pk-console.c:352
+#: ../client/pk-console.c:356
 msgid "Vendor"
 msgstr "Fabricante"
 
 #. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:356
+#: ../client/pk-console.c:360
 msgid "Bugzilla"
 msgstr "Bugzilla"
 
 #. TRANSLATORS: details about the update, the CVE URLs
-#: ../client/pk-console.c:360
+#: ../client/pk-console.c:364
 msgid "CVE"
 msgstr "CVE"
 
 #. TRANSLATORS: details about the update, if the package requires a restart
-#: ../client/pk-console.c:364
+#: ../client/pk-console.c:368
 msgid "Restart"
 msgstr "Reiniciar"
 
 #. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:368
+#: ../client/pk-console.c:372
 msgid "Update text"
 msgstr "Texto de actualización"
 
 #. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:372
+#: ../client/pk-console.c:376
 msgid "Changes"
 msgstr "Cambios"
 
 #. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:376
+#: ../client/pk-console.c:380
 msgid "State"
 msgstr "Estado"
 
 #. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:381
+#: ../client/pk-console.c:385
 msgid "Issued"
 msgstr "Emitido"
 
 #. TRANSLATORS: details about the update, date the update was updated
-#: ../client/pk-console.c:386
+#: ../client/pk-console.c:390
 msgid "Updated"
 msgstr "Actualizado"
 
-#: ../client/pk-console.c:473
-#: ../client/pk-console.c:475
+#: ../client/pk-console.c:477 ../client/pk-console.c:479
 msgid "Percentage"
 msgstr "Porcentaje"
 
-#: ../client/pk-console.c:475
+#: ../client/pk-console.c:479
 msgid "Unknown"
 msgstr "Desconocido"
 
 #. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:517
+#: ../client/pk-console.c:521
 msgid "System restart required by:"
 msgstr "Se necesita reiniciar el sistema debido a:"
 
 #. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:520
+#: ../client/pk-console.c:524
 msgid "Session restart required:"
 msgstr "Se necesita reiniciar la sesión:"
 
 #. TRANSLATORS: a package requires the system to be restarted due to a security update
-#: ../client/pk-console.c:523
+#: ../client/pk-console.c:527
 msgid "System restart (security) required by:"
 msgstr "Reinicio del sistema (seguridad) solicitado por:"
 
 #. TRANSLATORS: a package requires the session to be restarted due to a security update
-#: ../client/pk-console.c:526
+#: ../client/pk-console.c:530
 msgid "Session restart (security) required:"
 msgstr "Reinicio de la sesión (seguridad) solicitado por:"
 
 #. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:529
+#: ../client/pk-console.c:533
 msgid "Application restart required by:"
 msgstr "Se necesita reiniciar una aplicación debido a:"
 
 #. TRANSLATORS: a package needs to restart their system
-#: ../client/pk-console.c:584
+#: ../client/pk-console.c:588
 msgid "Please restart the computer to complete the update."
 msgstr "Reinicie el equipo para completar la actualización."
 
 #. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:587
+#: ../client/pk-console.c:591
 msgid "Please logout and login to complete the update."
 msgstr "Cierre la sesión y vuelva a entrar para completar la actualización."
 
 #. TRANSLATORS: a package needs to restart the application
-#: ../client/pk-console.c:590
+#: ../client/pk-console.c:594
 msgid "Please restart the application as it is being used."
 msgstr "Reinicie la aplicación que está usando."
 
 #. TRANSLATORS: a package needs to restart their system (due to security)
-#: ../client/pk-console.c:593
-msgid "Please restart the computer to complete the update as important security updates have been installed."
-msgstr "Por favor, reinicie el equipo para completar la actualización, ya que se han instalado actualizaciones de seguridad importantes."
+#: ../client/pk-console.c:597
+msgid ""
+"Please restart the computer to complete the update as important security "
+"updates have been installed."
+msgstr ""
+"Por favor, reinicie el equipo para completar la actualización, ya que se han "
+"instalado actualizaciones de seguridad importantes."
 
 #. TRANSLATORS: a package needs to restart the session (due to security)
-#: ../client/pk-console.c:596
-msgid "Please logout and login to complete the update as important security updates have been installed."
-msgstr "Por favor, cierre la sesión y vuelva a registrarse para completar la actualización, ya que se han instalado actualizaciones de seguridad importantes."
+#: ../client/pk-console.c:600
+msgid ""
+"Please logout and login to complete the update as important security updates "
+"have been installed."
+msgstr ""
+"Por favor, cierre la sesión y vuelva a registrarse para completar la "
+"actualización, ya que se han instalado actualizaciones de seguridad "
+"importantes."
 
 #. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:723
+#: ../client/pk-console.c:727
 #, c-format
 msgid "The package %s is already installed"
 msgstr "El paquete %s ya está instalado"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:731
+#: ../client/pk-console.c:735
 #, c-format
 msgid "The package %s could not be installed: %s"
 msgstr "No se pudo instalar el paquete %s: %s"
 
 #. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
-#: ../client/pk-console.c:756
-#: ../client/pk-console.c:779
-#: ../client/pk-console.c:875
-#: ../client/pk-console.c:992
-#: ../client/pk-tools-common.c:62
-#: ../client/pk-tools-common.c:81
+#: ../client/pk-console.c:760 ../client/pk-console.c:783
+#: ../client/pk-console.c:879 ../client/pk-console.c:996
+#: ../client/pk-tools-common.c:62 ../client/pk-tools-common.c:81
 #: ../client/pk-tools-common.c:89
 #, c-format
 msgid "Internal error: %s"
 msgstr "Error interno: %s"
 
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:764
-#: ../client/pk-console.c:1388
+#: ../client/pk-console.c:768 ../client/pk-console.c:1392
 #, c-format
 msgid "This tool could not install the packages: %s"
 msgstr "Esta herramienta no pudo instalar los paquetes: %s"
 
 #. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:787
+#: ../client/pk-console.c:791
 #, c-format
 msgid "This tool could not install the files: %s"
 msgstr "Esta herramienta no pudo instalar los archivos: %s"
 
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:843
+#: ../client/pk-console.c:847
 #, c-format
 msgid "This tool could not remove %s: %s"
 msgstr "Esta herramienta no pudo eliminar %s: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:866
-#: ../client/pk-console.c:904
-#: ../client/pk-console.c:937
+#: ../client/pk-console.c:870 ../client/pk-console.c:908
+#: ../client/pk-console.c:941
 #, c-format
 msgid "This tool could not remove the packages: %s"
 msgstr "Esta herramienta no pudo eliminar los paquetes: %s"
 
 #. TRANSLATORS: When removing, we might have to remove other dependencies
-#: ../client/pk-console.c:916
+#: ../client/pk-console.c:920
 msgid "The following packages have to be removed:"
 msgstr "Se eliminarán los siguientes paquetes:"
 
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:923
+#: ../client/pk-console.c:927
 msgid "Proceed removing additional packages?"
 msgstr "¿Proceder con la eliminación de los paquetes adicionales?"
 
 #. TRANSLATORS: We did not remove any packages
-#: ../client/pk-console.c:928
+#: ../client/pk-console.c:932
 msgid "The package removal was canceled!"
 msgstr "Se canceló la eliminación de paquetes"
 
 #. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:969
+#: ../client/pk-console.c:973
 #, c-format
 msgid "This tool could not download the package %s as it could not be found"
-msgstr "Esta herramienta no pudo descargar el paquete %s debido a que no se encontró"
+msgstr ""
+"Esta herramienta no pudo descargar el paquete %s debido a que no se encontró"
 
 #. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:1000
+#: ../client/pk-console.c:1004
 #, c-format
 msgid "This tool could not download the packages: %s"
 msgstr "Esta herramienta no pudo descargar los paquetes: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1027
-#: ../client/pk-console.c:1036
+#: ../client/pk-console.c:1031 ../client/pk-console.c:1040
 #, c-format
 msgid "This tool could not update %s: %s"
 msgstr "Esta herramienta no pudo actualizar %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1058
-#: ../client/pk-console.c:1066
+#: ../client/pk-console.c:1062 ../client/pk-console.c:1070
 #, c-format
 msgid "This tool could not get the requirements for %s: %s"
 msgstr "Esta herramienta no pudo obtener los requerimientos de %s: %s"
 
 #. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:1088
-#: ../client/pk-console.c:1096
+#: ../client/pk-console.c:1092 ../client/pk-console.c:1100
 #, c-format
 msgid "This tool could not get the dependencies for %s: %s"
 msgstr "Esta herramienta no pudo obtener las dependencias de %s: %s"
 
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:1118
-#: ../client/pk-console.c:1126
+#: ../client/pk-console.c:1122 ../client/pk-console.c:1130
 #, c-format
 msgid "This tool could not get package details for %s: %s"
 msgstr "Esta herramienta no pudo obtener los detalles del paquete %s: %s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1148
+#: ../client/pk-console.c:1152
 #, c-format
 msgid "This tool could not find the files for %s: %s"
 msgstr "Esta herramienta no pudo encontrar los archivos de %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1156
+#: ../client/pk-console.c:1160
 #, c-format
 msgid "This tool could not get the file list for %s: %s"
 msgstr "Esta herramienta no pudo obtener la lista de archivos de %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of packages. The filename follows
-#: ../client/pk-console.c:1178
+#: ../client/pk-console.c:1182
 #, c-format
 msgid "File already exists: %s"
 msgstr "El archivo ya existe: %s"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1183
-#: ../client/pk-console.c:1239
-#: ../client/pk-console.c:1314
+#: ../client/pk-console.c:1187 ../client/pk-console.c:1243
+#: ../client/pk-console.c:1318
 msgid "Getting package list"
 msgstr "Obteniendo la lista de paquetes"
 
 #. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1189
-#: ../client/pk-console.c:1245
-#: ../client/pk-console.c:1320
+#: ../client/pk-console.c:1193 ../client/pk-console.c:1249
+#: ../client/pk-console.c:1324
 #, c-format
 msgid "This tool could not get package list: %s"
 msgstr "Esta herramienta no pudo obtener la lista de paquetes: %s"
 
 #. TRANSLATORS: There was an error saving the list
-#: ../client/pk-console.c:1200
+#: ../client/pk-console.c:1204
 #, c-format
 msgid "Failed to save to disk"
 msgstr "Falló al guardar en el disco"
 
 #. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1234
-#: ../client/pk-console.c:1309
+#: ../client/pk-console.c:1238 ../client/pk-console.c:1313
 #, c-format
 msgid "File does not exist: %s"
 msgstr "El archivo no existe: %s"
 
 #. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1266
+#: ../client/pk-console.c:1270
 msgid "Packages to add"
 msgstr "Paquetes para añadir"
 
 #. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1274
+#: ../client/pk-console.c:1278
 msgid "Packages to remove"
 msgstr "Paquetes para eliminar"
 
 #. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1342
+#: ../client/pk-console.c:1346
 #, c-format
 msgid "No new packages need to be installed"
 msgstr "No hay paquetes nuevos para instalar"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1348
+#: ../client/pk-console.c:1352
 msgid "To install"
 msgstr "Para instalar"
 
 #. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1360
+#: ../client/pk-console.c:1364
 msgid "Searching for package: "
 msgstr "Buscando el paquete: "
 
 #. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1364
+#: ../client/pk-console.c:1368
 msgid "not found."
 msgstr "no encontrado."
 
 #. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1375
+#: ../client/pk-console.c:1379
 #, c-format
 msgid "No packages can be found to install"
 msgstr "No se encontró ningún paquete para instalar"
 
 #. TRANSLATORS: installing new packages from package list
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
-#: ../client/pk-console.c:1381
+#: ../client/pk-console.c:1385
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:886
 #, c-format
 msgid "Installing packages"
 msgstr "Instalando paquetes"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1417
+#: ../client/pk-console.c:1421
 #, c-format
 msgid "This tool could not find the update details for %s: %s"
-msgstr "Esta herramienta no pudo encontrar los detalles de actualización de %s: %s"
+msgstr ""
+"Esta herramienta no pudo encontrar los detalles de actualización de %s: %s"
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1425
+#: ../client/pk-console.c:1429
 #, c-format
 msgid "This tool could not get the update details for %s: %s"
-msgstr "Esta herramienta no pudo obtener los detalles de actualización de %s: %s"
+msgstr ""
+"Esta herramienta no pudo obtener los detalles de actualización de %s: %s"
 
 #. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
-#: ../client/pk-console.c:1456
+#: ../client/pk-console.c:1460
 msgid "Error:"
 msgstr "Error:"
 
 #. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1470
+#: ../client/pk-console.c:1474
 msgid "Package description"
 msgstr "Descripción del paquete"
 
 #. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
-#: ../client/pk-console.c:1486
+#: ../client/pk-console.c:1490
 msgid "Message:"
 msgstr "Mensaje:"
 
 #. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1514
+#: ../client/pk-console.c:1518
 msgid "Package files"
 msgstr "Archivos del paquete"
 
 #. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1522
+#: ../client/pk-console.c:1526
 msgid "No files"
 msgstr "No hay archivos"
 
 #. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1545
+#: ../client/pk-console.c:1549
 msgid "Repository signature required"
 msgstr "Se requiere la firma del repositorio"
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1555
+#: ../client/pk-console.c:1559
 msgid "Do you accept this signature?"
 msgstr "¿Acepta esta firma?"
 
 #. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1559
+#: ../client/pk-console.c:1563
 msgid "The signature was not accepted."
 msgstr "No se aceptó la firma."
 
 #. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1593
+#: ../client/pk-console.c:1597
 msgid "End user license agreement required"
 msgstr "Se requiere un acuerdo de licencia de usuario final"
 
 #. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1600
+#: ../client/pk-console.c:1604
 msgid "Do you agree to this license?"
 msgstr "¿Está de acuerdo con esta licencia?"
 
 #. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1604
+#: ../client/pk-console.c:1608
 msgid "The license was refused."
 msgstr "Se rechazó la licencia."
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1633
+#: ../client/pk-console.c:1637
 msgid "The daemon crashed mid-transaction!"
 msgstr "El demonio se colgó en medio de una transacción."
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1686
+#: ../client/pk-console.c:1690
 msgid "PackageKit Console Interface"
 msgstr "Interfaz de consola de PackageKit"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1688
+#: ../client/pk-console.c:1692
 msgid "Subcommands:"
 msgstr "Subcomandos:"
 
 #. TRANSLATORS: command line argument, if we should show debugging information
 #. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:1781
-#: ../client/pk-generate-pack.c:185
+#: ../client/pk-console.c:1785 ../client/pk-generate-pack.c:185
 #: ../client/pk-monitor.c:128
 #: ../contrib/command-not-found/pk-command-not-found.c:616
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:550
-#: ../contrib/device-rebind/pk-device-rebind.c:293
-#: ../src/pk-main.c:211
+#: ../contrib/device-rebind/pk-device-rebind.c:293 ../src/pk-main.c:211
 msgid "Show extra debugging information"
 msgstr "Mostrar información extra de depuración"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1784
-#: ../client/pk-monitor.c:130
+#: ../client/pk-console.c:1788 ../client/pk-monitor.c:130
 msgid "Show the program version and exit"
 msgstr "Mostrar la versión del programa y salir"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1787
+#: ../client/pk-console.c:1791
 msgid "Set the filter, e.g. installed"
 msgstr "Establecer el filtro, ej. instalado"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1790
+#: ../client/pk-console.c:1794
 msgid "Exit without waiting for actions to complete"
 msgstr "Salir sin esperar que las acciones se completen"
 
 #. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:1817
+#: ../client/pk-console.c:1821
 msgid "This tool could not connect to system DBUS."
 msgstr "Esta herramienta no se pudo conectar al DBUS del sistema."
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1907
+#: ../client/pk-console.c:1911
 msgid "The filter specified was invalid"
 msgstr "El filtro especificado fue inválido"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1926
+#: ../client/pk-console.c:1930
 msgid "A search type is required, e.g. name"
 msgstr "Se necesita un tipo de búsqueda, por ejemplo, nombre"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1933
-#: ../client/pk-console.c:1942
-#: ../client/pk-console.c:1951
-#: ../client/pk-console.c:1960
+#: ../client/pk-console.c:1937 ../client/pk-console.c:1946
+#: ../client/pk-console.c:1955 ../client/pk-console.c:1964
 msgid "A search term is required"
 msgstr "Se necesita un término de búsqueda"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1967
+#: ../client/pk-console.c:1971
 msgid "Invalid search type"
 msgstr "Tipo de búsqueda inválido"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1973
+#: ../client/pk-console.c:1977
 msgid "A package name or filename to install is required"
 msgstr "Se requiere un nombre de paquete o nombre de archivo para instalar"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1982
+#: ../client/pk-console.c:1986
 msgid "A type, key_id and package_id are required"
 msgstr "Se necesita un tipo, key_id y package_id"
 
 #. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:1991
+#: ../client/pk-console.c:1995
 msgid "A package name to remove is required"
 msgstr "Necesita un nombre de paquete para eliminar"
 
 #. TRANSLATORS: the user did not specify anything about what to download or where
-#: ../client/pk-console.c:1999
+#: ../client/pk-console.c:2003
 msgid "A destination directory and the package names to download are required"
-msgstr "Se necesita un directorio de destino y los nombres de los paquetes a descargar"
+msgstr ""
+"Se necesita un directorio de destino y los nombres de los paquetes a "
+"descargar"
 
 #. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:2006
+#: ../client/pk-console.c:2010
 msgid "Directory not found"
 msgstr "Directorio no encontrado"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2014
+#: ../client/pk-console.c:2018
 msgid "A licence identifier (eula-id) is required"
 msgstr "Se necesita un identificador de licencia (eula-id)"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2024
+#: ../client/pk-console.c:2028
 msgid "A transaction identifier (tid) is required"
 msgstr "Se necesita un identificador de transacción (tid)"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:2041
+#: ../client/pk-console.c:2045
 msgid "A package name to resolve is required"
 msgstr "Se necesita un nombre de paquete para resolver"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:2050
-#: ../client/pk-console.c:2059
+#: ../client/pk-console.c:2054 ../client/pk-console.c:2063
 msgid "A repository name is required"
 msgstr "Se necesita un nombre de repositorio"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2068
+#: ../client/pk-console.c:2072
 msgid "A repo name, parameter and value are required"
 msgstr "Debe especificar un nombre de repositorio, parámetro y valor"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:2082
+#: ../client/pk-console.c:2086
 msgid "An action, e.g. 'update-system' is required"
 msgstr "Debe especificar una acción, por ejemplo, «update-system»"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:2089
+#: ../client/pk-console.c:2093
 msgid "A correct role is required"
 msgstr "Se necesita un rol correcto"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2096
+#: ../client/pk-console.c:2100
 msgid "Failed to get the time since this action was last completed"
 msgstr "Falló al obtener la hora de la última vez que se completó esta acción"
 
 #. TRANSLATORS: The user did not provide a package name
 #. TRANSLATORS: This is when the user fails to supply the package name
-#: ../client/pk-console.c:2106
-#: ../client/pk-console.c:2118
-#: ../client/pk-console.c:2127
-#: ../client/pk-console.c:2145
-#: ../client/pk-console.c:2154
-#: ../client/pk-generate-pack.c:241
+#: ../client/pk-console.c:2110 ../client/pk-console.c:2122
+#: ../client/pk-console.c:2131 ../client/pk-console.c:2149
+#: ../client/pk-console.c:2158 ../client/pk-generate-pack.c:241
 msgid "A package name is required"
 msgstr "Se necesita un nombre de paquete"
 
 #. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:2136
+#: ../client/pk-console.c:2140
 msgid "A package provide string is required"
 msgstr "Se necesita la cadena de lo que proporciona el paquete"
 
 #. TRANSLATORS: The user didn't specify a filename to create as a list
-#: ../client/pk-console.c:2163
+#: ../client/pk-console.c:2167
 msgid "A list file name to create is required"
 msgstr "Se necesita un nombre de archivo de la lista"
 
 #. TRANSLATORS: The user didn't specify a filename to open as a list
-#: ../client/pk-console.c:2173
-#: ../client/pk-console.c:2183
+#: ../client/pk-console.c:2177 ../client/pk-console.c:2187
 msgid "A list file to open is required"
 msgstr "Se necesita un archivo de lista para abrir"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2237
+#: ../client/pk-console.c:2241
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "La opción «%s» no está soportada"
 
 #. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2250
+#: ../client/pk-console.c:2254
 msgid "Incorrect privileges for this operation"
 msgstr "Privilegios incorrectos para esta operación"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2253
+#: ../client/pk-console.c:2257
 msgid "Command failed"
 msgstr "Falló el comando"
 
@@ -727,8 +712,10 @@ msgstr "Establezca el nombre del archivo de dependencias para excluir"
 
 #. TRANSLATORS: the output location
 #: ../client/pk-generate-pack.c:191
-msgid "The output file or directory (the current directory is used if ommitted)"
-msgstr "El directorio o archivo de salida (se usará si se omite el directorio actual)"
+msgid ""
+"The output file or directory (the current directory is used if ommitted)"
+msgstr ""
+"El directorio o archivo de salida (se usará si se omite el directorio actual)"
 
 #. TRANSLATORS: put a list of packages in the pack
 #: ../client/pk-generate-pack.c:194
@@ -757,20 +744,25 @@ msgstr "Se necesita un directorio o nombre de archivo de salida"
 
 #. TRANSLATORS: This is when the backend doesn't have the capability to get-depends
 #. TRANSLATORS: This is when the backend doesn't have the capability to download
-#: ../client/pk-generate-pack.c:267
-#: ../client/pk-generate-pack.c:273
+#: ../client/pk-generate-pack.c:267 ../client/pk-generate-pack.c:273
 msgid "The package manager cannot perform this type of operation."
 msgstr "El gestor de paquetes no puede realizar este tipo de operación."
 
 #. TRANSLATORS: This is when the distro didn't include libarchive support into PK
 #: ../client/pk-generate-pack.c:280
-msgid "Service packs cannot be created as PackageKit was not built with libarchive support."
-msgstr "No se pueden crear paquetes de servicio ya que PackageKit no se construyó con soporte para libarchive."
+msgid ""
+"Service packs cannot be created as PackageKit was not built with libarchive "
+"support."
+msgstr ""
+"No se pueden crear paquetes de servicio ya que PackageKit no se construyó "
+"con soporte para libarchive."
 
 #. TRANSLATORS: the user specified an absolute path, but didn't get the extension correct
 #: ../client/pk-generate-pack.c:291
 msgid "If specifying a file, the service pack name must end with"
-msgstr "Si especifica un archivo, el nombre del paquete de servicio debe finalizar con"
+msgstr ""
+"Si especifica un archivo, el nombre del paquete de servicio debe finalizar "
+"con"
 
 #. TRANSLATORS: This is when file already exists
 #: ../client/pk-generate-pack.c:307
@@ -851,56 +843,56 @@ msgid "Please enter a number from 1 to %i: "
 msgstr "Introduzca un número de 1 a %i: "
 
 #. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/pk-plugin-install.c:464
+#: ../contrib/browser-plugin/pk-plugin-install.c:466
 msgid "Getting package information..."
 msgstr "Extrayendo información del paquete..."
 
 #. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/pk-plugin-install.c:470
+#: ../contrib/browser-plugin/pk-plugin-install.c:472
 #, c-format
 msgid "Run %s"
 msgstr "Ejecutar %s"
 
 #. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:476
+#: ../contrib/browser-plugin/pk-plugin-install.c:478
 msgid "Installed version"
 msgstr "Versión instalada"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:484
+#: ../contrib/browser-plugin/pk-plugin-install.c:486
 #, c-format
 msgid "Run version %s now"
 msgstr "Ejecutar la versión %s ahora"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:490
+#: ../contrib/browser-plugin/pk-plugin-install.c:492
 msgid "Run now"
 msgstr "Ejecutar ahora"
 
 #. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:496
+#: ../contrib/browser-plugin/pk-plugin-install.c:498
 #, c-format
 msgid "Update to version %s"
 msgstr "Actualizar a la versión %s"
 
 #. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:502
+#: ../contrib/browser-plugin/pk-plugin-install.c:504
 #, c-format
 msgid "Install %s now"
 msgstr "Instalar %s ahora"
 
 #. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:505
+#: ../contrib/browser-plugin/pk-plugin-install.c:507
 msgid "Version"
 msgstr "Versión"
 
 #. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/pk-plugin-install.c:510
+#: ../contrib/browser-plugin/pk-plugin-install.c:512
 msgid "No packages found for your system"
 msgstr "No se encontró ningún paquete para su sistema"
 
 #. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/pk-plugin-install.c:515
+#: ../contrib/browser-plugin/pk-plugin-install.c:517
 msgid "Installing..."
 msgstr "Instalando..."
 
@@ -912,7 +904,8 @@ msgstr "Descargando detalles acerca de las fuentes de software"
 #. TRANSLATORS: downloading file lists so we can search
 #: ../contrib/command-not-found/pk-command-not-found.c:353
 msgid "Downloading filelists (this may take some time to complete)."
-msgstr "Descargando listas de archivo (esto podría tardar un tiempo en completarse)."
+msgstr ""
+"Descargando listas de archivo (esto podría tardar un tiempo en completarse)."
 
 #. TRANSLATORS: waiting for native lock
 #: ../contrib/command-not-found/pk-command-not-found.c:357
@@ -1002,12 +995,17 @@ msgstr "Iniciando la instalación"
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:397
 #, c-format
 msgid "Failed to find the package %s, or already installed: %s"
-msgstr "No se ha podido encontrar el paquete %s, o tal vez ya se encuentre instalado: %s"
+msgstr ""
+"No se ha podido encontrar el paquete %s, o tal vez ya se encuentre "
+"instalado: %s"
 
 #. command line argument, simulate what would be done, but don't actually do it
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:553
-msgid "Don't actually install any packages, only simulate what would be installed"
-msgstr "No se instala ningún paquete realmente, solo se indica cuáles serían instalados"
+msgid ""
+"Don't actually install any packages, only simulate what would be installed"
+msgstr ""
+"No se instala ningún paquete realmente, solo se indica cuáles serían "
+"instalados"
 
 #. command line argument, do we skip packages that depend on the ones specified
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:556
@@ -1290,16 +1288,22 @@ msgid "Authentication is required to accept a EULA"
 msgstr "Se necesita autenticación para aceptar una EULA"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:9
-msgid "Authentication is required to cancel a task that was not started by yourself"
+msgid ""
+"Authentication is required to cancel a task that was not started by yourself"
 msgstr "Se necesita autenticación para cancelar una tarea que no inició usted"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:10
 msgid "Authentication is required to change software source parameters"
-msgstr "Se necesita autenticación para cambiar los parámetros de fuente de software"
+msgstr ""
+"Se necesita autenticación para cambiar los parámetros de fuente de software"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:11
-msgid "Authentication is required to consider a key used for signing packages as trusted"
-msgstr "Se necesita autenticación para considerar una clave usada para firmar paquetes como confiable"
+msgid ""
+"Authentication is required to consider a key used for signing packages as "
+"trusted"
+msgstr ""
+"Se necesita autenticación para considerar una clave usada para firmar "
+"paquetes como confiable"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:12
 msgid "Authentication is required to install a signed package"
@@ -1315,7 +1319,9 @@ msgstr "Se necesita autenticación para refrescar las fuentes del sistema"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:15
 msgid "Authentication is required to reload the device with a new driver"
-msgstr "Se necesita autenticación para recargar el dispositivo con un controlador nuevo"
+msgstr ""
+"Se necesita autenticación para recargar el dispositivo con un controlador "
+"nuevo"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:16
 msgid "Authentication is required to remove packages"
@@ -1326,8 +1332,12 @@ msgid "Authentication is required to rollback a transaction"
 msgstr "Se necesita autenticación para deshacer una transacción"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:18
-msgid "Authentication is required to set the network proxy used for downloading packages"
-msgstr "Se necesita autenticación para cambiar el proxy de red usado para descargar paquetes"
+msgid ""
+"Authentication is required to set the network proxy used for downloading "
+"packages"
+msgstr ""
+"Se necesita autenticación para cambiar el proxy de red usado para descargar "
+"paquetes"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:19
 msgid "Authentication is required to update packages"
@@ -1458,8 +1468,12 @@ msgstr "El usuario correcto no esta lanzando el ejecutable (generalmente root)"
 
 #. TRANSLATORS: or we are installed in a prefix
 #: ../src/pk-main.c:93
-msgid "The org.freedesktop.PackageKit.conf file is not installed in the system directory:"
-msgstr "El archivo org.freedesktop.PackageKit.conf no está instalado en el directorio del sistema:"
+msgid ""
+"The org.freedesktop.PackageKit.conf file is not installed in the system "
+"directory:"
+msgstr ""
+"El archivo org.freedesktop.PackageKit.conf no está instalado en el "
+"directorio del sistema:"
 
 #. TRANSLATORS: a backend is the system package tool, e.g. yum, apt
 #: ../src/pk-main.c:205
@@ -1508,34 +1522,42 @@ msgstr "Error intentando iniciar:"
 
 #: ../src/pk-polkit-action-lookup.c:147
 msgid "To install debugging packages, extra sources need to be enabled"
-msgstr "Para poder instalar paquetes de depuración, es necesario habilitar nuevas fuentes"
+msgstr ""
+"Para poder instalar paquetes de depuración, es necesario habilitar nuevas "
+"fuentes"
 
 #. TRANSLATORS: is not GPG signed
-#: ../src/pk-polkit-action-lookup.c:168
-#: ../src/pk-polkit-action-lookup.c:187
+#: ../src/pk-polkit-action-lookup.c:168 ../src/pk-polkit-action-lookup.c:187
 msgid "The software is not from a trusted source."
 msgstr "El software no proviene de una fuente confiable."
 
 #: ../src/pk-polkit-action-lookup.c:173
 msgid "Do not update this package unless you are sure it is safe to do so."
-msgstr "No actualice este paquete a menos que sepa con certeza que es seguro hacerlo."
+msgstr ""
+"No actualice este paquete a menos que sepa con certeza que es seguro hacerlo."
 
 #: ../src/pk-polkit-action-lookup.c:174
 msgid "Do not update these packages unless you are sure it is safe to do so."
-msgstr "No actualice estos paquete a menos que sepa con certeza que es seguro hacerlo."
+msgstr ""
+"No actualice estos paquete a menos que sepa con certeza que es seguro "
+"hacerlo."
 
 #: ../src/pk-polkit-action-lookup.c:192
 msgid "Do not install this package unless you are sure it is safe to do so."
-msgstr "No instale este paquete a menos que sepa con certeza que es seguro hacerlo."
+msgstr ""
+"No instale este paquete a menos que sepa con certeza que es seguro hacerlo."
 
 #: ../src/pk-polkit-action-lookup.c:193
 msgid "Do not install these packages unless you are sure it is safe to do so."
-msgstr "No instale estos paquete a menos que sepa con certeza que es seguro hacerlo."
+msgstr ""
+"No instale estos paquete a menos que sepa con certeza que es seguro hacerlo."
 
 #. TRANSLATORS: warn the user that all bets are off
 #: ../src/pk-polkit-action-lookup.c:199
 msgid "Malicious software can damage your computer or cause other harm."
-msgstr "Un software considerado maligno puede provocar diferentes clases de daño, por ejemplo, podría dañar su computadora. "
+msgstr ""
+"Un software considerado maligno puede provocar diferentes clases de daño, "
+"por ejemplo, podría dañar su computadora. "
 
 #. TRANSLATORS: too many packages to list each one
 #: ../src/pk-polkit-action-lookup.c:274
@@ -1551,136 +1573,184 @@ msgstr "Solo confiable"
 #~ msgstr ""
 #~ "Archivo caché principal a usar (si no se especifica, se usará el "
 #~ "predeterminado)"
+
 #~ msgid "Source cache file to add to the main database"
 #~ msgstr "Archivo caché fuente para agregar a la base de datos principal"
+
 #~ msgid "Icon directory"
 #~ msgstr "Directorio de Iconos"
+
 #~ msgid "Name of the remote repo"
 #~ msgstr "Nombre del repo remoto"
+
 #~ msgid "PackageKit Application Database Installer"
 #~ msgstr "Instalador de la Base de Datos de Aplicaciones de PackageKit"
+
 #~ msgid "Main database file to use (if not specififed, default is used)"
 #~ msgstr ""
 #~ "Base de datos principal a usar (si no se especifica se usará el "
 #~ "predeterminado)"
+
 #~ msgid "You need to specify a search type, e.g. name"
 #~ msgstr "Debe especificar el tipo de búsqueda, por ejemplo, nombre"
+
 #~ msgid "You need to specify a search term"
 #~ msgstr "Debe especificar un término de búsqueda"
+
 #~ msgid "You need to specify a package to remove"
 #~ msgstr "Debe especificar un paquete a eliminar"
+
 #~ msgid "You need to specify a package name to resolve"
 #~ msgstr "Debe especificar un nombre de paquete a resolver"
+
 #~ msgid "You need to specify a repository name"
 #~ msgstr "Debe especificar un nombre de repositorio"
+
 #~ msgid "You need to specify a correct role"
 #~ msgstr "Debe especificar un rol correcto"
+
 #~ msgid "Failed to get last time"
 #~ msgstr "Fállo al obtener última hora"
+
 #~ msgid "You need to specify a package to find the details for"
 #~ msgstr "Debe especificar un paquete para el que buscar la descripción"
+
 #~ msgid "You need to specify a package to find the files for"
 #~ msgstr "Debe especificar un paquete para el que buscar los archivos"
+
 #~ msgid "You need to specify a list file to open"
 #~ msgstr "Debe especificar un archivo de lista a abrir"
+
 #~ msgid "This tool could not remove the packages: '%s'"
 #~ msgstr "Esta herramienta no pudo eliminar los paquetes: '%s'"
+
 #~ msgid "Install local file"
 #~ msgstr "Instalar archivo local"
+
 #~ msgid "Okay to import key?"
 #~ msgstr "¿De acuerto con importer la clave?"
+
 #~ msgid "Did not import key"
 #~ msgstr "No se importó la clave"
+
 #~ msgid "Do you agree?"
 #~ msgstr "¿Está de acuerdo?"
+
 #~ msgid "Could not find package to remove"
 #~ msgstr "No se pudo encontrar el paquete a eliminar"
+
 #~ msgid "Cancelled!"
 #~ msgstr "Cancelado!"
+
 #~ msgid "Could not find package to update"
 #~ msgstr "No se pudo encontrar el paquete a actualizar"
+
 #~ msgid "Could not find what packages require"
 #~ msgstr "No se pudo encontrar cuales paquetes requiere este paquete"
+
 #~ msgid "Could not find details for"
 #~ msgstr "No se pudieron obtener los detalles de "
 
 #, fuzzy
 #~ msgid "Could not set database readonly"
 #~ msgstr "No se pudo abrir la base de datos: %s"
+
 #~ msgid "Could not open database: %s"
 #~ msgstr "No se pudo abrir la base de datos: %s"
+
 #~ msgid "You probably need to run this program as the root user"
 #~ msgstr "Probablemente necesita ejecutar este programa como el usuario root"
+
 #~ msgid "<span color='#%06x' underline='single' size='larger'>Run %s</span>"
 #~ msgstr ""
 #~ "<span color='#%06x' underline='single' size='larger'>Ejecutar %s</span>"
+
 #~ msgid "<big>%s</big>"
 #~ msgstr "<big>%s</big>"
+
 #~ msgid ""
 #~ "\n"
 #~ "<span color='#%06x' underline='single'>Run version %s now</span>"
 #~ msgstr ""
 #~ "\n"
 #~ "<span color='#%06x' underline='single'>Ejecutar versión %s ahora</span>"
+
 #~ msgid ""
 #~ "\n"
 #~ "<span color='#%06x' underline='single'>Run now</span>"
 #~ msgstr ""
 #~ "\n"
 #~ "<span color='#%06x' underline='single'>Ejecutar ahora</span>"
+
 #~ msgid ""
 #~ "\n"
 #~ "<span color='#%06x' underline='single'>Upgrade to version %s</span>"
 #~ msgstr ""
 #~ "\n"
 #~ "<span color='#%06x' underline='single'>Actualizar a la versión %s</span>"
+
 #~ msgid ""
 #~ "<span color='#%06x' underline='single' size='larger'>Install %s Now</span>"
 #~ msgstr ""
 #~ "<span color='#%06x' underline='single' size='larger'>Instalar %s Ahora</"
 #~ "span>"
+
 #~ msgid ""
 #~ "\n"
 #~ "<small>Version: %s</small>"
 #~ msgstr ""
 #~ "\n"
 #~ "<small>Versión: %s</small>"
+
 #~ msgid "failed to download: invalid package_id and/or directory"
 #~ msgstr "falló la descarga: id de paquete inválido y/o directorio"
+
 #~ msgid "Could not find a valid metadata file"
 #~ msgstr "No se pudo encontrar un archivo de metadatos válido"
+
 #~ msgid "Okay to download the additional packages"
 #~ msgstr "Listo para descargar los paquetes adicionales"
+
 #~ msgid "You need to specify the pack name and packages to be packed\n"
 #~ msgstr "Debe especificar el nombre de grupo y los paquetes a agrupar\n"
+
 #~ msgid ""
 #~ "Invalid name for the service pack, Specify a name with .servicepack "
 #~ "extension\n"
 #~ msgstr ""
 #~ "Nombre inválido para el paquete de servicio. Especifique un nombre con la "
 #~ "extensión .servicepack\n"
+
 #~ msgid "Authentication is required to install a local file"
 #~ msgstr "Se requiere autenticación para instalar un archivo local"
+
 #~ msgid "Authentication is required to install a security signature"
 #~ msgstr "Se requiere autenticación para instalar una firma de seguridad"
+
 #~ msgid "Authentication is required to update all packages"
 #~ msgstr "Se requiere autenticación para actualizar todos los paquetes"
+
 #~ msgid "Install security signature"
 #~ msgstr "Instalar firma de seguridad"
+
 #~ msgid "Refresh package lists"
 #~ msgstr "Refrescar lista de paquetes"
+
 #~ msgid "Update all packages"
 #~ msgstr "Actualizar todos los paquetes"
+
 #~ msgid ""
 #~ "Could not find a package with that name to install, or package already "
 #~ "installed"
 #~ msgstr ""
 #~ "No se pudo encontrar un paquete con ese nombre para instalar, o el "
 #~ "paquete ya está instalado"
+
 #~ msgid "Could not find a package with that name to update"
 #~ msgstr "No se pudo encontrar un paquete con ese nombre para actualizar"
+
 #~ msgid "Could not find a description for this package"
 #~ msgstr "No se pudo encontrar una descripcion para este paquete"
+
 #~ msgid "You need to specify a package to find the description for"
 #~ msgstr "Debe especificar un paquete para el que buscar la descripción"
-
diff --git a/po/fi.po b/po/fi.po
index 01daff4..ee33438 100644
--- a/po/fi.po
+++ b/po/fi.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: packagekit\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-07-04 14:37+0000\n"
+"POT-Creation-Date: 2009-08-24 11:06+0100\n"
 "PO-Revision-Date: 2009-07-04 21:04+0300\n"
 "Last-Translator: Ville-Pekka Vainio <vpivaini at cs.helsinki.fi>\n"
 "Language-Team: Finnish <laatu at lokalisointi.org>\n"
@@ -16,232 +16,264 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
 #. TRANSLATORS: this is an atomic transaction
-#: ../client/pk-console.c:231
+#: ../client/pk-console.c:235
 msgid "Transaction"
 msgstr "Transaktio"
 
 #. TRANSLATORS: this is the time the transaction was started in system timezone
-#: ../client/pk-console.c:233
+#: ../client/pk-console.c:237
 msgid "System time"
 msgstr "Järjestelmän aika"
 
 #. TRANSLATORS: this is if the transaction succeeded or not
-#: ../client/pk-console.c:235
+#: ../client/pk-console.c:239
 msgid "Succeeded"
 msgstr "Onnistui"
 
 #. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:235 ../client/pk-console.c:402
+#: ../client/pk-console.c:239 ../client/pk-console.c:406
 msgid "True"
 msgstr "Tosi"
 
-#: ../client/pk-console.c:235 ../client/pk-console.c:402
+#: ../client/pk-console.c:239 ../client/pk-console.c:406
 msgid "False"
 msgstr "Epätosi"
 
 #. TRANSLATORS: this is the transactions role, e.g. "update-system"
 #. TRANSLATORS: the trasaction role, e.g. update-system
-#: ../client/pk-console.c:237 ../src/pk-polkit-action-lookup.c:256
+#: ../client/pk-console.c:241 ../src/pk-polkit-action-lookup.c:327
 msgid "Role"
 msgstr "Rooli"
 
 #. TRANSLATORS: this is The duration of the transaction
-#: ../client/pk-console.c:242
+#: ../client/pk-console.c:246
 msgid "Duration"
 msgstr "Kesto"
 
-#: ../client/pk-console.c:242
+#: ../client/pk-console.c:246
 msgid "(seconds)"
 msgstr "(sekuntia)"
 
 #. TRANSLATORS: this is The command line used to do the action
 #. TRANSLATORS: the command line of the thing that wants the authentication
-#: ../client/pk-console.c:246 ../src/pk-polkit-action-lookup.c:270
+#: ../client/pk-console.c:250 ../src/pk-polkit-action-lookup.c:341
 msgid "Command line"
 msgstr "Komentorivi"
 
 #. TRANSLATORS: this is the user ID of the user that started the action
-#: ../client/pk-console.c:248
+#: ../client/pk-console.c:252
 msgid "User ID"
 msgstr "Käyttäjän tunniste"
 
 #. TRANSLATORS: this is the username, e.g. hughsie
-#: ../client/pk-console.c:255
+#: ../client/pk-console.c:259
 msgid "Username"
 msgstr "Käyttäjätunnus"
 
 #. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
-#: ../client/pk-console.c:259
+#: ../client/pk-console.c:263
 msgid "Real name"
 msgstr "Oikea nimi"
 
-#: ../client/pk-console.c:267
+#: ../client/pk-console.c:271
 msgid "Affected packages:"
 msgstr "Käsiteltävät paketit:"
 
-#: ../client/pk-console.c:269
+#: ../client/pk-console.c:273
 msgid "Affected packages: None"
 msgstr "Käsiteltävät paketit: Ei yhtään"
 
 #. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:294
+#: ../client/pk-console.c:298
 msgid "Distribution"
 msgstr "Jakeluversio"
 
 #. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:296
+#: ../client/pk-console.c:300
 msgid "Type"
 msgstr "Tyyppi"
 
 #. TRANSLATORS: this is any summary text describing the upgrade
 #. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:298 ../client/pk-console.c:321
+#: ../client/pk-console.c:302 ../client/pk-console.c:325
 msgid "Summary"
 msgstr "Yhteenveto"
 
 #. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:310
+#: ../client/pk-console.c:314
 msgid "Category"
 msgstr "Luokka"
 
 #. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:312
+#: ../client/pk-console.c:316
 msgid "ID"
 msgstr "Tunniste"
 
 #. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:315
+#: ../client/pk-console.c:319
 msgid "Parent"
 msgstr "Pääluokka"
 
 #. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:318
+#: ../client/pk-console.c:322
 msgid "Name"
 msgstr "Nimi"
 
 #. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:324
+#: ../client/pk-console.c:328
 msgid "Icon"
 msgstr "Kuvake"
 
 #. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:339
+#: ../client/pk-console.c:343
 msgid "Details about the update:"
 msgstr "Tietoja päivityksestä:"
 
 #. TRANSLATORS: details about the update, package name and version
-#: ../client/pk-console.c:341
+#. TRANSLATORS: title, the names of the packages that the method is processing
+#: ../client/pk-console.c:345 ../src/pk-polkit-action-lookup.c:352
+#, fuzzy
 msgid "Package"
-msgstr "Paketti"
+msgid_plural "Packages"
+msgstr[0] "Paketti"
+msgstr[1] "Paketti"
 
 #. TRANSLATORS: details about the update, any packages that this update updates
-#: ../client/pk-console.c:344
+#: ../client/pk-console.c:348
 msgid "Updates"
 msgstr "Päivitykset"
 
 #. TRANSLATORS: details about the update, any packages that this update obsoletes
-#: ../client/pk-console.c:348
+#: ../client/pk-console.c:352
 msgid "Obsoletes"
 msgstr "Vanhentaa"
 
 #. TRANSLATORS: details about the update, the vendor URLs
-#: ../client/pk-console.c:352
+#: ../client/pk-console.c:356
 msgid "Vendor"
 msgstr "Toimittaja"
 
 #. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:356
+#: ../client/pk-console.c:360
 msgid "Bugzilla"
 msgstr "Bugzilla"
 
 #. TRANSLATORS: details about the update, the CVE URLs
-#: ../client/pk-console.c:360
+#: ../client/pk-console.c:364
 msgid "CVE"
 msgstr "CVE"
 
 #. TRANSLATORS: details about the update, if the package requires a restart
-#: ../client/pk-console.c:364
+#: ../client/pk-console.c:368
 msgid "Restart"
 msgstr "Uudelleenkäynnistys"
 
 #. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:368
+#: ../client/pk-console.c:372
 msgid "Update text"
 msgstr "Päivityksen kuvaus"
 
 #. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:372
+#: ../client/pk-console.c:376
 msgid "Changes"
 msgstr "Muutokset"
 
 #. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:376
+#: ../client/pk-console.c:380
 msgid "State"
 msgstr "Tila"
 
 #. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:381
+#: ../client/pk-console.c:385
 msgid "Issued"
 msgstr "Julkaistu"
 
 #. TRANSLATORS: details about the update, date the update was updated
-#: ../client/pk-console.c:386
+#: ../client/pk-console.c:390
 msgid "Updated"
 msgstr "Päivitetty"
 
-#: ../client/pk-console.c:473 ../client/pk-console.c:475
+#: ../client/pk-console.c:477 ../client/pk-console.c:479
 msgid "Percentage"
 msgstr "Prosentti"
 
-#: ../client/pk-console.c:475
+#: ../client/pk-console.c:479
 msgid "Unknown"
 msgstr "Tuntematon"
 
 #. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:517
+#: ../client/pk-console.c:521
 msgid "System restart required by:"
 msgstr "Järjestelmän uudelleenkäynnistyksen tarvitsee:"
 
 #. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:520
+#: ../client/pk-console.c:524
 msgid "Session restart required:"
 msgstr "Istunnon uudelleenkäynnistyksen tarvitsee"
 
+#. TRANSLATORS: a package requires the system to be restarted due to a security update
+#: ../client/pk-console.c:527
+#, fuzzy
+msgid "System restart (security) required by:"
+msgstr "Järjestelmän uudelleenkäynnistyksen tarvitsee:"
+
+#. TRANSLATORS: a package requires the session to be restarted due to a security update
+#: ../client/pk-console.c:530
+#, fuzzy
+msgid "Session restart (security) required:"
+msgstr "Istunnon uudelleenkäynnistyksen tarvitsee"
+
 #. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:523
+#: ../client/pk-console.c:533
 msgid "Application restart required by:"
 msgstr "Sovelluksen uudelleenkäynnistyksen tarvitsee"
 
-#. TRANSLATORS: a package needs to restart they system
-#: ../client/pk-console.c:578
+#. TRANSLATORS: a package needs to restart their system
+#: ../client/pk-console.c:588
 msgid "Please restart the computer to complete the update."
 msgstr "Käynnistä tietokone uudelleen päivityksen viimeistelemiseksi."
 
 #. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:581
+#: ../client/pk-console.c:591
 msgid "Please logout and login to complete the update."
 msgstr "Kirjaudu ulos ja takaisin sisään päivityksen viimeistelemiseksi."
 
 #. TRANSLATORS: a package needs to restart the application
-#: ../client/pk-console.c:584
+#: ../client/pk-console.c:594
 msgid "Please restart the application as it is being used."
 msgstr "Ohjelmaa käytetään tällä hetkellä, käynnistä se uudelleen."
 
+#. TRANSLATORS: a package needs to restart their system (due to security)
+#: ../client/pk-console.c:597
+#, fuzzy
+msgid ""
+"Please restart the computer to complete the update as important security "
+"updates have been installed."
+msgstr "Käynnistä tietokone uudelleen päivityksen viimeistelemiseksi."
+
+#. TRANSLATORS: a package needs to restart the session (due to security)
+#: ../client/pk-console.c:600
+#, fuzzy
+msgid ""
+"Please logout and login to complete the update as important security updates "
+"have been installed."
+msgstr "Kirjaudu ulos ja takaisin sisään päivityksen viimeistelemiseksi."
+
 #. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:711
+#: ../client/pk-console.c:727
 #, c-format
 msgid "The package %s is already installed"
 msgstr "Paketti %s on jo asennettu"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:719
+#: ../client/pk-console.c:735
 #, c-format
 msgid "The package %s could not be installed: %s"
 msgstr "Pakettia %s ei voitu asentaa: %s"
 
 #. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
-#: ../client/pk-console.c:744 ../client/pk-console.c:767
-#: ../client/pk-console.c:863 ../client/pk-console.c:980
+#: ../client/pk-console.c:760 ../client/pk-console.c:783
+#: ../client/pk-console.c:879 ../client/pk-console.c:996
 #: ../client/pk-tools-common.c:62 ../client/pk-tools-common.c:81
 #: ../client/pk-tools-common.c:89
 #, c-format
@@ -249,406 +281,406 @@ msgid "Internal error: %s"
 msgstr "Sisäinen virhe: %s"
 
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:752 ../client/pk-console.c:1376
+#: ../client/pk-console.c:768 ../client/pk-console.c:1392
 #, c-format
 msgid "This tool could not install the packages: %s"
 msgstr "Tämä työkalu ei voinut asentaa paketteja: %s"
 
 #. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:775
+#: ../client/pk-console.c:791
 #, c-format
 msgid "This tool could not install the files: %s"
 msgstr "Tämä työkalu ei voinut asentaa tiedostoja: %s"
 
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:831
+#: ../client/pk-console.c:847
 #, c-format
 msgid "This tool could not remove %s: %s"
 msgstr "Tämä työkalu ei voinut poistaa pakettia %s: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:854 ../client/pk-console.c:892
-#: ../client/pk-console.c:925
+#: ../client/pk-console.c:870 ../client/pk-console.c:908
+#: ../client/pk-console.c:941
 #, c-format
 msgid "This tool could not remove the packages: %s"
 msgstr "Tämä työkalu ei voinut poistaa paketteja: %s"
 
 #. TRANSLATORS: When removing, we might have to remove other dependencies
-#: ../client/pk-console.c:904
+#: ../client/pk-console.c:920
 msgid "The following packages have to be removed:"
 msgstr "Seuraavat paketit on poistettava:"
 
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:911
+#: ../client/pk-console.c:927
 msgid "Proceed removing additional packages?"
 msgstr "Poistetaanko lisäpaketteja?"
 
 #. TRANSLATORS: We did not remove any packages
-#: ../client/pk-console.c:916
+#: ../client/pk-console.c:932
 msgid "The package removal was canceled!"
 msgstr "Pakettien poisto peruutettiin!"
 
 #. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:957
+#: ../client/pk-console.c:973
 #, c-format
 msgid "This tool could not download the package %s as it could not be found"
 msgstr "Ladattavaksi pyydettyä pakettia %s ei löytynyt"
 
 #. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:988
+#: ../client/pk-console.c:1004
 #, c-format
 msgid "This tool could not download the packages: %s"
 msgstr "Tämä työkalu ei voinut ladata paketteja: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1015 ../client/pk-console.c:1024
+#: ../client/pk-console.c:1031 ../client/pk-console.c:1040
 #, c-format
 msgid "This tool could not update %s: %s"
 msgstr "Tämä työkalu ei voinut päivittää pakettia %s: %s"
 
 # TODO: tarkista
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1046 ../client/pk-console.c:1054
+#: ../client/pk-console.c:1062 ../client/pk-console.c:1070
 #, c-format
 msgid "This tool could not get the requirements for %s: %s"
 msgstr "Tämä työkalu ei voinut hakea vaatijoita paketille %s: %s"
 
 # TODO: tarkista
 #. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:1076 ../client/pk-console.c:1084
+#: ../client/pk-console.c:1092 ../client/pk-console.c:1100
 #, c-format
 msgid "This tool could not get the dependencies for %s: %s"
 msgstr "Tämä työkalu ei voinut hakea riippuvuuksia paketille %s: %s"
 
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:1106 ../client/pk-console.c:1114
+#: ../client/pk-console.c:1122 ../client/pk-console.c:1130
 #, c-format
 msgid "This tool could not get package details for %s: %s"
 msgstr "Tämä työkalu ei voinut hakea tietoja paketista %s: %s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1136
+#: ../client/pk-console.c:1152
 #, c-format
 msgid "This tool could not find the files for %s: %s"
 msgstr "Tämä työkalu ei löytänyt paketin %s tiedostoja: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1144
+#: ../client/pk-console.c:1160
 #, c-format
 msgid "This tool could not get the file list for %s: %s"
 msgstr "Tämä työkalu ei voinut hakea paketin %s tiedostoluetteloa: %s"
 
 #. TRANSLATORS: There was an error getting the list of packages. The filename follows
-#: ../client/pk-console.c:1166
+#: ../client/pk-console.c:1182
 #, c-format
 msgid "File already exists: %s"
 msgstr "Tiedosto on jo olemassa: %s"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1171 ../client/pk-console.c:1227
-#: ../client/pk-console.c:1302
+#: ../client/pk-console.c:1187 ../client/pk-console.c:1243
+#: ../client/pk-console.c:1318
 msgid "Getting package list"
 msgstr "Haetaan pakettiluetteloa"
 
 #. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1177 ../client/pk-console.c:1233
-#: ../client/pk-console.c:1308
+#: ../client/pk-console.c:1193 ../client/pk-console.c:1249
+#: ../client/pk-console.c:1324
 #, c-format
 msgid "This tool could not get package list: %s"
 msgstr "Tämä työkalu ei voinut hakea pakettiluetteloa: %s"
 
 #. TRANSLATORS: There was an error saving the list
-#: ../client/pk-console.c:1188
+#: ../client/pk-console.c:1204
 #, c-format
 msgid "Failed to save to disk"
 msgstr "Tallennus epäonnistui"
 
 #. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1222 ../client/pk-console.c:1297
+#: ../client/pk-console.c:1238 ../client/pk-console.c:1313
 #, c-format
 msgid "File does not exist: %s"
 msgstr "Tiedostoa ei ole olemassa: %s"
 
 #. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1254
+#: ../client/pk-console.c:1270
 msgid "Packages to add"
 msgstr "Lisättävät paketit"
 
 #. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1262
+#: ../client/pk-console.c:1278
 msgid "Packages to remove"
 msgstr "Poistettavat paketit"
 
 #. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1330
+#: ../client/pk-console.c:1346
 #, c-format
 msgid "No new packages need to be installed"
 msgstr "Yhtään uutta pakettia ei tarvitse asentaa"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1336
+#: ../client/pk-console.c:1352
 msgid "To install"
 msgstr "Asennetaan"
 
 #. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1348
+#: ../client/pk-console.c:1364
 msgid "Searching for package: "
 msgstr "Etsitään pakettia: "
 
 #. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1352
+#: ../client/pk-console.c:1368
 msgid "not found."
 msgstr "ei löytynyt."
 
 #. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1363
+#: ../client/pk-console.c:1379
 #, c-format
 msgid "No packages can be found to install"
 msgstr "Asennettavia paketteja ei löytynyt"
 
 #. TRANSLATORS: installing new packages from package list
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
-#: ../client/pk-console.c:1369
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:868
+#: ../client/pk-console.c:1385
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:886
 #, c-format
 msgid "Installing packages"
 msgstr "Asennetaan paketteja"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1405
+#: ../client/pk-console.c:1421
 #, c-format
 msgid "This tool could not find the update details for %s: %s"
 msgstr "Tämä työkalu ei löytänyt paketin %s päivitystietoja: %s"
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1413
+#: ../client/pk-console.c:1429
 #, c-format
 msgid "This tool could not get the update details for %s: %s"
 msgstr "Tämä työkalu ei voinut hakea paketin %s päivitystietoja: %s"
 
 #. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
-#: ../client/pk-console.c:1444
+#: ../client/pk-console.c:1460
 msgid "Error:"
 msgstr "Virhe:"
 
 #. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1458
+#: ../client/pk-console.c:1474
 msgid "Package description"
 msgstr "Paketin kuvaus"
 
 #. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
-#: ../client/pk-console.c:1474
+#: ../client/pk-console.c:1490
 msgid "Message:"
 msgstr "Viesti:"
 
 #. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1502
+#: ../client/pk-console.c:1518
 msgid "Package files"
 msgstr "Paketin tiedostot"
 
 #. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1510
+#: ../client/pk-console.c:1526
 msgid "No files"
 msgstr "Ei tiedostoja"
 
 #. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1533
+#: ../client/pk-console.c:1549
 msgid "Repository signature required"
 msgstr "Asennuslähteen allekirjoitus vaaditaan"
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1543
+#: ../client/pk-console.c:1559
 msgid "Do you accept this signature?"
 msgstr "Hyväksytkö tämän allekirjoituksen?"
 
 #. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1547
+#: ../client/pk-console.c:1563
 msgid "The signature was not accepted."
 msgstr "Allekirjoitusta ei hyväksytty."
 
 #. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1581
+#: ../client/pk-console.c:1597
 msgid "End user license agreement required"
 msgstr "Käyttöoikeussopimus vaaditaan"
 
 #. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1588
+#: ../client/pk-console.c:1604
 msgid "Do you agree to this license?"
 msgstr "Hyväksytkö tämän käyttöoikeussopimuksen?"
 
 #. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1592
+#: ../client/pk-console.c:1608
 msgid "The license was refused."
 msgstr "Käyttöoikeussopimusta ei hyväksytty"
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1621
+#: ../client/pk-console.c:1637
 msgid "The daemon crashed mid-transaction!"
 msgstr "Taustaprosessi kaatui kesken toimenpiteen"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1674
+#: ../client/pk-console.c:1690
 msgid "PackageKit Console Interface"
 msgstr "PackageKitin konsolikäyttöliittymä"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1676
+#: ../client/pk-console.c:1692
 msgid "Subcommands:"
 msgstr "Alikomennot:"
 
 #. TRANSLATORS: command line argument, if we should show debugging information
 #. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:1768 ../client/pk-generate-pack.c:185
-#: ../client/pk-monitor.c:125
-#: ../contrib/command-not-found/pk-command-not-found.c:521
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:532
-#: ../src/pk-main.c:211
+#: ../client/pk-console.c:1785 ../client/pk-generate-pack.c:185
+#: ../client/pk-monitor.c:128
+#: ../contrib/command-not-found/pk-command-not-found.c:616
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:550
+#: ../contrib/device-rebind/pk-device-rebind.c:293 ../src/pk-main.c:211
 msgid "Show extra debugging information"
 msgstr "Näytä ylimääräisiä virheenjäljitystietoja"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1771 ../client/pk-monitor.c:127
+#: ../client/pk-console.c:1788 ../client/pk-monitor.c:130
 msgid "Show the program version and exit"
 msgstr "Näytä ohjelman versio ja lopeta"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1774
+#: ../client/pk-console.c:1791
 msgid "Set the filter, e.g. installed"
 msgstr "Aseta suodin, esim. asennettu"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1777
+#: ../client/pk-console.c:1794
 msgid "Exit without waiting for actions to complete"
 msgstr "Lopeta odottamatta toimintojen valmistumista"
 
 #. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:1804
+#: ../client/pk-console.c:1821
 msgid "This tool could not connect to system DBUS."
 msgstr "Tämä työkalu ei voinut yhdistää järjestelmän DBUSiin."
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1893
+#: ../client/pk-console.c:1911
 msgid "The filter specified was invalid"
 msgstr "Annettu suodin oli virheellinen"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1911
+#: ../client/pk-console.c:1930
 msgid "A search type is required, e.g. name"
 msgstr "Haun tyyppi tarvitaan, esim. nimi"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1917 ../client/pk-console.c:1925
-#: ../client/pk-console.c:1933 ../client/pk-console.c:1941
+#: ../client/pk-console.c:1937 ../client/pk-console.c:1946
+#: ../client/pk-console.c:1955 ../client/pk-console.c:1964
 msgid "A search term is required"
 msgstr "Hakutermi on annettava"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1947
+#: ../client/pk-console.c:1971
 msgid "Invalid search type"
 msgstr "Virheellinen haun tyyppi"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1953
+#: ../client/pk-console.c:1977
 msgid "A package name or filename to install is required"
 msgstr "Paketin nimi tai asennettavan tiedoston nimi on annettava"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1961
+#: ../client/pk-console.c:1986
 msgid "A type, key_id and package_id are required"
 msgstr "Tyyppi, key_id ja package_id on annettava"
 
 #. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:1969
+#: ../client/pk-console.c:1995
 msgid "A package name to remove is required"
 msgstr "Poistettavan paketin nimi on annettava"
 
 #. TRANSLATORS: the user did not specify anything about what to download or where
-#: ../client/pk-console.c:1976
-msgid ""
-"A destination directory and then the package names to download are required"
+#: ../client/pk-console.c:2003
+#, fuzzy
+msgid "A destination directory and the package names to download are required"
 msgstr "Kohdehakemisto ja ladattavien pakettien nimet paketit on annettava"
 
 #. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:1982
+#: ../client/pk-console.c:2010
 msgid "Directory not found"
 msgstr "Hakemistoa ei löytynyt"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1989
+#: ../client/pk-console.c:2018
 msgid "A licence identifier (eula-id) is required"
 msgstr "Lisenssin tunniste (eula-id) on annettava"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1998
+#: ../client/pk-console.c:2028
 msgid "A transaction identifier (tid) is required"
 msgstr "Transaktion tunniste (tid) on annettava"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:2014
+#: ../client/pk-console.c:2045
 msgid "A package name to resolve is required"
 msgstr "Ratkaistavan paketin nimi on annettava"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:2022 ../client/pk-console.c:2030
+#: ../client/pk-console.c:2054 ../client/pk-console.c:2063
 msgid "A repository name is required"
 msgstr "Asennuslähteen nimi on annettava"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2038
+#: ../client/pk-console.c:2072
 msgid "A repo name, parameter and value are required"
 msgstr "Asennuslähteen nimi, parametri ja arvo on annettava"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:2051
+#: ../client/pk-console.c:2086
 msgid "An action, e.g. 'update-system' is required"
 msgstr "Toiminto, esim. ”update-system” on annettava"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:2057
+#: ../client/pk-console.c:2093
 msgid "A correct role is required"
 msgstr "Sopiva rooli on annettava"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2063
+#: ../client/pk-console.c:2100
 msgid "Failed to get the time since this action was last completed"
 msgstr "Tämän toiminnon edellisen suorittamisen aikaa ei saatu"
 
 #. TRANSLATORS: The user did not provide a package name
 #. TRANSLATORS: This is when the user fails to supply the package name
-#: ../client/pk-console.c:2072 ../client/pk-console.c:2083
-#: ../client/pk-console.c:2091 ../client/pk-console.c:2107
-#: ../client/pk-console.c:2115 ../client/pk-generate-pack.c:241
+#: ../client/pk-console.c:2110 ../client/pk-console.c:2122
+#: ../client/pk-console.c:2131 ../client/pk-console.c:2149
+#: ../client/pk-console.c:2158 ../client/pk-generate-pack.c:241
 msgid "A package name is required"
 msgstr "Paketin nimi on annettava"
 
 #. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:2099
+#: ../client/pk-console.c:2140
 msgid "A package provide string is required"
 msgstr "Paketin tarjoaja-merkkijono on annettava"
 
 #. TRANSLATORS: The user didn't specify a filename to create as a list
-#: ../client/pk-console.c:2123
+#: ../client/pk-console.c:2167
 msgid "A list file name to create is required"
 msgstr "Luotavan luettelotiedoston nimi on annetta"
 
 #. TRANSLATORS: The user didn't specify a filename to open as a list
-#: ../client/pk-console.c:2132 ../client/pk-console.c:2141
+#: ../client/pk-console.c:2177 ../client/pk-console.c:2187
 msgid "A list file to open is required"
 msgstr "Avattavan luettelotiedoston nimi on annettava"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2194
+#: ../client/pk-console.c:2241
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "Valitsinta ”%s” ei tueta"
 
 #. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2207
+#: ../client/pk-console.c:2254
 msgid "Incorrect privileges for this operation"
 msgstr "Sinulla ei ole tähän toimintoon tarvittavia oikeuksia"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2210
+#: ../client/pk-console.c:2257
 msgid "Command failed"
 msgstr "Komento epäonnistui"
 
@@ -775,10 +807,14 @@ msgid "Failed to create '%s': %s"
 msgstr "Huoltopakkauksen ”%s” luominen epäonnistui: %s"
 
 #. TRANSLATORS: this is a program that monitors PackageKit
-#: ../client/pk-monitor.c:143
+#: ../client/pk-monitor.c:146
 msgid "PackageKit Monitor"
 msgstr "PackageKit-tarkkailija"
 
+#: ../client/pk-monitor.c:183
+msgid "Cannot show the list of transactions"
+msgstr ""
+
 #. TRANSLATORS: The package was not found in any software sources
 #: ../client/pk-tools-common.c:118
 #, c-format
@@ -800,314 +836,434 @@ msgstr "Valitse oikea paketti:"
 msgid "Please enter a number from 1 to %i: "
 msgstr "Anna numero väliltä 1-%i: "
 
+#. TRANSLATORS: when we are getting data from the daemon
+#: ../contrib/browser-plugin/pk-plugin-install.c:466
+msgid "Getting package information..."
+msgstr "Haetaan pakettitietoja..."
+
+#. TRANSLATORS: run an applicaiton
+#: ../contrib/browser-plugin/pk-plugin-install.c:472
+#, c-format
+msgid "Run %s"
+msgstr "Suorita %s"
+
+#. TRANSLATORS: show the installed version of a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:478
+msgid "Installed version"
+msgstr "Asennettu versio"
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:486
+#, c-format
+msgid "Run version %s now"
+msgstr "Suorita versio %s nyt"
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:492
+msgid "Run now"
+msgstr "Suorita nyt"
+
+#. TRANSLATORS: update to a new version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:498
+#, c-format
+msgid "Update to version %s"
+msgstr "Päivitä versioon %s"
+
+#. TRANSLATORS: To install a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:504
+#, c-format
+msgid "Install %s now"
+msgstr "Asenna %s nyt"
+
+#. TRANSLATORS: the version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:507
+msgid "Version"
+msgstr "Versio"
+
+#. TRANSLATORS: noting found, so can't install
+#: ../contrib/browser-plugin/pk-plugin-install.c:512
+msgid "No packages found for your system"
+msgstr "Järjestelmääsi sopivia paketteja ei löytynyt"
+
+#. TRANSLATORS: package is being installed
+#: ../contrib/browser-plugin/pk-plugin-install.c:517
+msgid "Installing..."
+msgstr "Asennetaan..."
+
+#. TRANSLATORS: downloading repo data so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:349
+msgid "Downloading details about the software sources."
+msgstr ""
+
+#. TRANSLATORS: downloading file lists so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:353
+msgid "Downloading filelists (this may take some time to complete)."
+msgstr ""
+
+#. TRANSLATORS: waiting for native lock
+#: ../contrib/command-not-found/pk-command-not-found.c:357
+#, fuzzy
+msgid "Waiting for package manager lock."
+msgstr "Etsitään paketin nimeä."
+
+#. TRANSLATORS: loading package cache so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:361
+#, fuzzy
+msgid "Loading list of packages."
+msgstr "Ladataan paketteja"
+
 #. TRANSLATORS: we failed to find the package, this shouldn't happen
-#: ../contrib/command-not-found/pk-command-not-found.c:372
+#: ../contrib/command-not-found/pk-command-not-found.c:420
 msgid "Failed to search for file"
 msgstr "Tiedoston etsiminen epäonnistui"
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:496
+#: ../contrib/command-not-found/pk-command-not-found.c:557
 msgid "Failed to launch:"
 msgstr "Käynnistys epäonnistui:"
 
 #. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/command-not-found/pk-command-not-found.c:537
+#: ../contrib/command-not-found/pk-command-not-found.c:632
 msgid "PackageKit Command Not Found"
 msgstr "PackageKit-komentoa ei löytynyt"
 
 #. TRANSLATORS: the prefix of all the output telling the user why it's not executing
-#: ../contrib/command-not-found/pk-command-not-found.c:560
+#: ../contrib/command-not-found/pk-command-not-found.c:658
 msgid "Command not found."
 msgstr "Komentoa ei löytynyt."
 
 #. TRANSLATORS: tell the user what we think the command is
-#: ../contrib/command-not-found/pk-command-not-found.c:567
+#: ../contrib/command-not-found/pk-command-not-found.c:665
 msgid "Similar command is:"
 msgstr "Samankaltainen komento on:"
 
 #. TRANSLATORS: Ask the user if we should run the similar command
-#: ../contrib/command-not-found/pk-command-not-found.c:576
+#: ../contrib/command-not-found/pk-command-not-found.c:674
 msgid "Run similar command:"
 msgstr "Suorita samankaltainen komento:"
 
 #. TRANSLATORS: show the user a list of commands that they could have meant
 #. TRANSLATORS: show the user a list of commands we could run
-#: ../contrib/command-not-found/pk-command-not-found.c:588
-#: ../contrib/command-not-found/pk-command-not-found.c:597
+#: ../contrib/command-not-found/pk-command-not-found.c:686
+#: ../contrib/command-not-found/pk-command-not-found.c:695
 msgid "Similar commands are:"
 msgstr "Samankaltaisia komentoja ovat:"
 
 #. TRANSLATORS: ask the user to choose a file to run
-#: ../contrib/command-not-found/pk-command-not-found.c:604
+#: ../contrib/command-not-found/pk-command-not-found.c:702
 msgid "Please choose a command to run"
 msgstr "Valitse suoritettava komento"
 
 #. TRANSLATORS: tell the user what package provides the command
-#: ../contrib/command-not-found/pk-command-not-found.c:619
+#: ../contrib/command-not-found/pk-command-not-found.c:721
 msgid "The package providing this file is:"
 msgstr "Tämän tiedoston tarjoava paketti on:"
 
 #. TRANSLATORS: as the user if we want to install a package to provide the command
-#: ../contrib/command-not-found/pk-command-not-found.c:624
+#: ../contrib/command-not-found/pk-command-not-found.c:726
 #, c-format
 msgid "Install package '%s' to provide command '%s'?"
 msgstr "Asennetaanko paketti ”%s”, joka tarjoaa komennon ”%s”"
 
 #. TRANSLATORS: Show the user a list of packages that provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:645
+#: ../contrib/command-not-found/pk-command-not-found.c:747
 msgid "Packages providing this file are:"
 msgstr "Tämän tiedoston tarjoavat paketit ovat:"
 
 #. TRANSLATORS: Show the user a list of packages that they can install to provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:654
+#: ../contrib/command-not-found/pk-command-not-found.c:756
 msgid "Suitable packages are:"
 msgstr "Sopivat paketit ovat:"
 
 #. get selection
 #. TRANSLATORS: ask the user to choose a file to install
-#: ../contrib/command-not-found/pk-command-not-found.c:662
+#: ../contrib/command-not-found/pk-command-not-found.c:764
 msgid "Please choose a package to install"
 msgstr "Valitse asennettava paketti"
 
-#. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/src/contents.cpp:299
-msgid "Getting package information..."
-msgstr "Haetaan pakettitietoja..."
-
-#. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/src/contents.cpp:305
-#, c-format
-msgid "Run %s"
-msgstr "Suorita %s"
-
-#. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/src/contents.cpp:311
-msgid "Installed version"
-msgstr "Asennettu versio"
-
-#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/src/contents.cpp:319
-#, c-format
-msgid "Run version %s now"
-msgstr "Suorita versio %s nyt"
-
-#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/src/contents.cpp:325
-msgid "Run now"
-msgstr "Suorita nyt"
-
-#. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/src/contents.cpp:331
-#, c-format
-msgid "Update to version %s"
-msgstr "Päivitä versioon %s"
-
-#. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/src/contents.cpp:337
-#, c-format
-msgid "Install %s now"
-msgstr "Asenna %s nyt"
-
-#. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/src/contents.cpp:340
-msgid "Version"
-msgstr "Versio"
-
-#. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/src/contents.cpp:345
-msgid "No packages found for your system"
-msgstr "Järjestelmääsi sopivia paketteja ei löytynyt"
-
-#. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/src/contents.cpp:350
-msgid "Installing..."
-msgstr "Asennetaan..."
-
 #. TRANSLATORS: we are starting to install the packages
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:186
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:187
 msgid "Starting install"
 msgstr "Aloitetaan asennus"
 
 #. TRANSLATORS: we couldn't find the package name, non-fatal
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:379
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:397
 #, c-format
 msgid "Failed to find the package %s, or already installed: %s"
 msgstr "Pakettia %s ei löytynyt tai se on jo asennettu: %s"
 
 #. command line argument, simulate what would be done, but don't actually do it
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:535
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:553
 msgid ""
 "Don't actually install any packages, only simulate what would be installed"
 msgstr "Älä oikeasti asenna paketteja, simuloi asennus"
 
 #. command line argument, do we skip packages that depend on the ones specified
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:538
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:556
 msgid "Do not install dependencies of the core packages"
 msgstr "Älä asenna annettujen pakettien riippuvuuksia"
 
 #. command line argument, do we operate quietly
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:541
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:559
 msgid "Do not display information or progress"
 msgstr "Älä näytä tietoja tai edistymistä"
 
 #. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:559
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:577
 msgid "PackageKit Debuginfo Installer"
 msgstr "PackageKitin debuginfo-asennin"
 
 #. TRANSLATORS: the use needs to specify a list of package names on the command line
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:571
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:589
 #, c-format
 msgid "ERROR: Specify package names to install."
 msgstr "VIRHE: Asennettavien pakettien nimet on annettava"
 
 #. TRANSLATORS: we are getting the list of repositories
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:605
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:623
 #, c-format
 msgid "Getting sources list"
 msgstr "Haetaan lähdeluetteloa"
 
 #. TRANSLATORS: all completed 100%
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:623
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:663
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:698
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:782
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:826
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:893
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:937
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:641
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:681
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:716
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:800
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:844
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:911
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:955
 #, c-format
 msgid "OK."
 msgstr "OK."
 
 #. TRANSLATORS: tell the user what we found
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:626
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:644
 #, c-format
 msgid "Found %i enabled and %i disabled sources."
 msgstr "Löydettiin %i käytössä olevaa ja %i käytöstä poistettua lähdettä."
 
 #. TRANSLATORS: we're finding repositories that match out pattern
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:633
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:651
 #, c-format
 msgid "Finding debugging sources"
 msgstr "Etsitään virheenjäljityslähteitä"
 
 #. TRANSLATORS: tell the user what we found
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:666
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:684
 #, c-format
 msgid "Found %i disabled debuginfo repos."
 msgstr "Löydettiin %i käytöstä poistettua debuginfo-asennuslähdettä."
 
 #. TRANSLATORS: we're now enabling all the debug sources we found
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:673
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:691
 #, c-format
 msgid "Enabling debugging sources"
 msgstr "Otetaan virheenjäljityslähteet käyttöön"
 
 #. TRANSLATORS: operation was not successful
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:683
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:767
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:811
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:878
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:922
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:701
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:785
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:829
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:896
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:940
 msgid "FAILED."
 msgstr "EPÄONNISTUI."
 
 #. TRANSLATORS: tell the user how many we enabled
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:701
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:719
 #, c-format
 msgid "Enabled %i debugging sources."
 msgstr "Otettiin %i virheenjäljityslähdettä käyttöön."
 
 #. TRANSLATORS: we're now finding packages that match in all the repos
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:708
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:726
 #, c-format
 msgid "Finding debugging packages"
 msgstr "Etsitään virheenjäljityspaketteja"
 
 #. TRANSLATORS: we couldn't find the package name, non-fatal
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:720
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:738
 #, c-format
 msgid "Failed to find the package %s: %s"
 msgstr "Pakettia ”%s” ei löytynyt: %s"
 
 #. TRANSLATORS: we couldn't find the debuginfo package name, non-fatal
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:743
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:761
 #, c-format
 msgid "Failed to find the debuginfo package %s: %s"
 msgstr "Debuginfo-pakettia ”%s” ei löytynyt: %s"
 
 #. TRANSLATORS: no debuginfo packages could be found to be installed
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:771
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:789
 #, c-format
 msgid "Found no packages to install."
 msgstr "Yhtään asennettavaa pakettia ei löytynyt."
 
 #. TRANSLATORS: tell the user we found some packages, and then list them
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:785
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:803
 #, c-format
 msgid "Found %i packages:"
 msgstr "Löytyi %i pakettia:"
 
 #. TRANSLATORS: tell the user we are searching for deps
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:801
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:819
 #, c-format
 msgid "Finding packages that depend on these packages"
 msgstr "Etsitään näistä paketeista riippuvia paketteja"
 
 #. TRANSLATORS: could not install, detailed error follows
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:814
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:832
 #, c-format
 msgid "Could not find dependant packages: %s"
 msgstr "Riippuvia paketteja ei löytynyt: %s"
 
 #. TRANSLATORS: tell the user we found some more packages
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:830
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:848
 #, c-format
 msgid "Found %i extra packages."
 msgstr "Löydettiin %i lisäpakettia."
 
 #. TRANSLATORS: tell the user we found some more packages
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:834
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:852
 #, c-format
 msgid "No extra packages required."
 msgstr "Lisäpaketteja ei tarvita."
 
 #. TRANSLATORS: tell the user we found some packages (and deps), and then list them
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:843
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:861
 #, c-format
 msgid "Found %i packages to install:"
 msgstr "Löydettiin %i asennettavaa pakettia:"
 
 #. TRANSLATORS: simulate mode is a testing mode where we quit before the action
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:856
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:874
 #, c-format
 msgid "Not installing packages in simulate mode"
 msgstr "Simulointitilassa ei asenneta paketteja"
 
-#. TRANSLATORS: coul dnot install, detailed error follows
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:881
+#. TRANSLATORS: could not install, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:899
 #, c-format
 msgid "Could not install packages: %s"
 msgstr "Paketteja ei voitu asentaa: %s"
 
 #. TRANSLATORS: we are now disabling all debuginfo repos we previously enabled
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:913
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:931
 #, c-format
 msgid "Disabling sources previously enabled"
 msgstr "Poistetaan käytöstä aiemmin käyttöönotetut lähteet"
 
 #. TRANSLATORS: no debuginfo packages could be found to be installed, detailed error follows
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:925
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:943
 #, c-format
 msgid "Could not disable the debugging sources: %s"
 msgstr "Virheenjäljityslähteitä ei voitu poistaa käytöstä: %s"
 
 #. TRANSLATORS: we disabled all the debugging repos that we enabled before
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:940
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:958
 #, c-format
 msgid "Disabled %i debugging sources."
 msgstr "Poistettiin käytöstä %i virheenjäljityslähdettä."
 
+#. TRANSLATORS: couldn't open device to write
+#: ../contrib/device-rebind/pk-device-rebind.c:61
+#, fuzzy
+msgid "Failed to open file"
+msgstr "Tiedoston etsiminen epäonnistui"
+
+#. TRANSLATORS: could not write to the device
+#: ../contrib/device-rebind/pk-device-rebind.c:70
+#, fuzzy
+msgid "Failed to write to the file"
+msgstr "Tiedoston etsiminen epäonnistui"
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:110
+#: ../contrib/device-rebind/pk-device-rebind.c:147
+#, fuzzy
+msgid "Failed to write to device"
+msgstr "Tallennus epäonnistui"
+
+#. TRANSLATORS: the device could not be found in sysfs
+#: ../contrib/device-rebind/pk-device-rebind.c:175
+#, fuzzy
+msgid "Device could not be found"
+msgstr "Pakettia ei löytynyt"
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:202
+#, fuzzy
+msgid "Failed to unregister driver"
+msgstr "Hakemiston luominen epäonnistui:"
+
+#. TRANSLATORS: we failed to bind the old driver
+#: ../contrib/device-rebind/pk-device-rebind.c:211
+#, fuzzy
+msgid "Failed to register driver"
+msgstr "Hakemiston luominen epäonnistui:"
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:260
+#, fuzzy
+msgid "Device path not found"
+msgstr "Hakemistoa ei löytynyt"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:268
+msgid "Incorrect device path specified"
+msgstr ""
+
+#. command line argument, simulate what would be done, but don't actually do it
+#: ../contrib/device-rebind/pk-device-rebind.c:296
+#, fuzzy
+msgid "Don't actually touch the hardware, only simulate what would be done"
+msgstr "Älä oikeasti asenna paketteja, simuloi asennus"
+
+#. TRANSLATORS: command line option: a list of files to install
+#: ../contrib/device-rebind/pk-device-rebind.c:299
+msgid "Device paths"
+msgstr ""
+
+#. TRANSLATORS: tool that gets called when the device needs reloading after installing firmware
+#: ../contrib/device-rebind/pk-device-rebind.c:314
+#, fuzzy
+msgid "PackageKit Device Reloader"
+msgstr "PackageKit-huoltopakkaus"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:322
+#, fuzzy
+msgid "You need to specify at least one valid device path"
+msgstr "Anna luotavan luettelotiedoston nimi"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:332
+msgid "This script can only be used by the root user"
+msgstr ""
+
+#. TRANSLATORS: we're going to verify the path first
+#: ../contrib/device-rebind/pk-device-rebind.c:341
+msgid "Verifying device path"
+msgstr ""
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:346
+#, fuzzy
+msgid "Failed to verify device path"
+msgstr "Tiedoston etsiminen epäonnistui"
+
+#. TRANSLATORS: we're going to try
+#: ../contrib/device-rebind/pk-device-rebind.c:360
+msgid "Attempting to rebind device"
+msgstr ""
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:365
+#, fuzzy
+msgid "Failed to rebind device"
+msgstr "Hakemiston luominen epäonnistui:"
+
 #: ../data/packagekit-catalog.xml.in.h:1
 msgid "PackageKit Catalog"
 msgstr "PackageKit-katalogi"
@@ -1120,25 +1276,31 @@ msgstr "PackageKit-pakettiluettelo"
 msgid "PackageKit Service Pack"
 msgstr "PackageKit-huoltopakkaus"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:1
+#. SECURITY:
+#. - Normal users do not require admin authentication to accept new
+#. licence agreements.
+#. - Change this to 'auth_admin' for environments where users should not
+#. be given the option to make legal decisions.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:7
 msgid "Accept EULA"
 msgstr "Hyväksytään käyttöoikeussopimusta"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:2
+#: ../policy/org.freedesktop.packagekit.policy.in.h:8
 msgid "Authentication is required to accept a EULA"
 msgstr "Käyttöoikeussopimuksen hyväksyminen vaatii tunnistautumisen"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:3
+#: ../policy/org.freedesktop.packagekit.policy.in.h:9
 msgid ""
 "Authentication is required to cancel a task that was not started by yourself"
 msgstr ""
 "Tunnistautuminen vaaditaan, jotta voit peruuttaa tehtävän, jota et aloittanut"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:4
+#: ../policy/org.freedesktop.packagekit.policy.in.h:10
 msgid "Authentication is required to change software source parameters"
 msgstr "Ohjelmistolähdeasetusten muuttaminen vaatii tunnistautumisen"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:5
+#: ../policy/org.freedesktop.packagekit.policy.in.h:11
 msgid ""
 "Authentication is required to consider a key used for signing packages as "
 "trusted"
@@ -1146,28 +1308,33 @@ msgstr ""
 "Pakettien allekirjoittamiseen käytettyyn avaimeen luottaminen vaatii "
 "tunnistautumisen"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:6
+#: ../policy/org.freedesktop.packagekit.policy.in.h:12
 msgid "Authentication is required to install a signed package"
 msgstr "Allekirjoitetun paketin asentaminen vaatii tunnistautumisen"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:7
+#: ../policy/org.freedesktop.packagekit.policy.in.h:13
 msgid "Authentication is required to install an untrusted package"
 msgstr ""
 "Tunnistautuminen vaaditaan, jotta voidaan asentaa paketti, johon ei luoteta"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:8
+#: ../policy/org.freedesktop.packagekit.policy.in.h:14
 msgid "Authentication is required to refresh the system sources"
 msgstr "Järjestelmälähteiden virkistäminen vaatii tunnistautumisen"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:9
+#: ../policy/org.freedesktop.packagekit.policy.in.h:15
+#, fuzzy
+msgid "Authentication is required to reload the device with a new driver"
+msgstr "Järjestelmälähteiden virkistäminen vaatii tunnistautumisen"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:16
 msgid "Authentication is required to remove packages"
 msgstr "Pakettien poistaminen vaatii tunnistautumisen"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:10
+#: ../policy/org.freedesktop.packagekit.policy.in.h:17
 msgid "Authentication is required to rollback a transaction"
 msgstr "Transaktion peruuttaminen vaatii tunnistautumisen"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:11
+#: ../policy/org.freedesktop.packagekit.policy.in.h:18
 msgid ""
 "Authentication is required to set the network proxy used for downloading "
 "packages"
@@ -1175,47 +1342,115 @@ msgstr ""
 "Pakettien lataamiseen käytettävän välipalvelimen asettaminen vaatii "
 "tunnistautumisen"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:12
+#: ../policy/org.freedesktop.packagekit.policy.in.h:19
 msgid "Authentication is required to update packages"
 msgstr "Pakettien päivittäminen vaatii tunnistautumisen"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:13
+#. SECURITY:
+#. - Normal users are allowed to cancel their own task without
+#. authentication, but a different user id needs the admin password
+#. to cancel another users task.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:25
 msgid "Cancel foreign task"
 msgstr "Peruuta tuntematon tehtävä"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:14
+#. SECURITY:
+#. - Normal users require admin authentication to enable or disable
+#. software sources as this can be used to enable new updates or
+#. install different versions of software.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:31
 msgid "Change software source parameters"
 msgstr "Muuta ohjelmistolähdeasetuksia"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:15
+#. SECURITY:
+#. - Normal users do not need authentication to install signed packages
+#. from signed repositories, as this cannot exploit a system.
+#. - Paranoid users (or parents!) can change this to 'auth_admin' or
+#. 'auth_admin_keep'.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:38
 msgid "Install signed package"
 msgstr "Asenna allekirjoitettu paketti"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:16
+#. SECURITY:
+#. - Normal users require admin authentication to install untrusted or
+#. unrecognised packages, as allowing users to do this without a
+#. password would be a massive security hole.
+#. - This is not retained as each package should be authenticated.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:45
 msgid "Install untrusted local file"
 msgstr "Asenna paikallinen tiedosto, johon ei luoteta"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:17
+#. SECURITY:
+#. - Normal users do not require admin authentication to refresh the
+#. cache, as this doesn't actually install or remove software.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:50
 msgid "Refresh system sources"
 msgstr "Virkistä järjestelmälähteet"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:18
+#. SECURITY:
+#. - Normal users require admin authentication to rebind a driver
+#. so that it works after we install firmware.
+#. - This should not be set to 'yes' as unprivileged users could then
+#. try to rebind drivers in use, for instance security authentication
+#. devices.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:58
+msgid "Reload a device"
+msgstr ""
+
+#. SECURITY:
+#. - Normal users require admin authentication to remove packages as
+#. this can make the system unbootable or stop other applications from
+#. working.
+#. - Be sure to close the tool used to remove the packages after the
+#. admin authentication has been obtained, otherwise packages can still
+#. be removed. If this is not possible, change this authentication to
+#. 'auth_admin'.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:68
 msgid "Remove package"
 msgstr "Poista paketti"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:19
+#. SECURITY:
+#. - Normal users require admin authentication to rollback system state
+#. as this will change a large number of packages, and could expose the
+#. system to previously patched security vulnerabilities.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:74
 msgid "Rollback to a previous transaction"
 msgstr "Peruuta edelliseen transaktioon"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:20
+#. SECURITY:
+#. - Normal users do not require admin authentication to set the proxy
+#. used for downloading packages.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:79
 msgid "Set network proxy"
 msgstr "Aseta välipalvelin"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:21
+#. SECURITY:
+#. - Normal users require admin authentication to add signing keys.
+#. - This implies adding an explicit trust, and should not be granted
+#. without a secure authentication.
+#. - This is not kept as each package should be authenticated.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:86
 msgid "Trust a key used for signing packages"
 msgstr "Luota pakettien allekirjoittamiseen käytettyyn avaimeen"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:22
+#. SECURITY:
+#. - Normal users do not require admin authentication to update the
+#. system as the packages will be signed, and the action is required
+#. to update the system when unattended.
+#. - Changing this to anything other than 'yes' will break unattended
+#. updates.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:94
 msgid "Update packages"
 msgstr "Päivitä paketteja"
 
@@ -1285,38 +1520,52 @@ msgid "Cannot connect to the system bus"
 msgstr "Ei voida yhdistää järjestelmäväylään"
 
 #. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error follows
-#: ../src/pk-main.c:331
+#: ../src/pk-main.c:334
 msgid "Error trying to start:"
 msgstr "Virhe yritettäessä käynnistää:"
 
-#: ../src/pk-polkit-action-lookup.c:143
+#: ../src/pk-polkit-action-lookup.c:147
 msgid "To install debugging packages, extra sources need to be enabled"
 msgstr ""
 "Lisälähteitä on otettava käyttöön virheenjäljityspakettien asentamiseksi"
 
 #. TRANSLATORS: is not GPG signed
-#: ../src/pk-polkit-action-lookup.c:156 ../src/pk-polkit-action-lookup.c:175
+#: ../src/pk-polkit-action-lookup.c:168 ../src/pk-polkit-action-lookup.c:187
 msgid "The software is not from a trusted source."
 msgstr "Tämä ohjelmisto ei tule luotetusta lähteestä."
 
-#. TRANSLATORS: user has to trust provider -- I know, this sucks
-#: ../src/pk-polkit-action-lookup.c:160
+#: ../src/pk-polkit-action-lookup.c:173
 msgid "Do not update this package unless you are sure it is safe to do so."
 msgstr "Älä päivitä tätä pakettia ellet ole varma, että se on turvallista."
 
+#: ../src/pk-polkit-action-lookup.c:174
+#, fuzzy
+msgid "Do not update these packages unless you are sure it is safe to do so."
+msgstr "Älä päivitä tätä pakettia ellet ole varma, että se on turvallista."
+
+#: ../src/pk-polkit-action-lookup.c:192
+msgid "Do not install this package unless you are sure it is safe to do so."
+msgstr "Älä asenna tätä pakettia ellet ole varma, että se on turvallista."
+
+#: ../src/pk-polkit-action-lookup.c:193
+#, fuzzy
+msgid "Do not install these packages unless you are sure it is safe to do so."
+msgstr "Älä asenna tätä pakettia ellet ole varma, että se on turvallista."
+
 #. TRANSLATORS: warn the user that all bets are off
-#: ../src/pk-polkit-action-lookup.c:164 ../src/pk-polkit-action-lookup.c:183
+#: ../src/pk-polkit-action-lookup.c:199
 msgid "Malicious software can damage your computer or cause other harm."
 msgstr ""
 "Haittaohjelma voi vahingoittaa tietokonetta tai aiheuttaa muita ongelmia. "
 
-#. TRANSLATORS: user has to trust provider -- I know, this sucks
-#: ../src/pk-polkit-action-lookup.c:179
-msgid "Do not install this package unless you are sure it is safe to do so."
-msgstr "Älä asenna tätä pakettia ellet ole varma, että se on turvallista."
+#. TRANSLATORS: too many packages to list each one
+#: ../src/pk-polkit-action-lookup.c:274
+#, fuzzy
+msgid "Many packages"
+msgstr "Päivitä paketteja"
 
 #. TRANSLATORS: if the transaction is forced to install only trusted packages
-#: ../src/pk-polkit-action-lookup.c:263
+#: ../src/pk-polkit-action-lookup.c:334
 msgid "Only trusted"
 msgstr "Vain luotetut"
 
@@ -1347,9 +1596,6 @@ msgstr "Vain luotetut"
 #~ msgid "You need to specify a package to find the files for"
 #~ msgstr "On annettava paketti, jonka tiedostoja etsitään"
 
-#~ msgid "You need to specify a list file to create"
-#~ msgstr "Anna luotavan luettelotiedoston nimi"
-
 #~ msgid "You need to specify a list file to open"
 #~ msgstr "Anna avattavan luettelotiedoston nimi"
 
diff --git a/po/fr.po b/po/fr.po
index 2cd47cc..8e4f5df 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -10,7 +10,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit HEAD\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-04-10 02:04+0000\n"
+"POT-Creation-Date: 2009-08-24 11:06+0100\n"
 "PO-Revision-Date: 2009-04-11 17:43+0200\n"
 "Last-Translator: Thomas Canniot <thomas.canniot at mrtomlinux.org>\n"
 "Language-Team: French <fedora-trans-fr at redhat.com>\n"
@@ -21,228 +21,264 @@ msgstr ""
 "X-Generator: Lokalize 0.3\n"
 
 #. TRANSLATORS: this is an atomic transaction
-#: ../client/pk-console.c:234
+#: ../client/pk-console.c:235
 msgid "Transaction"
 msgstr "Transaction"
 
 #. TRANSLATORS: this is the time the transaction was started in system timezone
-#: ../client/pk-console.c:236
+#: ../client/pk-console.c:237
 msgid "System time"
 msgstr "Heure du système"
 
 #. TRANSLATORS: this is if the transaction succeeded or not
-#: ../client/pk-console.c:238
+#: ../client/pk-console.c:239
 msgid "Succeeded"
 msgstr "Réussi"
 
 #. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:238 ../client/pk-console.c:405
+#: ../client/pk-console.c:239 ../client/pk-console.c:406
 msgid "True"
 msgstr "Vrai"
 
-#: ../client/pk-console.c:238 ../client/pk-console.c:405
+#: ../client/pk-console.c:239 ../client/pk-console.c:406
 msgid "False"
 msgstr "Faux"
 
 #. TRANSLATORS: this is the transactions role, e.g. "update-system"
-#: ../client/pk-console.c:240
+#. TRANSLATORS: the trasaction role, e.g. update-system
+#: ../client/pk-console.c:241 ../src/pk-polkit-action-lookup.c:327
 msgid "Role"
 msgstr "Rôle"
 
 #. TRANSLATORS: this is The duration of the transaction
-#: ../client/pk-console.c:245
+#: ../client/pk-console.c:246
 msgid "Duration"
 msgstr "Durée"
 
-#: ../client/pk-console.c:245
+#: ../client/pk-console.c:246
 msgid "(seconds)"
 msgstr "(secondes)"
 
 #. TRANSLATORS: this is The command line used to do the action
-#: ../client/pk-console.c:249
+#. TRANSLATORS: the command line of the thing that wants the authentication
+#: ../client/pk-console.c:250 ../src/pk-polkit-action-lookup.c:341
 msgid "Command line"
 msgstr "Ligne de commande"
 
 #. TRANSLATORS: this is the user ID of the user that started the action
-#: ../client/pk-console.c:251
+#: ../client/pk-console.c:252
 msgid "User ID"
 msgstr "ID utilisateur"
 
 #. TRANSLATORS: this is the username, e.g. hughsie
-#: ../client/pk-console.c:258
+#: ../client/pk-console.c:259
 msgid "Username"
 msgstr "Nom d'utilisateur"
 
 #. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
-#: ../client/pk-console.c:262
+#: ../client/pk-console.c:263
 msgid "Real name"
 msgstr "Nom réel"
 
-#: ../client/pk-console.c:270
+#: ../client/pk-console.c:271
 msgid "Affected packages:"
 msgstr "Paquets concernés :"
 
-#: ../client/pk-console.c:272
+#: ../client/pk-console.c:273
 msgid "Affected packages: None"
 msgstr "Paquets concernés : aucun"
 
 #. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:297
+#: ../client/pk-console.c:298
 msgid "Distribution"
 msgstr "Distribution"
 
 #. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:299
+#: ../client/pk-console.c:300
 msgid "Type"
 msgstr "Type"
 
 #. TRANSLATORS: this is any summary text describing the upgrade
 #. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:301 ../client/pk-console.c:324
+#: ../client/pk-console.c:302 ../client/pk-console.c:325
 msgid "Summary"
 msgstr "Résumé"
 
 #. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:313
+#: ../client/pk-console.c:314
 msgid "Category"
 msgstr "Catégorie"
 
 #. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:315
+#: ../client/pk-console.c:316
 msgid "ID"
 msgstr "ID"
 
 #. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:318
+#: ../client/pk-console.c:319
 msgid "Parent"
 msgstr "Parent"
 
 #. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:321
+#: ../client/pk-console.c:322
 msgid "Name"
 msgstr "Nom"
 
 #. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:327
+#: ../client/pk-console.c:328
 msgid "Icon"
 msgstr "Icône"
 
 #. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:342
+#: ../client/pk-console.c:343
 msgid "Details about the update:"
 msgstr "Informations complémentaires à propos de la mise à jour :"
 
 #. TRANSLATORS: details about the update, package name and version
-#: ../client/pk-console.c:344
+#. TRANSLATORS: title, the names of the packages that the method is processing
+#: ../client/pk-console.c:345 ../src/pk-polkit-action-lookup.c:352
+#, fuzzy
 msgid "Package"
-msgstr "Paquet"
+msgid_plural "Packages"
+msgstr[0] "Paquet"
+msgstr[1] "Paquet"
 
 #. TRANSLATORS: details about the update, any packages that this update updates
-#: ../client/pk-console.c:347
+#: ../client/pk-console.c:348
 msgid "Updates"
 msgstr "Mises à jour"
 
 #. TRANSLATORS: details about the update, any packages that this update obsoletes
-#: ../client/pk-console.c:351
+#: ../client/pk-console.c:352
 msgid "Obsoletes"
 msgstr "Obsolètes"
 
 #. TRANSLATORS: details about the update, the vendor URLs
-#: ../client/pk-console.c:355
+#: ../client/pk-console.c:356
 msgid "Vendor"
 msgstr "Fournisseur"
 
 #. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:359
+#: ../client/pk-console.c:360
 msgid "Bugzilla"
 msgstr "Bugzilla"
 
 #. TRANSLATORS: details about the update, the CVE URLs
-#: ../client/pk-console.c:363
+#: ../client/pk-console.c:364
 msgid "CVE"
 msgstr "CVE"
 
 #. TRANSLATORS: details about the update, if the package requires a restart
-#: ../client/pk-console.c:367
+#: ../client/pk-console.c:368
 msgid "Restart"
 msgstr "Redémarrage"
 
 #. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:371
+#: ../client/pk-console.c:372
 msgid "Update text"
 msgstr "Informations de mise à jour"
 
 #. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:375
+#: ../client/pk-console.c:376
 msgid "Changes"
 msgstr "Changements"
 
 #. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:379
+#: ../client/pk-console.c:380
 msgid "State"
 msgstr "État"
 
 #. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:384
+#: ../client/pk-console.c:385
 msgid "Issued"
 msgstr "Distribué"
 
 #. TRANSLATORS: details about the update, date the update was updated
-#: ../client/pk-console.c:389
+#: ../client/pk-console.c:390
 msgid "Updated"
 msgstr "Mis à jour"
 
-#: ../client/pk-console.c:476 ../client/pk-console.c:478
+#: ../client/pk-console.c:477 ../client/pk-console.c:479
 msgid "Percentage"
 msgstr "Pourcentage"
 
-#: ../client/pk-console.c:478
+#: ../client/pk-console.c:479
 msgid "Unknown"
 msgstr "Inconnu"
 
 #. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:529
+#: ../client/pk-console.c:521
 msgid "System restart required by:"
 msgstr "Redémarrage du système requis par :"
 
 #. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:532
+#: ../client/pk-console.c:524
 msgid "Session restart required:"
 msgstr "Redémarrage de la session requis par :"
 
+#. TRANSLATORS: a package requires the system to be restarted due to a security update
+#: ../client/pk-console.c:527
+#, fuzzy
+msgid "System restart (security) required by:"
+msgstr "Redémarrage du système requis par :"
+
+#. TRANSLATORS: a package requires the session to be restarted due to a security update
+#: ../client/pk-console.c:530
+#, fuzzy
+msgid "Session restart (security) required:"
+msgstr "Redémarrage de la session requis par :"
+
 #. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:535
+#: ../client/pk-console.c:533
 msgid "Application restart required by:"
 msgstr "Redémarrage de l'application requis par :"
 
-#. TRANSLATORS: a package needs to restart they system
-#: ../client/pk-console.c:572
+#. TRANSLATORS: a package needs to restart their system
+#: ../client/pk-console.c:588
 msgid "Please restart the computer to complete the update."
 msgstr "Veuillez redémarrer l'ordinateur pour finir la mise à jour."
 
 #. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:575
+#: ../client/pk-console.c:591
 msgid "Please logout and login to complete the update."
 msgstr "Veuillez vous reconnecter pour finir la mise à jour."
 
 #. TRANSLATORS: a package needs to restart the application
-#: ../client/pk-console.c:578
+#: ../client/pk-console.c:594
 msgid "Please restart the application as it is being used."
 msgstr "Veuillez redémarrer l'application car elle est en cours d'utilisation"
 
+#. TRANSLATORS: a package needs to restart their system (due to security)
+#: ../client/pk-console.c:597
+#, fuzzy
+msgid ""
+"Please restart the computer to complete the update as important security "
+"updates have been installed."
+msgstr "Veuillez redémarrer l'ordinateur pour finir la mise à jour."
+
+#. TRANSLATORS: a package needs to restart the session (due to security)
+#: ../client/pk-console.c:600
+#, fuzzy
+msgid ""
+"Please logout and login to complete the update as important security updates "
+"have been installed."
+msgstr "Veuillez vous reconnecter pour finir la mise à jour."
+
 #. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:691, c-format
+#: ../client/pk-console.c:727
+#, c-format
 msgid "The package %s is already installed"
 msgstr "Le paquet %s est déjà installé"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:699, c-format
+#: ../client/pk-console.c:735
+#, c-format
 msgid "The package %s could not be installed: %s"
 msgstr "Le paquet %s n'a pas pu être installé : %s"
 
 #. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
-#: ../client/pk-console.c:724 ../client/pk-console.c:751
-#: ../client/pk-console.c:847 ../client/pk-console.c:964
+#: ../client/pk-console.c:760 ../client/pk-console.c:783
+#: ../client/pk-console.c:879 ../client/pk-console.c:996
 #: ../client/pk-tools-common.c:62 ../client/pk-tools-common.c:81
 #: ../client/pk-tools-common.c:89
 #, c-format
@@ -250,355 +286,372 @@ msgid "Internal error: %s"
 msgstr "Erreur interne : %s"
 
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:732 ../client/pk-console.c:1360
+#: ../client/pk-console.c:768 ../client/pk-console.c:1392
 #, c-format
 msgid "This tool could not install the packages: %s"
 msgstr "Cet outil n'a pas pu installer les paquets : %s"
 
 #. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:759
+#: ../client/pk-console.c:791
 #, c-format
 msgid "This tool could not install the files: %s"
 msgstr "Cet outil n'a pas pu installer les fichiers : %s"
 
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:815, c-format
+#: ../client/pk-console.c:847
+#, c-format
 msgid "This tool could not remove %s: %s"
 msgstr "Cet outil n'a pas pu supprimer %s : %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:838 ../client/pk-console.c:876
-#: ../client/pk-console.c:909
+#: ../client/pk-console.c:870 ../client/pk-console.c:908
+#: ../client/pk-console.c:941
 #, c-format
 msgid "This tool could not remove the packages: %s"
 msgstr "Cet outil n'a pas pu supprimer les paquets : %s"
 
 #. TRANSLATORS: When removing, we might have to remove other dependencies
-#: ../client/pk-console.c:888
+#: ../client/pk-console.c:920
 msgid "The following packages have to be removed:"
 msgstr "Les paquets suivants vont être désinstallés :"
 
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:895
+#: ../client/pk-console.c:927
 msgid "Proceed removing additional packages?"
 msgstr "Procéder à la suppression des paquets additionnels ?"
 
 #. TRANSLATORS: We did not remove any packages
-#: ../client/pk-console.c:900
+#: ../client/pk-console.c:932
 msgid "The package removal was canceled!"
 msgstr "La suppression de paquet a été annulée !"
 
 #. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:941, c-format
+#: ../client/pk-console.c:973
+#, c-format
 msgid "This tool could not download the package %s as it could not be found"
 msgstr ""
-"Cet outil n'a pas pu télécharger le paquet %s car il n'a pas pu être "
-"trouvé"
+"Cet outil n'a pas pu télécharger le paquet %s car il n'a pas pu être trouvé"
 
 #. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:972
+#: ../client/pk-console.c:1004
 #, c-format
 msgid "This tool could not download the packages: %s"
 msgstr "Cet outil n'a pas pu télécharger les paquets : %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:999 ../client/pk-console.c:1008, c-format
+#: ../client/pk-console.c:1031 ../client/pk-console.c:1040
+#, c-format
 msgid "This tool could not update %s: %s"
 msgstr "Cet outil n'a pas pu mettre à jour %s : %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1030 ../client/pk-console.c:1038, c-format
+#: ../client/pk-console.c:1062 ../client/pk-console.c:1070
+#, c-format
 msgid "This tool could not get the requirements for %s: %s"
 msgstr "Cet outil n'a pas pu satisfaire les exigences pour %s : %s"
 
 #. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:1060 ../client/pk-console.c:1068, c-format
+#: ../client/pk-console.c:1092 ../client/pk-console.c:1100
+#, c-format
 msgid "This tool could not get the dependencies for %s: %s"
 msgstr "Cet outil n'a pas pu satisfaire les dépendances pour %s : %s"
 
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:1090 ../client/pk-console.c:1098, c-format
+#: ../client/pk-console.c:1122 ../client/pk-console.c:1130
+#, c-format
 msgid "This tool could not get package details for %s: %s"
 msgstr ""
 "Cet outil n'a pas pu obtenir les informations complémentaires du paquet %s : "
 "%s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1120, c-format
+#: ../client/pk-console.c:1152
+#, c-format
 msgid "This tool could not find the files for %s: %s"
 msgstr "Cet outil n'a pas pu trouver les fichiers pour %s : %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1128, c-format
+#: ../client/pk-console.c:1160
+#, c-format
 msgid "This tool could not get the file list for %s: %s"
 msgstr "Cet outil n'a pas pu obtenir la liste des fichiers pour %s : %s"
 
 #. TRANSLATORS: There was an error getting the list of packages. The filename follows
-#: ../client/pk-console.c:1150
+#: ../client/pk-console.c:1182
 #, c-format
 msgid "File already exists: %s"
 msgstr "Le fichier existe déjà : %s"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1155 ../client/pk-console.c:1211
-#: ../client/pk-console.c:1286
+#: ../client/pk-console.c:1187 ../client/pk-console.c:1243
+#: ../client/pk-console.c:1318
 msgid "Getting package list"
 msgstr "Récupération de la liste des paquets"
 
 #. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1161 ../client/pk-console.c:1217
-#: ../client/pk-console.c:1292, c-format
+#: ../client/pk-console.c:1193 ../client/pk-console.c:1249
+#: ../client/pk-console.c:1324
+#, c-format
 msgid "This tool could not get package list: %s"
 msgstr "Cet outil n'a pas pu récupérer la liste des paquets : %s"
 
 #. TRANSLATORS: There was an error saving the list
-#: ../client/pk-console.c:1172, c-format
+#: ../client/pk-console.c:1204
+#, c-format
 msgid "Failed to save to disk"
 msgstr "Impossible de sauvegarder sur le disque"
 
 #. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1206 ../client/pk-console.c:1281
+#: ../client/pk-console.c:1238 ../client/pk-console.c:1313
 #, c-format
 msgid "File does not exist: %s"
 msgstr "Le fichier n'existe pas : %s"
 
 #. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1238
+#: ../client/pk-console.c:1270
 msgid "Packages to add"
 msgstr "Paquets à ajouter"
 
 #. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1246
+#: ../client/pk-console.c:1278
 msgid "Packages to remove"
 msgstr "Paquets à supprimer"
 
 #. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1314, c-format
+#: ../client/pk-console.c:1346
+#, c-format
 msgid "No new packages need to be installed"
 msgstr "Aucun nouveau paquet n'a besoin d'être installé"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1320
+#: ../client/pk-console.c:1352
 msgid "To install"
 msgstr "À installer"
 
 #. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1332
+#: ../client/pk-console.c:1364
 msgid "Searching for package: "
 msgstr "Recherche du paquet :"
 
 #. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1336
+#: ../client/pk-console.c:1368
 msgid "not found."
 msgstr "non trouvé."
 
 #. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1347, c-format
+#: ../client/pk-console.c:1379
+#, c-format
 msgid "No packages can be found to install"
 msgstr "Aucun paquet à installer n'a été trouvé"
 
 #. TRANSLATORS: installing new packages from package list
-#: ../client/pk-console.c:1353
+#. TRANSLATORS: we are now installing the debuginfo packages we found earlier
+#: ../client/pk-console.c:1385
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:886
+#, c-format
 msgid "Installing packages"
 msgstr "Installation des paquets"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1389, c-format
+#: ../client/pk-console.c:1421
+#, c-format
 msgid "This tool could not find the update details for %s: %s"
 msgstr ""
 "Cet outil n'a pas pu trouver les informations de mise à jour pour %s : %s"
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1397, c-format
+#: ../client/pk-console.c:1429
+#, c-format
 msgid "This tool could not get the update details for %s: %s"
 msgstr ""
 "Cet outil n'a pas pu obtenir les informations de mise à jour pour %s : %s"
 
 #. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
-#: ../client/pk-console.c:1443
+#: ../client/pk-console.c:1460
 msgid "Error:"
 msgstr "Erreur :"
 
 #. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1457
+#: ../client/pk-console.c:1474
 msgid "Package description"
 msgstr "Description du paquet"
 
 #. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
-#: ../client/pk-console.c:1473
+#: ../client/pk-console.c:1490
 msgid "Message:"
 msgstr "Message :"
 
 #. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1501
+#: ../client/pk-console.c:1518
 msgid "Package files"
 msgstr "Fichiers du paquet"
 
 #. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1509
+#: ../client/pk-console.c:1526
 msgid "No files"
 msgstr "Aucun fichier"
 
 #. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1532
+#: ../client/pk-console.c:1549
 msgid "Repository signature required"
 msgstr "Signature du dépôt nécessaire"
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1542
+#: ../client/pk-console.c:1559
 msgid "Do you accept this signature?"
 msgstr "Acceptez-vous cette signature ?"
 
 #. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1546
+#: ../client/pk-console.c:1563
 msgid "The signature was not accepted."
 msgstr "La signature n'a pas été acceptée."
 
 #. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1580
+#: ../client/pk-console.c:1597
 msgid "End user license agreement required"
 msgstr "Approbation de la licence de l'utilisateur final nécessaire"
 
 #. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1587
+#: ../client/pk-console.c:1604
 msgid "Do you agree to this license?"
 msgstr "Acceptez-vous cette licence ?"
 
 #. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1591
+#: ../client/pk-console.c:1608
 msgid "The license was refused."
 msgstr "La licence a été refusée."
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1620
+#: ../client/pk-console.c:1637
 msgid "The daemon crashed mid-transaction!"
 msgstr "Le démon a échoué en cours de transaction."
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1673
+#: ../client/pk-console.c:1690
 msgid "PackageKit Console Interface"
 msgstr "Interface PackageKit en console"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1675
+#: ../client/pk-console.c:1692
 msgid "Subcommands:"
 msgstr "Sous-commandes :"
 
 #. TRANSLATORS: command line argument, if we should show debugging information
 #. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:1767 ../client/pk-generate-pack.c:185
-#: ../client/pk-monitor.c:125
-#: ../contrib/command-not-found/pk-command-not-found.c:518
-#: ../src/pk-main.c:199
+#: ../client/pk-console.c:1785 ../client/pk-generate-pack.c:185
+#: ../client/pk-monitor.c:128
+#: ../contrib/command-not-found/pk-command-not-found.c:616
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:550
+#: ../contrib/device-rebind/pk-device-rebind.c:293 ../src/pk-main.c:211
 msgid "Show extra debugging information"
 msgstr "Affiche des informations de débogage"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1770 ../client/pk-monitor.c:127
+#: ../client/pk-console.c:1788 ../client/pk-monitor.c:130
 msgid "Show the program version and exit"
 msgstr "Affiche la version du programme et quitte"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1773
+#: ../client/pk-console.c:1791
 msgid "Set the filter, e.g. installed"
 msgstr "Sélectionne le filtre, par ex. : installé"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1776
+#: ../client/pk-console.c:1794
 msgid "Exit without waiting for actions to complete"
 msgstr "Quitte sans attendre que la tâche soit terminée"
 
 #. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:1803
+#: ../client/pk-console.c:1821
 msgid "This tool could not connect to system DBUS."
 msgstr "Cet outil n'a pas pu se connecter au système DBUS."
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1894
+#: ../client/pk-console.c:1911
 msgid "The filter specified was invalid"
 msgstr "Le filtre indiqué était invalide"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1912
+#: ../client/pk-console.c:1930
 msgid "A search type is required, e.g. name"
 msgstr "Vous devez indiquer un type de recherche, par exemple le nom"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1918 ../client/pk-console.c:1926
-#: ../client/pk-console.c:1934 ../client/pk-console.c:1942
+#: ../client/pk-console.c:1937 ../client/pk-console.c:1946
+#: ../client/pk-console.c:1955 ../client/pk-console.c:1964
 msgid "A search term is required"
 msgstr "Vous devez indiquer un terme à rechercher"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1948
+#: ../client/pk-console.c:1971
 msgid "Invalid search type"
 msgstr "Type de recherche incorrect"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1954
+#: ../client/pk-console.c:1977
 msgid "A package name or filename to install is required"
 msgstr "Vous devez indiquer un nom de paquet ou de fichier à installer"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1962
+#: ../client/pk-console.c:1986
 msgid "A type, key_id and package_id are required"
 msgstr "Vous devez indiquer un type, un key_id et un package_id"
 
 #. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:1970
+#: ../client/pk-console.c:1995
 msgid "A package name to remove is required"
 msgstr "Vous devez indiquer un nom de paquet à supprimer"
 
 #. TRANSLATORS: the user did not specify anything about what to download or where
-#: ../client/pk-console.c:1977
-msgid ""
-"A destination directory and then the package names to download are required"
+#: ../client/pk-console.c:2003
+#, fuzzy
+msgid "A destination directory and the package names to download are required"
 msgstr ""
 "Vous devez indiquer le répertoire de destination puis les noms des paquets à "
 "télécharger"
 
 #. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:1983
+#: ../client/pk-console.c:2010
 msgid "Directory not found"
 msgstr "Répertoire non trouvé"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1990
+#: ../client/pk-console.c:2018
 msgid "A licence identifier (eula-id) is required"
 msgstr "Vous devez indiquer un identifiant de licence (eula-id)"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1999
+#: ../client/pk-console.c:2028
 msgid "A transaction identifier (tid) is required"
 msgstr "Vous devez indiquer un identifiant de transaction (tid)"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:2015
+#: ../client/pk-console.c:2045
 msgid "A package name to resolve is required"
 msgstr "Vous devez indiquer un nom de paquet à résoudre"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:2023 ../client/pk-console.c:2031
+#: ../client/pk-console.c:2054 ../client/pk-console.c:2063
 msgid "A repository name is required"
 msgstr "Vous devez indiquer un nom de dépôt"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2039
+#: ../client/pk-console.c:2072
 msgid "A repo name, parameter and value are required"
 msgstr "Vous devez indiquer un nom de dépôt, un paramètre et une valeur"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:2052
+#: ../client/pk-console.c:2086
 msgid "An action, e.g. 'update-system' is required"
 msgstr "Vous devez indiquer une action, par exemple « update-system »"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:2058
+#: ../client/pk-console.c:2093
 msgid "A correct role is required"
 msgstr "Vous devez indiquer un rôle correct"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2064
+#: ../client/pk-console.c:2100
 msgid "Failed to get the time since this action was last completed"
 msgstr ""
 "Impossible de déterminer le moment où cette action a été accomplie pour la "
@@ -606,40 +659,40 @@ msgstr ""
 
 #. TRANSLATORS: The user did not provide a package name
 #. TRANSLATORS: This is when the user fails to supply the package name
-#: ../client/pk-console.c:2073 ../client/pk-console.c:2084
-#: ../client/pk-console.c:2092 ../client/pk-console.c:2108
-#: ../client/pk-console.c:2116 ../client/pk-generate-pack.c:241
+#: ../client/pk-console.c:2110 ../client/pk-console.c:2122
+#: ../client/pk-console.c:2131 ../client/pk-console.c:2149
+#: ../client/pk-console.c:2158 ../client/pk-generate-pack.c:241
 msgid "A package name is required"
 msgstr "Vous devez indiquer un nom de paquet"
 
 #. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:2100
+#: ../client/pk-console.c:2140
 msgid "A package provide string is required"
 msgstr "Vous devez indiquer une chaîne de fourniture de paquet"
 
 #. TRANSLATORS: The user didn't specify a filename to create as a list
-#: ../client/pk-console.c:2124
+#: ../client/pk-console.c:2167
 msgid "A list file name to create is required"
 msgstr "Vous devez indiquer un nom de fichier à la liste à créer"
 
 #. TRANSLATORS: The user didn't specify a filename to open as a list
-#: ../client/pk-console.c:2133 ../client/pk-console.c:2142
+#: ../client/pk-console.c:2177 ../client/pk-console.c:2187
 msgid "A list file to open is required"
 msgstr "Vous devez indiquer un fichier liste à ouvrir"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2195
+#: ../client/pk-console.c:2241
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "L'option « %s » n'est pas prise en charge"
 
 #. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2208
+#: ../client/pk-console.c:2254
 msgid "Incorrect privileges for this operation"
 msgstr "Les privilèges dont vous disposez sont incorrects pour cette opération"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2211
+#: ../client/pk-console.c:2257
 msgid "Command failed"
 msgstr "La commande a échoué"
 
@@ -702,65 +755,76 @@ msgstr "Vous devez indiquer un répertoire ou un nom de fichier de sortie"
 msgid "The package manager cannot perform this type of operation."
 msgstr "Le gestionnaire de paquets ne peut pas effectuer ce type d'opération."
 
+#. TRANSLATORS: This is when the distro didn't include libarchive support into PK
+#: ../client/pk-generate-pack.c:280
+msgid ""
+"Service packs cannot be created as PackageKit was not built with libarchive "
+"support."
+msgstr ""
+
 #. TRANSLATORS: the user specified an absolute path, but didn't get the extension correct
-#: ../client/pk-generate-pack.c:285
+#: ../client/pk-generate-pack.c:291
 msgid "If specifying a file, the service pack name must end with"
 msgstr ""
 "Si un nom de fichier est précisé, le nom du service pack doit se terminer par"
 
 #. TRANSLATORS: This is when file already exists
-#: ../client/pk-generate-pack.c:301
+#: ../client/pk-generate-pack.c:307
 msgid "A pack with the same name already exists, do you want to overwrite it?"
 msgstr "Un pack avec un nom identique existe déjà, voulez-vous le remplacer ?"
 
 #. TRANSLATORS: This is when the pack was not overwritten
-#: ../client/pk-generate-pack.c:304
+#: ../client/pk-generate-pack.c:310
 msgid "The pack was not overwritten."
 msgstr "Le pack n'a pas été remplacé."
 
 #. TRANSLATORS: This is when the temporary directory cannot be created, the directory name follows
-#: ../client/pk-generate-pack.c:317
+#: ../client/pk-generate-pack.c:323
 msgid "Failed to create directory:"
 msgstr "Impossible de créer un répertoire :"
 
 #. TRANSLATORS: This is when the list of packages from the remote computer cannot be opened
-#: ../client/pk-generate-pack.c:327
+#: ../client/pk-generate-pack.c:333
 msgid "Failed to open package list."
 msgstr "Impossible d'ouvrir la liste des paquets."
 
 #. TRANSLATORS: The package name is being matched up to available packages
-#: ../client/pk-generate-pack.c:338
+#: ../client/pk-generate-pack.c:344
 msgid "Finding package name."
 msgstr "Recherche du nom du paquet."
 
 #. TRANSLATORS: This is when the package cannot be found in any software source. The detailed error follows
-#: ../client/pk-generate-pack.c:342
+#: ../client/pk-generate-pack.c:348
 #, c-format
 msgid "Failed to find package '%s': %s"
 msgstr "Impossible de trouver le paquet « %s » : %s"
 
 #. TRANSLATORS: This is telling the user we are in the process of making the pack
-#: ../client/pk-generate-pack.c:359
+#: ../client/pk-generate-pack.c:365
 msgid "Creating service pack..."
 msgstr "Création du service pack..."
 
 #. TRANSLATORS: we succeeded in making the file
-#: ../client/pk-generate-pack.c:366
+#: ../client/pk-generate-pack.c:372
 #, c-format
 msgid "Service pack created '%s'"
 msgstr "Service pack crée « %s »"
 
 #. TRANSLATORS: we failed to make te file
-#: ../client/pk-generate-pack.c:371
+#: ../client/pk-generate-pack.c:377
 #, c-format
 msgid "Failed to create '%s': %s"
 msgstr "Impossible de créer « %s » : %s"
 
 #. TRANSLATORS: this is a program that monitors PackageKit
-#: ../client/pk-monitor.c:143
+#: ../client/pk-monitor.c:146
 msgid "PackageKit Monitor"
 msgstr "Contrôleur PackageKit"
 
+#: ../client/pk-monitor.c:183
+msgid "Cannot show the list of transactions"
+msgstr ""
+
 #. TRANSLATORS: The package was not found in any software sources
 #: ../client/pk-tools-common.c:118
 #, c-format
@@ -782,129 +846,434 @@ msgstr "Veuillez choisir le paquet correct : "
 msgid "Please enter a number from 1 to %i: "
 msgstr "Veuillez saisir un nombre entre 1 et %i : "
 
+#. TRANSLATORS: when we are getting data from the daemon
+#: ../contrib/browser-plugin/pk-plugin-install.c:466
+msgid "Getting package information..."
+msgstr "Obtention des informations sur les paquets..."
+
+#. TRANSLATORS: run an applicaiton
+#: ../contrib/browser-plugin/pk-plugin-install.c:472
+#, c-format
+msgid "Run %s"
+msgstr "Exécuter %s"
+
+#. TRANSLATORS: show the installed version of a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:478
+msgid "Installed version"
+msgstr "Version installée"
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:486
+#, c-format
+msgid "Run version %s now"
+msgstr "Exécuter la version %s maintenant"
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:492
+msgid "Run now"
+msgstr "Exécuter maintenant"
+
+#. TRANSLATORS: update to a new version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:498
+#, c-format
+msgid "Update to version %s"
+msgstr "Mettre à jour vers la version %s"
+
+#. TRANSLATORS: To install a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:504
+#, c-format
+msgid "Install %s now"
+msgstr "Installer %s maintenant"
+
+#. TRANSLATORS: the version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:507
+msgid "Version"
+msgstr "Version"
+
+#. TRANSLATORS: noting found, so can't install
+#: ../contrib/browser-plugin/pk-plugin-install.c:512
+msgid "No packages found for your system"
+msgstr "Aucun paquet trouvé pour système"
+
+#. TRANSLATORS: package is being installed
+#: ../contrib/browser-plugin/pk-plugin-install.c:517
+msgid "Installing..."
+msgstr "Installation..."
+
+#. TRANSLATORS: downloading repo data so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:349
+msgid "Downloading details about the software sources."
+msgstr ""
+
+#. TRANSLATORS: downloading file lists so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:353
+msgid "Downloading filelists (this may take some time to complete)."
+msgstr ""
+
+#. TRANSLATORS: waiting for native lock
+#: ../contrib/command-not-found/pk-command-not-found.c:357
+#, fuzzy
+msgid "Waiting for package manager lock."
+msgstr "Recherche du nom du paquet."
+
+#. TRANSLATORS: loading package cache so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:361
+#, fuzzy
+msgid "Loading list of packages."
+msgstr "Téléchargement des paquets"
+
 #. TRANSLATORS: we failed to find the package, this shouldn't happen
-#: ../contrib/command-not-found/pk-command-not-found.c:369
+#: ../contrib/command-not-found/pk-command-not-found.c:420
 msgid "Failed to search for file"
 msgstr "Impossible de rechercher des fichiers"
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:493
+#: ../contrib/command-not-found/pk-command-not-found.c:557
 msgid "Failed to launch:"
 msgstr "Impossible de lancer :"
 
 #. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/command-not-found/pk-command-not-found.c:534
+#: ../contrib/command-not-found/pk-command-not-found.c:632
 msgid "PackageKit Command Not Found"
 msgstr "Commande inconnue de PackageKit"
 
 #. TRANSLATORS: the prefix of all the output telling the user why it's not executing
-#: ../contrib/command-not-found/pk-command-not-found.c:556
+#: ../contrib/command-not-found/pk-command-not-found.c:658
 msgid "Command not found."
 msgstr "Commande non trouvée"
 
 #. TRANSLATORS: tell the user what we think the command is
-#: ../contrib/command-not-found/pk-command-not-found.c:563
+#: ../contrib/command-not-found/pk-command-not-found.c:665
 msgid "Similar command is:"
 msgstr "Commande similaire :"
 
 #. TRANSLATORS: Ask the user if we should run the similar command
-#: ../contrib/command-not-found/pk-command-not-found.c:572
+#: ../contrib/command-not-found/pk-command-not-found.c:674
 msgid "Run similar command:"
 msgstr "Exécuter la commande similaire :"
 
 #. TRANSLATORS: show the user a list of commands that they could have meant
 #. TRANSLATORS: show the user a list of commands we could run
-#: ../contrib/command-not-found/pk-command-not-found.c:584
-#: ../contrib/command-not-found/pk-command-not-found.c:593
+#: ../contrib/command-not-found/pk-command-not-found.c:686
+#: ../contrib/command-not-found/pk-command-not-found.c:695
 msgid "Similar commands are:"
 msgstr "Commandes similaires :"
 
 #. TRANSLATORS: ask the user to choose a file to run
-#: ../contrib/command-not-found/pk-command-not-found.c:600
+#: ../contrib/command-not-found/pk-command-not-found.c:702
 msgid "Please choose a command to run"
 msgstr "Veuillez sélectionner une commande à exécuter"
 
 #. TRANSLATORS: tell the user what package provides the command
-#: ../contrib/command-not-found/pk-command-not-found.c:615
+#: ../contrib/command-not-found/pk-command-not-found.c:721
 msgid "The package providing this file is:"
 msgstr "Le paquet fournissant ce fichier est :"
 
 #. TRANSLATORS: as the user if we want to install a package to provide the command
-#: ../contrib/command-not-found/pk-command-not-found.c:620
+#: ../contrib/command-not-found/pk-command-not-found.c:726
 #, c-format
 msgid "Install package '%s' to provide command '%s'?"
-msgstr ""
-"Voulez-vous installer le paquet « %s » qui fournit la commande « %s » ?"
+msgstr "Voulez-vous installer le paquet « %s » qui fournit la commande « %s » ?"
 
 #. TRANSLATORS: Show the user a list of packages that provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:641
+#: ../contrib/command-not-found/pk-command-not-found.c:747
 msgid "Packages providing this file are:"
 msgstr "Les paquets fournissant ces fichiers sont :"
 
 #. TRANSLATORS: Show the user a list of packages that they can install to provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:650
+#: ../contrib/command-not-found/pk-command-not-found.c:756
 msgid "Suitable packages are:"
 msgstr "Les paquets appropriés sont :"
 
 #. get selection
 #. TRANSLATORS: ask the user to choose a file to install
-#: ../contrib/command-not-found/pk-command-not-found.c:658
+#: ../contrib/command-not-found/pk-command-not-found.c:764
 msgid "Please choose a package to install"
 msgstr "Veuillez choisir un paquet à installer"
 
-#. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/src/contents.cpp:298
-msgid "Getting package information..."
-msgstr "Obtention des informations sur les paquets..."
+#. TRANSLATORS: we are starting to install the packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:187
+#, fuzzy
+msgid "Starting install"
+msgstr "À installer"
 
-#. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/src/contents.cpp:304
+#. TRANSLATORS: we couldn't find the package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:397
+#, fuzzy, c-format
+msgid "Failed to find the package %s, or already installed: %s"
+msgstr "Le paquet %s est déjà installé"
+
+#. command line argument, simulate what would be done, but don't actually do it
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:553
+msgid ""
+"Don't actually install any packages, only simulate what would be installed"
+msgstr ""
+
+#. command line argument, do we skip packages that depend on the ones specified
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:556
+msgid "Do not install dependencies of the core packages"
+msgstr ""
+
+#. command line argument, do we operate quietly
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:559
+msgid "Do not display information or progress"
+msgstr ""
+
+#. TRANSLATORS: tool that gets called when the command is not found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:577
+#, fuzzy
+msgid "PackageKit Debuginfo Installer"
+msgstr "Interface PackageKit en console"
+
+#. TRANSLATORS: the use needs to specify a list of package names on the command line
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:589
+#, fuzzy, c-format
+msgid "ERROR: Specify package names to install."
+msgstr "Vous devez indiquer un paquet ou un fichier à installer"
+
+#. TRANSLATORS: we are getting the list of repositories
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:623
+#, fuzzy, c-format
+msgid "Getting sources list"
+msgstr "Récupération de la liste des paquets"
+
+#. TRANSLATORS: all completed 100%
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:641
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:681
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:716
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:800
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:844
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:911
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:955
 #, c-format
-msgid "Run %s"
-msgstr "Exécuter %s"
+msgid "OK."
+msgstr ""
 
-#. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/src/contents.cpp:310
-msgid "Installed version"
-msgstr "Version installée"
+#. TRANSLATORS: tell the user what we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:644
+#, c-format
+msgid "Found %i enabled and %i disabled sources."
+msgstr ""
 
-#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/src/contents.cpp:318
+#. TRANSLATORS: we're finding repositories that match out pattern
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:651
 #, c-format
-msgid "Run version %s now"
-msgstr "Exécuter la version %s maintenant"
+msgid "Finding debugging sources"
+msgstr ""
 
-#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/src/contents.cpp:324
-msgid "Run now"
-msgstr "Exécuter maintenant"
+#. TRANSLATORS: tell the user what we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:684
+#, c-format
+msgid "Found %i disabled debuginfo repos."
+msgstr ""
 
-#. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/src/contents.cpp:330
+#. TRANSLATORS: we're now enabling all the debug sources we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:691
 #, c-format
-msgid "Update to version %s"
-msgstr "Mettre à jour vers la version %s"
+msgid "Enabling debugging sources"
+msgstr ""
 
-#. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/src/contents.cpp:336
+#. TRANSLATORS: operation was not successful
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:701
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:785
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:829
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:896
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:940
+msgid "FAILED."
+msgstr ""
+
+#. TRANSLATORS: tell the user how many we enabled
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:719
 #, c-format
-msgid "Install %s now"
-msgstr "Installer %s maintenant"
+msgid "Enabled %i debugging sources."
+msgstr ""
 
-#. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/src/contents.cpp:339
-msgid "Version"
-msgstr "Version"
+#. TRANSLATORS: we're now finding packages that match in all the repos
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:726
+#, fuzzy, c-format
+msgid "Finding debugging packages"
+msgstr "Recherche du nom du paquet."
 
-#. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/src/contents.cpp:344
-msgid "No packages found for your system"
-msgstr "Aucun paquet trouvé pour système"
+#. TRANSLATORS: we couldn't find the package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:738
+#, fuzzy, c-format
+msgid "Failed to find the package %s: %s"
+msgstr "Impossible de trouver le paquet « %s » : %s"
 
-#. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/src/contents.cpp:349
-msgid "Installing..."
-msgstr "Installation..."
+#. TRANSLATORS: we couldn't find the debuginfo package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:761
+#, fuzzy, c-format
+msgid "Failed to find the debuginfo package %s: %s"
+msgstr "Impossible de trouver le paquet « %s » : %s"
+
+#. TRANSLATORS: no debuginfo packages could be found to be installed
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:789
+#, fuzzy, c-format
+msgid "Found no packages to install."
+msgstr "Aucun nouveau paquet n'a besoin d'être installé"
+
+#. TRANSLATORS: tell the user we found some packages, and then list them
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:803
+#, fuzzy, c-format
+msgid "Found %i packages:"
+msgstr "Téléchargement des paquets"
+
+#. TRANSLATORS: tell the user we are searching for deps
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:819
+#, c-format
+msgid "Finding packages that depend on these packages"
+msgstr ""
+
+#. TRANSLATORS: could not install, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:832
+#, fuzzy, c-format
+msgid "Could not find dependant packages: %s"
+msgstr "Impossible de trouver un paquet correspondant"
+
+#. TRANSLATORS: tell the user we found some more packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:848
+#, c-format
+msgid "Found %i extra packages."
+msgstr ""
+
+#. TRANSLATORS: tell the user we found some more packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:852
+#, fuzzy, c-format
+msgid "No extra packages required."
+msgstr "Vous devez indiquer un nom de paquet"
+
+#. TRANSLATORS: tell the user we found some packages (and deps), and then list them
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:861
+#, fuzzy, c-format
+msgid "Found %i packages to install:"
+msgstr "Aucun nouveau paquet n'a besoin d'être installé"
+
+#. TRANSLATORS: simulate mode is a testing mode where we quit before the action
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:874
+#, fuzzy, c-format
+msgid "Not installing packages in simulate mode"
+msgstr "Installation des paquets"
+
+#. TRANSLATORS: could not install, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:899
+#, fuzzy, c-format
+msgid "Could not install packages: %s"
+msgstr "Cet outil n'a pas pu installer les paquets : %s"
+
+#. TRANSLATORS: we are now disabling all debuginfo repos we previously enabled
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:931
+#, c-format
+msgid "Disabling sources previously enabled"
+msgstr ""
+
+#. TRANSLATORS: no debuginfo packages could be found to be installed, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:943
+#, c-format
+msgid "Could not disable the debugging sources: %s"
+msgstr ""
+
+#. TRANSLATORS: we disabled all the debugging repos that we enabled before
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:958
+#, c-format
+msgid "Disabled %i debugging sources."
+msgstr ""
+
+#. TRANSLATORS: couldn't open device to write
+#: ../contrib/device-rebind/pk-device-rebind.c:61
+#, fuzzy
+msgid "Failed to open file"
+msgstr "Impossible de rechercher des fichiers"
+
+#. TRANSLATORS: could not write to the device
+#: ../contrib/device-rebind/pk-device-rebind.c:70
+#, fuzzy
+msgid "Failed to write to the file"
+msgstr "Impossible de rechercher des fichiers"
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:110
+#: ../contrib/device-rebind/pk-device-rebind.c:147
+#, fuzzy
+msgid "Failed to write to device"
+msgstr "Impossible de sauvegarder sur le disque"
+
+#. TRANSLATORS: the device could not be found in sysfs
+#: ../contrib/device-rebind/pk-device-rebind.c:175
+#, fuzzy
+msgid "Device could not be found"
+msgstr "Le paquet n'a pas pu être trouvé"
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:202
+#, fuzzy
+msgid "Failed to unregister driver"
+msgstr "Impossible de créer un répertoire :"
+
+#. TRANSLATORS: we failed to bind the old driver
+#: ../contrib/device-rebind/pk-device-rebind.c:211
+#, fuzzy
+msgid "Failed to register driver"
+msgstr "Impossible de créer un répertoire :"
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:260
+#, fuzzy
+msgid "Device path not found"
+msgstr "Répertoire non trouvé"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:268
+msgid "Incorrect device path specified"
+msgstr ""
+
+#. command line argument, simulate what would be done, but don't actually do it
+#: ../contrib/device-rebind/pk-device-rebind.c:296
+msgid "Don't actually touch the hardware, only simulate what would be done"
+msgstr ""
+
+#. TRANSLATORS: command line option: a list of files to install
+#: ../contrib/device-rebind/pk-device-rebind.c:299
+msgid "Device paths"
+msgstr ""
+
+#. TRANSLATORS: tool that gets called when the device needs reloading after installing firmware
+#: ../contrib/device-rebind/pk-device-rebind.c:314
+#, fuzzy
+msgid "PackageKit Device Reloader"
+msgstr "Service Pack PackageKit"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:322
+#, fuzzy
+msgid "You need to specify at least one valid device path"
+msgstr "Vous devez indiquer une date"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:332
+msgid "This script can only be used by the root user"
+msgstr ""
+
+#. TRANSLATORS: we're going to verify the path first
+#: ../contrib/device-rebind/pk-device-rebind.c:341
+msgid "Verifying device path"
+msgstr ""
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:346
+#, fuzzy
+msgid "Failed to verify device path"
+msgstr "Impossible de rechercher des fichiers"
+
+#. TRANSLATORS: we're going to try
+#: ../contrib/device-rebind/pk-device-rebind.c:360
+msgid "Attempting to rebind device"
+msgstr ""
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:365
+#, fuzzy
+msgid "Failed to rebind device"
+msgstr "Impossible de créer un répertoire :"
 
 #: ../data/packagekit-catalog.xml.in.h:1
 msgid "PackageKit Catalog"
@@ -918,25 +1287,31 @@ msgstr "Liste des paquets de PackageKit"
 msgid "PackageKit Service Pack"
 msgstr "Service Pack PackageKit"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:1
+#. SECURITY:
+#. - Normal users do not require admin authentication to accept new
+#. licence agreements.
+#. - Change this to 'auth_admin' for environments where users should not
+#. be given the option to make legal decisions.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:7
 msgid "Accept EULA"
 msgstr "Accepter la licence du logiciel"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:2
+#: ../policy/org.freedesktop.packagekit.policy.in.h:8
 msgid "Authentication is required to accept a EULA"
 msgstr "Authentification requise pour accepter une licence"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:3
+#: ../policy/org.freedesktop.packagekit.policy.in.h:9
 msgid ""
 "Authentication is required to cancel a task that was not started by yourself"
 msgstr ""
 "Authentification requise pour annuler une tâche non initiée par vos soins"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:4
+#: ../policy/org.freedesktop.packagekit.policy.in.h:10
 msgid "Authentication is required to change software source parameters"
 msgstr "Authentification requise pour changer les paramètres des dépôts"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:5
+#: ../policy/org.freedesktop.packagekit.policy.in.h:11
 msgid ""
 "Authentication is required to consider a key used for signing packages as "
 "trusted"
@@ -944,27 +1319,32 @@ msgstr ""
 "Authentification requise afin de prendre en compte une clé de confiance pour "
 "les paquets signés"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:6
+#: ../policy/org.freedesktop.packagekit.policy.in.h:12
 msgid "Authentication is required to install a signed package"
 msgstr "Authentification requise pour installer un paquet signé"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:7
+#: ../policy/org.freedesktop.packagekit.policy.in.h:13
 msgid "Authentication is required to install an untrusted package"
 msgstr "Authentification requise pour installer un paquet non signé"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:8
+#: ../policy/org.freedesktop.packagekit.policy.in.h:14
 msgid "Authentication is required to refresh the system sources"
 msgstr "Authentification requise pour mettre à jour la liste des paquets"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:9
+#: ../policy/org.freedesktop.packagekit.policy.in.h:15
+#, fuzzy
+msgid "Authentication is required to reload the device with a new driver"
+msgstr "Authentification requise pour mettre à jour la liste des paquets"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:16
 msgid "Authentication is required to remove packages"
 msgstr "Authentification requise pour désinstaller des paquets"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:10
+#: ../policy/org.freedesktop.packagekit.policy.in.h:17
 msgid "Authentication is required to rollback a transaction"
 msgstr "Authentification requise pour annuler une transaction"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:11
+#: ../policy/org.freedesktop.packagekit.policy.in.h:18
 msgid ""
 "Authentication is required to set the network proxy used for downloading "
 "packages"
@@ -972,47 +1352,115 @@ msgstr ""
 "Authentification requise pour configurer le proxy réseau utilisé pour le "
 "téléchargement des paquets"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:12
+#: ../policy/org.freedesktop.packagekit.policy.in.h:19
 msgid "Authentication is required to update packages"
 msgstr "Authentification requise pour mettre à jour des paquets"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:13
+#. SECURITY:
+#. - Normal users are allowed to cancel their own task without
+#. authentication, but a different user id needs the admin password
+#. to cancel another users task.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:25
 msgid "Cancel foreign task"
 msgstr "Annulation de la tâche externe"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:14
+#. SECURITY:
+#. - Normal users require admin authentication to enable or disable
+#. software sources as this can be used to enable new updates or
+#. install different versions of software.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:31
 msgid "Change software source parameters"
 msgstr "Modifier les paramètres des dépôts"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:15
+#. SECURITY:
+#. - Normal users do not need authentication to install signed packages
+#. from signed repositories, as this cannot exploit a system.
+#. - Paranoid users (or parents!) can change this to 'auth_admin' or
+#. 'auth_admin_keep'.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:38
 msgid "Install signed package"
 msgstr "Installer un paquet signé"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:16
+#. SECURITY:
+#. - Normal users require admin authentication to install untrusted or
+#. unrecognised packages, as allowing users to do this without a
+#. password would be a massive security hole.
+#. - This is not retained as each package should be authenticated.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:45
 msgid "Install untrusted local file"
 msgstr "Installer un fichier local non signé"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:17
+#. SECURITY:
+#. - Normal users do not require admin authentication to refresh the
+#. cache, as this doesn't actually install or remove software.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:50
 msgid "Refresh system sources"
 msgstr "Rafraîchir la liste des paquets"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:18
+#. SECURITY:
+#. - Normal users require admin authentication to rebind a driver
+#. so that it works after we install firmware.
+#. - This should not be set to 'yes' as unprivileged users could then
+#. try to rebind drivers in use, for instance security authentication
+#. devices.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:58
+msgid "Reload a device"
+msgstr ""
+
+#. SECURITY:
+#. - Normal users require admin authentication to remove packages as
+#. this can make the system unbootable or stop other applications from
+#. working.
+#. - Be sure to close the tool used to remove the packages after the
+#. admin authentication has been obtained, otherwise packages can still
+#. be removed. If this is not possible, change this authentication to
+#. 'auth_admin'.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:68
 msgid "Remove package"
 msgstr "Supprimer un paquet"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:19
+#. SECURITY:
+#. - Normal users require admin authentication to rollback system state
+#. as this will change a large number of packages, and could expose the
+#. system to previously patched security vulnerabilities.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:74
 msgid "Rollback to a previous transaction"
 msgstr "Restauration"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:20
+#. SECURITY:
+#. - Normal users do not require admin authentication to set the proxy
+#. used for downloading packages.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:79
 msgid "Set network proxy"
 msgstr "Configurer le proxy réseau"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:21
+#. SECURITY:
+#. - Normal users require admin authentication to add signing keys.
+#. - This implies adding an explicit trust, and should not be granted
+#. without a secure authentication.
+#. - This is not kept as each package should be authenticated.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:86
 msgid "Trust a key used for signing packages"
 msgstr "Faire confiance à une clé utilisée pour signer les paquets"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:22
+#. SECURITY:
+#. - Normal users do not require admin authentication to update the
+#. system as the packages will be signed, and the action is required
+#. to update the system when unattended.
+#. - Changing this to anything other than 'yes' will break unattended
+#. updates.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:94
 msgid "Update packages"
 msgstr "Mettre à jour les paquets"
 
@@ -1043,60 +1491,98 @@ msgstr ""
 "répertoire système :"
 
 #. TRANSLATORS: a backend is the system package tool, e.g. yum, apt
-#: ../src/pk-main.c:193
+#: ../src/pk-main.c:205
 msgid "Packaging backend to use, e.g. dummy"
 msgstr "Moteur du gestionnaire de paquets, par ex. : dummy"
 
 #. TRANSLATORS: if we should run in the background
-#: ../src/pk-main.c:196
+#: ../src/pk-main.c:208
 msgid "Daemonize and detach from the terminal"
 msgstr "Crée un démon et se sépare du terminal"
 
 #. TRANSLATORS: if we should not monitor how long we are inactive for
-#: ../src/pk-main.c:202
+#: ../src/pk-main.c:214
 msgid "Disable the idle timer"
 msgstr "Désactive la minuterie d'inactivité"
 
 #. TRANSLATORS: show version
-#: ../src/pk-main.c:205
+#: ../src/pk-main.c:217
 msgid "Show version and exit"
 msgstr "Affiche la version et quitte"
 
 #. TRANSLATORS: exit after we've started up, used for user profiling
-#: ../src/pk-main.c:208
+#: ../src/pk-main.c:220
 msgid "Exit after a small delay"
 msgstr "Quitte après un court instant"
 
 #. TRANSLATORS: exit straight away, used for automatic profiling
-#: ../src/pk-main.c:211
+#: ../src/pk-main.c:223
 msgid "Exit after the engine has loaded"
 msgstr "Quitte immédiatement après chargement du gestionnaire"
 
 #. TRANSLATORS: describing the service that is running
-#: ../src/pk-main.c:226
+#: ../src/pk-main.c:238
 msgid "PackageKit service"
 msgstr "Service PackageKit"
 
 #. TRANSLATORS: fatal error, dbus is not running
-#: ../src/pk-main.c:263
+#: ../src/pk-main.c:275
 msgid "Cannot connect to the system bus"
 msgstr "Impossible de se connecter au bus système"
 
-#. TRANSLATORS: cannot register on system bus, unknown reason
-#: ../src/pk-main.c:313
-#, c-format
+#. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error follows
+#: ../src/pk-main.c:334
 msgid "Error trying to start:"
 msgstr "Impossible de démarrer :"
 
+#: ../src/pk-polkit-action-lookup.c:147
+#, fuzzy
+msgid "To install debugging packages, extra sources need to be enabled"
+msgstr "Aucun nouveau paquet n'a besoin d'être installé"
+
+#. TRANSLATORS: is not GPG signed
+#: ../src/pk-polkit-action-lookup.c:168 ../src/pk-polkit-action-lookup.c:187
+msgid "The software is not from a trusted source."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:173
+msgid "Do not update this package unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:174
+msgid "Do not update these packages unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:192
+msgid "Do not install this package unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:193
+msgid "Do not install these packages unless you are sure it is safe to do so."
+msgstr ""
+
+#. TRANSLATORS: warn the user that all bets are off
+#: ../src/pk-polkit-action-lookup.c:199
+msgid "Malicious software can damage your computer or cause other harm."
+msgstr ""
+
+#. TRANSLATORS: too many packages to list each one
+#: ../src/pk-polkit-action-lookup.c:274
+#, fuzzy
+msgid "Many packages"
+msgstr "Mettre à jour les paquets"
+
+#. TRANSLATORS: if the transaction is forced to install only trusted packages
+#: ../src/pk-polkit-action-lookup.c:334
+msgid "Only trusted"
+msgstr ""
+
 #~ msgid "You need to specify a search type, e.g. name"
 #~ msgstr "Vous devez indiquer un type de recherche, par ex. nom"
 
 #~ msgid "You need to specify a search term"
 #~ msgstr "Vous devez indiquer un terme à rechercher"
 
-#~ msgid "You need to specify a package or file to install"
-#~ msgstr "Vous devez indiquer un paquet ou un fichier à installer"
-
 #~ msgid "You need to specify a package to remove"
 #~ msgstr "Vous devez indiquer un paquet à désinstaller"
 
@@ -1121,10 +1607,6 @@ msgstr "Impossible de démarrer :"
 #~ msgstr "Vous devez indiquer un paquet pour en lister les fichiers"
 
 #, fuzzy
-#~ msgid "You need to specify a list file to create"
-#~ msgstr "Vous devez indiquer une date"
-
-#, fuzzy
 #~ msgid "You need to specify a list file to open"
 #~ msgstr "Vous devez indiquer une date"
 
@@ -1162,9 +1644,6 @@ msgstr "Impossible de démarrer :"
 #~ msgid "Could not find details for"
 #~ msgstr "Impossible de trouver les fichiers contenus dans ce paquet"
 
-#~ msgid "Could not find a package match"
-#~ msgstr "Impossible de trouver un paquet correspondant"
-
 #, fuzzy
 #~ msgid "Could not set database readonly"
 #~ msgstr "Impossible d'ouvrir la base de données : %s"
diff --git a/po/gu.po b/po/gu.po
index 4c74e98..57962d7 100644
--- a/po/gu.po
+++ b/po/gu.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gu\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-06-04 02:24+0000\n"
+"POT-Creation-Date: 2009-08-24 11:06+0100\n"
 "PO-Revision-Date: 2009-06-04 11:24+0530\n"
 "Last-Translator: Sweta Kothari <swkothar at redhat.com>\n"
 "Language-Team: Gujarati\n"
@@ -21,230 +21,264 @@ msgstr ""
 "\n"
 
 #. TRANSLATORS: this is an atomic transaction
-#: ../client/pk-console.c:234
+#: ../client/pk-console.c:235
 msgid "Transaction"
 msgstr "પરિવહન"
 
 #. TRANSLATORS: this is the time the transaction was started in system timezone
-#: ../client/pk-console.c:236
+#: ../client/pk-console.c:237
 msgid "System time"
 msgstr "સિસ્ટમ સમય"
 
 #. TRANSLATORS: this is if the transaction succeeded or not
-#: ../client/pk-console.c:238
+#: ../client/pk-console.c:239
 msgid "Succeeded"
 msgstr "સફળ થયેલ"
 
 #. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:238 ../client/pk-console.c:405
+#: ../client/pk-console.c:239 ../client/pk-console.c:406
 msgid "True"
 msgstr "True"
 
-#: ../client/pk-console.c:238 ../client/pk-console.c:405
+#: ../client/pk-console.c:239 ../client/pk-console.c:406
 msgid "False"
 msgstr "False"
 
 #. TRANSLATORS: this is the transactions role, e.g. "update-system"
-#: ../client/pk-console.c:240
+#. TRANSLATORS: the trasaction role, e.g. update-system
+#: ../client/pk-console.c:241 ../src/pk-polkit-action-lookup.c:327
 msgid "Role"
 msgstr "ભૂમિકા"
 
 #. TRANSLATORS: this is The duration of the transaction
-#: ../client/pk-console.c:245
+#: ../client/pk-console.c:246
 msgid "Duration"
 msgstr "ગાળો"
 
-#: ../client/pk-console.c:245
+#: ../client/pk-console.c:246
 msgid "(seconds)"
 msgstr "(સકંડો)"
 
 #. TRANSLATORS: this is The command line used to do the action
-#: ../client/pk-console.c:249
+#. TRANSLATORS: the command line of the thing that wants the authentication
+#: ../client/pk-console.c:250 ../src/pk-polkit-action-lookup.c:341
 msgid "Command line"
 msgstr "આદેશ વાક્ય"
 
 #. TRANSLATORS: this is the user ID of the user that started the action
-#: ../client/pk-console.c:251
+#: ../client/pk-console.c:252
 msgid "User ID"
 msgstr "વપરાશકર્તા ID"
 
 #. TRANSLATORS: this is the username, e.g. hughsie
-#: ../client/pk-console.c:258
+#: ../client/pk-console.c:259
 msgid "Username"
 msgstr "વપરાશકર્તાનામ"
 
 #. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
-#: ../client/pk-console.c:262
+#: ../client/pk-console.c:263
 msgid "Real name"
 msgstr "સાચુ નામ"
 
-#: ../client/pk-console.c:270
+#: ../client/pk-console.c:271
 msgid "Affected packages:"
 msgstr "અસર થયેલ પેકેજો:"
 
-#: ../client/pk-console.c:272
+#: ../client/pk-console.c:273
 msgid "Affected packages: None"
 msgstr "અસર થયેલ પેકેજો: કંઇ નહિં"
 
 #. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:297
+#: ../client/pk-console.c:298
 msgid "Distribution"
 msgstr "વિતરણ"
 
 #. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:299
+#: ../client/pk-console.c:300
 msgid "Type"
 msgstr "પ્રકાર"
 
 #. TRANSLATORS: this is any summary text describing the upgrade
 #. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:301 ../client/pk-console.c:324
+#: ../client/pk-console.c:302 ../client/pk-console.c:325
 msgid "Summary"
 msgstr "સારાંશ"
 
 #. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:313
+#: ../client/pk-console.c:314
 msgid "Category"
 msgstr "વર્ગ"
 
 #. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:315
+#: ../client/pk-console.c:316
 msgid "ID"
 msgstr "ID"
 
 #. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:318
+#: ../client/pk-console.c:319
 msgid "Parent"
 msgstr "પિતૃ"
 
 #. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:321
+#: ../client/pk-console.c:322
 msgid "Name"
 msgstr "નામ"
 
 #. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:327
+#: ../client/pk-console.c:328
 msgid "Icon"
 msgstr "ચિહ્ન"
 
 #. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:342
+#: ../client/pk-console.c:343
 msgid "Details about the update:"
 msgstr "સુધારા વિશે વિગતો:"
 
 #. TRANSLATORS: details about the update, package name and version
-#: ../client/pk-console.c:344
+#. TRANSLATORS: title, the names of the packages that the method is processing
+#: ../client/pk-console.c:345 ../src/pk-polkit-action-lookup.c:352
+#, fuzzy
 msgid "Package"
-msgstr "પેકેજ"
+msgid_plural "Packages"
+msgstr[0] "પેકેજ"
+msgstr[1] "પેકેજ"
 
 #. TRANSLATORS: details about the update, any packages that this update updates
-#: ../client/pk-console.c:347
+#: ../client/pk-console.c:348
 msgid "Updates"
 msgstr "સુધારો"
 
 #. TRANSLATORS: details about the update, any packages that this update obsoletes
-#: ../client/pk-console.c:351
+#: ../client/pk-console.c:352
 msgid "Obsoletes"
 msgstr "અપ્રચલિત"
 
 #. TRANSLATORS: details about the update, the vendor URLs
-#: ../client/pk-console.c:355
+#: ../client/pk-console.c:356
 msgid "Vendor"
 msgstr "વિક્રેતા"
 
 #. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:359
+#: ../client/pk-console.c:360
 msgid "Bugzilla"
 msgstr "બગઝીલા"
 
 #. TRANSLATORS: details about the update, the CVE URLs
-#: ../client/pk-console.c:363
+#: ../client/pk-console.c:364
 msgid "CVE"
 msgstr "CVE"
 
 #. TRANSLATORS: details about the update, if the package requires a restart
-#: ../client/pk-console.c:367
+#: ../client/pk-console.c:368
 msgid "Restart"
 msgstr "પુન:શરૂ કરો"
 
 #. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:371
+#: ../client/pk-console.c:372
 msgid "Update text"
 msgstr "લખાણને સુધારો"
 
 #. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:375
+#: ../client/pk-console.c:376
 msgid "Changes"
 msgstr "બદલાવો"
 
 #. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:379
+#: ../client/pk-console.c:380
 msgid "State"
 msgstr "સ્થિતિ"
 
 #. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:384
+#: ../client/pk-console.c:385
 msgid "Issued"
 msgstr "અદા કરેલ"
 
 #. TRANSLATORS: details about the update, date the update was updated
-#: ../client/pk-console.c:389
+#: ../client/pk-console.c:390
 msgid "Updated"
 msgstr "સુધારેલ"
 
-#: ../client/pk-console.c:476 ../client/pk-console.c:478
+#: ../client/pk-console.c:477 ../client/pk-console.c:479
 msgid "Percentage"
 msgstr "ટકાવારી"
 
-#: ../client/pk-console.c:478
+#: ../client/pk-console.c:479
 msgid "Unknown"
 msgstr "અજ્ઞાત"
 
 #. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:529
+#: ../client/pk-console.c:521
 msgid "System restart required by:"
 msgstr "સિસ્ટમ જરૂરિયાત પ્રમાણે પુન:શરૂ થાય છે:"
 
 #. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:532
+#: ../client/pk-console.c:524
 msgid "Session restart required:"
 msgstr "સત્ર પુન:શરૂ કરવુ જરૂરી:"
 
+#. TRANSLATORS: a package requires the system to be restarted due to a security update
+#: ../client/pk-console.c:527
+#, fuzzy
+msgid "System restart (security) required by:"
+msgstr "સિસ્ટમ જરૂરિયાત પ્રમાણે પુન:શરૂ થાય છે:"
+
+#. TRANSLATORS: a package requires the session to be restarted due to a security update
+#: ../client/pk-console.c:530
+#, fuzzy
+msgid "Session restart (security) required:"
+msgstr "સત્ર પુન:શરૂ કરવુ જરૂરી:"
+
 #. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:535
+#: ../client/pk-console.c:533
 msgid "Application restart required by:"
 msgstr "કાર્યક્રમ એ જરૂરિયાત પ્રમાણે પુન:શરૂ થાય છે:"
 
-#. TRANSLATORS: a package needs to restart they system
-#: ../client/pk-console.c:572
+#. TRANSLATORS: a package needs to restart their system
+#: ../client/pk-console.c:588
 msgid "Please restart the computer to complete the update."
 msgstr "સુધારો સમાપ્ત કરવા માટે મહેરબાની કરીને કમ્પ્યૂટર પુનઃશરૂ કરો."
 
 #. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:575
+#: ../client/pk-console.c:591
 msgid "Please logout and login to complete the update."
 msgstr "સુધારો સમાપ્ત કરવા માટે મહેરબાની કરીને બહાર નીકળો અને પછી ફરી પ્રવેશ કરો."
 
 #. TRANSLATORS: a package needs to restart the application
-#: ../client/pk-console.c:578
+#: ../client/pk-console.c:594
 msgid "Please restart the application as it is being used."
 msgstr "મહેરબાની કરીને કાર્યક્રમ ફરી શરૂ કરો કારણ કે તે વપરાઈ રહ્યો છે."
 
+#. TRANSLATORS: a package needs to restart their system (due to security)
+#: ../client/pk-console.c:597
+#, fuzzy
+msgid ""
+"Please restart the computer to complete the update as important security "
+"updates have been installed."
+msgstr "સુધારો સમાપ્ત કરવા માટે મહેરબાની કરીને કમ્પ્યૂટર પુનઃશરૂ કરો."
+
+#. TRANSLATORS: a package needs to restart the session (due to security)
+#: ../client/pk-console.c:600
+#, fuzzy
+msgid ""
+"Please logout and login to complete the update as important security updates "
+"have been installed."
+msgstr "સુધારો સમાપ્ત કરવા માટે મહેરબાની કરીને બહાર નીકળો અને પછી ફરી પ્રવેશ કરો."
+
 #. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:691
+#: ../client/pk-console.c:727
 #, c-format
 msgid "The package %s is already installed"
 msgstr "પેકેજ %s પહેલાથી જ સ્થાપિત થયેલ છે"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:699
+#: ../client/pk-console.c:735
 #, c-format
 msgid "The package %s could not be installed: %s"
 msgstr "પેકેજ %s સ્થાપિત કરી શક્યા નહિં: %s"
 
 #. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
-#: ../client/pk-console.c:724 ../client/pk-console.c:751
-#: ../client/pk-console.c:847 ../client/pk-console.c:964
+#: ../client/pk-console.c:760 ../client/pk-console.c:783
+#: ../client/pk-console.c:879 ../client/pk-console.c:996
 #: ../client/pk-tools-common.c:62 ../client/pk-tools-common.c:81
 #: ../client/pk-tools-common.c:89
 #, c-format
@@ -252,399 +286,404 @@ msgid "Internal error: %s"
 msgstr "આંતરિક ભૂલ: %s"
 
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:732 ../client/pk-console.c:1360
+#: ../client/pk-console.c:768 ../client/pk-console.c:1392
 #, c-format
 msgid "This tool could not install the packages: %s"
 msgstr "આ સાધન પેકેજો સ્થાપિત કરી શક્યું નહિં: %s"
 
 #. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:759
+#: ../client/pk-console.c:791
 #, c-format
 msgid "This tool could not install the files: %s"
 msgstr "આ સાધન ફાઈલો સ્થાપિત કરી શક્યું નહિં: %s"
 
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:815
+#: ../client/pk-console.c:847
 #, c-format
 msgid "This tool could not remove %s: %s"
 msgstr "આ સાધન %s દૂર કરી શક્યું નહિં: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:838 ../client/pk-console.c:876
-#: ../client/pk-console.c:909
+#: ../client/pk-console.c:870 ../client/pk-console.c:908
+#: ../client/pk-console.c:941
 #, c-format
 msgid "This tool could not remove the packages: %s"
 msgstr "આ સાધન પેકેજો દૂર કરી શક્યું નહિં: %s"
 
 #. TRANSLATORS: When removing, we might have to remove other dependencies
-#: ../client/pk-console.c:888
+#: ../client/pk-console.c:920
 msgid "The following packages have to be removed:"
 msgstr "નીચેના પેકેજો દૂર કરવામાં આવવા જોઈએ:"
 
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:895
+#: ../client/pk-console.c:927
 msgid "Proceed removing additional packages?"
 msgstr "શું વધારાના પેકેજો દૂર કરવા પર પ્રક્રિયા કરવી છે?"
 
 #. TRANSLATORS: We did not remove any packages
-#: ../client/pk-console.c:900
+#: ../client/pk-console.c:932
 msgid "The package removal was canceled!"
 msgstr "પેકેજ નિરાકરણ રદ થઈ હતી!"
 
 #. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:941
+#: ../client/pk-console.c:973
 #, c-format
 msgid "This tool could not download the package %s as it could not be found"
 msgstr "આ સાધન પેકેજ %s દૂર કરી શક્યું નહિં કારણ કે તે શોધી શકાયું નહિં"
 
 #. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:972
+#: ../client/pk-console.c:1004
 #, c-format
 msgid "This tool could not download the packages: %s"
 msgstr "આ સાધન પેકેજો ડાઉનલોડ કરી શક્યા નહિં: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:999 ../client/pk-console.c:1008
+#: ../client/pk-console.c:1031 ../client/pk-console.c:1040
 #, c-format
 msgid "This tool could not update %s: %s"
 msgstr "આ સાધન %s સુધારી શક્યું નહિં: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1030 ../client/pk-console.c:1038
+#: ../client/pk-console.c:1062 ../client/pk-console.c:1070
 #, c-format
 msgid "This tool could not get the requirements for %s: %s"
 msgstr "આ સાધન %s માટેની જરૂરીયાતો મેળવી શક્યું નહિં: %s"
 
 #. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:1060 ../client/pk-console.c:1068
+#: ../client/pk-console.c:1092 ../client/pk-console.c:1100
 #, c-format
 msgid "This tool could not get the dependencies for %s: %s"
 msgstr "આ સાધન %s માટે આધારભૂતપણાઓ મેળવી શક્યું નહિં: %s"
 
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:1090 ../client/pk-console.c:1098
+#: ../client/pk-console.c:1122 ../client/pk-console.c:1130
 #, c-format
 msgid "This tool could not get package details for %s: %s"
 msgstr "આ સાધન %s માટે પેકેજ વિગતો મેળવી શક્યું નહિં: %s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1120
+#: ../client/pk-console.c:1152
 #, c-format
 msgid "This tool could not find the files for %s: %s"
 msgstr "આ સાધન %s માટે ફાઈલો શોધી શક્યું નહિં: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1128
+#: ../client/pk-console.c:1160
 #, c-format
 msgid "This tool could not get the file list for %s: %s"
 msgstr "આ સાધન %s માટે ફાઈલ યાદી મેળવી શક્યું નહિં: %s"
 
 #. TRANSLATORS: There was an error getting the list of packages. The filename follows
-#: ../client/pk-console.c:1150
+#: ../client/pk-console.c:1182
 #, c-format
 msgid "File already exists: %s"
 msgstr "ફાઇલ પહેલેથી જ અસ્તિત્વ ધરાવે છે: %s"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1155 ../client/pk-console.c:1211
-#: ../client/pk-console.c:1286
+#: ../client/pk-console.c:1187 ../client/pk-console.c:1243
+#: ../client/pk-console.c:1318
 msgid "Getting package list"
 msgstr "પેકેજ યાદી મેળવી રહ્યા છે"
 
 #. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1161 ../client/pk-console.c:1217
-#: ../client/pk-console.c:1292
+#: ../client/pk-console.c:1193 ../client/pk-console.c:1249
+#: ../client/pk-console.c:1324
 #, c-format
 msgid "This tool could not get package list: %s"
 msgstr "આ સાધન પેકેજ યાદી મેળવી શક્યું નહિં: %s"
 
 #. TRANSLATORS: There was an error saving the list
-#: ../client/pk-console.c:1172
+#: ../client/pk-console.c:1204
 #, c-format
 msgid "Failed to save to disk"
 msgstr "ડિસ્કમાં સંગ્રહ કરવા માટે નિષ્ફળ"
 
 #. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1206 ../client/pk-console.c:1281
+#: ../client/pk-console.c:1238 ../client/pk-console.c:1313
 #, c-format
 msgid "File does not exist: %s"
 msgstr "ફાઇલ અસ્તિત્વ ધરાવતી નથી: %s"
 
 #. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1238
+#: ../client/pk-console.c:1270
 msgid "Packages to add"
 msgstr "ઉમેરવા માટે પેકેજો"
 
 #. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1246
+#: ../client/pk-console.c:1278
 msgid "Packages to remove"
 msgstr "દૂક કરવા માટે પેકેજો"
 
 #. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1314
+#: ../client/pk-console.c:1346
 #, c-format
 msgid "No new packages need to be installed"
 msgstr "સ્થાપિત કરવા માટે નવા પેકેજોની જરૂર નથી"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1320
+#: ../client/pk-console.c:1352
 msgid "To install"
 msgstr "સ્થાપન કરવા માટે"
 
 #. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1332
+#: ../client/pk-console.c:1364
 msgid "Searching for package: "
 msgstr "પેકેજ માટે શોધી રહ્યા છે: "
 
 #. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1336
+#: ../client/pk-console.c:1368
 msgid "not found."
 msgstr "શોધાયુ નથી."
 
 #. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1347
+#: ../client/pk-console.c:1379
 #, c-format
 msgid "No packages can be found to install"
 msgstr "સ્થાપિત કરવા માટે પેકેજોને શોધી શકાયા નહિં"
 
 #. TRANSLATORS: installing new packages from package list
-#: ../client/pk-console.c:1353
+#. TRANSLATORS: we are now installing the debuginfo packages we found earlier
+#: ../client/pk-console.c:1385
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:886
+#, c-format
 msgid "Installing packages"
 msgstr "પેકેજોને સ્થાપિત કરી રહ્યા છે"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1389
+#: ../client/pk-console.c:1421
 #, c-format
 msgid "This tool could not find the update details for %s: %s"
 msgstr "આ સાધન %s માટે સુધારા વિગતો શોધી શક્યું નહિં: %s"
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1397
+#: ../client/pk-console.c:1429
 #, c-format
 msgid "This tool could not get the update details for %s: %s"
 msgstr "આ સાધન %s માટે સુધારા વિગતો મેળવી શક્યું નહિં: %s"
 
 #. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
-#: ../client/pk-console.c:1443
+#: ../client/pk-console.c:1460
 msgid "Error:"
 msgstr "ભૂલ:"
 
 #. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1457
+#: ../client/pk-console.c:1474
 msgid "Package description"
 msgstr "પેકેજ વર્ણન"
 
 #. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
-#: ../client/pk-console.c:1473
+#: ../client/pk-console.c:1490
 msgid "Message:"
 msgstr "સંદેશ:"
 
 #. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1501
+#: ../client/pk-console.c:1518
 msgid "Package files"
 msgstr "પેકેજ ફાઈલો"
 
 #. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1509
+#: ../client/pk-console.c:1526
 msgid "No files"
 msgstr "કોઈ ફાઈલો નથી"
 
 #. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1532
+#: ../client/pk-console.c:1549
 msgid "Repository signature required"
 msgstr "રીપોઝીટરી સહી જરૂરી"
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1542
+#: ../client/pk-console.c:1559
 msgid "Do you accept this signature?"
 msgstr "શું તમે આ સહી સ્વીકારશો?"
 
 #. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1546
+#: ../client/pk-console.c:1563
 msgid "The signature was not accepted."
 msgstr "સહી સ્વીકારાયેલ ન હતી."
 
 #. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1580
+#: ../client/pk-console.c:1597
 msgid "End user license agreement required"
 msgstr "અંતિમ વપરાશકર્તા લાઈસન્સ મંજૂરીપત્રક જરૂરી"
 
 #. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1587
+#: ../client/pk-console.c:1604
 msgid "Do you agree to this license?"
 msgstr "શું તમે આ લાઈસન્સ સાથે મંજૂર છો?"
 
 #. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1591
+#: ../client/pk-console.c:1608
 msgid "The license was refused."
 msgstr "લાઈસન્સ રદ થયું હતું."
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1620
+#: ../client/pk-console.c:1637
 msgid "The daemon crashed mid-transaction!"
 msgstr "ડિમન મધ્ય-પરિવહન દરમ્યાન ભાંગી પડ્યું!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1673
+#: ../client/pk-console.c:1690
 msgid "PackageKit Console Interface"
 msgstr "PackageKit કન્સોલ ઈન્ટરફેસ"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1675
+#: ../client/pk-console.c:1692
 msgid "Subcommands:"
 msgstr "ઉપઆદેશો:"
 
 #. TRANSLATORS: command line argument, if we should show debugging information
 #. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:1767 ../client/pk-generate-pack.c:185
-#: ../client/pk-monitor.c:125
-#: ../contrib/command-not-found/pk-command-not-found.c:520
-#: ../src/pk-main.c:211
+#: ../client/pk-console.c:1785 ../client/pk-generate-pack.c:185
+#: ../client/pk-monitor.c:128
+#: ../contrib/command-not-found/pk-command-not-found.c:616
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:550
+#: ../contrib/device-rebind/pk-device-rebind.c:293 ../src/pk-main.c:211
 msgid "Show extra debugging information"
 msgstr "વધારાની ડિબગીંગ જાણકારી બતાવો"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1770 ../client/pk-monitor.c:127
+#: ../client/pk-console.c:1788 ../client/pk-monitor.c:130
 msgid "Show the program version and exit"
 msgstr "કાર્યક્રમ આવૃત્તિ બતાવો અને બહાર નીકળો"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1773
+#: ../client/pk-console.c:1791
 msgid "Set the filter, e.g. installed"
 msgstr "ગાળક સુયોજીત કરો, દા.ત. સ્થાપિત"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1776
+#: ../client/pk-console.c:1794
 msgid "Exit without waiting for actions to complete"
 msgstr "ક્રિયાઓ સમાપ્ત થવાની રાહ જોયા વિના બહાર નીકળો"
 
 #. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:1803
+#: ../client/pk-console.c:1821
 msgid "This tool could not connect to system DBUS."
 msgstr "આ સાધન સિસ્ટમ DBUS સાથે જોડી શક્યા નહિં."
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1894
+#: ../client/pk-console.c:1911
 msgid "The filter specified was invalid"
 msgstr "સ્પષ્ટ થયેલ ફિલ્ટર અયોગ્ય હતુ"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1912
+#: ../client/pk-console.c:1930
 msgid "A search type is required, e.g. name"
 msgstr "શોધ પ્રકારની જરૂરિયાત છે, દા.ત. નામ"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1918 ../client/pk-console.c:1926
-#: ../client/pk-console.c:1934 ../client/pk-console.c:1942
+#: ../client/pk-console.c:1937 ../client/pk-console.c:1946
+#: ../client/pk-console.c:1955 ../client/pk-console.c:1964
 msgid "A search term is required"
 msgstr "શોધ ટર્મ જરૂરી છે"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1948
+#: ../client/pk-console.c:1971
 msgid "Invalid search type"
 msgstr "અયોગ્ય શોધ પ્રકાર"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1954
+#: ../client/pk-console.c:1977
 msgid "A package name or filename to install is required"
 msgstr "સ્થાપન કરવા માટે પેકેજ નામ અથવા ફાઇલનામ જરૂરી છે"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1962
+#: ../client/pk-console.c:1986
 msgid "A type, key_id and package_id are required"
 msgstr "પ્રકાર, key_id અને package_id જરૂરી છે"
 
 #. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:1970
+#: ../client/pk-console.c:1995
 msgid "A package name to remove is required"
 msgstr "દૂર કરવા માટે પેકેજ નામ જરૂરી છે"
 
 #. TRANSLATORS: the user did not specify anything about what to download or where
-#: ../client/pk-console.c:1977
-msgid "A destination directory and then the package names to download are required"
+#: ../client/pk-console.c:2003
+#, fuzzy
+msgid "A destination directory and the package names to download are required"
 msgstr "અંતિમ મુકામ ડિરેક્ટરી અને પછી પેકેજ નામો ડાઉનલોડ કરવા માટે જરૂરી છે"
 
 #. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:1983
+#: ../client/pk-console.c:2010
 msgid "Directory not found"
 msgstr "ડિરેક્ટરી મળી નહિં"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1990
+#: ../client/pk-console.c:2018
 msgid "A licence identifier (eula-id) is required"
 msgstr "લાઈસન્સ ઓળખનાર (eula-id) જરૂરી છે"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1999
+#: ../client/pk-console.c:2028
 msgid "A transaction identifier (tid) is required"
 msgstr "પરિવહન ઓળખનાર (tid) જરૂરી છે"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:2015
+#: ../client/pk-console.c:2045
 msgid "A package name to resolve is required"
 msgstr "સુધારવા માટે પેકેજ નામ જરૂરી છે"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:2023 ../client/pk-console.c:2031
+#: ../client/pk-console.c:2054 ../client/pk-console.c:2063
 msgid "A repository name is required"
 msgstr "રીપોઝીટરી નામ જરૂરી છે"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2039
+#: ../client/pk-console.c:2072
 msgid "A repo name, parameter and value are required"
 msgstr "રીપો નામ, પરિમાણ અને કિંમતની જરૂર છે"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:2052
+#: ../client/pk-console.c:2086
 msgid "An action, e.g. 'update-system' is required"
 msgstr "ક્રિયા, દા.ત. 'update-system જરૂરી છે"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:2058
+#: ../client/pk-console.c:2093
 msgid "A correct role is required"
 msgstr "સાચી ભૂમિકા જરૂરી છે"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2064
+#: ../client/pk-console.c:2100
 msgid "Failed to get the time since this action was last completed"
 msgstr "આ ક્રિયા છેલ્લી સમાપ્ત થયેલ હતી ત્યાં સુધી સમયને મેળવવાનું નિષ્ફળ"
 
 #. TRANSLATORS: The user did not provide a package name
 #. TRANSLATORS: This is when the user fails to supply the package name
-#: ../client/pk-console.c:2073 ../client/pk-console.c:2084
-#: ../client/pk-console.c:2092 ../client/pk-console.c:2108
-#: ../client/pk-console.c:2116 ../client/pk-generate-pack.c:241
+#: ../client/pk-console.c:2110 ../client/pk-console.c:2122
+#: ../client/pk-console.c:2131 ../client/pk-console.c:2149
+#: ../client/pk-console.c:2158 ../client/pk-generate-pack.c:241
 msgid "A package name is required"
 msgstr "પેકેજ નામ જરૂરી છે"
 
 #. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:2100
+#: ../client/pk-console.c:2140
 msgid "A package provide string is required"
 msgstr "પેકેજ શબ્દમાળાની પૂરી પાડે છે તેની જરૂર છે"
 
 #. TRANSLATORS: The user didn't specify a filename to create as a list
-#: ../client/pk-console.c:2124
+#: ../client/pk-console.c:2167
 msgid "A list file name to create is required"
 msgstr "બનાવવા માટે ફાઇલ નામ યાદી જરૂરી છે"
 
 #. TRANSLATORS: The user didn't specify a filename to open as a list
-#: ../client/pk-console.c:2133 ../client/pk-console.c:2142
+#: ../client/pk-console.c:2177 ../client/pk-console.c:2187
 msgid "A list file to open is required"
 msgstr "ખોલવા માટે ફાઇલ યાદી જરૂરી છે"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2195
+#: ../client/pk-console.c:2241
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "વિકલ્પ '%s' આધારભૂત નથી"
 
 #. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2208
+#: ../client/pk-console.c:2254
 msgid "Incorrect privileges for this operation"
 msgstr "આ પ્રક્રિયા કરવા માટે અયોગ્ય વિશેષાધિકારો"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2211
+#: ../client/pk-console.c:2257
 msgid "Command failed"
 msgstr "આદેશ નિષ્ફળ"
 
@@ -670,7 +709,8 @@ msgstr "નહિં સમાવવાના આધારભૂતપણાઓà
 
 #. TRANSLATORS: the output location
 #: ../client/pk-generate-pack.c:191
-msgid "The output file or directory (the current directory is used if ommitted)"
+msgid ""
+"The output file or directory (the current directory is used if ommitted)"
 msgstr "આઉટપુટ ફાઇલ અથવા ડિરેક્ટરી (વર્તમાન ડિરેક્ટરી વાપરવામાં આવશે જો અવગણવામાં આવે)"
 
 #. TRANSLATORS: put a list of packages in the pack
@@ -709,7 +749,8 @@ msgstr "પેકેજ વ્યવસ્થાપક એ ક્રિયાન
 msgid ""
 "Service packs cannot be created as PackageKit was not built with libarchive "
 "support."
-msgstr "PackageKit એ libarchive આધાર સાથે બિલ્ટ ન હતુ તે તરીકે સેવા પેકેજોને બનાવી શકાતા નથી."
+msgstr ""
+"PackageKit એ libarchive આધાર સાથે બિલ્ટ ન હતુ તે તરીકે સેવા પેકેજોને બનાવી શકાતા નથી."
 
 #. TRANSLATORS: the user specified an absolute path, but didn't get the extension correct
 #: ../client/pk-generate-pack.c:291
@@ -765,10 +806,14 @@ msgid "Failed to create '%s': %s"
 msgstr "'%s' બનાવવામાં નિષ્ફળ: %s"
 
 #. TRANSLATORS: this is a program that monitors PackageKit
-#: ../client/pk-monitor.c:143
+#: ../client/pk-monitor.c:146
 msgid "PackageKit Monitor"
 msgstr "PackageKit મોનીટર"
 
+#: ../client/pk-monitor.c:183
+msgid "Cannot show the list of transactions"
+msgstr ""
+
 #. TRANSLATORS: The package was not found in any software sources
 #: ../client/pk-tools-common.c:118
 #, c-format
@@ -790,128 +835,433 @@ msgstr "મહેરબાની કરીને યોગ્ય પેકેજ
 msgid "Please enter a number from 1 to %i: "
 msgstr "મહેરબાની કરીને ૧ થી %i સુધીનો નંબર દાખલ કરો: "
 
+#. TRANSLATORS: when we are getting data from the daemon
+#: ../contrib/browser-plugin/pk-plugin-install.c:466
+msgid "Getting package information..."
+msgstr "પેકેજ જાણકારી મેળવી રહ્યા છીએ..."
+
+#. TRANSLATORS: run an applicaiton
+#: ../contrib/browser-plugin/pk-plugin-install.c:472
+#, c-format
+msgid "Run %s"
+msgstr "%s ચલાવો"
+
+#. TRANSLATORS: show the installed version of a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:478
+msgid "Installed version"
+msgstr "સ્થાપિત આવૃત્તિ"
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:486
+#, c-format
+msgid "Run version %s now"
+msgstr "આવૃત્તિ %s હમણાં ચલાવો"
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:492
+msgid "Run now"
+msgstr "હમણાં ચલાવો"
+
+#. TRANSLATORS: update to a new version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:498
+#, c-format
+msgid "Update to version %s"
+msgstr "આવૃત્તિ %s માં સુધારો"
+
+#. TRANSLATORS: To install a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:504
+#, c-format
+msgid "Install %s now"
+msgstr "%s હમણાં સ્થાપિત કરો"
+
+#. TRANSLATORS: the version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:507
+msgid "Version"
+msgstr "આવૃત્તિ"
+
+#. TRANSLATORS: noting found, so can't install
+#: ../contrib/browser-plugin/pk-plugin-install.c:512
+msgid "No packages found for your system"
+msgstr "તમારી સિસ્ટમ માટે કોઈ પેકેજો મળ્યા નહિં"
+
+#. TRANSLATORS: package is being installed
+#: ../contrib/browser-plugin/pk-plugin-install.c:517
+msgid "Installing..."
+msgstr "સ્થાપિત કરી રહ્યા છીએ..."
+
+#. TRANSLATORS: downloading repo data so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:349
+msgid "Downloading details about the software sources."
+msgstr ""
+
+#. TRANSLATORS: downloading file lists so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:353
+msgid "Downloading filelists (this may take some time to complete)."
+msgstr ""
+
+#. TRANSLATORS: waiting for native lock
+#: ../contrib/command-not-found/pk-command-not-found.c:357
+#, fuzzy
+msgid "Waiting for package manager lock."
+msgstr "પેકેજ નામ શોધી રહ્યા છીએ."
+
+#. TRANSLATORS: loading package cache so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:361
+#, fuzzy
+msgid "Loading list of packages."
+msgstr "પેકેજો ડાઉનલોડ કરી રહ્યા છીએ"
+
 #. TRANSLATORS: we failed to find the package, this shouldn't happen
-#: ../contrib/command-not-found/pk-command-not-found.c:371
+#: ../contrib/command-not-found/pk-command-not-found.c:420
 msgid "Failed to search for file"
 msgstr "ફાઇલ માટે શોધવાનું નિષ્ફળ"
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:495
+#: ../contrib/command-not-found/pk-command-not-found.c:557
 msgid "Failed to launch:"
 msgstr "શરૂ કરવામાં નિષ્ફળ:"
 
 #. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/command-not-found/pk-command-not-found.c:536
+#: ../contrib/command-not-found/pk-command-not-found.c:632
 msgid "PackageKit Command Not Found"
 msgstr "PackageKit આદેશ શોધાયો નહિં"
 
 #. TRANSLATORS: the prefix of all the output telling the user why it's not executing
-#: ../contrib/command-not-found/pk-command-not-found.c:559
+#: ../contrib/command-not-found/pk-command-not-found.c:658
 msgid "Command not found."
 msgstr "આદેશ શોધાયો નહિં."
 
 #. TRANSLATORS: tell the user what we think the command is
-#: ../contrib/command-not-found/pk-command-not-found.c:566
+#: ../contrib/command-not-found/pk-command-not-found.c:665
 msgid "Similar command is:"
 msgstr "સરખા આદેશો છે:"
 
 #. TRANSLATORS: Ask the user if we should run the similar command
-#: ../contrib/command-not-found/pk-command-not-found.c:575
+#: ../contrib/command-not-found/pk-command-not-found.c:674
 msgid "Run similar command:"
 msgstr "એજ આદેશને ચલાવો:"
 
 #. TRANSLATORS: show the user a list of commands that they could have meant
 #. TRANSLATORS: show the user a list of commands we could run
-#: ../contrib/command-not-found/pk-command-not-found.c:587
-#: ../contrib/command-not-found/pk-command-not-found.c:596
+#: ../contrib/command-not-found/pk-command-not-found.c:686
+#: ../contrib/command-not-found/pk-command-not-found.c:695
 msgid "Similar commands are:"
 msgstr "સરખા આદેશો છે:"
 
 #. TRANSLATORS: ask the user to choose a file to run
-#: ../contrib/command-not-found/pk-command-not-found.c:603
+#: ../contrib/command-not-found/pk-command-not-found.c:702
 msgid "Please choose a command to run"
 msgstr "મહેરબાની કરીને ચલાવવા માટે આદેશને પસંદ કરો"
 
 #. TRANSLATORS: tell the user what package provides the command
-#: ../contrib/command-not-found/pk-command-not-found.c:618
+#: ../contrib/command-not-found/pk-command-not-found.c:721
 msgid "The package providing this file is:"
 msgstr "પેકેજ આ ફાઇલને પૂરી પાડી રહ્યા છે:"
 
 #. TRANSLATORS: as the user if we want to install a package to provide the command
-#: ../contrib/command-not-found/pk-command-not-found.c:623
+#: ../contrib/command-not-found/pk-command-not-found.c:726
 #, c-format
 msgid "Install package '%s' to provide command '%s'?"
 msgstr "શું આદેશ '%s' પૂરા પાડવા માટે પેકેજ '%s' ને સ્થાપિત કરો?"
 
 #. TRANSLATORS: Show the user a list of packages that provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:644
+#: ../contrib/command-not-found/pk-command-not-found.c:747
 msgid "Packages providing this file are:"
 msgstr "પેકેજો એ આ ફાઇલને પૂરી પાડી રહી છે:"
 
 #. TRANSLATORS: Show the user a list of packages that they can install to provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:653
+#: ../contrib/command-not-found/pk-command-not-found.c:756
 msgid "Suitable packages are:"
 msgstr "સુસંગત પેકેજો છે:"
 
 #. get selection
 #. TRANSLATORS: ask the user to choose a file to install
-#: ../contrib/command-not-found/pk-command-not-found.c:661
+#: ../contrib/command-not-found/pk-command-not-found.c:764
 msgid "Please choose a package to install"
 msgstr "મહેરબાની કરીને સ્થાપિત કરવા માટે પેકેજને પસંદ કરો"
 
-#. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/src/contents.cpp:298
-msgid "Getting package information..."
-msgstr "પેકેજ જાણકારી મેળવી રહ્યા છીએ..."
+#. TRANSLATORS: we are starting to install the packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:187
+#, fuzzy
+msgid "Starting install"
+msgstr "સ્થાપન કરવા માટે"
 
-#. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/src/contents.cpp:304
+#. TRANSLATORS: we couldn't find the package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:397
+#, fuzzy, c-format
+msgid "Failed to find the package %s, or already installed: %s"
+msgstr "પેકેજ %s પહેલાથી જ સ્થાપિત થયેલ છે"
+
+#. command line argument, simulate what would be done, but don't actually do it
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:553
+msgid ""
+"Don't actually install any packages, only simulate what would be installed"
+msgstr ""
+
+#. command line argument, do we skip packages that depend on the ones specified
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:556
+msgid "Do not install dependencies of the core packages"
+msgstr ""
+
+#. command line argument, do we operate quietly
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:559
+msgid "Do not display information or progress"
+msgstr ""
+
+#. TRANSLATORS: tool that gets called when the command is not found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:577
+#, fuzzy
+msgid "PackageKit Debuginfo Installer"
+msgstr "PackageKit કન્સોલ ઈન્ટરફેસ"
+
+#. TRANSLATORS: the use needs to specify a list of package names on the command line
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:589
+#, fuzzy, c-format
+msgid "ERROR: Specify package names to install."
+msgstr "સ્થાપિત કરવા માટે નવા પેકેજોની જરૂર નથી"
+
+#. TRANSLATORS: we are getting the list of repositories
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:623
+#, fuzzy, c-format
+msgid "Getting sources list"
+msgstr "પેકેજ યાદી મેળવી રહ્યા છે"
+
+#. TRANSLATORS: all completed 100%
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:641
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:681
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:716
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:800
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:844
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:911
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:955
 #, c-format
-msgid "Run %s"
-msgstr "%s ચલાવો"
+msgid "OK."
+msgstr ""
 
-#. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/src/contents.cpp:310
-msgid "Installed version"
-msgstr "સ્થાપિત આવૃત્તિ"
+#. TRANSLATORS: tell the user what we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:644
+#, c-format
+msgid "Found %i enabled and %i disabled sources."
+msgstr ""
 
-#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/src/contents.cpp:318
+#. TRANSLATORS: we're finding repositories that match out pattern
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:651
 #, c-format
-msgid "Run version %s now"
-msgstr "આવૃત્તિ %s હમણાં ચલાવો"
+msgid "Finding debugging sources"
+msgstr ""
 
-#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/src/contents.cpp:324
-msgid "Run now"
-msgstr "હમણાં ચલાવો"
+#. TRANSLATORS: tell the user what we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:684
+#, c-format
+msgid "Found %i disabled debuginfo repos."
+msgstr ""
 
-#. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/src/contents.cpp:330
+#. TRANSLATORS: we're now enabling all the debug sources we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:691
 #, c-format
-msgid "Update to version %s"
-msgstr "આવૃત્તિ %s માં સુધારો"
+msgid "Enabling debugging sources"
+msgstr ""
 
-#. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/src/contents.cpp:336
+#. TRANSLATORS: operation was not successful
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:701
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:785
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:829
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:896
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:940
+msgid "FAILED."
+msgstr ""
+
+#. TRANSLATORS: tell the user how many we enabled
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:719
 #, c-format
-msgid "Install %s now"
-msgstr "%s હમણાં સ્થાપિત કરો"
+msgid "Enabled %i debugging sources."
+msgstr ""
 
-#. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/src/contents.cpp:339
-msgid "Version"
-msgstr "આવૃત્તિ"
+#. TRANSLATORS: we're now finding packages that match in all the repos
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:726
+#, fuzzy, c-format
+msgid "Finding debugging packages"
+msgstr "પેકેજ નામ શોધી રહ્યા છીએ."
 
-#. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/src/contents.cpp:344
-msgid "No packages found for your system"
-msgstr "તમારી સિસ્ટમ માટે કોઈ પેકેજો મળ્યા નહિં"
+#. TRANSLATORS: we couldn't find the package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:738
+#, fuzzy, c-format
+msgid "Failed to find the package %s: %s"
+msgstr "પેકેજ '%s' શોધવામાં નિષ્ફળ: %s"
 
-#. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/src/contents.cpp:349
-msgid "Installing..."
-msgstr "સ્થાપિત કરી રહ્યા છીએ..."
+#. TRANSLATORS: we couldn't find the debuginfo package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:761
+#, fuzzy, c-format
+msgid "Failed to find the debuginfo package %s: %s"
+msgstr "પેકેજ '%s' શોધવામાં નિષ્ફળ: %s"
+
+#. TRANSLATORS: no debuginfo packages could be found to be installed
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:789
+#, fuzzy, c-format
+msgid "Found no packages to install."
+msgstr "સ્થાપિત કરવા માટે નવા પેકેજોની જરૂર નથી"
+
+#. TRANSLATORS: tell the user we found some packages, and then list them
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:803
+#, fuzzy, c-format
+msgid "Found %i packages:"
+msgstr "પેકેજો ડાઉનલોડ કરી રહ્યા છીએ"
+
+#. TRANSLATORS: tell the user we are searching for deps
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:819
+#, c-format
+msgid "Finding packages that depend on these packages"
+msgstr ""
+
+#. TRANSLATORS: could not install, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:832
+#, fuzzy, c-format
+msgid "Could not find dependant packages: %s"
+msgstr "પેકેજ '%s' શોધવામાં નિષ્ફળ: %s"
+
+#. TRANSLATORS: tell the user we found some more packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:848
+#, c-format
+msgid "Found %i extra packages."
+msgstr ""
+
+#. TRANSLATORS: tell the user we found some more packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:852
+#, fuzzy, c-format
+msgid "No extra packages required."
+msgstr "પેકેજ નામ જરૂરી છે"
+
+#. TRANSLATORS: tell the user we found some packages (and deps), and then list them
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:861
+#, fuzzy, c-format
+msgid "Found %i packages to install:"
+msgstr "સ્થાપિત કરવા માટે નવા પેકેજોની જરૂર નથી"
+
+#. TRANSLATORS: simulate mode is a testing mode where we quit before the action
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:874
+#, fuzzy, c-format
+msgid "Not installing packages in simulate mode"
+msgstr "પેકેજોને સ્થાપિત કરી રહ્યા છે"
+
+#. TRANSLATORS: could not install, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:899
+#, fuzzy, c-format
+msgid "Could not install packages: %s"
+msgstr "આ સાધન પેકેજો સ્થાપિત કરી શક્યું નહિં: %s"
+
+#. TRANSLATORS: we are now disabling all debuginfo repos we previously enabled
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:931
+#, c-format
+msgid "Disabling sources previously enabled"
+msgstr ""
+
+#. TRANSLATORS: no debuginfo packages could be found to be installed, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:943
+#, c-format
+msgid "Could not disable the debugging sources: %s"
+msgstr ""
+
+#. TRANSLATORS: we disabled all the debugging repos that we enabled before
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:958
+#, c-format
+msgid "Disabled %i debugging sources."
+msgstr ""
+
+#. TRANSLATORS: couldn't open device to write
+#: ../contrib/device-rebind/pk-device-rebind.c:61
+#, fuzzy
+msgid "Failed to open file"
+msgstr "ફાઇલ માટે શોધવાનું નિષ્ફળ"
+
+#. TRANSLATORS: could not write to the device
+#: ../contrib/device-rebind/pk-device-rebind.c:70
+#, fuzzy
+msgid "Failed to write to the file"
+msgstr "ફાઇલ માટે શોધવાનું નિષ્ફળ"
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:110
+#: ../contrib/device-rebind/pk-device-rebind.c:147
+#, fuzzy
+msgid "Failed to write to device"
+msgstr "ડિસ્કમાં સંગ્રહ કરવા માટે નિષ્ફળ"
+
+#. TRANSLATORS: the device could not be found in sysfs
+#: ../contrib/device-rebind/pk-device-rebind.c:175
+#, fuzzy
+msgid "Device could not be found"
+msgstr "પેકેજ શોધી શક્યા નહિં"
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:202
+#, fuzzy
+msgid "Failed to unregister driver"
+msgstr "ડિરેક્ટરી બનાવવામાં નિષ્ફળ:"
+
+#. TRANSLATORS: we failed to bind the old driver
+#: ../contrib/device-rebind/pk-device-rebind.c:211
+#, fuzzy
+msgid "Failed to register driver"
+msgstr "ડિરેક્ટરી બનાવવામાં નિષ્ફળ:"
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:260
+#, fuzzy
+msgid "Device path not found"
+msgstr "ડિરેક્ટરી મળી નહિં"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:268
+msgid "Incorrect device path specified"
+msgstr ""
+
+#. command line argument, simulate what would be done, but don't actually do it
+#: ../contrib/device-rebind/pk-device-rebind.c:296
+msgid "Don't actually touch the hardware, only simulate what would be done"
+msgstr ""
+
+#. TRANSLATORS: command line option: a list of files to install
+#: ../contrib/device-rebind/pk-device-rebind.c:299
+msgid "Device paths"
+msgstr ""
+
+#. TRANSLATORS: tool that gets called when the device needs reloading after installing firmware
+#: ../contrib/device-rebind/pk-device-rebind.c:314
+#, fuzzy
+msgid "PackageKit Device Reloader"
+msgstr "PackageKit સેવા પેક"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:322
+msgid "You need to specify at least one valid device path"
+msgstr ""
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:332
+msgid "This script can only be used by the root user"
+msgstr ""
+
+#. TRANSLATORS: we're going to verify the path first
+#: ../contrib/device-rebind/pk-device-rebind.c:341
+msgid "Verifying device path"
+msgstr ""
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:346
+#, fuzzy
+msgid "Failed to verify device path"
+msgstr "ફાઇલ માટે શોધવાનું નિષ્ફળ"
+
+#. TRANSLATORS: we're going to try
+#: ../contrib/device-rebind/pk-device-rebind.c:360
+msgid "Attempting to rebind device"
+msgstr ""
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:365
+#, fuzzy
+msgid "Failed to rebind device"
+msgstr "ડિરેક્ટરી બનાવવામાં નિષ્ફળ:"
 
 #: ../data/packagekit-catalog.xml.in.h:1
 msgid "PackageKit Catalog"
@@ -925,23 +1275,30 @@ msgstr "PackageKit પેકેજ યાદી"
 msgid "PackageKit Service Pack"
 msgstr "PackageKit સેવા પેક"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:1
+#. SECURITY:
+#. - Normal users do not require admin authentication to accept new
+#. licence agreements.
+#. - Change this to 'auth_admin' for environments where users should not
+#. be given the option to make legal decisions.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:7
 msgid "Accept EULA"
 msgstr "EULA ને સ્વીકારો"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:2
+#: ../policy/org.freedesktop.packagekit.policy.in.h:8
 msgid "Authentication is required to accept a EULA"
 msgstr "EULA ને સ્વીકારવા માટે સત્તાધિકરણ જરૂરી છે"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:3
-msgid "Authentication is required to cancel a task that was not started by yourself"
+#: ../policy/org.freedesktop.packagekit.policy.in.h:9
+msgid ""
+"Authentication is required to cancel a task that was not started by yourself"
 msgstr "કાર્યને રદ કરવા માટે સત્તાધિકરણ જરૂરી છે કે જે તમારીજાતે શરૂ થયેલ ન હતુ"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:4
+#: ../policy/org.freedesktop.packagekit.policy.in.h:10
 msgid "Authentication is required to change software source parameters"
 msgstr "સોફ્ટવેર સ્ત્રોત પરિમાણોને બદલવા માટે સત્તાધિકરણ જરૂરી છે"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:5
+#: ../policy/org.freedesktop.packagekit.policy.in.h:11
 msgid ""
 "Authentication is required to consider a key used for signing packages as "
 "trusted"
@@ -949,73 +1306,147 @@ msgstr ""
 "વિશ્ર્વસનીય તરીકે પેકેજોમાં હસ્તાક્ષર કરવા માટે વપરાયેલ કીને નક્કી કરવા માટે "
 "સત્તાધિકરણજરૂરી છે"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:6
+#: ../policy/org.freedesktop.packagekit.policy.in.h:12
 msgid "Authentication is required to install a signed package"
 msgstr "હસ્તાક્ષર થયેલ પેકેજને સ્થાપિત કરવા માટે સત્તાધિકરણ જરૂરી છે"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:7
+#: ../policy/org.freedesktop.packagekit.policy.in.h:13
 msgid "Authentication is required to install an untrusted package"
 msgstr "વિશ્ર્વાસ ન હોય તેવા પેકેજને સ્થાપિત કરવા માટે સત્તાધિકરણ જરૂરી છે"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:8
+#: ../policy/org.freedesktop.packagekit.policy.in.h:14
 msgid "Authentication is required to refresh the system sources"
 msgstr "સિસ્ટમ સ્ત્રોતોને તાજુ કરવા માટે સત્તાધિકરણ જરૂરી છે"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:9
+#: ../policy/org.freedesktop.packagekit.policy.in.h:15
+#, fuzzy
+msgid "Authentication is required to reload the device with a new driver"
+msgstr "સિસ્ટમ સ્ત્રોતોને તાજુ કરવા માટે સત્તાધિકરણ જરૂરી છે"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:16
 msgid "Authentication is required to remove packages"
 msgstr "પેકેજોને દૂર કરવા માટે સત્તાધિકરણ જરૂરી છે"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:10
+#: ../policy/org.freedesktop.packagekit.policy.in.h:17
 msgid "Authentication is required to rollback a transaction"
 msgstr "પરિવહન ને પાછુ લાવવા માટે સત્તાધિકરણન જરૂરી છે"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:11
+#: ../policy/org.freedesktop.packagekit.policy.in.h:18
 msgid ""
 "Authentication is required to set the network proxy used for downloading "
 "packages"
-msgstr "પેકેજોને ડાઉનલોડ કરવા માટે વપરાયેલ નેટવર્ક પ્રોક્સીને સુયોજિત કરવા માટે સત્તાધિકરણ જરૂરી છે"
+msgstr ""
+"પેકેજોને ડાઉનલોડ કરવા માટે વપરાયેલ નેટવર્ક પ્રોક્સીને સુયોજિત કરવા માટે સત્તાધિકરણ જરૂરી છે"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:12
+#: ../policy/org.freedesktop.packagekit.policy.in.h:19
 msgid "Authentication is required to update packages"
 msgstr "પેકેજોને સુધારવા માટે સત્તાધિકરણ જરૂરી છે"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:13
+#. SECURITY:
+#. - Normal users are allowed to cancel their own task without
+#. authentication, but a different user id needs the admin password
+#. to cancel another users task.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:25
 msgid "Cancel foreign task"
 msgstr "પરદેશા ક્રિયાને રદ કરો"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:14
+#. SECURITY:
+#. - Normal users require admin authentication to enable or disable
+#. software sources as this can be used to enable new updates or
+#. install different versions of software.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:31
 msgid "Change software source parameters"
 msgstr "સોફ્ટવેર સ્ત્રોત પરિમાણોને બદલો"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:15
+#. SECURITY:
+#. - Normal users do not need authentication to install signed packages
+#. from signed repositories, as this cannot exploit a system.
+#. - Paranoid users (or parents!) can change this to 'auth_admin' or
+#. 'auth_admin_keep'.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:38
 msgid "Install signed package"
 msgstr "હસ્તાક્ષર થયેલ પેકેજને સ્થાપિત કરો"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:16
+#. SECURITY:
+#. - Normal users require admin authentication to install untrusted or
+#. unrecognised packages, as allowing users to do this without a
+#. password would be a massive security hole.
+#. - This is not retained as each package should be authenticated.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:45
 msgid "Install untrusted local file"
 msgstr "વિશ્ર્વાસ ન રખાતી સ્થાનિક ફાઇલને સ્થાપિત કરો"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:17
+#. SECURITY:
+#. - Normal users do not require admin authentication to refresh the
+#. cache, as this doesn't actually install or remove software.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:50
 msgid "Refresh system sources"
 msgstr "સિસ્ટમ સ્ત્રોતોને તાજુ કરો"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:18
+#. SECURITY:
+#. - Normal users require admin authentication to rebind a driver
+#. so that it works after we install firmware.
+#. - This should not be set to 'yes' as unprivileged users could then
+#. try to rebind drivers in use, for instance security authentication
+#. devices.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:58
+msgid "Reload a device"
+msgstr ""
+
+#. SECURITY:
+#. - Normal users require admin authentication to remove packages as
+#. this can make the system unbootable or stop other applications from
+#. working.
+#. - Be sure to close the tool used to remove the packages after the
+#. admin authentication has been obtained, otherwise packages can still
+#. be removed. If this is not possible, change this authentication to
+#. 'auth_admin'.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:68
 msgid "Remove package"
 msgstr "પેકેજ ને દૂર કરો"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:19
+#. SECURITY:
+#. - Normal users require admin authentication to rollback system state
+#. as this will change a large number of packages, and could expose the
+#. system to previously patched security vulnerabilities.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:74
 msgid "Rollback to a previous transaction"
 msgstr "પહેલાનાં પરિવહનને પાછુ લાવો"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:20
+#. SECURITY:
+#. - Normal users do not require admin authentication to set the proxy
+#. used for downloading packages.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:79
 msgid "Set network proxy"
 msgstr "નેટવર્ક પ્રોક્સીને સુયોજિત કરો"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:21
+#. SECURITY:
+#. - Normal users require admin authentication to add signing keys.
+#. - This implies adding an explicit trust, and should not be granted
+#. without a secure authentication.
+#. - This is not kept as each package should be authenticated.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:86
 msgid "Trust a key used for signing packages"
 msgstr "પેકેજોને હસ્તાક્ષર કરવા માટે વપરાયેલ કી પર વિશ્ર્વાસ રાખો"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:22
+#. SECURITY:
+#. - Normal users do not require admin authentication to update the
+#. system as the packages will be signed, and the action is required
+#. to update the system when unattended.
+#. - Changing this to anything other than 'yes' will break unattended
+#. updates.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:94
 msgid "Update packages"
 msgstr "પેકેજોને સુધારો"
 
@@ -1082,7 +1513,48 @@ msgid "Cannot connect to the system bus"
 msgstr "સિસ્ટમ બસ સાથે જોડાઈ શકતા નથી"
 
 #. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error follows
-#: ../src/pk-main.c:331
+#: ../src/pk-main.c:334
 msgid "Error trying to start:"
 msgstr "શરૂ કરવાનો પ્રયાસ કરવામાં ભૂલ:"
 
+#: ../src/pk-polkit-action-lookup.c:147
+#, fuzzy
+msgid "To install debugging packages, extra sources need to be enabled"
+msgstr "સ્થાપિત કરવા માટે નવા પેકેજોની જરૂર નથી"
+
+#. TRANSLATORS: is not GPG signed
+#: ../src/pk-polkit-action-lookup.c:168 ../src/pk-polkit-action-lookup.c:187
+msgid "The software is not from a trusted source."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:173
+msgid "Do not update this package unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:174
+msgid "Do not update these packages unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:192
+msgid "Do not install this package unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:193
+msgid "Do not install these packages unless you are sure it is safe to do so."
+msgstr ""
+
+#. TRANSLATORS: warn the user that all bets are off
+#: ../src/pk-polkit-action-lookup.c:199
+msgid "Malicious software can damage your computer or cause other harm."
+msgstr ""
+
+#. TRANSLATORS: too many packages to list each one
+#: ../src/pk-polkit-action-lookup.c:274
+#, fuzzy
+msgid "Many packages"
+msgstr "પેકેજોને સુધારો"
+
+#. TRANSLATORS: if the transaction is forced to install only trusted packages
+#: ../src/pk-polkit-action-lookup.c:334
+msgid "Only trusted"
+msgstr ""
diff --git a/po/he.po b/po/he.po
index e43dd60..ea352c7 100644
--- a/po/he.po
+++ b/po/he.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: packagekit.master\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-01-15 16:57+0000\n"
+"POT-Creation-Date: 2009-08-24 11:06+0100\n"
 "PO-Revision-Date: 2008-10-20 22:15GMT\n"
 "Last-Translator: Oron Peled <oron at actcom.co.il>\n"
 "Language-Team: Hebrew\n"
@@ -18,844 +18,1282 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
 #. TRANSLATORS: this is an atomic transaction
-#: ../client/pk-console.c:230
+#: ../client/pk-console.c:235
 msgid "Transaction"
 msgstr ""
 
 #. TRANSLATORS: this is the time the transaction was started in system timezone
-#: ../client/pk-console.c:232
+#: ../client/pk-console.c:237
 msgid "System time"
 msgstr ""
 
 #. TRANSLATORS: this is if the transaction succeeded or not
-#: ../client/pk-console.c:234
+#: ../client/pk-console.c:239
 msgid "Succeeded"
 msgstr ""
 
 #. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:234 ../client/pk-console.c:377
+#: ../client/pk-console.c:239 ../client/pk-console.c:406
 msgid "True"
 msgstr ""
 
-#: ../client/pk-console.c:234 ../client/pk-console.c:377
+#: ../client/pk-console.c:239 ../client/pk-console.c:406
 msgid "False"
 msgstr ""
 
 #. TRANSLATORS: this is the transactions role, e.g. "update-system"
-#: ../client/pk-console.c:236
+#. TRANSLATORS: the trasaction role, e.g. update-system
+#: ../client/pk-console.c:241 ../src/pk-polkit-action-lookup.c:327
 msgid "Role"
 msgstr ""
 
 #. TRANSLATORS: this is The duration of the transaction
-#: ../client/pk-console.c:241
+#: ../client/pk-console.c:246
 msgid "Duration"
 msgstr ""
 
-#: ../client/pk-console.c:241
+#: ../client/pk-console.c:246
 msgid "(seconds)"
 msgstr ""
 
 #. TRANSLATORS: this is The command line used to do the action
-#: ../client/pk-console.c:245
+#. TRANSLATORS: the command line of the thing that wants the authentication
+#: ../client/pk-console.c:250 ../src/pk-polkit-action-lookup.c:341
 #, fuzzy
 msgid "Command line"
 msgstr "פעולה נכשלה"
 
 #. TRANSLATORS: this is the user ID of the user that started the action
-#: ../client/pk-console.c:247
+#: ../client/pk-console.c:252
 msgid "User ID"
 msgstr ""
 
 #. TRANSLATORS: this is the username, e.g. hughsie
-#: ../client/pk-console.c:254
+#: ../client/pk-console.c:259
 msgid "Username"
 msgstr ""
 
 #. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
-#: ../client/pk-console.c:258
+#: ../client/pk-console.c:263
 msgid "Real name"
 msgstr ""
 
-#: ../client/pk-console.c:266
+#: ../client/pk-console.c:271
 #, fuzzy
 msgid "Affected packages:"
 msgstr "עדכן חבילה"
 
-#: ../client/pk-console.c:268
+#: ../client/pk-console.c:273
 msgid "Affected packages: None"
 msgstr ""
 
 #. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:293
+#: ../client/pk-console.c:298
 msgid "Distribution"
 msgstr ""
 
 #. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:295
+#: ../client/pk-console.c:300
 msgid "Type"
 msgstr ""
 
 #. TRANSLATORS: this is any summary text describing the upgrade
 #. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:297 ../client/pk-console.c:319
+#: ../client/pk-console.c:302 ../client/pk-console.c:325
 msgid "Summary"
 msgstr ""
 
 #. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:309
+#: ../client/pk-console.c:314
 msgid "Category"
 msgstr ""
 
 #. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:311
+#: ../client/pk-console.c:316
 msgid "ID"
 msgstr ""
 
 #. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:314
+#: ../client/pk-console.c:319
 msgid "Parent"
 msgstr ""
 
-#: ../client/pk-console.c:316
+#. TRANSLATORS: this is the name of the parent group
+#: ../client/pk-console.c:322
 msgid "Name"
 msgstr ""
 
 #. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:322
+#: ../client/pk-console.c:328
 msgid "Icon"
 msgstr ""
 
 #. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:337
+#: ../client/pk-console.c:343
 msgid "Details about the update:"
 msgstr "פרטי העדכון:"
 
-#: ../client/pk-console.c:338
+#. TRANSLATORS: details about the update, package name and version
+#. TRANSLATORS: title, the names of the packages that the method is processing
+#: ../client/pk-console.c:345 ../src/pk-polkit-action-lookup.c:352
 #, fuzzy
 msgid "Package"
-msgstr "קבצי החבילה"
+msgid_plural "Packages"
+msgstr[0] "קבצי החבילה"
+msgstr[1] "קבצי החבילה"
 
-#: ../client/pk-console.c:340
+#. TRANSLATORS: details about the update, any packages that this update updates
+#: ../client/pk-console.c:348
 #, fuzzy
 msgid "Updates"
 msgstr "עדכן חבילה"
 
-#: ../client/pk-console.c:342
+#. TRANSLATORS: details about the update, any packages that this update obsoletes
+#: ../client/pk-console.c:352
 msgid "Obsoletes"
 msgstr ""
 
-#: ../client/pk-console.c:344
+#. TRANSLATORS: details about the update, the vendor URLs
+#: ../client/pk-console.c:356
 msgid "Vendor"
 msgstr ""
 
-#: ../client/pk-console.c:346
+#. TRANSLATORS: details about the update, the bugzilla URLs
+#: ../client/pk-console.c:360
 msgid "Bugzilla"
 msgstr ""
 
-#: ../client/pk-console.c:348
+#. TRANSLATORS: details about the update, the CVE URLs
+#: ../client/pk-console.c:364
 msgid "CVE"
 msgstr ""
 
-#: ../client/pk-console.c:350
+#. TRANSLATORS: details about the update, if the package requires a restart
+#: ../client/pk-console.c:368
 msgid "Restart"
 msgstr ""
 
-#: ../client/pk-console.c:352
+#. TRANSLATORS: details about the update, any description of the update
+#: ../client/pk-console.c:372
 #, fuzzy
 msgid "Update text"
 msgstr "פרטי עדכון"
 
-#: ../client/pk-console.c:354
+#. TRANSLATORS: details about the update, the changelog for the package
+#: ../client/pk-console.c:376
 msgid "Changes"
 msgstr ""
 
-#: ../client/pk-console.c:356
+#. TRANSLATORS: details about the update, the ongoing state of the update
+#: ../client/pk-console.c:380
 msgid "State"
 msgstr ""
 
-#: ../client/pk-console.c:359
+#. TRANSLATORS: details about the update, date the update was issued
+#: ../client/pk-console.c:385
 msgid "Issued"
 msgstr ""
 
-#: ../client/pk-console.c:362
+#. TRANSLATORS: details about the update, date the update was updated
+#: ../client/pk-console.c:390
 #, fuzzy
 msgid "Updated"
 msgstr "פרטי עדכון"
 
-#: ../client/pk-console.c:448 ../client/pk-console.c:450
+#: ../client/pk-console.c:477 ../client/pk-console.c:479
 msgid "Percentage"
 msgstr ""
 
-#: ../client/pk-console.c:450
+#: ../client/pk-console.c:479
 msgid "Unknown"
 msgstr ""
 
 #. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:501
+#: ../client/pk-console.c:521
 #, fuzzy
 msgid "System restart required by:"
 msgstr "נדרש אתחול מחדש של המערכת"
 
 #. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:504
+#: ../client/pk-console.c:524
 #, fuzzy
 msgid "Session restart required:"
 msgstr "נדרש אתחול מחדש של המערכת"
 
+#. TRANSLATORS: a package requires the system to be restarted due to a security update
+#: ../client/pk-console.c:527
+#, fuzzy
+msgid "System restart (security) required by:"
+msgstr "נדרש אתחול מחדש של המערכת"
+
+#. TRANSLATORS: a package requires the session to be restarted due to a security update
+#: ../client/pk-console.c:530
+#, fuzzy
+msgid "Session restart (security) required:"
+msgstr "נדרש אתחול מחדש של המערכת"
+
 #. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:507
+#: ../client/pk-console.c:533
 #, fuzzy
 msgid "Application restart required by:"
 msgstr "נדרשת הפעלה מחדש של תוכנה"
 
-#: ../client/pk-console.c:543
+#. TRANSLATORS: a package needs to restart their system
+#: ../client/pk-console.c:588
 msgid "Please restart the computer to complete the update."
 msgstr "נא להפעיל את המחשב מחדש לצורך השלמת העדכון."
 
-#: ../client/pk-console.c:545
+#. TRANSLATORS: a package needs to restart the session
+#: ../client/pk-console.c:591
 msgid "Please logout and login to complete the update."
 msgstr "נא לצאת (logout) מהמחשב לצורך השלמת העדכון."
 
-#: ../client/pk-console.c:547
+#. TRANSLATORS: a package needs to restart the application
+#: ../client/pk-console.c:594
 msgid "Please restart the application as it is being used."
 msgstr "נא להפעיל את היישום מחדש, מכיוון שהוא בשימוש."
 
+#. TRANSLATORS: a package needs to restart their system (due to security)
+#: ../client/pk-console.c:597
+#, fuzzy
+msgid ""
+"Please restart the computer to complete the update as important security "
+"updates have been installed."
+msgstr "נא להפעיל את המחשב מחדש לצורך השלמת העדכון."
+
+#. TRANSLATORS: a package needs to restart the session (due to security)
+#: ../client/pk-console.c:600
+#, fuzzy
+msgid ""
+"Please logout and login to complete the update as important security updates "
+"have been installed."
+msgstr "נא לצאת (logout) מהמחשב לצורך השלמת העדכון."
+
 #. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:659
+#: ../client/pk-console.c:727
 #, fuzzy, c-format
 msgid "The package %s is already installed"
 msgstr "לא ניתן להתקין את החבילה '%s':‏ %s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:667
+#: ../client/pk-console.c:735
 #, fuzzy, c-format
 msgid "The package %s could not be installed: %s"
 msgstr "לא ניתן להתקין את החבילה '%s':‏ %s"
 
 #. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
-#: ../client/pk-console.c:692 ../client/pk-console.c:719
-#: ../client/pk-console.c:815 ../client/pk-console.c:932
-#: ../client/pk-tools-common.c:61 ../client/pk-tools-common.c:79
-#: ../client/pk-tools-common.c:86
+#: ../client/pk-console.c:760 ../client/pk-console.c:783
+#: ../client/pk-console.c:879 ../client/pk-console.c:996
+#: ../client/pk-tools-common.c:62 ../client/pk-tools-common.c:81
+#: ../client/pk-tools-common.c:89
 #, c-format
 msgid "Internal error: %s"
 msgstr "שגיאה פנימית: %s"
 
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:700 ../client/pk-console.c:1327
+#: ../client/pk-console.c:768 ../client/pk-console.c:1392
 #, c-format
 msgid "This tool could not install the packages: %s"
 msgstr "כישלון בהתקנת החבילות: %s"
 
 #. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:727
+#: ../client/pk-console.c:791
 #, c-format
 msgid "This tool could not install the files: %s"
 msgstr "כישלון בהתקנת הקבצים: %s"
 
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:783
+#: ../client/pk-console.c:847
 #, fuzzy, c-format
 msgid "This tool could not remove %s: %s"
 msgstr "כישלון בהסרת '%s':‏ %ss"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:806 ../client/pk-console.c:844
-#: ../client/pk-console.c:877
+#: ../client/pk-console.c:870 ../client/pk-console.c:908
+#: ../client/pk-console.c:941
 #, c-format
 msgid "This tool could not remove the packages: %s"
 msgstr "כישלון בהסרת החבילות: %s"
 
 #. TRANSLATORS: When removing, we might have to remove other dependencies
-#: ../client/pk-console.c:856
+#: ../client/pk-console.c:920
 msgid "The following packages have to be removed:"
 msgstr "יש להסיר את החבילות הבאות:"
 
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:863
+#: ../client/pk-console.c:927
 msgid "Proceed removing additional packages?"
 msgstr "האם להמשיך בהסרת חבילות נוספות?"
 
 #. TRANSLATORS: We did not remove any packages
-#: ../client/pk-console.c:868
+#: ../client/pk-console.c:932
 msgid "The package removal was canceled!"
 msgstr "הסרת החבילה בוטלה!"
 
 #. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:909
+#: ../client/pk-console.c:973
 #, fuzzy, c-format
 msgid "This tool could not download the package %s as it could not be found"
 msgstr "כישלון בהורדה מהאינטרנט של החבילה '%s' מכיוון שהיא לא נמצאה"
 
 #. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:940
+#: ../client/pk-console.c:1004
 #, c-format
 msgid "This tool could not download the packages: %s"
 msgstr "כישלון בהורדה מהאינטרנט של החבילות: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:967 ../client/pk-console.c:976
+#: ../client/pk-console.c:1031 ../client/pk-console.c:1040
 #, fuzzy, c-format
 msgid "This tool could not update %s: %s"
 msgstr "כישלון בעדכון של '%s':‏‏ %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:998 ../client/pk-console.c:1006
+#: ../client/pk-console.c:1062 ../client/pk-console.c:1070
 #, fuzzy, c-format
 msgid "This tool could not get the requirements for %s: %s"
 msgstr "כישלון בהשגת הדרישות המקדימות עבור '%s':‏‏ %s"
 
 #. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:1028 ../client/pk-console.c:1036
+#: ../client/pk-console.c:1092 ../client/pk-console.c:1100
 #, fuzzy, c-format
 msgid "This tool could not get the dependencies for %s: %s"
 msgstr "כישלון בהשגת התלויות עבור '%s':‏‏ %s"
 
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:1058 ../client/pk-console.c:1066
+#: ../client/pk-console.c:1122 ../client/pk-console.c:1130
 #, fuzzy, c-format
 msgid "This tool could not get package details for %s: %s"
 msgstr "כישלון בהשגת פרטי החבילה '%s':‏‏ %s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1088
+#: ../client/pk-console.c:1152
 #, fuzzy, c-format
 msgid "This tool could not find the files for %s: %s"
 msgstr "כישלון באיתור הקבצים עבור '%s':‏‏ %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1096
+#: ../client/pk-console.c:1160
 #, fuzzy, c-format
 msgid "This tool could not get the file list for %s: %s"
 msgstr "כישלון בהשגת רשימת הקבצים עבור '%s':‏‏ %s"
 
 #. TRANSLATORS: There was an error getting the list of packages. The filename follows
-#: ../client/pk-console.c:1118
+#: ../client/pk-console.c:1182
 #, c-format
 msgid "File already exists: %s"
 msgstr ""
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1123 ../client/pk-console.c:1179
-#: ../client/pk-console.c:1254
+#: ../client/pk-console.c:1187 ../client/pk-console.c:1243
+#: ../client/pk-console.c:1318
 #, fuzzy
 msgid "Getting package list"
 msgstr "קורא מידע אודות החבילה..."
 
 #. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1129 ../client/pk-console.c:1185
-#: ../client/pk-console.c:1260
+#: ../client/pk-console.c:1193 ../client/pk-console.c:1249
+#: ../client/pk-console.c:1324
 #, fuzzy, c-format
 msgid "This tool could not get package list: %s"
 msgstr "כישלון בהסרת החבילות: %s"
 
 #. TRANSLATORS: There was an error saving the list
-#: ../client/pk-console.c:1140
+#: ../client/pk-console.c:1204
 #, fuzzy, c-format
 msgid "Failed to save to disk"
 msgstr "כישלון בפעם שעברה"
 
 #. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1174 ../client/pk-console.c:1249
+#: ../client/pk-console.c:1238 ../client/pk-console.c:1313
 #, c-format
 msgid "File does not exist: %s"
 msgstr ""
 
 #. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1206
+#: ../client/pk-console.c:1270
 #, fuzzy
 msgid "Packages to add"
 msgstr "מוניטור PackageKit"
 
 #. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1214
+#: ../client/pk-console.c:1278
 #, fuzzy
 msgid "Packages to remove"
 msgstr "שירות PackageKit"
 
 #. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1282
+#: ../client/pk-console.c:1346
 #, fuzzy, c-format
 msgid "No new packages need to be installed"
 msgstr "לא ניתן להתקין את החבילה '%s':‏ %s"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1288
+#: ../client/pk-console.c:1352
 msgid "To install"
 msgstr ""
 
 #. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1299
+#: ../client/pk-console.c:1364
 msgid "Searching for package: "
 msgstr ""
 
 #. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1303
+#: ../client/pk-console.c:1368
 #, fuzzy
 msgid "not found."
 msgstr "תיקייה לא נמצאה"
 
 #. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1314
+#: ../client/pk-console.c:1379
 #, fuzzy, c-format
 msgid "No packages can be found to install"
 msgstr "לא נמצאו חבילות עבור המערכת שלך"
 
 #. TRANSLATORS: installing new packages from package list
-#: ../client/pk-console.c:1320
-#, fuzzy
+#. TRANSLATORS: we are now installing the debuginfo packages we found earlier
+#: ../client/pk-console.c:1385
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:886
+#, fuzzy, c-format
 msgid "Installing packages"
 msgstr "התקן חבילה"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1356
+#: ../client/pk-console.c:1421
 #, fuzzy, c-format
 msgid "This tool could not find the update details for %s: %s"
 msgstr "כישלון בהשגת פרטי העדכון עבור '%s':‏‏ %s"
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1364
+#: ../client/pk-console.c:1429
 #, fuzzy, c-format
 msgid "This tool could not get the update details for %s: %s"
 msgstr "כישלון בהשגת פרטי העדכון עבור '%s':‏‏ %s"
 
 #. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
-#: ../client/pk-console.c:1410
+#: ../client/pk-console.c:1460
 msgid "Error:"
 msgstr "שגיאה:"
 
 #. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1424
+#: ../client/pk-console.c:1474
 msgid "Package description"
 msgstr "תיאור חבילה"
 
+#. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
+#: ../client/pk-console.c:1490
+msgid "Message:"
+msgstr ""
+
 #. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1458
+#: ../client/pk-console.c:1518
 msgid "Package files"
 msgstr "קבצי החבילה"
 
 #. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1466
+#: ../client/pk-console.c:1526
 msgid "No files"
 msgstr "אין קבצים"
 
 #. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1489
+#: ../client/pk-console.c:1549
 msgid "Repository signature required"
 msgstr "נדרשת חתימה של מאגר התכנה"
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1499
+#: ../client/pk-console.c:1559
 #, fuzzy
 msgid "Do you accept this signature?"
 msgstr "האם לתת אמון בחתימה זו?"
 
 #. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1503
+#: ../client/pk-console.c:1563
 msgid "The signature was not accepted."
 msgstr "החתימה נדחתה."
 
 #. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1537
+#: ../client/pk-console.c:1597
 msgid "End user license agreement required"
 msgstr "נדרש הסכם משתמש קצה (EULA)"
 
 #. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1544
+#: ../client/pk-console.c:1604
 msgid "Do you agree to this license?"
 msgstr "האם הרשיון מקובל עליך?"
 
 #. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1548
+#: ../client/pk-console.c:1608
 msgid "The license was refused."
 msgstr "אין הסכמה לרשיון."
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1577
+#: ../client/pk-console.c:1637
 msgid "The daemon crashed mid-transaction!"
 msgstr "תכנית השירות (daemon) התרסקה באמצע טראנזקציה!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1630
+#: ../client/pk-console.c:1690
 msgid "PackageKit Console Interface"
 msgstr "מנשק שורת פקודה של PackageKit"
 
-#: ../client/pk-console.c:1630
+#. these are commands we can use with pkcon
+#: ../client/pk-console.c:1692
 msgid "Subcommands:"
 msgstr "תת-פקודות:"
 
-#: ../client/pk-console.c:1719 ../client/pk-generate-pack.c:184
-#: ../client/pk-monitor.c:115
-#: ../contrib/command-not-found/pk-command-not-found.c:510
-#: ../src/pk-main.c:192
+#. TRANSLATORS: command line argument, if we should show debugging information
+#. TRANSLATORS: if we should show debugging data
+#: ../client/pk-console.c:1785 ../client/pk-generate-pack.c:185
+#: ../client/pk-monitor.c:128
+#: ../contrib/command-not-found/pk-command-not-found.c:616
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:550
+#: ../contrib/device-rebind/pk-device-rebind.c:293 ../src/pk-main.c:211
 msgid "Show extra debugging information"
 msgstr "הצג מידע נוסף לצורך איתור שגיאות"
 
-#: ../client/pk-console.c:1721 ../client/pk-monitor.c:117
+#. TRANSLATORS: command line argument, just show the version string
+#: ../client/pk-console.c:1788 ../client/pk-monitor.c:130
 msgid "Show the program version and exit"
 msgstr "הצג את גרסת התוכנה וסיים"
 
-#: ../client/pk-console.c:1723
+#. TRANSLATORS: command line argument, use a filter to narrow down results
+#: ../client/pk-console.c:1791
 msgid "Set the filter, e.g. installed"
 msgstr "קבע את המסנן, למשל, מותקנות"
 
-#: ../client/pk-console.c:1725
+#. TRANSLATORS: command line argument, work asynchronously
+#: ../client/pk-console.c:1794
 msgid "Exit without waiting for actions to complete"
 msgstr "צא ללא המתנה לסיום הפעולות"
 
 #. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:1752
+#: ../client/pk-console.c:1821
 msgid "This tool could not connect to system DBUS."
 msgstr "התחברות ל-DBUS הכלל מערכתי נכשלה."
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1839
+#: ../client/pk-console.c:1911
 msgid "The filter specified was invalid"
 msgstr ""
 
-#: ../client/pk-console.c:1856
-msgid "You need to specify a search type, e.g. name"
-msgstr "יש לקבוע סוג חיפוש, למשל שמי"
+#. TRANSLATORS: a search type can be name, details, file, etc
+#: ../client/pk-console.c:1930
+msgid "A search type is required, e.g. name"
+msgstr ""
 
-#: ../client/pk-console.c:1861 ../client/pk-console.c:1868
-#: ../client/pk-console.c:1875 ../client/pk-console.c:1882
-#: ../client/pk-console.c:1990 ../client/pk-console.c:2000
-#: ../client/pk-console.c:2007 ../client/pk-console.c:2014
-msgid "You need to specify a search term"
-msgstr "יש לציין פריט חיפוש"
+#. TRANSLATORS: the user needs to provide a search term
+#: ../client/pk-console.c:1937 ../client/pk-console.c:1946
+#: ../client/pk-console.c:1955 ../client/pk-console.c:1964
+msgid "A search term is required"
+msgstr ""
 
-#: ../client/pk-console.c:1887
+#. TRANSLATORS: the search type was provided, but invalid
+#: ../client/pk-console.c:1971
 msgid "Invalid search type"
 msgstr "סוג חיפוש לא תקין"
 
-#: ../client/pk-console.c:1892
-msgid "You need to specify a package or file to install"
-msgstr "יש לקבוע חבילה או קובץ להתקנה"
+#. TRANSLATORS: the user did not specify what they wanted to install
+#: ../client/pk-console.c:1977
+msgid "A package name or filename to install is required"
+msgstr ""
 
-#: ../client/pk-console.c:1899
-msgid "You need to specify a type, key_id and package_id"
+#. TRANSLATORS: geeky error, 99.9999% of users won't see this
+#: ../client/pk-console.c:1986
+#, fuzzy
+msgid "A type, key_id and package_id are required"
 msgstr "יש לקבוע סוג, זיהוי מפתח וזיהוי חבילה"
 
-#: ../client/pk-console.c:1906
-msgid "You need to specify a package to remove"
-msgstr "יש לקבוע חבילה להסרה"
+#. TRANSLATORS: the user did not specify what they wanted to remove
+#: ../client/pk-console.c:1995
+#, fuzzy
+msgid "A package name to remove is required"
+msgstr "יש להסיר את החבילות הבאות"
 
-#: ../client/pk-console.c:1912
-msgid ""
-"You need to specify the destination directory and then the packages to "
-"download"
+#. TRANSLATORS: the user did not specify anything about what to download or where
+#: ../client/pk-console.c:2003
+#, fuzzy
+msgid "A destination directory and the package names to download are required"
 msgstr "יש לקבוע תיקיית יעד ואז את החבילות להורדה"
 
-#: ../client/pk-console.c:1917
+#. TRANSLATORS: the directory does not exist, so we can't continue
+#: ../client/pk-console.c:2010
 msgid "Directory not found"
 msgstr "תיקייה לא נמצאה"
 
-#: ../client/pk-console.c:1923
-msgid "You need to specify a licence identifier (eula-id)"
+#. TRANSLATORS: geeky error, 99.9999% of users won't see this
+#: ../client/pk-console.c:2018
+#, fuzzy
+msgid "A licence identifier (eula-id) is required"
 msgstr "יש לציין זיהוי של הסכם משתמש הקצה (eula-id)"
 
-#: ../client/pk-console.c:1939
-msgid "You need to specify a package name to resolve"
-msgstr "יש לציין שם חבילה לבירור"
+#. TRANSLATORS: geeky error, 99.9999% of users won't see this
+#: ../client/pk-console.c:2028
+msgid "A transaction identifier (tid) is required"
+msgstr ""
+
+#. TRANSLATORS: The user did not specify a package name
+#: ../client/pk-console.c:2045
+#, fuzzy
+msgid "A package name to resolve is required"
+msgstr "יש להסיר את החבילות הבאות"
 
-#: ../client/pk-console.c:1946 ../client/pk-console.c:1953
-msgid "You need to specify a repository name"
-msgstr "יש לציין שם מאגר תכנה"
+#. TRANSLATORS: The user did not specify a repository (software source) name
+#: ../client/pk-console.c:2054 ../client/pk-console.c:2063
+#, fuzzy
+msgid "A repository name is required"
+msgstr "נדרשת חתימה של מאגר התכנה"
 
-#: ../client/pk-console.c:1960
-msgid "You need to specify a repo name/parameter and value"
+#. TRANSLATORS: The user didn't provide any data
+#: ../client/pk-console.c:2072
+#, fuzzy
+msgid "A repo name, parameter and value are required"
 msgstr "יש לציין שם מאגר תכנה או פרמטר וערך"
 
-#: ../client/pk-console.c:1972
-msgid "You need to specify an action, e.g. 'update-system'"
+#. TRANSLATORS: The user didn't specify what action to use
+#: ../client/pk-console.c:2086
+#, fuzzy
+msgid "An action, e.g. 'update-system' is required"
 msgstr "יש לציין את הפעולה, למשל 'עדכון מערכת'"
 
-#: ../client/pk-console.c:1977
-msgid "You need to specify a correct role"
-msgstr "יש לציין תפקיד תקין"
-
-#: ../client/pk-console.c:1982
-msgid "Failed to get last time"
-msgstr "כישלון בפעם שעברה"
+#. TRANSLATORS: The user specified an invalid action
+#: ../client/pk-console.c:2093
+#, fuzzy
+msgid "A correct role is required"
+msgstr "נדרשת יציאה מהמשתמש וכניסה מחדש"
 
-#: ../client/pk-console.c:2021
-msgid "You need to specify a package to find the details for"
-msgstr "יש לציין חבילה עבורה נדרשים הפרטים"
+#. TRANSLATORS: we keep a database updated with the time that an action was last executed
+#: ../client/pk-console.c:2100
+msgid "Failed to get the time since this action was last completed"
+msgstr ""
 
-#: ../client/pk-console.c:2028
-msgid "You need to specify a package to find the files for"
-msgstr "יש לציין חבילה עבורה נדרש איתור הקבצים"
+#. TRANSLATORS: The user did not provide a package name
+#. TRANSLATORS: This is when the user fails to supply the package name
+#: ../client/pk-console.c:2110 ../client/pk-console.c:2122
+#: ../client/pk-console.c:2131 ../client/pk-console.c:2149
+#: ../client/pk-console.c:2158 ../client/pk-generate-pack.c:241
+#, fuzzy
+msgid "A package name is required"
+msgstr "נדרשת יציאה מהמשתמש וכניסה מחדש"
 
-#: ../client/pk-console.c:2035
+#. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
+#: ../client/pk-console.c:2140
 #, fuzzy
-msgid "You need to specify a list file to create"
-msgstr "יש לציין פריט זמן"
+msgid "A package provide string is required"
+msgstr "נדרשת יציאה מהמשתמש וכניסה מחדש"
 
-#: ../client/pk-console.c:2043 ../client/pk-console.c:2051
+#. TRANSLATORS: The user didn't specify a filename to create as a list
+#: ../client/pk-console.c:2167
+msgid "A list file name to create is required"
+msgstr ""
+
+#. TRANSLATORS: The user didn't specify a filename to open as a list
+#: ../client/pk-console.c:2177 ../client/pk-console.c:2187
 #, fuzzy
-msgid "You need to specify a list file to open"
-msgstr "יש לציין פריט זמן"
+msgid "A list file to open is required"
+msgstr "נדרשת יציאה מהמשתמש וכניסה מחדש"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2104
+#: ../client/pk-console.c:2241
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "אפשרות '%s' לא נתמכת"
 
 #. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2117
-msgid "You don't have the necessary privileges for this operation"
+#: ../client/pk-console.c:2254
+#, fuzzy
+msgid "Incorrect privileges for this operation"
 msgstr "אין לך ההרשאות הנדרשות לפעולה זו"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2120
+#: ../client/pk-console.c:2257
 msgid "Command failed"
 msgstr "פעולה נכשלה"
 
 #. TRANSLATORS: This is the state of the transaction
-#: ../client/pk-generate-pack.c:100
+#: ../client/pk-generate-pack.c:101
 msgid "Downloading"
 msgstr "מוריד מהאינטרנט"
 
 #. TRANSLATORS: This is when the main packages are being downloaded
-#: ../client/pk-generate-pack.c:120
+#: ../client/pk-generate-pack.c:121
 #, fuzzy
 msgid "Downloading packages"
 msgstr "מוריד מהאינטרנט"
 
 #. TRANSLATORS: This is when the dependency packages are being downloaded
-#: ../client/pk-generate-pack.c:125
+#: ../client/pk-generate-pack.c:126
 #, fuzzy
 msgid "Downloading dependencies"
 msgstr "מוריד מהאינטרנט"
 
-#: ../client/pk-generate-pack.c:186
+#. TRANSLATORS: we can exclude certain packages (glibc) when we know they'll exist on the target
+#: ../client/pk-generate-pack.c:188
 msgid "Set the file name of dependencies to be excluded"
 msgstr ""
 
-#: ../client/pk-generate-pack.c:188
-msgid "The output directory (the current directory is used if ommitted)"
+#. TRANSLATORS: the output location
+#: ../client/pk-generate-pack.c:191
+#, fuzzy
+msgid ""
+"The output file or directory (the current directory is used if ommitted)"
 msgstr "תיקיית הפלט (אם משמיטים תיבחר התיקייה הנוכחית)"
 
-#: ../client/pk-generate-pack.c:190
+#. TRANSLATORS: put a list of packages in the pack
+#: ../client/pk-generate-pack.c:194
 msgid "The package to be put into the service pack"
 msgstr ""
 
-#: ../client/pk-generate-pack.c:192
+#. TRANSLATORS: put all pending updates in the pack
+#: ../client/pk-generate-pack.c:197
 msgid "Put all updates available in the service pack"
 msgstr ""
 
 #. TRANSLATORS: This is when the user fails to supply the correct arguments
-#: ../client/pk-generate-pack.c:220
+#: ../client/pk-generate-pack.c:225
 msgid "Neither --package or --updates option selected."
 msgstr ""
 
 #. TRANSLATORS: This is when the user fails to supply just one argument
-#: ../client/pk-generate-pack.c:228
+#: ../client/pk-generate-pack.c:233
 msgid "Both options selected."
 msgstr "שתי האפשרויות נבחרו."
 
+#. TRANSLATORS: This is when the user fails to supply the output
+#: ../client/pk-generate-pack.c:249
+#, fuzzy
+msgid "A output directory or file name is required"
+msgstr "נדרשת יציאה מהמשתמש וכניסה מחדש"
+
+#. TRANSLATORS: This is when the backend doesn't have the capability to get-depends
+#. TRANSLATORS: This is when the backend doesn't have the capability to download
+#: ../client/pk-generate-pack.c:267 ../client/pk-generate-pack.c:273
+msgid "The package manager cannot perform this type of operation."
+msgstr ""
+
+#. TRANSLATORS: This is when the distro didn't include libarchive support into PK
+#: ../client/pk-generate-pack.c:280
+msgid ""
+"Service packs cannot be created as PackageKit was not built with libarchive "
+"support."
+msgstr ""
+
+#. TRANSLATORS: the user specified an absolute path, but didn't get the extension correct
+#: ../client/pk-generate-pack.c:291
+msgid "If specifying a file, the service pack name must end with"
+msgstr ""
+
 #. TRANSLATORS: This is when file already exists
-#: ../client/pk-generate-pack.c:261
+#: ../client/pk-generate-pack.c:307
 msgid "A pack with the same name already exists, do you want to overwrite it?"
 msgstr ""
 
 #. TRANSLATORS: This is when the pack was not overwritten
-#: ../client/pk-generate-pack.c:264
+#: ../client/pk-generate-pack.c:310
 msgid "The pack was not overwritten."
 msgstr ""
 
 #. TRANSLATORS: This is when the temporary directory cannot be created, the directory name follows
-#: ../client/pk-generate-pack.c:276
+#: ../client/pk-generate-pack.c:323
 msgid "Failed to create directory:"
 msgstr "בישלון ביצירת תיקייה:"
 
 #. TRANSLATORS: This is when the list of packages from the remote computer cannot be opened
-#: ../client/pk-generate-pack.c:285
+#: ../client/pk-generate-pack.c:333
 msgid "Failed to open package list."
 msgstr "כישלון בפתיחת רשימת החבילות."
 
 #. TRANSLATORS: The package name is being matched up to available packages
-#: ../client/pk-generate-pack.c:295
+#: ../client/pk-generate-pack.c:344
 msgid "Finding package name."
 msgstr "איתור שם החבילה."
 
 #. TRANSLATORS: This is when the package cannot be found in any software source. The detailed error follows
-#: ../client/pk-generate-pack.c:299
+#: ../client/pk-generate-pack.c:348
 #, c-format
 msgid "Failed to find package '%s': %s"
 msgstr "לא נמצאה החבילה '%s':‏ %s"
 
 #. TRANSLATORS: This is telling the user we are in the process of making the pack
-#: ../client/pk-generate-pack.c:315
+#: ../client/pk-generate-pack.c:365
 msgid "Creating service pack..."
 msgstr ""
 
 #. TRANSLATORS: we succeeded in making the file
-#: ../client/pk-generate-pack.c:322
+#: ../client/pk-generate-pack.c:372
 #, c-format
 msgid "Service pack created '%s'"
 msgstr ""
 
 #. TRANSLATORS: we failed to make te file
-#: ../client/pk-generate-pack.c:326
+#: ../client/pk-generate-pack.c:377
 #, c-format
 msgid "Failed to create '%s': %s"
 msgstr "כישלון ביצירת '%s':‏ %s"
 
-#: ../client/pk-monitor.c:132
+#. TRANSLATORS: this is a program that monitors PackageKit
+#: ../client/pk-monitor.c:146
 msgid "PackageKit Monitor"
 msgstr "מוניטור PackageKit"
 
+#: ../client/pk-monitor.c:183
+msgid "Cannot show the list of transactions"
+msgstr ""
+
 #. TRANSLATORS: The package was not found in any software sources
-#: ../client/pk-tools-common.c:114
+#: ../client/pk-tools-common.c:118
 #, c-format
 msgid "The package could not be found"
 msgstr "החבילה לא נמצאה"
 
 #. TRANSLATORS: more than one package could be found that matched, to follow is a list of possible packages
-#: ../client/pk-tools-common.c:125
+#: ../client/pk-tools-common.c:130
 msgid "More than one package matches:"
 msgstr "יש יותר מחבילה מתאימה אחת:"
 
 #. TRANSLATORS: This finds out which package in the list to use
-#: ../client/pk-tools-common.c:132
+#: ../client/pk-tools-common.c:137
 msgid "Please choose the correct package: "
 msgstr "נא לבחור את החבילה הנכונה: "
 
-#: ../client/pk-tools-common.c:157
+#: ../client/pk-tools-common.c:162
 #, c-format
 msgid "Please enter a number from 1 to %i: "
 msgstr "נא להזין מספר בין 1 ל-%i: "
 
-#. TRANSLATORS: we failed to find the package, this shouldn't happen
+#. TRANSLATORS: when we are getting data from the daemon
+#: ../contrib/browser-plugin/pk-plugin-install.c:466
+msgid "Getting package information..."
+msgstr "קורא מידע אודות החבילה..."
+
+#. TRANSLATORS: run an applicaiton
+#: ../contrib/browser-plugin/pk-plugin-install.c:472
+#, c-format
+msgid "Run %s"
+msgstr "מפעיל %s"
+
+#. TRANSLATORS: show the installed version of a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:478
+msgid "Installed version"
+msgstr "גרסה מותקנת"
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:486
+#, c-format
+msgid "Run version %s now"
+msgstr "הפעל גרסה %s כעת"
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:492
+msgid "Run now"
+msgstr "הפעל כעת"
+
+#. TRANSLATORS: update to a new version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:498
+#, c-format
+msgid "Update to version %s"
+msgstr "עדכן לגרסה %s"
+
+#. TRANSLATORS: To install a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:504
+#, c-format
+msgid "Install %s now"
+msgstr "התקן %s כעת"
+
+#. TRANSLATORS: the version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:507
+msgid "Version"
+msgstr "גרסה"
+
+#. TRANSLATORS: noting found, so can't install
+#: ../contrib/browser-plugin/pk-plugin-install.c:512
+msgid "No packages found for your system"
+msgstr "לא נמצאו חבילות עבור המערכת שלך"
+
+#. TRANSLATORS: package is being installed
+#: ../contrib/browser-plugin/pk-plugin-install.c:517
+msgid "Installing..."
+msgstr "מתקין..."
+
+#. TRANSLATORS: downloading repo data so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:349
+msgid "Downloading details about the software sources."
+msgstr ""
+
+#. TRANSLATORS: downloading file lists so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:353
+msgid "Downloading filelists (this may take some time to complete)."
+msgstr ""
+
+#. TRANSLATORS: waiting for native lock
+#: ../contrib/command-not-found/pk-command-not-found.c:357
+#, fuzzy
+msgid "Waiting for package manager lock."
+msgstr "איתור שם החבילה."
+
+#. TRANSLATORS: loading package cache so we can search
 #: ../contrib/command-not-found/pk-command-not-found.c:361
 #, fuzzy
+msgid "Loading list of packages."
+msgstr "מוריד מהאינטרנט"
+
+#. TRANSLATORS: we failed to find the package, this shouldn't happen
+#: ../contrib/command-not-found/pk-command-not-found.c:420
+#, fuzzy
 msgid "Failed to search for file"
 msgstr "כישלון בפעם שעברה"
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:485
+#: ../contrib/command-not-found/pk-command-not-found.c:557
 #, fuzzy
 msgid "Failed to launch:"
 msgstr "כישלון בפעם שעברה"
 
 #. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/command-not-found/pk-command-not-found.c:526
+#: ../contrib/command-not-found/pk-command-not-found.c:632
 #, fuzzy
 msgid "PackageKit Command Not Found"
 msgstr "מוניטור PackageKit"
 
 #. TRANSLATORS: the prefix of all the output telling the user why it's not executing
-#: ../contrib/command-not-found/pk-command-not-found.c:548
+#: ../contrib/command-not-found/pk-command-not-found.c:658
 #, fuzzy
 msgid "Command not found."
 msgstr "תיקייה לא נמצאה"
 
 #. TRANSLATORS: tell the user what we think the command is
-#: ../contrib/command-not-found/pk-command-not-found.c:555
+#: ../contrib/command-not-found/pk-command-not-found.c:665
 #, fuzzy
 msgid "Similar command is:"
 msgstr "תת-פקודות:"
 
 #. TRANSLATORS: Ask the user if we should run the similar command
-#: ../contrib/command-not-found/pk-command-not-found.c:564
+#: ../contrib/command-not-found/pk-command-not-found.c:674
 msgid "Run similar command:"
 msgstr ""
 
 #. TRANSLATORS: show the user a list of commands that they could have meant
 #. TRANSLATORS: show the user a list of commands we could run
-#: ../contrib/command-not-found/pk-command-not-found.c:576
-#: ../contrib/command-not-found/pk-command-not-found.c:585
+#: ../contrib/command-not-found/pk-command-not-found.c:686
+#: ../contrib/command-not-found/pk-command-not-found.c:695
 #, fuzzy
 msgid "Similar commands are:"
 msgstr "תת-פקודות:"
 
 #. TRANSLATORS: ask the user to choose a file to run
-#: ../contrib/command-not-found/pk-command-not-found.c:592
+#: ../contrib/command-not-found/pk-command-not-found.c:702
 msgid "Please choose a command to run"
 msgstr ""
 
 #. TRANSLATORS: tell the user what package provides the command
-#: ../contrib/command-not-found/pk-command-not-found.c:607
+#: ../contrib/command-not-found/pk-command-not-found.c:721
 msgid "The package providing this file is:"
 msgstr ""
 
 #. TRANSLATORS: as the user if we want to install a package to provide the command
-#: ../contrib/command-not-found/pk-command-not-found.c:612
+#: ../contrib/command-not-found/pk-command-not-found.c:726
 #, c-format
 msgid "Install package '%s' to provide command '%s'?"
 msgstr ""
 
 #. TRANSLATORS: Show the user a list of packages that provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:633
+#: ../contrib/command-not-found/pk-command-not-found.c:747
 msgid "Packages providing this file are:"
 msgstr ""
 
 #. TRANSLATORS: Show the user a list of packages that they can install to provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:642
+#: ../contrib/command-not-found/pk-command-not-found.c:756
 msgid "Suitable packages are:"
 msgstr ""
 
 #. get selection
 #. TRANSLATORS: ask the user to choose a file to install
-#: ../contrib/command-not-found/pk-command-not-found.c:650
+#: ../contrib/command-not-found/pk-command-not-found.c:764
 #, fuzzy
 msgid "Please choose a package to install"
 msgstr "לא נמצאה חבילה תואמת"
 
-#. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/src/contents.cpp:298
-msgid "Getting package information..."
+#. TRANSLATORS: we are starting to install the packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:187
+msgid "Starting install"
+msgstr ""
+
+#. TRANSLATORS: we couldn't find the package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:397
+#, fuzzy, c-format
+msgid "Failed to find the package %s, or already installed: %s"
+msgstr "לא ניתן להתקין את החבילה '%s':‏ %s"
+
+#. command line argument, simulate what would be done, but don't actually do it
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:553
+msgid ""
+"Don't actually install any packages, only simulate what would be installed"
+msgstr ""
+
+#. command line argument, do we skip packages that depend on the ones specified
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:556
+msgid "Do not install dependencies of the core packages"
+msgstr ""
+
+#. command line argument, do we operate quietly
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:559
+msgid "Do not display information or progress"
+msgstr ""
+
+#. TRANSLATORS: tool that gets called when the command is not found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:577
+#, fuzzy
+msgid "PackageKit Debuginfo Installer"
+msgstr "מנשק שורת פקודה של PackageKit"
+
+#. TRANSLATORS: the use needs to specify a list of package names on the command line
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:589
+#, fuzzy, c-format
+msgid "ERROR: Specify package names to install."
+msgstr "יש לקבוע חבילה או קובץ להתקנה"
+
+#. TRANSLATORS: we are getting the list of repositories
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:623
+#, fuzzy, c-format
+msgid "Getting sources list"
 msgstr "קורא מידע אודות החבילה..."
 
-#. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/src/contents.cpp:304
+#. TRANSLATORS: all completed 100%
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:641
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:681
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:716
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:800
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:844
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:911
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:955
 #, c-format
-msgid "Run %s"
-msgstr "מפעיל %s"
+msgid "OK."
+msgstr ""
 
-#. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/src/contents.cpp:310
-msgid "Installed version"
-msgstr "גרסה מותקנת"
+#. TRANSLATORS: tell the user what we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:644
+#, c-format
+msgid "Found %i enabled and %i disabled sources."
+msgstr ""
 
-#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/src/contents.cpp:318
+#. TRANSLATORS: we're finding repositories that match out pattern
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:651
 #, c-format
-msgid "Run version %s now"
-msgstr "הפעל גרסה %s כעת"
+msgid "Finding debugging sources"
+msgstr ""
 
-#: ../contrib/browser-plugin/src/contents.cpp:324
-msgid "Run now"
-msgstr "הפעל כעת"
+#. TRANSLATORS: tell the user what we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:684
+#, c-format
+msgid "Found %i disabled debuginfo repos."
+msgstr ""
 
-#. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/src/contents.cpp:330
+#. TRANSLATORS: we're now enabling all the debug sources we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:691
 #, c-format
-msgid "Update to version %s"
-msgstr "עדכן לגרסה %s"
+msgid "Enabling debugging sources"
+msgstr ""
 
-#. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/src/contents.cpp:336
+#. TRANSLATORS: operation was not successful
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:701
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:785
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:829
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:896
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:940
+msgid "FAILED."
+msgstr ""
+
+#. TRANSLATORS: tell the user how many we enabled
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:719
 #, c-format
-msgid "Install %s now"
-msgstr "התקן %s כעת"
+msgid "Enabled %i debugging sources."
+msgstr ""
 
-#. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/src/contents.cpp:339
-msgid "Version"
-msgstr "גרסה"
+#. TRANSLATORS: we're now finding packages that match in all the repos
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:726
+#, fuzzy, c-format
+msgid "Finding debugging packages"
+msgstr "איתור שם החבילה."
 
-#. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/src/contents.cpp:344
-msgid "No packages found for your system"
-msgstr "לא נמצאו חבילות עבור המערכת שלך"
+#. TRANSLATORS: we couldn't find the package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:738
+#, fuzzy, c-format
+msgid "Failed to find the package %s: %s"
+msgstr "לא נמצאה החבילה '%s':‏ %s"
 
-#. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/src/contents.cpp:349
-msgid "Installing..."
-msgstr "מתקין..."
+#. TRANSLATORS: we couldn't find the debuginfo package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:761
+#, fuzzy, c-format
+msgid "Failed to find the debuginfo package %s: %s"
+msgstr "לא נמצאה החבילה '%s':‏ %s"
+
+#. TRANSLATORS: no debuginfo packages could be found to be installed
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:789
+#, fuzzy, c-format
+msgid "Found no packages to install."
+msgstr "לא ניתן להתקין את החבילה '%s':‏ %s"
+
+#. TRANSLATORS: tell the user we found some packages, and then list them
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:803
+#, fuzzy, c-format
+msgid "Found %i packages:"
+msgstr "מוריד מהאינטרנט"
+
+#. TRANSLATORS: tell the user we are searching for deps
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:819
+#, c-format
+msgid "Finding packages that depend on these packages"
+msgstr ""
+
+#. TRANSLATORS: could not install, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:832
+#, fuzzy, c-format
+msgid "Could not find dependant packages: %s"
+msgstr "לא נמצאה חבילה תואמת"
+
+#. TRANSLATORS: tell the user we found some more packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:848
+#, c-format
+msgid "Found %i extra packages."
+msgstr ""
+
+#. TRANSLATORS: tell the user we found some more packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:852
+#, fuzzy, c-format
+msgid "No extra packages required."
+msgstr "לא ניתן למצוא אילו חבילות נזקקות לחבילה זו"
+
+#. TRANSLATORS: tell the user we found some packages (and deps), and then list them
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:861
+#, fuzzy, c-format
+msgid "Found %i packages to install:"
+msgstr "לא ניתן להתקין את החבילה '%s':‏ %s"
+
+#. TRANSLATORS: simulate mode is a testing mode where we quit before the action
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:874
+#, fuzzy, c-format
+msgid "Not installing packages in simulate mode"
+msgstr "התקן חבילה"
+
+#. TRANSLATORS: could not install, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:899
+#, fuzzy, c-format
+msgid "Could not install packages: %s"
+msgstr "כישלון בהתקנת החבילות: %s"
+
+#. TRANSLATORS: we are now disabling all debuginfo repos we previously enabled
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:931
+#, c-format
+msgid "Disabling sources previously enabled"
+msgstr ""
+
+#. TRANSLATORS: no debuginfo packages could be found to be installed, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:943
+#, c-format
+msgid "Could not disable the debugging sources: %s"
+msgstr ""
+
+#. TRANSLATORS: we disabled all the debugging repos that we enabled before
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:958
+#, c-format
+msgid "Disabled %i debugging sources."
+msgstr ""
+
+#. TRANSLATORS: couldn't open device to write
+#: ../contrib/device-rebind/pk-device-rebind.c:61
+#, fuzzy
+msgid "Failed to open file"
+msgstr "כישלון בפעם שעברה"
+
+#. TRANSLATORS: could not write to the device
+#: ../contrib/device-rebind/pk-device-rebind.c:70
+#, fuzzy
+msgid "Failed to write to the file"
+msgstr "כישלון בפעם שעברה"
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:110
+#: ../contrib/device-rebind/pk-device-rebind.c:147
+#, fuzzy
+msgid "Failed to write to device"
+msgstr "כישלון בפעם שעברה"
+
+#. TRANSLATORS: the device could not be found in sysfs
+#: ../contrib/device-rebind/pk-device-rebind.c:175
+#, fuzzy
+msgid "Device could not be found"
+msgstr "החבילה לא נמצאה"
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:202
+#, fuzzy
+msgid "Failed to unregister driver"
+msgstr "בישלון ביצירת תיקייה:"
+
+#. TRANSLATORS: we failed to bind the old driver
+#: ../contrib/device-rebind/pk-device-rebind.c:211
+#, fuzzy
+msgid "Failed to register driver"
+msgstr "בישלון ביצירת תיקייה:"
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:260
+#, fuzzy
+msgid "Device path not found"
+msgstr "תיקייה לא נמצאה"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:268
+msgid "Incorrect device path specified"
+msgstr ""
+
+#. command line argument, simulate what would be done, but don't actually do it
+#: ../contrib/device-rebind/pk-device-rebind.c:296
+msgid "Don't actually touch the hardware, only simulate what would be done"
+msgstr ""
+
+#. TRANSLATORS: command line option: a list of files to install
+#: ../contrib/device-rebind/pk-device-rebind.c:299
+msgid "Device paths"
+msgstr ""
+
+#. TRANSLATORS: tool that gets called when the device needs reloading after installing firmware
+#: ../contrib/device-rebind/pk-device-rebind.c:314
+#, fuzzy
+msgid "PackageKit Device Reloader"
+msgstr "חבילת שירות PackageKit"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:322
+#, fuzzy
+msgid "You need to specify at least one valid device path"
+msgstr "יש לציין פריט זמן"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:332
+msgid "This script can only be used by the root user"
+msgstr ""
+
+#. TRANSLATORS: we're going to verify the path first
+#: ../contrib/device-rebind/pk-device-rebind.c:341
+msgid "Verifying device path"
+msgstr ""
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:346
+#, fuzzy
+msgid "Failed to verify device path"
+msgstr "כישלון בפעם שעברה"
+
+#. TRANSLATORS: we're going to try
+#: ../contrib/device-rebind/pk-device-rebind.c:360
+msgid "Attempting to rebind device"
+msgstr ""
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:365
+#, fuzzy
+msgid "Failed to rebind device"
+msgstr "בישלון ביצירת תיקייה:"
 
 #: ../data/packagekit-catalog.xml.in.h:1
 msgid "PackageKit Catalog"
@@ -869,163 +1307,327 @@ msgstr "רשימת חבילות PackageKit"
 msgid "PackageKit Service Pack"
 msgstr "חבילת שירות PackageKit"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:1
+#. SECURITY:
+#. - Normal users do not require admin authentication to accept new
+#. licence agreements.
+#. - Change this to 'auth_admin' for environments where users should not
+#. be given the option to make legal decisions.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:7
 msgid "Accept EULA"
 msgstr "קבל רשיון משתמש הקצה (EULA)"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:2
+#: ../policy/org.freedesktop.packagekit.policy.in.h:8
 msgid "Authentication is required to accept a EULA"
 msgstr "אימות נדרש כדי לקבל רשיון משתמש הקצה (EULA)"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:3
+#: ../policy/org.freedesktop.packagekit.policy.in.h:9
 #, fuzzy
 msgid ""
 "Authentication is required to cancel a task that was not started by yourself"
 msgstr "אימות נדרש כדי לשנות פרמטרים של מקורות תוכנה"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:4
+#: ../policy/org.freedesktop.packagekit.policy.in.h:10
 msgid "Authentication is required to change software source parameters"
 msgstr "אימות נדרש כדי לשנות פרמטרים של מקורות תוכנה"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:5
+#: ../policy/org.freedesktop.packagekit.policy.in.h:11
 #, fuzzy
 msgid ""
 "Authentication is required to consider a key used for signing packages as "
 "trusted"
 msgstr "אימות נדרש כדי לרענן את רשימות החבילות"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:6
+#: ../policy/org.freedesktop.packagekit.policy.in.h:12
 #, fuzzy
 msgid "Authentication is required to install a signed package"
 msgstr "אימות נדרש כדי להתקין חבילה"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:7
+#: ../policy/org.freedesktop.packagekit.policy.in.h:13
 #, fuzzy
 msgid "Authentication is required to install an untrusted package"
 msgstr "אימות נדרש כדי להתקין חבילה"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:8
+#: ../policy/org.freedesktop.packagekit.policy.in.h:14
 #, fuzzy
 msgid "Authentication is required to refresh the system sources"
 msgstr "אימות נדרש כדי לרענן את רשימות החבילות"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:9
+#: ../policy/org.freedesktop.packagekit.policy.in.h:15
+#, fuzzy
+msgid "Authentication is required to reload the device with a new driver"
+msgstr "אימות נדרש כדי לרענן את רשימות החבילות"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:16
 msgid "Authentication is required to remove packages"
 msgstr "אימות נדרש כדי להסיר חבילות"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:10
+#: ../policy/org.freedesktop.packagekit.policy.in.h:17
 msgid "Authentication is required to rollback a transaction"
 msgstr "אימות נדרש כדי לגלגל אחורנית טרנסאקציה"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:11
+#: ../policy/org.freedesktop.packagekit.policy.in.h:18
 #, fuzzy
 msgid ""
 "Authentication is required to set the network proxy used for downloading "
 "packages"
 msgstr "אימות נדרש כדי להסיר חבילות"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:12
+#: ../policy/org.freedesktop.packagekit.policy.in.h:19
 msgid "Authentication is required to update packages"
 msgstr "אימות נדרש כדי לעדכן חבילות"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:13
+#. SECURITY:
+#. - Normal users are allowed to cancel their own task without
+#. authentication, but a different user id needs the admin password
+#. to cancel another users task.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:25
 msgid "Cancel foreign task"
 msgstr ""
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:14
+#. SECURITY:
+#. - Normal users require admin authentication to enable or disable
+#. software sources as this can be used to enable new updates or
+#. install different versions of software.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:31
 msgid "Change software source parameters"
 msgstr "שנה פרמטרים של מקורות תוכנה"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:15
+#. SECURITY:
+#. - Normal users do not need authentication to install signed packages
+#. from signed repositories, as this cannot exploit a system.
+#. - Paranoid users (or parents!) can change this to 'auth_admin' or
+#. 'auth_admin_keep'.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:38
 #, fuzzy
 msgid "Install signed package"
 msgstr "התקן חבילה"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:16
+#. SECURITY:
+#. - Normal users require admin authentication to install untrusted or
+#. unrecognised packages, as allowing users to do this without a
+#. password would be a massive security hole.
+#. - This is not retained as each package should be authenticated.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:45
 #, fuzzy
 msgid "Install untrusted local file"
 msgstr "התקן קובץ מקומי"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:17
+#. SECURITY:
+#. - Normal users do not require admin authentication to refresh the
+#. cache, as this doesn't actually install or remove software.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:50
 msgid "Refresh system sources"
 msgstr ""
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:18
+#. SECURITY:
+#. - Normal users require admin authentication to rebind a driver
+#. so that it works after we install firmware.
+#. - This should not be set to 'yes' as unprivileged users could then
+#. try to rebind drivers in use, for instance security authentication
+#. devices.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:58
+msgid "Reload a device"
+msgstr ""
+
+#. SECURITY:
+#. - Normal users require admin authentication to remove packages as
+#. this can make the system unbootable or stop other applications from
+#. working.
+#. - Be sure to close the tool used to remove the packages after the
+#. admin authentication has been obtained, otherwise packages can still
+#. be removed. If this is not possible, change this authentication to
+#. 'auth_admin'.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:68
 msgid "Remove package"
 msgstr "הסר חבילה"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:19
+#. SECURITY:
+#. - Normal users require admin authentication to rollback system state
+#. as this will change a large number of packages, and could expose the
+#. system to previously patched security vulnerabilities.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:74
 msgid "Rollback to a previous transaction"
 msgstr "גלגל אחרונית לטרהסאקציה קודמת"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:20
+#. SECURITY:
+#. - Normal users do not require admin authentication to set the proxy
+#. used for downloading packages.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:79
 msgid "Set network proxy"
 msgstr ""
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:21
+#. SECURITY:
+#. - Normal users require admin authentication to add signing keys.
+#. - This implies adding an explicit trust, and should not be granted
+#. without a secure authentication.
+#. - This is not kept as each package should be authenticated.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:86
 msgid "Trust a key used for signing packages"
 msgstr ""
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:22
+#. SECURITY:
+#. - Normal users do not require admin authentication to update the
+#. system as the packages will be signed, and the action is required
+#. to update the system when unattended.
+#. - Changing this to anything other than 'yes' will break unattended
+#. updates.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:94
 #, fuzzy
 msgid "Update packages"
 msgstr "עדכן חבילה"
 
-#: ../src/pk-main.c:86
+#. TRANSLATORS: failed due to DBus security
+#: ../src/pk-main.c:87
 msgid "Startup failed due to security policies on this machine."
 msgstr "הפעלה נכשלה עקב מדיניות אבטחה במחשב זה."
 
-#: ../src/pk-main.c:87
+#. TRANSLATORS: only two ways this can fail...
+#: ../src/pk-main.c:89
 msgid "This can happen for two reasons:"
 msgstr "זה עלול לקרות כתוצאה מאחת משתי סיבות:"
 
-#: ../src/pk-main.c:88
+#. TRANSLATORS: only allowed to be owned by root
+#: ../src/pk-main.c:91
 msgid "The correct user is not launching the executable (usually root)"
 msgstr "התכנה מופעלת לא על ידי המשתמש הנכון (בדרך כלל root)"
 
-#: ../src/pk-main.c:89
+#. TRANSLATORS: or we are installed in a prefix
+#: ../src/pk-main.c:93
 msgid ""
 "The org.freedesktop.PackageKit.conf file is not installed in the system "
 "directory:"
 msgstr "הקובץ org.freedesktop.PackageKit.conf לא מותקן בתיקיית המערכת:"
 
-#: ../src/pk-main.c:188
+#. TRANSLATORS: a backend is the system package tool, e.g. yum, apt
+#: ../src/pk-main.c:205
 msgid "Packaging backend to use, e.g. dummy"
 msgstr "מערכת ניהול חבילות נבחרת, למשל dummy"
 
-#: ../src/pk-main.c:190
+#. TRANSLATORS: if we should run in the background
+#: ../src/pk-main.c:208
 msgid "Daemonize and detach from the terminal"
 msgstr "הפוך לשירות מערכת (daemon) והתנתק מהמסוף"
 
-#: ../src/pk-main.c:194
+#. TRANSLATORS: if we should not monitor how long we are inactive for
+#: ../src/pk-main.c:214
 msgid "Disable the idle timer"
 msgstr "כבה את מד הזמן לחוסר פעילות"
 
-#: ../src/pk-main.c:196
+#. TRANSLATORS: show version
+#: ../src/pk-main.c:217
 msgid "Show version and exit"
 msgstr "הצג גרסה וסיים"
 
-#: ../src/pk-main.c:198
+#. TRANSLATORS: exit after we've started up, used for user profiling
+#: ../src/pk-main.c:220
 msgid "Exit after a small delay"
 msgstr "צא אחרי המתנה קצרה"
 
-#: ../src/pk-main.c:200
+#. TRANSLATORS: exit straight away, used for automatic profiling
+#: ../src/pk-main.c:223
 msgid "Exit after the engine has loaded"
 msgstr "צא אחרי שהמנוע נטען"
 
-#: ../src/pk-main.c:214
+#. TRANSLATORS: describing the service that is running
+#: ../src/pk-main.c:238
 msgid "PackageKit service"
 msgstr "שירות PackageKit"
 
-#: ../src/pk-main.c:250
+#. TRANSLATORS: fatal error, dbus is not running
+#: ../src/pk-main.c:275
 msgid "Cannot connect to the system bus"
 msgstr "לא יכול להתחבר ל-system bus"
 
-#: ../src/pk-main.c:299
-#, c-format
+#. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error follows
+#: ../src/pk-main.c:334
 msgid "Error trying to start:"
 msgstr "כישלון בהפעלת:"
 
+#: ../src/pk-polkit-action-lookup.c:147
+#, fuzzy
+msgid "To install debugging packages, extra sources need to be enabled"
+msgstr "לא ניתן להתקין את החבילה '%s':‏ %s"
+
+#. TRANSLATORS: is not GPG signed
+#: ../src/pk-polkit-action-lookup.c:168 ../src/pk-polkit-action-lookup.c:187
+msgid "The software is not from a trusted source."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:173
+msgid "Do not update this package unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:174
+msgid "Do not update these packages unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:192
+msgid "Do not install this package unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:193
+msgid "Do not install these packages unless you are sure it is safe to do so."
+msgstr ""
+
+#. TRANSLATORS: warn the user that all bets are off
+#: ../src/pk-polkit-action-lookup.c:199
+msgid "Malicious software can damage your computer or cause other harm."
+msgstr ""
+
+#. TRANSLATORS: too many packages to list each one
+#: ../src/pk-polkit-action-lookup.c:274
+#, fuzzy
+msgid "Many packages"
+msgstr "עדכן חבילה"
+
+#. TRANSLATORS: if the transaction is forced to install only trusted packages
+#: ../src/pk-polkit-action-lookup.c:334
+msgid "Only trusted"
+msgstr ""
+
+#~ msgid "You need to specify a search type, e.g. name"
+#~ msgstr "יש לקבוע סוג חיפוש, למשל שמי"
+
+#~ msgid "You need to specify a search term"
+#~ msgstr "יש לציין פריט חיפוש"
+
+#~ msgid "You need to specify a package to remove"
+#~ msgstr "יש לקבוע חבילה להסרה"
+
+#~ msgid "You need to specify a package name to resolve"
+#~ msgstr "יש לציין שם חבילה לבירור"
+
+#~ msgid "You need to specify a repository name"
+#~ msgstr "יש לציין שם מאגר תכנה"
+
+#~ msgid "You need to specify a correct role"
+#~ msgstr "יש לציין תפקיד תקין"
+
+#~ msgid "Failed to get last time"
+#~ msgstr "כישלון בפעם שעברה"
+
+#~ msgid "You need to specify a package to find the details for"
+#~ msgstr "יש לציין חבילה עבורה נדרשים הפרטים"
+
+#~ msgid "You need to specify a package to find the files for"
+#~ msgstr "יש לציין חבילה עבורה נדרש איתור הקבצים"
+
+#, fuzzy
+#~ msgid "You need to specify a list file to open"
+#~ msgstr "יש לציין פריט זמן"
+
 #~ msgid "This tool could not remove the packages: '%s'"
 #~ msgstr "כישלון בהסרת החבילות: '%s'"
 
@@ -1041,9 +1643,6 @@ msgstr "כישלון בהפעלת:"
 #~ msgid "Do you agree?"
 #~ msgstr "האם את/ה מסכים?"
 
-#~ msgid "A logout and login is required"
-#~ msgstr "נדרשת יציאה מהמשתמש וכניסה מחדש"
-
 #, fuzzy
 #~ msgid "Could not find package to remove"
 #~ msgstr "לא נמצאה חבילה בשם זה להסרה"
@@ -1056,20 +1655,9 @@ msgstr "כישלון בהפעלת:"
 #~ msgstr "לא נמצאה חבילה תואמת"
 
 #, fuzzy
-#~ msgid "Could not find what packages require"
-#~ msgstr "לא ניתן למצוא אילו חבילות נזקקות לחבילה זו"
-
-#, fuzzy
 #~ msgid "Could not find details for"
 #~ msgstr "לא ניתן למצוא את הקבצים לחבילה זו"
 
-#~ msgid "Could not find a package match"
-#~ msgstr "לא נמצאה חבילה תואמת"
-
-#, fuzzy
-#~ msgid "Resolving package name to remote object"
-#~ msgstr "יש להסיר את החבילות הבאות"
-
 #, fuzzy
 #~ msgid "Could not set database readonly"
 #~ msgstr "לא ניתן לפתוח מסד נתונים: %s"
diff --git a/po/hi.po b/po/hi.po
index 6036477..a008737 100644
--- a/po/hi.po
+++ b/po/hi.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: packagekit.master.PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-05-27 02:34+0000\n"
+"POT-Creation-Date: 2009-08-24 11:06+0100\n"
 "PO-Revision-Date: 2009-05-27 16:31+0530\n"
 "Last-Translator: Rajesh Ranjan <rajesh672 at gmail.com>\n"
 "Language-Team: Hindi <hindi.sf.net>\n"
@@ -15,233 +15,268 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "X-Generator: KBabel 1.11.4\n"
-"Plural-Forms: nplurals=2; plural=(n!=1);\n\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+"\n"
 
 #. TRANSLATORS: this is an atomic transaction
-#: ../client/pk-console.c:234
+#: ../client/pk-console.c:235
 msgid "Transaction"
 msgstr "लेनदेन"
 
 #. TRANSLATORS: this is the time the transaction was started in system timezone
-#: ../client/pk-console.c:236
+#: ../client/pk-console.c:237
 msgid "System time"
 msgstr "सिस्टम समय"
 
 #. TRANSLATORS: this is if the transaction succeeded or not
-#: ../client/pk-console.c:238
+#: ../client/pk-console.c:239
 msgid "Succeeded"
 msgstr "सफल"
 
 #. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:238 ../client/pk-console.c:405
+#: ../client/pk-console.c:239 ../client/pk-console.c:406
 msgid "True"
 msgstr "सही"
 
-#: ../client/pk-console.c:238 ../client/pk-console.c:405
+#: ../client/pk-console.c:239 ../client/pk-console.c:406
 msgid "False"
 msgstr "गलत"
 
 #. TRANSLATORS: this is the transactions role, e.g. "update-system"
-#: ../client/pk-console.c:240
+#. TRANSLATORS: the trasaction role, e.g. update-system
+#: ../client/pk-console.c:241 ../src/pk-polkit-action-lookup.c:327
 msgid "Role"
 msgstr "भूमिका"
 
 #. TRANSLATORS: this is The duration of the transaction
-#: ../client/pk-console.c:245
+#: ../client/pk-console.c:246
 msgid "Duration"
 msgstr "अवधि"
 
-#: ../client/pk-console.c:245
+#: ../client/pk-console.c:246
 msgid "(seconds)"
 msgstr "(सेकेंड)"
 
 #. TRANSLATORS: this is The command line used to do the action
-#: ../client/pk-console.c:249
+#. TRANSLATORS: the command line of the thing that wants the authentication
+#: ../client/pk-console.c:250 ../src/pk-polkit-action-lookup.c:341
 msgid "Command line"
 msgstr "कमांड लाइन"
 
 #. TRANSLATORS: this is the user ID of the user that started the action
-#: ../client/pk-console.c:251
+#: ../client/pk-console.c:252
 msgid "User ID"
 msgstr "उपयोक्ता ID"
 
 #. TRANSLATORS: this is the username, e.g. hughsie
-#: ../client/pk-console.c:258
+#: ../client/pk-console.c:259
 msgid "Username"
 msgstr "उपयोक्ता नाम"
 
 #. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
-#: ../client/pk-console.c:262
+#: ../client/pk-console.c:263
 msgid "Real name"
 msgstr "वास्तविक नाम"
 
-#: ../client/pk-console.c:270
+#: ../client/pk-console.c:271
 msgid "Affected packages:"
 msgstr "प्रभावित संकुल:"
 
-#: ../client/pk-console.c:272
+#: ../client/pk-console.c:273
 msgid "Affected packages: None"
 msgstr "प्रभावित संकुल: कुछ नहीं"
 
 #. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:297
+#: ../client/pk-console.c:298
 msgid "Distribution"
 msgstr "वितरण"
 
 #. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:299
+#: ../client/pk-console.c:300
 msgid "Type"
 msgstr "क़िस्म"
 
 #. TRANSLATORS: this is any summary text describing the upgrade
 #. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:301 ../client/pk-console.c:324
+#: ../client/pk-console.c:302 ../client/pk-console.c:325
 msgid "Summary"
 msgstr "सारांश"
 
 #. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:313
+#: ../client/pk-console.c:314
 msgid "Category"
 msgstr "श्रेणी"
 
 #. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:315
+#: ../client/pk-console.c:316
 msgid "ID"
 msgstr "ID"
 
 #. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:318
+#: ../client/pk-console.c:319
 msgid "Parent"
 msgstr "पैरेंट"
 
 #. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:321
+#: ../client/pk-console.c:322
 msgid "Name"
 msgstr "नाम"
 
 #. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:327
+#: ../client/pk-console.c:328
 msgid "Icon"
 msgstr "प्रतीक"
 
 #. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:342
+#: ../client/pk-console.c:343
 msgid "Details about the update:"
 msgstr "अद्यतन के बारे में विवरण:"
 
 #. TRANSLATORS: details about the update, package name and version
-#: ../client/pk-console.c:344
+#. TRANSLATORS: title, the names of the packages that the method is processing
+#: ../client/pk-console.c:345 ../src/pk-polkit-action-lookup.c:352
+#, fuzzy
 msgid "Package"
-msgstr "पैकेज"
+msgid_plural "Packages"
+msgstr[0] "पैकेज"
+msgstr[1] "पैकेज"
 
 #. TRANSLATORS: details about the update, any packages that this update updates
-#: ../client/pk-console.c:347
+#: ../client/pk-console.c:348
 msgid "Updates"
 msgstr "अद्यतन"
 
 #. TRANSLATORS: details about the update, any packages that this update obsoletes
-#: ../client/pk-console.c:351
+#: ../client/pk-console.c:352
 msgid "Obsoletes"
 msgstr "पुराना"
 
 #. TRANSLATORS: details about the update, the vendor URLs
-#: ../client/pk-console.c:355
+#: ../client/pk-console.c:356
 msgid "Vendor"
 msgstr "विक्रेता"
 
 #. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:359
+#: ../client/pk-console.c:360
 msgid "Bugzilla"
 msgstr "बगजिला"
 
 #. TRANSLATORS: details about the update, the CVE URLs
-#: ../client/pk-console.c:363
+#: ../client/pk-console.c:364
 msgid "CVE"
 msgstr "CVE"
 
 #. TRANSLATORS: details about the update, if the package requires a restart
-#: ../client/pk-console.c:367
+#: ../client/pk-console.c:368
 msgid "Restart"
 msgstr "फिर से  चालू करें"
 
 #. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:371
+#: ../client/pk-console.c:372
 msgid "Update text"
 msgstr "पाठ अद्यतन करें"
 
 #. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:375
+#: ../client/pk-console.c:376
 msgid "Changes"
 msgstr "परिवर्तन"
 
 #. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:379
+#: ../client/pk-console.c:380
 msgid "State"
 msgstr "स्थिति"
 
 #. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:384
+#: ../client/pk-console.c:385
 msgid "Issued"
 msgstr "निर्गत"
 
 #. TRANSLATORS: details about the update, date the update was updated
-#: ../client/pk-console.c:389
+#: ../client/pk-console.c:390
 msgid "Updated"
 msgstr "अद्यतन किया गया"
 
-#: ../client/pk-console.c:476 ../client/pk-console.c:478
+#: ../client/pk-console.c:477 ../client/pk-console.c:479
 msgid "Percentage"
 msgstr "प्रतिशत"
 
-#: ../client/pk-console.c:478
+#: ../client/pk-console.c:479
 msgid "Unknown"
 msgstr "अज्ञात"
 
 #. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:529
+#: ../client/pk-console.c:521
 msgid "System restart required by:"
 msgstr "तंत्र पुनःप्रारंभ इनके द्वारा जरूरी:"
 
 #. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:532
+#: ../client/pk-console.c:524
 msgid "Session restart required:"
 msgstr "सत्र पुनःप्रारंभ जरूरी:"
 
+#. TRANSLATORS: a package requires the system to be restarted due to a security update
+#: ../client/pk-console.c:527
+#, fuzzy
+msgid "System restart (security) required by:"
+msgstr "तंत्र पुनःप्रारंभ इनके द्वारा जरूरी:"
+
+#. TRANSLATORS: a package requires the session to be restarted due to a security update
+#: ../client/pk-console.c:530
+#, fuzzy
+msgid "Session restart (security) required:"
+msgstr "सत्र पुनःप्रारंभ जरूरी:"
+
 #. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:535
+#: ../client/pk-console.c:533
 msgid "Application restart required by:"
 msgstr "अनुप्रयोग पुनःप्रारंभ इसके द्वारा जरूरी:"
 
-#. TRANSLATORS: a package needs to restart they system
-#: ../client/pk-console.c:572
+#. TRANSLATORS: a package needs to restart their system
+#: ../client/pk-console.c:588
 msgid "Please restart the computer to complete the update."
 msgstr "कृपया अद्यतन पूरी करने के लिए कंप्यूटर पुनःप्रारंभ करें."
 
 #. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:575
+#: ../client/pk-console.c:591
 msgid "Please logout and login to complete the update."
 msgstr "कृपया अद्यतन पूरा करने के लिए लॉगआउट और लॉगिन करें"
 
 #. TRANSLATORS: a package needs to restart the application
-#: ../client/pk-console.c:578
+#: ../client/pk-console.c:594
 msgid "Please restart the application as it is being used."
 msgstr "कृपया अनुप्रयोग पुनःप्रारंभ करें जैसा यह प्रयुक्त हो रहा है."
 
+#. TRANSLATORS: a package needs to restart their system (due to security)
+#: ../client/pk-console.c:597
+#, fuzzy
+msgid ""
+"Please restart the computer to complete the update as important security "
+"updates have been installed."
+msgstr "कृपया अद्यतन पूरी करने के लिए कंप्यूटर पुनःप्रारंभ करें."
+
+#. TRANSLATORS: a package needs to restart the session (due to security)
+#: ../client/pk-console.c:600
+#, fuzzy
+msgid ""
+"Please logout and login to complete the update as important security updates "
+"have been installed."
+msgstr "कृपया अद्यतन पूरा करने के लिए लॉगआउट और लॉगिन करें"
+
 #. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:691
+#: ../client/pk-console.c:727
 #, c-format
 msgid "The package %s is already installed"
 msgstr "यह संकुल %s पहले से संस्थापित है"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:699
+#: ../client/pk-console.c:735
 #, c-format
 msgid "The package %s could not be installed: %s"
 msgstr "संकुल %s संस्थापित नहीं किया जा सका: %s"
 
 #. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
-#: ../client/pk-console.c:724 ../client/pk-console.c:751
-#: ../client/pk-console.c:847 ../client/pk-console.c:964
+#: ../client/pk-console.c:760 ../client/pk-console.c:783
+#: ../client/pk-console.c:879 ../client/pk-console.c:996
 #: ../client/pk-tools-common.c:62 ../client/pk-tools-common.c:81
 #: ../client/pk-tools-common.c:89
 #, c-format
@@ -249,399 +284,404 @@ msgid "Internal error: %s"
 msgstr "आंतरिक त्रुटि: %s"
 
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:732 ../client/pk-console.c:1360
+#: ../client/pk-console.c:768 ../client/pk-console.c:1392
 #, c-format
 msgid "This tool could not install the packages: %s"
 msgstr "यह औजार संकुल को नहीं संस्थापित कर सका: %s"
 
 #. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:759
+#: ../client/pk-console.c:791
 #, c-format
 msgid "This tool could not install the files: %s"
 msgstr "यह औज़ार फाइलों को नहीं संस्थापित कर सका: %s"
 
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:815
+#: ../client/pk-console.c:847
 #, c-format
 msgid "This tool could not remove %s: %s"
 msgstr "यह औज़ार %s को हटा नहीं सका: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:838 ../client/pk-console.c:876
-#: ../client/pk-console.c:909
+#: ../client/pk-console.c:870 ../client/pk-console.c:908
+#: ../client/pk-console.c:941
 #, c-format
 msgid "This tool could not remove the packages: %s"
 msgstr "यह औज़ार संकुलों को हटा नहीं सका: %s"
 
 #. TRANSLATORS: When removing, we might have to remove other dependencies
-#: ../client/pk-console.c:888
+#: ../client/pk-console.c:920
 msgid "The following packages have to be removed:"
 msgstr "निम्नलिखित संकुल को हटाया जाने वाला है:"
 
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:895
+#: ../client/pk-console.c:927
 msgid "Proceed removing additional packages?"
 msgstr "अतिरिक्त संकुल को हटाना जारी रखें?"
 
 #. TRANSLATORS: We did not remove any packages
-#: ../client/pk-console.c:900
+#: ../client/pk-console.c:932
 msgid "The package removal was canceled!"
 msgstr "संकुल हटाया जाना रद्द किया गया था!"
 
 #. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:941
+#: ../client/pk-console.c:973
 #, c-format
 msgid "This tool could not download the package %s as it could not be found"
 msgstr "यह औज़ार %s को डाउनलोड नहीं कर सका क्योंकि यह नहीं पाया जा सका"
 
 #. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:972
+#: ../client/pk-console.c:1004
 #, c-format
 msgid "This tool could not download the packages: %s"
 msgstr "यह औज़ार को डाउनलोड नहीं कर सका: %s "
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:999 ../client/pk-console.c:1008
+#: ../client/pk-console.c:1031 ../client/pk-console.c:1040
 #, c-format
 msgid "This tool could not update %s: %s"
 msgstr "यह औज़ार %s को अद्यतन नहीं कर सका: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1030 ../client/pk-console.c:1038
+#: ../client/pk-console.c:1062 ../client/pk-console.c:1070
 #, c-format
 msgid "This tool could not get the requirements for %s: %s"
 msgstr "यह औज़ार %s के लिए जरूरतें नहीं पा सका: %s"
 
 #. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:1060 ../client/pk-console.c:1068
+#: ../client/pk-console.c:1092 ../client/pk-console.c:1100
 #, c-format
 msgid "This tool could not get the dependencies for %s: %s"
 msgstr "यह औज़ार %s के लिए निर्भरता नहीं पा सका: %s"
 
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:1090 ../client/pk-console.c:1098
+#: ../client/pk-console.c:1122 ../client/pk-console.c:1130
 #, c-format
 msgid "This tool could not get package details for %s: %s"
 msgstr "यह औज़ार %s के लिए संकुल विवरण नहीं पा सका: %s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1120
+#: ../client/pk-console.c:1152
 #, c-format
 msgid "This tool could not find the files for %s: %s"
 msgstr "यह औज़ार %s के लिए फ़ाइलें नहीं पा सका: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1128
+#: ../client/pk-console.c:1160
 #, c-format
 msgid "This tool could not get the file list for %s: %s"
 msgstr "यह औज़ार %s के लिए फ़ाइल सूची नहीं पा सका: %s"
 
 #. TRANSLATORS: There was an error getting the list of packages. The filename follows
-#: ../client/pk-console.c:1150
+#: ../client/pk-console.c:1182
 #, c-format
 msgid "File already exists: %s"
 msgstr "पहले से मौजूद है: %s"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1155 ../client/pk-console.c:1211
-#: ../client/pk-console.c:1286
+#: ../client/pk-console.c:1187 ../client/pk-console.c:1243
+#: ../client/pk-console.c:1318
 msgid "Getting package list"
 msgstr "पैकेज सूची पा रहा है"
 
 #. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1161 ../client/pk-console.c:1217
-#: ../client/pk-console.c:1292
+#: ../client/pk-console.c:1193 ../client/pk-console.c:1249
+#: ../client/pk-console.c:1324
 #, c-format
 msgid "This tool could not get package list: %s"
 msgstr "यह औज़ार संकुल सूची नहीं पा सका: %s"
 
 #. TRANSLATORS: There was an error saving the list
-#: ../client/pk-console.c:1172
+#: ../client/pk-console.c:1204
 #, c-format
 msgid "Failed to save to disk"
 msgstr "डिस्क में सहेजने में विफल"
 
 #. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1206 ../client/pk-console.c:1281
+#: ../client/pk-console.c:1238 ../client/pk-console.c:1313
 #, c-format
 msgid "File does not exist: %s"
 msgstr "फ़ाइल मौजूद नहीं है: %s"
 
 #. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1238
+#: ../client/pk-console.c:1270
 msgid "Packages to add"
 msgstr "जोड़ने के लिए संकुल"
 
 #. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1246
+#: ../client/pk-console.c:1278
 msgid "Packages to remove"
 msgstr "हटाने के लिए संकुल"
 
 #. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1314
+#: ../client/pk-console.c:1346
 #, c-format
 msgid "No new packages need to be installed"
 msgstr "कोई नया संकुल संस्थापित होने के लिए नहीं"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1320
+#: ../client/pk-console.c:1352
 msgid "To install"
 msgstr "संस्थापित करने के लिए"
 
 #. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1332
+#: ../client/pk-console.c:1364
 msgid "Searching for package: "
 msgstr "संकुल के खोज रहा है: "
 
 #. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1336
+#: ../client/pk-console.c:1368
 msgid "not found."
 msgstr "नहीं पाया."
 
 #. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1347
+#: ../client/pk-console.c:1379
 #, c-format
 msgid "No packages can be found to install"
 msgstr "संस्थापित करने के लिए कोई संकुल नहीं मिला"
 
 #. TRANSLATORS: installing new packages from package list
-#: ../client/pk-console.c:1353
+#. TRANSLATORS: we are now installing the debuginfo packages we found earlier
+#: ../client/pk-console.c:1385
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:886
+#, c-format
 msgid "Installing packages"
 msgstr "संकुल अधिष्ठापित कर रहा है"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1389
+#: ../client/pk-console.c:1421
 #, c-format
 msgid "This tool could not find the update details for %s: %s"
 msgstr "यह औज़ार %s के लिए अद्यतन विवरण नहीं ढूँढ़ सका: %s"
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1397
+#: ../client/pk-console.c:1429
 #, c-format
 msgid "This tool could not get the update details for %s: %s"
 msgstr "यह औज़ार %s के लिए अद्यतन विवरण नहीं पा सका: %s"
 
 #. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
-#: ../client/pk-console.c:1443
+#: ../client/pk-console.c:1460
 msgid "Error:"
 msgstr "त्रुटि:"
 
 #. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1457
+#: ../client/pk-console.c:1474
 msgid "Package description"
 msgstr "संकुल विवरण"
 
 #. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
-#: ../client/pk-console.c:1473
+#: ../client/pk-console.c:1490
 msgid "Message:"
 msgstr "संदेशः"
 
 #. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1501
+#: ../client/pk-console.c:1518
 msgid "Package files"
 msgstr "संकुल फ़ाइल"
 
 #. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1509
+#: ../client/pk-console.c:1526
 msgid "No files"
 msgstr "कोई फ़ाइल नहीं"
 
 #. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1532
+#: ../client/pk-console.c:1549
 msgid "Repository signature required"
 msgstr "रिपोजिटरी हस्ताक्षर जरूरी"
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1542
+#: ../client/pk-console.c:1559
 msgid "Do you accept this signature?"
 msgstr "क्या आप यह हस्ताक्षर स्वीकार करते हैं?"
 
 #. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1546
+#: ../client/pk-console.c:1563
 msgid "The signature was not accepted."
 msgstr "हस्ताक्षर स्वीकार नहीं किया गया था."
 
 #. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1580
+#: ../client/pk-console.c:1597
 msgid "End user license agreement required"
 msgstr "अंत्य उपयोक्ता लाइसेंस मसौदा जरूरी"
 
 #. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1587
+#: ../client/pk-console.c:1604
 msgid "Do you agree to this license?"
 msgstr "क्या आप इस लाइसेंस से सहमत हैं?"
 
 #. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1591
+#: ../client/pk-console.c:1608
 msgid "The license was refused."
 msgstr "लाइसेंस अस्वीकृत किया गया."
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1620
+#: ../client/pk-console.c:1637
 msgid "The daemon crashed mid-transaction!"
 msgstr "यह डेमॉन मध्य विनिमय में क्रैश कर गया!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1673
+#: ../client/pk-console.c:1690
 msgid "PackageKit Console Interface"
 msgstr "पैकेजकिट कंसोल अंतरफलक"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1675
+#: ../client/pk-console.c:1692
 msgid "Subcommands:"
 msgstr "उपकमांड:"
 
 #. TRANSLATORS: command line argument, if we should show debugging information
 #. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:1767 ../client/pk-generate-pack.c:185
-#: ../client/pk-monitor.c:125
-#: ../contrib/command-not-found/pk-command-not-found.c:520
-#: ../src/pk-main.c:211
+#: ../client/pk-console.c:1785 ../client/pk-generate-pack.c:185
+#: ../client/pk-monitor.c:128
+#: ../contrib/command-not-found/pk-command-not-found.c:616
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:550
+#: ../contrib/device-rebind/pk-device-rebind.c:293 ../src/pk-main.c:211
 msgid "Show extra debugging information"
 msgstr "अतिरिक्त डिबगिंग सूचना दिखाएं"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1770 ../client/pk-monitor.c:127
+#: ../client/pk-console.c:1788 ../client/pk-monitor.c:130
 msgid "Show the program version and exit"
 msgstr "प्रोग्राम संस्करण दिखाएँ और बाहर निकलें"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1773
+#: ../client/pk-console.c:1791
 msgid "Set the filter, e.g. installed"
 msgstr "फ़िल्टर सेट करें, उदा. संस्थापित"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1776
+#: ../client/pk-console.c:1794
 msgid "Exit without waiting for actions to complete"
 msgstr "पूरा होने के लिए क्रिया के लिए प्रतीक्षारत रहे बिना बाहर निकलें"
 
 #. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:1803
+#: ../client/pk-console.c:1821
 msgid "This tool could not connect to system DBUS."
 msgstr "यह औज़ार DBUS में कनेक्ट नहीं हो सका."
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1894
+#: ../client/pk-console.c:1911
 msgid "The filter specified was invalid"
 msgstr "निर्दिष्ट फिल्टर अवैध था"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1912
+#: ../client/pk-console.c:1930
 msgid "A search type is required, e.g. name"
 msgstr "खोज प्रकार जरूरी है, उदा. name"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1918 ../client/pk-console.c:1926
-#: ../client/pk-console.c:1934 ../client/pk-console.c:1942
+#: ../client/pk-console.c:1937 ../client/pk-console.c:1946
+#: ../client/pk-console.c:1955 ../client/pk-console.c:1964
 msgid "A search term is required"
 msgstr "खोज पद जरूरी है"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1948
+#: ../client/pk-console.c:1971
 msgid "Invalid search type"
 msgstr "अवैध खोज प्रकार"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1954
+#: ../client/pk-console.c:1977
 msgid "A package name or filename to install is required"
 msgstr "संस्थापित करने के लिए पैकेज नाम या फाइलनाम जरूरी है"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1962
+#: ../client/pk-console.c:1986
 msgid "A type, key_id and package_id are required"
 msgstr "प्रकार, key_id और package_id जरूरी है"
 
 #. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:1970
+#: ../client/pk-console.c:1995
 msgid "A package name to remove is required"
 msgstr "हटाने के लिए संकुल नाम जरूरी है"
 
 #. TRANSLATORS: the user did not specify anything about what to download or where
-#: ../client/pk-console.c:1977
-msgid "A destination directory and then the package names to download are required"
+#: ../client/pk-console.c:2003
+#, fuzzy
+msgid "A destination directory and the package names to download are required"
 msgstr "गंतव्य निर्देशिका और फिर डाउनलोड करने के लिए संकुल नाम जरूरी है"
 
 #. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:1983
+#: ../client/pk-console.c:2010
 msgid "Directory not found"
 msgstr "निर्देशिका नहीं मिला"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1990
+#: ../client/pk-console.c:2018
 msgid "A licence identifier (eula-id) is required"
 msgstr "लाइसेंस पहचानकर्ता (eula-id) जरूरी है"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1999
+#: ../client/pk-console.c:2028
 msgid "A transaction identifier (tid) is required"
 msgstr "विनिमय पहचानकर्ता (tid) जरूरी है"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:2015
+#: ../client/pk-console.c:2045
 msgid "A package name to resolve is required"
 msgstr "हल किया पैकेज नाम जरूरी है"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:2023 ../client/pk-console.c:2031
+#: ../client/pk-console.c:2054 ../client/pk-console.c:2063
 msgid "A repository name is required"
 msgstr "रिपाजिटरी नाम जरूरी है"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2039
+#: ../client/pk-console.c:2072
 msgid "A repo name, parameter and value are required"
 msgstr "रेपो नाम, पैरामीटर और मान जरूरी है"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:2052
+#: ../client/pk-console.c:2086
 msgid "An action, e.g. 'update-system' is required"
 msgstr "क्रिया, उदा. 'update-system' जरूरी है"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:2058
+#: ../client/pk-console.c:2093
 msgid "A correct role is required"
 msgstr "सही भूमिका जरूरी है"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2064
+#: ../client/pk-console.c:2100
 msgid "Failed to get the time since this action was last completed"
 msgstr "समय पाने में विफल क्योंकि यह काम अंतिम में पूरा किया गया था"
 
 #. TRANSLATORS: The user did not provide a package name
 #. TRANSLATORS: This is when the user fails to supply the package name
-#: ../client/pk-console.c:2073 ../client/pk-console.c:2084
-#: ../client/pk-console.c:2092 ../client/pk-console.c:2108
-#: ../client/pk-console.c:2116 ../client/pk-generate-pack.c:241
+#: ../client/pk-console.c:2110 ../client/pk-console.c:2122
+#: ../client/pk-console.c:2131 ../client/pk-console.c:2149
+#: ../client/pk-console.c:2158 ../client/pk-generate-pack.c:241
 msgid "A package name is required"
 msgstr "संकुल नाम जरूरी है"
 
 #. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:2100
+#: ../client/pk-console.c:2140
 msgid "A package provide string is required"
 msgstr "संकुल प्रदत्त स्ट्रिंग जरूरी है"
 
 #. TRANSLATORS: The user didn't specify a filename to create as a list
-#: ../client/pk-console.c:2124
+#: ../client/pk-console.c:2167
 msgid "A list file name to create is required"
 msgstr "बनाने के लिए सूची फाइल नाम जरूरी है"
 
 #. TRANSLATORS: The user didn't specify a filename to open as a list
-#: ../client/pk-console.c:2133 ../client/pk-console.c:2142
+#: ../client/pk-console.c:2177 ../client/pk-console.c:2187
 msgid "A list file to open is required"
 msgstr "खोलने के लिए सूची फाइल जरूरी है"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2195
+#: ../client/pk-console.c:2241
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "विकल्प '%s' समर्थित नहीं है"
 
 #. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2208
+#: ../client/pk-console.c:2254
 msgid "Incorrect privileges for this operation"
 msgstr "इस ऑपरेशन के लिए गलत अधिकार"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2211
+#: ../client/pk-console.c:2257
 msgid "Command failed"
 msgstr "कमांड असफल"
 
@@ -667,8 +707,10 @@ msgstr "चलाने के लिए निर्भरता के फाà
 
 #. TRANSLATORS: the output location
 #: ../client/pk-generate-pack.c:191
-msgid "The output file or directory (the current directory is used if ommitted)"
-msgstr "आउटपुट फाइल या निर्देशिका (मौजूदा निर्देशिका का प्रयोग किया जा सकता यदि मिटाया गया)"
+msgid ""
+"The output file or directory (the current directory is used if ommitted)"
+msgstr ""
+"आउटपुट फाइल या निर्देशिका (मौजूदा निर्देशिका का प्रयोग किया जा सकता यदि मिटाया गया)"
 
 #. TRANSLATORS: put a list of packages in the pack
 #: ../client/pk-generate-pack.c:194
@@ -706,7 +748,9 @@ msgstr "संकुल प्रबंधक इस प्रकार का à
 msgid ""
 "Service packs cannot be created as PackageKit was not built with libarchive "
 "support."
-msgstr "सेवा पैक को नहीं बनाया जा सकता है क्योंकि PackageKit लिबआर्काइव समर्थन के साथ नही बनाया जा सकत है."
+msgstr ""
+"सेवा पैक को नहीं बनाया जा सकता है क्योंकि PackageKit लिबआर्काइव समर्थन के साथ नही "
+"बनाया जा सकत है."
 
 #. TRANSLATORS: the user specified an absolute path, but didn't get the extension correct
 #: ../client/pk-generate-pack.c:291
@@ -762,10 +806,14 @@ msgid "Failed to create '%s': %s"
 msgstr "'%s' बनाने में विफल: %s"
 
 #. TRANSLATORS: this is a program that monitors PackageKit
-#: ../client/pk-monitor.c:143
+#: ../client/pk-monitor.c:146
 msgid "PackageKit Monitor"
 msgstr "PackageKit मानिटर"
 
+#: ../client/pk-monitor.c:183
+msgid "Cannot show the list of transactions"
+msgstr ""
+
 #. TRANSLATORS: The package was not found in any software sources
 #: ../client/pk-tools-common.c:118
 #, c-format
@@ -787,128 +835,433 @@ msgstr "कृपया सही संकुल चुनें: "
 msgid "Please enter a number from 1 to %i: "
 msgstr "1 से %i तक की संख्या कृपया दाखिल करें: "
 
+#. TRANSLATORS: when we are getting data from the daemon
+#: ../contrib/browser-plugin/pk-plugin-install.c:466
+msgid "Getting package information..."
+msgstr "संकुल सूचना पा रहा है..."
+
+#. TRANSLATORS: run an applicaiton
+#: ../contrib/browser-plugin/pk-plugin-install.c:472
+#, c-format
+msgid "Run %s"
+msgstr "%s चलाएँ"
+
+#. TRANSLATORS: show the installed version of a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:478
+msgid "Installed version"
+msgstr "संस्थापित संस्करण"
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:486
+#, c-format
+msgid "Run version %s now"
+msgstr "अब %s संस्करण चलाएँ"
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:492
+msgid "Run now"
+msgstr "अभी चलाएँ"
+
+#. TRANSLATORS: update to a new version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:498
+#, c-format
+msgid "Update to version %s"
+msgstr "संस्करण %s में अद्यतन करें"
+
+#. TRANSLATORS: To install a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:504
+#, c-format
+msgid "Install %s now"
+msgstr "अब %s को संस्थापित करें"
+
+#. TRANSLATORS: the version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:507
+msgid "Version"
+msgstr "संस्करण"
+
+#. TRANSLATORS: noting found, so can't install
+#: ../contrib/browser-plugin/pk-plugin-install.c:512
+msgid "No packages found for your system"
+msgstr "आपके तंत्र के लिए कोई संकुल नहीं पाया गया"
+
+#. TRANSLATORS: package is being installed
+#: ../contrib/browser-plugin/pk-plugin-install.c:517
+msgid "Installing..."
+msgstr "संस्थापित कर रहा है..."
+
+#. TRANSLATORS: downloading repo data so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:349
+msgid "Downloading details about the software sources."
+msgstr ""
+
+#. TRANSLATORS: downloading file lists so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:353
+msgid "Downloading filelists (this may take some time to complete)."
+msgstr ""
+
+#. TRANSLATORS: waiting for native lock
+#: ../contrib/command-not-found/pk-command-not-found.c:357
+#, fuzzy
+msgid "Waiting for package manager lock."
+msgstr "संकुल नाम ढूँढ़ रहा है."
+
+#. TRANSLATORS: loading package cache so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:361
+#, fuzzy
+msgid "Loading list of packages."
+msgstr "संकुल डाउनलोड कर रहा है"
+
 #. TRANSLATORS: we failed to find the package, this shouldn't happen
-#: ../contrib/command-not-found/pk-command-not-found.c:371
+#: ../contrib/command-not-found/pk-command-not-found.c:420
 msgid "Failed to search for file"
 msgstr "फाइल के लिए खोजने में विफल"
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:495
+#: ../contrib/command-not-found/pk-command-not-found.c:557
 msgid "Failed to launch:"
 msgstr "लॉन्च में विफल:"
 
 #. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/command-not-found/pk-command-not-found.c:536
+#: ../contrib/command-not-found/pk-command-not-found.c:632
 msgid "PackageKit Command Not Found"
 msgstr "PackageKit कमांड नहीं मिला"
 
 #. TRANSLATORS: the prefix of all the output telling the user why it's not executing
-#: ../contrib/command-not-found/pk-command-not-found.c:559
+#: ../contrib/command-not-found/pk-command-not-found.c:658
 msgid "Command not found."
 msgstr "कमांड नहीं मिला."
 
 #. TRANSLATORS: tell the user what we think the command is
-#: ../contrib/command-not-found/pk-command-not-found.c:566
+#: ../contrib/command-not-found/pk-command-not-found.c:665
 msgid "Similar command is:"
 msgstr "उसी तरह का कमांड है:"
 
 #. TRANSLATORS: Ask the user if we should run the similar command
-#: ../contrib/command-not-found/pk-command-not-found.c:575
+#: ../contrib/command-not-found/pk-command-not-found.c:674
 msgid "Run similar command:"
 msgstr "समान कमांड चलाएँ:"
 
 #. TRANSLATORS: show the user a list of commands that they could have meant
 #. TRANSLATORS: show the user a list of commands we could run
-#: ../contrib/command-not-found/pk-command-not-found.c:587
-#: ../contrib/command-not-found/pk-command-not-found.c:596
+#: ../contrib/command-not-found/pk-command-not-found.c:686
+#: ../contrib/command-not-found/pk-command-not-found.c:695
 msgid "Similar commands are:"
 msgstr "समान कमांड हैं:"
 
 #. TRANSLATORS: ask the user to choose a file to run
-#: ../contrib/command-not-found/pk-command-not-found.c:603
+#: ../contrib/command-not-found/pk-command-not-found.c:702
 msgid "Please choose a command to run"
 msgstr "चलाने के लिए कमांड चुनें"
 
 #. TRANSLATORS: tell the user what package provides the command
-#: ../contrib/command-not-found/pk-command-not-found.c:618
+#: ../contrib/command-not-found/pk-command-not-found.c:721
 msgid "The package providing this file is:"
 msgstr "इस फ़ाइल को देने वाला संकुल:"
 
 #. TRANSLATORS: as the user if we want to install a package to provide the command
-#: ../contrib/command-not-found/pk-command-not-found.c:623
+#: ../contrib/command-not-found/pk-command-not-found.c:726
 #, c-format
 msgid "Install package '%s' to provide command '%s'?"
 msgstr "संकुल '%s' को '%s' कमांड को देने के लिए संस्थापित करें?"
 
 #. TRANSLATORS: Show the user a list of packages that provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:644
+#: ../contrib/command-not-found/pk-command-not-found.c:747
 msgid "Packages providing this file are:"
 msgstr "इस फ़ाइल को देने वाला संकुल:"
 
 #. TRANSLATORS: Show the user a list of packages that they can install to provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:653
+#: ../contrib/command-not-found/pk-command-not-found.c:756
 msgid "Suitable packages are:"
 msgstr "उपयुक्त संकुल हैं:"
 
 #. get selection
 #. TRANSLATORS: ask the user to choose a file to install
-#: ../contrib/command-not-found/pk-command-not-found.c:661
+#: ../contrib/command-not-found/pk-command-not-found.c:764
 msgid "Please choose a package to install"
 msgstr "संस्थापित करने के लिए कोई संकुल चुनें"
 
-#. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/src/contents.cpp:298
-msgid "Getting package information..."
-msgstr "संकुल सूचना पा रहा है..."
+#. TRANSLATORS: we are starting to install the packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:187
+#, fuzzy
+msgid "Starting install"
+msgstr "संस्थापित करने के लिए"
 
-#. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/src/contents.cpp:304
+#. TRANSLATORS: we couldn't find the package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:397
+#, fuzzy, c-format
+msgid "Failed to find the package %s, or already installed: %s"
+msgstr "यह संकुल %s पहले से संस्थापित है"
+
+#. command line argument, simulate what would be done, but don't actually do it
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:553
+msgid ""
+"Don't actually install any packages, only simulate what would be installed"
+msgstr ""
+
+#. command line argument, do we skip packages that depend on the ones specified
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:556
+msgid "Do not install dependencies of the core packages"
+msgstr ""
+
+#. command line argument, do we operate quietly
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:559
+msgid "Do not display information or progress"
+msgstr ""
+
+#. TRANSLATORS: tool that gets called when the command is not found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:577
+#, fuzzy
+msgid "PackageKit Debuginfo Installer"
+msgstr "पैकेजकिट कंसोल अंतरफलक"
+
+#. TRANSLATORS: the use needs to specify a list of package names on the command line
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:589
+#, fuzzy, c-format
+msgid "ERROR: Specify package names to install."
+msgstr "कोई नया संकुल संस्थापित होने के लिए नहीं"
+
+#. TRANSLATORS: we are getting the list of repositories
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:623
+#, fuzzy, c-format
+msgid "Getting sources list"
+msgstr "पैकेज सूची पा रहा है"
+
+#. TRANSLATORS: all completed 100%
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:641
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:681
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:716
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:800
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:844
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:911
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:955
 #, c-format
-msgid "Run %s"
-msgstr "%s चलाएँ"
+msgid "OK."
+msgstr ""
 
-#. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/src/contents.cpp:310
-msgid "Installed version"
-msgstr "संस्थापित संस्करण"
+#. TRANSLATORS: tell the user what we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:644
+#, c-format
+msgid "Found %i enabled and %i disabled sources."
+msgstr ""
 
-#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/src/contents.cpp:318
+#. TRANSLATORS: we're finding repositories that match out pattern
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:651
 #, c-format
-msgid "Run version %s now"
-msgstr "अब %s संस्करण चलाएँ"
+msgid "Finding debugging sources"
+msgstr ""
 
-#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/src/contents.cpp:324
-msgid "Run now"
-msgstr "अभी चलाएँ"
+#. TRANSLATORS: tell the user what we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:684
+#, c-format
+msgid "Found %i disabled debuginfo repos."
+msgstr ""
 
-#. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/src/contents.cpp:330
+#. TRANSLATORS: we're now enabling all the debug sources we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:691
 #, c-format
-msgid "Update to version %s"
-msgstr "संस्करण %s में अद्यतन करें"
+msgid "Enabling debugging sources"
+msgstr ""
 
-#. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/src/contents.cpp:336
+#. TRANSLATORS: operation was not successful
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:701
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:785
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:829
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:896
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:940
+msgid "FAILED."
+msgstr ""
+
+#. TRANSLATORS: tell the user how many we enabled
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:719
 #, c-format
-msgid "Install %s now"
-msgstr "अब %s को संस्थापित करें"
+msgid "Enabled %i debugging sources."
+msgstr ""
 
-#. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/src/contents.cpp:339
-msgid "Version"
-msgstr "संस्करण"
+#. TRANSLATORS: we're now finding packages that match in all the repos
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:726
+#, fuzzy, c-format
+msgid "Finding debugging packages"
+msgstr "संकुल नाम ढूँढ़ रहा है."
 
-#. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/src/contents.cpp:344
-msgid "No packages found for your system"
-msgstr "आपके तंत्र के लिए कोई संकुल नहीं पाया गया"
+#. TRANSLATORS: we couldn't find the package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:738
+#, fuzzy, c-format
+msgid "Failed to find the package %s: %s"
+msgstr "'%s' संकुल ढूँढ़ने में विफल: %s"
 
-#. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/src/contents.cpp:349
-msgid "Installing..."
-msgstr "संस्थापित कर रहा है..."
+#. TRANSLATORS: we couldn't find the debuginfo package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:761
+#, fuzzy, c-format
+msgid "Failed to find the debuginfo package %s: %s"
+msgstr "'%s' संकुल ढूँढ़ने में विफल: %s"
+
+#. TRANSLATORS: no debuginfo packages could be found to be installed
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:789
+#, fuzzy, c-format
+msgid "Found no packages to install."
+msgstr "कोई नया संकुल संस्थापित होने के लिए नहीं"
+
+#. TRANSLATORS: tell the user we found some packages, and then list them
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:803
+#, fuzzy, c-format
+msgid "Found %i packages:"
+msgstr "संकुल डाउनलोड कर रहा है"
+
+#. TRANSLATORS: tell the user we are searching for deps
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:819
+#, c-format
+msgid "Finding packages that depend on these packages"
+msgstr ""
+
+#. TRANSLATORS: could not install, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:832
+#, fuzzy, c-format
+msgid "Could not find dependant packages: %s"
+msgstr "'%s' संकुल ढूँढ़ने में विफल: %s"
+
+#. TRANSLATORS: tell the user we found some more packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:848
+#, c-format
+msgid "Found %i extra packages."
+msgstr ""
+
+#. TRANSLATORS: tell the user we found some more packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:852
+#, fuzzy, c-format
+msgid "No extra packages required."
+msgstr "संकुल नाम जरूरी है"
+
+#. TRANSLATORS: tell the user we found some packages (and deps), and then list them
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:861
+#, fuzzy, c-format
+msgid "Found %i packages to install:"
+msgstr "कोई नया संकुल संस्थापित होने के लिए नहीं"
+
+#. TRANSLATORS: simulate mode is a testing mode where we quit before the action
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:874
+#, fuzzy, c-format
+msgid "Not installing packages in simulate mode"
+msgstr "संकुल अधिष्ठापित कर रहा है"
+
+#. TRANSLATORS: could not install, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:899
+#, fuzzy, c-format
+msgid "Could not install packages: %s"
+msgstr "यह औजार संकुल को नहीं संस्थापित कर सका: %s"
+
+#. TRANSLATORS: we are now disabling all debuginfo repos we previously enabled
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:931
+#, c-format
+msgid "Disabling sources previously enabled"
+msgstr ""
+
+#. TRANSLATORS: no debuginfo packages could be found to be installed, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:943
+#, c-format
+msgid "Could not disable the debugging sources: %s"
+msgstr ""
+
+#. TRANSLATORS: we disabled all the debugging repos that we enabled before
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:958
+#, c-format
+msgid "Disabled %i debugging sources."
+msgstr ""
+
+#. TRANSLATORS: couldn't open device to write
+#: ../contrib/device-rebind/pk-device-rebind.c:61
+#, fuzzy
+msgid "Failed to open file"
+msgstr "फाइल के लिए खोजने में विफल"
+
+#. TRANSLATORS: could not write to the device
+#: ../contrib/device-rebind/pk-device-rebind.c:70
+#, fuzzy
+msgid "Failed to write to the file"
+msgstr "फाइल के लिए खोजने में विफल"
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:110
+#: ../contrib/device-rebind/pk-device-rebind.c:147
+#, fuzzy
+msgid "Failed to write to device"
+msgstr "डिस्क में सहेजने में विफल"
+
+#. TRANSLATORS: the device could not be found in sysfs
+#: ../contrib/device-rebind/pk-device-rebind.c:175
+#, fuzzy
+msgid "Device could not be found"
+msgstr "यह संकुल नहीं मिल सका"
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:202
+#, fuzzy
+msgid "Failed to unregister driver"
+msgstr "निर्देशिका बनाने में विफल:"
+
+#. TRANSLATORS: we failed to bind the old driver
+#: ../contrib/device-rebind/pk-device-rebind.c:211
+#, fuzzy
+msgid "Failed to register driver"
+msgstr "निर्देशिका बनाने में विफल:"
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:260
+#, fuzzy
+msgid "Device path not found"
+msgstr "निर्देशिका नहीं मिला"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:268
+msgid "Incorrect device path specified"
+msgstr ""
+
+#. command line argument, simulate what would be done, but don't actually do it
+#: ../contrib/device-rebind/pk-device-rebind.c:296
+msgid "Don't actually touch the hardware, only simulate what would be done"
+msgstr ""
+
+#. TRANSLATORS: command line option: a list of files to install
+#: ../contrib/device-rebind/pk-device-rebind.c:299
+msgid "Device paths"
+msgstr ""
+
+#. TRANSLATORS: tool that gets called when the device needs reloading after installing firmware
+#: ../contrib/device-rebind/pk-device-rebind.c:314
+#, fuzzy
+msgid "PackageKit Device Reloader"
+msgstr "PackageKit सेवा पैक"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:322
+msgid "You need to specify at least one valid device path"
+msgstr ""
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:332
+msgid "This script can only be used by the root user"
+msgstr ""
+
+#. TRANSLATORS: we're going to verify the path first
+#: ../contrib/device-rebind/pk-device-rebind.c:341
+msgid "Verifying device path"
+msgstr ""
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:346
+#, fuzzy
+msgid "Failed to verify device path"
+msgstr "फाइल के लिए खोजने में विफल"
+
+#. TRANSLATORS: we're going to try
+#: ../contrib/device-rebind/pk-device-rebind.c:360
+msgid "Attempting to rebind device"
+msgstr ""
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:365
+#, fuzzy
+msgid "Failed to rebind device"
+msgstr "निर्देशिका बनाने में विफल:"
 
 #: ../data/packagekit-catalog.xml.in.h:1
 msgid "PackageKit Catalog"
@@ -922,95 +1275,177 @@ msgstr "PackageKit संकुल सूची"
 msgid "PackageKit Service Pack"
 msgstr "PackageKit सेवा पैक"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:1
+#. SECURITY:
+#. - Normal users do not require admin authentication to accept new
+#. licence agreements.
+#. - Change this to 'auth_admin' for environments where users should not
+#. be given the option to make legal decisions.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:7
 msgid "Accept EULA"
 msgstr "EULA स्वीकारें"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:2
+#: ../policy/org.freedesktop.packagekit.policy.in.h:8
 msgid "Authentication is required to accept a EULA"
 msgstr "EULA स्वीकार करने के लिए प्रमाणीकरण जरूरी है"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:3
-msgid "Authentication is required to cancel a task that was not started by yourself"
-msgstr "कोई कार्य अस्वीकार करने के लिए प्रमाणीकरण जरूरी है जो आपके द्वारा आरंभ नहीं किया गया है"
+#: ../policy/org.freedesktop.packagekit.policy.in.h:9
+msgid ""
+"Authentication is required to cancel a task that was not started by yourself"
+msgstr ""
+"कोई कार्य अस्वीकार करने के लिए प्रमाणीकरण जरूरी है जो आपके द्वारा आरंभ नहीं किया गया है"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:4
+#: ../policy/org.freedesktop.packagekit.policy.in.h:10
 msgid "Authentication is required to change software source parameters"
 msgstr "सॉफ़्टवेयर स्रोत पैरामीटर बदलने के लिए प्रमाणीकरण जरूरी है"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:5
+#: ../policy/org.freedesktop.packagekit.policy.in.h:11
 msgid ""
 "Authentication is required to consider a key used for signing packages as "
 "trusted"
-msgstr "बतौर विश्वसनीय संकुल के हस्ताक्षर के लिए प्रयुक्त कुंजी स्वीकारने के लिए प्रमाणीकरण जरूरी है"
+msgstr ""
+"बतौर विश्वसनीय संकुल के हस्ताक्षर के लिए प्रयुक्त कुंजी स्वीकारने के लिए प्रमाणीकरण जरूरी है"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:6
+#: ../policy/org.freedesktop.packagekit.policy.in.h:12
 msgid "Authentication is required to install a signed package"
 msgstr "हस्ताक्षरित संकुल संस्थापित करने के लिए प्रमाणीकरण जरूरी है"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:7
+#: ../policy/org.freedesktop.packagekit.policy.in.h:13
 msgid "Authentication is required to install an untrusted package"
 msgstr "किसी अविश्वसनीय संकुल संस्थापित करने के लिए प्रमाणीकरण जरूरी है"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:8
+#: ../policy/org.freedesktop.packagekit.policy.in.h:14
 msgid "Authentication is required to refresh the system sources"
 msgstr "तंत्र स्रोत ताज़ा करने के लिए प्रमाणीकरण जरूरी है"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:9
+#: ../policy/org.freedesktop.packagekit.policy.in.h:15
+#, fuzzy
+msgid "Authentication is required to reload the device with a new driver"
+msgstr "तंत्र स्रोत ताज़ा करने के लिए प्रमाणीकरण जरूरी है"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:16
 msgid "Authentication is required to remove packages"
 msgstr "संकुल हटाने के लिए प्रमाणीकरण जरूरी है"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:10
+#: ../policy/org.freedesktop.packagekit.policy.in.h:17
 msgid "Authentication is required to rollback a transaction"
 msgstr "विनिमय वापस लेने के लिए प्रमाणीकरण जरूरी है"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:11
+#: ../policy/org.freedesktop.packagekit.policy.in.h:18
 msgid ""
 "Authentication is required to set the network proxy used for downloading "
 "packages"
 msgstr "संकुल डाउनलोड करने के लिए प्रयुक्ति संजाल प्रॉक्सी सेट करने के लिए प्रमाणीकरण जरूरी है"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:12
+#: ../policy/org.freedesktop.packagekit.policy.in.h:19
 msgid "Authentication is required to update packages"
 msgstr "संकुल अद्यतन के लिए प्रमाणीकरण जरूरी है"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:13
+#. SECURITY:
+#. - Normal users are allowed to cancel their own task without
+#. authentication, but a different user id needs the admin password
+#. to cancel another users task.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:25
 msgid "Cancel foreign task"
 msgstr "बाहरी कार्य रद्द करें"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:14
+#. SECURITY:
+#. - Normal users require admin authentication to enable or disable
+#. software sources as this can be used to enable new updates or
+#. install different versions of software.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:31
 msgid "Change software source parameters"
 msgstr "सॉफ़्टवेयर स्रोत पैरामीटर बदलें"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:15
+#. SECURITY:
+#. - Normal users do not need authentication to install signed packages
+#. from signed repositories, as this cannot exploit a system.
+#. - Paranoid users (or parents!) can change this to 'auth_admin' or
+#. 'auth_admin_keep'.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:38
 msgid "Install signed package"
 msgstr "हस्ताक्षरित संकुल संस्थापित करें"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:16
+#. SECURITY:
+#. - Normal users require admin authentication to install untrusted or
+#. unrecognised packages, as allowing users to do this without a
+#. password would be a massive security hole.
+#. - This is not retained as each package should be authenticated.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:45
 msgid "Install untrusted local file"
 msgstr "अविश्वसनीय स्थानीय फाइल संस्थापित करें"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:17
+#. SECURITY:
+#. - Normal users do not require admin authentication to refresh the
+#. cache, as this doesn't actually install or remove software.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:50
 msgid "Refresh system sources"
 msgstr "तंत्र स्रोत ताज़ा करें"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:18
+#. SECURITY:
+#. - Normal users require admin authentication to rebind a driver
+#. so that it works after we install firmware.
+#. - This should not be set to 'yes' as unprivileged users could then
+#. try to rebind drivers in use, for instance security authentication
+#. devices.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:58
+msgid "Reload a device"
+msgstr ""
+
+#. SECURITY:
+#. - Normal users require admin authentication to remove packages as
+#. this can make the system unbootable or stop other applications from
+#. working.
+#. - Be sure to close the tool used to remove the packages after the
+#. admin authentication has been obtained, otherwise packages can still
+#. be removed. If this is not possible, change this authentication to
+#. 'auth_admin'.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:68
 msgid "Remove package"
 msgstr "संकुल हटाएँ"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:19
+#. SECURITY:
+#. - Normal users require admin authentication to rollback system state
+#. as this will change a large number of packages, and could expose the
+#. system to previously patched security vulnerabilities.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:74
 msgid "Rollback to a previous transaction"
 msgstr "पिछले लेनदेन में वापस लें"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:20
+#. SECURITY:
+#. - Normal users do not require admin authentication to set the proxy
+#. used for downloading packages.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:79
 msgid "Set network proxy"
 msgstr "संजाल प्रॉक्सी सेट करें"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:21
+#. SECURITY:
+#. - Normal users require admin authentication to add signing keys.
+#. - This implies adding an explicit trust, and should not be granted
+#. without a secure authentication.
+#. - This is not kept as each package should be authenticated.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:86
 msgid "Trust a key used for signing packages"
 msgstr "संकुल हस्ताक्षर के लिए प्रयुक्त किसी कुंजी पर भरोसा करें"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:22
+#. SECURITY:
+#. - Normal users do not require admin authentication to update the
+#. system as the packages will be signed, and the action is required
+#. to update the system when unattended.
+#. - Changing this to anything other than 'yes' will break unattended
+#. updates.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:94
 msgid "Update packages"
 msgstr "संकुल अद्यतन करें"
 
@@ -1076,9 +1511,49 @@ msgstr "PackageKit सेवा"
 msgid "Cannot connect to the system bus"
 msgstr "सिस्टम बस में कनेक्ट नहीं हो सकता है"
 
-#. TRANSLATORS: cannot register on system bus, unknown reason
-#: ../src/pk-main.c:331
-#, c-format
+#. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error follows
+#: ../src/pk-main.c:334
 msgid "Error trying to start:"
 msgstr "आरंभ होने की कोशिश में त्रुटि:"
 
+#: ../src/pk-polkit-action-lookup.c:147
+#, fuzzy
+msgid "To install debugging packages, extra sources need to be enabled"
+msgstr "कोई नया संकुल संस्थापित होने के लिए नहीं"
+
+#. TRANSLATORS: is not GPG signed
+#: ../src/pk-polkit-action-lookup.c:168 ../src/pk-polkit-action-lookup.c:187
+msgid "The software is not from a trusted source."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:173
+msgid "Do not update this package unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:174
+msgid "Do not update these packages unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:192
+msgid "Do not install this package unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:193
+msgid "Do not install these packages unless you are sure it is safe to do so."
+msgstr ""
+
+#. TRANSLATORS: warn the user that all bets are off
+#: ../src/pk-polkit-action-lookup.c:199
+msgid "Malicious software can damage your computer or cause other harm."
+msgstr ""
+
+#. TRANSLATORS: too many packages to list each one
+#: ../src/pk-polkit-action-lookup.c:274
+#, fuzzy
+msgid "Many packages"
+msgstr "संकुल अद्यतन करें"
+
+#. TRANSLATORS: if the transaction is forced to install only trusted packages
+#: ../src/pk-polkit-action-lookup.c:334
+msgid "Only trusted"
+msgstr ""
diff --git a/po/hu.po b/po/hu.po
index 0992a8a..5b7e4c0 100644
--- a/po/hu.po
+++ b/po/hu.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: packagekit\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-06-27 22:49+0000\n"
+"POT-Creation-Date: 2009-08-24 11:06+0100\n"
 "PO-Revision-Date: 2009-07-06 16:09+0100\n"
 "Last-Translator: Zoltan Hoppar <hopparz at gmail.com>\n"
 "Language-Team: Hungarian <fedora-trans-hu at redhat.com>\n"
@@ -21,660 +21,669 @@ msgstr ""
 "X-Generator: KBabel 1.11.4\n"
 
 #. TRANSLATORS: this is an atomic transaction
-#: ../client/pk-console.c:231
+#: ../client/pk-console.c:235
 msgid "Transaction"
 msgstr "Tranzakció"
 
 #. TRANSLATORS: this is the time the transaction was started in system timezone
-#: ../client/pk-console.c:233
+#: ../client/pk-console.c:237
 msgid "System time"
 msgstr "Rendszeridő"
 
 #. TRANSLATORS: this is if the transaction succeeded or not
-#: ../client/pk-console.c:235
+#: ../client/pk-console.c:239
 msgid "Succeeded"
 msgstr "Sikeres"
 
 #. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:235
-#: ../client/pk-console.c:402
+#: ../client/pk-console.c:239 ../client/pk-console.c:406
 msgid "True"
 msgstr "Igaz"
 
-#: ../client/pk-console.c:235
-#: ../client/pk-console.c:402
+#: ../client/pk-console.c:239 ../client/pk-console.c:406
 msgid "False"
 msgstr "Hamis"
 
 #. TRANSLATORS: this is the transactions role, e.g. "update-system"
 #. TRANSLATORS: the trasaction role, e.g. update-system
-#: ../client/pk-console.c:237
-#: ../src/pk-polkit-action-lookup.c:256
+#: ../client/pk-console.c:241 ../src/pk-polkit-action-lookup.c:327
 msgid "Role"
 msgstr "Szerep"
 
 #. TRANSLATORS: this is The duration of the transaction
-#: ../client/pk-console.c:242
+#: ../client/pk-console.c:246
 msgid "Duration"
 msgstr "Időtartam"
 
-#: ../client/pk-console.c:242
+#: ../client/pk-console.c:246
 msgid "(seconds)"
 msgstr "(másodperc)"
 
 #. TRANSLATORS: this is The command line used to do the action
 #. TRANSLATORS: the command line of the thing that wants the authentication
-#: ../client/pk-console.c:246
-#: ../src/pk-polkit-action-lookup.c:270
+#: ../client/pk-console.c:250 ../src/pk-polkit-action-lookup.c:341
 msgid "Command line"
 msgstr "Parancssor"
 
 #. TRANSLATORS: this is the user ID of the user that started the action
-#: ../client/pk-console.c:248
+#: ../client/pk-console.c:252
 msgid "User ID"
 msgstr "Felhasználóazonosító"
 
 #. TRANSLATORS: this is the username, e.g. hughsie
-#: ../client/pk-console.c:255
+#: ../client/pk-console.c:259
 msgid "Username"
 msgstr "Felhasználónév"
 
 #. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
-#: ../client/pk-console.c:259
+#: ../client/pk-console.c:263
 msgid "Real name"
 msgstr "Valódi név"
 
-#: ../client/pk-console.c:267
+#: ../client/pk-console.c:271
 msgid "Affected packages:"
 msgstr "Érintett csomagok:"
 
-#: ../client/pk-console.c:269
+#: ../client/pk-console.c:273
 msgid "Affected packages: None"
 msgstr "Érintett csomagok: nincs"
 
 #. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:294
+#: ../client/pk-console.c:298
 msgid "Distribution"
 msgstr "Disztribúció"
 
 #. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:296
+#: ../client/pk-console.c:300
 msgid "Type"
 msgstr "Típus"
 
 #. TRANSLATORS: this is any summary text describing the upgrade
 #. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:298
-#: ../client/pk-console.c:321
+#: ../client/pk-console.c:302 ../client/pk-console.c:325
 msgid "Summary"
 msgstr "Összegzés"
 
 #. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:310
+#: ../client/pk-console.c:314
 msgid "Category"
 msgstr "Kategória"
 
 #. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:312
+#: ../client/pk-console.c:316
 msgid "ID"
 msgstr "Azonosító"
 
 #. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:315
+#: ../client/pk-console.c:319
 msgid "Parent"
 msgstr "Szülő"
 
 #. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:318
+#: ../client/pk-console.c:322
 msgid "Name"
 msgstr "Név"
 
 #. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:324
+#: ../client/pk-console.c:328
 msgid "Icon"
 msgstr "Ikon"
 
 #. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:339
+#: ../client/pk-console.c:343
 msgid "Details about the update:"
 msgstr "A frissítés részletei:"
 
 #. TRANSLATORS: details about the update, package name and version
-#: ../client/pk-console.c:341
+#. TRANSLATORS: title, the names of the packages that the method is processing
+#: ../client/pk-console.c:345 ../src/pk-polkit-action-lookup.c:352
+#, fuzzy
 msgid "Package"
-msgstr "Csomag"
+msgid_plural "Packages"
+msgstr[0] "Csomag"
+msgstr[1] "Csomag"
 
 #. TRANSLATORS: details about the update, any packages that this update updates
-#: ../client/pk-console.c:344
+#: ../client/pk-console.c:348
 msgid "Updates"
 msgstr "Frissítések"
 
 #. TRANSLATORS: details about the update, any packages that this update obsoletes
-#: ../client/pk-console.c:348
+#: ../client/pk-console.c:352
 msgid "Obsoletes"
 msgstr "Elavult"
 
 #. TRANSLATORS: details about the update, the vendor URLs
-#: ../client/pk-console.c:352
+#: ../client/pk-console.c:356
 msgid "Vendor"
 msgstr "Gyártó"
 
 #. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:356
+#: ../client/pk-console.c:360
 msgid "Bugzilla"
 msgstr "Bugzilla"
 
 #. TRANSLATORS: details about the update, the CVE URLs
-#: ../client/pk-console.c:360
+#: ../client/pk-console.c:364
 msgid "CVE"
 msgstr "CVE"
 
 #. TRANSLATORS: details about the update, if the package requires a restart
-#: ../client/pk-console.c:364
+#: ../client/pk-console.c:368
 msgid "Restart"
 msgstr "Újraindítás"
 
 #. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:368
+#: ../client/pk-console.c:372
 msgid "Update text"
 msgstr "Frissítési szöveg"
 
 #. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:372
+#: ../client/pk-console.c:376
 msgid "Changes"
 msgstr "Változások"
 
 #. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:376
+#: ../client/pk-console.c:380
 msgid "State"
 msgstr "Állapot"
 
 #. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:381
+#: ../client/pk-console.c:385
 msgid "Issued"
 msgstr "Kiadva"
 
 #. TRANSLATORS: details about the update, date the update was updated
-#: ../client/pk-console.c:386
+#: ../client/pk-console.c:390
 msgid "Updated"
 msgstr "Frissítve"
 
-#: ../client/pk-console.c:473
-#: ../client/pk-console.c:475
+#: ../client/pk-console.c:477 ../client/pk-console.c:479
 msgid "Percentage"
 msgstr "Százalék"
 
-#: ../client/pk-console.c:475
+#: ../client/pk-console.c:479
 msgid "Unknown"
 msgstr "Ismeretlen"
 
 #. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:517
+#: ../client/pk-console.c:521
 msgid "System restart required by:"
 msgstr "A rendszer újraindítását igényli:"
 
 #. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:520
+#: ../client/pk-console.c:524
 msgid "Session restart required:"
 msgstr "A munkamenet újraindítását igényli:"
 
+#. TRANSLATORS: a package requires the system to be restarted due to a security update
+#: ../client/pk-console.c:527
+#, fuzzy
+msgid "System restart (security) required by:"
+msgstr "A rendszer újraindítását igényli:"
+
+#. TRANSLATORS: a package requires the session to be restarted due to a security update
+#: ../client/pk-console.c:530
+#, fuzzy
+msgid "Session restart (security) required:"
+msgstr "A munkamenet újraindítását igényli:"
+
 #. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:523
+#: ../client/pk-console.c:533
 msgid "Application restart required by:"
 msgstr "Az alkalmazás újraindítását igényli:"
 
-#. TRANSLATORS: a package needs to restart they system
-#: ../client/pk-console.c:578
+#. TRANSLATORS: a package needs to restart their system
+#: ../client/pk-console.c:588
 msgid "Please restart the computer to complete the update."
 msgstr "Indítsa újra a számítógépet a frissítés befejezéséhez."
 
 #. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:581
+#: ../client/pk-console.c:591
 msgid "Please logout and login to complete the update."
 msgstr "Jelentkezzen ki, majd be a frissítés befejezéséhez."
 
 #. TRANSLATORS: a package needs to restart the application
-#: ../client/pk-console.c:584
+#: ../client/pk-console.c:594
 msgid "Please restart the application as it is being used."
 msgstr "Indítsa újra az alkalmazást, mert az használatban van."
 
+#. TRANSLATORS: a package needs to restart their system (due to security)
+#: ../client/pk-console.c:597
+#, fuzzy
+msgid ""
+"Please restart the computer to complete the update as important security "
+"updates have been installed."
+msgstr "Indítsa újra a számítógépet a frissítés befejezéséhez."
+
+#. TRANSLATORS: a package needs to restart the session (due to security)
+#: ../client/pk-console.c:600
+#, fuzzy
+msgid ""
+"Please logout and login to complete the update as important security updates "
+"have been installed."
+msgstr "Jelentkezzen ki, majd be a frissítés befejezéséhez."
+
 #. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:711
+#: ../client/pk-console.c:727
 #, c-format
 msgid "The package %s is already installed"
 msgstr "A csomag (%s) már telepítve van"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:719
+#: ../client/pk-console.c:735
 #, c-format
 msgid "The package %s could not be installed: %s"
 msgstr "A csomag (%s) nem telepíthető: %s"
 
 #. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
-#: ../client/pk-console.c:744
-#: ../client/pk-console.c:767
-#: ../client/pk-console.c:863
-#: ../client/pk-console.c:980
-#: ../client/pk-tools-common.c:62
-#: ../client/pk-tools-common.c:81
+#: ../client/pk-console.c:760 ../client/pk-console.c:783
+#: ../client/pk-console.c:879 ../client/pk-console.c:996
+#: ../client/pk-tools-common.c:62 ../client/pk-tools-common.c:81
 #: ../client/pk-tools-common.c:89
 #, c-format
 msgid "Internal error: %s"
 msgstr "Belső hiba: %s"
 
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:752
-#: ../client/pk-console.c:1376
+#: ../client/pk-console.c:768 ../client/pk-console.c:1392
 #, c-format
 msgid "This tool could not install the packages: %s"
 msgstr "Az eszköz nem képes telepíteni a csomagokat: %s"
 
 #. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:775
+#: ../client/pk-console.c:791
 #, c-format
 msgid "This tool could not install the files: %s"
 msgstr "Az eszköz nem képes telepíteni a fájlokat: %s"
 
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:831
+#: ../client/pk-console.c:847
 #, c-format
 msgid "This tool could not remove %s: %s"
 msgstr "Az eszköz nem képes %s eltávolítására: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:854
-#: ../client/pk-console.c:892
-#: ../client/pk-console.c:925
+#: ../client/pk-console.c:870 ../client/pk-console.c:908
+#: ../client/pk-console.c:941
 #, c-format
 msgid "This tool could not remove the packages: %s"
 msgstr "Az eszköz nem képes a csomagok eltávolítására: %s"
 
 #. TRANSLATORS: When removing, we might have to remove other dependencies
-#: ../client/pk-console.c:904
+#: ../client/pk-console.c:920
 msgid "The following packages have to be removed:"
 msgstr "A következő csomagokat el kell távolítani:"
 
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:911
+#: ../client/pk-console.c:927
 msgid "Proceed removing additional packages?"
 msgstr "Folytatja a további csomagok eltávolításával?"
 
 #. TRANSLATORS: We did not remove any packages
-#: ../client/pk-console.c:916
+#: ../client/pk-console.c:932
 msgid "The package removal was canceled!"
 msgstr "A csomagok eltávolítása megszakítva"
 
 #. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:957
+#: ../client/pk-console.c:973
 #, c-format
 msgid "This tool could not download the package %s as it could not be found"
 msgstr "Az eszköz nem képes a csomag (%s) letöltésére, mert az nem található"
 
 #. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:988
+#: ../client/pk-console.c:1004
 #, c-format
 msgid "This tool could not download the packages: %s"
 msgstr "Az eszköz nem képes a csomagok letöltésére: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1015
-#: ../client/pk-console.c:1024
+#: ../client/pk-console.c:1031 ../client/pk-console.c:1040
 #, c-format
 msgid "This tool could not update %s: %s"
 msgstr "Az eszköz nem képes a csomag (%s) frissítésére: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1046
-#: ../client/pk-console.c:1054
+#: ../client/pk-console.c:1062 ../client/pk-console.c:1070
 #, c-format
 msgid "This tool could not get the requirements for %s: %s"
 msgstr "Az eszköz nem képes lekérni a csomag (%s) előfeltételeit: %s"
 
 #. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:1076
-#: ../client/pk-console.c:1084
+#: ../client/pk-console.c:1092 ../client/pk-console.c:1100
 #, c-format
 msgid "This tool could not get the dependencies for %s: %s"
 msgstr "Az eszköz nem képes lekérni a csomag (%s) függőségeit: %s"
 
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:1106
-#: ../client/pk-console.c:1114
+#: ../client/pk-console.c:1122 ../client/pk-console.c:1130
 #, c-format
 msgid "This tool could not get package details for %s: %s"
 msgstr "Az eszköz nem képes lekérni a csomag (%s) részleteit: %s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1136
+#: ../client/pk-console.c:1152
 #, c-format
 msgid "This tool could not find the files for %s: %s"
 msgstr "Az eszköz nem találja a csomag (%s) fájljait: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1144
+#: ../client/pk-console.c:1160
 #, c-format
 msgid "This tool could not get the file list for %s: %s"
 msgstr "Az eszköz nem képes lekérni a csomag (%s) fájllistáját: %s"
 
 #. TRANSLATORS: There was an error getting the list of packages. The filename follows
-#: ../client/pk-console.c:1166
+#: ../client/pk-console.c:1182
 #, c-format
 msgid "File already exists: %s"
 msgstr "A fájl már létezik: %s"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1171
-#: ../client/pk-console.c:1227
-#: ../client/pk-console.c:1302
+#: ../client/pk-console.c:1187 ../client/pk-console.c:1243
+#: ../client/pk-console.c:1318
 msgid "Getting package list"
 msgstr "Csomaglista lekérése"
 
 #. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1177
-#: ../client/pk-console.c:1233
-#: ../client/pk-console.c:1308
+#: ../client/pk-console.c:1193 ../client/pk-console.c:1249
+#: ../client/pk-console.c:1324
 #, c-format
 msgid "This tool could not get package list: %s"
 msgstr "Az eszköz nem képes lekérni a csomaglistát: %s"
 
 #. TRANSLATORS: There was an error saving the list
-#: ../client/pk-console.c:1188
+#: ../client/pk-console.c:1204
 #, c-format
 msgid "Failed to save to disk"
 msgstr "Nem sikerült menteni a lemezre"
 
 #. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1222
-#: ../client/pk-console.c:1297
+#: ../client/pk-console.c:1238 ../client/pk-console.c:1313
 #, c-format
 msgid "File does not exist: %s"
 msgstr "A fájl nem létezik: %s"
 
 #. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1254
+#: ../client/pk-console.c:1270
 msgid "Packages to add"
 msgstr "Telepítendő csomagok"
 
 #. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1262
+#: ../client/pk-console.c:1278
 msgid "Packages to remove"
 msgstr "Eltávolítandó csomagok"
 
 #. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1330
+#: ../client/pk-console.c:1346
 #, c-format
 msgid "No new packages need to be installed"
 msgstr "Nincsenek újonnan telepítendő csomagok"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1336
+#: ../client/pk-console.c:1352
 msgid "To install"
 msgstr "Telepítendő"
 
 #. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1348
+#: ../client/pk-console.c:1364
 msgid "Searching for package: "
 msgstr "Csomag keresése: "
 
 #. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1352
+#: ../client/pk-console.c:1368
 msgid "not found."
 msgstr "nem található."
 
 #. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1363
+#: ../client/pk-console.c:1379
 #, c-format
 msgid "No packages can be found to install"
 msgstr "Nem találhatók telepítendő csomagok"
 
 #. TRANSLATORS: installing new packages from package list
-#: ../client/pk-console.c:1369
+#. TRANSLATORS: we are now installing the debuginfo packages we found earlier
+#: ../client/pk-console.c:1385
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:886
+#, c-format
 msgid "Installing packages"
 msgstr "Csomagok telepítése"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1405
+#: ../client/pk-console.c:1421
 #, c-format
 msgid "This tool could not find the update details for %s: %s"
 msgstr "Az eszköz nem találja a csomag (%s) frissítési részleteit: %s"
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1413
+#: ../client/pk-console.c:1429
 #, c-format
 msgid "This tool could not get the update details for %s: %s"
 msgstr "Az eszköz nem képes lekérni a csomag (%s) frissítési részleteit: %s"
 
 #. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
-#: ../client/pk-console.c:1444
+#: ../client/pk-console.c:1460
 msgid "Error:"
 msgstr "Hiba:"
 
 #. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1458
+#: ../client/pk-console.c:1474
 msgid "Package description"
 msgstr "Csomagleírás"
 
 #. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
-#: ../client/pk-console.c:1474
+#: ../client/pk-console.c:1490
 msgid "Message:"
 msgstr "Ãœzenet:"
 
 #. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1502
+#: ../client/pk-console.c:1518
 msgid "Package files"
 msgstr "Csomag fájljai"
 
 #. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1510
+#: ../client/pk-console.c:1526
 msgid "No files"
 msgstr "Nincsenek fájlok"
 
 #. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1533
+#: ../client/pk-console.c:1549
 msgid "Repository signature required"
 msgstr "Tároló-aláírás szükséges"
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1543
+#: ../client/pk-console.c:1559
 msgid "Do you accept this signature?"
 msgstr "Elfogadja ezt az aláírást?"
 
 #. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1547
+#: ../client/pk-console.c:1563
 msgid "The signature was not accepted."
 msgstr "Az aláírást nem fogadta el."
 
 #. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1581
+#: ../client/pk-console.c:1597
 msgid "End user license agreement required"
 msgstr "Végfelhasználói licencszerződés szükséges"
 
 #. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1588
+#: ../client/pk-console.c:1604
 msgid "Do you agree to this license?"
 msgstr "Elfogadja ezt a licencet?"
 
 #. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1592
+#: ../client/pk-console.c:1608
 msgid "The license was refused."
 msgstr "A licencet visszautasította."
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1621
+#: ../client/pk-console.c:1637
 msgid "The daemon crashed mid-transaction!"
 msgstr "A démon tranzakció közben összeomlott!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1674
+#: ../client/pk-console.c:1690
 msgid "PackageKit Console Interface"
 msgstr "PackageKit parancssori felület"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1676
+#: ../client/pk-console.c:1692
 msgid "Subcommands:"
 msgstr "Részparancsok:"
 
 #. TRANSLATORS: command line argument, if we should show debugging information
 #. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:1768
-#: ../client/pk-generate-pack.c:185
-#: ../client/pk-monitor.c:125
-#: ../contrib/command-not-found/pk-command-not-found.c:521
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:303
-#: ../src/pk-main.c:211
+#: ../client/pk-console.c:1785 ../client/pk-generate-pack.c:185
+#: ../client/pk-monitor.c:128
+#: ../contrib/command-not-found/pk-command-not-found.c:616
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:550
+#: ../contrib/device-rebind/pk-device-rebind.c:293 ../src/pk-main.c:211
 msgid "Show extra debugging information"
 msgstr "Extra hibakeresési információk megjelenítése"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1771
-#: ../client/pk-monitor.c:127
+#: ../client/pk-console.c:1788 ../client/pk-monitor.c:130
 msgid "Show the program version and exit"
 msgstr "Programverzió kiírása és kilépés"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1774
+#: ../client/pk-console.c:1791
 msgid "Set the filter, e.g. installed"
 msgstr "Szűrő beállítása, például: installed"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1777
+#: ../client/pk-console.c:1794
 msgid "Exit without waiting for actions to complete"
 msgstr "Kilépés a műveletek befejezésének megvárása nélkül"
 
 #. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:1804
+#: ../client/pk-console.c:1821
 msgid "This tool could not connect to system DBUS."
 msgstr "Az eszköz nem tudott kapcsolódni a D-Bus-hoz."
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1893
+#: ../client/pk-console.c:1911
 msgid "The filter specified was invalid"
 msgstr "A megadott szűrő érvénytelen"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1911
+#: ../client/pk-console.c:1930
 msgid "A search type is required, e.g. name"
 msgstr "Keresési típus szükséges, például: name"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1917
-#: ../client/pk-console.c:1925
-#: ../client/pk-console.c:1933
-#: ../client/pk-console.c:1941
+#: ../client/pk-console.c:1937 ../client/pk-console.c:1946
+#: ../client/pk-console.c:1955 ../client/pk-console.c:1964
 msgid "A search term is required"
 msgstr "Keresőkifejezés szükséges"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1947
+#: ../client/pk-console.c:1971
 msgid "Invalid search type"
 msgstr "Érvénytelen keresési típus"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1953
+#: ../client/pk-console.c:1977
 msgid "A package name or filename to install is required"
 msgstr "A telepítendő csomag vagy fájl neve szükséges"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1961
+#: ../client/pk-console.c:1986
 msgid "A type, key_id and package_id are required"
 msgstr "A type, key_id és package_id értékek szükségesek"
 
 #. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:1969
+#: ../client/pk-console.c:1995
 msgid "A package name to remove is required"
 msgstr "Az eltávolítandó csomag neve szükséges"
 
 #. TRANSLATORS: the user did not specify anything about what to download or where
-#: ../client/pk-console.c:1976
-msgid "A destination directory and then the package names to download are required"
+#: ../client/pk-console.c:2003
+#, fuzzy
+msgid "A destination directory and the package names to download are required"
 msgstr "A célkönyvtár és a letöltendő csomagnevek szükségesek"
 
 #. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:1982
+#: ../client/pk-console.c:2010
 msgid "Directory not found"
 msgstr "A könyvtár nem található"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1989
+#: ../client/pk-console.c:2018
 msgid "A licence identifier (eula-id) is required"
 msgstr "Licencazonosító (eula-id) szükséges"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1998
+#: ../client/pk-console.c:2028
 msgid "A transaction identifier (tid) is required"
 msgstr "Tranzakcióazonosító (tid) szükséges"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:2014
+#: ../client/pk-console.c:2045
 msgid "A package name to resolve is required"
 msgstr "Feloldandó csomagnév szükséges"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:2022
-#: ../client/pk-console.c:2030
+#: ../client/pk-console.c:2054 ../client/pk-console.c:2063
 msgid "A repository name is required"
 msgstr "Tárolónév szükséges"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2038
+#: ../client/pk-console.c:2072
 msgid "A repo name, parameter and value are required"
 msgstr "Tárolónév, paraméter és érték szükséges"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:2051
+#: ../client/pk-console.c:2086
 msgid "An action, e.g. 'update-system' is required"
 msgstr "Művelet, például „update-system” szükséges"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:2057
+#: ../client/pk-console.c:2093
 msgid "A correct role is required"
 msgstr "Megfelelő szerep szükséges"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2063
+#: ../client/pk-console.c:2100
 msgid "Failed to get the time since this action was last completed"
 msgstr "A művelet utolsó végrehajtása óta eltelt idő lekérése meghiúsult"
 
 #. TRANSLATORS: The user did not provide a package name
 #. TRANSLATORS: This is when the user fails to supply the package name
-#: ../client/pk-console.c:2072
-#: ../client/pk-console.c:2083
-#: ../client/pk-console.c:2091
-#: ../client/pk-console.c:2107
-#: ../client/pk-console.c:2115
-#: ../client/pk-generate-pack.c:241
+#: ../client/pk-console.c:2110 ../client/pk-console.c:2122
+#: ../client/pk-console.c:2131 ../client/pk-console.c:2149
+#: ../client/pk-console.c:2158 ../client/pk-generate-pack.c:241
 msgid "A package name is required"
 msgstr "Csomagnév szükséges"
 
 #. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:2099
+#: ../client/pk-console.c:2140
 msgid "A package provide string is required"
 msgstr "A csomag által biztosított elemeket jelző karakterlánc szükséges"
 
 #. TRANSLATORS: The user didn't specify a filename to create as a list
-#: ../client/pk-console.c:2123
+#: ../client/pk-console.c:2167
 msgid "A list file name to create is required"
 msgstr "A létrehozandó listafájl neve szükséges"
 
 #. TRANSLATORS: The user didn't specify a filename to open as a list
-#: ../client/pk-console.c:2132
-#: ../client/pk-console.c:2141
+#: ../client/pk-console.c:2177 ../client/pk-console.c:2187
 msgid "A list file to open is required"
 msgstr "A megnyitandó listafájl neve szükséges"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2194
+#: ../client/pk-console.c:2241
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "„%s” nevű kapcsoló nem támogatott"
 
 #. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2207
+#: ../client/pk-console.c:2254
 msgid "Incorrect privileges for this operation"
 msgstr "Nincs megfelelő jogosultsága a művelethez"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2210
+#: ../client/pk-console.c:2257
 msgid "Command failed"
 msgstr "A parancs meghiúsult"
 
@@ -700,7 +709,8 @@ msgstr "Kihagyandó függőségek fájlnevének kihagyása"
 
 #. TRANSLATORS: the output location
 #: ../client/pk-generate-pack.c:191
-msgid "The output file or directory (the current directory is used if ommitted)"
+msgid ""
+"The output file or directory (the current directory is used if ommitted)"
 msgstr "A kimeneti fájl vagy könyvtár (alapértelmezésben az aktuális könyvtár)"
 
 #. TRANSLATORS: put a list of packages in the pack
@@ -730,15 +740,18 @@ msgstr "Kimeneti könyvtár vagy fájlnév szükséges"
 
 #. TRANSLATORS: This is when the backend doesn't have the capability to get-depends
 #. TRANSLATORS: This is when the backend doesn't have the capability to download
-#: ../client/pk-generate-pack.c:267
-#: ../client/pk-generate-pack.c:273
+#: ../client/pk-generate-pack.c:267 ../client/pk-generate-pack.c:273
 msgid "The package manager cannot perform this type of operation."
 msgstr "A csomagkezelő nem képes ezen művelettípus végrehajtására."
 
 #. TRANSLATORS: This is when the distro didn't include libarchive support into PK
 #: ../client/pk-generate-pack.c:280
-msgid "Service packs cannot be created as PackageKit was not built with libarchive support."
-msgstr "Szervízcsomagok nem készíthetőek, mivel a PackageKit libarchive támogatás nélkül került megépítésre."
+msgid ""
+"Service packs cannot be created as PackageKit was not built with libarchive "
+"support."
+msgstr ""
+"Szervízcsomagok nem készíthetőek, mivel a PackageKit libarchive támogatás "
+"nélkül került megépítésre."
 
 #. TRANSLATORS: the user specified an absolute path, but didn't get the extension correct
 #: ../client/pk-generate-pack.c:291
@@ -794,10 +807,14 @@ msgid "Failed to create '%s': %s"
 msgstr "A szervizcsomag („%s”) létrehozása meghiúsult: %s"
 
 #. TRANSLATORS: this is a program that monitors PackageKit
-#: ../client/pk-monitor.c:143
+#: ../client/pk-monitor.c:146
 msgid "PackageKit Monitor"
 msgstr "PackageKit-figyelő"
 
+#: ../client/pk-monitor.c:183
+msgid "Cannot show the list of transactions"
+msgstr ""
+
 #. TRANSLATORS: The package was not found in any software sources
 #: ../client/pk-tools-common.c:118
 #, c-format
@@ -819,242 +836,437 @@ msgstr "Válassza ki a megfelelő csomagot: "
 msgid "Please enter a number from 1 to %i: "
 msgstr "Adjon meg egy számot 1-től %i-ig: "
 
+#. TRANSLATORS: when we are getting data from the daemon
+#: ../contrib/browser-plugin/pk-plugin-install.c:466
+msgid "Getting package information..."
+msgstr "Csomaginformációk lekérése…"
+
+#. TRANSLATORS: run an applicaiton
+#: ../contrib/browser-plugin/pk-plugin-install.c:472
+#, c-format
+msgid "Run %s"
+msgstr "%s futtatása"
+
+#. TRANSLATORS: show the installed version of a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:478
+msgid "Installed version"
+msgstr "Telepített verzió"
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:486
+#, c-format
+msgid "Run version %s now"
+msgstr "%s verzió futtatása most"
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:492
+msgid "Run now"
+msgstr "Futtatás most"
+
+#. TRANSLATORS: update to a new version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:498
+#, c-format
+msgid "Update to version %s"
+msgstr "Frissítés %s verzióra"
+
+#. TRANSLATORS: To install a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:504
+#, c-format
+msgid "Install %s now"
+msgstr "%s telepítése most"
+
+#. TRANSLATORS: the version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:507
+msgid "Version"
+msgstr "Verzió"
+
+#. TRANSLATORS: noting found, so can't install
+#: ../contrib/browser-plugin/pk-plugin-install.c:512
+msgid "No packages found for your system"
+msgstr "Nem találhatók csomagok a rendszeren"
+
+#. TRANSLATORS: package is being installed
+#: ../contrib/browser-plugin/pk-plugin-install.c:517
+msgid "Installing..."
+msgstr "Telepítés…"
+
+#. TRANSLATORS: downloading repo data so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:349
+msgid "Downloading details about the software sources."
+msgstr ""
+
+#. TRANSLATORS: downloading file lists so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:353
+msgid "Downloading filelists (this may take some time to complete)."
+msgstr ""
+
+#. TRANSLATORS: waiting for native lock
+#: ../contrib/command-not-found/pk-command-not-found.c:357
+#, fuzzy
+msgid "Waiting for package manager lock."
+msgstr "Csomagnév keresése."
+
+#. TRANSLATORS: loading package cache so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:361
+#, fuzzy
+msgid "Loading list of packages."
+msgstr "Csomagok letöltése"
+
 #. TRANSLATORS: we failed to find the package, this shouldn't happen
-#: ../contrib/command-not-found/pk-command-not-found.c:372
+#: ../contrib/command-not-found/pk-command-not-found.c:420
 msgid "Failed to search for file"
 msgstr "A fájl keresése meghiúsult"
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:496
+#: ../contrib/command-not-found/pk-command-not-found.c:557
 msgid "Failed to launch:"
 msgstr "Az indítás meghiúsult:"
 
 # fixme: valami szebb nevet...
 #. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/command-not-found/pk-command-not-found.c:537
+#: ../contrib/command-not-found/pk-command-not-found.c:632
 msgid "PackageKit Command Not Found"
 msgstr "PackageKit parancskereső"
 
 #. TRANSLATORS: the prefix of all the output telling the user why it's not executing
-#: ../contrib/command-not-found/pk-command-not-found.c:560
+#: ../contrib/command-not-found/pk-command-not-found.c:658
 msgid "Command not found."
 msgstr "A parancs nem található."
 
 #. TRANSLATORS: tell the user what we think the command is
-#: ../contrib/command-not-found/pk-command-not-found.c:567
+#: ../contrib/command-not-found/pk-command-not-found.c:665
 msgid "Similar command is:"
 msgstr "Hasonló parancs:"
 
 #. TRANSLATORS: Ask the user if we should run the similar command
-#: ../contrib/command-not-found/pk-command-not-found.c:576
+#: ../contrib/command-not-found/pk-command-not-found.c:674
 msgid "Run similar command:"
 msgstr "Hasonló parancs futtatása:"
 
 #. TRANSLATORS: show the user a list of commands that they could have meant
 #. TRANSLATORS: show the user a list of commands we could run
-#: ../contrib/command-not-found/pk-command-not-found.c:588
-#: ../contrib/command-not-found/pk-command-not-found.c:597
+#: ../contrib/command-not-found/pk-command-not-found.c:686
+#: ../contrib/command-not-found/pk-command-not-found.c:695
 msgid "Similar commands are:"
 msgstr "Hasonló parancsok:"
 
 #. TRANSLATORS: ask the user to choose a file to run
-#: ../contrib/command-not-found/pk-command-not-found.c:604
+#: ../contrib/command-not-found/pk-command-not-found.c:702
 msgid "Please choose a command to run"
 msgstr "Válasszon egy futtatandó parancsot"
 
 #. TRANSLATORS: tell the user what package provides the command
-#: ../contrib/command-not-found/pk-command-not-found.c:619
+#: ../contrib/command-not-found/pk-command-not-found.c:721
 msgid "The package providing this file is:"
 msgstr "A fájlt biztosító csomag:"
 
 #. TRANSLATORS: as the user if we want to install a package to provide the command
-#: ../contrib/command-not-found/pk-command-not-found.c:624
+#: ../contrib/command-not-found/pk-command-not-found.c:726
 #, c-format
 msgid "Install package '%s' to provide command '%s'?"
-msgstr "Telepíti a(z) „%s” csomagot, amely a következő parancsot biztosítja: „%s”?"
+msgstr ""
+"Telepíti a(z) „%s” csomagot, amely a következő parancsot biztosítja: „%s”?"
 
 #. TRANSLATORS: Show the user a list of packages that provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:645
+#: ../contrib/command-not-found/pk-command-not-found.c:747
 msgid "Packages providing this file are:"
 msgstr "A fájlt biztosító csomagok:"
 
 #. TRANSLATORS: Show the user a list of packages that they can install to provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:654
+#: ../contrib/command-not-found/pk-command-not-found.c:756
 msgid "Suitable packages are:"
 msgstr "A megfelelő csomagok:"
 
 #. get selection
 #. TRANSLATORS: ask the user to choose a file to install
-#: ../contrib/command-not-found/pk-command-not-found.c:662
+#: ../contrib/command-not-found/pk-command-not-found.c:764
 msgid "Please choose a package to install"
 msgstr "Válasszon egy telepítendő csomagot"
 
-#. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/src/contents.cpp:299
-msgid "Getting package information..."
-msgstr "Csomaginformációk lekérése…"
-
-#. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/src/contents.cpp:305
-#, c-format
-msgid "Run %s"
-msgstr "%s futtatása"
-
-#. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/src/contents.cpp:311
-msgid "Installed version"
-msgstr "Telepített verzió"
-
-#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/src/contents.cpp:319
-#, c-format
-msgid "Run version %s now"
-msgstr "%s verzió futtatása most"
-
-#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/src/contents.cpp:325
-msgid "Run now"
-msgstr "Futtatás most"
-
-#. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/src/contents.cpp:331
-#, c-format
-msgid "Update to version %s"
-msgstr "Frissítés %s verzióra"
-
-#. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/src/contents.cpp:337
-#, c-format
-msgid "Install %s now"
-msgstr "%s telepítése most"
-
-#. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/src/contents.cpp:340
-msgid "Version"
-msgstr "Verzió"
-
-#. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/src/contents.cpp:345
-msgid "No packages found for your system"
-msgstr "Nem találhatók csomagok a rendszeren"
+#. TRANSLATORS: we are starting to install the packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:187
+#, fuzzy
+msgid "Starting install"
+msgstr "Telepítendő"
 
-#. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/src/contents.cpp:350
-msgid "Installing..."
-msgstr "Telepítés…"
+#. TRANSLATORS: we couldn't find the package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:397
+#, fuzzy, c-format
+msgid "Failed to find the package %s, or already installed: %s"
+msgstr "Ezzel a nével csomag nem található: %s"
 
 #. command line argument, simulate what would be done, but don't actually do it
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:306
-msgid "Don't actually install any packages, only simulate"
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:553
+#, fuzzy
+msgid ""
+"Don't actually install any packages, only simulate what would be installed"
 msgstr "Ne telepíts semmilyen csomagot, csak szimuláld"
 
+#. command line argument, do we skip packages that depend on the ones specified
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:556
+msgid "Do not install dependencies of the core packages"
+msgstr ""
+
+#. command line argument, do we operate quietly
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:559
+msgid "Do not display information or progress"
+msgstr ""
+
 #. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:324
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:577
 msgid "PackageKit Debuginfo Installer"
 msgstr "PackageKit Debuginfo Telepítő"
 
 #. TRANSLATORS: the use needs to specify a list of package names on the command line
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:334
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:589
 #, c-format
 msgid "ERROR: Specify package names to install."
 msgstr "Hiba: A telepítéshez adjon meg csomagneveket."
 
 #. TRANSLATORS: we are getting the list of repositories
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:355
-#, c-format
-msgid "Getting sources list..."
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:623
+#, fuzzy, c-format
+msgid "Getting sources list"
 msgstr "Források listáinak lekérése..."
 
 #. TRANSLATORS: all completed 100%
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:366
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:402
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:428
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:483
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:515
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:544
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:641
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:681
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:716
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:800
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:844
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:911
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:955
 #, c-format
 msgid "OK."
 msgstr "OK."
 
 #. TRANSLATORS: tell the user what we found
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:369
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:644
 #, c-format
 msgid "Found %i enabled and %i disabled sources."
 msgstr "Találtam %i engedélyezett és %i kiiktatott forrást."
 
 #. TRANSLATORS: we're finding repositories that match out pattern
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:376
-#, c-format
-msgid "Finding debugging sources..."
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:651
+#, fuzzy, c-format
+msgid "Finding debugging sources"
 msgstr "Hibakeresési források keresése..."
 
 #. TRANSLATORS: tell the user what we found
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:405
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:684
 #, c-format
 msgid "Found %i disabled debuginfo repos."
 msgstr "%i kiiktatott debuginfo tárolót találtam."
 
 #. TRANSLATORS: we're now enabling all the debug sources we found
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:412
-#, c-format
-msgid "Enabling debugging sources..."
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:691
+#, fuzzy, c-format
+msgid "Enabling debugging sources"
 msgstr "HIbakeresési források engedélyezése..."
 
 #. TRANSLATORS: operation was not successful
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:418
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:474
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:535
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:701
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:785
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:829
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:896
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:940
 msgid "FAILED."
 msgstr "SIKERTELEN."
 
 #. TRANSLATORS: tell the user how many we enabled
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:431
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:719
 #, c-format
 msgid "Enabled %i debugging sources."
 msgstr "A(z) %i hibakeresési források engedélyezve."
 
+#. TRANSLATORS: we're now finding packages that match in all the repos
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:726
+#, fuzzy, c-format
+msgid "Finding debugging packages"
+msgstr "Hibakeresési források keresése..."
+
 #. TRANSLATORS: we couldn't find the package name, non-fatal
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:454
-#, c-format
-msgid "Failed to find a package of that name: %s"
-msgstr "Ezzel a nével csomag nem található: %s"
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:738
+#, fuzzy, c-format
+msgid "Failed to find the package %s: %s"
+msgstr "A csomag („%s”) keresése meghiúsult: %s"
+
+#. TRANSLATORS: we couldn't find the debuginfo package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:761
+#, fuzzy, c-format
+msgid "Failed to find the debuginfo package %s: %s"
+msgstr "A csomag („%s”) keresése meghiúsult: %s"
 
 #. TRANSLATORS: no debuginfo packages could be found to be installed
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:477
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:789
 #, c-format
 msgid "Found no packages to install."
 msgstr "Telepítéshez nem találtam csomagokat."
 
 #. TRANSLATORS: tell the user we found some packages, and then list them
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:486
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:803
 #, c-format
 msgid "Found %i packages:"
 msgstr "%i csomagot találtam:"
 
+#. TRANSLATORS: tell the user we are searching for deps
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:819
+#, c-format
+msgid "Finding packages that depend on these packages"
+msgstr ""
+
+#. TRANSLATORS: could not install, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:832
+#, fuzzy, c-format
+msgid "Could not find dependant packages: %s"
+msgstr "A csomag („%s”) keresése meghiúsult: %s"
+
+#. TRANSLATORS: tell the user we found some more packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:848
+#, fuzzy, c-format
+msgid "Found %i extra packages."
+msgstr "%i csomagot találtam:"
+
+#. TRANSLATORS: tell the user we found some more packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:852
+#, fuzzy, c-format
+msgid "No extra packages required."
+msgstr "Csomagnév szükséges"
+
+#. TRANSLATORS: tell the user we found some packages (and deps), and then list them
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:861
+#, fuzzy, c-format
+msgid "Found %i packages to install:"
+msgstr "Telepítéshez nem találtam csomagokat."
+
 #. TRANSLATORS: simulate mode is a testing mode where we quit before the action
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:495
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:874
 #, c-format
 msgid "Not installing packages in simulate mode"
 msgstr "Nem telepít csomagokat szimulációs módban"
 
+#. TRANSLATORS: could not install, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:899
+#, fuzzy, c-format
+msgid "Could not install packages: %s"
+msgstr "Az eszköz nem képes telepíteni a csomagokat: %s"
+
 #. TRANSLATORS: we are now disabling all debuginfo repos we previously enabled
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:529
-#, c-format
-msgid "Disabling sources previously enabled..."
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:931
+#, fuzzy, c-format
+msgid "Disabling sources previously enabled"
 msgstr "Korábban engedélyezett források kikapcsolása..."
 
 #. TRANSLATORS: no debuginfo packages could be found to be installed, detailed error follows
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:538
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:943
 #, c-format
 msgid "Could not disable the debugging sources: %s"
 msgstr "Hibakeresési források kikapcsolása nem lehetséges: %s"
 
 #. TRANSLATORS: we disabled all the debugging repos that we enabled before
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:547
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:958
 #, c-format
 msgid "Disabled %i debugging sources."
 msgstr "Hibakeresési %i források kikapcsolva."
 
+#. TRANSLATORS: couldn't open device to write
+#: ../contrib/device-rebind/pk-device-rebind.c:61
+#, fuzzy
+msgid "Failed to open file"
+msgstr "A fájl keresése meghiúsult"
+
+#. TRANSLATORS: could not write to the device
+#: ../contrib/device-rebind/pk-device-rebind.c:70
+#, fuzzy
+msgid "Failed to write to the file"
+msgstr "A fájl keresése meghiúsult"
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:110
+#: ../contrib/device-rebind/pk-device-rebind.c:147
+#, fuzzy
+msgid "Failed to write to device"
+msgstr "Nem sikerült menteni a lemezre"
+
+#. TRANSLATORS: the device could not be found in sysfs
+#: ../contrib/device-rebind/pk-device-rebind.c:175
+#, fuzzy
+msgid "Device could not be found"
+msgstr "A csomag nem található"
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:202
+#, fuzzy
+msgid "Failed to unregister driver"
+msgstr "A könyvtár létrehozása meghiúsult:"
+
+#. TRANSLATORS: we failed to bind the old driver
+#: ../contrib/device-rebind/pk-device-rebind.c:211
+#, fuzzy
+msgid "Failed to register driver"
+msgstr "A könyvtár létrehozása meghiúsult:"
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:260
+#, fuzzy
+msgid "Device path not found"
+msgstr "A könyvtár nem található"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:268
+msgid "Incorrect device path specified"
+msgstr ""
+
+#. command line argument, simulate what would be done, but don't actually do it
+#: ../contrib/device-rebind/pk-device-rebind.c:296
+#, fuzzy
+msgid "Don't actually touch the hardware, only simulate what would be done"
+msgstr "Ne telepíts semmilyen csomagot, csak szimuláld"
+
+#. TRANSLATORS: command line option: a list of files to install
+#: ../contrib/device-rebind/pk-device-rebind.c:299
+msgid "Device paths"
+msgstr ""
+
+#. TRANSLATORS: tool that gets called when the device needs reloading after installing firmware
+#: ../contrib/device-rebind/pk-device-rebind.c:314
+#, fuzzy
+msgid "PackageKit Device Reloader"
+msgstr "PackageKit szervizcsomag"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:322
+msgid "You need to specify at least one valid device path"
+msgstr ""
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:332
+msgid "This script can only be used by the root user"
+msgstr ""
+
+#. TRANSLATORS: we're going to verify the path first
+#: ../contrib/device-rebind/pk-device-rebind.c:341
+msgid "Verifying device path"
+msgstr ""
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:346
+#, fuzzy
+msgid "Failed to verify device path"
+msgstr "A fájl keresése meghiúsult"
+
+#. TRANSLATORS: we're going to try
+#: ../contrib/device-rebind/pk-device-rebind.c:360
+msgid "Attempting to rebind device"
+msgstr ""
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:365
+#, fuzzy
+msgid "Failed to rebind device"
+msgstr "A könyvtár létrehozása meghiúsult:"
+
 #: ../data/packagekit-catalog.xml.in.h:1
 msgid "PackageKit Catalog"
 msgstr "PackageKit katalógus"
@@ -1067,91 +1279,179 @@ msgstr "PackageKit csomaglista"
 msgid "PackageKit Service Pack"
 msgstr "PackageKit szervizcsomag"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:1
+#. SECURITY:
+#. - Normal users do not require admin authentication to accept new
+#. licence agreements.
+#. - Change this to 'auth_admin' for environments where users should not
+#. be given the option to make legal decisions.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:7
 msgid "Accept EULA"
 msgstr "EULA elfogadása"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:2
+#: ../policy/org.freedesktop.packagekit.policy.in.h:8
 msgid "Authentication is required to accept a EULA"
 msgstr "Hitelesítés szükséges az EULA elfogadásához"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:3
-msgid "Authentication is required to cancel a task that was not started by yourself"
+#: ../policy/org.freedesktop.packagekit.policy.in.h:9
+msgid ""
+"Authentication is required to cancel a task that was not started by yourself"
 msgstr "Hitelesítés szükséges a nem Ön által indított feladat megszakításához"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:4
+#: ../policy/org.freedesktop.packagekit.policy.in.h:10
 msgid "Authentication is required to change software source parameters"
 msgstr "Hitelesítés szükséges a szoftverforrás paramétereinek módosításához"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:5
-msgid "Authentication is required to consider a key used for signing packages as trusted"
-msgstr "Hitelesítés szükséges a csomagok aláírásához használt kulcs megbízhatóvá nyilvánításához"
+#: ../policy/org.freedesktop.packagekit.policy.in.h:11
+msgid ""
+"Authentication is required to consider a key used for signing packages as "
+"trusted"
+msgstr ""
+"Hitelesítés szükséges a csomagok aláírásához használt kulcs megbízhatóvá "
+"nyilvánításához"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:6
+#: ../policy/org.freedesktop.packagekit.policy.in.h:12
 msgid "Authentication is required to install a signed package"
 msgstr "Hitelesítés szükséges az aláírt csomag telepítéséhez"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:7
+#: ../policy/org.freedesktop.packagekit.policy.in.h:13
 msgid "Authentication is required to install an untrusted package"
 msgstr "Hitelesítés szükséges a nem megbízható csomag telepítéséhez"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:8
+#: ../policy/org.freedesktop.packagekit.policy.in.h:14
 msgid "Authentication is required to refresh the system sources"
 msgstr "Hitelesítés szükséges a rendszerforrások frissítéséhez"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:9
+#: ../policy/org.freedesktop.packagekit.policy.in.h:15
+#, fuzzy
+msgid "Authentication is required to reload the device with a new driver"
+msgstr "Hitelesítés szükséges a rendszerforrások frissítéséhez"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:16
 msgid "Authentication is required to remove packages"
 msgstr "Hitelesítés szükséges a csomagok eltávolításához"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:10
+#: ../policy/org.freedesktop.packagekit.policy.in.h:17
 msgid "Authentication is required to rollback a transaction"
 msgstr "Hitelesítés szükséges a tranzakció visszagörgetéséhez"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:11
-msgid "Authentication is required to set the network proxy used for downloading packages"
-msgstr "Hitelesítés szükséges a csomagok letöltéséhez használt hálózati proxy beállításához"
+#: ../policy/org.freedesktop.packagekit.policy.in.h:18
+msgid ""
+"Authentication is required to set the network proxy used for downloading "
+"packages"
+msgstr ""
+"Hitelesítés szükséges a csomagok letöltéséhez használt hálózati proxy "
+"beállításához"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:12
+#: ../policy/org.freedesktop.packagekit.policy.in.h:19
 msgid "Authentication is required to update packages"
 msgstr "Hitelesítés szükséges a csomagok frissítéséhez"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:13
+#. SECURITY:
+#. - Normal users are allowed to cancel their own task without
+#. authentication, but a different user id needs the admin password
+#. to cancel another users task.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:25
 msgid "Cancel foreign task"
 msgstr "Külső feladat megszakítása"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:14
+#. SECURITY:
+#. - Normal users require admin authentication to enable or disable
+#. software sources as this can be used to enable new updates or
+#. install different versions of software.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:31
 msgid "Change software source parameters"
 msgstr "Szoftverforrás paramétereinek módosítása"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:15
+#. SECURITY:
+#. - Normal users do not need authentication to install signed packages
+#. from signed repositories, as this cannot exploit a system.
+#. - Paranoid users (or parents!) can change this to 'auth_admin' or
+#. 'auth_admin_keep'.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:38
 msgid "Install signed package"
 msgstr "Aláírt csomag telepítése"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:16
+#. SECURITY:
+#. - Normal users require admin authentication to install untrusted or
+#. unrecognised packages, as allowing users to do this without a
+#. password would be a massive security hole.
+#. - This is not retained as each package should be authenticated.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:45
 msgid "Install untrusted local file"
 msgstr "Nem megbízható helyi fájl telepítése"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:17
+#. SECURITY:
+#. - Normal users do not require admin authentication to refresh the
+#. cache, as this doesn't actually install or remove software.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:50
 msgid "Refresh system sources"
 msgstr "Rendszerforrások frissítése"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:18
+#. SECURITY:
+#. - Normal users require admin authentication to rebind a driver
+#. so that it works after we install firmware.
+#. - This should not be set to 'yes' as unprivileged users could then
+#. try to rebind drivers in use, for instance security authentication
+#. devices.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:58
+msgid "Reload a device"
+msgstr ""
+
+#. SECURITY:
+#. - Normal users require admin authentication to remove packages as
+#. this can make the system unbootable or stop other applications from
+#. working.
+#. - Be sure to close the tool used to remove the packages after the
+#. admin authentication has been obtained, otherwise packages can still
+#. be removed. If this is not possible, change this authentication to
+#. 'auth_admin'.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:68
 msgid "Remove package"
 msgstr "Csomag eltávolítása"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:19
+#. SECURITY:
+#. - Normal users require admin authentication to rollback system state
+#. as this will change a large number of packages, and could expose the
+#. system to previously patched security vulnerabilities.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:74
 msgid "Rollback to a previous transaction"
 msgstr "Korábbi tranzakció visszagörgetése"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:20
+#. SECURITY:
+#. - Normal users do not require admin authentication to set the proxy
+#. used for downloading packages.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:79
 msgid "Set network proxy"
 msgstr "Hálózati proxy beállítása"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:21
+#. SECURITY:
+#. - Normal users require admin authentication to add signing keys.
+#. - This implies adding an explicit trust, and should not be granted
+#. without a secure authentication.
+#. - This is not kept as each package should be authenticated.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:86
 msgid "Trust a key used for signing packages"
 msgstr "Csomagok aláírására használt kulcs megbízhatóvá nyilvánítása"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:22
+#. SECURITY:
+#. - Normal users do not require admin authentication to update the
+#. system as the packages will be signed, and the action is required
+#. to update the system when unattended.
+#. - Changing this to anything other than 'yes' will break unattended
+#. updates.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:94
 msgid "Update packages"
 msgstr "Csomagok frissítése"
 
@@ -1168,12 +1468,17 @@ msgstr "Ennek két oka lehet:"
 #. TRANSLATORS: only allowed to be owned by root
 #: ../src/pk-main.c:91
 msgid "The correct user is not launching the executable (usually root)"
-msgstr "Nem a megfelelő felhasználó indítja a programot (rendszerint a rendszergazda)"
+msgstr ""
+"Nem a megfelelő felhasználó indítja a programot (rendszerint a rendszergazda)"
 
 #. TRANSLATORS: or we are installed in a prefix
 #: ../src/pk-main.c:93
-msgid "The org.freedesktop.PackageKit.conf file is not installed in the system directory:"
-msgstr "Az org.freedesktop.PackageKit.conf fájlt nincs a következő rendszermappába telepítve:"
+msgid ""
+"The org.freedesktop.PackageKit.conf file is not installed in the system "
+"directory:"
+msgstr ""
+"Az org.freedesktop.PackageKit.conf fájlt nincs a következő rendszermappába "
+"telepítve:"
 
 #. TRANSLATORS: a backend is the system package tool, e.g. yum, apt
 #: ../src/pk-main.c:205
@@ -1216,38 +1521,54 @@ msgid "Cannot connect to the system bus"
 msgstr "Nem lehet csatlakozni a rendszerbuszhoz"
 
 #. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error follows
-#: ../src/pk-main.c:331
+#: ../src/pk-main.c:334
 msgid "Error trying to start:"
 msgstr "Hiba az indításkor:"
 
-#: ../src/pk-polkit-action-lookup.c:143
+#: ../src/pk-polkit-action-lookup.c:147
 msgid "To install debugging packages, extra sources need to be enabled"
-msgstr "HIbakeresési csomagok telepítéséhez, további külön források engedélyezésére"
+msgstr ""
+"HIbakeresési csomagok telepítéséhez, további külön források engedélyezésére"
 
 #. TRANSLATORS: is not GPG signed
-#: ../src/pk-polkit-action-lookup.c:156
-#: ../src/pk-polkit-action-lookup.c:175
+#: ../src/pk-polkit-action-lookup.c:168 ../src/pk-polkit-action-lookup.c:187
 msgid "The software is not from a trusted source."
 msgstr "A szoftver nem hiteles forásból származik."
 
-#. TRANSLATORS: user has to trust provider -- I know, this sucks
-#: ../src/pk-polkit-action-lookup.c:160
+#: ../src/pk-polkit-action-lookup.c:173
 msgid "Do not update this package unless you are sure it is safe to do so."
-msgstr "Ne frissítse ezt a csomagot, hacsak nem biztos benne, hogy így biztonságos."
+msgstr ""
+"Ne frissítse ezt a csomagot, hacsak nem biztos benne, hogy így biztonságos."
+
+#: ../src/pk-polkit-action-lookup.c:174
+#, fuzzy
+msgid "Do not update these packages unless you are sure it is safe to do so."
+msgstr ""
+"Ne frissítse ezt a csomagot, hacsak nem biztos benne, hogy így biztonságos."
+
+#: ../src/pk-polkit-action-lookup.c:192
+msgid "Do not install this package unless you are sure it is safe to do so."
+msgstr ""
+"Ne telepítse ezt a csomagot, hacsak nem biztos benne, hogy így biztonságos."
+
+#: ../src/pk-polkit-action-lookup.c:193
+#, fuzzy
+msgid "Do not install these packages unless you are sure it is safe to do so."
+msgstr ""
+"Ne telepítse ezt a csomagot, hacsak nem biztos benne, hogy így biztonságos."
 
 #. TRANSLATORS: warn the user that all bets are off
-#: ../src/pk-polkit-action-lookup.c:164
-#: ../src/pk-polkit-action-lookup.c:183
+#: ../src/pk-polkit-action-lookup.c:199
 msgid "Malicious software can damage your computer or cause other harm."
 msgstr "Rosszindulatú szoftver problémát vagy meghibásodást okozhat."
 
-#. TRANSLATORS: user has to trust provider -- I know, this sucks
-#: ../src/pk-polkit-action-lookup.c:179
-msgid "Do not install this package unless you are sure it is safe to do so."
-msgstr "Ne telepítse ezt a csomagot, hacsak nem biztos benne, hogy így biztonságos."
+#. TRANSLATORS: too many packages to list each one
+#: ../src/pk-polkit-action-lookup.c:274
+#, fuzzy
+msgid "Many packages"
+msgstr "Csomagok frissítése"
 
 #. TRANSLATORS: if the transaction is forced to install only trusted packages
-#: ../src/pk-polkit-action-lookup.c:263
+#: ../src/pk-polkit-action-lookup.c:334
 msgid "Only trusted"
 msgstr "Csak hitelesítettet"
-
diff --git a/po/it.po b/po/it.po
index e78af59..eaf750a 100644
--- a/po/it.po
+++ b/po/it.po
@@ -10,7 +10,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: packagekit.master.it\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-04-19 19:11+0000\n"
+"POT-Creation-Date: 2009-08-24 11:06+0100\n"
 "PO-Revision-Date: 2009-04-19 22:46+0200\n"
 "Last-Translator: mario_santagiuliana <mario at marionline.it>\n"
 "Language-Team: Italian <fedora-trans-it at redhat.com>\n"
@@ -21,230 +21,264 @@ msgstr ""
 "X-Generator: Lokalize 0.3\n"
 
 #. TRANSLATORS: this is an atomic transaction
-#: ../client/pk-console.c:234
+#: ../client/pk-console.c:235
 msgid "Transaction"
 msgstr "Transazione"
 
 #. TRANSLATORS: this is the time the transaction was started in system timezone
-#: ../client/pk-console.c:236
+#: ../client/pk-console.c:237
 msgid "System time"
 msgstr "Ora di sistema"
 
 #. TRANSLATORS: this is if the transaction succeeded or not
-#: ../client/pk-console.c:238
+#: ../client/pk-console.c:239
 msgid "Succeeded"
 msgstr "Completato con successo"
 
 #. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:238 ../client/pk-console.c:405
+#: ../client/pk-console.c:239 ../client/pk-console.c:406
 msgid "True"
 msgstr "Vero"
 
-#: ../client/pk-console.c:238 ../client/pk-console.c:405
+#: ../client/pk-console.c:239 ../client/pk-console.c:406
 msgid "False"
 msgstr "Falso"
 
 #. TRANSLATORS: this is the transactions role, e.g. "update-system"
-#: ../client/pk-console.c:240
+#. TRANSLATORS: the trasaction role, e.g. update-system
+#: ../client/pk-console.c:241 ../src/pk-polkit-action-lookup.c:327
 msgid "Role"
 msgstr "Regola"
 
 #. TRANSLATORS: this is The duration of the transaction
-#: ../client/pk-console.c:245
+#: ../client/pk-console.c:246
 msgid "Duration"
 msgstr "Durata"
 
-#: ../client/pk-console.c:245
+#: ../client/pk-console.c:246
 msgid "(seconds)"
 msgstr "(secondi)"
 
 #. TRANSLATORS: this is The command line used to do the action
-#: ../client/pk-console.c:249
+#. TRANSLATORS: the command line of the thing that wants the authentication
+#: ../client/pk-console.c:250 ../src/pk-polkit-action-lookup.c:341
 msgid "Command line"
 msgstr "Linea di comando"
 
 #. TRANSLATORS: this is the user ID of the user that started the action
-#: ../client/pk-console.c:251
+#: ../client/pk-console.c:252
 msgid "User ID"
 msgstr "ID Utente"
 
 #. TRANSLATORS: this is the username, e.g. hughsie
-#: ../client/pk-console.c:258
+#: ../client/pk-console.c:259
 msgid "Username"
 msgstr "Nome utente"
 
 #. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
-#: ../client/pk-console.c:262
+#: ../client/pk-console.c:263
 msgid "Real name"
 msgstr "Nome reale"
 
-#: ../client/pk-console.c:270
+#: ../client/pk-console.c:271
 msgid "Affected packages:"
 msgstr "Pacchetti interessati:"
 
-#: ../client/pk-console.c:272
+#: ../client/pk-console.c:273
 msgid "Affected packages: None"
 msgstr "Pacchetti interessati: Nessuno"
 
 #. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:297
+#: ../client/pk-console.c:298
 msgid "Distribution"
 msgstr "Distribuzione"
 
 #. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:299
+#: ../client/pk-console.c:300
 msgid "Type"
 msgstr "Tipo"
 
 #. TRANSLATORS: this is any summary text describing the upgrade
 #. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:301 ../client/pk-console.c:324
+#: ../client/pk-console.c:302 ../client/pk-console.c:325
 msgid "Summary"
 msgstr "Sommario"
 
 #. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:313
+#: ../client/pk-console.c:314
 msgid "Category"
 msgstr "Categoria"
 
 #. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:315
+#: ../client/pk-console.c:316
 msgid "ID"
 msgstr "ID"
 
 #. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:318
+#: ../client/pk-console.c:319
 msgid "Parent"
 msgstr "Gruppo padre"
 
 #. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:321
+#: ../client/pk-console.c:322
 msgid "Name"
 msgstr "Nome"
 
 #. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:327
+#: ../client/pk-console.c:328
 msgid "Icon"
 msgstr "Icona"
 
 #. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:342
+#: ../client/pk-console.c:343
 msgid "Details about the update:"
 msgstr "Dettagli sull'aggiornamento:"
 
 #. TRANSLATORS: details about the update, package name and version
-#: ../client/pk-console.c:344
+#. TRANSLATORS: title, the names of the packages that the method is processing
+#: ../client/pk-console.c:345 ../src/pk-polkit-action-lookup.c:352
+#, fuzzy
 msgid "Package"
-msgstr "Pacchetto"
+msgid_plural "Packages"
+msgstr[0] "Pacchetto"
+msgstr[1] "Pacchetto"
 
 #. TRANSLATORS: details about the update, any packages that this update updates
-#: ../client/pk-console.c:347
+#: ../client/pk-console.c:348
 msgid "Updates"
 msgstr "Aggiornamenti"
 
 #. TRANSLATORS: details about the update, any packages that this update obsoletes
-#: ../client/pk-console.c:351
+#: ../client/pk-console.c:352
 msgid "Obsoletes"
 msgstr "Obsoleti"
 
 #. TRANSLATORS: details about the update, the vendor URLs
-#: ../client/pk-console.c:355
+#: ../client/pk-console.c:356
 msgid "Vendor"
 msgstr "Produttore"
 
 #. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:359
+#: ../client/pk-console.c:360
 msgid "Bugzilla"
 msgstr "Bugzilla"
 
 #. TRANSLATORS: details about the update, the CVE URLs
-#: ../client/pk-console.c:363
+#: ../client/pk-console.c:364
 msgid "CVE"
 msgstr "CVE"
 
 #. TRANSLATORS: details about the update, if the package requires a restart
-#: ../client/pk-console.c:367
+#: ../client/pk-console.c:368
 msgid "Restart"
 msgstr "Riavvio"
 
 #. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:371
+#: ../client/pk-console.c:372
 msgid "Update text"
 msgstr "Dettagli aggiornamento"
 
 #. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:375
+#: ../client/pk-console.c:376
 msgid "Changes"
 msgstr "Cambiamenti"
 
 #. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:379
+#: ../client/pk-console.c:380
 msgid "State"
 msgstr "Stato"
 
 #. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:384
+#: ../client/pk-console.c:385
 msgid "Issued"
 msgstr "Rilasciato"
 
 #. TRANSLATORS: details about the update, date the update was updated
-#: ../client/pk-console.c:389
+#: ../client/pk-console.c:390
 msgid "Updated"
 msgstr "Aggiornato"
 
-#: ../client/pk-console.c:476 ../client/pk-console.c:478
+#: ../client/pk-console.c:477 ../client/pk-console.c:479
 msgid "Percentage"
 msgstr "Percentuale"
 
-#: ../client/pk-console.c:478
+#: ../client/pk-console.c:479
 msgid "Unknown"
 msgstr "Sconosciuto"
 
 #. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:529
+#: ../client/pk-console.c:521
 msgid "System restart required by:"
 msgstr "Riavvio del sistema richiesto da:"
 
 #. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:532
+#: ../client/pk-console.c:524
 msgid "Session restart required:"
 msgstr "Riavvio della sessione necessario:"
 
+#. TRANSLATORS: a package requires the system to be restarted due to a security update
+#: ../client/pk-console.c:527
+#, fuzzy
+msgid "System restart (security) required by:"
+msgstr "Riavvio del sistema richiesto da:"
+
+#. TRANSLATORS: a package requires the session to be restarted due to a security update
+#: ../client/pk-console.c:530
+#, fuzzy
+msgid "Session restart (security) required:"
+msgstr "Riavvio della sessione necessario:"
+
 #. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:535
+#: ../client/pk-console.c:533
 msgid "Application restart required by:"
 msgstr "Riavvio dell'applicazione richiesto da:"
 
-#. TRANSLATORS: a package needs to restart they system
-#: ../client/pk-console.c:572
+#. TRANSLATORS: a package needs to restart their system
+#: ../client/pk-console.c:588
 msgid "Please restart the computer to complete the update."
 msgstr "Riavviare il computer per completare l'aggiornamento."
 
 #. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:575
+#: ../client/pk-console.c:591
 msgid "Please logout and login to complete the update."
 msgstr "Terminare la sessione e accedere per completare l'aggiornamento."
 
 #. TRANSLATORS: a package needs to restart the application
-#: ../client/pk-console.c:578
+#: ../client/pk-console.c:594
 msgid "Please restart the application as it is being used."
 msgstr "Si prega di riavviare l'applicazione in uso."
 
+#. TRANSLATORS: a package needs to restart their system (due to security)
+#: ../client/pk-console.c:597
+#, fuzzy
+msgid ""
+"Please restart the computer to complete the update as important security "
+"updates have been installed."
+msgstr "Riavviare il computer per completare l'aggiornamento."
+
+#. TRANSLATORS: a package needs to restart the session (due to security)
+#: ../client/pk-console.c:600
+#, fuzzy
+msgid ""
+"Please logout and login to complete the update as important security updates "
+"have been installed."
+msgstr "Terminare la sessione e accedere per completare l'aggiornamento."
+
 #. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:691
+#: ../client/pk-console.c:727
 #, c-format
 msgid "The package %s is already installed"
 msgstr "Il pacchetto %s è già installato"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:699
+#: ../client/pk-console.c:735
 #, c-format
 msgid "The package %s could not be installed: %s"
 msgstr "Il pacchetto %s non può essere installato: %s"
 
 #. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
-#: ../client/pk-console.c:724 ../client/pk-console.c:751
-#: ../client/pk-console.c:847 ../client/pk-console.c:964
+#: ../client/pk-console.c:760 ../client/pk-console.c:783
+#: ../client/pk-console.c:879 ../client/pk-console.c:996
 #: ../client/pk-tools-common.c:62 ../client/pk-tools-common.c:81
 #: ../client/pk-tools-common.c:89
 #, c-format
@@ -252,47 +286,47 @@ msgid "Internal error: %s"
 msgstr "Errore interno: %s"
 
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:732 ../client/pk-console.c:1360
+#: ../client/pk-console.c:768 ../client/pk-console.c:1392
 #, c-format
 msgid "This tool could not install the packages: %s"
 msgstr "Questo strumento non può installare i pacchetti: %s"
 
 #. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:759
+#: ../client/pk-console.c:791
 #, c-format
 msgid "This tool could not install the files: %s"
 msgstr "Questo strumento non può installare i file: %s"
 
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:815
+#: ../client/pk-console.c:847
 #, c-format
 msgid "This tool could not remove %s: %s"
 msgstr "Questo strumento non può rimuovere %s: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:838 ../client/pk-console.c:876
-#: ../client/pk-console.c:909
+#: ../client/pk-console.c:870 ../client/pk-console.c:908
+#: ../client/pk-console.c:941
 #, c-format
 msgid "This tool could not remove the packages: %s"
 msgstr "Questo strumento non può rimuovere i pacchetti: %s"
 
 #. TRANSLATORS: When removing, we might have to remove other dependencies
-#: ../client/pk-console.c:888
+#: ../client/pk-console.c:920
 msgid "The following packages have to be removed:"
 msgstr "I seguenti pacchetti devono essere rimossi:"
 
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:895
+#: ../client/pk-console.c:927
 msgid "Proceed removing additional packages?"
 msgstr "Si conferma la rimozione dei pacchetti aggiuntivi?"
 
 #. TRANSLATORS: We did not remove any packages
-#: ../client/pk-console.c:900
+#: ../client/pk-console.c:932
 msgid "The package removal was canceled!"
 msgstr "La rimozione dei pacchetti è stata annullata!"
 
 #. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:941
+#: ../client/pk-console.c:973
 #, c-format
 msgid "This tool could not download the package %s as it could not be found"
 msgstr ""
@@ -300,359 +334,363 @@ msgstr ""
 "trovato"
 
 #. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:972
+#: ../client/pk-console.c:1004
 #, c-format
 msgid "This tool could not download the packages: %s"
 msgstr "Questo strumento non può scaricare i pacchetti: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:999 ../client/pk-console.c:1008
+#: ../client/pk-console.c:1031 ../client/pk-console.c:1040
 #, c-format
 msgid "This tool could not update %s: %s"
 msgstr "Questo strumento non può aggiornare %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1030 ../client/pk-console.c:1038
+#: ../client/pk-console.c:1062 ../client/pk-console.c:1070
 #, c-format
 msgid "This tool could not get the requirements for %s: %s"
 msgstr "Questo strumento non può ottenere i requisiti per %s: %s"
 
 #. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:1060 ../client/pk-console.c:1068
+#: ../client/pk-console.c:1092 ../client/pk-console.c:1100
 #, c-format
 msgid "This tool could not get the dependencies for %s: %s"
 msgstr "Questo strumento non può ottenere le dipendenze per %s: %s"
 
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:1090 ../client/pk-console.c:1098
+#: ../client/pk-console.c:1122 ../client/pk-console.c:1130
 #, c-format
 msgid "This tool could not get package details for %s: %s"
 msgstr "Questo strumento non può ottenere i dettagli del pacchetto per %s: %s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1120
+#: ../client/pk-console.c:1152
 #, c-format
 msgid "This tool could not find the files for %s: %s"
 msgstr "Questo strumento non può trovare i file per %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1128
+#: ../client/pk-console.c:1160
 #, c-format
 msgid "This tool could not get the file list for %s: %s"
 msgstr "Questo strumento non può ottenere l'elenco dei file per %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of packages. The filename follows
-#: ../client/pk-console.c:1150
+#: ../client/pk-console.c:1182
 #, c-format
 msgid "File already exists: %s"
 msgstr "Il file è già esistente: %s"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1155 ../client/pk-console.c:1211
-#: ../client/pk-console.c:1286
+#: ../client/pk-console.c:1187 ../client/pk-console.c:1243
+#: ../client/pk-console.c:1318
 msgid "Getting package list"
 msgstr "Recupero lista dei pacchetti"
 
 #. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1161 ../client/pk-console.c:1217
-#: ../client/pk-console.c:1292
+#: ../client/pk-console.c:1193 ../client/pk-console.c:1249
+#: ../client/pk-console.c:1324
 #, c-format
 msgid "This tool could not get package list: %s"
 msgstr "Questo strumento non può ottenere la lista dei paccheti: %s"
 
 #. TRANSLATORS: There was an error saving the list
-#: ../client/pk-console.c:1172
+#: ../client/pk-console.c:1204
 #, c-format
 msgid "Failed to save to disk"
 msgstr "Impossibile salvare su disco"
 
 #. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1206 ../client/pk-console.c:1281
+#: ../client/pk-console.c:1238 ../client/pk-console.c:1313
 #, c-format
 msgid "File does not exist: %s"
 msgstr "Il file non esiste: %s"
 
 #. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1238
+#: ../client/pk-console.c:1270
 msgid "Packages to add"
 msgstr "Pacchetti da aggiungere"
 
 #. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1246
+#: ../client/pk-console.c:1278
 msgid "Packages to remove"
 msgstr "Pacchetti da rimuovere"
 
 #. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1314
+#: ../client/pk-console.c:1346
 #, c-format
 msgid "No new packages need to be installed"
 msgstr "Non deve essere installato nessun nuovo pacchetto"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1320
+#: ../client/pk-console.c:1352
 msgid "To install"
 msgstr "Da installare"
 
 #. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1332
+#: ../client/pk-console.c:1364
 msgid "Searching for package: "
 msgstr "Ricerca del pacchetto:"
 
 #. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1336
+#: ../client/pk-console.c:1368
 msgid "not found."
 msgstr "non trovato."
 
 #. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1347
+#: ../client/pk-console.c:1379
 #, c-format
 msgid "No packages can be found to install"
 msgstr "Nonè stato trovato nessun pacchetto da installare"
 
 #. TRANSLATORS: installing new packages from package list
-#: ../client/pk-console.c:1353
+#. TRANSLATORS: we are now installing the debuginfo packages we found earlier
+#: ../client/pk-console.c:1385
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:886
+#, c-format
 msgid "Installing packages"
 msgstr "Installazione dei pacchetti in corso"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1389
+#: ../client/pk-console.c:1421
 #, c-format
 msgid "This tool could not find the update details for %s: %s"
 msgstr ""
 "Questo strumento non può trovare i dettagli di aggiornamento per %s: %s"
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1397
+#: ../client/pk-console.c:1429
 #, c-format
 msgid "This tool could not get the update details for %s: %s"
 msgstr ""
 "Questo strumento non può ottenere i dettagli di aggiornamento per %s: %s"
 
 #. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
-#: ../client/pk-console.c:1443
+#: ../client/pk-console.c:1460
 msgid "Error:"
 msgstr "Errore:"
 
 #. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1457
+#: ../client/pk-console.c:1474
 msgid "Package description"
 msgstr "Descrizione del pacchetto"
 
 #. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
-#: ../client/pk-console.c:1473
+#: ../client/pk-console.c:1490
 msgid "Message:"
 msgstr "Messaggio:"
 
 #. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1501
+#: ../client/pk-console.c:1518
 msgid "Package files"
 msgstr "File del pacchetto"
 
 #. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1509
+#: ../client/pk-console.c:1526
 msgid "No files"
 msgstr "Nessun file"
 
 #. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1532
+#: ../client/pk-console.c:1549
 msgid "Repository signature required"
 msgstr "È necessaria la firma del repository"
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1542
+#: ../client/pk-console.c:1559
 msgid "Do you accept this signature?"
 msgstr "Accettare questa firma?"
 
 #. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1546
+#: ../client/pk-console.c:1563
 msgid "The signature was not accepted."
 msgstr "La firma non è stata accettata."
 
 #. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1580
+#: ../client/pk-console.c:1597
 msgid "End user license agreement required"
 msgstr "È necessario l'Accordo di licenza per l'utente finale"
 
 #. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1587
+#: ../client/pk-console.c:1604
 msgid "Do you agree to this license?"
 msgstr "Si è d'accordo con questa licenza?"
 
 #. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1591
+#: ../client/pk-console.c:1608
 msgid "The license was refused."
 msgstr "La licenza è stata rifiutata."
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1620
+#: ../client/pk-console.c:1637
 msgid "The daemon crashed mid-transaction!"
 msgstr "Il demone e' andato in crash a metà transazione!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1673
+#: ../client/pk-console.c:1690
 msgid "PackageKit Console Interface"
 msgstr "PackageKit Console Interface"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1675
+#: ../client/pk-console.c:1692
 msgid "Subcommands:"
 msgstr "Sottocomandi:"
 
 #. TRANSLATORS: command line argument, if we should show debugging information
 #. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:1767 ../client/pk-generate-pack.c:185
-#: ../client/pk-monitor.c:125
-#: ../contrib/command-not-found/pk-command-not-found.c:518
-#: ../src/pk-main.c:199
+#: ../client/pk-console.c:1785 ../client/pk-generate-pack.c:185
+#: ../client/pk-monitor.c:128
+#: ../contrib/command-not-found/pk-command-not-found.c:616
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:550
+#: ../contrib/device-rebind/pk-device-rebind.c:293 ../src/pk-main.c:211
 msgid "Show extra debugging information"
 msgstr "Mostra informazioni extra di debugging"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1770 ../client/pk-monitor.c:127
+#: ../client/pk-console.c:1788 ../client/pk-monitor.c:130
 msgid "Show the program version and exit"
 msgstr "Mostra la versione del programma ed esce"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1773
+#: ../client/pk-console.c:1791
 msgid "Set the filter, e.g. installed"
 msgstr "Imposta il filtro, es. installato"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1776
+#: ../client/pk-console.c:1794
 msgid "Exit without waiting for actions to complete"
 msgstr "Esce senza attendere il completamento delle azioni in corso"
 
 #. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:1803
+#: ../client/pk-console.c:1821
 msgid "This tool could not connect to system DBUS."
 msgstr "Questo strumento non può connettersi al DBUS di sistema."
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1894
+#: ../client/pk-console.c:1911
 msgid "The filter specified was invalid"
 msgstr "Il filtro specificato non è valido"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1912
+#: ../client/pk-console.c:1930
 msgid "A search type is required, e.g. name"
 msgstr "È necessario il tipo di ricerca, ad esempio: nome"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1918 ../client/pk-console.c:1926
-#: ../client/pk-console.c:1934 ../client/pk-console.c:1942
+#: ../client/pk-console.c:1937 ../client/pk-console.c:1946
+#: ../client/pk-console.c:1955 ../client/pk-console.c:1964
 msgid "A search term is required"
 msgstr "È necessario un termine di ricerca"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1948
+#: ../client/pk-console.c:1971
 msgid "Invalid search type"
 msgstr "Tipo di ricerca non valida"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1954
+#: ../client/pk-console.c:1977
 msgid "A package name or filename to install is required"
 msgstr "Per l'installazione è necessario un nome di pacchetto o un nome file"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1962
+#: ../client/pk-console.c:1986
 msgid "A type, key_id and package_id are required"
 msgstr "È' necessario speficare un tipo, un key_id ed un package_id"
 
 #. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:1970
+#: ../client/pk-console.c:1995
 msgid "A package name to remove is required"
 msgstr "È richiesto il nome di un pacchetto da rimuovere"
 
 #. TRANSLATORS: the user did not specify anything about what to download or where
-#: ../client/pk-console.c:1977
-msgid ""
-"A destination directory and then the package names to download are required"
+#: ../client/pk-console.c:2003
+#, fuzzy
+msgid "A destination directory and the package names to download are required"
 msgstr ""
 "È necessario specificare la cartella di destinazione ed il nome dei "
 "pacchetti da scaricare"
 
 #. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:1983
+#: ../client/pk-console.c:2010
 msgid "Directory not found"
 msgstr "Cartella non trovata"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1990
+#: ../client/pk-console.c:2018
 msgid "A licence identifier (eula-id) is required"
 msgstr "È necessario specificare un identificatore di licenza (eula-id)"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1999
+#: ../client/pk-console.c:2028
 msgid "A transaction identifier (tid) is required"
 msgstr "È necessario un identificativo della transazione (tid)"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:2015
+#: ../client/pk-console.c:2045
 msgid "A package name to resolve is required"
 msgstr "È necessario il nome di un pacchetto da risolvere"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:2023 ../client/pk-console.c:2031
+#: ../client/pk-console.c:2054 ../client/pk-console.c:2063
 msgid "A repository name is required"
 msgstr "È richiesto un nome di repository"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2039
+#: ../client/pk-console.c:2072
 msgid "A repo name, parameter and value are required"
 msgstr ""
 "È necessario specificare un nome, un parametro ed un valore per il repository"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:2052
+#: ../client/pk-console.c:2086
 msgid "An action, e.g. 'update-system' is required"
 msgstr "È necessario specificare un azione, es. 'update-system'"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:2058
+#: ../client/pk-console.c:2093
 msgid "A correct role is required"
 msgstr "È necessaria una regola corretta"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2064
+#: ../client/pk-console.c:2100
 msgid "Failed to get the time since this action was last completed"
 msgstr "Impossibile determinare l'ora dell'ultima azione completata"
 
 #. TRANSLATORS: The user did not provide a package name
 #. TRANSLATORS: This is when the user fails to supply the package name
-#: ../client/pk-console.c:2073 ../client/pk-console.c:2084
-#: ../client/pk-console.c:2092 ../client/pk-console.c:2108
-#: ../client/pk-console.c:2116 ../client/pk-generate-pack.c:241
+#: ../client/pk-console.c:2110 ../client/pk-console.c:2122
+#: ../client/pk-console.c:2131 ../client/pk-console.c:2149
+#: ../client/pk-console.c:2158 ../client/pk-generate-pack.c:241
 msgid "A package name is required"
 msgstr "È richiesto il nome di un pacchetto"
 
 #. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:2100
+#: ../client/pk-console.c:2140
 msgid "A package provide string is required"
 msgstr "È richiesta una stringa \"il pacchetto fornisce\""
 
 #. TRANSLATORS: The user didn't specify a filename to create as a list
-#: ../client/pk-console.c:2124
+#: ../client/pk-console.c:2167
 msgid "A list file name to create is required"
 msgstr "È richiesto un nome file per la lista da creare"
 
 #. TRANSLATORS: The user didn't specify a filename to open as a list
-#: ../client/pk-console.c:2133 ../client/pk-console.c:2142
+#: ../client/pk-console.c:2177 ../client/pk-console.c:2187
 msgid "A list file to open is required"
 msgstr "È necessario un file lista da aprire"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2195
+#: ../client/pk-console.c:2241
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "L'opzione '%s' non è supportata"
 
 #. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2208
+#: ../client/pk-console.c:2254
 msgid "Incorrect privileges for this operation"
 msgstr "Non si dispone dei privilegi necessari per questa operazione"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2211
+#: ../client/pk-console.c:2257
 msgid "Command failed"
 msgstr "Comando non riuscito"
 
@@ -713,64 +751,75 @@ msgstr "È richiesta la directory di output o un nome file"
 msgid "The package manager cannot perform this type of operation."
 msgstr "Il gestore pacchetti non può eseguire questo tipo di operazione."
 
+#. TRANSLATORS: This is when the distro didn't include libarchive support into PK
+#: ../client/pk-generate-pack.c:280
+msgid ""
+"Service packs cannot be created as PackageKit was not built with libarchive "
+"support."
+msgstr ""
+
 #. TRANSLATORS: the user specified an absolute path, but didn't get the extension correct
-#: ../client/pk-generate-pack.c:285
+#: ../client/pk-generate-pack.c:291
 msgid "If specifying a file, the service pack name must end with"
 msgstr "Se si specifica un file, il nome del service pack deve terminare con"
 
 #. TRANSLATORS: This is when file already exists
-#: ../client/pk-generate-pack.c:301
+#: ../client/pk-generate-pack.c:307
 msgid "A pack with the same name already exists, do you want to overwrite it?"
 msgstr "Esiste già un pack con lo stesso nome, si desidera sovrascriverlo?"
 
 #. TRANSLATORS: This is when the pack was not overwritten
-#: ../client/pk-generate-pack.c:304
+#: ../client/pk-generate-pack.c:310
 msgid "The pack was not overwritten."
 msgstr "Il pack non è stato sovrascritto."
 
 #. TRANSLATORS: This is when the temporary directory cannot be created, the directory name follows
-#: ../client/pk-generate-pack.c:317
+#: ../client/pk-generate-pack.c:323
 msgid "Failed to create directory:"
 msgstr "Impossibile creare la directory:"
 
 #. TRANSLATORS: This is when the list of packages from the remote computer cannot be opened
-#: ../client/pk-generate-pack.c:327
+#: ../client/pk-generate-pack.c:333
 msgid "Failed to open package list."
 msgstr "Impossibile aprire l'elenco dei pacchetti."
 
 #. TRANSLATORS: The package name is being matched up to available packages
-#: ../client/pk-generate-pack.c:338
+#: ../client/pk-generate-pack.c:344
 msgid "Finding package name."
 msgstr "Ricerca del nome del pacchetto."
 
 #. TRANSLATORS: This is when the package cannot be found in any software source. The detailed error follows
-#: ../client/pk-generate-pack.c:342
+#: ../client/pk-generate-pack.c:348
 #, c-format
 msgid "Failed to find package '%s': %s"
 msgstr "Impossibile trovare il pacchetto '%s': %s"
 
 #. TRANSLATORS: This is telling the user we are in the process of making the pack
-#: ../client/pk-generate-pack.c:359
+#: ../client/pk-generate-pack.c:365
 msgid "Creating service pack..."
 msgstr "Creazione del service pack..."
 
 #. TRANSLATORS: we succeeded in making the file
-#: ../client/pk-generate-pack.c:366
+#: ../client/pk-generate-pack.c:372
 #, c-format
 msgid "Service pack created '%s'"
 msgstr "Service pack '%s' creato"
 
 #. TRANSLATORS: we failed to make te file
-#: ../client/pk-generate-pack.c:371
+#: ../client/pk-generate-pack.c:377
 #, c-format
 msgid "Failed to create '%s': %s"
 msgstr "Impossibile creare '%s': %s"
 
 #. TRANSLATORS: this is a program that monitors PackageKit
-#: ../client/pk-monitor.c:143
+#: ../client/pk-monitor.c:146
 msgid "PackageKit Monitor"
 msgstr "PackageKit Monitor"
 
+#: ../client/pk-monitor.c:183
+msgid "Cannot show the list of transactions"
+msgstr ""
+
 #. TRANSLATORS: The package was not found in any software sources
 #: ../client/pk-tools-common.c:118
 #, c-format
@@ -792,128 +841,434 @@ msgstr "Si prega di scegliere il pacchetto corretto: "
 msgid "Please enter a number from 1 to %i: "
 msgstr "Inserire un numero compreso tra 1 e %i: "
 
+#. TRANSLATORS: when we are getting data from the daemon
+#: ../contrib/browser-plugin/pk-plugin-install.c:466
+msgid "Getting package information..."
+msgstr "Recupero informazioni sul pacchetto..."
+
+#. TRANSLATORS: run an applicaiton
+#: ../contrib/browser-plugin/pk-plugin-install.c:472
+#, c-format
+msgid "Run %s"
+msgstr "Esecuzione %s"
+
+#. TRANSLATORS: show the installed version of a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:478
+msgid "Installed version"
+msgstr "Versione installata"
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:486
+#, c-format
+msgid "Run version %s now"
+msgstr "Eseguire versione %s ora"
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:492
+msgid "Run now"
+msgstr "Eseguire ora"
+
+#. TRANSLATORS: update to a new version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:498
+#, c-format
+msgid "Update to version %s"
+msgstr "Aggiornare alla versione %s"
+
+#. TRANSLATORS: To install a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:504
+#, c-format
+msgid "Install %s now"
+msgstr "Installare %s ora"
+
+#. TRANSLATORS: the version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:507
+msgid "Version"
+msgstr "Versione"
+
+#. TRANSLATORS: noting found, so can't install
+#: ../contrib/browser-plugin/pk-plugin-install.c:512
+msgid "No packages found for your system"
+msgstr "Nessun pacchetto trovato per il sistema in uso"
+
+#. TRANSLATORS: package is being installed
+#: ../contrib/browser-plugin/pk-plugin-install.c:517
+msgid "Installing..."
+msgstr "Installazione in corso..."
+
+#. TRANSLATORS: downloading repo data so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:349
+msgid "Downloading details about the software sources."
+msgstr ""
+
+#. TRANSLATORS: downloading file lists so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:353
+msgid "Downloading filelists (this may take some time to complete)."
+msgstr ""
+
+#. TRANSLATORS: waiting for native lock
+#: ../contrib/command-not-found/pk-command-not-found.c:357
+#, fuzzy
+msgid "Waiting for package manager lock."
+msgstr "Ricerca del nome del pacchetto."
+
+#. TRANSLATORS: loading package cache so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:361
+#, fuzzy
+msgid "Loading list of packages."
+msgstr "Download dei pacchetti in corso"
+
 #. TRANSLATORS: we failed to find the package, this shouldn't happen
-#: ../contrib/command-not-found/pk-command-not-found.c:369
+#: ../contrib/command-not-found/pk-command-not-found.c:420
 msgid "Failed to search for file"
 msgstr "Impossibile cercare il file"
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:493
+#: ../contrib/command-not-found/pk-command-not-found.c:557
 msgid "Failed to launch:"
 msgstr "Impossibile eseguire:"
 
 #. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/command-not-found/pk-command-not-found.c:534
+#: ../contrib/command-not-found/pk-command-not-found.c:632
 msgid "PackageKit Command Not Found"
 msgstr "PackageKit Command Not Found"
 
 #. TRANSLATORS: the prefix of all the output telling the user why it's not executing
-#: ../contrib/command-not-found/pk-command-not-found.c:557
+#: ../contrib/command-not-found/pk-command-not-found.c:658
 msgid "Command not found."
 msgstr "Comando non trovato."
 
 #. TRANSLATORS: tell the user what we think the command is
-#: ../contrib/command-not-found/pk-command-not-found.c:564
+#: ../contrib/command-not-found/pk-command-not-found.c:665
 msgid "Similar command is:"
 msgstr "Un comando simile è:"
 
 #. TRANSLATORS: Ask the user if we should run the similar command
-#: ../contrib/command-not-found/pk-command-not-found.c:573
+#: ../contrib/command-not-found/pk-command-not-found.c:674
 msgid "Run similar command:"
 msgstr "Eseguire un comando simile:"
 
 #. TRANSLATORS: show the user a list of commands that they could have meant
 #. TRANSLATORS: show the user a list of commands we could run
-#: ../contrib/command-not-found/pk-command-not-found.c:585
-#: ../contrib/command-not-found/pk-command-not-found.c:594
+#: ../contrib/command-not-found/pk-command-not-found.c:686
+#: ../contrib/command-not-found/pk-command-not-found.c:695
 msgid "Similar commands are:"
 msgstr "I comandi simili sono:"
 
 #. TRANSLATORS: ask the user to choose a file to run
-#: ../contrib/command-not-found/pk-command-not-found.c:601
+#: ../contrib/command-not-found/pk-command-not-found.c:702
 msgid "Please choose a command to run"
 msgstr "Per favore, selezionare un comando da lanciare"
 
 #. TRANSLATORS: tell the user what package provides the command
-#: ../contrib/command-not-found/pk-command-not-found.c:616
+#: ../contrib/command-not-found/pk-command-not-found.c:721
 msgid "The package providing this file is:"
 msgstr "Il pacchetto che fornisce questo file è:"
 
 #. TRANSLATORS: as the user if we want to install a package to provide the command
-#: ../contrib/command-not-found/pk-command-not-found.c:621
+#: ../contrib/command-not-found/pk-command-not-found.c:726
 #, c-format
 msgid "Install package '%s' to provide command '%s'?"
 msgstr "Installare il pacchetto '%s' per fornire il comando '%s'?"
 
 #. TRANSLATORS: Show the user a list of packages that provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:642
+#: ../contrib/command-not-found/pk-command-not-found.c:747
 msgid "Packages providing this file are:"
 msgstr "I pacchetti che forniscono questo file sono:"
 
 #. TRANSLATORS: Show the user a list of packages that they can install to provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:651
+#: ../contrib/command-not-found/pk-command-not-found.c:756
 msgid "Suitable packages are:"
 msgstr "Pacchetti adeguati sono:"
 
 #. get selection
 #. TRANSLATORS: ask the user to choose a file to install
-#: ../contrib/command-not-found/pk-command-not-found.c:659
+#: ../contrib/command-not-found/pk-command-not-found.c:764
 msgid "Please choose a package to install"
 msgstr "Si prega di selezionare un pacchetto da installare"
 
-#. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/src/contents.cpp:298
-msgid "Getting package information..."
-msgstr "Recupero informazioni sul pacchetto..."
+#. TRANSLATORS: we are starting to install the packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:187
+#, fuzzy
+msgid "Starting install"
+msgstr "Da installare"
 
-#. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/src/contents.cpp:304
+#. TRANSLATORS: we couldn't find the package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:397
+#, fuzzy, c-format
+msgid "Failed to find the package %s, or already installed: %s"
+msgstr "Il pacchetto %s è già installato"
+
+#. command line argument, simulate what would be done, but don't actually do it
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:553
+msgid ""
+"Don't actually install any packages, only simulate what would be installed"
+msgstr ""
+
+#. command line argument, do we skip packages that depend on the ones specified
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:556
+msgid "Do not install dependencies of the core packages"
+msgstr ""
+
+#. command line argument, do we operate quietly
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:559
+msgid "Do not display information or progress"
+msgstr ""
+
+#. TRANSLATORS: tool that gets called when the command is not found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:577
+#, fuzzy
+msgid "PackageKit Debuginfo Installer"
+msgstr "PackageKit Console Interface"
+
+#. TRANSLATORS: the use needs to specify a list of package names on the command line
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:589
+#, fuzzy, c-format
+msgid "ERROR: Specify package names to install."
+msgstr "E' necessario specificare un pacchetto o un file da installare"
+
+#. TRANSLATORS: we are getting the list of repositories
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:623
+#, fuzzy, c-format
+msgid "Getting sources list"
+msgstr "Recupero lista dei pacchetti"
+
+#. TRANSLATORS: all completed 100%
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:641
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:681
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:716
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:800
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:844
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:911
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:955
 #, c-format
-msgid "Run %s"
-msgstr "Esecuzione %s"
+msgid "OK."
+msgstr ""
 
-#. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/src/contents.cpp:310
-msgid "Installed version"
-msgstr "Versione installata"
+#. TRANSLATORS: tell the user what we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:644
+#, c-format
+msgid "Found %i enabled and %i disabled sources."
+msgstr ""
 
-#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/src/contents.cpp:318
+#. TRANSLATORS: we're finding repositories that match out pattern
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:651
 #, c-format
-msgid "Run version %s now"
-msgstr "Eseguire versione %s ora"
+msgid "Finding debugging sources"
+msgstr ""
 
-#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/src/contents.cpp:324
-msgid "Run now"
-msgstr "Eseguire ora"
+#. TRANSLATORS: tell the user what we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:684
+#, c-format
+msgid "Found %i disabled debuginfo repos."
+msgstr ""
 
-#. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/src/contents.cpp:330
+#. TRANSLATORS: we're now enabling all the debug sources we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:691
 #, c-format
-msgid "Update to version %s"
-msgstr "Aggiornare alla versione %s"
+msgid "Enabling debugging sources"
+msgstr ""
 
-#. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/src/contents.cpp:336
+#. TRANSLATORS: operation was not successful
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:701
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:785
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:829
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:896
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:940
+msgid "FAILED."
+msgstr ""
+
+#. TRANSLATORS: tell the user how many we enabled
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:719
 #, c-format
-msgid "Install %s now"
-msgstr "Installare %s ora"
+msgid "Enabled %i debugging sources."
+msgstr ""
 
-#. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/src/contents.cpp:339
-msgid "Version"
-msgstr "Versione"
+#. TRANSLATORS: we're now finding packages that match in all the repos
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:726
+#, fuzzy, c-format
+msgid "Finding debugging packages"
+msgstr "Ricerca del nome del pacchetto."
 
-#. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/src/contents.cpp:344
-msgid "No packages found for your system"
-msgstr "Nessun pacchetto trovato per il sistema in uso"
+#. TRANSLATORS: we couldn't find the package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:738
+#, fuzzy, c-format
+msgid "Failed to find the package %s: %s"
+msgstr "Impossibile trovare il pacchetto '%s': %s"
 
-#. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/src/contents.cpp:349
-msgid "Installing..."
-msgstr "Installazione in corso..."
+#. TRANSLATORS: we couldn't find the debuginfo package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:761
+#, fuzzy, c-format
+msgid "Failed to find the debuginfo package %s: %s"
+msgstr "Impossibile trovare il pacchetto '%s': %s"
+
+#. TRANSLATORS: no debuginfo packages could be found to be installed
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:789
+#, fuzzy, c-format
+msgid "Found no packages to install."
+msgstr "Non deve essere installato nessun nuovo pacchetto"
+
+#. TRANSLATORS: tell the user we found some packages, and then list them
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:803
+#, fuzzy, c-format
+msgid "Found %i packages:"
+msgstr "Download dei pacchetti in corso"
+
+#. TRANSLATORS: tell the user we are searching for deps
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:819
+#, c-format
+msgid "Finding packages that depend on these packages"
+msgstr ""
+
+#. TRANSLATORS: could not install, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:832
+#, fuzzy, c-format
+msgid "Could not find dependant packages: %s"
+msgstr "Impossibile trovare il pacchetto '%s': %s"
+
+#. TRANSLATORS: tell the user we found some more packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:848
+#, c-format
+msgid "Found %i extra packages."
+msgstr ""
+
+#. TRANSLATORS: tell the user we found some more packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:852
+#, fuzzy, c-format
+msgid "No extra packages required."
+msgstr "È richiesto il nome di un pacchetto"
+
+#. TRANSLATORS: tell the user we found some packages (and deps), and then list them
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:861
+#, fuzzy, c-format
+msgid "Found %i packages to install:"
+msgstr "Non deve essere installato nessun nuovo pacchetto"
+
+#. TRANSLATORS: simulate mode is a testing mode where we quit before the action
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:874
+#, fuzzy, c-format
+msgid "Not installing packages in simulate mode"
+msgstr "Installazione dei pacchetti in corso"
+
+#. TRANSLATORS: could not install, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:899
+#, fuzzy, c-format
+msgid "Could not install packages: %s"
+msgstr "Questo strumento non può installare i pacchetti: %s"
+
+#. TRANSLATORS: we are now disabling all debuginfo repos we previously enabled
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:931
+#, c-format
+msgid "Disabling sources previously enabled"
+msgstr ""
+
+#. TRANSLATORS: no debuginfo packages could be found to be installed, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:943
+#, c-format
+msgid "Could not disable the debugging sources: %s"
+msgstr ""
+
+#. TRANSLATORS: we disabled all the debugging repos that we enabled before
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:958
+#, c-format
+msgid "Disabled %i debugging sources."
+msgstr ""
+
+#. TRANSLATORS: couldn't open device to write
+#: ../contrib/device-rebind/pk-device-rebind.c:61
+#, fuzzy
+msgid "Failed to open file"
+msgstr "Impossibile cercare il file"
+
+#. TRANSLATORS: could not write to the device
+#: ../contrib/device-rebind/pk-device-rebind.c:70
+#, fuzzy
+msgid "Failed to write to the file"
+msgstr "Impossibile cercare il file"
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:110
+#: ../contrib/device-rebind/pk-device-rebind.c:147
+#, fuzzy
+msgid "Failed to write to device"
+msgstr "Impossibile salvare su disco"
+
+#. TRANSLATORS: the device could not be found in sysfs
+#: ../contrib/device-rebind/pk-device-rebind.c:175
+#, fuzzy
+msgid "Device could not be found"
+msgstr "Impossibile trovare il pacchetto"
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:202
+#, fuzzy
+msgid "Failed to unregister driver"
+msgstr "Impossibile creare la directory:"
+
+#. TRANSLATORS: we failed to bind the old driver
+#: ../contrib/device-rebind/pk-device-rebind.c:211
+#, fuzzy
+msgid "Failed to register driver"
+msgstr "Impossibile creare la directory:"
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:260
+#, fuzzy
+msgid "Device path not found"
+msgstr "Cartella non trovata"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:268
+msgid "Incorrect device path specified"
+msgstr ""
+
+#. command line argument, simulate what would be done, but don't actually do it
+#: ../contrib/device-rebind/pk-device-rebind.c:296
+msgid "Don't actually touch the hardware, only simulate what would be done"
+msgstr ""
+
+#. TRANSLATORS: command line option: a list of files to install
+#: ../contrib/device-rebind/pk-device-rebind.c:299
+msgid "Device paths"
+msgstr ""
+
+#. TRANSLATORS: tool that gets called when the device needs reloading after installing firmware
+#: ../contrib/device-rebind/pk-device-rebind.c:314
+#, fuzzy
+msgid "PackageKit Device Reloader"
+msgstr "PackageKit Service Pack"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:322
+#, fuzzy
+msgid "You need to specify at least one valid device path"
+msgstr "E' necessario specificare un pacchetto da rimuovere"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:332
+msgid "This script can only be used by the root user"
+msgstr ""
+
+#. TRANSLATORS: we're going to verify the path first
+#: ../contrib/device-rebind/pk-device-rebind.c:341
+msgid "Verifying device path"
+msgstr ""
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:346
+#, fuzzy
+msgid "Failed to verify device path"
+msgstr "Impossibile cercare il file"
+
+#. TRANSLATORS: we're going to try
+#: ../contrib/device-rebind/pk-device-rebind.c:360
+msgid "Attempting to rebind device"
+msgstr ""
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:365
+#, fuzzy
+msgid "Failed to rebind device"
+msgstr "Impossibile creare la directory:"
 
 #: ../data/packagekit-catalog.xml.in.h:1
 msgid "PackageKit Catalog"
@@ -927,28 +1282,34 @@ msgstr "Elenco pacchetti PackageKit"
 msgid "PackageKit Service Pack"
 msgstr "PackageKit Service Pack"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:1
+#. SECURITY:
+#. - Normal users do not require admin authentication to accept new
+#. licence agreements.
+#. - Change this to 'auth_admin' for environments where users should not
+#. be given the option to make legal decisions.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:7
 msgid "Accept EULA"
 msgstr "Accettazione EULA"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:2
+#: ../policy/org.freedesktop.packagekit.policy.in.h:8
 msgid "Authentication is required to accept a EULA"
 msgstr "Per accettare un EULA è necessaria l'autenticazione"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:3
+#: ../policy/org.freedesktop.packagekit.policy.in.h:9
 msgid ""
 "Authentication is required to cancel a task that was not started by yourself"
 msgstr ""
 "Per annullare un compito di cui non si era l'autore è necessaria "
 "l'autenticazione"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:4
+#: ../policy/org.freedesktop.packagekit.policy.in.h:10
 msgid "Authentication is required to change software source parameters"
 msgstr ""
 "Per cambiare i parametri di sorgente del software è necessaria "
 "l'autenticazione"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:5
+#: ../policy/org.freedesktop.packagekit.policy.in.h:11
 msgid ""
 "Authentication is required to consider a key used for signing packages as "
 "trusted"
@@ -956,27 +1317,32 @@ msgstr ""
 "Per considerare fidata una chiave per firmare i pacchetti è necessaria "
 "l'autenticazione"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:6
+#: ../policy/org.freedesktop.packagekit.policy.in.h:12
 msgid "Authentication is required to install a signed package"
 msgstr "Per installare un pacchetto firmato è necessaria l'autenticazione"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:7
+#: ../policy/org.freedesktop.packagekit.policy.in.h:13
 msgid "Authentication is required to install an untrusted package"
 msgstr "Per installare un pacchetto non firmato è necessaria l'autenticazione"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:8
+#: ../policy/org.freedesktop.packagekit.policy.in.h:14
 msgid "Authentication is required to refresh the system sources"
 msgstr "Per aggiornare i sorgenti del sistema è necessaria l'autenticazione"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:9
+#: ../policy/org.freedesktop.packagekit.policy.in.h:15
+#, fuzzy
+msgid "Authentication is required to reload the device with a new driver"
+msgstr "Per aggiornare i sorgenti del sistema è necessaria l'autenticazione"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:16
 msgid "Authentication is required to remove packages"
 msgstr "Per rimuovere i pacchetti è necessaria l'autenticazione"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:10
+#: ../policy/org.freedesktop.packagekit.policy.in.h:17
 msgid "Authentication is required to rollback a transaction"
 msgstr "Per ripristinare una transazione è necessaria l'autenticazione"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:11
+#: ../policy/org.freedesktop.packagekit.policy.in.h:18
 msgid ""
 "Authentication is required to set the network proxy used for downloading "
 "packages"
@@ -984,47 +1350,115 @@ msgstr ""
 "Per impostare il proxy di rete usato per scaricare i pacchetti è necessaria "
 "l'autenticazione"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:12
+#: ../policy/org.freedesktop.packagekit.policy.in.h:19
 msgid "Authentication is required to update packages"
 msgstr "Per aggiornare i pacchetti è necessaria l'autenticazione"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:13
+#. SECURITY:
+#. - Normal users are allowed to cancel their own task without
+#. authentication, but a different user id needs the admin password
+#. to cancel another users task.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:25
 msgid "Cancel foreign task"
 msgstr "Annullare compito sconosciuto"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:14
+#. SECURITY:
+#. - Normal users require admin authentication to enable or disable
+#. software sources as this can be used to enable new updates or
+#. install different versions of software.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:31
 msgid "Change software source parameters"
 msgstr "Cambio parametri sorgente software"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:15
+#. SECURITY:
+#. - Normal users do not need authentication to install signed packages
+#. from signed repositories, as this cannot exploit a system.
+#. - Paranoid users (or parents!) can change this to 'auth_admin' or
+#. 'auth_admin_keep'.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:38
 msgid "Install signed package"
 msgstr "Installazione pacchetto firmato"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:16
+#. SECURITY:
+#. - Normal users require admin authentication to install untrusted or
+#. unrecognised packages, as allowing users to do this without a
+#. password would be a massive security hole.
+#. - This is not retained as each package should be authenticated.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:45
 msgid "Install untrusted local file"
 msgstr "Installazione file locale privo di fiducia"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:17
+#. SECURITY:
+#. - Normal users do not require admin authentication to refresh the
+#. cache, as this doesn't actually install or remove software.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:50
 msgid "Refresh system sources"
 msgstr "Aggiornamento sorgenti del sistema"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:18
+#. SECURITY:
+#. - Normal users require admin authentication to rebind a driver
+#. so that it works after we install firmware.
+#. - This should not be set to 'yes' as unprivileged users could then
+#. try to rebind drivers in use, for instance security authentication
+#. devices.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:58
+msgid "Reload a device"
+msgstr ""
+
+#. SECURITY:
+#. - Normal users require admin authentication to remove packages as
+#. this can make the system unbootable or stop other applications from
+#. working.
+#. - Be sure to close the tool used to remove the packages after the
+#. admin authentication has been obtained, otherwise packages can still
+#. be removed. If this is not possible, change this authentication to
+#. 'auth_admin'.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:68
 msgid "Remove package"
 msgstr "Rimozione pacchetto"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:19
+#. SECURITY:
+#. - Normal users require admin authentication to rollback system state
+#. as this will change a large number of packages, and could expose the
+#. system to previously patched security vulnerabilities.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:74
 msgid "Rollback to a previous transaction"
 msgstr "Ripristino ad una transazione precedente"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:20
+#. SECURITY:
+#. - Normal users do not require admin authentication to set the proxy
+#. used for downloading packages.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:79
 msgid "Set network proxy"
 msgstr "Impostazione proxy di rete"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:21
+#. SECURITY:
+#. - Normal users require admin authentication to add signing keys.
+#. - This implies adding an explicit trust, and should not be granted
+#. without a secure authentication.
+#. - This is not kept as each package should be authenticated.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:86
 msgid "Trust a key used for signing packages"
 msgstr "Impostazione della fiducia in una chiave per la firma dei pacchetti"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:22
+#. SECURITY:
+#. - Normal users do not require admin authentication to update the
+#. system as the packages will be signed, and the action is required
+#. to update the system when unattended.
+#. - Changing this to anything other than 'yes' will break unattended
+#. updates.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:94
 msgid "Update packages"
 msgstr "Aggiornamento pacchetti"
 
@@ -1055,60 +1489,98 @@ msgstr ""
 "sistema:"
 
 #. TRANSLATORS: a backend is the system package tool, e.g. yum, apt
-#: ../src/pk-main.c:193
+#: ../src/pk-main.c:205
 msgid "Packaging backend to use, e.g. dummy"
 msgstr "Backend per la costruzione dei pacchetti da utilizzare, es. dummy"
 
 #. TRANSLATORS: if we should run in the background
-#: ../src/pk-main.c:196
+#: ../src/pk-main.c:208
 msgid "Daemonize and detach from the terminal"
 msgstr "Esegue come demone e stacca dal terminale"
 
 #. TRANSLATORS: if we should not monitor how long we are inactive for
-#: ../src/pk-main.c:202
+#: ../src/pk-main.c:214
 msgid "Disable the idle timer"
 msgstr "Disattiva il timer di attesa"
 
 #. TRANSLATORS: show version
-#: ../src/pk-main.c:205
+#: ../src/pk-main.c:217
 msgid "Show version and exit"
 msgstr "Mostra la versione ed esce"
 
 #. TRANSLATORS: exit after we've started up, used for user profiling
-#: ../src/pk-main.c:208
+#: ../src/pk-main.c:220
 msgid "Exit after a small delay"
 msgstr "Esce dopo un piccolo ritardo"
 
 #. TRANSLATORS: exit straight away, used for automatic profiling
-#: ../src/pk-main.c:211
+#: ../src/pk-main.c:223
 msgid "Exit after the engine has loaded"
 msgstr "Esce dopo il caricamento del motore"
 
 #. TRANSLATORS: describing the service that is running
-#: ../src/pk-main.c:226
+#: ../src/pk-main.c:238
 msgid "PackageKit service"
 msgstr "Servizio PackageKit"
 
 #. TRANSLATORS: fatal error, dbus is not running
-#: ../src/pk-main.c:263
+#: ../src/pk-main.c:275
 msgid "Cannot connect to the system bus"
 msgstr "Impossibile collegarsi al bus di sistema"
 
-#. TRANSLATORS: cannot register on system bus, unknown reason
-#: ../src/pk-main.c:313
-#, c-format
+#. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error follows
+#: ../src/pk-main.c:334
 msgid "Error trying to start:"
 msgstr "Errore nell'avvio di:"
 
+#: ../src/pk-polkit-action-lookup.c:147
+#, fuzzy
+msgid "To install debugging packages, extra sources need to be enabled"
+msgstr "Non deve essere installato nessun nuovo pacchetto"
+
+#. TRANSLATORS: is not GPG signed
+#: ../src/pk-polkit-action-lookup.c:168 ../src/pk-polkit-action-lookup.c:187
+msgid "The software is not from a trusted source."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:173
+msgid "Do not update this package unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:174
+msgid "Do not update these packages unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:192
+msgid "Do not install this package unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:193
+msgid "Do not install these packages unless you are sure it is safe to do so."
+msgstr ""
+
+#. TRANSLATORS: warn the user that all bets are off
+#: ../src/pk-polkit-action-lookup.c:199
+msgid "Malicious software can damage your computer or cause other harm."
+msgstr ""
+
+#. TRANSLATORS: too many packages to list each one
+#: ../src/pk-polkit-action-lookup.c:274
+#, fuzzy
+msgid "Many packages"
+msgstr "Aggiornamento pacchetti"
+
+#. TRANSLATORS: if the transaction is forced to install only trusted packages
+#: ../src/pk-polkit-action-lookup.c:334
+msgid "Only trusted"
+msgstr ""
+
 #~ msgid "You need to specify a search type, e.g. name"
 #~ msgstr "E' necessario specificare un criterio di ricerca, es. nome"
 
 #~ msgid "You need to specify a search term"
 #~ msgstr "E' necessario specificare un termine per la ricerca"
 
-#~ msgid "You need to specify a package or file to install"
-#~ msgstr "E' necessario specificare un pacchetto o un file da installare"
-
 #~ msgid "You need to specify a package to remove"
 #~ msgstr "E' necessario specificare un pacchetto da rimuovere"
 
@@ -1131,10 +1603,6 @@ msgstr "Errore nell'avvio di:"
 #~ msgstr "E' necessario specificare un pacchetto per trovarne i file"
 
 #, fuzzy
-#~ msgid "You need to specify a list file to create"
-#~ msgstr "E' necessario specificare un pacchetto da rimuovere"
-
-#, fuzzy
 #~ msgid "You need to specify a list file to open"
 #~ msgstr "E' necessario specificare un termine per la ricerca"
 
diff --git a/po/kn.po b/po/kn.po
index 6c1ea2e..b0cd4bb 100644
--- a/po/kn.po
+++ b/po/kn.po
@@ -6,8 +6,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: packagekit.master.kn\n"
-"Report-Msgid-Bugs-To: https://bugs.freedesktop.org/enter_bug.cgi?product=PackageKit&component=General\n"
-"POT-Creation-Date: 2009-05-27 15:24+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-08-24 11:06+0100\n"
 "PO-Revision-Date: 2009-06-15 14:37+0530\n"
 "Last-Translator: Shankar Prasad <svenkate at redhat.com>\n"
 "Language-Team: Kannada <en at li.org>\n"
@@ -18,230 +18,264 @@ msgstr ""
 "Plural-Forms:  nplurals=2; plural=(n != 1);\n"
 
 #. TRANSLATORS: this is an atomic transaction
-#: ../client/pk-console.c:234
+#: ../client/pk-console.c:235
 msgid "Transaction"
 msgstr "ವ್ಯವಹಾರ"
 
 #. TRANSLATORS: this is the time the transaction was started in system timezone
-#: ../client/pk-console.c:236
+#: ../client/pk-console.c:237
 msgid "System time"
 msgstr "ಗಣಕದ ಸಮಯ"
 
 #. TRANSLATORS: this is if the transaction succeeded or not
-#: ../client/pk-console.c:238
+#: ../client/pk-console.c:239
 msgid "Succeeded"
 msgstr "ಯಶಸ್ವಿಯಾಗಿದೆ"
 
 #. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:238 ../client/pk-console.c:405
+#: ../client/pk-console.c:239 ../client/pk-console.c:406
 msgid "True"
 msgstr "ಸತ್ಯ"
 
-#: ../client/pk-console.c:238 ../client/pk-console.c:405
+#: ../client/pk-console.c:239 ../client/pk-console.c:406
 msgid "False"
 msgstr "ಅಸತ್ಯ"
 
 #. TRANSLATORS: this is the transactions role, e.g. "update-system"
-#: ../client/pk-console.c:240
+#. TRANSLATORS: the trasaction role, e.g. update-system
+#: ../client/pk-console.c:241 ../src/pk-polkit-action-lookup.c:327
 msgid "Role"
 msgstr "ಪಾತ್ರ"
 
 #. TRANSLATORS: this is The duration of the transaction
-#: ../client/pk-console.c:245
+#: ../client/pk-console.c:246
 msgid "Duration"
 msgstr "ಕಾಲಾವಧಿ"
 
-#: ../client/pk-console.c:245
+#: ../client/pk-console.c:246
 msgid "(seconds)"
 msgstr "(ಸೆಕೆಂಡುಗಳು)"
 
 #. TRANSLATORS: this is The command line used to do the action
-#: ../client/pk-console.c:249
+#. TRANSLATORS: the command line of the thing that wants the authentication
+#: ../client/pk-console.c:250 ../src/pk-polkit-action-lookup.c:341
 msgid "Command line"
 msgstr "ಆಜ್ಞಾ ಸಾಲು"
 
 #. TRANSLATORS: this is the user ID of the user that started the action
-#: ../client/pk-console.c:251
+#: ../client/pk-console.c:252
 msgid "User ID"
 msgstr "ಬಳಕೆದಾರ ID"
 
 #. TRANSLATORS: this is the username, e.g. hughsie
-#: ../client/pk-console.c:258
+#: ../client/pk-console.c:259
 msgid "Username"
 msgstr "ಬಳಕೆದಾರ ಹೆಸರು"
 
 #. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
-#: ../client/pk-console.c:262
+#: ../client/pk-console.c:263
 msgid "Real name"
 msgstr "ನಿಜವಾದ ಹೆಸರು"
 
-#: ../client/pk-console.c:270
+#: ../client/pk-console.c:271
 msgid "Affected packages:"
 msgstr "ಪರಿಣಾಮ ಬೀರಲ್ಪಡುವ ಪ್ಯಾಕೇಜಿಗಳು:"
 
-#: ../client/pk-console.c:272
+#: ../client/pk-console.c:273
 msgid "Affected packages: None"
 msgstr "ಪರಿಣಾಮ ಬೀರಲ್ಪಡುವ ಪ್ಯಾಕೇಜಿಗಳು: ಯಾವುದೂ ಇಲ್ಲ"
 
 #. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:297
+#: ../client/pk-console.c:298
 msgid "Distribution"
 msgstr "ವಿತರಣೆ"
 
 #. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:299
+#: ../client/pk-console.c:300
 msgid "Type"
 msgstr "ಬಗೆ"
 
 #. TRANSLATORS: this is any summary text describing the upgrade
 #. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:301 ../client/pk-console.c:324
+#: ../client/pk-console.c:302 ../client/pk-console.c:325
 msgid "Summary"
 msgstr "ಸಾರಾಂಶ"
 
 #. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:313
+#: ../client/pk-console.c:314
 msgid "Category"
 msgstr "ಪಂಗಡ"
 
 #. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:315
+#: ../client/pk-console.c:316
 msgid "ID"
 msgstr "ID"
 
 #. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:318
+#: ../client/pk-console.c:319
 msgid "Parent"
 msgstr "ಮೂಲ"
 
 #. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:321
+#: ../client/pk-console.c:322
 msgid "Name"
 msgstr "ಹೆಸರು"
 
 #. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:327
+#: ../client/pk-console.c:328
 msgid "Icon"
 msgstr "ಚಿಹ್ನೆ"
 
 #. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:342
+#: ../client/pk-console.c:343
 msgid "Details about the update:"
 msgstr "ಅಪ್‌ಡೇಟ್‌ ಬಗೆಗಿನ ವಿವರಣೆಗಳು:"
 
 #. TRANSLATORS: details about the update, package name and version
-#: ../client/pk-console.c:344
+#. TRANSLATORS: title, the names of the packages that the method is processing
+#: ../client/pk-console.c:345 ../src/pk-polkit-action-lookup.c:352
+#, fuzzy
 msgid "Package"
-msgstr "ಪ್ಯಾಕೇಜ್"
+msgid_plural "Packages"
+msgstr[0] "ಪ್ಯಾಕೇಜ್"
+msgstr[1] "ಪ್ಯಾಕೇಜ್"
 
 #. TRANSLATORS: details about the update, any packages that this update updates
-#: ../client/pk-console.c:347
+#: ../client/pk-console.c:348
 msgid "Updates"
 msgstr "ಅಪ್‍ಡೇಟ್‍ಗಳು"
 
 #. TRANSLATORS: details about the update, any packages that this update obsoletes
-#: ../client/pk-console.c:351
+#: ../client/pk-console.c:352
 msgid "Obsoletes"
 msgstr "ಪ್ರಚಲಿತವಿಲ್ಲದವು"
 
 #. TRANSLATORS: details about the update, the vendor URLs
-#: ../client/pk-console.c:355
+#: ../client/pk-console.c:356
 msgid "Vendor"
 msgstr "ಒದಗಿಸಿದವರು"
 
 #. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:359
+#: ../client/pk-console.c:360
 msgid "Bugzilla"
 msgstr "ಬಗ್‌ಝಿಲ್ಲಾ"
 
 #. TRANSLATORS: details about the update, the CVE URLs
-#: ../client/pk-console.c:363
+#: ../client/pk-console.c:364
 msgid "CVE"
 msgstr "CVE"
 
 #. TRANSLATORS: details about the update, if the package requires a restart
-#: ../client/pk-console.c:367
+#: ../client/pk-console.c:368
 msgid "Restart"
 msgstr "ಮರಳಿ ಆರಂಭಿಸು"
 
 #. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:371
+#: ../client/pk-console.c:372
 msgid "Update text"
 msgstr "ಪಠ್ಯವನ್ನು ಅಪ್‌ಡೇಟ್‌ ಮಾಡಿ"
 
 #. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:375
+#: ../client/pk-console.c:376
 msgid "Changes"
 msgstr "ಬದಲಾವಣೆಗಳು"
 
 #. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:379
+#: ../client/pk-console.c:380
 msgid "State"
 msgstr "ಸ್ಥಿತಿ"
 
 #. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:384
+#: ../client/pk-console.c:385
 msgid "Issued"
 msgstr "ಒದಗಿಸಲಾದವರು"
 
 #. TRANSLATORS: details about the update, date the update was updated
-#: ../client/pk-console.c:389
+#: ../client/pk-console.c:390
 msgid "Updated"
 msgstr "ಅಪ್‌ಡೇಟ್‌ ಮಾಡಲಾಗಿದ್ದು"
 
-#: ../client/pk-console.c:476 ../client/pk-console.c:478
+#: ../client/pk-console.c:477 ../client/pk-console.c:479
 msgid "Percentage"
 msgstr "ಪ್ರತಿಶತ"
 
-#: ../client/pk-console.c:478
+#: ../client/pk-console.c:479
 msgid "Unknown"
 msgstr "ಗೊತ್ತಿರದ"
 
 #. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:529
+#: ../client/pk-console.c:521
 msgid "System restart required by:"
 msgstr "ಇದಕ್ಕಾಗಿ ಗಣಕವನ್ನು ಮರಳಿ ಆರಂಭಿಸುವ ಅಗತ್ಯವಿದೆ:"
 
 #. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:532
+#: ../client/pk-console.c:524
 msgid "Session restart required:"
 msgstr "ಇದಕ್ಕಾಗಿ ಅಧಿವೇಶವನವನ್ನು ಮರಳಿ ಆರಂಭಿಸುವ ಅಗತ್ಯವಿದೆ:"
 
+#. TRANSLATORS: a package requires the system to be restarted due to a security update
+#: ../client/pk-console.c:527
+#, fuzzy
+msgid "System restart (security) required by:"
+msgstr "ಇದಕ್ಕಾಗಿ ಗಣಕವನ್ನು ಮರಳಿ ಆರಂಭಿಸುವ ಅಗತ್ಯವಿದೆ:"
+
+#. TRANSLATORS: a package requires the session to be restarted due to a security update
+#: ../client/pk-console.c:530
+#, fuzzy
+msgid "Session restart (security) required:"
+msgstr "ಇದಕ್ಕಾಗಿ ಅಧಿವೇಶವನವನ್ನು ಮರಳಿ ಆರಂಭಿಸುವ ಅಗತ್ಯವಿದೆ:"
+
 #. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:535
+#: ../client/pk-console.c:533
 msgid "Application restart required by:"
 msgstr "ಇದಕ್ಕಾಗಿ ಅನ್ವಯವನ್ನು ಮರಳಿ ಆರಂಭಿಸುವ ಅಗತ್ಯವಿದೆ:"
 
-#. TRANSLATORS: a package needs to restart they system
-#: ../client/pk-console.c:572
+#. TRANSLATORS: a package needs to restart their system
+#: ../client/pk-console.c:588
 msgid "Please restart the computer to complete the update."
 msgstr "ಅಪ್‌ಡೇಟ್ ಅನ್ನು ಪೂರ್ಣಗೊಳಿಸಲು ದಯವಿಟ್ಟು ಗಣಕವನ್ನು ಮರಳಿ ಆರಂಭಿಸಿ."
 
 #. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:575
+#: ../client/pk-console.c:591
 msgid "Please logout and login to complete the update."
 msgstr "ಅಪ್‌ಡೇಟ್ ಅನ್ನು ಪೂರ್ಣಗೊಳಿಸಲು ದಯವಿಟ್ಟು ನಿರ್ಗಮಿಸಿ ನಂತರ ಮರಳಿ ಪ್ರವೇಶಿಸಿ."
 
 #. TRANSLATORS: a package needs to restart the application
-#: ../client/pk-console.c:578
+#: ../client/pk-console.c:594
 msgid "Please restart the application as it is being used."
 msgstr "ಅನ್ವಯವನ್ನು ಪ್ರಸಕ್ತ ಬಳಸಲಾಗುತ್ತಿರುವುದರಿಂದ ದಯವಿಟ್ಟು ಅದನ್ನು ಮರಳಿ ಆರಂಭಿಸಿ."
 
+#. TRANSLATORS: a package needs to restart their system (due to security)
+#: ../client/pk-console.c:597
+#, fuzzy
+msgid ""
+"Please restart the computer to complete the update as important security "
+"updates have been installed."
+msgstr "ಅಪ್‌ಡೇಟ್ ಅನ್ನು ಪೂರ್ಣಗೊಳಿಸಲು ದಯವಿಟ್ಟು ಗಣಕವನ್ನು ಮರಳಿ ಆರಂಭಿಸಿ."
+
+#. TRANSLATORS: a package needs to restart the session (due to security)
+#: ../client/pk-console.c:600
+#, fuzzy
+msgid ""
+"Please logout and login to complete the update as important security updates "
+"have been installed."
+msgstr "ಅಪ್‌ಡೇಟ್ ಅನ್ನು ಪೂರ್ಣಗೊಳಿಸಲು ದಯವಿಟ್ಟು ನಿರ್ಗಮಿಸಿ ನಂತರ ಮರಳಿ ಪ್ರವೇಶಿಸಿ."
+
 #. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:691
+#: ../client/pk-console.c:727
 #, c-format
 msgid "The package %s is already installed"
 msgstr "ಪ್ಯಾಕೇಜ್ %s ಅನ್ನು ಈಗಾಗಲೆ ಅನುಸ್ಥಾಪಿಸಲಾಗಿದೆ"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:699
+#: ../client/pk-console.c:735
 #, c-format
 msgid "The package %s could not be installed: %s"
 msgstr "ಪ್ಯಾಕೇಜ್ %s ಅನ್ನು ಅನುಸ್ಥಾಪಿಸಲಾಗಿಲ್ಲ: %s"
 
 #. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
-#: ../client/pk-console.c:724 ../client/pk-console.c:751
-#: ../client/pk-console.c:847 ../client/pk-console.c:964
+#: ../client/pk-console.c:760 ../client/pk-console.c:783
+#: ../client/pk-console.c:879 ../client/pk-console.c:996
 #: ../client/pk-tools-common.c:62 ../client/pk-tools-common.c:81
 #: ../client/pk-tools-common.c:89
 #, c-format
@@ -249,399 +283,406 @@ msgid "Internal error: %s"
 msgstr "ಆಂತರಿಕ ದೋಷ: %s"
 
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:732 ../client/pk-console.c:1360
+#: ../client/pk-console.c:768 ../client/pk-console.c:1392
 #, c-format
 msgid "This tool could not install the packages: %s"
 msgstr "ಪ್ಯಾಕೇಜುಗಳನ್ನು ಅನುಸ್ಥಾಪಿಸಲು ಈ ಉಪಕರಣದಿಂದ ಸಾಧ್ಯವಾಗಿಲ್ಲ: %s"
 
 #. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:759
+#: ../client/pk-console.c:791
 #, c-format
 msgid "This tool could not install the files: %s"
 msgstr "ಕಡತಗಳನ್ನು ಅನುಸ್ಥಾಪಿಸಲು ಈ ಉಪಕರಣದಿಂದ ಸಾಧ್ಯವಾಗಿಲ್ಲ: %s"
 
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:815
+#: ../client/pk-console.c:847
 #, c-format
 msgid "This tool could not remove %s: %s"
 msgstr "%s ಅನ್ನು ತೆಗೆದು ಹಾಕಲು ಈ ಉಪಕರಣದಿಂದ ಸಾಧ್ಯವಾಗಿಲ್ಲ: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:838 ../client/pk-console.c:876
-#: ../client/pk-console.c:909
+#: ../client/pk-console.c:870 ../client/pk-console.c:908
+#: ../client/pk-console.c:941
 #, c-format
 msgid "This tool could not remove the packages: %s"
 msgstr "ಪ್ಯಾಕೇಜುಗಳನ್ನು ತೆಗೆದು ಹಾಕಲು ಈ ಉಪಕರಣದಿಂದ ಸಾಧ್ಯವಾಗಿಲ್ಲ: %s"
 
 #. TRANSLATORS: When removing, we might have to remove other dependencies
-#: ../client/pk-console.c:888
+#: ../client/pk-console.c:920
 msgid "The following packages have to be removed:"
 msgstr "ಈ ಕೆಳಗಿನ ಪ್ಯಾಕೇಜುಗಳನ್ನು ತೆಗೆದು ಹಾಕಬೇಕು:"
 
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:895
+#: ../client/pk-console.c:927
 msgid "Proceed removing additional packages?"
 msgstr "ಹೆಚ್ಚುವರಿ ಪ್ಯಾಕೇಜುಗಳನ್ನು ತೆಗೆದು ಹಾಕುವುದನ್ನು ಮುಂದುವರೆಸುವುದೆ?"
 
 #. TRANSLATORS: We did not remove any packages
-#: ../client/pk-console.c:900
+#: ../client/pk-console.c:932
 msgid "The package removal was canceled!"
 msgstr "ಪ್ಯಾಕೇಜನ್ನು ತೆಗೆದುಹಾಕುವಿಕೆಯನ್ನು ರದ್ದುಗೊಳಿಸಲಾಗಿದೆ!"
 
 #. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:941
+#: ../client/pk-console.c:973
 #, c-format
 msgid "This tool could not download the package %s as it could not be found"
-msgstr "ಪ್ಯಾಕೇಜ್ %s ಅನ್ನು ಡೌನ್‌ಲೋಡ್ ಮಾಡಲು ಈ ಉಪಕರಣದಿಂದ ಸಾಧ್ಯವಾಗಿಲ್ಲ ಏಕೆಂದರೆ ಅದು ಕಂಡು ಬಂದಿಲ್ಲ"
+msgstr ""
+"ಪ್ಯಾಕೇಜ್ %s ಅನ್ನು ಡೌನ್‌ಲೋಡ್ ಮಾಡಲು ಈ ಉಪಕರಣದಿಂದ ಸಾಧ್ಯವಾಗಿಲ್ಲ ಏಕೆಂದರೆ ಅದು ಕಂಡು ಬಂದಿಲ್ಲ"
 
 #. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:972
+#: ../client/pk-console.c:1004
 #, c-format
 msgid "This tool could not download the packages: %s"
 msgstr "ಪ್ಯಾಕೇಜುಗಳನ್ನು ಡೌನ್‌ಲೋಡ್ ಮಾಡಲು ಈ ಉಪಕರಣದಿಂದ ಸಾಧ್ಯವಾಗಿಲ್ಲ: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:999 ../client/pk-console.c:1008
+#: ../client/pk-console.c:1031 ../client/pk-console.c:1040
 #, c-format
 msgid "This tool could not update %s: %s"
 msgstr "%s ಅನ್ನು ಅಪ್‌ಡೇಟ್ ಮಾಡಲು ಈ ಉಪಕರಣದಿಂದ ಸಾಧ್ಯವಾಗಿಲ್ಲ: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1030 ../client/pk-console.c:1038
+#: ../client/pk-console.c:1062 ../client/pk-console.c:1070
 #, c-format
 msgid "This tool could not get the requirements for %s: %s"
 msgstr "%s ಗಾಗಿನ ಅವಶ್ಯಕತೆಗಳನ್ನು ಪಡೆದುಕೊಳ್ಳಲು ಈ ಉಪಕರಣದಿಂದ ಸಾಧ್ಯವಾಗಿಲ್ಲ: %s"
 
 #. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:1060 ../client/pk-console.c:1068
+#: ../client/pk-console.c:1092 ../client/pk-console.c:1100
 #, c-format
 msgid "This tool could not get the dependencies for %s: %s"
 msgstr "%s ಗಾಗಿನ ಅವಲಂಬನೆಗಳನ್ನು ಪಡೆದುಕೊಳ್ಳಲು ಈ ಉಪಕರಣದಿಂದ ಸಾಧ್ಯವಾಗಿಲ್ಲ: %s"
 
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:1090 ../client/pk-console.c:1098
+#: ../client/pk-console.c:1122 ../client/pk-console.c:1130
 #, c-format
 msgid "This tool could not get package details for %s: %s"
 msgstr "%s ಗಾಗಿನ ಪ್ಯಾಕೇಜಿನ ವಿವರಗಳನ್ನು ಪಡೆದುಕೊಳ್ಳಲು ಈ ಉಪಕರಣದಿಂದ ಸಾಧ್ಯವಾಗಿಲ್ಲ: %s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1120
+#: ../client/pk-console.c:1152
 #, c-format
 msgid "This tool could not find the files for %s: %s"
 msgstr "%s ಗಾಗಿನ ಕಡತದ ಪಟ್ಟಿಯನ್ನು ಕಂಡುಕೊಳ್ಳಲು ಈ ಉಪಕರಣದಿಂದ ಸಾಧ್ಯವಾಗಿಲ್ಲ: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1128
+#: ../client/pk-console.c:1160
 #, c-format
 msgid "This tool could not get the file list for %s: %s"
 msgstr "%s ಗಾಗಿನ ಕಡತದ ಪಟ್ಟಿಯನ್ನು ಪಡೆದುಕೊಳ್ಳಲು ಈ ಉಪಕರಣದಿಂದ ಸಾಧ್ಯವಾಗಿಲ್ಲ: %s"
 
 #. TRANSLATORS: There was an error getting the list of packages. The filename follows
-#: ../client/pk-console.c:1150
+#: ../client/pk-console.c:1182
 #, c-format
 msgid "File already exists: %s"
 msgstr "ಕಡತವು ಈಗಾಗಲೆ ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ: %s"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1155 ../client/pk-console.c:1211
-#: ../client/pk-console.c:1286
+#: ../client/pk-console.c:1187 ../client/pk-console.c:1243
+#: ../client/pk-console.c:1318
 msgid "Getting package list"
 msgstr "ಪ್ಯಾಕೇಜಿನ ಪಟ್ಟಿಯನ್ನು ಪಡೆಯಲಾಗುತ್ತಿದೆ"
 
 #. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1161 ../client/pk-console.c:1217
-#: ../client/pk-console.c:1292
+#: ../client/pk-console.c:1193 ../client/pk-console.c:1249
+#: ../client/pk-console.c:1324
 #, c-format
 msgid "This tool could not get package list: %s"
 msgstr "ಪ್ಯಾಕೇಜು ಪಟ್ಟಿಯನ್ನು ಪಡೆಯುವಲು ಈ ಉಪಕರಣದಿಂದ ಸಾಧ್ಯವಾಗಿಲ್ಲ: %s"
 
 #. TRANSLATORS: There was an error saving the list
-#: ../client/pk-console.c:1172
+#: ../client/pk-console.c:1204
 #, c-format
 msgid "Failed to save to disk"
 msgstr "ಡಿಸ್ಕಿಗೆ ಉಳಿಸುವಲ್ಲಿ ವಿಫಲಗೊಂಡಿದೆ"
 
 #. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1206 ../client/pk-console.c:1281
+#: ../client/pk-console.c:1238 ../client/pk-console.c:1313
 #, c-format
 msgid "File does not exist: %s"
 msgstr "ಕಡತವು ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲ: %s"
 
 #. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1238
+#: ../client/pk-console.c:1270
 msgid "Packages to add"
 msgstr "ಸೇರಿಸಬೇಕಿರುವ ಪ್ಯಾಕೇಜುಗಳು"
 
 #. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1246
+#: ../client/pk-console.c:1278
 msgid "Packages to remove"
 msgstr "ತೆಗೆದು ಹಾಕಬೇಕಿರುವ ಪ್ಯಾಕೇಜುಗಳು"
 
 #. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1314
+#: ../client/pk-console.c:1346
 #, c-format
 msgid "No new packages need to be installed"
 msgstr "ಯಾವುದೆ ಹೊಸ ಪ್ಯಾಕೇಜುಗಳನ್ನು ಅನುಸ್ಥಾಪಿಸಲಾಗುವುದಿಲ್ಲ"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1320
+#: ../client/pk-console.c:1352
 msgid "To install"
 msgstr "ಅನುಸ್ಥಾಪಿಸಲು"
 
 #. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1332
+#: ../client/pk-console.c:1364
 msgid "Searching for package: "
 msgstr "ಪ್ಯಾಕೇಜಿಗಾಗಿ ಹುಡುಕಲಾಗುತ್ತಿದೆ: "
 
 #. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1336
+#: ../client/pk-console.c:1368
 msgid "not found."
 msgstr "ಕಂಡುಬಂದಿಲ್ಲ."
 
 #. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1347
+#: ../client/pk-console.c:1379
 #, c-format
 msgid "No packages can be found to install"
 msgstr "ಅನುಸ್ಥಾಪಿಸಲು ಯಾವುದೆ ಪ್ಯಾಕೇಜುಗಳು ಕಂಡುಬಂದಿಲ್ಲ"
 
 #. TRANSLATORS: installing new packages from package list
-#: ../client/pk-console.c:1353
+#. TRANSLATORS: we are now installing the debuginfo packages we found earlier
+#: ../client/pk-console.c:1385
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:886
+#, c-format
 msgid "Installing packages"
 msgstr "ಪ್ಯಾಕೇಜುಗಳನ್ನು ಅನುಸ್ಥಾಪಿಸಲಾಗುತ್ತಿದೆ"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1389
+#: ../client/pk-console.c:1421
 #, c-format
 msgid "This tool could not find the update details for %s: %s"
 msgstr "%s ಗಾಗಿನ ಅಪ್‌ಡೇಟ್ ವಿವರಗಳನ್ನು ಕಂಡುಕೊಳ್ಳಲು ಈ ಉಪಕರಣದಿಂದ ಸಾಧ್ಯವಾಗಿಲ್ಲ: %s"
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1397
+#: ../client/pk-console.c:1429
 #, c-format
 msgid "This tool could not get the update details for %s: %s"
 msgstr "%s ಗಾಗಿನ ಅಪ್‌ಡೇಟ್ ವಿವರಗಳನ್ನು ಪಡೆದುಕೊಳ್ಳಲು ಈ ಉಪಕರಣದಿಂದ ಸಾಧ್ಯವಾಗಿಲ್ಲ: %s"
 
 #. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
-#: ../client/pk-console.c:1443
+#: ../client/pk-console.c:1460
 msgid "Error:"
 msgstr "ದೋಷ:"
 
 #. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1457
+#: ../client/pk-console.c:1474
 msgid "Package description"
 msgstr "ಪ್ಯಾಕೇಜ್ ವಿವರಣೆ"
 
 #. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
-#: ../client/pk-console.c:1473
+#: ../client/pk-console.c:1490
 msgid "Message:"
 msgstr "ಸಂದೇಶ:"
 
 #. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1501
+#: ../client/pk-console.c:1518
 msgid "Package files"
 msgstr "ಪ್ಯಾಕೇಜ್ ಕಡತಗಳು"
 
 #. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1509
+#: ../client/pk-console.c:1526
 msgid "No files"
 msgstr "ಯಾವುದೆ ಕಡತಗಳಿಲ್ಲ"
 
 #. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1532
+#: ../client/pk-console.c:1549
 msgid "Repository signature required"
 msgstr "ರೆಪೋಸಿಟರಿ ಸಹಿಯ ಅಗತ್ಯವಿದೆ"
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1542
+#: ../client/pk-console.c:1559
 msgid "Do you accept this signature?"
 msgstr "ಸಹಿಯನ್ನು ನೀವು ಒಪ್ಪಿಕೊಳ್ಳುತ್ತೀರೆ?"
 
 #. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1546
+#: ../client/pk-console.c:1563
 msgid "The signature was not accepted."
 msgstr "ಸಹಿಯನ್ನು ಒಪ್ಪಿಕೊಳ್ಳಲಾಗಿಲ್ಲ."
 
 #. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1580
+#: ../client/pk-console.c:1597
 msgid "End user license agreement required"
 msgstr "ಎಂಡ್ ಯೂಸರ್ ಪರವಾನಗಿ ಒಪ್ಪಂದದ ಅಗತ್ಯವಿದೆ"
 
 #. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1587
+#: ../client/pk-console.c:1604
 msgid "Do you agree to this license?"
 msgstr "ನೀವು ಈ ಪರವಾನಗಿಯನ್ನು ಒಪ್ಪುತ್ತೀರೆ?"
 
 #. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1591
+#: ../client/pk-console.c:1608
 msgid "The license was refused."
 msgstr "ಪರವಾನಗಿಯನ್ನು ತಿರಸ್ಕರಿಸಲಾಗಿದೆ."
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1620
+#: ../client/pk-console.c:1637
 msgid "The daemon crashed mid-transaction!"
 msgstr "ವ್ಯವಹಾರದ ಮಧ್ಯದಲ್ಲಿ ಡೀಮನ್ ಕುಸಿದು ಹೋಗಿದೆ!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1673
+#: ../client/pk-console.c:1690
 msgid "PackageKit Console Interface"
 msgstr "PackageKit ಕನ್ಸೋಲ್ ಸಂಪರ್ಕಸಾಧನ"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1675
+#: ../client/pk-console.c:1692
 msgid "Subcommands:"
 msgstr "ಉಪಆಜ್ಞೆಗಳು:"
 
 #. TRANSLATORS: command line argument, if we should show debugging information
 #. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:1767 ../client/pk-generate-pack.c:185
-#: ../client/pk-monitor.c:125
-#: ../contrib/command-not-found/pk-command-not-found.c:520
-#: ../src/pk-main.c:211
+#: ../client/pk-console.c:1785 ../client/pk-generate-pack.c:185
+#: ../client/pk-monitor.c:128
+#: ../contrib/command-not-found/pk-command-not-found.c:616
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:550
+#: ../contrib/device-rebind/pk-device-rebind.c:293 ../src/pk-main.c:211
 msgid "Show extra debugging information"
 msgstr "ಹೆಚ್ಚಿನ ದೋಷ ನಿವಾರಣಾ ಮಾಹಿತಿಯನ್ನು ತೋರಿಸು"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1770 ../client/pk-monitor.c:127
+#: ../client/pk-console.c:1788 ../client/pk-monitor.c:130
 msgid "Show the program version and exit"
 msgstr "ಪ್ರೊಗ್ರಾಂ ಆವೃತ್ತಿಯನ್ನು ತೋರಿಸಿ ನಿರ್ಗಮಿಸು"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1773
+#: ../client/pk-console.c:1791
 msgid "Set the filter, e.g. installed"
 msgstr "ಫಿಲ್ಟರನ್ನು ಸಿದ್ಧಗೊಳಿಸಿ, ಉದಾ. ಅನುಸ್ಥಾಪಿಸಲಾದ"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1776
+#: ../client/pk-console.c:1794
 msgid "Exit without waiting for actions to complete"
 msgstr "ಕ್ರಿಯೆಗಳು ಪೂರ್ಣಗೊಳ್ಳುವವರೆಗೆ ಕಾಯದೆ ನಿರ್ಗಮಿಸು"
 
 #. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:1803
+#: ../client/pk-console.c:1821
 msgid "This tool could not connect to system DBUS."
 msgstr "ವ್ಯವಸ್ಥೆಯ DBUS ನೊಂದಿಗೆ ಸಂಪರ್ಕಸಾಧಿಸಲುಈ ಉಪಕರಣದಿಂದ ಸಾಧ್ಯವಾಗಿಲ್ಲ."
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1894
+#: ../client/pk-console.c:1911
 msgid "The filter specified was invalid"
 msgstr "ಸೂಚಿಸಲಾದ ಫಿಲ್ಟರ್ ಅಮಾನ್ಯವಾಗಿದೆ"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1912
+#: ../client/pk-console.c:1930
 msgid "A search type is required, e.g. name"
 msgstr "ಒಂದು ಹುಡುಕು ಬಗೆಯ ಅಗತ್ಯವಿದೆ, ಉದಾ. ಹೆಸರು"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1918 ../client/pk-console.c:1926
-#: ../client/pk-console.c:1934 ../client/pk-console.c:1942
+#: ../client/pk-console.c:1937 ../client/pk-console.c:1946
+#: ../client/pk-console.c:1955 ../client/pk-console.c:1964
 msgid "A search term is required"
 msgstr "ಒಂದು ಹುಡುಕು ಪದದ ಅಗತ್ಯವಿದೆ"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1948
+#: ../client/pk-console.c:1971
 msgid "Invalid search type"
 msgstr "ಅಮಾನ್ಯವಾದ ಹುಡುಕು ಬಗೆ"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1954
+#: ../client/pk-console.c:1977
 msgid "A package name or filename to install is required"
 msgstr "ಅನುಸ್ಥಾಪಿಸಲು ಒಂದು ಪ್ಯಾಕೇಜಿನ ಹೆಸರು ಅಥವ ಕಡತದ ಹೆಸರಿನ ಅಗತ್ಯವಿದೆ"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1962
+#: ../client/pk-console.c:1986
 msgid "A type, key_id and package_id are required"
 msgstr "ಬಗೆ, key_id ಹಾಗು package_id ಯ ಅಗತ್ಯವಿದೆ"
 
 #. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:1970
+#: ../client/pk-console.c:1995
 msgid "A package name to remove is required"
 msgstr "ತೆಗೆದು ಹಾಕಬೇಕಿರುವ ಪ್ಯಾಕೇಜಿನ ಹೆಸರಿನ ಅಗತ್ಯವಿದೆ"
 
 #. TRANSLATORS: the user did not specify anything about what to download or where
-#: ../client/pk-console.c:1977
-msgid "A destination directory and then the package names to download are required"
+#: ../client/pk-console.c:2003
+#, fuzzy
+msgid "A destination directory and the package names to download are required"
 msgstr "ಒಂದು ನಿರ್ದೇಶಿತ ಕೋಶ ಹಾಗು ಡೌನ್‌ಲೋಡ್ ಮಾಡಲು ಪ್ಯಾಕೇಜಿನ ಹೆಸರುಗಳ ಅಗತ್ಯವಿದೆ"
 
 #. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:1983
+#: ../client/pk-console.c:2010
 msgid "Directory not found"
 msgstr "ಕೋಶವು ಕಂಡುಬಂದಿಲ್ಲ"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1990
+#: ../client/pk-console.c:2018
 msgid "A licence identifier (eula-id) is required"
 msgstr "ಪರವಾನಗಿ ಪತ್ತೆಗಾರನ (eula-id) ಅಗತ್ಯವಿದೆ"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1999
+#: ../client/pk-console.c:2028
 msgid "A transaction identifier (tid) is required"
 msgstr "ವ್ಯವಹಾರ ಪತ್ತೆಗಾರನ (tid) ಅಗತ್ಯವಿದೆ"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:2015
+#: ../client/pk-console.c:2045
 msgid "A package name to resolve is required"
 msgstr "ಪರಿಹರಿಸಬೇಕಿರುವ ಪ್ಯಾಕೇಜಿನ ಹೆಸರಿನ ಅಗತ್ಯವಿದೆ"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:2023 ../client/pk-console.c:2031
+#: ../client/pk-console.c:2054 ../client/pk-console.c:2063
 msgid "A repository name is required"
 msgstr "ಒಂದು ರೆಪೋಸಿಟರಿ ಹೆಸರಿನ ಅಗತ್ಯವಿದೆ"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2039
+#: ../client/pk-console.c:2072
 msgid "A repo name, parameter and value are required"
 msgstr "ಒಂದು ರೆಪೊ ಹೆಸರು, ನಿಯತಾಂಕ ಹಾಗು ಮೌಲ್ಯದ ಅಗತ್ಯವಿದೆ"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:2052
+#: ../client/pk-console.c:2086
 msgid "An action, e.g. 'update-system' is required"
 msgstr "ಒಂದು ಕ್ರಿಯೆಯ, ಉದಾ. 'update-system' ಅಗತ್ಯವಿದೆ"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:2058
+#: ../client/pk-console.c:2093
 msgid "A correct role is required"
 msgstr "ಸೂಕ್ತವಾದ ಪಾತ್ರದ ಅಗತ್ಯವಿದೆ"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2064
+#: ../client/pk-console.c:2100
 msgid "Failed to get the time since this action was last completed"
-msgstr "ಈ ಕಾರ್ಯವನ್ನು ಕೊನೆಯ ಬಾರಿಗೆ ಪೂರ್ಣಗೊಳಿಸದ ನಂತರ ಸಮಯವನ್ನು ಪಡೆದುಕೊಳ್ಳುವಲ್ಲಿ ವಿಫಲಗೊಂಡಿದೆ"
+msgstr ""
+"ಈ ಕಾರ್ಯವನ್ನು ಕೊನೆಯ ಬಾರಿಗೆ ಪೂರ್ಣಗೊಳಿಸದ ನಂತರ ಸಮಯವನ್ನು ಪಡೆದುಕೊಳ್ಳುವಲ್ಲಿ ವಿಫಲಗೊಂಡಿದೆ"
 
 #. TRANSLATORS: The user did not provide a package name
 #. TRANSLATORS: This is when the user fails to supply the package name
-#: ../client/pk-console.c:2073 ../client/pk-console.c:2084
-#: ../client/pk-console.c:2092 ../client/pk-console.c:2108
-#: ../client/pk-console.c:2116 ../client/pk-generate-pack.c:241
+#: ../client/pk-console.c:2110 ../client/pk-console.c:2122
+#: ../client/pk-console.c:2131 ../client/pk-console.c:2149
+#: ../client/pk-console.c:2158 ../client/pk-generate-pack.c:241
 msgid "A package name is required"
 msgstr "ಒಂದು ಪ್ಯಾಕೇಜಿನ ಹೆಸರಿನ ಅಗತ್ಯವಿದೆ"
 
 #. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:2100
+#: ../client/pk-console.c:2140
 msgid "A package provide string is required"
 msgstr "ಪ್ಯಾಕೇಜನ್ನು ಒದಗಿಸುವ ವಾಕ್ಯದ ಅಗತ್ಯವಿದೆ"
 
 #. TRANSLATORS: The user didn't specify a filename to create as a list
-#: ../client/pk-console.c:2124
+#: ../client/pk-console.c:2167
 msgid "A list file name to create is required"
 msgstr "ರಚಿಸಬೇಕಿರುವ ಕಡತದ ಹೆಸರಿನ ಒಂದು ಪಟ್ಟಿಯ ಅಗತ್ಯವಿದೆ"
 
 #. TRANSLATORS: The user didn't specify a filename to open as a list
-#: ../client/pk-console.c:2133 ../client/pk-console.c:2142
+#: ../client/pk-console.c:2177 ../client/pk-console.c:2187
 msgid "A list file to open is required"
 msgstr "ತೆರೆಯಬೇಕಿರುವ ಕಡತದ ಒಂದು ಪಟ್ಟಿಯ ಅಗತ್ಯವಿದೆ"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2195
+#: ../client/pk-console.c:2241
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "ಆಯ್ಕೆ '%s' ಯು ಬೆಂಬಲಿತವಾಗಿಲ್ಲ"
 
 #. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2208
+#: ../client/pk-console.c:2254
 msgid "Incorrect privileges for this operation"
 msgstr "ಈ ಕಾರ್ಯಕ್ಕಾಗಿನ ಸರಿಯಲ್ಲದ ಸವಲತ್ತುಗಳು"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2211
+#: ../client/pk-console.c:2257
 msgid "Command failed"
 msgstr "ಆಜ್ಞೆಯು ವಿಫಲಗೊಂಡಿದೆ"
 
@@ -667,7 +708,8 @@ msgstr "ಹೊರತು ಪಡಿಸಲು ಅವಲಂಬನೆಗಳ ಕಡತ
 
 #. TRANSLATORS: the output location
 #: ../client/pk-generate-pack.c:191
-msgid "The output file or directory (the current directory is used if ommitted)"
+msgid ""
+"The output file or directory (the current directory is used if ommitted)"
 msgstr "ಔಟ್‌ಪುಟ್ ಕಡತ ಅಥವ ಕೋಶ (ಹೊರತುಪಡಿಸಿದರೆ ಪ್ರಸಕ್ತ ಕೋಶವನ್ನು ಬಳಸಲಾಗುವುದು)"
 
 #. TRANSLATORS: put a list of packages in the pack
@@ -706,7 +748,9 @@ msgstr "ಪ್ಯಾಕೇಜ್ ವ್ಯವಸ್ಥಾಪಕ ಈ ಬಗೆಯ
 msgid ""
 "Service packs cannot be created as PackageKit was not built with libarchive "
 "support."
-msgstr "PackageKit ಅನ್ನು libarchive ಬೆಂಬಲದೊಂದಿಗೆ ನಿರ್ಮಿಸದೆ ಇರುವ ಕಾರಣ ಸರ್ವಿಸ್ ಪ್ಯಾಕ್‌ಗಳನ್ನು ನಿರ್ಮಿಸಲು ಸಾಧ್ಯವಿರುವುದಿಲ್ಲ."
+msgstr ""
+"PackageKit ಅನ್ನು libarchive ಬೆಂಬಲದೊಂದಿಗೆ ನಿರ್ಮಿಸದೆ ಇರುವ ಕಾರಣ ಸರ್ವಿಸ್ ಪ್ಯಾಕ್‌ಗಳನ್ನು "
+"ನಿರ್ಮಿಸಲು ಸಾಧ್ಯವಿರುವುದಿಲ್ಲ."
 
 #. TRANSLATORS: the user specified an absolute path, but didn't get the extension correct
 #: ../client/pk-generate-pack.c:291
@@ -762,10 +806,14 @@ msgid "Failed to create '%s': %s"
 msgstr "'%s' ಅನ್ನು ರಚಿಸುವಲ್ಲಿ ವಿಫಲಗೊಂಡಿದೆ: %s"
 
 #. TRANSLATORS: this is a program that monitors PackageKit
-#: ../client/pk-monitor.c:143
+#: ../client/pk-monitor.c:146
 msgid "PackageKit Monitor"
 msgstr "PackageKit ಮೇಲ್ವಿಚಾರಕ"
 
+#: ../client/pk-monitor.c:183
+msgid "Cannot show the list of transactions"
+msgstr ""
+
 #. TRANSLATORS: The package was not found in any software sources
 #: ../client/pk-tools-common.c:118
 #, c-format
@@ -787,128 +835,433 @@ msgstr "ದಯವಿಟ್ಟು ಸರಿಯಾದ ಪ್ಯಾಕೇಜನ್à
 msgid "Please enter a number from 1 to %i: "
 msgstr "1 ರಿಂದ %i ಒಳಗಿನ ಒಂದು ಅಂಕೆಯನ್ನು ನಮೂದಿಸಿ: "
 
+#. TRANSLATORS: when we are getting data from the daemon
+#: ../contrib/browser-plugin/pk-plugin-install.c:466
+msgid "Getting package information..."
+msgstr "ಪ್ಯಾಕೇಜಿನ ಮಾಹಿತಿಯನ್ನು ಪಡೆಯಲಾಗುತ್ತಿದೆ..."
+
+#. TRANSLATORS: run an applicaiton
+#: ../contrib/browser-plugin/pk-plugin-install.c:472
+#, c-format
+msgid "Run %s"
+msgstr "%s ಅನ್ನು ಚಲಾಯಿಸು"
+
+#. TRANSLATORS: show the installed version of a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:478
+msgid "Installed version"
+msgstr "ಅನುಸ್ಥಾಪಿತಗೊಂಡ ಆವೃತ್ತಿ"
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:486
+#, c-format
+msgid "Run version %s now"
+msgstr "ಆವೃತ್ತಿ %s ಅನ್ನು ಈಗಲೆ ಚಲಾಯಿಸು"
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:492
+msgid "Run now"
+msgstr "ಈಗಲೆ ಚಲಾಯಿಸು"
+
+#. TRANSLATORS: update to a new version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:498
+#, c-format
+msgid "Update to version %s"
+msgstr "ಆವೃತ್ತಿ %s ಗೆ ಅಪ್‌ಡೇಟ್‌ ಮಾಡಿ"
+
+#. TRANSLATORS: To install a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:504
+#, c-format
+msgid "Install %s now"
+msgstr "%s ಅನ್ನು ಈಗಲೆ ಅನುಸ್ಥಾಪಿಸು"
+
+#. TRANSLATORS: the version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:507
+msgid "Version"
+msgstr "ಆವೃತ್ತಿ"
+
+#. TRANSLATORS: noting found, so can't install
+#: ../contrib/browser-plugin/pk-plugin-install.c:512
+msgid "No packages found for your system"
+msgstr "ನಿಮ್ಮ ಗಣಕದಲ್ಲಿ ಯಾವುದೆ ಪ್ಯಾಕೇಜು ಕಂಡಬಂದಿಲ್ಲ"
+
+#. TRANSLATORS: package is being installed
+#: ../contrib/browser-plugin/pk-plugin-install.c:517
+msgid "Installing..."
+msgstr "ಅನುಸ್ಥಾಪಿಸಲಾಗುತ್ತಿದೆ..."
+
+#. TRANSLATORS: downloading repo data so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:349
+msgid "Downloading details about the software sources."
+msgstr ""
+
+#. TRANSLATORS: downloading file lists so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:353
+msgid "Downloading filelists (this may take some time to complete)."
+msgstr ""
+
+#. TRANSLATORS: waiting for native lock
+#: ../contrib/command-not-found/pk-command-not-found.c:357
+#, fuzzy
+msgid "Waiting for package manager lock."
+msgstr "ಪ್ಯಾಕೇಜಿನ ಹೆಸರನ್ನು ಪತ್ತೆ ಮಾಡಲಾಗುತ್ತಿದೆ."
+
+#. TRANSLATORS: loading package cache so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:361
+#, fuzzy
+msgid "Loading list of packages."
+msgstr "ಪ್ಯಾಕೇಜುಗಳನ್ನು ಡೌನ್-ಲೋಡ್ ಮಾಡಲಾಗುತ್ತಿದೆ"
+
 #. TRANSLATORS: we failed to find the package, this shouldn't happen
-#: ../contrib/command-not-found/pk-command-not-found.c:371
+#: ../contrib/command-not-found/pk-command-not-found.c:420
 msgid "Failed to search for file"
 msgstr "ಕಡತಕ್ಕಾಗಿ ಹುಡುಕುವಲ್ಲಿ ವಿಫಲಗೊಂಡಿದೆ"
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:495
+#: ../contrib/command-not-found/pk-command-not-found.c:557
 msgid "Failed to launch:"
 msgstr "ಆರಂಭಿಸುವಲ್ಲಿ ವಿಫಲಗೊಂಡಿದೆ:"
 
 #. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/command-not-found/pk-command-not-found.c:536
+#: ../contrib/command-not-found/pk-command-not-found.c:632
 msgid "PackageKit Command Not Found"
 msgstr "PackageKit ಆಜ್ಞೆಯು ಕಂಡುಬಂದಿಲ್ಲ"
 
 #. TRANSLATORS: the prefix of all the output telling the user why it's not executing
-#: ../contrib/command-not-found/pk-command-not-found.c:559
+#: ../contrib/command-not-found/pk-command-not-found.c:658
 msgid "Command not found."
 msgstr "ಆಜ್ಞೆಯು ಕಂಡುಬಂದಿಲ್ಲ."
 
 #. TRANSLATORS: tell the user what we think the command is
-#: ../contrib/command-not-found/pk-command-not-found.c:566
+#: ../contrib/command-not-found/pk-command-not-found.c:665
 msgid "Similar command is:"
 msgstr "ಹೋಲುವ ಆಜ್ಞೆ:"
 
 #. TRANSLATORS: Ask the user if we should run the similar command
-#: ../contrib/command-not-found/pk-command-not-found.c:575
+#: ../contrib/command-not-found/pk-command-not-found.c:674
 msgid "Run similar command:"
 msgstr "ಇದನ್ನು ಹೋಲುವ ಆಜ್ಞೆಯನ್ನು ಚಲಾಯಿಸಿ:"
 
 #. TRANSLATORS: show the user a list of commands that they could have meant
 #. TRANSLATORS: show the user a list of commands we could run
-#: ../contrib/command-not-found/pk-command-not-found.c:587
-#: ../contrib/command-not-found/pk-command-not-found.c:596
+#: ../contrib/command-not-found/pk-command-not-found.c:686
+#: ../contrib/command-not-found/pk-command-not-found.c:695
 msgid "Similar commands are:"
 msgstr "ಹೋಲುವ ಆಜ್ಞೆಗಳು:"
 
 #. TRANSLATORS: ask the user to choose a file to run
-#: ../contrib/command-not-found/pk-command-not-found.c:603
+#: ../contrib/command-not-found/pk-command-not-found.c:702
 msgid "Please choose a command to run"
 msgstr "ದಯವಿಟ್ಟು ಚಲಾಯಿಸಲು ಒಂದು ಆಜ್ಞೆಯನ್ನು ಆರಿಸಿ"
 
 #. TRANSLATORS: tell the user what package provides the command
-#: ../contrib/command-not-found/pk-command-not-found.c:618
+#: ../contrib/command-not-found/pk-command-not-found.c:721
 msgid "The package providing this file is:"
 msgstr "ಈ ಕಡತವನ್ನು ಒದಗಿಸುವ ಪ್ಯಾಕೇಜ್:"
 
 #. TRANSLATORS: as the user if we want to install a package to provide the command
-#: ../contrib/command-not-found/pk-command-not-found.c:623
+#: ../contrib/command-not-found/pk-command-not-found.c:726
 #, c-format
 msgid "Install package '%s' to provide command '%s'?"
 msgstr "ಪ್ಯಾಕೇಜ್ '%s' ಅನ್ನು ಆಜ್ಞೆ '%s' ಅನ್ನು ಒದಗಿಸುವಂತೆ ಅನುಸ್ಥಾಪಿಸಬೇಕೆ?"
 
 #. TRANSLATORS: Show the user a list of packages that provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:644
+#: ../contrib/command-not-found/pk-command-not-found.c:747
 msgid "Packages providing this file are:"
 msgstr "ಈ ಕಡತವನ್ನು ಒದಗಿಸುವ ಪ್ಯಾಕೇಜುಗಳೆಂದರೆ:"
 
 #. TRANSLATORS: Show the user a list of packages that they can install to provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:653
+#: ../contrib/command-not-found/pk-command-not-found.c:756
 msgid "Suitable packages are:"
 msgstr "ಸೂಕ್ತವಾದ ಪ್ಯಾಕೇಜುಗಳೆಂದರೆ:"
 
 #. get selection
 #. TRANSLATORS: ask the user to choose a file to install
-#: ../contrib/command-not-found/pk-command-not-found.c:661
+#: ../contrib/command-not-found/pk-command-not-found.c:764
 msgid "Please choose a package to install"
 msgstr "ಅನುಸ್ಥಾಪಿಸಲು ದಯವಿಟ್ಟು ಒಂದು ಪ್ಯಾಕೇಜನ್ನು ಆರಿಸಿ"
 
-#. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/src/contents.cpp:298
-msgid "Getting package information..."
-msgstr "ಪ್ಯಾಕೇಜಿನ ಮಾಹಿತಿಯನ್ನು ಪಡೆಯಲಾಗುತ್ತಿದೆ..."
+#. TRANSLATORS: we are starting to install the packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:187
+#, fuzzy
+msgid "Starting install"
+msgstr "ಅನುಸ್ಥಾಪಿಸಲು"
 
-#. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/src/contents.cpp:304
+#. TRANSLATORS: we couldn't find the package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:397
+#, fuzzy, c-format
+msgid "Failed to find the package %s, or already installed: %s"
+msgstr "ಪ್ಯಾಕೇಜ್ %s ಅನ್ನು ಈಗಾಗಲೆ ಅನುಸ್ಥಾಪಿಸಲಾಗಿದೆ"
+
+#. command line argument, simulate what would be done, but don't actually do it
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:553
+msgid ""
+"Don't actually install any packages, only simulate what would be installed"
+msgstr ""
+
+#. command line argument, do we skip packages that depend on the ones specified
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:556
+msgid "Do not install dependencies of the core packages"
+msgstr ""
+
+#. command line argument, do we operate quietly
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:559
+msgid "Do not display information or progress"
+msgstr ""
+
+#. TRANSLATORS: tool that gets called when the command is not found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:577
+#, fuzzy
+msgid "PackageKit Debuginfo Installer"
+msgstr "PackageKit ಕನ್ಸೋಲ್ ಸಂಪರ್ಕಸಾಧನ"
+
+#. TRANSLATORS: the use needs to specify a list of package names on the command line
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:589
+#, fuzzy, c-format
+msgid "ERROR: Specify package names to install."
+msgstr "ಯಾವುದೆ ಹೊಸ ಪ್ಯಾಕೇಜುಗಳನ್ನು ಅನುಸ್ಥಾಪಿಸಲಾಗುವುದಿಲ್ಲ"
+
+#. TRANSLATORS: we are getting the list of repositories
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:623
+#, fuzzy, c-format
+msgid "Getting sources list"
+msgstr "ಪ್ಯಾಕೇಜಿನ ಪಟ್ಟಿಯನ್ನು ಪಡೆಯಲಾಗುತ್ತಿದೆ"
+
+#. TRANSLATORS: all completed 100%
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:641
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:681
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:716
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:800
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:844
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:911
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:955
 #, c-format
-msgid "Run %s"
-msgstr "%s ಅನ್ನು ಚಲಾಯಿಸು"
+msgid "OK."
+msgstr ""
 
-#. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/src/contents.cpp:310
-msgid "Installed version"
-msgstr "ಅನುಸ್ಥಾಪಿತಗೊಂಡ ಆವೃತ್ತಿ"
+#. TRANSLATORS: tell the user what we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:644
+#, c-format
+msgid "Found %i enabled and %i disabled sources."
+msgstr ""
 
-#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/src/contents.cpp:318
+#. TRANSLATORS: we're finding repositories that match out pattern
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:651
 #, c-format
-msgid "Run version %s now"
-msgstr "ಆವೃತ್ತಿ %s ಅನ್ನು ಈಗಲೆ ಚಲಾಯಿಸು"
+msgid "Finding debugging sources"
+msgstr ""
 
-#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/src/contents.cpp:324
-msgid "Run now"
-msgstr "ಈಗಲೆ ಚಲಾಯಿಸು"
+#. TRANSLATORS: tell the user what we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:684
+#, c-format
+msgid "Found %i disabled debuginfo repos."
+msgstr ""
 
-#. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/src/contents.cpp:330
+#. TRANSLATORS: we're now enabling all the debug sources we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:691
 #, c-format
-msgid "Update to version %s"
-msgstr "ಆವೃತ್ತಿ %s ಗೆ ಅಪ್‌ಡೇಟ್‌ ಮಾಡಿ"
+msgid "Enabling debugging sources"
+msgstr ""
 
-#. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/src/contents.cpp:336
+#. TRANSLATORS: operation was not successful
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:701
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:785
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:829
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:896
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:940
+msgid "FAILED."
+msgstr ""
+
+#. TRANSLATORS: tell the user how many we enabled
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:719
 #, c-format
-msgid "Install %s now"
-msgstr "%s ಅನ್ನು ಈಗಲೆ ಅನುಸ್ಥಾಪಿಸು"
+msgid "Enabled %i debugging sources."
+msgstr ""
 
-#. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/src/contents.cpp:339
-msgid "Version"
-msgstr "ಆವೃತ್ತಿ"
+#. TRANSLATORS: we're now finding packages that match in all the repos
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:726
+#, fuzzy, c-format
+msgid "Finding debugging packages"
+msgstr "ಪ್ಯಾಕೇಜಿನ ಹೆಸರನ್ನು ಪತ್ತೆ ಮಾಡಲಾಗುತ್ತಿದೆ."
 
-#. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/src/contents.cpp:344
-msgid "No packages found for your system"
-msgstr "ನಿಮ್ಮ ಗಣಕದಲ್ಲಿ ಯಾವುದೆ ಪ್ಯಾಕೇಜು ಕಂಡಬಂದಿಲ್ಲ"
+#. TRANSLATORS: we couldn't find the package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:738
+#, fuzzy, c-format
+msgid "Failed to find the package %s: %s"
+msgstr "ಪ್ಯಾಕೇಜ್ '%s' ಅನ್ನು ಪತ್ತೆ ಮಾಡಲಾಗಲಿಲ್ಲ: %s"
 
-#. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/src/contents.cpp:349
-msgid "Installing..."
-msgstr "ಅನುಸ್ಥಾಪಿಸಲಾಗುತ್ತಿದೆ..."
+#. TRANSLATORS: we couldn't find the debuginfo package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:761
+#, fuzzy, c-format
+msgid "Failed to find the debuginfo package %s: %s"
+msgstr "ಪ್ಯಾಕೇಜ್ '%s' ಅನ್ನು ಪತ್ತೆ ಮಾಡಲಾಗಲಿಲ್ಲ: %s"
+
+#. TRANSLATORS: no debuginfo packages could be found to be installed
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:789
+#, fuzzy, c-format
+msgid "Found no packages to install."
+msgstr "ಯಾವುದೆ ಹೊಸ ಪ್ಯಾಕೇಜುಗಳನ್ನು ಅನುಸ್ಥಾಪಿಸಲಾಗುವುದಿಲ್ಲ"
+
+#. TRANSLATORS: tell the user we found some packages, and then list them
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:803
+#, fuzzy, c-format
+msgid "Found %i packages:"
+msgstr "ಪ್ಯಾಕೇಜುಗಳನ್ನು ಡೌನ್-ಲೋಡ್ ಮಾಡಲಾಗುತ್ತಿದೆ"
+
+#. TRANSLATORS: tell the user we are searching for deps
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:819
+#, c-format
+msgid "Finding packages that depend on these packages"
+msgstr ""
+
+#. TRANSLATORS: could not install, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:832
+#, fuzzy, c-format
+msgid "Could not find dependant packages: %s"
+msgstr "ಪ್ಯಾಕೇಜ್ '%s' ಅನ್ನು ಪತ್ತೆ ಮಾಡಲಾಗಲಿಲ್ಲ: %s"
+
+#. TRANSLATORS: tell the user we found some more packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:848
+#, c-format
+msgid "Found %i extra packages."
+msgstr ""
+
+#. TRANSLATORS: tell the user we found some more packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:852
+#, fuzzy, c-format
+msgid "No extra packages required."
+msgstr "ಒಂದು ಪ್ಯಾಕೇಜಿನ ಹೆಸರಿನ ಅಗತ್ಯವಿದೆ"
+
+#. TRANSLATORS: tell the user we found some packages (and deps), and then list them
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:861
+#, fuzzy, c-format
+msgid "Found %i packages to install:"
+msgstr "ಯಾವುದೆ ಹೊಸ ಪ್ಯಾಕೇಜುಗಳನ್ನು ಅನುಸ್ಥಾಪಿಸಲಾಗುವುದಿಲ್ಲ"
+
+#. TRANSLATORS: simulate mode is a testing mode where we quit before the action
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:874
+#, fuzzy, c-format
+msgid "Not installing packages in simulate mode"
+msgstr "ಪ್ಯಾಕೇಜುಗಳನ್ನು ಅನುಸ್ಥಾಪಿಸಲಾಗುತ್ತಿದೆ"
+
+#. TRANSLATORS: could not install, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:899
+#, fuzzy, c-format
+msgid "Could not install packages: %s"
+msgstr "ಪ್ಯಾಕೇಜುಗಳನ್ನು ಅನುಸ್ಥಾಪಿಸಲು ಈ ಉಪಕರಣದಿಂದ ಸಾಧ್ಯವಾಗಿಲ್ಲ: %s"
+
+#. TRANSLATORS: we are now disabling all debuginfo repos we previously enabled
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:931
+#, c-format
+msgid "Disabling sources previously enabled"
+msgstr ""
+
+#. TRANSLATORS: no debuginfo packages could be found to be installed, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:943
+#, c-format
+msgid "Could not disable the debugging sources: %s"
+msgstr ""
+
+#. TRANSLATORS: we disabled all the debugging repos that we enabled before
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:958
+#, c-format
+msgid "Disabled %i debugging sources."
+msgstr ""
+
+#. TRANSLATORS: couldn't open device to write
+#: ../contrib/device-rebind/pk-device-rebind.c:61
+#, fuzzy
+msgid "Failed to open file"
+msgstr "ಕಡತಕ್ಕಾಗಿ ಹುಡುಕುವಲ್ಲಿ ವಿಫಲಗೊಂಡಿದೆ"
+
+#. TRANSLATORS: could not write to the device
+#: ../contrib/device-rebind/pk-device-rebind.c:70
+#, fuzzy
+msgid "Failed to write to the file"
+msgstr "ಕಡತಕ್ಕಾಗಿ ಹುಡುಕುವಲ್ಲಿ ವಿಫಲಗೊಂಡಿದೆ"
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:110
+#: ../contrib/device-rebind/pk-device-rebind.c:147
+#, fuzzy
+msgid "Failed to write to device"
+msgstr "ಡಿಸ್ಕಿಗೆ ಉಳಿಸುವಲ್ಲಿ ವಿಫಲಗೊಂಡಿದೆ"
+
+#. TRANSLATORS: the device could not be found in sysfs
+#: ../contrib/device-rebind/pk-device-rebind.c:175
+#, fuzzy
+msgid "Device could not be found"
+msgstr "ಪ್ಯಾಕೇಜು ಕಂಡು ಬಂದಿಲ್ಲ"
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:202
+#, fuzzy
+msgid "Failed to unregister driver"
+msgstr "ಕೋಶವನ್ನು ನಿರ್ಮಿಸುವಲ್ಲಿ ವಿಫಲಗೊಂಡಿದೆ:"
+
+#. TRANSLATORS: we failed to bind the old driver
+#: ../contrib/device-rebind/pk-device-rebind.c:211
+#, fuzzy
+msgid "Failed to register driver"
+msgstr "ಕೋಶವನ್ನು ನಿರ್ಮಿಸುವಲ್ಲಿ ವಿಫಲಗೊಂಡಿದೆ:"
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:260
+#, fuzzy
+msgid "Device path not found"
+msgstr "ಕೋಶವು ಕಂಡುಬಂದಿಲ್ಲ"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:268
+msgid "Incorrect device path specified"
+msgstr ""
+
+#. command line argument, simulate what would be done, but don't actually do it
+#: ../contrib/device-rebind/pk-device-rebind.c:296
+msgid "Don't actually touch the hardware, only simulate what would be done"
+msgstr ""
+
+#. TRANSLATORS: command line option: a list of files to install
+#: ../contrib/device-rebind/pk-device-rebind.c:299
+msgid "Device paths"
+msgstr ""
+
+#. TRANSLATORS: tool that gets called when the device needs reloading after installing firmware
+#: ../contrib/device-rebind/pk-device-rebind.c:314
+#, fuzzy
+msgid "PackageKit Device Reloader"
+msgstr "PackageKit ಸರ್ವಿಸ್‌ ಪ್ಯಾಕ್"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:322
+msgid "You need to specify at least one valid device path"
+msgstr ""
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:332
+msgid "This script can only be used by the root user"
+msgstr ""
+
+#. TRANSLATORS: we're going to verify the path first
+#: ../contrib/device-rebind/pk-device-rebind.c:341
+msgid "Verifying device path"
+msgstr ""
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:346
+#, fuzzy
+msgid "Failed to verify device path"
+msgstr "ಕಡತಕ್ಕಾಗಿ ಹುಡುಕುವಲ್ಲಿ ವಿಫಲಗೊಂಡಿದೆ"
+
+#. TRANSLATORS: we're going to try
+#: ../contrib/device-rebind/pk-device-rebind.c:360
+msgid "Attempting to rebind device"
+msgstr ""
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:365
+#, fuzzy
+msgid "Failed to rebind device"
+msgstr "ಕೋಶವನ್ನು ನಿರ್ಮಿಸುವಲ್ಲಿ ವಿಫಲಗೊಂಡಿದೆ:"
 
 #: ../data/packagekit-catalog.xml.in.h:1
 msgid "PackageKit Catalog"
@@ -922,95 +1275,177 @@ msgstr "PackageKit ಪ್ಯಾಕೇಜ್ ಪಟ್ಟಿ"
 msgid "PackageKit Service Pack"
 msgstr "PackageKit ಸರ್ವಿಸ್‌ ಪ್ಯಾಕ್"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:1
+#. SECURITY:
+#. - Normal users do not require admin authentication to accept new
+#. licence agreements.
+#. - Change this to 'auth_admin' for environments where users should not
+#. be given the option to make legal decisions.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:7
 msgid "Accept EULA"
 msgstr "EULA ಅನ್ನು ಒಪ್ಪಿಕೊ"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:2
+#: ../policy/org.freedesktop.packagekit.policy.in.h:8
 msgid "Authentication is required to accept a EULA"
 msgstr "ಒಂದು EULA ಅನ್ನು ಅಂಗೀಕರಿಸಲು ಧೃಢೀಕರಣದ ಅಗತ್ಯವಿದೆ"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:3
-msgid "Authentication is required to cancel a task that was not started by yourself"
+#: ../policy/org.freedesktop.packagekit.policy.in.h:9
+msgid ""
+"Authentication is required to cancel a task that was not started by yourself"
 msgstr "ನಿಮ್ಮಿಂದ ಆರಂಭಿಸದೆ ಇರುವ ಕೆಲಸವನ್ನು ರದ್ದುಗೊಳಿಸಲು ಧೃಢೀಕರಣದ ಅಗತ್ಯವಿದೆ"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:4
+#: ../policy/org.freedesktop.packagekit.policy.in.h:10
 msgid "Authentication is required to change software source parameters"
 msgstr "ತಂತ್ರಾಂಶದ ಆಕರ ನಿಯತಾಂಕಗಳನ್ನು ಬದಲಾಯಿಸಲು ಧೃಢೀಕರಣದ ಅಗತ್ಯವಿದೆ"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:5
+#: ../policy/org.freedesktop.packagekit.policy.in.h:11
 msgid ""
 "Authentication is required to consider a key used for signing packages as "
 "trusted"
-msgstr "ಪ್ಯಾಕೇಜುಗಳನ್ನು ಸಹಿ ಮಾಡಲು ಬಳಸಲಾದ ಒಂದು ಕೀಲಿಯನ್ನು ಪರಿಗಣಿಸಲು ಧೃಢೀಕರಣದ ಅಗತ್ಯವಿದೆ"
+msgstr ""
+"ಪ್ಯಾಕೇಜುಗಳನ್ನು ಸಹಿ ಮಾಡಲು ಬಳಸಲಾದ ಒಂದು ಕೀಲಿಯನ್ನು ಪರಿಗಣಿಸಲು ಧೃಢೀಕರಣದ ಅಗತ್ಯವಿದೆ"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:6
+#: ../policy/org.freedesktop.packagekit.policy.in.h:12
 msgid "Authentication is required to install a signed package"
 msgstr "ಸಹಿ ಮಾಡಲಾದ ಒಂದು ಪ್ಯಾಕೇಜನ್ನು ಅನುಸ್ಥಾಪಿಸಲು ಧೃಢೀಕರಣದ ಅಗತ್ಯವಿದೆ"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:7
+#: ../policy/org.freedesktop.packagekit.policy.in.h:13
 msgid "Authentication is required to install an untrusted package"
 msgstr "ನಂಬದೆ ಇರುವ ಪ್ಯಾಕೇಜೊಂದನ್ನು ಅನುಸ್ಥಾಪಿಸಲು ಧೃಢೀಕರಣದ ಅಗತ್ಯವಿದೆ"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:8
+#: ../policy/org.freedesktop.packagekit.policy.in.h:14
 msgid "Authentication is required to refresh the system sources"
 msgstr "ವ್ಯವಸ್ಥೆಯ ಸಂಪನ್ಮೂಲಗಳನ್ನು ಪುನಶ್ಚೇತನಗೊಳಿಸಲು ಧೃಢೀಕರಣದ ಅಗತ್ಯವಿದೆ"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:9
+#: ../policy/org.freedesktop.packagekit.policy.in.h:15
+#, fuzzy
+msgid "Authentication is required to reload the device with a new driver"
+msgstr "ವ್ಯವಸ್ಥೆಯ ಸಂಪನ್ಮೂಲಗಳನ್ನು ಪುನಶ್ಚೇತನಗೊಳಿಸಲು ಧೃಢೀಕರಣದ ಅಗತ್ಯವಿದೆ"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:16
 msgid "Authentication is required to remove packages"
 msgstr "ಪ್ಯಾಕೇಜುಗಳನ್ನು ತೆಗೆದು ಹಾಕಲು ಧೃಢೀಕರಣದ ಅಗತ್ಯವಿದೆ"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:10
+#: ../policy/org.freedesktop.packagekit.policy.in.h:17
 msgid "Authentication is required to rollback a transaction"
 msgstr "ವ್ಯವಹಾರವನ್ನು ಹಿಂದಕ್ಕೆ ಮರಳಿಸಲು (ರೋಲ್‌ಬ್ಯಾಕ್) ಧೃಢೀಕರಣದ ಅಗತ್ಯವಿದೆ"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:11
+#: ../policy/org.freedesktop.packagekit.policy.in.h:18
 msgid ""
 "Authentication is required to set the network proxy used for downloading "
 "packages"
-msgstr "ಪ್ಯಾಕೇಜುಗಳನ್ನು ಡೌನ್‌ಲೋಡ್‌ ಮಾಡಲು ಜಾಲಬಂಧ ಪ್ರಾಕ್ಸಿಯನ್ನು ಸಿದ್ಧಗೊಳಿಸಲು ಧೃಢೀಕರಣದ ಅಗತ್ಯವಿದೆ"
+msgstr ""
+"ಪ್ಯಾಕೇಜುಗಳನ್ನು ಡೌನ್‌ಲೋಡ್‌ ಮಾಡಲು ಜಾಲಬಂಧ ಪ್ರಾಕ್ಸಿಯನ್ನು ಸಿದ್ಧಗೊಳಿಸಲು ಧೃಢೀಕರಣದ ಅಗತ್ಯವಿದೆ"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:12
+#: ../policy/org.freedesktop.packagekit.policy.in.h:19
 msgid "Authentication is required to update packages"
 msgstr "ಪ್ಯಾಕೇಜುಗಳನ್ನು ಅಪ್‌ಡೇಟ್ ಮಾಡಲು ಧೃಢೀಕರಣದ ಅಗತ್ಯವಿದೆ"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:13
+#. SECURITY:
+#. - Normal users are allowed to cancel their own task without
+#. authentication, but a different user id needs the admin password
+#. to cancel another users task.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:25
 msgid "Cancel foreign task"
 msgstr "ಹೊರಗಿನ ಕಾರ್ಯವನ್ನು ರದ್ದುಗೊಳಿಸು"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:14
+#. SECURITY:
+#. - Normal users require admin authentication to enable or disable
+#. software sources as this can be used to enable new updates or
+#. install different versions of software.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:31
 msgid "Change software source parameters"
 msgstr "ತಂತ್ರಾಂಶ ಆಕರದ ನಿಯತಾಂಕಗಳನ್ನು ಬದಲಾಯಿಸು"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:15
+#. SECURITY:
+#. - Normal users do not need authentication to install signed packages
+#. from signed repositories, as this cannot exploit a system.
+#. - Paranoid users (or parents!) can change this to 'auth_admin' or
+#. 'auth_admin_keep'.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:38
 msgid "Install signed package"
 msgstr "ಸಹಿ ಮಾಡಲಾದ ಅನುಸ್ಥಾಪಿಸು"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:16
+#. SECURITY:
+#. - Normal users require admin authentication to install untrusted or
+#. unrecognised packages, as allowing users to do this without a
+#. password would be a massive security hole.
+#. - This is not retained as each package should be authenticated.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:45
 msgid "Install untrusted local file"
 msgstr "ನಂಬದೆ ಇರುವ ಸ್ಥಳೀಯ ಕಡತವನ್ನು ಅನುಸ್ಥಾಪಿಸು"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:17
+#. SECURITY:
+#. - Normal users do not require admin authentication to refresh the
+#. cache, as this doesn't actually install or remove software.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:50
 msgid "Refresh system sources"
 msgstr "ವ್ಯವಸ್ಥೆಯ ಆಕರಗಳನ್ನು ಪುನಶ್ಚೇತನಗೊಳಿಸು"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:18
+#. SECURITY:
+#. - Normal users require admin authentication to rebind a driver
+#. so that it works after we install firmware.
+#. - This should not be set to 'yes' as unprivileged users could then
+#. try to rebind drivers in use, for instance security authentication
+#. devices.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:58
+msgid "Reload a device"
+msgstr ""
+
+#. SECURITY:
+#. - Normal users require admin authentication to remove packages as
+#. this can make the system unbootable or stop other applications from
+#. working.
+#. - Be sure to close the tool used to remove the packages after the
+#. admin authentication has been obtained, otherwise packages can still
+#. be removed. If this is not possible, change this authentication to
+#. 'auth_admin'.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:68
 msgid "Remove package"
 msgstr "ಪ್ಯಾಕೇಜನ್ನು ತೆಗೆದು ಹಾಕು"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:19
+#. SECURITY:
+#. - Normal users require admin authentication to rollback system state
+#. as this will change a large number of packages, and could expose the
+#. system to previously patched security vulnerabilities.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:74
 msgid "Rollback to a previous transaction"
 msgstr "ಹಿಂದಿನ ವ್ಯವಹಾರಕ್ಕೆ ಮರಳು(ರೋಲ್‌ಬ್ಯಾಕ್)"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:20
+#. SECURITY:
+#. - Normal users do not require admin authentication to set the proxy
+#. used for downloading packages.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:79
 msgid "Set network proxy"
 msgstr "ಜಾಲಬಂಧ ಪ್ರಾಕ್ಸಿಯನ್ನು ಸಿದ್ಧಗೊಳಿಸು"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:21
+#. SECURITY:
+#. - Normal users require admin authentication to add signing keys.
+#. - This implies adding an explicit trust, and should not be granted
+#. without a secure authentication.
+#. - This is not kept as each package should be authenticated.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:86
 msgid "Trust a key used for signing packages"
 msgstr "ಪ್ಯಾಕೇಜುಗಳನ್ನು ಸಹಿ ಮಾಡಲು ಬಳಸಲಾದ ಕೀಲಿಯನ್ನು ನಂಬು"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:22
+#. SECURITY:
+#. - Normal users do not require admin authentication to update the
+#. system as the packages will be signed, and the action is required
+#. to update the system when unattended.
+#. - Changing this to anything other than 'yes' will break unattended
+#. updates.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:94
 msgid "Update packages"
 msgstr "ಪ್ಯಾಕೇಜುಗಳನ್ನು ಅಪ್‌ಡೇಟ್ ಮಾಡು"
 
@@ -1034,7 +1469,8 @@ msgstr "ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದುದನ್ನು
 msgid ""
 "The org.freedesktop.PackageKit.conf file is not installed in the system "
 "directory:"
-msgstr "org.freedesktop.PackageKit.conf ಕಡತವನ್ನು ವ್ಯವಸ್ಥೆಯ ಕೋಶದಲ್ಲಿ ಅನುಸ್ಥಾಪಿಸಲಾಗಿಲ್ಲ:"
+msgstr ""
+"org.freedesktop.PackageKit.conf ಕಡತವನ್ನು ವ್ಯವಸ್ಥೆಯ ಕೋಶದಲ್ಲಿ ಅನುಸ್ಥಾಪಿಸಲಾಗಿಲ್ಲ:"
 
 #. TRANSLATORS: a backend is the system package tool, e.g. yum, apt
 #: ../src/pk-main.c:205
@@ -1077,7 +1513,48 @@ msgid "Cannot connect to the system bus"
 msgstr "ವ್ಯವಸ್ಥೆಯ ಬಸ್‌ನೊಂದಿಗೆ ಸಂಪರ್ಕಹೊಂದಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ"
 
 #. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error follows
-#: ../src/pk-main.c:331
+#: ../src/pk-main.c:334
 msgid "Error trying to start:"
 msgstr "ಆರಂಭಿಸಲು ಪ್ರಯತ್ನಿಸಿದಾಗ ದೋಷ:"
 
+#: ../src/pk-polkit-action-lookup.c:147
+#, fuzzy
+msgid "To install debugging packages, extra sources need to be enabled"
+msgstr "ಯಾವುದೆ ಹೊಸ ಪ್ಯಾಕೇಜುಗಳನ್ನು ಅನುಸ್ಥಾಪಿಸಲಾಗುವುದಿಲ್ಲ"
+
+#. TRANSLATORS: is not GPG signed
+#: ../src/pk-polkit-action-lookup.c:168 ../src/pk-polkit-action-lookup.c:187
+msgid "The software is not from a trusted source."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:173
+msgid "Do not update this package unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:174
+msgid "Do not update these packages unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:192
+msgid "Do not install this package unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:193
+msgid "Do not install these packages unless you are sure it is safe to do so."
+msgstr ""
+
+#. TRANSLATORS: warn the user that all bets are off
+#: ../src/pk-polkit-action-lookup.c:199
+msgid "Malicious software can damage your computer or cause other harm."
+msgstr ""
+
+#. TRANSLATORS: too many packages to list each one
+#: ../src/pk-polkit-action-lookup.c:274
+#, fuzzy
+msgid "Many packages"
+msgstr "ಪ್ಯಾಕೇಜುಗಳನ್ನು ಅಪ್‌ಡೇಟ್ ಮಾಡು"
+
+#. TRANSLATORS: if the transaction is forced to install only trusted packages
+#: ../src/pk-polkit-action-lookup.c:334
+msgid "Only trusted"
+msgstr ""
diff --git a/po/ko.po b/po/ko.po
index a9353c3..7e338b2 100644
--- a/po/ko.po
+++ b/po/ko.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-08-13 08:30+0000\n"
+"POT-Creation-Date: 2009-08-24 11:06+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <LL at li.org>\n"
@@ -18,259 +18,259 @@ msgstr ""
 "Plural-Forms: nplurals=1; plural=0;\n"
 
 #. TRANSLATORS: this is an atomic transaction
-#: ../client/pk-console.c:231
+#: ../client/pk-console.c:235
 msgid "Transaction"
 msgstr ""
 
 #. TRANSLATORS: this is the time the transaction was started in system timezone
-#: ../client/pk-console.c:233
+#: ../client/pk-console.c:237
 msgid "System time"
 msgstr ""
 
 #. TRANSLATORS: this is if the transaction succeeded or not
-#: ../client/pk-console.c:235
+#: ../client/pk-console.c:239
 msgid "Succeeded"
 msgstr ""
 
 #. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:235 ../client/pk-console.c:402
+#: ../client/pk-console.c:239 ../client/pk-console.c:406
 msgid "True"
 msgstr ""
 
-#: ../client/pk-console.c:235 ../client/pk-console.c:402
+#: ../client/pk-console.c:239 ../client/pk-console.c:406
 msgid "False"
 msgstr ""
 
 #. TRANSLATORS: this is the transactions role, e.g. "update-system"
 #. TRANSLATORS: the trasaction role, e.g. update-system
-#: ../client/pk-console.c:237 ../src/pk-polkit-action-lookup.c:331
+#: ../client/pk-console.c:241 ../src/pk-polkit-action-lookup.c:327
 msgid "Role"
 msgstr ""
 
 #. TRANSLATORS: this is The duration of the transaction
-#: ../client/pk-console.c:242
+#: ../client/pk-console.c:246
 msgid "Duration"
 msgstr ""
 
-#: ../client/pk-console.c:242
+#: ../client/pk-console.c:246
 msgid "(seconds)"
 msgstr ""
 
 #. TRANSLATORS: this is The command line used to do the action
 #. TRANSLATORS: the command line of the thing that wants the authentication
-#: ../client/pk-console.c:246 ../src/pk-polkit-action-lookup.c:345
+#: ../client/pk-console.c:250 ../src/pk-polkit-action-lookup.c:341
 msgid "Command line"
 msgstr ""
 
 #. TRANSLATORS: this is the user ID of the user that started the action
-#: ../client/pk-console.c:248
+#: ../client/pk-console.c:252
 msgid "User ID"
 msgstr ""
 
 #. TRANSLATORS: this is the username, e.g. hughsie
-#: ../client/pk-console.c:255
+#: ../client/pk-console.c:259
 msgid "Username"
 msgstr ""
 
 #. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
-#: ../client/pk-console.c:259
+#: ../client/pk-console.c:263
 msgid "Real name"
 msgstr ""
 
-#: ../client/pk-console.c:267
+#: ../client/pk-console.c:271
 msgid "Affected packages:"
 msgstr ""
 
-#: ../client/pk-console.c:269
+#: ../client/pk-console.c:273
 msgid "Affected packages: None"
 msgstr ""
 
 #. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:294
+#: ../client/pk-console.c:298
 msgid "Distribution"
 msgstr ""
 
 #. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:296
+#: ../client/pk-console.c:300
 msgid "Type"
 msgstr ""
 
 #. TRANSLATORS: this is any summary text describing the upgrade
 #. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:298 ../client/pk-console.c:321
+#: ../client/pk-console.c:302 ../client/pk-console.c:325
 msgid "Summary"
 msgstr ""
 
 #. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:310
+#: ../client/pk-console.c:314
 msgid "Category"
 msgstr ""
 
 #. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:312
+#: ../client/pk-console.c:316
 msgid "ID"
 msgstr ""
 
 #. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:315
+#: ../client/pk-console.c:319
 msgid "Parent"
 msgstr ""
 
 #. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:318
+#: ../client/pk-console.c:322
 msgid "Name"
 msgstr ""
 
 #. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:324
+#: ../client/pk-console.c:328
 msgid "Icon"
 msgstr ""
 
 #. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:339
+#: ../client/pk-console.c:343
 msgid "Details about the update:"
 msgstr ""
 
 #. TRANSLATORS: details about the update, package name and version
 #. TRANSLATORS: title, the names of the packages that the method is processing
-#: ../client/pk-console.c:341 ../src/pk-polkit-action-lookup.c:356
+#: ../client/pk-console.c:345 ../src/pk-polkit-action-lookup.c:352
 msgid "Package"
 msgid_plural "Packages"
 msgstr[0] ""
 msgstr[1] ""
 
 #. TRANSLATORS: details about the update, any packages that this update updates
-#: ../client/pk-console.c:344
+#: ../client/pk-console.c:348
 msgid "Updates"
 msgstr ""
 
 #. TRANSLATORS: details about the update, any packages that this update obsoletes
-#: ../client/pk-console.c:348
+#: ../client/pk-console.c:352
 msgid "Obsoletes"
 msgstr ""
 
 #. TRANSLATORS: details about the update, the vendor URLs
-#: ../client/pk-console.c:352
+#: ../client/pk-console.c:356
 msgid "Vendor"
 msgstr ""
 
 #. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:356
+#: ../client/pk-console.c:360
 msgid "Bugzilla"
 msgstr ""
 
 #. TRANSLATORS: details about the update, the CVE URLs
-#: ../client/pk-console.c:360
+#: ../client/pk-console.c:364
 msgid "CVE"
 msgstr ""
 
 #. TRANSLATORS: details about the update, if the package requires a restart
-#: ../client/pk-console.c:364
+#: ../client/pk-console.c:368
 msgid "Restart"
 msgstr ""
 
 #. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:368
+#: ../client/pk-console.c:372
 msgid "Update text"
 msgstr ""
 
 #. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:372
+#: ../client/pk-console.c:376
 msgid "Changes"
 msgstr ""
 
 #. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:376
+#: ../client/pk-console.c:380
 msgid "State"
 msgstr ""
 
 #. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:381
+#: ../client/pk-console.c:385
 msgid "Issued"
 msgstr ""
 
 #. TRANSLATORS: details about the update, date the update was updated
-#: ../client/pk-console.c:386
+#: ../client/pk-console.c:390
 msgid "Updated"
 msgstr ""
 
-#: ../client/pk-console.c:473 ../client/pk-console.c:475
+#: ../client/pk-console.c:477 ../client/pk-console.c:479
 msgid "Percentage"
 msgstr ""
 
-#: ../client/pk-console.c:475
+#: ../client/pk-console.c:479
 msgid "Unknown"
 msgstr ""
 
 #. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:517
+#: ../client/pk-console.c:521
 msgid "System restart required by:"
 msgstr ""
 
 #. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:520
+#: ../client/pk-console.c:524
 msgid "Session restart required:"
 msgstr ""
 
 #. TRANSLATORS: a package requires the system to be restarted due to a security update
-#: ../client/pk-console.c:523
+#: ../client/pk-console.c:527
 msgid "System restart (security) required by:"
 msgstr ""
 
 #. TRANSLATORS: a package requires the session to be restarted due to a security update
-#: ../client/pk-console.c:526
+#: ../client/pk-console.c:530
 msgid "Session restart (security) required:"
 msgstr ""
 
 #. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:529
+#: ../client/pk-console.c:533
 msgid "Application restart required by:"
 msgstr ""
 
 #. TRANSLATORS: a package needs to restart their system
-#: ../client/pk-console.c:584
+#: ../client/pk-console.c:588
 msgid "Please restart the computer to complete the update."
 msgstr ""
 
 #. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:587
+#: ../client/pk-console.c:591
 msgid "Please logout and login to complete the update."
 msgstr ""
 
 #. TRANSLATORS: a package needs to restart the application
-#: ../client/pk-console.c:590
+#: ../client/pk-console.c:594
 msgid "Please restart the application as it is being used."
 msgstr ""
 
 #. TRANSLATORS: a package needs to restart their system (due to security)
-#: ../client/pk-console.c:593
+#: ../client/pk-console.c:597
 msgid ""
 "Please restart the computer to complete the update as important security "
 "updates have been installed."
 msgstr ""
 
 #. TRANSLATORS: a package needs to restart the session (due to security)
-#: ../client/pk-console.c:596
+#: ../client/pk-console.c:600
 msgid ""
 "Please logout and login to complete the update as important security updates "
 "have been installed."
 msgstr ""
 
 #. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:723
+#: ../client/pk-console.c:727
 #, c-format
 msgid "The package %s is already installed"
 msgstr ""
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:731
+#: ../client/pk-console.c:735
 #, c-format
 msgid "The package %s could not be installed: %s"
 msgstr ""
 
 #. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
-#: ../client/pk-console.c:756 ../client/pk-console.c:779
-#: ../client/pk-console.c:875 ../client/pk-console.c:992
+#: ../client/pk-console.c:760 ../client/pk-console.c:783
+#: ../client/pk-console.c:879 ../client/pk-console.c:996
 #: ../client/pk-tools-common.c:62 ../client/pk-tools-common.c:81
 #: ../client/pk-tools-common.c:89
 #, c-format
@@ -278,403 +278,403 @@ msgid "Internal error: %s"
 msgstr ""
 
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:764 ../client/pk-console.c:1388
+#: ../client/pk-console.c:768 ../client/pk-console.c:1392
 #, c-format
 msgid "This tool could not install the packages: %s"
 msgstr ""
 
 #. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:787
+#: ../client/pk-console.c:791
 #, c-format
 msgid "This tool could not install the files: %s"
 msgstr ""
 
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:843
+#: ../client/pk-console.c:847
 #, c-format
 msgid "This tool could not remove %s: %s"
 msgstr ""
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:866 ../client/pk-console.c:904
-#: ../client/pk-console.c:937
+#: ../client/pk-console.c:870 ../client/pk-console.c:908
+#: ../client/pk-console.c:941
 #, c-format
 msgid "This tool could not remove the packages: %s"
 msgstr ""
 
 #. TRANSLATORS: When removing, we might have to remove other dependencies
-#: ../client/pk-console.c:916
+#: ../client/pk-console.c:920
 msgid "The following packages have to be removed:"
 msgstr ""
 
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:923
+#: ../client/pk-console.c:927
 msgid "Proceed removing additional packages?"
 msgstr ""
 
 #. TRANSLATORS: We did not remove any packages
-#: ../client/pk-console.c:928
+#: ../client/pk-console.c:932
 msgid "The package removal was canceled!"
 msgstr ""
 
 #. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:969
+#: ../client/pk-console.c:973
 #, c-format
 msgid "This tool could not download the package %s as it could not be found"
 msgstr ""
 
 #. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:1000
+#: ../client/pk-console.c:1004
 #, c-format
 msgid "This tool could not download the packages: %s"
 msgstr ""
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1027 ../client/pk-console.c:1036
+#: ../client/pk-console.c:1031 ../client/pk-console.c:1040
 #, c-format
 msgid "This tool could not update %s: %s"
 msgstr ""
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1058 ../client/pk-console.c:1066
+#: ../client/pk-console.c:1062 ../client/pk-console.c:1070
 #, c-format
 msgid "This tool could not get the requirements for %s: %s"
 msgstr ""
 
 #. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:1088 ../client/pk-console.c:1096
+#: ../client/pk-console.c:1092 ../client/pk-console.c:1100
 #, c-format
 msgid "This tool could not get the dependencies for %s: %s"
 msgstr ""
 
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:1118 ../client/pk-console.c:1126
+#: ../client/pk-console.c:1122 ../client/pk-console.c:1130
 #, c-format
 msgid "This tool could not get package details for %s: %s"
 msgstr ""
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1148
+#: ../client/pk-console.c:1152
 #, c-format
 msgid "This tool could not find the files for %s: %s"
 msgstr ""
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1156
+#: ../client/pk-console.c:1160
 #, c-format
 msgid "This tool could not get the file list for %s: %s"
 msgstr ""
 
 #. TRANSLATORS: There was an error getting the list of packages. The filename follows
-#: ../client/pk-console.c:1178
+#: ../client/pk-console.c:1182
 #, c-format
 msgid "File already exists: %s"
 msgstr ""
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1183 ../client/pk-console.c:1239
-#: ../client/pk-console.c:1314
+#: ../client/pk-console.c:1187 ../client/pk-console.c:1243
+#: ../client/pk-console.c:1318
 msgid "Getting package list"
 msgstr ""
 
 #. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1189 ../client/pk-console.c:1245
-#: ../client/pk-console.c:1320
+#: ../client/pk-console.c:1193 ../client/pk-console.c:1249
+#: ../client/pk-console.c:1324
 #, c-format
 msgid "This tool could not get package list: %s"
 msgstr ""
 
 #. TRANSLATORS: There was an error saving the list
-#: ../client/pk-console.c:1200
+#: ../client/pk-console.c:1204
 #, c-format
 msgid "Failed to save to disk"
 msgstr ""
 
 #. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1234 ../client/pk-console.c:1309
+#: ../client/pk-console.c:1238 ../client/pk-console.c:1313
 #, c-format
 msgid "File does not exist: %s"
 msgstr ""
 
 #. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1266
+#: ../client/pk-console.c:1270
 msgid "Packages to add"
 msgstr ""
 
 #. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1274
+#: ../client/pk-console.c:1278
 msgid "Packages to remove"
 msgstr ""
 
 #. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1342
+#: ../client/pk-console.c:1346
 #, c-format
 msgid "No new packages need to be installed"
 msgstr ""
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1348
+#: ../client/pk-console.c:1352
 msgid "To install"
 msgstr ""
 
 #. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1360
+#: ../client/pk-console.c:1364
 msgid "Searching for package: "
 msgstr ""
 
 #. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1364
+#: ../client/pk-console.c:1368
 msgid "not found."
 msgstr ""
 
 #. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1375
+#: ../client/pk-console.c:1379
 #, c-format
 msgid "No packages can be found to install"
 msgstr ""
 
 #. TRANSLATORS: installing new packages from package list
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
-#: ../client/pk-console.c:1381
+#: ../client/pk-console.c:1385
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:886
 #, c-format
 msgid "Installing packages"
 msgstr ""
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1417
+#: ../client/pk-console.c:1421
 #, c-format
 msgid "This tool could not find the update details for %s: %s"
 msgstr ""
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1425
+#: ../client/pk-console.c:1429
 #, c-format
 msgid "This tool could not get the update details for %s: %s"
 msgstr ""
 
 #. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
-#: ../client/pk-console.c:1456
+#: ../client/pk-console.c:1460
 msgid "Error:"
 msgstr ""
 
 #. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1470
+#: ../client/pk-console.c:1474
 msgid "Package description"
 msgstr ""
 
 #. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
-#: ../client/pk-console.c:1486
+#: ../client/pk-console.c:1490
 msgid "Message:"
 msgstr ""
 
 #. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1514
+#: ../client/pk-console.c:1518
 msgid "Package files"
 msgstr ""
 
 #. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1522
+#: ../client/pk-console.c:1526
 msgid "No files"
 msgstr ""
 
 #. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1545
+#: ../client/pk-console.c:1549
 msgid "Repository signature required"
 msgstr ""
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1555
+#: ../client/pk-console.c:1559
 msgid "Do you accept this signature?"
 msgstr ""
 
 #. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1559
+#: ../client/pk-console.c:1563
 msgid "The signature was not accepted."
 msgstr ""
 
 #. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1593
+#: ../client/pk-console.c:1597
 msgid "End user license agreement required"
 msgstr ""
 
 #. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1600
+#: ../client/pk-console.c:1604
 msgid "Do you agree to this license?"
 msgstr ""
 
 #. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1604
+#: ../client/pk-console.c:1608
 msgid "The license was refused."
 msgstr ""
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1633
+#: ../client/pk-console.c:1637
 msgid "The daemon crashed mid-transaction!"
 msgstr ""
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1686
+#: ../client/pk-console.c:1690
 msgid "PackageKit Console Interface"
 msgstr ""
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1688
+#: ../client/pk-console.c:1692
 msgid "Subcommands:"
 msgstr ""
 
 #. TRANSLATORS: command line argument, if we should show debugging information
 #. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:1781 ../client/pk-generate-pack.c:185
+#: ../client/pk-console.c:1785 ../client/pk-generate-pack.c:185
 #: ../client/pk-monitor.c:128
 #: ../contrib/command-not-found/pk-command-not-found.c:616
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:550
-#: ../src/pk-main.c:211
+#: ../contrib/device-rebind/pk-device-rebind.c:293 ../src/pk-main.c:211
 msgid "Show extra debugging information"
 msgstr ""
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1784 ../client/pk-monitor.c:130
+#: ../client/pk-console.c:1788 ../client/pk-monitor.c:130
 msgid "Show the program version and exit"
 msgstr ""
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1787
+#: ../client/pk-console.c:1791
 msgid "Set the filter, e.g. installed"
 msgstr ""
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1790
+#: ../client/pk-console.c:1794
 msgid "Exit without waiting for actions to complete"
 msgstr ""
 
 #. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:1817
+#: ../client/pk-console.c:1821
 msgid "This tool could not connect to system DBUS."
 msgstr ""
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1907
+#: ../client/pk-console.c:1911
 msgid "The filter specified was invalid"
 msgstr ""
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1926
+#: ../client/pk-console.c:1930
 msgid "A search type is required, e.g. name"
 msgstr ""
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1933 ../client/pk-console.c:1942
-#: ../client/pk-console.c:1951 ../client/pk-console.c:1960
+#: ../client/pk-console.c:1937 ../client/pk-console.c:1946
+#: ../client/pk-console.c:1955 ../client/pk-console.c:1964
 msgid "A search term is required"
 msgstr ""
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1967
+#: ../client/pk-console.c:1971
 msgid "Invalid search type"
 msgstr ""
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1973
+#: ../client/pk-console.c:1977
 msgid "A package name or filename to install is required"
 msgstr ""
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1982
+#: ../client/pk-console.c:1986
 msgid "A type, key_id and package_id are required"
 msgstr ""
 
 #. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:1991
+#: ../client/pk-console.c:1995
 msgid "A package name to remove is required"
 msgstr ""
 
 #. TRANSLATORS: the user did not specify anything about what to download or where
-#: ../client/pk-console.c:1999
+#: ../client/pk-console.c:2003
 msgid "A destination directory and the package names to download are required"
 msgstr ""
 
 #. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:2006
+#: ../client/pk-console.c:2010
 msgid "Directory not found"
 msgstr ""
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2014
+#: ../client/pk-console.c:2018
 msgid "A licence identifier (eula-id) is required"
 msgstr ""
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2024
+#: ../client/pk-console.c:2028
 msgid "A transaction identifier (tid) is required"
 msgstr ""
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:2041
+#: ../client/pk-console.c:2045
 msgid "A package name to resolve is required"
 msgstr ""
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:2050 ../client/pk-console.c:2059
+#: ../client/pk-console.c:2054 ../client/pk-console.c:2063
 msgid "A repository name is required"
 msgstr ""
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2068
+#: ../client/pk-console.c:2072
 msgid "A repo name, parameter and value are required"
 msgstr ""
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:2082
+#: ../client/pk-console.c:2086
 msgid "An action, e.g. 'update-system' is required"
 msgstr ""
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:2089
+#: ../client/pk-console.c:2093
 msgid "A correct role is required"
 msgstr ""
 
 #. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2096
+#: ../client/pk-console.c:2100
 msgid "Failed to get the time since this action was last completed"
 msgstr ""
 
 #. TRANSLATORS: The user did not provide a package name
 #. TRANSLATORS: This is when the user fails to supply the package name
-#: ../client/pk-console.c:2106 ../client/pk-console.c:2118
-#: ../client/pk-console.c:2127 ../client/pk-console.c:2145
-#: ../client/pk-console.c:2154 ../client/pk-generate-pack.c:241
+#: ../client/pk-console.c:2110 ../client/pk-console.c:2122
+#: ../client/pk-console.c:2131 ../client/pk-console.c:2149
+#: ../client/pk-console.c:2158 ../client/pk-generate-pack.c:241
 msgid "A package name is required"
 msgstr ""
 
 #. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:2136
+#: ../client/pk-console.c:2140
 msgid "A package provide string is required"
 msgstr ""
 
 #. TRANSLATORS: The user didn't specify a filename to create as a list
-#: ../client/pk-console.c:2163
+#: ../client/pk-console.c:2167
 msgid "A list file name to create is required"
 msgstr ""
 
 #. TRANSLATORS: The user didn't specify a filename to open as a list
-#: ../client/pk-console.c:2173 ../client/pk-console.c:2183
+#: ../client/pk-console.c:2177 ../client/pk-console.c:2187
 msgid "A list file to open is required"
 msgstr ""
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2237
+#: ../client/pk-console.c:2241
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr ""
 
 #. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2250
+#: ../client/pk-console.c:2254
 msgid "Incorrect privileges for this operation"
 msgstr ""
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2253
+#: ../client/pk-console.c:2257
 msgid "Command failed"
 msgstr ""
 
@@ -825,6 +825,60 @@ msgstr ""
 msgid "Please enter a number from 1 to %i: "
 msgstr ""
 
+#. TRANSLATORS: when we are getting data from the daemon
+#: ../contrib/browser-plugin/pk-plugin-install.c:466
+msgid "Getting package information..."
+msgstr ""
+
+#. TRANSLATORS: run an applicaiton
+#: ../contrib/browser-plugin/pk-plugin-install.c:472
+#, c-format
+msgid "Run %s"
+msgstr ""
+
+#. TRANSLATORS: show the installed version of a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:478
+msgid "Installed version"
+msgstr ""
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:486
+#, c-format
+msgid "Run version %s now"
+msgstr ""
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:492
+msgid "Run now"
+msgstr ""
+
+#. TRANSLATORS: update to a new version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:498
+#, c-format
+msgid "Update to version %s"
+msgstr ""
+
+#. TRANSLATORS: To install a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:504
+#, c-format
+msgid "Install %s now"
+msgstr ""
+
+#. TRANSLATORS: the version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:507
+msgid "Version"
+msgstr ""
+
+#. TRANSLATORS: noting found, so can't install
+#: ../contrib/browser-plugin/pk-plugin-install.c:512
+msgid "No packages found for your system"
+msgstr ""
+
+#. TRANSLATORS: package is being installed
+#: ../contrib/browser-plugin/pk-plugin-install.c:517
+msgid "Installing..."
+msgstr ""
+
 #. TRANSLATORS: downloading repo data so we can search
 #: ../contrib/command-not-found/pk-command-not-found.c:349
 msgid "Downloading details about the software sources."
@@ -914,60 +968,6 @@ msgstr ""
 msgid "Please choose a package to install"
 msgstr ""
 
-#. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/pk-plugin-install.c:433
-msgid "Getting package information..."
-msgstr ""
-
-#. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/pk-plugin-install.c:439
-#, c-format
-msgid "Run %s"
-msgstr ""
-
-#. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:445
-msgid "Installed version"
-msgstr ""
-
-#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:453
-#, c-format
-msgid "Run version %s now"
-msgstr ""
-
-#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:459
-msgid "Run now"
-msgstr ""
-
-#. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:465
-#, c-format
-msgid "Update to version %s"
-msgstr ""
-
-#. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:471
-#, c-format
-msgid "Install %s now"
-msgstr ""
-
-#. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:474
-msgid "Version"
-msgstr ""
-
-#. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/pk-plugin-install.c:479
-msgid "No packages found for your system"
-msgstr ""
-
-#. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/pk-plugin-install.c:484
-msgid "Installing..."
-msgstr ""
-
 #. TRANSLATORS: we are starting to install the packages
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:187
 msgid "Starting install"
@@ -1153,6 +1153,92 @@ msgstr ""
 msgid "Disabled %i debugging sources."
 msgstr ""
 
+#. TRANSLATORS: couldn't open device to write
+#: ../contrib/device-rebind/pk-device-rebind.c:61
+msgid "Failed to open file"
+msgstr ""
+
+#. TRANSLATORS: could not write to the device
+#: ../contrib/device-rebind/pk-device-rebind.c:70
+msgid "Failed to write to the file"
+msgstr ""
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:110
+#: ../contrib/device-rebind/pk-device-rebind.c:147
+msgid "Failed to write to device"
+msgstr ""
+
+#. TRANSLATORS: the device could not be found in sysfs
+#: ../contrib/device-rebind/pk-device-rebind.c:175
+msgid "Device could not be found"
+msgstr ""
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:202
+msgid "Failed to unregister driver"
+msgstr ""
+
+#. TRANSLATORS: we failed to bind the old driver
+#: ../contrib/device-rebind/pk-device-rebind.c:211
+msgid "Failed to register driver"
+msgstr ""
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:260
+msgid "Device path not found"
+msgstr ""
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:268
+msgid "Incorrect device path specified"
+msgstr ""
+
+#. command line argument, simulate what would be done, but don't actually do it
+#: ../contrib/device-rebind/pk-device-rebind.c:296
+msgid "Don't actually touch the hardware, only simulate what would be done"
+msgstr ""
+
+#. TRANSLATORS: command line option: a list of files to install
+#: ../contrib/device-rebind/pk-device-rebind.c:299
+msgid "Device paths"
+msgstr ""
+
+#. TRANSLATORS: tool that gets called when the device needs reloading after installing firmware
+#: ../contrib/device-rebind/pk-device-rebind.c:314
+msgid "PackageKit Device Reloader"
+msgstr ""
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:322
+msgid "You need to specify at least one valid device path"
+msgstr ""
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:332
+msgid "This script can only be used by the root user"
+msgstr ""
+
+#. TRANSLATORS: we're going to verify the path first
+#: ../contrib/device-rebind/pk-device-rebind.c:341
+msgid "Verifying device path"
+msgstr ""
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:346
+msgid "Failed to verify device path"
+msgstr ""
+
+#. TRANSLATORS: we're going to try
+#: ../contrib/device-rebind/pk-device-rebind.c:360
+msgid "Attempting to rebind device"
+msgstr ""
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:365
+msgid "Failed to rebind device"
+msgstr ""
+
 #: ../data/packagekit-catalog.xml.in.h:1
 msgid "PackageKit Catalog"
 msgstr ""
@@ -1207,20 +1293,24 @@ msgid "Authentication is required to refresh the system sources"
 msgstr ""
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:15
-msgid "Authentication is required to remove packages"
+msgid "Authentication is required to reload the device with a new driver"
 msgstr ""
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:16
-msgid "Authentication is required to rollback a transaction"
+msgid "Authentication is required to remove packages"
 msgstr ""
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:17
+msgid "Authentication is required to rollback a transaction"
+msgstr ""
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:18
 msgid ""
 "Authentication is required to set the network proxy used for downloading "
 "packages"
 msgstr ""
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:18
+#: ../policy/org.freedesktop.packagekit.policy.in.h:19
 msgid "Authentication is required to update packages"
 msgstr ""
 
@@ -1229,7 +1319,7 @@ msgstr ""
 #. authentication, but a different user id needs the admin password
 #. to cancel another users task.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:24
+#: ../policy/org.freedesktop.packagekit.policy.in.h:25
 msgid "Cancel foreign task"
 msgstr ""
 
@@ -1238,7 +1328,7 @@ msgstr ""
 #. software sources as this can be used to enable new updates or
 #. install different versions of software.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:30
+#: ../policy/org.freedesktop.packagekit.policy.in.h:31
 msgid "Change software source parameters"
 msgstr ""
 
@@ -1248,7 +1338,7 @@ msgstr ""
 #. - Paranoid users (or parents!) can change this to 'auth_admin' or
 #. 'auth_admin_keep'.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:37
+#: ../policy/org.freedesktop.packagekit.policy.in.h:38
 msgid "Install signed package"
 msgstr ""
 
@@ -1258,7 +1348,7 @@ msgstr ""
 #. password would be a massive security hole.
 #. - This is not retained as each package should be authenticated.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:44
+#: ../policy/org.freedesktop.packagekit.policy.in.h:45
 msgid "Install untrusted local file"
 msgstr ""
 
@@ -1266,11 +1356,22 @@ msgstr ""
 #. - Normal users do not require admin authentication to refresh the
 #. cache, as this doesn't actually install or remove software.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:49
+#: ../policy/org.freedesktop.packagekit.policy.in.h:50
 msgid "Refresh system sources"
 msgstr ""
 
 #. SECURITY:
+#. - Normal users require admin authentication to rebind a driver
+#. so that it works after we install firmware.
+#. - This should not be set to 'yes' as unprivileged users could then
+#. try to rebind drivers in use, for instance security authentication
+#. devices.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:58
+msgid "Reload a device"
+msgstr ""
+
+#. SECURITY:
 #. - Normal users require admin authentication to remove packages as
 #. this can make the system unbootable or stop other applications from
 #. working.
@@ -1279,7 +1380,7 @@ msgstr ""
 #. be removed. If this is not possible, change this authentication to
 #. 'auth_admin'.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:59
+#: ../policy/org.freedesktop.packagekit.policy.in.h:68
 msgid "Remove package"
 msgstr ""
 
@@ -1288,7 +1389,7 @@ msgstr ""
 #. as this will change a large number of packages, and could expose the
 #. system to previously patched security vulnerabilities.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:65
+#: ../policy/org.freedesktop.packagekit.policy.in.h:74
 msgid "Rollback to a previous transaction"
 msgstr ""
 
@@ -1296,7 +1397,7 @@ msgstr ""
 #. - Normal users do not require admin authentication to set the proxy
 #. used for downloading packages.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:70
+#: ../policy/org.freedesktop.packagekit.policy.in.h:79
 msgid "Set network proxy"
 msgstr ""
 
@@ -1306,7 +1407,7 @@ msgstr ""
 #. without a secure authentication.
 #. - This is not kept as each package should be authenticated.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:77
+#: ../policy/org.freedesktop.packagekit.policy.in.h:86
 msgid "Trust a key used for signing packages"
 msgstr ""
 
@@ -1317,7 +1418,7 @@ msgstr ""
 #. - Changing this to anything other than 'yes' will break unattended
 #. updates.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:85
+#: ../policy/org.freedesktop.packagekit.policy.in.h:94
 msgid "Update packages"
 msgstr ""
 
@@ -1393,7 +1494,7 @@ msgid "To install debugging packages, extra sources need to be enabled"
 msgstr ""
 
 #. TRANSLATORS: is not GPG signed
-#: ../src/pk-polkit-action-lookup.c:168 ../src/pk-polkit-action-lookup.c:191
+#: ../src/pk-polkit-action-lookup.c:168 ../src/pk-polkit-action-lookup.c:187
 msgid "The software is not from a trusted source."
 msgstr ""
 
@@ -1405,25 +1506,25 @@ msgstr ""
 msgid "Do not update these packages unless you are sure it is safe to do so."
 msgstr ""
 
-#. TRANSLATORS: warn the user that all bets are off
-#: ../src/pk-polkit-action-lookup.c:180 ../src/pk-polkit-action-lookup.c:203
-msgid "Malicious software can damage your computer or cause other harm."
-msgstr ""
-
-#: ../src/pk-polkit-action-lookup.c:196
+#: ../src/pk-polkit-action-lookup.c:192
 msgid "Do not install this package unless you are sure it is safe to do so."
 msgstr ""
 
-#: ../src/pk-polkit-action-lookup.c:197
+#: ../src/pk-polkit-action-lookup.c:193
 msgid "Do not install these packages unless you are sure it is safe to do so."
 msgstr ""
 
+#. TRANSLATORS: warn the user that all bets are off
+#: ../src/pk-polkit-action-lookup.c:199
+msgid "Malicious software can damage your computer or cause other harm."
+msgstr ""
+
 #. TRANSLATORS: too many packages to list each one
-#: ../src/pk-polkit-action-lookup.c:278
+#: ../src/pk-polkit-action-lookup.c:274
 msgid "Many packages"
 msgstr ""
 
 #. TRANSLATORS: if the transaction is forced to install only trusted packages
-#: ../src/pk-polkit-action-lookup.c:338
+#: ../src/pk-polkit-action-lookup.c:334
 msgid "Only trusted"
 msgstr ""
diff --git a/po/ml.po b/po/ml.po
index 59e2e29..e55d0c5 100644
--- a/po/ml.po
+++ b/po/ml.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: packagekit.master.ml\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-07-15 02:51+0000\n"
+"POT-Creation-Date: 2009-08-24 11:06+0100\n"
 "PO-Revision-Date: 2009-07-15 17:19+0530\n"
 "Last-Translator: \n"
 "Language-Team:  <en at li.org>\n"
@@ -17,260 +17,264 @@ msgstr ""
 "X-Generator: KBabel 1.11.4\n"
 
 #. TRANSLATORS: this is an atomic transaction
-#: ../client/pk-console.c:231
+#: ../client/pk-console.c:235
 msgid "Transaction"
 msgstr "ഇടപാടു്"
 
 #. TRANSLATORS: this is the time the transaction was started in system timezone
-#: ../client/pk-console.c:233
+#: ../client/pk-console.c:237
 msgid "System time"
 msgstr "സിസ്റ്റം സമയം"
 
 #. TRANSLATORS: this is if the transaction succeeded or not
-#: ../client/pk-console.c:235
+#: ../client/pk-console.c:239
 msgid "Succeeded"
 msgstr "ഇടപാടു് പൂര്‍ത്തിയായി"
 
 #. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:235 ../client/pk-console.c:402
+#: ../client/pk-console.c:239 ../client/pk-console.c:406
 msgid "True"
 msgstr "True"
 
-#: ../client/pk-console.c:235 ../client/pk-console.c:402
+#: ../client/pk-console.c:239 ../client/pk-console.c:406
 msgid "False"
 msgstr "False"
 
 #. TRANSLATORS: this is the transactions role, e.g. "update-system"
 #. TRANSLATORS: the trasaction role, e.g. update-system
-#: ../client/pk-console.c:237 ../src/pk-polkit-action-lookup.c:256
+#: ../client/pk-console.c:241 ../src/pk-polkit-action-lookup.c:327
 msgid "Role"
 msgstr "റോള്‍"
 
 #. TRANSLATORS: this is The duration of the transaction
-#: ../client/pk-console.c:242
+#: ../client/pk-console.c:246
 msgid "Duration"
 msgstr "സമയം"
 
-#: ../client/pk-console.c:242
+#: ../client/pk-console.c:246
 msgid "(seconds)"
 msgstr "(സെക്കന്‍ഡുകള്‍)"
 
 #. TRANSLATORS: this is The command line used to do the action
 #. TRANSLATORS: the command line of the thing that wants the authentication
-#: ../client/pk-console.c:246 ../src/pk-polkit-action-lookup.c:270
+#: ../client/pk-console.c:250 ../src/pk-polkit-action-lookup.c:341
 msgid "Command line"
 msgstr "കമാന്‍ഡ് ലൈന്‍"
 
 #. TRANSLATORS: this is the user ID of the user that started the action
-#: ../client/pk-console.c:248
+#: ../client/pk-console.c:252
 msgid "User ID"
 msgstr "ഉപയോക്താവിനുള്ള ID"
 
 #. TRANSLATORS: this is the username, e.g. hughsie
-#: ../client/pk-console.c:255
+#: ../client/pk-console.c:259
 msgid "Username"
 msgstr "ഉപയോക്തൃനാമം"
 
 #. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
-#: ../client/pk-console.c:259
+#: ../client/pk-console.c:263
 msgid "Real name"
 msgstr "യഥാര്‍ത്ഥ പേരു്"
 
-#: ../client/pk-console.c:267
+#: ../client/pk-console.c:271
 msgid "Affected packages:"
 msgstr "ബാധിച്ച പാക്കേജുകള്‍:"
 
-#: ../client/pk-console.c:269
+#: ../client/pk-console.c:273
 msgid "Affected packages: None"
 msgstr "ബാധിച്ച പാക്കേജുകള്‍: ഒന്നുമില്ല"
 
 #. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:294
+#: ../client/pk-console.c:298
 msgid "Distribution"
 msgstr "വിതരണം"
 
 #. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:296
+#: ../client/pk-console.c:300
 msgid "Type"
 msgstr "തരം"
 
 #. TRANSLATORS: this is any summary text describing the upgrade
 #. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:298 ../client/pk-console.c:321
+#: ../client/pk-console.c:302 ../client/pk-console.c:325
 msgid "Summary"
 msgstr "സമ്മറി"
 
 #. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:310
+#: ../client/pk-console.c:314
 msgid "Category"
 msgstr "വിഭാഗം"
 
 #. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:312
+#: ../client/pk-console.c:316
 msgid "ID"
 msgstr "ID"
 
 #. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:315
+#: ../client/pk-console.c:319
 msgid "Parent"
 msgstr "പേരന്റ്"
 
 #. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:318
+#: ../client/pk-console.c:322
 msgid "Name"
 msgstr "പേരു്"
 
 #. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:324
+#: ../client/pk-console.c:328
 msgid "Icon"
 msgstr "ചിഹ്നം"
 
 #. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:339
+#: ../client/pk-console.c:343
 msgid "Details about the update:"
 msgstr "പരിഷ്കരണങ്ങള്‍ സംബന്ധിച്ചുള്ള വിശദാംശങ്ങള്‍:"
 
 #. TRANSLATORS: details about the update, package name and version
-#: ../client/pk-console.c:341
+#. TRANSLATORS: title, the names of the packages that the method is processing
+#: ../client/pk-console.c:345 ../src/pk-polkit-action-lookup.c:352
+#, fuzzy
 msgid "Package"
-msgstr "പാക്കേജ്"
+msgid_plural "Packages"
+msgstr[0] "പാക്കേജ്"
+msgstr[1] "പാക്കേജ്"
 
 #. TRANSLATORS: details about the update, any packages that this update updates
-#: ../client/pk-console.c:344
+#: ../client/pk-console.c:348
 msgid "Updates"
 msgstr "പരിഷ്കരണങ്ങള്‍"
 
 #. TRANSLATORS: details about the update, any packages that this update obsoletes
-#: ../client/pk-console.c:348
+#: ../client/pk-console.c:352
 msgid "Obsoletes"
 msgstr "വേണ്ടെന്നു് വച്ചവ"
 
 #. TRANSLATORS: details about the update, the vendor URLs
-#: ../client/pk-console.c:352
+#: ../client/pk-console.c:356
 msgid "Vendor"
 msgstr "കച്ചവടക്കാരന്‍"
 
 #. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:356
+#: ../client/pk-console.c:360
 msgid "Bugzilla"
 msgstr "Bugzilla"
 
 #. TRANSLATORS: details about the update, the CVE URLs
-#: ../client/pk-console.c:360
+#: ../client/pk-console.c:364
 msgid "CVE"
 msgstr "CVE"
 
 #. TRANSLATORS: details about the update, if the package requires a restart
-#: ../client/pk-console.c:364
+#: ../client/pk-console.c:368
 msgid "Restart"
 msgstr "വീണ്ടും ആരംഭിക്കുക"
 
 #. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:368
+#: ../client/pk-console.c:372
 msgid "Update text"
 msgstr "പരിഷ്കരിച്ച വാചകം"
 
 #. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:372
+#: ../client/pk-console.c:376
 msgid "Changes"
 msgstr "മാറ്റങ്ങള്‍"
 
 #. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:376
+#: ../client/pk-console.c:380
 msgid "State"
 msgstr "അവസ്ഥ"
 
 #. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:381
+#: ../client/pk-console.c:385
 msgid "Issued"
 msgstr "നല്‍കിയതു്"
 
 #. TRANSLATORS: details about the update, date the update was updated
-#: ../client/pk-console.c:386
+#: ../client/pk-console.c:390
 msgid "Updated"
 msgstr "പരിഷ്കരിച്ചിരിക്കുന്നു"
 
-#: ../client/pk-console.c:473 ../client/pk-console.c:475
+#: ../client/pk-console.c:477 ../client/pk-console.c:479
 msgid "Percentage"
 msgstr "ശതമാനം"
 
-#: ../client/pk-console.c:475
+#: ../client/pk-console.c:479
 msgid "Unknown"
 msgstr "അപരിചിതം"
 
 #. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:517
+#: ../client/pk-console.c:521
 msgid "System restart required by:"
 msgstr "സിസ്റ്റം വീണ്ടും ആരംഭിക്കുന്നതു് ആവശ്യമുള്ളതു്:"
 
 #. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:520
+#: ../client/pk-console.c:524
 msgid "Session restart required:"
 msgstr "സെഷന്‍ വീണ്ടും ആരംഭിക്കേണ്ടതുണ്ടു്:"
 
 #. TRANSLATORS: a package requires the system to be restarted due to a security update
-#: ../client/pk-console.c:523
+#: ../client/pk-console.c:527
 msgid "System restart (security) required by:"
 msgstr "സിസ്റ്റം വീണ്ടും ആരംഭിക്കുന്നതു് (സുരക്ഷാ പരിഷ്കരണം) ആവശ്യമുള്ളതു്:"
 
 #. TRANSLATORS: a package requires the session to be restarted due to a security update
-#: ../client/pk-console.c:526
+#: ../client/pk-console.c:530
 msgid "Session restart (security) required:"
 msgstr "സെഷന്‍ വീണ്ടും ആരംഭിക്കുന്നതു് (സുരക്ഷാ പരിഷ്കരണം) ആവശ്യമുള്ളതു്:"
 
 #. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:529
+#: ../client/pk-console.c:533
 msgid "Application restart required by:"
 msgstr "പ്രയോഗം വീണ്ടും ആരംഭിക്കേണ്ടതു് ആവശ്യമുള്ളതു്:"
 
 #. TRANSLATORS: a package needs to restart their system
-#: ../client/pk-console.c:584
+#: ../client/pk-console.c:588
 msgid "Please restart the computer to complete the update."
 msgstr "പരിഷ്കരണങ്ങള്‍ പൂര്‍ത്തിയാക്കുന്നതിനായി ദയവായി നിങ്ങളുടെ കമ്പ്യൂട്ടര്‍ വീണ്ടും ആരംഭിക്കുക."
 
 #. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:587
+#: ../client/pk-console.c:591
 msgid "Please logout and login to complete the update."
 msgstr "പരിഷ്കരണങ്ങള്‍ പൂര്‍ത്തിയാക്കുന്നതിനായി ദയവായി ലോഗൌട്ട് ചെയ്ത് ലോഗിന്‍ ചെയ്യുക."
 
 #. TRANSLATORS: a package needs to restart the application
-#: ../client/pk-console.c:590
+#: ../client/pk-console.c:594
 msgid "Please restart the application as it is being used."
 msgstr "ഈ പ്രയോഗം ഉപയോഗിക്കേണ്ടപ്പോള്‍ തന്നെ വീണ്ടും ആരംഭിക്കുക."
 
 #. TRANSLATORS: a package needs to restart their system (due to security)
-#: ../client/pk-console.c:593
+#: ../client/pk-console.c:597
 msgid ""
 "Please restart the computer to complete the update as important security "
 "updates have been installed."
 msgstr ""
-"പ്രധാന സുരക്ഷാ പുതുമകള്‍ കാരണം പരിഷ്കരണം പൂര്‍ത്തിയാക്കുന്നതിനായി ദയവായി "
-"നിങ്ങളുടെ കമ്പ്യൂട്ടര്‍ വീണ്ടും ആരംഭിക്കുക."
+"പ്രധാന സുരക്ഷാ പുതുമകള്‍ കാരണം പരിഷ്കരണം പൂര്‍ത്തിയാക്കുന്നതിനായി ദയവായി നിങ്ങളുടെ കമ്പ്യൂട്ടര്‍ "
+"വീണ്ടും ആരംഭിക്കുക."
 
 #. TRANSLATORS: a package needs to restart the session (due to security)
-#: ../client/pk-console.c:596
+#: ../client/pk-console.c:600
 msgid ""
 "Please logout and login to complete the update as important security updates "
 "have been installed."
 msgstr ""
-"പ്രധാന സുരക്ഷാ പുതുമകള്‍ കാരണം പരിഷ്കരണം പൂര്‍ത്തിയാക്കുന്നതിനായി ദയവായി "
-"ലോഗൌട്ട് ചെയ്ത് ലോഗിന്‍ ചെയ്യുക."
+"പ്രധാന സുരക്ഷാ പുതുമകള്‍ കാരണം പരിഷ്കരണം പൂര്‍ത്തിയാക്കുന്നതിനായി ദയവായി ലോഗൌട്ട് ചെയ്ത് ലോഗിന്‍ "
+"ചെയ്യുക."
 
 #. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:723
+#: ../client/pk-console.c:727
 #, c-format
 msgid "The package %s is already installed"
 msgstr "%s എന്ന പാക്കേജ് നിലവില്‍ കമ്പ്യൂട്ടറില്‍ ഇന്‍സ്റ്റോള്‍ ചെയ്തിരിക്കുന്നു."
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:731
+#: ../client/pk-console.c:735
 #, c-format
 msgid "The package %s could not be installed: %s"
 msgstr "%s എന്ന പാക്കേജ് നിങ്ങളുടെ കമ്പ്യൂട്ടറില്‍ ഇന്‍സ്റ്റോള്‍ ചെയ്യുവാന്‍ സാധ്യമായില്ല: %s"
 
 #. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
-#: ../client/pk-console.c:756 ../client/pk-console.c:779
-#: ../client/pk-console.c:875 ../client/pk-console.c:992
+#: ../client/pk-console.c:760 ../client/pk-console.c:783
+#: ../client/pk-console.c:879 ../client/pk-console.c:996
 #: ../client/pk-tools-common.c:62 ../client/pk-tools-common.c:81
 #: ../client/pk-tools-common.c:89
 #, c-format
@@ -278,403 +282,404 @@ msgid "Internal error: %s"
 msgstr "ആന്തരിക പിശക്: %s"
 
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:764 ../client/pk-console.c:1388
+#: ../client/pk-console.c:768 ../client/pk-console.c:1392
 #, c-format
 msgid "This tool could not install the packages: %s"
 msgstr "ഈ പ്രയോഗത്തിനു് പാക്കേജുകള്‍ ഇന്‍സ്റ്റോള്‍ ചെയ്യുവാന്‍ സാധ്യമല്ല: %s"
 
 #. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:787
+#: ../client/pk-console.c:791
 #, c-format
 msgid "This tool could not install the files: %s"
 msgstr "ഈ പ്രയോഗത്തിനു് ഫയലുകള്‍ ഇന്‍സ്റ്റോള്‍ ചെയ്യുവാന്‍ സാധ്യമല്ല: %s"
 
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:843
+#: ../client/pk-console.c:847
 #, c-format
 msgid "This tool could not remove %s: %s"
 msgstr "ഈ പ്രയോഗത്തിനു് %s നീക്കം ചെയ്യുവാന്‍ സാധ്യമായില്ല: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:866 ../client/pk-console.c:904
-#: ../client/pk-console.c:937
+#: ../client/pk-console.c:870 ../client/pk-console.c:908
+#: ../client/pk-console.c:941
 #, c-format
 msgid "This tool could not remove the packages: %s"
 msgstr "ഈ പ്രയോഗത്തിനു് പാക്കേജുകള്‍ നീക്കം ചെയ്യുവാന്‍ സാധ്യമല്ല: %s"
 
 #. TRANSLATORS: When removing, we might have to remove other dependencies
-#: ../client/pk-console.c:916
+#: ../client/pk-console.c:920
 msgid "The following packages have to be removed:"
 msgstr "താഴെ പറയുന്ന പാക്കേജുകള്‍ നീക്കം ചെയ്യേണ്ടതുണ്ടു്."
 
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:923
+#: ../client/pk-console.c:927
 msgid "Proceed removing additional packages?"
 msgstr "അഡീഷണലായ പാക്കേജുകള്‍ നീക്കം ചെയ്യാമല്ലോ?"
 
 #. TRANSLATORS: We did not remove any packages
-#: ../client/pk-console.c:928
+#: ../client/pk-console.c:932
 msgid "The package removal was canceled!"
 msgstr "പാക്കേജ് നീക്കം ചെയ്യല്‍ റദ്ദാക്കിയിരിക്കുന്നു!"
 
 #. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:969
+#: ../client/pk-console.c:973
 #, c-format
 msgid "This tool could not download the package %s as it could not be found"
 msgstr "%s പാക്കേജ് ലഭ്യമല്ലാത്തതിനാല്‍ ഈ പ്രയോഗത്തിനു് അതു് ഇന്‍സ്റ്റോള്‍ ചെയ്യുവാന്‍ സാധ്യമായില്ല"
 
 #. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:1000
+#: ../client/pk-console.c:1004
 #, c-format
 msgid "This tool could not download the packages: %s"
 msgstr "ഈ പ്രയോഗത്തിനു് പാക്കേജുകള്‍ ഡൌണ്‍ലോട് ചെയ്യുവാന്‍ സാധ്യമല്ല: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1027 ../client/pk-console.c:1036
+#: ../client/pk-console.c:1031 ../client/pk-console.c:1040
 #, c-format
 msgid "This tool could not update %s: %s"
 msgstr "ഈ പ്രയോഗത്തിനു് %s പരിഷ്കരിക്കുവാന്‍ സാധ്യമല്ല: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1058 ../client/pk-console.c:1066
+#: ../client/pk-console.c:1062 ../client/pk-console.c:1070
 #, c-format
 msgid "This tool could not get the requirements for %s: %s"
 msgstr "%s-നു് ആവശ്യമുള്ളവ ലഭ്യമാക്കുവാന്‍ ഈ പ്രയോഗത്തിനു് സാധ്യമായില്ല: %s"
 
 #. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:1088 ../client/pk-console.c:1096
+#: ../client/pk-console.c:1092 ../client/pk-console.c:1100
 #, c-format
 msgid "This tool could not get the dependencies for %s: %s"
 msgstr "%s-നുള്ള ഡിപന്‍ഡന്‍സികള്‍ ലഭ്യമാക്കുവാന്‍ ഈ പ്രയോഗത്തിനു് സാധ്യമായില്ല: %s"
 
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:1118 ../client/pk-console.c:1126
+#: ../client/pk-console.c:1122 ../client/pk-console.c:1130
 #, c-format
 msgid "This tool could not get package details for %s: %s"
 msgstr "%s-നുള്ള പാക്കേജിന്റെ വിശദാംശങ്ങള്‍ ലഭ്യമാക്കുവാന്‍ ഈ പ്രയോഗത്തിനു് സാധ്യമായില്ല: %s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1148
+#: ../client/pk-console.c:1152
 #, c-format
 msgid "This tool could not find the files for %s: %s"
 msgstr "%s-നുള്ള ഫയലുകള്‍ ലഭ്യമാക്കുവാന്‍ ഈ പ്രയോഗത്തിനു് സാധ്യമായില്ല: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1156
+#: ../client/pk-console.c:1160
 #, c-format
 msgid "This tool could not get the file list for %s: %s"
 msgstr "%s-നുള്ള ഫയലുകളുടെ പട്ടിക ലഭ്യമാക്കുവാന്‍ ഈ പ്രയോഗത്തിനു് സാധ്യമായില്ല: %s"
 
 #. TRANSLATORS: There was an error getting the list of packages. The filename follows
-#: ../client/pk-console.c:1178
+#: ../client/pk-console.c:1182
 #, c-format
 msgid "File already exists: %s"
 msgstr "ഫയല്‍ നിലവിലുണ്ടു്: %s"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1183 ../client/pk-console.c:1239
-#: ../client/pk-console.c:1314
+#: ../client/pk-console.c:1187 ../client/pk-console.c:1243
+#: ../client/pk-console.c:1318
 msgid "Getting package list"
 msgstr "പാക്കേജ് സംബന്ധിച്ചുള്ള വിവരം ലഭ്യമാകുന്നു"
 
 #. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1189 ../client/pk-console.c:1245
-#: ../client/pk-console.c:1320
+#: ../client/pk-console.c:1193 ../client/pk-console.c:1249
+#: ../client/pk-console.c:1324
 #, c-format
 msgid "This tool could not get package list: %s"
 msgstr "ഈ പ്രയോഗത്തിനു് പാക്കേജുകളുടെ പട്ടിക ലഭ്യമാക്കുവാന്‍ സാധ്യമായില്ല: %s"
 
 #. TRANSLATORS: There was an error saving the list
-#: ../client/pk-console.c:1200
+#: ../client/pk-console.c:1204
 #, c-format
 msgid "Failed to save to disk"
 msgstr "ഡിസ്കിലേക്കു് സൂക്ഷിക്കുവാന്‍ സാധ്യമായില്ല"
 
 #. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1234 ../client/pk-console.c:1309
+#: ../client/pk-console.c:1238 ../client/pk-console.c:1313
 #, c-format
 msgid "File does not exist: %s"
 msgstr "ഫയല്‍ നിലവിലില്ല: %s"
 
 #. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1266
+#: ../client/pk-console.c:1270
 msgid "Packages to add"
 msgstr "ചേര്‍ക്കുവാനുള്ള പാക്കേജുകള്‍"
 
 #. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1274
+#: ../client/pk-console.c:1278
 msgid "Packages to remove"
 msgstr "നീക്കം ചെയ്യുവാനുള്ള പാക്കേജുകള്‍"
 
 #. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1342
+#: ../client/pk-console.c:1346
 #, c-format
 msgid "No new packages need to be installed"
 msgstr "പുതിയ പാക്കേജുകള്‍ ഇന്‍സ്റ്റോള്‍ ചെയ്യുവാന്‍ സാധ്യമായില്ല"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1348
+#: ../client/pk-console.c:1352
 msgid "To install"
 msgstr "ഇന്‍സ്റ്റോള്‍ ചെയ്യുവാനുള്ള പാക്കേജുകള്‍"
 
 #. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1360
+#: ../client/pk-console.c:1364
 msgid "Searching for package: "
 msgstr "പാക്കേജിനായി തെരയുന്നു: "
 
 #. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1364
+#: ../client/pk-console.c:1368
 msgid "not found."
 msgstr "ലഭ്യമായില്ല."
 
 #. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1375
+#: ../client/pk-console.c:1379
 #, c-format
 msgid "No packages can be found to install"
 msgstr "ഇന്‍സ്റ്റോള്‍ ചെയ്യുന്നതിനുള്ള പാക്കേജുകള്‍ ലഭ്യമല്ല"
 
 #. TRANSLATORS: installing new packages from package list
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
-#: ../client/pk-console.c:1381
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:868
+#: ../client/pk-console.c:1385
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:886
 #, c-format
 msgid "Installing packages"
 msgstr "പാക്കേജുകള്‍ ഇന്‍സ്റ്റോള്‍ ചെയ്യുന്നു"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1417
+#: ../client/pk-console.c:1421
 #, c-format
 msgid "This tool could not find the update details for %s: %s"
 msgstr "%s-നു് പരിഷ്കരണത്തിനുള്ള വിശദാംശങ്ങള്‍ ലഭ്യമാക്കുവാന്‍ ഈ പ്രയോഗത്തിനു് സാധ്യമായില്ല: %s"
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1425
+#: ../client/pk-console.c:1429
 #, c-format
 msgid "This tool could not get the update details for %s: %s"
 msgstr "%s-നു് പരിഷ്കരണത്തിനുള്ള വിശദാംശങ്ങള്‍ ലഭ്യമാക്കുവാന്‍ ഈ പ്രയോഗത്തിനു് സാധ്യമായില്ല: %s"
 
 #. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
-#: ../client/pk-console.c:1456
+#: ../client/pk-console.c:1460
 msgid "Error:"
 msgstr "പിശക്:"
 
 #. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1470
+#: ../client/pk-console.c:1474
 msgid "Package description"
 msgstr "പാക്കേജ് വിശദാംശങ്ങള്‍"
 
 #. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
-#: ../client/pk-console.c:1486
+#: ../client/pk-console.c:1490
 msgid "Message:"
 msgstr "സന്ദേശം:"
 
 #. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1514
+#: ../client/pk-console.c:1518
 msgid "Package files"
 msgstr "പാക്കേജിലുള്ള ഫയലുകള്‍"
 
 #. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1522
+#: ../client/pk-console.c:1526
 msgid "No files"
 msgstr "ഫയലുകള്‍ ലഭ്യമല്ല"
 
 #. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1545
+#: ../client/pk-console.c:1549
 msgid "Repository signature required"
 msgstr "സംഭരണിയ്ക്കുള്ള ജിപിജി ഒപ്പ് ആവശ്യമുണ്ടു്"
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1555
+#: ../client/pk-console.c:1559
 msgid "Do you accept this signature?"
 msgstr "ഈ ഓപ്പ് നിങ്ങള്‍ അംഗീകരിക്കുന്നുവോ?"
 
 #. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1559
+#: ../client/pk-console.c:1563
 msgid "The signature was not accepted."
 msgstr "ഒപ്പ് സ്വീകരിക്കുന്നില്ല."
 
 #. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1593
+#: ../client/pk-console.c:1597
 msgid "End user license agreement required"
 msgstr "ഉപയോക്താവിനുള്ള ലൈസന്‍സ് എഗ്രീമെന്റ് ആവശ്യമുണ്ടു്"
 
 #. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1600
+#: ../client/pk-console.c:1604
 msgid "Do you agree to this license?"
 msgstr "നിങ്ങള്‍ ഈ ലൈസന്‍സ് സ്വീകരിക്കുന്നുവോ?"
 
 #. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1604
+#: ../client/pk-console.c:1608
 msgid "The license was refused."
 msgstr "ലൈസന്‍സ് നിഷേധിച്ചിരിക്കുന്നു."
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1633
+#: ../client/pk-console.c:1637
 msgid "The daemon crashed mid-transaction!"
 msgstr "ഡെമണ്‍ തകര്‍ന്നിരിക്കുന്നു!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1686
+#: ../client/pk-console.c:1690
 msgid "PackageKit Console Interface"
 msgstr "പാക്കേജ്കിറ്റ് കണ്‍സോള്‍ ഇന്റര്‍ഫെയിസ്"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1688
+#: ../client/pk-console.c:1692
 msgid "Subcommands:"
 msgstr "സബ്കമാന്‍ഡുകള്‍:"
 
 #. TRANSLATORS: command line argument, if we should show debugging information
 #. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:1780 ../client/pk-generate-pack.c:185
-#: ../client/pk-monitor.c:125
-#: ../contrib/command-not-found/pk-command-not-found.c:521
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:532
-#: ../src/pk-main.c:211
+#: ../client/pk-console.c:1785 ../client/pk-generate-pack.c:185
+#: ../client/pk-monitor.c:128
+#: ../contrib/command-not-found/pk-command-not-found.c:616
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:550
+#: ../contrib/device-rebind/pk-device-rebind.c:293 ../src/pk-main.c:211
 msgid "Show extra debugging information"
 msgstr "കൂടുതല്‍ ഡീബഗ്ഗിങ് വിവരം കാണിക്കുക"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1783 ../client/pk-monitor.c:127
+#: ../client/pk-console.c:1788 ../client/pk-monitor.c:130
 msgid "Show the program version and exit"
 msgstr "പ്രോഗ്രാമിന്റെ പതിപ്പ് കാണിച്ചശേഷം പുറത്ത് കടക്കുക"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1786
+#: ../client/pk-console.c:1791
 msgid "Set the filter, e.g. installed"
 msgstr "ഫില്‍‌റ്റര്‍ ക്രമികരിക്കുക, e.g. ഇന്‍സ്റ്റോള്‍ ചെയ്തിരിക്കുന്നു"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1789
+#: ../client/pk-console.c:1794
 msgid "Exit without waiting for actions to complete"
 msgstr "പൂര്‍ത്തിയാകുന്നതിനുള്ള പ്രവര്‍ത്തികള്‍ക്കായി കാത്തിരിക്കാതെ പുറത്ത് കടക്കുക"
 
 #. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:1816
+#: ../client/pk-console.c:1821
 msgid "This tool could not connect to system DBUS."
 msgstr "സിസ്റ്റം ഡീബസിലേക്ക് കണക്ട് ചെയ്യുവാന്‍ ഈ പ്രയോഗത്തിനു് സാധ്യമല്ല."
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1905
+#: ../client/pk-console.c:1911
 msgid "The filter specified was invalid"
 msgstr "നല്‍കിയ ഫില്‍‌റ്റര്‍ തെറ്റാണു്"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1923
+#: ../client/pk-console.c:1930
 msgid "A search type is required, e.g. name"
 msgstr "തെരയുന്നതിനുള്ള തരം ആവശ്യമുണ്ടു്, ഉദാ. പേരു്"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1929 ../client/pk-console.c:1937
-#: ../client/pk-console.c:1945 ../client/pk-console.c:1953
+#: ../client/pk-console.c:1937 ../client/pk-console.c:1946
+#: ../client/pk-console.c:1955 ../client/pk-console.c:1964
 msgid "A search term is required"
 msgstr "തെരയുന്നതിനുള്ള വാചകം ആവശ്യമുണ്ടു്"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1959
+#: ../client/pk-console.c:1971
 msgid "Invalid search type"
 msgstr "തെറ്റായ തരത്തിലുള്ള തെരച്ചില്‍"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1965
+#: ../client/pk-console.c:1977
 msgid "A package name or filename to install is required"
 msgstr "ഇന്‍സ്റ്റോള്‍ ചെയ്യുന്നതിനുള്ള പാക്കേജിന്റെ പേരു് അല്ലെങ്കില്‍ ഫയലിന്റെ പേരു് ആവശ്യമുണ്ടു്"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1973
+#: ../client/pk-console.c:1986
 msgid "A type, key_id and package_id are required"
 msgstr "ഏത് തരം, key_id, package_id എന്നിവ ആവശ്യമുണ്ടു്"
 
 #. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:1981
+#: ../client/pk-console.c:1995
 msgid "A package name to remove is required"
 msgstr "നീക്കം ചെയ്യുവാനുള്ള പാക്കേജിന്റെ പേരു് ആവശ്യമുണ്ടു്"
 
 #. TRANSLATORS: the user did not specify anything about what to download or where
-#: ../client/pk-console.c:1988
-msgid "A destination directory and then the package names to download are required"
+#: ../client/pk-console.c:2003
+#, fuzzy
+msgid "A destination directory and the package names to download are required"
 msgstr "ഏതു് ഡയറക്ടറി എന്നും ഡൌണ്‍ലോട് ചെയ്യുവാനുള്ള പാക്കേജുകളും ആവശ്യമുണ്ടു്"
 
 #. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:1994
+#: ../client/pk-console.c:2010
 msgid "Directory not found"
 msgstr "ഡയറക്ടറി ലഭ്യമല്ല"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2001
+#: ../client/pk-console.c:2018
 msgid "A licence identifier (eula-id) is required"
 msgstr "ലൈസന്‍സ് ഐഡന്റിഫയര്‍ (eula-id) ആവശ്യമുണ്ടു്"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2010
+#: ../client/pk-console.c:2028
 msgid "A transaction identifier (tid) is required"
 msgstr "ഒരു ട്രാന്‍സാക്ഷന്‍ ഐഡന്റിഫയര്‍ (tid) ആവശ്യമുണ്ടു്"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:2026
+#: ../client/pk-console.c:2045
 msgid "A package name to resolve is required"
 msgstr "റിസോള്‍വ് ചെയ്യുവാനുള്ള പാക്കേജിന്റെ പേരു് ആവശ്യമുണ്ടു്"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:2034 ../client/pk-console.c:2042
+#: ../client/pk-console.c:2054 ../client/pk-console.c:2063
 msgid "A repository name is required"
 msgstr "സംഭരണിയ്ക്കുള്ള പേരു് ആവശ്യമുണ്ടു്"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2050
+#: ../client/pk-console.c:2072
 msgid "A repo name, parameter and value are required"
 msgstr "ഒരു റിപ്പോയുടെ പേരും പരാമീറ്റരും മൂല്ല്യവും ആവശ്യമുണ്ടു്"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:2063
+#: ../client/pk-console.c:2086
 msgid "An action, e.g. 'update-system' is required"
 msgstr "ഒരു പ്രവര്‍ത്തി ആവശ്യമുണ്ടു്, ഉദാ. 'update-system'"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:2069
+#: ../client/pk-console.c:2093
 msgid "A correct role is required"
 msgstr "ശരിയായ റോള്‍ ആവശ്യമുണ്ടു്"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2075
+#: ../client/pk-console.c:2100
 msgid "Failed to get the time since this action was last completed"
 msgstr "ഈ പ്രവര്‍ത്തി അവസാനമായി പൂര്‍ത്തിയാക്കിയ സമയം ലഭ്യമായില്ല"
 
 #. TRANSLATORS: The user did not provide a package name
 #. TRANSLATORS: This is when the user fails to supply the package name
-#: ../client/pk-console.c:2084 ../client/pk-console.c:2095
-#: ../client/pk-console.c:2103 ../client/pk-console.c:2119
-#: ../client/pk-console.c:2127 ../client/pk-generate-pack.c:241
+#: ../client/pk-console.c:2110 ../client/pk-console.c:2122
+#: ../client/pk-console.c:2131 ../client/pk-console.c:2149
+#: ../client/pk-console.c:2158 ../client/pk-generate-pack.c:241
 msgid "A package name is required"
 msgstr "പാക്കേജിന്റ് പേരു് ആവശ്യമുണ്ടു്"
 
 #. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:2111
+#: ../client/pk-console.c:2140
 msgid "A package provide string is required"
 msgstr "പാക്കേജ് ലഭ്യമാക്കുന്ന സ്ട്രിങ് ആവശ്യമുണ്ടു്"
 
 #. TRANSLATORS: The user didn't specify a filename to create as a list
-#: ../client/pk-console.c:2135
+#: ../client/pk-console.c:2167
 msgid "A list file name to create is required"
 msgstr "ലിസ്റ്റായി ഉണ്ടാക്കുവാനുള്ള ഫയലിന്റെ നാമം ആവശ്യമുണ്ടു്"
 
 #. TRANSLATORS: The user didn't specify a filename to open as a list
-#: ../client/pk-console.c:2144 ../client/pk-console.c:2153
+#: ../client/pk-console.c:2177 ../client/pk-console.c:2187
 msgid "A list file to open is required"
 msgstr "ലിസ്റ്റായി തുറക്കുവാനുള്ള ഫയലിന്റെ നാമം ആവശ്യമുണ്ടു്"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2206
+#: ../client/pk-console.c:2241
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "'%s' എന്ന ഐച്ഛികത്തിനുള്ള പിന്തുണ ലഭ്യമല്ല"
 
 #. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2219
+#: ../client/pk-console.c:2254
 msgid "Incorrect privileges for this operation"
 msgstr "ഈ പ്രക്രിയ നടപ്പിലാക്കുന്നതിനുള്ള തെറ്റായ അനുമതികള്‍"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2222
+#: ../client/pk-console.c:2257
 msgid "Command failed"
 msgstr "നിര്‍ദ്ദേശം പരാജയപ്പെട്ടു"
 
@@ -700,7 +705,8 @@ msgstr "ചേര്‍ക്കേണ്ടാത്ത ഡിപന്‍ഡà´
 
 #. TRANSLATORS: the output location
 #: ../client/pk-generate-pack.c:191
-msgid "The output file or directory (the current directory is used if ommitted)"
+msgid ""
+"The output file or directory (the current directory is used if ommitted)"
 msgstr ""
 "ഔട്ട്പുട്ട് ഫയല്‍ അല്ലെങ്കില്‍ ഡയറക്ടറി (നല്‍കിയിട്ടില്ല എങ്കില്‍ നിലവിലുള്ള ഡയറക്ടറി ആണു് "
 "ഉപയോഗിക്കുന്നതു്)"
@@ -742,8 +748,7 @@ msgid ""
 "Service packs cannot be created as PackageKit was not built with libarchive "
 "support."
 msgstr ""
-"libarchive പിന്തുണ ഇല്ലാതെ PackageKit ഉണ്ടാക്കിയതിനാല്‍, സര്‍വീസ് പാക്കുകള്‍ "
-"ലഭ്യമാകുന്നതല്ല."
+"libarchive പിന്തുണ ഇല്ലാതെ PackageKit ഉണ്ടാക്കിയതിനാല്‍, സര്‍വീസ് പാക്കുകള്‍ ലഭ്യമാകുന്നതല്ല."
 
 #. TRANSLATORS: the user specified an absolute path, but didn't get the extension correct
 #: ../client/pk-generate-pack.c:291
@@ -799,10 +804,14 @@ msgid "Failed to create '%s': %s"
 msgstr "'%s' ഉണ്ടാക്കുന്നതില്‍ പരാജയം: %s"
 
 #. TRANSLATORS: this is a program that monitors PackageKit
-#: ../client/pk-monitor.c:143
+#: ../client/pk-monitor.c:146
 msgid "PackageKit Monitor"
 msgstr "പാക്കേജ്കിറ്റ് നിരീക്ഷകന്‍"
 
+#: ../client/pk-monitor.c:183
+msgid "Cannot show the list of transactions"
+msgstr ""
+
 #. TRANSLATORS: The package was not found in any software sources
 #: ../client/pk-tools-common.c:118
 #, c-format
@@ -824,313 +833,433 @@ msgstr "ദയവായി ശരിയായ പാക്കേജ് തെര
 msgid "Please enter a number from 1 to %i: "
 msgstr "ദയവായി 1 മുതല്‍ %i വരെയുള്ള ഒരു അക്കം നല്‍കുക: "
 
+#. TRANSLATORS: when we are getting data from the daemon
+#: ../contrib/browser-plugin/pk-plugin-install.c:466
+msgid "Getting package information..."
+msgstr "പാക്കേജ് സംബന്ധിച്ചുള്ള വിവരം ലഭ്യമാകുന്നു..."
+
+#. TRANSLATORS: run an applicaiton
+#: ../contrib/browser-plugin/pk-plugin-install.c:472
+#, c-format
+msgid "Run %s"
+msgstr "%s പ്രവര്‍ത്തിപ്പിക്കുക"
+
+#. TRANSLATORS: show the installed version of a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:478
+msgid "Installed version"
+msgstr "ഇന്‍സ്റ്റോള്‍ ചെയ്തിരിക്കുന്ന പതിപ്പ്"
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:486
+#, c-format
+msgid "Run version %s now"
+msgstr "%s എന്ന പതിപ്പ് ഉടന്‍ പ്രവര്‍ത്തിപ്പിക്കുക"
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:492
+msgid "Run now"
+msgstr "ഉടന്‍ പ്രവര്‍ത്തിപ്പിക്കുക"
+
+#. TRANSLATORS: update to a new version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:498
+#, c-format
+msgid "Update to version %s"
+msgstr "%s എന്ന പതിപ്പിലേക്ക് പരിഷ്കരിക്കുക"
+
+#. TRANSLATORS: To install a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:504
+#, c-format
+msgid "Install %s now"
+msgstr "%s ഉടന്‍ ഇന്‍സ്റ്റോള്‍ ചെയ്യുക"
+
+#. TRANSLATORS: the version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:507
+msgid "Version"
+msgstr "പതിപ്പ്"
+
+#. TRANSLATORS: noting found, so can't install
+#: ../contrib/browser-plugin/pk-plugin-install.c:512
+msgid "No packages found for your system"
+msgstr "നിങ്ങളുടെ സിസ്റ്റമില്‍ ഇന്‍സ്റ്റോള്‍ ചെയ്യുന്നതിനുള്ള പാക്കേജുകള്‍ ലഭ്യമല്ല"
+
+#. TRANSLATORS: package is being installed
+#: ../contrib/browser-plugin/pk-plugin-install.c:517
+msgid "Installing..."
+msgstr "ഇന്‍സ്റ്റോള്‍ ചെയ്യുന്നു..."
+
+#. TRANSLATORS: downloading repo data so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:349
+msgid "Downloading details about the software sources."
+msgstr ""
+
+#. TRANSLATORS: downloading file lists so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:353
+msgid "Downloading filelists (this may take some time to complete)."
+msgstr ""
+
+#. TRANSLATORS: waiting for native lock
+#: ../contrib/command-not-found/pk-command-not-found.c:357
+#, fuzzy
+msgid "Waiting for package manager lock."
+msgstr "പാക്കേജിന്റെ പേര് കണ്ടുപിടിക്കുന്നു."
+
+#. TRANSLATORS: loading package cache so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:361
+#, fuzzy
+msgid "Loading list of packages."
+msgstr "പാക്കേജുകള്‍ ഡൌണ്‍ലോട് ചെയ്യുന്നു"
+
 #. TRANSLATORS: we failed to find the package, this shouldn't happen
-#: ../contrib/command-not-found/pk-command-not-found.c:372
+#: ../contrib/command-not-found/pk-command-not-found.c:420
 msgid "Failed to search for file"
 msgstr "ഫയല്‍ കണ്ടുപിടിക്കുന്നതില്‍ പരാജയപ്പെട്ടു"
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:496
+#: ../contrib/command-not-found/pk-command-not-found.c:557
 msgid "Failed to launch:"
 msgstr "ലഭ്യമാക്കുന്നതില്‍ പരാജയപ്പെട്ടു:"
 
 #. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/command-not-found/pk-command-not-found.c:537
+#: ../contrib/command-not-found/pk-command-not-found.c:632
 msgid "PackageKit Command Not Found"
 msgstr "പാക്കേജ്കിറ്റ് കമാന്‍ഡ് ലഭ്യമായില്ല"
 
 #. TRANSLATORS: the prefix of all the output telling the user why it's not executing
-#: ../contrib/command-not-found/pk-command-not-found.c:560
+#: ../contrib/command-not-found/pk-command-not-found.c:658
 msgid "Command not found."
 msgstr "കമാന്‍ഡ് ലഭ്യമായില്ല."
 
 #. TRANSLATORS: tell the user what we think the command is
-#: ../contrib/command-not-found/pk-command-not-found.c:567
+#: ../contrib/command-not-found/pk-command-not-found.c:665
 msgid "Similar command is:"
 msgstr "ഇതു് പോലുള്ള കമാന്‍ഡ്:"
 
 #. TRANSLATORS: Ask the user if we should run the similar command
-#: ../contrib/command-not-found/pk-command-not-found.c:576
+#: ../contrib/command-not-found/pk-command-not-found.c:674
 msgid "Run similar command:"
 msgstr "ഇതുപോലുള്ള കമാന്‍ഡ് പ്രവര്‍ത്തിക്കുക:"
 
 #. TRANSLATORS: show the user a list of commands that they could have meant
 #. TRANSLATORS: show the user a list of commands we could run
-#: ../contrib/command-not-found/pk-command-not-found.c:588
-#: ../contrib/command-not-found/pk-command-not-found.c:597
+#: ../contrib/command-not-found/pk-command-not-found.c:686
+#: ../contrib/command-not-found/pk-command-not-found.c:695
 msgid "Similar commands are:"
 msgstr "ഇതു് പോലുള്ള കമാന്‍ഡുകള്‍:"
 
 #. TRANSLATORS: ask the user to choose a file to run
-#: ../contrib/command-not-found/pk-command-not-found.c:604
+#: ../contrib/command-not-found/pk-command-not-found.c:702
 msgid "Please choose a command to run"
 msgstr "പ്രവര്‍ത്തിപ്പിക്കുന്നതിനുള്ള കമാന്‍ഡ് ദയവായി തെരഞ്ഞെടുക്കുക"
 
 #. TRANSLATORS: tell the user what package provides the command
-#: ../contrib/command-not-found/pk-command-not-found.c:619
+#: ../contrib/command-not-found/pk-command-not-found.c:721
 msgid "The package providing this file is:"
 msgstr "ഈ ഫയല്‍ ലഭ്യമാക്കുന്ന പാക്കേജ്:"
 
 #. TRANSLATORS: as the user if we want to install a package to provide the command
-#: ../contrib/command-not-found/pk-command-not-found.c:624
+#: ../contrib/command-not-found/pk-command-not-found.c:726
 #, c-format
 msgid "Install package '%s' to provide command '%s'?"
 msgstr "'%s' പാക്കേജ് ഇന്‍സ്റ്റോള്‍ ചെയ്യുക, ഇതു് '%s' നിര്‍ദ്ദേശം നല്‍കുന്നു?"
 
 #. TRANSLATORS: Show the user a list of packages that provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:645
+#: ../contrib/command-not-found/pk-command-not-found.c:747
 msgid "Packages providing this file are:"
 msgstr "ഈ ഫയല്‍ ലഭ്യമാക്കുന്ന പാക്കേജുകള്‍:"
 
 #. TRANSLATORS: Show the user a list of packages that they can install to provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:654
+#: ../contrib/command-not-found/pk-command-not-found.c:756
 msgid "Suitable packages are:"
 msgstr "ഉചിതമായ പാക്കേജുകള്‍:"
 
 #. get selection
 #. TRANSLATORS: ask the user to choose a file to install
-#: ../contrib/command-not-found/pk-command-not-found.c:662
+#: ../contrib/command-not-found/pk-command-not-found.c:764
 msgid "Please choose a package to install"
 msgstr "ദയവായി ഇന്‍സ്റ്റോള്‍ ചെയ്യുന്നതിനായി ഒരു പാക്കേജ് തെരഞ്ഞെടുക്കുക"
 
-#. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/src/contents.cpp:299
-msgid "Getting package information..."
-msgstr "പാക്കേജ് സംബന്ധിച്ചുള്ള വിവരം ലഭ്യമാകുന്നു..."
-
-#. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/src/contents.cpp:305
-#, c-format
-msgid "Run %s"
-msgstr "%s പ്രവര്‍ത്തിപ്പിക്കുക"
-
-#. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/src/contents.cpp:311
-msgid "Installed version"
-msgstr "ഇന്‍സ്റ്റോള്‍ ചെയ്തിരിക്കുന്ന പതിപ്പ്"
-
-#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/src/contents.cpp:319
-#, c-format
-msgid "Run version %s now"
-msgstr "%s എന്ന പതിപ്പ് ഉടന്‍ പ്രവര്‍ത്തിപ്പിക്കുക"
-
-#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/src/contents.cpp:325
-msgid "Run now"
-msgstr "ഉടന്‍ പ്രവര്‍ത്തിപ്പിക്കുക"
-
-#. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/src/contents.cpp:331
-#, c-format
-msgid "Update to version %s"
-msgstr "%s എന്ന പതിപ്പിലേക്ക് പരിഷ്കരിക്കുക"
-
-#. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/src/contents.cpp:337
-#, c-format
-msgid "Install %s now"
-msgstr "%s ഉടന്‍ ഇന്‍സ്റ്റോള്‍ ചെയ്യുക"
-
-#. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/src/contents.cpp:340
-msgid "Version"
-msgstr "പതിപ്പ്"
-
-#. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/src/contents.cpp:345
-msgid "No packages found for your system"
-msgstr "നിങ്ങളുടെ സിസ്റ്റമില്‍ ഇന്‍സ്റ്റോള്‍ ചെയ്യുന്നതിനുള്ള പാക്കേജുകള്‍ ലഭ്യമല്ല"
-
-#. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/src/contents.cpp:350
-msgid "Installing..."
-msgstr "ഇന്‍സ്റ്റോള്‍ ചെയ്യുന്നു..."
-
 #. TRANSLATORS: we are starting to install the packages
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:186
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:187
 msgid "Starting install"
 msgstr "ഇന്‍സ്റ്റോള്‍ ചെയ്യുവാന്‍ ആരംഭിക്കുന്നു"
 
 #. TRANSLATORS: we couldn't find the package name, non-fatal
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:379
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:397
 #, c-format
 msgid "Failed to find the package %s, or already installed: %s"
 msgstr "%s എന്ന പാക്കേജ് നിലവില്‍ ലഭ്യമല്ല അല്ലെങ്കില്‍ കമ്പ്യൂട്ടറില്‍ ഇന്‍സ്റ്റോള്‍ ചെയ്തിരിക്കുന്നു: %s"
 
 #. command line argument, simulate what would be done, but don't actually do it
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:535
-msgid "Don't actually install any packages, only simulate what would be installed"
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:553
+msgid ""
+"Don't actually install any packages, only simulate what would be installed"
 msgstr "പാക്കേജുകള്‍ ഇന്‍സ്റ്റോള്‍ ചെയ്യേണ്ട പകരം, ഇന്‍സ്റ്റോള്‍ ചെയ്യേണ്ടവ സിമുലേറ്റ് ചെയ്യുക"
 
 #. command line argument, do we skip packages that depend on the ones specified
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:538
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:556
 msgid "Do not install dependencies of the core packages"
 msgstr "കോര്‍ പാക്കേജുകളുടെ ഡിപന്‍ഡന്‍സികള്‍ ഇന്‍സ്റ്റോള്‍ ചെയ്യരുതു്"
 
 #. command line argument, do we operate quietly
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:541
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:559
 msgid "Do not display information or progress"
 msgstr "വിവരം അല്ലെങ്കില്‍ പുരോഗതി ലഭ്യമാക്കേണ്ട"
 
 #. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:559
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:577
 msgid "PackageKit Debuginfo Installer"
 msgstr "PackageKit Debuginfo Installer"
 
 #. TRANSLATORS: the use needs to specify a list of package names on the command line
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:571
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:589
 #, c-format
 msgid "ERROR: Specify package names to install."
 msgstr "പിശക്: ഇന്‍സ്റ്റോള്‍ ചെയ്യുവാനുള്ള പാക്കേജുകള്‍ വ്യക്തമാക്കുക."
 
 #. TRANSLATORS: we are getting the list of repositories
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:605
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:623
 #, c-format
 msgid "Getting sources list"
 msgstr "റിപ്പോസിറ്ററികളുടെ വിവരം ലഭ്യമാകുന്നു"
 
 #. TRANSLATORS: all completed 100%
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:623
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:663
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:698
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:782
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:826
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:893
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:937
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:641
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:681
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:716
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:800
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:844
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:911
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:955
 #, c-format
 msgid "OK."
 msgstr "ശരി."
 
 #. TRANSLATORS: tell the user what we found
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:626
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:644
 #, c-format
 msgid "Found %i enabled and %i disabled sources."
 msgstr "%i സജ്ജമാക്കിയവയും %i പ്രവര്‍ത്തന രഹിതവുമായ സോഴ്സുകള്‍ ലഭ്യമാണു്."
 
 #. TRANSLATORS: we're finding repositories that match out pattern
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:633
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:651
 #, c-format
 msgid "Finding debugging sources"
 msgstr "ഡീബഗ്ഗിങ് സോഴ്സുകള്‍ ലഭ്യമാക്കുന്നു"
 
 #. TRANSLATORS: tell the user what we found
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:666
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:684
 #, c-format
 msgid "Found %i disabled debuginfo repos."
 msgstr "പ്രവര്‍ത്തന രഹിതമായ %i debuginfo റിപ്പോകള്‍ ലഭ്യമാക്കിയിരിക്കുന്നു."
 
 #. TRANSLATORS: we're now enabling all the debug sources we found
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:673
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:691
 #, c-format
 msgid "Enabling debugging sources"
 msgstr "ഡീബഗ്ഗിങ് സോഴ്സുകള്‍ സജ്ജമാക്കുന്നു"
 
 #. TRANSLATORS: operation was not successful
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:683
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:767
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:811
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:878
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:922
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:701
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:785
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:829
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:896
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:940
 msgid "FAILED."
 msgstr "FAILED."
 
 #. TRANSLATORS: tell the user how many we enabled
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:701
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:719
 #, c-format
 msgid "Enabled %i debugging sources."
 msgstr "%i ഡീബഗ്ഗിങ് സോഴ്സുകള്‍ സജ്ജമാക്കിയിരിക്കുന്നു."
 
 #. TRANSLATORS: we're now finding packages that match in all the repos
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:708
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:726
 #, c-format
 msgid "Finding debugging packages"
 msgstr "എല്ലാ റിപ്പോകളിലുമുള്ള പാക്കേജുകള്‍ (ഡീബഗ്ഗിങ്) കണ്ടുപിടിക്കുന്നു."
 
 #. TRANSLATORS: we couldn't find the package name, non-fatal
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:720
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:738
 #, c-format
 msgid "Failed to find the package %s: %s"
 msgstr "%s എന്ന പാക്കേജ് കണ്ടുപിടിക്കുവാനായില്ല: %s"
 
 #. TRANSLATORS: we couldn't find the debuginfo package name, non-fatal
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:743
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:761
 #, c-format
 msgid "Failed to find the debuginfo package %s: %s"
 msgstr "debuginfo പാക്കേജ് %s കണ്ടുപിടിക്കുവാനായില്ല: %s"
 
 #. TRANSLATORS: no debuginfo packages could be found to be installed
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:771
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:789
 #, c-format
 msgid "Found no packages to install."
 msgstr "ഇന്‍സ്റ്റോള്‍ ചെയ്യുവാന്‍ പാക്കേജുകള്‍ ലഭ്യമായില്ല."
 
 #. TRANSLATORS: tell the user we found some packages, and then list them
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:785
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:803
 #, c-format
 msgid "Found %i packages:"
 msgstr "%i പാക്കേജുകള്‍ ലഭ്യമായി:"
 
 #. TRANSLATORS: tell the user we are searching for deps
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:801
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:819
 #, c-format
 msgid "Finding packages that depend on these packages"
 msgstr "ഈ പാക്കേജുകളെ ആശ്രയിക്കുന്ന പാക്കേജുകള്‍ ലഭ്യമാക്കുന്നു"
 
 #. TRANSLATORS: could not install, detailed error follows
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:814
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:832
 #, c-format
 msgid "Could not find dependant packages: %s"
 msgstr "ഡിപന്‍ഡന്റ് പാക്കേജുകള്‍ കണ്ടുപിടിക്കുവാനായില്ല: %s"
 
 #. TRANSLATORS: tell the user we found some more packages
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:830
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:848
 #, c-format
 msgid "Found %i extra packages."
 msgstr "അധികമായ %i പാക്കേജുകള്‍ ലഭ്യമായിരിക്കുന്നു."
 
 #. TRANSLATORS: tell the user we found some more packages
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:834
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:852
 #, c-format
 msgid "No extra packages required."
 msgstr "അധികമായ പാക്കേജുകള്‍ ആവശ്യമില്ല."
 
 #. TRANSLATORS: tell the user we found some packages (and deps), and then list them
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:843
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:861
 #, c-format
 msgid "Found %i packages to install:"
 msgstr "%i പാക്കേജുകള്‍ ഇന്‍സ്റ്റോള്‍ ചെയ്യുവാനുണ്ടു്:"
 
 #. TRANSLATORS: simulate mode is a testing mode where we quit before the action
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:856
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:874
 #, c-format
 msgid "Not installing packages in simulate mode"
 msgstr "സിമുലേറ്റ് മോഡില്‍ പാക്കേജുകള്‍ ഇന്‍സ്റ്റോള്‍ ചെയ്യുന്നതല്ല"
 
-#. TRANSLATORS: coul dnot install, detailed error follows
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:881
+#. TRANSLATORS: could not install, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:899
 #, c-format
 msgid "Could not install packages: %s"
 msgstr "പാക്കേജുകള്‍ ഇന്‍സ്റ്റോള്‍ ചെയ്യുവാന്‍ സാധ്യമല്ല: %s"
 
 #. TRANSLATORS: we are now disabling all debuginfo repos we previously enabled
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:913
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:931
 #, c-format
 msgid "Disabling sources previously enabled"
 msgstr "മുമ്പ് സജ്ജമാക്കിയ സോഴ്സുകള്‍ പ്രവര്‍ത്തന രഹിതമാക്കുന്നു"
 
 #. TRANSLATORS: no debuginfo packages could be found to be installed, detailed error follows
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:925
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:943
 #, c-format
 msgid "Could not disable the debugging sources: %s"
 msgstr "ഡീബഗ്ഗിങ് സോഴ്സുകള്‍ പ്രവര്‍ത്തന രഹിതമാക്കുവാന്‍ സാധിച്ചില്ല: %s"
 
 #. TRANSLATORS: we disabled all the debugging repos that we enabled before
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:940
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:958
 #, c-format
 msgid "Disabled %i debugging sources."
 msgstr "%i ഡീബഗ്ഗിങ് സോഴ്സുകള്‍ പ്രവര്‍ത്തന രഹിതമാക്കിയിരിക്കുന്നു."
 
+#. TRANSLATORS: couldn't open device to write
+#: ../contrib/device-rebind/pk-device-rebind.c:61
+#, fuzzy
+msgid "Failed to open file"
+msgstr "ഫയല്‍ കണ്ടുപിടിക്കുന്നതില്‍ പരാജയപ്പെട്ടു"
+
+#. TRANSLATORS: could not write to the device
+#: ../contrib/device-rebind/pk-device-rebind.c:70
+#, fuzzy
+msgid "Failed to write to the file"
+msgstr "ഫയല്‍ കണ്ടുപിടിക്കുന്നതില്‍ പരാജയപ്പെട്ടു"
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:110
+#: ../contrib/device-rebind/pk-device-rebind.c:147
+#, fuzzy
+msgid "Failed to write to device"
+msgstr "ഡിസ്കിലേക്കു് സൂക്ഷിക്കുവാന്‍ സാധ്യമായില്ല"
+
+#. TRANSLATORS: the device could not be found in sysfs
+#: ../contrib/device-rebind/pk-device-rebind.c:175
+#, fuzzy
+msgid "Device could not be found"
+msgstr "പാക്കേജ് ലഭ്യമായില്ല"
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:202
+#, fuzzy
+msgid "Failed to unregister driver"
+msgstr "ഡയറക്ടറി ഉണ്ടാക്കുന്നതില്‍ പരാജയം:"
+
+#. TRANSLATORS: we failed to bind the old driver
+#: ../contrib/device-rebind/pk-device-rebind.c:211
+#, fuzzy
+msgid "Failed to register driver"
+msgstr "ഡയറക്ടറി ഉണ്ടാക്കുന്നതില്‍ പരാജയം:"
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:260
+#, fuzzy
+msgid "Device path not found"
+msgstr "ഡയറക്ടറി ലഭ്യമല്ല"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:268
+msgid "Incorrect device path specified"
+msgstr ""
+
+#. command line argument, simulate what would be done, but don't actually do it
+#: ../contrib/device-rebind/pk-device-rebind.c:296
+#, fuzzy
+msgid "Don't actually touch the hardware, only simulate what would be done"
+msgstr "പാക്കേജുകള്‍ ഇന്‍സ്റ്റോള്‍ ചെയ്യേണ്ട പകരം, ഇന്‍സ്റ്റോള്‍ ചെയ്യേണ്ടവ സിമുലേറ്റ് ചെയ്യുക"
+
+#. TRANSLATORS: command line option: a list of files to install
+#: ../contrib/device-rebind/pk-device-rebind.c:299
+msgid "Device paths"
+msgstr ""
+
+#. TRANSLATORS: tool that gets called when the device needs reloading after installing firmware
+#: ../contrib/device-rebind/pk-device-rebind.c:314
+#, fuzzy
+msgid "PackageKit Device Reloader"
+msgstr "പാക്കേജ്കിറ്റിനുള്ള സര്‍വീസ് പാക്ക്"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:322
+msgid "You need to specify at least one valid device path"
+msgstr ""
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:332
+msgid "This script can only be used by the root user"
+msgstr ""
+
+#. TRANSLATORS: we're going to verify the path first
+#: ../contrib/device-rebind/pk-device-rebind.c:341
+msgid "Verifying device path"
+msgstr ""
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:346
+#, fuzzy
+msgid "Failed to verify device path"
+msgstr "ഫയല്‍ കണ്ടുപിടിക്കുന്നതില്‍ പരാജയപ്പെട്ടു"
+
+#. TRANSLATORS: we're going to try
+#: ../contrib/device-rebind/pk-device-rebind.c:360
+msgid "Attempting to rebind device"
+msgstr ""
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:365
+#, fuzzy
+msgid "Failed to rebind device"
+msgstr "ഡയറക്ടറി ഉണ്ടാക്കുന്നതില്‍ പരാജയം:"
+
 #: ../data/packagekit-catalog.xml.in.h:1
 msgid "PackageKit Catalog"
 msgstr "പാക്കേജ്കിറ്റിനുള്ള കാറ്റലോഗ്"
@@ -1143,23 +1272,30 @@ msgstr "പാക്കേജ്കിറ്റിനുള്ള പാക്à´
 msgid "PackageKit Service Pack"
 msgstr "പാക്കേജ്കിറ്റിനുള്ള സര്‍വീസ് പാക്ക്"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:1
+#. SECURITY:
+#. - Normal users do not require admin authentication to accept new
+#. licence agreements.
+#. - Change this to 'auth_admin' for environments where users should not
+#. be given the option to make legal decisions.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:7
 msgid "Accept EULA"
 msgstr "EULA സ്വീകരിക്കുക"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:2
+#: ../policy/org.freedesktop.packagekit.policy.in.h:8
 msgid "Authentication is required to accept a EULA"
 msgstr "ഒരു EULA സ്വീകരിക്കുന്നതിനായി ആവശ്യമുള്ള ആധികാരികത"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:3
-msgid "Authentication is required to cancel a task that was not started by yourself"
+#: ../policy/org.freedesktop.packagekit.policy.in.h:9
+msgid ""
+"Authentication is required to cancel a task that was not started by yourself"
 msgstr "നിങ്ങളായി ആരംഭിച്ചിട്ടില്ലാത്ത ഒരു ജോലി റദ്ദാക്കുന്നതിനായി ആധികാരികത ആവശ്യമുണ്ടു്"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:4
+#: ../policy/org.freedesktop.packagekit.policy.in.h:10
 msgid "Authentication is required to change software source parameters"
 msgstr "സോഫ്റ്റ്‌വെയര്‍ സോഴ്സ് പരാമീറ്ററുകള്‍ മാറ്റുന്നതിനായി ആധികാരികത ആവശ്യമുണ്ടു്"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:5
+#: ../policy/org.freedesktop.packagekit.policy.in.h:11
 msgid ""
 "Authentication is required to consider a key used for signing packages as "
 "trusted"
@@ -1167,27 +1303,32 @@ msgstr ""
 "പാക്കേജ് ഒപ്പിടുന്നതിനായി ഉപയോഗിക്കുന്ന ഒരു കീ വിശ്വസനീയമെന്നു് കരുതുന്നതിനായി ആധികാരികത "
 "ഉറപ്പാക്കേണ്ടതുണ്ടു്"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:6
+#: ../policy/org.freedesktop.packagekit.policy.in.h:12
 msgid "Authentication is required to install a signed package"
 msgstr "ഒപ്പിട്ട പാക്കേജ് ഇന്‍സ്റ്റോള്‍ ചെയ്യുന്നതിനായി ആധികാരികത ആവശ്യമുണ്ടു്"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:7
+#: ../policy/org.freedesktop.packagekit.policy.in.h:13
 msgid "Authentication is required to install an untrusted package"
 msgstr "അവിശ്വസനീയമായ പാക്കേജ് ഇന്‍സ്റ്റോള്‍ ചെയ്യുന്നതിനായി ആധികാരികത ആവശ്യമുണ്ടു്"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:8
+#: ../policy/org.freedesktop.packagekit.policy.in.h:14
 msgid "Authentication is required to refresh the system sources"
 msgstr "പാക്കേജുകള്‍ നീക്കം ചെയ്യുവാന്‍ ആധികാരികത ആവശ്യമുണ്ടു്"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:9
+#: ../policy/org.freedesktop.packagekit.policy.in.h:15
+#, fuzzy
+msgid "Authentication is required to reload the device with a new driver"
+msgstr "പാക്കേജുകള്‍ നീക്കം ചെയ്യുവാന്‍ ആധികാരികത ആവശ്യമുണ്ടു്"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:16
 msgid "Authentication is required to remove packages"
 msgstr "പാക്കേജുകള്‍ നീക്കം ചെയ്യുവാന്‍ ആധികാരികത ആവശ്യമുണ്ടു്"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:10
+#: ../policy/org.freedesktop.packagekit.policy.in.h:17
 msgid "Authentication is required to rollback a transaction"
 msgstr "ഒരു ഇടപാടു് റോള്‍ബാക്ക് ചെയ്യുന്നതിനായി ആധികാരികത ആവശ്യമുണ്ടു്"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:11
+#: ../policy/org.freedesktop.packagekit.policy.in.h:18
 msgid ""
 "Authentication is required to set the network proxy used for downloading "
 "packages"
@@ -1195,47 +1336,115 @@ msgstr ""
 "പാക്കേജുകള്‍ ഡൌണ്‍ലോട് ചെയ്യുന്നതിനുള്ള നെറ്റ്‌വര്‍ക്ക് പ്രോക്സി സജ്ജമാക്കുന്നതിനായി ആധികാരികത "
 "ഉറപ്പാക്കേണ്ടതുണ്ടു്."
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:12
+#: ../policy/org.freedesktop.packagekit.policy.in.h:19
 msgid "Authentication is required to update packages"
 msgstr "പാക്കേജുകള്‍ പുതുക്കുന്നതിനായി ആധികാരികത ഉറപ്പിക്കേണ്ടതുണ്ടു്"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:13
+#. SECURITY:
+#. - Normal users are allowed to cancel their own task without
+#. authentication, but a different user id needs the admin password
+#. to cancel another users task.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:25
 msgid "Cancel foreign task"
 msgstr "പുറമേ നിന്നുള്ള ജോലി റദ്ദാക്കുക"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:14
+#. SECURITY:
+#. - Normal users require admin authentication to enable or disable
+#. software sources as this can be used to enable new updates or
+#. install different versions of software.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:31
 msgid "Change software source parameters"
 msgstr "സോഫ്റ്റ്‌വെയറിനുള്ള സോഴ്സ് പരാമീറ്ററുകള്‍ മാറ്റുക"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:15
+#. SECURITY:
+#. - Normal users do not need authentication to install signed packages
+#. from signed repositories, as this cannot exploit a system.
+#. - Paranoid users (or parents!) can change this to 'auth_admin' or
+#. 'auth_admin_keep'.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:38
 msgid "Install signed package"
 msgstr "ഒപ്പിട്ട പാക്കേജ് ഇന്‍സ്റ്റോള്‍ ചെയ്യുക"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:16
+#. SECURITY:
+#. - Normal users require admin authentication to install untrusted or
+#. unrecognised packages, as allowing users to do this without a
+#. password would be a massive security hole.
+#. - This is not retained as each package should be authenticated.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:45
 msgid "Install untrusted local file"
 msgstr "അവിശ്വസനീയമായ ലോക്കല്‍ ഫയല്‍ ഇന്‍സ്റ്റോള്‍ ചെയ്യുക"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:17
+#. SECURITY:
+#. - Normal users do not require admin authentication to refresh the
+#. cache, as this doesn't actually install or remove software.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:50
 msgid "Refresh system sources"
 msgstr "സിസ്റ്റം സോഴ്സുകള്‍ പുതുക്കുക"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:18
+#. SECURITY:
+#. - Normal users require admin authentication to rebind a driver
+#. so that it works after we install firmware.
+#. - This should not be set to 'yes' as unprivileged users could then
+#. try to rebind drivers in use, for instance security authentication
+#. devices.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:58
+msgid "Reload a device"
+msgstr ""
+
+#. SECURITY:
+#. - Normal users require admin authentication to remove packages as
+#. this can make the system unbootable or stop other applications from
+#. working.
+#. - Be sure to close the tool used to remove the packages after the
+#. admin authentication has been obtained, otherwise packages can still
+#. be removed. If this is not possible, change this authentication to
+#. 'auth_admin'.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:68
 msgid "Remove package"
 msgstr "പാക്കേജ് നീക്കം ചെയ്യുക"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:19
+#. SECURITY:
+#. - Normal users require admin authentication to rollback system state
+#. as this will change a large number of packages, and could expose the
+#. system to previously patched security vulnerabilities.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:74
 msgid "Rollback to a previous transaction"
 msgstr "മുമ്പുള്ള ഒരു ഇടപാടിലേക്കു് പോകുക"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:20
+#. SECURITY:
+#. - Normal users do not require admin authentication to set the proxy
+#. used for downloading packages.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:79
 msgid "Set network proxy"
 msgstr "നെറ്റ്‌വര്‍ക്ക് പ്രോക്സി സജ്ജമാക്കുക"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:21
+#. SECURITY:
+#. - Normal users require admin authentication to add signing keys.
+#. - This implies adding an explicit trust, and should not be granted
+#. without a secure authentication.
+#. - This is not kept as each package should be authenticated.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:86
 msgid "Trust a key used for signing packages"
 msgstr "പാക്കേജുകള്‍ ഒപ്പിടുവാനുള്ള കീ വിശ്വസിക്കുക"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:22
+#. SECURITY:
+#. - Normal users do not require admin authentication to update the
+#. system as the packages will be signed, and the action is required
+#. to update the system when unattended.
+#. - Changing this to anything other than 'yes' will break unattended
+#. updates.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:94
 msgid "Update packages"
 msgstr "പാക്കേജുകള്‍ പരിഷ്കരിക്കുക"
 
@@ -1259,7 +1468,8 @@ msgstr "ശരിയായ ഉപയോക്താവല്ല എക്സിà
 msgid ""
 "The org.freedesktop.PackageKit.conf file is not installed in the system "
 "directory:"
-msgstr "സിസ്റ്റം ഡയറക്ടറിയില്‍ org.freedesktop.PackageKit.conf ഫയല്‍ ഇന്‍സ്റ്റോള്‍ ചെയ്തിട്ടില്ല:"
+msgstr ""
+"സിസ്റ്റം ഡയറക്ടറിയില്‍ org.freedesktop.PackageKit.conf ഫയല്‍ ഇന്‍സ്റ്റോള്‍ ചെയ്തിട്ടില്ല:"
 
 #. TRANSLATORS: a backend is the system package tool, e.g. yum, apt
 #: ../src/pk-main.c:205
@@ -1302,36 +1512,49 @@ msgid "Cannot connect to the system bus"
 msgstr "സിസ്റ്റം ബസിലേക്ക് കണക്ട് ചെയ്യുവാന്‍ സാധ്യമായില്ല"
 
 #. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error follows
-#: ../src/pk-main.c:331
+#: ../src/pk-main.c:334
 msgid "Error trying to start:"
 msgstr "ആരംഭിക്കുന്നതിനിടെ പിശക് സംഭവിച്ചിരിക്കുന്നു:"
 
-#: ../src/pk-polkit-action-lookup.c:143
+#: ../src/pk-polkit-action-lookup.c:147
 msgid "To install debugging packages, extra sources need to be enabled"
 msgstr "ഡീബഗ്ഗിങ് പാക്കേജുകള്‍ ഇന്‍സ്റ്റോള്‍ ചെയ്യുന്നതിനായി, അധികമായ സോഴ്സുകള്‍ സജ്ജമാക്കേണ്ടതുണ്ടു്"
 
 #. TRANSLATORS: is not GPG signed
-#: ../src/pk-polkit-action-lookup.c:156 ../src/pk-polkit-action-lookup.c:175
+#: ../src/pk-polkit-action-lookup.c:168 ../src/pk-polkit-action-lookup.c:187
 msgid "The software is not from a trusted source."
 msgstr "സോഫ്റ്റ്‌വെയര്‍ ഒരു ട്രസ്റ്റഡ് സോഴ്സില്‍ നിന്നുമല്ല."
 
-#. TRANSLATORS: user has to trust provider -- I know, this sucks
-#: ../src/pk-polkit-action-lookup.c:160
+#: ../src/pk-polkit-action-lookup.c:173
 msgid "Do not update this package unless you are sure it is safe to do so."
 msgstr "ഈ പാക്കേജ് സുരക്ഷിതമാണു് എന്നുറപ്പു് വരുത്താതെ ഇതു് പരിഷ്കരിക്കരുത്."
 
+#: ../src/pk-polkit-action-lookup.c:174
+#, fuzzy
+msgid "Do not update these packages unless you are sure it is safe to do so."
+msgstr "ഈ പാക്കേജ് സുരക്ഷിതമാണു് എന്നുറപ്പു് വരുത്താതെ ഇതു് പരിഷ്കരിക്കരുത്."
+
+#: ../src/pk-polkit-action-lookup.c:192
+msgid "Do not install this package unless you are sure it is safe to do so."
+msgstr "ഈ പാക്കേജ് സുരക്ഷിതമാണു് എന്നുറപ്പു് വരുത്താതെ ഇതു് ഇന്‍സ്റ്റോള്‍ ചെയ്യരുതു്."
+
+#: ../src/pk-polkit-action-lookup.c:193
+#, fuzzy
+msgid "Do not install these packages unless you are sure it is safe to do so."
+msgstr "ഈ പാക്കേജ് സുരക്ഷിതമാണു് എന്നുറപ്പു് വരുത്താതെ ഇതു് ഇന്‍സ്റ്റോള്‍ ചെയ്യരുതു്."
+
 #. TRANSLATORS: warn the user that all bets are off
-#: ../src/pk-polkit-action-lookup.c:164 ../src/pk-polkit-action-lookup.c:183
+#: ../src/pk-polkit-action-lookup.c:199
 msgid "Malicious software can damage your computer or cause other harm."
 msgstr "അപകടകരമായ സോഫ്റ്റ്‌വെയര്‍ നിങ്ങളുടെ കമ്പ്യൂട്ടറിനെ നശിപ്പിക്കുന്നു."
 
-#. TRANSLATORS: user has to trust provider -- I know, this sucks
-#: ../src/pk-polkit-action-lookup.c:179
-msgid "Do not install this package unless you are sure it is safe to do so."
-msgstr "ഈ പാക്കേജ് സുരക്ഷിതമാണു് എന്നുറപ്പു് വരുത്താതെ ഇതു് ഇന്‍സ്റ്റോള്‍ ചെയ്യരുതു്."
+#. TRANSLATORS: too many packages to list each one
+#: ../src/pk-polkit-action-lookup.c:274
+#, fuzzy
+msgid "Many packages"
+msgstr "പാക്കേജുകള്‍ പരിഷ്കരിക്കുക"
 
 #. TRANSLATORS: if the transaction is forced to install only trusted packages
-#: ../src/pk-polkit-action-lookup.c:263
+#: ../src/pk-polkit-action-lookup.c:334
 msgid "Only trusted"
 msgstr "ട്രസ്റ്റഡ് മാത്രം"
-
diff --git a/po/mr.po b/po/mr.po
index c76694c..0cc5bf8 100644
--- a/po/mr.po
+++ b/po/mr.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: packagekit.master.mr\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-06-29 08:34+0000\n"
+"POT-Creation-Date: 2009-08-24 11:06+0100\n"
 "PO-Revision-Date: 2009-06-29 17:09+0530\n"
 "Last-Translator: Sandeep Shedmake <sandeep.shedmake at gmail.com>\n"
 "Language-Team: marathi\n"
@@ -18,235 +18,264 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=(n!=1);\n"
 
 #. TRANSLATORS: this is an atomic transaction
-#: ../client/pk-console.c:231
+#: ../client/pk-console.c:235
 msgid "Transaction"
 msgstr "व्यवहार"
 
 #. TRANSLATORS: this is the time the transaction was started in system timezone
-#: ../client/pk-console.c:233
+#: ../client/pk-console.c:237
 msgid "System time"
 msgstr "प्रणाली वेळ"
 
 #. TRANSLATORS: this is if the transaction succeeded or not
-#: ../client/pk-console.c:235
+#: ../client/pk-console.c:239
 msgid "Succeeded"
 msgstr "यशस्वी"
 
 #. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:235 ../client/pk-console.c:402
+#: ../client/pk-console.c:239 ../client/pk-console.c:406
 msgid "True"
 msgstr "True"
 
-#: ../client/pk-console.c:235 ../client/pk-console.c:402
+#: ../client/pk-console.c:239 ../client/pk-console.c:406
 msgid "False"
 msgstr "False"
 
 #. TRANSLATORS: this is the transactions role, e.g. "update-system"
 #. TRANSLATORS: the trasaction role, e.g. update-system
-#: ../client/pk-console.c:237 ../src/pk-polkit-action-lookup.c:256
+#: ../client/pk-console.c:241 ../src/pk-polkit-action-lookup.c:327
 msgid "Role"
 msgstr "Role"
 
 #. TRANSLATORS: this is The duration of the transaction
-#: ../client/pk-console.c:242
+#: ../client/pk-console.c:246
 msgid "Duration"
 msgstr "कालावधी"
 
-#: ../client/pk-console.c:242
+#: ../client/pk-console.c:246
 msgid "(seconds)"
 msgstr "(सेकंद)"
 
 #. TRANSLATORS: this is The command line used to do the action
 #. TRANSLATORS: the command line of the thing that wants the authentication
-#: ../client/pk-console.c:246 ../src/pk-polkit-action-lookup.c:270
+#: ../client/pk-console.c:250 ../src/pk-polkit-action-lookup.c:341
 msgid "Command line"
 msgstr "आदेश ओळ"
 
 #. TRANSLATORS: this is the user ID of the user that started the action
-#: ../client/pk-console.c:248
+#: ../client/pk-console.c:252
 msgid "User ID"
 msgstr "वापरकर्ता ID"
 
 #. TRANSLATORS: this is the username, e.g. hughsie
-#: ../client/pk-console.c:255
+#: ../client/pk-console.c:259
 msgid "Username"
 msgstr "वापरकर्ता नाव"
 
 #. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
-#: ../client/pk-console.c:259
+#: ../client/pk-console.c:263
 msgid "Real name"
 msgstr "वास्तविक नाव"
 
-#: ../client/pk-console.c:267
+#: ../client/pk-console.c:271
 msgid "Affected packages:"
 msgstr "प्रभावीत संकुल:"
 
-#: ../client/pk-console.c:269
+#: ../client/pk-console.c:273
 msgid "Affected packages: None"
 msgstr "प्रभावीत संकुल: काहिच नाही"
 
 #. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:294
+#: ../client/pk-console.c:298
 msgid "Distribution"
 msgstr "वितरण"
 
 #. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:296
+#: ../client/pk-console.c:300
 msgid "Type"
 msgstr "प्रकार"
 
 #. TRANSLATORS: this is any summary text describing the upgrade
 #. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:298 ../client/pk-console.c:321
+#: ../client/pk-console.c:302 ../client/pk-console.c:325
 msgid "Summary"
 msgstr "सारांश"
 
 #. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:310
+#: ../client/pk-console.c:314
 msgid "Category"
 msgstr "प्रवर्ग"
 
 #. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:312
+#: ../client/pk-console.c:316
 msgid "ID"
 msgstr "ID"
 
 #. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:315
+#: ../client/pk-console.c:319
 msgid "Parent"
 msgstr "मुख्य"
 
 #. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:318
+#: ../client/pk-console.c:322
 msgid "Name"
 msgstr "नाव"
 
 #. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:324
+#: ../client/pk-console.c:328
 msgid "Icon"
 msgstr "चिन्ह"
 
 #. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:339
+#: ../client/pk-console.c:343
 msgid "Details about the update:"
 msgstr "अद्ययावत विषयी तपशील:"
 
 #. TRANSLATORS: details about the update, package name and version
-#: ../client/pk-console.c:341
+#. TRANSLATORS: title, the names of the packages that the method is processing
+#: ../client/pk-console.c:345 ../src/pk-polkit-action-lookup.c:352
+#, fuzzy
 msgid "Package"
-msgstr "संकुल"
+msgid_plural "Packages"
+msgstr[0] "संकुल"
+msgstr[1] "संकुल"
 
 #. TRANSLATORS: details about the update, any packages that this update updates
-#: ../client/pk-console.c:344
+#: ../client/pk-console.c:348
 msgid "Updates"
 msgstr "अद्ययावत"
 
 #. TRANSLATORS: details about the update, any packages that this update obsoletes
-#: ../client/pk-console.c:348
+#: ../client/pk-console.c:352
 msgid "Obsoletes"
 msgstr "जुणे"
 
 #. TRANSLATORS: details about the update, the vendor URLs
-#: ../client/pk-console.c:352
+#: ../client/pk-console.c:356
 msgid "Vendor"
 msgstr "विक्रेता"
 
 #. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:356
+#: ../client/pk-console.c:360
 msgid "Bugzilla"
 msgstr "बगजीला"
 
 #. TRANSLATORS: details about the update, the CVE URLs
-#: ../client/pk-console.c:360
+#: ../client/pk-console.c:364
 msgid "CVE"
 msgstr "CVE"
 
 #. TRANSLATORS: details about the update, if the package requires a restart
-#: ../client/pk-console.c:364
+#: ../client/pk-console.c:368
 msgid "Restart"
 msgstr "पुन्हा सुरू करा"
 
 #. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:368
+#: ../client/pk-console.c:372
 msgid "Update text"
 msgstr "अद्ययावत पाठ्य"
 
 #. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:372
+#: ../client/pk-console.c:376
 msgid "Changes"
 msgstr "बदल"
 
 #. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:376
+#: ../client/pk-console.c:380
 msgid "State"
 msgstr "स्तर"
 
 #. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:381
+#: ../client/pk-console.c:385
 msgid "Issued"
 msgstr "वितरण दिनांक"
 
 #. TRANSLATORS: details about the update, date the update was updated
-#: ../client/pk-console.c:386
+#: ../client/pk-console.c:390
 msgid "Updated"
 msgstr "अद्ययावतीत"
 
-#: ../client/pk-console.c:473 ../client/pk-console.c:475
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:392
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:394
+#: ../client/pk-console.c:477 ../client/pk-console.c:479
 msgid "Percentage"
 msgstr "टक्केवारी"
 
-#: ../client/pk-console.c:475
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:394
+#: ../client/pk-console.c:479
 msgid "Unknown"
 msgstr "अपरिचीत"
 
 #. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:517
+#: ../client/pk-console.c:521
 msgid "System restart required by:"
 msgstr "प्रणाली पुन्हा चालू करणे आवश्यक:"
 
 #. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:520
+#: ../client/pk-console.c:524
 msgid "Session restart required:"
 msgstr "सत्र पुन्हा चालू करणे आवश्यक:"
 
+#. TRANSLATORS: a package requires the system to be restarted due to a security update
+#: ../client/pk-console.c:527
+#, fuzzy
+msgid "System restart (security) required by:"
+msgstr "प्रणाली पुन्हा चालू करणे आवश्यक:"
+
+#. TRANSLATORS: a package requires the session to be restarted due to a security update
+#: ../client/pk-console.c:530
+#, fuzzy
+msgid "Session restart (security) required:"
+msgstr "सत्र पुन्हा चालू करणे आवश्यक:"
+
 #. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:523
+#: ../client/pk-console.c:533
 msgid "Application restart required by:"
 msgstr "अनुप्रयोग पुन्हा चालू करणे आवश्यक:"
 
-#. TRANSLATORS: a package needs to restart they system
-#: ../client/pk-console.c:578
+#. TRANSLATORS: a package needs to restart their system
+#: ../client/pk-console.c:588
 msgid "Please restart the computer to complete the update."
 msgstr "अद्ययावत पूर्ण करण्याकरीता कृपया संगणक पुन्हा चालू करा."
 
 #. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:581
+#: ../client/pk-console.c:591
 msgid "Please logout and login to complete the update."
 msgstr "कृपया वापरकर्ता बदला व अद्ययावत पूर्ण करण्याकरीता प्रवेश करा."
 
 #. TRANSLATORS: a package needs to restart the application
-#: ../client/pk-console.c:584
+#: ../client/pk-console.c:594
 msgid "Please restart the application as it is being used."
 msgstr "कृपया अनुप्रयोग ज्यानुरूप वापरले जाते त्यानुरूप पुन्हा चालू करा."
 
+#. TRANSLATORS: a package needs to restart their system (due to security)
+#: ../client/pk-console.c:597
+#, fuzzy
+msgid ""
+"Please restart the computer to complete the update as important security "
+"updates have been installed."
+msgstr "अद्ययावत पूर्ण करण्याकरीता कृपया संगणक पुन्हा चालू करा."
+
+#. TRANSLATORS: a package needs to restart the session (due to security)
+#: ../client/pk-console.c:600
+#, fuzzy
+msgid ""
+"Please logout and login to complete the update as important security updates "
+"have been installed."
+msgstr "कृपया वापरकर्ता बदला व अद्ययावत पूर्ण करण्याकरीता प्रवेश करा."
+
 #. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:711
+#: ../client/pk-console.c:727
 #, c-format
 msgid "The package %s is already installed"
 msgstr "संकुल %s आधिपासूनच प्रतिष्ठापीत आहे"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:719
+#: ../client/pk-console.c:735
 #, c-format
 msgid "The package %s could not be installed: %s"
 msgstr "संकुल %s चे प्रतिष्ठापन शक्य नाही: %s"
 
 #. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
-#: ../client/pk-console.c:744 ../client/pk-console.c:767
-#: ../client/pk-console.c:863 ../client/pk-console.c:980
+#: ../client/pk-console.c:760 ../client/pk-console.c:783
+#: ../client/pk-console.c:879 ../client/pk-console.c:996
 #: ../client/pk-tools-common.c:62 ../client/pk-tools-common.c:81
 #: ../client/pk-tools-common.c:89
 #, c-format
@@ -254,403 +283,404 @@ msgid "Internal error: %s"
 msgstr "आंतरीक त्रुटी: %s"
 
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:752 ../client/pk-console.c:1376
+#: ../client/pk-console.c:768 ../client/pk-console.c:1392
 #, c-format
 msgid "This tool could not install the packages: %s"
 msgstr "हे साधन संकुल प्रतिष्ठापीत करू शकले नाही: %s"
 
 #. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:775
+#: ../client/pk-console.c:791
 #, c-format
 msgid "This tool could not install the files: %s"
 msgstr "हे साधन फाइल प्रतिष्ठापीत करू शकले नाही: %s"
 
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:831
+#: ../client/pk-console.c:847
 #, c-format
 msgid "This tool could not remove %s: %s"
 msgstr "या साधन द्वारे %s काढूण टाकणे शक्य नाही: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:854 ../client/pk-console.c:892
-#: ../client/pk-console.c:925
+#: ../client/pk-console.c:870 ../client/pk-console.c:908
+#: ../client/pk-console.c:941
 #, c-format
 msgid "This tool could not remove the packages: %s"
 msgstr "या साधन द्वारे संकुल काढूण टाकणे अशक्य: %s"
 
 #. TRANSLATORS: When removing, we might have to remove other dependencies
-#: ../client/pk-console.c:904
+#: ../client/pk-console.c:920
 msgid "The following packages have to be removed:"
 msgstr "खालिल संकुल काढूण टाकणे आवश्यक आहे:"
 
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:911
+#: ../client/pk-console.c:927
 msgid "Proceed removing additional packages?"
 msgstr "अगाऊ संकुल काढूण टाकणे चालू ठेवायचे?"
 
 #. TRANSLATORS: We did not remove any packages
-#: ../client/pk-console.c:916
+#: ../client/pk-console.c:932
 msgid "The package removal was canceled!"
 msgstr "संकुल काढूण टाकणे रद्द केले गेले!"
 
 #. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:957
+#: ../client/pk-console.c:973
 #, c-format
 msgid "This tool could not download the package %s as it could not be found"
 msgstr "हे साधन संकुल %s न आढळल्यामुळे डाऊनलोड करू शकले नाही"
 
 #. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:988
+#: ../client/pk-console.c:1004
 #, c-format
 msgid "This tool could not download the packages: %s"
 msgstr "हे साधन संकुल डाऊनलोड करू शकले नाही: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1015 ../client/pk-console.c:1024
+#: ../client/pk-console.c:1031 ../client/pk-console.c:1040
 #, c-format
 msgid "This tool could not update %s: %s"
 msgstr "हे साधन %s अद्ययावतीत करू शकले नाही: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1046 ../client/pk-console.c:1054
+#: ../client/pk-console.c:1062 ../client/pk-console.c:1070
 #, c-format
 msgid "This tool could not get the requirements for %s: %s"
 msgstr "हे साधन %s करीता आवश्यकता प्राप्त करू शकले नाही: %s"
 
 #. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:1076 ../client/pk-console.c:1084
+#: ../client/pk-console.c:1092 ../client/pk-console.c:1100
 #, c-format
 msgid "This tool could not get the dependencies for %s: %s"
 msgstr "हे साधन %s करीता अवलंबन प्राप्त करू शकने नाही: %s"
 
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:1106 ../client/pk-console.c:1114
+#: ../client/pk-console.c:1122 ../client/pk-console.c:1130
 #, c-format
 msgid "This tool could not get package details for %s: %s"
 msgstr "हे साधन %s करीता संकुल तपशील प्राप्त करू शकले नाही: %s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1136
+#: ../client/pk-console.c:1152
 #, c-format
 msgid "This tool could not find the files for %s: %s"
 msgstr "हे साधन %s करीता फाइल शोधू शकले नाही: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1144
+#: ../client/pk-console.c:1160
 #, c-format
 msgid "This tool could not get the file list for %s: %s"
 msgstr "हे साधन %s करीता फाइल यादी प्राप्त करू शकले नाही: %s"
 
 #. TRANSLATORS: There was an error getting the list of packages. The filename follows
-#: ../client/pk-console.c:1166
+#: ../client/pk-console.c:1182
 #, c-format
 msgid "File already exists: %s"
 msgstr "फाइल आधिपासूनच अस्तित्वात आहे: %s"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1171 ../client/pk-console.c:1227
-#: ../client/pk-console.c:1302
+#: ../client/pk-console.c:1187 ../client/pk-console.c:1243
+#: ../client/pk-console.c:1318
 msgid "Getting package list"
 msgstr "संकुल यादी प्राप्त करत आहे"
 
 #. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1177 ../client/pk-console.c:1233
-#: ../client/pk-console.c:1308
+#: ../client/pk-console.c:1193 ../client/pk-console.c:1249
+#: ../client/pk-console.c:1324
 #, c-format
 msgid "This tool could not get package list: %s"
 msgstr "हे साधन संकुल यादी प्राप्त करू शकले नाही: %s"
 
 #. TRANSLATORS: There was an error saving the list
-#: ../client/pk-console.c:1188
+#: ../client/pk-console.c:1204
 #, c-format
 msgid "Failed to save to disk"
 msgstr "डिस्क वर साठविण्यास अपयशी"
 
 #. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1222 ../client/pk-console.c:1297
+#: ../client/pk-console.c:1238 ../client/pk-console.c:1313
 #, c-format
 msgid "File does not exist: %s"
 msgstr "फाइल अस्तित्वात नाही: %s"
 
 #. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1254
+#: ../client/pk-console.c:1270
 msgid "Packages to add"
 msgstr "समावेष करण्याजोगी संकुल"
 
 #. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1262
+#: ../client/pk-console.c:1278
 msgid "Packages to remove"
 msgstr "काढूण टाकण्याजोगी संकुल"
 
 #. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1330
+#: ../client/pk-console.c:1346
 #, c-format
 msgid "No new packages need to be installed"
 msgstr "कुठलेही नवीन संकुल प्रतिष्ठापीत करण्याची आवश्यकता नाही"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1336
+#: ../client/pk-console.c:1352
 msgid "To install"
 msgstr "प्रतिष्ठापन करा"
 
 #. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1348
+#: ../client/pk-console.c:1364
 msgid "Searching for package: "
 msgstr "संकुल करीता शोधत आहे: "
 
 #. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1352
+#: ../client/pk-console.c:1368
 msgid "not found."
 msgstr "आढळले नाही."
 
 #. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1363
+#: ../client/pk-console.c:1379
 #, c-format
 msgid "No packages can be found to install"
 msgstr "प्रतिष्ठापन करीता कुठलेही संकुल आढळले नाही"
 
 #. TRANSLATORS: installing new packages from package list
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
-#: ../client/pk-console.c:1369
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:698
+#: ../client/pk-console.c:1385
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:886
 #, c-format
 msgid "Installing packages"
 msgstr "संकुल प्रतिष्ठापीत करत आहे"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1405
+#: ../client/pk-console.c:1421
 #, c-format
 msgid "This tool could not find the update details for %s: %s"
 msgstr "हे साधन %s करीता अद्ययावत तपशील शोधू शकले नाही: %s"
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1413
+#: ../client/pk-console.c:1429
 #, c-format
 msgid "This tool could not get the update details for %s: %s"
 msgstr "हे साधन %s करीता अद्ययावत तपशील प्राप्त करू शकले नाही: %s"
 
 #. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
-#: ../client/pk-console.c:1444
+#: ../client/pk-console.c:1460
 msgid "Error:"
 msgstr "त्रुटी:"
 
 #. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1458
+#: ../client/pk-console.c:1474
 msgid "Package description"
 msgstr "संकुल वर्णन"
 
 #. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
-#: ../client/pk-console.c:1474
+#: ../client/pk-console.c:1490
 msgid "Message:"
 msgstr "संदेश:"
 
 #. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1502
+#: ../client/pk-console.c:1518
 msgid "Package files"
 msgstr "संकुल फाइल"
 
 #. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1510
+#: ../client/pk-console.c:1526
 msgid "No files"
 msgstr "फाइन नाही"
 
 #. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1533
+#: ../client/pk-console.c:1549
 msgid "Repository signature required"
 msgstr "रेपॉजटरी स्वाक्षरी आवश्यक आहे"
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1543
+#: ../client/pk-console.c:1559
 msgid "Do you accept this signature?"
 msgstr "तुम्ही ही स्वाक्षरी स्वीकारता?"
 
 #. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1547
+#: ../client/pk-console.c:1563
 msgid "The signature was not accepted."
 msgstr "स्वाक्षरी स्वीकारली गेली नाही."
 
 #. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1581
+#: ../client/pk-console.c:1597
 msgid "End user license agreement required"
 msgstr "वापरकर्ता परवाना करार आवश्यक आहे"
 
 #. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1588
+#: ../client/pk-console.c:1604
 msgid "Do you agree to this license?"
 msgstr "तुम्ही हा परवाना स्वीकारण्याची खात्री देता?"
 
 #. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1592
+#: ../client/pk-console.c:1608
 msgid "The license was refused."
 msgstr "परवाना फेटाळले गेले."
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1621
+#: ../client/pk-console.c:1637
 msgid "The daemon crashed mid-transaction!"
 msgstr "डिमन व्यवहारच्या मधोमध क्रॅश झाले!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1674
+#: ../client/pk-console.c:1690
 msgid "PackageKit Console Interface"
 msgstr "PackageKit कन्सोल संवाद"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1676
+#: ../client/pk-console.c:1692
 msgid "Subcommands:"
 msgstr "उपआदेश:"
 
 #. TRANSLATORS: command line argument, if we should show debugging information
 #. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:1768 ../client/pk-generate-pack.c:185
-#: ../client/pk-monitor.c:125
-#: ../contrib/command-not-found/pk-command-not-found.c:521
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:426
-#: ../src/pk-main.c:211
+#: ../client/pk-console.c:1785 ../client/pk-generate-pack.c:185
+#: ../client/pk-monitor.c:128
+#: ../contrib/command-not-found/pk-command-not-found.c:616
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:550
+#: ../contrib/device-rebind/pk-device-rebind.c:293 ../src/pk-main.c:211
 msgid "Show extra debugging information"
 msgstr "अगाऊ डिबगींग माहिती दाखवा"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1771 ../client/pk-monitor.c:127
+#: ../client/pk-console.c:1788 ../client/pk-monitor.c:130
 msgid "Show the program version and exit"
 msgstr "कार्यक्रम आवृत्ती दाखवा व बाहेर पडा"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1774
+#: ../client/pk-console.c:1791
 msgid "Set the filter, e.g. installed"
 msgstr "चाळणी निश्चित करा, उ.दा. प्रतिष्ठापीत"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1777
+#: ../client/pk-console.c:1794
 msgid "Exit without waiting for actions to complete"
 msgstr "कृती पूर्ण केल्याविना बाहेर पडा"
 
 #. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:1804
+#: ../client/pk-console.c:1821
 msgid "This tool could not connect to system DBUS."
 msgstr "हे साधन प्रणाली DBUS शी जुळवणी स्थापीत करण्यास अशक्य."
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1893
+#: ../client/pk-console.c:1911
 msgid "The filter specified was invalid"
 msgstr "निश्चित चाळणी अवैध नुरूप आढळली"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1911
+#: ../client/pk-console.c:1930
 msgid "A search type is required, e.g. name"
 msgstr "शोध प्रकार आवश्यक, उ.दा. नाव"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1917 ../client/pk-console.c:1925
-#: ../client/pk-console.c:1933 ../client/pk-console.c:1941
+#: ../client/pk-console.c:1937 ../client/pk-console.c:1946
+#: ../client/pk-console.c:1955 ../client/pk-console.c:1964
 msgid "A search term is required"
 msgstr "शोध संज्ञा आवश्यक"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1947
+#: ../client/pk-console.c:1971
 msgid "Invalid search type"
 msgstr "अवैध शोध प्रकार"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1953
+#: ../client/pk-console.c:1977
 msgid "A package name or filename to install is required"
 msgstr "प्रतिष्ठपन करीता संकुल नाव किंवा फाइलनाव आवश्यक आहे"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1961
+#: ../client/pk-console.c:1986
 msgid "A type, key_id and package_id are required"
 msgstr "प्रकार, key_id व package_id आवश्यक आहे"
 
 #. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:1969
+#: ../client/pk-console.c:1995
 msgid "A package name to remove is required"
 msgstr "काढूण टाकण्याजोगी संकुल नाव"
 
 #. TRANSLATORS: the user did not specify anything about what to download or where
-#: ../client/pk-console.c:1976
-msgid "A destination directory and then the package names to download are required"
+#: ../client/pk-console.c:2003
+#, fuzzy
+msgid "A destination directory and the package names to download are required"
 msgstr "लक्ष्य डिरेक्ट्री व त्यानंतर डाऊनलोड करीता संकुल नाव आवश्यक आहे"
 
 #. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:1982
+#: ../client/pk-console.c:2010
 msgid "Directory not found"
 msgstr "डिरेक्ट्री आढळली नाही"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1989
+#: ../client/pk-console.c:2018
 msgid "A licence identifier (eula-id) is required"
 msgstr "परवाना ओळख (eula-id) आवश्यक आहे"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1998
+#: ../client/pk-console.c:2028
 msgid "A transaction identifier (tid) is required"
 msgstr "transaction identifier (tid) आवश्यक आहे"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:2014
+#: ../client/pk-console.c:2045
 msgid "A package name to resolve is required"
 msgstr "निर्धारण करीता संकुल नाव आवश्यक आहे"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:2022 ../client/pk-console.c:2030
+#: ../client/pk-console.c:2054 ../client/pk-console.c:2063
 msgid "A repository name is required"
 msgstr "रेपॉजिटरी नाव आवश्यक आहे"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2038
+#: ../client/pk-console.c:2072
 msgid "A repo name, parameter and value are required"
 msgstr "रेपो नाव, बाब व मूल्य आवश्यक आहे"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:2051
+#: ../client/pk-console.c:2086
 msgid "An action, e.g. 'update-system' is required"
 msgstr "कृती, उ.दा. 'update-system' आवश्यक आहे"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:2057
+#: ../client/pk-console.c:2093
 msgid "A correct role is required"
 msgstr "वर्तमान भूमिका आवश्यक आहे"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2063
+#: ../client/pk-console.c:2100
 msgid "Failed to get the time since this action was last completed"
 msgstr "शेवटच्यावेळी पूर्ण केलेली कृतीचे वेळ प्राप्त करण्यास अपयशी"
 
 #. TRANSLATORS: The user did not provide a package name
 #. TRANSLATORS: This is when the user fails to supply the package name
-#: ../client/pk-console.c:2072 ../client/pk-console.c:2083
-#: ../client/pk-console.c:2091 ../client/pk-console.c:2107
-#: ../client/pk-console.c:2115 ../client/pk-generate-pack.c:241
+#: ../client/pk-console.c:2110 ../client/pk-console.c:2122
+#: ../client/pk-console.c:2131 ../client/pk-console.c:2149
+#: ../client/pk-console.c:2158 ../client/pk-generate-pack.c:241
 msgid "A package name is required"
 msgstr "संकुल नाव आवश्यक आहे"
 
 #. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:2099
+#: ../client/pk-console.c:2140
 msgid "A package provide string is required"
 msgstr "संकुल द्वारे पुरविलेली अक्षरमाळा आवश्यक आहे"
 
 #. TRANSLATORS: The user didn't specify a filename to create as a list
-#: ../client/pk-console.c:2123
+#: ../client/pk-console.c:2167
 msgid "A list file name to create is required"
 msgstr "बनविण्याकरीता यादी फाइल नाव आवश्यक आहे"
 
 #. TRANSLATORS: The user didn't specify a filename to open as a list
-#: ../client/pk-console.c:2132 ../client/pk-console.c:2141
+#: ../client/pk-console.c:2177 ../client/pk-console.c:2187
 msgid "A list file to open is required"
 msgstr "उघडण्याकरीता यादी फाइल आवश्यक आहे"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2194
+#: ../client/pk-console.c:2241
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "पर्याय '%s' समर्थीत नाही"
 
 #. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2207
+#: ../client/pk-console.c:2254
 msgid "Incorrect privileges for this operation"
 msgstr "या क्रिया करीता अयोग्य परवानगी"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2210
+#: ../client/pk-console.c:2257
 msgid "Command failed"
 msgstr "आदेश अपयशी"
 
@@ -676,7 +706,8 @@ msgstr "वगळण्याजोगी अवलंबनचे फाइल
 
 #. TRANSLATORS: the output location
 #: ../client/pk-generate-pack.c:191
-msgid "The output file or directory (the current directory is used if ommitted)"
+msgid ""
+"The output file or directory (the current directory is used if ommitted)"
 msgstr "आऊटपुट फाइल किंवा डिरेक्ट्री (वगळल्यास वर्तमान डिरेक्ट्रीचा वापर करा)"
 
 #. TRANSLATORS: put a list of packages in the pack
@@ -715,7 +746,8 @@ msgstr "संकुल व्यवस्थापक या प्रकार
 msgid ""
 "Service packs cannot be created as PackageKit was not built with libarchive "
 "support."
-msgstr "PackageKit ला libarchive समर्थन सह बिल्ट न केल्यामुळे Service पैक बनवणे शक्य नाही."
+msgstr ""
+"PackageKit ला libarchive समर्थन सह बिल्ट न केल्यामुळे Service पैक बनवणे शक्य नाही."
 
 #. TRANSLATORS: the user specified an absolute path, but didn't get the extension correct
 #: ../client/pk-generate-pack.c:291
@@ -771,10 +803,14 @@ msgid "Failed to create '%s': %s"
 msgstr "'%s' बनविण्यास अपयशी: %s"
 
 #. TRANSLATORS: this is a program that monitors PackageKit
-#: ../client/pk-monitor.c:143
+#: ../client/pk-monitor.c:146
 msgid "PackageKit Monitor"
 msgstr "PackageKit Monitor"
 
+#: ../client/pk-monitor.c:183
+msgid "Cannot show the list of transactions"
+msgstr ""
+
 #. TRANSLATORS: The package was not found in any software sources
 #: ../client/pk-tools-common.c:118
 #, c-format
@@ -796,303 +832,435 @@ msgstr "कृपया योग्य संकुल निवडा: "
 msgid "Please enter a number from 1 to %i: "
 msgstr "कृपया 1 ते %i क्रमांक निवडा: "
 
+#. TRANSLATORS: when we are getting data from the daemon
+#: ../contrib/browser-plugin/pk-plugin-install.c:466
+msgid "Getting package information..."
+msgstr "संकुल माहिती प्राप्त करत आहे..."
+
+#. TRANSLATORS: run an applicaiton
+#: ../contrib/browser-plugin/pk-plugin-install.c:472
+#, c-format
+msgid "Run %s"
+msgstr "%s चालवा"
+
+#. TRANSLATORS: show the installed version of a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:478
+msgid "Installed version"
+msgstr "प्रतिष्ठापीत आवृत्ती"
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:486
+#, c-format
+msgid "Run version %s now"
+msgstr "आता आवृत्ती %s चालवा"
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:492
+msgid "Run now"
+msgstr "आता चालवा"
+
+#. TRANSLATORS: update to a new version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:498
+#, c-format
+msgid "Update to version %s"
+msgstr "आवृत्ती %s करीता अद्ययावत करा"
+
+#. TRANSLATORS: To install a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:504
+#, c-format
+msgid "Install %s now"
+msgstr "%s आता प्रतिष्ठापीत करा"
+
+#. TRANSLATORS: the version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:507
+msgid "Version"
+msgstr "आवृत्ती"
+
+#. TRANSLATORS: noting found, so can't install
+#: ../contrib/browser-plugin/pk-plugin-install.c:512
+msgid "No packages found for your system"
+msgstr "तुमच्या प्रणाली करीता संकुल आढळले नाही"
+
+#. TRANSLATORS: package is being installed
+#: ../contrib/browser-plugin/pk-plugin-install.c:517
+msgid "Installing..."
+msgstr "प्रतिष्ठापन करत आहे..."
+
+#. TRANSLATORS: downloading repo data so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:349
+msgid "Downloading details about the software sources."
+msgstr ""
+
+#. TRANSLATORS: downloading file lists so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:353
+msgid "Downloading filelists (this may take some time to complete)."
+msgstr ""
+
+#. TRANSLATORS: waiting for native lock
+#: ../contrib/command-not-found/pk-command-not-found.c:357
+#, fuzzy
+msgid "Waiting for package manager lock."
+msgstr "संकुल नाव शोधत आहे."
+
+#. TRANSLATORS: loading package cache so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:361
+#, fuzzy
+msgid "Loading list of packages."
+msgstr "संकुल डाऊनलोड करत आहे"
+
 #. TRANSLATORS: we failed to find the package, this shouldn't happen
-#: ../contrib/command-not-found/pk-command-not-found.c:372
+#: ../contrib/command-not-found/pk-command-not-found.c:420
 msgid "Failed to search for file"
 msgstr "फाइल करीता शोध करण्यास अपयशी"
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:496
+#: ../contrib/command-not-found/pk-command-not-found.c:557
 msgid "Failed to launch:"
 msgstr "प्रक्षेपीत करण्यास अपयशी:"
 
 #. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/command-not-found/pk-command-not-found.c:537
+#: ../contrib/command-not-found/pk-command-not-found.c:632
 msgid "PackageKit Command Not Found"
 msgstr "PackageKit आदेश आढळले नाही"
 
 #. TRANSLATORS: the prefix of all the output telling the user why it's not executing
-#: ../contrib/command-not-found/pk-command-not-found.c:560
+#: ../contrib/command-not-found/pk-command-not-found.c:658
 msgid "Command not found."
 msgstr "आदेश आढळले नाही."
 
 #. TRANSLATORS: tell the user what we think the command is
-#: ../contrib/command-not-found/pk-command-not-found.c:567
+#: ../contrib/command-not-found/pk-command-not-found.c:665
 msgid "Similar command is:"
 msgstr "समान आदेश यानुरूप आहे:"
 
 #. TRANSLATORS: Ask the user if we should run the similar command
-#: ../contrib/command-not-found/pk-command-not-found.c:576
+#: ../contrib/command-not-found/pk-command-not-found.c:674
 msgid "Run similar command:"
 msgstr "समान आदेश चालवा:"
 
 #. TRANSLATORS: show the user a list of commands that they could have meant
 #. TRANSLATORS: show the user a list of commands we could run
-#: ../contrib/command-not-found/pk-command-not-found.c:588
-#: ../contrib/command-not-found/pk-command-not-found.c:597
+#: ../contrib/command-not-found/pk-command-not-found.c:686
+#: ../contrib/command-not-found/pk-command-not-found.c:695
 msgid "Similar commands are:"
 msgstr "समान आदेश यानुरूप आहे:"
 
 #. TRANSLATORS: ask the user to choose a file to run
-#: ../contrib/command-not-found/pk-command-not-found.c:604
+#: ../contrib/command-not-found/pk-command-not-found.c:702
 msgid "Please choose a command to run"
 msgstr "कृपया चालविण्याजोगी आदेश निवडा"
 
 #. TRANSLATORS: tell the user what package provides the command
-#: ../contrib/command-not-found/pk-command-not-found.c:619
+#: ../contrib/command-not-found/pk-command-not-found.c:721
 msgid "The package providing this file is:"
 msgstr "ही फाइल या संकुल द्वारे पुरविली जाते:"
 
 #. TRANSLATORS: as the user if we want to install a package to provide the command
-#: ../contrib/command-not-found/pk-command-not-found.c:624
+#: ../contrib/command-not-found/pk-command-not-found.c:726
 #, c-format
 msgid "Install package '%s' to provide command '%s'?"
 msgstr "आदेश '%2$s' पुरविण्याकरीता संकुल '%1$s' प्रतिष्ठापीत करायचे?"
 
 #. TRANSLATORS: Show the user a list of packages that provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:645
+#: ../contrib/command-not-found/pk-command-not-found.c:747
 msgid "Packages providing this file are:"
 msgstr "ही फाइल या संकुल द्वारे पुरविले जाते:"
 
 #. TRANSLATORS: Show the user a list of packages that they can install to provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:654
+#: ../contrib/command-not-found/pk-command-not-found.c:756
 msgid "Suitable packages are:"
 msgstr "योग्य संकुल यानुरूप आहे:"
 
 #. get selection
 #. TRANSLATORS: ask the user to choose a file to install
-#: ../contrib/command-not-found/pk-command-not-found.c:662
+#: ../contrib/command-not-found/pk-command-not-found.c:764
 msgid "Please choose a package to install"
 msgstr "प्रतिष्ठापन करीता कृपया संकुल निवडा"
 
-#. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/src/contents.cpp:299
-msgid "Getting package information..."
-msgstr "संकुल माहिती प्राप्त करत आहे..."
-
-#. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/src/contents.cpp:305
-#, c-format
-msgid "Run %s"
-msgstr "%s चालवा"
-
-#. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/src/contents.cpp:311
-msgid "Installed version"
-msgstr "प्रतिष्ठापीत आवृत्ती"
-
-#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/src/contents.cpp:319
-#, c-format
-msgid "Run version %s now"
-msgstr "आता आवृत्ती %s चालवा"
-
-#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/src/contents.cpp:325
-msgid "Run now"
-msgstr "आता चालवा"
-
-#. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/src/contents.cpp:331
-#, c-format
-msgid "Update to version %s"
-msgstr "आवृत्ती %s करीता अद्ययावत करा"
-
-#. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/src/contents.cpp:337
-#, c-format
-msgid "Install %s now"
-msgstr "%s आता प्रतिष्ठापीत करा"
-
-#. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/src/contents.cpp:340
-msgid "Version"
-msgstr "आवृत्ती"
-
-#. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/src/contents.cpp:345
-msgid "No packages found for your system"
-msgstr "तुमच्या प्रणाली करीता संकुल आढळले नाही"
-
-#. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/src/contents.cpp:350
-msgid "Installing..."
-msgstr "प्रतिष्ठापन करत आहे..."
+#. TRANSLATORS: we are starting to install the packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:187
+#, fuzzy
+msgid "Starting install"
+msgstr "प्रतिष्ठापन करा"
 
 #. TRANSLATORS: we couldn't find the package name, non-fatal
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:352
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:397
 #, c-format
 msgid "Failed to find the package %s, or already installed: %s"
 msgstr "संकुल %s शोधण्यास अपयशी, किंवा आधिपासूनच प्रतिष्ठापीत असेल: %s"
 
 #. command line argument, simulate what would be done, but don't actually do it
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:429
-msgid "Don't actually install any packages, only simulate"
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:553
+#, fuzzy
+msgid ""
+"Don't actually install any packages, only simulate what would be installed"
 msgstr "कुठलेही संकुल प्रत्यक्षरित्या प्रतिष्ठापीत करू नका, फक्त सिम्यूलेट करा"
 
 #. command line argument, do we skip packages that depend on the ones specified
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:432
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:556
 msgid "Do not install dependencies of the core packages"
 msgstr "कोर संकुलचे अवलंबन प्रतिष्ठापीत करू नका"
 
+#. command line argument, do we operate quietly
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:559
+msgid "Do not display information or progress"
+msgstr ""
+
 #. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:450
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:577
 msgid "PackageKit Debuginfo Installer"
 msgstr "PackageKit Debuginfo Installer"
 
 #. TRANSLATORS: the use needs to specify a list of package names on the command line
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:460
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:589
 #, c-format
 msgid "ERROR: Specify package names to install."
 msgstr "ERROR: प्रतिष्ठापनजोगी संकुल नाव निश्चित करा."
 
 #. TRANSLATORS: we are getting the list of repositories
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:483
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:623
 #, c-format
 msgid "Getting sources list"
 msgstr "स्त्रोत यादी प्राप्त करत आहे"
 
 #. TRANSLATORS: all completed 100%
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:495
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:532
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:559
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:634
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:666
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:715
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:748
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:641
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:681
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:716
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:800
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:844
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:911
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:955
 #, c-format
 msgid "OK."
 msgstr "ठिक."
 
 #. TRANSLATORS: tell the user what we found
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:498
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:644
 #, c-format
 msgid "Found %i enabled and %i disabled sources."
 msgstr "%i कार्यान्वीत व %i अकार्यान्वीत स्त्रोत आढळले."
 
 #. TRANSLATORS: we're finding repositories that match out pattern
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:505
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:651
 #, c-format
 msgid "Finding debugging sources"
 msgstr "डिबगींग स्त्रोत शोधत आहे"
 
 #. TRANSLATORS: tell the user what we found
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:535
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:684
 #, c-format
 msgid "Found %i disabled debuginfo repos."
 msgstr "%i अकार्यान्वीत debuginfo repos आढळले."
 
 #. TRANSLATORS: we're now enabling all the debug sources we found
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:542
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:691
 #, c-format
 msgid "Enabling debugging sources"
 msgstr "डिबगींग स्त्रोत कार्यान्वीत करत आहे"
 
 #. TRANSLATORS: operation was not successful
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:549
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:625
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:656
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:705
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:739
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:701
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:785
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:829
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:896
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:940
 msgid "FAILED."
 msgstr "अपयशी."
 
 #. TRANSLATORS: tell the user how many we enabled
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:562
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:719
 #, c-format
 msgid "Enabled %i debugging sources."
 msgstr "%i डिबगींग स्त्रोत कार्यान्वीत केले."
 
 #. TRANSLATORS: we're now finding packages that match in all the repos
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:569
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:726
 #, c-format
 msgid "Finding debugging packages"
 msgstr "डिबगींग संकुल शोधत आहे"
 
 #. TRANSLATORS: we couldn't find the package name, non-fatal
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:580
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:738
 #, c-format
 msgid "Failed to find the package %s: %s"
 msgstr "संकुल %s शोधण्यास अपयशी: %s"
 
 #. TRANSLATORS: we couldn't find the debuginfo package name, non-fatal
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:603
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:761
 #, c-format
 msgid "Failed to find the debuginfo package %s: %s"
 msgstr "debuginfo संकुल %s शोधण्यास अपयशी: %s"
 
 #. TRANSLATORS: no debuginfo packages could be found to be installed
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:628
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:789
 #, c-format
 msgid "Found no packages to install."
 msgstr "प्रतिष्ठापन करीता संकुल आढळले नाही."
 
 #. TRANSLATORS: tell the user we found some packages, and then list them
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:637
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:803
 #, c-format
 msgid "Found %i packages:"
 msgstr "%i संकुल आढळले:"
 
 #. TRANSLATORS: tell the user we are searching for deps
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:650
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:819
 #, c-format
 msgid "Finding packages that depend on these packages"
 msgstr "या संकुलवर अवलंबीत संकुल शोधत आहे"
 
 #. TRANSLATORS: could not install, detailed error follows
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:659
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:832
 #, c-format
 msgid "Could not find dependant packages: %s"
 msgstr "अवलंबन संकुल आढळले नाही: %s"
 
 #. TRANSLATORS: tell the user we found some more packages
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:670
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:848
 #, c-format
 msgid "Found %i extra packages."
 msgstr "%i अगाऊ संकुल शोधत आहे."
 
 #. TRANSLATORS: tell the user we found some more packages
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:674
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:852
 #, c-format
 msgid "No extra packages required."
 msgstr "अगाऊ संकुल आवश्यक नाही."
 
 #. TRANSLATORS: tell the user we found some packages (and deps), and then list them
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:680
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:861
 #, c-format
 msgid "Found %i packages to install:"
 msgstr "प्रतिष्ठापन करीता %i संकुल आढळले:"
 
 #. TRANSLATORS: simulate mode is a testing mode where we quit before the action
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:689
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:874
 #, c-format
 msgid "Not installing packages in simulate mode"
 msgstr "सिम्यूलेट पद्धती नुरूप संकुल प्रतिष्ठापीत करत नाही"
 
-#. TRANSLATORS: coul dnot install, detailed error follows
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:708
+#. TRANSLATORS: could not install, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:899
 #, c-format
 msgid "Could not install packages: %s"
 msgstr "संकुल प्रतिष्ठापीत करणे अशक्य: %s"
 
 #. TRANSLATORS: we are now disabling all debuginfo repos we previously enabled
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:732
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:931
 #, c-format
 msgid "Disabling sources previously enabled"
 msgstr "पूर्वी कार्यान्वीत केलेले स्त्रोत अकार्यान्वीत करत आहे"
 
 #. TRANSLATORS: no debuginfo packages could be found to be installed, detailed error follows
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:742
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:943
 #, c-format
 msgid "Could not disable the debugging sources: %s"
 msgstr "डिबगींग स्त्रोत अकार्यान्वीत करण्यास अशक्य: %s"
 
 #. TRANSLATORS: we disabled all the debugging repos that we enabled before
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:751
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:958
 #, c-format
 msgid "Disabled %i debugging sources."
 msgstr "%i डिबगींग स्त्रोत अकार्यान्वीत केले."
 
+#. TRANSLATORS: couldn't open device to write
+#: ../contrib/device-rebind/pk-device-rebind.c:61
+#, fuzzy
+msgid "Failed to open file"
+msgstr "फाइल करीता शोध करण्यास अपयशी"
+
+#. TRANSLATORS: could not write to the device
+#: ../contrib/device-rebind/pk-device-rebind.c:70
+#, fuzzy
+msgid "Failed to write to the file"
+msgstr "फाइल करीता शोध करण्यास अपयशी"
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:110
+#: ../contrib/device-rebind/pk-device-rebind.c:147
+#, fuzzy
+msgid "Failed to write to device"
+msgstr "डिस्क वर साठविण्यास अपयशी"
+
+#. TRANSLATORS: the device could not be found in sysfs
+#: ../contrib/device-rebind/pk-device-rebind.c:175
+#, fuzzy
+msgid "Device could not be found"
+msgstr "संकुल आढळले नाही"
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:202
+#, fuzzy
+msgid "Failed to unregister driver"
+msgstr "डिरेक्ट्री बनविण्यास अपयशी:"
+
+#. TRANSLATORS: we failed to bind the old driver
+#: ../contrib/device-rebind/pk-device-rebind.c:211
+#, fuzzy
+msgid "Failed to register driver"
+msgstr "डिरेक्ट्री बनविण्यास अपयशी:"
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:260
+#, fuzzy
+msgid "Device path not found"
+msgstr "डिरेक्ट्री आढळली नाही"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:268
+msgid "Incorrect device path specified"
+msgstr ""
+
+#. command line argument, simulate what would be done, but don't actually do it
+#: ../contrib/device-rebind/pk-device-rebind.c:296
+#, fuzzy
+msgid "Don't actually touch the hardware, only simulate what would be done"
+msgstr "कुठलेही संकुल प्रत्यक्षरित्या प्रतिष्ठापीत करू नका, फक्त सिम्यूलेट करा"
+
+#. TRANSLATORS: command line option: a list of files to install
+#: ../contrib/device-rebind/pk-device-rebind.c:299
+msgid "Device paths"
+msgstr ""
+
+#. TRANSLATORS: tool that gets called when the device needs reloading after installing firmware
+#: ../contrib/device-rebind/pk-device-rebind.c:314
+#, fuzzy
+msgid "PackageKit Device Reloader"
+msgstr "PackageKit सेवा पॅक"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:322
+msgid "You need to specify at least one valid device path"
+msgstr ""
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:332
+msgid "This script can only be used by the root user"
+msgstr ""
+
+#. TRANSLATORS: we're going to verify the path first
+#: ../contrib/device-rebind/pk-device-rebind.c:341
+msgid "Verifying device path"
+msgstr ""
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:346
+#, fuzzy
+msgid "Failed to verify device path"
+msgstr "फाइल करीता शोध करण्यास अपयशी"
+
+#. TRANSLATORS: we're going to try
+#: ../contrib/device-rebind/pk-device-rebind.c:360
+msgid "Attempting to rebind device"
+msgstr ""
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:365
+#, fuzzy
+msgid "Failed to rebind device"
+msgstr "डिरेक्ट्री बनविण्यास अपयशी:"
+
 #: ../data/packagekit-catalog.xml.in.h:1
 msgid "PackageKit Catalog"
 msgstr "PackageKit सूची"
@@ -1105,95 +1273,176 @@ msgstr "PackageKit संकुल यादी"
 msgid "PackageKit Service Pack"
 msgstr "PackageKit सेवा पॅक"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:1
+#. SECURITY:
+#. - Normal users do not require admin authentication to accept new
+#. licence agreements.
+#. - Change this to 'auth_admin' for environments where users should not
+#. be given the option to make legal decisions.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:7
 msgid "Accept EULA"
 msgstr "EULA स्वीकारा"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:2
+#: ../policy/org.freedesktop.packagekit.policy.in.h:8
 msgid "Authentication is required to accept a EULA"
 msgstr "EULA स्वीकारण्याकरीता ओळख पटवणे आवश्यक आहे"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:3
-msgid "Authentication is required to cancel a task that was not started by yourself"
+#: ../policy/org.freedesktop.packagekit.policy.in.h:9
+msgid ""
+"Authentication is required to cancel a task that was not started by yourself"
 msgstr "तुमच्या द्वारे सुरु न केलेले कार्य रद्द करण्याकरीता ओळख पटवणे आवश्यक आहे"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:4
+#: ../policy/org.freedesktop.packagekit.policy.in.h:10
 msgid "Authentication is required to change software source parameters"
 msgstr "सॉफ्टवेअर स्त्रोत बाब बदलवण्याकरीता ओळख पटवणे आवश्यक आहे"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:5
+#: ../policy/org.freedesktop.packagekit.policy.in.h:11
 msgid ""
 "Authentication is required to consider a key used for signing packages as "
 "trusted"
-msgstr "संकुल स्वाक्षरी करीता वापरण्याजोगी कि वर विश्वसा ठेवण्याकरीता ओळख पटवणे आवश्यक आहेन"
+msgstr ""
+"संकुल स्वाक्षरी करीता वापरण्याजोगी कि वर विश्वसा ठेवण्याकरीता ओळख पटवणे आवश्यक आहेन"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:6
+#: ../policy/org.freedesktop.packagekit.policy.in.h:12
 msgid "Authentication is required to install a signed package"
 msgstr "स्वाक्षरी संकुल प्रतिष्ठापीत करण्याकरीता ओळख पटवणे आवश्यक आहे"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:7
+#: ../policy/org.freedesktop.packagekit.policy.in.h:13
 msgid "Authentication is required to install an untrusted package"
 msgstr "अविश्वारसर्ह संकुल प्रतिष्ठापीत करण्याकरीता ओळख पटवणे आवश्यक आहे"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:8
+#: ../policy/org.freedesktop.packagekit.policy.in.h:14
 msgid "Authentication is required to refresh the system sources"
 msgstr "प्रणाली स्त्रोत पुन्ह दाखल करण्याकरीता ओळख पटवणे आवश्यक आहे"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:9
+#: ../policy/org.freedesktop.packagekit.policy.in.h:15
+#, fuzzy
+msgid "Authentication is required to reload the device with a new driver"
+msgstr "प्रणाली स्त्रोत पुन्ह दाखल करण्याकरीता ओळख पटवणे आवश्यक आहे"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:16
 msgid "Authentication is required to remove packages"
 msgstr "संकुल काढूण टाकण्याकरीता ओळख पटवणे आवश्यक आहे"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:10
+#: ../policy/org.freedesktop.packagekit.policy.in.h:17
 msgid "Authentication is required to rollback a transaction"
 msgstr "कार्य माठीमागे नेण्याकरीता ओळख पटवणे आवश्यक आहे"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:11
+#: ../policy/org.freedesktop.packagekit.policy.in.h:18
 msgid ""
 "Authentication is required to set the network proxy used for downloading "
 "packages"
 msgstr "संकुल डाऊनलोड करीता जाळं प्रॉक्सी निश्चित करण्यासाठी ओळख पटवणे आवश्यक आहे"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:12
+#: ../policy/org.freedesktop.packagekit.policy.in.h:19
 msgid "Authentication is required to update packages"
 msgstr "संकुल अद्यायवत करण्याकरीता ओळख पटवणे आवश्यक आहे"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:13
+#. SECURITY:
+#. - Normal users are allowed to cancel their own task without
+#. authentication, but a different user id needs the admin password
+#. to cancel another users task.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:25
 msgid "Cancel foreign task"
 msgstr "बाहेरील कार्य रद्द"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:14
+#. SECURITY:
+#. - Normal users require admin authentication to enable or disable
+#. software sources as this can be used to enable new updates or
+#. install different versions of software.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:31
 msgid "Change software source parameters"
 msgstr "सॉफ्टवेअर स्त्रोत बाब बदला"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:15
+#. SECURITY:
+#. - Normal users do not need authentication to install signed packages
+#. from signed repositories, as this cannot exploit a system.
+#. - Paranoid users (or parents!) can change this to 'auth_admin' or
+#. 'auth_admin_keep'.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:38
 msgid "Install signed package"
 msgstr "स्वाक्षरीय संकुल प्रतिष्ठापीत करा"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:16
+#. SECURITY:
+#. - Normal users require admin authentication to install untrusted or
+#. unrecognised packages, as allowing users to do this without a
+#. password would be a massive security hole.
+#. - This is not retained as each package should be authenticated.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:45
 msgid "Install untrusted local file"
 msgstr "अविश्वासर्ह स्थानीय फाइल प्रतिष्ठापीत करा"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:17
+#. SECURITY:
+#. - Normal users do not require admin authentication to refresh the
+#. cache, as this doesn't actually install or remove software.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:50
 msgid "Refresh system sources"
 msgstr "प्रणाली स्त्रोत पुन्ह दाखल करा"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:18
+#. SECURITY:
+#. - Normal users require admin authentication to rebind a driver
+#. so that it works after we install firmware.
+#. - This should not be set to 'yes' as unprivileged users could then
+#. try to rebind drivers in use, for instance security authentication
+#. devices.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:58
+msgid "Reload a device"
+msgstr ""
+
+#. SECURITY:
+#. - Normal users require admin authentication to remove packages as
+#. this can make the system unbootable or stop other applications from
+#. working.
+#. - Be sure to close the tool used to remove the packages after the
+#. admin authentication has been obtained, otherwise packages can still
+#. be removed. If this is not possible, change this authentication to
+#. 'auth_admin'.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:68
 msgid "Remove package"
 msgstr "संकुल काढूण टाका"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:19
+#. SECURITY:
+#. - Normal users require admin authentication to rollback system state
+#. as this will change a large number of packages, and could expose the
+#. system to previously patched security vulnerabilities.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:74
 msgid "Rollback to a previous transaction"
 msgstr "कार्य मागील स्थर करीता न्या"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:20
+#. SECURITY:
+#. - Normal users do not require admin authentication to set the proxy
+#. used for downloading packages.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:79
 msgid "Set network proxy"
 msgstr "जाळं प्रॉक्सी निश्चित करा"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:21
+#. SECURITY:
+#. - Normal users require admin authentication to add signing keys.
+#. - This implies adding an explicit trust, and should not be granted
+#. without a secure authentication.
+#. - This is not kept as each package should be authenticated.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:86
 msgid "Trust a key used for signing packages"
 msgstr "संकुल स्वाक्षरी करीता वापरण्याजोगी कि वर विश्वास ठेवा"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:22
+#. SECURITY:
+#. - Normal users do not require admin authentication to update the
+#. system as the packages will be signed, and the action is required
+#. to update the system when unattended.
+#. - Changing this to anything other than 'yes' will break unattended
+#. updates.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:94
 msgid "Update packages"
 msgstr "संकुल अद्ययावत करा"
 
@@ -1217,7 +1466,8 @@ msgstr "योग्य वापरकर्ता एक्जीक्यूà
 msgid ""
 "The org.freedesktop.PackageKit.conf file is not installed in the system "
 "directory:"
-msgstr "org.freedesktop.PackageKit.conf फाइल प्रणाली डिरेक्ट्री अंतर्गत प्रतिष्ठापीत नाही:"
+msgstr ""
+"org.freedesktop.PackageKit.conf फाइल प्रणाली डिरेक्ट्री अंतर्गत प्रतिष्ठापीत नाही:"
 
 #. TRANSLATORS: a backend is the system package tool, e.g. yum, apt
 #: ../src/pk-main.c:205
@@ -1260,36 +1510,49 @@ msgid "Cannot connect to the system bus"
 msgstr "प्रणाली बस सह जुळवणी स्थपीत करण्यास अशक्य"
 
 #. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error follows
-#: ../src/pk-main.c:331
+#: ../src/pk-main.c:334
 msgid "Error trying to start:"
 msgstr "सुरू करतेवेळी त्रुटी आढळली:"
 
-#: ../src/pk-polkit-action-lookup.c:143
+#: ../src/pk-polkit-action-lookup.c:147
 msgid "To install debugging packages, extra sources need to be enabled"
 msgstr "डिबगींग संकुल प्रतिष्ठापीत करण्याकरीता, अगाऊ स्त्रोत कार्यान्वीत करणे आवश्यक आहे"
 
 #. TRANSLATORS: is not GPG signed
-#: ../src/pk-polkit-action-lookup.c:156 ../src/pk-polkit-action-lookup.c:175
+#: ../src/pk-polkit-action-lookup.c:168 ../src/pk-polkit-action-lookup.c:187
 msgid "The software is not from a trusted source."
 msgstr "सॉफ्टवेअरचे स्त्रोत विश्वासर्ह नाही."
 
-#. TRANSLATORS: user has to trust provider -- I know, this sucks
-#: ../src/pk-polkit-action-lookup.c:160
+#: ../src/pk-polkit-action-lookup.c:173
 msgid "Do not update this package unless you are sure it is safe to do so."
 msgstr "असे करणे सुरक्षीत आहे याची खात्री असेपर्यंत या संकुलला अद्ययावत करू नका."
 
+#: ../src/pk-polkit-action-lookup.c:174
+#, fuzzy
+msgid "Do not update these packages unless you are sure it is safe to do so."
+msgstr "असे करणे सुरक्षीत आहे याची खात्री असेपर्यंत या संकुलला अद्ययावत करू नका."
+
+#: ../src/pk-polkit-action-lookup.c:192
+msgid "Do not install this package unless you are sure it is safe to do so."
+msgstr "असे करणे सुरक्षित आहे याची खात्री असेपर्यंत या संकुलला प्रतिष्ठापीत करू नका."
+
+#: ../src/pk-polkit-action-lookup.c:193
+#, fuzzy
+msgid "Do not install these packages unless you are sure it is safe to do so."
+msgstr "असे करणे सुरक्षित आहे याची खात्री असेपर्यंत या संकुलला प्रतिष्ठापीत करू नका."
+
 #. TRANSLATORS: warn the user that all bets are off
-#: ../src/pk-polkit-action-lookup.c:164 ../src/pk-polkit-action-lookup.c:183
+#: ../src/pk-polkit-action-lookup.c:199
 msgid "Malicious software can damage your computer or cause other harm."
 msgstr "सदोषीत सॉफ्टवेअर तुमच्या संगणकाला हानी पुरवू शकतो किंवा दोषीत करू शकतो."
 
-#. TRANSLATORS: user has to trust provider -- I know, this sucks
-#: ../src/pk-polkit-action-lookup.c:179
-msgid "Do not install this package unless you are sure it is safe to do so."
-msgstr "असे करणे सुरक्षित आहे याची खात्री असेपर्यंत या संकुलला प्रतिष्ठापीत करू नका."
+#. TRANSLATORS: too many packages to list each one
+#: ../src/pk-polkit-action-lookup.c:274
+#, fuzzy
+msgid "Many packages"
+msgstr "संकुल अद्ययावत करा"
 
 #. TRANSLATORS: if the transaction is forced to install only trusted packages
-#: ../src/pk-polkit-action-lookup.c:263
+#: ../src/pk-polkit-action-lookup.c:334
 msgid "Only trusted"
 msgstr "फक्त विश्वासर्ह"
-
diff --git a/po/ms.po b/po/ms.po
index 7ae2680..f3797f8 100644
--- a/po/ms.po
+++ b/po/ms.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: packagekit\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-01-15 16:57+0000\n"
+"POT-Creation-Date: 2009-08-24 11:06+0100\n"
 "PO-Revision-Date: 2008-09-25 23:36+0800\n"
 "Last-Translator: Sharuzzaman Ahmat Raslan <sharuzzaman at myrealbox.com>\n"
 "Language-Team: Malay <translation-team-ms at lists.sourceforge.net>\n"
@@ -16,865 +16,1280 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 
 #. TRANSLATORS: this is an atomic transaction
-#: ../client/pk-console.c:230
+#: ../client/pk-console.c:235
 msgid "Transaction"
 msgstr ""
 
 #. TRANSLATORS: this is the time the transaction was started in system timezone
-#: ../client/pk-console.c:232
+#: ../client/pk-console.c:237
 msgid "System time"
 msgstr ""
 
 #. TRANSLATORS: this is if the transaction succeeded or not
-#: ../client/pk-console.c:234
+#: ../client/pk-console.c:239
 msgid "Succeeded"
 msgstr ""
 
 #. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:234 ../client/pk-console.c:377
+#: ../client/pk-console.c:239 ../client/pk-console.c:406
 msgid "True"
 msgstr ""
 
-#: ../client/pk-console.c:234 ../client/pk-console.c:377
+#: ../client/pk-console.c:239 ../client/pk-console.c:406
 msgid "False"
 msgstr ""
 
 #. TRANSLATORS: this is the transactions role, e.g. "update-system"
-#: ../client/pk-console.c:236
+#. TRANSLATORS: the trasaction role, e.g. update-system
+#: ../client/pk-console.c:241 ../src/pk-polkit-action-lookup.c:327
 msgid "Role"
 msgstr ""
 
 #. TRANSLATORS: this is The duration of the transaction
-#: ../client/pk-console.c:241
+#: ../client/pk-console.c:246
 msgid "Duration"
 msgstr ""
 
-#: ../client/pk-console.c:241
+#: ../client/pk-console.c:246
 msgid "(seconds)"
 msgstr ""
 
 #. TRANSLATORS: this is The command line used to do the action
-#: ../client/pk-console.c:245
+#. TRANSLATORS: the command line of the thing that wants the authentication
+#: ../client/pk-console.c:250 ../src/pk-polkit-action-lookup.c:341
 #, fuzzy
 msgid "Command line"
 msgstr "Sambungan Gagal"
 
 #. TRANSLATORS: this is the user ID of the user that started the action
-#: ../client/pk-console.c:247
+#: ../client/pk-console.c:252
 msgid "User ID"
 msgstr ""
 
 #. TRANSLATORS: this is the username, e.g. hughsie
-#: ../client/pk-console.c:254
+#: ../client/pk-console.c:259
 msgid "Username"
 msgstr ""
 
 #. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
-#: ../client/pk-console.c:258
+#: ../client/pk-console.c:263
 msgid "Real name"
 msgstr ""
 
-#: ../client/pk-console.c:266
+#: ../client/pk-console.c:271
 msgid "Affected packages:"
 msgstr ""
 
-#: ../client/pk-console.c:268
+#: ../client/pk-console.c:273
 msgid "Affected packages: None"
 msgstr ""
 
 #. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:293
+#: ../client/pk-console.c:298
 msgid "Distribution"
 msgstr ""
 
 #. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:295
+#: ../client/pk-console.c:300
 msgid "Type"
 msgstr ""
 
 #. TRANSLATORS: this is any summary text describing the upgrade
 #. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:297 ../client/pk-console.c:319
+#: ../client/pk-console.c:302 ../client/pk-console.c:325
 msgid "Summary"
 msgstr ""
 
 #. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:309
+#: ../client/pk-console.c:314
 msgid "Category"
 msgstr ""
 
 #. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:311
+#: ../client/pk-console.c:316
 msgid "ID"
 msgstr ""
 
 #. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:314
+#: ../client/pk-console.c:319
 msgid "Parent"
 msgstr ""
 
-#: ../client/pk-console.c:316
+#. TRANSLATORS: this is the name of the parent group
+#: ../client/pk-console.c:322
 msgid "Name"
 msgstr ""
 
 #. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:322
+#: ../client/pk-console.c:328
 msgid "Icon"
 msgstr ""
 
 #. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:337
+#: ../client/pk-console.c:343
 msgid "Details about the update:"
 msgstr ""
 
-#: ../client/pk-console.c:338
+#. TRANSLATORS: details about the update, package name and version
+#. TRANSLATORS: title, the names of the packages that the method is processing
+#: ../client/pk-console.c:345 ../src/pk-polkit-action-lookup.c:352
 #, fuzzy
 msgid "Package"
-msgstr "  -l             - senaraikan fail dalam pakej.\n"
+msgid_plural "Packages"
+msgstr[0] "  -l             - senaraikan fail dalam pakej.\n"
+msgstr[1] "  -l             - senaraikan fail dalam pakej.\n"
 
-#: ../client/pk-console.c:340
+#. TRANSLATORS: details about the update, any packages that this update updates
+#: ../client/pk-console.c:348
 #, fuzzy
 msgid "Updates"
 msgstr " Auto Kemaskini"
 
-#: ../client/pk-console.c:342
+#. TRANSLATORS: details about the update, any packages that this update obsoletes
+#: ../client/pk-console.c:352
 msgid "Obsoletes"
 msgstr ""
 
-#: ../client/pk-console.c:344
+#. TRANSLATORS: details about the update, the vendor URLs
+#: ../client/pk-console.c:356
 msgid "Vendor"
 msgstr ""
 
-#: ../client/pk-console.c:346
+#. TRANSLATORS: details about the update, the bugzilla URLs
+#: ../client/pk-console.c:360
 msgid "Bugzilla"
 msgstr ""
 
-#: ../client/pk-console.c:348
+#. TRANSLATORS: details about the update, the CVE URLs
+#: ../client/pk-console.c:364
 msgid "CVE"
 msgstr ""
 
-#: ../client/pk-console.c:350
+#. TRANSLATORS: details about the update, if the package requires a restart
+#: ../client/pk-console.c:368
 msgid "Restart"
 msgstr ""
 
-#: ../client/pk-console.c:352
+#. TRANSLATORS: details about the update, any description of the update
+#: ../client/pk-console.c:372
 #, fuzzy
 msgid "Update text"
 msgstr " Auto Kemaskini"
 
-#: ../client/pk-console.c:354
+#. TRANSLATORS: details about the update, the changelog for the package
+#: ../client/pk-console.c:376
 msgid "Changes"
 msgstr ""
 
-#: ../client/pk-console.c:356
+#. TRANSLATORS: details about the update, the ongoing state of the update
+#: ../client/pk-console.c:380
 msgid "State"
 msgstr ""
 
-#: ../client/pk-console.c:359
+#. TRANSLATORS: details about the update, date the update was issued
+#: ../client/pk-console.c:385
 msgid "Issued"
 msgstr ""
 
-#: ../client/pk-console.c:362
+#. TRANSLATORS: details about the update, date the update was updated
+#: ../client/pk-console.c:390
 #, fuzzy
 msgid "Updated"
 msgstr " Auto Kemaskini"
 
-#: ../client/pk-console.c:448 ../client/pk-console.c:450
+#: ../client/pk-console.c:477 ../client/pk-console.c:479
 msgid "Percentage"
 msgstr ""
 
-#: ../client/pk-console.c:450
+#: ../client/pk-console.c:479
 msgid "Unknown"
 msgstr ""
 
 #. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:501
+#: ../client/pk-console.c:521
 #, fuzzy
 msgid "System restart required by:"
 msgstr "Katalaluan diperlukan, ini adalah dokumen yang dienkrip"
 
 #. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:504
+#: ../client/pk-console.c:524
 #, fuzzy
 msgid "Session restart required:"
 msgstr "Katalaluan diperlukan, ini adalah dokumen yang dienkrip"
 
+#. TRANSLATORS: a package requires the system to be restarted due to a security update
+#: ../client/pk-console.c:527
+#, fuzzy
+msgid "System restart (security) required by:"
+msgstr "Katalaluan diperlukan, ini adalah dokumen yang dienkrip"
+
+#. TRANSLATORS: a package requires the session to be restarted due to a security update
+#: ../client/pk-console.c:530
+#, fuzzy
+msgid "Session restart (security) required:"
+msgstr "Katalaluan diperlukan, ini adalah dokumen yang dienkrip"
+
 #. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:507
+#: ../client/pk-console.c:533
 #, fuzzy
 msgid "Application restart required by:"
 msgstr "Katalaluan diperlukan, ini adalah dokumen yang dienkrip"
 
-#: ../client/pk-console.c:543
+#. TRANSLATORS: a package needs to restart their system
+#: ../client/pk-console.c:588
 msgid "Please restart the computer to complete the update."
 msgstr ""
 
-#: ../client/pk-console.c:545
+#. TRANSLATORS: a package needs to restart the session
+#: ../client/pk-console.c:591
 msgid "Please logout and login to complete the update."
 msgstr ""
 
-#: ../client/pk-console.c:547
+#. TRANSLATORS: a package needs to restart the application
+#: ../client/pk-console.c:594
 msgid "Please restart the application as it is being used."
 msgstr ""
 
+#. TRANSLATORS: a package needs to restart their system (due to security)
+#: ../client/pk-console.c:597
+msgid ""
+"Please restart the computer to complete the update as important security "
+"updates have been installed."
+msgstr ""
+
+#. TRANSLATORS: a package needs to restart the session (due to security)
+#: ../client/pk-console.c:600
+msgid ""
+"Please logout and login to complete the update as important security updates "
+"have been installed."
+msgstr ""
+
 #. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:659
+#: ../client/pk-console.c:727
 #, c-format
 msgid "The package %s is already installed"
 msgstr ""
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:667
+#: ../client/pk-console.c:735
 #, fuzzy, c-format
 msgid "The package %s could not be installed: %s"
 msgstr "Tidak dapat menulis kepada fail %s"
 
 #. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
-#: ../client/pk-console.c:692 ../client/pk-console.c:719
-#: ../client/pk-console.c:815 ../client/pk-console.c:932
-#: ../client/pk-tools-common.c:61 ../client/pk-tools-common.c:79
-#: ../client/pk-tools-common.c:86
+#: ../client/pk-console.c:760 ../client/pk-console.c:783
+#: ../client/pk-console.c:879 ../client/pk-console.c:996
+#: ../client/pk-tools-common.c:62 ../client/pk-tools-common.c:81
+#: ../client/pk-tools-common.c:89
 #, c-format
 msgid "Internal error: %s"
 msgstr ""
 
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:700 ../client/pk-console.c:1327
+#: ../client/pk-console.c:768 ../client/pk-console.c:1392
 #, c-format
 msgid "This tool could not install the packages: %s"
 msgstr ""
 
 #. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:727
+#: ../client/pk-console.c:791
 #, fuzzy, c-format
 msgid "This tool could not install the files: %s"
 msgstr "Tidak dapat menulis kepada fail %s"
 
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:783
+#: ../client/pk-console.c:847
 #, fuzzy, c-format
 msgid "This tool could not remove %s: %s"
 msgstr "Tidak dapat menulis kepada fail %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:806 ../client/pk-console.c:844
-#: ../client/pk-console.c:877
+#: ../client/pk-console.c:870 ../client/pk-console.c:908
+#: ../client/pk-console.c:941
 #, c-format
 msgid "This tool could not remove the packages: %s"
 msgstr ""
 
 #. TRANSLATORS: When removing, we might have to remove other dependencies
-#: ../client/pk-console.c:856
+#: ../client/pk-console.c:920
 #, fuzzy
 msgid "The following packages have to be removed:"
 msgstr "Memeriksa untuk membuang pakej berikut"
 
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:863
+#: ../client/pk-console.c:927
 #, fuzzy
 msgid "Proceed removing additional packages?"
 msgstr "Memeriksa untuk membuang pakej berikut"
 
 #. TRANSLATORS: We did not remove any packages
-#: ../client/pk-console.c:868
+#: ../client/pk-console.c:932
 msgid "The package removal was canceled!"
 msgstr ""
 
 #. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:909
+#: ../client/pk-console.c:973
 #, fuzzy, c-format
 msgid "This tool could not download the package %s as it could not be found"
 msgstr "Tidak dapat mencari subkekunci OpenPGP."
 
 #. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:940
+#: ../client/pk-console.c:1004
 #, c-format
 msgid "This tool could not download the packages: %s"
 msgstr ""
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:967 ../client/pk-console.c:976
+#: ../client/pk-console.c:1031 ../client/pk-console.c:1040
 #, fuzzy, c-format
 msgid "This tool could not update %s: %s"
 msgstr "Tidak dapat menulis kepada fail %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:998 ../client/pk-console.c:1006
+#: ../client/pk-console.c:1062 ../client/pk-console.c:1070
 #, fuzzy, c-format
 msgid "This tool could not get the requirements for %s: %s"
 msgstr "Tidak dapat memperoleh kekunci OpenPGP."
 
 #. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:1028 ../client/pk-console.c:1036
+#: ../client/pk-console.c:1092 ../client/pk-console.c:1100
 #, fuzzy, c-format
 msgid "This tool could not get the dependencies for %s: %s"
 msgstr "Tidak dapat memperoleh kekunci OpenPGP."
 
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:1058 ../client/pk-console.c:1066
+#: ../client/pk-console.c:1122 ../client/pk-console.c:1130
 #, fuzzy, c-format
 msgid "This tool could not get package details for %s: %s"
 msgstr "Tidak dapat menulis kepada fail %s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1088
+#: ../client/pk-console.c:1152
 #, fuzzy, c-format
 msgid "This tool could not find the files for %s: %s"
 msgstr "Tidak dapat mencari subkekunci OpenPGP."
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1096
+#: ../client/pk-console.c:1160
 #, fuzzy, c-format
 msgid "This tool could not get the file list for %s: %s"
 msgstr "Tidak dapat menulis kepada fail %s"
 
 #. TRANSLATORS: There was an error getting the list of packages. The filename follows
-#: ../client/pk-console.c:1118
+#: ../client/pk-console.c:1182
 #, c-format
 msgid "File already exists: %s"
 msgstr ""
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1123 ../client/pk-console.c:1179
-#: ../client/pk-console.c:1254
+#: ../client/pk-console.c:1187 ../client/pk-console.c:1243
+#: ../client/pk-console.c:1318
 #, fuzzy
 msgid "Getting package list"
 msgstr "Lebih maklumat pada pakej %s"
 
 #. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1129 ../client/pk-console.c:1185
-#: ../client/pk-console.c:1260
+#: ../client/pk-console.c:1193 ../client/pk-console.c:1249
+#: ../client/pk-console.c:1324
 #, fuzzy, c-format
 msgid "This tool could not get package list: %s"
 msgstr "Tidak dapat menulis kepada fail %s"
 
 #. TRANSLATORS: There was an error saving the list
-#: ../client/pk-console.c:1140
+#: ../client/pk-console.c:1204
 #, fuzzy, c-format
 msgid "Failed to save to disk"
 msgstr "gagal untuk mencipta direktori"
 
 #. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1174 ../client/pk-console.c:1249
+#: ../client/pk-console.c:1238 ../client/pk-console.c:1313
 #, c-format
 msgid "File does not exist: %s"
 msgstr ""
 
 #. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1206
+#: ../client/pk-console.c:1270
 #, fuzzy
 msgid "Packages to add"
 msgstr "Monitor Rangkaian"
 
 #. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1214
+#: ../client/pk-console.c:1278
 #, fuzzy
 msgid "Packages to remove"
 msgstr "Servis PackageKit"
 
 #. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1282
+#: ../client/pk-console.c:1346
 #, c-format
 msgid "No new packages need to be installed"
 msgstr ""
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1288
+#: ../client/pk-console.c:1352
 msgid "To install"
 msgstr ""
 
 #. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1299
+#: ../client/pk-console.c:1364
 msgid "Searching for package: "
 msgstr ""
 
 #. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1303
+#: ../client/pk-console.c:1368
 #, fuzzy
 msgid "not found."
 msgstr "Fail %s tidak dijumpai"
 
 #. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1314
+#: ../client/pk-console.c:1379
 #, c-format
 msgid "No packages can be found to install"
 msgstr ""
 
 #. TRANSLATORS: installing new packages from package list
-#: ../client/pk-console.c:1320
-#, fuzzy
+#. TRANSLATORS: we are now installing the debuginfo packages we found earlier
+#: ../client/pk-console.c:1385
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:886
+#, fuzzy, c-format
 msgid "Installing packages"
 msgstr "Memasang pemuatboot..."
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1356
+#: ../client/pk-console.c:1421
 #, fuzzy, c-format
 msgid "This tool could not find the update details for %s: %s"
 msgstr "Tidak dapat mencari subkekunci OpenPGP."
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1364
+#: ../client/pk-console.c:1429
 #, fuzzy, c-format
 msgid "This tool could not get the update details for %s: %s"
 msgstr "Tidak dapat mencari subkekunci OpenPGP."
 
 #. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
-#: ../client/pk-console.c:1410
+#: ../client/pk-console.c:1460
 msgid "Error:"
 msgstr ""
 
 #. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1424
+#: ../client/pk-console.c:1474
 #, fuzzy
 msgid "Package description"
 msgstr "Tiada keterangan"
 
+#. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
+#: ../client/pk-console.c:1490
+msgid "Message:"
+msgstr ""
+
 #. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1458
+#: ../client/pk-console.c:1518
 #, fuzzy
 msgid "Package files"
 msgstr "  -l             - senaraikan fail dalam pakej.\n"
 
 #. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1466
+#: ../client/pk-console.c:1526
 #, fuzzy
 msgid "No files"
 msgstr "Tiada fail boleh ditukar nama dijumpai."
 
 #. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1489
+#: ../client/pk-console.c:1549
 msgid "Repository signature required"
 msgstr ""
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1499
+#: ../client/pk-console.c:1559
 msgid "Do you accept this signature?"
 msgstr ""
 
 #. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1503
+#: ../client/pk-console.c:1563
 msgid "The signature was not accepted."
 msgstr ""
 
 #. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1537
+#: ../client/pk-console.c:1597
 msgid "End user license agreement required"
 msgstr ""
 
 #. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1544
+#: ../client/pk-console.c:1604
 #, fuzzy
 msgid "Do you agree to this license?"
 msgstr "Anda ada Cekera jurupacu?"
 
 #. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1548
+#: ../client/pk-console.c:1608
 msgid "The license was refused."
 msgstr ""
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1577
+#: ../client/pk-console.c:1637
 msgid "The daemon crashed mid-transaction!"
 msgstr ""
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1630
+#: ../client/pk-console.c:1690
 #, fuzzy
 msgid "PackageKit Console Interface"
 msgstr "Bahasa Antaramuka Pengguna"
 
-#: ../client/pk-console.c:1630
+#. these are commands we can use with pkcon
+#: ../client/pk-console.c:1692
 msgid "Subcommands:"
 msgstr ""
 
-#: ../client/pk-console.c:1719 ../client/pk-generate-pack.c:184
-#: ../client/pk-monitor.c:115
-#: ../contrib/command-not-found/pk-command-not-found.c:510
-#: ../src/pk-main.c:192
+#. TRANSLATORS: command line argument, if we should show debugging information
+#. TRANSLATORS: if we should show debugging data
+#: ../client/pk-console.c:1785 ../client/pk-generate-pack.c:185
+#: ../client/pk-monitor.c:128
+#: ../contrib/command-not-found/pk-command-not-found.c:616
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:550
+#: ../contrib/device-rebind/pk-device-rebind.c:293 ../src/pk-main.c:211
 msgid "Show extra debugging information"
 msgstr ""
 
-#: ../client/pk-console.c:1721 ../client/pk-monitor.c:117
+#. TRANSLATORS: command line argument, just show the version string
+#: ../client/pk-console.c:1788 ../client/pk-monitor.c:130
 #, fuzzy
 msgid "Show the program version and exit"
 msgstr "Papar maklumat program, nombor versi, dan hakcipta"
 
-#: ../client/pk-console.c:1723
+#. TRANSLATORS: command line argument, use a filter to narrow down results
+#: ../client/pk-console.c:1791
 #, fuzzy
 msgid "Set the filter, e.g. installed"
 msgstr " tiada pemandu dipasang."
 
-#: ../client/pk-console.c:1725
+#. TRANSLATORS: command line argument, work asynchronously
+#: ../client/pk-console.c:1794
 msgid "Exit without waiting for actions to complete"
 msgstr ""
 
 #. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:1752
+#: ../client/pk-console.c:1821
 msgid "This tool could not connect to system DBUS."
 msgstr ""
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1839
+#: ../client/pk-console.c:1911
 msgid "The filter specified was invalid"
 msgstr ""
 
-#: ../client/pk-console.c:1856
-#, fuzzy
-msgid "You need to specify a search type, e.g. name"
-msgstr "(anda tidak perlu menaip domain selepas nama)"
+#. TRANSLATORS: a search type can be name, details, file, etc
+#: ../client/pk-console.c:1930
+msgid "A search type is required, e.g. name"
+msgstr ""
 
-#: ../client/pk-console.c:1861 ../client/pk-console.c:1868
-#: ../client/pk-console.c:1875 ../client/pk-console.c:1882
-#: ../client/pk-console.c:1990 ../client/pk-console.c:2000
-#: ../client/pk-console.c:2007 ../client/pk-console.c:2014
-#, fuzzy
-msgid "You need to specify a search term"
-msgstr "Anda perlu menyatakan fail untuk dibuka!"
+#. TRANSLATORS: the user needs to provide a search term
+#: ../client/pk-console.c:1937 ../client/pk-console.c:1946
+#: ../client/pk-console.c:1955 ../client/pk-console.c:1964
+msgid "A search term is required"
+msgstr ""
 
-#: ../client/pk-console.c:1887
+#. TRANSLATORS: the search type was provided, but invalid
+#: ../client/pk-console.c:1971
 #, fuzzy
 msgid "Invalid search type"
 msgstr "Jenis Senarai Semasa"
 
-#: ../client/pk-console.c:1892
-msgid "You need to specify a package or file to install"
+#. TRANSLATORS: the user did not specify what they wanted to install
+#: ../client/pk-console.c:1977
+msgid "A package name or filename to install is required"
 msgstr ""
 
-#: ../client/pk-console.c:1899
-msgid "You need to specify a type, key_id and package_id"
+#. TRANSLATORS: geeky error, 99.9999% of users won't see this
+#: ../client/pk-console.c:1986
+msgid "A type, key_id and package_id are required"
 msgstr ""
 
-#: ../client/pk-console.c:1906
-#, fuzzy
-msgid "You need to specify a package to remove"
-msgstr "Anda perlu menyatakan fail untuk dibuka!"
+#. TRANSLATORS: the user did not specify what they wanted to remove
+#: ../client/pk-console.c:1995
+msgid "A package name to remove is required"
+msgstr ""
 
-#: ../client/pk-console.c:1912
-msgid ""
-"You need to specify the destination directory and then the packages to "
-"download"
+#. TRANSLATORS: the user did not specify anything about what to download or where
+#: ../client/pk-console.c:2003
+msgid "A destination directory and the package names to download are required"
 msgstr ""
 
-#: ../client/pk-console.c:1917
+#. TRANSLATORS: the directory does not exist, so we can't continue
+#: ../client/pk-console.c:2010
 #, fuzzy
 msgid "Directory not found"
 msgstr "Fail %s tidak dijumpai"
 
-#: ../client/pk-console.c:1923
+#. TRANSLATORS: geeky error, 99.9999% of users won't see this
+#: ../client/pk-console.c:2018
 #, fuzzy
-msgid "You need to specify a licence identifier (eula-id)"
+msgid "A licence identifier (eula-id) is required"
 msgstr "Anda perlu menyatakan fail untuk dibuka!"
 
-#: ../client/pk-console.c:1939
-msgid "You need to specify a package name to resolve"
+#. TRANSLATORS: geeky error, 99.9999% of users won't see this
+#: ../client/pk-console.c:2028
+msgid "A transaction identifier (tid) is required"
 msgstr ""
 
-#: ../client/pk-console.c:1946 ../client/pk-console.c:1953
-#, fuzzy
-msgid "You need to specify a repository name"
-msgstr "Anda perlu menyatakan fail untuk dibuka!"
+#. TRANSLATORS: The user did not specify a package name
+#: ../client/pk-console.c:2045
+msgid "A package name to resolve is required"
+msgstr ""
 
-#: ../client/pk-console.c:1960
-msgid "You need to specify a repo name/parameter and value"
+#. TRANSLATORS: The user did not specify a repository (software source) name
+#: ../client/pk-console.c:2054 ../client/pk-console.c:2063
+msgid "A repository name is required"
 msgstr ""
 
-#: ../client/pk-console.c:1972
+#. TRANSLATORS: The user didn't provide any data
+#: ../client/pk-console.c:2072
+msgid "A repo name, parameter and value are required"
+msgstr ""
+
+#. TRANSLATORS: The user didn't specify what action to use
+#: ../client/pk-console.c:2086
 #, fuzzy
-msgid "You need to specify an action, e.g. 'update-system'"
+msgid "An action, e.g. 'update-system' is required"
 msgstr "(anda tidak perlu menaip domain selepas nama)"
 
-#: ../client/pk-console.c:1977
-#, fuzzy
-msgid "You need to specify a correct role"
-msgstr "Anda perlu menyatakan fail untuk dibuka!"
+#. TRANSLATORS: The user specified an invalid action
+#: ../client/pk-console.c:2093
+msgid "A correct role is required"
+msgstr ""
 
-#: ../client/pk-console.c:1982
-msgid "Failed to get last time"
+#. TRANSLATORS: we keep a database updated with the time that an action was last executed
+#: ../client/pk-console.c:2100
+msgid "Failed to get the time since this action was last completed"
 msgstr ""
 
-#: ../client/pk-console.c:2021
-msgid "You need to specify a package to find the details for"
+#. TRANSLATORS: The user did not provide a package name
+#. TRANSLATORS: This is when the user fails to supply the package name
+#: ../client/pk-console.c:2110 ../client/pk-console.c:2122
+#: ../client/pk-console.c:2131 ../client/pk-console.c:2149
+#: ../client/pk-console.c:2158 ../client/pk-generate-pack.c:241
+msgid "A package name is required"
 msgstr ""
 
-#: ../client/pk-console.c:2028
-msgid "You need to specify a package to find the files for"
+#. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
+#: ../client/pk-console.c:2140
+msgid "A package provide string is required"
 msgstr ""
 
-#: ../client/pk-console.c:2035
-#, fuzzy
-msgid "You need to specify a list file to create"
-msgstr "Anda perlu menyatakan fail untuk dibuka!"
+#. TRANSLATORS: The user didn't specify a filename to create as a list
+#: ../client/pk-console.c:2167
+msgid "A list file name to create is required"
+msgstr ""
 
-#: ../client/pk-console.c:2043 ../client/pk-console.c:2051
-#, fuzzy
-msgid "You need to specify a list file to open"
-msgstr "Anda perlu menyatakan fail untuk dibuka!"
+#. TRANSLATORS: The user didn't specify a filename to open as a list
+#: ../client/pk-console.c:2177 ../client/pk-console.c:2187
+msgid "A list file to open is required"
+msgstr ""
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2104
+#: ../client/pk-console.c:2241
 #, fuzzy, c-format
 msgid "Option '%s' is not supported"
 msgstr "Format Tidak Disokong"
 
 #. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2117
-msgid "You don't have the necessary privileges for this operation"
+#: ../client/pk-console.c:2254
+msgid "Incorrect privileges for this operation"
 msgstr ""
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2120
+#: ../client/pk-console.c:2257
 #, fuzzy
 msgid "Command failed"
 msgstr "Sambungan Gagal"
 
 #. TRANSLATORS: This is the state of the transaction
-#: ../client/pk-generate-pack.c:100
+#: ../client/pk-generate-pack.c:101
 msgid "Downloading"
 msgstr ""
 
 #. TRANSLATORS: This is when the main packages are being downloaded
-#: ../client/pk-generate-pack.c:120
+#: ../client/pk-generate-pack.c:121
 msgid "Downloading packages"
 msgstr ""
 
 #. TRANSLATORS: This is when the dependency packages are being downloaded
-#: ../client/pk-generate-pack.c:125
+#: ../client/pk-generate-pack.c:126
 msgid "Downloading dependencies"
 msgstr ""
 
-#: ../client/pk-generate-pack.c:186
+#. TRANSLATORS: we can exclude certain packages (glibc) when we know they'll exist on the target
+#: ../client/pk-generate-pack.c:188
 msgid "Set the file name of dependencies to be excluded"
 msgstr ""
 
-#: ../client/pk-generate-pack.c:188
-msgid "The output directory (the current directory is used if ommitted)"
+#. TRANSLATORS: the output location
+#: ../client/pk-generate-pack.c:191
+msgid ""
+"The output file or directory (the current directory is used if ommitted)"
 msgstr ""
 
-#: ../client/pk-generate-pack.c:190
+#. TRANSLATORS: put a list of packages in the pack
+#: ../client/pk-generate-pack.c:194
 msgid "The package to be put into the service pack"
 msgstr ""
 
-#: ../client/pk-generate-pack.c:192
+#. TRANSLATORS: put all pending updates in the pack
+#: ../client/pk-generate-pack.c:197
 msgid "Put all updates available in the service pack"
 msgstr ""
 
 #. TRANSLATORS: This is when the user fails to supply the correct arguments
-#: ../client/pk-generate-pack.c:220
+#: ../client/pk-generate-pack.c:225
 msgid "Neither --package or --updates option selected."
 msgstr ""
 
 #. TRANSLATORS: This is when the user fails to supply just one argument
-#: ../client/pk-generate-pack.c:228
+#: ../client/pk-generate-pack.c:233
 msgid "Both options selected."
 msgstr ""
 
+#. TRANSLATORS: This is when the user fails to supply the output
+#: ../client/pk-generate-pack.c:249
+msgid "A output directory or file name is required"
+msgstr ""
+
+#. TRANSLATORS: This is when the backend doesn't have the capability to get-depends
+#. TRANSLATORS: This is when the backend doesn't have the capability to download
+#: ../client/pk-generate-pack.c:267 ../client/pk-generate-pack.c:273
+msgid "The package manager cannot perform this type of operation."
+msgstr ""
+
+#. TRANSLATORS: This is when the distro didn't include libarchive support into PK
+#: ../client/pk-generate-pack.c:280
+msgid ""
+"Service packs cannot be created as PackageKit was not built with libarchive "
+"support."
+msgstr ""
+
+#. TRANSLATORS: the user specified an absolute path, but didn't get the extension correct
+#: ../client/pk-generate-pack.c:291
+msgid "If specifying a file, the service pack name must end with"
+msgstr ""
+
 #. TRANSLATORS: This is when file already exists
-#: ../client/pk-generate-pack.c:261
+#: ../client/pk-generate-pack.c:307
 msgid "A pack with the same name already exists, do you want to overwrite it?"
 msgstr ""
 
 #. TRANSLATORS: This is when the pack was not overwritten
-#: ../client/pk-generate-pack.c:264
+#: ../client/pk-generate-pack.c:310
 msgid "The pack was not overwritten."
 msgstr ""
 
 #. TRANSLATORS: This is when the temporary directory cannot be created, the directory name follows
-#: ../client/pk-generate-pack.c:276
+#: ../client/pk-generate-pack.c:323
 #, fuzzy
 msgid "Failed to create directory:"
 msgstr "gagal untuk mencipta direktori:"
 
 #. TRANSLATORS: This is when the list of packages from the remote computer cannot be opened
-#: ../client/pk-generate-pack.c:285
+#: ../client/pk-generate-pack.c:333
 #, fuzzy
 msgid "Failed to open package list."
 msgstr "gagal untuk mencipta direktori."
 
 #. TRANSLATORS: The package name is being matched up to available packages
-#: ../client/pk-generate-pack.c:295
+#: ../client/pk-generate-pack.c:344
 msgid "Finding package name."
 msgstr ""
 
 #. TRANSLATORS: This is when the package cannot be found in any software source. The detailed error follows
-#: ../client/pk-generate-pack.c:299
+#: ../client/pk-generate-pack.c:348
 #, fuzzy, c-format
 msgid "Failed to find package '%s': %s"
 msgstr "  -P             - jangan cari dalam tersedia utk mencari pakej.\n"
 
 #. TRANSLATORS: This is telling the user we are in the process of making the pack
-#: ../client/pk-generate-pack.c:315
+#: ../client/pk-generate-pack.c:365
 msgid "Creating service pack..."
 msgstr ""
 
 #. TRANSLATORS: we succeeded in making the file
-#: ../client/pk-generate-pack.c:322
+#: ../client/pk-generate-pack.c:372
 #, c-format
 msgid "Service pack created '%s'"
 msgstr ""
 
 #. TRANSLATORS: we failed to make te file
-#: ../client/pk-generate-pack.c:326
+#: ../client/pk-generate-pack.c:377
 #, fuzzy, c-format
 msgid "Failed to create '%s': %s"
 msgstr "gagal untuk mencipta direktori %s: %s"
 
-#: ../client/pk-monitor.c:132
+#. TRANSLATORS: this is a program that monitors PackageKit
+#: ../client/pk-monitor.c:146
 #, fuzzy
 msgid "PackageKit Monitor"
 msgstr "Monitor Rangkaian"
 
+#: ../client/pk-monitor.c:183
+msgid "Cannot show the list of transactions"
+msgstr ""
+
 #. TRANSLATORS: The package was not found in any software sources
-#: ../client/pk-tools-common.c:114
+#: ../client/pk-tools-common.c:118
 #, c-format
 msgid "The package could not be found"
 msgstr ""
 
 #. TRANSLATORS: more than one package could be found that matched, to follow is a list of possible packages
-#: ../client/pk-tools-common.c:125
+#: ../client/pk-tools-common.c:130
 #, fuzzy
 msgid "More than one package matches:"
 msgstr "Tidak dapat mencari subkekunci OpenPGP."
 
 #. TRANSLATORS: This finds out which package in the list to use
-#: ../client/pk-tools-common.c:132
+#: ../client/pk-tools-common.c:137
 #, fuzzy
 msgid "Please choose the correct package: "
 msgstr "Sila masukkan %(instkey) anda."
 
-#: ../client/pk-tools-common.c:157
+#: ../client/pk-tools-common.c:162
 #, fuzzy, c-format
 msgid "Please enter a number from 1 to %i: "
 msgstr "Pilih nombor latihan dari 1 hingga 10."
 
-#. TRANSLATORS: we failed to find the package, this shouldn't happen
+#. TRANSLATORS: when we are getting data from the daemon
+#: ../contrib/browser-plugin/pk-plugin-install.c:466
+#, fuzzy
+msgid "Getting package information..."
+msgstr "Lebih maklumat pada pakej %s"
+
+#. TRANSLATORS: run an applicaiton
+#: ../contrib/browser-plugin/pk-plugin-install.c:472
+#, c-format
+msgid "Run %s"
+msgstr ""
+
+#. TRANSLATORS: show the installed version of a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:478
+#, fuzzy
+msgid "Installed version"
+msgstr "Versi dipasang semasa:"
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:486
+#, c-format
+msgid "Run version %s now"
+msgstr ""
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:492
+msgid "Run now"
+msgstr ""
+
+#. TRANSLATORS: update to a new version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:498
+#, c-format
+msgid "Update to version %s"
+msgstr ""
+
+#. TRANSLATORS: To install a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:504
+#, c-format
+msgid "Install %s now"
+msgstr ""
+
+#. TRANSLATORS: the version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:507
+msgid "Version"
+msgstr ""
+
+#. TRANSLATORS: noting found, so can't install
+#: ../contrib/browser-plugin/pk-plugin-install.c:512
+msgid "No packages found for your system"
+msgstr ""
+
+#. TRANSLATORS: package is being installed
+#: ../contrib/browser-plugin/pk-plugin-install.c:517
+#, fuzzy
+msgid "Installing..."
+msgstr "Memasang pemuatboot..."
+
+#. TRANSLATORS: downloading repo data so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:349
+msgid "Downloading details about the software sources."
+msgstr ""
+
+#. TRANSLATORS: downloading file lists so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:353
+msgid "Downloading filelists (this may take some time to complete)."
+msgstr ""
+
+#. TRANSLATORS: waiting for native lock
+#: ../contrib/command-not-found/pk-command-not-found.c:357
+msgid "Waiting for package manager lock."
+msgstr ""
+
+#. TRANSLATORS: loading package cache so we can search
 #: ../contrib/command-not-found/pk-command-not-found.c:361
 #, fuzzy
+msgid "Loading list of packages."
+msgstr "gagal untuk mencipta direktori."
+
+#. TRANSLATORS: we failed to find the package, this shouldn't happen
+#: ../contrib/command-not-found/pk-command-not-found.c:420
+#, fuzzy
 msgid "Failed to search for file"
 msgstr "gagal untuk mencipta direktori"
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:485
+#: ../contrib/command-not-found/pk-command-not-found.c:557
 msgid "Failed to launch:"
 msgstr ""
 
 #. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/command-not-found/pk-command-not-found.c:526
+#: ../contrib/command-not-found/pk-command-not-found.c:632
 #, fuzzy
 msgid "PackageKit Command Not Found"
 msgstr "Monitor Rangkaian"
 
 #. TRANSLATORS: the prefix of all the output telling the user why it's not executing
-#: ../contrib/command-not-found/pk-command-not-found.c:548
+#: ../contrib/command-not-found/pk-command-not-found.c:658
 #, fuzzy
 msgid "Command not found."
 msgstr "Fail %s tidak dijumpai"
 
 #. TRANSLATORS: tell the user what we think the command is
-#: ../contrib/command-not-found/pk-command-not-found.c:555
+#: ../contrib/command-not-found/pk-command-not-found.c:665
 msgid "Similar command is:"
 msgstr ""
 
 #. TRANSLATORS: Ask the user if we should run the similar command
-#: ../contrib/command-not-found/pk-command-not-found.c:564
+#: ../contrib/command-not-found/pk-command-not-found.c:674
 msgid "Run similar command:"
 msgstr ""
 
 #. TRANSLATORS: show the user a list of commands that they could have meant
 #. TRANSLATORS: show the user a list of commands we could run
-#: ../contrib/command-not-found/pk-command-not-found.c:576
-#: ../contrib/command-not-found/pk-command-not-found.c:585
+#: ../contrib/command-not-found/pk-command-not-found.c:686
+#: ../contrib/command-not-found/pk-command-not-found.c:695
 msgid "Similar commands are:"
 msgstr ""
 
 #. TRANSLATORS: ask the user to choose a file to run
-#: ../contrib/command-not-found/pk-command-not-found.c:592
+#: ../contrib/command-not-found/pk-command-not-found.c:702
 msgid "Please choose a command to run"
 msgstr ""
 
 #. TRANSLATORS: tell the user what package provides the command
-#: ../contrib/command-not-found/pk-command-not-found.c:607
+#: ../contrib/command-not-found/pk-command-not-found.c:721
 msgid "The package providing this file is:"
 msgstr ""
 
 #. TRANSLATORS: as the user if we want to install a package to provide the command
-#: ../contrib/command-not-found/pk-command-not-found.c:612
+#: ../contrib/command-not-found/pk-command-not-found.c:726
 #, c-format
 msgid "Install package '%s' to provide command '%s'?"
 msgstr ""
 
 #. TRANSLATORS: Show the user a list of packages that provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:633
+#: ../contrib/command-not-found/pk-command-not-found.c:747
 msgid "Packages providing this file are:"
 msgstr ""
 
 #. TRANSLATORS: Show the user a list of packages that they can install to provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:642
+#: ../contrib/command-not-found/pk-command-not-found.c:756
 msgid "Suitable packages are:"
 msgstr ""
 
 #. get selection
 #. TRANSLATORS: ask the user to choose a file to install
-#: ../contrib/command-not-found/pk-command-not-found.c:650
+#: ../contrib/command-not-found/pk-command-not-found.c:764
 #, fuzzy
 msgid "Please choose a package to install"
 msgstr "Sila masukkan %(instkey) anda."
 
-#. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/src/contents.cpp:298
+#. TRANSLATORS: we are starting to install the packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:187
+msgid "Starting install"
+msgstr ""
+
+#. TRANSLATORS: we couldn't find the package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:397
+#, fuzzy, c-format
+msgid "Failed to find the package %s, or already installed: %s"
+msgstr "  -P             - jangan cari dalam tersedia utk mencari pakej.\n"
+
+#. command line argument, simulate what would be done, but don't actually do it
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:553
+msgid ""
+"Don't actually install any packages, only simulate what would be installed"
+msgstr ""
+
+#. command line argument, do we skip packages that depend on the ones specified
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:556
+msgid "Do not install dependencies of the core packages"
+msgstr ""
+
+#. command line argument, do we operate quietly
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:559
+msgid "Do not display information or progress"
+msgstr ""
+
+#. TRANSLATORS: tool that gets called when the command is not found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:577
 #, fuzzy
-msgid "Getting package information..."
+msgid "PackageKit Debuginfo Installer"
+msgstr "Bahasa Antaramuka Pengguna"
+
+#. TRANSLATORS: the use needs to specify a list of package names on the command line
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:589
+#, c-format
+msgid "ERROR: Specify package names to install."
+msgstr ""
+
+#. TRANSLATORS: we are getting the list of repositories
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:623
+#, fuzzy, c-format
+msgid "Getting sources list"
 msgstr "Lebih maklumat pada pakej %s"
 
-#. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/src/contents.cpp:304
+#. TRANSLATORS: all completed 100%
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:641
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:681
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:716
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:800
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:844
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:911
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:955
 #, c-format
-msgid "Run %s"
+msgid "OK."
 msgstr ""
 
-#. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/src/contents.cpp:310
-#, fuzzy
-msgid "Installed version"
-msgstr "Versi dipasang semasa:"
+#. TRANSLATORS: tell the user what we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:644
+#, c-format
+msgid "Found %i enabled and %i disabled sources."
+msgstr ""
 
-#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/src/contents.cpp:318
+#. TRANSLATORS: we're finding repositories that match out pattern
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:651
 #, c-format
-msgid "Run version %s now"
+msgid "Finding debugging sources"
 msgstr ""
 
-#: ../contrib/browser-plugin/src/contents.cpp:324
-msgid "Run now"
+#. TRANSLATORS: tell the user what we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:684
+#, c-format
+msgid "Found %i disabled debuginfo repos."
 msgstr ""
 
-#. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/src/contents.cpp:330
+#. TRANSLATORS: we're now enabling all the debug sources we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:691
 #, c-format
-msgid "Update to version %s"
+msgid "Enabling debugging sources"
 msgstr ""
 
-#. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/src/contents.cpp:336
+#. TRANSLATORS: operation was not successful
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:701
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:785
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:829
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:896
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:940
+msgid "FAILED."
+msgstr ""
+
+#. TRANSLATORS: tell the user how many we enabled
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:719
 #, c-format
-msgid "Install %s now"
+msgid "Enabled %i debugging sources."
 msgstr ""
 
-#. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/src/contents.cpp:339
-msgid "Version"
+#. TRANSLATORS: we're now finding packages that match in all the repos
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:726
+#, c-format
+msgid "Finding debugging packages"
 msgstr ""
 
-#. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/src/contents.cpp:344
-msgid "No packages found for your system"
+#. TRANSLATORS: we couldn't find the package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:738
+#, fuzzy, c-format
+msgid "Failed to find the package %s: %s"
+msgstr "  -P             - jangan cari dalam tersedia utk mencari pakej.\n"
+
+#. TRANSLATORS: we couldn't find the debuginfo package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:761
+#, fuzzy, c-format
+msgid "Failed to find the debuginfo package %s: %s"
+msgstr "  -P             - jangan cari dalam tersedia utk mencari pakej.\n"
+
+#. TRANSLATORS: no debuginfo packages could be found to be installed
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:789
+#, fuzzy, c-format
+msgid "Found no packages to install."
+msgstr "Sila masukkan %(instkey) anda."
+
+#. TRANSLATORS: tell the user we found some packages, and then list them
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:803
+#, c-format
+msgid "Found %i packages:"
 msgstr ""
 
-#. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/src/contents.cpp:349
-#, fuzzy
-msgid "Installing..."
+#. TRANSLATORS: tell the user we are searching for deps
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:819
+#, c-format
+msgid "Finding packages that depend on these packages"
+msgstr ""
+
+#. TRANSLATORS: could not install, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:832
+#, fuzzy, c-format
+msgid "Could not find dependant packages: %s"
+msgstr "Tak dapat membuka fail %s."
+
+#. TRANSLATORS: tell the user we found some more packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:848
+#, c-format
+msgid "Found %i extra packages."
+msgstr ""
+
+#. TRANSLATORS: tell the user we found some more packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:852
+#, c-format
+msgid "No extra packages required."
+msgstr ""
+
+#. TRANSLATORS: tell the user we found some packages (and deps), and then list them
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:861
+#, fuzzy, c-format
+msgid "Found %i packages to install:"
+msgstr "Sila masukkan %(instkey) anda."
+
+#. TRANSLATORS: simulate mode is a testing mode where we quit before the action
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:874
+#, fuzzy, c-format
+msgid "Not installing packages in simulate mode"
 msgstr "Memasang pemuatboot..."
 
+#. TRANSLATORS: could not install, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:899
+#, fuzzy, c-format
+msgid "Could not install packages: %s"
+msgstr "  -P             - jangan cari dalam tersedia utk mencari pakej.\n"
+
+#. TRANSLATORS: we are now disabling all debuginfo repos we previously enabled
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:931
+#, c-format
+msgid "Disabling sources previously enabled"
+msgstr ""
+
+#. TRANSLATORS: no debuginfo packages could be found to be installed, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:943
+#, c-format
+msgid "Could not disable the debugging sources: %s"
+msgstr ""
+
+#. TRANSLATORS: we disabled all the debugging repos that we enabled before
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:958
+#, c-format
+msgid "Disabled %i debugging sources."
+msgstr ""
+
+#. TRANSLATORS: couldn't open device to write
+#: ../contrib/device-rebind/pk-device-rebind.c:61
+#, fuzzy
+msgid "Failed to open file"
+msgstr "gagal untuk mencipta direktori"
+
+#. TRANSLATORS: could not write to the device
+#: ../contrib/device-rebind/pk-device-rebind.c:70
+#, fuzzy
+msgid "Failed to write to the file"
+msgstr "gagal untuk mencipta direktori"
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:110
+#: ../contrib/device-rebind/pk-device-rebind.c:147
+#, fuzzy
+msgid "Failed to write to device"
+msgstr "gagal untuk mencipta direktori"
+
+#. TRANSLATORS: the device could not be found in sysfs
+#: ../contrib/device-rebind/pk-device-rebind.c:175
+#, fuzzy
+msgid "Device could not be found"
+msgstr "Fail %s tidak dijumpai"
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:202
+#, fuzzy
+msgid "Failed to unregister driver"
+msgstr "gagal untuk mencipta direktori:"
+
+#. TRANSLATORS: we failed to bind the old driver
+#: ../contrib/device-rebind/pk-device-rebind.c:211
+#, fuzzy
+msgid "Failed to register driver"
+msgstr "gagal untuk mencipta direktori:"
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:260
+#, fuzzy
+msgid "Device path not found"
+msgstr "Fail %s tidak dijumpai"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:268
+msgid "Incorrect device path specified"
+msgstr ""
+
+#. command line argument, simulate what would be done, but don't actually do it
+#: ../contrib/device-rebind/pk-device-rebind.c:296
+msgid "Don't actually touch the hardware, only simulate what would be done"
+msgstr ""
+
+#. TRANSLATORS: command line option: a list of files to install
+#: ../contrib/device-rebind/pk-device-rebind.c:299
+msgid "Device paths"
+msgstr ""
+
+#. TRANSLATORS: tool that gets called when the device needs reloading after installing firmware
+#: ../contrib/device-rebind/pk-device-rebind.c:314
+#, fuzzy
+msgid "PackageKit Device Reloader"
+msgstr "Konfigur penemuan servis"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:322
+#, fuzzy
+msgid "You need to specify at least one valid device path"
+msgstr "Anda perlu menyatakan fail untuk dibuka!"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:332
+msgid "This script can only be used by the root user"
+msgstr ""
+
+#. TRANSLATORS: we're going to verify the path first
+#: ../contrib/device-rebind/pk-device-rebind.c:341
+msgid "Verifying device path"
+msgstr ""
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:346
+#, fuzzy
+msgid "Failed to verify device path"
+msgstr "gagal untuk mencipta direktori"
+
+#. TRANSLATORS: we're going to try
+#: ../contrib/device-rebind/pk-device-rebind.c:360
+msgid "Attempting to rebind device"
+msgstr ""
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:365
+#, fuzzy
+msgid "Failed to rebind device"
+msgstr "gagal untuk mencipta direktori:"
+
 #: ../data/packagekit-catalog.xml.in.h:1
 #, fuzzy
 msgid "PackageKit Catalog"
@@ -890,159 +1305,310 @@ msgstr "Kembalikan Dari Katalog"
 msgid "PackageKit Service Pack"
 msgstr "Konfigur penemuan servis"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:1
+#. SECURITY:
+#. - Normal users do not require admin authentication to accept new
+#. licence agreements.
+#. - Change this to 'auth_admin' for environments where users should not
+#. be given the option to make legal decisions.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:7
 msgid "Accept EULA"
 msgstr ""
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:2
+#: ../policy/org.freedesktop.packagekit.policy.in.h:8
 msgid "Authentication is required to accept a EULA"
 msgstr ""
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:3
+#: ../policy/org.freedesktop.packagekit.policy.in.h:9
 msgid ""
 "Authentication is required to cancel a task that was not started by yourself"
 msgstr ""
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:4
+#: ../policy/org.freedesktop.packagekit.policy.in.h:10
 msgid "Authentication is required to change software source parameters"
 msgstr ""
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:5
+#: ../policy/org.freedesktop.packagekit.policy.in.h:11
 msgid ""
 "Authentication is required to consider a key used for signing packages as "
 "trusted"
 msgstr ""
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:6
+#: ../policy/org.freedesktop.packagekit.policy.in.h:12
 msgid "Authentication is required to install a signed package"
 msgstr ""
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:7
+#: ../policy/org.freedesktop.packagekit.policy.in.h:13
 msgid "Authentication is required to install an untrusted package"
 msgstr ""
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:8
+#: ../policy/org.freedesktop.packagekit.policy.in.h:14
 msgid "Authentication is required to refresh the system sources"
 msgstr ""
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:9
+#: ../policy/org.freedesktop.packagekit.policy.in.h:15
+msgid "Authentication is required to reload the device with a new driver"
+msgstr ""
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:16
 msgid "Authentication is required to remove packages"
 msgstr ""
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:10
+#: ../policy/org.freedesktop.packagekit.policy.in.h:17
 msgid "Authentication is required to rollback a transaction"
 msgstr ""
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:11
+#: ../policy/org.freedesktop.packagekit.policy.in.h:18
 msgid ""
 "Authentication is required to set the network proxy used for downloading "
 "packages"
 msgstr ""
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:12
+#: ../policy/org.freedesktop.packagekit.policy.in.h:19
 msgid "Authentication is required to update packages"
 msgstr ""
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:13
+#. SECURITY:
+#. - Normal users are allowed to cancel their own task without
+#. authentication, but a different user id needs the admin password
+#. to cancel another users task.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:25
 msgid "Cancel foreign task"
 msgstr ""
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:14
+#. SECURITY:
+#. - Normal users require admin authentication to enable or disable
+#. software sources as this can be used to enable new updates or
+#. install different versions of software.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:31
 msgid "Change software source parameters"
 msgstr ""
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:15
+#. SECURITY:
+#. - Normal users do not need authentication to install signed packages
+#. from signed repositories, as this cannot exploit a system.
+#. - Paranoid users (or parents!) can change this to 'auth_admin' or
+#. 'auth_admin_keep'.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:38
 #, fuzzy
 msgid "Install signed package"
 msgstr "Memasang pemuatboot..."
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:16
+#. SECURITY:
+#. - Normal users require admin authentication to install untrusted or
+#. unrecognised packages, as allowing users to do this without a
+#. password would be a massive security hole.
+#. - This is not retained as each package should be authenticated.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:45
 msgid "Install untrusted local file"
 msgstr ""
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:17
+#. SECURITY:
+#. - Normal users do not require admin authentication to refresh the
+#. cache, as this doesn't actually install or remove software.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:50
 msgid "Refresh system sources"
 msgstr ""
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:18
+#. SECURITY:
+#. - Normal users require admin authentication to rebind a driver
+#. so that it works after we install firmware.
+#. - This should not be set to 'yes' as unprivileged users could then
+#. try to rebind drivers in use, for instance security authentication
+#. devices.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:58
+msgid "Reload a device"
+msgstr ""
+
+#. SECURITY:
+#. - Normal users require admin authentication to remove packages as
+#. this can make the system unbootable or stop other applications from
+#. working.
+#. - Be sure to close the tool used to remove the packages after the
+#. admin authentication has been obtained, otherwise packages can still
+#. be removed. If this is not possible, change this authentication to
+#. 'auth_admin'.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:68
 msgid "Remove package"
 msgstr ""
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:19
+#. SECURITY:
+#. - Normal users require admin authentication to rollback system state
+#. as this will change a large number of packages, and could expose the
+#. system to previously patched security vulnerabilities.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:74
 msgid "Rollback to a previous transaction"
 msgstr ""
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:20
+#. SECURITY:
+#. - Normal users do not require admin authentication to set the proxy
+#. used for downloading packages.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:79
 msgid "Set network proxy"
 msgstr ""
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:21
+#. SECURITY:
+#. - Normal users require admin authentication to add signing keys.
+#. - This implies adding an explicit trust, and should not be granted
+#. without a secure authentication.
+#. - This is not kept as each package should be authenticated.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:86
 msgid "Trust a key used for signing packages"
 msgstr ""
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:22
+#. SECURITY:
+#. - Normal users do not require admin authentication to update the
+#. system as the packages will be signed, and the action is required
+#. to update the system when unattended.
+#. - Changing this to anything other than 'yes' will break unattended
+#. updates.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:94
 msgid "Update packages"
 msgstr ""
 
-#: ../src/pk-main.c:86
+#. TRANSLATORS: failed due to DBus security
+#: ../src/pk-main.c:87
 msgid "Startup failed due to security policies on this machine."
 msgstr ""
 
-#: ../src/pk-main.c:87
+#. TRANSLATORS: only two ways this can fail...
+#: ../src/pk-main.c:89
 msgid "This can happen for two reasons:"
 msgstr ""
 
-#: ../src/pk-main.c:88
+#. TRANSLATORS: only allowed to be owned by root
+#: ../src/pk-main.c:91
 msgid "The correct user is not launching the executable (usually root)"
 msgstr ""
 
-#: ../src/pk-main.c:89
+#. TRANSLATORS: or we are installed in a prefix
+#: ../src/pk-main.c:93
 msgid ""
 "The org.freedesktop.PackageKit.conf file is not installed in the system "
 "directory:"
 msgstr ""
 
-#: ../src/pk-main.c:188
+#. TRANSLATORS: a backend is the system package tool, e.g. yum, apt
+#: ../src/pk-main.c:205
 msgid "Packaging backend to use, e.g. dummy"
 msgstr ""
 
-#: ../src/pk-main.c:190
+#. TRANSLATORS: if we should run in the background
+#: ../src/pk-main.c:208
 msgid "Daemonize and detach from the terminal"
 msgstr ""
 
-#: ../src/pk-main.c:194
+#. TRANSLATORS: if we should not monitor how long we are inactive for
+#: ../src/pk-main.c:214
 #, fuzzy
 msgid "Disable the idle timer"
 msgstr "Widget penetapan pemasa"
 
-#: ../src/pk-main.c:196
+#. TRANSLATORS: show version
+#: ../src/pk-main.c:217
 msgid "Show version and exit"
 msgstr "Papar versi dan keluar"
 
-#: ../src/pk-main.c:198
+#. TRANSLATORS: exit after we've started up, used for user profiling
+#: ../src/pk-main.c:220
 msgid "Exit after a small delay"
 msgstr ""
 
-#: ../src/pk-main.c:200
+#. TRANSLATORS: exit straight away, used for automatic profiling
+#: ../src/pk-main.c:223
 msgid "Exit after the engine has loaded"
 msgstr ""
 
-#: ../src/pk-main.c:214
+#. TRANSLATORS: describing the service that is running
+#: ../src/pk-main.c:238
 msgid "PackageKit service"
 msgstr "Servis PackageKit"
 
-#: ../src/pk-main.c:250
+#. TRANSLATORS: fatal error, dbus is not running
+#: ../src/pk-main.c:275
 msgid "Cannot connect to the system bus"
 msgstr ""
 
-#: ../src/pk-main.c:299
-#, c-format
+#. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error follows
+#: ../src/pk-main.c:334
 msgid "Error trying to start:"
 msgstr "Ralat cuba untuk memulakan:"
 
+#: ../src/pk-polkit-action-lookup.c:147
+msgid "To install debugging packages, extra sources need to be enabled"
+msgstr ""
+
+#. TRANSLATORS: is not GPG signed
+#: ../src/pk-polkit-action-lookup.c:168 ../src/pk-polkit-action-lookup.c:187
+msgid "The software is not from a trusted source."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:173
+msgid "Do not update this package unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:174
+msgid "Do not update these packages unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:192
+msgid "Do not install this package unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:193
+msgid "Do not install these packages unless you are sure it is safe to do so."
+msgstr ""
+
+#. TRANSLATORS: warn the user that all bets are off
+#: ../src/pk-polkit-action-lookup.c:199
+msgid "Malicious software can damage your computer or cause other harm."
+msgstr ""
+
+#. TRANSLATORS: too many packages to list each one
+#: ../src/pk-polkit-action-lookup.c:274
 #, fuzzy
-#~ msgid "Could not find package to remove"
-#~ msgstr "  -P             - jangan cari dalam tersedia utk mencari pakej.\n"
+msgid "Many packages"
+msgstr "Memasang pemuatboot..."
+
+#. TRANSLATORS: if the transaction is forced to install only trusted packages
+#: ../src/pk-polkit-action-lookup.c:334
+msgid "Only trusted"
+msgstr ""
+
+#, fuzzy
+#~ msgid "You need to specify a search type, e.g. name"
+#~ msgstr "(anda tidak perlu menaip domain selepas nama)"
+
+#, fuzzy
+#~ msgid "You need to specify a search term"
+#~ msgstr "Anda perlu menyatakan fail untuk dibuka!"
+
+#, fuzzy
+#~ msgid "You need to specify a package to remove"
+#~ msgstr "Anda perlu menyatakan fail untuk dibuka!"
+
+#, fuzzy
+#~ msgid "You need to specify a repository name"
+#~ msgstr "Anda perlu menyatakan fail untuk dibuka!"
+
+#, fuzzy
+#~ msgid "You need to specify a correct role"
+#~ msgstr "Anda perlu menyatakan fail untuk dibuka!"
+
+#, fuzzy
+#~ msgid "You need to specify a list file to open"
+#~ msgstr "Anda perlu menyatakan fail untuk dibuka!"
 
 #, fuzzy
 #~ msgid "Cancelled!"
@@ -1065,10 +1631,6 @@ msgstr "Ralat cuba untuk memulakan:"
 #~ msgstr "Tidak dapat memperoleh kekunci OpenPGP."
 
 #, fuzzy
-#~ msgid "Could not open database: %s"
-#~ msgstr "Tak dapat membuka fail %s."
-
-#, fuzzy
 #~ msgid ""
 #~ "\n"
 #~ "<small>Version: %s</small>"
diff --git a/po/nb.po b/po/nb.po
index db81e4f..0980f9d 100644
--- a/po/nb.po
+++ b/po/nb.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-01-15 16:57+0000\n"
+"POT-Creation-Date: 2009-08-24 11:06+0100\n"
 "PO-Revision-Date: 2008-04-27 14:28+0200\n"
 "Last-Translator: Mats Taraldsvik <mats.taraldsvik at gmail.com>\n"
 "Language-Team: Norwegian/Bokmaal <i18n-nb at lister.ping.uio.no>\n"
@@ -17,856 +17,1282 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 
 #. TRANSLATORS: this is an atomic transaction
-#: ../client/pk-console.c:230
+#: ../client/pk-console.c:235
 msgid "Transaction"
 msgstr ""
 
 #. TRANSLATORS: this is the time the transaction was started in system timezone
-#: ../client/pk-console.c:232
+#: ../client/pk-console.c:237
 msgid "System time"
 msgstr ""
 
 #. TRANSLATORS: this is if the transaction succeeded or not
-#: ../client/pk-console.c:234
+#: ../client/pk-console.c:239
 msgid "Succeeded"
 msgstr ""
 
 #. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:234 ../client/pk-console.c:377
+#: ../client/pk-console.c:239 ../client/pk-console.c:406
 msgid "True"
 msgstr ""
 
-#: ../client/pk-console.c:234 ../client/pk-console.c:377
+#: ../client/pk-console.c:239 ../client/pk-console.c:406
 msgid "False"
 msgstr ""
 
 #. TRANSLATORS: this is the transactions role, e.g. "update-system"
-#: ../client/pk-console.c:236
+#. TRANSLATORS: the trasaction role, e.g. update-system
+#: ../client/pk-console.c:241 ../src/pk-polkit-action-lookup.c:327
 msgid "Role"
 msgstr ""
 
 #. TRANSLATORS: this is The duration of the transaction
-#: ../client/pk-console.c:241
+#: ../client/pk-console.c:246
 msgid "Duration"
 msgstr ""
 
-#: ../client/pk-console.c:241
+#: ../client/pk-console.c:246
 msgid "(seconds)"
 msgstr ""
 
 #. TRANSLATORS: this is The command line used to do the action
-#: ../client/pk-console.c:245
+#. TRANSLATORS: the command line of the thing that wants the authentication
+#: ../client/pk-console.c:250 ../src/pk-polkit-action-lookup.c:341
 #, fuzzy
 msgid "Command line"
 msgstr "Klarte ikke å kjøre kommandoen"
 
 #. TRANSLATORS: this is the user ID of the user that started the action
-#: ../client/pk-console.c:247
+#: ../client/pk-console.c:252
 msgid "User ID"
 msgstr ""
 
 #. TRANSLATORS: this is the username, e.g. hughsie
-#: ../client/pk-console.c:254
+#: ../client/pk-console.c:259
 msgid "Username"
 msgstr ""
 
 #. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
-#: ../client/pk-console.c:258
+#: ../client/pk-console.c:263
 msgid "Real name"
 msgstr ""
 
-#: ../client/pk-console.c:266
+#: ../client/pk-console.c:271
 #, fuzzy
 msgid "Affected packages:"
 msgstr "Oppdater programpakke"
 
-#: ../client/pk-console.c:268
+#: ../client/pk-console.c:273
 msgid "Affected packages: None"
 msgstr ""
 
 #. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:293
+#: ../client/pk-console.c:298
 msgid "Distribution"
 msgstr ""
 
 #. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:295
+#: ../client/pk-console.c:300
 msgid "Type"
 msgstr ""
 
 #. TRANSLATORS: this is any summary text describing the upgrade
 #. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:297 ../client/pk-console.c:319
+#: ../client/pk-console.c:302 ../client/pk-console.c:325
 msgid "Summary"
 msgstr ""
 
 #. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:309
+#: ../client/pk-console.c:314
 msgid "Category"
 msgstr ""
 
 #. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:311
+#: ../client/pk-console.c:316
 msgid "ID"
 msgstr ""
 
 #. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:314
+#: ../client/pk-console.c:319
 msgid "Parent"
 msgstr ""
 
-#: ../client/pk-console.c:316
+#. TRANSLATORS: this is the name of the parent group
+#: ../client/pk-console.c:322
 msgid "Name"
 msgstr ""
 
 #. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:322
+#: ../client/pk-console.c:328
 msgid "Icon"
 msgstr ""
 
 #. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:337
+#: ../client/pk-console.c:343
 msgid "Details about the update:"
 msgstr ""
 
-#: ../client/pk-console.c:338
+#. TRANSLATORS: details about the update, package name and version
+#. TRANSLATORS: title, the names of the packages that the method is processing
+#: ../client/pk-console.c:345 ../src/pk-polkit-action-lookup.c:352
 #, fuzzy
 msgid "Package"
-msgstr "Programpakkens filer"
+msgid_plural "Packages"
+msgstr[0] "Programpakkens filer"
+msgstr[1] "Programpakkens filer"
 
-#: ../client/pk-console.c:340
+#. TRANSLATORS: details about the update, any packages that this update updates
+#: ../client/pk-console.c:348
 #, fuzzy
 msgid "Updates"
 msgstr "Oppdater programpakke"
 
-#: ../client/pk-console.c:342
+#. TRANSLATORS: details about the update, any packages that this update obsoletes
+#: ../client/pk-console.c:352
 msgid "Obsoletes"
 msgstr ""
 
-#: ../client/pk-console.c:344
+#. TRANSLATORS: details about the update, the vendor URLs
+#: ../client/pk-console.c:356
 msgid "Vendor"
 msgstr ""
 
-#: ../client/pk-console.c:346
+#. TRANSLATORS: details about the update, the bugzilla URLs
+#: ../client/pk-console.c:360
 msgid "Bugzilla"
 msgstr ""
 
-#: ../client/pk-console.c:348
+#. TRANSLATORS: details about the update, the CVE URLs
+#: ../client/pk-console.c:364
 msgid "CVE"
 msgstr ""
 
-#: ../client/pk-console.c:350
+#. TRANSLATORS: details about the update, if the package requires a restart
+#: ../client/pk-console.c:368
 msgid "Restart"
 msgstr ""
 
-#: ../client/pk-console.c:352
+#. TRANSLATORS: details about the update, any description of the update
+#: ../client/pk-console.c:372
 #, fuzzy
 msgid "Update text"
 msgstr "Oppdateringsdetaljer"
 
-#: ../client/pk-console.c:354
+#. TRANSLATORS: details about the update, the changelog for the package
+#: ../client/pk-console.c:376
 msgid "Changes"
 msgstr ""
 
-#: ../client/pk-console.c:356
+#. TRANSLATORS: details about the update, the ongoing state of the update
+#: ../client/pk-console.c:380
 msgid "State"
 msgstr ""
 
-#: ../client/pk-console.c:359
+#. TRANSLATORS: details about the update, date the update was issued
+#: ../client/pk-console.c:385
 msgid "Issued"
 msgstr ""
 
-#: ../client/pk-console.c:362
+#. TRANSLATORS: details about the update, date the update was updated
+#: ../client/pk-console.c:390
 #, fuzzy
 msgid "Updated"
 msgstr "Oppdateringsdetaljer"
 
-#: ../client/pk-console.c:448 ../client/pk-console.c:450
+#: ../client/pk-console.c:477 ../client/pk-console.c:479
 msgid "Percentage"
 msgstr ""
 
-#: ../client/pk-console.c:450
+#: ../client/pk-console.c:479
 msgid "Unknown"
 msgstr ""
 
 #. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:501
+#: ../client/pk-console.c:521
 #, fuzzy
 msgid "System restart required by:"
 msgstr "Datamaskinen må startes på nytt"
 
 #. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:504
+#: ../client/pk-console.c:524
 #, fuzzy
 msgid "Session restart required:"
 msgstr "Datamaskinen må startes på nytt"
 
+#. TRANSLATORS: a package requires the system to be restarted due to a security update
+#: ../client/pk-console.c:527
+#, fuzzy
+msgid "System restart (security) required by:"
+msgstr "Datamaskinen må startes på nytt"
+
+#. TRANSLATORS: a package requires the session to be restarted due to a security update
+#: ../client/pk-console.c:530
+#, fuzzy
+msgid "Session restart (security) required:"
+msgstr "Datamaskinen må startes på nytt"
+
 #. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:507
+#: ../client/pk-console.c:533
 #, fuzzy
 msgid "Application restart required by:"
 msgstr "Du må starte et program på nytt"
 
-#: ../client/pk-console.c:543
+#. TRANSLATORS: a package needs to restart their system
+#: ../client/pk-console.c:588
 msgid "Please restart the computer to complete the update."
 msgstr ""
 
-#: ../client/pk-console.c:545
+#. TRANSLATORS: a package needs to restart the session
+#: ../client/pk-console.c:591
 msgid "Please logout and login to complete the update."
 msgstr ""
 
-#: ../client/pk-console.c:547
+#. TRANSLATORS: a package needs to restart the application
+#: ../client/pk-console.c:594
 msgid "Please restart the application as it is being used."
 msgstr ""
 
+#. TRANSLATORS: a package needs to restart their system (due to security)
+#: ../client/pk-console.c:597
+msgid ""
+"Please restart the computer to complete the update as important security "
+"updates have been installed."
+msgstr ""
+
+#. TRANSLATORS: a package needs to restart the session (due to security)
+#: ../client/pk-console.c:600
+msgid ""
+"Please logout and login to complete the update as important security updates "
+"have been installed."
+msgstr ""
+
 #. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:659
+#: ../client/pk-console.c:727
 #, fuzzy, c-format
 msgid "The package %s is already installed"
 msgstr "Fant ingen programpakke som samsvarte"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:667
+#: ../client/pk-console.c:735
 #, fuzzy, c-format
 msgid "The package %s could not be installed: %s"
 msgstr "Fant ingen programpakke som samsvarte"
 
 #. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
-#: ../client/pk-console.c:692 ../client/pk-console.c:719
-#: ../client/pk-console.c:815 ../client/pk-console.c:932
-#: ../client/pk-tools-common.c:61 ../client/pk-tools-common.c:79
-#: ../client/pk-tools-common.c:86
+#: ../client/pk-console.c:760 ../client/pk-console.c:783
+#: ../client/pk-console.c:879 ../client/pk-console.c:996
+#: ../client/pk-tools-common.c:62 ../client/pk-tools-common.c:81
+#: ../client/pk-tools-common.c:89
 #, c-format
 msgid "Internal error: %s"
 msgstr ""
 
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:700 ../client/pk-console.c:1327
+#: ../client/pk-console.c:768 ../client/pk-console.c:1392
 #, c-format
 msgid "This tool could not install the packages: %s"
 msgstr ""
 
 #. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:727
+#: ../client/pk-console.c:791
 #, fuzzy, c-format
 msgid "This tool could not install the files: %s"
 msgstr "Fant ikke filene som hører til denne programpakken"
 
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:783
+#: ../client/pk-console.c:847
 #, fuzzy, c-format
 msgid "This tool could not remove %s: %s"
 msgstr "Fant ingen programpakke som samsvarte"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:806 ../client/pk-console.c:844
-#: ../client/pk-console.c:877
+#: ../client/pk-console.c:870 ../client/pk-console.c:908
+#: ../client/pk-console.c:941
 #, c-format
 msgid "This tool could not remove the packages: %s"
 msgstr ""
 
 #. TRANSLATORS: When removing, we might have to remove other dependencies
-#: ../client/pk-console.c:856
+#: ../client/pk-console.c:920
 #, fuzzy
 msgid "The following packages have to be removed:"
 msgstr "Følgende pakker må fjernes"
 
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:863
+#: ../client/pk-console.c:927
 #, fuzzy
 msgid "Proceed removing additional packages?"
 msgstr "Fjerne flere pakker?"
 
 #. TRANSLATORS: We did not remove any packages
-#: ../client/pk-console.c:868
+#: ../client/pk-console.c:932
 msgid "The package removal was canceled!"
 msgstr ""
 
 #. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:909
+#: ../client/pk-console.c:973
 #, fuzzy, c-format
 msgid "This tool could not download the package %s as it could not be found"
 msgstr "Fant ingen programpakke som samsvarte"
 
 #. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:940
+#: ../client/pk-console.c:1004
 #, fuzzy, c-format
 msgid "This tool could not download the packages: %s"
 msgstr "Fant ingen programpakke som samsvarte"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:967 ../client/pk-console.c:976
+#: ../client/pk-console.c:1031 ../client/pk-console.c:1040
 #, fuzzy, c-format
 msgid "This tool could not update %s: %s"
 msgstr "Fant ingen programpakke som samsvarte"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:998 ../client/pk-console.c:1006
+#: ../client/pk-console.c:1062 ../client/pk-console.c:1070
 #, fuzzy, c-format
 msgid "This tool could not get the requirements for %s: %s"
 msgstr "Fant ikke filene som hører til denne programpakken"
 
 #. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:1028 ../client/pk-console.c:1036
+#: ../client/pk-console.c:1092 ../client/pk-console.c:1100
 #, fuzzy, c-format
 msgid "This tool could not get the dependencies for %s: %s"
 msgstr "Klarte ikke å hente avhengigheter for denne programpakken"
 
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:1058 ../client/pk-console.c:1066
+#: ../client/pk-console.c:1122 ../client/pk-console.c:1130
 #, fuzzy, c-format
 msgid "This tool could not get package details for %s: %s"
 msgstr "Fant ikke filene som hører til denne programpakken"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1088
+#: ../client/pk-console.c:1152
 #, fuzzy, c-format
 msgid "This tool could not find the files for %s: %s"
 msgstr "Fant ikke filene som hører til denne programpakken"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1096
+#: ../client/pk-console.c:1160
 #, fuzzy, c-format
 msgid "This tool could not get the file list for %s: %s"
 msgstr "Fant ikke filene som hører til denne programpakken"
 
 #. TRANSLATORS: There was an error getting the list of packages. The filename follows
-#: ../client/pk-console.c:1118
+#: ../client/pk-console.c:1182
 #, c-format
 msgid "File already exists: %s"
 msgstr ""
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1123 ../client/pk-console.c:1179
-#: ../client/pk-console.c:1254
+#: ../client/pk-console.c:1187 ../client/pk-console.c:1243
+#: ../client/pk-console.c:1318
 #, fuzzy
 msgid "Getting package list"
 msgstr "Oppdater pakkebrønnen"
 
 #. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1129 ../client/pk-console.c:1185
-#: ../client/pk-console.c:1260
+#: ../client/pk-console.c:1193 ../client/pk-console.c:1249
+#: ../client/pk-console.c:1324
 #, fuzzy, c-format
 msgid "This tool could not get package list: %s"
 msgstr "Fant ingen programpakke som samsvarte"
 
 #. TRANSLATORS: There was an error saving the list
-#: ../client/pk-console.c:1140
+#: ../client/pk-console.c:1204
 #, fuzzy, c-format
 msgid "Failed to save to disk"
 msgstr "Kunne ikke hentes forrige gang"
 
 #. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1174 ../client/pk-console.c:1249
+#: ../client/pk-console.c:1238 ../client/pk-console.c:1313
 #, c-format
 msgid "File does not exist: %s"
 msgstr ""
 
 #. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1206
+#: ../client/pk-console.c:1270
 #, fuzzy
 msgid "Packages to add"
 msgstr "PackageKit Monitor"
 
 #. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1214
+#: ../client/pk-console.c:1278
 #, fuzzy
 msgid "Packages to remove"
 msgstr "PackageKit-tjeneste"
 
 #. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1282
+#: ../client/pk-console.c:1346
 #, fuzzy, c-format
 msgid "No new packages need to be installed"
 msgstr "Fant ingen programpakke som samsvarte"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1288
+#: ../client/pk-console.c:1352
 msgid "To install"
 msgstr ""
 
 #. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1299
+#: ../client/pk-console.c:1364
 msgid "Searching for package: "
 msgstr ""
 
 #. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1303
+#: ../client/pk-console.c:1368
 msgid "not found."
 msgstr ""
 
 #. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1314
+#: ../client/pk-console.c:1379
 #, c-format
 msgid "No packages can be found to install"
 msgstr ""
 
 #. TRANSLATORS: installing new packages from package list
-#: ../client/pk-console.c:1320
-#, fuzzy
+#. TRANSLATORS: we are now installing the debuginfo packages we found earlier
+#: ../client/pk-console.c:1385
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:886
+#, fuzzy, c-format
 msgid "Installing packages"
 msgstr "Installér programpakke"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1356
+#: ../client/pk-console.c:1421
 #, fuzzy, c-format
 msgid "This tool could not find the update details for %s: %s"
 msgstr "Fant ikke filene som hører til denne programpakken"
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1364
+#: ../client/pk-console.c:1429
 #, fuzzy, c-format
 msgid "This tool could not get the update details for %s: %s"
 msgstr "Fant ikke filene som hører til denne programpakken"
 
 #. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
-#: ../client/pk-console.c:1410
+#: ../client/pk-console.c:1460
 msgid "Error:"
 msgstr ""
 
 #. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1424
+#: ../client/pk-console.c:1474
 msgid "Package description"
 msgstr "Programpakkebeskrivelse"
 
+#. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
+#: ../client/pk-console.c:1490
+msgid "Message:"
+msgstr ""
+
 #. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1458
+#: ../client/pk-console.c:1518
 msgid "Package files"
 msgstr "Programpakkens filer"
 
 #. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1466
+#: ../client/pk-console.c:1526
 msgid "No files"
 msgstr "Ingen filer"
 
 #. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1489
+#: ../client/pk-console.c:1549
 msgid "Repository signature required"
 msgstr ""
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1499
+#: ../client/pk-console.c:1559
 msgid "Do you accept this signature?"
 msgstr ""
 
 #. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1503
+#: ../client/pk-console.c:1563
 msgid "The signature was not accepted."
 msgstr ""
 
 #. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1537
+#: ../client/pk-console.c:1597
 msgid "End user license agreement required"
 msgstr ""
 
 #. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1544
+#: ../client/pk-console.c:1604
 #, fuzzy
 msgid "Do you agree to this license?"
 msgstr "Klarte ikke fullføre oppgaven, fordi lisensen ikke ble godkjent"
 
 #. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1548
+#: ../client/pk-console.c:1608
 msgid "The license was refused."
 msgstr ""
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1577
+#: ../client/pk-console.c:1637
 msgid "The daemon crashed mid-transaction!"
 msgstr "Nissen (daemon) krasjet under operasjonen!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1630
+#: ../client/pk-console.c:1690
 msgid "PackageKit Console Interface"
 msgstr "PackageKit Konsollgrensesnitt"
 
-#: ../client/pk-console.c:1630
+#. these are commands we can use with pkcon
+#: ../client/pk-console.c:1692
 msgid "Subcommands:"
 msgstr "Underkommandoer:"
 
-#: ../client/pk-console.c:1719 ../client/pk-generate-pack.c:184
-#: ../client/pk-monitor.c:115
-#: ../contrib/command-not-found/pk-command-not-found.c:510
-#: ../src/pk-main.c:192
+#. TRANSLATORS: command line argument, if we should show debugging information
+#. TRANSLATORS: if we should show debugging data
+#: ../client/pk-console.c:1785 ../client/pk-generate-pack.c:185
+#: ../client/pk-monitor.c:128
+#: ../contrib/command-not-found/pk-command-not-found.c:616
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:550
+#: ../contrib/device-rebind/pk-device-rebind.c:293 ../src/pk-main.c:211
 msgid "Show extra debugging information"
 msgstr "Vis ekstra feilsøkingsinformasjon"
 
-#: ../client/pk-console.c:1721 ../client/pk-monitor.c:117
+#. TRANSLATORS: command line argument, just show the version string
+#: ../client/pk-console.c:1788 ../client/pk-monitor.c:130
 msgid "Show the program version and exit"
 msgstr "Vis versjonsnummer og avslutt"
 
-#: ../client/pk-console.c:1723
+#. TRANSLATORS: command line argument, use a filter to narrow down results
+#: ../client/pk-console.c:1791
 msgid "Set the filter, e.g. installed"
 msgstr "Bruk filteret, f.eks installerte (programpakker)"
 
-#: ../client/pk-console.c:1725
+#. TRANSLATORS: command line argument, work asynchronously
+#: ../client/pk-console.c:1794
 msgid "Exit without waiting for actions to complete"
 msgstr "Avslutt uten å vente til alle operasjoner har gjort seg ferdige"
 
 #. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:1752
+#: ../client/pk-console.c:1821
 #, fuzzy
 msgid "This tool could not connect to system DBUS."
 msgstr "Klarte ikke å koble til DBUS"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1839
+#: ../client/pk-console.c:1911
 msgid "The filter specified was invalid"
 msgstr ""
 
-#: ../client/pk-console.c:1856
-#, fuzzy
-msgid "You need to specify a search type, e.g. name"
-msgstr "Trenger en søketype for å fortsette"
+#. TRANSLATORS: a search type can be name, details, file, etc
+#: ../client/pk-console.c:1930
+msgid "A search type is required, e.g. name"
+msgstr ""
 
-#: ../client/pk-console.c:1861 ../client/pk-console.c:1868
-#: ../client/pk-console.c:1875 ../client/pk-console.c:1882
-#: ../client/pk-console.c:1990 ../client/pk-console.c:2000
-#: ../client/pk-console.c:2007 ../client/pk-console.c:2014
-msgid "You need to specify a search term"
-msgstr "Trenger et søkeord for å fortsette"
+#. TRANSLATORS: the user needs to provide a search term
+#: ../client/pk-console.c:1937 ../client/pk-console.c:1946
+#: ../client/pk-console.c:1955 ../client/pk-console.c:1964
+msgid "A search term is required"
+msgstr ""
 
-#: ../client/pk-console.c:1887
+#. TRANSLATORS: the search type was provided, but invalid
+#: ../client/pk-console.c:1971
 msgid "Invalid search type"
 msgstr "Søketypen ble ikke gjenkjent"
 
-#: ../client/pk-console.c:1892
-msgid "You need to specify a package or file to install"
-msgstr "Kan ikke fortsette uten en programpakke eller fil som skal installeres"
+#. TRANSLATORS: the user did not specify what they wanted to install
+#: ../client/pk-console.c:1977
+msgid "A package name or filename to install is required"
+msgstr ""
 
-#: ../client/pk-console.c:1899
-msgid "You need to specify a type, key_id and package_id"
+#. TRANSLATORS: geeky error, 99.9999% of users won't see this
+#: ../client/pk-console.c:1986
+#, fuzzy
+msgid "A type, key_id and package_id are required"
 msgstr "Trenger en type, en nøkkelid og programpakkeid for å fortsette"
 
-#: ../client/pk-console.c:1906
-msgid "You need to specify a package to remove"
-msgstr "Kan ikke fortsette uten en programpakke som skal fjernes"
+#. TRANSLATORS: the user did not specify what they wanted to remove
+#: ../client/pk-console.c:1995
+#, fuzzy
+msgid "A package name to remove is required"
+msgstr "Følgende pakker må fjernes"
 
-#: ../client/pk-console.c:1912
+#. TRANSLATORS: the user did not specify anything about what to download or where
+#: ../client/pk-console.c:2003
 #, fuzzy
-msgid ""
-"You need to specify the destination directory and then the packages to "
-"download"
+msgid "A destination directory and the package names to download are required"
 msgstr "Trenger en type, en nøkkelid og programpakkeid for å fortsette"
 
-#: ../client/pk-console.c:1917
+#. TRANSLATORS: the directory does not exist, so we can't continue
+#: ../client/pk-console.c:2010
 msgid "Directory not found"
 msgstr ""
 
-#: ../client/pk-console.c:1923
+#. TRANSLATORS: geeky error, 99.9999% of users won't see this
+#: ../client/pk-console.c:2018
 #, fuzzy
-msgid "You need to specify a licence identifier (eula-id)"
+msgid "A licence identifier (eula-id) is required"
 msgstr "Trenger en EULA-id for å fortsette"
 
-#: ../client/pk-console.c:1939
-msgid "You need to specify a package name to resolve"
-msgstr "Du må oppgi et programpakkenavn for å løse konflikten"
+#. TRANSLATORS: geeky error, 99.9999% of users won't see this
+#: ../client/pk-console.c:2028
+msgid "A transaction identifier (tid) is required"
+msgstr ""
+
+#. TRANSLATORS: The user did not specify a package name
+#: ../client/pk-console.c:2045
+#, fuzzy
+msgid "A package name to resolve is required"
+msgstr "Følgende pakker må fjernes"
 
-#: ../client/pk-console.c:1946 ../client/pk-console.c:1953
+#. TRANSLATORS: The user did not specify a repository (software source) name
+#: ../client/pk-console.c:2054 ../client/pk-console.c:2063
 #, fuzzy
-msgid "You need to specify a repository name"
-msgstr "Trenger et navn på pakkebrønnen for å fortsette"
+msgid "A repository name is required"
+msgstr "For å fullføre må du logge ut og inn."
 
-#: ../client/pk-console.c:1960
-msgid "You need to specify a repo name/parameter and value"
+#. TRANSLATORS: The user didn't provide any data
+#: ../client/pk-console.c:2072
+#, fuzzy
+msgid "A repo name, parameter and value are required"
 msgstr "Trenger et parameter/navn og verdi for pakkebrønnen"
 
-#: ../client/pk-console.c:1972
+#. TRANSLATORS: The user didn't specify what action to use
+#: ../client/pk-console.c:2086
 #, fuzzy
-msgid "You need to specify an action, e.g. 'update-system'"
+msgid "An action, e.g. 'update-system' is required"
 msgstr "Trenger en søketype for å fortsette"
 
-#: ../client/pk-console.c:1977
-msgid "You need to specify a correct role"
-msgstr "Du må oppgi gyldig handling for å fortsette"
+#. TRANSLATORS: The user specified an invalid action
+#: ../client/pk-console.c:2093
+#, fuzzy
+msgid "A correct role is required"
+msgstr "For å fullføre må du logge ut og inn."
 
-#: ../client/pk-console.c:1982
-msgid "Failed to get last time"
-msgstr "Kunne ikke hentes forrige gang"
+#. TRANSLATORS: we keep a database updated with the time that an action was last executed
+#: ../client/pk-console.c:2100
+msgid "Failed to get the time since this action was last completed"
+msgstr ""
 
-#: ../client/pk-console.c:2021
+#. TRANSLATORS: The user did not provide a package name
+#. TRANSLATORS: This is when the user fails to supply the package name
+#: ../client/pk-console.c:2110 ../client/pk-console.c:2122
+#: ../client/pk-console.c:2131 ../client/pk-console.c:2149
+#: ../client/pk-console.c:2158 ../client/pk-generate-pack.c:241
 #, fuzzy
-msgid "You need to specify a package to find the details for"
-msgstr "Du kan ikke vise tilhørende filer uten først å oppgi programpakken"
+msgid "A package name is required"
+msgstr "For å fullføre må du logge ut og inn."
 
-#: ../client/pk-console.c:2028
-msgid "You need to specify a package to find the files for"
-msgstr "Du kan ikke vise tilhørende filer uten først å oppgi programpakken"
-
-#: ../client/pk-console.c:2035
+#. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
+#: ../client/pk-console.c:2140
 #, fuzzy
-msgid "You need to specify a list file to create"
-msgstr "Trenger en tidsverdi for å fortsette"
+msgid "A package provide string is required"
+msgstr "For å fullføre må du logge ut og inn."
+
+#. TRANSLATORS: The user didn't specify a filename to create as a list
+#: ../client/pk-console.c:2167
+msgid "A list file name to create is required"
+msgstr ""
 
-#: ../client/pk-console.c:2043 ../client/pk-console.c:2051
+#. TRANSLATORS: The user didn't specify a filename to open as a list
+#: ../client/pk-console.c:2177 ../client/pk-console.c:2187
 #, fuzzy
-msgid "You need to specify a list file to open"
-msgstr "Trenger en tidsverdi for å fortsette"
+msgid "A list file to open is required"
+msgstr "For å fullføre må du logge ut og inn."
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2104
+#: ../client/pk-console.c:2241
 #, fuzzy, c-format
 msgid "Option '%s' is not supported"
 msgstr "Følgende valg er ikke støttet: '%s' "
 
 #. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2117
-msgid "You don't have the necessary privileges for this operation"
+#: ../client/pk-console.c:2254
+#, fuzzy
+msgid "Incorrect privileges for this operation"
 msgstr "Denne handlingen krever superbrukerrettigheter (root)"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2120
+#: ../client/pk-console.c:2257
 msgid "Command failed"
 msgstr "Klarte ikke å kjøre kommandoen"
 
 #. TRANSLATORS: This is the state of the transaction
-#: ../client/pk-generate-pack.c:100
+#: ../client/pk-generate-pack.c:101
 msgid "Downloading"
 msgstr ""
 
 #. TRANSLATORS: This is when the main packages are being downloaded
-#: ../client/pk-generate-pack.c:120
+#: ../client/pk-generate-pack.c:121
 msgid "Downloading packages"
 msgstr ""
 
 #. TRANSLATORS: This is when the dependency packages are being downloaded
-#: ../client/pk-generate-pack.c:125
+#: ../client/pk-generate-pack.c:126
 msgid "Downloading dependencies"
 msgstr ""
 
-#: ../client/pk-generate-pack.c:186
+#. TRANSLATORS: we can exclude certain packages (glibc) when we know they'll exist on the target
+#: ../client/pk-generate-pack.c:188
 msgid "Set the file name of dependencies to be excluded"
 msgstr ""
 
-#: ../client/pk-generate-pack.c:188
-msgid "The output directory (the current directory is used if ommitted)"
+#. TRANSLATORS: the output location
+#: ../client/pk-generate-pack.c:191
+msgid ""
+"The output file or directory (the current directory is used if ommitted)"
 msgstr ""
 
-#: ../client/pk-generate-pack.c:190
+#. TRANSLATORS: put a list of packages in the pack
+#: ../client/pk-generate-pack.c:194
 msgid "The package to be put into the service pack"
 msgstr ""
 
-#: ../client/pk-generate-pack.c:192
+#. TRANSLATORS: put all pending updates in the pack
+#: ../client/pk-generate-pack.c:197
 msgid "Put all updates available in the service pack"
 msgstr ""
 
 #. TRANSLATORS: This is when the user fails to supply the correct arguments
-#: ../client/pk-generate-pack.c:220
+#: ../client/pk-generate-pack.c:225
 msgid "Neither --package or --updates option selected."
 msgstr ""
 
 #. TRANSLATORS: This is when the user fails to supply just one argument
-#: ../client/pk-generate-pack.c:228
+#: ../client/pk-generate-pack.c:233
 msgid "Both options selected."
 msgstr ""
 
+#. TRANSLATORS: This is when the user fails to supply the output
+#: ../client/pk-generate-pack.c:249
+#, fuzzy
+msgid "A output directory or file name is required"
+msgstr "For å fullføre må du logge ut og inn."
+
+#. TRANSLATORS: This is when the backend doesn't have the capability to get-depends
+#. TRANSLATORS: This is when the backend doesn't have the capability to download
+#: ../client/pk-generate-pack.c:267 ../client/pk-generate-pack.c:273
+msgid "The package manager cannot perform this type of operation."
+msgstr ""
+
+#. TRANSLATORS: This is when the distro didn't include libarchive support into PK
+#: ../client/pk-generate-pack.c:280
+msgid ""
+"Service packs cannot be created as PackageKit was not built with libarchive "
+"support."
+msgstr ""
+
+#. TRANSLATORS: the user specified an absolute path, but didn't get the extension correct
+#: ../client/pk-generate-pack.c:291
+msgid "If specifying a file, the service pack name must end with"
+msgstr ""
+
 #. TRANSLATORS: This is when file already exists
-#: ../client/pk-generate-pack.c:261
+#: ../client/pk-generate-pack.c:307
 msgid "A pack with the same name already exists, do you want to overwrite it?"
 msgstr ""
 
 #. TRANSLATORS: This is when the pack was not overwritten
-#: ../client/pk-generate-pack.c:264
+#: ../client/pk-generate-pack.c:310
 msgid "The pack was not overwritten."
 msgstr ""
 
 #. TRANSLATORS: This is when the temporary directory cannot be created, the directory name follows
-#: ../client/pk-generate-pack.c:276
+#: ../client/pk-generate-pack.c:323
 #, fuzzy
 msgid "Failed to create directory:"
 msgstr "Kunne ikke hentes forrige gang"
 
 #. TRANSLATORS: This is when the list of packages from the remote computer cannot be opened
-#: ../client/pk-generate-pack.c:285
+#: ../client/pk-generate-pack.c:333
 #, fuzzy
 msgid "Failed to open package list."
 msgstr "Kunne ikke hentes forrige gang"
 
 #. TRANSLATORS: The package name is being matched up to available packages
-#: ../client/pk-generate-pack.c:295
+#: ../client/pk-generate-pack.c:344
 msgid "Finding package name."
 msgstr ""
 
 #. TRANSLATORS: This is when the package cannot be found in any software source. The detailed error follows
-#: ../client/pk-generate-pack.c:299
+#: ../client/pk-generate-pack.c:348
 #, c-format
 msgid "Failed to find package '%s': %s"
 msgstr ""
 
 #. TRANSLATORS: This is telling the user we are in the process of making the pack
-#: ../client/pk-generate-pack.c:315
+#: ../client/pk-generate-pack.c:365
 msgid "Creating service pack..."
 msgstr ""
 
 #. TRANSLATORS: we succeeded in making the file
-#: ../client/pk-generate-pack.c:322
+#: ../client/pk-generate-pack.c:372
 #, c-format
 msgid "Service pack created '%s'"
 msgstr ""
 
 #. TRANSLATORS: we failed to make te file
-#: ../client/pk-generate-pack.c:326
+#: ../client/pk-generate-pack.c:377
 #, fuzzy, c-format
 msgid "Failed to create '%s': %s"
 msgstr "Kunne ikke hentes forrige gang"
 
-#: ../client/pk-monitor.c:132
+#. TRANSLATORS: this is a program that monitors PackageKit
+#: ../client/pk-monitor.c:146
 msgid "PackageKit Monitor"
 msgstr "PackageKit Monitor"
 
+#: ../client/pk-monitor.c:183
+msgid "Cannot show the list of transactions"
+msgstr ""
+
 #. TRANSLATORS: The package was not found in any software sources
-#: ../client/pk-tools-common.c:114
+#: ../client/pk-tools-common.c:118
 #, c-format
 msgid "The package could not be found"
 msgstr ""
 
 #. TRANSLATORS: more than one package could be found that matched, to follow is a list of possible packages
-#: ../client/pk-tools-common.c:125
+#: ../client/pk-tools-common.c:130
 #, fuzzy
 msgid "More than one package matches:"
 msgstr "Fant flere samsvarende programpakker"
 
 #. TRANSLATORS: This finds out which package in the list to use
-#: ../client/pk-tools-common.c:132
+#: ../client/pk-tools-common.c:137
 #, fuzzy
 msgid "Please choose the correct package: "
 msgstr "Skriv inn nummeret til programpakken: "
 
-#: ../client/pk-tools-common.c:157
+#: ../client/pk-tools-common.c:162
 #, c-format
 msgid "Please enter a number from 1 to %i: "
 msgstr "Skriv inn ett tall fra 1 til %i: "
 
-#. TRANSLATORS: we failed to find the package, this shouldn't happen
+#. TRANSLATORS: when we are getting data from the daemon
+#: ../contrib/browser-plugin/pk-plugin-install.c:466
+msgid "Getting package information..."
+msgstr ""
+
+#. TRANSLATORS: run an applicaiton
+#: ../contrib/browser-plugin/pk-plugin-install.c:472
+#, c-format
+msgid "Run %s"
+msgstr ""
+
+#. TRANSLATORS: show the installed version of a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:478
+#, fuzzy
+msgid "Installed version"
+msgstr "Legg til sikkerhetsklarering"
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:486
+#, c-format
+msgid "Run version %s now"
+msgstr ""
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:492
+msgid "Run now"
+msgstr ""
+
+#. TRANSLATORS: update to a new version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:498
+#, c-format
+msgid "Update to version %s"
+msgstr ""
+
+#. TRANSLATORS: To install a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:504
+#, fuzzy, c-format
+msgid "Install %s now"
+msgstr "Legg til sikkerhetsklarering"
+
+#. TRANSLATORS: the version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:507
+msgid "Version"
+msgstr ""
+
+#. TRANSLATORS: noting found, so can't install
+#: ../contrib/browser-plugin/pk-plugin-install.c:512
+msgid "No packages found for your system"
+msgstr ""
+
+#. TRANSLATORS: package is being installed
+#: ../contrib/browser-plugin/pk-plugin-install.c:517
+msgid "Installing..."
+msgstr ""
+
+#. TRANSLATORS: downloading repo data so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:349
+msgid "Downloading details about the software sources."
+msgstr ""
+
+#. TRANSLATORS: downloading file lists so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:353
+msgid "Downloading filelists (this may take some time to complete)."
+msgstr ""
+
+#. TRANSLATORS: waiting for native lock
+#: ../contrib/command-not-found/pk-command-not-found.c:357
+msgid "Waiting for package manager lock."
+msgstr ""
+
+#. TRANSLATORS: loading package cache so we can search
 #: ../contrib/command-not-found/pk-command-not-found.c:361
 #, fuzzy
+msgid "Loading list of packages."
+msgstr "Kunne ikke hentes forrige gang"
+
+#. TRANSLATORS: we failed to find the package, this shouldn't happen
+#: ../contrib/command-not-found/pk-command-not-found.c:420
+#, fuzzy
 msgid "Failed to search for file"
 msgstr "Kunne ikke hentes forrige gang"
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:485
+#: ../contrib/command-not-found/pk-command-not-found.c:557
 #, fuzzy
 msgid "Failed to launch:"
 msgstr "Kunne ikke hentes forrige gang"
 
 #. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/command-not-found/pk-command-not-found.c:526
+#: ../contrib/command-not-found/pk-command-not-found.c:632
 #, fuzzy
 msgid "PackageKit Command Not Found"
 msgstr "PackageKit Monitor"
 
 #. TRANSLATORS: the prefix of all the output telling the user why it's not executing
-#: ../contrib/command-not-found/pk-command-not-found.c:548
+#: ../contrib/command-not-found/pk-command-not-found.c:658
 #, fuzzy
 msgid "Command not found."
 msgstr "Klarte ikke å kjøre kommandoen"
 
 #. TRANSLATORS: tell the user what we think the command is
-#: ../contrib/command-not-found/pk-command-not-found.c:555
+#: ../contrib/command-not-found/pk-command-not-found.c:665
 #, fuzzy
 msgid "Similar command is:"
 msgstr "Underkommandoer:"
 
 #. TRANSLATORS: Ask the user if we should run the similar command
-#: ../contrib/command-not-found/pk-command-not-found.c:564
+#: ../contrib/command-not-found/pk-command-not-found.c:674
 msgid "Run similar command:"
 msgstr ""
 
 #. TRANSLATORS: show the user a list of commands that they could have meant
 #. TRANSLATORS: show the user a list of commands we could run
-#: ../contrib/command-not-found/pk-command-not-found.c:576
-#: ../contrib/command-not-found/pk-command-not-found.c:585
+#: ../contrib/command-not-found/pk-command-not-found.c:686
+#: ../contrib/command-not-found/pk-command-not-found.c:695
 #, fuzzy
 msgid "Similar commands are:"
 msgstr "Underkommandoer:"
 
 #. TRANSLATORS: ask the user to choose a file to run
-#: ../contrib/command-not-found/pk-command-not-found.c:592
+#: ../contrib/command-not-found/pk-command-not-found.c:702
 msgid "Please choose a command to run"
 msgstr ""
 
 #. TRANSLATORS: tell the user what package provides the command
-#: ../contrib/command-not-found/pk-command-not-found.c:607
+#: ../contrib/command-not-found/pk-command-not-found.c:721
 msgid "The package providing this file is:"
 msgstr ""
 
 #. TRANSLATORS: as the user if we want to install a package to provide the command
-#: ../contrib/command-not-found/pk-command-not-found.c:612
+#: ../contrib/command-not-found/pk-command-not-found.c:726
 #, c-format
 msgid "Install package '%s' to provide command '%s'?"
 msgstr ""
 
 #. TRANSLATORS: Show the user a list of packages that provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:633
+#: ../contrib/command-not-found/pk-command-not-found.c:747
 msgid "Packages providing this file are:"
 msgstr ""
 
 #. TRANSLATORS: Show the user a list of packages that they can install to provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:642
+#: ../contrib/command-not-found/pk-command-not-found.c:756
 msgid "Suitable packages are:"
 msgstr ""
 
 #. get selection
 #. TRANSLATORS: ask the user to choose a file to install
-#: ../contrib/command-not-found/pk-command-not-found.c:650
+#: ../contrib/command-not-found/pk-command-not-found.c:764
 #, fuzzy
 msgid "Please choose a package to install"
 msgstr "Skriv inn nummeret til programpakken: "
 
-#. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/src/contents.cpp:298
-msgid "Getting package information..."
+#. TRANSLATORS: we are starting to install the packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:187
+msgid "Starting install"
 msgstr ""
 
-#. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/src/contents.cpp:304
-#, c-format
-msgid "Run %s"
+#. TRANSLATORS: we couldn't find the package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:397
+#, fuzzy, c-format
+msgid "Failed to find the package %s, or already installed: %s"
+msgstr "Fant ingen programpakke som samsvarte"
+
+#. command line argument, simulate what would be done, but don't actually do it
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:553
+msgid ""
+"Don't actually install any packages, only simulate what would be installed"
 msgstr ""
 
-#. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/src/contents.cpp:310
+#. command line argument, do we skip packages that depend on the ones specified
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:556
+msgid "Do not install dependencies of the core packages"
+msgstr ""
+
+#. command line argument, do we operate quietly
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:559
+msgid "Do not display information or progress"
+msgstr ""
+
+#. TRANSLATORS: tool that gets called when the command is not found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:577
 #, fuzzy
-msgid "Installed version"
-msgstr "Legg til sikkerhetsklarering"
+msgid "PackageKit Debuginfo Installer"
+msgstr "PackageKit Konsollgrensesnitt"
 
-#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/src/contents.cpp:318
+#. TRANSLATORS: the use needs to specify a list of package names on the command line
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:589
+#, fuzzy, c-format
+msgid "ERROR: Specify package names to install."
+msgstr "Kan ikke fortsette uten en programpakke eller fil som skal installeres"
+
+#. TRANSLATORS: we are getting the list of repositories
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:623
+#, fuzzy, c-format
+msgid "Getting sources list"
+msgstr "Oppdater pakkebrønnen"
+
+#. TRANSLATORS: all completed 100%
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:641
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:681
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:716
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:800
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:844
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:911
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:955
 #, c-format
-msgid "Run version %s now"
+msgid "OK."
 msgstr ""
 
-#: ../contrib/browser-plugin/src/contents.cpp:324
-msgid "Run now"
+#. TRANSLATORS: tell the user what we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:644
+#, c-format
+msgid "Found %i enabled and %i disabled sources."
 msgstr ""
 
-#. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/src/contents.cpp:330
+#. TRANSLATORS: we're finding repositories that match out pattern
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:651
 #, c-format
-msgid "Update to version %s"
+msgid "Finding debugging sources"
 msgstr ""
 
-#. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/src/contents.cpp:336
+#. TRANSLATORS: tell the user what we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:684
+#, c-format
+msgid "Found %i disabled debuginfo repos."
+msgstr ""
+
+#. TRANSLATORS: we're now enabling all the debug sources we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:691
+#, c-format
+msgid "Enabling debugging sources"
+msgstr ""
+
+#. TRANSLATORS: operation was not successful
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:701
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:785
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:829
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:896
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:940
+msgid "FAILED."
+msgstr ""
+
+#. TRANSLATORS: tell the user how many we enabled
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:719
+#, c-format
+msgid "Enabled %i debugging sources."
+msgstr ""
+
+#. TRANSLATORS: we're now finding packages that match in all the repos
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:726
+#, c-format
+msgid "Finding debugging packages"
+msgstr ""
+
+#. TRANSLATORS: we couldn't find the package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:738
 #, fuzzy, c-format
-msgid "Install %s now"
-msgstr "Legg til sikkerhetsklarering"
+msgid "Failed to find the package %s: %s"
+msgstr "Kunne ikke hentes forrige gang"
 
-#. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/src/contents.cpp:339
-msgid "Version"
+#. TRANSLATORS: we couldn't find the debuginfo package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:761
+#, fuzzy, c-format
+msgid "Failed to find the debuginfo package %s: %s"
+msgstr "Kunne ikke hentes forrige gang"
+
+#. TRANSLATORS: no debuginfo packages could be found to be installed
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:789
+#, fuzzy, c-format
+msgid "Found no packages to install."
+msgstr "Fant ingen programpakke som samsvarte"
+
+#. TRANSLATORS: tell the user we found some packages, and then list them
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:803
+#, fuzzy, c-format
+msgid "Found %i packages:"
+msgstr "Oppdater programpakke"
+
+#. TRANSLATORS: tell the user we are searching for deps
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:819
+#, c-format
+msgid "Finding packages that depend on these packages"
 msgstr ""
 
-#. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/src/contents.cpp:344
-msgid "No packages found for your system"
+#. TRANSLATORS: could not install, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:832
+#, fuzzy, c-format
+msgid "Could not find dependant packages: %s"
+msgstr "Fant ingen programpakke som samsvarte"
+
+#. TRANSLATORS: tell the user we found some more packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:848
+#, c-format
+msgid "Found %i extra packages."
 msgstr ""
 
-#. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/src/contents.cpp:349
-msgid "Installing..."
+#. TRANSLATORS: tell the user we found some more packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:852
+#, fuzzy, c-format
+msgid "No extra packages required."
+msgstr "Ingen programpakker som avhenger av denne programpakken ble funnet"
+
+#. TRANSLATORS: tell the user we found some packages (and deps), and then list them
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:861
+#, fuzzy, c-format
+msgid "Found %i packages to install:"
+msgstr "Fant ingen programpakke som samsvarte"
+
+#. TRANSLATORS: simulate mode is a testing mode where we quit before the action
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:874
+#, fuzzy, c-format
+msgid "Not installing packages in simulate mode"
+msgstr "Installér programpakke"
+
+#. TRANSLATORS: could not install, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:899
+#, fuzzy, c-format
+msgid "Could not install packages: %s"
+msgstr "Fant ingen programpakke som samsvarte"
+
+#. TRANSLATORS: we are now disabling all debuginfo repos we previously enabled
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:931
+#, c-format
+msgid "Disabling sources previously enabled"
+msgstr ""
+
+#. TRANSLATORS: no debuginfo packages could be found to be installed, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:943
+#, c-format
+msgid "Could not disable the debugging sources: %s"
+msgstr ""
+
+#. TRANSLATORS: we disabled all the debugging repos that we enabled before
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:958
+#, c-format
+msgid "Disabled %i debugging sources."
+msgstr ""
+
+#. TRANSLATORS: couldn't open device to write
+#: ../contrib/device-rebind/pk-device-rebind.c:61
+#, fuzzy
+msgid "Failed to open file"
+msgstr "Kunne ikke hentes forrige gang"
+
+#. TRANSLATORS: could not write to the device
+#: ../contrib/device-rebind/pk-device-rebind.c:70
+#, fuzzy
+msgid "Failed to write to the file"
+msgstr "Kunne ikke hentes forrige gang"
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:110
+#: ../contrib/device-rebind/pk-device-rebind.c:147
+#, fuzzy
+msgid "Failed to write to device"
+msgstr "Kunne ikke hentes forrige gang"
+
+#. TRANSLATORS: the device could not be found in sysfs
+#: ../contrib/device-rebind/pk-device-rebind.c:175
+msgid "Device could not be found"
+msgstr ""
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:202
+#, fuzzy
+msgid "Failed to unregister driver"
+msgstr "Kunne ikke hentes forrige gang"
+
+#. TRANSLATORS: we failed to bind the old driver
+#: ../contrib/device-rebind/pk-device-rebind.c:211
+#, fuzzy
+msgid "Failed to register driver"
+msgstr "Kunne ikke hentes forrige gang"
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:260
+msgid "Device path not found"
+msgstr ""
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:268
+msgid "Incorrect device path specified"
+msgstr ""
+
+#. command line argument, simulate what would be done, but don't actually do it
+#: ../contrib/device-rebind/pk-device-rebind.c:296
+msgid "Don't actually touch the hardware, only simulate what would be done"
+msgstr ""
+
+#. TRANSLATORS: command line option: a list of files to install
+#: ../contrib/device-rebind/pk-device-rebind.c:299
+msgid "Device paths"
+msgstr ""
+
+#. TRANSLATORS: tool that gets called when the device needs reloading after installing firmware
+#: ../contrib/device-rebind/pk-device-rebind.c:314
+#, fuzzy
+msgid "PackageKit Device Reloader"
+msgstr "PackageKit-tjeneste"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:322
+#, fuzzy
+msgid "You need to specify at least one valid device path"
+msgstr "Trenger en tidsverdi for å fortsette"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:332
+msgid "This script can only be used by the root user"
+msgstr ""
+
+#. TRANSLATORS: we're going to verify the path first
+#: ../contrib/device-rebind/pk-device-rebind.c:341
+msgid "Verifying device path"
+msgstr ""
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:346
+#, fuzzy
+msgid "Failed to verify device path"
+msgstr "Kunne ikke hentes forrige gang"
+
+#. TRANSLATORS: we're going to try
+#: ../contrib/device-rebind/pk-device-rebind.c:360
+msgid "Attempting to rebind device"
 msgstr ""
 
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:365
+#, fuzzy
+msgid "Failed to rebind device"
+msgstr "Kunne ikke hentes forrige gang"
+
 #: ../data/packagekit-catalog.xml.in.h:1
 #, fuzzy
 msgid "PackageKit Catalog"
@@ -882,124 +1308,207 @@ msgstr "PackageKit Monitor"
 msgid "PackageKit Service Pack"
 msgstr "PackageKit-tjeneste"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:1
+#. SECURITY:
+#. - Normal users do not require admin authentication to accept new
+#. licence agreements.
+#. - Change this to 'auth_admin' for environments where users should not
+#. be given the option to make legal decisions.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:7
 msgid "Accept EULA"
 msgstr "Godkjenn EULA"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:2
+#: ../policy/org.freedesktop.packagekit.policy.in.h:8
 msgid "Authentication is required to accept a EULA"
 msgstr "Kan ikke godkjenne en EULA uten identitetsbekreftelse"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:3
+#: ../policy/org.freedesktop.packagekit.policy.in.h:9
 #, fuzzy
 msgid ""
 "Authentication is required to cancel a task that was not started by yourself"
 msgstr "Kan ikke endre parametre for pakkebrønn uten identitetsbekreftelse"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:4
+#: ../policy/org.freedesktop.packagekit.policy.in.h:10
 msgid "Authentication is required to change software source parameters"
 msgstr "Kan ikke endre parametre for pakkebrønn uten identitetsbekreftelse"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:5
+#: ../policy/org.freedesktop.packagekit.policy.in.h:11
 #, fuzzy
 msgid ""
 "Authentication is required to consider a key used for signing packages as "
 "trusted"
 msgstr "Kan ikke oppdatere pakkebrønnene uten identitetsbekreftelse"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:6
+#: ../policy/org.freedesktop.packagekit.policy.in.h:12
 #, fuzzy
 msgid "Authentication is required to install a signed package"
 msgstr "Kan ikke installere en programpakke uten identitetsbekreftelse"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:7
+#: ../policy/org.freedesktop.packagekit.policy.in.h:13
 #, fuzzy
 msgid "Authentication is required to install an untrusted package"
 msgstr "Kan ikke installere en programpakke uten identitetsbekreftelse"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:8
+#: ../policy/org.freedesktop.packagekit.policy.in.h:14
 #, fuzzy
 msgid "Authentication is required to refresh the system sources"
 msgstr "Kan ikke oppdatere pakkebrønnene uten identitetsbekreftelse"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:9
+#: ../policy/org.freedesktop.packagekit.policy.in.h:15
+#, fuzzy
+msgid "Authentication is required to reload the device with a new driver"
+msgstr "Kan ikke oppdatere pakkebrønnene uten identitetsbekreftelse"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:16
 msgid "Authentication is required to remove packages"
 msgstr "Kan ikke fjerne programpakker uten identitetsbekreftelse"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:10
+#: ../policy/org.freedesktop.packagekit.policy.in.h:17
 msgid "Authentication is required to rollback a transaction"
 msgstr ""
 "Kan ikke gå tilbake til en tidligere tilstand uten identitetsbekreftelse"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:11
+#: ../policy/org.freedesktop.packagekit.policy.in.h:18
 #, fuzzy
 msgid ""
 "Authentication is required to set the network proxy used for downloading "
 "packages"
 msgstr "Kan ikke fjerne programpakker uten identitetsbekreftelse"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:12
+#: ../policy/org.freedesktop.packagekit.policy.in.h:19
 msgid "Authentication is required to update packages"
 msgstr "Kunne ikke oppdatere programpakker uten identitetsbekreftelse"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:13
+#. SECURITY:
+#. - Normal users are allowed to cancel their own task without
+#. authentication, but a different user id needs the admin password
+#. to cancel another users task.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:25
 msgid "Cancel foreign task"
 msgstr ""
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:14
+#. SECURITY:
+#. - Normal users require admin authentication to enable or disable
+#. software sources as this can be used to enable new updates or
+#. install different versions of software.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:31
 msgid "Change software source parameters"
 msgstr "Endre parametre for pakkebrønnene"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:15
+#. SECURITY:
+#. - Normal users do not need authentication to install signed packages
+#. from signed repositories, as this cannot exploit a system.
+#. - Paranoid users (or parents!) can change this to 'auth_admin' or
+#. 'auth_admin_keep'.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:38
 #, fuzzy
 msgid "Install signed package"
 msgstr "Installér programpakke"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:16
+#. SECURITY:
+#. - Normal users require admin authentication to install untrusted or
+#. unrecognised packages, as allowing users to do this without a
+#. password would be a massive security hole.
+#. - This is not retained as each package should be authenticated.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:45
 #, fuzzy
 msgid "Install untrusted local file"
 msgstr "Installér lokal fil"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:17
+#. SECURITY:
+#. - Normal users do not require admin authentication to refresh the
+#. cache, as this doesn't actually install or remove software.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:50
 msgid "Refresh system sources"
 msgstr ""
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:18
+#. SECURITY:
+#. - Normal users require admin authentication to rebind a driver
+#. so that it works after we install firmware.
+#. - This should not be set to 'yes' as unprivileged users could then
+#. try to rebind drivers in use, for instance security authentication
+#. devices.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:58
+msgid "Reload a device"
+msgstr ""
+
+#. SECURITY:
+#. - Normal users require admin authentication to remove packages as
+#. this can make the system unbootable or stop other applications from
+#. working.
+#. - Be sure to close the tool used to remove the packages after the
+#. admin authentication has been obtained, otherwise packages can still
+#. be removed. If this is not possible, change this authentication to
+#. 'auth_admin'.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:68
 msgid "Remove package"
 msgstr "Fjern programpakke"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:19
+#. SECURITY:
+#. - Normal users require admin authentication to rollback system state
+#. as this will change a large number of packages, and could expose the
+#. system to previously patched security vulnerabilities.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:74
 msgid "Rollback to a previous transaction"
 msgstr "GÃ¥ tilbake til en tidligere tilstand"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:20
+#. SECURITY:
+#. - Normal users do not require admin authentication to set the proxy
+#. used for downloading packages.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:79
 msgid "Set network proxy"
 msgstr ""
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:21
+#. SECURITY:
+#. - Normal users require admin authentication to add signing keys.
+#. - This implies adding an explicit trust, and should not be granted
+#. without a secure authentication.
+#. - This is not kept as each package should be authenticated.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:86
 msgid "Trust a key used for signing packages"
 msgstr ""
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:22
+#. SECURITY:
+#. - Normal users do not require admin authentication to update the
+#. system as the packages will be signed, and the action is required
+#. to update the system when unattended.
+#. - Changing this to anything other than 'yes' will break unattended
+#. updates.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:94
 #, fuzzy
 msgid "Update packages"
 msgstr "Oppdater programpakke"
 
-#: ../src/pk-main.c:86
+#. TRANSLATORS: failed due to DBus security
+#: ../src/pk-main.c:87
 msgid "Startup failed due to security policies on this machine."
 msgstr "Sikkerhetspolitikk på denne maskinen hindret oppstart"
 
-#: ../src/pk-main.c:87
+#. TRANSLATORS: only two ways this can fail...
+#: ../src/pk-main.c:89
 msgid "This can happen for two reasons:"
 msgstr "Dette kan skje av to grunner: "
 
-#: ../src/pk-main.c:88
+#. TRANSLATORS: only allowed to be owned by root
+#: ../src/pk-main.c:91
 msgid "The correct user is not launching the executable (usually root)"
 msgstr ""
 "Programfilen ble ikke kjørt av forventet bruker (vanligvis superbruker "
 "(root) )"
 
-#: ../src/pk-main.c:89
+#. TRANSLATORS: or we are installed in a prefix
+#: ../src/pk-main.c:93
 #, fuzzy
 msgid ""
 "The org.freedesktop.PackageKit.conf file is not installed in the system "
@@ -1008,43 +1517,127 @@ msgstr ""
 "Finner ikke konfigurasjonsfilen org.freedesktop.PackageKit.conf i /etc/dbus-"
 "1/system.d/"
 
-#: ../src/pk-main.c:188
+#. TRANSLATORS: a backend is the system package tool, e.g. yum, apt
+#: ../src/pk-main.c:205
 msgid "Packaging backend to use, e.g. dummy"
 msgstr "Velg backend for programpakkene, f.eks foobar"
 
-#: ../src/pk-main.c:190
+#. TRANSLATORS: if we should run in the background
+#: ../src/pk-main.c:208
 msgid "Daemonize and detach from the terminal"
 msgstr "Gjør nissen (daemon) selvstendig, og uavhengig av terminalen"
 
-#: ../src/pk-main.c:194
+#. TRANSLATORS: if we should not monitor how long we are inactive for
+#: ../src/pk-main.c:214
 msgid "Disable the idle timer"
 msgstr "Deaktiver inaktivitetskontrollen"
 
-#: ../src/pk-main.c:196
+#. TRANSLATORS: show version
+#: ../src/pk-main.c:217
 msgid "Show version and exit"
 msgstr "Vis versjonsnummer og avslutt"
 
-#: ../src/pk-main.c:198
+#. TRANSLATORS: exit after we've started up, used for user profiling
+#: ../src/pk-main.c:220
 msgid "Exit after a small delay"
 msgstr "Avslutt etter en liten forsinkelse"
 
-#: ../src/pk-main.c:200
+#. TRANSLATORS: exit straight away, used for automatic profiling
+#: ../src/pk-main.c:223
 msgid "Exit after the engine has loaded"
 msgstr "Avslutt etter maskinen har lastet"
 
-#: ../src/pk-main.c:214
+#. TRANSLATORS: describing the service that is running
+#: ../src/pk-main.c:238
 msgid "PackageKit service"
 msgstr "PackageKit-tjeneste"
 
-#: ../src/pk-main.c:250
+#. TRANSLATORS: fatal error, dbus is not running
+#: ../src/pk-main.c:275
 msgid "Cannot connect to the system bus"
 msgstr "Fikk ikke kontakt med systembussen"
 
-#: ../src/pk-main.c:299
-#, c-format
+#. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error follows
+#: ../src/pk-main.c:334
 msgid "Error trying to start:"
 msgstr "Det skjedde en feil under oppstart av:"
 
+#: ../src/pk-polkit-action-lookup.c:147
+#, fuzzy
+msgid "To install debugging packages, extra sources need to be enabled"
+msgstr "Fant ingen programpakke som samsvarte"
+
+#. TRANSLATORS: is not GPG signed
+#: ../src/pk-polkit-action-lookup.c:168 ../src/pk-polkit-action-lookup.c:187
+msgid "The software is not from a trusted source."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:173
+msgid "Do not update this package unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:174
+msgid "Do not update these packages unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:192
+msgid "Do not install this package unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:193
+msgid "Do not install these packages unless you are sure it is safe to do so."
+msgstr ""
+
+#. TRANSLATORS: warn the user that all bets are off
+#: ../src/pk-polkit-action-lookup.c:199
+msgid "Malicious software can damage your computer or cause other harm."
+msgstr ""
+
+#. TRANSLATORS: too many packages to list each one
+#: ../src/pk-polkit-action-lookup.c:274
+#, fuzzy
+msgid "Many packages"
+msgstr "Oppdater programpakke"
+
+#. TRANSLATORS: if the transaction is forced to install only trusted packages
+#: ../src/pk-polkit-action-lookup.c:334
+msgid "Only trusted"
+msgstr ""
+
+#, fuzzy
+#~ msgid "You need to specify a search type, e.g. name"
+#~ msgstr "Trenger en søketype for å fortsette"
+
+#~ msgid "You need to specify a search term"
+#~ msgstr "Trenger et søkeord for å fortsette"
+
+#~ msgid "You need to specify a package to remove"
+#~ msgstr "Kan ikke fortsette uten en programpakke som skal fjernes"
+
+#~ msgid "You need to specify a package name to resolve"
+#~ msgstr "Du må oppgi et programpakkenavn for å løse konflikten"
+
+#, fuzzy
+#~ msgid "You need to specify a repository name"
+#~ msgstr "Trenger et navn på pakkebrønnen for å fortsette"
+
+#~ msgid "You need to specify a correct role"
+#~ msgstr "Du må oppgi gyldig handling for å fortsette"
+
+#~ msgid "Failed to get last time"
+#~ msgstr "Kunne ikke hentes forrige gang"
+
+#, fuzzy
+#~ msgid "You need to specify a package to find the details for"
+#~ msgstr "Du kan ikke vise tilhørende filer uten først å oppgi programpakken"
+
+#~ msgid "You need to specify a package to find the files for"
+#~ msgstr "Du kan ikke vise tilhørende filer uten først å oppgi programpakken"
+
+#, fuzzy
+#~ msgid "You need to specify a list file to open"
+#~ msgstr "Trenger en tidsverdi for å fortsette"
+
 #~ msgid "Install local file"
 #~ msgstr "Installér lokal fil"
 
@@ -1057,9 +1650,6 @@ msgstr "Det skjedde en feil under oppstart av:"
 #~ msgid "Do you agree?"
 #~ msgstr "Godkjent?"
 
-#~ msgid "A logout and login is required"
-#~ msgstr "For å fullføre må du logge ut og inn."
-
 #, fuzzy
 #~ msgid "Could not find package to remove"
 #~ msgstr "Fant ingen pakke med det navnet som kunne fjernes"
@@ -1072,20 +1662,9 @@ msgstr "Det skjedde en feil under oppstart av:"
 #~ msgstr "Fant ingen programpakke som samsvarte"
 
 #, fuzzy
-#~ msgid "Could not find what packages require"
-#~ msgstr "Ingen programpakker som avhenger av denne programpakken ble funnet"
-
-#, fuzzy
 #~ msgid "Could not find details for"
 #~ msgstr "Fant ikke filene som hører til denne programpakken"
 
-#~ msgid "Could not find a package match"
-#~ msgstr "Fant ingen programpakke som samsvarte"
-
-#, fuzzy
-#~ msgid "Resolving package name to remote object"
-#~ msgstr "Følgende pakker må fjernes"
-
 #, fuzzy
 #~ msgid "Could not set database readonly"
 #~ msgstr "Kunne ikke åpne databasen: %s"
diff --git a/po/nl.po b/po/nl.po
index 5846c4b..03cdcc4 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -4,7 +4,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: packagekit.master.nl\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-06-17 08:13+0000\n"
+"POT-Creation-Date: 2009-08-24 11:06+0100\n"
 "PO-Revision-Date: 2009-06-17 14:16+0200\n"
 "Last-Translator: R.E. van der Luit <nippur at fedoraproject.org>\n"
 "Language-Team: Dutch <nippur at fedoraproject.org>\n"
@@ -16,230 +16,264 @@ msgstr ""
 "X-Generator: KBabel 1.11.4\n"
 
 #. TRANSLATORS: this is an atomic transaction
-#: ../client/pk-console.c:234
+#: ../client/pk-console.c:235
 msgid "Transaction"
 msgstr "Transactie"
 
 #. TRANSLATORS: this is the time the transaction was started in system timezone
-#: ../client/pk-console.c:236
+#: ../client/pk-console.c:237
 msgid "System time"
 msgstr "Systeemtijd"
 
 #. TRANSLATORS: this is if the transaction succeeded or not
-#: ../client/pk-console.c:238
+#: ../client/pk-console.c:239
 msgid "Succeeded"
 msgstr "Geslaagd"
 
 #. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:238 ../client/pk-console.c:405
+#: ../client/pk-console.c:239 ../client/pk-console.c:406
 msgid "True"
 msgstr "Waar"
 
-#: ../client/pk-console.c:238 ../client/pk-console.c:405
+#: ../client/pk-console.c:239 ../client/pk-console.c:406
 msgid "False"
 msgstr "Niet waar"
 
 #. TRANSLATORS: this is the transactions role, e.g. "update-system"
-#: ../client/pk-console.c:240
+#. TRANSLATORS: the trasaction role, e.g. update-system
+#: ../client/pk-console.c:241 ../src/pk-polkit-action-lookup.c:327
 msgid "Role"
 msgstr "Rol"
 
 #. TRANSLATORS: this is The duration of the transaction
-#: ../client/pk-console.c:245
+#: ../client/pk-console.c:246
 msgid "Duration"
 msgstr "Duur"
 
-#: ../client/pk-console.c:245
+#: ../client/pk-console.c:246
 msgid "(seconds)"
 msgstr "(seconden)"
 
 #. TRANSLATORS: this is The command line used to do the action
-#: ../client/pk-console.c:249
+#. TRANSLATORS: the command line of the thing that wants the authentication
+#: ../client/pk-console.c:250 ../src/pk-polkit-action-lookup.c:341
 msgid "Command line"
 msgstr "Commando lijn"
 
 #. TRANSLATORS: this is the user ID of the user that started the action
-#: ../client/pk-console.c:251
+#: ../client/pk-console.c:252
 msgid "User ID"
 msgstr "Gebruiker ID"
 
 #. TRANSLATORS: this is the username, e.g. hughsie
-#: ../client/pk-console.c:258
+#: ../client/pk-console.c:259
 msgid "Username"
 msgstr "Gebruikernaam"
 
 #. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
-#: ../client/pk-console.c:262
+#: ../client/pk-console.c:263
 msgid "Real name"
 msgstr "Werkelijke naam"
 
-#: ../client/pk-console.c:270
+#: ../client/pk-console.c:271
 msgid "Affected packages:"
 msgstr "Betreffende Pakketten"
 
-#: ../client/pk-console.c:272
+#: ../client/pk-console.c:273
 msgid "Affected packages: None"
 msgstr "Betreffende Pakketten: Geen"
 
 #. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:297
+#: ../client/pk-console.c:298
 msgid "Distribution"
 msgstr "Distributie"
 
 #. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:299
+#: ../client/pk-console.c:300
 msgid "Type"
 msgstr "Type"
 
 #. TRANSLATORS: this is any summary text describing the upgrade
 #. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:301 ../client/pk-console.c:324
+#: ../client/pk-console.c:302 ../client/pk-console.c:325
 msgid "Summary"
 msgstr "Samenvatting"
 
 #. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:313
+#: ../client/pk-console.c:314
 msgid "Category"
 msgstr "Categorie"
 
 #. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:315
+#: ../client/pk-console.c:316
 msgid "ID"
 msgstr "ID"
 
 #. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:318
+#: ../client/pk-console.c:319
 msgid "Parent"
 msgstr "Ouder"
 
 #. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:321
+#: ../client/pk-console.c:322
 msgid "Name"
 msgstr "Naam"
 
 #. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:327
+#: ../client/pk-console.c:328
 msgid "Icon"
 msgstr "Afbeelding"
 
 #. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:342
+#: ../client/pk-console.c:343
 msgid "Details about the update:"
 msgstr "Details van de update:"
 
 #. TRANSLATORS: details about the update, package name and version
-#: ../client/pk-console.c:344
+#. TRANSLATORS: title, the names of the packages that the method is processing
+#: ../client/pk-console.c:345 ../src/pk-polkit-action-lookup.c:352
+#, fuzzy
 msgid "Package"
-msgstr "Pakketten"
+msgid_plural "Packages"
+msgstr[0] "Pakketten"
+msgstr[1] "Pakketten"
 
 #. TRANSLATORS: details about the update, any packages that this update updates
-#: ../client/pk-console.c:347
+#: ../client/pk-console.c:348
 msgid "Updates"
 msgstr "Updates"
 
 #. TRANSLATORS: details about the update, any packages that this update obsoletes
-#: ../client/pk-console.c:351
+#: ../client/pk-console.c:352
 msgid "Obsoletes"
 msgstr "Verouderde Paketten"
 
 #. TRANSLATORS: details about the update, the vendor URLs
-#: ../client/pk-console.c:355
+#: ../client/pk-console.c:356
 msgid "Vendor"
 msgstr "Verkoper"
 
 #. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:359
+#: ../client/pk-console.c:360
 msgid "Bugzilla"
 msgstr "Bugzilla"
 
 #. TRANSLATORS: details about the update, the CVE URLs
-#: ../client/pk-console.c:363
+#: ../client/pk-console.c:364
 msgid "CVE"
 msgstr "CVE"
 
 #. TRANSLATORS: details about the update, if the package requires a restart
-#: ../client/pk-console.c:367
+#: ../client/pk-console.c:368
 msgid "Restart"
 msgstr "Herstarten"
 
 #. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:371
+#: ../client/pk-console.c:372
 msgid "Update text"
 msgstr "Update tekst"
 
 #. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:375
+#: ../client/pk-console.c:376
 msgid "Changes"
 msgstr "Veranderingen"
 
 #. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:379
+#: ../client/pk-console.c:380
 msgid "State"
 msgstr "Status"
 
 #. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:384
+#: ../client/pk-console.c:385
 msgid "Issued"
 msgstr "Uitgegeven"
 
 #. TRANSLATORS: details about the update, date the update was updated
-#: ../client/pk-console.c:389
+#: ../client/pk-console.c:390
 msgid "Updated"
 msgstr "Ge-update"
 
-#: ../client/pk-console.c:476 ../client/pk-console.c:478
+#: ../client/pk-console.c:477 ../client/pk-console.c:479
 msgid "Percentage"
 msgstr "Percentage"
 
-#: ../client/pk-console.c:478
+#: ../client/pk-console.c:479
 msgid "Unknown"
 msgstr "Onbekend"
 
 #. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:529
+#: ../client/pk-console.c:521
 msgid "System restart required by:"
 msgstr "Herstart systeem vereist door:"
 
 #. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:532
+#: ../client/pk-console.c:524
 msgid "Session restart required:"
 msgstr "Het is vereist het systeem te herstarten:"
 
+#. TRANSLATORS: a package requires the system to be restarted due to a security update
+#: ../client/pk-console.c:527
+#, fuzzy
+msgid "System restart (security) required by:"
+msgstr "Herstart systeem vereist door:"
+
+#. TRANSLATORS: a package requires the session to be restarted due to a security update
+#: ../client/pk-console.c:530
+#, fuzzy
+msgid "Session restart (security) required:"
+msgstr "Het is vereist het systeem te herstarten:"
+
 #. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:535
+#: ../client/pk-console.c:533
 msgid "Application restart required by:"
 msgstr "Herstart vereist door applicatie:"
 
-#. TRANSLATORS: a package needs to restart they system
-#: ../client/pk-console.c:572
+#. TRANSLATORS: a package needs to restart their system
+#: ../client/pk-console.c:588
 msgid "Please restart the computer to complete the update."
 msgstr "Herstart u alstublieft de computer om de update af te maken."
 
 #. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:575
+#: ../client/pk-console.c:591
 msgid "Please logout and login to complete the update."
 msgstr "Logt u alstublieft uit en weer in om de update af te maken."
 
 #. TRANSLATORS: a package needs to restart the application
-#: ../client/pk-console.c:578
+#: ../client/pk-console.c:594
 msgid "Please restart the application as it is being used."
 msgstr "Herstart u alstublieft de applicatie aangezien deze in gebruik was."
 
+#. TRANSLATORS: a package needs to restart their system (due to security)
+#: ../client/pk-console.c:597
+#, fuzzy
+msgid ""
+"Please restart the computer to complete the update as important security "
+"updates have been installed."
+msgstr "Herstart u alstublieft de computer om de update af te maken."
+
+#. TRANSLATORS: a package needs to restart the session (due to security)
+#: ../client/pk-console.c:600
+#, fuzzy
+msgid ""
+"Please logout and login to complete the update as important security updates "
+"have been installed."
+msgstr "Logt u alstublieft uit en weer in om de update af te maken."
+
 #. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:691
+#: ../client/pk-console.c:727
 #, c-format
 msgid "The package %s is already installed"
 msgstr "Het pakket %s is reeds geïnstalleerd"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:699
+#: ../client/pk-console.c:735
 #, c-format
 msgid "The package %s could not be installed: %s"
 msgstr "Het pakket %s kon niet worden geïnstalleerd: %s"
 
 #. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
-#: ../client/pk-console.c:724 ../client/pk-console.c:751
-#: ../client/pk-console.c:847 ../client/pk-console.c:964
+#: ../client/pk-console.c:760 ../client/pk-console.c:783
+#: ../client/pk-console.c:879 ../client/pk-console.c:996
 #: ../client/pk-tools-common.c:62 ../client/pk-tools-common.c:81
 #: ../client/pk-tools-common.c:89
 #, c-format
@@ -247,47 +281,47 @@ msgid "Internal error: %s"
 msgstr "Interne fout: %s"
 
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:732 ../client/pk-console.c:1360
+#: ../client/pk-console.c:768 ../client/pk-console.c:1392
 #, c-format
 msgid "This tool could not install the packages: %s"
 msgstr "Dit programma kon niet het pakket %s installeren."
 
 #. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:759
+#: ../client/pk-console.c:791
 #, c-format
 msgid "This tool could not install the files: %s"
 msgstr "De bestanden %s konden niet worden geïnstalleerd."
 
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:815
+#: ../client/pk-console.c:847
 #, c-format
 msgid "This tool could not remove %s: %s"
 msgstr "Dit programma kon %s niet verwijderen: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:838 ../client/pk-console.c:876
-#: ../client/pk-console.c:909
+#: ../client/pk-console.c:870 ../client/pk-console.c:908
+#: ../client/pk-console.c:941
 #, c-format
 msgid "This tool could not remove the packages: %s"
 msgstr "Dit programma kon het pakket %s niet verwijderen."
 
 #. TRANSLATORS: When removing, we might have to remove other dependencies
-#: ../client/pk-console.c:888
+#: ../client/pk-console.c:920
 msgid "The following packages have to be removed:"
 msgstr "De volgende pakketten moeten worden verwijderd:"
 
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:895
+#: ../client/pk-console.c:927
 msgid "Proceed removing additional packages?"
 msgstr "Doorgaan met additionele pakketten verwijderen?"
 
 #. TRANSLATORS: We did not remove any packages
-#: ../client/pk-console.c:900
+#: ../client/pk-console.c:932
 msgid "The package removal was canceled!"
 msgstr "Het verwijderen van pakketten is afgebroken!"
 
 #. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:941
+#: ../client/pk-console.c:973
 #, c-format
 msgid "This tool could not download the package %s as it could not be found"
 msgstr ""
@@ -295,353 +329,359 @@ msgstr ""
 "kon worden."
 
 #. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:972
+#: ../client/pk-console.c:1004
 #, c-format
 msgid "This tool could not download the packages: %s"
 msgstr "Dit programma kon de pakketten niet downloaden: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:999 ../client/pk-console.c:1008
+#: ../client/pk-console.c:1031 ../client/pk-console.c:1040
 #, c-format
 msgid "This tool could not update %s: %s"
 msgstr "Dit programma kon %s niet updaten: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1030 ../client/pk-console.c:1038
+#: ../client/pk-console.c:1062 ../client/pk-console.c:1070
 #, c-format
 msgid "This tool could not get the requirements for %s: %s"
 msgstr "Dit programma kon niet de benodigdheden voor %s vinden: %s"
 
 #. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:1060 ../client/pk-console.c:1068
+#: ../client/pk-console.c:1092 ../client/pk-console.c:1100
 #, c-format
 msgid "This tool could not get the dependencies for %s: %s"
 msgstr "De afhankelijkheden voor %s konden niet worden verkregen: %s"
 
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:1090 ../client/pk-console.c:1098
+#: ../client/pk-console.c:1122 ../client/pk-console.c:1130
 #, c-format
 msgid "This tool could not get package details for %s: %s"
 msgstr "Dit programma kon geen pakketdetails vinden voor %s: %s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1120
+#: ../client/pk-console.c:1152
 #, c-format
 msgid "This tool could not find the files for %s: %s"
 msgstr "Dit programma kon de bestanden voor %s niet vinden: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1128
+#: ../client/pk-console.c:1160
 #, c-format
 msgid "This tool could not get the file list for %s: %s"
 msgstr "Dit programma kon de bestandenlijst voor %s niet vinden: %s"
 
 #. TRANSLATORS: There was an error getting the list of packages. The filename follows
-#: ../client/pk-console.c:1150
+#: ../client/pk-console.c:1182
 #, c-format
 msgid "File already exists: %s"
 msgstr "Bestand bestaat reeds: %s"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1155 ../client/pk-console.c:1211
-#: ../client/pk-console.c:1286
+#: ../client/pk-console.c:1187 ../client/pk-console.c:1243
+#: ../client/pk-console.c:1318
 msgid "Getting package list"
 msgstr "Ophalen Pakketlijst"
 
 #. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1161 ../client/pk-console.c:1217
-#: ../client/pk-console.c:1292
+#: ../client/pk-console.c:1193 ../client/pk-console.c:1249
+#: ../client/pk-console.c:1324
 #, c-format
 msgid "This tool could not get package list: %s"
 msgstr "Dit programma kon de pakketlijst niet vinden: %s"
 
 #. TRANSLATORS: There was an error saving the list
-#: ../client/pk-console.c:1172
+#: ../client/pk-console.c:1204
 #, c-format
 msgid "Failed to save to disk"
 msgstr "Vastleggen op schijf niet gelukt"
 
 #. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1206 ../client/pk-console.c:1281
+#: ../client/pk-console.c:1238 ../client/pk-console.c:1313
 #, c-format
 msgid "File does not exist: %s"
 msgstr "Bestand bestaat niet: %s"
 
 #. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1238
+#: ../client/pk-console.c:1270
 msgid "Packages to add"
 msgstr "Toe te voegen pakketten"
 
 #. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1246
+#: ../client/pk-console.c:1278
 msgid "Packages to remove"
 msgstr "Te verwijderen pakketten"
 
 #. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1314
+#: ../client/pk-console.c:1346
 #, c-format
 msgid "No new packages need to be installed"
 msgstr "Er hoeven geen nieuwe pakketten te worden toegevoegd"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1320
+#: ../client/pk-console.c:1352
 msgid "To install"
 msgstr "Te installeren"
 
 #. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1332
+#: ../client/pk-console.c:1364
 msgid "Searching for package: "
 msgstr "Pakketten worden gezocht (kan even duren): "
 
 #. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1336
+#: ../client/pk-console.c:1368
 msgid "not found."
 msgstr "niet gevonden."
 
 #. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1347
+#: ../client/pk-console.c:1379
 #, c-format
 msgid "No packages can be found to install"
 msgstr "Er kunnen geen pakketten worden gevonden om te installeren"
 
 #. TRANSLATORS: installing new packages from package list
-#: ../client/pk-console.c:1353
+#. TRANSLATORS: we are now installing the debuginfo packages we found earlier
+#: ../client/pk-console.c:1385
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:886
+#, c-format
 msgid "Installing packages"
 msgstr "Pakketten installeren"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1389
+#: ../client/pk-console.c:1421
 #, c-format
 msgid "This tool could not find the update details for %s: %s"
 msgstr "Dit programma kon de update-details voor %s niet vinden: %s"
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1397
+#: ../client/pk-console.c:1429
 #, c-format
 msgid "This tool could not get the update details for %s: %s"
 msgstr "Dit programma kon de update-details voor %s niet verkrijgen: %s"
 
 #. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
-#: ../client/pk-console.c:1443
+#: ../client/pk-console.c:1460
 msgid "Error:"
 msgstr "Fout:"
 
 #. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1457
+#: ../client/pk-console.c:1474
 msgid "Package description"
 msgstr "Pakketomschrijving"
 
 #. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
-#: ../client/pk-console.c:1473
+#: ../client/pk-console.c:1490
 msgid "Message:"
 msgstr "Bericht:"
 
 #. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1501
+#: ../client/pk-console.c:1518
 msgid "Package files"
 msgstr "Pakketbestanden"
 
 #. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1509
+#: ../client/pk-console.c:1526
 msgid "No files"
 msgstr "Geen bestanden"
 
 #. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1532
+#: ../client/pk-console.c:1549
 msgid "Repository signature required"
 msgstr "Repository signatuur vereist"
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1542
+#: ../client/pk-console.c:1559
 msgid "Do you accept this signature?"
 msgstr "Accepteert u deze signatuur?"
 
 #. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1546
+#: ../client/pk-console.c:1563
 msgid "The signature was not accepted."
 msgstr "De signatuur werd niet geaccepteerd"
 
 #. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1580
+#: ../client/pk-console.c:1597
 msgid "End user license agreement required"
 msgstr "Eindgebruiker licentie overeenkomst vereist"
 
 #. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1587
+#: ../client/pk-console.c:1604
 msgid "Do you agree to this license?"
 msgstr "Gaat u accoord met deze licentie?"
 
 #. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1591
+#: ../client/pk-console.c:1608
 msgid "The license was refused."
 msgstr "De licentie werd geweigerd."
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1620
+#: ../client/pk-console.c:1637
 msgid "The daemon crashed mid-transaction!"
 msgstr "De service is midden in de transactie gecrashed!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1673
+#: ../client/pk-console.c:1690
 msgid "PackageKit Console Interface"
 msgstr "PackageKit console-interface"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1675
+#: ../client/pk-console.c:1692
 msgid "Subcommands:"
 msgstr "Subopdrachten:"
 
 #. TRANSLATORS: command line argument, if we should show debugging information
 #. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:1767 ../client/pk-generate-pack.c:185
-#: ../client/pk-monitor.c:125
-#: ../contrib/command-not-found/pk-command-not-found.c:521
-#: ../src/pk-main.c:211
+#: ../client/pk-console.c:1785 ../client/pk-generate-pack.c:185
+#: ../client/pk-monitor.c:128
+#: ../contrib/command-not-found/pk-command-not-found.c:616
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:550
+#: ../contrib/device-rebind/pk-device-rebind.c:293 ../src/pk-main.c:211
 msgid "Show extra debugging information"
 msgstr "Extra debuginformatie tonen"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1770 ../client/pk-monitor.c:127
+#: ../client/pk-console.c:1788 ../client/pk-monitor.c:130
 msgid "Show the program version and exit"
 msgstr "Programmaversie tonen en sluiten"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1773
+#: ../client/pk-console.c:1791
 msgid "Set the filter, e.g. installed"
 msgstr "Filter instellen, bijvoorbeeld geïnstalleerd"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1776
+#: ../client/pk-console.c:1794
 msgid "Exit without waiting for actions to complete"
 msgstr "Afsluiten zonder te wachten tot de transacties zijn afgerond"
 
 #. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:1803
+#: ../client/pk-console.c:1821
 msgid "This tool could not connect to system DBUS."
 msgstr "Er kon geen verbinding worden gelegd met system DBUS"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1894
+#: ../client/pk-console.c:1911
 msgid "The filter specified was invalid"
 msgstr "De opgegeven filter was ongeldig"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1912
+#: ../client/pk-console.c:1930
 msgid "A search type is required, e.g. name"
 msgstr "Een zoektype is verplicht, b.v. naam"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1918 ../client/pk-console.c:1926
-#: ../client/pk-console.c:1934 ../client/pk-console.c:1942
+#: ../client/pk-console.c:1937 ../client/pk-console.c:1946
+#: ../client/pk-console.c:1955 ../client/pk-console.c:1964
 msgid "A search term is required"
 msgstr "Een zoekterm is vereist"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1948
+#: ../client/pk-console.c:1971
 msgid "Invalid search type"
 msgstr "Ongeldig zoektype"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1954
+#: ../client/pk-console.c:1977
 msgid "A package name or filename to install is required"
 msgstr "Een pakketnaam of bestandsnaam om te installeren is vereist"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1962
+#: ../client/pk-console.c:1986
 msgid "A type, key_id and package_id are required"
 msgstr "Er moet een type worden opgegeven, key_id of package_id"
 
 #. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:1970
+#: ../client/pk-console.c:1995
 msgid "A package name to remove is required"
 msgstr "Een te verwijderen pakketnaam is vereist"
 
 #. TRANSLATORS: the user did not specify anything about what to download or where
-#: ../client/pk-console.c:1977
-msgid "A destination directory and then the package names to download are required"
+#: ../client/pk-console.c:2003
+#, fuzzy
+msgid "A destination directory and the package names to download are required"
 msgstr "Een doelmap en dan de namen van te downloaden pakketten zijn vereist."
 
 #. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:1983
+#: ../client/pk-console.c:2010
 msgid "Directory not found"
 msgstr "Map niet gevonden"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1990
+#: ../client/pk-console.c:2018
 msgid "A licence identifier (eula-id) is required"
 msgstr "Een licentie indentificatie (eula-id) is vereis"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1999
+#: ../client/pk-console.c:2028
 msgid "A transaction identifier (tid) is required"
 msgstr "Een transactie indentificatie (tid) is vereist"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:2015
+#: ../client/pk-console.c:2045
 msgid "A package name to resolve is required"
 msgstr "Een pakketnaam om te gebruiken is vereist"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:2023 ../client/pk-console.c:2031
+#: ../client/pk-console.c:2054 ../client/pk-console.c:2063
 msgid "A repository name is required"
 msgstr "Een naam van een repository is vereist"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2039
+#: ../client/pk-console.c:2072
 msgid "A repo name, parameter and value are required"
 msgstr "Een repo naam, parameter en waarde zijn vereist"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:2052
+#: ../client/pk-console.c:2086
 msgid "An action, e.g. 'update-system' is required"
 msgstr "Een actie, b.v. 'update-system' is vereist"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:2058
+#: ../client/pk-console.c:2093
 msgid "A correct role is required"
 msgstr "Een correcte rol is vereist"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2064
+#: ../client/pk-console.c:2100
 msgid "Failed to get the time since this action was last completed"
-msgstr "Verkrijgen van de tijd tussen laatste actie en deze actie is niet gelukt"
+msgstr ""
+"Verkrijgen van de tijd tussen laatste actie en deze actie is niet gelukt"
 
 #. TRANSLATORS: The user did not provide a package name
 #. TRANSLATORS: This is when the user fails to supply the package name
-#: ../client/pk-console.c:2073 ../client/pk-console.c:2084
-#: ../client/pk-console.c:2092 ../client/pk-console.c:2108
-#: ../client/pk-console.c:2116 ../client/pk-generate-pack.c:241
+#: ../client/pk-console.c:2110 ../client/pk-console.c:2122
+#: ../client/pk-console.c:2131 ../client/pk-console.c:2149
+#: ../client/pk-console.c:2158 ../client/pk-generate-pack.c:241
 msgid "A package name is required"
 msgstr "Een pakketnaam is vereist"
 
 #. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:2100
+#: ../client/pk-console.c:2140
 msgid "A package provide string is required"
 msgstr "Een pakket geleverde string is vereist"
 
 #. TRANSLATORS: The user didn't specify a filename to create as a list
-#: ../client/pk-console.c:2124
+#: ../client/pk-console.c:2167
 msgid "A list file name to create is required"
 msgstr "Een lijstbestandsnaam om aan te maken is vereist"
 
 #. TRANSLATORS: The user didn't specify a filename to open as a list
-#: ../client/pk-console.c:2133 ../client/pk-console.c:2142
+#: ../client/pk-console.c:2177 ../client/pk-console.c:2187
 msgid "A list file to open is required"
 msgstr "Een lijstbestand om te open is vereist"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2195
+#: ../client/pk-console.c:2241
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "Optie '%s' wordt niet ondersteund"
 
 #. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2208
+#: ../client/pk-console.c:2254
 msgid "Incorrect privileges for this operation"
 msgstr "Onjuiste privileges voor deze operatie"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2211
+#: ../client/pk-console.c:2257
 msgid "Command failed"
 msgstr "Opdracht mislukt"
 
@@ -663,11 +703,13 @@ msgstr "Afhankelijkheden aan het downloaden"
 #. TRANSLATORS: we can exclude certain packages (glibc) when we know they'll exist on the target
 #: ../client/pk-generate-pack.c:188
 msgid "Set the file name of dependencies to be excluded"
-msgstr "Zet de bestandsnamen van afhankelijkheden die moeten worden uitgesloten"
+msgstr ""
+"Zet de bestandsnamen van afhankelijkheden die moeten worden uitgesloten"
 
 #. TRANSLATORS: the output location
 #: ../client/pk-generate-pack.c:191
-msgid "The output file or directory (the current directory is used if ommitted)"
+msgid ""
+"The output file or directory (the current directory is used if ommitted)"
 msgstr ""
 "Het doelbestand of map (huidige map wordt gebruikt als dit niet wordt "
 "opgegeven)"
@@ -708,12 +750,15 @@ msgstr "De package manager kan dit type operatie niet uitvoeren."
 msgid ""
 "Service packs cannot be created as PackageKit was not built with libarchive "
 "support."
-msgstr "Service Packs kon niet worden gecreëerd omdat PackageKit niet met libarchive ondersteuning is gebouwd."
+msgstr ""
+"Service Packs kon niet worden gecreëerd omdat PackageKit niet met libarchive "
+"ondersteuning is gebouwd."
 
 #. TRANSLATORS: the user specified an absolute path, but didn't get the extension correct
 #: ../client/pk-generate-pack.c:291
 msgid "If specifying a file, the service pack name must end with"
-msgstr "Bij het specificeren van een bestand moet de servicepacknaam eindigen met"
+msgstr ""
+"Bij het specificeren van een bestand moet de servicepacknaam eindigen met"
 
 #. TRANSLATORS: This is when file already exists
 #: ../client/pk-generate-pack.c:307
@@ -764,10 +809,14 @@ msgid "Failed to create '%s': %s"
 msgstr "'%s' aanmaken niet gelukt: %s"
 
 #. TRANSLATORS: this is a program that monitors PackageKit
-#: ../client/pk-monitor.c:143
+#: ../client/pk-monitor.c:146
 msgid "PackageKit Monitor"
 msgstr "PackageKit-monitor"
 
+#: ../client/pk-monitor.c:183
+msgid "Cannot show the list of transactions"
+msgstr ""
+
 #. TRANSLATORS: The package was not found in any software sources
 #: ../client/pk-tools-common.c:118
 #, c-format
@@ -789,128 +838,433 @@ msgstr "Kies alstublieft het juiste pakket: "
 msgid "Please enter a number from 1 to %i: "
 msgstr "Voer een nummer in van 1 tot %i: "
 
+#. TRANSLATORS: when we are getting data from the daemon
+#: ../contrib/browser-plugin/pk-plugin-install.c:466
+msgid "Getting package information..."
+msgstr "Pakketinformatie verkrijgen......"
+
+#. TRANSLATORS: run an applicaiton
+#: ../contrib/browser-plugin/pk-plugin-install.c:472
+#, c-format
+msgid "Run %s"
+msgstr "Start %s"
+
+#. TRANSLATORS: show the installed version of a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:478
+msgid "Installed version"
+msgstr "Geïnstalleerde versie"
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:486
+#, c-format
+msgid "Run version %s now"
+msgstr "Start versie %s nu"
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:492
+msgid "Run now"
+msgstr "Start nu"
+
+#. TRANSLATORS: update to a new version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:498
+#, c-format
+msgid "Update to version %s"
+msgstr "Update naar versie %s"
+
+#. TRANSLATORS: To install a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:504
+#, c-format
+msgid "Install %s now"
+msgstr "Installeer %s nu"
+
+#. TRANSLATORS: the version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:507
+msgid "Version"
+msgstr "Versie"
+
+#. TRANSLATORS: noting found, so can't install
+#: ../contrib/browser-plugin/pk-plugin-install.c:512
+msgid "No packages found for your system"
+msgstr "Geen pakketten voor uw systeem gevonden"
+
+#. TRANSLATORS: package is being installed
+#: ../contrib/browser-plugin/pk-plugin-install.c:517
+msgid "Installing..."
+msgstr "Aan het installeren......"
+
+#. TRANSLATORS: downloading repo data so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:349
+msgid "Downloading details about the software sources."
+msgstr ""
+
+#. TRANSLATORS: downloading file lists so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:353
+msgid "Downloading filelists (this may take some time to complete)."
+msgstr ""
+
+#. TRANSLATORS: waiting for native lock
+#: ../contrib/command-not-found/pk-command-not-found.c:357
+#, fuzzy
+msgid "Waiting for package manager lock."
+msgstr "Pakketnaam wordt opgezocht."
+
+#. TRANSLATORS: loading package cache so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:361
+#, fuzzy
+msgid "Loading list of packages."
+msgstr "Pakketten aan het downloaden"
+
 #. TRANSLATORS: we failed to find the package, this shouldn't happen
-#: ../contrib/command-not-found/pk-command-not-found.c:372
+#: ../contrib/command-not-found/pk-command-not-found.c:420
 msgid "Failed to search for file"
 msgstr "Zoeken naar bestand niet gelukt"
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:496
+#: ../contrib/command-not-found/pk-command-not-found.c:557
 msgid "Failed to launch:"
 msgstr "Starten mislukt:"
 
 #. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/command-not-found/pk-command-not-found.c:537
+#: ../contrib/command-not-found/pk-command-not-found.c:632
 msgid "PackageKit Command Not Found"
 msgstr "PackageKit Command niet gevonden"
 
 #. TRANSLATORS: the prefix of all the output telling the user why it's not executing
-#: ../contrib/command-not-found/pk-command-not-found.c:560
+#: ../contrib/command-not-found/pk-command-not-found.c:658
 msgid "Command not found."
 msgstr "Commando niet gevonden."
 
 #. TRANSLATORS: tell the user what we think the command is
-#: ../contrib/command-not-found/pk-command-not-found.c:567
+#: ../contrib/command-not-found/pk-command-not-found.c:665
 msgid "Similar command is:"
 msgstr "Een gelijkend commando is:"
 
 #. TRANSLATORS: Ask the user if we should run the similar command
-#: ../contrib/command-not-found/pk-command-not-found.c:576
+#: ../contrib/command-not-found/pk-command-not-found.c:674
 msgid "Run similar command:"
 msgstr "Start gelijkend commando:"
 
 #. TRANSLATORS: show the user a list of commands that they could have meant
 #. TRANSLATORS: show the user a list of commands we could run
-#: ../contrib/command-not-found/pk-command-not-found.c:588
-#: ../contrib/command-not-found/pk-command-not-found.c:597
+#: ../contrib/command-not-found/pk-command-not-found.c:686
+#: ../contrib/command-not-found/pk-command-not-found.c:695
 msgid "Similar commands are:"
 msgstr "Gelijkende commando's zijn:"
 
 #. TRANSLATORS: ask the user to choose a file to run
-#: ../contrib/command-not-found/pk-command-not-found.c:604
+#: ../contrib/command-not-found/pk-command-not-found.c:702
 msgid "Please choose a command to run"
 msgstr "Kies alstublieft een commando om te starten"
 
 #. TRANSLATORS: tell the user what package provides the command
-#: ../contrib/command-not-found/pk-command-not-found.c:619
+#: ../contrib/command-not-found/pk-command-not-found.c:721
 msgid "The package providing this file is:"
 msgstr "Het pakket dat dit bestand levert is:"
 
 #. TRANSLATORS: as the user if we want to install a package to provide the command
-#: ../contrib/command-not-found/pk-command-not-found.c:624
+#: ../contrib/command-not-found/pk-command-not-found.c:726
 #, c-format
 msgid "Install package '%s' to provide command '%s'?"
 msgstr "Pakket '%s' installeren om commando '%s' te verkrijgen?"
 
 #. TRANSLATORS: Show the user a list of packages that provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:645
+#: ../contrib/command-not-found/pk-command-not-found.c:747
 msgid "Packages providing this file are:"
 msgstr "Pakketten die dit bestand leveren zijn:"
 
 #. TRANSLATORS: Show the user a list of packages that they can install to provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:654
+#: ../contrib/command-not-found/pk-command-not-found.c:756
 msgid "Suitable packages are:"
 msgstr "Geschikte pakketten zijn:"
 
 #. get selection
 #. TRANSLATORS: ask the user to choose a file to install
-#: ../contrib/command-not-found/pk-command-not-found.c:662
+#: ../contrib/command-not-found/pk-command-not-found.c:764
 msgid "Please choose a package to install"
 msgstr "Kies alstublieft een pakket om te installeren"
 
-#. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/src/contents.cpp:299
-msgid "Getting package information..."
-msgstr "Pakketinformatie verkrijgen......"
+#. TRANSLATORS: we are starting to install the packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:187
+#, fuzzy
+msgid "Starting install"
+msgstr "Te installeren"
 
-#. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/src/contents.cpp:305
+#. TRANSLATORS: we couldn't find the package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:397
+#, fuzzy, c-format
+msgid "Failed to find the package %s, or already installed: %s"
+msgstr "Het pakket %s is reeds geïnstalleerd"
+
+#. command line argument, simulate what would be done, but don't actually do it
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:553
+msgid ""
+"Don't actually install any packages, only simulate what would be installed"
+msgstr ""
+
+#. command line argument, do we skip packages that depend on the ones specified
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:556
+msgid "Do not install dependencies of the core packages"
+msgstr ""
+
+#. command line argument, do we operate quietly
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:559
+msgid "Do not display information or progress"
+msgstr ""
+
+#. TRANSLATORS: tool that gets called when the command is not found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:577
+#, fuzzy
+msgid "PackageKit Debuginfo Installer"
+msgstr "PackageKit console-interface"
+
+#. TRANSLATORS: the use needs to specify a list of package names on the command line
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:589
+#, fuzzy, c-format
+msgid "ERROR: Specify package names to install."
+msgstr "Er hoeven geen nieuwe pakketten te worden toegevoegd"
+
+#. TRANSLATORS: we are getting the list of repositories
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:623
+#, fuzzy, c-format
+msgid "Getting sources list"
+msgstr "Ophalen Pakketlijst"
+
+#. TRANSLATORS: all completed 100%
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:641
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:681
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:716
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:800
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:844
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:911
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:955
 #, c-format
-msgid "Run %s"
-msgstr "Start %s"
+msgid "OK."
+msgstr ""
 
-#. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/src/contents.cpp:311
-msgid "Installed version"
-msgstr "Geïnstalleerde versie"
+#. TRANSLATORS: tell the user what we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:644
+#, c-format
+msgid "Found %i enabled and %i disabled sources."
+msgstr ""
 
-#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/src/contents.cpp:319
+#. TRANSLATORS: we're finding repositories that match out pattern
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:651
 #, c-format
-msgid "Run version %s now"
-msgstr "Start versie %s nu"
+msgid "Finding debugging sources"
+msgstr ""
 
-#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/src/contents.cpp:325
-msgid "Run now"
-msgstr "Start nu"
+#. TRANSLATORS: tell the user what we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:684
+#, c-format
+msgid "Found %i disabled debuginfo repos."
+msgstr ""
 
-#. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/src/contents.cpp:331
+#. TRANSLATORS: we're now enabling all the debug sources we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:691
 #, c-format
-msgid "Update to version %s"
-msgstr "Update naar versie %s"
+msgid "Enabling debugging sources"
+msgstr ""
 
-#. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/src/contents.cpp:337
+#. TRANSLATORS: operation was not successful
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:701
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:785
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:829
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:896
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:940
+msgid "FAILED."
+msgstr ""
+
+#. TRANSLATORS: tell the user how many we enabled
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:719
 #, c-format
-msgid "Install %s now"
-msgstr "Installeer %s nu"
+msgid "Enabled %i debugging sources."
+msgstr ""
 
-#. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/src/contents.cpp:340
-msgid "Version"
-msgstr "Versie"
+#. TRANSLATORS: we're now finding packages that match in all the repos
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:726
+#, fuzzy, c-format
+msgid "Finding debugging packages"
+msgstr "Pakketnaam wordt opgezocht."
 
-#. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/src/contents.cpp:345
-msgid "No packages found for your system"
-msgstr "Geen pakketten voor uw systeem gevonden"
+#. TRANSLATORS: we couldn't find the package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:738
+#, fuzzy, c-format
+msgid "Failed to find the package %s: %s"
+msgstr "Pakket '%s' niet gevonden: %s"
 
-#. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/src/contents.cpp:350
-msgid "Installing..."
-msgstr "Aan het installeren......"
+#. TRANSLATORS: we couldn't find the debuginfo package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:761
+#, fuzzy, c-format
+msgid "Failed to find the debuginfo package %s: %s"
+msgstr "Pakket '%s' niet gevonden: %s"
+
+#. TRANSLATORS: no debuginfo packages could be found to be installed
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:789
+#, fuzzy, c-format
+msgid "Found no packages to install."
+msgstr "Er hoeven geen nieuwe pakketten te worden toegevoegd"
+
+#. TRANSLATORS: tell the user we found some packages, and then list them
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:803
+#, fuzzy, c-format
+msgid "Found %i packages:"
+msgstr "Pakketten aan het downloaden"
+
+#. TRANSLATORS: tell the user we are searching for deps
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:819
+#, c-format
+msgid "Finding packages that depend on these packages"
+msgstr ""
+
+#. TRANSLATORS: could not install, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:832
+#, fuzzy, c-format
+msgid "Could not find dependant packages: %s"
+msgstr "Pakket '%s' niet gevonden: %s"
+
+#. TRANSLATORS: tell the user we found some more packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:848
+#, c-format
+msgid "Found %i extra packages."
+msgstr ""
+
+#. TRANSLATORS: tell the user we found some more packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:852
+#, fuzzy, c-format
+msgid "No extra packages required."
+msgstr "Een pakketnaam is vereist"
+
+#. TRANSLATORS: tell the user we found some packages (and deps), and then list them
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:861
+#, fuzzy, c-format
+msgid "Found %i packages to install:"
+msgstr "Er hoeven geen nieuwe pakketten te worden toegevoegd"
+
+#. TRANSLATORS: simulate mode is a testing mode where we quit before the action
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:874
+#, fuzzy, c-format
+msgid "Not installing packages in simulate mode"
+msgstr "Pakketten installeren"
+
+#. TRANSLATORS: could not install, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:899
+#, fuzzy, c-format
+msgid "Could not install packages: %s"
+msgstr "Dit programma kon niet het pakket %s installeren."
+
+#. TRANSLATORS: we are now disabling all debuginfo repos we previously enabled
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:931
+#, c-format
+msgid "Disabling sources previously enabled"
+msgstr ""
+
+#. TRANSLATORS: no debuginfo packages could be found to be installed, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:943
+#, c-format
+msgid "Could not disable the debugging sources: %s"
+msgstr ""
+
+#. TRANSLATORS: we disabled all the debugging repos that we enabled before
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:958
+#, c-format
+msgid "Disabled %i debugging sources."
+msgstr ""
+
+#. TRANSLATORS: couldn't open device to write
+#: ../contrib/device-rebind/pk-device-rebind.c:61
+#, fuzzy
+msgid "Failed to open file"
+msgstr "Zoeken naar bestand niet gelukt"
+
+#. TRANSLATORS: could not write to the device
+#: ../contrib/device-rebind/pk-device-rebind.c:70
+#, fuzzy
+msgid "Failed to write to the file"
+msgstr "Zoeken naar bestand niet gelukt"
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:110
+#: ../contrib/device-rebind/pk-device-rebind.c:147
+#, fuzzy
+msgid "Failed to write to device"
+msgstr "Vastleggen op schijf niet gelukt"
+
+#. TRANSLATORS: the device could not be found in sysfs
+#: ../contrib/device-rebind/pk-device-rebind.c:175
+#, fuzzy
+msgid "Device could not be found"
+msgstr "Het pakket kon niet worden gevonden"
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:202
+#, fuzzy
+msgid "Failed to unregister driver"
+msgstr "Aanmaken map mislukt:"
+
+#. TRANSLATORS: we failed to bind the old driver
+#: ../contrib/device-rebind/pk-device-rebind.c:211
+#, fuzzy
+msgid "Failed to register driver"
+msgstr "Aanmaken map mislukt:"
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:260
+#, fuzzy
+msgid "Device path not found"
+msgstr "Map niet gevonden"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:268
+msgid "Incorrect device path specified"
+msgstr ""
+
+#. command line argument, simulate what would be done, but don't actually do it
+#: ../contrib/device-rebind/pk-device-rebind.c:296
+msgid "Don't actually touch the hardware, only simulate what would be done"
+msgstr ""
+
+#. TRANSLATORS: command line option: a list of files to install
+#: ../contrib/device-rebind/pk-device-rebind.c:299
+msgid "Device paths"
+msgstr ""
+
+#. TRANSLATORS: tool that gets called when the device needs reloading after installing firmware
+#: ../contrib/device-rebind/pk-device-rebind.c:314
+#, fuzzy
+msgid "PackageKit Device Reloader"
+msgstr "PackageKit-servicepack"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:322
+msgid "You need to specify at least one valid device path"
+msgstr ""
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:332
+msgid "This script can only be used by the root user"
+msgstr ""
+
+#. TRANSLATORS: we're going to verify the path first
+#: ../contrib/device-rebind/pk-device-rebind.c:341
+msgid "Verifying device path"
+msgstr ""
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:346
+#, fuzzy
+msgid "Failed to verify device path"
+msgstr "Zoeken naar bestand niet gelukt"
+
+#. TRANSLATORS: we're going to try
+#: ../contrib/device-rebind/pk-device-rebind.c:360
+msgid "Attempting to rebind device"
+msgstr ""
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:365
+#, fuzzy
+msgid "Failed to rebind device"
+msgstr "Aanmaken map mislukt:"
 
 #: ../data/packagekit-catalog.xml.in.h:1
 msgid "PackageKit Catalog"
@@ -924,23 +1278,32 @@ msgstr "PackageKit Pakketlijst"
 msgid "PackageKit Service Pack"
 msgstr "PackageKit-servicepack"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:1
+#. SECURITY:
+#. - Normal users do not require admin authentication to accept new
+#. licence agreements.
+#. - Change this to 'auth_admin' for environments where users should not
+#. be given the option to make legal decisions.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:7
 msgid "Accept EULA"
 msgstr "EULA accepteren"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:2
+#: ../policy/org.freedesktop.packagekit.policy.in.h:8
 msgid "Authentication is required to accept a EULA"
 msgstr "Authenticatie is vereist om een EULA te accepteren"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:3
-msgid "Authentication is required to cancel a task that was not started by yourself"
-msgstr "Athenticatie is vereist om een taak af te breken die niet door u is gestart"
+#: ../policy/org.freedesktop.packagekit.policy.in.h:9
+msgid ""
+"Authentication is required to cancel a task that was not started by yourself"
+msgstr ""
+"Athenticatie is vereist om een taak af te breken die niet door u is gestart"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:4
+#: ../policy/org.freedesktop.packagekit.policy.in.h:10
 msgid "Authentication is required to change software source parameters"
-msgstr "Athenticatie is vereist om de parameters van de softwarebronnen te wijzigen"
+msgstr ""
+"Athenticatie is vereist om de parameters van de softwarebronnen te wijzigen"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:5
+#: ../policy/org.freedesktop.packagekit.policy.in.h:11
 msgid ""
 "Authentication is required to consider a key used for signing packages as "
 "trusted"
@@ -948,27 +1311,32 @@ msgstr ""
 "Authenticatie is vereist om de sleutel te overleggen die gebruikt wordt om "
 "een pakket als vertrouwt te tekenen "
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:6
+#: ../policy/org.freedesktop.packagekit.policy.in.h:12
 msgid "Authentication is required to install a signed package"
 msgstr "Authenticatie is vereist om een getekend pakket te installeren"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:7
+#: ../policy/org.freedesktop.packagekit.policy.in.h:13
 msgid "Authentication is required to install an untrusted package"
 msgstr "Authenticatie is vereist om een untrused pakket te installeren"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:8
+#: ../policy/org.freedesktop.packagekit.policy.in.h:14
 msgid "Authentication is required to refresh the system sources"
 msgstr "Authenticatie is vereist om de systeembronnen te vernieuwen"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:9
+#: ../policy/org.freedesktop.packagekit.policy.in.h:15
+#, fuzzy
+msgid "Authentication is required to reload the device with a new driver"
+msgstr "Authenticatie is vereist om de systeembronnen te vernieuwen"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:16
 msgid "Authentication is required to remove packages"
 msgstr "Authenticatie is vereist om pakketen te verwijderen"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:10
+#: ../policy/org.freedesktop.packagekit.policy.in.h:17
 msgid "Authentication is required to rollback a transaction"
 msgstr "Authenticatie is vereist om een transactie terug te draaien"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:11
+#: ../policy/org.freedesktop.packagekit.policy.in.h:18
 msgid ""
 "Authentication is required to set the network proxy used for downloading "
 "packages"
@@ -976,47 +1344,115 @@ msgstr ""
 "Authenticatie is vereist om de netwerkproxy die gebruikt wordt om pakketten "
 "te installeren in te stellen "
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:12
+#: ../policy/org.freedesktop.packagekit.policy.in.h:19
 msgid "Authentication is required to update packages"
 msgstr "Authenticatie is vereist om pakketen bij te werken"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:13
+#. SECURITY:
+#. - Normal users are allowed to cancel their own task without
+#. authentication, but a different user id needs the admin password
+#. to cancel another users task.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:25
 msgid "Cancel foreign task"
 msgstr "Breek uitheemse taak af"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:14
+#. SECURITY:
+#. - Normal users require admin authentication to enable or disable
+#. software sources as this can be used to enable new updates or
+#. install different versions of software.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:31
 msgid "Change software source parameters"
 msgstr "Parameters van de softwarebronnen wijzigen"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:15
+#. SECURITY:
+#. - Normal users do not need authentication to install signed packages
+#. from signed repositories, as this cannot exploit a system.
+#. - Paranoid users (or parents!) can change this to 'auth_admin' or
+#. 'auth_admin_keep'.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:38
 msgid "Install signed package"
 msgstr "Getekend pakket installeren"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:16
+#. SECURITY:
+#. - Normal users require admin authentication to install untrusted or
+#. unrecognised packages, as allowing users to do this without a
+#. password would be a massive security hole.
+#. - This is not retained as each package should be authenticated.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:45
 msgid "Install untrusted local file"
 msgstr "Lokaal untrusted bestand installeren"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:17
+#. SECURITY:
+#. - Normal users do not require admin authentication to refresh the
+#. cache, as this doesn't actually install or remove software.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:50
 msgid "Refresh system sources"
 msgstr "Herlaad systeembronnen"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:18
+#. SECURITY:
+#. - Normal users require admin authentication to rebind a driver
+#. so that it works after we install firmware.
+#. - This should not be set to 'yes' as unprivileged users could then
+#. try to rebind drivers in use, for instance security authentication
+#. devices.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:58
+msgid "Reload a device"
+msgstr ""
+
+#. SECURITY:
+#. - Normal users require admin authentication to remove packages as
+#. this can make the system unbootable or stop other applications from
+#. working.
+#. - Be sure to close the tool used to remove the packages after the
+#. admin authentication has been obtained, otherwise packages can still
+#. be removed. If this is not possible, change this authentication to
+#. 'auth_admin'.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:68
 msgid "Remove package"
 msgstr "Pakket verwijderen"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:19
+#. SECURITY:
+#. - Normal users require admin authentication to rollback system state
+#. as this will change a large number of packages, and could expose the
+#. system to previously patched security vulnerabilities.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:74
 msgid "Rollback to a previous transaction"
 msgstr "Terugdraaien tot een voorgaande transactie"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:20
+#. SECURITY:
+#. - Normal users do not require admin authentication to set the proxy
+#. used for downloading packages.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:79
 msgid "Set network proxy"
 msgstr "Stel netwerkproxy in"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:21
+#. SECURITY:
+#. - Normal users require admin authentication to add signing keys.
+#. - This implies adding an explicit trust, and should not be granted
+#. without a secure authentication.
+#. - This is not kept as each package should be authenticated.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:86
 msgid "Trust a key used for signing packages"
 msgstr "Vertrouw een sleutel die gebruikt wordt voor het tekenen van pakketten"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:22
+#. SECURITY:
+#. - Normal users do not require admin authentication to update the
+#. system as the packages will be signed, and the action is required
+#. to update the system when unattended.
+#. - Changing this to anything other than 'yes' will break unattended
+#. updates.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:94
 msgid "Update packages"
 msgstr "Pakketten bijwerken"
 
@@ -1033,7 +1469,8 @@ msgstr "Dit kan twee redenen hebben:"
 #. TRANSLATORS: only allowed to be owned by root
 #: ../src/pk-main.c:91
 msgid "The correct user is not launching the executable (usually root)"
-msgstr "Het programma wordt niet door de correcte gebruiker gestart (gewoonlijk root)"
+msgstr ""
+"Het programma wordt niet door de correcte gebruiker gestart (gewoonlijk root)"
 
 #. TRANSLATORS: or we are installed in a prefix
 #: ../src/pk-main.c:93
@@ -1085,7 +1522,48 @@ msgid "Cannot connect to the system bus"
 msgstr "Er kan geen verbinding worden gelegd met de systeembus"
 
 #. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error follows
-#: ../src/pk-main.c:331
+#: ../src/pk-main.c:334
 msgid "Error trying to start:"
 msgstr "Fout bij het proberen te starten:"
 
+#: ../src/pk-polkit-action-lookup.c:147
+#, fuzzy
+msgid "To install debugging packages, extra sources need to be enabled"
+msgstr "Er hoeven geen nieuwe pakketten te worden toegevoegd"
+
+#. TRANSLATORS: is not GPG signed
+#: ../src/pk-polkit-action-lookup.c:168 ../src/pk-polkit-action-lookup.c:187
+msgid "The software is not from a trusted source."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:173
+msgid "Do not update this package unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:174
+msgid "Do not update these packages unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:192
+msgid "Do not install this package unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:193
+msgid "Do not install these packages unless you are sure it is safe to do so."
+msgstr ""
+
+#. TRANSLATORS: warn the user that all bets are off
+#: ../src/pk-polkit-action-lookup.c:199
+msgid "Malicious software can damage your computer or cause other harm."
+msgstr ""
+
+#. TRANSLATORS: too many packages to list each one
+#: ../src/pk-polkit-action-lookup.c:274
+#, fuzzy
+msgid "Many packages"
+msgstr "Pakketten bijwerken"
+
+#. TRANSLATORS: if the transaction is forced to install only trusted packages
+#: ../src/pk-polkit-action-lookup.c:334
+msgid "Only trusted"
+msgstr ""
diff --git a/po/or.po b/po/or.po
index 797d3b1..35357a4 100644
--- a/po/or.po
+++ b/po/or.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: packagekit.master.or\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-05-27 08:26+0000\n"
+"POT-Creation-Date: 2009-08-24 11:06+0100\n"
 "PO-Revision-Date: 2009-05-27 17:23+0530\n"
 "Last-Translator: Manoj Kumar Giri <mgiri at redhat.com>\n"
 "Language-Team: Oriya <oriya-it at googlegroups.com>\n"
@@ -15,235 +15,270 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "X-Generator: KBabel 1.11.4\n"
-"Plural-Forms:  nplurals=2; plural=(n!=1);\n\n"
+"Plural-Forms:  nplurals=2; plural=(n!=1);\n"
+"\n"
 "\n"
 "\n"
 
 #. TRANSLATORS: this is an atomic transaction
-#: ../client/pk-console.c:234
+#: ../client/pk-console.c:235
 msgid "Transaction"
 msgstr "କାରବାର"
 
 #. TRANSLATORS: this is the time the transaction was started in system timezone
-#: ../client/pk-console.c:236
+#: ../client/pk-console.c:237
 msgid "System time"
 msgstr "ତନ୍ତ୍ର ସମୟ"
 
 #. TRANSLATORS: this is if the transaction succeeded or not
-#: ../client/pk-console.c:238
+#: ../client/pk-console.c:239
 msgid "Succeeded"
 msgstr "ସଫଳ ହୋଇଛି"
 
 #. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:238 ../client/pk-console.c:405
+#: ../client/pk-console.c:239 ../client/pk-console.c:406
 msgid "True"
 msgstr "True (ସତ୍ୟ)"
 
-#: ../client/pk-console.c:238 ../client/pk-console.c:405
+#: ../client/pk-console.c:239 ../client/pk-console.c:406
 msgid "False"
 msgstr "False (ମିଥ୍ୟା)"
 
 #. TRANSLATORS: this is the transactions role, e.g. "update-system"
-#: ../client/pk-console.c:240
+#. TRANSLATORS: the trasaction role, e.g. update-system
+#: ../client/pk-console.c:241 ../src/pk-polkit-action-lookup.c:327
 msgid "Role"
 msgstr "ଭୂମିକା"
 
 #. TRANSLATORS: this is The duration of the transaction
-#: ../client/pk-console.c:245
+#: ../client/pk-console.c:246
 msgid "Duration"
 msgstr "ଅବଧି"
 
-#: ../client/pk-console.c:245
+#: ../client/pk-console.c:246
 msgid "(seconds)"
 msgstr "(ସେକଣ୍ଡ)"
 
 #. TRANSLATORS: this is The command line used to do the action
-#: ../client/pk-console.c:249
+#. TRANSLATORS: the command line of the thing that wants the authentication
+#: ../client/pk-console.c:250 ../src/pk-polkit-action-lookup.c:341
 msgid "Command line"
 msgstr "ପାଠ୍ୟ ନିର୍ଦ୍ଦେଶ"
 
 #. TRANSLATORS: this is the user ID of the user that started the action
-#: ../client/pk-console.c:251
+#: ../client/pk-console.c:252
 msgid "User ID"
 msgstr "ଚାଳକ ID"
 
 #. TRANSLATORS: this is the username, e.g. hughsie
-#: ../client/pk-console.c:258
+#: ../client/pk-console.c:259
 msgid "Username"
 msgstr "ଚାଳକ ନାମ"
 
 #. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
-#: ../client/pk-console.c:262
+#: ../client/pk-console.c:263
 msgid "Real name"
 msgstr "ପ୍ରକୃତ ନାମ"
 
-#: ../client/pk-console.c:270
+#: ../client/pk-console.c:271
 msgid "Affected packages:"
 msgstr "ପ୍ରଭାବିତ ପ୍ୟାକେଜଗୁଡ଼ିକ:"
 
-#: ../client/pk-console.c:272
+#: ../client/pk-console.c:273
 msgid "Affected packages: None"
 msgstr "ପ୍ରଭାବିତ ପ୍ୟାକେଜଗୁଡ଼ିକ: କିଛିନୁହଁ"
 
 #. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:297
+#: ../client/pk-console.c:298
 msgid "Distribution"
 msgstr "ବଣ୍ଟନ"
 
 #. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:299
+#: ../client/pk-console.c:300
 msgid "Type"
 msgstr "ପ୍ରକାର"
 
 #. TRANSLATORS: this is any summary text describing the upgrade
 #. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:301 ../client/pk-console.c:324
+#: ../client/pk-console.c:302 ../client/pk-console.c:325
 msgid "Summary"
 msgstr "ସାରାଂଶ"
 
 #. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:313
+#: ../client/pk-console.c:314
 msgid "Category"
 msgstr "ବିଭାଗ"
 
 #. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:315
+#: ../client/pk-console.c:316
 msgid "ID"
 msgstr "ID"
 
 #. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:318
+#: ../client/pk-console.c:319
 msgid "Parent"
 msgstr "ମୂଖ୍ୟ"
 
 #. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:321
+#: ../client/pk-console.c:322
 msgid "Name"
 msgstr "ନାମ"
 
 #. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:327
+#: ../client/pk-console.c:328
 msgid "Icon"
 msgstr "ଚିତ୍ରସଂକେତ"
 
 #. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:342
+#: ../client/pk-console.c:343
 msgid "Details about the update:"
 msgstr "ଅଦ୍ୟତନ ବିଷୟରେ ବିସ୍ତୃତ ବିବରଣୀ:"
 
 #. TRANSLATORS: details about the update, package name and version
-#: ../client/pk-console.c:344
+#. TRANSLATORS: title, the names of the packages that the method is processing
+#: ../client/pk-console.c:345 ../src/pk-polkit-action-lookup.c:352
+#, fuzzy
 msgid "Package"
-msgstr "ପ୍ୟାକେଜ"
+msgid_plural "Packages"
+msgstr[0] "ପ୍ୟାକେଜ"
+msgstr[1] "ପ୍ୟାକେଜ"
 
 #. TRANSLATORS: details about the update, any packages that this update updates
-#: ../client/pk-console.c:347
+#: ../client/pk-console.c:348
 msgid "Updates"
 msgstr "ଅଦ୍ୟତନଗୁଡ଼ିକ"
 
 #. TRANSLATORS: details about the update, any packages that this update obsoletes
-#: ../client/pk-console.c:351
+#: ../client/pk-console.c:352
 msgid "Obsoletes"
 msgstr "ଅଚଳଗୁଡ଼ିକ"
 
 #. TRANSLATORS: details about the update, the vendor URLs
-#: ../client/pk-console.c:355
+#: ../client/pk-console.c:356
 msgid "Vendor"
 msgstr "ବିକ୍ରେତା"
 
 #. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:359
+#: ../client/pk-console.c:360
 msgid "Bugzilla"
 msgstr "Bugzilla"
 
 #. TRANSLATORS: details about the update, the CVE URLs
-#: ../client/pk-console.c:363
+#: ../client/pk-console.c:364
 msgid "CVE"
 msgstr "CVE"
 
 #. TRANSLATORS: details about the update, if the package requires a restart
-#: ../client/pk-console.c:367
+#: ../client/pk-console.c:368
 msgid "Restart"
 msgstr "ପୁନଃଚାଳନ"
 
 #. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:371
+#: ../client/pk-console.c:372
 msgid "Update text"
 msgstr "ପାଠ୍ୟ ଅଦ୍ୟତନ କରନ୍ତୁ"
 
 #. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:375
+#: ../client/pk-console.c:376
 msgid "Changes"
 msgstr "ପରିବର୍ତ୍ତନଗୁଡ଼ିକ"
 
 #. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:379
+#: ../client/pk-console.c:380
 msgid "State"
 msgstr "ଅବସ୍ଥା"
 
 #. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:384
+#: ../client/pk-console.c:385
 msgid "Issued"
 msgstr "ପ୍ରଦତ୍ତ"
 
 #. TRANSLATORS: details about the update, date the update was updated
-#: ../client/pk-console.c:389
+#: ../client/pk-console.c:390
 msgid "Updated"
 msgstr "ଅଦ୍ୟତିତ"
 
-#: ../client/pk-console.c:476 ../client/pk-console.c:478
+#: ../client/pk-console.c:477 ../client/pk-console.c:479
 msgid "Percentage"
 msgstr "ଶତକଡ଼ା"
 
-#: ../client/pk-console.c:478
+#: ../client/pk-console.c:479
 msgid "Unknown"
 msgstr "ଅଜଣା"
 
 #. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:529
+#: ../client/pk-console.c:521
 msgid "System restart required by:"
 msgstr "ପାଇଁ ତନ୍ତ୍ର ପୁନଃଚାଳନ ଆବଶ୍ୟକ:"
 
 #. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:532
+#: ../client/pk-console.c:524
 msgid "Session restart required:"
 msgstr "ଅଧିବେଶନ ପୁନଃଚାଳନ ଆବଶ୍ୟକ:"
 
+#. TRANSLATORS: a package requires the system to be restarted due to a security update
+#: ../client/pk-console.c:527
+#, fuzzy
+msgid "System restart (security) required by:"
+msgstr "ପାଇଁ ତନ୍ତ୍ର ପୁନଃଚାଳନ ଆବଶ୍ୟକ:"
+
+#. TRANSLATORS: a package requires the session to be restarted due to a security update
+#: ../client/pk-console.c:530
+#, fuzzy
+msgid "Session restart (security) required:"
+msgstr "ଅଧିବେଶନ ପୁନଃଚାଳନ ଆବଶ୍ୟକ:"
+
 #. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:535
+#: ../client/pk-console.c:533
 msgid "Application restart required by:"
 msgstr "ପାଇଁ ପ୍ରୟୋଗ ପୁନଃଚାଳନ ଆବଶ୍ୟକ:"
 
-#. TRANSLATORS: a package needs to restart they system
-#: ../client/pk-console.c:572
+#. TRANSLATORS: a package needs to restart their system
+#: ../client/pk-console.c:588
 msgid "Please restart the computer to complete the update."
 msgstr "ଅଦ୍ୟତନକୁ ସମ୍ପୂର୍ଣ୍ଣ କରିବା ପାଇଁ କମ୍ପୁଟରକୁ ପୁନଃଚାଳନ କରନ୍ତୁ।"
 
 #. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:575
+#: ../client/pk-console.c:591
 msgid "Please logout and login to complete the update."
 msgstr "ଅଦ୍ୟତନକୁ ସମ୍ପୂର୍ଣ୍ଣ କରିବା ପାଇଁ ଦୟାକରି ଲଗଆଉଟ କରିସାରି ପୁଣି ଲଗଇନ କରନ୍ତୁ।"
 
 #. TRANSLATORS: a package needs to restart the application
-#: ../client/pk-console.c:578
+#: ../client/pk-console.c:594
 msgid "Please restart the application as it is being used."
 msgstr "ପ୍ରୟୋଗଟି ବ୍ୟବହୃତ ହେଉଥିବା ପରି ଦୟାକରି ପୁନଃଚାଳନ କରନ୍ତୁ।"
 
+#. TRANSLATORS: a package needs to restart their system (due to security)
+#: ../client/pk-console.c:597
+#, fuzzy
+msgid ""
+"Please restart the computer to complete the update as important security "
+"updates have been installed."
+msgstr "ଅଦ୍ୟତନକୁ ସମ୍ପୂର୍ଣ୍ଣ କରିବା ପାଇଁ କମ୍ପୁଟରକୁ ପୁନଃଚାଳନ କରନ୍ତୁ।"
+
+#. TRANSLATORS: a package needs to restart the session (due to security)
+#: ../client/pk-console.c:600
+#, fuzzy
+msgid ""
+"Please logout and login to complete the update as important security updates "
+"have been installed."
+msgstr "ଅଦ୍ୟତନକୁ ସମ୍ପୂର୍ଣ୍ଣ କରିବା ପାଇଁ ଦୟାକରି ଲଗଆଉଟ କରିସାରି ପୁଣି ଲଗଇନ କରନ୍ତୁ।"
+
 #. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:691
+#: ../client/pk-console.c:727
 #, c-format
 msgid "The package %s is already installed"
 msgstr "ପ୍ୟାକେଜ %s ପୂର୍ବରୁ ସ୍ଥାପିତ ହୋଇଛି"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:699
+#: ../client/pk-console.c:735
 #, c-format
 msgid "The package %s could not be installed: %s"
 msgstr "ପ୍ୟାକେଜ %s କୁ ସ୍ଥାପନ କରିହେଲା ନାହିଁ: %s"
 
 #. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
-#: ../client/pk-console.c:724 ../client/pk-console.c:751
-#: ../client/pk-console.c:847 ../client/pk-console.c:964
+#: ../client/pk-console.c:760 ../client/pk-console.c:783
+#: ../client/pk-console.c:879 ../client/pk-console.c:996
 #: ../client/pk-tools-common.c:62 ../client/pk-tools-common.c:81
 #: ../client/pk-tools-common.c:89
 #, c-format
@@ -251,399 +286,404 @@ msgid "Internal error: %s"
 msgstr "ଆଭ୍ୟନ୍ତରିଣ ତ୍ରୁଟି: %s"
 
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:732 ../client/pk-console.c:1360
+#: ../client/pk-console.c:768 ../client/pk-console.c:1392
 #, c-format
 msgid "This tool could not install the packages: %s"
 msgstr "ଏହା ମଧ୍ୟ ପ୍ୟାକେଜଗୁଡ଼ିକୁ ସ୍ଥାପନ କରିପାରିଲା ନାହିଁ: %s"
 
 #. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:759
+#: ../client/pk-console.c:791
 #, c-format
 msgid "This tool could not install the files: %s"
 msgstr "ଏହା ମଧ୍ୟ ଫାଇଲଗୁଡ଼ିକୁ ସ୍ଥାପନ କରିପାରିଲା ନାହିଁ: %s"
 
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:815
+#: ../client/pk-console.c:847
 #, c-format
 msgid "This tool could not remove %s: %s"
 msgstr "ଏହା ମଧ୍ଯ %sକୁ କାଢ଼ିପାରିଲା ନାହିଁ: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:838 ../client/pk-console.c:876
-#: ../client/pk-console.c:909
+#: ../client/pk-console.c:870 ../client/pk-console.c:908
+#: ../client/pk-console.c:941
 #, c-format
 msgid "This tool could not remove the packages: %s"
 msgstr "ଏହା ମଧ୍ଯ ପ୍ୟାକେଜଗୁଡ଼ିକୁ କାଢ଼ିପାରିଲା ନାହିଁ: %s"
 
 #. TRANSLATORS: When removing, we might have to remove other dependencies
-#: ../client/pk-console.c:888
+#: ../client/pk-console.c:920
 msgid "The following packages have to be removed:"
 msgstr "ନିମ୍ନଲିଖିତ ପ୍ୟାକେଜଗୁଡ଼ିକୁ କାଢ଼ିବାକୁ ହେବ:"
 
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:895
+#: ../client/pk-console.c:927
 msgid "Proceed removing additional packages?"
 msgstr "ଅତିରିକ୍ତ ପ୍ୟାକେଜଗୁଡ଼ିକୁ କାଢ଼ିସାରି ଅଗ୍ରସର ହେବେ କି?"
 
 #. TRANSLATORS: We did not remove any packages
-#: ../client/pk-console.c:900
+#: ../client/pk-console.c:932
 msgid "The package removal was canceled!"
 msgstr "ପ୍ୟାକେଜ କାଢ଼ିବାକୁ ବାତିଲ କରାଯାଇଥିଲା!"
 
 #. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:941
+#: ../client/pk-console.c:973
 #, c-format
 msgid "This tool could not download the package %s as it could not be found"
 msgstr "ଏହା ମଧ୍ଯ ପ୍ୟାକେଜ %sକୁ ଆହରଣ କରିପାରିଲା ନାହିଁ କାରଣ ଏହା ମିଳିଲା ନାହିଁ"
 
 #. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:972
+#: ../client/pk-console.c:1004
 #, c-format
 msgid "This tool could not download the packages: %s"
 msgstr "ଏହା ମଧ୍ଯ ପ୍ୟାକେଜଗୁଡ଼ିକୁ ଆହରଣ କରିପାରିଲା ନାହିଁ: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:999 ../client/pk-console.c:1008
+#: ../client/pk-console.c:1031 ../client/pk-console.c:1040
 #, c-format
 msgid "This tool could not update %s: %s"
 msgstr "ଏହା ମଧ୍ଯ %sକୁ ଅଦ୍ୟତନ କରିପାରିଲା ନାହିଁ: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1030 ../client/pk-console.c:1038
+#: ../client/pk-console.c:1062 ../client/pk-console.c:1070
 #, c-format
 msgid "This tool could not get the requirements for %s: %s"
 msgstr "ଏହା ମଧ୍ଯ %s ପାଇଁ ଆବଶ୍ୟକତାଗୁଡ଼ିକୁ ପାଇଲା ନାହିଁ: %s"
 
 #. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:1060 ../client/pk-console.c:1068
+#: ../client/pk-console.c:1092 ../client/pk-console.c:1100
 #, c-format
 msgid "This tool could not get the dependencies for %s: %s"
 msgstr "ଏହା ମଧ୍ଯ %s ପାଇଁ ନିର୍ଭରତାଗୁଡ଼ିକୁ ପାଇଲା ନାହିଁ: %s"
 
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:1090 ../client/pk-console.c:1098
+#: ../client/pk-console.c:1122 ../client/pk-console.c:1130
 #, c-format
 msgid "This tool could not get package details for %s: %s"
 msgstr "ଏହା ମଧ୍ଯ %s ପାଇଁ ପ୍ୟାକେଜ ବିବରଣୀ ପାଇଲା ନାହିଁ: %s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1120
+#: ../client/pk-console.c:1152
 #, c-format
 msgid "This tool could not find the files for %s: %s"
 msgstr "ଏହା ମଧ୍ଯ %s ପାଇଁ ଫାଇଲଗୁଡ଼ିକୁ ପାଇଲା ନାହିଁ: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1128
+#: ../client/pk-console.c:1160
 #, c-format
 msgid "This tool could not get the file list for %s: %s"
 msgstr "ଏହା ମଧ୍ଯ %s ପାଇଁ ଫାଇଲ ତାଲିକା ପାଇଲା ନାହିଁ: %s"
 
 #. TRANSLATORS: There was an error getting the list of packages. The filename follows
-#: ../client/pk-console.c:1150
+#: ../client/pk-console.c:1182
 #, c-format
 msgid "File already exists: %s"
 msgstr "ଫାଇଲ ପୂର୍ବରୁ ଅବସ୍ଥିତ: %s"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1155 ../client/pk-console.c:1211
-#: ../client/pk-console.c:1286
+#: ../client/pk-console.c:1187 ../client/pk-console.c:1243
+#: ../client/pk-console.c:1318
 msgid "Getting package list"
 msgstr "ପ୍ୟାକେଜ ତାଲିକା ଗ୍ରହଣ କରୁଅଛି"
 
 #. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1161 ../client/pk-console.c:1217
-#: ../client/pk-console.c:1292
+#: ../client/pk-console.c:1193 ../client/pk-console.c:1249
+#: ../client/pk-console.c:1324
 #, c-format
 msgid "This tool could not get package list: %s"
 msgstr "ଏହା ମଧ୍ଯ ପ୍ୟାକେଜ ତାଲିକା ପାଇଲା ନାହିଁ: %s"
 
 #. TRANSLATORS: There was an error saving the list
-#: ../client/pk-console.c:1172
+#: ../client/pk-console.c:1204
 #, c-format
 msgid "Failed to save to disk"
 msgstr "ଡିସ୍କରେ ସଂରକ୍ଷଣ କରିବାରେ ବିଫଳ"
 
 #. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1206 ../client/pk-console.c:1281
+#: ../client/pk-console.c:1238 ../client/pk-console.c:1313
 #, c-format
 msgid "File does not exist: %s"
 msgstr "ଫାଇଲ ଅବସ୍ଥିତ ନାହିଁ: %s"
 
 #. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1238
+#: ../client/pk-console.c:1270
 msgid "Packages to add"
 msgstr "ଯୋଗ କରିବା ପାଇଁ ପ୍ୟାକେଜଗୁଡ଼ିକ"
 
 #. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1246
+#: ../client/pk-console.c:1278
 msgid "Packages to remove"
 msgstr "କାଢ଼ାଯିବା ପାଇଁ ପ୍ୟାକେଜଗୁଡ଼ିକ"
 
 #. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1314
+#: ../client/pk-console.c:1346
 #, c-format
 msgid "No new packages need to be installed"
 msgstr "କୌଣସି ନୂତନ ପ୍ୟାକେଜ ସ୍ଥାପନ କରିବା ଆବଶ୍ୟକ ନାହିଁ"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1320
+#: ../client/pk-console.c:1352
 msgid "To install"
 msgstr "ସ୍ଥାପନ କରିବାକୁ"
 
 #. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1332
+#: ../client/pk-console.c:1364
 msgid "Searching for package: "
 msgstr "ପ୍ୟାକେଜ ପାଇଁ ସନ୍ଧାନ କରୁଅଛି: "
 
 #. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1336
+#: ../client/pk-console.c:1368
 msgid "not found."
 msgstr "ମିଳିଲା ନାହିଁ।"
 
 #. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1347
+#: ../client/pk-console.c:1379
 #, c-format
 msgid "No packages can be found to install"
 msgstr "ସ୍ଥାପନ କରିବା ପାଇଁ କୌଣସି ପ୍ୟାକେଜ ମିଳିଲା ନାହିଁ"
 
 #. TRANSLATORS: installing new packages from package list
-#: ../client/pk-console.c:1353
+#. TRANSLATORS: we are now installing the debuginfo packages we found earlier
+#: ../client/pk-console.c:1385
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:886
+#, c-format
 msgid "Installing packages"
 msgstr "ପ୍ୟାକେଜଗୁଡ଼ିକୁ ସ୍ଥାପନ କରୁଅଛି"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1389
+#: ../client/pk-console.c:1421
 #, c-format
 msgid "This tool could not find the update details for %s: %s"
 msgstr "ଏହି ଉପକରଣଟି %s ପାଇଁ ଅଦ୍ୟତନ ବିବରଣୀ ଖୋଜି ପାଉନାହିଁ: %s"
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1397
+#: ../client/pk-console.c:1429
 #, c-format
 msgid "This tool could not get the update details for %s: %s"
 msgstr "ଏହି ଉପକରଣଟି %s ପାଇଁ ଅଦ୍ୟତନ ବିବରଣୀ ପାଇଲା ନାହିଁ: %s"
 
 #. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
-#: ../client/pk-console.c:1443
+#: ../client/pk-console.c:1460
 msgid "Error:"
 msgstr "ତ୍ରୁଟି:"
 
 #. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1457
+#: ../client/pk-console.c:1474
 msgid "Package description"
 msgstr "ପ୍ୟାକେଜ ବର୍ଣ୍ଣନା"
 
 #. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
-#: ../client/pk-console.c:1473
+#: ../client/pk-console.c:1490
 msgid "Message:"
 msgstr "ସନ୍ଦେଶ:"
 
 #. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1501
+#: ../client/pk-console.c:1518
 msgid "Package files"
 msgstr "ପ୍ୟାକେଜ ଫାଇଲଗୁଡ଼ିକ"
 
 #. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1509
+#: ../client/pk-console.c:1526
 msgid "No files"
 msgstr "କୌଣସି ଫାଇଲ ନାହିଁ"
 
 #. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1532
+#: ../client/pk-console.c:1549
 msgid "Repository signature required"
 msgstr "ସଂଗ୍ରହାଳୟ ହସ୍ତାକ୍ଷର ଆବଶ୍ୟକ"
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1542
+#: ../client/pk-console.c:1559
 msgid "Do you accept this signature?"
 msgstr "ଆପଣ ଏହି ହସ୍ତାକ୍ଷରକୁ ଗ୍ରହଣ କରିବେ କି?"
 
 #. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1546
+#: ../client/pk-console.c:1563
 msgid "The signature was not accepted."
 msgstr "ଏହି ହସ୍ତାକ୍ଷରକୁ ଗ୍ରହଣ କରାଯାଇନାହିଁ।"
 
 #. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1580
+#: ../client/pk-console.c:1597
 msgid "End user license agreement required"
 msgstr "ଚାଳକ ଅନୁମତି ପତ୍ର ଆବଶ୍ୟକ"
 
 #. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1587
+#: ../client/pk-console.c:1604
 msgid "Do you agree to this license?"
 msgstr "ଆପଣ ଏହି ଅନୁମତି ପତ୍ର ସହିତ ସହମତ କି?"
 
 #. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1591
+#: ../client/pk-console.c:1608
 msgid "The license was refused."
 msgstr "ଅନୁମତି ପତ୍ରକୁ ବାରଣ କରାଯାଇଛି।"
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1620
+#: ../client/pk-console.c:1637
 msgid "The daemon crashed mid-transaction!"
 msgstr "ଡେମନ ମଧ୍ଯ-କାରବାରକୁ ନଷ୍ଟ କରିଛି!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1673
+#: ../client/pk-console.c:1690
 msgid "PackageKit Console Interface"
 msgstr "PackageKit କୋନସୋଲ ଅନ୍ତରାପୃଷ୍ଠ"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1675
+#: ../client/pk-console.c:1692
 msgid "Subcommands:"
 msgstr "ଉପ ନିର୍ଦ୍ଦେଶଗୁଡ଼ିକ:"
 
 #. TRANSLATORS: command line argument, if we should show debugging information
 #. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:1767 ../client/pk-generate-pack.c:185
-#: ../client/pk-monitor.c:125
-#: ../contrib/command-not-found/pk-command-not-found.c:520
-#: ../src/pk-main.c:211
+#: ../client/pk-console.c:1785 ../client/pk-generate-pack.c:185
+#: ../client/pk-monitor.c:128
+#: ../contrib/command-not-found/pk-command-not-found.c:616
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:550
+#: ../contrib/device-rebind/pk-device-rebind.c:293 ../src/pk-main.c:211
 msgid "Show extra debugging information"
 msgstr "ଅତିରିକ୍ତ ତ୍ରୁଟି ନିବାରଣ ସୂଚନା ଦର୍ଶାନ୍ତୁ"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1770 ../client/pk-monitor.c:127
+#: ../client/pk-console.c:1788 ../client/pk-monitor.c:130
 msgid "Show the program version and exit"
 msgstr "ପ୍ରଗ୍ରାମ ସଂସ୍କରଣ ଦର୍ଶାନ୍ତୁ ଏବଂ ପ୍ରସ୍ଥାନ କରନ୍ତୁ"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1773
+#: ../client/pk-console.c:1791
 msgid "Set the filter, e.g. installed"
 msgstr "ଛାଣକ ସେଟ କରନ୍ତୁ, ଯେପରିକି ସ୍ଥାପିତ"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1776
+#: ../client/pk-console.c:1794
 msgid "Exit without waiting for actions to complete"
 msgstr "କାର୍ଯ୍ୟ ସମ୍ପୂର୍ଣ୍ଣ ହେବା ପର୍ଯ୍ୟନ୍ତ ଅପେକ୍ଷା ନକରି ପ୍ରସ୍ଥାନ କରନ୍ତୁ"
 
 #. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:1803
+#: ../client/pk-console.c:1821
 msgid "This tool could not connect to system DBUS."
 msgstr "ଏହି ଉପକରଣ ତନ୍ତ୍ର DBUS ସହିତ ସଂଯୁକ୍ତ ହୋଇପାରିଲା ନାହିଁ।"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1894
+#: ../client/pk-console.c:1911
 msgid "The filter specified was invalid"
 msgstr "ଉଲ୍ଲିଖିତ ଛାଣକଟି ଅବୈଧ ଅଟେ"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1912
+#: ../client/pk-console.c:1930
 msgid "A search type is required, e.g. name"
 msgstr "ଗୋଟିଏ ସନ୍ଧାନ ପ୍ରକାର ଆବଶ୍ୟକ, ଯେପରିକି ନାମ"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1918 ../client/pk-console.c:1926
-#: ../client/pk-console.c:1934 ../client/pk-console.c:1942
+#: ../client/pk-console.c:1937 ../client/pk-console.c:1946
+#: ../client/pk-console.c:1955 ../client/pk-console.c:1964
 msgid "A search term is required"
 msgstr "ଗୋଟିଏ ସନ୍ଧାନ ନିତି ଆବଶ୍ୟକ"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1948
+#: ../client/pk-console.c:1971
 msgid "Invalid search type"
 msgstr "ଅବୈଧ ସନ୍ଧାନ ପ୍ରକାର"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1954
+#: ../client/pk-console.c:1977
 msgid "A package name or filename to install is required"
 msgstr "ସ୍ଥାପନ କରିବା ପାଇଁ ଗୋଟିଏ ପ୍ୟାକେଜ ନାମ କିମ୍ବା ଫାଇଲନାମ ଆବଶ୍ୟକ"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1962
+#: ../client/pk-console.c:1986
 msgid "A type, key_id and package_id are required"
 msgstr "ଗୋଟିଏ ପ୍ରକାର, key_id ଏବଂ package_id ଆବଶ୍ୟକ"
 
 #. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:1970
+#: ../client/pk-console.c:1995
 msgid "A package name to remove is required"
 msgstr "କାଢ଼ିବା ପାଇଁ ଗୋଟିଏ ପ୍ୟାକେଜ ନାମ ଆବଶ୍ୟକ"
 
 #. TRANSLATORS: the user did not specify anything about what to download or where
-#: ../client/pk-console.c:1977
-msgid "A destination directory and then the package names to download are required"
+#: ../client/pk-console.c:2003
+#, fuzzy
+msgid "A destination directory and the package names to download are required"
 msgstr "ଆହରଣ କରିବା ପାଇଁ ଗୋଟିଏ ଲକ୍ଷ୍ଯସ୍ଥଳ ଡିରେକ୍ଟୋରୀ ଏବଂ ତାପରେ ପ୍ୟାକେଜ ନାମ ଆବଶ୍ୟକ"
 
 #. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:1983
+#: ../client/pk-console.c:2010
 msgid "Directory not found"
 msgstr "ଡିରେକ୍ଟୋରୀ ମିଳୁନାହିଁ"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1990
+#: ../client/pk-console.c:2018
 msgid "A licence identifier (eula-id) is required"
 msgstr "ଗୋଟିଏ ଅନୁମତିପତ୍ର ପରିଚାୟକ (eula-id) ଆବଶ୍ୟକ"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1999
+#: ../client/pk-console.c:2028
 msgid "A transaction identifier (tid) is required"
 msgstr "ଗୋଟିଏ କାରବାର ପରିଚାୟକ (tid) ଆବଶ୍ୟକ"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:2015
+#: ../client/pk-console.c:2045
 msgid "A package name to resolve is required"
 msgstr "ସମାଧାନ କରିବା ପାଇଁ ଗୋଟିଏ ପ୍ୟାକେଜ ନାମ ଆବଶ୍ୟକ"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:2023 ../client/pk-console.c:2031
+#: ../client/pk-console.c:2054 ../client/pk-console.c:2063
 msgid "A repository name is required"
 msgstr "ଗୋଟିଏ ସଂଗ୍ରହାଳୟ ନାମ ଆବଶ୍ୟକ"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2039
+#: ../client/pk-console.c:2072
 msgid "A repo name, parameter and value are required"
 msgstr "ଗୋଟିଏ ସଂଗ୍ରହାଳୟ, ପ୍ରାଚଳ ଏବଂ ମୂଲ୍ୟ ଆବଶ୍ୟକ"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:2052
+#: ../client/pk-console.c:2086
 msgid "An action, e.g. 'update-system' is required"
 msgstr "ଗୋଟିଏ କାର୍ଯ୍ୟ, ଉଦାହରଣ ସ୍ୱରୂପ 'update-system' ଆବଶ୍ୟକ"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:2058
+#: ../client/pk-console.c:2093
 msgid "A correct role is required"
 msgstr "ଗୋଟିଏ ସଠିକ ଭୂମିକା ଆବଶ୍ୟକ"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2064
+#: ../client/pk-console.c:2100
 msgid "Failed to get the time since this action was last completed"
 msgstr "ଏହି କାର୍ଯ୍ୟଟି ଶେଷରେ ସମ୍ପୂର୍ଣ୍ଣ ହୋଇଥିବା ହେତୁ ସମୟ ପାଇବାରେ ବିଫଳ"
 
 #. TRANSLATORS: The user did not provide a package name
 #. TRANSLATORS: This is when the user fails to supply the package name
-#: ../client/pk-console.c:2073 ../client/pk-console.c:2084
-#: ../client/pk-console.c:2092 ../client/pk-console.c:2108
-#: ../client/pk-console.c:2116 ../client/pk-generate-pack.c:241
+#: ../client/pk-console.c:2110 ../client/pk-console.c:2122
+#: ../client/pk-console.c:2131 ../client/pk-console.c:2149
+#: ../client/pk-console.c:2158 ../client/pk-generate-pack.c:241
 msgid "A package name is required"
 msgstr "ଗୋଟିଏ ପ୍ୟାକେଜ ନାମ ଆବଶ୍ୟକ"
 
 #. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:2100
+#: ../client/pk-console.c:2140
 msgid "A package provide string is required"
 msgstr "ଗୋଟିଏ ପ୍ୟାକେଜ ପ୍ରଦତ୍ତ ବାକ୍ୟଖଣ୍ଡ ଆବଶ୍ୟକ"
 
 #. TRANSLATORS: The user didn't specify a filename to create as a list
-#: ../client/pk-console.c:2124
+#: ../client/pk-console.c:2167
 msgid "A list file name to create is required"
 msgstr "ନିର୍ମାଣ କରିବା ପାଇଁ ଗୋଟିଏ ତାଲିକା ଫାଇଲ ନାମ ଆବଶ୍ୟକ"
 
 #. TRANSLATORS: The user didn't specify a filename to open as a list
-#: ../client/pk-console.c:2133 ../client/pk-console.c:2142
+#: ../client/pk-console.c:2177 ../client/pk-console.c:2187
 msgid "A list file to open is required"
 msgstr "ଖୋଲିବା ପାଇଁ ଗୋଟିଏ ତାଲିକା ଫାଇଲ ଆବଶ୍ୟକ"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2195
+#: ../client/pk-console.c:2241
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "ବିକଳ୍ପ '%s' ଟି ସମର୍ଥିତ ନୁହଁ"
 
 #. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2208
+#: ../client/pk-console.c:2254
 msgid "Incorrect privileges for this operation"
 msgstr "ଏହି ପ୍ରୟୋଗ ପାଇଁ ଭୁଲ ଅଧିକାର"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2211
+#: ../client/pk-console.c:2257
 msgid "Command failed"
 msgstr "ନିର୍ଦ୍ଦେଶ ବିଫଳ ହୋଇଛି"
 
@@ -669,7 +709,8 @@ msgstr "ବାହାର କରିବା ପାଇଁ ନିର୍ଭରତାଗ
 
 #. TRANSLATORS: the output location
 #: ../client/pk-generate-pack.c:191
-msgid "The output file or directory (the current directory is used if ommitted)"
+msgid ""
+"The output file or directory (the current directory is used if ommitted)"
 msgstr "ନିର୍ଗମ ଫାଇଲ କିମ୍ବା ଡିରେକ୍ଟୋରୀ (ଛାଡ଼ି ଯାଇଥିଲେ ପ୍ରଚଳିତ ଡିରେକ୍ଟୋରୀକୁ ବ୍ୟବହାର କରାଯାଇଛି)"
 
 #. TRANSLATORS: put a list of packages in the pack
@@ -709,8 +750,8 @@ msgid ""
 "Service packs cannot be created as PackageKit was not built with libarchive "
 "support."
 msgstr ""
-"ସର୍ଭିସ ପ୍ୟାକଗୁଡ଼ିକୁ ନିର୍ମାଣ କରିପାରିବେ ନାହିଁ ଯେହେତୁ PackageKit କୁ libarchieve ସମର୍ଥନ "
-"ସହିତ ନିର୍ମିତ ହୋଇନାହିଁ।"
+"ସର୍ଭିସ ପ୍ୟାକଗୁଡ଼ିକୁ ନିର୍ମାଣ କରିପାରିବେ ନାହିଁ ଯେହେତୁ PackageKit କୁ libarchieve ସମର୍ଥନ ସହିତ ନିର୍ମିତ "
+"ହୋଇନାହିଁ।"
 
 #. TRANSLATORS: the user specified an absolute path, but didn't get the extension correct
 #: ../client/pk-generate-pack.c:291
@@ -766,10 +807,14 @@ msgid "Failed to create '%s': %s"
 msgstr "'%s'କୁ ନିର୍ମାଣ କରିବାରେ ବିଫଳ: %s"
 
 #. TRANSLATORS: this is a program that monitors PackageKit
-#: ../client/pk-monitor.c:143
+#: ../client/pk-monitor.c:146
 msgid "PackageKit Monitor"
 msgstr "PackageKit ପ୍ରଦର୍ଶିକା"
 
+#: ../client/pk-monitor.c:183
+msgid "Cannot show the list of transactions"
+msgstr ""
+
 #. TRANSLATORS: The package was not found in any software sources
 #: ../client/pk-tools-common.c:118
 #, c-format
@@ -791,128 +836,433 @@ msgstr "ଦୟାକରି ସଠିକ ପ୍ୟାକେଜ ବାଛନ୍ତ
 msgid "Please enter a number from 1 to %i: "
 msgstr "ଦୟାକରି 1 ରୁ %i ଭିତରେ ଥିବା ଗୋଟିଏ ସଂଖ୍ୟାକୁ ଭରଣ କରନ୍ତୁ: "
 
+#. TRANSLATORS: when we are getting data from the daemon
+#: ../contrib/browser-plugin/pk-plugin-install.c:466
+msgid "Getting package information..."
+msgstr "ପ୍ୟାକେଜ ସୂଚନା ଗ୍ରହଣ କରୁଅଛି..."
+
+#. TRANSLATORS: run an applicaiton
+#: ../contrib/browser-plugin/pk-plugin-install.c:472
+#, c-format
+msgid "Run %s"
+msgstr "%s କୁ ଚଲାନ୍ତୁ"
+
+#. TRANSLATORS: show the installed version of a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:478
+msgid "Installed version"
+msgstr "ସ୍ଥାପିତ ସଂସ୍କରଣ"
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:486
+#, c-format
+msgid "Run version %s now"
+msgstr "ସଂସ୍କରଣ %s କୁ ବର୍ତ୍ତମାନ ଚଲାନ୍ତୁ"
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:492
+msgid "Run now"
+msgstr "ବର୍ତ୍ତମାନ ଚଲାନ୍ତୁ"
+
+#. TRANSLATORS: update to a new version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:498
+#, c-format
+msgid "Update to version %s"
+msgstr "ସଂସ୍କରଣ %sକୁ ଅଦ୍ୟତନ କରନ୍ତୁ"
+
+#. TRANSLATORS: To install a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:504
+#, c-format
+msgid "Install %s now"
+msgstr "%s କୁ ବର୍ତ୍ତମାନ ସ୍ଥାପନ କରନ୍ତୁ"
+
+#. TRANSLATORS: the version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:507
+msgid "Version"
+msgstr "ସଂସ୍କରଣ"
+
+#. TRANSLATORS: noting found, so can't install
+#: ../contrib/browser-plugin/pk-plugin-install.c:512
+msgid "No packages found for your system"
+msgstr "ଆପଣଙ୍କ ତନ୍ତ୍ର ପାଇଁ କୌଣସି ପ୍ୟାକେଜ ମିଳିଲା ନାହିଁ"
+
+#. TRANSLATORS: package is being installed
+#: ../contrib/browser-plugin/pk-plugin-install.c:517
+msgid "Installing..."
+msgstr "ସ୍ଥାପନ କରୁଅଛି..."
+
+#. TRANSLATORS: downloading repo data so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:349
+msgid "Downloading details about the software sources."
+msgstr ""
+
+#. TRANSLATORS: downloading file lists so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:353
+msgid "Downloading filelists (this may take some time to complete)."
+msgstr ""
+
+#. TRANSLATORS: waiting for native lock
+#: ../contrib/command-not-found/pk-command-not-found.c:357
+#, fuzzy
+msgid "Waiting for package manager lock."
+msgstr "ପ୍ୟାକେଜ ନାମ ଖୋଜୁଅଛି।"
+
+#. TRANSLATORS: loading package cache so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:361
+#, fuzzy
+msgid "Loading list of packages."
+msgstr "ପ୍ୟାକେଜ ଆହରଣ କରୁଅଛି"
+
 #. TRANSLATORS: we failed to find the package, this shouldn't happen
-#: ../contrib/command-not-found/pk-command-not-found.c:371
+#: ../contrib/command-not-found/pk-command-not-found.c:420
 msgid "Failed to search for file"
 msgstr "ଫାଇଲ ସନ୍ଧାନ କରିବାରେ ବିଫଳ"
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:495
+#: ../contrib/command-not-found/pk-command-not-found.c:557
 msgid "Failed to launch:"
 msgstr "ଆରମ୍ଭ କରିବାରେ ବିଫଳ:"
 
 #. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/command-not-found/pk-command-not-found.c:536
+#: ../contrib/command-not-found/pk-command-not-found.c:632
 msgid "PackageKit Command Not Found"
 msgstr "PackageKit ନିର୍ଦ୍ଦେଶ ମିଳିଲା ନାହିଁ"
 
 #. TRANSLATORS: the prefix of all the output telling the user why it's not executing
-#: ../contrib/command-not-found/pk-command-not-found.c:559
+#: ../contrib/command-not-found/pk-command-not-found.c:658
 msgid "Command not found."
 msgstr "ନିର୍ଦ୍ଦେଶ ମିଳିଲା ନାହିଁ।"
 
 #. TRANSLATORS: tell the user what we think the command is
-#: ../contrib/command-not-found/pk-command-not-found.c:566
+#: ../contrib/command-not-found/pk-command-not-found.c:665
 msgid "Similar command is:"
 msgstr "ଏକାପ୍ରକାର ନିର୍ଦ୍ଦେଶ:"
 
 #. TRANSLATORS: Ask the user if we should run the similar command
-#: ../contrib/command-not-found/pk-command-not-found.c:575
+#: ../contrib/command-not-found/pk-command-not-found.c:674
 msgid "Run similar command:"
 msgstr "ଏକା ପ୍ରକାର ନିର୍ଦ୍ଦେଶ ଚଲାନ୍ତୁ:"
 
 #. TRANSLATORS: show the user a list of commands that they could have meant
 #. TRANSLATORS: show the user a list of commands we could run
-#: ../contrib/command-not-found/pk-command-not-found.c:587
-#: ../contrib/command-not-found/pk-command-not-found.c:596
+#: ../contrib/command-not-found/pk-command-not-found.c:686
+#: ../contrib/command-not-found/pk-command-not-found.c:695
 msgid "Similar commands are:"
 msgstr "ଏକା ପ୍ରକାର ନିର୍ଦ୍ଦେଶଗୁଡ଼ିକ ହେଉଛି:"
 
 #. TRANSLATORS: ask the user to choose a file to run
-#: ../contrib/command-not-found/pk-command-not-found.c:603
+#: ../contrib/command-not-found/pk-command-not-found.c:702
 msgid "Please choose a command to run"
 msgstr "ଦୟାକରି ଚଲାଇବା ପାଇଁ ଗୋଟିଏ ନିର୍ଦ୍ଦେଶ ବାଛନ୍ତୁ"
 
 #. TRANSLATORS: tell the user what package provides the command
-#: ../contrib/command-not-found/pk-command-not-found.c:618
+#: ../contrib/command-not-found/pk-command-not-found.c:721
 msgid "The package providing this file is:"
 msgstr "ଏହି ଫାଇଲ ପ୍ରଦାନ କରିଥିବା ପ୍ୟାକେଜଟି ହେଉଛି:"
 
 #. TRANSLATORS: as the user if we want to install a package to provide the command
-#: ../contrib/command-not-found/pk-command-not-found.c:623
+#: ../contrib/command-not-found/pk-command-not-found.c:726
 #, c-format
 msgid "Install package '%s' to provide command '%s'?"
 msgstr "ନିର୍ଦ୍ଦେଶ '%s'କୁ ପ୍ରଦାନ କରିବା ପାଇଁ ପ୍ୟାକେଜ '%s'କୁ ସ୍ଥାପନ କରିବେ କି?"
 
 #. TRANSLATORS: Show the user a list of packages that provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:644
+#: ../contrib/command-not-found/pk-command-not-found.c:747
 msgid "Packages providing this file are:"
 msgstr "ଏହି ଫାଇଲ ପ୍ରଦାନ କରିଥିବା ପ୍ୟାକେଜଗୁଡ଼ିକ ହେଉଛି:"
 
 #. TRANSLATORS: Show the user a list of packages that they can install to provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:653
+#: ../contrib/command-not-found/pk-command-not-found.c:756
 msgid "Suitable packages are:"
 msgstr "ଉପଯୁକ୍ତ ପ୍ୟାକେଜଗୁଡ଼ିକ ହେଉଛି:"
 
 #. get selection
 #. TRANSLATORS: ask the user to choose a file to install
-#: ../contrib/command-not-found/pk-command-not-found.c:661
+#: ../contrib/command-not-found/pk-command-not-found.c:764
 msgid "Please choose a package to install"
 msgstr "ସ୍ଥାପନ କରିବା ପାଇଁ ଦୟାକରି ଗୋଟିଏ ପ୍ୟାକେଜ ବାଛନ୍ତୁ"
 
-#. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/src/contents.cpp:298
-msgid "Getting package information..."
-msgstr "ପ୍ୟାକେଜ ସୂଚନା ଗ୍ରହଣ କରୁଅଛି..."
+#. TRANSLATORS: we are starting to install the packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:187
+#, fuzzy
+msgid "Starting install"
+msgstr "ସ୍ଥାପନ କରିବାକୁ"
 
-#. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/src/contents.cpp:304
+#. TRANSLATORS: we couldn't find the package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:397
+#, fuzzy, c-format
+msgid "Failed to find the package %s, or already installed: %s"
+msgstr "ପ୍ୟାକେଜ %s ପୂର୍ବରୁ ସ୍ଥାପିତ ହୋଇଛି"
+
+#. command line argument, simulate what would be done, but don't actually do it
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:553
+msgid ""
+"Don't actually install any packages, only simulate what would be installed"
+msgstr ""
+
+#. command line argument, do we skip packages that depend on the ones specified
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:556
+msgid "Do not install dependencies of the core packages"
+msgstr ""
+
+#. command line argument, do we operate quietly
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:559
+msgid "Do not display information or progress"
+msgstr ""
+
+#. TRANSLATORS: tool that gets called when the command is not found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:577
+#, fuzzy
+msgid "PackageKit Debuginfo Installer"
+msgstr "PackageKit କୋନସୋଲ ଅନ୍ତରାପୃଷ୍ଠ"
+
+#. TRANSLATORS: the use needs to specify a list of package names on the command line
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:589
+#, fuzzy, c-format
+msgid "ERROR: Specify package names to install."
+msgstr "କୌଣସି ନୂତନ ପ୍ୟାକେଜ ସ୍ଥାପନ କରିବା ଆବଶ୍ୟକ ନାହିଁ"
+
+#. TRANSLATORS: we are getting the list of repositories
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:623
+#, fuzzy, c-format
+msgid "Getting sources list"
+msgstr "ପ୍ୟାକେଜ ତାଲିକା ଗ୍ରହଣ କରୁଅଛି"
+
+#. TRANSLATORS: all completed 100%
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:641
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:681
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:716
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:800
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:844
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:911
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:955
 #, c-format
-msgid "Run %s"
-msgstr "%s କୁ ଚଲାନ୍ତୁ"
+msgid "OK."
+msgstr ""
 
-#. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/src/contents.cpp:310
-msgid "Installed version"
-msgstr "ସ୍ଥାପିତ ସଂସ୍କରଣ"
+#. TRANSLATORS: tell the user what we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:644
+#, c-format
+msgid "Found %i enabled and %i disabled sources."
+msgstr ""
 
-#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/src/contents.cpp:318
+#. TRANSLATORS: we're finding repositories that match out pattern
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:651
 #, c-format
-msgid "Run version %s now"
-msgstr "ସଂସ୍କରଣ %s କୁ ବର୍ତ୍ତମାନ ଚଲାନ୍ତୁ"
+msgid "Finding debugging sources"
+msgstr ""
 
-#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/src/contents.cpp:324
-msgid "Run now"
-msgstr "ବର୍ତ୍ତମାନ ଚଲାନ୍ତୁ"
+#. TRANSLATORS: tell the user what we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:684
+#, c-format
+msgid "Found %i disabled debuginfo repos."
+msgstr ""
 
-#. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/src/contents.cpp:330
+#. TRANSLATORS: we're now enabling all the debug sources we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:691
 #, c-format
-msgid "Update to version %s"
-msgstr "ସଂସ୍କରଣ %sକୁ ଅଦ୍ୟତନ କରନ୍ତୁ"
+msgid "Enabling debugging sources"
+msgstr ""
 
-#. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/src/contents.cpp:336
+#. TRANSLATORS: operation was not successful
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:701
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:785
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:829
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:896
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:940
+msgid "FAILED."
+msgstr ""
+
+#. TRANSLATORS: tell the user how many we enabled
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:719
 #, c-format
-msgid "Install %s now"
-msgstr "%s କୁ ବର୍ତ୍ତମାନ ସ୍ଥାପନ କରନ୍ତୁ"
+msgid "Enabled %i debugging sources."
+msgstr ""
 
-#. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/src/contents.cpp:339
-msgid "Version"
-msgstr "ସଂସ୍କରଣ"
+#. TRANSLATORS: we're now finding packages that match in all the repos
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:726
+#, fuzzy, c-format
+msgid "Finding debugging packages"
+msgstr "ପ୍ୟାକେଜ ନାମ ଖୋଜୁଅଛି।"
 
-#. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/src/contents.cpp:344
-msgid "No packages found for your system"
-msgstr "ଆପଣଙ୍କ ତନ୍ତ୍ର ପାଇଁ କୌଣସି ପ୍ୟାକେଜ ମିଳିଲା ନାହିଁ"
+#. TRANSLATORS: we couldn't find the package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:738
+#, fuzzy, c-format
+msgid "Failed to find the package %s: %s"
+msgstr "ପ୍ୟାକେଜ '%s'କୁ ଖୋଜିବାରେ ବିଫଳ: %s"
 
-#. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/src/contents.cpp:349
-msgid "Installing..."
-msgstr "ସ୍ଥାପନ କରୁଅଛି..."
+#. TRANSLATORS: we couldn't find the debuginfo package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:761
+#, fuzzy, c-format
+msgid "Failed to find the debuginfo package %s: %s"
+msgstr "ପ୍ୟାକେଜ '%s'କୁ ଖୋଜିବାରେ ବିଫଳ: %s"
+
+#. TRANSLATORS: no debuginfo packages could be found to be installed
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:789
+#, fuzzy, c-format
+msgid "Found no packages to install."
+msgstr "କୌଣସି ନୂତନ ପ୍ୟାକେଜ ସ୍ଥାପନ କରିବା ଆବଶ୍ୟକ ନାହିଁ"
+
+#. TRANSLATORS: tell the user we found some packages, and then list them
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:803
+#, fuzzy, c-format
+msgid "Found %i packages:"
+msgstr "ପ୍ୟାକେଜ ଆହରଣ କରୁଅଛି"
+
+#. TRANSLATORS: tell the user we are searching for deps
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:819
+#, c-format
+msgid "Finding packages that depend on these packages"
+msgstr ""
+
+#. TRANSLATORS: could not install, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:832
+#, fuzzy, c-format
+msgid "Could not find dependant packages: %s"
+msgstr "ପ୍ୟାକେଜ '%s'କୁ ଖୋଜିବାରେ ବିଫଳ: %s"
+
+#. TRANSLATORS: tell the user we found some more packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:848
+#, c-format
+msgid "Found %i extra packages."
+msgstr ""
+
+#. TRANSLATORS: tell the user we found some more packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:852
+#, fuzzy, c-format
+msgid "No extra packages required."
+msgstr "ଗୋଟିଏ ପ୍ୟାକେଜ ନାମ ଆବଶ୍ୟକ"
+
+#. TRANSLATORS: tell the user we found some packages (and deps), and then list them
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:861
+#, fuzzy, c-format
+msgid "Found %i packages to install:"
+msgstr "କୌଣସି ନୂତନ ପ୍ୟାକେଜ ସ୍ଥାପନ କରିବା ଆବଶ୍ୟକ ନାହିଁ"
+
+#. TRANSLATORS: simulate mode is a testing mode where we quit before the action
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:874
+#, fuzzy, c-format
+msgid "Not installing packages in simulate mode"
+msgstr "ପ୍ୟାକେଜଗୁଡ଼ିକୁ ସ୍ଥାପନ କରୁଅଛି"
+
+#. TRANSLATORS: could not install, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:899
+#, fuzzy, c-format
+msgid "Could not install packages: %s"
+msgstr "ଏହା ମଧ୍ୟ ପ୍ୟାକେଜଗୁଡ଼ିକୁ ସ୍ଥାପନ କରିପାରିଲା ନାହିଁ: %s"
+
+#. TRANSLATORS: we are now disabling all debuginfo repos we previously enabled
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:931
+#, c-format
+msgid "Disabling sources previously enabled"
+msgstr ""
+
+#. TRANSLATORS: no debuginfo packages could be found to be installed, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:943
+#, c-format
+msgid "Could not disable the debugging sources: %s"
+msgstr ""
+
+#. TRANSLATORS: we disabled all the debugging repos that we enabled before
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:958
+#, c-format
+msgid "Disabled %i debugging sources."
+msgstr ""
+
+#. TRANSLATORS: couldn't open device to write
+#: ../contrib/device-rebind/pk-device-rebind.c:61
+#, fuzzy
+msgid "Failed to open file"
+msgstr "ଫାଇଲ ସନ୍ଧାନ କରିବାରେ ବିଫଳ"
+
+#. TRANSLATORS: could not write to the device
+#: ../contrib/device-rebind/pk-device-rebind.c:70
+#, fuzzy
+msgid "Failed to write to the file"
+msgstr "ଫାଇଲ ସନ୍ଧାନ କରିବାରେ ବିଫଳ"
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:110
+#: ../contrib/device-rebind/pk-device-rebind.c:147
+#, fuzzy
+msgid "Failed to write to device"
+msgstr "ଡିସ୍କରେ ସଂରକ୍ଷଣ କରିବାରେ ବିଫଳ"
+
+#. TRANSLATORS: the device could not be found in sysfs
+#: ../contrib/device-rebind/pk-device-rebind.c:175
+#, fuzzy
+msgid "Device could not be found"
+msgstr "ପ୍ୟାକେଜ ମିଳିଲା ନାହିଁ"
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:202
+#, fuzzy
+msgid "Failed to unregister driver"
+msgstr "ଡିରେକ୍ଟୋରୀ ନିର୍ମାଣ କରିବାରେ ବିଫଳ:"
+
+#. TRANSLATORS: we failed to bind the old driver
+#: ../contrib/device-rebind/pk-device-rebind.c:211
+#, fuzzy
+msgid "Failed to register driver"
+msgstr "ଡିରେକ୍ଟୋରୀ ନିର୍ମାଣ କରିବାରେ ବିଫଳ:"
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:260
+#, fuzzy
+msgid "Device path not found"
+msgstr "ଡିରେକ୍ଟୋରୀ ମିଳୁନାହିଁ"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:268
+msgid "Incorrect device path specified"
+msgstr ""
+
+#. command line argument, simulate what would be done, but don't actually do it
+#: ../contrib/device-rebind/pk-device-rebind.c:296
+msgid "Don't actually touch the hardware, only simulate what would be done"
+msgstr ""
+
+#. TRANSLATORS: command line option: a list of files to install
+#: ../contrib/device-rebind/pk-device-rebind.c:299
+msgid "Device paths"
+msgstr ""
+
+#. TRANSLATORS: tool that gets called when the device needs reloading after installing firmware
+#: ../contrib/device-rebind/pk-device-rebind.c:314
+#, fuzzy
+msgid "PackageKit Device Reloader"
+msgstr "PackageKit ସର୍ଭିସ ପ୍ୟାକ"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:322
+msgid "You need to specify at least one valid device path"
+msgstr ""
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:332
+msgid "This script can only be used by the root user"
+msgstr ""
+
+#. TRANSLATORS: we're going to verify the path first
+#: ../contrib/device-rebind/pk-device-rebind.c:341
+msgid "Verifying device path"
+msgstr ""
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:346
+#, fuzzy
+msgid "Failed to verify device path"
+msgstr "ଫାଇଲ ସନ୍ଧାନ କରିବାରେ ବିଫଳ"
+
+#. TRANSLATORS: we're going to try
+#: ../contrib/device-rebind/pk-device-rebind.c:360
+msgid "Attempting to rebind device"
+msgstr ""
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:365
+#, fuzzy
+msgid "Failed to rebind device"
+msgstr "ଡିରେକ୍ଟୋରୀ ନିର୍ମାଣ କରିବାରେ ବିଫଳ:"
 
 #: ../data/packagekit-catalog.xml.in.h:1
 msgid "PackageKit Catalog"
@@ -926,95 +1276,176 @@ msgstr "PackageKit ପ୍ୟାକେଜ ତାଲିକା"
 msgid "PackageKit Service Pack"
 msgstr "PackageKit ସର୍ଭିସ ପ୍ୟାକ"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:1
+#. SECURITY:
+#. - Normal users do not require admin authentication to accept new
+#. licence agreements.
+#. - Change this to 'auth_admin' for environments where users should not
+#. be given the option to make legal decisions.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:7
 msgid "Accept EULA"
 msgstr "EULA କୁ ଗ୍ରହଣ କରନ୍ତୁ"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:2
+#: ../policy/org.freedesktop.packagekit.policy.in.h:8
 msgid "Authentication is required to accept a EULA"
 msgstr "ଗୋଟିଏ EULA ଗ୍ରହଣ କରିବା ପାଇଁ ବୈଧିକରଣ ଆବଶ୍ୟକ"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:3
-msgid "Authentication is required to cancel a task that was not started by yourself"
+#: ../policy/org.freedesktop.packagekit.policy.in.h:9
+msgid ""
+"Authentication is required to cancel a task that was not started by yourself"
 msgstr "ଆପଣଙ୍କ ନିଜ ଦ୍ୱାରା ଆରମ୍ଭ ହୋଇନଥିବା କାର୍ଯ୍ୟଟିକୁ ବାତିଲ କରିବା ପାଇଁ ବୈଧିକରଣ ଆବଶ୍ୟକ"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:4
+#: ../policy/org.freedesktop.packagekit.policy.in.h:10
 msgid "Authentication is required to change software source parameters"
 msgstr "ସଫ୍ଟୱେର ଉତ୍ସ ପ୍ରାଚଳଗୁଡ଼ିକୁ ପରିବର୍ତ୍ତନ କରିବା ପାଇଁ ବୈଧିକରଣ ଆବଶ୍ୟକ"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:5
+#: ../policy/org.freedesktop.packagekit.policy.in.h:11
 msgid ""
 "Authentication is required to consider a key used for signing packages as "
 "trusted"
-msgstr "ପ୍ୟାକେଜଗୁଡ଼ିକୁ ବିଶ୍ଵସ୍ତ ଭାବରେ ହସ୍ତାକ୍ଷର କରିବା ପାଇଁ ବ୍ୟବହୃତ କି କୁ ଗ୍ରହଣ କରିବା ପାଇଁ ବୈଧିକରଣ ଆବଶ୍ୟକ"
+msgstr ""
+"ପ୍ୟାକେଜଗୁଡ଼ିକୁ ବିଶ୍ଵସ୍ତ ଭାବରେ ହସ୍ତାକ୍ଷର କରିବା ପାଇଁ ବ୍ୟବହୃତ କି କୁ ଗ୍ରହଣ କରିବା ପାଇଁ ବୈଧିକରଣ ଆବଶ୍ୟକ"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:6
+#: ../policy/org.freedesktop.packagekit.policy.in.h:12
 msgid "Authentication is required to install a signed package"
 msgstr "ଗୋଟିଏ ହସ୍ତାକ୍ଷର ହୋଇଥିବା ପ୍ୟାକେଜକୁ ସ୍ଥାପନ କରିବା ପାଇଁ ବୈଧିକରଣ ଆବଶ୍ୟକ"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:7
+#: ../policy/org.freedesktop.packagekit.policy.in.h:13
 msgid "Authentication is required to install an untrusted package"
 msgstr "ଗୋଟିଏ ଅବିଶ୍ୱସ୍ତ ପ୍ୟାକେଜକୁ ସ୍ଥାପନ କରିବା ପାଇଁ ବୈଧିକରଣ ଆବଶ୍ୟକ"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:8
+#: ../policy/org.freedesktop.packagekit.policy.in.h:14
 msgid "Authentication is required to refresh the system sources"
 msgstr "ତନ୍ତ୍ର ଉତ୍ସଗୁଡ଼ିକୁ ସତେଜନ କରିବା ପାଇଁ ବୈଧିକରଣ ଆବଶ୍ୟକ"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:9
+#: ../policy/org.freedesktop.packagekit.policy.in.h:15
+#, fuzzy
+msgid "Authentication is required to reload the device with a new driver"
+msgstr "ତନ୍ତ୍ର ଉତ୍ସଗୁଡ଼ିକୁ ସତେଜନ କରିବା ପାଇଁ ବୈଧିକରଣ ଆବଶ୍ୟକ"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:16
 msgid "Authentication is required to remove packages"
 msgstr "ପ୍ୟାକେଜଗୁଡ଼ିକୁ କାଢ଼ିବା ପାଇଁ ବୈଧିକରଣ ଆବଶ୍ୟକ"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:10
+#: ../policy/org.freedesktop.packagekit.policy.in.h:17
 msgid "Authentication is required to rollback a transaction"
 msgstr "ଗୋଟିଏ କାରବାରକୁ ପଛକୁ ନେବା ପାଇଁ ବୈଧିକରଣ ଆବଶ୍ୟକ"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:11
+#: ../policy/org.freedesktop.packagekit.policy.in.h:18
 msgid ""
 "Authentication is required to set the network proxy used for downloading "
 "packages"
 msgstr "ପ୍ୟାକେଜଗୁଡ଼ିକୁ ଆହରଣ କରିବା ପାଇଁ ବ୍ୟବହୃତ ନେଟୱର୍କ ପ୍ରକ୍ସିକୁ ସେଟ କରିବା ପାଇଁ ବୈଧିକରଣ ଆବଶ୍ୟକ"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:12
+#: ../policy/org.freedesktop.packagekit.policy.in.h:19
 msgid "Authentication is required to update packages"
 msgstr "ପ୍ୟାକେଜଗୁଡ଼ିକୁ ଅଦ୍ୟତନ କରିବା ପାଇଁ ବୈଧିକରଣ ଆବଶ୍ୟକ"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:13
+#. SECURITY:
+#. - Normal users are allowed to cancel their own task without
+#. authentication, but a different user id needs the admin password
+#. to cancel another users task.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:25
 msgid "Cancel foreign task"
 msgstr "ବାହାରର କାର୍ଯ୍ୟକୁ ବାତିଲ କରନ୍ତୁ"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:14
+#. SECURITY:
+#. - Normal users require admin authentication to enable or disable
+#. software sources as this can be used to enable new updates or
+#. install different versions of software.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:31
 msgid "Change software source parameters"
 msgstr "ସଫ୍ୟୱେର ଉତ୍ସ ପ୍ରାଚଳଗୁଡ଼ିକୁ ପରିବର୍ତ୍ତନ କରନ୍ତୁ"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:15
+#. SECURITY:
+#. - Normal users do not need authentication to install signed packages
+#. from signed repositories, as this cannot exploit a system.
+#. - Paranoid users (or parents!) can change this to 'auth_admin' or
+#. 'auth_admin_keep'.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:38
 msgid "Install signed package"
 msgstr "ହସ୍ତାକ୍ଷର ହୋଇଥିବା ପ୍ଯାକେଜକୁ ସ୍ଥାପନ କରନ୍ତୁ"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:16
+#. SECURITY:
+#. - Normal users require admin authentication to install untrusted or
+#. unrecognised packages, as allowing users to do this without a
+#. password would be a massive security hole.
+#. - This is not retained as each package should be authenticated.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:45
 msgid "Install untrusted local file"
 msgstr "ବିଶ୍ୱସ୍ତ ସ୍ଥାନୀୟ ଫାଇଲକୁ ସ୍ଥାପନ କରନ୍ତୁ"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:17
+#. SECURITY:
+#. - Normal users do not require admin authentication to refresh the
+#. cache, as this doesn't actually install or remove software.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:50
 msgid "Refresh system sources"
 msgstr "ତନ୍ତ୍ର ଉତ୍ସଗୁଡ଼ିକୁ ସତେଜନ କରନ୍ତୁ"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:18
+#. SECURITY:
+#. - Normal users require admin authentication to rebind a driver
+#. so that it works after we install firmware.
+#. - This should not be set to 'yes' as unprivileged users could then
+#. try to rebind drivers in use, for instance security authentication
+#. devices.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:58
+msgid "Reload a device"
+msgstr ""
+
+#. SECURITY:
+#. - Normal users require admin authentication to remove packages as
+#. this can make the system unbootable or stop other applications from
+#. working.
+#. - Be sure to close the tool used to remove the packages after the
+#. admin authentication has been obtained, otherwise packages can still
+#. be removed. If this is not possible, change this authentication to
+#. 'auth_admin'.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:68
 msgid "Remove package"
 msgstr "ପ୍ୟାକେଜ କାଢ଼ନ୍ତୁ"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:19
+#. SECURITY:
+#. - Normal users require admin authentication to rollback system state
+#. as this will change a large number of packages, and could expose the
+#. system to previously patched security vulnerabilities.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:74
 msgid "Rollback to a previous transaction"
 msgstr "ପୂର୍ବ କାରବାରକୁ ପଛାନ୍ତୁ"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:20
+#. SECURITY:
+#. - Normal users do not require admin authentication to set the proxy
+#. used for downloading packages.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:79
 msgid "Set network proxy"
 msgstr "ନେଟୱର୍କ ପ୍ରକ୍ସି ସେଟ କରନ୍ତୁ"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:21
+#. SECURITY:
+#. - Normal users require admin authentication to add signing keys.
+#. - This implies adding an explicit trust, and should not be granted
+#. without a secure authentication.
+#. - This is not kept as each package should be authenticated.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:86
 msgid "Trust a key used for signing packages"
 msgstr "ପ୍ୟାକେଜଗୁଡ଼ିକୁ ହସ୍ତାକ୍ଷର କରିବା ପାଇଁ ବ୍ୟବହୃତ କି କୁ ବିଶ୍ୱାସ କରନ୍ତୁ"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:22
+#. SECURITY:
+#. - Normal users do not require admin authentication to update the
+#. system as the packages will be signed, and the action is required
+#. to update the system when unattended.
+#. - Changing this to anything other than 'yes' will break unattended
+#. updates.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:94
 msgid "Update packages"
 msgstr "ପ୍ୟାକେଜଗୁଡ଼ିକୁ ଅଦ୍ୟତନ କରନ୍ତୁ"
 
@@ -1080,9 +1511,49 @@ msgstr "PackageKit ସର୍ଭିସ"
 msgid "Cannot connect to the system bus"
 msgstr "ତନ୍ତ୍ର ବସ ସହିତ ସଂଯୋଗ କରିପାରିବେ ନାହିଁ"
 
-#. TRANSLATORS: cannot register on system bus, unknown reason
-#: ../src/pk-main.c:331
-#, c-format
+#. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error follows
+#: ../src/pk-main.c:334
 msgid "Error trying to start:"
 msgstr "ଆରମ୍ଭ କରିବାକୁ ଚେଷ୍ଟା କରିବାରେ ତ୍ରୁଟି:"
 
+#: ../src/pk-polkit-action-lookup.c:147
+#, fuzzy
+msgid "To install debugging packages, extra sources need to be enabled"
+msgstr "କୌଣସି ନୂତନ ପ୍ୟାକେଜ ସ୍ଥାପନ କରିବା ଆବଶ୍ୟକ ନାହିଁ"
+
+#. TRANSLATORS: is not GPG signed
+#: ../src/pk-polkit-action-lookup.c:168 ../src/pk-polkit-action-lookup.c:187
+msgid "The software is not from a trusted source."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:173
+msgid "Do not update this package unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:174
+msgid "Do not update these packages unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:192
+msgid "Do not install this package unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:193
+msgid "Do not install these packages unless you are sure it is safe to do so."
+msgstr ""
+
+#. TRANSLATORS: warn the user that all bets are off
+#: ../src/pk-polkit-action-lookup.c:199
+msgid "Malicious software can damage your computer or cause other harm."
+msgstr ""
+
+#. TRANSLATORS: too many packages to list each one
+#: ../src/pk-polkit-action-lookup.c:274
+#, fuzzy
+msgid "Many packages"
+msgstr "ପ୍ୟାକେଜଗୁଡ଼ିକୁ ଅଦ୍ୟତନ କରନ୍ତୁ"
+
+#. TRANSLATORS: if the transaction is forced to install only trusted packages
+#: ../src/pk-polkit-action-lookup.c:334
+msgid "Only trusted"
+msgstr ""
diff --git a/po/pa.po b/po/pa.po
index 026d662..673f1c8 100644
--- a/po/pa.po
+++ b/po/pa.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: packagekit.master\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-05-30 19:26+0000\n"
+"POT-Creation-Date: 2009-08-24 11:06+0100\n"
 "PO-Revision-Date: 2009-05-31 07:50+0530\n"
 "Last-Translator: A S Alam <aalam at users.sf.net>\n"
 "Language-Team: Punjabi/Panjabi <punjabi-users at lists.sf.net>\n"
@@ -19,230 +19,264 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
 #. TRANSLATORS: this is an atomic transaction
-#: ../client/pk-console.c:234
+#: ../client/pk-console.c:235
 msgid "Transaction"
 msgstr "ਟਰਾਂਸੈਕਸ਼ਨ"
 
 #. TRANSLATORS: this is the time the transaction was started in system timezone
-#: ../client/pk-console.c:236
+#: ../client/pk-console.c:237
 msgid "System time"
 msgstr "ਸਿਸਟਮ ਸਮਾਂ"
 
 #. TRANSLATORS: this is if the transaction succeeded or not
-#: ../client/pk-console.c:238
+#: ../client/pk-console.c:239
 msgid "Succeeded"
 msgstr "ਸਫ਼ਲ"
 
 #. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:238 ../client/pk-console.c:405
+#: ../client/pk-console.c:239 ../client/pk-console.c:406
 msgid "True"
 msgstr "ਸਹੀਂ"
 
-#: ../client/pk-console.c:238 ../client/pk-console.c:405
+#: ../client/pk-console.c:239 ../client/pk-console.c:406
 msgid "False"
 msgstr "ਗਲਤ"
 
 #. TRANSLATORS: this is the transactions role, e.g. "update-system"
-#: ../client/pk-console.c:240
+#. TRANSLATORS: the trasaction role, e.g. update-system
+#: ../client/pk-console.c:241 ../src/pk-polkit-action-lookup.c:327
 msgid "Role"
 msgstr "ਰੋਲ"
 
 #. TRANSLATORS: this is The duration of the transaction
-#: ../client/pk-console.c:245
+#: ../client/pk-console.c:246
 msgid "Duration"
 msgstr "ਅੰਤਰਾਲ"
 
-#: ../client/pk-console.c:245
+#: ../client/pk-console.c:246
 msgid "(seconds)"
 msgstr "(ਸਕਿੰਟ)"
 
 #. TRANSLATORS: this is The command line used to do the action
-#: ../client/pk-console.c:249
+#. TRANSLATORS: the command line of the thing that wants the authentication
+#: ../client/pk-console.c:250 ../src/pk-polkit-action-lookup.c:341
 msgid "Command line"
 msgstr "ਕਮਾਂਡ ਲਾਈਨ"
 
 #. TRANSLATORS: this is the user ID of the user that started the action
-#: ../client/pk-console.c:251
+#: ../client/pk-console.c:252
 msgid "User ID"
 msgstr "ਯੂਜ਼ਰ ID"
 
 #. TRANSLATORS: this is the username, e.g. hughsie
-#: ../client/pk-console.c:258
+#: ../client/pk-console.c:259
 msgid "Username"
 msgstr "ਯੂਜ਼ਰ ਨਾਂ"
 
 #. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
-#: ../client/pk-console.c:262
+#: ../client/pk-console.c:263
 msgid "Real name"
 msgstr "ਅਸਲੀ ਨਾਂ"
 
-#: ../client/pk-console.c:270
+#: ../client/pk-console.c:271
 msgid "Affected packages:"
 msgstr "ਪ੍ਰਭਾਵਿਤ ਪੈਕੇਜ:"
 
-#: ../client/pk-console.c:272
+#: ../client/pk-console.c:273
 msgid "Affected packages: None"
 msgstr "ਪ੍ਰਭਾਵਿਤ ਪੈਕੇਜ: ਕੋਈ ਨਹੀਂ"
 
 #. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:297
+#: ../client/pk-console.c:298
 msgid "Distribution"
 msgstr "ਡਿਸਟਰੀਬਿਊਸ਼ਨ"
 
 #. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:299
+#: ../client/pk-console.c:300
 msgid "Type"
 msgstr "ਟਾਈਪ"
 
 #. TRANSLATORS: this is any summary text describing the upgrade
 #. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:301 ../client/pk-console.c:324
+#: ../client/pk-console.c:302 ../client/pk-console.c:325
 msgid "Summary"
 msgstr "ਸੰਖੇਪ"
 
 #. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:313
+#: ../client/pk-console.c:314
 msgid "Category"
 msgstr "ਕੈਟਾਗਰੀ"
 
 #. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:315
+#: ../client/pk-console.c:316
 msgid "ID"
 msgstr "ID"
 
 #. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:318
+#: ../client/pk-console.c:319
 msgid "Parent"
 msgstr "ਮੋਢੀ"
 
 #. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:321
+#: ../client/pk-console.c:322
 msgid "Name"
 msgstr "ਨਾਂ"
 
 #. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:327
+#: ../client/pk-console.c:328
 msgid "Icon"
 msgstr "ਆਈਕਾਨ"
 
 #. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:342
+#: ../client/pk-console.c:343
 msgid "Details about the update:"
 msgstr "ਅੱਪਡੇਟ ਬਾਰੇ ਵੇਰਵਾ:"
 
 #. TRANSLATORS: details about the update, package name and version
-#: ../client/pk-console.c:344
+#. TRANSLATORS: title, the names of the packages that the method is processing
+#: ../client/pk-console.c:345 ../src/pk-polkit-action-lookup.c:352
+#, fuzzy
 msgid "Package"
-msgstr "ਪੈਕੇਜ"
+msgid_plural "Packages"
+msgstr[0] "ਪੈਕੇਜ"
+msgstr[1] "ਪੈਕੇਜ"
 
 #. TRANSLATORS: details about the update, any packages that this update updates
-#: ../client/pk-console.c:347
+#: ../client/pk-console.c:348
 msgid "Updates"
 msgstr "ਅੱਪਡੇਟ"
 
 #. TRANSLATORS: details about the update, any packages that this update obsoletes
-#: ../client/pk-console.c:351
+#: ../client/pk-console.c:352
 msgid "Obsoletes"
 msgstr "ਬਰਤਰਫ਼"
 
 #. TRANSLATORS: details about the update, the vendor URLs
-#: ../client/pk-console.c:355
+#: ../client/pk-console.c:356
 msgid "Vendor"
 msgstr "ਵੇਂਡਰ"
 
 #. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:359
+#: ../client/pk-console.c:360
 msgid "Bugzilla"
 msgstr "ਬੱਗਜ਼ੀਲਾ"
 
 #. TRANSLATORS: details about the update, the CVE URLs
-#: ../client/pk-console.c:363
+#: ../client/pk-console.c:364
 msgid "CVE"
 msgstr "CVE"
 
 #. TRANSLATORS: details about the update, if the package requires a restart
-#: ../client/pk-console.c:367
+#: ../client/pk-console.c:368
 msgid "Restart"
 msgstr "ਮੁੜ-ਚਾਲੂ"
 
 #. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:371
+#: ../client/pk-console.c:372
 msgid "Update text"
 msgstr "ਅੱਪਡੇਟ ਟੈਕਸਟ"
 
 #. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:375
+#: ../client/pk-console.c:376
 msgid "Changes"
 msgstr "ਬਦਲਾਅ"
 
 #. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:379
+#: ../client/pk-console.c:380
 msgid "State"
 msgstr "ਹਾਲਤ"
 
 #. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:384
+#: ../client/pk-console.c:385
 msgid "Issued"
 msgstr "ਜਾਰੀ ਕੀਤਾ"
 
 #. TRANSLATORS: details about the update, date the update was updated
-#: ../client/pk-console.c:389
+#: ../client/pk-console.c:390
 msgid "Updated"
 msgstr "ਅੱਪਡੇਟ ਕੀਤੇ"
 
-#: ../client/pk-console.c:476 ../client/pk-console.c:478
+#: ../client/pk-console.c:477 ../client/pk-console.c:479
 msgid "Percentage"
 msgstr "ਫੀਸਦੀ"
 
-#: ../client/pk-console.c:478
+#: ../client/pk-console.c:479
 msgid "Unknown"
 msgstr "ਅਣਜਾਣ"
 
 #. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:529
+#: ../client/pk-console.c:521
 msgid "System restart required by:"
 msgstr "ਸਿਸਟਮ ਮੁੜ-ਚਾਲੂ ਕਰਨ ਦੀ ਲੋੜ ਹੈ:"
 
 #. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:532
+#: ../client/pk-console.c:524
 msgid "Session restart required:"
 msgstr "ਸਿਸਟਮ ਮੁੜ-ਚਾਲੂ ਕਰਨ ਦੀ ਲੋੜ:"
 
+#. TRANSLATORS: a package requires the system to be restarted due to a security update
+#: ../client/pk-console.c:527
+#, fuzzy
+msgid "System restart (security) required by:"
+msgstr "ਸਿਸਟਮ ਮੁੜ-ਚਾਲੂ ਕਰਨ ਦੀ ਲੋੜ ਹੈ:"
+
+#. TRANSLATORS: a package requires the session to be restarted due to a security update
+#: ../client/pk-console.c:530
+#, fuzzy
+msgid "Session restart (security) required:"
+msgstr "ਸਿਸਟਮ ਮੁੜ-ਚਾਲੂ ਕਰਨ ਦੀ ਲੋੜ:"
+
 #. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:535
+#: ../client/pk-console.c:533
 msgid "Application restart required by:"
 msgstr "ਐਪਲੀਕੇਸ਼ਨ ਮੁੜ-ਚਾਲੂ ਕਰਨ ਦੀ ਲੋੜ ਹੈ:"
 
-#. TRANSLATORS: a package needs to restart they system
-#: ../client/pk-console.c:572
+#. TRANSLATORS: a package needs to restart their system
+#: ../client/pk-console.c:588
 msgid "Please restart the computer to complete the update."
 msgstr "ਅੱਪਡੇਟ ਨੂੰ ਪੂਰਾ ਕਰਨ ਵਾਸਤੇ ਕੰਪਿਊਟਰ ਮੁੜ-ਚਾਲੂ ਕਰੋ ਜੀ।"
 
 #. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:575
+#: ../client/pk-console.c:591
 msgid "Please logout and login to complete the update."
 msgstr "ਅੱਪਡੇਟ ਨੂੰ ਪੂਰਾ ਕਰਨ ਵਾਸਤੇ ਲਾਗਆਉਟ ਕਰਕੇ ਲਾਗਇਨ ਕਰੋ ਜੀ।"
 
 #. TRANSLATORS: a package needs to restart the application
-#: ../client/pk-console.c:578
+#: ../client/pk-console.c:594
 msgid "Please restart the application as it is being used."
 msgstr "ਐਪਲੀਕੇਸ਼ਨ ਨੂੰ ਮੁੜ-ਚਾਲੂ ਕਰਨ ਦੀ ਲੋੜ ਹੈ, ਕਿਉਂਕਿ ਇਹ ਵਰਤੀ ਜਾ ਰਹੀ ਹੈ।"
 
+#. TRANSLATORS: a package needs to restart their system (due to security)
+#: ../client/pk-console.c:597
+#, fuzzy
+msgid ""
+"Please restart the computer to complete the update as important security "
+"updates have been installed."
+msgstr "ਅੱਪਡੇਟ ਨੂੰ ਪੂਰਾ ਕਰਨ ਵਾਸਤੇ ਕੰਪਿਊਟਰ ਮੁੜ-ਚਾਲੂ ਕਰੋ ਜੀ।"
+
+#. TRANSLATORS: a package needs to restart the session (due to security)
+#: ../client/pk-console.c:600
+#, fuzzy
+msgid ""
+"Please logout and login to complete the update as important security updates "
+"have been installed."
+msgstr "ਅੱਪਡੇਟ ਨੂੰ ਪੂਰਾ ਕਰਨ ਵਾਸਤੇ ਲਾਗਆਉਟ ਕਰਕੇ ਲਾਗਇਨ ਕਰੋ ਜੀ।"
+
 #. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:691
+#: ../client/pk-console.c:727
 #, c-format
 msgid "The package %s is already installed"
 msgstr "ਪੈਕੇਜ %s ਪਹਿਲਾਂ ਹੀ ਇੰਸਟਾਲ ਹੈ"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:699
+#: ../client/pk-console.c:735
 #, c-format
 msgid "The package %s could not be installed: %s"
 msgstr "ਪੈਕੇਜ %s ਇੰਸਟਾਲ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ: %s"
 
 #. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
-#: ../client/pk-console.c:724 ../client/pk-console.c:751
-#: ../client/pk-console.c:847 ../client/pk-console.c:964
+#: ../client/pk-console.c:760 ../client/pk-console.c:783
+#: ../client/pk-console.c:879 ../client/pk-console.c:996
 #: ../client/pk-tools-common.c:62 ../client/pk-tools-common.c:81
 #: ../client/pk-tools-common.c:89
 #, c-format
@@ -250,399 +284,404 @@ msgid "Internal error: %s"
 msgstr "ਅੰਦਰੂਨੀ ਗਲਤੀ: %s"
 
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:732 ../client/pk-console.c:1360
+#: ../client/pk-console.c:768 ../client/pk-console.c:1392
 #, c-format
 msgid "This tool could not install the packages: %s"
 msgstr "ਇਹ ਟੂਲ ਪੈਕੇਜ ਇੰਸਟਾਲ ਨਹੀਂ ਕਰ ਸਕਿਆ: %s"
 
 #. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:759
+#: ../client/pk-console.c:791
 #, c-format
 msgid "This tool could not install the files: %s"
 msgstr "ਇਹ ਟੂਲ ਫਾਇਲਾਂ ਇੰਸਟਾਲ ਨਹੀਂ ਕਰ ਸਕਿਆ: %s"
 
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:815
+#: ../client/pk-console.c:847
 #, c-format
 msgid "This tool could not remove %s: %s"
 msgstr "ਇਹ ਟੂਲ %s ਨੂੰ ਹਟਾ ਨਹੀਂ ਸਕਿਆ: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:838 ../client/pk-console.c:876
-#: ../client/pk-console.c:909
+#: ../client/pk-console.c:870 ../client/pk-console.c:908
+#: ../client/pk-console.c:941
 #, c-format
 msgid "This tool could not remove the packages: %s"
 msgstr "ਇਹ ਟੂਲ ਪੈਕੇਜ ਹਟਾ ਨਹੀਂ ਸਕਿਆ: %s"
 
 #. TRANSLATORS: When removing, we might have to remove other dependencies
-#: ../client/pk-console.c:888
+#: ../client/pk-console.c:920
 msgid "The following packages have to be removed:"
 msgstr "ਅੱਗੇ ਦਿੱਤੇ ਪੈਕੇਜਾਂ ਨੂੰ ਹਟਾਇਆ ਜਾਵੇਗਾ:"
 
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:895
+#: ../client/pk-console.c:927
 msgid "Proceed removing additional packages?"
 msgstr "ਹੋਰ ਪੈਕੇਜ ਹਟਾਉਣ ਨਾਲ ਜਾਰੀ ਰੱਖਣਾ ਹੈ?"
 
 #. TRANSLATORS: We did not remove any packages
-#: ../client/pk-console.c:900
+#: ../client/pk-console.c:932
 msgid "The package removal was canceled!"
 msgstr "ਪੈਕੇਜ ਹਟਾਉਣ ਨੂੰ ਰੱਦ ਕੀਤਾ ਗਿਆ!"
 
 #. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:941
+#: ../client/pk-console.c:973
 #, c-format
 msgid "This tool could not download the package %s as it could not be found"
 msgstr "ਇਹ ਟੂਲ ਪੈਕੇਜ %s ਡਾਊਨਲੋਡ ਨਹੀਂ ਕਰ ਸਕਿਆ, ਕਿਉਂਕਿ ਇਹ ਨਹੀਂ ਲੱਭਿਆ"
 
 #. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:972
+#: ../client/pk-console.c:1004
 #, c-format
 msgid "This tool could not download the packages: %s"
 msgstr "ਇਹ ਟੂਲ ਪੈਕੇਜ ਡਾਊਨਲੋਡ ਨਹੀਂ ਕਰ ਸਕਿਆ: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:999 ../client/pk-console.c:1008
+#: ../client/pk-console.c:1031 ../client/pk-console.c:1040
 #, c-format
 msgid "This tool could not update %s: %s"
 msgstr "ਇਹ ਟੂਲ %s ਅੱਪਡੇਟ ਨਹੀਂ ਕਰ ਸਕਿਆ: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1030 ../client/pk-console.c:1038
+#: ../client/pk-console.c:1062 ../client/pk-console.c:1070
 #, c-format
 msgid "This tool could not get the requirements for %s: %s"
 msgstr "ਇਹ ਟੂਲ %s ਲਈ ਲੋੜ ਨਹੀਂ ਲੈ ਸਕਿਆ: %s"
 
 #. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:1060 ../client/pk-console.c:1068
+#: ../client/pk-console.c:1092 ../client/pk-console.c:1100
 #, c-format
 msgid "This tool could not get the dependencies for %s: %s"
 msgstr "ਇਹ ਟੂਲ %s ਲਈ ਨਿਰਭਰਤਾ ਨਹੀਂ ਲੈ ਸਕਿਆ: %s"
 
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:1090 ../client/pk-console.c:1098
+#: ../client/pk-console.c:1122 ../client/pk-console.c:1130
 #, c-format
 msgid "This tool could not get package details for %s: %s"
 msgstr "ਇਹ ਟੂਲ %s ਲਈ ਵੇਰਵਾ ਨਹੀਂ ਲੈ ਸਕਿਆ: %s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1120
+#: ../client/pk-console.c:1152
 #, c-format
 msgid "This tool could not find the files for %s: %s"
 msgstr "ਇਹ ਟੂਲ %s ਲਈ ਫਾਇਲਾਂ ਨਹੀਂ ਲੱਭ ਸਕਿਆ: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1128
+#: ../client/pk-console.c:1160
 #, c-format
 msgid "This tool could not get the file list for %s: %s"
 msgstr "ਇਹ ਟੂਲ %s ਲਈ ਫਾਇਲ ਲਿਸਟ ਨਹੀਂ ਲੈ ਸਕਿਆ: %s"
 
 #. TRANSLATORS: There was an error getting the list of packages. The filename follows
-#: ../client/pk-console.c:1150
+#: ../client/pk-console.c:1182
 #, c-format
 msgid "File already exists: %s"
 msgstr "ਫਾਇਲ ਪਹਿਲਾਂ ਹੀ ਮੌਜੂਦ ਹੈ: %s"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1155 ../client/pk-console.c:1211
-#: ../client/pk-console.c:1286
+#: ../client/pk-console.c:1187 ../client/pk-console.c:1243
+#: ../client/pk-console.c:1318
 msgid "Getting package list"
 msgstr "ਪੈਕੇਜ ਲਿਸਟ ਲਈ ਜਾ ਰਹੀ ਹੈ"
 
 #. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1161 ../client/pk-console.c:1217
-#: ../client/pk-console.c:1292
+#: ../client/pk-console.c:1193 ../client/pk-console.c:1249
+#: ../client/pk-console.c:1324
 #, c-format
 msgid "This tool could not get package list: %s"
 msgstr "ਇਹ ਟੂਲ ਪੈਕੇਜ ਲਿਸਟ ਨਹੀਂ ਲਈ ਜਾ ਸਕੀ: %s"
 
 #. TRANSLATORS: There was an error saving the list
-#: ../client/pk-console.c:1172
+#: ../client/pk-console.c:1204
 #, c-format
 msgid "Failed to save to disk"
 msgstr "ਡਿਸਕ ਉੱਤੇ ਸੰਭਾਲਣ ਲਈ ਫੇਲ੍ਹ ਹੈ"
 
 #. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1206 ../client/pk-console.c:1281
+#: ../client/pk-console.c:1238 ../client/pk-console.c:1313
 #, c-format
 msgid "File does not exist: %s"
 msgstr "ਫਾਇਲ ਮੌਜੂਦ ਨਹੀਂ: %s"
 
 #. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1238
+#: ../client/pk-console.c:1270
 msgid "Packages to add"
 msgstr "ਸ਼ਾਮਲ ਕਰਨ ਲਈ ਪੈਕੇਜ"
 
 #. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1246
+#: ../client/pk-console.c:1278
 msgid "Packages to remove"
 msgstr "ਹਟਾਉਣ ਲਈ ਪੈਕੇਜ"
 
 #. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1314
+#: ../client/pk-console.c:1346
 #, c-format
 msgid "No new packages need to be installed"
 msgstr "ਕੋਈ ਨਵਾਂ ਪੈਕੇਜ ਇੰਸਟਾਲ ਕਰਨ ਦੀ ਲੋੜ ਨਹੀਂ ਹੈ"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1320
+#: ../client/pk-console.c:1352
 msgid "To install"
 msgstr "ਇੰਸਟਾਲ ਲਈ"
 
 #. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1332
+#: ../client/pk-console.c:1364
 msgid "Searching for package: "
 msgstr "ਪੈਕੇਜ ਲਈ ਖੋਜ ਜਾਰੀ:"
 
 #. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1336
+#: ../client/pk-console.c:1368
 msgid "not found."
 msgstr "ਨਹੀਂ ਲੱਭਿਆ।"
 
 #. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1347
+#: ../client/pk-console.c:1379
 #, c-format
 msgid "No packages can be found to install"
 msgstr "ਇੰਸਟਾਲ ਕਰਨ ਲਈ ਕੋਈ ਪੈਕੇਜ ਨਹੀਂ ਲੱਭਿਆ"
 
 #. TRANSLATORS: installing new packages from package list
-#: ../client/pk-console.c:1353
+#. TRANSLATORS: we are now installing the debuginfo packages we found earlier
+#: ../client/pk-console.c:1385
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:886
+#, c-format
 msgid "Installing packages"
 msgstr "ਪੈਕੇਜ ਇੰਸਟਾਲ ਕੀਤੇ ਜਾ ਰਹੇ ਹਨ"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1389
+#: ../client/pk-console.c:1421
 #, c-format
 msgid "This tool could not find the update details for %s: %s"
 msgstr "ਇਹ ਟੂਲ %s ਲਈ ਅੱਪਡੇਟ ਵੇਰਵਾ ਨਹੀਂ ਲੱਭ ਸਕਿਆ: %s"
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1397
+#: ../client/pk-console.c:1429
 #, c-format
 msgid "This tool could not get the update details for %s: %s"
 msgstr "ਇਹ ਟੂਲ %s ਲਈ ਅੱਪਡੇਟ ਵੇਰਵਾ ਨਹੀਂ ਲੈ ਸਕਿਆ: %s"
 
 #. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
-#: ../client/pk-console.c:1443
+#: ../client/pk-console.c:1460
 msgid "Error:"
 msgstr "ਗਲਤੀ:"
 
 #. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1457
+#: ../client/pk-console.c:1474
 msgid "Package description"
 msgstr "ਪੈਕੇਜ ਵੇਰਵਾ"
 
 #. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
-#: ../client/pk-console.c:1473
+#: ../client/pk-console.c:1490
 msgid "Message:"
 msgstr "ਸੁਨੇਹਾ:"
 
 #. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1501
+#: ../client/pk-console.c:1518
 msgid "Package files"
 msgstr "ਪੈਕੇਜ ਫਾਇਲਾਂ"
 
 #. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1509
+#: ../client/pk-console.c:1526
 msgid "No files"
 msgstr "ਕੋਈ ਫਾਇਲ ਨਹੀਂ"
 
 #. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1532
+#: ../client/pk-console.c:1549
 msgid "Repository signature required"
 msgstr "ਰਿਪੋਜ਼ਟਰੀ ਦਸਤਖਤ ਲੋੜੀਦੇ"
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1542
+#: ../client/pk-console.c:1559
 msgid "Do you accept this signature?"
 msgstr "ਕੀ ਤੁਸੀਂ ਇਹ ਦਸਤਖਤ ਮਨਜ਼ੂਰ ਕਰਦੇ ਹੋ?"
 
 #. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1546
+#: ../client/pk-console.c:1563
 msgid "The signature was not accepted."
 msgstr "ਦਸਤਖਤ ਮਨਜ਼ੂਰ ਨਹੀਂ ਸਨ।"
 
 #. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1580
+#: ../client/pk-console.c:1597
 msgid "End user license agreement required"
 msgstr "ਅੰਤਮ ਯੂਜ਼ਰ ਲਾਈਸੈਂਸ ਇਕਰਾਰਨਾਮਾ ਲੋੜੀਦਾ"
 
 #. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1587
+#: ../client/pk-console.c:1604
 msgid "Do you agree to this license?"
 msgstr "ਕੀ ਤੁਸੀਂ ਇਸ ਲਾਈਸੈਂਸ ਨਾਲ ਸਹਿਮਤ ਹੋ?"
 
 #. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1591
+#: ../client/pk-console.c:1608
 msgid "The license was refused."
 msgstr "ਲਾਈਸੈਂਸ ਤੋਂ ਇਨਕਾਰ ਕੀਤਾ।"
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1620
+#: ../client/pk-console.c:1637
 msgid "The daemon crashed mid-transaction!"
 msgstr "ਡੈਮਨ ਅਧੂਰੀ ਟਰਾਂਸੈਕਸ਼ਨ ਕਰੈਸ਼ ਹੋ ਗਈ!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1673
+#: ../client/pk-console.c:1690
 msgid "PackageKit Console Interface"
 msgstr "ਪੈਕੇਜਕਿੱਟ ਕਨਸੋਲ ਇੰਟਰਫੇਸ"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1675
+#: ../client/pk-console.c:1692
 msgid "Subcommands:"
 msgstr "ਸਬ-ਕਮਾਂਡ:"
 
 #. TRANSLATORS: command line argument, if we should show debugging information
 #. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:1767 ../client/pk-generate-pack.c:185
-#: ../client/pk-monitor.c:125
-#: ../contrib/command-not-found/pk-command-not-found.c:520
-#: ../src/pk-main.c:211
+#: ../client/pk-console.c:1785 ../client/pk-generate-pack.c:185
+#: ../client/pk-monitor.c:128
+#: ../contrib/command-not-found/pk-command-not-found.c:616
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:550
+#: ../contrib/device-rebind/pk-device-rebind.c:293 ../src/pk-main.c:211
 msgid "Show extra debugging information"
 msgstr "ਹੋਰ ਡੀਬੱਗ ਜਾਣਕਾਰੀ ਵੇਖੋ"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1770 ../client/pk-monitor.c:127
+#: ../client/pk-console.c:1788 ../client/pk-monitor.c:130
 msgid "Show the program version and exit"
 msgstr "ਪਰੋਗਰਾਮ ਵਰਜਨ ਵੇਖੋ ਅਤੇ ਬੰਦ ਕਰੋ"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1773
+#: ../client/pk-console.c:1791
 msgid "Set the filter, e.g. installed"
 msgstr "ਫਿਲਟਰ ਸੈੱਟ ਕਰੋ, ਜਿਵੇਂ ਕਿ ਇੰਸਟਾਲ"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1776
+#: ../client/pk-console.c:1794
 msgid "Exit without waiting for actions to complete"
 msgstr "ਪੂਰੇ ਹੋਣ ਵਾਲੇ ਐਕਸ਼ਨ ਦੀ ਉਡੀਕ ਕੀਤੇ ਬਿਨਾਂ ਬੰਦ ਕਰੋ"
 
 #. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:1803
+#: ../client/pk-console.c:1821
 msgid "This tool could not connect to system DBUS."
 msgstr "ਇਹ ਟੂਲ ਸਿਸਟਮ DBUS ਨਾਲ ਕੁਨੈਕਟ ਨਹੀਂ ਹੋ ਸਕਿਆ।"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1894
+#: ../client/pk-console.c:1911
 msgid "The filter specified was invalid"
 msgstr "ਦਿੱਤਾ ਫਿਲਟਰ ਅਢੁੱਕਵਾਂ ਹੈ।"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1912
+#: ../client/pk-console.c:1930
 msgid "A search type is required, e.g. name"
 msgstr "ਖੋਜ ਕਿਸਮ ਚਾਹੀਦੀ ਹੈ, ਜਿਵੇਂ ਨਾਂ"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1918 ../client/pk-console.c:1926
-#: ../client/pk-console.c:1934 ../client/pk-console.c:1942
+#: ../client/pk-console.c:1937 ../client/pk-console.c:1946
+#: ../client/pk-console.c:1955 ../client/pk-console.c:1964
 msgid "A search term is required"
 msgstr "ਖੋਜ ਸ਼ਬਦ ਦੀ ਲੋੜ ਹੈ"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1948
+#: ../client/pk-console.c:1971
 msgid "Invalid search type"
 msgstr "ਗਲਤ ਖੋਜ ਟਾਈਪ"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1954
+#: ../client/pk-console.c:1977
 msgid "A package name or filename to install is required"
 msgstr "ਇੰਸਟਾਲ ਕਰਨ ਲਈ ਇੱਕ ਪੈਕੇਜ ਨਾਂ ਜਾਂ ਫਾਇਲ ਨਾਂ ਦੀ ਲੋੜ ਹੈ"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1962
+#: ../client/pk-console.c:1986
 msgid "A type, key_id and package_id are required"
 msgstr "ਟਾਈਪ, key_id ਜਾਂ package_id ਦੇਣ ਦੀ ਲੋੜ ਹੈ"
 
 #. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:1970
+#: ../client/pk-console.c:1995
 msgid "A package name to remove is required"
 msgstr "ਹਟਾਉਣ ਵਾਸਤੇ ਪੈਕੇਜ ਨਾਂ ਚਾਹੀਦਾ ਹੈ"
 
 #. TRANSLATORS: the user did not specify anything about what to download or where
-#: ../client/pk-console.c:1977
-msgid "A destination directory and then the package names to download are required"
+#: ../client/pk-console.c:2003
+#, fuzzy
+msgid "A destination directory and the package names to download are required"
 msgstr "ਡਾਊਨਲੋਡ ਕਰਨ ਵਾਸਤੇ ਟਿਕਾਣਾ ਡਾਇਰੈਕਟਰੀ ਅਤੇ ਤਦ ਪੈਕੇਜ ਨਾਂ ਲਾਜ਼ਮੀ ਹੈ"
 
 #. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:1983
+#: ../client/pk-console.c:2010
 msgid "Directory not found"
 msgstr "ਡਾਇਰੈਕਟਰੀ ਨਹੀਂ ਲੱਭੀ"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1990
+#: ../client/pk-console.c:2018
 msgid "A licence identifier (eula-id) is required"
 msgstr "ਇੱਕ ਲਾਈਸੈਂਸ ਪਛਾਣਕਰਤਾ (eula-id) ਲਾਜ਼ਮੀ ਹੈ"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1999
+#: ../client/pk-console.c:2028
 msgid "A transaction identifier (tid) is required"
 msgstr "ਟਰਾਂਸੈਕਸ਼ਨ ਪਛਾਣ (tid) ਲੋੜੀਦਾ ਹੈ"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:2015
+#: ../client/pk-console.c:2045
 msgid "A package name to resolve is required"
 msgstr "ਹੱਲ ਕਰਨ ਲਈ ਪੈਕੇਜ ਨਾਂ ਲਾਜ਼ਮੀ ਹੈ"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:2023 ../client/pk-console.c:2031
+#: ../client/pk-console.c:2054 ../client/pk-console.c:2063
 msgid "A repository name is required"
 msgstr "ਰਿਪੋਜ਼ਟਰੀ ਨਾਂ ਲੋੜੀਦਾ ਹੈ"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2039
+#: ../client/pk-console.c:2072
 msgid "A repo name, parameter and value are required"
 msgstr "ਰੈਪੋ ਨਾਂ, ਪੈਰਾਮੀਟਰ ਅਤੇ ਮੁੱਲ ਲੋੜੀਦਾ ਹੈ"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:2052
+#: ../client/pk-console.c:2086
 msgid "An action, e.g. 'update-system' is required"
 msgstr "ਕਾਰਵਾਈ, ਜਿਵੇਂ 'ਅੱਪਡੇਟ-ਸਿਸਟਮ' ਲੋੜੀਦਾ ਹੈ"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:2058
+#: ../client/pk-console.c:2093
 msgid "A correct role is required"
 msgstr "ਠੀਕ ਰੋਲ ਲੋੜੀਦਾ ਹੈ"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2064
+#: ../client/pk-console.c:2100
 msgid "Failed to get the time since this action was last completed"
 msgstr "ਇਸ ਕਾਰਵਾਈ ਦੇ ਆਖਰੀ ਵਾਰ ਪੂਰੀ ਹੋਣ ਤੋਂ ਬਾਅਦ ਸਮਾਂ ਲੈਣ ਲਈ ਫੇਲ੍ਹ ਹੈ"
 
 #. TRANSLATORS: The user did not provide a package name
 #. TRANSLATORS: This is when the user fails to supply the package name
-#: ../client/pk-console.c:2073 ../client/pk-console.c:2084
-#: ../client/pk-console.c:2092 ../client/pk-console.c:2108
-#: ../client/pk-console.c:2116 ../client/pk-generate-pack.c:241
+#: ../client/pk-console.c:2110 ../client/pk-console.c:2122
+#: ../client/pk-console.c:2131 ../client/pk-console.c:2149
+#: ../client/pk-console.c:2158 ../client/pk-generate-pack.c:241
 msgid "A package name is required"
 msgstr "ਪੈਕੇਜ ਨਾਂ ਲੋੜੀਦਾ ਹੈ"
 
 #. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:2100
+#: ../client/pk-console.c:2140
 msgid "A package provide string is required"
 msgstr "ਪੈਕੇਜ ਦੇਣ ਵਾਲੀ ਸਤਰ ਲੋੜੀਦੀ ਹੈ"
 
 #. TRANSLATORS: The user didn't specify a filename to create as a list
-#: ../client/pk-console.c:2124
+#: ../client/pk-console.c:2167
 msgid "A list file name to create is required"
 msgstr "ਬਣਾਉਣ ਲਈ ਲਿਸਟ ਫਾਇਲ ਨਾਂ ਲੋੜੀਦਾ ਹੈ"
 
 #. TRANSLATORS: The user didn't specify a filename to open as a list
-#: ../client/pk-console.c:2133 ../client/pk-console.c:2142
+#: ../client/pk-console.c:2177 ../client/pk-console.c:2187
 msgid "A list file to open is required"
 msgstr "ਖੋਲ੍ਹਣ ਲਈ ਲਿਸਟ ਫਾਇਲ ਲੋੜੀਦੀ ਹੈ"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2195
+#: ../client/pk-console.c:2241
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "ਚੋਣ '%s' ਸਹਾਇਕ ਨਹੀਂ ਹੈ"
 
 #. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2208
+#: ../client/pk-console.c:2254
 msgid "Incorrect privileges for this operation"
 msgstr "ਇਸ ਕਾਰਵਾਈ ਲਈ ਗਲਤ ਅਧਿਕਾਰ"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2211
+#: ../client/pk-console.c:2257
 msgid "Command failed"
 msgstr "ਕਮਾਂਡ ਫੇਲ੍ਹ ਹੈ"
 
@@ -668,7 +707,8 @@ msgstr "ਨਿਰਭਰਤਾ ਲਈ ਫਾਇਲ ਨਾਂ ਦਿਓ, ਜਿਸ
 
 #. TRANSLATORS: the output location
 #: ../client/pk-generate-pack.c:191
-msgid "The output file or directory (the current directory is used if ommitted)"
+msgid ""
+"The output file or directory (the current directory is used if ommitted)"
 msgstr "ਆਉਟਪੁੱਟ ਫਾਇਲ ਜਾਂ ਡਾਇਰੈਕਟਰੀ (ਮੌਜੂਦਾ ਡਾਇਰੈਕਟਰੀ ਵਰਤੀ ਜਾਵੇਗੀ, ਜੇ ਨਾ ਦਿੱਤੀ)"
 
 #. TRANSLATORS: put a list of packages in the pack
@@ -708,8 +748,8 @@ msgid ""
 "Service packs cannot be created as PackageKit was not built with libarchive "
 "support."
 msgstr ""
-"ਸਰਵਿਸ ਪੈਕ ਨਹੀਂ ਬਣਾਇਆ ਜਾ ਸਕਦਾ, ਕਿਉਂਕਿ ਪੈਕੇਜਕਿੱਟ libarchive ਸਹਿਯੋਗ ਨਾਲ ਤਿਆਰ ਨਹੀਂ "
-"ਕੀਤਾ ਗਿਆ ਹੈ।"
+"ਸਰਵਿਸ ਪੈਕ ਨਹੀਂ ਬਣਾਇਆ ਜਾ ਸਕਦਾ, ਕਿਉਂਕਿ ਪੈਕੇਜਕਿੱਟ libarchive ਸਹਿਯੋਗ ਨਾਲ ਤਿਆਰ ਨਹੀਂ ਕੀਤਾ "
+"ਗਿਆ ਹੈ।"
 
 #. TRANSLATORS: the user specified an absolute path, but didn't get the extension correct
 #: ../client/pk-generate-pack.c:291
@@ -765,10 +805,14 @@ msgid "Failed to create '%s': %s"
 msgstr "'%s' ਬਣਾਉਣ ਲਈ ਫੇਲ੍ਹ: %s"
 
 #. TRANSLATORS: this is a program that monitors PackageKit
-#: ../client/pk-monitor.c:143
+#: ../client/pk-monitor.c:146
 msgid "PackageKit Monitor"
 msgstr "ਪੈਕੇਜਕਿੱਟ ਮਾਨੀਟਰ"
 
+#: ../client/pk-monitor.c:183
+msgid "Cannot show the list of transactions"
+msgstr ""
+
 #. TRANSLATORS: The package was not found in any software sources
 #: ../client/pk-tools-common.c:118
 #, c-format
@@ -790,128 +834,433 @@ msgstr "ਠੀਕ ਪੈਕੇਜ ਚੁਣੋ ਜੀ:"
 msgid "Please enter a number from 1 to %i: "
 msgstr "੧ ਤੋਂ %i ਤੱਕ ਨੰਬਰ ਦਿਓ ਜੀ:"
 
+#. TRANSLATORS: when we are getting data from the daemon
+#: ../contrib/browser-plugin/pk-plugin-install.c:466
+msgid "Getting package information..."
+msgstr "ਪੈਕੇਜ ਜਾਣਕਾਰੀ ਲਈ ਜਾ ਰਹੀ ਹੈ..."
+
+#. TRANSLATORS: run an applicaiton
+#: ../contrib/browser-plugin/pk-plugin-install.c:472
+#, c-format
+msgid "Run %s"
+msgstr "%s ਚਲਾਓ"
+
+#. TRANSLATORS: show the installed version of a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:478
+msgid "Installed version"
+msgstr "ਇੰਸਟਾਲ ਕੀਤੇ ਵਰਜਨ"
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:486
+#, c-format
+msgid "Run version %s now"
+msgstr "ਵਰਜਨ %s ਹੁਣੇ ਚਲਾਓ"
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:492
+msgid "Run now"
+msgstr "ਹੁਣੇ ਚਲਾਓ"
+
+#. TRANSLATORS: update to a new version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:498
+#, c-format
+msgid "Update to version %s"
+msgstr "ਵਰਜਨ %s ਲਈ ਅੱਪਡੇਟ ਕਰੋ"
+
+#. TRANSLATORS: To install a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:504
+#, c-format
+msgid "Install %s now"
+msgstr "%s ਹੁਣੇ ਇੰਸਟਾਲ ਕਰੋ"
+
+#. TRANSLATORS: the version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:507
+msgid "Version"
+msgstr "ਵਰਜਨ"
+
+#. TRANSLATORS: noting found, so can't install
+#: ../contrib/browser-plugin/pk-plugin-install.c:512
+msgid "No packages found for your system"
+msgstr "ਤੁਹਾਡੇ ਸਿਸਟਮ ਉੱਤੇ ਕੋਈ ਪੈਕੇਜ ਨਹੀਂ ਲੱਭਿਆ"
+
+#. TRANSLATORS: package is being installed
+#: ../contrib/browser-plugin/pk-plugin-install.c:517
+msgid "Installing..."
+msgstr "ਇੰਸਟਾਲ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ..."
+
+#. TRANSLATORS: downloading repo data so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:349
+msgid "Downloading details about the software sources."
+msgstr ""
+
+#. TRANSLATORS: downloading file lists so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:353
+msgid "Downloading filelists (this may take some time to complete)."
+msgstr ""
+
+#. TRANSLATORS: waiting for native lock
+#: ../contrib/command-not-found/pk-command-not-found.c:357
+#, fuzzy
+msgid "Waiting for package manager lock."
+msgstr "ਪੈਕੇਜ ਨਾਂ ਲੱਭਿਆ ਜਾ ਰਿਹਾ ਹੈ।"
+
+#. TRANSLATORS: loading package cache so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:361
+#, fuzzy
+msgid "Loading list of packages."
+msgstr "ਪੈਕੇਜ ਡਾਊਨਲੋਡ ਕੀਤੇ ਜਾ ਰਹੇ ਹਨ"
+
 #. TRANSLATORS: we failed to find the package, this shouldn't happen
-#: ../contrib/command-not-found/pk-command-not-found.c:371
+#: ../contrib/command-not-found/pk-command-not-found.c:420
 msgid "Failed to search for file"
 msgstr "ਫਾਇਲ ਲਈ ਖੋਜ ਫੇਲ੍ਹ ਹੈ"
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:495
+#: ../contrib/command-not-found/pk-command-not-found.c:557
 msgid "Failed to launch:"
 msgstr "ਚਲਾਉਣ ਲਈ ਫੇਲ੍ਹ:"
 
 #. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/command-not-found/pk-command-not-found.c:536
+#: ../contrib/command-not-found/pk-command-not-found.c:632
 msgid "PackageKit Command Not Found"
 msgstr "ਪੈਕੇਜਕਿੱਟ ਕਮਾਂਡ ਨਹੀਂ ਲੱਭੀ"
 
 #. TRANSLATORS: the prefix of all the output telling the user why it's not executing
-#: ../contrib/command-not-found/pk-command-not-found.c:559
+#: ../contrib/command-not-found/pk-command-not-found.c:658
 msgid "Command not found."
 msgstr "ਕਮਾਂਡ ਨਹੀਂ ਲੱਭੀ।"
 
 #. TRANSLATORS: tell the user what we think the command is
-#: ../contrib/command-not-found/pk-command-not-found.c:566
+#: ../contrib/command-not-found/pk-command-not-found.c:665
 msgid "Similar command is:"
 msgstr "ਰਲਦੀ ਕਮਾਂਡ ਹੈ:"
 
 #. TRANSLATORS: Ask the user if we should run the similar command
-#: ../contrib/command-not-found/pk-command-not-found.c:575
+#: ../contrib/command-not-found/pk-command-not-found.c:674
 msgid "Run similar command:"
 msgstr "ਰਲਦੀ ਕਮਾਂਡ ਚਲਾਓ:"
 
 #. TRANSLATORS: show the user a list of commands that they could have meant
 #. TRANSLATORS: show the user a list of commands we could run
-#: ../contrib/command-not-found/pk-command-not-found.c:587
-#: ../contrib/command-not-found/pk-command-not-found.c:596
+#: ../contrib/command-not-found/pk-command-not-found.c:686
+#: ../contrib/command-not-found/pk-command-not-found.c:695
 msgid "Similar commands are:"
 msgstr "ਰਲਦੀਆਂ ਕਮਾਂਡਾਂ ਹਨ:"
 
 #. TRANSLATORS: ask the user to choose a file to run
-#: ../contrib/command-not-found/pk-command-not-found.c:603
+#: ../contrib/command-not-found/pk-command-not-found.c:702
 msgid "Please choose a command to run"
 msgstr "ਚਲਾਉਣ ਲਈ ਕਮਾਂਡ ਦੀ ਚੋਣ ਕਰੋ ਜੀ"
 
 #. TRANSLATORS: tell the user what package provides the command
-#: ../contrib/command-not-found/pk-command-not-found.c:618
+#: ../contrib/command-not-found/pk-command-not-found.c:721
 msgid "The package providing this file is:"
 msgstr "ਪੈਕੇਜ ਇਹ ਫਾਇਲ ਦਿੰਦਾ ਹੈ:"
 
 #. TRANSLATORS: as the user if we want to install a package to provide the command
-#: ../contrib/command-not-found/pk-command-not-found.c:623
+#: ../contrib/command-not-found/pk-command-not-found.c:726
 #, c-format
 msgid "Install package '%s' to provide command '%s'?"
 msgstr "ਕਮਾਂਡ '%2$s' ਦੇਣ ਲਈ ਪੈਕੇਜ '%1$s' ਇੰਸਟਾਲ ਕਰਨਾ ਹੈ?"
 
 #. TRANSLATORS: Show the user a list of packages that provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:644
+#: ../contrib/command-not-found/pk-command-not-found.c:747
 msgid "Packages providing this file are:"
 msgstr "ਪੈਕੇਜ ਇਹ ਫਾਇਲ ਦਿੰਦਾ ਹੈ:"
 
 #. TRANSLATORS: Show the user a list of packages that they can install to provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:653
+#: ../contrib/command-not-found/pk-command-not-found.c:756
 msgid "Suitable packages are:"
 msgstr "ਢੁੱਕਵੇਂ ਪੈਕੇਜ ਹਨ:"
 
 #. get selection
 #. TRANSLATORS: ask the user to choose a file to install
-#: ../contrib/command-not-found/pk-command-not-found.c:661
+#: ../contrib/command-not-found/pk-command-not-found.c:764
 msgid "Please choose a package to install"
 msgstr "ਇੰਸਟਾਲ ਕਰਨ ਲਈ ਪੈਕੇਜ ਚੁਣੋ ਜੀ"
 
-#. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/src/contents.cpp:298
-msgid "Getting package information..."
-msgstr "ਪੈਕੇਜ ਜਾਣਕਾਰੀ ਲਈ ਜਾ ਰਹੀ ਹੈ..."
+#. TRANSLATORS: we are starting to install the packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:187
+#, fuzzy
+msgid "Starting install"
+msgstr "ਇੰਸਟਾਲ ਲਈ"
 
-#. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/src/contents.cpp:304
+#. TRANSLATORS: we couldn't find the package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:397
+#, fuzzy, c-format
+msgid "Failed to find the package %s, or already installed: %s"
+msgstr "ਪੈਕੇਜ %s ਪਹਿਲਾਂ ਹੀ ਇੰਸਟਾਲ ਹੈ"
+
+#. command line argument, simulate what would be done, but don't actually do it
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:553
+msgid ""
+"Don't actually install any packages, only simulate what would be installed"
+msgstr ""
+
+#. command line argument, do we skip packages that depend on the ones specified
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:556
+msgid "Do not install dependencies of the core packages"
+msgstr ""
+
+#. command line argument, do we operate quietly
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:559
+msgid "Do not display information or progress"
+msgstr ""
+
+#. TRANSLATORS: tool that gets called when the command is not found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:577
+#, fuzzy
+msgid "PackageKit Debuginfo Installer"
+msgstr "ਪੈਕੇਜਕਿੱਟ ਕਨਸੋਲ ਇੰਟਰਫੇਸ"
+
+#. TRANSLATORS: the use needs to specify a list of package names on the command line
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:589
+#, fuzzy, c-format
+msgid "ERROR: Specify package names to install."
+msgstr "ਕੋਈ ਨਵਾਂ ਪੈਕੇਜ ਇੰਸਟਾਲ ਕਰਨ ਦੀ ਲੋੜ ਨਹੀਂ ਹੈ"
+
+#. TRANSLATORS: we are getting the list of repositories
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:623
+#, fuzzy, c-format
+msgid "Getting sources list"
+msgstr "ਪੈਕੇਜ ਲਿਸਟ ਲਈ ਜਾ ਰਹੀ ਹੈ"
+
+#. TRANSLATORS: all completed 100%
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:641
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:681
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:716
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:800
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:844
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:911
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:955
 #, c-format
-msgid "Run %s"
-msgstr "%s ਚਲਾਓ"
+msgid "OK."
+msgstr ""
 
-#. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/src/contents.cpp:310
-msgid "Installed version"
-msgstr "ਇੰਸਟਾਲ ਕੀਤੇ ਵਰਜਨ"
+#. TRANSLATORS: tell the user what we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:644
+#, c-format
+msgid "Found %i enabled and %i disabled sources."
+msgstr ""
 
-#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/src/contents.cpp:318
+#. TRANSLATORS: we're finding repositories that match out pattern
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:651
 #, c-format
-msgid "Run version %s now"
-msgstr "ਵਰਜਨ %s ਹੁਣੇ ਚਲਾਓ"
+msgid "Finding debugging sources"
+msgstr ""
 
-#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/src/contents.cpp:324
-msgid "Run now"
-msgstr "ਹੁਣੇ ਚਲਾਓ"
+#. TRANSLATORS: tell the user what we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:684
+#, c-format
+msgid "Found %i disabled debuginfo repos."
+msgstr ""
 
-#. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/src/contents.cpp:330
+#. TRANSLATORS: we're now enabling all the debug sources we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:691
 #, c-format
-msgid "Update to version %s"
-msgstr "ਵਰਜਨ %s ਲਈ ਅੱਪਡੇਟ ਕਰੋ"
+msgid "Enabling debugging sources"
+msgstr ""
 
-#. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/src/contents.cpp:336
+#. TRANSLATORS: operation was not successful
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:701
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:785
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:829
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:896
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:940
+msgid "FAILED."
+msgstr ""
+
+#. TRANSLATORS: tell the user how many we enabled
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:719
 #, c-format
-msgid "Install %s now"
-msgstr "%s ਹੁਣੇ ਇੰਸਟਾਲ ਕਰੋ"
+msgid "Enabled %i debugging sources."
+msgstr ""
 
-#. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/src/contents.cpp:339
-msgid "Version"
-msgstr "ਵਰਜਨ"
+#. TRANSLATORS: we're now finding packages that match in all the repos
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:726
+#, fuzzy, c-format
+msgid "Finding debugging packages"
+msgstr "ਪੈਕੇਜ ਨਾਂ ਲੱਭਿਆ ਜਾ ਰਿਹਾ ਹੈ।"
 
-#. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/src/contents.cpp:344
-msgid "No packages found for your system"
-msgstr "ਤੁਹਾਡੇ ਸਿਸਟਮ ਉੱਤੇ ਕੋਈ ਪੈਕੇਜ ਨਹੀਂ ਲੱਭਿਆ"
+#. TRANSLATORS: we couldn't find the package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:738
+#, fuzzy, c-format
+msgid "Failed to find the package %s: %s"
+msgstr "'%s' ਪੈਕੇਜ ਖੋਜਣ ਲਈ ਫੇਲ੍ਹ ਹੈ: %s"
 
-#. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/src/contents.cpp:349
-msgid "Installing..."
-msgstr "ਇੰਸਟਾਲ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ..."
+#. TRANSLATORS: we couldn't find the debuginfo package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:761
+#, fuzzy, c-format
+msgid "Failed to find the debuginfo package %s: %s"
+msgstr "'%s' ਪੈਕੇਜ ਖੋਜਣ ਲਈ ਫੇਲ੍ਹ ਹੈ: %s"
+
+#. TRANSLATORS: no debuginfo packages could be found to be installed
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:789
+#, fuzzy, c-format
+msgid "Found no packages to install."
+msgstr "ਕੋਈ ਨਵਾਂ ਪੈਕੇਜ ਇੰਸਟਾਲ ਕਰਨ ਦੀ ਲੋੜ ਨਹੀਂ ਹੈ"
+
+#. TRANSLATORS: tell the user we found some packages, and then list them
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:803
+#, fuzzy, c-format
+msgid "Found %i packages:"
+msgstr "ਪੈਕੇਜ ਡਾਊਨਲੋਡ ਕੀਤੇ ਜਾ ਰਹੇ ਹਨ"
+
+#. TRANSLATORS: tell the user we are searching for deps
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:819
+#, c-format
+msgid "Finding packages that depend on these packages"
+msgstr ""
+
+#. TRANSLATORS: could not install, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:832
+#, fuzzy, c-format
+msgid "Could not find dependant packages: %s"
+msgstr "'%s' ਪੈਕੇਜ ਖੋਜਣ ਲਈ ਫੇਲ੍ਹ ਹੈ: %s"
+
+#. TRANSLATORS: tell the user we found some more packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:848
+#, c-format
+msgid "Found %i extra packages."
+msgstr ""
+
+#. TRANSLATORS: tell the user we found some more packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:852
+#, fuzzy, c-format
+msgid "No extra packages required."
+msgstr "ਪੈਕੇਜ ਨਾਂ ਲੋੜੀਦਾ ਹੈ"
+
+#. TRANSLATORS: tell the user we found some packages (and deps), and then list them
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:861
+#, fuzzy, c-format
+msgid "Found %i packages to install:"
+msgstr "ਕੋਈ ਨਵਾਂ ਪੈਕੇਜ ਇੰਸਟਾਲ ਕਰਨ ਦੀ ਲੋੜ ਨਹੀਂ ਹੈ"
+
+#. TRANSLATORS: simulate mode is a testing mode where we quit before the action
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:874
+#, fuzzy, c-format
+msgid "Not installing packages in simulate mode"
+msgstr "ਪੈਕੇਜ ਇੰਸਟਾਲ ਕੀਤੇ ਜਾ ਰਹੇ ਹਨ"
+
+#. TRANSLATORS: could not install, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:899
+#, fuzzy, c-format
+msgid "Could not install packages: %s"
+msgstr "ਇਹ ਟੂਲ ਪੈਕੇਜ ਇੰਸਟਾਲ ਨਹੀਂ ਕਰ ਸਕਿਆ: %s"
+
+#. TRANSLATORS: we are now disabling all debuginfo repos we previously enabled
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:931
+#, c-format
+msgid "Disabling sources previously enabled"
+msgstr ""
+
+#. TRANSLATORS: no debuginfo packages could be found to be installed, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:943
+#, c-format
+msgid "Could not disable the debugging sources: %s"
+msgstr ""
+
+#. TRANSLATORS: we disabled all the debugging repos that we enabled before
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:958
+#, c-format
+msgid "Disabled %i debugging sources."
+msgstr ""
+
+#. TRANSLATORS: couldn't open device to write
+#: ../contrib/device-rebind/pk-device-rebind.c:61
+#, fuzzy
+msgid "Failed to open file"
+msgstr "ਫਾਇਲ ਲਈ ਖੋਜ ਫੇਲ੍ਹ ਹੈ"
+
+#. TRANSLATORS: could not write to the device
+#: ../contrib/device-rebind/pk-device-rebind.c:70
+#, fuzzy
+msgid "Failed to write to the file"
+msgstr "ਫਾਇਲ ਲਈ ਖੋਜ ਫੇਲ੍ਹ ਹੈ"
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:110
+#: ../contrib/device-rebind/pk-device-rebind.c:147
+#, fuzzy
+msgid "Failed to write to device"
+msgstr "ਡਿਸਕ ਉੱਤੇ ਸੰਭਾਲਣ ਲਈ ਫੇਲ੍ਹ ਹੈ"
+
+#. TRANSLATORS: the device could not be found in sysfs
+#: ../contrib/device-rebind/pk-device-rebind.c:175
+#, fuzzy
+msgid "Device could not be found"
+msgstr "ਪੈਕੇਜ ਨਹੀਂ ਲੱਭਿਆ ਜਾ ਸਕਿਆ"
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:202
+#, fuzzy
+msgid "Failed to unregister driver"
+msgstr "ਡਾਇਰੈਕਟਰੀ ਬਣਾਉਣ ਲਈ ਫੇਲ੍ਹ ਹੈ:"
+
+#. TRANSLATORS: we failed to bind the old driver
+#: ../contrib/device-rebind/pk-device-rebind.c:211
+#, fuzzy
+msgid "Failed to register driver"
+msgstr "ਡਾਇਰੈਕਟਰੀ ਬਣਾਉਣ ਲਈ ਫੇਲ੍ਹ ਹੈ:"
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:260
+#, fuzzy
+msgid "Device path not found"
+msgstr "ਡਾਇਰੈਕਟਰੀ ਨਹੀਂ ਲੱਭੀ"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:268
+msgid "Incorrect device path specified"
+msgstr ""
+
+#. command line argument, simulate what would be done, but don't actually do it
+#: ../contrib/device-rebind/pk-device-rebind.c:296
+msgid "Don't actually touch the hardware, only simulate what would be done"
+msgstr ""
+
+#. TRANSLATORS: command line option: a list of files to install
+#: ../contrib/device-rebind/pk-device-rebind.c:299
+msgid "Device paths"
+msgstr ""
+
+#. TRANSLATORS: tool that gets called when the device needs reloading after installing firmware
+#: ../contrib/device-rebind/pk-device-rebind.c:314
+#, fuzzy
+msgid "PackageKit Device Reloader"
+msgstr "ਪੈਕੇਜਕਿੱਟ ਸਰਵਿਸ ਪੈਕ"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:322
+msgid "You need to specify at least one valid device path"
+msgstr ""
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:332
+msgid "This script can only be used by the root user"
+msgstr ""
+
+#. TRANSLATORS: we're going to verify the path first
+#: ../contrib/device-rebind/pk-device-rebind.c:341
+msgid "Verifying device path"
+msgstr ""
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:346
+#, fuzzy
+msgid "Failed to verify device path"
+msgstr "ਫਾਇਲ ਲਈ ਖੋਜ ਫੇਲ੍ਹ ਹੈ"
+
+#. TRANSLATORS: we're going to try
+#: ../contrib/device-rebind/pk-device-rebind.c:360
+msgid "Attempting to rebind device"
+msgstr ""
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:365
+#, fuzzy
+msgid "Failed to rebind device"
+msgstr "ਡਾਇਰੈਕਟਰੀ ਬਣਾਉਣ ਲਈ ਫੇਲ੍ਹ ਹੈ:"
 
 #: ../data/packagekit-catalog.xml.in.h:1
 msgid "PackageKit Catalog"
@@ -925,95 +1274,175 @@ msgstr "ਪੈਕੇਜਕਿੱਟ ਪੈਕੇਜ ਲਿਸਟ"
 msgid "PackageKit Service Pack"
 msgstr "ਪੈਕੇਜਕਿੱਟ ਸਰਵਿਸ ਪੈਕ"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:1
+#. SECURITY:
+#. - Normal users do not require admin authentication to accept new
+#. licence agreements.
+#. - Change this to 'auth_admin' for environments where users should not
+#. be given the option to make legal decisions.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:7
 msgid "Accept EULA"
 msgstr "EULA ਮਨਜ਼ੂਰ"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:2
+#: ../policy/org.freedesktop.packagekit.policy.in.h:8
 msgid "Authentication is required to accept a EULA"
 msgstr "EULA  ਮਨਜ਼ੂਰ ਕਰਨ ਲਈ ਪਰਮਾਣਕਿਤਾ ਦੀ ਲੋੜ ਹੈ"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:3
-msgid "Authentication is required to cancel a task that was not started by yourself"
+#: ../policy/org.freedesktop.packagekit.policy.in.h:9
+msgid ""
+"Authentication is required to cancel a task that was not started by yourself"
 msgstr "ਤੁਹਾਡੇ ਵਲੋਂ ਨਾ ਸ਼ੁਰੂ ਕੀਤੀ ਗਈ ਟਾਸਕ ਨੂੰ ਰੱਦ ਕਰਨ ਲਈ ਪਰਮਾਣਕਿਤਾ ਦੀ ਲੋੜ ਹੈ"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:4
+#: ../policy/org.freedesktop.packagekit.policy.in.h:10
 msgid "Authentication is required to change software source parameters"
 msgstr "ਸਾਫਟਵੇਅਰ ਸਰੋਤ ਪੈਰਾਮੀਟਰ ਬਦਲਣ ਲਈ ਪਰਮਾਣਕਿਤਾ ਦੀ ਲੋੜ ਹੈ"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:5
+#: ../policy/org.freedesktop.packagekit.policy.in.h:11
 msgid ""
 "Authentication is required to consider a key used for signing packages as "
 "trusted"
 msgstr "ਪੈਕੇਜ ਟਰੱਸਟ ਕੀਤਾ ਬਣਾਉਣ ਲਈ ਸਾਈਨ ਵਾਸਤੇ ਕੁੰਜੀ ਸ਼ਾਮਲ ਕਰਨ ਲਈ ਪਰਮਾਣਕਿਤਾ ਦੀ ਲੋੜ ਹੈ"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:6
+#: ../policy/org.freedesktop.packagekit.policy.in.h:12
 msgid "Authentication is required to install a signed package"
 msgstr "ਸਾਈਨ ਕੀਤਾ ਪੈਕੇਜ ਇੰਸਟਾਲ ਕਰਨ ਲਈ ਪਰਮਾਣਕਿਤਾ ਦੀ ਲੋੜ ਹੈ"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:7
+#: ../policy/org.freedesktop.packagekit.policy.in.h:13
 msgid "Authentication is required to install an untrusted package"
 msgstr "ਅਣ-ਟਰੱਸਟ ਪੈਕੇਜ ਇੰਸਟਾਲ ਕਰਨ ਲਈ ਪਰਮਾਣਕਿਤਾ ਦੀ ਲੋੜ ਹੈ"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:8
+#: ../policy/org.freedesktop.packagekit.policy.in.h:14
 msgid "Authentication is required to refresh the system sources"
 msgstr "ਸਿਸਟਮ ਸਰੋਤ ਤਾਜ਼ਾ ਲਈ ਪਰਮਾਣਕਿਤਾ ਦੀ ਲੋੜ ਹੈ"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:9
+#: ../policy/org.freedesktop.packagekit.policy.in.h:15
+#, fuzzy
+msgid "Authentication is required to reload the device with a new driver"
+msgstr "ਸਿਸਟਮ ਸਰੋਤ ਤਾਜ਼ਾ ਲਈ ਪਰਮਾਣਕਿਤਾ ਦੀ ਲੋੜ ਹੈ"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:16
 msgid "Authentication is required to remove packages"
 msgstr "ਪੈਕੇਜ ਹਟਾਉਣ ਲਈ ਪਰਮਾਣਕਿਤਾ ਦੀ ਲੋੜ ਹੈ"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:10
+#: ../policy/org.freedesktop.packagekit.policy.in.h:17
 msgid "Authentication is required to rollback a transaction"
 msgstr "ਟਰਾਂਸੈਕਸ਼ਨ ਰੋਲਬੈਕ ਕਰਨ ਲਈ ਪਰਮਾਣਕਿਤਾ ਦੀ ਲੋੜ ਹੈ"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:11
+#: ../policy/org.freedesktop.packagekit.policy.in.h:18
 msgid ""
 "Authentication is required to set the network proxy used for downloading "
 "packages"
 msgstr "ਪੈਕੇਜ ਡਾਊਨਲੋਡ ਕਰਨ ਵਾਸਤੇ ਨੈੱਟਵਰਕ ਪਰਾਕਸੀ ਸੈੱਟ ਕਰਨ ਲਈ ਪਰਮਾਣਕਿਤਾ ਦੀ ਲੋੜ ਹੈ"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:12
+#: ../policy/org.freedesktop.packagekit.policy.in.h:19
 msgid "Authentication is required to update packages"
 msgstr "ਪੈਕੇਜ ਅੱਪਡੇਟ ਕਰਨ ਵਾਸਤੇ ਪਰਮਾਣਕਿਤਾ ਦੀ ਲੋੜ ਹੈ"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:13
+#. SECURITY:
+#. - Normal users are allowed to cancel their own task without
+#. authentication, but a different user id needs the admin password
+#. to cancel another users task.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:25
 msgid "Cancel foreign task"
 msgstr "ਬਾਹਰੀ ਟਾਸਕ ਰੱਦ ਕਰੋ"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:14
+#. SECURITY:
+#. - Normal users require admin authentication to enable or disable
+#. software sources as this can be used to enable new updates or
+#. install different versions of software.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:31
 msgid "Change software source parameters"
 msgstr "ਸਾਫਟਵੇਅਰ ਸਰੋਤ ਪੈਰਾਮੀਟਰ ਬਦਲੋ"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:15
+#. SECURITY:
+#. - Normal users do not need authentication to install signed packages
+#. from signed repositories, as this cannot exploit a system.
+#. - Paranoid users (or parents!) can change this to 'auth_admin' or
+#. 'auth_admin_keep'.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:38
 msgid "Install signed package"
 msgstr "ਸਾਈਨ ਕੀਤੇ ਪੈਕੇਜ ਇੰਸਟਾਲ"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:16
+#. SECURITY:
+#. - Normal users require admin authentication to install untrusted or
+#. unrecognised packages, as allowing users to do this without a
+#. password would be a massive security hole.
+#. - This is not retained as each package should be authenticated.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:45
 msgid "Install untrusted local file"
 msgstr "ਅਣ-ਟਰੱਸਟ ਲੋਕਲ ਫਾਇਲ ਇੰਸਟਾਲ"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:17
+#. SECURITY:
+#. - Normal users do not require admin authentication to refresh the
+#. cache, as this doesn't actually install or remove software.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:50
 msgid "Refresh system sources"
 msgstr "ਸਿਸਟਮ ਸਰੋਤ ਤਾਜ਼ਾ ਕਰੋ"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:18
+#. SECURITY:
+#. - Normal users require admin authentication to rebind a driver
+#. so that it works after we install firmware.
+#. - This should not be set to 'yes' as unprivileged users could then
+#. try to rebind drivers in use, for instance security authentication
+#. devices.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:58
+msgid "Reload a device"
+msgstr ""
+
+#. SECURITY:
+#. - Normal users require admin authentication to remove packages as
+#. this can make the system unbootable or stop other applications from
+#. working.
+#. - Be sure to close the tool used to remove the packages after the
+#. admin authentication has been obtained, otherwise packages can still
+#. be removed. If this is not possible, change this authentication to
+#. 'auth_admin'.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:68
 msgid "Remove package"
 msgstr "ਪੈਕੇਜ ਹਟਾਓ"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:19
+#. SECURITY:
+#. - Normal users require admin authentication to rollback system state
+#. as this will change a large number of packages, and could expose the
+#. system to previously patched security vulnerabilities.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:74
 msgid "Rollback to a previous transaction"
 msgstr "ਪਿਛਲੀ ਟਰਾਂਸੈਕਸ਼ਨ ਰੋਲ-ਬੈਕ ਕਰੋ"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:20
+#. SECURITY:
+#. - Normal users do not require admin authentication to set the proxy
+#. used for downloading packages.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:79
 msgid "Set network proxy"
 msgstr "ਨੈੱਟਵਰਕ ਪਰਾਕਸੀ ਸੈੱਟ ਕਰੋ"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:21
+#. SECURITY:
+#. - Normal users require admin authentication to add signing keys.
+#. - This implies adding an explicit trust, and should not be granted
+#. without a secure authentication.
+#. - This is not kept as each package should be authenticated.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:86
 msgid "Trust a key used for signing packages"
 msgstr "ਪੈਕੇਜ ਸਾਈਨ ਲਈ ਵਰਤੀ ਕੁੰਜੀ ਉੱਤੇ ਟਰੱਸਟ"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:22
+#. SECURITY:
+#. - Normal users do not require admin authentication to update the
+#. system as the packages will be signed, and the action is required
+#. to update the system when unattended.
+#. - Changing this to anything other than 'yes' will break unattended
+#. updates.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:94
 msgid "Update packages"
 msgstr "ਪੈਕੇਜ ਅੱਪਡੇਟ"
 
@@ -1080,10 +1509,52 @@ msgid "Cannot connect to the system bus"
 msgstr "ਸਿਸਟਮ ਬੱਸ ਨਾਲ ਕੁਨੈਕਟ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ"
 
 #. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error follows
-#: ../src/pk-main.c:331
+#: ../src/pk-main.c:334
 msgid "Error trying to start:"
 msgstr "ਸ਼ੁਰੂ ਕਰਨ ਲਈ ਗਲਤੀ:"
 
+#: ../src/pk-polkit-action-lookup.c:147
+#, fuzzy
+msgid "To install debugging packages, extra sources need to be enabled"
+msgstr "ਕੋਈ ਨਵਾਂ ਪੈਕੇਜ ਇੰਸਟਾਲ ਕਰਨ ਦੀ ਲੋੜ ਨਹੀਂ ਹੈ"
+
+#. TRANSLATORS: is not GPG signed
+#: ../src/pk-polkit-action-lookup.c:168 ../src/pk-polkit-action-lookup.c:187
+msgid "The software is not from a trusted source."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:173
+msgid "Do not update this package unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:174
+msgid "Do not update these packages unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:192
+msgid "Do not install this package unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:193
+msgid "Do not install these packages unless you are sure it is safe to do so."
+msgstr ""
+
+#. TRANSLATORS: warn the user that all bets are off
+#: ../src/pk-polkit-action-lookup.c:199
+msgid "Malicious software can damage your computer or cause other harm."
+msgstr ""
+
+#. TRANSLATORS: too many packages to list each one
+#: ../src/pk-polkit-action-lookup.c:274
+#, fuzzy
+msgid "Many packages"
+msgstr "ਪੈਕੇਜ ਅੱਪਡੇਟ"
+
+#. TRANSLATORS: if the transaction is forced to install only trusted packages
+#: ../src/pk-polkit-action-lookup.c:334
+msgid "Only trusted"
+msgstr ""
+
 #~ msgid "The action, one of 'create', 'add', or 'remove'"
 #~ msgstr "ਕਾਰਵਾਈ 'ਬਣਾਓ', 'ਸ਼ਾਮਲ', ਜਾਂ 'ਹਟਾਓ'"
 
diff --git a/po/pl.po b/po/pl.po
index 3000dc6..f7a5bfb 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -5,7 +5,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: pl\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-08-22 02:51+0000\n"
+"POT-Creation-Date: 2009-08-24 11:06+0100\n"
 "PO-Revision-Date: 2009-08-22 12:10+0200\n"
 "Last-Translator: Piotr DrÄ…g <piotrdrag at gmail.com>\n"
 "Language-Team: Polish <pl at li.org>\n"
@@ -16,122 +16,122 @@ msgstr ""
 "|| n%100>=20) ? 1 : 2);\n"
 
 #. TRANSLATORS: this is an atomic transaction
-#: ../client/pk-console.c:231
+#: ../client/pk-console.c:235
 msgid "Transaction"
 msgstr "Transakcja"
 
 #. TRANSLATORS: this is the time the transaction was started in system timezone
-#: ../client/pk-console.c:233
+#: ../client/pk-console.c:237
 msgid "System time"
 msgstr "Czas systemowy"
 
 #. TRANSLATORS: this is if the transaction succeeded or not
-#: ../client/pk-console.c:235
+#: ../client/pk-console.c:239
 msgid "Succeeded"
 msgstr "Powodzenie"
 
 #. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:235 ../client/pk-console.c:402
+#: ../client/pk-console.c:239 ../client/pk-console.c:406
 msgid "True"
 msgstr "Prawda"
 
-#: ../client/pk-console.c:235 ../client/pk-console.c:402
+#: ../client/pk-console.c:239 ../client/pk-console.c:406
 msgid "False"
 msgstr "Fałsz"
 
 #. TRANSLATORS: this is the transactions role, e.g. "update-system"
 #. TRANSLATORS: the trasaction role, e.g. update-system
-#: ../client/pk-console.c:237 ../src/pk-polkit-action-lookup.c:327
+#: ../client/pk-console.c:241 ../src/pk-polkit-action-lookup.c:327
 msgid "Role"
 msgstr "Rola"
 
 #. TRANSLATORS: this is The duration of the transaction
-#: ../client/pk-console.c:242
+#: ../client/pk-console.c:246
 msgid "Duration"
 msgstr "Czas trwania"
 
-#: ../client/pk-console.c:242
+#: ../client/pk-console.c:246
 msgid "(seconds)"
 msgstr "(sekundy)"
 
 #. TRANSLATORS: this is The command line used to do the action
 #. TRANSLATORS: the command line of the thing that wants the authentication
-#: ../client/pk-console.c:246 ../src/pk-polkit-action-lookup.c:341
+#: ../client/pk-console.c:250 ../src/pk-polkit-action-lookup.c:341
 msgid "Command line"
 msgstr "Wiersz poleceń"
 
 #. TRANSLATORS: this is the user ID of the user that started the action
-#: ../client/pk-console.c:248
+#: ../client/pk-console.c:252
 msgid "User ID"
 msgstr "Identyfikator użytkownika"
 
 #. TRANSLATORS: this is the username, e.g. hughsie
-#: ../client/pk-console.c:255
+#: ../client/pk-console.c:259
 msgid "Username"
 msgstr "Nazwa użytkownika"
 
 #. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
-#: ../client/pk-console.c:259
+#: ../client/pk-console.c:263
 msgid "Real name"
 msgstr "ImiÄ™ i nazwisko"
 
-#: ../client/pk-console.c:267
+#: ../client/pk-console.c:271
 msgid "Affected packages:"
 msgstr "Dotyczy pakietów:"
 
-#: ../client/pk-console.c:269
+#: ../client/pk-console.c:273
 msgid "Affected packages: None"
 msgstr "Dotyczy pakietów: żadnych"
 
 #. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:294
+#: ../client/pk-console.c:298
 msgid "Distribution"
 msgstr "Dystrybucja"
 
 #. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:296
+#: ../client/pk-console.c:300
 msgid "Type"
 msgstr "Typ"
 
 #. TRANSLATORS: this is any summary text describing the upgrade
 #. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:298 ../client/pk-console.c:321
+#: ../client/pk-console.c:302 ../client/pk-console.c:325
 msgid "Summary"
 msgstr "Podsumowanie"
 
 #. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:310
+#: ../client/pk-console.c:314
 msgid "Category"
 msgstr "Kategoria"
 
 #. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:312
+#: ../client/pk-console.c:316
 msgid "ID"
 msgstr "Identyfikator"
 
 #. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:315
+#: ../client/pk-console.c:319
 msgid "Parent"
 msgstr "Nadrzędna"
 
 #. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:318
+#: ../client/pk-console.c:322
 msgid "Name"
 msgstr "Nazwa"
 
 #. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:324
+#: ../client/pk-console.c:328
 msgid "Icon"
 msgstr "Ikona"
 
 #. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:339
+#: ../client/pk-console.c:343
 msgid "Details about the update:"
 msgstr "Szczegóły aktualizacji:"
 
 #. TRANSLATORS: details about the update, package name and version
 #. TRANSLATORS: title, the names of the packages that the method is processing
-#: ../client/pk-console.c:341 ../src/pk-polkit-action-lookup.c:352
+#: ../client/pk-console.c:345 ../src/pk-polkit-action-lookup.c:352
 msgid "Package"
 msgid_plural "Packages"
 msgstr[0] "Pakiet"
@@ -139,110 +139,110 @@ msgstr[1] "Pakiety"
 msgstr[2] "Pakietów"
 
 #. TRANSLATORS: details about the update, any packages that this update updates
-#: ../client/pk-console.c:344
+#: ../client/pk-console.c:348
 msgid "Updates"
 msgstr "Aktualizuje"
 
 #. TRANSLATORS: details about the update, any packages that this update obsoletes
-#: ../client/pk-console.c:348
+#: ../client/pk-console.c:352
 msgid "Obsoletes"
 msgstr "Zastępuje"
 
 #. TRANSLATORS: details about the update, the vendor URLs
-#: ../client/pk-console.c:352
+#: ../client/pk-console.c:356
 msgid "Vendor"
 msgstr "Producent"
 
 #. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:356
+#: ../client/pk-console.c:360
 msgid "Bugzilla"
 msgstr "Bugzilla"
 
 #. TRANSLATORS: details about the update, the CVE URLs
-#: ../client/pk-console.c:360
+#: ../client/pk-console.c:364
 msgid "CVE"
 msgstr "CVE"
 
 #. TRANSLATORS: details about the update, if the package requires a restart
-#: ../client/pk-console.c:364
+#: ../client/pk-console.c:368
 msgid "Restart"
 msgstr "Uruchom ponownie"
 
 #. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:368
+#: ../client/pk-console.c:372
 msgid "Update text"
 msgstr "Tekst aktualizacji"
 
 #. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:372
+#: ../client/pk-console.c:376
 msgid "Changes"
 msgstr "Zmiany"
 
 #. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:376
+#: ../client/pk-console.c:380
 msgid "State"
 msgstr "Stan"
 
 #. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:381
+#: ../client/pk-console.c:385
 msgid "Issued"
 msgstr "Wydano"
 
 #. TRANSLATORS: details about the update, date the update was updated
-#: ../client/pk-console.c:386
+#: ../client/pk-console.c:390
 msgid "Updated"
 msgstr "Zaktualizowano"
 
-#: ../client/pk-console.c:473 ../client/pk-console.c:475
+#: ../client/pk-console.c:477 ../client/pk-console.c:479
 msgid "Percentage"
 msgstr "Procentowo"
 
-#: ../client/pk-console.c:475
+#: ../client/pk-console.c:479
 msgid "Unknown"
 msgstr "Nieznane"
 
 #. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:517
+#: ../client/pk-console.c:521
 msgid "System restart required by:"
 msgstr "Ponowne uruchomienie systemu jest wymagane przez:"
 
 #. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:520
+#: ../client/pk-console.c:524
 msgid "Session restart required:"
 msgstr "Wymagane jest ponowne uruchomienie sesji:"
 
 #. TRANSLATORS: a package requires the system to be restarted due to a security update
-#: ../client/pk-console.c:523
+#: ../client/pk-console.c:527
 msgid "System restart (security) required by:"
 msgstr "Ponowne uruchomienie systemu jest wymagane przez:"
 
 #. TRANSLATORS: a package requires the session to be restarted due to a security update
-#: ../client/pk-console.c:526
+#: ../client/pk-console.c:530
 msgid "Session restart (security) required:"
 msgstr "Wymagane jest ponowne uruchomienie sesji (z powodu bezpieczeństwa):"
 
 #. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:529
+#: ../client/pk-console.c:533
 msgid "Application restart required by:"
 msgstr "Ponowne uruchomienie programu jest wymagane przez:"
 
 #. TRANSLATORS: a package needs to restart their system
-#: ../client/pk-console.c:584
+#: ../client/pk-console.c:588
 msgid "Please restart the computer to complete the update."
 msgstr "Proszę uruchomić ponownie komputer, aby zakończyć aktualizację."
 
 #. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:587
+#: ../client/pk-console.c:591
 msgid "Please logout and login to complete the update."
 msgstr "Proszę wylogować się i zalogować, aby zakończyć aktualizację."
 
 #. TRANSLATORS: a package needs to restart the application
-#: ../client/pk-console.c:590
+#: ../client/pk-console.c:594
 msgid "Please restart the application as it is being used."
 msgstr "Proszę uruchomić program ponownie, ponieważ jest używany."
 
 #. TRANSLATORS: a package needs to restart their system (due to security)
-#: ../client/pk-console.c:593
+#: ../client/pk-console.c:597
 msgid ""
 "Please restart the computer to complete the update as important security "
 "updates have been installed."
@@ -251,7 +251,7 @@ msgstr ""
 "zainstalowano aktualizacje bezpieczeństwa."
 
 #. TRANSLATORS: a package needs to restart the session (due to security)
-#: ../client/pk-console.c:596
+#: ../client/pk-console.c:600
 msgid ""
 "Please logout and login to complete the update as important security updates "
 "have been installed."
@@ -260,20 +260,20 @@ msgstr ""
 "zainstalowano aktualizacje bezpieczeństwa."
 
 #. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:723
+#: ../client/pk-console.c:727
 #, c-format
 msgid "The package %s is already installed"
 msgstr "Pakiet %s jest już zainstalowany"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:731
+#: ../client/pk-console.c:735
 #, c-format
 msgid "The package %s could not be installed: %s"
 msgstr "Nie można zainstalować pakietu %s: %s"
 
 #. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
-#: ../client/pk-console.c:756 ../client/pk-console.c:779
-#: ../client/pk-console.c:875 ../client/pk-console.c:992
+#: ../client/pk-console.c:760 ../client/pk-console.c:783
+#: ../client/pk-console.c:879 ../client/pk-console.c:996
 #: ../client/pk-tools-common.c:62 ../client/pk-tools-common.c:81
 #: ../client/pk-tools-common.c:89
 #, c-format
@@ -281,254 +281,254 @@ msgid "Internal error: %s"
 msgstr "Wewnętrzny błąd: %s"
 
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:764 ../client/pk-console.c:1388
+#: ../client/pk-console.c:768 ../client/pk-console.c:1392
 #, c-format
 msgid "This tool could not install the packages: %s"
 msgstr "To narzędzie nie może zainstalować pakietów: %s"
 
 #. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:787
+#: ../client/pk-console.c:791
 #, c-format
 msgid "This tool could not install the files: %s"
 msgstr "To narzędzie nie może zainstalować plików: %s"
 
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:843
+#: ../client/pk-console.c:847
 #, c-format
 msgid "This tool could not remove %s: %s"
 msgstr "To narzędzie nie może usunąć %s: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:866 ../client/pk-console.c:904
-#: ../client/pk-console.c:937
+#: ../client/pk-console.c:870 ../client/pk-console.c:908
+#: ../client/pk-console.c:941
 #, c-format
 msgid "This tool could not remove the packages: %s"
 msgstr "To narzędzie nie może usunąć pakietów: %s"
 
 #. TRANSLATORS: When removing, we might have to remove other dependencies
-#: ../client/pk-console.c:916
+#: ../client/pk-console.c:920
 msgid "The following packages have to be removed:"
 msgstr "Następujące pakiety muszą zostać usunięte:"
 
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:923
+#: ../client/pk-console.c:927
 msgid "Proceed removing additional packages?"
 msgstr "Kontynuować usuwanie dodatkowych pakietów?"
 
 #. TRANSLATORS: We did not remove any packages
-#: ../client/pk-console.c:928
+#: ../client/pk-console.c:932
 msgid "The package removal was canceled!"
 msgstr "Anulowano usunięcie pakietu!"
 
 #. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:969
+#: ../client/pk-console.c:973
 #, c-format
 msgid "This tool could not download the package %s as it could not be found"
 msgstr "To narzędzie nie może pobrać pakietu %s, ponieważ nie można go znaleźć"
 
 #. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:1000
+#: ../client/pk-console.c:1004
 #, c-format
 msgid "This tool could not download the packages: %s"
 msgstr "To narzędzie nie może pobrać pakietów: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1027 ../client/pk-console.c:1036
+#: ../client/pk-console.c:1031 ../client/pk-console.c:1040
 #, c-format
 msgid "This tool could not update %s: %s"
 msgstr "To narzędzie nie może zaktualizować %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1058 ../client/pk-console.c:1066
+#: ../client/pk-console.c:1062 ../client/pk-console.c:1070
 #, c-format
 msgid "This tool could not get the requirements for %s: %s"
 msgstr "To narzędzie nie może uzyskać wymagań dla %s: %s"
 
 #. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:1088 ../client/pk-console.c:1096
+#: ../client/pk-console.c:1092 ../client/pk-console.c:1100
 #, c-format
 msgid "This tool could not get the dependencies for %s: %s"
 msgstr "To narzędzie nie może uzyskać zależności dla %s: %s"
 
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:1118 ../client/pk-console.c:1126
+#: ../client/pk-console.c:1122 ../client/pk-console.c:1130
 #, c-format
 msgid "This tool could not get package details for %s: %s"
 msgstr "To narzędzie nie może uzyskać szczegółów pakietu %s: %s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1148
+#: ../client/pk-console.c:1152
 #, c-format
 msgid "This tool could not find the files for %s: %s"
 msgstr "To narzędzie nie może znaleźć plików dla %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1156
+#: ../client/pk-console.c:1160
 #, c-format
 msgid "This tool could not get the file list for %s: %s"
 msgstr "To narzędzie nie może uzyskać listy plików dla %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of packages. The filename follows
-#: ../client/pk-console.c:1178
+#: ../client/pk-console.c:1182
 #, c-format
 msgid "File already exists: %s"
 msgstr "Plik już istnieje: %s"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1183 ../client/pk-console.c:1239
-#: ../client/pk-console.c:1314
+#: ../client/pk-console.c:1187 ../client/pk-console.c:1243
+#: ../client/pk-console.c:1318
 msgid "Getting package list"
 msgstr "Pobieranie listy pakietów"
 
 #. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1189 ../client/pk-console.c:1245
-#: ../client/pk-console.c:1320
+#: ../client/pk-console.c:1193 ../client/pk-console.c:1249
+#: ../client/pk-console.c:1324
 #, c-format
 msgid "This tool could not get package list: %s"
 msgstr "To narzędzie nie może pobrać listy pakietów: %s"
 
 #. TRANSLATORS: There was an error saving the list
-#: ../client/pk-console.c:1200
+#: ../client/pk-console.c:1204
 #, c-format
 msgid "Failed to save to disk"
 msgstr "Zapisanie na dysku nie powiodło się"
 
 #. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1234 ../client/pk-console.c:1309
+#: ../client/pk-console.c:1238 ../client/pk-console.c:1313
 #, c-format
 msgid "File does not exist: %s"
 msgstr "Plik nie istnieje: %s"
 
 #. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1266
+#: ../client/pk-console.c:1270
 msgid "Packages to add"
 msgstr "Pakiety do dodania"
 
 #. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1274
+#: ../client/pk-console.c:1278
 msgid "Packages to remove"
 msgstr "Pakiety do usunięcia"
 
 #. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1342
+#: ../client/pk-console.c:1346
 #, c-format
 msgid "No new packages need to be installed"
 msgstr "Nie trzeba instalować nowych pakietów"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1348
+#: ../client/pk-console.c:1352
 msgid "To install"
 msgstr "Do zainstalowania"
 
 #. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1360
+#: ../client/pk-console.c:1364
 msgid "Searching for package: "
 msgstr "Wyszukiwanie pakietu: "
 
 #. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1364
+#: ../client/pk-console.c:1368
 msgid "not found."
 msgstr "nie znaleziono."
 
 #. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1375
+#: ../client/pk-console.c:1379
 #, c-format
 msgid "No packages can be found to install"
 msgstr "Nie można znaleźć pakietów do zainstalowania"
 
 #. TRANSLATORS: installing new packages from package list
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
-#: ../client/pk-console.c:1381
+#: ../client/pk-console.c:1385
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:886
 #, c-format
 msgid "Installing packages"
 msgstr "Instalowanie pakietów"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1417
+#: ../client/pk-console.c:1421
 #, c-format
 msgid "This tool could not find the update details for %s: %s"
 msgstr "To narzędzie nie może znaleźć szczegółów aktualizacji dla %s: %s"
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1425
+#: ../client/pk-console.c:1429
 #, c-format
 msgid "This tool could not get the update details for %s: %s"
 msgstr "To narzędzie nie może uzyskać szczegółów aktualizacji dla %s: %s"
 
 #. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
-#: ../client/pk-console.c:1456
+#: ../client/pk-console.c:1460
 msgid "Error:"
 msgstr "BÅ‚Ä…d:"
 
 #. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1470
+#: ../client/pk-console.c:1474
 msgid "Package description"
 msgstr "Opis pakietu"
 
 #. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
-#: ../client/pk-console.c:1486
+#: ../client/pk-console.c:1490
 msgid "Message:"
 msgstr "Komunikat:"
 
 #. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1514
+#: ../client/pk-console.c:1518
 msgid "Package files"
 msgstr "Pliki pakietu"
 
 #. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1522
+#: ../client/pk-console.c:1526
 msgid "No files"
 msgstr "Brak plików"
 
 #. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1545
+#: ../client/pk-console.c:1549
 msgid "Repository signature required"
 msgstr "Wymagany jest podpis repozytorium"
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1555
+#: ../client/pk-console.c:1559
 msgid "Do you accept this signature?"
 msgstr "Zaakceptować ten podpis?"
 
 #. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1559
+#: ../client/pk-console.c:1563
 msgid "The signature was not accepted."
 msgstr "Podpis nie został zaakceptowany."
 
 #. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1593
+#: ../client/pk-console.c:1597
 msgid "End user license agreement required"
 msgstr "Licencja jest wymagana"
 
 #. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1600
+#: ../client/pk-console.c:1604
 msgid "Do you agree to this license?"
 msgstr "Zaakceptować tę licencję?"
 
 #. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1604
+#: ../client/pk-console.c:1608
 msgid "The license was refused."
 msgstr "Odrzucono licencjÄ™."
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1633
+#: ../client/pk-console.c:1637
 msgid "The daemon crashed mid-transaction!"
 msgstr "Demon zawiesił się w połowie transakcji!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1686
+#: ../client/pk-console.c:1690
 msgid "PackageKit Console Interface"
 msgstr "Interfejs konsoli PackageKit"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1688
+#: ../client/pk-console.c:1692
 msgid "Subcommands:"
 msgstr "Podpolecenia:"
 
 #. TRANSLATORS: command line argument, if we should show debugging information
 #. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:1781 ../client/pk-generate-pack.c:185
+#: ../client/pk-console.c:1785 ../client/pk-generate-pack.c:185
 #: ../client/pk-monitor.c:128
 #: ../contrib/command-not-found/pk-command-not-found.c:616
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:550
@@ -537,148 +537,148 @@ msgid "Show extra debugging information"
 msgstr "Wyświetla dodatkowe informacje o debugowaniu"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1784 ../client/pk-monitor.c:130
+#: ../client/pk-console.c:1788 ../client/pk-monitor.c:130
 msgid "Show the program version and exit"
 msgstr "Wyświetla wersję programu i wyłącza"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1787
+#: ../client/pk-console.c:1791
 msgid "Set the filter, e.g. installed"
 msgstr "Ustawia filtr, np. zainstalowane"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1790
+#: ../client/pk-console.c:1794
 msgid "Exit without waiting for actions to complete"
 msgstr "Wyłącza bez oczekiwania na zakończenie działań"
 
 #. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:1817
+#: ../client/pk-console.c:1821
 msgid "This tool could not connect to system DBUS."
 msgstr "To narzędzie nie może połączyć się z systemowym D-Bus."
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1907
+#: ../client/pk-console.c:1911
 msgid "The filter specified was invalid"
 msgstr "Podany filtr jest nieprawidłowy"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1926
+#: ../client/pk-console.c:1930
 msgid "A search type is required, e.g. name"
 msgstr "Wymagany jest typ wyszukiwania, np. nazwa"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1933 ../client/pk-console.c:1942
-#: ../client/pk-console.c:1951 ../client/pk-console.c:1960
+#: ../client/pk-console.c:1937 ../client/pk-console.c:1946
+#: ../client/pk-console.c:1955 ../client/pk-console.c:1964
 msgid "A search term is required"
 msgstr "Wymagany jest wyszukiwany termin"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1967
+#: ../client/pk-console.c:1971
 msgid "Invalid search type"
 msgstr "Nieprawidłowy typ wyszukiwania"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1973
+#: ../client/pk-console.c:1977
 msgid "A package name or filename to install is required"
 msgstr "Wymagana jest nazwa pakietu lub pliku do zainstalowania"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1982
+#: ../client/pk-console.c:1986
 msgid "A type, key_id and package_id are required"
 msgstr "Wymagany jest typ, key_id i package_id"
 
 #. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:1991
+#: ../client/pk-console.c:1995
 msgid "A package name to remove is required"
 msgstr "Wymagana jest nazwa pakietu do usunięcia"
 
 #. TRANSLATORS: the user did not specify anything about what to download or where
-#: ../client/pk-console.c:1999
+#: ../client/pk-console.c:2003
 msgid "A destination directory and the package names to download are required"
 msgstr "Wymagany jest katalog docelowy i nazwy pakietów do pobrania"
 
 #. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:2006
+#: ../client/pk-console.c:2010
 msgid "Directory not found"
 msgstr "Nie znaleziono katalogu"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2014
+#: ../client/pk-console.c:2018
 msgid "A licence identifier (eula-id) is required"
 msgstr "Wymagany jest identyfikator licencji (eula-id)"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2024
+#: ../client/pk-console.c:2028
 msgid "A transaction identifier (tid) is required"
 msgstr "Wymagany jest identyfikator transakcji (tid)"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:2041
+#: ../client/pk-console.c:2045
 msgid "A package name to resolve is required"
 msgstr "Wymagana jest nazwa pakietu do rozwiÄ…zania"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:2050 ../client/pk-console.c:2059
+#: ../client/pk-console.c:2054 ../client/pk-console.c:2063
 msgid "A repository name is required"
 msgstr "Wymagana jest nazwa repozytorium"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2068
+#: ../client/pk-console.c:2072
 msgid "A repo name, parameter and value are required"
 msgstr "Wymagana jest nazwa, parametr i wartość repozytorium"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:2082
+#: ../client/pk-console.c:2086
 msgid "An action, e.g. 'update-system' is required"
 msgstr "Wymagane jest działanie, np. \"update-system\""
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:2089
+#: ../client/pk-console.c:2093
 msgid "A correct role is required"
 msgstr "Wymagana jest bieżąca rola"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2096
+#: ../client/pk-console.c:2100
 msgid "Failed to get the time since this action was last completed"
 msgstr ""
 "Uzyskanie czasu od ostatniego zakończenia tego działania nie powiodło się"
 
 #. TRANSLATORS: The user did not provide a package name
 #. TRANSLATORS: This is when the user fails to supply the package name
-#: ../client/pk-console.c:2106 ../client/pk-console.c:2118
-#: ../client/pk-console.c:2127 ../client/pk-console.c:2145
-#: ../client/pk-console.c:2154 ../client/pk-generate-pack.c:241
+#: ../client/pk-console.c:2110 ../client/pk-console.c:2122
+#: ../client/pk-console.c:2131 ../client/pk-console.c:2149
+#: ../client/pk-console.c:2158 ../client/pk-generate-pack.c:241
 msgid "A package name is required"
 msgstr "Wymagana jest nazwa pakietu"
 
 #. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:2136
+#: ../client/pk-console.c:2140
 msgid "A package provide string is required"
 msgstr "Wymagany jest łańcuch dostarczania pakietu"
 
 #. TRANSLATORS: The user didn't specify a filename to create as a list
-#: ../client/pk-console.c:2163
+#: ../client/pk-console.c:2167
 msgid "A list file name to create is required"
 msgstr "Wymagana jest lista nazw plików do utworzenia"
 
 #. TRANSLATORS: The user didn't specify a filename to open as a list
-#: ../client/pk-console.c:2173 ../client/pk-console.c:2183
+#: ../client/pk-console.c:2177 ../client/pk-console.c:2187
 msgid "A list file to open is required"
 msgstr "Wymagana jest lista plików do otwarcia"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2237
+#: ../client/pk-console.c:2241
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "Opcja \"%s\" nie jest obsługiwana"
 
 #. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2250
+#: ../client/pk-console.c:2254
 msgid "Incorrect privileges for this operation"
 msgstr "Niepoprawne uprawnienia dla tego działania"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2253
+#: ../client/pk-console.c:2257
 msgid "Command failed"
 msgstr "Polecenie nie powiodło się"
 
@@ -834,56 +834,56 @@ msgid "Please enter a number from 1 to %i: "
 msgstr "Proszę podać numer od 1 do %i: "
 
 #. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/pk-plugin-install.c:464
+#: ../contrib/browser-plugin/pk-plugin-install.c:466
 msgid "Getting package information..."
 msgstr "Pobieranie informacji o pakiecie..."
 
 #. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/pk-plugin-install.c:470
+#: ../contrib/browser-plugin/pk-plugin-install.c:472
 #, c-format
 msgid "Run %s"
 msgstr "Uruchom %s"
 
 #. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:476
+#: ../contrib/browser-plugin/pk-plugin-install.c:478
 msgid "Installed version"
 msgstr "Zainstalowana wersja"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:484
+#: ../contrib/browser-plugin/pk-plugin-install.c:486
 #, c-format
 msgid "Run version %s now"
 msgstr "Uruchom wersjÄ™ %s"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:490
+#: ../contrib/browser-plugin/pk-plugin-install.c:492
 msgid "Run now"
 msgstr "Uruchom teraz"
 
 #. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:496
+#: ../contrib/browser-plugin/pk-plugin-install.c:498
 #, c-format
 msgid "Update to version %s"
 msgstr "Zaktualizuj do wersji %s"
 
 #. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:502
+#: ../contrib/browser-plugin/pk-plugin-install.c:504
 #, c-format
 msgid "Install %s now"
 msgstr "Zainstaluj %s"
 
 #. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:505
+#: ../contrib/browser-plugin/pk-plugin-install.c:507
 msgid "Version"
 msgstr "Wersja"
 
 #. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/pk-plugin-install.c:510
+#: ../contrib/browser-plugin/pk-plugin-install.c:512
 msgid "No packages found for your system"
 msgstr "Nie znaleziono pakietów dla systemu"
 
 #. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/pk-plugin-install.c:515
+#: ../contrib/browser-plugin/pk-plugin-install.c:517
 msgid "Installing..."
 msgstr "Instalowanie..."
 
@@ -1307,7 +1307,9 @@ msgstr "Wymagane jest uwierzytelnienie, aby odświeżyć źródła systemu"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:15
 msgid "Authentication is required to reload the device with a new driver"
-msgstr "Wymagane jest uwierzytelnienie, aby ponownie wczytać urządzenie za pomocą nowego sterownika"
+msgstr ""
+"Wymagane jest uwierzytelnienie, aby ponownie wczytać urządzenie za pomocą "
+"nowego sterownika"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:16
 msgid "Authentication is required to remove packages"
diff --git a/po/pt.po b/po/pt.po
index 997b265..138b073 100644
--- a/po/pt.po
+++ b/po/pt.po
@@ -2,7 +2,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: packagekit\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-08-05 08:30+0000\n"
+"POT-Creation-Date: 2009-08-24 11:06+0100\n"
 "PO-Revision-Date: \n"
 "Last-Translator: Rui Gouveia <rui.gouveia at globaltek.pt>\n"
 "Language-Team: pt <fedora-trans-pt at redhat.com>\n"
@@ -15,687 +15,677 @@ msgstr ""
 "X-Poedit-Basepath: /home/ruigo/src/PackageKit/po/\n"
 
 #. TRANSLATORS: this is an atomic transaction
-#: ../client/pk-console.c:231
+#: ../client/pk-console.c:235
 msgid "Transaction"
 msgstr "Transacção"
 
 #. TRANSLATORS: this is the time the transaction was started in system timezone
-#: ../client/pk-console.c:233
+#: ../client/pk-console.c:237
 msgid "System time"
 msgstr "Hora do sistema"
 
 #. TRANSLATORS: this is if the transaction succeeded or not
-#: ../client/pk-console.c:235
+#: ../client/pk-console.c:239
 msgid "Succeeded"
 msgstr "Sucesso"
 
 #. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:235
-#: ../client/pk-console.c:402
+#: ../client/pk-console.c:239 ../client/pk-console.c:406
 msgid "True"
 msgstr "Verdadeiro"
 
-#: ../client/pk-console.c:235
-#: ../client/pk-console.c:402
+#: ../client/pk-console.c:239 ../client/pk-console.c:406
 msgid "False"
 msgstr "Falso"
 
 #. TRANSLATORS: this is the transactions role, e.g. "update-system"
 #. TRANSLATORS: the trasaction role, e.g. update-system
-#: ../client/pk-console.c:237
-#: ../src/pk-polkit-action-lookup.c:331
+#: ../client/pk-console.c:241 ../src/pk-polkit-action-lookup.c:327
 msgid "Role"
 msgstr "Função"
 
 #. TRANSLATORS: this is The duration of the transaction
-#: ../client/pk-console.c:242
+#: ../client/pk-console.c:246
 msgid "Duration"
 msgstr "Duração"
 
-#: ../client/pk-console.c:242
+#: ../client/pk-console.c:246
 msgid "(seconds)"
 msgstr "(segundos)"
 
 #. TRANSLATORS: this is The command line used to do the action
 #. TRANSLATORS: the command line of the thing that wants the authentication
-#: ../client/pk-console.c:246
-#: ../src/pk-polkit-action-lookup.c:345
+#: ../client/pk-console.c:250 ../src/pk-polkit-action-lookup.c:341
 msgid "Command line"
 msgstr "Linha de comando"
 
 #. TRANSLATORS: this is the user ID of the user that started the action
-#: ../client/pk-console.c:248
+#: ../client/pk-console.c:252
 msgid "User ID"
 msgstr "ID de Utilizador"
 
 #. TRANSLATORS: this is the username, e.g. hughsie
-#: ../client/pk-console.c:255
+#: ../client/pk-console.c:259
 msgid "Username"
 msgstr "Nome do utilizador"
 
 #. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
-#: ../client/pk-console.c:259
+#: ../client/pk-console.c:263
 msgid "Real name"
 msgstr "Nome real"
 
-#: ../client/pk-console.c:267
+#: ../client/pk-console.c:271
 msgid "Affected packages:"
 msgstr "Pacotes afectados"
 
-#: ../client/pk-console.c:269
+#: ../client/pk-console.c:273
 msgid "Affected packages: None"
 msgstr "Pacotes afectados: Nenhum"
 
 #. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:294
+#: ../client/pk-console.c:298
 msgid "Distribution"
 msgstr "Distribuição"
 
 #. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:296
+#: ../client/pk-console.c:300
 msgid "Type"
 msgstr "Tipo"
 
 #. TRANSLATORS: this is any summary text describing the upgrade
 #. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:298
-#: ../client/pk-console.c:321
+#: ../client/pk-console.c:302 ../client/pk-console.c:325
 msgid "Summary"
 msgstr "Sumário"
 
 #. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:310
+#: ../client/pk-console.c:314
 msgid "Category"
 msgstr "Categori­a"
 
 #. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:312
+#: ../client/pk-console.c:316
 msgid "ID"
 msgstr "ID"
 
 #. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:315
+#: ../client/pk-console.c:319
 msgid "Parent"
 msgstr "Pai"
 
 #. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:318
+#: ../client/pk-console.c:322
 msgid "Name"
 msgstr "Nome"
 
 #. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:324
+#: ../client/pk-console.c:328
 msgid "Icon"
 msgstr "Ícone"
 
 #. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:339
+#: ../client/pk-console.c:343
 msgid "Details about the update:"
 msgstr "Detalhes acerca da actualização:"
 
 #. TRANSLATORS: details about the update, package name and version
 #. TRANSLATORS: title, the names of the packages that the method is processing
-#: ../client/pk-console.c:341
-#: ../src/pk-polkit-action-lookup.c:356
+#: ../client/pk-console.c:345 ../src/pk-polkit-action-lookup.c:352
 msgid "Package"
 msgid_plural "Packages"
 msgstr[0] "Pacote"
 msgstr[1] "Pacotes"
 
 #. TRANSLATORS: details about the update, any packages that this update updates
-#: ../client/pk-console.c:344
+#: ../client/pk-console.c:348
 msgid "Updates"
 msgstr "Actualizações"
 
 #. TRANSLATORS: details about the update, any packages that this update obsoletes
-#: ../client/pk-console.c:348
+#: ../client/pk-console.c:352
 msgid "Obsoletes"
 msgstr "Torna absoleto"
 
 #. TRANSLATORS: details about the update, the vendor URLs
-#: ../client/pk-console.c:352
+#: ../client/pk-console.c:356
 msgid "Vendor"
 msgstr "Fabricante"
 
 #. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:356
+#: ../client/pk-console.c:360
 msgid "Bugzilla"
 msgstr "Bugzilla"
 
 #. TRANSLATORS: details about the update, the CVE URLs
-#: ../client/pk-console.c:360
+#: ../client/pk-console.c:364
 msgid "CVE"
 msgstr "CVE"
 
 #. TRANSLATORS: details about the update, if the package requires a restart
-#: ../client/pk-console.c:364
+#: ../client/pk-console.c:368
 msgid "Restart"
 msgstr "Reiniciar"
 
 #. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:368
+#: ../client/pk-console.c:372
 msgid "Update text"
 msgstr "Actualizar texto"
 
 #. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:372
+#: ../client/pk-console.c:376
 msgid "Changes"
 msgstr "Alterações"
 
 #. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:376
+#: ../client/pk-console.c:380
 msgid "State"
 msgstr "Estado"
 
 #. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:381
+#: ../client/pk-console.c:385
 msgid "Issued"
 msgstr "Emitido"
 
 #. TRANSLATORS: details about the update, date the update was updated
-#: ../client/pk-console.c:386
+#: ../client/pk-console.c:390
 msgid "Updated"
 msgstr "Actualizado"
 
-#: ../client/pk-console.c:473
-#: ../client/pk-console.c:475
+#: ../client/pk-console.c:477 ../client/pk-console.c:479
 msgid "Percentage"
 msgstr "Percentagem"
 
-#: ../client/pk-console.c:475
+#: ../client/pk-console.c:479
 msgid "Unknown"
 msgstr "Desconhecido"
 
 #. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:517
+#: ../client/pk-console.c:521
 msgid "System restart required by:"
 msgstr "Reinicialização do sistema requerida por:"
 
 #. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:520
+#: ../client/pk-console.c:524
 msgid "Session restart required:"
 msgstr "Reinicialização da sessão requerida:"
 
 #. TRANSLATORS: a package requires the system to be restarted due to a security update
-#: ../client/pk-console.c:523
+#: ../client/pk-console.c:527
 msgid "System restart (security) required by:"
 msgstr "Reinicialização do sistema (segurança) requerida por:"
 
 #. TRANSLATORS: a package requires the session to be restarted due to a security update
-#: ../client/pk-console.c:526
+#: ../client/pk-console.c:530
 msgid "Session restart (security) required:"
 msgstr "Reinicialização da sessão (segurança) requerida:"
 
 #. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:529
+#: ../client/pk-console.c:533
 msgid "Application restart required by:"
 msgstr "Reinicialização da aplicação requerida por:"
 
 #. TRANSLATORS: a package needs to restart their system
-#: ../client/pk-console.c:584
+#: ../client/pk-console.c:588
 msgid "Please restart the computer to complete the update."
 msgstr "Por favor, reinicie o computador para completar a actualização."
 
 #. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:587
+#: ../client/pk-console.c:591
 msgid "Please logout and login to complete the update."
-msgstr "Por favor, termine e volte a iniciar a sessão para completar a actualização."
+msgstr ""
+"Por favor, termine e volte a iniciar a sessão para completar a actualização."
 
 #. TRANSLATORS: a package needs to restart the application
-#: ../client/pk-console.c:590
+#: ../client/pk-console.c:594
 msgid "Please restart the application as it is being used."
 msgstr "Por favor, reinicie a aplicação para completar a actualização."
 
 #. TRANSLATORS: a package needs to restart their system (due to security)
-#: ../client/pk-console.c:593
-msgid "Please restart the computer to complete the update as important security updates have been installed."
-msgstr "Por favor, reinicie o computador para completar a actualização, pois foram instaladas importantes actualizações de segurança."
+#: ../client/pk-console.c:597
+msgid ""
+"Please restart the computer to complete the update as important security "
+"updates have been installed."
+msgstr ""
+"Por favor, reinicie o computador para completar a actualização, pois foram "
+"instaladas importantes actualizações de segurança."
 
 #. TRANSLATORS: a package needs to restart the session (due to security)
-#: ../client/pk-console.c:596
-msgid "Please logout and login to complete the update as important security updates have been installed."
-msgstr "Por favor, termine e volte a iniciar a sessão para completar a actualização, pois foram instaladas importantes actualizações de segurança."
+#: ../client/pk-console.c:600
+msgid ""
+"Please logout and login to complete the update as important security updates "
+"have been installed."
+msgstr ""
+"Por favor, termine e volte a iniciar a sessão para completar a actualização, "
+"pois foram instaladas importantes actualizações de segurança."
 
 #. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:723
+#: ../client/pk-console.c:727
 #, c-format
 msgid "The package %s is already installed"
 msgstr "O pacote %s já está instalado"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:731
+#: ../client/pk-console.c:735
 #, c-format
 msgid "The package %s could not be installed: %s"
 msgstr "Não foi possível instalar o pacote %s: %s"
 
 #. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
-#: ../client/pk-console.c:756
-#: ../client/pk-console.c:779
-#: ../client/pk-console.c:875
-#: ../client/pk-console.c:992
-#: ../client/pk-tools-common.c:62
-#: ../client/pk-tools-common.c:81
+#: ../client/pk-console.c:760 ../client/pk-console.c:783
+#: ../client/pk-console.c:879 ../client/pk-console.c:996
+#: ../client/pk-tools-common.c:62 ../client/pk-tools-common.c:81
 #: ../client/pk-tools-common.c:89
 #, c-format
 msgid "Internal error: %s"
 msgstr "Erro interno: %s"
 
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:764
-#: ../client/pk-console.c:1388
+#: ../client/pk-console.c:768 ../client/pk-console.c:1392
 #, c-format
 msgid "This tool could not install the packages: %s"
 msgstr "Esta ferramenta não conseguiu instalar os pacotes: %s"
 
 #. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:787
+#: ../client/pk-console.c:791
 #, c-format
 msgid "This tool could not install the files: %s"
 msgstr "Esta ferramenta não conseguiu instalar os ficheiros: %s"
 
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:843
+#: ../client/pk-console.c:847
 #, c-format
 msgid "This tool could not remove %s: %s"
 msgstr "Esta ferramenta não conseguiu remover %s: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:866
-#: ../client/pk-console.c:904
-#: ../client/pk-console.c:937
+#: ../client/pk-console.c:870 ../client/pk-console.c:908
+#: ../client/pk-console.c:941
 #, c-format
 msgid "This tool could not remove the packages: %s"
 msgstr "Esta ferramenta não conseguiu remover os pacotes: %s"
 
 #. TRANSLATORS: When removing, we might have to remove other dependencies
-#: ../client/pk-console.c:916
+#: ../client/pk-console.c:920
 msgid "The following packages have to be removed:"
 msgstr "Os seguintes pacotes precisam de ser removidos:"
 
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:923
+#: ../client/pk-console.c:927
 msgid "Proceed removing additional packages?"
 msgstr "Continuar com a remoção dos pacotes adicionais?"
 
 #. TRANSLATORS: We did not remove any packages
-#: ../client/pk-console.c:928
+#: ../client/pk-console.c:932
 msgid "The package removal was canceled!"
 msgstr "A remoção dos pacotes foi cancelada!"
 
 #. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:969
+#: ../client/pk-console.c:973
 #, c-format
 msgid "This tool could not download the package %s as it could not be found"
-msgstr "Esta ferramenta não conseguiu transferir o pacote %s pois não o conseguiu encontrar"
+msgstr ""
+"Esta ferramenta não conseguiu transferir o pacote %s pois não o conseguiu "
+"encontrar"
 
 #. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:1000
+#: ../client/pk-console.c:1004
 #, c-format
 msgid "This tool could not download the packages: %s"
 msgstr "Esta ferramenta não conseguiu transferir os pacotes: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1027
-#: ../client/pk-console.c:1036
+#: ../client/pk-console.c:1031 ../client/pk-console.c:1040
 #, c-format
 msgid "This tool could not update %s: %s"
 msgstr "Esta ferramenta não conseguiu actualizar %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1058
-#: ../client/pk-console.c:1066
+#: ../client/pk-console.c:1062 ../client/pk-console.c:1070
 #, c-format
 msgid "This tool could not get the requirements for %s: %s"
 msgstr "Esta ferramenta não conseguiu obter os requisitos para %s: %s"
 
 #. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:1088
-#: ../client/pk-console.c:1096
+#: ../client/pk-console.c:1092 ../client/pk-console.c:1100
 #, c-format
 msgid "This tool could not get the dependencies for %s: %s"
 msgstr "Esta ferramenta não conseguiu obter as dependências para %s: %s"
 
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:1118
-#: ../client/pk-console.c:1126
+#: ../client/pk-console.c:1122 ../client/pk-console.c:1130
 #, c-format
 msgid "This tool could not get package details for %s: %s"
 msgstr "Esta ferramenta não conseguiu obter os detalhes para %s: %s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1148
+#: ../client/pk-console.c:1152
 #, c-format
 msgid "This tool could not find the files for %s: %s"
 msgstr "Esta ferramenta não conseguiu encontrar os ficheiros para %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1156
+#: ../client/pk-console.c:1160
 #, c-format
 msgid "This tool could not get the file list for %s: %s"
 msgstr "Esta ferramenta não conseguiu obter a lista de ficheiros para %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of packages. The filename follows
-#: ../client/pk-console.c:1178
+#: ../client/pk-console.c:1182
 #, c-format
 msgid "File already exists: %s"
 msgstr "Ficheiro já existe: %s"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1183
-#: ../client/pk-console.c:1239
-#: ../client/pk-console.c:1314
+#: ../client/pk-console.c:1187 ../client/pk-console.c:1243
+#: ../client/pk-console.c:1318
 msgid "Getting package list"
 msgstr "A obter lista de pacotes"
 
 #. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1189
-#: ../client/pk-console.c:1245
-#: ../client/pk-console.c:1320
+#: ../client/pk-console.c:1193 ../client/pk-console.c:1249
+#: ../client/pk-console.c:1324
 #, c-format
 msgid "This tool could not get package list: %s"
 msgstr "Esta ferramenta não conseguiu obter a lista de pacotes: %s"
 
 #. TRANSLATORS: There was an error saving the list
-#: ../client/pk-console.c:1200
+#: ../client/pk-console.c:1204
 #, c-format
 msgid "Failed to save to disk"
 msgstr "A gravação para disco falhou"
 
 #. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1234
-#: ../client/pk-console.c:1309
+#: ../client/pk-console.c:1238 ../client/pk-console.c:1313
 #, c-format
 msgid "File does not exist: %s"
 msgstr "Ficheiro não existe: %s"
 
 #. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1266
+#: ../client/pk-console.c:1270
 msgid "Packages to add"
 msgstr "Pacotes para adicionar"
 
 #. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1274
+#: ../client/pk-console.c:1278
 msgid "Packages to remove"
 msgstr "Pacotes para remover"
 
 #. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1342
+#: ../client/pk-console.c:1346
 #, c-format
 msgid "No new packages need to be installed"
 msgstr "Não existem pacotes novos para instalar"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1348
+#: ../client/pk-console.c:1352
 msgid "To install"
 msgstr "Para instalar"
 
 #. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1360
+#: ../client/pk-console.c:1364
 msgid "Searching for package: "
 msgstr "Pesquisar por pacote:"
 
 #. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1364
+#: ../client/pk-console.c:1368
 msgid "not found."
 msgstr "não encontrado."
 
 #. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1375
+#: ../client/pk-console.c:1379
 #, c-format
 msgid "No packages can be found to install"
 msgstr "Não foram encontrados pacotes para instalar"
 
 #. TRANSLATORS: installing new packages from package list
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
-#: ../client/pk-console.c:1381
+#: ../client/pk-console.c:1385
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:886
 #, c-format
 msgid "Installing packages"
 msgstr "A instalar pacotes"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1417
+#: ../client/pk-console.c:1421
 #, c-format
 msgid "This tool could not find the update details for %s: %s"
-msgstr "Esta ferramenta não conseguiu encontrar os detalhes de actualização para %s: %s"
+msgstr ""
+"Esta ferramenta não conseguiu encontrar os detalhes de actualização para %s: "
+"%s"
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1425
+#: ../client/pk-console.c:1429
 #, c-format
 msgid "This tool could not get the update details for %s: %s"
-msgstr "Esta ferramenta não conseguiu obter os detalhes de actualização para %s: %s"
+msgstr ""
+"Esta ferramenta não conseguiu obter os detalhes de actualização para %s: %s"
 
 #. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
-#: ../client/pk-console.c:1456
+#: ../client/pk-console.c:1460
 msgid "Error:"
 msgstr "Erro:"
 
 #. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1470
+#: ../client/pk-console.c:1474
 msgid "Package description"
 msgstr "Descrição do pacote"
 
 #. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
-#: ../client/pk-console.c:1486
+#: ../client/pk-console.c:1490
 msgid "Message:"
 msgstr "Mensagem:"
 
 #. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1514
+#: ../client/pk-console.c:1518
 msgid "Package files"
 msgstr "Ficheiros do pacote"
 
 #. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1522
+#: ../client/pk-console.c:1526
 msgid "No files"
 msgstr "Sem ficheiros"
 
 #. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1545
+#: ../client/pk-console.c:1549
 msgid "Repository signature required"
 msgstr "A assinatura do repositório é necessária"
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1555
+#: ../client/pk-console.c:1559
 msgid "Do you accept this signature?"
 msgstr "Aceita esta assinatura?"
 
 #. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1559
+#: ../client/pk-console.c:1563
 msgid "The signature was not accepted."
 msgstr "A assinatura não foi aceite."
 
 #. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1593
+#: ../client/pk-console.c:1597
 msgid "End user license agreement required"
 msgstr "O acordo de licenciamento com o utilizador final é necessário"
 
 #. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1600
+#: ../client/pk-console.c:1604
 msgid "Do you agree to this license?"
 msgstr "Concorda com esta licença?"
 
 #. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1604
+#: ../client/pk-console.c:1608
 msgid "The license was refused."
 msgstr "A licença foi recusada."
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1633
+#: ../client/pk-console.c:1637
 msgid "The daemon crashed mid-transaction!"
 msgstr "O daemon morreu a meio de uma transacção!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1686
+#: ../client/pk-console.c:1690
 msgid "PackageKit Console Interface"
 msgstr "Consola do PackaheKit"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1688
+#: ../client/pk-console.c:1692
 msgid "Subcommands:"
 msgstr "Sub-comandos:"
 
 #. TRANSLATORS: command line argument, if we should show debugging information
 #. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:1781
-#: ../client/pk-generate-pack.c:185
+#: ../client/pk-console.c:1785 ../client/pk-generate-pack.c:185
 #: ../client/pk-monitor.c:128
-#: ../contrib/command-not-found/pk-command-not-found.c:610
+#: ../contrib/command-not-found/pk-command-not-found.c:616
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:550
-#: ../src/pk-main.c:211
+#: ../contrib/device-rebind/pk-device-rebind.c:293 ../src/pk-main.c:211
 msgid "Show extra debugging information"
 msgstr "Mostrar informação de depuração adicional"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1784
-#: ../client/pk-monitor.c:130
+#: ../client/pk-console.c:1788 ../client/pk-monitor.c:130
 msgid "Show the program version and exit"
 msgstr "Mostrar a versão da aplicação e terminar"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1787
+#: ../client/pk-console.c:1791
 msgid "Set the filter, e.g. installed"
 msgstr "Configurar o filtro, exemplo, instalado"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1790
+#: ../client/pk-console.c:1794
 msgid "Exit without waiting for actions to complete"
 msgstr "Sair sem esperar que as acções completem"
 
 #. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:1817
+#: ../client/pk-console.c:1821
 msgid "This tool could not connect to system DBUS."
 msgstr "Esta ferramenta não conseguiu ligar ao sistema DBUS."
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1907
+#: ../client/pk-console.c:1911
 msgid "The filter specified was invalid"
 msgstr "O filtro especificado era inválido"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1926
+#: ../client/pk-console.c:1930
 msgid "A search type is required, e.g. name"
 msgstr "Um tipo de pesquisa é necessário. Por exemplo, nome"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1933
-#: ../client/pk-console.c:1942
-#: ../client/pk-console.c:1951
-#: ../client/pk-console.c:1960
+#: ../client/pk-console.c:1937 ../client/pk-console.c:1946
+#: ../client/pk-console.c:1955 ../client/pk-console.c:1964
 msgid "A search term is required"
 msgstr "Um termo de pesquisa é necessário"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1967
+#: ../client/pk-console.c:1971
 msgid "Invalid search type"
 msgstr "Tipo de pesquisa inválida"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1973
+#: ../client/pk-console.c:1977
 msgid "A package name or filename to install is required"
 msgstr "É necessário um nome de pacote ou nome de ficheiro a instalar"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1982
+#: ../client/pk-console.c:1986
 msgid "A type, key_id and package_id are required"
 msgstr "São necessários um tipo, id de chave e id de pacote"
 
 #. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:1991
+#: ../client/pk-console.c:1995
 msgid "A package name to remove is required"
 msgstr "É necessário um nome de pacote para remover"
 
 #. TRANSLATORS: the user did not specify anything about what to download or where
-#: ../client/pk-console.c:1999
+#: ../client/pk-console.c:2003
 msgid "A destination directory and the package names to download are required"
-msgstr "São necessários uma directoria de destino assim como os nomes dos pacotes a transferir"
+msgstr ""
+"São necessários uma directoria de destino assim como os nomes dos pacotes a "
+"transferir"
 
 #. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:2006
+#: ../client/pk-console.c:2010
 msgid "Directory not found"
 msgstr "Directório não encontrado"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2014
+#: ../client/pk-console.c:2018
 msgid "A licence identifier (eula-id) is required"
 msgstr "É necessário um identificador de licença (eula-id)"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2024
+#: ../client/pk-console.c:2028
 msgid "A transaction identifier (tid) is required"
 msgstr "É necessário um identificador de transacção (tid)"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:2041
+#: ../client/pk-console.c:2045
 msgid "A package name to resolve is required"
 msgstr "É necessário indicar um nome de pacote"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:2050
-#: ../client/pk-console.c:2059
+#: ../client/pk-console.c:2054 ../client/pk-console.c:2063
 msgid "A repository name is required"
 msgstr "É obrigatório um nome de repositório"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2068
+#: ../client/pk-console.c:2072
 msgid "A repo name, parameter and value are required"
 msgstr "É necessário indicar um repositório, parâmetro e valor"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:2082
+#: ../client/pk-console.c:2086
 msgid "An action, e.g. 'update-system' is required"
 msgstr "É necessária uma acção, por exemplo 'update-system'"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:2089
+#: ../client/pk-console.c:2093
 msgid "A correct role is required"
 msgstr "É necessária uma função correcta"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2096
+#: ../client/pk-console.c:2100
 msgid "Failed to get the time since this action was last completed"
-msgstr "Não foi possível obter a hora da última vez que esta acção foi concluída"
+msgstr ""
+"Não foi possível obter a hora da última vez que esta acção foi concluída"
 
 #. TRANSLATORS: The user did not provide a package name
 #. TRANSLATORS: This is when the user fails to supply the package name
-#: ../client/pk-console.c:2106
-#: ../client/pk-console.c:2118
-#: ../client/pk-console.c:2127
-#: ../client/pk-console.c:2145
-#: ../client/pk-console.c:2154
-#: ../client/pk-generate-pack.c:241
+#: ../client/pk-console.c:2110 ../client/pk-console.c:2122
+#: ../client/pk-console.c:2131 ../client/pk-console.c:2149
+#: ../client/pk-console.c:2158 ../client/pk-generate-pack.c:241
 msgid "A package name is required"
 msgstr "É obrigatório um nome de pacote"
 
 #. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:2136
+#: ../client/pk-console.c:2140
 msgid "A package provide string is required"
-msgstr "É necessário especificar a string que define o que o pacote disponibiliza"
+msgstr ""
+"É necessário especificar a string que define o que o pacote disponibiliza"
 
 #. TRANSLATORS: The user didn't specify a filename to create as a list
-#: ../client/pk-console.c:2163
+#: ../client/pk-console.c:2167
 msgid "A list file name to create is required"
 msgstr "É necessário indicar o nome do ficheiro a criar com a lista"
 
 #. TRANSLATORS: The user didn't specify a filename to open as a list
-#: ../client/pk-console.c:2173
-#: ../client/pk-console.c:2183
+#: ../client/pk-console.c:2177 ../client/pk-console.c:2187
 msgid "A list file to open is required"
 msgstr "É necessária uma lista de ficheiros"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2237
+#: ../client/pk-console.c:2241
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "A opção '%s' não é suportada"
 
 #. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2250
+#: ../client/pk-console.c:2254
 msgid "Incorrect privileges for this operation"
 msgstr "Privilégios incorrectos para esta operação"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2253
+#: ../client/pk-console.c:2257
 msgid "Command failed"
 msgstr "Comando falhou"
 
@@ -721,8 +711,11 @@ msgstr "Indique o nome do ficheiro para a lista de dependências a excluir"
 
 #. TRANSLATORS: the output location
 #: ../client/pk-generate-pack.c:191
-msgid "The output file or directory (the current directory is used if ommitted)"
-msgstr "O ficheiro ou directório de destino (se omitido, é utilizado o directório actual)"
+msgid ""
+"The output file or directory (the current directory is used if ommitted)"
+msgstr ""
+"O ficheiro ou directório de destino (se omitido, é utilizado o directório "
+"actual)"
 
 #. TRANSLATORS: put a list of packages in the pack
 #: ../client/pk-generate-pack.c:194
@@ -751,20 +744,24 @@ msgstr "É necessário um directório de destino ou nome de ficheiro"
 
 #. TRANSLATORS: This is when the backend doesn't have the capability to get-depends
 #. TRANSLATORS: This is when the backend doesn't have the capability to download
-#: ../client/pk-generate-pack.c:267
-#: ../client/pk-generate-pack.c:273
+#: ../client/pk-generate-pack.c:267 ../client/pk-generate-pack.c:273
 msgid "The package manager cannot perform this type of operation."
 msgstr "O gestor de pacotes não pode realizar este tipo de operação."
 
 #. TRANSLATORS: This is when the distro didn't include libarchive support into PK
 #: ../client/pk-generate-pack.c:280
-msgid "Service packs cannot be created as PackageKit was not built with libarchive support."
-msgstr "\"Service packs\" não podem ser criados pois o PackageKit não foi criado com suporte a libarchive."
+msgid ""
+"Service packs cannot be created as PackageKit was not built with libarchive "
+"support."
+msgstr ""
+"\"Service packs\" não podem ser criados pois o PackageKit não foi criado com "
+"suporte a libarchive."
 
 #. TRANSLATORS: the user specified an absolute path, but didn't get the extension correct
 #: ../client/pk-generate-pack.c:291
 msgid "If specifying a file, the service pack name must end with"
-msgstr "Se especificar um ficheiro, o nome do \"service pack\" tem de terminar com"
+msgstr ""
+"Se especificar um ficheiro, o nome do \"service pack\" tem de terminar com"
 
 #. TRANSLATORS: This is when file already exists
 #: ../client/pk-generate-pack.c:307
@@ -844,6 +841,60 @@ msgstr "Por favor, escolha o pacote correcto:"
 msgid "Please enter a number from 1 to %i: "
 msgstr "Por favor insira um número de 1 a %i: "
 
+#. TRANSLATORS: when we are getting data from the daemon
+#: ../contrib/browser-plugin/pk-plugin-install.c:466
+msgid "Getting package information..."
+msgstr "A obter informação de pacotes..."
+
+#. TRANSLATORS: run an applicaiton
+#: ../contrib/browser-plugin/pk-plugin-install.c:472
+#, c-format
+msgid "Run %s"
+msgstr "Executar %s"
+
+#. TRANSLATORS: show the installed version of a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:478
+msgid "Installed version"
+msgstr "Versão instalada"
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:486
+#, c-format
+msgid "Run version %s now"
+msgstr "Executar a versão %s agora"
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:492
+msgid "Run now"
+msgstr "Executar agora"
+
+#. TRANSLATORS: update to a new version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:498
+#, c-format
+msgid "Update to version %s"
+msgstr "Actualizar para a versão %s"
+
+#. TRANSLATORS: To install a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:504
+#, c-format
+msgid "Install %s now"
+msgstr "Instalar %s agora"
+
+#. TRANSLATORS: the version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:507
+msgid "Version"
+msgstr "Versão"
+
+#. TRANSLATORS: noting found, so can't install
+#: ../contrib/browser-plugin/pk-plugin-install.c:512
+msgid "No packages found for your system"
+msgstr "Não foram encontrados pacotes para o seu sistema"
+
+#. TRANSLATORS: package is being installed
+#: ../contrib/browser-plugin/pk-plugin-install.c:517
+msgid "Installing..."
+msgstr "A instalar..."
+
 #. TRANSLATORS: downloading repo data so we can search
 #: ../contrib/command-not-found/pk-command-not-found.c:349
 msgid "Downloading details about the software sources."
@@ -852,7 +903,9 @@ msgstr "A descarregar detalhes acerca das fontes do software."
 #. TRANSLATORS: downloading file lists so we can search
 #: ../contrib/command-not-found/pk-command-not-found.c:353
 msgid "Downloading filelists (this may take some time to complete)."
-msgstr "A descarregar lista de ficheiros (isto pode demorar algum tempo para concluir)."
+msgstr ""
+"A descarregar lista de ficheiros (isto pode demorar algum tempo para "
+"concluir)."
 
 #. TRANSLATORS: waiting for native lock
 #: ../contrib/command-not-found/pk-command-not-found.c:357
@@ -865,128 +918,74 @@ msgid "Loading list of packages."
 msgstr "A carregar lista de pacotes."
 
 #. TRANSLATORS: we failed to find the package, this shouldn't happen
-#: ../contrib/command-not-found/pk-command-not-found.c:414
+#: ../contrib/command-not-found/pk-command-not-found.c:420
 msgid "Failed to search for file"
 msgstr "Não foi possível encontrar o ficheiro"
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:551
+#: ../contrib/command-not-found/pk-command-not-found.c:557
 msgid "Failed to launch:"
 msgstr "Incapaz de iniciar:"
 
 #. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/command-not-found/pk-command-not-found.c:626
+#: ../contrib/command-not-found/pk-command-not-found.c:632
 msgid "PackageKit Command Not Found"
 msgstr "Comando PackageKit não encontrado"
 
 #. TRANSLATORS: the prefix of all the output telling the user why it's not executing
-#: ../contrib/command-not-found/pk-command-not-found.c:652
+#: ../contrib/command-not-found/pk-command-not-found.c:658
 msgid "Command not found."
 msgstr "Comando não encontrado."
 
 #. TRANSLATORS: tell the user what we think the command is
-#: ../contrib/command-not-found/pk-command-not-found.c:659
+#: ../contrib/command-not-found/pk-command-not-found.c:665
 msgid "Similar command is:"
 msgstr "Comando semelhante é:"
 
 #. TRANSLATORS: Ask the user if we should run the similar command
-#: ../contrib/command-not-found/pk-command-not-found.c:668
+#: ../contrib/command-not-found/pk-command-not-found.c:674
 msgid "Run similar command:"
 msgstr "Executar um comando semelhante:"
 
 #. TRANSLATORS: show the user a list of commands that they could have meant
 #. TRANSLATORS: show the user a list of commands we could run
-#: ../contrib/command-not-found/pk-command-not-found.c:680
-#: ../contrib/command-not-found/pk-command-not-found.c:689
+#: ../contrib/command-not-found/pk-command-not-found.c:686
+#: ../contrib/command-not-found/pk-command-not-found.c:695
 msgid "Similar commands are:"
 msgstr "Comandos semelhantes são:"
 
 #. TRANSLATORS: ask the user to choose a file to run
-#: ../contrib/command-not-found/pk-command-not-found.c:696
+#: ../contrib/command-not-found/pk-command-not-found.c:702
 msgid "Please choose a command to run"
 msgstr "Por favor, escolha um comando para executar"
 
 #. TRANSLATORS: tell the user what package provides the command
-#: ../contrib/command-not-found/pk-command-not-found.c:715
+#: ../contrib/command-not-found/pk-command-not-found.c:721
 msgid "The package providing this file is:"
 msgstr "O pacote que fornece este ficheiro é o:"
 
 #. TRANSLATORS: as the user if we want to install a package to provide the command
-#: ../contrib/command-not-found/pk-command-not-found.c:720
+#: ../contrib/command-not-found/pk-command-not-found.c:726
 #, c-format
 msgid "Install package '%s' to provide command '%s'?"
 msgstr "Instalar pacote '%s' para disponibilizar comando '%s'?"
 
 #. TRANSLATORS: Show the user a list of packages that provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:741
+#: ../contrib/command-not-found/pk-command-not-found.c:747
 msgid "Packages providing this file are:"
 msgstr "Os pacotes que disponibilizam este ficheiro são:"
 
 #. TRANSLATORS: Show the user a list of packages that they can install to provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:750
+#: ../contrib/command-not-found/pk-command-not-found.c:756
 msgid "Suitable packages are:"
 msgstr "Pacotes adequados são:"
 
 #. get selection
 #. TRANSLATORS: ask the user to choose a file to install
-#: ../contrib/command-not-found/pk-command-not-found.c:758
+#: ../contrib/command-not-found/pk-command-not-found.c:764
 msgid "Please choose a package to install"
 msgstr "Por favor, escolha um pacote para instalar"
 
-#. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/pk-plugin-install.c:433
-msgid "Getting package information..."
-msgstr "A obter informação de pacotes..."
-
-#. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/pk-plugin-install.c:439
-#, c-format
-msgid "Run %s"
-msgstr "Executar %s"
-
-#. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:445
-msgid "Installed version"
-msgstr "Versão instalada"
-
-#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:453
-#, c-format
-msgid "Run version %s now"
-msgstr "Executar a versão %s agora"
-
-#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:459
-msgid "Run now"
-msgstr "Executar agora"
-
-#. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:465
-#, c-format
-msgid "Update to version %s"
-msgstr "Actualizar para a versão %s"
-
-#. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:471
-#, c-format
-msgid "Install %s now"
-msgstr "Instalar %s agora"
-
-#. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:474
-msgid "Version"
-msgstr "Versão"
-
-#. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/pk-plugin-install.c:479
-msgid "No packages found for your system"
-msgstr "Não foram encontrados pacotes para o seu sistema"
-
-#. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/pk-plugin-install.c:484
-msgid "Installing..."
-msgstr "A instalar..."
-
 #. TRANSLATORS: we are starting to install the packages
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:187
 msgid "Starting install"
@@ -1000,8 +999,10 @@ msgstr "Não foi possível encontrar o pacote %s, ou já está instalado: %s"
 
 #. command line argument, simulate what would be done, but don't actually do it
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:553
-msgid "Don't actually install any packages, only simulate what would be installed"
-msgstr "Não instala realmente nenhum pacote, apenas simula o que seria instalado."
+msgid ""
+"Don't actually install any packages, only simulate what would be installed"
+msgstr ""
+"Não instala realmente nenhum pacote, apenas simula o que seria instalado."
 
 #. command line argument, do we skip packages that depend on the ones specified
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:556
@@ -1171,6 +1172,104 @@ msgstr "Não foi possível desactivar as fontes de dados de depuração: %s"
 msgid "Disabled %i debugging sources."
 msgstr "Desactivadas %i fontes de depuração."
 
+#. TRANSLATORS: couldn't open device to write
+#: ../contrib/device-rebind/pk-device-rebind.c:61
+#, fuzzy
+msgid "Failed to open file"
+msgstr "Não foi possível encontrar o ficheiro"
+
+#. TRANSLATORS: could not write to the device
+#: ../contrib/device-rebind/pk-device-rebind.c:70
+#, fuzzy
+msgid "Failed to write to the file"
+msgstr "Não foi possível encontrar o ficheiro"
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:110
+#: ../contrib/device-rebind/pk-device-rebind.c:147
+#, fuzzy
+msgid "Failed to write to device"
+msgstr "A gravação para disco falhou"
+
+#. TRANSLATORS: the device could not be found in sysfs
+#: ../contrib/device-rebind/pk-device-rebind.c:175
+#, fuzzy
+msgid "Device could not be found"
+msgstr "O pacote não foi encontrado"
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:202
+#, fuzzy
+msgid "Failed to unregister driver"
+msgstr "Criação da directoria falhou:"
+
+#. TRANSLATORS: we failed to bind the old driver
+#: ../contrib/device-rebind/pk-device-rebind.c:211
+#, fuzzy
+msgid "Failed to register driver"
+msgstr "Criação da directoria falhou:"
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:260
+#, fuzzy
+msgid "Device path not found"
+msgstr "Directório não encontrado"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:268
+msgid "Incorrect device path specified"
+msgstr ""
+
+#. command line argument, simulate what would be done, but don't actually do it
+#: ../contrib/device-rebind/pk-device-rebind.c:296
+#, fuzzy
+msgid "Don't actually touch the hardware, only simulate what would be done"
+msgstr ""
+"Não instala realmente nenhum pacote, apenas simula o que seria instalado."
+
+#. TRANSLATORS: command line option: a list of files to install
+#: ../contrib/device-rebind/pk-device-rebind.c:299
+msgid "Device paths"
+msgstr ""
+
+#. TRANSLATORS: tool that gets called when the device needs reloading after installing firmware
+#: ../contrib/device-rebind/pk-device-rebind.c:314
+#, fuzzy
+msgid "PackageKit Device Reloader"
+msgstr "PackageKit Service Pack"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:322
+msgid "You need to specify at least one valid device path"
+msgstr ""
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:332
+msgid "This script can only be used by the root user"
+msgstr ""
+
+#. TRANSLATORS: we're going to verify the path first
+#: ../contrib/device-rebind/pk-device-rebind.c:341
+msgid "Verifying device path"
+msgstr ""
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:346
+#, fuzzy
+msgid "Failed to verify device path"
+msgstr "Não foi possível encontrar o ficheiro"
+
+#. TRANSLATORS: we're going to try
+#: ../contrib/device-rebind/pk-device-rebind.c:360
+msgid "Attempting to rebind device"
+msgstr ""
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:365
+#, fuzzy
+msgid "Failed to rebind device"
+msgstr "Criação da directoria falhou:"
+
 #: ../data/packagekit-catalog.xml.in.h:1
 msgid "PackageKit Catalog"
 msgstr "Catálogo do PackageKit"
@@ -1198,16 +1297,23 @@ msgid "Authentication is required to accept a EULA"
 msgstr "Autenticação é necessária para aceitar a EULA"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:9
-msgid "Authentication is required to cancel a task that was not started by yourself"
-msgstr "Autenticação é necessária para cancelar uma tarefa que não foi iniciada por si"
+msgid ""
+"Authentication is required to cancel a task that was not started by yourself"
+msgstr ""
+"Autenticação é necessária para cancelar uma tarefa que não foi iniciada por "
+"si"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:10
 msgid "Authentication is required to change software source parameters"
 msgstr "Autenticação é necessária para alterar parâmetros do código fonte"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:11
-msgid "Authentication is required to consider a key used for signing packages as trusted"
-msgstr "Autenticação é necessária para considerar segura uma chave utilizada para assinar pacotes"
+msgid ""
+"Authentication is required to consider a key used for signing packages as "
+"trusted"
+msgstr ""
+"Autenticação é necessária para considerar segura uma chave utilizada para "
+"assinar pacotes"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:12
 msgid "Authentication is required to install a signed package"
@@ -1222,18 +1328,27 @@ msgid "Authentication is required to refresh the system sources"
 msgstr "Autenticação é necessária para actualizar as fontes do sistema"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:15
+#, fuzzy
+msgid "Authentication is required to reload the device with a new driver"
+msgstr "Autenticação é necessária para actualizar as fontes do sistema"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:16
 msgid "Authentication is required to remove packages"
 msgstr "Autenticação é necessária para remover pacotes"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:16
+#: ../policy/org.freedesktop.packagekit.policy.in.h:17
 msgid "Authentication is required to rollback a transaction"
 msgstr "Autenticação é necessária para voltar atrás uma transacção"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:17
-msgid "Authentication is required to set the network proxy used for downloading packages"
-msgstr "Autenticação é necessária para configurar o proxy de rede utilizado para transferir pacotes"
-
 #: ../policy/org.freedesktop.packagekit.policy.in.h:18
+msgid ""
+"Authentication is required to set the network proxy used for downloading "
+"packages"
+msgstr ""
+"Autenticação é necessária para configurar o proxy de rede utilizado para "
+"transferir pacotes"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:19
 msgid "Authentication is required to update packages"
 msgstr "Autenticação é necessária para actualizar pacotes"
 
@@ -1242,7 +1357,7 @@ msgstr "Autenticação é necessária para actualizar pacotes"
 #. authentication, but a different user id needs the admin password
 #. to cancel another users task.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:24
+#: ../policy/org.freedesktop.packagekit.policy.in.h:25
 msgid "Cancel foreign task"
 msgstr "Cancelar tarefa externa"
 
@@ -1251,7 +1366,7 @@ msgstr "Cancelar tarefa externa"
 #. software sources as this can be used to enable new updates or
 #. install different versions of software.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:30
+#: ../policy/org.freedesktop.packagekit.policy.in.h:31
 msgid "Change software source parameters"
 msgstr "Alterar parâmetros do código fonte"
 
@@ -1261,7 +1376,7 @@ msgstr "Alterar parâmetros do código fonte"
 #. - Paranoid users (or parents!) can change this to 'auth_admin' or
 #. 'auth_admin_keep'.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:37
+#: ../policy/org.freedesktop.packagekit.policy.in.h:38
 msgid "Install signed package"
 msgstr "Instalar pacote assinado"
 
@@ -1271,7 +1386,7 @@ msgstr "Instalar pacote assinado"
 #. password would be a massive security hole.
 #. - This is not retained as each package should be authenticated.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:44
+#: ../policy/org.freedesktop.packagekit.policy.in.h:45
 msgid "Install untrusted local file"
 msgstr "Instalar ficheiro local não confiável"
 
@@ -1279,11 +1394,22 @@ msgstr "Instalar ficheiro local não confiável"
 #. - Normal users do not require admin authentication to refresh the
 #. cache, as this doesn't actually install or remove software.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:49
+#: ../policy/org.freedesktop.packagekit.policy.in.h:50
 msgid "Refresh system sources"
 msgstr "Actualizar fontes do sistema"
 
 #. SECURITY:
+#. - Normal users require admin authentication to rebind a driver
+#. so that it works after we install firmware.
+#. - This should not be set to 'yes' as unprivileged users could then
+#. try to rebind drivers in use, for instance security authentication
+#. devices.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:58
+msgid "Reload a device"
+msgstr ""
+
+#. SECURITY:
 #. - Normal users require admin authentication to remove packages as
 #. this can make the system unbootable or stop other applications from
 #. working.
@@ -1292,7 +1418,7 @@ msgstr "Actualizar fontes do sistema"
 #. be removed. If this is not possible, change this authentication to
 #. 'auth_admin'.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:59
+#: ../policy/org.freedesktop.packagekit.policy.in.h:68
 msgid "Remove package"
 msgstr "Remover pacote"
 
@@ -1301,7 +1427,7 @@ msgstr "Remover pacote"
 #. as this will change a large number of packages, and could expose the
 #. system to previously patched security vulnerabilities.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:65
+#: ../policy/org.freedesktop.packagekit.policy.in.h:74
 msgid "Rollback to a previous transaction"
 msgstr "Voltar a uma transacção anterior"
 
@@ -1309,7 +1435,7 @@ msgstr "Voltar a uma transacção anterior"
 #. - Normal users do not require admin authentication to set the proxy
 #. used for downloading packages.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:70
+#: ../policy/org.freedesktop.packagekit.policy.in.h:79
 msgid "Set network proxy"
 msgstr "Configurar o proxy da rede"
 
@@ -1319,7 +1445,7 @@ msgstr "Configurar o proxy da rede"
 #. without a secure authentication.
 #. - This is not kept as each package should be authenticated.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:77
+#: ../policy/org.freedesktop.packagekit.policy.in.h:86
 msgid "Trust a key used for signing packages"
 msgstr "Confiar numa chave utilizada para assinar pacotes"
 
@@ -1330,7 +1456,7 @@ msgstr "Confiar numa chave utilizada para assinar pacotes"
 #. - Changing this to anything other than 'yes' will break unattended
 #. updates.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:85
+#: ../policy/org.freedesktop.packagekit.policy.in.h:94
 msgid "Update packages"
 msgstr "Actualizar pacotes"
 
@@ -1347,12 +1473,18 @@ msgstr "Isto pode acontecer por duas razões:"
 #. TRANSLATORS: only allowed to be owned by root
 #: ../src/pk-main.c:91
 msgid "The correct user is not launching the executable (usually root)"
-msgstr "O executável não está a ser executado pelo utilizador correcto (usualmente, o root)"
+msgstr ""
+"O executável não está a ser executado pelo utilizador correcto (usualmente, "
+"o root)"
 
 #. TRANSLATORS: or we are installed in a prefix
 #: ../src/pk-main.c:93
-msgid "The org.freedesktop.PackageKit.conf file is not installed in the system directory:"
-msgstr "O ficheiro org.freedesktop.PackageKit.conf não está instalado no directório do sistema:"
+msgid ""
+"The org.freedesktop.PackageKit.conf file is not installed in the system "
+"directory:"
+msgstr ""
+"O ficheiro org.freedesktop.PackageKit.conf não está instalado no directório "
+"do sistema:"
 
 #. TRANSLATORS: a backend is the system package tool, e.g. yum, apt
 #: ../src/pk-main.c:205
@@ -1401,43 +1533,47 @@ msgstr "Erro ao tentar iniciar:"
 
 #: ../src/pk-polkit-action-lookup.c:147
 msgid "To install debugging packages, extra sources need to be enabled"
-msgstr "Para instalar pacotes de depuração, fontes extra precisam de ser activadas"
+msgstr ""
+"Para instalar pacotes de depuração, fontes extra precisam de ser activadas"
 
 #. TRANSLATORS: is not GPG signed
-#: ../src/pk-polkit-action-lookup.c:168
-#: ../src/pk-polkit-action-lookup.c:191
+#: ../src/pk-polkit-action-lookup.c:168 ../src/pk-polkit-action-lookup.c:187
 msgid "The software is not from a trusted source."
 msgstr "O software não é de uma origem de confiança."
 
 #: ../src/pk-polkit-action-lookup.c:173
 msgid "Do not update this package unless you are sure it is safe to do so."
-msgstr "Não actualize este pacote a não ser que tenha a certeza que é seguro fazê-lo."
+msgstr ""
+"Não actualize este pacote a não ser que tenha a certeza que é seguro fazê-lo."
 
 #: ../src/pk-polkit-action-lookup.c:174
 msgid "Do not update these packages unless you are sure it is safe to do so."
-msgstr "Não actualize estes pacotes a não ser que tenha a certeza que é seguro fazê-lo."
-
-#. TRANSLATORS: warn the user that all bets are off
-#: ../src/pk-polkit-action-lookup.c:180
-#: ../src/pk-polkit-action-lookup.c:203
-msgid "Malicious software can damage your computer or cause other harm."
-msgstr "Software malicioso pode danificar o seu computador ou causar outros danos."
+msgstr ""
+"Não actualize estes pacotes a não ser que tenha a certeza que é seguro fazê-"
+"lo."
 
-#: ../src/pk-polkit-action-lookup.c:196
+#: ../src/pk-polkit-action-lookup.c:192
 msgid "Do not install this package unless you are sure it is safe to do so."
-msgstr "Não instale este pacote a não ser que tenha a certeza que é seguro fazê-lo."
+msgstr ""
+"Não instale este pacote a não ser que tenha a certeza que é seguro fazê-lo."
 
-#: ../src/pk-polkit-action-lookup.c:197
+#: ../src/pk-polkit-action-lookup.c:193
 msgid "Do not install these packages unless you are sure it is safe to do so."
-msgstr "Não instale estes pacotes a não ser que tenha a certeza que é seguro fazê-lo."
+msgstr ""
+"Não instale estes pacotes a não ser que tenha a certeza que é seguro fazê-lo."
+
+#. TRANSLATORS: warn the user that all bets are off
+#: ../src/pk-polkit-action-lookup.c:199
+msgid "Malicious software can damage your computer or cause other harm."
+msgstr ""
+"Software malicioso pode danificar o seu computador ou causar outros danos."
 
 #. TRANSLATORS: too many packages to list each one
-#: ../src/pk-polkit-action-lookup.c:278
+#: ../src/pk-polkit-action-lookup.c:274
 msgid "Many packages"
 msgstr "Muitos pacotes"
 
 #. TRANSLATORS: if the transaction is forced to install only trusted packages
-#: ../src/pk-polkit-action-lookup.c:338
+#: ../src/pk-polkit-action-lookup.c:334
 msgid "Only trusted"
 msgstr "Apenas de confiança"
-
diff --git a/po/pt_BR.po b/po/pt_BR.po
index 369d7d3..b60b236 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-08-21 14:49+0000\n"
+"POT-Creation-Date: 2009-08-24 11:06+0100\n"
 "PO-Revision-Date: 2009-08-21 15:44-0300\n"
 "Last-Translator: Igor Pires Soares <igor at projetofedora.org>\n"
 "Language-Team: Brazilian Portuguese <fedora-trans-pt_br at redhat.com>\n"
@@ -20,688 +20,673 @@ msgstr ""
 "X-Poedit-Country: BRAZIL\n"
 
 #. TRANSLATORS: this is an atomic transaction
-#: ../client/pk-console.c:231
+#: ../client/pk-console.c:235
 msgid "Transaction"
 msgstr "Transação"
 
 #. TRANSLATORS: this is the time the transaction was started in system timezone
-#: ../client/pk-console.c:233
+#: ../client/pk-console.c:237
 msgid "System time"
 msgstr "Horário do sistema"
 
 #. TRANSLATORS: this is if the transaction succeeded or not
-#: ../client/pk-console.c:235
+#: ../client/pk-console.c:239
 msgid "Succeeded"
 msgstr "Concluído"
 
 #. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:235
-#: ../client/pk-console.c:402
+#: ../client/pk-console.c:239 ../client/pk-console.c:406
 msgid "True"
 msgstr "Verdadeiro"
 
-#: ../client/pk-console.c:235
-#: ../client/pk-console.c:402
+#: ../client/pk-console.c:239 ../client/pk-console.c:406
 msgid "False"
 msgstr "Falso"
 
 #. TRANSLATORS: this is the transactions role, e.g. "update-system"
 #. TRANSLATORS: the trasaction role, e.g. update-system
-#: ../client/pk-console.c:237
-#: ../src/pk-polkit-action-lookup.c:327
+#: ../client/pk-console.c:241 ../src/pk-polkit-action-lookup.c:327
 msgid "Role"
 msgstr "Modo"
 
 #. TRANSLATORS: this is The duration of the transaction
-#: ../client/pk-console.c:242
+#: ../client/pk-console.c:246
 msgid "Duration"
 msgstr "Duração"
 
-#: ../client/pk-console.c:242
+#: ../client/pk-console.c:246
 msgid "(seconds)"
 msgstr "(segundos)"
 
 #. TRANSLATORS: this is The command line used to do the action
 #. TRANSLATORS: the command line of the thing that wants the authentication
-#: ../client/pk-console.c:246
-#: ../src/pk-polkit-action-lookup.c:341
+#: ../client/pk-console.c:250 ../src/pk-polkit-action-lookup.c:341
 msgid "Command line"
 msgstr "Linha de comando"
 
 #. TRANSLATORS: this is the user ID of the user that started the action
-#: ../client/pk-console.c:248
+#: ../client/pk-console.c:252
 msgid "User ID"
 msgstr "ID do usuário"
 
 #. TRANSLATORS: this is the username, e.g. hughsie
-#: ../client/pk-console.c:255
+#: ../client/pk-console.c:259
 msgid "Username"
 msgstr "Nome de usuário"
 
 #. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
-#: ../client/pk-console.c:259
+#: ../client/pk-console.c:263
 msgid "Real name"
 msgstr "Nome real"
 
-#: ../client/pk-console.c:267
+#: ../client/pk-console.c:271
 msgid "Affected packages:"
 msgstr "Pacotes afetados:"
 
-#: ../client/pk-console.c:269
+#: ../client/pk-console.c:273
 msgid "Affected packages: None"
 msgstr "Pacotes afetados: nenhum"
 
 #. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:294
+#: ../client/pk-console.c:298
 msgid "Distribution"
 msgstr "Distribuição"
 
 #. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:296
+#: ../client/pk-console.c:300
 msgid "Type"
 msgstr "Tipo"
 
 #. TRANSLATORS: this is any summary text describing the upgrade
 #. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:298
-#: ../client/pk-console.c:321
+#: ../client/pk-console.c:302 ../client/pk-console.c:325
 msgid "Summary"
 msgstr "Sumário"
 
 #. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:310
+#: ../client/pk-console.c:314
 msgid "Category"
 msgstr "Categoria"
 
 #. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:312
+#: ../client/pk-console.c:316
 msgid "ID"
 msgstr "ID"
 
 #. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:315
+#: ../client/pk-console.c:319
 msgid "Parent"
 msgstr "Pai"
 
 #. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:318
+#: ../client/pk-console.c:322
 msgid "Name"
 msgstr "Nome"
 
 #. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:324
+#: ../client/pk-console.c:328
 msgid "Icon"
 msgstr "Ícone"
 
 #. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:339
+#: ../client/pk-console.c:343
 msgid "Details about the update:"
 msgstr "Detalhes sobre a atualização:"
 
 #. TRANSLATORS: details about the update, package name and version
 #. TRANSLATORS: title, the names of the packages that the method is processing
-#: ../client/pk-console.c:341
-#: ../src/pk-polkit-action-lookup.c:352
+#: ../client/pk-console.c:345 ../src/pk-polkit-action-lookup.c:352
 msgid "Package"
 msgid_plural "Packages"
 msgstr[0] "Pacote"
 msgstr[1] "Pacotes"
 
 #. TRANSLATORS: details about the update, any packages that this update updates
-#: ../client/pk-console.c:344
+#: ../client/pk-console.c:348
 msgid "Updates"
 msgstr "Atualiza"
 
 #. TRANSLATORS: details about the update, any packages that this update obsoletes
-#: ../client/pk-console.c:348
+#: ../client/pk-console.c:352
 msgid "Obsoletes"
 msgstr "Obsoletos"
 
 #. TRANSLATORS: details about the update, the vendor URLs
-#: ../client/pk-console.c:352
+#: ../client/pk-console.c:356
 msgid "Vendor"
 msgstr "Fornecedor"
 
 #. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:356
+#: ../client/pk-console.c:360
 msgid "Bugzilla"
 msgstr "Bugzilla"
 
 #. TRANSLATORS: details about the update, the CVE URLs
-#: ../client/pk-console.c:360
+#: ../client/pk-console.c:364
 msgid "CVE"
 msgstr "CVE"
 
 #. TRANSLATORS: details about the update, if the package requires a restart
-#: ../client/pk-console.c:364
+#: ../client/pk-console.c:368
 msgid "Restart"
 msgstr "Reinício"
 
 #. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:368
+#: ../client/pk-console.c:372
 msgid "Update text"
 msgstr "Descrição da atualização"
 
 #. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:372
+#: ../client/pk-console.c:376
 msgid "Changes"
 msgstr "Alterações"
 
 #. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:376
+#: ../client/pk-console.c:380
 msgid "State"
 msgstr "Estado"
 
 #. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:381
+#: ../client/pk-console.c:385
 msgid "Issued"
 msgstr "Emissão"
 
 #. TRANSLATORS: details about the update, date the update was updated
-#: ../client/pk-console.c:386
+#: ../client/pk-console.c:390
 msgid "Updated"
 msgstr "Atualizado em"
 
-#: ../client/pk-console.c:473
-#: ../client/pk-console.c:475
+#: ../client/pk-console.c:477 ../client/pk-console.c:479
 msgid "Percentage"
 msgstr "Porcentagem"
 
-#: ../client/pk-console.c:475
+#: ../client/pk-console.c:479
 msgid "Unknown"
 msgstr "Desconhecido"
 
 #. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:517
+#: ../client/pk-console.c:521
 msgid "System restart required by:"
 msgstr "O reinício do sistema é requerido por:"
 
 #. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:520
+#: ../client/pk-console.c:524
 msgid "Session restart required:"
 msgstr "É necessário reiniciar a sessão:"
 
 #. TRANSLATORS: a package requires the system to be restarted due to a security update
-#: ../client/pk-console.c:523
+#: ../client/pk-console.c:527
 msgid "System restart (security) required by:"
 msgstr "O reinício do sistema (por segurança) é requerido por:"
 
 #. TRANSLATORS: a package requires the session to be restarted due to a security update
-#: ../client/pk-console.c:526
+#: ../client/pk-console.c:530
 msgid "Session restart (security) required:"
 msgstr "É necessário reiniciar a sessão (por segurança):"
 
 #. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:529
+#: ../client/pk-console.c:533
 msgid "Application restart required by:"
 msgstr "O reinício do aplicativo é requerido por:"
 
 #. TRANSLATORS: a package needs to restart their system
-#: ../client/pk-console.c:584
+#: ../client/pk-console.c:588
 msgid "Please restart the computer to complete the update."
 msgstr "Por favor, reinicie o computador para completar a atualização."
 
 #. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:587
+#: ../client/pk-console.c:591
 msgid "Please logout and login to complete the update."
-msgstr "Por favor, encerre a sessão e inicie-a novamente para completar a atualização."
+msgstr ""
+"Por favor, encerre a sessão e inicie-a novamente para completar a "
+"atualização."
 
 #. TRANSLATORS: a package needs to restart the application
-#: ../client/pk-console.c:590
+#: ../client/pk-console.c:594
 msgid "Please restart the application as it is being used."
 msgstr "Por favor, reinicie o aplicativo que está sendo usado."
 
 #. TRANSLATORS: a package needs to restart their system (due to security)
-#: ../client/pk-console.c:593
-msgid "Please restart the computer to complete the update as important security updates have been installed."
-msgstr "Por favor, reinicie o computador para completar a atualização pois importantes atualizações de segurança foram instaladas."
+#: ../client/pk-console.c:597
+msgid ""
+"Please restart the computer to complete the update as important security "
+"updates have been installed."
+msgstr ""
+"Por favor, reinicie o computador para completar a atualização pois "
+"importantes atualizações de segurança foram instaladas."
 
 #. TRANSLATORS: a package needs to restart the session (due to security)
-#: ../client/pk-console.c:596
-msgid "Please logout and login to complete the update as important security updates have been installed."
-msgstr "Por favor, encerre a sessão e inicie-a novamente para completar a atualização pois importantes atualizações de segurança foram instaladas."
+#: ../client/pk-console.c:600
+msgid ""
+"Please logout and login to complete the update as important security updates "
+"have been installed."
+msgstr ""
+"Por favor, encerre a sessão e inicie-a novamente para completar a "
+"atualização pois importantes atualizações de segurança foram instaladas."
 
 #. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:723
+#: ../client/pk-console.c:727
 #, c-format
 msgid "The package %s is already installed"
 msgstr "O pacote %s já está instalado"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:731
+#: ../client/pk-console.c:735
 #, c-format
 msgid "The package %s could not be installed: %s"
 msgstr "O pacote %s não pôde ser instalado: %s"
 
 #. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
-#: ../client/pk-console.c:756
-#: ../client/pk-console.c:779
-#: ../client/pk-console.c:875
-#: ../client/pk-console.c:992
-#: ../client/pk-tools-common.c:62
-#: ../client/pk-tools-common.c:81
+#: ../client/pk-console.c:760 ../client/pk-console.c:783
+#: ../client/pk-console.c:879 ../client/pk-console.c:996
+#: ../client/pk-tools-common.c:62 ../client/pk-tools-common.c:81
 #: ../client/pk-tools-common.c:89
 #, c-format
 msgid "Internal error: %s"
 msgstr "Erro interno: %s"
 
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:764
-#: ../client/pk-console.c:1388
+#: ../client/pk-console.c:768 ../client/pk-console.c:1392
 #, c-format
 msgid "This tool could not install the packages: %s"
 msgstr "Esta ferramenta não pôde instalar os pacotes: %s"
 
 #. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:787
+#: ../client/pk-console.c:791
 #, c-format
 msgid "This tool could not install the files: %s"
 msgstr "Esta ferramenta não pôde instalar os arquivos: %s"
 
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:843
+#: ../client/pk-console.c:847
 #, c-format
 msgid "This tool could not remove %s: %s"
 msgstr "Esta ferramenta não pôde remover %s: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:866
-#: ../client/pk-console.c:904
-#: ../client/pk-console.c:937
+#: ../client/pk-console.c:870 ../client/pk-console.c:908
+#: ../client/pk-console.c:941
 #, c-format
 msgid "This tool could not remove the packages: %s"
 msgstr "Esta ferramente não pôde remover os pacotes: %s"
 
 #. TRANSLATORS: When removing, we might have to remove other dependencies
-#: ../client/pk-console.c:916
+#: ../client/pk-console.c:920
 msgid "The following packages have to be removed:"
 msgstr "Os seguintes pacotes têm que ser removidos:"
 
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:923
+#: ../client/pk-console.c:927
 msgid "Proceed removing additional packages?"
 msgstr "Continuar com a remoção dos pacotes adicionais?"
 
 #. TRANSLATORS: We did not remove any packages
-#: ../client/pk-console.c:928
+#: ../client/pk-console.c:932
 msgid "The package removal was canceled!"
 msgstr "A remoção do pacote foi cancelada!"
 
 #. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:969
+#: ../client/pk-console.c:973
 #, c-format
 msgid "This tool could not download the package %s as it could not be found"
-msgstr "Esta ferramenta não pôde baixar o pacote %s, pois ele não foi localizado"
+msgstr ""
+"Esta ferramenta não pôde baixar o pacote %s, pois ele não foi localizado"
 
 #. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:1000
+#: ../client/pk-console.c:1004
 #, c-format
 msgid "This tool could not download the packages: %s"
 msgstr "Esta ferramenta não pôde baixar os pacotes: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1027
-#: ../client/pk-console.c:1036
+#: ../client/pk-console.c:1031 ../client/pk-console.c:1040
 #, c-format
 msgid "This tool could not update %s: %s"
 msgstr "Esta ferramenta não pôde atualizar %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1058
-#: ../client/pk-console.c:1066
+#: ../client/pk-console.c:1062 ../client/pk-console.c:1070
 #, c-format
 msgid "This tool could not get the requirements for %s: %s"
 msgstr "Esta ferramenta não pôde obter os requerimentos para %s: %s"
 
 #. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:1088
-#: ../client/pk-console.c:1096
+#: ../client/pk-console.c:1092 ../client/pk-console.c:1100
 #, c-format
 msgid "This tool could not get the dependencies for %s: %s"
 msgstr "Esta ferramenta não pôde obter as dependências para %s: %s"
 
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:1118
-#: ../client/pk-console.c:1126
+#: ../client/pk-console.c:1122 ../client/pk-console.c:1130
 #, c-format
 msgid "This tool could not get package details for %s: %s"
 msgstr "Esta ferramenta não pôde obter os detalhes do pacote para %s: %s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1148
+#: ../client/pk-console.c:1152
 #, c-format
 msgid "This tool could not find the files for %s: %s"
 msgstr "Esta ferramenta não pôde localizar os arquivos para %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1156
+#: ../client/pk-console.c:1160
 #, c-format
 msgid "This tool could not get the file list for %s: %s"
 msgstr "Esta ferramenta não pôde obter a lista de arquivos para %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of packages. The filename follows
-#: ../client/pk-console.c:1178
+#: ../client/pk-console.c:1182
 #, c-format
 msgid "File already exists: %s"
 msgstr "O arquivo já existe: %s"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1183
-#: ../client/pk-console.c:1239
-#: ../client/pk-console.c:1314
+#: ../client/pk-console.c:1187 ../client/pk-console.c:1243
+#: ../client/pk-console.c:1318
 msgid "Getting package list"
 msgstr "Obtendo lista de pacotes"
 
 #. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1189
-#: ../client/pk-console.c:1245
-#: ../client/pk-console.c:1320
+#: ../client/pk-console.c:1193 ../client/pk-console.c:1249
+#: ../client/pk-console.c:1324
 #, c-format
 msgid "This tool could not get package list: %s"
 msgstr "Esta ferramente não pôde obter a lista de pacotes: %s"
 
 #. TRANSLATORS: There was an error saving the list
-#: ../client/pk-console.c:1200
+#: ../client/pk-console.c:1204
 #, c-format
 msgid "Failed to save to disk"
 msgstr "Falha ao salvar no disco"
 
 #. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1234
-#: ../client/pk-console.c:1309
+#: ../client/pk-console.c:1238 ../client/pk-console.c:1313
 #, c-format
 msgid "File does not exist: %s"
 msgstr "O arquivo não existe: %s"
 
 #. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1266
+#: ../client/pk-console.c:1270
 msgid "Packages to add"
 msgstr "Pacotes a serem adicionados"
 
 #. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1274
+#: ../client/pk-console.c:1278
 msgid "Packages to remove"
 msgstr "Pacotes a serem removidos"
 
 #. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1342
+#: ../client/pk-console.c:1346
 #, c-format
 msgid "No new packages need to be installed"
 msgstr "Nenhum pacote novo precisa ser instalado"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1348
+#: ../client/pk-console.c:1352
 msgid "To install"
 msgstr "Instalando"
 
 #. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1360
+#: ../client/pk-console.c:1364
 msgid "Searching for package: "
 msgstr "Pesquisando pelo pacote:"
 
 #. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1364
+#: ../client/pk-console.c:1368
 msgid "not found."
 msgstr "não encontrado."
 
 #. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1375
+#: ../client/pk-console.c:1379
 #, c-format
 msgid "No packages can be found to install"
 msgstr "Nenhum pacote pôde ser localizado para instalação"
 
 #. TRANSLATORS: installing new packages from package list
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
-#: ../client/pk-console.c:1381
+#: ../client/pk-console.c:1385
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:886
 #, c-format
 msgid "Installing packages"
 msgstr "Instalando pacotes"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1417
+#: ../client/pk-console.c:1421
 #, c-format
 msgid "This tool could not find the update details for %s: %s"
-msgstr "Esta ferramenta não pôde localizar os detalhes de atualização para %s: %s"
+msgstr ""
+"Esta ferramenta não pôde localizar os detalhes de atualização para %s: %s"
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1425
+#: ../client/pk-console.c:1429
 #, c-format
 msgid "This tool could not get the update details for %s: %s"
 msgstr "Esta ferramenta não pôde obter os detalhes de atualização para %s: %s"
 
 #. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
-#: ../client/pk-console.c:1456
+#: ../client/pk-console.c:1460
 msgid "Error:"
 msgstr "Erro:"
 
 #. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1470
+#: ../client/pk-console.c:1474
 msgid "Package description"
 msgstr "Descrição do pacote"
 
 #. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
-#: ../client/pk-console.c:1486
+#: ../client/pk-console.c:1490
 msgid "Message:"
 msgstr "Mensagem:"
 
 #. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1514
+#: ../client/pk-console.c:1518
 msgid "Package files"
 msgstr "Arquivos do pacote"
 
 #. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1522
+#: ../client/pk-console.c:1526
 msgid "No files"
 msgstr "Nenhum arquivo"
 
 #. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1545
+#: ../client/pk-console.c:1549
 msgid "Repository signature required"
 msgstr "A assinatura do repositório é necessária"
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1555
+#: ../client/pk-console.c:1559
 msgid "Do you accept this signature?"
 msgstr "Você aceita essa assinatura?"
 
 #. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1559
+#: ../client/pk-console.c:1563
 msgid "The signature was not accepted."
 msgstr "A assinatura não foi aceita."
 
 #. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1593
+#: ../client/pk-console.c:1597
 msgid "End user license agreement required"
 msgstr "É necessário um contrato de licença para o usuário final"
 
 #. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1600
+#: ../client/pk-console.c:1604
 msgid "Do you agree to this license?"
 msgstr "Você concorda com a licença?"
 
 #. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1604
+#: ../client/pk-console.c:1608
 msgid "The license was refused."
 msgstr "A licença foi recusada."
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1633
+#: ../client/pk-console.c:1637
 msgid "The daemon crashed mid-transaction!"
 msgstr "O daemon travou no meio da transação!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1686
+#: ../client/pk-console.c:1690
 msgid "PackageKit Console Interface"
 msgstr "Interface em Console do PackageKit"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1688
+#: ../client/pk-console.c:1692
 msgid "Subcommands:"
 msgstr "Subcomandos:"
 
 #. TRANSLATORS: command line argument, if we should show debugging information
 #. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:1781
-#: ../client/pk-generate-pack.c:185
+#: ../client/pk-console.c:1785 ../client/pk-generate-pack.c:185
 #: ../client/pk-monitor.c:128
 #: ../contrib/command-not-found/pk-command-not-found.c:616
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:550
-#: ../contrib/device-rebind/pk-device-rebind.c:293
-#: ../src/pk-main.c:211
+#: ../contrib/device-rebind/pk-device-rebind.c:293 ../src/pk-main.c:211
 msgid "Show extra debugging information"
 msgstr "Mostrar informações extras de depuração"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1784
-#: ../client/pk-monitor.c:130
+#: ../client/pk-console.c:1788 ../client/pk-monitor.c:130
 msgid "Show the program version and exit"
 msgstr "Mostrar a versão do programa e sair"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1787
+#: ../client/pk-console.c:1791
 msgid "Set the filter, e.g. installed"
 msgstr "Definir o filtro, p. ex.: instalados"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1790
+#: ../client/pk-console.c:1794
 msgid "Exit without waiting for actions to complete"
 msgstr "Sair sem esperar pelo término das ações"
 
 #. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:1817
+#: ../client/pk-console.c:1821
 msgid "This tool could not connect to system DBUS."
 msgstr "Esta ferramenta não pôde conectar ao DBUS do sistema."
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1907
+#: ../client/pk-console.c:1911
 msgid "The filter specified was invalid"
 msgstr "O filtro especificado era inválido"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1926
+#: ../client/pk-console.c:1930
 msgid "A search type is required, e.g. name"
 msgstr "Um tipo de pesquisa é requerido, p. ex. nome"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1933
-#: ../client/pk-console.c:1942
-#: ../client/pk-console.c:1951
-#: ../client/pk-console.c:1960
+#: ../client/pk-console.c:1937 ../client/pk-console.c:1946
+#: ../client/pk-console.c:1955 ../client/pk-console.c:1964
 msgid "A search term is required"
 msgstr "Um termo de pesquisa é requerido"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1967
+#: ../client/pk-console.c:1971
 msgid "Invalid search type"
 msgstr "Tipo de pesquisa inválido"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1973
+#: ../client/pk-console.c:1977
 msgid "A package name or filename to install is required"
 msgstr "O nome do pacote ou arquivo é requerido"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1982
+#: ../client/pk-console.c:1986
 msgid "A type, key_id and package_id are required"
 msgstr "Um tipo, key_id e package_id são requeridos"
 
 #. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:1991
+#: ../client/pk-console.c:1995
 msgid "A package name to remove is required"
 msgstr "O nome do pacote para remoção é requerido"
 
 #. TRANSLATORS: the user did not specify anything about what to download or where
-#: ../client/pk-console.c:1999
+#: ../client/pk-console.c:2003
 msgid "A destination directory and the package names to download are required"
-msgstr "O diretório de destino e os os nomes dos pacotes a serem baixados são requeridos"
+msgstr ""
+"O diretório de destino e os os nomes dos pacotes a serem baixados são "
+"requeridos"
 
 #. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:2006
+#: ../client/pk-console.c:2010
 msgid "Directory not found"
 msgstr "Diretório não encontrado"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2014
+#: ../client/pk-console.c:2018
 msgid "A licence identifier (eula-id) is required"
 msgstr "Um identificador de licença (eula-id) é requerido"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2024
+#: ../client/pk-console.c:2028
 msgid "A transaction identifier (tid) is required"
 msgstr "Um identificador de transação (tid) é requerido"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:2041
+#: ../client/pk-console.c:2045
 msgid "A package name to resolve is required"
 msgstr "O nome de pacote a ser analisado é requerido"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:2050
-#: ../client/pk-console.c:2059
+#: ../client/pk-console.c:2054 ../client/pk-console.c:2063
 msgid "A repository name is required"
 msgstr "O nome do repositório é requerido"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2068
+#: ../client/pk-console.c:2072
 msgid "A repo name, parameter and value are required"
 msgstr "Um nome de repositório, parâmetro e um valor são requeridos"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:2082
+#: ../client/pk-console.c:2086
 msgid "An action, e.g. 'update-system' is required"
 msgstr "Uma ação, p. ex. \"update-system\" é requerida"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:2089
+#: ../client/pk-console.c:2093
 msgid "A correct role is required"
 msgstr "Um modo correto é requerido"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2096
+#: ../client/pk-console.c:2100
 msgid "Failed to get the time since this action was last completed"
 msgstr "Falha ao obter o tempo em que essa ação foi completada pela última vez"
 
 #. TRANSLATORS: The user did not provide a package name
 #. TRANSLATORS: This is when the user fails to supply the package name
-#: ../client/pk-console.c:2106
-#: ../client/pk-console.c:2118
-#: ../client/pk-console.c:2127
-#: ../client/pk-console.c:2145
-#: ../client/pk-console.c:2154
-#: ../client/pk-generate-pack.c:241
+#: ../client/pk-console.c:2110 ../client/pk-console.c:2122
+#: ../client/pk-console.c:2131 ../client/pk-console.c:2149
+#: ../client/pk-console.c:2158 ../client/pk-generate-pack.c:241
 msgid "A package name is required"
 msgstr "O nome do pacote é requerido"
 
 #. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:2136
+#: ../client/pk-console.c:2140
 msgid "A package provide string is required"
 msgstr "É necessário especificar o que o pacote fornece"
 
 #. TRANSLATORS: The user didn't specify a filename to create as a list
-#: ../client/pk-console.c:2163
+#: ../client/pk-console.c:2167
 msgid "A list file name to create is required"
 msgstr "O nome de arquivo da lista a ser criada é requerido"
 
 #. TRANSLATORS: The user didn't specify a filename to open as a list
-#: ../client/pk-console.c:2173
-#: ../client/pk-console.c:2183
+#: ../client/pk-console.c:2177 ../client/pk-console.c:2187
 msgid "A list file to open is required"
 msgstr "Uma lista de arquivos a serem abertos é requerida"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2237
+#: ../client/pk-console.c:2241
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "A opção \"%s\" não é suportada"
 
 #. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2250
+#: ../client/pk-console.c:2254
 msgid "Incorrect privileges for this operation"
 msgstr "Privilégios incorretos para esta operação"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2253
+#: ../client/pk-console.c:2257
 msgid "Command failed"
 msgstr "O comando falhou"
 
@@ -727,7 +712,8 @@ msgstr "Defina o nome de arquivo das dependências a serem excluídas"
 
 #. TRANSLATORS: the output location
 #: ../client/pk-generate-pack.c:191
-msgid "The output file or directory (the current directory is used if ommitted)"
+msgid ""
+"The output file or directory (the current directory is used if ommitted)"
 msgstr "O diretório ou arquivo de saída (o diretório atual é usado se omitido)"
 
 #. TRANSLATORS: put a list of packages in the pack
@@ -757,25 +743,31 @@ msgstr "Um diretório ou arquivo de saída é requerido"
 
 #. TRANSLATORS: This is when the backend doesn't have the capability to get-depends
 #. TRANSLATORS: This is when the backend doesn't have the capability to download
-#: ../client/pk-generate-pack.c:267
-#: ../client/pk-generate-pack.c:273
+#: ../client/pk-generate-pack.c:267 ../client/pk-generate-pack.c:273
 msgid "The package manager cannot perform this type of operation."
 msgstr "O gerenciador de pacotes não pode realizar este tipo de operação."
 
 #. TRANSLATORS: This is when the distro didn't include libarchive support into PK
 #: ../client/pk-generate-pack.c:280
-msgid "Service packs cannot be created as PackageKit was not built with libarchive support."
-msgstr "Os pacotes de serviço não podem ser criados já que o PackageKIt não foi compilado com suporte à libarchive."
+msgid ""
+"Service packs cannot be created as PackageKit was not built with libarchive "
+"support."
+msgstr ""
+"Os pacotes de serviço não podem ser criados já que o PackageKIt não foi "
+"compilado com suporte à libarchive."
 
 #. TRANSLATORS: the user specified an absolute path, but didn't get the extension correct
 #: ../client/pk-generate-pack.c:291
 msgid "If specifying a file, the service pack name must end with"
-msgstr "Se um arquivo for especificado, o nome do pacote de serviços deve terminar com"
+msgstr ""
+"Se um arquivo for especificado, o nome do pacote de serviços deve terminar "
+"com"
 
 #. TRANSLATORS: This is when file already exists
 #: ../client/pk-generate-pack.c:307
 msgid "A pack with the same name already exists, do you want to overwrite it?"
-msgstr "Um pacote de serviços com o mesmo nome já existe, você deseja sobrescrevê-lo?"
+msgstr ""
+"Um pacote de serviços com o mesmo nome já existe, você deseja sobrescrevê-lo?"
 
 #. TRANSLATORS: This is when the pack was not overwritten
 #: ../client/pk-generate-pack.c:310
@@ -851,56 +843,56 @@ msgid "Please enter a number from 1 to %i: "
 msgstr "Por favor, insira um número entre 1 e %i: "
 
 #. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/pk-plugin-install.c:464
+#: ../contrib/browser-plugin/pk-plugin-install.c:466
 msgid "Getting package information..."
 msgstr "Obtendo informações do pacote..."
 
 #. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/pk-plugin-install.c:470
+#: ../contrib/browser-plugin/pk-plugin-install.c:472
 #, c-format
 msgid "Run %s"
 msgstr "Executar %s"
 
 #. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:476
+#: ../contrib/browser-plugin/pk-plugin-install.c:478
 msgid "Installed version"
 msgstr "Versão instalada"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:484
+#: ../contrib/browser-plugin/pk-plugin-install.c:486
 #, c-format
 msgid "Run version %s now"
 msgstr "Executar a versão %s agora"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:490
+#: ../contrib/browser-plugin/pk-plugin-install.c:492
 msgid "Run now"
 msgstr "Executar agora"
 
 #. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:496
+#: ../contrib/browser-plugin/pk-plugin-install.c:498
 #, c-format
 msgid "Update to version %s"
 msgstr "Atualizar para a versão %s"
 
 #. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:502
+#: ../contrib/browser-plugin/pk-plugin-install.c:504
 #, c-format
 msgid "Install %s now"
 msgstr "Instalar %s agora"
 
 #. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:505
+#: ../contrib/browser-plugin/pk-plugin-install.c:507
 msgid "Version"
 msgstr "Versão"
 
 #. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/pk-plugin-install.c:510
+#: ../contrib/browser-plugin/pk-plugin-install.c:512
 msgid "No packages found for your system"
 msgstr "Nenhum pacote localizado para o seu sistema"
 
 #. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/pk-plugin-install.c:515
+#: ../contrib/browser-plugin/pk-plugin-install.c:517
 msgid "Installing..."
 msgstr "Instalando..."
 
@@ -912,7 +904,8 @@ msgstr "Baixando detalhes das fontes de programas."
 #. TRANSLATORS: downloading file lists so we can search
 #: ../contrib/command-not-found/pk-command-not-found.c:353
 msgid "Downloading filelists (this may take some time to complete)."
-msgstr "Baixando listas de arquivos (isso pode levar algum tempo para ser concluído)."
+msgstr ""
+"Baixando listas de arquivos (isso pode levar algum tempo para ser concluído)."
 
 #. TRANSLATORS: waiting for native lock
 #: ../contrib/command-not-found/pk-command-not-found.c:357
@@ -1006,8 +999,10 @@ msgstr "Falha ao localizar o pacote %s ou ele já está instalado: %s"
 
 #. command line argument, simulate what would be done, but don't actually do it
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:553
-msgid "Don't actually install any packages, only simulate what would be installed"
-msgstr "Não instala os pacotes na realidade, apenas simula o que seria instalado"
+msgid ""
+"Don't actually install any packages, only simulate what would be installed"
+msgstr ""
+"Não instala os pacotes na realidade, apenas simula o que seria instalado"
 
 #. command line argument, do we skip packages that depend on the ones specified
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:556
@@ -1290,16 +1285,24 @@ msgid "Authentication is required to accept a EULA"
 msgstr "É necessário autenticar para aceitar uma licença EULA"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:9
-msgid "Authentication is required to cancel a task that was not started by yourself"
-msgstr "É necessário autenticar para cancelar uma tarefa que não foi iniciada por você"
+msgid ""
+"Authentication is required to cancel a task that was not started by yourself"
+msgstr ""
+"É necessário autenticar para cancelar uma tarefa que não foi iniciada por "
+"você"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:10
 msgid "Authentication is required to change software source parameters"
-msgstr "É necessário autenticar para alterar os parâmetros das fontes de programas"
+msgstr ""
+"É necessário autenticar para alterar os parâmetros das fontes de programas"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:11
-msgid "Authentication is required to consider a key used for signing packages as trusted"
-msgstr "É necessário autenticar para considerar uma chave usada para assinar pacotes como confiáveis"
+msgid ""
+"Authentication is required to consider a key used for signing packages as "
+"trusted"
+msgstr ""
+"É necessário autenticar para considerar uma chave usada para assinar pacotes "
+"como confiáveis"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:12
 msgid "Authentication is required to install a signed package"
@@ -1315,7 +1318,8 @@ msgstr "É necessário autenticar para recarregar as fontes do sistema"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:15
 msgid "Authentication is required to reload the device with a new driver"
-msgstr "É necessário autenticar para recarregar o dispositivo com o novo driver"
+msgstr ""
+"É necessário autenticar para recarregar o dispositivo com o novo driver"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:16
 msgid "Authentication is required to remove packages"
@@ -1326,8 +1330,12 @@ msgid "Authentication is required to rollback a transaction"
 msgstr "É necessário autenticar para retroceder uma transação"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:18
-msgid "Authentication is required to set the network proxy used for downloading packages"
-msgstr "É necessário autenticar para definir o proxy de rede usado para baixar pacotes"
+msgid ""
+"Authentication is required to set the network proxy used for downloading "
+"packages"
+msgstr ""
+"É necessário autenticar para definir o proxy de rede usado para baixar "
+"pacotes"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:19
 msgid "Authentication is required to update packages"
@@ -1458,8 +1466,12 @@ msgstr "O usuário correto não está iniciando o executável (normalmente o roo
 
 #. TRANSLATORS: or we are installed in a prefix
 #: ../src/pk-main.c:93
-msgid "The org.freedesktop.PackageKit.conf file is not installed in the system directory:"
-msgstr "O arquivo org.freedesktop.PackageKit.conf não está instalado no diretório do sistema:"
+msgid ""
+"The org.freedesktop.PackageKit.conf file is not installed in the system "
+"directory:"
+msgstr ""
+"O arquivo org.freedesktop.PackageKit.conf não está instalado no diretório do "
+"sistema:"
 
 #. TRANSLATORS: a backend is the system package tool, e.g. yum, apt
 #: ../src/pk-main.c:205
@@ -1508,34 +1520,45 @@ msgstr "Erro ao tentar iniciar:"
 
 #: ../src/pk-polkit-action-lookup.c:147
 msgid "To install debugging packages, extra sources need to be enabled"
-msgstr "Fontes extras precisam ser habilitadas para a instalação dos pacotes de depuração"
+msgstr ""
+"Fontes extras precisam ser habilitadas para a instalação dos pacotes de "
+"depuração"
 
 #. TRANSLATORS: is not GPG signed
-#: ../src/pk-polkit-action-lookup.c:168
-#: ../src/pk-polkit-action-lookup.c:187
+#: ../src/pk-polkit-action-lookup.c:168 ../src/pk-polkit-action-lookup.c:187
 msgid "The software is not from a trusted source."
 msgstr "O programa não vem de uma fonte confiável."
 
 #: ../src/pk-polkit-action-lookup.c:173
 msgid "Do not update this package unless you are sure it is safe to do so."
-msgstr "Não atualize este pacote a não ser que você esteja certo de que é seguro fazer isso."
+msgstr ""
+"Não atualize este pacote a não ser que você esteja certo de que é seguro "
+"fazer isso."
 
 #: ../src/pk-polkit-action-lookup.c:174
 msgid "Do not update these packages unless you are sure it is safe to do so."
-msgstr "Não atualize estes pacotes a não ser que você esteja certo de que é seguro fazer isso."
+msgstr ""
+"Não atualize estes pacotes a não ser que você esteja certo de que é seguro "
+"fazer isso."
 
 #: ../src/pk-polkit-action-lookup.c:192
 msgid "Do not install this package unless you are sure it is safe to do so."
-msgstr "Não instale este pacote a não ser que você esteja certo de que é seguro fazer isso."
+msgstr ""
+"Não instale este pacote a não ser que você esteja certo de que é seguro "
+"fazer isso."
 
 #: ../src/pk-polkit-action-lookup.c:193
 msgid "Do not install these packages unless you are sure it is safe to do so."
-msgstr "Não instale estes pacotes a não ser que você esteja certo de que é seguro fazer isso."
+msgstr ""
+"Não instale estes pacotes a não ser que você esteja certo de que é seguro "
+"fazer isso."
 
 #. TRANSLATORS: warn the user that all bets are off
 #: ../src/pk-polkit-action-lookup.c:199
 msgid "Malicious software can damage your computer or cause other harm."
-msgstr "Programas maliciosos podem danificar o seu computador ou causar outros prejuízos."
+msgstr ""
+"Programas maliciosos podem danificar o seu computador ou causar outros "
+"prejuízos."
 
 #. TRANSLATORS: too many packages to list each one
 #: ../src/pk-polkit-action-lookup.c:274
@@ -1549,149 +1572,200 @@ msgstr "Somente confiáveis"
 
 #~ msgid "The action, one of 'create', 'add', or 'remove'"
 #~ msgstr "A ação, uma entre as opções \"create\", \"add\" ou \"remove\""
+
 #~ msgid "Main cache file to use (if not specififed, default is used)"
 #~ msgstr ""
 #~ "O arquivo principal de cache a ser usado (se não for especificado, o "
 #~ "padrão é usado)"
+
 #~ msgid "Source cache file to add to the main database"
 #~ msgstr "O arquivo fonte do cache para adicionar ao banco de dados principal"
+
 #~ msgid "Icon directory"
 #~ msgstr "Diretório de ícones"
+
 #~ msgid "Name of the remote repo"
 #~ msgstr "Nome do repositório remoto"
+
 #~ msgid "PackageKit Application Database Installer"
 #~ msgstr "Instalador do bancos de dados de aplicativos do PackageKit"
+
 #~ msgid "Main database file to use (if not specififed, default is used)"
 #~ msgstr ""
 #~ "Arquivo principal do banco de dados a ser usado (se não for especificado "
 #~ "o padrão é usado)"
+
 #~ msgid "You need to specify a search type, e.g. name"
 #~ msgstr "Você precisa especificar um tipo de pesquisa, p. ex. nome"
+
 #~ msgid "You need to specify a search term"
 #~ msgstr "Você precisa especificar um termo de pesquisa"
+
 #~ msgid "You need to specify a package to remove"
 #~ msgstr "Você precisa especificar um pacote a ser removido"
+
 #~ msgid "You need to specify a package name to resolve"
 #~ msgstr "Você precisa especificar um nome de pacote a ser analisado"
+
 #~ msgid "You need to specify a repository name"
 #~ msgstr "Você precisa especificar um nome de repositório"
+
 #~ msgid "You need to specify a correct role"
 #~ msgstr "Você precisa especificar um papel correto"
+
 #~ msgid "Failed to get last time"
 #~ msgstr "Falha ao obter o último horário"
+
 #~ msgid "You need to specify a package to find the details for"
 #~ msgstr ""
 #~ "Você precisa especificar o pacote para o qual você quer localizar os "
 #~ "detalhes"
+
 #~ msgid "You need to specify a package to find the files for"
 #~ msgstr ""
 #~ "Você precisa especificar o pacote para o qual você quer localizar os "
 #~ "arquivos"
+
 #~ msgid "You need to specify a list file to open"
 #~ msgstr "Você precisa especificar um arquivo de lista a ser aberto"
+
 #~ msgid "This tool could not remove the packages: '%s'"
 #~ msgstr "Esta ferramente não pôde remover os pacotes: \"%s\""
+
 #~ msgid "Install local file"
 #~ msgstr "Instalar um arquivo local"
+
 #~ msgid "Okay to import key?"
 #~ msgstr "A chave pode ser importada?"
+
 #~ msgid "Did not import key"
 #~ msgstr "Não importar a chave"
+
 #~ msgid "Eula required"
 #~ msgstr "Uma Eula é necessária"
+
 #~ msgid "Do you agree?"
 #~ msgstr "Você concorda?"
+
 #~ msgid "Could not find package to remove"
 #~ msgstr "Não foi possível localizar o pacote a ser removido"
+
 #~ msgid "Cancelled!"
 #~ msgstr "Cancelado!"
+
 #~ msgid "Could not find package to update"
 #~ msgstr "Não foi possível localizar o pacote a ser atualizado"
+
 #~ msgid "Could not find what packages require"
 #~ msgstr "Não foi possível localizar quais pacotes necessitam desse pacote"
+
 #~ msgid "Could not find details for"
 #~ msgstr "Não foi possível localizar os detalhes para"
+
 #~ msgid "failed to download: invalid package_id and/or directory"
 #~ msgstr "falha ao baixar: package_id e/ou diretório inválidos"
+
 #~ msgid "Could not find a valid metadata file"
 #~ msgstr "Não foi possível localizar um arquivo de metadados válido"
+
 #~ msgid "Okay to download the additional packages"
 #~ msgstr "Os pacotes adicionais podem ser baixados"
+
 #~ msgid "You need to specify the pack name and packages to be packed\n"
 #~ msgstr ""
 #~ "Você precisa especificar o nome do pacote de serviços e os pacotes a "
 #~ "serem incluídos\n"
+
 #~ msgid ""
 #~ "Invalid name for the service pack, Specify a name with .servicepack "
 #~ "extension\n"
 #~ msgstr ""
 #~ "Nome inválido para o pacote de serviços. Especifique um nome com a "
 #~ "extensão .servicepack\n"
+
 #~ msgid "Could not set database readonly"
 #~ msgstr "Não foi possível configurar o banco de dados para somente leitura"
+
 #~ msgid "Could not open database: %s"
 #~ msgstr "Não foi possível abrir o banco de dados: %s"
+
 #~ msgid "You probably need to run this program as the root user"
 #~ msgstr "Você provavelmente precisa executar este programa como usuário root"
+
 #~ msgid "<span color='#%06x' underline='single' size='larger'>Run %s</span>"
 #~ msgstr ""
 #~ "<span color='#%06x' underline='single' size='larger'>Executar %s</span>"
+
 #~ msgid "<big>%s</big>"
 #~ msgstr "<big>%s</big>"
+
 #~ msgid ""
 #~ "\n"
 #~ "<span color='#%06x' underline='single'>Run version %s now</span>"
 #~ msgstr ""
 #~ "\n"
 #~ "<span color='#%06x' underline='single'>Executar versão %s agora</span>"
+
 #~ msgid ""
 #~ "\n"
 #~ "<span color='#%06x' underline='single'>Run now</span>"
 #~ msgstr ""
 #~ "\n"
 #~ "<span color='#%06x' underline='single'>Executar agora</span>"
+
 #~ msgid ""
 #~ "\n"
 #~ "<span color='#%06x' underline='single'>Upgrade to version %s</span>"
 #~ msgstr ""
 #~ "\n"
 #~ "<span color='#%06x' underline='single'>Atualizar para a versão %s</span>"
+
 #~ msgid ""
 #~ "<span color='#%06x' underline='single' size='larger'>Install %s Now</span>"
 #~ msgstr ""
 #~ "<span color='#%06x' underline='single' size='larger'>Instalar %s agora</"
 #~ "span>"
+
 #~ msgid ""
 #~ "\n"
 #~ "<small>Version: %s</small>"
 #~ msgstr ""
 #~ "\n"
 #~ "<small>Versão: %s</small>"
+
 #~ msgid ""
 #~ "You need to specify the package to download and the destination directory"
 #~ msgstr ""
 #~ "Você precisa especificar o pacote a ser baixado e o diretório de destino"
+
 #~ msgid ""
 #~ "Could not find a package with that name to install, or package already "
 #~ "installed"
 #~ msgstr ""
 #~ "Não foi possível encontrar um pacote com esse nome para instalar ou o "
 #~ "pacote já está instalado"
+
 #~ msgid "Could not find a package with that name to update"
 #~ msgstr ""
 #~ "Não foi possível encontrar um pacote com esse nome para ser atualizado"
+
 #~ msgid "Authentication is required to install a local file"
 #~ msgstr "É necessário autenticar para instalar um arquivo local"
+
 #~ msgid "Authentication is required to install a security signature"
 #~ msgstr "É necessário autenticar para instalar uma assinatura de segurança"
+
 #~ msgid "Authentication is required to update all packages"
 #~ msgstr "É necessário autenticar para atualizar todos os pacotes"
+
 #~ msgid "Install security signature"
 #~ msgstr "Instalar uma assinatura de segurança"
+
 #~ msgid "Refresh package lists"
 #~ msgstr "Recarregar listas de pacotes"
+
 #~ msgid "Update all packages"
 #~ msgstr "Atualizar todos os pacotes"
+
 #~ msgid "Could not find a description for this package"
 #~ msgstr "Não foi possível encontrar uma descrição para esse pacote"
-
diff --git a/po/ro.po b/po/ro.po
index cff0c18..c8574e7 100644
--- a/po/ro.po
+++ b/po/ro.po
@@ -2,7 +2,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Fedora 10\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-02-25 01:44+0000\n"
+"POT-Creation-Date: 2009-08-24 11:06+0100\n"
 "PO-Revision-Date: 2009-03-17 22:36+0200\n"
 "Last-Translator: alexxed <alexxed at gmail.com>\n"
 "Language-Team: Romanian <LL at li.org>\n"
@@ -14,232 +14,269 @@ msgstr ""
 "X-Generator: Narro 0.9.4 on http://tradu.softwareliber.ro\n"
 
 #. TRANSLATORS: this is an atomic transaction
-#: ../client/pk-console.c:230
+#: ../client/pk-console.c:235
 msgid "Transaction"
 msgstr "Tranzacție"
 
 #. TRANSLATORS: this is the time the transaction was started in system timezone
-#: ../client/pk-console.c:232
+#: ../client/pk-console.c:237
 msgid "System time"
 msgstr "Ora sistemului"
 
 #. TRANSLATORS: this is if the transaction succeeded or not
-#: ../client/pk-console.c:234
+#: ../client/pk-console.c:239
 msgid "Succeeded"
 msgstr "Reușit"
 
 #. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:234 ../client/pk-console.c:401
+#: ../client/pk-console.c:239 ../client/pk-console.c:406
 msgid "True"
 msgstr "Adevărat"
 
-#: ../client/pk-console.c:234 ../client/pk-console.c:401
+#: ../client/pk-console.c:239 ../client/pk-console.c:406
 msgid "False"
 msgstr "Fals"
 
 #. TRANSLATORS: this is the transactions role, e.g. "update-system"
-#: ../client/pk-console.c:236
+#. TRANSLATORS: the trasaction role, e.g. update-system
+#: ../client/pk-console.c:241 ../src/pk-polkit-action-lookup.c:327
 msgid "Role"
 msgstr "Rol"
 
 #. TRANSLATORS: this is The duration of the transaction
-#: ../client/pk-console.c:241
+#: ../client/pk-console.c:246
 msgid "Duration"
 msgstr "Durată"
 
-#: ../client/pk-console.c:241
+#: ../client/pk-console.c:246
 msgid "(seconds)"
 msgstr "(secunde)"
 
 #. TRANSLATORS: this is The command line used to do the action
-#: ../client/pk-console.c:245
+#. TRANSLATORS: the command line of the thing that wants the authentication
+#: ../client/pk-console.c:250 ../src/pk-polkit-action-lookup.c:341
 msgid "Command line"
 msgstr "Linia de comandă"
 
 #. TRANSLATORS: this is the user ID of the user that started the action
-#: ../client/pk-console.c:247
+#: ../client/pk-console.c:252
 msgid "User ID"
 msgstr "ID utilizator"
 
 #. TRANSLATORS: this is the username, e.g. hughsie
-#: ../client/pk-console.c:254
+#: ../client/pk-console.c:259
 msgid "Username"
 msgstr "Nume de utilizator"
 
 #. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
-#: ../client/pk-console.c:258
+#: ../client/pk-console.c:263
 msgid "Real name"
 msgstr "Nume real"
 
-#: ../client/pk-console.c:266
+#: ../client/pk-console.c:271
 msgid "Affected packages:"
 msgstr "Pachete afectate:"
 
-#: ../client/pk-console.c:268
+#: ../client/pk-console.c:273
 msgid "Affected packages: None"
 msgstr "Pachete afectate: niciunul"
 
 #. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:293
+#: ../client/pk-console.c:298
 msgid "Distribution"
 msgstr "Distribuție"
 
 #. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:295
+#: ../client/pk-console.c:300
 msgid "Type"
 msgstr "Tip"
 
 #. TRANSLATORS: this is any summary text describing the upgrade
 #. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:297 ../client/pk-console.c:320
+#: ../client/pk-console.c:302 ../client/pk-console.c:325
 msgid "Summary"
 msgstr "Sumar"
 
 #. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:309
+#: ../client/pk-console.c:314
 msgid "Category"
 msgstr "Categorie"
 
 #. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:311
+#: ../client/pk-console.c:316
 msgid "ID"
 msgstr "ID"
 
 #. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:314
+#: ../client/pk-console.c:319
 msgid "Parent"
 msgstr "Părinte"
 
 #. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:317
+#: ../client/pk-console.c:322
 msgid "Name"
 msgstr "Nume"
 
 #. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:323
+#: ../client/pk-console.c:328
 msgid "Icon"
 msgstr "Iconiță"
 
 #. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:338
+#: ../client/pk-console.c:343
 msgid "Details about the update:"
 msgstr "Detalii despre actualizare:"
 
 #. TRANSLATORS: details about the update, package name and version
-#: ../client/pk-console.c:340
+#. TRANSLATORS: title, the names of the packages that the method is processing
+#: ../client/pk-console.c:345 ../src/pk-polkit-action-lookup.c:352
+#, fuzzy
 msgid "Package"
-msgstr "Pachet"
+msgid_plural "Packages"
+msgstr[0] "Pachet"
+msgstr[1] "Pachet"
+msgstr[2] "Pachet"
 
 #. TRANSLATORS: details about the update, any packages that this update updates
-#: ../client/pk-console.c:343
+#: ../client/pk-console.c:348
 msgid "Updates"
 msgstr "Actualizări"
 
 #. TRANSLATORS: details about the update, any packages that this update obsoletes
-#: ../client/pk-console.c:347
+#: ../client/pk-console.c:352
 msgid "Obsoletes"
 msgstr "Înlocuiește"
 
 #. TRANSLATORS: details about the update, the vendor URLs
-#: ../client/pk-console.c:351
+#: ../client/pk-console.c:356
 msgid "Vendor"
 msgstr "Vânzător"
 
 #. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:355
+#: ../client/pk-console.c:360
 msgid "Bugzilla"
 msgstr "Bugzilla"
 
 #. TRANSLATORS: details about the update, the CVE URLs
-#: ../client/pk-console.c:359
+#: ../client/pk-console.c:364
 msgid "CVE"
 msgstr "CVE"
 
 #. TRANSLATORS: details about the update, if the package requires a restart
-#: ../client/pk-console.c:363
+#: ../client/pk-console.c:368
 msgid "Restart"
 msgstr "Repornește"
 
 #. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:367
+#: ../client/pk-console.c:372
 msgid "Update text"
 msgstr "Textul actualizării"
 
 #. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:371
+#: ../client/pk-console.c:376
 msgid "Changes"
 msgstr "Schimbări"
 
 #. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:375
+#: ../client/pk-console.c:380
 msgid "State"
 msgstr "Stare"
 
 #. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:380
+#: ../client/pk-console.c:385
 msgid "Issued"
 msgstr "Emis"
 
 #. TRANSLATORS: details about the update, date the update was updated
-#: ../client/pk-console.c:385
+#: ../client/pk-console.c:390
 msgid "Updated"
 msgstr "Actualizat"
 
-#: ../client/pk-console.c:472 ../client/pk-console.c:474
+#: ../client/pk-console.c:477 ../client/pk-console.c:479
 msgid "Percentage"
 msgstr "Procentaj"
 
-#: ../client/pk-console.c:474
+#: ../client/pk-console.c:479
 msgid "Unknown"
 msgstr "Necunoscut"
 
 #. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:525
+#: ../client/pk-console.c:521
 msgid "System restart required by:"
 msgstr "Repornirea sistemului este cerută de:"
 
 #. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:528
+#: ../client/pk-console.c:524
 msgid "Session restart required:"
 msgstr "Este necesară repornirea sesiunii:"
 
+#. TRANSLATORS: a package requires the system to be restarted due to a security update
+#: ../client/pk-console.c:527
+#, fuzzy
+msgid "System restart (security) required by:"
+msgstr "Repornirea sistemului este cerută de:"
+
+#. TRANSLATORS: a package requires the session to be restarted due to a security update
+#: ../client/pk-console.c:530
+#, fuzzy
+msgid "Session restart (security) required:"
+msgstr "Este necesară repornirea sesiunii:"
+
 #. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:531
+#: ../client/pk-console.c:533
 msgid "Application restart required by:"
 msgstr "Repornirea aplicației este cerută de:"
 
-#. TRANSLATORS: a package needs to restart they system
-#: ../client/pk-console.c:568
+#. TRANSLATORS: a package needs to restart their system
+#: ../client/pk-console.c:588
 msgid "Please restart the computer to complete the update."
 msgstr "Vă rugăm să reporniți calculatorul pentru a completa actualizarea."
 
 #. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:571
+#: ../client/pk-console.c:591
 msgid "Please logout and login to complete the update."
 msgstr ""
 "Vă rugăm să ieșiți din cont și să vă autentificați din nou pentru a completa "
 "actualizarea."
 
 #. TRANSLATORS: a package needs to restart the application
-#: ../client/pk-console.c:574
+#: ../client/pk-console.c:594
 msgid "Please restart the application as it is being used."
 msgstr "Vă rugăm să reporniți aplicația deoarece este folosită."
 
+#. TRANSLATORS: a package needs to restart their system (due to security)
+#: ../client/pk-console.c:597
+#, fuzzy
+msgid ""
+"Please restart the computer to complete the update as important security "
+"updates have been installed."
+msgstr "Vă rugăm să reporniți calculatorul pentru a completa actualizarea."
+
+#. TRANSLATORS: a package needs to restart the session (due to security)
+#: ../client/pk-console.c:600
+#, fuzzy
+msgid ""
+"Please logout and login to complete the update as important security updates "
+"have been installed."
+msgstr ""
+"Vă rugăm să ieșiți din cont și să vă autentificați din nou pentru a completa "
+"actualizarea."
+
 #. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:687
+#: ../client/pk-console.c:727
 #, c-format
 msgid "The package %s is already installed"
 msgstr "Pachetul %s este deja instalat"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:695
+#: ../client/pk-console.c:735
 #, c-format
 msgid "The package %s could not be installed: %s"
 msgstr "Pachetul %s nu a putut fi instalat: %s"
 
 #. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
-#: ../client/pk-console.c:720 ../client/pk-console.c:747
-#: ../client/pk-console.c:843 ../client/pk-console.c:960
+#: ../client/pk-console.c:760 ../client/pk-console.c:783
+#: ../client/pk-console.c:879 ../client/pk-console.c:996
 #: ../client/pk-tools-common.c:62 ../client/pk-tools-common.c:81
 #: ../client/pk-tools-common.c:89
 #, c-format
@@ -247,397 +284,406 @@ msgid "Internal error: %s"
 msgstr "Eroare internă: %s"
 
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:728 ../client/pk-console.c:1356
+#: ../client/pk-console.c:768 ../client/pk-console.c:1392
 #, c-format
 msgid "This tool could not install the packages: %s"
 msgstr "Această unealtă nu poate instala pachetele: %s"
 
 #. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:755
+#: ../client/pk-console.c:791
 #, c-format
 msgid "This tool could not install the files: %s"
 msgstr "Această unealtă nu a putut instala fișierele: %s"
 
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:811
+#: ../client/pk-console.c:847
 #, c-format
 msgid "This tool could not remove %s: %s"
 msgstr "Această unealtă nu a putut elimina %s: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:834 ../client/pk-console.c:872
-#: ../client/pk-console.c:905
+#: ../client/pk-console.c:870 ../client/pk-console.c:908
+#: ../client/pk-console.c:941
 #, c-format
 msgid "This tool could not remove the packages: %s"
 msgstr "Această unealtă nu a putut elimina pachetele: %s"
 
 #. TRANSLATORS: When removing, we might have to remove other dependencies
-#: ../client/pk-console.c:884
+#: ../client/pk-console.c:920
 msgid "The following packages have to be removed:"
 msgstr "Următoarele pachete trebuie eliminate:"
 
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:891
+#: ../client/pk-console.c:927
 msgid "Proceed removing additional packages?"
 msgstr "Continuați cu eliminarea pachetelor adiționale?"
 
 #. TRANSLATORS: We did not remove any packages
-#: ../client/pk-console.c:896
+#: ../client/pk-console.c:932
 msgid "The package removal was canceled!"
 msgstr "Eliminarea pachetelor a fost anulată!"
 
 #. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:937
+#: ../client/pk-console.c:973
 #, c-format
 msgid "This tool could not download the package %s as it could not be found"
 msgstr ""
 "Această unealtă nu a putut descărca pachetul %s pentru că nu a putut fi găsit"
 
 #. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:968
+#: ../client/pk-console.c:1004
 #, c-format
 msgid "This tool could not download the packages: %s"
 msgstr "Această unealtă nu a putut descărca pachetele: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:995 ../client/pk-console.c:1004
+#: ../client/pk-console.c:1031 ../client/pk-console.c:1040
 #, c-format
 msgid "This tool could not update %s: %s"
 msgstr "Această unealtă nu a putut actualiza %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1026 ../client/pk-console.c:1034
+#: ../client/pk-console.c:1062 ../client/pk-console.c:1070
 #, c-format
 msgid "This tool could not get the requirements for %s: %s"
 msgstr "Această unealtă nu a putut obține cerințele pentru %s: %s"
 
 #. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:1056 ../client/pk-console.c:1064
+#: ../client/pk-console.c:1092 ../client/pk-console.c:1100
 #, c-format
 msgid "This tool could not get the dependencies for %s: %s"
 msgstr "Această unealtă nu a putut obține dependențele pentru %s: %s"
 
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:1086 ../client/pk-console.c:1094
+#: ../client/pk-console.c:1122 ../client/pk-console.c:1130
 #, c-format
 msgid "This tool could not get package details for %s: %s"
 msgstr "Această unealtă nu a putut obține detaliile pachetului %s: %s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1116
+#: ../client/pk-console.c:1152
 #, c-format
 msgid "This tool could not find the files for %s: %s"
 msgstr "Această unealtă nu a putut găsi fișierele pentru %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1124
+#: ../client/pk-console.c:1160
 #, c-format
 msgid "This tool could not get the file list for %s: %s"
 msgstr "Această unealtă nu a putut obține lista fișierelor pentru %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of packages. The filename follows
-#: ../client/pk-console.c:1146
+#: ../client/pk-console.c:1182
 #, c-format
 msgid "File already exists: %s"
 msgstr "Fișierul există deja: %s"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1151 ../client/pk-console.c:1207
-#: ../client/pk-console.c:1282
+#: ../client/pk-console.c:1187 ../client/pk-console.c:1243
+#: ../client/pk-console.c:1318
 msgid "Getting package list"
 msgstr "Se obține lista pachetelor"
 
 #. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1157 ../client/pk-console.c:1213
-#: ../client/pk-console.c:1288
+#: ../client/pk-console.c:1193 ../client/pk-console.c:1249
+#: ../client/pk-console.c:1324
 #, c-format
 msgid "This tool could not get package list: %s"
 msgstr "Această unealtă nu a putut obține lista pachetelor: %s"
 
 #. TRANSLATORS: There was an error saving the list
-#: ../client/pk-console.c:1168
+#: ../client/pk-console.c:1204
+#, c-format
 msgid "Failed to save to disk"
 msgstr "Eșec la salvarea pe disc"
 
 #. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1202 ../client/pk-console.c:1277
+#: ../client/pk-console.c:1238 ../client/pk-console.c:1313
 #, c-format
 msgid "File does not exist: %s"
 msgstr "Fișierul nu există: %s"
 
 #. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1234
+#: ../client/pk-console.c:1270
 msgid "Packages to add"
 msgstr "Pachete de adăugat"
 
 #. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1242
+#: ../client/pk-console.c:1278
 msgid "Packages to remove"
 msgstr "Pachete de eliminat"
 
 #. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1310
+#: ../client/pk-console.c:1346
+#, c-format
 msgid "No new packages need to be installed"
 msgstr "Nu e nevoie să fie instalat niciun pachet nou"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1316
+#: ../client/pk-console.c:1352
 msgid "To install"
 msgstr "De instalat"
 
 #. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1328
+#: ../client/pk-console.c:1364
 msgid "Searching for package: "
 msgstr "Se caută pachetul: "
 
 #. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1332
+#: ../client/pk-console.c:1368
 msgid "not found."
 msgstr "negăsit."
 
 #. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1343
+#: ../client/pk-console.c:1379
+#, c-format
 msgid "No packages can be found to install"
 msgstr "Nu s-a găsit niciun pachet pentru a fi instalat"
 
 #. TRANSLATORS: installing new packages from package list
-#: ../client/pk-console.c:1349
+#. TRANSLATORS: we are now installing the debuginfo packages we found earlier
+#: ../client/pk-console.c:1385
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:886
+#, c-format
 msgid "Installing packages"
 msgstr "Instalare pachete"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1385
+#: ../client/pk-console.c:1421
 #, c-format
 msgid "This tool could not find the update details for %s: %s"
 msgstr "Această unealtă nu poate găsi detaliile actualizării pentru %s: %s"
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1393
+#: ../client/pk-console.c:1429
 #, c-format
 msgid "This tool could not get the update details for %s: %s"
 msgstr "Această unealtă nu a putut obține detaliile actualizării pentru %s: %s"
 
 #. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
-#: ../client/pk-console.c:1439
+#: ../client/pk-console.c:1460
 msgid "Error:"
 msgstr "Eroare:"
 
 #. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1453
+#: ../client/pk-console.c:1474
 msgid "Package description"
 msgstr "Descriere pachet"
 
+#. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
+#: ../client/pk-console.c:1490
+msgid "Message:"
+msgstr ""
+
 #. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1487
+#: ../client/pk-console.c:1518
 msgid "Package files"
 msgstr "Fișierele din pachet"
 
 #. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1495
+#: ../client/pk-console.c:1526
 msgid "No files"
 msgstr "Niciun fișier"
 
 #. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1518
+#: ../client/pk-console.c:1549
 msgid "Repository signature required"
 msgstr "E necesară semnătura depozitului"
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1528
+#: ../client/pk-console.c:1559
 msgid "Do you accept this signature?"
 msgstr "Acceptați această semnătură?"
 
 #. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1532
+#: ../client/pk-console.c:1563
 msgid "The signature was not accepted."
 msgstr "Semnătura nu a fost acceptată."
 
 #. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1566
+#: ../client/pk-console.c:1597
 msgid "End user license agreement required"
 msgstr "E nevoie de acordul de licențiere cu utilizatorul"
 
 #. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1573
+#: ../client/pk-console.c:1604
 msgid "Do you agree to this license?"
 msgstr "Sunteți de acord cu această licență?"
 
 #. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1577
+#: ../client/pk-console.c:1608
 msgid "The license was refused."
 msgstr "Licența a fost refuzată."
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1606
+#: ../client/pk-console.c:1637
 msgid "The daemon crashed mid-transaction!"
 msgstr "Demonul a eșuat în mijlocul tranzacției!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1659
+#: ../client/pk-console.c:1690
 msgid "PackageKit Console Interface"
 msgstr "Interfață PackageKit pentru consolă"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1661
+#: ../client/pk-console.c:1692
 msgid "Subcommands:"
 msgstr "Subcomenzi:"
 
 #. TRANSLATORS: command line argument, if we should show debugging information
 #. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:1753 ../client/pk-generate-pack.c:185
-#: ../client/pk-monitor.c:125
-#: ../contrib/command-not-found/pk-command-not-found.c:510
-#: ../contrib/app-install/pk-app-install-add.c:244
-#: ../contrib/app-install/pk-app-install-create.c:48
-#: ../contrib/app-install/pk-app-install-generate.c:244
-#: ../contrib/app-install/pk-app-install-remove.c:87 ../src/pk-main.c:199
+#: ../client/pk-console.c:1785 ../client/pk-generate-pack.c:185
+#: ../client/pk-monitor.c:128
+#: ../contrib/command-not-found/pk-command-not-found.c:616
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:550
+#: ../contrib/device-rebind/pk-device-rebind.c:293 ../src/pk-main.c:211
 msgid "Show extra debugging information"
 msgstr "Afișează informații suplimentare pentru depanare"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1756 ../client/pk-monitor.c:127
+#: ../client/pk-console.c:1788 ../client/pk-monitor.c:130
 msgid "Show the program version and exit"
 msgstr "Afișează versiunea programului și ieși"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1759
+#: ../client/pk-console.c:1791
 msgid "Set the filter, e.g. installed"
 msgstr "Definește filtrul, ex. instalat"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1762
+#: ../client/pk-console.c:1794
 msgid "Exit without waiting for actions to complete"
 msgstr "Ieși fără a aștepta finalizarea acțiunilor"
 
 #. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:1789
+#: ../client/pk-console.c:1821
 msgid "This tool could not connect to system DBUS."
 msgstr "Această unealtă nu se poate conecta la magistrala sistemului (DBUS)."
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1876
+#: ../client/pk-console.c:1911
 msgid "The filter specified was invalid"
 msgstr "Filtrul specificat a fost nevalid"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1894
+#: ../client/pk-console.c:1930
 msgid "A search type is required, e.g. name"
 msgstr "E necesar un tip de căutare, de ex: nume"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1900 ../client/pk-console.c:1908
-#: ../client/pk-console.c:1916 ../client/pk-console.c:1924
+#: ../client/pk-console.c:1937 ../client/pk-console.c:1946
+#: ../client/pk-console.c:1955 ../client/pk-console.c:1964
 msgid "A search term is required"
 msgstr "E necesar un termen de căutare"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1930
+#: ../client/pk-console.c:1971
 msgid "Invalid search type"
 msgstr "Tip de căutare invalid"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1936
+#: ../client/pk-console.c:1977
 msgid "A package name or filename to install is required"
 msgstr "E necesar un nume de pachet sau de fișier pentru a-l instala"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1944
+#: ../client/pk-console.c:1986
 msgid "A type, key_id and package_id are required"
 msgstr ""
 
 #. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:1952
+#: ../client/pk-console.c:1995
 msgid "A package name to remove is required"
 msgstr "E necesar un nume de pachet pentru a-l elimina"
 
 #. TRANSLATORS: the user did not specify anything about what to download or where
-#: ../client/pk-console.c:1959
-msgid ""
-"A destination directory and then the package names to download are required"
+#: ../client/pk-console.c:2003
+#, fuzzy
+msgid "A destination directory and the package names to download are required"
 msgstr ""
 "Sunt necesare un director de destinație și numele pachetelor de descărcat"
 
 #. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:1965
+#: ../client/pk-console.c:2010
 msgid "Directory not found"
 msgstr "Director negăsit"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1972
+#: ../client/pk-console.c:2018
 msgid "A licence identifier (eula-id) is required"
 msgstr "E necesar un identificator de licență (eula-id)"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1981
+#: ../client/pk-console.c:2028
 msgid "A transaction identifier (tid) is required"
 msgstr "E necesar un identificator de tranzacție (tid)"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:1997
+#: ../client/pk-console.c:2045
 msgid "A package name to resolve is required"
 msgstr ""
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:2005 ../client/pk-console.c:2013
+#: ../client/pk-console.c:2054 ../client/pk-console.c:2063
 msgid "A repository name is required"
 msgstr ""
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2021
+#: ../client/pk-console.c:2072
 msgid "A repo name, parameter and value are required"
 msgstr ""
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:2034
+#: ../client/pk-console.c:2086
 msgid "An action, e.g. 'update-system' is required"
 msgstr ""
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:2040
+#: ../client/pk-console.c:2093
 msgid "A correct role is required"
 msgstr ""
 
 #. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2046
+#: ../client/pk-console.c:2100
 msgid "Failed to get the time since this action was last completed"
 msgstr ""
 
 #. TRANSLATORS: The user did not provide a package name
 #. TRANSLATORS: This is when the user fails to supply the package name
-#: ../client/pk-console.c:2055 ../client/pk-console.c:2066
-#: ../client/pk-console.c:2074 ../client/pk-console.c:2090
-#: ../client/pk-console.c:2098 ../client/pk-generate-pack.c:241
+#: ../client/pk-console.c:2110 ../client/pk-console.c:2122
+#: ../client/pk-console.c:2131 ../client/pk-console.c:2149
+#: ../client/pk-console.c:2158 ../client/pk-generate-pack.c:241
 msgid "A package name is required"
 msgstr ""
 
 #. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:2082
+#: ../client/pk-console.c:2140
 msgid "A package provide string is required"
 msgstr ""
 
 #. TRANSLATORS: The user didn't specify a filename to create as a list
-#: ../client/pk-console.c:2106
+#: ../client/pk-console.c:2167
 msgid "A list file name to create is required"
 msgstr ""
 
 #. TRANSLATORS: The user didn't specify a filename to open as a list
-#: ../client/pk-console.c:2115 ../client/pk-console.c:2124
+#: ../client/pk-console.c:2177 ../client/pk-console.c:2187
 msgid "A list file to open is required"
 msgstr ""
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2177
+#: ../client/pk-console.c:2241
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr ""
 
 #. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2190
+#: ../client/pk-console.c:2254
 msgid "Incorrect privileges for this operation"
 msgstr "Drepturi insuficiente pentru această operație"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2193
+#: ../client/pk-console.c:2257
 msgid "Command failed"
 msgstr "Comandă eșuată"
 
@@ -663,7 +709,8 @@ msgstr "Setați numele fișierelor dependențelor ce urmează a fi excluse"
 
 #. TRANSLATORS: the output location
 #: ../client/pk-generate-pack.c:191
-msgid "The output file or directory (the current directory is used if ommitted)"
+msgid ""
+"The output file or directory (the current directory is used if ommitted)"
 msgstr ""
 "Directorul sau fișierul de ieșire (se folosește directorul curent dacă nu se "
 "specifică)"
@@ -699,68 +746,80 @@ msgstr "E necesar un director sau un nume de fișier pentru ieșire"
 msgid "The package manager cannot perform this type of operation."
 msgstr "Gestionarul de pachete nu poate efectua acest tip de operație."
 
+#. TRANSLATORS: This is when the distro didn't include libarchive support into PK
+#: ../client/pk-generate-pack.c:280
+msgid ""
+"Service packs cannot be created as PackageKit was not built with libarchive "
+"support."
+msgstr ""
+
 #. TRANSLATORS: the user specified an absolute path, but didn't get the extension correct
-#: ../client/pk-generate-pack.c:285
+#: ../client/pk-generate-pack.c:291
 msgid "If specifying a file, the service pack name must end with"
 msgstr ""
 "Dacă se specifică un fișier, numele pachetului de servicii trebuie să se "
 "termine cu"
 
 #. TRANSLATORS: This is when file already exists
-#: ../client/pk-generate-pack.c:301
+#: ../client/pk-generate-pack.c:307
 msgid "A pack with the same name already exists, do you want to overwrite it?"
 msgstr "Un pachet cu același nume există deja, doriți să-l suprascrieți?"
 
 #. TRANSLATORS: This is when the pack was not overwritten
-#: ../client/pk-generate-pack.c:304
+#: ../client/pk-generate-pack.c:310
 msgid "The pack was not overwritten."
 msgstr "Pachetul nu a fost suprascris."
 
 #. TRANSLATORS: This is when the temporary directory cannot be created, the directory name follows
-#: ../client/pk-generate-pack.c:317
+#: ../client/pk-generate-pack.c:323
 msgid "Failed to create directory:"
 msgstr "Eșec la crearea directorului:"
 
 #. TRANSLATORS: This is when the list of packages from the remote computer cannot be opened
-#: ../client/pk-generate-pack.c:327
+#: ../client/pk-generate-pack.c:333
 msgid "Failed to open package list."
 msgstr ""
 
 #. TRANSLATORS: The package name is being matched up to available packages
-#: ../client/pk-generate-pack.c:338
+#: ../client/pk-generate-pack.c:344
 msgid "Finding package name."
 msgstr ""
 
 #. TRANSLATORS: This is when the package cannot be found in any software source. The detailed error follows
-#: ../client/pk-generate-pack.c:342
+#: ../client/pk-generate-pack.c:348
 #, c-format
 msgid "Failed to find package '%s': %s"
 msgstr ""
 
 #. TRANSLATORS: This is telling the user we are in the process of making the pack
-#: ../client/pk-generate-pack.c:359
+#: ../client/pk-generate-pack.c:365
 msgid "Creating service pack..."
 msgstr ""
 
 #. TRANSLATORS: we succeeded in making the file
-#: ../client/pk-generate-pack.c:366
+#: ../client/pk-generate-pack.c:372
 #, c-format
 msgid "Service pack created '%s'"
 msgstr ""
 
 #. TRANSLATORS: we failed to make te file
-#: ../client/pk-generate-pack.c:371
+#: ../client/pk-generate-pack.c:377
 #, c-format
 msgid "Failed to create '%s': %s"
 msgstr ""
 
 #. TRANSLATORS: this is a program that monitors PackageKit
-#: ../client/pk-monitor.c:143
+#: ../client/pk-monitor.c:146
 msgid "PackageKit Monitor"
 msgstr "Monitor PackageKit"
 
+#: ../client/pk-monitor.c:183
+msgid "Cannot show the list of transactions"
+msgstr ""
+
 #. TRANSLATORS: The package was not found in any software sources
 #: ../client/pk-tools-common.c:118
+#, c-format
 msgid "The package could not be found"
 msgstr ""
 
@@ -779,175 +838,434 @@ msgstr ""
 msgid "Please enter a number from 1 to %i: "
 msgstr "Vă rugăm să introduceți un număr între 1 și %i: "
 
-#. TRANSLATORS: we failed to find the package, this shouldn't happen
+#. TRANSLATORS: when we are getting data from the daemon
+#: ../contrib/browser-plugin/pk-plugin-install.c:466
+msgid "Getting package information..."
+msgstr "Se obțin informațiile despre pachet..."
+
+#. TRANSLATORS: run an applicaiton
+#: ../contrib/browser-plugin/pk-plugin-install.c:472
+#, c-format
+msgid "Run %s"
+msgstr "Rulează %s"
+
+#. TRANSLATORS: show the installed version of a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:478
+msgid "Installed version"
+msgstr "Versiune instalată"
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:486
+#, c-format
+msgid "Run version %s now"
+msgstr "Rulează versiunea %s acum"
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:492
+msgid "Run now"
+msgstr "Rulează acum"
+
+#. TRANSLATORS: update to a new version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:498
+#, c-format
+msgid "Update to version %s"
+msgstr "Actualizează la versiunea %s"
+
+#. TRANSLATORS: To install a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:504
+#, c-format
+msgid "Install %s now"
+msgstr "Instalează %s acum"
+
+#. TRANSLATORS: the version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:507
+msgid "Version"
+msgstr "Versiune"
+
+#. TRANSLATORS: noting found, so can't install
+#: ../contrib/browser-plugin/pk-plugin-install.c:512
+msgid "No packages found for your system"
+msgstr "Nu s-a găsit niciun pachet pentru sistemul dumneavoastră"
+
+#. TRANSLATORS: package is being installed
+#: ../contrib/browser-plugin/pk-plugin-install.c:517
+msgid "Installing..."
+msgstr "Instalare..."
+
+#. TRANSLATORS: downloading repo data so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:349
+msgid "Downloading details about the software sources."
+msgstr ""
+
+#. TRANSLATORS: downloading file lists so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:353
+msgid "Downloading filelists (this may take some time to complete)."
+msgstr ""
+
+#. TRANSLATORS: waiting for native lock
+#: ../contrib/command-not-found/pk-command-not-found.c:357
+#, fuzzy
+msgid "Waiting for package manager lock."
+msgstr "Se caută pachetul: "
+
+#. TRANSLATORS: loading package cache so we can search
 #: ../contrib/command-not-found/pk-command-not-found.c:361
+#, fuzzy
+msgid "Loading list of packages."
+msgstr "Descărcare pachete"
+
+#. TRANSLATORS: we failed to find the package, this shouldn't happen
+#: ../contrib/command-not-found/pk-command-not-found.c:420
 msgid "Failed to search for file"
 msgstr ""
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:485
+#: ../contrib/command-not-found/pk-command-not-found.c:557
 msgid "Failed to launch:"
 msgstr ""
 
 #. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/command-not-found/pk-command-not-found.c:526
+#: ../contrib/command-not-found/pk-command-not-found.c:632
 msgid "PackageKit Command Not Found"
 msgstr ""
 
 #. TRANSLATORS: the prefix of all the output telling the user why it's not executing
-#: ../contrib/command-not-found/pk-command-not-found.c:548
+#: ../contrib/command-not-found/pk-command-not-found.c:658
 msgid "Command not found."
 msgstr ""
 
 #. TRANSLATORS: tell the user what we think the command is
-#: ../contrib/command-not-found/pk-command-not-found.c:555
+#: ../contrib/command-not-found/pk-command-not-found.c:665
 msgid "Similar command is:"
 msgstr ""
 
 #. TRANSLATORS: Ask the user if we should run the similar command
-#: ../contrib/command-not-found/pk-command-not-found.c:564
+#: ../contrib/command-not-found/pk-command-not-found.c:674
 msgid "Run similar command:"
 msgstr ""
 
 #. TRANSLATORS: show the user a list of commands that they could have meant
 #. TRANSLATORS: show the user a list of commands we could run
-#: ../contrib/command-not-found/pk-command-not-found.c:576
-#: ../contrib/command-not-found/pk-command-not-found.c:585
+#: ../contrib/command-not-found/pk-command-not-found.c:686
+#: ../contrib/command-not-found/pk-command-not-found.c:695
 msgid "Similar commands are:"
 msgstr ""
 
 #. TRANSLATORS: ask the user to choose a file to run
-#: ../contrib/command-not-found/pk-command-not-found.c:592
+#: ../contrib/command-not-found/pk-command-not-found.c:702
 msgid "Please choose a command to run"
 msgstr ""
 
 #. TRANSLATORS: tell the user what package provides the command
-#: ../contrib/command-not-found/pk-command-not-found.c:607
+#: ../contrib/command-not-found/pk-command-not-found.c:721
 msgid "The package providing this file is:"
 msgstr ""
 
 #. TRANSLATORS: as the user if we want to install a package to provide the command
-#: ../contrib/command-not-found/pk-command-not-found.c:612
+#: ../contrib/command-not-found/pk-command-not-found.c:726
 #, c-format
 msgid "Install package '%s' to provide command '%s'?"
 msgstr ""
 
 #. TRANSLATORS: Show the user a list of packages that provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:633
+#: ../contrib/command-not-found/pk-command-not-found.c:747
 msgid "Packages providing this file are:"
 msgstr ""
 
 #. TRANSLATORS: Show the user a list of packages that they can install to provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:642
+#: ../contrib/command-not-found/pk-command-not-found.c:756
 msgid "Suitable packages are:"
 msgstr ""
 
 #. get selection
 #. TRANSLATORS: ask the user to choose a file to install
-#: ../contrib/command-not-found/pk-command-not-found.c:650
+#: ../contrib/command-not-found/pk-command-not-found.c:764
 msgid "Please choose a package to install"
 msgstr ""
 
-#. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/src/contents.cpp:298
-msgid "Getting package information..."
-msgstr "Se obțin informațiile despre pachet..."
+#. TRANSLATORS: we are starting to install the packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:187
+#, fuzzy
+msgid "Starting install"
+msgstr "De instalat"
 
-#. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/src/contents.cpp:304
+#. TRANSLATORS: we couldn't find the package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:397
+#, fuzzy, c-format
+msgid "Failed to find the package %s, or already installed: %s"
+msgstr "Pachetul %s este deja instalat"
+
+#. command line argument, simulate what would be done, but don't actually do it
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:553
+msgid ""
+"Don't actually install any packages, only simulate what would be installed"
+msgstr ""
+
+#. command line argument, do we skip packages that depend on the ones specified
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:556
+msgid "Do not install dependencies of the core packages"
+msgstr ""
+
+#. command line argument, do we operate quietly
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:559
+msgid "Do not display information or progress"
+msgstr ""
+
+#. TRANSLATORS: tool that gets called when the command is not found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:577
+#, fuzzy
+msgid "PackageKit Debuginfo Installer"
+msgstr "Interfață PackageKit pentru consolă"
+
+#. TRANSLATORS: the use needs to specify a list of package names on the command line
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:589
+#, fuzzy, c-format
+msgid "ERROR: Specify package names to install."
+msgstr "Nu e nevoie să fie instalat niciun pachet nou"
+
+#. TRANSLATORS: we are getting the list of repositories
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:623
+#, fuzzy, c-format
+msgid "Getting sources list"
+msgstr "Se obține lista pachetelor"
+
+#. TRANSLATORS: all completed 100%
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:641
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:681
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:716
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:800
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:844
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:911
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:955
 #, c-format
-msgid "Run %s"
-msgstr "Rulează %s"
+msgid "OK."
+msgstr ""
 
-#. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/src/contents.cpp:310
-msgid "Installed version"
-msgstr "Versiune instalată"
+#. TRANSLATORS: tell the user what we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:644
+#, c-format
+msgid "Found %i enabled and %i disabled sources."
+msgstr ""
 
-#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/src/contents.cpp:318
+#. TRANSLATORS: we're finding repositories that match out pattern
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:651
 #, c-format
-msgid "Run version %s now"
-msgstr "Rulează versiunea %s acum"
+msgid "Finding debugging sources"
+msgstr ""
 
-#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/src/contents.cpp:324
-msgid "Run now"
-msgstr "Rulează acum"
+#. TRANSLATORS: tell the user what we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:684
+#, c-format
+msgid "Found %i disabled debuginfo repos."
+msgstr ""
 
-#. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/src/contents.cpp:330
+#. TRANSLATORS: we're now enabling all the debug sources we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:691
 #, c-format
-msgid "Update to version %s"
-msgstr "Actualizează la versiunea %s"
+msgid "Enabling debugging sources"
+msgstr ""
 
-#. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/src/contents.cpp:336
+#. TRANSLATORS: operation was not successful
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:701
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:785
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:829
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:896
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:940
+msgid "FAILED."
+msgstr ""
+
+#. TRANSLATORS: tell the user how many we enabled
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:719
 #, c-format
-msgid "Install %s now"
-msgstr "Instalează %s acum"
+msgid "Enabled %i debugging sources."
+msgstr ""
 
-#. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/src/contents.cpp:339
-msgid "Version"
-msgstr "Versiune"
+#. TRANSLATORS: we're now finding packages that match in all the repos
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:726
+#, fuzzy, c-format
+msgid "Finding debugging packages"
+msgstr "Descărcare pachete"
 
-#. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/src/contents.cpp:344
-msgid "No packages found for your system"
-msgstr "Nu s-a găsit niciun pachet pentru sistemul dumneavoastră"
+#. TRANSLATORS: we couldn't find the package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:738
+#, fuzzy, c-format
+msgid "Failed to find the package %s: %s"
+msgstr "Această unealtă nu poate instala pachetele: %s"
 
-#. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/src/contents.cpp:349
-msgid "Installing..."
-msgstr "Instalare..."
+#. TRANSLATORS: we couldn't find the debuginfo package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:761
+#, c-format
+msgid "Failed to find the debuginfo package %s: %s"
+msgstr ""
 
-#. TRANSLATORS: the action is non-localised
-#: ../contrib/app-install/pk-app-install-add.c:247
-#: ../contrib/app-install/pk-app-install-generate.c:247
-msgid "The action, one of 'create', 'add', or 'remove'"
+#. TRANSLATORS: no debuginfo packages could be found to be installed
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:789
+#, fuzzy, c-format
+msgid "Found no packages to install."
+msgstr "Nu e nevoie să fie instalat niciun pachet nou"
+
+#. TRANSLATORS: tell the user we found some packages, and then list them
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:803
+#, fuzzy, c-format
+msgid "Found %i packages:"
+msgstr "Descărcare pachete"
+
+#. TRANSLATORS: tell the user we are searching for deps
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:819
+#, c-format
+msgid "Finding packages that depend on these packages"
 msgstr ""
 
-#. TRANSLATORS: if we are specifing a out-of-tree database
-#: ../contrib/app-install/pk-app-install-add.c:250
-#: ../contrib/app-install/pk-app-install-generate.c:250
-#: ../contrib/app-install/pk-app-install-remove.c:90
-msgid "Main cache file to use (if not specififed, default is used)"
+#. TRANSLATORS: could not install, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:832
+#, fuzzy, c-format
+msgid "Could not find dependant packages: %s"
+msgstr "Această unealtă nu poate instala pachetele: %s"
+
+#. TRANSLATORS: tell the user we found some more packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:848
+#, c-format
+msgid "Found %i extra packages."
 msgstr ""
 
-#. TRANSLATORS: the source database, typically used for adding
-#: ../contrib/app-install/pk-app-install-add.c:253
-#: ../contrib/app-install/pk-app-install-generate.c:253
-msgid "Source cache file to add to the main database"
+#. TRANSLATORS: tell the user we found some more packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:852
+#, c-format
+msgid "No extra packages required."
 msgstr ""
 
-#. TRANSLATORS: the icon directory
-#: ../contrib/app-install/pk-app-install-add.c:256
-#: ../contrib/app-install/pk-app-install-generate.c:256
-#: ../contrib/app-install/pk-app-install-remove.c:93
-msgid "Icon directory"
-msgstr "Director pentru iconițe"
+#. TRANSLATORS: tell the user we found some packages (and deps), and then list them
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:861
+#, fuzzy, c-format
+msgid "Found %i packages to install:"
+msgstr "Nu e nevoie să fie instalat niciun pachet nou"
 
-#. TRANSLATORS: the repo of the software source, e.g. fedora
-#: ../contrib/app-install/pk-app-install-add.c:259
-#: ../contrib/app-install/pk-app-install-generate.c:259
-#: ../contrib/app-install/pk-app-install-remove.c:96
-msgid "Name of the remote repo"
-msgstr "Numele depozitului de la distanță"
+#. TRANSLATORS: simulate mode is a testing mode where we quit before the action
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:874
+#, fuzzy, c-format
+msgid "Not installing packages in simulate mode"
+msgstr "Instalare pachete"
 
-#. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/app-install/pk-app-install-add.c:270
-#: ../contrib/app-install/pk-app-install-create.c:62
-#: ../contrib/app-install/pk-app-install-generate.c:270
-#: ../contrib/app-install/pk-app-install-remove.c:107
-msgid "PackageKit Application Database Installer"
+#. TRANSLATORS: could not install, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:899
+#, fuzzy, c-format
+msgid "Could not install packages: %s"
+msgstr "Această unealtă nu poate instala pachetele: %s"
+
+#. TRANSLATORS: we are now disabling all debuginfo repos we previously enabled
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:931
+#, c-format
+msgid "Disabling sources previously enabled"
 msgstr ""
 
-#. TRANSLATORS: if we are specifing a out-of-tree database
-#: ../contrib/app-install/pk-app-install-create.c:51
-msgid "Main database file to use (if not specififed, default is used)"
+#. TRANSLATORS: no debuginfo packages could be found to be installed, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:943
+#, c-format
+msgid "Could not disable the debugging sources: %s"
+msgstr ""
+
+#. TRANSLATORS: we disabled all the debugging repos that we enabled before
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:958
+#, c-format
+msgid "Disabled %i debugging sources."
 msgstr ""
 
+#. TRANSLATORS: couldn't open device to write
+#: ../contrib/device-rebind/pk-device-rebind.c:61
+#, fuzzy
+msgid "Failed to open file"
+msgstr "Eșec la salvarea pe disc"
+
+#. TRANSLATORS: could not write to the device
+#: ../contrib/device-rebind/pk-device-rebind.c:70
+#, fuzzy
+msgid "Failed to write to the file"
+msgstr "Eșec la salvarea pe disc"
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:110
+#: ../contrib/device-rebind/pk-device-rebind.c:147
+#, fuzzy
+msgid "Failed to write to device"
+msgstr "Eșec la salvarea pe disc"
+
+#. TRANSLATORS: the device could not be found in sysfs
+#: ../contrib/device-rebind/pk-device-rebind.c:175
+#, fuzzy
+msgid "Device could not be found"
+msgstr "Director negăsit"
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:202
+#, fuzzy
+msgid "Failed to unregister driver"
+msgstr "Eșec la crearea directorului:"
+
+#. TRANSLATORS: we failed to bind the old driver
+#: ../contrib/device-rebind/pk-device-rebind.c:211
+#, fuzzy
+msgid "Failed to register driver"
+msgstr "Eșec la crearea directorului:"
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:260
+#, fuzzy
+msgid "Device path not found"
+msgstr "Director negăsit"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:268
+msgid "Incorrect device path specified"
+msgstr ""
+
+#. command line argument, simulate what would be done, but don't actually do it
+#: ../contrib/device-rebind/pk-device-rebind.c:296
+msgid "Don't actually touch the hardware, only simulate what would be done"
+msgstr ""
+
+#. TRANSLATORS: command line option: a list of files to install
+#: ../contrib/device-rebind/pk-device-rebind.c:299
+msgid "Device paths"
+msgstr ""
+
+#. TRANSLATORS: tool that gets called when the device needs reloading after installing firmware
+#: ../contrib/device-rebind/pk-device-rebind.c:314
+#, fuzzy
+msgid "PackageKit Device Reloader"
+msgstr "Pachet de servicii PackageKit"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:322
+msgid "You need to specify at least one valid device path"
+msgstr ""
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:332
+msgid "This script can only be used by the root user"
+msgstr ""
+
+#. TRANSLATORS: we're going to verify the path first
+#: ../contrib/device-rebind/pk-device-rebind.c:341
+msgid "Verifying device path"
+msgstr ""
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:346
+#, fuzzy
+msgid "Failed to verify device path"
+msgstr "Eșec la salvarea pe disc"
+
+#. TRANSLATORS: we're going to try
+#: ../contrib/device-rebind/pk-device-rebind.c:360
+msgid "Attempting to rebind device"
+msgstr ""
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:365
+#, fuzzy
+msgid "Failed to rebind device"
+msgstr "Eșec la crearea directorului:"
+
 #: ../data/packagekit-catalog.xml.in.h:1
 msgid "PackageKit Catalog"
 msgstr "Catalog PackageKit"
@@ -960,6 +1278,180 @@ msgstr "Listă de pachete PackageKit"
 msgid "PackageKit Service Pack"
 msgstr "Pachet de servicii PackageKit"
 
+#. SECURITY:
+#. - Normal users do not require admin authentication to accept new
+#. licence agreements.
+#. - Change this to 'auth_admin' for environments where users should not
+#. be given the option to make legal decisions.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:7
+msgid "Accept EULA"
+msgstr ""
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:8
+msgid "Authentication is required to accept a EULA"
+msgstr ""
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:9
+msgid ""
+"Authentication is required to cancel a task that was not started by yourself"
+msgstr ""
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:10
+msgid "Authentication is required to change software source parameters"
+msgstr ""
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:11
+msgid ""
+"Authentication is required to consider a key used for signing packages as "
+"trusted"
+msgstr ""
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:12
+msgid "Authentication is required to install a signed package"
+msgstr ""
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:13
+msgid "Authentication is required to install an untrusted package"
+msgstr ""
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:14
+msgid "Authentication is required to refresh the system sources"
+msgstr ""
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:15
+msgid "Authentication is required to reload the device with a new driver"
+msgstr ""
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:16
+msgid "Authentication is required to remove packages"
+msgstr ""
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:17
+msgid "Authentication is required to rollback a transaction"
+msgstr ""
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:18
+msgid ""
+"Authentication is required to set the network proxy used for downloading "
+"packages"
+msgstr ""
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:19
+msgid "Authentication is required to update packages"
+msgstr ""
+
+#. SECURITY:
+#. - Normal users are allowed to cancel their own task without
+#. authentication, but a different user id needs the admin password
+#. to cancel another users task.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:25
+msgid "Cancel foreign task"
+msgstr ""
+
+#. SECURITY:
+#. - Normal users require admin authentication to enable or disable
+#. software sources as this can be used to enable new updates or
+#. install different versions of software.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:31
+msgid "Change software source parameters"
+msgstr ""
+
+#. SECURITY:
+#. - Normal users do not need authentication to install signed packages
+#. from signed repositories, as this cannot exploit a system.
+#. - Paranoid users (or parents!) can change this to 'auth_admin' or
+#. 'auth_admin_keep'.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:38
+#, fuzzy
+msgid "Install signed package"
+msgstr "Instalare pachete"
+
+#. SECURITY:
+#. - Normal users require admin authentication to install untrusted or
+#. unrecognised packages, as allowing users to do this without a
+#. password would be a massive security hole.
+#. - This is not retained as each package should be authenticated.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:45
+msgid "Install untrusted local file"
+msgstr ""
+
+#. SECURITY:
+#. - Normal users do not require admin authentication to refresh the
+#. cache, as this doesn't actually install or remove software.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:50
+msgid "Refresh system sources"
+msgstr ""
+
+#. SECURITY:
+#. - Normal users require admin authentication to rebind a driver
+#. so that it works after we install firmware.
+#. - This should not be set to 'yes' as unprivileged users could then
+#. try to rebind drivers in use, for instance security authentication
+#. devices.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:58
+msgid "Reload a device"
+msgstr ""
+
+#. SECURITY:
+#. - Normal users require admin authentication to remove packages as
+#. this can make the system unbootable or stop other applications from
+#. working.
+#. - Be sure to close the tool used to remove the packages after the
+#. admin authentication has been obtained, otherwise packages can still
+#. be removed. If this is not possible, change this authentication to
+#. 'auth_admin'.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:68
+#, fuzzy
+msgid "Remove package"
+msgstr "Pachete afectate:"
+
+#. SECURITY:
+#. - Normal users require admin authentication to rollback system state
+#. as this will change a large number of packages, and could expose the
+#. system to previously patched security vulnerabilities.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:74
+msgid "Rollback to a previous transaction"
+msgstr ""
+
+#. SECURITY:
+#. - Normal users do not require admin authentication to set the proxy
+#. used for downloading packages.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:79
+msgid "Set network proxy"
+msgstr ""
+
+#. SECURITY:
+#. - Normal users require admin authentication to add signing keys.
+#. - This implies adding an explicit trust, and should not be granted
+#. without a secure authentication.
+#. - This is not kept as each package should be authenticated.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:86
+msgid "Trust a key used for signing packages"
+msgstr ""
+
+#. SECURITY:
+#. - Normal users do not require admin authentication to update the
+#. system as the packages will be signed, and the action is required
+#. to update the system when unattended.
+#. - Changing this to anything other than 'yes' will break unattended
+#. updates.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:94
+#, fuzzy
+msgid "Update packages"
+msgstr "Pachete afectate:"
+
 #. TRANSLATORS: failed due to DBus security
 #: ../src/pk-main.c:87
 msgid "Startup failed due to security policies on this machine."
@@ -984,47 +1476,94 @@ msgid ""
 msgstr ""
 
 #. TRANSLATORS: a backend is the system package tool, e.g. yum, apt
-#: ../src/pk-main.c:193
+#: ../src/pk-main.c:205
 msgid "Packaging backend to use, e.g. dummy"
 msgstr "Unealta de procesat pachete, de ex: yum, apt"
 
 #. TRANSLATORS: if we should run in the background
-#: ../src/pk-main.c:196
+#: ../src/pk-main.c:208
 msgid "Daemonize and detach from the terminal"
 msgstr "Transformă în demon și detașează de terminal"
 
 #. TRANSLATORS: if we should not monitor how long we are inactive for
-#: ../src/pk-main.c:202
+#: ../src/pk-main.c:214
 msgid "Disable the idle timer"
 msgstr "Dezactivează cronometrul de inactivitate"
 
 #. TRANSLATORS: show version
-#: ../src/pk-main.c:205
+#: ../src/pk-main.c:217
 msgid "Show version and exit"
 msgstr "Afișează versiunea și ieși"
 
 #. TRANSLATORS: exit after we've started up, used for user profiling
-#: ../src/pk-main.c:208
+#: ../src/pk-main.c:220
 msgid "Exit after a small delay"
 msgstr "Ieși după o mică întârziere"
 
 #. TRANSLATORS: exit straight away, used for automatic profiling
-#: ../src/pk-main.c:211
+#: ../src/pk-main.c:223
 msgid "Exit after the engine has loaded"
 msgstr "Ieși după ce motorul a fost încărcat"
 
 #. TRANSLATORS: describing the service that is running
-#: ../src/pk-main.c:226
+#: ../src/pk-main.c:238
 msgid "PackageKit service"
 msgstr "Serviciul PackageKit"
 
 #. TRANSLATORS: fatal error, dbus is not running
-#: ../src/pk-main.c:263
+#: ../src/pk-main.c:275
 msgid "Cannot connect to the system bus"
 msgstr "Nu se poate face conexiunea cu magistrala sistemului"
 
-#. TRANSLATORS: cannot register on system bus, unknown reason
-#: ../src/pk-main.c:313
-#, c-format
+#. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error follows
+#: ../src/pk-main.c:334
 msgid "Error trying to start:"
 msgstr "Eroare la încercarea de a porni:"
+
+#: ../src/pk-polkit-action-lookup.c:147
+#, fuzzy
+msgid "To install debugging packages, extra sources need to be enabled"
+msgstr "Nu e nevoie să fie instalat niciun pachet nou"
+
+#. TRANSLATORS: is not GPG signed
+#: ../src/pk-polkit-action-lookup.c:168 ../src/pk-polkit-action-lookup.c:187
+msgid "The software is not from a trusted source."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:173
+msgid "Do not update this package unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:174
+msgid "Do not update these packages unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:192
+msgid "Do not install this package unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:193
+msgid "Do not install these packages unless you are sure it is safe to do so."
+msgstr ""
+
+#. TRANSLATORS: warn the user that all bets are off
+#: ../src/pk-polkit-action-lookup.c:199
+msgid "Malicious software can damage your computer or cause other harm."
+msgstr ""
+
+#. TRANSLATORS: too many packages to list each one
+#: ../src/pk-polkit-action-lookup.c:274
+#, fuzzy
+msgid "Many packages"
+msgstr "Instalare pachete"
+
+#. TRANSLATORS: if the transaction is forced to install only trusted packages
+#: ../src/pk-polkit-action-lookup.c:334
+msgid "Only trusted"
+msgstr ""
+
+#~ msgid "Icon directory"
+#~ msgstr "Director pentru iconițe"
+
+#~ msgid "Name of the remote repo"
+#~ msgstr "Numele depozitului de la distanță"
diff --git a/po/ru.po b/po/ru.po
index cfd72db..ac9adb8 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -9,240 +9,275 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-04-22 14:21+0000\n"
+"POT-Creation-Date: 2009-08-24 11:06+0100\n"
 "PO-Revision-Date: 2009-04-22 19:57+0400\n"
 "Last-Translator: Alexey Kostyuk <unitoff at gmail.com>\n"
 "Language-Team: Russian <fedora-trans-ru at redhat.com>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: UTF-8"
+"Content-Transfer-Encoding: UTF-8\n"
 
 #. TRANSLATORS: this is an atomic transaction
-#: ../client/pk-console.c:234
+#: ../client/pk-console.c:235
 msgid "Transaction"
 msgstr "Транзакция"
 
 #. TRANSLATORS: this is the time the transaction was started in system timezone
-#: ../client/pk-console.c:236
+#: ../client/pk-console.c:237
 msgid "System time"
 msgstr "Системное время"
 
 #. TRANSLATORS: this is if the transaction succeeded or not
-#: ../client/pk-console.c:238
+#: ../client/pk-console.c:239
 msgid "Succeeded"
 msgstr "Успешно"
 
 #. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:238 ../client/pk-console.c:405
+#: ../client/pk-console.c:239 ../client/pk-console.c:406
 msgid "True"
 msgstr "Истина"
 
-#: ../client/pk-console.c:238 ../client/pk-console.c:405
+#: ../client/pk-console.c:239 ../client/pk-console.c:406
 msgid "False"
 msgstr "Ложь"
 
 #. TRANSLATORS: this is the transactions role, e.g. "update-system"
-#: ../client/pk-console.c:240
+#. TRANSLATORS: the trasaction role, e.g. update-system
+#: ../client/pk-console.c:241 ../src/pk-polkit-action-lookup.c:327
 msgid "Role"
 msgstr "Роль"
 
 #. TRANSLATORS: this is The duration of the transaction
-#: ../client/pk-console.c:245
+#: ../client/pk-console.c:246
 msgid "Duration"
 msgstr "Продолжительность"
 
-#: ../client/pk-console.c:245
+#: ../client/pk-console.c:246
 msgid "(seconds)"
 msgstr "(секунды)"
 
 #. TRANSLATORS: this is The command line used to do the action
-#: ../client/pk-console.c:249
+#. TRANSLATORS: the command line of the thing that wants the authentication
+#: ../client/pk-console.c:250 ../src/pk-polkit-action-lookup.c:341
 msgid "Command line"
 msgstr "Командная строка"
 
 #. TRANSLATORS: this is the user ID of the user that started the action
-#: ../client/pk-console.c:251
+#: ../client/pk-console.c:252
 msgid "User ID"
 msgstr "Идентификатор пользователя"
 
 #. TRANSLATORS: this is the username, e.g. hughsie
-#: ../client/pk-console.c:258
+#: ../client/pk-console.c:259
 msgid "Username"
 msgstr "Имя пользователя"
 
 #. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
-#: ../client/pk-console.c:262
+#: ../client/pk-console.c:263
 msgid "Real name"
 msgstr "Настоящее имя"
 
-#: ../client/pk-console.c:270
+#: ../client/pk-console.c:271
 msgid "Affected packages:"
 msgstr "Затронутые пакеты:"
 
-#: ../client/pk-console.c:272
+#: ../client/pk-console.c:273
 msgid "Affected packages: None"
 msgstr "Затронутые пакеты: Нет"
 
 #. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:297
+#: ../client/pk-console.c:298
 msgid "Distribution"
 msgstr "Дистрибутив"
 
 #. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:299
+#: ../client/pk-console.c:300
 msgid "Type"
 msgstr "Тип"
 
 #. TRANSLATORS: this is any summary text describing the upgrade
 #. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:301 ../client/pk-console.c:324
+#: ../client/pk-console.c:302 ../client/pk-console.c:325
 msgid "Summary"
 msgstr "Суммарно"
 
 #. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:313
+#: ../client/pk-console.c:314
 msgid "Category"
 msgstr "Категория"
 
 #. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:315
+#: ../client/pk-console.c:316
 msgid "ID"
 msgstr "Идентификатор"
 
 #. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:318
+#: ../client/pk-console.c:319
 msgid "Parent"
 msgstr "Родитель"
 
 #. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:321
+#: ../client/pk-console.c:322
 msgid "Name"
 msgstr "Имя"
 
 #. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:327
+#: ../client/pk-console.c:328
 msgid "Icon"
 msgstr "Иконка"
 
 #. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:342
+#: ../client/pk-console.c:343
 msgid "Details about the update:"
 msgstr "Подробная информация об обновлении:"
 
 #. TRANSLATORS: details about the update, package name and version
-#: ../client/pk-console.c:344
+#. TRANSLATORS: title, the names of the packages that the method is processing
+#: ../client/pk-console.c:345 ../src/pk-polkit-action-lookup.c:352
+#, fuzzy
 msgid "Package"
-msgstr "Пакет"
+msgid_plural "Packages"
+msgstr[0] "Пакет"
+msgstr[1] "Пакет"
 
 #. TRANSLATORS: details about the update, any packages that this update updates
-#: ../client/pk-console.c:347
+#: ../client/pk-console.c:348
 msgid "Updates"
 msgstr "Обновления"
 
 #. TRANSLATORS: details about the update, any packages that this update obsoletes
-#: ../client/pk-console.c:351
+#: ../client/pk-console.c:352
 msgid "Obsoletes"
 msgstr "Устаревшие"
 
 #. TRANSLATORS: details about the update, the vendor URLs
-#: ../client/pk-console.c:355
+#: ../client/pk-console.c:356
 msgid "Vendor"
 msgstr "Поставщик"
 
 #. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:359
+#: ../client/pk-console.c:360
 msgid "Bugzilla"
 msgstr "Система отслеживания ошибок Bugzilla"
 
 #. TRANSLATORS: details about the update, the CVE URLs
-#: ../client/pk-console.c:363
+#: ../client/pk-console.c:364
 msgid "CVE"
 msgstr "CVE"
 
 #. TRANSLATORS: details about the update, if the package requires a restart
-#: ../client/pk-console.c:367
+#: ../client/pk-console.c:368
 msgid "Restart"
 msgstr "Перезапуск"
 
 #. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:371
+#: ../client/pk-console.c:372
 msgid "Update text"
 msgstr "Подробности обновления"
 
 #. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:375
+#: ../client/pk-console.c:376
 msgid "Changes"
 msgstr "Изменения"
 
 #. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:379
+#: ../client/pk-console.c:380
 msgid "State"
 msgstr "Статус"
 
 #. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:384
+#: ../client/pk-console.c:385
 msgid "Issued"
 msgstr "Выпущено"
 
 #. TRANSLATORS: details about the update, date the update was updated
-#: ../client/pk-console.c:389
+#: ../client/pk-console.c:390
 msgid "Updated"
 msgstr "Обновлено"
 
-#: ../client/pk-console.c:476 ../client/pk-console.c:478
+#: ../client/pk-console.c:477 ../client/pk-console.c:479
 msgid "Percentage"
 msgstr "Проценты"
 
-#: ../client/pk-console.c:478
+#: ../client/pk-console.c:479
 msgid "Unknown"
 msgstr "Неизвестно"
 
 #. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:529
+#: ../client/pk-console.c:521
 msgid "System restart required by:"
 msgstr "Необходим перезапуск системы для:"
 
 #. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:532
+#: ../client/pk-console.c:524
 msgid "Session restart required:"
 msgstr "Необходим перезапуск сеанса:"
 
+#. TRANSLATORS: a package requires the system to be restarted due to a security update
+#: ../client/pk-console.c:527
+#, fuzzy
+msgid "System restart (security) required by:"
+msgstr "Необходим перезапуск системы для:"
+
+#. TRANSLATORS: a package requires the session to be restarted due to a security update
+#: ../client/pk-console.c:530
+#, fuzzy
+msgid "Session restart (security) required:"
+msgstr "Необходим перезапуск сеанса:"
+
 #. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:535
+#: ../client/pk-console.c:533
 msgid "Application restart required by:"
 msgstr "Необходим перезапуск приложения для:"
 
-#. TRANSLATORS: a package needs to restart they system
-#: ../client/pk-console.c:572
+#. TRANSLATORS: a package needs to restart their system
+#: ../client/pk-console.c:588
 msgid "Please restart the computer to complete the update."
 msgstr "Пожалуйста, перезагрузите компьютер, чтобы завершить обновление."
 
 #. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:575
+#: ../client/pk-console.c:591
 msgid "Please logout and login to complete the update."
 msgstr ""
 "Пожалуйста, выйдите из системы и войдите вновь, чтобы завершить обновление."
 
 #. TRANSLATORS: a package needs to restart the application
-#: ../client/pk-console.c:578
+#: ../client/pk-console.c:594
 msgid "Please restart the application as it is being used."
 msgstr "Пожалуйста, перезапустите приложение, так как оно используется."
 
+#. TRANSLATORS: a package needs to restart their system (due to security)
+#: ../client/pk-console.c:597
+#, fuzzy
+msgid ""
+"Please restart the computer to complete the update as important security "
+"updates have been installed."
+msgstr "Пожалуйста, перезагрузите компьютер, чтобы завершить обновление."
+
+#. TRANSLATORS: a package needs to restart the session (due to security)
+#: ../client/pk-console.c:600
+#, fuzzy
+msgid ""
+"Please logout and login to complete the update as important security updates "
+"have been installed."
+msgstr ""
+"Пожалуйста, выйдите из системы и войдите вновь, чтобы завершить обновление."
+
 #. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:691
+#: ../client/pk-console.c:727
 #, c-format
 msgid "The package %s is already installed"
 msgstr "Пакет %s уже установлен"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:699
+#: ../client/pk-console.c:735
 #, c-format
 msgid "The package %s could not be installed: %s"
 msgstr "Пакет %s не может быть установлен: %s"
 
 #. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
-#: ../client/pk-console.c:724 ../client/pk-console.c:751
-#: ../client/pk-console.c:847 ../client/pk-console.c:964
+#: ../client/pk-console.c:760 ../client/pk-console.c:783
+#: ../client/pk-console.c:879 ../client/pk-console.c:996
 #: ../client/pk-tools-common.c:62 ../client/pk-tools-common.c:81
 #: ../client/pk-tools-common.c:89
 #, c-format
@@ -250,401 +285,406 @@ msgid "Internal error: %s"
 msgstr "Внутренняя ошибка: %s"
 
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:732 ../client/pk-console.c:1360
+#: ../client/pk-console.c:768 ../client/pk-console.c:1392
 #, c-format
 msgid "This tool could not install the packages: %s"
 msgstr "Этот инструмент не может установить пакеты: %s"
 
 #. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:759
+#: ../client/pk-console.c:791
 #, c-format
 msgid "This tool could not install the files: %s"
 msgstr "Этот инструмент не может установить файлы: %s"
 
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:815
+#: ../client/pk-console.c:847
 #, c-format
 msgid "This tool could not remove %s: %s"
 msgstr "Этот инструмент не может удалить %s: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:838 ../client/pk-console.c:876
-#: ../client/pk-console.c:909
+#: ../client/pk-console.c:870 ../client/pk-console.c:908
+#: ../client/pk-console.c:941
 #, c-format
 msgid "This tool could not remove the packages: %s"
 msgstr "Этот инструмент не может удалить пакеты: %s"
 
 #. TRANSLATORS: When removing, we might have to remove other dependencies
-#: ../client/pk-console.c:888
+#: ../client/pk-console.c:920
 msgid "The following packages have to be removed:"
 msgstr "Следующие пакеты должны быть удалены:"
 
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:895
+#: ../client/pk-console.c:927
 msgid "Proceed removing additional packages?"
 msgstr "Приступить к удалению дополнительных пакетов?"
 
 #. TRANSLATORS: We did not remove any packages
-#: ../client/pk-console.c:900
+#: ../client/pk-console.c:932
 msgid "The package removal was canceled!"
 msgstr "Удаление пакета было отменено!"
 
 #. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:941
+#: ../client/pk-console.c:973
 #, c-format
 msgid "This tool could not download the package %s as it could not be found"
 msgstr ""
 "Этот инструмент не может загрузить пакет %s , так как он не может быть найден"
 
 #. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:972
+#: ../client/pk-console.c:1004
 #, c-format
 msgid "This tool could not download the packages: %s"
 msgstr "Этот инструмент не может загрузить пакеты: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:999 ../client/pk-console.c:1008
+#: ../client/pk-console.c:1031 ../client/pk-console.c:1040
 #, c-format
 msgid "This tool could not update %s: %s"
 msgstr "Этот инструмент не может обновить %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1030 ../client/pk-console.c:1038
+#: ../client/pk-console.c:1062 ../client/pk-console.c:1070
 #, c-format
 msgid "This tool could not get the requirements for %s: %s"
 msgstr "Этот инструмент не может получить требования для  %s: %s"
 
 #. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:1060 ../client/pk-console.c:1068
+#: ../client/pk-console.c:1092 ../client/pk-console.c:1100
 #, c-format
 msgid "This tool could not get the dependencies for %s: %s"
 msgstr "Этот инструмент не может получить зависимости для %s: %s"
 
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:1090 ../client/pk-console.c:1098
+#: ../client/pk-console.c:1122 ../client/pk-console.c:1130
 #, c-format
 msgid "This tool could not get package details for %s: %s"
 msgstr "Этот инструмент не может получить детальную информацию для %s: %s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1120
+#: ../client/pk-console.c:1152
 #, c-format
 msgid "This tool could not find the files for %s: %s"
 msgstr "Этот инструмент не может найти файлы для %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1128
+#: ../client/pk-console.c:1160
 #, c-format
 msgid "This tool could not get the file list for %s: %s"
 msgstr "Этот инструмент не может получить список файлов для %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of packages. The filename follows
-#: ../client/pk-console.c:1150
+#: ../client/pk-console.c:1182
 #, c-format
 msgid "File already exists: %s"
 msgstr "Файл уже существует: %s"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1155 ../client/pk-console.c:1211
-#: ../client/pk-console.c:1286
+#: ../client/pk-console.c:1187 ../client/pk-console.c:1243
+#: ../client/pk-console.c:1318
 msgid "Getting package list"
 msgstr "Получение списка пакетов"
 
 #. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1161 ../client/pk-console.c:1217
-#: ../client/pk-console.c:1292
+#: ../client/pk-console.c:1193 ../client/pk-console.c:1249
+#: ../client/pk-console.c:1324
 #, c-format
 msgid "This tool could not get package list: %s"
 msgstr "Этот инструмент не может получить список пакетов: %s"
 
 #. TRANSLATORS: There was an error saving the list
-#: ../client/pk-console.c:1172
+#: ../client/pk-console.c:1204
 #, c-format
 msgid "Failed to save to disk"
 msgstr "Не удалось сохранить на диск"
 
 #. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1206 ../client/pk-console.c:1281
+#: ../client/pk-console.c:1238 ../client/pk-console.c:1313
 #, c-format
 msgid "File does not exist: %s"
 msgstr "Файл не существует: %s"
 
 #. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1238
+#: ../client/pk-console.c:1270
 msgid "Packages to add"
 msgstr "Пакеты для добавления"
 
 #. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1246
+#: ../client/pk-console.c:1278
 msgid "Packages to remove"
 msgstr "Пакеты для удаления"
 
 #. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1314
+#: ../client/pk-console.c:1346
 #, c-format
 msgid "No new packages need to be installed"
 msgstr "Нет новых пакетов, нуждающихся в установке"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1320
+#: ../client/pk-console.c:1352
 msgid "To install"
 msgstr "Для установки"
 
 #. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1332
+#: ../client/pk-console.c:1364
 msgid "Searching for package: "
 msgstr "Поиск пакета:"
 
 #. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1336
+#: ../client/pk-console.c:1368
 msgid "not found."
 msgstr "не найдено."
 
 #. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1347
+#: ../client/pk-console.c:1379
 #, c-format
 msgid "No packages can be found to install"
 msgstr "Для установки не найдено пакетов"
 
 #. TRANSLATORS: installing new packages from package list
-#: ../client/pk-console.c:1353
+#. TRANSLATORS: we are now installing the debuginfo packages we found earlier
+#: ../client/pk-console.c:1385
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:886
+#, c-format
 msgid "Installing packages"
 msgstr "Установка пакетов"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1389
+#: ../client/pk-console.c:1421
 #, c-format
 msgid "This tool could not find the update details for %s: %s"
 msgstr "Этот инструмент не может найти сведения об обновлении для %s: %s"
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1397
+#: ../client/pk-console.c:1429
 #, c-format
 msgid "This tool could not get the update details for %s: %s"
 msgstr "Этот инструмент не может получить сведения об обновлении для %s: %s"
 
 #. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
-#: ../client/pk-console.c:1443
+#: ../client/pk-console.c:1460
 msgid "Error:"
 msgstr "Ошибка:"
 
 #. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1457
+#: ../client/pk-console.c:1474
 msgid "Package description"
 msgstr "Описание пакета"
 
 #. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
-#: ../client/pk-console.c:1473
+#: ../client/pk-console.c:1490
 msgid "Message:"
 msgstr "Сообщение:"
 
 #. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1501
+#: ../client/pk-console.c:1518
 msgid "Package files"
 msgstr "Файлы пакета"
 
 #. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1509
+#: ../client/pk-console.c:1526
 msgid "No files"
 msgstr "Нет файлов"
 
 #. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1532
+#: ../client/pk-console.c:1549
 msgid "Repository signature required"
 msgstr "Требуется подпись репозитория"
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1542
+#: ../client/pk-console.c:1559
 msgid "Do you accept this signature?"
 msgstr "Вы принимаете эту подпись?"
 
 #. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1546
+#: ../client/pk-console.c:1563
 msgid "The signature was not accepted."
 msgstr "Эта подпись не может быть принята."
 
 #. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1580
+#: ../client/pk-console.c:1597
 msgid "End user license agreement required"
 msgstr "Требуется лицензионное соглашение с конечным пользователем"
 
 #. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1587
+#: ../client/pk-console.c:1604
 msgid "Do you agree to this license?"
 msgstr "Согласны ли Вы с этой лицензией?"
 
 #. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1591
+#: ../client/pk-console.c:1608
 msgid "The license was refused."
 msgstr "В лицензии было отказано."
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1620
+#: ../client/pk-console.c:1637
 msgid "The daemon crashed mid-transaction!"
 msgstr "Демон сломался в середине транзакции!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1673
+#: ../client/pk-console.c:1690
 msgid "PackageKit Console Interface"
 msgstr "Консольный Интерфейс PackageKit"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1675
+#: ../client/pk-console.c:1692
 msgid "Subcommands:"
 msgstr "Подкоманды:"
 
 #. TRANSLATORS: command line argument, if we should show debugging information
 #. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:1767 ../client/pk-generate-pack.c:185
-#: ../client/pk-monitor.c:125
-#: ../contrib/command-not-found/pk-command-not-found.c:518
-#: ../src/pk-main.c:199
+#: ../client/pk-console.c:1785 ../client/pk-generate-pack.c:185
+#: ../client/pk-monitor.c:128
+#: ../contrib/command-not-found/pk-command-not-found.c:616
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:550
+#: ../contrib/device-rebind/pk-device-rebind.c:293 ../src/pk-main.c:211
 msgid "Show extra debugging information"
 msgstr "Показать дополнительную отладочную информацию"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1770 ../client/pk-monitor.c:127
+#: ../client/pk-console.c:1788 ../client/pk-monitor.c:130
 msgid "Show the program version and exit"
 msgstr "Показать версию программы и выйти"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1773
+#: ../client/pk-console.c:1791
 msgid "Set the filter, e.g. installed"
 msgstr "Установите фильтр, к примеру, установленные программы"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1776
+#: ../client/pk-console.c:1794
 msgid "Exit without waiting for actions to complete"
 msgstr "Выйти, не ожидая завершения задач"
 
 #. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:1803
+#: ../client/pk-console.c:1821
 msgid "This tool could not connect to system DBUS."
 msgstr "Этот инструмент не может подсоединиться к системе DBUS."
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1894
+#: ../client/pk-console.c:1911
 msgid "The filter specified was invalid"
 msgstr "Указанный фильтр не верен"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1912
+#: ../client/pk-console.c:1930
 msgid "A search type is required, e.g. name"
 msgstr "Необходимо ввести поисковый запрос, например имя пакета"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1918 ../client/pk-console.c:1926
-#: ../client/pk-console.c:1934 ../client/pk-console.c:1942
+#: ../client/pk-console.c:1937 ../client/pk-console.c:1946
+#: ../client/pk-console.c:1955 ../client/pk-console.c:1964
 msgid "A search term is required"
 msgstr "Необходим поисковый термин"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1948
+#: ../client/pk-console.c:1971
 msgid "Invalid search type"
 msgstr "Неверный тип поиска"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1954
+#: ../client/pk-console.c:1977
 msgid "A package name or filename to install is required"
 msgstr "Для установки требуется имя пакета или файла"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1962
+#: ../client/pk-console.c:1986
 msgid "A type, key_id and package_id are required"
 msgstr "Требуется указать тип, key_id или package_id"
 
 #. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:1970
+#: ../client/pk-console.c:1995
 msgid "A package name to remove is required"
 msgstr "Для удаления необходимо указать имя пакета"
 
 #. TRANSLATORS: the user did not specify anything about what to download or where
-#: ../client/pk-console.c:1977
-msgid ""
-"A destination directory and then the package names to download are required"
+#: ../client/pk-console.c:2003
+#, fuzzy
+msgid "A destination directory and the package names to download are required"
 msgstr "Каталог назначения, а затем имена пакета необходимы для загрузки"
 
 #. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:1983
+#: ../client/pk-console.c:2010
 msgid "Directory not found"
 msgstr "Каталог не найден"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1990
+#: ../client/pk-console.c:2018
 msgid "A licence identifier (eula-id) is required"
 msgstr "Необходим идентификатор лицензии (eula-id)"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1999
+#: ../client/pk-console.c:2028
 msgid "A transaction identifier (tid) is required"
 msgstr "Необходим идентификатор транзакции (tid)"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:2015
+#: ../client/pk-console.c:2045
 msgid "A package name to resolve is required"
 msgstr "Для сопоставления необходимо имя пакета"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:2023 ../client/pk-console.c:2031
+#: ../client/pk-console.c:2054 ../client/pk-console.c:2063
 msgid "A repository name is required"
 msgstr "Необходимо имя репозитория"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2039
+#: ../client/pk-console.c:2072
 msgid "A repo name, parameter and value are required"
 msgstr "Необходимо указать имя, параметр и значение репозитория"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:2052
+#: ../client/pk-console.c:2086
 msgid "An action, e.g. 'update-system' is required"
 msgstr "Необходимо указать действие, например 'update-system'"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:2058
+#: ../client/pk-console.c:2093
 msgid "A correct role is required"
 msgstr "Необходимо выбрать роль"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2064
+#: ../client/pk-console.c:2100
 msgid "Failed to get the time since this action was last completed"
-msgstr "Не удалось получить оставшееся время, это действие было завершено последним"
+msgstr ""
+"Не удалось получить оставшееся время, это действие было завершено последним"
 
 #. TRANSLATORS: The user did not provide a package name
 #. TRANSLATORS: This is when the user fails to supply the package name
-#: ../client/pk-console.c:2073 ../client/pk-console.c:2084
-#: ../client/pk-console.c:2092 ../client/pk-console.c:2108
-#: ../client/pk-console.c:2116 ../client/pk-generate-pack.c:241
+#: ../client/pk-console.c:2110 ../client/pk-console.c:2122
+#: ../client/pk-console.c:2131 ../client/pk-console.c:2149
+#: ../client/pk-console.c:2158 ../client/pk-generate-pack.c:241
 msgid "A package name is required"
 msgstr "Необходимо указать имя пакета"
 
 #. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:2100
+#: ../client/pk-console.c:2140
 msgid "A package provide string is required"
 msgstr "Необходим пакет предоставляемый строкой"
 
 #. TRANSLATORS: The user didn't specify a filename to create as a list
-#: ../client/pk-console.c:2124
+#: ../client/pk-console.c:2167
 msgid "A list file name to create is required"
 msgstr "Список файлов, которые необходимо создать"
 
 #. TRANSLATORS: The user didn't specify a filename to open as a list
-#: ../client/pk-console.c:2133 ../client/pk-console.c:2142
+#: ../client/pk-console.c:2177 ../client/pk-console.c:2187
 msgid "A list file to open is required"
 msgstr "Список файлов, которые необходимо открыть"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2195
+#: ../client/pk-console.c:2241
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "Опция '%s' не поддерживается"
 
 #. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2208
+#: ../client/pk-console.c:2254
 msgid "Incorrect privileges for this operation"
 msgstr "У Вас недостаточно прав для выполнения этой операции"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2211
+#: ../client/pk-console.c:2257
 msgid "Command failed"
 msgstr "Ошибка команды"
 
@@ -706,64 +746,75 @@ msgstr "Необходимо указать конечный каталог ил
 msgid "The package manager cannot perform this type of operation."
 msgstr "Менеджер пакетов не может выполнить такого рода операции."
 
+#. TRANSLATORS: This is when the distro didn't include libarchive support into PK
+#: ../client/pk-generate-pack.c:280
+msgid ""
+"Service packs cannot be created as PackageKit was not built with libarchive "
+"support."
+msgstr ""
+
 #. TRANSLATORS: the user specified an absolute path, but didn't get the extension correct
-#: ../client/pk-generate-pack.c:285
+#: ../client/pk-generate-pack.c:291
 msgid "If specifying a file, the service pack name must end with"
 msgstr "Если указан файл, то имя пакета обновления должно существовать"
 
 #. TRANSLATORS: This is when file already exists
-#: ../client/pk-generate-pack.c:301
+#: ../client/pk-generate-pack.c:307
 msgid "A pack with the same name already exists, do you want to overwrite it?"
 msgstr "Пакет с таким именем уже существует, Вы желаете переписать его?"
 
 #. TRANSLATORS: This is when the pack was not overwritten
-#: ../client/pk-generate-pack.c:304
+#: ../client/pk-generate-pack.c:310
 msgid "The pack was not overwritten."
 msgstr "Пакет не был перезаписан."
 
 #. TRANSLATORS: This is when the temporary directory cannot be created, the directory name follows
-#: ../client/pk-generate-pack.c:317
+#: ../client/pk-generate-pack.c:323
 msgid "Failed to create directory:"
 msgstr "Не удалось создать каталог."
 
 #. TRANSLATORS: This is when the list of packages from the remote computer cannot be opened
-#: ../client/pk-generate-pack.c:327
+#: ../client/pk-generate-pack.c:333
 msgid "Failed to open package list."
 msgstr "Не удалось открыть список пакетов."
 
 #. TRANSLATORS: The package name is being matched up to available packages
-#: ../client/pk-generate-pack.c:338
+#: ../client/pk-generate-pack.c:344
 msgid "Finding package name."
 msgstr "Поиск пакета по имени."
 
 #. TRANSLATORS: This is when the package cannot be found in any software source. The detailed error follows
-#: ../client/pk-generate-pack.c:342
+#: ../client/pk-generate-pack.c:348
 #, c-format
 msgid "Failed to find package '%s': %s"
 msgstr "Не удалось найти пакет '%s': %s"
 
 #. TRANSLATORS: This is telling the user we are in the process of making the pack
-#: ../client/pk-generate-pack.c:359
+#: ../client/pk-generate-pack.c:365
 msgid "Creating service pack..."
 msgstr "Создание пакета обновления..."
 
 #. TRANSLATORS: we succeeded in making the file
-#: ../client/pk-generate-pack.c:366
+#: ../client/pk-generate-pack.c:372
 #, c-format
 msgid "Service pack created '%s'"
 msgstr "Пакет обновления создан '%s'"
 
 #. TRANSLATORS: we failed to make te file
-#: ../client/pk-generate-pack.c:371
+#: ../client/pk-generate-pack.c:377
 #, c-format
 msgid "Failed to create '%s': %s"
 msgstr "Не удалось создать '%s': %s"
 
 #. TRANSLATORS: this is a program that monitors PackageKit
-#: ../client/pk-monitor.c:143
+#: ../client/pk-monitor.c:146
 msgid "PackageKit Monitor"
 msgstr "Монитор PackageKit"
 
+#: ../client/pk-monitor.c:183
+msgid "Cannot show the list of transactions"
+msgstr ""
+
 #. TRANSLATORS: The package was not found in any software sources
 #: ../client/pk-tools-common.c:118
 #, c-format
@@ -785,128 +836,434 @@ msgstr "Пожалуйста, выберете корректный пакет:"
 msgid "Please enter a number from 1 to %i: "
 msgstr "Пожалуйста, введите число от 1 до %i"
 
+#. TRANSLATORS: when we are getting data from the daemon
+#: ../contrib/browser-plugin/pk-plugin-install.c:466
+msgid "Getting package information..."
+msgstr "Получение информации о пакете..."
+
+#. TRANSLATORS: run an applicaiton
+#: ../contrib/browser-plugin/pk-plugin-install.c:472
+#, c-format
+msgid "Run %s"
+msgstr "Выполнить %s"
+
+#. TRANSLATORS: show the installed version of a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:478
+msgid "Installed version"
+msgstr "Установленная версия"
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:486
+#, c-format
+msgid "Run version %s now"
+msgstr "Запустить версию %s сейчас"
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:492
+msgid "Run now"
+msgstr "Выполнить сейчас"
+
+#. TRANSLATORS: update to a new version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:498
+#, c-format
+msgid "Update to version %s"
+msgstr "Обновление до версии %s"
+
+#. TRANSLATORS: To install a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:504
+#, c-format
+msgid "Install %s now"
+msgstr "Установить %s сейчас"
+
+#. TRANSLATORS: the version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:507
+msgid "Version"
+msgstr "Версия"
+
+#. TRANSLATORS: noting found, so can't install
+#: ../contrib/browser-plugin/pk-plugin-install.c:512
+msgid "No packages found for your system"
+msgstr "Для Вашей системы не найдено пакетов"
+
+#. TRANSLATORS: package is being installed
+#: ../contrib/browser-plugin/pk-plugin-install.c:517
+msgid "Installing..."
+msgstr "Установка..."
+
+#. TRANSLATORS: downloading repo data so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:349
+msgid "Downloading details about the software sources."
+msgstr ""
+
+#. TRANSLATORS: downloading file lists so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:353
+msgid "Downloading filelists (this may take some time to complete)."
+msgstr ""
+
+#. TRANSLATORS: waiting for native lock
+#: ../contrib/command-not-found/pk-command-not-found.c:357
+#, fuzzy
+msgid "Waiting for package manager lock."
+msgstr "Поиск пакета по имени."
+
+#. TRANSLATORS: loading package cache so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:361
+#, fuzzy
+msgid "Loading list of packages."
+msgstr "Загрузка пакетов"
+
 #. TRANSLATORS: we failed to find the package, this shouldn't happen
-#: ../contrib/command-not-found/pk-command-not-found.c:369
+#: ../contrib/command-not-found/pk-command-not-found.c:420
 msgid "Failed to search for file"
 msgstr "Ошибка при поиске файлов"
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:493
+#: ../contrib/command-not-found/pk-command-not-found.c:557
 msgid "Failed to launch:"
 msgstr "Не удалось запустить:"
 
 #. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/command-not-found/pk-command-not-found.c:534
+#: ../contrib/command-not-found/pk-command-not-found.c:632
 msgid "PackageKit Command Not Found"
 msgstr "PackageKit Команда не найдена"
 
 #. TRANSLATORS: the prefix of all the output telling the user why it's not executing
-#: ../contrib/command-not-found/pk-command-not-found.c:557
+#: ../contrib/command-not-found/pk-command-not-found.c:658
 msgid "Command not found."
 msgstr "Команда не найдена."
 
 #. TRANSLATORS: tell the user what we think the command is
-#: ../contrib/command-not-found/pk-command-not-found.c:564
+#: ../contrib/command-not-found/pk-command-not-found.c:665
 msgid "Similar command is:"
 msgstr "Аналогичные команды:"
 
 #. TRANSLATORS: Ask the user if we should run the similar command
-#: ../contrib/command-not-found/pk-command-not-found.c:573
+#: ../contrib/command-not-found/pk-command-not-found.c:674
 msgid "Run similar command:"
 msgstr "Выполните аналогичную команду:"
 
 #. TRANSLATORS: show the user a list of commands that they could have meant
 #. TRANSLATORS: show the user a list of commands we could run
-#: ../contrib/command-not-found/pk-command-not-found.c:585
-#: ../contrib/command-not-found/pk-command-not-found.c:594
+#: ../contrib/command-not-found/pk-command-not-found.c:686
+#: ../contrib/command-not-found/pk-command-not-found.c:695
 msgid "Similar commands are:"
 msgstr "Аналогичные команды:"
 
 #. TRANSLATORS: ask the user to choose a file to run
-#: ../contrib/command-not-found/pk-command-not-found.c:601
+#: ../contrib/command-not-found/pk-command-not-found.c:702
 msgid "Please choose a command to run"
 msgstr "Пожалуйста, выберите команду"
 
 #. TRANSLATORS: tell the user what package provides the command
-#: ../contrib/command-not-found/pk-command-not-found.c:616
+#: ../contrib/command-not-found/pk-command-not-found.c:721
 msgid "The package providing this file is:"
 msgstr "Этот пакет предоставляется этим файлом:"
 
 #. TRANSLATORS: as the user if we want to install a package to provide the command
-#: ../contrib/command-not-found/pk-command-not-found.c:621
+#: ../contrib/command-not-found/pk-command-not-found.c:726
 #, c-format
 msgid "Install package '%s' to provide command '%s'?"
 msgstr "Установить пакет '%s' предоставляющий команду '%s'?"
 
 #. TRANSLATORS: Show the user a list of packages that provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:642
+#: ../contrib/command-not-found/pk-command-not-found.c:747
 msgid "Packages providing this file are:"
 msgstr "Пакеты предоставляемые этим файлом:"
 
 #. TRANSLATORS: Show the user a list of packages that they can install to provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:651
+#: ../contrib/command-not-found/pk-command-not-found.c:756
 msgid "Suitable packages are:"
 msgstr "Подходящие пакеты:"
 
 #. get selection
 #. TRANSLATORS: ask the user to choose a file to install
-#: ../contrib/command-not-found/pk-command-not-found.c:659
+#: ../contrib/command-not-found/pk-command-not-found.c:764
 msgid "Please choose a package to install"
 msgstr "Пожалуйста, выберете пакет для установки:"
 
-#. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/src/contents.cpp:298
-msgid "Getting package information..."
-msgstr "Получение информации о пакете..."
+#. TRANSLATORS: we are starting to install the packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:187
+#, fuzzy
+msgid "Starting install"
+msgstr "Для установки"
 
-#. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/src/contents.cpp:304
+#. TRANSLATORS: we couldn't find the package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:397
+#, fuzzy, c-format
+msgid "Failed to find the package %s, or already installed: %s"
+msgstr "Пакет %s уже установлен"
+
+#. command line argument, simulate what would be done, but don't actually do it
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:553
+msgid ""
+"Don't actually install any packages, only simulate what would be installed"
+msgstr ""
+
+#. command line argument, do we skip packages that depend on the ones specified
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:556
+msgid "Do not install dependencies of the core packages"
+msgstr ""
+
+#. command line argument, do we operate quietly
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:559
+msgid "Do not display information or progress"
+msgstr ""
+
+#. TRANSLATORS: tool that gets called when the command is not found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:577
+#, fuzzy
+msgid "PackageKit Debuginfo Installer"
+msgstr "Консольный Интерфейс PackageKit"
+
+#. TRANSLATORS: the use needs to specify a list of package names on the command line
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:589
+#, fuzzy, c-format
+msgid "ERROR: Specify package names to install."
+msgstr "Укажите пакет или файл для установки"
+
+#. TRANSLATORS: we are getting the list of repositories
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:623
+#, fuzzy, c-format
+msgid "Getting sources list"
+msgstr "Получение списка пакетов"
+
+#. TRANSLATORS: all completed 100%
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:641
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:681
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:716
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:800
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:844
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:911
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:955
 #, c-format
-msgid "Run %s"
-msgstr "Выполнить %s"
+msgid "OK."
+msgstr ""
 
-#. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/src/contents.cpp:310
-msgid "Installed version"
-msgstr "Установленная версия"
+#. TRANSLATORS: tell the user what we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:644
+#, c-format
+msgid "Found %i enabled and %i disabled sources."
+msgstr ""
 
-#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/src/contents.cpp:318
+#. TRANSLATORS: we're finding repositories that match out pattern
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:651
 #, c-format
-msgid "Run version %s now"
-msgstr "Запустить версию %s сейчас"
+msgid "Finding debugging sources"
+msgstr ""
 
-#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/src/contents.cpp:324
-msgid "Run now"
-msgstr "Выполнить сейчас"
+#. TRANSLATORS: tell the user what we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:684
+#, c-format
+msgid "Found %i disabled debuginfo repos."
+msgstr ""
 
-#. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/src/contents.cpp:330
+#. TRANSLATORS: we're now enabling all the debug sources we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:691
 #, c-format
-msgid "Update to version %s"
-msgstr "Обновление до версии %s"
+msgid "Enabling debugging sources"
+msgstr ""
 
-#. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/src/contents.cpp:336
+#. TRANSLATORS: operation was not successful
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:701
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:785
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:829
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:896
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:940
+msgid "FAILED."
+msgstr ""
+
+#. TRANSLATORS: tell the user how many we enabled
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:719
 #, c-format
-msgid "Install %s now"
-msgstr "Установить %s сейчас"
+msgid "Enabled %i debugging sources."
+msgstr ""
 
-#. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/src/contents.cpp:339
-msgid "Version"
-msgstr "Версия"
+#. TRANSLATORS: we're now finding packages that match in all the repos
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:726
+#, fuzzy, c-format
+msgid "Finding debugging packages"
+msgstr "Поиск пакета по имени."
 
-#. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/src/contents.cpp:344
-msgid "No packages found for your system"
-msgstr "Для Вашей системы не найдено пакетов"
+#. TRANSLATORS: we couldn't find the package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:738
+#, fuzzy, c-format
+msgid "Failed to find the package %s: %s"
+msgstr "Не удалось найти пакет '%s': %s"
 
-#. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/src/contents.cpp:349
-msgid "Installing..."
-msgstr "Установка..."
+#. TRANSLATORS: we couldn't find the debuginfo package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:761
+#, fuzzy, c-format
+msgid "Failed to find the debuginfo package %s: %s"
+msgstr "Не удалось найти пакет '%s': %s"
+
+#. TRANSLATORS: no debuginfo packages could be found to be installed
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:789
+#, fuzzy, c-format
+msgid "Found no packages to install."
+msgstr "Нет новых пакетов, нуждающихся в установке"
+
+#. TRANSLATORS: tell the user we found some packages, and then list them
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:803
+#, fuzzy, c-format
+msgid "Found %i packages:"
+msgstr "Загрузка пакетов"
+
+#. TRANSLATORS: tell the user we are searching for deps
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:819
+#, c-format
+msgid "Finding packages that depend on these packages"
+msgstr ""
+
+#. TRANSLATORS: could not install, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:832
+#, fuzzy, c-format
+msgid "Could not find dependant packages: %s"
+msgstr "Не найдено совпадений в пакетах"
+
+#. TRANSLATORS: tell the user we found some more packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:848
+#, c-format
+msgid "Found %i extra packages."
+msgstr ""
+
+#. TRANSLATORS: tell the user we found some more packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:852
+#, fuzzy, c-format
+msgid "No extra packages required."
+msgstr "Необходимо указать имя пакета"
+
+#. TRANSLATORS: tell the user we found some packages (and deps), and then list them
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:861
+#, fuzzy, c-format
+msgid "Found %i packages to install:"
+msgstr "Нет новых пакетов, нуждающихся в установке"
+
+#. TRANSLATORS: simulate mode is a testing mode where we quit before the action
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:874
+#, fuzzy, c-format
+msgid "Not installing packages in simulate mode"
+msgstr "Установка пакетов"
+
+#. TRANSLATORS: could not install, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:899
+#, fuzzy, c-format
+msgid "Could not install packages: %s"
+msgstr "Этот инструмент не может установить пакеты: %s"
+
+#. TRANSLATORS: we are now disabling all debuginfo repos we previously enabled
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:931
+#, c-format
+msgid "Disabling sources previously enabled"
+msgstr ""
+
+#. TRANSLATORS: no debuginfo packages could be found to be installed, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:943
+#, c-format
+msgid "Could not disable the debugging sources: %s"
+msgstr ""
+
+#. TRANSLATORS: we disabled all the debugging repos that we enabled before
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:958
+#, c-format
+msgid "Disabled %i debugging sources."
+msgstr ""
+
+#. TRANSLATORS: couldn't open device to write
+#: ../contrib/device-rebind/pk-device-rebind.c:61
+#, fuzzy
+msgid "Failed to open file"
+msgstr "Ошибка при поиске файлов"
+
+#. TRANSLATORS: could not write to the device
+#: ../contrib/device-rebind/pk-device-rebind.c:70
+#, fuzzy
+msgid "Failed to write to the file"
+msgstr "Ошибка при поиске файлов"
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:110
+#: ../contrib/device-rebind/pk-device-rebind.c:147
+#, fuzzy
+msgid "Failed to write to device"
+msgstr "Не удалось сохранить на диск"
+
+#. TRANSLATORS: the device could not be found in sysfs
+#: ../contrib/device-rebind/pk-device-rebind.c:175
+#, fuzzy
+msgid "Device could not be found"
+msgstr "Этот пакет не может быть найден"
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:202
+#, fuzzy
+msgid "Failed to unregister driver"
+msgstr "Не удалось создать каталог."
+
+#. TRANSLATORS: we failed to bind the old driver
+#: ../contrib/device-rebind/pk-device-rebind.c:211
+#, fuzzy
+msgid "Failed to register driver"
+msgstr "Не удалось создать каталог."
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:260
+#, fuzzy
+msgid "Device path not found"
+msgstr "Каталог не найден"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:268
+msgid "Incorrect device path specified"
+msgstr ""
+
+#. command line argument, simulate what would be done, but don't actually do it
+#: ../contrib/device-rebind/pk-device-rebind.c:296
+msgid "Don't actually touch the hardware, only simulate what would be done"
+msgstr ""
+
+#. TRANSLATORS: command line option: a list of files to install
+#: ../contrib/device-rebind/pk-device-rebind.c:299
+msgid "Device paths"
+msgstr ""
+
+#. TRANSLATORS: tool that gets called when the device needs reloading after installing firmware
+#: ../contrib/device-rebind/pk-device-rebind.c:314
+#, fuzzy
+msgid "PackageKit Device Reloader"
+msgstr "Пакет обновления PackageKit"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:322
+#, fuzzy
+msgid "You need to specify at least one valid device path"
+msgstr "Укажите временной промежуток"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:332
+msgid "This script can only be used by the root user"
+msgstr ""
+
+#. TRANSLATORS: we're going to verify the path first
+#: ../contrib/device-rebind/pk-device-rebind.c:341
+msgid "Verifying device path"
+msgstr ""
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:346
+#, fuzzy
+msgid "Failed to verify device path"
+msgstr "Ошибка при поиске файлов"
+
+#. TRANSLATORS: we're going to try
+#: ../contrib/device-rebind/pk-device-rebind.c:360
+msgid "Attempting to rebind device"
+msgstr ""
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:365
+#, fuzzy
+msgid "Failed to rebind device"
+msgstr "Не удалось создать каталог."
 
 #: ../data/packagekit-catalog.xml.in.h:1
 msgid "PackageKit Catalog"
@@ -920,96 +1277,180 @@ msgstr "Список пакетов PackageKit"
 msgid "PackageKit Service Pack"
 msgstr "Пакет обновления PackageKit"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:1
+#. SECURITY:
+#. - Normal users do not require admin authentication to accept new
+#. licence agreements.
+#. - Change this to 'auth_admin' for environments where users should not
+#. be given the option to make legal decisions.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:7
 msgid "Accept EULA"
 msgstr "Принять EULA"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:2
+#: ../policy/org.freedesktop.packagekit.policy.in.h:8
 msgid "Authentication is required to accept a EULA"
 msgstr "Для принятия EULA необходима аутентификация"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:3
+#: ../policy/org.freedesktop.packagekit.policy.in.h:9
 msgid ""
 "Authentication is required to cancel a task that was not started by yourself"
-msgstr "Требуется аутентификация для отмены задачи, которая не была запущена Вами"
+msgstr ""
+"Требуется аутентификация для отмены задачи, которая не была запущена Вами"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:4
+#: ../policy/org.freedesktop.packagekit.policy.in.h:10
 msgid "Authentication is required to change software source parameters"
 msgstr "Для изменения параметров исходного кода необходима аутентификация"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:5
+#: ../policy/org.freedesktop.packagekit.policy.in.h:11
 msgid ""
 "Authentication is required to consider a key used for signing packages as "
 "trusted"
-msgstr "Требуется аутентификация для рассмотрения ключа, используемого для подписания пакетов, как доверенного"
+msgstr ""
+"Требуется аутентификация для рассмотрения ключа, используемого для "
+"подписания пакетов, как доверенного"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:6
+#: ../policy/org.freedesktop.packagekit.policy.in.h:12
 msgid "Authentication is required to install a signed package"
 msgstr "Требуется аутентификация для установки подписанных пакетов"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:7
+#: ../policy/org.freedesktop.packagekit.policy.in.h:13
 msgid "Authentication is required to install an untrusted package"
 msgstr "Для установки ненадежных пакетов необходима аутентификация"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:8
+#: ../policy/org.freedesktop.packagekit.policy.in.h:14
 msgid "Authentication is required to refresh the system sources"
 msgstr "Требуется аутентификация для обновления списка пакетов"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:9
+#: ../policy/org.freedesktop.packagekit.policy.in.h:15
+#, fuzzy
+msgid "Authentication is required to reload the device with a new driver"
+msgstr "Требуется аутентификация для обновления списка пакетов"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:16
 msgid "Authentication is required to remove packages"
 msgstr "Для удаления пакетов необходима аутентификация"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:10
+#: ../policy/org.freedesktop.packagekit.policy.in.h:17
 msgid "Authentication is required to rollback a transaction"
 msgstr "Для отката транзакции необходима аутентификация"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:11
+#: ../policy/org.freedesktop.packagekit.policy.in.h:18
 msgid ""
 "Authentication is required to set the network proxy used for downloading "
 "packages"
-msgstr "Требуется аутентификация для настройки параметров прокси, используемого для загрузки пакетов"
+msgstr ""
+"Требуется аутентификация для настройки параметров прокси, используемого для "
+"загрузки пакетов"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:12
+#: ../policy/org.freedesktop.packagekit.policy.in.h:19
 msgid "Authentication is required to update packages"
 msgstr "Для обновления пакетов необходима аутентификация"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:13
+#. SECURITY:
+#. - Normal users are allowed to cancel their own task without
+#. authentication, but a different user id needs the admin password
+#. to cancel another users task.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:25
 msgid "Cancel foreign task"
 msgstr "Остановить внешнюю задачу"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:14
+#. SECURITY:
+#. - Normal users require admin authentication to enable or disable
+#. software sources as this can be used to enable new updates or
+#. install different versions of software.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:31
 msgid "Change software source parameters"
 msgstr "Изменить параметры исходного кода"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:15
+#. SECURITY:
+#. - Normal users do not need authentication to install signed packages
+#. from signed repositories, as this cannot exploit a system.
+#. - Paranoid users (or parents!) can change this to 'auth_admin' or
+#. 'auth_admin_keep'.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:38
 msgid "Install signed package"
 msgstr "Установить подписанный пакет"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:16
+#. SECURITY:
+#. - Normal users require admin authentication to install untrusted or
+#. unrecognised packages, as allowing users to do this without a
+#. password would be a massive security hole.
+#. - This is not retained as each package should be authenticated.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:45
 msgid "Install untrusted local file"
 msgstr "Установить ненадежный локальный файл"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:17
+#. SECURITY:
+#. - Normal users do not require admin authentication to refresh the
+#. cache, as this doesn't actually install or remove software.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:50
 msgid "Refresh system sources"
 msgstr "Обновить список пакетов"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:18
+#. SECURITY:
+#. - Normal users require admin authentication to rebind a driver
+#. so that it works after we install firmware.
+#. - This should not be set to 'yes' as unprivileged users could then
+#. try to rebind drivers in use, for instance security authentication
+#. devices.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:58
+msgid "Reload a device"
+msgstr ""
+
+#. SECURITY:
+#. - Normal users require admin authentication to remove packages as
+#. this can make the system unbootable or stop other applications from
+#. working.
+#. - Be sure to close the tool used to remove the packages after the
+#. admin authentication has been obtained, otherwise packages can still
+#. be removed. If this is not possible, change this authentication to
+#. 'auth_admin'.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:68
 msgid "Remove package"
 msgstr "Удалить пакет"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:19
+#. SECURITY:
+#. - Normal users require admin authentication to rollback system state
+#. as this will change a large number of packages, and could expose the
+#. system to previously patched security vulnerabilities.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:74
 msgid "Rollback to a previous transaction"
 msgstr "Откатиться к предыдущей транзакции"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:20
+#. SECURITY:
+#. - Normal users do not require admin authentication to set the proxy
+#. used for downloading packages.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:79
 msgid "Set network proxy"
 msgstr "Установить настройки прокси сервера"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:21
+#. SECURITY:
+#. - Normal users require admin authentication to add signing keys.
+#. - This implies adding an explicit trust, and should not be granted
+#. without a secure authentication.
+#. - This is not kept as each package should be authenticated.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:86
 msgid "Trust a key used for signing packages"
 msgstr "Для подписания пакетов используется доверенный ключ"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:22
+#. SECURITY:
+#. - Normal users do not require admin authentication to update the
+#. system as the packages will be signed, and the action is required
+#. to update the system when unattended.
+#. - Changing this to anything other than 'yes' will break unattended
+#. updates.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:94
 msgid "Update packages"
 msgstr "Обновить пакеты"
 
@@ -1038,52 +1479,93 @@ msgstr ""
 "Файл org.freedesktop.PackageKit.conf не установлен в системной директории:"
 
 #. TRANSLATORS: a backend is the system package tool, e.g. yum, apt
-#: ../src/pk-main.c:193
+#: ../src/pk-main.c:205
 msgid "Packaging backend to use, e.g. dummy"
 msgstr ""
 "Использовать внутренний интерфейс пакетной системы, к примеру, заглушку"
 
 #. TRANSLATORS: if we should run in the background
-#: ../src/pk-main.c:196
+#: ../src/pk-main.c:208
 msgid "Daemonize and detach from the terminal"
 msgstr "Запустить в качестве демона и отсоединить от терминала"
 
 #. TRANSLATORS: if we should not monitor how long we are inactive for
-#: ../src/pk-main.c:202
+#: ../src/pk-main.c:214
 msgid "Disable the idle timer"
 msgstr "Отключить таймер неактивности"
 
 #. TRANSLATORS: show version
-#: ../src/pk-main.c:205
+#: ../src/pk-main.c:217
 msgid "Show version and exit"
 msgstr "Показать версию и выйти"
 
 #. TRANSLATORS: exit after we've started up, used for user profiling
-#: ../src/pk-main.c:208
+#: ../src/pk-main.c:220
 msgid "Exit after a small delay"
 msgstr "Выйти после небольшой задержки"
 
 #. TRANSLATORS: exit straight away, used for automatic profiling
-#: ../src/pk-main.c:211
+#: ../src/pk-main.c:223
 msgid "Exit after the engine has loaded"
 msgstr "Выйти после загрузки движка"
 
 #. TRANSLATORS: describing the service that is running
-#: ../src/pk-main.c:226
+#: ../src/pk-main.c:238
 msgid "PackageKit service"
 msgstr "Сервис PackageKit"
 
 #. TRANSLATORS: fatal error, dbus is not running
-#: ../src/pk-main.c:263
+#: ../src/pk-main.c:275
 msgid "Cannot connect to the system bus"
 msgstr "Не удалось подсоединиться к системной шине"
 
-#. TRANSLATORS: cannot register on system bus, unknown reason
-#: ../src/pk-main.c:313
-#, c-format
+#. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error follows
+#: ../src/pk-main.c:334
 msgid "Error trying to start:"
 msgstr "Ошибка при попытке запуска:"
 
+#: ../src/pk-polkit-action-lookup.c:147
+#, fuzzy
+msgid "To install debugging packages, extra sources need to be enabled"
+msgstr "Нет новых пакетов, нуждающихся в установке"
+
+#. TRANSLATORS: is not GPG signed
+#: ../src/pk-polkit-action-lookup.c:168 ../src/pk-polkit-action-lookup.c:187
+msgid "The software is not from a trusted source."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:173
+msgid "Do not update this package unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:174
+msgid "Do not update these packages unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:192
+msgid "Do not install this package unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:193
+msgid "Do not install these packages unless you are sure it is safe to do so."
+msgstr ""
+
+#. TRANSLATORS: warn the user that all bets are off
+#: ../src/pk-polkit-action-lookup.c:199
+msgid "Malicious software can damage your computer or cause other harm."
+msgstr ""
+
+#. TRANSLATORS: too many packages to list each one
+#: ../src/pk-polkit-action-lookup.c:274
+#, fuzzy
+msgid "Many packages"
+msgstr "Обновить пакеты"
+
+#. TRANSLATORS: if the transaction is forced to install only trusted packages
+#: ../src/pk-polkit-action-lookup.c:334
+msgid "Only trusted"
+msgstr ""
+
 #, fuzzy
 #~ msgid "You need to specify a search type, e.g. name"
 #~ msgstr "Укажите тип поиска"
@@ -1091,9 +1573,6 @@ msgstr "Ошибка при попытке запуска:"
 #~ msgid "You need to specify a search term"
 #~ msgstr "Укажите условия поиска"
 
-#~ msgid "You need to specify a package or file to install"
-#~ msgstr "Укажите пакет или файл для установки"
-
 #~ msgid "You need to specify a package to remove"
 #~ msgstr "Укажите пакет для удаления"
 
@@ -1118,10 +1597,6 @@ msgstr "Ошибка при попытке запуска:"
 #~ msgstr "Укажите пакет, для которого искать файлы"
 
 #, fuzzy
-#~ msgid "You need to specify a list file to create"
-#~ msgstr "Укажите временной промежуток"
-
-#, fuzzy
 #~ msgid "You need to specify a list file to open"
 #~ msgstr "Укажите временной промежуток"
 
@@ -1156,9 +1631,6 @@ msgstr "Ошибка при попытке запуска:"
 #~ msgid "Could not find details for"
 #~ msgstr "Не удалось найти файлов этого пакета"
 
-#~ msgid "Could not find a package match"
-#~ msgstr "Не найдено совпадений в пакетах"
-
 #, fuzzy
 #~ msgid "Could not set database readonly"
 #~ msgstr "Не удалось открыть базу данных: %s"
diff --git a/po/sk.po b/po/sk.po
index c120e12..ac9c4cc 100644
--- a/po/sk.po
+++ b/po/sk.po
@@ -11,239 +11,273 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-03-24 19:09+0000\n"
+"POT-Creation-Date: 2009-08-24 11:06+0100\n"
 "PO-Revision-Date: 2009-03-24 23:07+0100\n"
 "Last-Translator: Pavol Å imo <palo.simo at gmail.com>\n"
 "Language-Team: Fedora Project <fedora-cs-list at redhat.com>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit"
+"Content-Transfer-Encoding: 8bit\n"
 
 #. TRANSLATORS: this is an atomic transaction
-#: ../client/pk-console.c:234
+#: ../client/pk-console.c:235
 msgid "Transaction"
 msgstr "Transakcia"
 
 #. TRANSLATORS: this is the time the transaction was started in system timezone
-#: ../client/pk-console.c:236
+#: ../client/pk-console.c:237
 msgid "System time"
 msgstr "Čas systému"
 
 #. TRANSLATORS: this is if the transaction succeeded or not
-#: ../client/pk-console.c:238
+#: ../client/pk-console.c:239
 msgid "Succeeded"
 msgstr "Úspešná"
 
 #. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:238 ../client/pk-console.c:405
+#: ../client/pk-console.c:239 ../client/pk-console.c:406
 msgid "True"
 msgstr "Áno"
 
-#: ../client/pk-console.c:238 ../client/pk-console.c:405
+#: ../client/pk-console.c:239 ../client/pk-console.c:406
 msgid "False"
 msgstr "Nie"
 
 #. TRANSLATORS: this is the transactions role, e.g. "update-system"
-#: ../client/pk-console.c:240
+#. TRANSLATORS: the trasaction role, e.g. update-system
+#: ../client/pk-console.c:241 ../src/pk-polkit-action-lookup.c:327
 msgid "Role"
 msgstr "Rola"
 
 #. TRANSLATORS: this is The duration of the transaction
-#: ../client/pk-console.c:245
+#: ../client/pk-console.c:246
 msgid "Duration"
 msgstr "Trvanie"
 
-#: ../client/pk-console.c:245
+#: ../client/pk-console.c:246
 msgid "(seconds)"
 msgstr "(sekúnd)"
 
 #. TRANSLATORS: this is The command line used to do the action
-#: ../client/pk-console.c:249
+#. TRANSLATORS: the command line of the thing that wants the authentication
+#: ../client/pk-console.c:250 ../src/pk-polkit-action-lookup.c:341
 msgid "Command line"
 msgstr "Príkazový riadok"
 
 #. TRANSLATORS: this is the user ID of the user that started the action
-#: ../client/pk-console.c:251
+#: ../client/pk-console.c:252
 msgid "User ID"
 msgstr "ID používateľa"
 
 #. TRANSLATORS: this is the username, e.g. hughsie
-#: ../client/pk-console.c:258
+#: ../client/pk-console.c:259
 msgid "Username"
 msgstr "Používateľské meno"
 
 #. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
-#: ../client/pk-console.c:262
+#: ../client/pk-console.c:263
 msgid "Real name"
 msgstr "Plné meno"
 
-#: ../client/pk-console.c:270
+#: ../client/pk-console.c:271
 msgid "Affected packages:"
 msgstr "Ovplyvnené balíčky:"
 
-#: ../client/pk-console.c:272
+#: ../client/pk-console.c:273
 msgid "Affected packages: None"
 msgstr "Ovplyvnené balíčky: Žiadne"
 
 #. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:297
+#: ../client/pk-console.c:298
 msgid "Distribution"
 msgstr "Distribúcia"
 
 #. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:299
+#: ../client/pk-console.c:300
 msgid "Type"
 msgstr "Typ"
 
 #. TRANSLATORS: this is any summary text describing the upgrade
 #. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:301 ../client/pk-console.c:324
+#: ../client/pk-console.c:302 ../client/pk-console.c:325
 msgid "Summary"
 msgstr "Zhrnutie"
 
 #. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:313
+#: ../client/pk-console.c:314
 msgid "Category"
 msgstr "Kategória"
 
 #. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:315
+#: ../client/pk-console.c:316
 msgid "ID"
 msgstr "ID"
 
 #. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:318
+#: ../client/pk-console.c:319
 msgid "Parent"
 msgstr "Rodič"
 
 #. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:321
+#: ../client/pk-console.c:322
 msgid "Name"
 msgstr "Názov"
 
 #. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:327
+#: ../client/pk-console.c:328
 msgid "Icon"
 msgstr "Ikona"
 
 #. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:342
+#: ../client/pk-console.c:343
 msgid "Details about the update:"
 msgstr "Podrobnosti o aktualizácii:"
 
 #. TRANSLATORS: details about the update, package name and version
-#: ../client/pk-console.c:344
+#. TRANSLATORS: title, the names of the packages that the method is processing
+#: ../client/pk-console.c:345 ../src/pk-polkit-action-lookup.c:352
+#, fuzzy
 msgid "Package"
-msgstr "Balíček"
+msgid_plural "Packages"
+msgstr[0] "Balíček"
+msgstr[1] "Balíček"
 
 #. TRANSLATORS: details about the update, any packages that this update updates
-#: ../client/pk-console.c:347
+#: ../client/pk-console.c:348
 msgid "Updates"
 msgstr "Aktualizuje"
 
 #. TRANSLATORS: details about the update, any packages that this update obsoletes
-#: ../client/pk-console.c:351
+#: ../client/pk-console.c:352
 msgid "Obsoletes"
 msgstr "Nahrádza"
 
 #. TRANSLATORS: details about the update, the vendor URLs
-#: ../client/pk-console.c:355
+#: ../client/pk-console.c:356
 msgid "Vendor"
 msgstr "Dodávateľ"
 
 #. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:359
+#: ../client/pk-console.c:360
 msgid "Bugzilla"
 msgstr "Bugzilla"
 
 #. TRANSLATORS: details about the update, the CVE URLs
-#: ../client/pk-console.c:363
+#: ../client/pk-console.c:364
 msgid "CVE"
 msgstr "CVE"
 
 #. TRANSLATORS: details about the update, if the package requires a restart
-#: ../client/pk-console.c:367
+#: ../client/pk-console.c:368
 msgid "Restart"
 msgstr "Reštart"
 
 #. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:371
+#: ../client/pk-console.c:372
 msgid "Update text"
 msgstr "Text aktualizácie"
 
 #. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:375
+#: ../client/pk-console.c:376
 msgid "Changes"
 msgstr "Zmeny"
 
 #. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:379
+#: ../client/pk-console.c:380
 msgid "State"
 msgstr "Stav"
 
 #. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:384
+#: ../client/pk-console.c:385
 msgid "Issued"
 msgstr "Vydané"
 
 #. TRANSLATORS: details about the update, date the update was updated
-#: ../client/pk-console.c:389
+#: ../client/pk-console.c:390
 msgid "Updated"
 msgstr "Aktualizované"
 
-#: ../client/pk-console.c:476 ../client/pk-console.c:478
+#: ../client/pk-console.c:477 ../client/pk-console.c:479
 msgid "Percentage"
 msgstr "Počet percent"
 
-#: ../client/pk-console.c:478
+#: ../client/pk-console.c:479
 msgid "Unknown"
 msgstr "Neznámy"
 
 #. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:529
+#: ../client/pk-console.c:521
 msgid "System restart required by:"
 msgstr "Reštart systému vyžaduje:"
 
 #. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:532
+#: ../client/pk-console.c:524
 msgid "Session restart required:"
 msgstr "Reštart relácie vyžaduje:"
 
+#. TRANSLATORS: a package requires the system to be restarted due to a security update
+#: ../client/pk-console.c:527
+#, fuzzy
+msgid "System restart (security) required by:"
+msgstr "Reštart systému vyžaduje:"
+
+#. TRANSLATORS: a package requires the session to be restarted due to a security update
+#: ../client/pk-console.c:530
+#, fuzzy
+msgid "Session restart (security) required:"
+msgstr "Reštart relácie vyžaduje:"
+
 #. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:535
+#: ../client/pk-console.c:533
 msgid "Application restart required by:"
 msgstr "Reštart aplikácie vyžaduje:"
 
-#. TRANSLATORS: a package needs to restart they system
-#: ../client/pk-console.c:572
+#. TRANSLATORS: a package needs to restart their system
+#: ../client/pk-console.c:588
 msgid "Please restart the computer to complete the update."
 msgstr "Pre dokončenie aktualizácie reštartujte počítač."
 
 #. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:575
+#: ../client/pk-console.c:591
 msgid "Please logout and login to complete the update."
 msgstr "Pre dokončenie aktualizácie sa odhláste a znovu prihláste."
 
 #. TRANSLATORS: a package needs to restart the application
-#: ../client/pk-console.c:578
+#: ../client/pk-console.c:594
 msgid "Please restart the application as it is being used."
 msgstr "Reštartujte aplikáciu, pretože sa momentálne používa."
 
+#. TRANSLATORS: a package needs to restart their system (due to security)
+#: ../client/pk-console.c:597
+#, fuzzy
+msgid ""
+"Please restart the computer to complete the update as important security "
+"updates have been installed."
+msgstr "Pre dokončenie aktualizácie reštartujte počítač."
+
+#. TRANSLATORS: a package needs to restart the session (due to security)
+#: ../client/pk-console.c:600
+#, fuzzy
+msgid ""
+"Please logout and login to complete the update as important security updates "
+"have been installed."
+msgstr "Pre dokončenie aktualizácie sa odhláste a znovu prihláste."
+
 #. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:691
+#: ../client/pk-console.c:727
 #, c-format
 msgid "The package %s is already installed"
 msgstr "Balíček %s je už nainštalovaný"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:699
+#: ../client/pk-console.c:735
 #, c-format
 msgid "The package %s could not be installed: %s"
 msgstr "Balíček %s nemôže byť nainštalovaný: %s"
 
 #. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
-#: ../client/pk-console.c:724 ../client/pk-console.c:751
-#: ../client/pk-console.c:847 ../client/pk-console.c:964
+#: ../client/pk-console.c:760 ../client/pk-console.c:783
+#: ../client/pk-console.c:879 ../client/pk-console.c:996
 #: ../client/pk-tools-common.c:62 ../client/pk-tools-common.c:81
 #: ../client/pk-tools-common.c:89
 #, c-format
@@ -251,396 +285,406 @@ msgid "Internal error: %s"
 msgstr "Vnútorná chyba: %s"
 
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:732 ../client/pk-console.c:1360
+#: ../client/pk-console.c:768 ../client/pk-console.c:1392
 #, c-format
 msgid "This tool could not install the packages: %s"
 msgstr "Nepodarilo sa nainštalovať balíčky: %s"
 
 #. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:759
+#: ../client/pk-console.c:791
 #, c-format
 msgid "This tool could not install the files: %s"
 msgstr "Nepodarilo sa nainštalovať súbory: %s"
 
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:815
+#: ../client/pk-console.c:847
 #, c-format
 msgid "This tool could not remove %s: %s"
 msgstr "Nepodarilo sa odstrániť %s: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:838 ../client/pk-console.c:876
-#: ../client/pk-console.c:909
+#: ../client/pk-console.c:870 ../client/pk-console.c:908
+#: ../client/pk-console.c:941
 #, c-format
 msgid "This tool could not remove the packages: %s"
 msgstr "Nepodarilo sa odstrániť balíčky: %s"
 
 #. TRANSLATORS: When removing, we might have to remove other dependencies
-#: ../client/pk-console.c:888
+#: ../client/pk-console.c:920
 msgid "The following packages have to be removed:"
 msgstr "Nasledujúce balíčky budú musieť byť odstránené:"
 
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:895
+#: ../client/pk-console.c:927
 msgid "Proceed removing additional packages?"
 msgstr "Pokračovať a odstrániť doplnkové balíčky?"
 
 #. TRANSLATORS: We did not remove any packages
-#: ../client/pk-console.c:900
+#: ../client/pk-console.c:932
 msgid "The package removal was canceled!"
 msgstr "Odstránenie balíčkov bolo zrušené!"
 
 #. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:941
+#: ../client/pk-console.c:973
 #, c-format
 msgid "This tool could not download the package %s as it could not be found"
 msgstr "Nepodarilo sa získať balíček %s, balíček nebol nájdený"
 
 #. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:972
+#: ../client/pk-console.c:1004
 #, c-format
 msgid "This tool could not download the packages: %s"
 msgstr "Nepodarilo sa získať balíčky: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:999 ../client/pk-console.c:1008
+#: ../client/pk-console.c:1031 ../client/pk-console.c:1040
 #, c-format
 msgid "This tool could not update %s: %s"
 msgstr "Nepodarilo sa aktualizovať %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1030 ../client/pk-console.c:1038
+#: ../client/pk-console.c:1062 ../client/pk-console.c:1070
 #, c-format
 msgid "This tool could not get the requirements for %s: %s"
 msgstr "Nepodarilo sa získať požiadavky balíčka %s: %s"
 
 #. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:1060 ../client/pk-console.c:1068
+#: ../client/pk-console.c:1092 ../client/pk-console.c:1100
 #, c-format
 msgid "This tool could not get the dependencies for %s: %s"
 msgstr "Nepodarilo sa získať závislosti pre %s: %s"
 
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:1090 ../client/pk-console.c:1098
+#: ../client/pk-console.c:1122 ../client/pk-console.c:1130
 #, c-format
 msgid "This tool could not get package details for %s: %s"
 msgstr "Nepodarilo sa získať detaily o balíčku %s: %s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1120
+#: ../client/pk-console.c:1152
 #, c-format
 msgid "This tool could not find the files for %s: %s"
 msgstr "Nepodarilo sa nájsť zoznam súborov balíčka %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1128
+#: ../client/pk-console.c:1160
 #, c-format
 msgid "This tool could not get the file list for %s: %s"
 msgstr "Nepodarilo sa získať zoznam súborov balíčka %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of packages. The filename follows
-#: ../client/pk-console.c:1150
+#: ../client/pk-console.c:1182
 #, c-format
 msgid "File already exists: %s"
 msgstr "Súbor už existuje: %s"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1155 ../client/pk-console.c:1211
-#: ../client/pk-console.c:1286
+#: ../client/pk-console.c:1187 ../client/pk-console.c:1243
+#: ../client/pk-console.c:1318
 msgid "Getting package list"
 msgstr "Získavanie zoznamu balíčkov"
 
 #. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1161 ../client/pk-console.c:1217
-#: ../client/pk-console.c:1292
+#: ../client/pk-console.c:1193 ../client/pk-console.c:1249
+#: ../client/pk-console.c:1324
 #, c-format
 msgid "This tool could not get package list: %s"
 msgstr "Nepodarilo sa získať zoznam balíčkov: %s"
 
 # XXX
 #. TRANSLATORS: There was an error saving the list
-#: ../client/pk-console.c:1172
+#: ../client/pk-console.c:1204
 #, c-format
 msgid "Failed to save to disk"
 msgstr "Nebolo možné uložiť na disk"
 
 #. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1206 ../client/pk-console.c:1281
+#: ../client/pk-console.c:1238 ../client/pk-console.c:1313
 #, c-format
 msgid "File does not exist: %s"
 msgstr "Súbor neexistuje: %s"
 
 #. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1238
+#: ../client/pk-console.c:1270
 msgid "Packages to add"
 msgstr "Balíčky na pridanie"
 
 #. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1246
+#: ../client/pk-console.c:1278
 msgid "Packages to remove"
 msgstr "Balíčky na odobratie"
 
 #. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1314
+#: ../client/pk-console.c:1346
 #, c-format
 msgid "No new packages need to be installed"
 msgstr "Žiadne nové balíčky nemusia byť nainštalované"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1320
+#: ../client/pk-console.c:1352
 msgid "To install"
 msgstr "Nainštalovať"
 
 #. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1332
+#: ../client/pk-console.c:1364
 msgid "Searching for package: "
 msgstr "Vyhľadávanie balíčka: "
 
 #. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1336
+#: ../client/pk-console.c:1368
 msgid "not found."
 msgstr "nenájdený."
 
 #. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1347
+#: ../client/pk-console.c:1379
 #, c-format
 msgid "No packages can be found to install"
 msgstr "Neboli nájdené žiadne balíčky pre nainštalovanie"
 
 #. TRANSLATORS: installing new packages from package list
-#: ../client/pk-console.c:1353
+#. TRANSLATORS: we are now installing the debuginfo packages we found earlier
+#: ../client/pk-console.c:1385
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:886
+#, c-format
 msgid "Installing packages"
 msgstr "Inštalovanie balíčkov"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1389
+#: ../client/pk-console.c:1421
 #, c-format
 msgid "This tool could not find the update details for %s: %s"
 msgstr "Nepodarilo sa nájsť detaily aktualizácie pre %s: %s"
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1397
+#: ../client/pk-console.c:1429
 #, c-format
 msgid "This tool could not get the update details for %s: %s"
 msgstr "Nepodarilo sa získať detaily aktualizácie pre %s: %s"
 
 #. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
-#: ../client/pk-console.c:1443
+#: ../client/pk-console.c:1460
 msgid "Error:"
 msgstr "Chyba:"
 
 #. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1457
+#: ../client/pk-console.c:1474
 msgid "Package description"
 msgstr "Popis balíčka"
 
+#. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
+#: ../client/pk-console.c:1490
+msgid "Message:"
+msgstr ""
+
 #. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1491
+#: ../client/pk-console.c:1518
 msgid "Package files"
 msgstr "Zonam súborov v balíčku"
 
 #. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1499
+#: ../client/pk-console.c:1526
 msgid "No files"
 msgstr "Žiadne súbory"
 
 #. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1522
+#: ../client/pk-console.c:1549
 msgid "Repository signature required"
 msgstr "Požadovaný podpis repozitára"
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1532
+#: ../client/pk-console.c:1559
 msgid "Do you accept this signature?"
 msgstr "Akceptujete tento podpis?"
 
 #. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1536
+#: ../client/pk-console.c:1563
 msgid "The signature was not accepted."
 msgstr "Podpis nebol prijatý."
 
 #. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1570
+#: ../client/pk-console.c:1597
 msgid "End user license agreement required"
 msgstr "Požadovaný je súhlas s licenciou"
 
 #. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1577
+#: ../client/pk-console.c:1604
 msgid "Do you agree to this license?"
 msgstr "Súhlasíte s touto licenciou?"
 
 #. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1581
+#: ../client/pk-console.c:1608
 msgid "The license was refused."
 msgstr "Licencia bola odmietnutá."
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1610
+#: ../client/pk-console.c:1637
 msgid "The daemon crashed mid-transaction!"
 msgstr "Služba na pozadí neočakávne skončila počas transakcie!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1663
+#: ../client/pk-console.c:1690
 msgid "PackageKit Console Interface"
 msgstr "Konzola PackageKit"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1665
+#: ../client/pk-console.c:1692
 msgid "Subcommands:"
 msgstr "Podpríkazy:"
 
 #. TRANSLATORS: command line argument, if we should show debugging information
 #. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:1757 ../client/pk-generate-pack.c:185
-#: ../client/pk-monitor.c:125
-#: ../contrib/command-not-found/pk-command-not-found.c:518
-#: ../src/pk-main.c:199
+#: ../client/pk-console.c:1785 ../client/pk-generate-pack.c:185
+#: ../client/pk-monitor.c:128
+#: ../contrib/command-not-found/pk-command-not-found.c:616
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:550
+#: ../contrib/device-rebind/pk-device-rebind.c:293 ../src/pk-main.c:211
 msgid "Show extra debugging information"
 msgstr "Zobrazovať dodatočné ladiace informácie"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1760 ../client/pk-monitor.c:127
+#: ../client/pk-console.c:1788 ../client/pk-monitor.c:130
 msgid "Show the program version and exit"
 msgstr "Zobraziť verziu programu a skončiť"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1763
+#: ../client/pk-console.c:1791
 msgid "Set the filter, e.g. installed"
 msgstr "Nastaviť filter, napríklad \"nainštalované\""
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1766
+#: ../client/pk-console.c:1794
 msgid "Exit without waiting for actions to complete"
 msgstr "Nečakať na dokončenie úloh a skončiť"
 
 #. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:1793
+#: ../client/pk-console.c:1821
 msgid "This tool could not connect to system DBUS."
 msgstr "Pokus o pripojenie k systémovej zbernici DBUS neuspel."
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1880
+#: ../client/pk-console.c:1911
 msgid "The filter specified was invalid"
 msgstr "Zadaný filter nebol platný"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1898
+#: ../client/pk-console.c:1930
 msgid "A search type is required, e.g. name"
 msgstr "Je potrebný typ hľadania, napr. názov"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1904 ../client/pk-console.c:1912
-#: ../client/pk-console.c:1920 ../client/pk-console.c:1928
+#: ../client/pk-console.c:1937 ../client/pk-console.c:1946
+#: ../client/pk-console.c:1955 ../client/pk-console.c:1964
 msgid "A search term is required"
 msgstr "Je potrebný vyhľadávací reťazec"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1934
+#: ../client/pk-console.c:1971
 msgid "Invalid search type"
 msgstr "Neplatný typ vyhľadávania"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1940
+#: ../client/pk-console.c:1977
 msgid "A package name or filename to install is required"
 msgstr "Je potrebný názov balíčka alebo súboru na inštalovanie"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1948
+#: ../client/pk-console.c:1986
 msgid "A type, key_id and package_id are required"
 msgstr "Je potrebné určiť typ, key_id a package_id"
 
 #. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:1956
+#: ../client/pk-console.c:1995
 msgid "A package name to remove is required"
 msgstr "Je potrebný názov balíčka na odstránenie"
 
 #. TRANSLATORS: the user did not specify anything about what to download or where
-#: ../client/pk-console.c:1963
-msgid ""
-"A destination directory and then the package names to download are required"
-msgstr "Je potrebné určiť cieľový priečinok a následne názvy balíčkov na stiahnutie"
+#: ../client/pk-console.c:2003
+#, fuzzy
+msgid "A destination directory and the package names to download are required"
+msgstr ""
+"Je potrebné určiť cieľový priečinok a následne názvy balíčkov na stiahnutie"
 
 #. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:1969
+#: ../client/pk-console.c:2010
 msgid "Directory not found"
 msgstr "Priečinok nenájdený"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1976
+#: ../client/pk-console.c:2018
 msgid "A licence identifier (eula-id) is required"
 msgstr "Je potrebný identifikátor licencie (eula-id)"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1985
+#: ../client/pk-console.c:2028
 msgid "A transaction identifier (tid) is required"
 msgstr "Je potrebný identifikátor transakcie (tid)"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:2001
+#: ../client/pk-console.c:2045
 msgid "A package name to resolve is required"
 msgstr "Je potrebný názov balíčka na rozvinutie"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:2009 ../client/pk-console.c:2017
+#: ../client/pk-console.c:2054 ../client/pk-console.c:2063
 msgid "A repository name is required"
 msgstr "Je potrebný názov repozitára"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2025
+#: ../client/pk-console.c:2072
 msgid "A repo name, parameter and value are required"
 msgstr "Je potrebné určiť názov repozitára, parameter a hodnotu"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:2038
+#: ../client/pk-console.c:2086
 msgid "An action, e.g. 'update-system' is required"
 msgstr "Je potrebná akcia, napr. 'update-system'"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:2044
+#: ../client/pk-console.c:2093
 msgid "A correct role is required"
 msgstr "Je potrebná správna rola"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2050
+#: ../client/pk-console.c:2100
 msgid "Failed to get the time since this action was last completed"
 msgstr "Získanie času od ukončenia tejto akcie zlyhalo"
 
 #. TRANSLATORS: The user did not provide a package name
 #. TRANSLATORS: This is when the user fails to supply the package name
-#: ../client/pk-console.c:2059 ../client/pk-console.c:2070
-#: ../client/pk-console.c:2078 ../client/pk-console.c:2094
-#: ../client/pk-console.c:2102 ../client/pk-generate-pack.c:241
+#: ../client/pk-console.c:2110 ../client/pk-console.c:2122
+#: ../client/pk-console.c:2131 ../client/pk-console.c:2149
+#: ../client/pk-console.c:2158 ../client/pk-generate-pack.c:241
 msgid "A package name is required"
 msgstr "Je potrebný názov balíčka"
 
 #. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:2086
+#: ../client/pk-console.c:2140
 msgid "A package provide string is required"
 msgstr "Je potrebný reťazec poskytovania"
 
 #. TRANSLATORS: The user didn't specify a filename to create as a list
-#: ../client/pk-console.c:2110
+#: ../client/pk-console.c:2167
 msgid "A list file name to create is required"
 msgstr "Je potrebný názov súboru zoznamu na vytvorenie"
 
 #. TRANSLATORS: The user didn't specify a filename to open as a list
-#: ../client/pk-console.c:2119 ../client/pk-console.c:2128
+#: ../client/pk-console.c:2177 ../client/pk-console.c:2187
 msgid "A list file to open is required"
 msgstr "Je potrebný názov súboru zoznamu na otvorenie"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2181
+#: ../client/pk-console.c:2241
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "Voľba '%s' nie je podporovaná"
 
 #. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2194
+#: ../client/pk-console.c:2254
 msgid "Incorrect privileges for this operation"
 msgstr "Nedostatočné privilégiá na vykonanie tejto úlohy"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2197
+#: ../client/pk-console.c:2257
 msgid "Command failed"
 msgstr "Príkaz neuspel"
 
@@ -668,7 +712,9 @@ msgstr "Nastavte názov súboru so závislosťami, ktoré sa majú vynechať"
 #: ../client/pk-generate-pack.c:191
 msgid ""
 "The output file or directory (the current directory is used if ommitted)"
-msgstr "Cieľový súbor alebo priečinok (ak bude vynechané, použije sa aktuálny priečinok)"
+msgstr ""
+"Cieľový súbor alebo priečinok (ak bude vynechané, použije sa aktuálny "
+"priečinok)"
 
 #. TRANSLATORS: put a list of packages in the pack
 #: ../client/pk-generate-pack.c:194
@@ -701,66 +747,77 @@ msgstr "Je potrebný názov výstupného priečinka alebo súboru"
 msgid "The package manager cannot perform this type of operation."
 msgstr "Správca balíčkov nemôže vykonať tento druh operácie."
 
+#. TRANSLATORS: This is when the distro didn't include libarchive support into PK
+#: ../client/pk-generate-pack.c:280
+msgid ""
+"Service packs cannot be created as PackageKit was not built with libarchive "
+"support."
+msgstr ""
+
 #. TRANSLATORS: the user specified an absolute path, but didn't get the extension correct
-#: ../client/pk-generate-pack.c:285
+#: ../client/pk-generate-pack.c:291
 msgid "If specifying a file, the service pack name must end with"
 msgstr "Pri určovaní súboru musí názov servisného archívu končiť na"
 
 #. TRANSLATORS: This is when file already exists
-#: ../client/pk-generate-pack.c:301
+#: ../client/pk-generate-pack.c:307
 msgid "A pack with the same name already exists, do you want to overwrite it?"
 msgstr "Archív s rovnakým názvom už existuje, chcete ho nahradiť?"
 
 #. TRANSLATORS: This is when the pack was not overwritten
-#: ../client/pk-generate-pack.c:304
+#: ../client/pk-generate-pack.c:310
 msgid "The pack was not overwritten."
 msgstr "Archív nebol prepísaný."
 
 # XXX
 #. TRANSLATORS: This is when the temporary directory cannot be created, the directory name follows
-#: ../client/pk-generate-pack.c:317
+#: ../client/pk-generate-pack.c:323
 msgid "Failed to create directory:"
 msgstr "Nepodarilo sa vytvoriť priečinok:"
 
 # XXX
 #. TRANSLATORS: This is when the list of packages from the remote computer cannot be opened
-#: ../client/pk-generate-pack.c:327
+#: ../client/pk-generate-pack.c:333
 msgid "Failed to open package list."
 msgstr "Nepodarilo sa otvoriť zoznam balíčkov."
 
 #. TRANSLATORS: The package name is being matched up to available packages
-#: ../client/pk-generate-pack.c:338
+#: ../client/pk-generate-pack.c:344
 msgid "Finding package name."
 msgstr "Hľadanie názvu balíčka."
 
 #. TRANSLATORS: This is when the package cannot be found in any software source. The detailed error follows
-#: ../client/pk-generate-pack.c:342
+#: ../client/pk-generate-pack.c:348
 #, c-format
 msgid "Failed to find package '%s': %s"
 msgstr "Nepodarilo sa nájsť balíček '%s': %s"
 
 #. TRANSLATORS: This is telling the user we are in the process of making the pack
-#: ../client/pk-generate-pack.c:359
+#: ../client/pk-generate-pack.c:365
 msgid "Creating service pack..."
 msgstr "Vytváranie servisného archívu..."
 
 #. TRANSLATORS: we succeeded in making the file
-#: ../client/pk-generate-pack.c:366
+#: ../client/pk-generate-pack.c:372
 #, c-format
 msgid "Service pack created '%s'"
 msgstr "Vytvorený servisný archív '%s'"
 
 #. TRANSLATORS: we failed to make te file
-#: ../client/pk-generate-pack.c:371
+#: ../client/pk-generate-pack.c:377
 #, c-format
 msgid "Failed to create '%s': %s"
 msgstr "Nepodarilo sa vytvoriť '%s': %s"
 
 #. TRANSLATORS: this is a program that monitors PackageKit
-#: ../client/pk-monitor.c:143
+#: ../client/pk-monitor.c:146
 msgid "PackageKit Monitor"
 msgstr "Monitor PackageKit"
 
+#: ../client/pk-monitor.c:183
+msgid "Cannot show the list of transactions"
+msgstr ""
+
 #. TRANSLATORS: The package was not found in any software sources
 #: ../client/pk-tools-common.c:118
 #, c-format
@@ -782,130 +839,443 @@ msgstr "Zadajte prosím správny balíček: "
 msgid "Please enter a number from 1 to %i: "
 msgstr "Zadajte prosím číslo od 1 do %i: "
 
+#. TRANSLATORS: when we are getting data from the daemon
+#: ../contrib/browser-plugin/pk-plugin-install.c:466
+msgid "Getting package information..."
+msgstr "Získavanie informácií o balíčku..."
+
+#. TRANSLATORS: run an applicaiton
+#: ../contrib/browser-plugin/pk-plugin-install.c:472
+#, c-format
+msgid "Run %s"
+msgstr "Spustiť %s"
+
+#. TRANSLATORS: show the installed version of a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:478
+msgid "Installed version"
+msgstr "Nainštalovaná verzia"
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:486
+#, c-format
+msgid "Run version %s now"
+msgstr "Spustiť verziu %s teraz"
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:492
+msgid "Run now"
+msgstr "Spustiť teraz"
+
+#. TRANSLATORS: update to a new version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:498
+#, c-format
+msgid "Update to version %s"
+msgstr "Aktualizovať na verziu %s"
+
+#. TRANSLATORS: To install a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:504
+#, c-format
+msgid "Install %s now"
+msgstr "Nainštalovať %s teraz"
+
+#. TRANSLATORS: the version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:507
+msgid "Version"
+msgstr "Verzia"
+
+#. TRANSLATORS: noting found, so can't install
+#: ../contrib/browser-plugin/pk-plugin-install.c:512
+msgid "No packages found for your system"
+msgstr "Pre váš systém neboli nájdené žiadne balíčky"
+
+#. TRANSLATORS: package is being installed
+#: ../contrib/browser-plugin/pk-plugin-install.c:517
+msgid "Installing..."
+msgstr "Inštalovanie..."
+
+#. TRANSLATORS: downloading repo data so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:349
+msgid "Downloading details about the software sources."
+msgstr ""
+
+#. TRANSLATORS: downloading file lists so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:353
+msgid "Downloading filelists (this may take some time to complete)."
+msgstr ""
+
+#. TRANSLATORS: waiting for native lock
+#: ../contrib/command-not-found/pk-command-not-found.c:357
+#, fuzzy
+msgid "Waiting for package manager lock."
+msgstr "Hľadanie názvu balíčka."
+
+#. TRANSLATORS: loading package cache so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:361
+#, fuzzy
+msgid "Loading list of packages."
+msgstr "Získavanie balíčkov"
+
 # XXX
 #. TRANSLATORS: we failed to find the package, this shouldn't happen
-#: ../contrib/command-not-found/pk-command-not-found.c:369
+#: ../contrib/command-not-found/pk-command-not-found.c:420
 msgid "Failed to search for file"
 msgstr "Vyhľadanie súboru zlyhalo"
 
 # XXX
 #. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:493
+#: ../contrib/command-not-found/pk-command-not-found.c:557
 msgid "Failed to launch:"
 msgstr "Spustenie zlyhalo:"
 
 #. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/command-not-found/pk-command-not-found.c:534
+#: ../contrib/command-not-found/pk-command-not-found.c:632
 msgid "PackageKit Command Not Found"
 msgstr "PackageKit príkaz nenájdený"
 
 #. TRANSLATORS: the prefix of all the output telling the user why it's not executing
-#: ../contrib/command-not-found/pk-command-not-found.c:556
+#: ../contrib/command-not-found/pk-command-not-found.c:658
 msgid "Command not found."
 msgstr "Príkaz nenájdený."
 
 #. TRANSLATORS: tell the user what we think the command is
-#: ../contrib/command-not-found/pk-command-not-found.c:563
+#: ../contrib/command-not-found/pk-command-not-found.c:665
 msgid "Similar command is:"
 msgstr "Podobný príkaz je:"
 
 #. TRANSLATORS: Ask the user if we should run the similar command
-#: ../contrib/command-not-found/pk-command-not-found.c:572
+#: ../contrib/command-not-found/pk-command-not-found.c:674
 msgid "Run similar command:"
 msgstr "Spustiť podobný príkaz:"
 
 #. TRANSLATORS: show the user a list of commands that they could have meant
 #. TRANSLATORS: show the user a list of commands we could run
-#: ../contrib/command-not-found/pk-command-not-found.c:584
-#: ../contrib/command-not-found/pk-command-not-found.c:593
+#: ../contrib/command-not-found/pk-command-not-found.c:686
+#: ../contrib/command-not-found/pk-command-not-found.c:695
 msgid "Similar commands are:"
 msgstr "Podobné príkazy sú:"
 
 #. TRANSLATORS: ask the user to choose a file to run
-#: ../contrib/command-not-found/pk-command-not-found.c:600
+#: ../contrib/command-not-found/pk-command-not-found.c:702
 msgid "Please choose a command to run"
 msgstr "Zvoľte, prosí, príkaz na spustenie"
 
 #. TRANSLATORS: tell the user what package provides the command
-#: ../contrib/command-not-found/pk-command-not-found.c:615
+#: ../contrib/command-not-found/pk-command-not-found.c:721
 msgid "The package providing this file is:"
 msgstr "Balíček poskytujúci tento súbor je:"
 
 #. TRANSLATORS: as the user if we want to install a package to provide the command
-#: ../contrib/command-not-found/pk-command-not-found.c:620
+#: ../contrib/command-not-found/pk-command-not-found.c:726
 #, c-format
 msgid "Install package '%s' to provide command '%s'?"
 msgstr "Nainštalovať balíček '%s' pre zaobstaranie príkazu '%s'?"
 
 #. TRANSLATORS: Show the user a list of packages that provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:641
+#: ../contrib/command-not-found/pk-command-not-found.c:747
 msgid "Packages providing this file are:"
 msgstr "Balíčky poskytujúce tento súbor sú:"
 
 #. TRANSLATORS: Show the user a list of packages that they can install to provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:650
+#: ../contrib/command-not-found/pk-command-not-found.c:756
 msgid "Suitable packages are:"
 msgstr "Vhodné balíčky sú:"
 
 #. get selection
 #. TRANSLATORS: ask the user to choose a file to install
-#: ../contrib/command-not-found/pk-command-not-found.c:658
+#: ../contrib/command-not-found/pk-command-not-found.c:764
 msgid "Please choose a package to install"
 msgstr "Zvoľte, prosím, balíček na inštalovanie"
 
-#. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/src/contents.cpp:298
-msgid "Getting package information..."
-msgstr "Získavanie informácií o balíčku..."
+#. TRANSLATORS: we are starting to install the packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:187
+#, fuzzy
+msgid "Starting install"
+msgstr "Nainštalovať"
 
-#. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/src/contents.cpp:304
+#. TRANSLATORS: we couldn't find the package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:397
+#, fuzzy, c-format
+msgid "Failed to find the package %s, or already installed: %s"
+msgstr "Balíček %s je už nainštalovaný"
+
+#. command line argument, simulate what would be done, but don't actually do it
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:553
+msgid ""
+"Don't actually install any packages, only simulate what would be installed"
+msgstr ""
+
+#. command line argument, do we skip packages that depend on the ones specified
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:556
+msgid "Do not install dependencies of the core packages"
+msgstr ""
+
+#. command line argument, do we operate quietly
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:559
+msgid "Do not display information or progress"
+msgstr ""
+
+#. TRANSLATORS: tool that gets called when the command is not found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:577
+#, fuzzy
+msgid "PackageKit Debuginfo Installer"
+msgstr "Konzola PackageKit"
+
+#. TRANSLATORS: the use needs to specify a list of package names on the command line
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:589
+#, fuzzy, c-format
+msgid "ERROR: Specify package names to install."
+msgstr "Je potrebné určiť balíček alebo súbor na inštaláciu"
+
+#. TRANSLATORS: we are getting the list of repositories
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:623
+#, fuzzy, c-format
+msgid "Getting sources list"
+msgstr "Získavanie zoznamu balíčkov"
+
+#. TRANSLATORS: all completed 100%
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:641
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:681
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:716
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:800
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:844
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:911
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:955
 #, c-format
-msgid "Run %s"
-msgstr "Spustiť %s"
+msgid "OK."
+msgstr ""
 
-#. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/src/contents.cpp:310
-msgid "Installed version"
-msgstr "Nainštalovaná verzia"
+#. TRANSLATORS: tell the user what we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:644
+#, c-format
+msgid "Found %i enabled and %i disabled sources."
+msgstr ""
 
-#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/src/contents.cpp:318
+#. TRANSLATORS: we're finding repositories that match out pattern
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:651
 #, c-format
-msgid "Run version %s now"
-msgstr "Spustiť verziu %s teraz"
+msgid "Finding debugging sources"
+msgstr ""
 
-#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/src/contents.cpp:324
-msgid "Run now"
-msgstr "Spustiť teraz"
+#. TRANSLATORS: tell the user what we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:684
+#, c-format
+msgid "Found %i disabled debuginfo repos."
+msgstr ""
 
-#. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/src/contents.cpp:330
+#. TRANSLATORS: we're now enabling all the debug sources we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:691
 #, c-format
-msgid "Update to version %s"
-msgstr "Aktualizovať na verziu %s"
+msgid "Enabling debugging sources"
+msgstr ""
 
-#. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/src/contents.cpp:336
+#. TRANSLATORS: operation was not successful
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:701
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:785
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:829
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:896
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:940
+msgid "FAILED."
+msgstr ""
+
+#. TRANSLATORS: tell the user how many we enabled
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:719
 #, c-format
-msgid "Install %s now"
-msgstr "Nainštalovať %s teraz"
+msgid "Enabled %i debugging sources."
+msgstr ""
 
-#. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/src/contents.cpp:339
-msgid "Version"
-msgstr "Verzia"
+#. TRANSLATORS: we're now finding packages that match in all the repos
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:726
+#, fuzzy, c-format
+msgid "Finding debugging packages"
+msgstr "Hľadanie názvu balíčka."
 
-#. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/src/contents.cpp:344
-msgid "No packages found for your system"
-msgstr "Pre váš systém neboli nájdené žiadne balíčky"
+#. TRANSLATORS: we couldn't find the package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:738
+#, fuzzy, c-format
+msgid "Failed to find the package %s: %s"
+msgstr "Nepodarilo sa nájsť balíček '%s': %s"
 
-#. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/src/contents.cpp:349
-msgid "Installing..."
-msgstr "Inštalovanie..."
+#. TRANSLATORS: we couldn't find the debuginfo package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:761
+#, fuzzy, c-format
+msgid "Failed to find the debuginfo package %s: %s"
+msgstr "Nepodarilo sa nájsť balíček '%s': %s"
+
+#. TRANSLATORS: no debuginfo packages could be found to be installed
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:789
+#, fuzzy, c-format
+msgid "Found no packages to install."
+msgstr "Žiadne nové balíčky nemusia byť nainštalované"
+
+#. TRANSLATORS: tell the user we found some packages, and then list them
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:803
+#, fuzzy, c-format
+msgid "Found %i packages:"
+msgstr "Získavanie balíčkov"
+
+#. TRANSLATORS: tell the user we are searching for deps
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:819
+#, c-format
+msgid "Finding packages that depend on these packages"
+msgstr ""
+
+#. TRANSLATORS: could not install, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:832
+#, fuzzy, c-format
+msgid "Could not find dependant packages: %s"
+msgstr "Nebolo močné nájsť zodpovedajúci balíček"
+
+#. TRANSLATORS: tell the user we found some more packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:848
+#, c-format
+msgid "Found %i extra packages."
+msgstr ""
+
+#. TRANSLATORS: tell the user we found some more packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:852
+#, fuzzy, c-format
+msgid "No extra packages required."
+msgstr "Je potrebný názov balíčka"
+
+#. TRANSLATORS: tell the user we found some packages (and deps), and then list them
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:861
+#, fuzzy, c-format
+msgid "Found %i packages to install:"
+msgstr "Žiadne nové balíčky nemusia byť nainštalované"
+
+#. TRANSLATORS: simulate mode is a testing mode where we quit before the action
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:874
+#, fuzzy, c-format
+msgid "Not installing packages in simulate mode"
+msgstr "Inštalovanie balíčkov"
+
+#. TRANSLATORS: could not install, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:899
+#, fuzzy, c-format
+msgid "Could not install packages: %s"
+msgstr "Nepodarilo sa nainštalovať balíčky: %s"
+
+#. TRANSLATORS: we are now disabling all debuginfo repos we previously enabled
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:931
+#, c-format
+msgid "Disabling sources previously enabled"
+msgstr ""
+
+#. TRANSLATORS: no debuginfo packages could be found to be installed, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:943
+#, c-format
+msgid "Could not disable the debugging sources: %s"
+msgstr ""
+
+#. TRANSLATORS: we disabled all the debugging repos that we enabled before
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:958
+#, c-format
+msgid "Disabled %i debugging sources."
+msgstr ""
+
+# XXX
+#. TRANSLATORS: couldn't open device to write
+#: ../contrib/device-rebind/pk-device-rebind.c:61
+#, fuzzy
+msgid "Failed to open file"
+msgstr "Vyhľadanie súboru zlyhalo"
+
+# XXX
+#. TRANSLATORS: could not write to the device
+#: ../contrib/device-rebind/pk-device-rebind.c:70
+#, fuzzy
+msgid "Failed to write to the file"
+msgstr "Vyhľadanie súboru zlyhalo"
+
+# XXX
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:110
+#: ../contrib/device-rebind/pk-device-rebind.c:147
+#, fuzzy
+msgid "Failed to write to device"
+msgstr "Nebolo možné uložiť na disk"
+
+#. TRANSLATORS: the device could not be found in sysfs
+#: ../contrib/device-rebind/pk-device-rebind.c:175
+#, fuzzy
+msgid "Device could not be found"
+msgstr "Balíček sa nepodarilo nájsť"
+
+# XXX
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:202
+#, fuzzy
+msgid "Failed to unregister driver"
+msgstr "Nepodarilo sa vytvoriť priečinok:"
+
+# XXX
+#. TRANSLATORS: we failed to bind the old driver
+#: ../contrib/device-rebind/pk-device-rebind.c:211
+#, fuzzy
+msgid "Failed to register driver"
+msgstr "Nepodarilo sa vytvoriť priečinok:"
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:260
+#, fuzzy
+msgid "Device path not found"
+msgstr "Priečinok nenájdený"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:268
+msgid "Incorrect device path specified"
+msgstr ""
+
+#. command line argument, simulate what would be done, but don't actually do it
+#: ../contrib/device-rebind/pk-device-rebind.c:296
+msgid "Don't actually touch the hardware, only simulate what would be done"
+msgstr ""
+
+#. TRANSLATORS: command line option: a list of files to install
+#: ../contrib/device-rebind/pk-device-rebind.c:299
+msgid "Device paths"
+msgstr ""
+
+#. TRANSLATORS: tool that gets called when the device needs reloading after installing firmware
+#: ../contrib/device-rebind/pk-device-rebind.c:314
+#, fuzzy
+msgid "PackageKit Device Reloader"
+msgstr "Servisný archív PackageKit"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:322
+#, fuzzy
+msgid "You need to specify at least one valid device path"
+msgstr "Je potrebné určiť súbor zoznamu pre vytvorenie"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:332
+msgid "This script can only be used by the root user"
+msgstr ""
+
+#. TRANSLATORS: we're going to verify the path first
+#: ../contrib/device-rebind/pk-device-rebind.c:341
+msgid "Verifying device path"
+msgstr ""
+
+# XXX
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:346
+#, fuzzy
+msgid "Failed to verify device path"
+msgstr "Vyhľadanie súboru zlyhalo"
+
+#. TRANSLATORS: we're going to try
+#: ../contrib/device-rebind/pk-device-rebind.c:360
+msgid "Attempting to rebind device"
+msgstr ""
+
+# XXX
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:365
+#, fuzzy
+msgid "Failed to rebind device"
+msgstr "Nepodarilo sa vytvoriť priečinok:"
 
 #: ../data/packagekit-catalog.xml.in.h:1
 msgid "PackageKit Catalog"
@@ -919,97 +1289,179 @@ msgstr "Zoznam balíčkov PackageKit"
 msgid "PackageKit Service Pack"
 msgstr "Servisný archív PackageKit"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:1
+#. SECURITY:
+#. - Normal users do not require admin authentication to accept new
+#. licence agreements.
+#. - Change this to 'auth_admin' for environments where users should not
+#. be given the option to make legal decisions.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:7
 msgid "Accept EULA"
 msgstr "Prijať licenčné podmienky"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:2
+#: ../policy/org.freedesktop.packagekit.policy.in.h:8
 msgid "Authentication is required to accept a EULA"
 msgstr "Na prijatie licenčných podmienok je potrebné overenie"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:3
+#: ../policy/org.freedesktop.packagekit.policy.in.h:9
 msgid ""
 "Authentication is required to cancel a task that was not started by yourself"
-msgstr "Na zrušenie úlohy, ktorá nebola naštartovaná vami, je potrebné overenie"
+msgstr ""
+"Na zrušenie úlohy, ktorá nebola naštartovaná vami, je potrebné overenie"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:4
+#: ../policy/org.freedesktop.packagekit.policy.in.h:10
 msgid "Authentication is required to change software source parameters"
 msgstr "Na zmenu parametrov softvérového zdroja je potrebné overenie"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:5
+#: ../policy/org.freedesktop.packagekit.policy.in.h:11
 msgid ""
 "Authentication is required to consider a key used for signing packages as "
 "trusted"
-msgstr "Na vyjadrenie dôvery kľúču používaného na podpisovanie balíčkov je potrebné "
+msgstr ""
+"Na vyjadrenie dôvery kľúču používaného na podpisovanie balíčkov je potrebné "
 "overenie"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:6
+#: ../policy/org.freedesktop.packagekit.policy.in.h:12
 msgid "Authentication is required to install a signed package"
 msgstr "Na inštalovanie podpísaného balíčka je potrebné overenie"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:7
+#: ../policy/org.freedesktop.packagekit.policy.in.h:13
 msgid "Authentication is required to install an untrusted package"
 msgstr "Na inštaláciu nedôveryhodného balíčka je potrebné overenie"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:8
+#: ../policy/org.freedesktop.packagekit.policy.in.h:14
 msgid "Authentication is required to refresh the system sources"
 msgstr "Na obnovenie zdrojov pre systém je potrebné overenie"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:9
+#: ../policy/org.freedesktop.packagekit.policy.in.h:15
+#, fuzzy
+msgid "Authentication is required to reload the device with a new driver"
+msgstr "Na obnovenie zdrojov pre systém je potrebné overenie"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:16
 msgid "Authentication is required to remove packages"
 msgstr "Na odstránenie balíčkov je potrebné overenie"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:10
+#: ../policy/org.freedesktop.packagekit.policy.in.h:17
 msgid "Authentication is required to rollback a transaction"
 msgstr "Na navrátenie transakcie je potrebné overenie"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:11
+#: ../policy/org.freedesktop.packagekit.policy.in.h:18
 msgid ""
 "Authentication is required to set the network proxy used for downloading "
 "packages"
-msgstr "Na nastavenie sieťového proxy pre získavanie balíčkov je potrebné overenie"
+msgstr ""
+"Na nastavenie sieťového proxy pre získavanie balíčkov je potrebné overenie"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:12
+#: ../policy/org.freedesktop.packagekit.policy.in.h:19
 msgid "Authentication is required to update packages"
 msgstr "Na aktualizáciu balíčkov je potrebné overenie"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:13
+#. SECURITY:
+#. - Normal users are allowed to cancel their own task without
+#. authentication, but a different user id needs the admin password
+#. to cancel another users task.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:25
 msgid "Cancel foreign task"
 msgstr "Zrušiť cudziu úlohu"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:14
+#. SECURITY:
+#. - Normal users require admin authentication to enable or disable
+#. software sources as this can be used to enable new updates or
+#. install different versions of software.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:31
 msgid "Change software source parameters"
 msgstr "Zmeniť parametre zdrojov softvéru"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:15
+#. SECURITY:
+#. - Normal users do not need authentication to install signed packages
+#. from signed repositories, as this cannot exploit a system.
+#. - Paranoid users (or parents!) can change this to 'auth_admin' or
+#. 'auth_admin_keep'.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:38
 msgid "Install signed package"
 msgstr "Inštalovať podpísaný balíček"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:16
+#. SECURITY:
+#. - Normal users require admin authentication to install untrusted or
+#. unrecognised packages, as allowing users to do this without a
+#. password would be a massive security hole.
+#. - This is not retained as each package should be authenticated.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:45
 msgid "Install untrusted local file"
 msgstr "Inštalovať nedôveryhodný lokálny súbor"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:17
+#. SECURITY:
+#. - Normal users do not require admin authentication to refresh the
+#. cache, as this doesn't actually install or remove software.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:50
 msgid "Refresh system sources"
 msgstr "Obnoviť zdroje pre systém"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:18
+#. SECURITY:
+#. - Normal users require admin authentication to rebind a driver
+#. so that it works after we install firmware.
+#. - This should not be set to 'yes' as unprivileged users could then
+#. try to rebind drivers in use, for instance security authentication
+#. devices.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:58
+msgid "Reload a device"
+msgstr ""
+
+#. SECURITY:
+#. - Normal users require admin authentication to remove packages as
+#. this can make the system unbootable or stop other applications from
+#. working.
+#. - Be sure to close the tool used to remove the packages after the
+#. admin authentication has been obtained, otherwise packages can still
+#. be removed. If this is not possible, change this authentication to
+#. 'auth_admin'.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:68
 msgid "Remove package"
 msgstr "Odstrániť balíček"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:19
+#. SECURITY:
+#. - Normal users require admin authentication to rollback system state
+#. as this will change a large number of packages, and could expose the
+#. system to previously patched security vulnerabilities.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:74
 msgid "Rollback to a previous transaction"
 msgstr "Navrátiť sa k stavu pred transakciou"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:20
+#. SECURITY:
+#. - Normal users do not require admin authentication to set the proxy
+#. used for downloading packages.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:79
 msgid "Set network proxy"
 msgstr "Nastaviť sieťové proxy"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:21
+#. SECURITY:
+#. - Normal users require admin authentication to add signing keys.
+#. - This implies adding an explicit trust, and should not be granted
+#. without a secure authentication.
+#. - This is not kept as each package should be authenticated.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:86
 msgid "Trust a key used for signing packages"
 msgstr "Dôverovať kľúču pre podpisovanie balíčkov"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:22
+#. SECURITY:
+#. - Normal users do not require admin authentication to update the
+#. system as the packages will be signed, and the action is required
+#. to update the system when unattended.
+#. - Changing this to anything other than 'yes' will break unattended
+#. updates.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:94
 msgid "Update packages"
 msgstr "Aktualizovať balíčky"
 
@@ -1038,61 +1490,99 @@ msgstr ""
 "priečinku:"
 
 #. TRANSLATORS: a backend is the system package tool, e.g. yum, apt
-#: ../src/pk-main.c:193
+#: ../src/pk-main.c:205
 msgid "Packaging backend to use, e.g. dummy"
 msgstr "Rozhranie balíčkoveho systému ktoré sa má použiť, napríklad \"dummy\""
 
 #. TRANSLATORS: if we should run in the background
-#: ../src/pk-main.c:196
+#: ../src/pk-main.c:208
 msgid "Daemonize and detach from the terminal"
 msgstr "Uvoľniť terminál a presunúť sa na pozadie"
 
 #. TRANSLATORS: if we should not monitor how long we are inactive for
-#: ../src/pk-main.c:202
+#: ../src/pk-main.c:214
 msgid "Disable the idle timer"
 msgstr "Vypnúť počítadlo času nečinnosti"
 
 #. TRANSLATORS: show version
-#: ../src/pk-main.c:205
+#: ../src/pk-main.c:217
 msgid "Show version and exit"
 msgstr "Zobraziť verziu a skončiť"
 
 #. TRANSLATORS: exit after we've started up, used for user profiling
-#: ../src/pk-main.c:208
+#: ../src/pk-main.c:220
 msgid "Exit after a small delay"
 msgstr "Skončiť po krátkej prestávke"
 
 # XXX
 #. TRANSLATORS: exit straight away, used for automatic profiling
-#: ../src/pk-main.c:211
+#: ../src/pk-main.c:223
 msgid "Exit after the engine has loaded"
 msgstr "Skončiť po načítaní enginu"
 
 #. TRANSLATORS: describing the service that is running
-#: ../src/pk-main.c:226
+#: ../src/pk-main.c:238
 msgid "PackageKit service"
 msgstr "Služba PackageKit"
 
 #. TRANSLATORS: fatal error, dbus is not running
-#: ../src/pk-main.c:263
+#: ../src/pk-main.c:275
 msgid "Cannot connect to the system bus"
 msgstr "Pokus o pripojenie k systémovej zbernici neuspel"
 
-#. TRANSLATORS: cannot register on system bus, unknown reason
-#: ../src/pk-main.c:313
-#, c-format
+#. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error follows
+#: ../src/pk-main.c:334
 msgid "Error trying to start:"
 msgstr "Chyba pri pokuse o spustenie:"
 
+#: ../src/pk-polkit-action-lookup.c:147
+#, fuzzy
+msgid "To install debugging packages, extra sources need to be enabled"
+msgstr "Žiadne nové balíčky nemusia byť nainštalované"
+
+#. TRANSLATORS: is not GPG signed
+#: ../src/pk-polkit-action-lookup.c:168 ../src/pk-polkit-action-lookup.c:187
+msgid "The software is not from a trusted source."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:173
+msgid "Do not update this package unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:174
+msgid "Do not update these packages unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:192
+msgid "Do not install this package unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:193
+msgid "Do not install these packages unless you are sure it is safe to do so."
+msgstr ""
+
+#. TRANSLATORS: warn the user that all bets are off
+#: ../src/pk-polkit-action-lookup.c:199
+msgid "Malicious software can damage your computer or cause other harm."
+msgstr ""
+
+#. TRANSLATORS: too many packages to list each one
+#: ../src/pk-polkit-action-lookup.c:274
+#, fuzzy
+msgid "Many packages"
+msgstr "Aktualizovať balíčky"
+
+#. TRANSLATORS: if the transaction is forced to install only trusted packages
+#: ../src/pk-polkit-action-lookup.c:334
+msgid "Only trusted"
+msgstr ""
+
 #~ msgid "You need to specify a search type, e.g. name"
 #~ msgstr "Je potrebné určiť typ vyhľadávania, napríklad názov"
 
 #~ msgid "You need to specify a search term"
 #~ msgstr "Je potrebné určiť kľúčové slová na vyhľadávanie"
 
-#~ msgid "You need to specify a package or file to install"
-#~ msgstr "Je potrebné určiť balíček alebo súbor na inštaláciu"
-
 #~ msgid "You need to specify a package to remove"
 #~ msgstr "Je potrebné určit balíček na odstránenie"
 
@@ -1114,9 +1604,6 @@ msgstr "Chyba pri pokuse o spustenie:"
 #~ msgid "You need to specify a package to find the files for"
 #~ msgstr "Je potrebné určiť balíček, zoznam súborov ktorého sa má získať"
 
-#~ msgid "You need to specify a list file to create"
-#~ msgstr "Je potrebné určiť súbor zoznamu pre vytvorenie"
-
 #~ msgid "You need to specify a list file to open"
 #~ msgstr "Je potrebné určiť súbor zoznamu pre otvorenie"
 
@@ -1153,9 +1640,6 @@ msgstr "Chyba pri pokuse o spustenie:"
 #~ msgid "Could not find details for"
 #~ msgstr "Nebolo možné získať detaily pre"
 
-#~ msgid "Could not find a package match"
-#~ msgstr "Nebolo močné nájsť zodpovedajúci balíček"
-
 #~ msgid "Could not set database readonly"
 #~ msgstr "Pokus o nastavenie databázy do režimu len pre čítanie neuspel"
 
diff --git a/po/sr.po b/po/sr.po
index 1ec7421..aa85ff0 100644
--- a/po/sr.po
+++ b/po/sr.po
@@ -10,7 +10,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-05-03 19:22+0000\n"
+"POT-Creation-Date: 2009-08-24 11:06+0100\n"
 "PO-Revision-Date: 2009-05-03 22:29+0100\n"
 "Last-Translator: Miloš Komarčević <kmilos at gmail.com>\n"
 "Language-Team: Serbian <fedora-trans-sr at redhat.com>\n"
@@ -21,230 +21,266 @@ msgstr ""
 "%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
 
 #. TRANSLATORS: this is an atomic transaction
-#: ../client/pk-console.c:234
+#: ../client/pk-console.c:235
 msgid "Transaction"
 msgstr "Трансакција"
 
 #. TRANSLATORS: this is the time the transaction was started in system timezone
-#: ../client/pk-console.c:236
+#: ../client/pk-console.c:237
 msgid "System time"
 msgstr "Системско време"
 
 #. TRANSLATORS: this is if the transaction succeeded or not
-#: ../client/pk-console.c:238
+#: ../client/pk-console.c:239
 msgid "Succeeded"
 msgstr "Успела"
 
 #. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:238 ../client/pk-console.c:405
+#: ../client/pk-console.c:239 ../client/pk-console.c:406
 msgid "True"
 msgstr "Тачно"
 
-#: ../client/pk-console.c:238 ../client/pk-console.c:405
+#: ../client/pk-console.c:239 ../client/pk-console.c:406
 msgid "False"
 msgstr "Нетачно"
 
 #. TRANSLATORS: this is the transactions role, e.g. "update-system"
-#: ../client/pk-console.c:240
+#. TRANSLATORS: the trasaction role, e.g. update-system
+#: ../client/pk-console.c:241 ../src/pk-polkit-action-lookup.c:327
 msgid "Role"
 msgstr "Радња"
 
 #. TRANSLATORS: this is The duration of the transaction
-#: ../client/pk-console.c:245
+#: ../client/pk-console.c:246
 msgid "Duration"
 msgstr "Трајање"
 
-#: ../client/pk-console.c:245
+#: ../client/pk-console.c:246
 msgid "(seconds)"
 msgstr "(секунди)"
 
 #. TRANSLATORS: this is The command line used to do the action
-#: ../client/pk-console.c:249
+#. TRANSLATORS: the command line of the thing that wants the authentication
+#: ../client/pk-console.c:250 ../src/pk-polkit-action-lookup.c:341
 msgid "Command line"
 msgstr "Командна линија"
 
 #. TRANSLATORS: this is the user ID of the user that started the action
-#: ../client/pk-console.c:251
+#: ../client/pk-console.c:252
 msgid "User ID"
 msgstr "Кориснички ИБ"
 
 #. TRANSLATORS: this is the username, e.g. hughsie
-#: ../client/pk-console.c:258
+#: ../client/pk-console.c:259
 msgid "Username"
 msgstr "Корисничко име"
 
 #. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
-#: ../client/pk-console.c:262
+#: ../client/pk-console.c:263
 msgid "Real name"
 msgstr "Стварно име"
 
-#: ../client/pk-console.c:270
+#: ../client/pk-console.c:271
 msgid "Affected packages:"
 msgstr "Обухваћени пакети:"
 
-#: ../client/pk-console.c:272
+#: ../client/pk-console.c:273
 msgid "Affected packages: None"
 msgstr "Обухваћени пакети: ни један"
 
 #. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:297
+#: ../client/pk-console.c:298
 msgid "Distribution"
 msgstr "Дистрибуција"
 
 #. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:299
+#: ../client/pk-console.c:300
 msgid "Type"
 msgstr "Врста"
 
 #. TRANSLATORS: this is any summary text describing the upgrade
 #. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:301 ../client/pk-console.c:324
+#: ../client/pk-console.c:302 ../client/pk-console.c:325
 msgid "Summary"
 msgstr "Сажетак"
 
 #. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:313
+#: ../client/pk-console.c:314
 msgid "Category"
 msgstr "Категорија"
 
 #. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:315
+#: ../client/pk-console.c:316
 msgid "ID"
 msgstr "Идентификатор"
 
 #. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:318
+#: ../client/pk-console.c:319
 msgid "Parent"
 msgstr "Родитељ"
 
 #. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:321
+#: ../client/pk-console.c:322
 msgid "Name"
 msgstr "Назив"
 
 #. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:327
+#: ../client/pk-console.c:328
 msgid "Icon"
 msgstr "Икона"
 
 #. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:342
+#: ../client/pk-console.c:343
 msgid "Details about the update:"
 msgstr "Више о надградњи:"
 
 #. TRANSLATORS: details about the update, package name and version
-#: ../client/pk-console.c:344
+#. TRANSLATORS: title, the names of the packages that the method is processing
+#: ../client/pk-console.c:345 ../src/pk-polkit-action-lookup.c:352
+#, fuzzy
 msgid "Package"
-msgstr "Пакет"
+msgid_plural "Packages"
+msgstr[0] "Пакет"
+msgstr[1] "Пакет"
+msgstr[2] "Пакет"
+msgstr[3] "Пакет"
 
 #. TRANSLATORS: details about the update, any packages that this update updates
-#: ../client/pk-console.c:347
+#: ../client/pk-console.c:348
 msgid "Updates"
 msgstr "Ажурира"
 
 #. TRANSLATORS: details about the update, any packages that this update obsoletes
-#: ../client/pk-console.c:351
+#: ../client/pk-console.c:352
 msgid "Obsoletes"
 msgstr "Превазилази"
 
 #. TRANSLATORS: details about the update, the vendor URLs
-#: ../client/pk-console.c:355
+#: ../client/pk-console.c:356
 msgid "Vendor"
 msgstr "Издавач"
 
 #. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:359
+#: ../client/pk-console.c:360
 msgid "Bugzilla"
 msgstr "Bugzilla"
 
 #. TRANSLATORS: details about the update, the CVE URLs
-#: ../client/pk-console.c:363
+#: ../client/pk-console.c:364
 msgid "CVE"
 msgstr "CVE"
 
 #. TRANSLATORS: details about the update, if the package requires a restart
-#: ../client/pk-console.c:367
+#: ../client/pk-console.c:368
 msgid "Restart"
 msgstr "Поновно покретање"
 
 #. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:371
+#: ../client/pk-console.c:372
 msgid "Update text"
 msgstr "Опис ажурирања"
 
 #. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:375
+#: ../client/pk-console.c:376
 msgid "Changes"
 msgstr "Промене"
 
 #. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:379
+#: ../client/pk-console.c:380
 msgid "State"
 msgstr "Стање"
 
 #. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:384
+#: ../client/pk-console.c:385
 msgid "Issued"
 msgstr "Издато"
 
 #. TRANSLATORS: details about the update, date the update was updated
-#: ../client/pk-console.c:389
+#: ../client/pk-console.c:390
 msgid "Updated"
 msgstr "Датум ажурирања"
 
-#: ../client/pk-console.c:476 ../client/pk-console.c:478
+#: ../client/pk-console.c:477 ../client/pk-console.c:479
 msgid "Percentage"
 msgstr "Проценат"
 
-#: ../client/pk-console.c:478
+#: ../client/pk-console.c:479
 msgid "Unknown"
 msgstr "Непознато"
 
 #. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:529
+#: ../client/pk-console.c:521
 msgid "System restart required by:"
 msgstr "Поновно покретање система захтева пакет:"
 
 #. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:532
+#: ../client/pk-console.c:524
 msgid "Session restart required:"
 msgstr "Неопходно је поновно покретање сесије:"
 
+#. TRANSLATORS: a package requires the system to be restarted due to a security update
+#: ../client/pk-console.c:527
+#, fuzzy
+msgid "System restart (security) required by:"
+msgstr "Поновно покретање система захтева пакет:"
+
+#. TRANSLATORS: a package requires the session to be restarted due to a security update
+#: ../client/pk-console.c:530
+#, fuzzy
+msgid "Session restart (security) required:"
+msgstr "Неопходно је поновно покретање сесије:"
+
 #. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:535
+#: ../client/pk-console.c:533
 msgid "Application restart required by:"
 msgstr "Поновно покретање програма захтева пакет:"
 
-#. TRANSLATORS: a package needs to restart they system
-#: ../client/pk-console.c:572
+#. TRANSLATORS: a package needs to restart their system
+#: ../client/pk-console.c:588
 msgid "Please restart the computer to complete the update."
 msgstr "Неопходно је поновно покретање система ради завршетка ажурирања."
 
 #. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:575
+#: ../client/pk-console.c:591
 msgid "Please logout and login to complete the update."
 msgstr "Неопходно је одјављивање и поновна пријава ради завршетка ажурирања."
 
 #. TRANSLATORS: a package needs to restart the application
-#: ../client/pk-console.c:578
+#: ../client/pk-console.c:594
 msgid "Please restart the application as it is being used."
 msgstr "Неопходно је поновно покретање програма пошто је у употреби."
 
+#. TRANSLATORS: a package needs to restart their system (due to security)
+#: ../client/pk-console.c:597
+#, fuzzy
+msgid ""
+"Please restart the computer to complete the update as important security "
+"updates have been installed."
+msgstr "Неопходно је поновно покретање система ради завршетка ажурирања."
+
+#. TRANSLATORS: a package needs to restart the session (due to security)
+#: ../client/pk-console.c:600
+#, fuzzy
+msgid ""
+"Please logout and login to complete the update as important security updates "
+"have been installed."
+msgstr "Неопходно је одјављивање и поновна пријава ради завршетка ажурирања."
+
 #. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:691
+#: ../client/pk-console.c:727
 #, c-format
 msgid "The package %s is already installed"
 msgstr "Пакет %s је већ инсталиран"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:699
+#: ../client/pk-console.c:735
 #, c-format
 msgid "The package %s could not be installed: %s"
 msgstr "Пакет %s се није могао инсталирати: %s"
 
 #. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
-#: ../client/pk-console.c:724 ../client/pk-console.c:751
-#: ../client/pk-console.c:847 ../client/pk-console.c:964
+#: ../client/pk-console.c:760 ../client/pk-console.c:783
+#: ../client/pk-console.c:879 ../client/pk-console.c:996
 #: ../client/pk-tools-common.c:62 ../client/pk-tools-common.c:81
 #: ../client/pk-tools-common.c:89
 #, c-format
@@ -252,400 +288,404 @@ msgid "Internal error: %s"
 msgstr "Унутрашња грешка: %s"
 
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:732 ../client/pk-console.c:1360
+#: ../client/pk-console.c:768 ../client/pk-console.c:1392
 #, c-format
 msgid "This tool could not install the packages: %s"
 msgstr "Ова алатка није могла инсталирати пакете: %s"
 
 #. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:759
+#: ../client/pk-console.c:791
 #, c-format
 msgid "This tool could not install the files: %s"
 msgstr "Ова алатка није могла инсталирати датотеке: %s"
 
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:815
+#: ../client/pk-console.c:847
 #, c-format
 msgid "This tool could not remove %s: %s"
 msgstr "Ова алатка није могла уклонити %s: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:838 ../client/pk-console.c:876
-#: ../client/pk-console.c:909
+#: ../client/pk-console.c:870 ../client/pk-console.c:908
+#: ../client/pk-console.c:941
 #, c-format
 msgid "This tool could not remove the packages: %s"
 msgstr "Ова алатка није могла уклонити пакете: %s"
 
 #. TRANSLATORS: When removing, we might have to remove other dependencies
-#: ../client/pk-console.c:888
+#: ../client/pk-console.c:920
 msgid "The following packages have to be removed:"
 msgstr "Следећи пакети ће бити уклоњени:"
 
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:895
+#: ../client/pk-console.c:927
 msgid "Proceed removing additional packages?"
 msgstr "Да ли је у реду да уклоним ове додатне пакете?"
 
 #. TRANSLATORS: We did not remove any packages
-#: ../client/pk-console.c:900
+#: ../client/pk-console.c:932
 msgid "The package removal was canceled!"
 msgstr "Избацивање пакета је прекинуто!"
 
 #. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:941
+#: ../client/pk-console.c:973
 #, c-format
 msgid "This tool could not download the package %s as it could not be found"
 msgstr "Ова алатка није могла преузети пакет %s јер га није могла пронаћи"
 
 #. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:972
+#: ../client/pk-console.c:1004
 #, c-format
 msgid "This tool could not download the packages: %s"
 msgstr "Ова алатка није могла преузети пакете: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:999 ../client/pk-console.c:1008
+#: ../client/pk-console.c:1031 ../client/pk-console.c:1040
 #, c-format
 msgid "This tool could not update %s: %s"
 msgstr "Ова алатка није могла ажурирати %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1030 ../client/pk-console.c:1038
+#: ../client/pk-console.c:1062 ../client/pk-console.c:1070
 #, c-format
 msgid "This tool could not get the requirements for %s: %s"
 msgstr "Ова алатка није могла средити све услове за %s: %s"
 
 #. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:1060 ../client/pk-console.c:1068
+#: ../client/pk-console.c:1092 ../client/pk-console.c:1100
 #, c-format
 msgid "This tool could not get the dependencies for %s: %s"
 msgstr "Ова алатка није могла добавити међузависности за %s: %s"
 
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:1090 ../client/pk-console.c:1098
+#: ../client/pk-console.c:1122 ../client/pk-console.c:1130
 #, c-format
 msgid "This tool could not get package details for %s: %s"
 msgstr "Ова алатка није могла добавити детаље пакета за %s: %s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1120
+#: ../client/pk-console.c:1152
 #, c-format
 msgid "This tool could not find the files for %s: %s"
 msgstr "Ова алатка није могла наћи датотеке за %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1128
+#: ../client/pk-console.c:1160
 #, c-format
 msgid "This tool could not get the file list for %s: %s"
 msgstr "Ова алатка није могла добавити списак датотека за %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of packages. The filename follows
-#: ../client/pk-console.c:1150
+#: ../client/pk-console.c:1182
 #, c-format
 msgid "File already exists: %s"
 msgstr "Датотека већ постоји: %s"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1155 ../client/pk-console.c:1211
-#: ../client/pk-console.c:1286
+#: ../client/pk-console.c:1187 ../client/pk-console.c:1243
+#: ../client/pk-console.c:1318
 msgid "Getting package list"
 msgstr "Добављам списак пакета"
 
 #. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1161 ../client/pk-console.c:1217
-#: ../client/pk-console.c:1292
+#: ../client/pk-console.c:1193 ../client/pk-console.c:1249
+#: ../client/pk-console.c:1324
 #, c-format
 msgid "This tool could not get package list: %s"
 msgstr "Ова алатка није могла добавити списак пакета: %s"
 
 #. TRANSLATORS: There was an error saving the list
-#: ../client/pk-console.c:1172
+#: ../client/pk-console.c:1204
 #, c-format
 msgid "Failed to save to disk"
 msgstr "Неуспешно записивање на диск"
 
 #. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1206 ../client/pk-console.c:1281
+#: ../client/pk-console.c:1238 ../client/pk-console.c:1313
 #, c-format
 msgid "File does not exist: %s"
 msgstr "Датотека не постоји: %s"
 
 #. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1238
+#: ../client/pk-console.c:1270
 msgid "Packages to add"
 msgstr "Пакети који ће се додати"
 
 #. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1246
+#: ../client/pk-console.c:1278
 msgid "Packages to remove"
 msgstr "Пакети који ће се уклонити"
 
 #. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1314
+#: ../client/pk-console.c:1346
 #, c-format
 msgid "No new packages need to be installed"
 msgstr "Нема нових пакета за инсталацију"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1320
+#: ../client/pk-console.c:1352
 msgid "To install"
 msgstr "За инсталацију"
 
 #. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1332
+#: ../client/pk-console.c:1364
 msgid "Searching for package: "
 msgstr "Тражим пакет: "
 
 #. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1336
+#: ../client/pk-console.c:1368
 msgid "not found."
 msgstr "није нађен."
 
 #. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1347
+#: ../client/pk-console.c:1379
 #, c-format
 msgid "No packages can be found to install"
 msgstr "Није пронађен ниједан пакет за инсталацију"
 
 #. TRANSLATORS: installing new packages from package list
-#: ../client/pk-console.c:1353
+#. TRANSLATORS: we are now installing the debuginfo packages we found earlier
+#: ../client/pk-console.c:1385
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:886
+#, c-format
 msgid "Installing packages"
 msgstr "Инсталирам пакете"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1389
+#: ../client/pk-console.c:1421
 #, c-format
 msgid "This tool could not find the update details for %s: %s"
 msgstr "Ова алатка није могла наћи детаље ажурирања за %s: %s"
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1397
+#: ../client/pk-console.c:1429
 #, c-format
 msgid "This tool could not get the update details for %s: %s"
 msgstr "Ова алатка није могла добавити детаље ажурирања за %s: %s"
 
 #. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
-#: ../client/pk-console.c:1443
+#: ../client/pk-console.c:1460
 msgid "Error:"
 msgstr "Грешка:"
 
 #. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1457
+#: ../client/pk-console.c:1474
 msgid "Package description"
 msgstr "Опис пакета"
 
 #. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
-#: ../client/pk-console.c:1473
+#: ../client/pk-console.c:1490
 msgid "Message:"
 msgstr "Порука:"
 
 #. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1501
+#: ../client/pk-console.c:1518
 msgid "Package files"
 msgstr "Списак датотека"
 
 #. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1509
+#: ../client/pk-console.c:1526
 msgid "No files"
 msgstr "Нема датотека"
 
 #. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1532
+#: ../client/pk-console.c:1549
 msgid "Repository signature required"
 msgstr "Потпис ризнице је обавезан"
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1542
+#: ../client/pk-console.c:1559
 msgid "Do you accept this signature?"
 msgstr "Прихватате ли овај потпис?"
 
 #. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1546
+#: ../client/pk-console.c:1563
 msgid "The signature was not accepted."
 msgstr "Овај потпис није прихваћен."
 
 #. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1580
+#: ../client/pk-console.c:1597
 msgid "End user license agreement required"
 msgstr "Лиценци договор са крајњим корисником је обавезан"
 
 #. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1587
+#: ../client/pk-console.c:1604
 msgid "Do you agree to this license?"
 msgstr "Слажете ли се са овом лиценцом?"
 
 #. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1591
+#: ../client/pk-console.c:1608
 msgid "The license was refused."
 msgstr "Лиценца је одбијена."
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1620
+#: ../client/pk-console.c:1637
 msgid "The daemon crashed mid-transaction!"
 msgstr "Услужни програм се изненада прекинуо!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1673
+#: ../client/pk-console.c:1690
 msgid "PackageKit Console Interface"
 msgstr "Текстуално сучеље програма ПакетКит"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1675
+#: ../client/pk-console.c:1692
 msgid "Subcommands:"
 msgstr "Наредбе:"
 
 #. TRANSLATORS: command line argument, if we should show debugging information
 #. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:1767 ../client/pk-generate-pack.c:185
-#: ../client/pk-monitor.c:125
-#: ../contrib/command-not-found/pk-command-not-found.c:518
-#: ../src/pk-main.c:201
+#: ../client/pk-console.c:1785 ../client/pk-generate-pack.c:185
+#: ../client/pk-monitor.c:128
+#: ../contrib/command-not-found/pk-command-not-found.c:616
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:550
+#: ../contrib/device-rebind/pk-device-rebind.c:293 ../src/pk-main.c:211
 msgid "Show extra debugging information"
 msgstr "Прикажи додатне податке за откривање грешака"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1770 ../client/pk-monitor.c:127
+#: ../client/pk-console.c:1788 ../client/pk-monitor.c:130
 msgid "Show the program version and exit"
 msgstr "Прикажи верзију програма и заврши рад"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1773
+#: ../client/pk-console.c:1791
 msgid "Set the filter, e.g. installed"
 msgstr "Намести филтер, нпр. инсталирани"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1776
+#: ../client/pk-console.c:1794
 msgid "Exit without waiting for actions to complete"
 msgstr "Заврши рад без чекања да се послови заврше"
 
 #. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:1803
+#: ../client/pk-console.c:1821
 msgid "This tool could not connect to system DBUS."
 msgstr "Не могу да се повежем на системску комуникациону магистралу (DBUS)."
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1894
+#: ../client/pk-console.c:1911
 msgid "The filter specified was invalid"
 msgstr "Наведени филтер није исправан"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1912
+#: ../client/pk-console.c:1930
 msgid "A search type is required, e.g. name"
 msgstr "Морате навести врсту претраге, нпр. по имену"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1918 ../client/pk-console.c:1926
-#: ../client/pk-console.c:1934 ../client/pk-console.c:1942
+#: ../client/pk-console.c:1937 ../client/pk-console.c:1946
+#: ../client/pk-console.c:1955 ../client/pk-console.c:1964
 msgid "A search term is required"
 msgstr "Морате навести термин за претрагу"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1948
+#: ../client/pk-console.c:1971
 msgid "Invalid search type"
 msgstr "Неисправна врста претраге"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1954
+#: ../client/pk-console.c:1977
 msgid "A package name or filename to install is required"
 msgstr "Морате навести име пакета или име датотеке за инсталацију"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1962
+#: ../client/pk-console.c:1986
 msgid "A type, key_id and package_id are required"
 msgstr "Морате навести врсту, ИБ кључа и ИБ пакета (key_id и package_id)"
 
 #. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:1970
+#: ../client/pk-console.c:1995
 msgid "A package name to remove is required"
 msgstr "Морате навести назив пакета за уклањање"
 
 #. TRANSLATORS: the user did not specify anything about what to download or where
-#: ../client/pk-console.c:1977
-msgid ""
-"A destination directory and then the package names to download are required"
+#: ../client/pk-console.c:2003
+#, fuzzy
+msgid "A destination directory and the package names to download are required"
 msgstr "Морате навести одредишни директоријум па онда пакете за преузимање"
 
 #. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:1983
+#: ../client/pk-console.c:2010
 msgid "Directory not found"
 msgstr "Директоријум није нађен"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1990
+#: ../client/pk-console.c:2018
 msgid "A licence identifier (eula-id) is required"
 msgstr "Морете навести идентификатор лиценце (eula-id)"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1999
+#: ../client/pk-console.c:2028
 msgid "A transaction identifier (tid) is required"
 msgstr "Морате навести идентификатор трансакције (tid)"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:2015
+#: ../client/pk-console.c:2045
 msgid "A package name to resolve is required"
 msgstr "Морате навести име пакета за разрешавање"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:2023 ../client/pk-console.c:2031
+#: ../client/pk-console.c:2054 ../client/pk-console.c:2063
 msgid "A repository name is required"
 msgstr "Морате навести име ризнице"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2039
+#: ../client/pk-console.c:2072
 msgid "A repo name, parameter and value are required"
 msgstr "Морате навести име, параметар и вредност ризнице"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:2052
+#: ../client/pk-console.c:2086
 msgid "An action, e.g. 'update-system' is required"
 msgstr "Морате навести радњу, нпр. „update-system“ (ажурирање система)"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:2058
+#: ../client/pk-console.c:2093
 msgid "A correct role is required"
 msgstr "Морате навести важећу радњу"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2064
+#: ../client/pk-console.c:2100
 msgid "Failed to get the time since this action was last completed"
 msgstr "Датум последњег извршавања ове радње није пронађен"
 
 #. TRANSLATORS: The user did not provide a package name
 #. TRANSLATORS: This is when the user fails to supply the package name
-#: ../client/pk-console.c:2073 ../client/pk-console.c:2084
-#: ../client/pk-console.c:2092 ../client/pk-console.c:2108
-#: ../client/pk-console.c:2116 ../client/pk-generate-pack.c:241
+#: ../client/pk-console.c:2110 ../client/pk-console.c:2122
+#: ../client/pk-console.c:2131 ../client/pk-console.c:2149
+#: ../client/pk-console.c:2158 ../client/pk-generate-pack.c:241
 msgid "A package name is required"
 msgstr "Морате навести име пакета"
 
 #. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:2100
+#: ../client/pk-console.c:2140
 msgid "A package provide string is required"
 msgstr "Морате навести „provide“ низ (шта пакет пружа)"
 
 #. TRANSLATORS: The user didn't specify a filename to create as a list
-#: ../client/pk-console.c:2124
+#: ../client/pk-console.c:2167
 msgid "A list file name to create is required"
 msgstr "Морате навести име датотеке списка која ће се направити"
 
 #. TRANSLATORS: The user didn't specify a filename to open as a list
-#: ../client/pk-console.c:2133 ../client/pk-console.c:2142
+#: ../client/pk-console.c:2177 ../client/pk-console.c:2187
 msgid "A list file to open is required"
 msgstr "Морате навести датотеку списка за отварање"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2195
+#: ../client/pk-console.c:2241
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "Опција „%s“ није подржана"
 
 #. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2208
+#: ../client/pk-console.c:2254
 msgid "Incorrect privileges for this operation"
 msgstr "Неисправна овлашћења за ову операцију"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2211
+#: ../client/pk-console.c:2257
 msgid "Command failed"
 msgstr "Наредба није успела"
 
@@ -708,64 +748,75 @@ msgstr "Морате навести име излазне датотеке илÐ
 msgid "The package manager cannot perform this type of operation."
 msgstr "Управник пакета не може извршити ову врсту радње."
 
+#. TRANSLATORS: This is when the distro didn't include libarchive support into PK
+#: ../client/pk-generate-pack.c:280
+msgid ""
+"Service packs cannot be created as PackageKit was not built with libarchive "
+"support."
+msgstr ""
+
 #. TRANSLATORS: the user specified an absolute path, but didn't get the extension correct
-#: ../client/pk-generate-pack.c:285
+#: ../client/pk-generate-pack.c:291
 msgid "If specifying a file, the service pack name must end with"
 msgstr "Ако наводите датотеку, назив сервисног пакета се мора завршити са"
 
 #. TRANSLATORS: This is when file already exists
-#: ../client/pk-generate-pack.c:301
+#: ../client/pk-generate-pack.c:307
 msgid "A pack with the same name already exists, do you want to overwrite it?"
 msgstr "Скуп са истим називом већ постоји, да ли га желите преснимити?"
 
 #. TRANSLATORS: This is when the pack was not overwritten
-#: ../client/pk-generate-pack.c:304
+#: ../client/pk-generate-pack.c:310
 msgid "The pack was not overwritten."
 msgstr "Скуп није преснимљен."
 
 #. TRANSLATORS: This is when the temporary directory cannot be created, the directory name follows
-#: ../client/pk-generate-pack.c:317
+#: ../client/pk-generate-pack.c:323
 msgid "Failed to create directory:"
 msgstr "Неуспело прављење директоријума:"
 
 #. TRANSLATORS: This is when the list of packages from the remote computer cannot be opened
-#: ../client/pk-generate-pack.c:327
+#: ../client/pk-generate-pack.c:333
 msgid "Failed to open package list."
 msgstr "Неуспешно отварање списка пакета."
 
 #. TRANSLATORS: The package name is being matched up to available packages
-#: ../client/pk-generate-pack.c:338
+#: ../client/pk-generate-pack.c:344
 msgid "Finding package name."
 msgstr "Тражење имена пакета."
 
 #. TRANSLATORS: This is when the package cannot be found in any software source. The detailed error follows
-#: ../client/pk-generate-pack.c:342
+#: ../client/pk-generate-pack.c:348
 #, c-format
 msgid "Failed to find package '%s': %s"
 msgstr "Нисам могао да пронађем пакет „%s“: %s"
 
 #. TRANSLATORS: This is telling the user we are in the process of making the pack
-#: ../client/pk-generate-pack.c:359
+#: ../client/pk-generate-pack.c:365
 msgid "Creating service pack..."
 msgstr "Правим сервисну групу..."
 
 #. TRANSLATORS: we succeeded in making the file
-#: ../client/pk-generate-pack.c:366
+#: ../client/pk-generate-pack.c:372
 #, c-format
 msgid "Service pack created '%s'"
 msgstr "Сервисна група је направљена „%s“"
 
 #. TRANSLATORS: we failed to make te file
-#: ../client/pk-generate-pack.c:371
+#: ../client/pk-generate-pack.c:377
 #, c-format
 msgid "Failed to create '%s': %s"
 msgstr "Неуспело прављење „%s“: %s"
 
 #. TRANSLATORS: this is a program that monitors PackageKit
-#: ../client/pk-monitor.c:143
+#: ../client/pk-monitor.c:146
 msgid "PackageKit Monitor"
 msgstr "ПакетКит редар"
 
+#: ../client/pk-monitor.c:183
+msgid "Cannot show the list of transactions"
+msgstr ""
+
 #. TRANSLATORS: The package was not found in any software sources
 #: ../client/pk-tools-common.c:118
 #, c-format
@@ -787,128 +838,434 @@ msgstr "Изаберите жељени пакет: "
 msgid "Please enter a number from 1 to %i: "
 msgstr "Унесите број између 1 и %i: "
 
+#. TRANSLATORS: when we are getting data from the daemon
+#: ../contrib/browser-plugin/pk-plugin-install.c:466
+msgid "Getting package information..."
+msgstr "Добављам податке о пакету...."
+
+#. TRANSLATORS: run an applicaiton
+#: ../contrib/browser-plugin/pk-plugin-install.c:472
+#, c-format
+msgid "Run %s"
+msgstr "Покрени %s"
+
+#. TRANSLATORS: show the installed version of a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:478
+msgid "Installed version"
+msgstr "Инсталирана верзија"
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:486
+#, c-format
+msgid "Run version %s now"
+msgstr "Покрени верзију %s сада"
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:492
+msgid "Run now"
+msgstr "Покрени сада"
+
+#. TRANSLATORS: update to a new version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:498
+#, c-format
+msgid "Update to version %s"
+msgstr "Ажурирај на верзију %s"
+
+#. TRANSLATORS: To install a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:504
+#, c-format
+msgid "Install %s now"
+msgstr "Инсталирај %s сада"
+
+#. TRANSLATORS: the version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:507
+msgid "Version"
+msgstr "Верзија"
+
+#. TRANSLATORS: noting found, so can't install
+#: ../contrib/browser-plugin/pk-plugin-install.c:512
+msgid "No packages found for your system"
+msgstr "Није пронађен ниједан пакет за ваш систем"
+
+#. TRANSLATORS: package is being installed
+#: ../contrib/browser-plugin/pk-plugin-install.c:517
+msgid "Installing..."
+msgstr "Инсталирам..."
+
+#. TRANSLATORS: downloading repo data so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:349
+msgid "Downloading details about the software sources."
+msgstr ""
+
+#. TRANSLATORS: downloading file lists so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:353
+msgid "Downloading filelists (this may take some time to complete)."
+msgstr ""
+
+#. TRANSLATORS: waiting for native lock
+#: ../contrib/command-not-found/pk-command-not-found.c:357
+#, fuzzy
+msgid "Waiting for package manager lock."
+msgstr "Тражење имена пакета."
+
+#. TRANSLATORS: loading package cache so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:361
+#, fuzzy
+msgid "Loading list of packages."
+msgstr "Преузимање пакета"
+
 #. TRANSLATORS: we failed to find the package, this shouldn't happen
-#: ../contrib/command-not-found/pk-command-not-found.c:369
+#: ../contrib/command-not-found/pk-command-not-found.c:420
 msgid "Failed to search for file"
 msgstr "Датотека није пронађена"
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:493
+#: ../contrib/command-not-found/pk-command-not-found.c:557
 msgid "Failed to launch:"
 msgstr "Неуспешно покретање:"
 
 #. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/command-not-found/pk-command-not-found.c:534
+#: ../contrib/command-not-found/pk-command-not-found.c:632
 msgid "PackageKit Command Not Found"
 msgstr "ПакетКит наредба није нађена"
 
 #. TRANSLATORS: the prefix of all the output telling the user why it's not executing
-#: ../contrib/command-not-found/pk-command-not-found.c:557
+#: ../contrib/command-not-found/pk-command-not-found.c:658
 msgid "Command not found."
 msgstr "Наредба није нађена."
 
 #. TRANSLATORS: tell the user what we think the command is
-#: ../contrib/command-not-found/pk-command-not-found.c:564
+#: ../contrib/command-not-found/pk-command-not-found.c:665
 msgid "Similar command is:"
 msgstr "Слична наредба је:"
 
 #. TRANSLATORS: Ask the user if we should run the similar command
-#: ../contrib/command-not-found/pk-command-not-found.c:573
+#: ../contrib/command-not-found/pk-command-not-found.c:674
 msgid "Run similar command:"
 msgstr "Покрени сличну наредбу:"
 
 #. TRANSLATORS: show the user a list of commands that they could have meant
 #. TRANSLATORS: show the user a list of commands we could run
-#: ../contrib/command-not-found/pk-command-not-found.c:585
-#: ../contrib/command-not-found/pk-command-not-found.c:594
+#: ../contrib/command-not-found/pk-command-not-found.c:686
+#: ../contrib/command-not-found/pk-command-not-found.c:695
 msgid "Similar commands are:"
 msgstr "Сличне наредбе су:"
 
 #. TRANSLATORS: ask the user to choose a file to run
-#: ../contrib/command-not-found/pk-command-not-found.c:601
+#: ../contrib/command-not-found/pk-command-not-found.c:702
 msgid "Please choose a command to run"
 msgstr "Изаберите наредбу за покретање"
 
 #. TRANSLATORS: tell the user what package provides the command
-#: ../contrib/command-not-found/pk-command-not-found.c:616
+#: ../contrib/command-not-found/pk-command-not-found.c:721
 msgid "The package providing this file is:"
 msgstr "Пакет који пружа ову датотеку је:"
 
 #. TRANSLATORS: as the user if we want to install a package to provide the command
-#: ../contrib/command-not-found/pk-command-not-found.c:621
+#: ../contrib/command-not-found/pk-command-not-found.c:726
 #, c-format
 msgid "Install package '%s' to provide command '%s'?"
 msgstr "Да инсталирам пакет „%s“ који пружа наредбу „%s“?"
 
 #. TRANSLATORS: Show the user a list of packages that provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:642
+#: ../contrib/command-not-found/pk-command-not-found.c:747
 msgid "Packages providing this file are:"
 msgstr "Пакети који пружају ову датотеку су:"
 
 #. TRANSLATORS: Show the user a list of packages that they can install to provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:651
+#: ../contrib/command-not-found/pk-command-not-found.c:756
 msgid "Suitable packages are:"
 msgstr "Прикладни пакети су:"
 
 #. get selection
 #. TRANSLATORS: ask the user to choose a file to install
-#: ../contrib/command-not-found/pk-command-not-found.c:659
+#: ../contrib/command-not-found/pk-command-not-found.c:764
 msgid "Please choose a package to install"
 msgstr "Изаберите пакет за инсталацију"
 
-#. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/src/contents.cpp:298
-msgid "Getting package information..."
-msgstr "Добављам податке о пакету...."
+#. TRANSLATORS: we are starting to install the packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:187
+#, fuzzy
+msgid "Starting install"
+msgstr "За инсталацију"
 
-#. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/src/contents.cpp:304
+#. TRANSLATORS: we couldn't find the package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:397
+#, fuzzy, c-format
+msgid "Failed to find the package %s, or already installed: %s"
+msgstr "Пакет %s је већ инсталиран"
+
+#. command line argument, simulate what would be done, but don't actually do it
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:553
+msgid ""
+"Don't actually install any packages, only simulate what would be installed"
+msgstr ""
+
+#. command line argument, do we skip packages that depend on the ones specified
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:556
+msgid "Do not install dependencies of the core packages"
+msgstr ""
+
+#. command line argument, do we operate quietly
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:559
+msgid "Do not display information or progress"
+msgstr ""
+
+#. TRANSLATORS: tool that gets called when the command is not found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:577
+#, fuzzy
+msgid "PackageKit Debuginfo Installer"
+msgstr "Текстуално сучеље програма ПакетКит"
+
+#. TRANSLATORS: the use needs to specify a list of package names on the command line
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:589
+#, fuzzy, c-format
+msgid "ERROR: Specify package names to install."
+msgstr "Морате навести пакет или датотеку за инсталацију"
+
+#. TRANSLATORS: we are getting the list of repositories
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:623
+#, fuzzy, c-format
+msgid "Getting sources list"
+msgstr "Добављам списак пакета"
+
+#. TRANSLATORS: all completed 100%
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:641
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:681
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:716
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:800
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:844
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:911
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:955
 #, c-format
-msgid "Run %s"
-msgstr "Покрени %s"
+msgid "OK."
+msgstr ""
 
-#. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/src/contents.cpp:310
-msgid "Installed version"
-msgstr "Инсталирана верзија"
+#. TRANSLATORS: tell the user what we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:644
+#, c-format
+msgid "Found %i enabled and %i disabled sources."
+msgstr ""
 
-#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/src/contents.cpp:318
+#. TRANSLATORS: we're finding repositories that match out pattern
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:651
 #, c-format
-msgid "Run version %s now"
-msgstr "Покрени верзију %s сада"
+msgid "Finding debugging sources"
+msgstr ""
 
-#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/src/contents.cpp:324
-msgid "Run now"
-msgstr "Покрени сада"
+#. TRANSLATORS: tell the user what we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:684
+#, c-format
+msgid "Found %i disabled debuginfo repos."
+msgstr ""
 
-#. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/src/contents.cpp:330
+#. TRANSLATORS: we're now enabling all the debug sources we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:691
 #, c-format
-msgid "Update to version %s"
-msgstr "Ажурирај на верзију %s"
+msgid "Enabling debugging sources"
+msgstr ""
 
-#. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/src/contents.cpp:336
+#. TRANSLATORS: operation was not successful
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:701
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:785
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:829
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:896
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:940
+msgid "FAILED."
+msgstr ""
+
+#. TRANSLATORS: tell the user how many we enabled
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:719
 #, c-format
-msgid "Install %s now"
-msgstr "Инсталирај %s сада"
+msgid "Enabled %i debugging sources."
+msgstr ""
 
-#. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/src/contents.cpp:339
-msgid "Version"
-msgstr "Верзија"
+#. TRANSLATORS: we're now finding packages that match in all the repos
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:726
+#, fuzzy, c-format
+msgid "Finding debugging packages"
+msgstr "Тражење имена пакета."
 
-#. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/src/contents.cpp:344
-msgid "No packages found for your system"
-msgstr "Није пронађен ниједан пакет за ваш систем"
+#. TRANSLATORS: we couldn't find the package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:738
+#, fuzzy, c-format
+msgid "Failed to find the package %s: %s"
+msgstr "Нисам могао да пронађем пакет „%s“: %s"
 
-#. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/src/contents.cpp:349
-msgid "Installing..."
-msgstr "Инсталирам..."
+#. TRANSLATORS: we couldn't find the debuginfo package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:761
+#, fuzzy, c-format
+msgid "Failed to find the debuginfo package %s: %s"
+msgstr "Нисам могао да пронађем пакет „%s“: %s"
+
+#. TRANSLATORS: no debuginfo packages could be found to be installed
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:789
+#, fuzzy, c-format
+msgid "Found no packages to install."
+msgstr "Нема нових пакета за инсталацију"
+
+#. TRANSLATORS: tell the user we found some packages, and then list them
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:803
+#, fuzzy, c-format
+msgid "Found %i packages:"
+msgstr "Преузимање пакета"
+
+#. TRANSLATORS: tell the user we are searching for deps
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:819
+#, c-format
+msgid "Finding packages that depend on these packages"
+msgstr ""
+
+#. TRANSLATORS: could not install, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:832
+#, fuzzy, c-format
+msgid "Could not find dependant packages: %s"
+msgstr "Не могу да пронађем пакет"
+
+#. TRANSLATORS: tell the user we found some more packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:848
+#, c-format
+msgid "Found %i extra packages."
+msgstr ""
+
+#. TRANSLATORS: tell the user we found some more packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:852
+#, fuzzy, c-format
+msgid "No extra packages required."
+msgstr "Морате навести име пакета"
+
+#. TRANSLATORS: tell the user we found some packages (and deps), and then list them
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:861
+#, fuzzy, c-format
+msgid "Found %i packages to install:"
+msgstr "Нема нових пакета за инсталацију"
+
+#. TRANSLATORS: simulate mode is a testing mode where we quit before the action
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:874
+#, fuzzy, c-format
+msgid "Not installing packages in simulate mode"
+msgstr "Инсталирам пакете"
+
+#. TRANSLATORS: could not install, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:899
+#, fuzzy, c-format
+msgid "Could not install packages: %s"
+msgstr "Ова алатка није могла инсталирати пакете: %s"
+
+#. TRANSLATORS: we are now disabling all debuginfo repos we previously enabled
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:931
+#, c-format
+msgid "Disabling sources previously enabled"
+msgstr ""
+
+#. TRANSLATORS: no debuginfo packages could be found to be installed, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:943
+#, c-format
+msgid "Could not disable the debugging sources: %s"
+msgstr ""
+
+#. TRANSLATORS: we disabled all the debugging repos that we enabled before
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:958
+#, c-format
+msgid "Disabled %i debugging sources."
+msgstr ""
+
+#. TRANSLATORS: couldn't open device to write
+#: ../contrib/device-rebind/pk-device-rebind.c:61
+#, fuzzy
+msgid "Failed to open file"
+msgstr "Датотека није пронађена"
+
+#. TRANSLATORS: could not write to the device
+#: ../contrib/device-rebind/pk-device-rebind.c:70
+#, fuzzy
+msgid "Failed to write to the file"
+msgstr "Датотека није пронађена"
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:110
+#: ../contrib/device-rebind/pk-device-rebind.c:147
+#, fuzzy
+msgid "Failed to write to device"
+msgstr "Неуспешно записивање на диск"
+
+#. TRANSLATORS: the device could not be found in sysfs
+#: ../contrib/device-rebind/pk-device-rebind.c:175
+#, fuzzy
+msgid "Device could not be found"
+msgstr "Пакет није нађен"
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:202
+#, fuzzy
+msgid "Failed to unregister driver"
+msgstr "Неуспело прављење директоријума:"
+
+#. TRANSLATORS: we failed to bind the old driver
+#: ../contrib/device-rebind/pk-device-rebind.c:211
+#, fuzzy
+msgid "Failed to register driver"
+msgstr "Неуспело прављење директоријума:"
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:260
+#, fuzzy
+msgid "Device path not found"
+msgstr "Директоријум није нађен"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:268
+msgid "Incorrect device path specified"
+msgstr ""
+
+#. command line argument, simulate what would be done, but don't actually do it
+#: ../contrib/device-rebind/pk-device-rebind.c:296
+msgid "Don't actually touch the hardware, only simulate what would be done"
+msgstr ""
+
+#. TRANSLATORS: command line option: a list of files to install
+#: ../contrib/device-rebind/pk-device-rebind.c:299
+msgid "Device paths"
+msgstr ""
+
+#. TRANSLATORS: tool that gets called when the device needs reloading after installing firmware
+#: ../contrib/device-rebind/pk-device-rebind.c:314
+#, fuzzy
+msgid "PackageKit Device Reloader"
+msgstr "Сервис ПакетКита"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:322
+#, fuzzy
+msgid "You need to specify at least one valid device path"
+msgstr "Мораш навести временску одредницу"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:332
+msgid "This script can only be used by the root user"
+msgstr ""
+
+#. TRANSLATORS: we're going to verify the path first
+#: ../contrib/device-rebind/pk-device-rebind.c:341
+msgid "Verifying device path"
+msgstr ""
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:346
+#, fuzzy
+msgid "Failed to verify device path"
+msgstr "Датотека није пронађена"
+
+#. TRANSLATORS: we're going to try
+#: ../contrib/device-rebind/pk-device-rebind.c:360
+msgid "Attempting to rebind device"
+msgstr ""
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:365
+#, fuzzy
+msgid "Failed to rebind device"
+msgstr "Неуспело прављење директоријума:"
 
 #: ../data/packagekit-catalog.xml.in.h:1
 msgid "PackageKit Catalog"
@@ -922,25 +1279,31 @@ msgstr "ПакетКит списак пакета"
 msgid "PackageKit Service Pack"
 msgstr "Сервис ПакетКита"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:1
+#. SECURITY:
+#. - Normal users do not require admin authentication to accept new
+#. licence agreements.
+#. - Change this to 'auth_admin' for environments where users should not
+#. be given the option to make legal decisions.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:7
 msgid "Accept EULA"
 msgstr "Прихвати лиценцу"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:2
+#: ../policy/org.freedesktop.packagekit.policy.in.h:8
 msgid "Authentication is required to accept a EULA"
 msgstr "Неопходна је аутентификација за прихватање лиценце"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:3
+#: ../policy/org.freedesktop.packagekit.policy.in.h:9
 msgid ""
 "Authentication is required to cancel a task that was not started by yourself"
 msgstr ""
 "Неопходна је аутентификација за отказивање посла којег нисте ви покренули"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:4
+#: ../policy/org.freedesktop.packagekit.policy.in.h:10
 msgid "Authentication is required to change software source parameters"
 msgstr "Неопходна је аутентификација за измену поставки складишта софтвера"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:5
+#: ../policy/org.freedesktop.packagekit.policy.in.h:11
 msgid ""
 "Authentication is required to consider a key used for signing packages as "
 "trusted"
@@ -948,28 +1311,33 @@ msgstr ""
 "Неопходна је аутентификација да бисе кључ коришћен за потписивање пакета "
 "сматрао веродостојним"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:6
+#: ../policy/org.freedesktop.packagekit.policy.in.h:12
 msgid "Authentication is required to install a signed package"
 msgstr "Неопходна је аутентификација за инсталацију потписаног пакета"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:7
+#: ../policy/org.freedesktop.packagekit.policy.in.h:13
 msgid "Authentication is required to install an untrusted package"
 msgstr ""
 "Неопходна је аутентификација за инсталацију пакета из непровереног извора"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:8
+#: ../policy/org.freedesktop.packagekit.policy.in.h:14
 msgid "Authentication is required to refresh the system sources"
 msgstr "Неопходна је аутентификација за освежавање системских ризница"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:9
+#: ../policy/org.freedesktop.packagekit.policy.in.h:15
+#, fuzzy
+msgid "Authentication is required to reload the device with a new driver"
+msgstr "Неопходна је аутентификација за освежавање системских ризница"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:16
 msgid "Authentication is required to remove packages"
 msgstr "Неопходна је аутентификација за уклањање пакета"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:10
+#: ../policy/org.freedesktop.packagekit.policy.in.h:17
 msgid "Authentication is required to rollback a transaction"
 msgstr "Неопходна је аутентификација за поништавање све-или-ништа промена"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:11
+#: ../policy/org.freedesktop.packagekit.policy.in.h:18
 msgid ""
 "Authentication is required to set the network proxy used for downloading "
 "packages"
@@ -977,47 +1345,115 @@ msgstr ""
 "Неопходна је аутентификација  како бисе наместио мрежни посредник коришћен "
 "за преузимање пакета"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:12
+#: ../policy/org.freedesktop.packagekit.policy.in.h:19
 msgid "Authentication is required to update packages"
 msgstr "Неопходна је аутентификација за ажурирање пакета"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:13
+#. SECURITY:
+#. - Normal users are allowed to cancel their own task without
+#. authentication, but a different user id needs the admin password
+#. to cancel another users task.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:25
 msgid "Cancel foreign task"
 msgstr "Откажи страни посао"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:14
+#. SECURITY:
+#. - Normal users require admin authentication to enable or disable
+#. software sources as this can be used to enable new updates or
+#. install different versions of software.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:31
 msgid "Change software source parameters"
 msgstr "Промени поставке складишта софтвера"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:15
+#. SECURITY:
+#. - Normal users do not need authentication to install signed packages
+#. from signed repositories, as this cannot exploit a system.
+#. - Paranoid users (or parents!) can change this to 'auth_admin' or
+#. 'auth_admin_keep'.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:38
 msgid "Install signed package"
 msgstr "Инсталирај потписани пакет"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:16
+#. SECURITY:
+#. - Normal users require admin authentication to install untrusted or
+#. unrecognised packages, as allowing users to do this without a
+#. password would be a massive security hole.
+#. - This is not retained as each package should be authenticated.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:45
 msgid "Install untrusted local file"
 msgstr "Инсталирај неоверену локалну датотеку"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:17
+#. SECURITY:
+#. - Normal users do not require admin authentication to refresh the
+#. cache, as this doesn't actually install or remove software.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:50
 msgid "Refresh system sources"
 msgstr "Освежи системске ризнице"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:18
+#. SECURITY:
+#. - Normal users require admin authentication to rebind a driver
+#. so that it works after we install firmware.
+#. - This should not be set to 'yes' as unprivileged users could then
+#. try to rebind drivers in use, for instance security authentication
+#. devices.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:58
+msgid "Reload a device"
+msgstr ""
+
+#. SECURITY:
+#. - Normal users require admin authentication to remove packages as
+#. this can make the system unbootable or stop other applications from
+#. working.
+#. - Be sure to close the tool used to remove the packages after the
+#. admin authentication has been obtained, otherwise packages can still
+#. be removed. If this is not possible, change this authentication to
+#. 'auth_admin'.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:68
 msgid "Remove package"
 msgstr "Уклони пакет"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:19
+#. SECURITY:
+#. - Normal users require admin authentication to rollback system state
+#. as this will change a large number of packages, and could expose the
+#. system to previously patched security vulnerabilities.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:74
 msgid "Rollback to a previous transaction"
 msgstr "Врати се на стање претходне промене"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:20
+#. SECURITY:
+#. - Normal users do not require admin authentication to set the proxy
+#. used for downloading packages.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:79
 msgid "Set network proxy"
 msgstr "Постави мрежног посредника"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:21
+#. SECURITY:
+#. - Normal users require admin authentication to add signing keys.
+#. - This implies adding an explicit trust, and should not be granted
+#. without a secure authentication.
+#. - This is not kept as each package should be authenticated.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:86
 msgid "Trust a key used for signing packages"
 msgstr "Веруј кључу коришћеном за потписивање пакета"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:22
+#. SECURITY:
+#. - Normal users do not require admin authentication to update the
+#. system as the packages will be signed, and the action is required
+#. to update the system when unattended.
+#. - Changing this to anything other than 'yes' will break unattended
+#. updates.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:94
 msgid "Update packages"
 msgstr "Ажурирај пакете"
 
@@ -1046,60 +1482,98 @@ msgstr ""
 "директоријум:"
 
 #. TRANSLATORS: a backend is the system package tool, e.g. yum, apt
-#: ../src/pk-main.c:195
+#: ../src/pk-main.c:205
 msgid "Packaging backend to use, e.g. dummy"
 msgstr "Позадински систем у употреби, нпр. „dummy“ (пробни)"
 
 #. TRANSLATORS: if we should run in the background
-#: ../src/pk-main.c:198
+#: ../src/pk-main.c:208
 msgid "Daemonize and detach from the terminal"
 msgstr "Одвоји од терминала и настави рад као услужни програм"
 
 #. TRANSLATORS: if we should not monitor how long we are inactive for
-#: ../src/pk-main.c:204
+#: ../src/pk-main.c:214
 msgid "Disable the idle timer"
 msgstr "Онемогући мерач чекања"
 
 #. TRANSLATORS: show version
-#: ../src/pk-main.c:207
+#: ../src/pk-main.c:217
 msgid "Show version and exit"
 msgstr "Прикажи верзију и заврши рад"
 
 #. TRANSLATORS: exit after we've started up, used for user profiling
-#: ../src/pk-main.c:210
+#: ../src/pk-main.c:220
 msgid "Exit after a small delay"
 msgstr "Изађи после кратке задршке"
 
 #. TRANSLATORS: exit straight away, used for automatic profiling
-#: ../src/pk-main.c:213
+#: ../src/pk-main.c:223
 msgid "Exit after the engine has loaded"
 msgstr "Заврши рад након што се учита позадински систем"
 
 #. TRANSLATORS: describing the service that is running
-#: ../src/pk-main.c:228
+#: ../src/pk-main.c:238
 msgid "PackageKit service"
 msgstr "Сервис ПакетКита"
 
 #. TRANSLATORS: fatal error, dbus is not running
-#: ../src/pk-main.c:265
+#: ../src/pk-main.c:275
 msgid "Cannot connect to the system bus"
 msgstr "Не могу да се повежем на системску магистралу"
 
-#. TRANSLATORS: cannot register on system bus, unknown reason
-#: ../src/pk-main.c:317
-#, c-format
+#. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error follows
+#: ../src/pk-main.c:334
 msgid "Error trying to start:"
 msgstr "Грешка при покретању:"
 
+#: ../src/pk-polkit-action-lookup.c:147
+#, fuzzy
+msgid "To install debugging packages, extra sources need to be enabled"
+msgstr "Нема нових пакета за инсталацију"
+
+#. TRANSLATORS: is not GPG signed
+#: ../src/pk-polkit-action-lookup.c:168 ../src/pk-polkit-action-lookup.c:187
+msgid "The software is not from a trusted source."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:173
+msgid "Do not update this package unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:174
+msgid "Do not update these packages unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:192
+msgid "Do not install this package unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:193
+msgid "Do not install these packages unless you are sure it is safe to do so."
+msgstr ""
+
+#. TRANSLATORS: warn the user that all bets are off
+#: ../src/pk-polkit-action-lookup.c:199
+msgid "Malicious software can damage your computer or cause other harm."
+msgstr ""
+
+#. TRANSLATORS: too many packages to list each one
+#: ../src/pk-polkit-action-lookup.c:274
+#, fuzzy
+msgid "Many packages"
+msgstr "Ажурирај пакете"
+
+#. TRANSLATORS: if the transaction is forced to install only trusted packages
+#: ../src/pk-polkit-action-lookup.c:334
+msgid "Only trusted"
+msgstr ""
+
 #~ msgid "You need to specify a search type, e.g. name"
 #~ msgstr "Морате навести врсту претраге, нпр. име"
 
 #~ msgid "You need to specify a search term"
 #~ msgstr "Морате навести термин за претрагу"
 
-#~ msgid "You need to specify a package or file to install"
-#~ msgstr "Морате навести пакет или датотеку за инсталацију"
-
 #~ msgid "You need to specify a package to remove"
 #~ msgstr "Мораш навести пакет за уклањање"
 
@@ -1122,10 +1596,6 @@ msgstr "Грешка при покретању:"
 #~ msgstr "Морате навести име пакета за приказ списка датотека"
 
 #, fuzzy
-#~ msgid "You need to specify a list file to create"
-#~ msgstr "Мораш навести временску одредницу"
-
-#, fuzzy
 #~ msgid "You need to specify a list file to open"
 #~ msgstr "Мораш навести временску одредницу"
 
@@ -1163,9 +1633,6 @@ msgstr "Грешка при покретању:"
 #~ msgid "Could not find details for"
 #~ msgstr "Не могу да прибавим списак датотека из овог пакета"
 
-#~ msgid "Could not find a package match"
-#~ msgstr "Не могу да пронађем пакет"
-
 #, fuzzy
 #~ msgid "Could not set database readonly"
 #~ msgstr "Не могу да отворим базу: %s"
diff --git a/po/sr at latin.po b/po/sr at latin.po
index be6b5c8..7f5243a 100644
--- a/po/sr at latin.po
+++ b/po/sr at latin.po
@@ -10,7 +10,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-05-03 19:22+0000\n"
+"POT-Creation-Date: 2009-08-24 11:06+0100\n"
 "PO-Revision-Date: 2009-05-03 22:29+0100\n"
 "Last-Translator: Miloš Komarčević <kmilos at gmail.com>\n"
 "Language-Team: Serbian <fedora-trans-sr at redhat.com>\n"
@@ -21,231 +21,268 @@ msgstr ""
 "%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
 
 #. TRANSLATORS: this is an atomic transaction
-#: ../client/pk-console.c:234
+#: ../client/pk-console.c:235
 msgid "Transaction"
 msgstr "Transakcija"
 
 #. TRANSLATORS: this is the time the transaction was started in system timezone
-#: ../client/pk-console.c:236
+#: ../client/pk-console.c:237
 msgid "System time"
 msgstr "Sistemsko vreme"
 
 #. TRANSLATORS: this is if the transaction succeeded or not
-#: ../client/pk-console.c:238
+#: ../client/pk-console.c:239
 msgid "Succeeded"
 msgstr "Uspela"
 
 #. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:238 ../client/pk-console.c:405
+#: ../client/pk-console.c:239 ../client/pk-console.c:406
 msgid "True"
 msgstr "Tačno"
 
-#: ../client/pk-console.c:238 ../client/pk-console.c:405
+#: ../client/pk-console.c:239 ../client/pk-console.c:406
 msgid "False"
 msgstr "Netačno"
 
 #. TRANSLATORS: this is the transactions role, e.g. "update-system"
-#: ../client/pk-console.c:240
+#. TRANSLATORS: the trasaction role, e.g. update-system
+#: ../client/pk-console.c:241 ../src/pk-polkit-action-lookup.c:327
 msgid "Role"
 msgstr "Radnja"
 
 #. TRANSLATORS: this is The duration of the transaction
-#: ../client/pk-console.c:245
+#: ../client/pk-console.c:246
 msgid "Duration"
 msgstr "Trajanje"
 
-#: ../client/pk-console.c:245
+#: ../client/pk-console.c:246
 msgid "(seconds)"
 msgstr "(sekundi)"
 
 #. TRANSLATORS: this is The command line used to do the action
-#: ../client/pk-console.c:249
+#. TRANSLATORS: the command line of the thing that wants the authentication
+#: ../client/pk-console.c:250 ../src/pk-polkit-action-lookup.c:341
 msgid "Command line"
 msgstr "Komandna linija"
 
 #. TRANSLATORS: this is the user ID of the user that started the action
-#: ../client/pk-console.c:251
+#: ../client/pk-console.c:252
 msgid "User ID"
 msgstr "Korisnički IB"
 
 #. TRANSLATORS: this is the username, e.g. hughsie
-#: ../client/pk-console.c:258
+#: ../client/pk-console.c:259
 msgid "Username"
 msgstr "Korisničko ime"
 
 #. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
-#: ../client/pk-console.c:262
+#: ../client/pk-console.c:263
 msgid "Real name"
 msgstr "Stvarno ime"
 
-#: ../client/pk-console.c:270
+#: ../client/pk-console.c:271
 msgid "Affected packages:"
 msgstr "Obuhvaćeni paketi:"
 
-#: ../client/pk-console.c:272
+#: ../client/pk-console.c:273
 msgid "Affected packages: None"
 msgstr "Obuhvaćeni paketi: ni jedan"
 
 #. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:297
+#: ../client/pk-console.c:298
 msgid "Distribution"
 msgstr "Distribucija"
 
 #. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:299
+#: ../client/pk-console.c:300
 msgid "Type"
 msgstr "Vrsta"
 
 #. TRANSLATORS: this is any summary text describing the upgrade
 #. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:301 ../client/pk-console.c:324
+#: ../client/pk-console.c:302 ../client/pk-console.c:325
 msgid "Summary"
 msgstr "Sažetak"
 
 #. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:313
+#: ../client/pk-console.c:314
 msgid "Category"
 msgstr "Kategorija"
 
 #. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:315
+#: ../client/pk-console.c:316
 msgid "ID"
 msgstr "Identifikator"
 
 #. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:318
+#: ../client/pk-console.c:319
 msgid "Parent"
 msgstr "Roditelj"
 
 #. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:321
+#: ../client/pk-console.c:322
 msgid "Name"
 msgstr "Naziv"
 
 #. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:327
+#: ../client/pk-console.c:328
 msgid "Icon"
 msgstr "Ikona"
 
 #. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:342
+#: ../client/pk-console.c:343
 msgid "Details about the update:"
 msgstr "Više o nadgradnji:"
 
 #. TRANSLATORS: details about the update, package name and version
-#: ../client/pk-console.c:344
+#. TRANSLATORS: title, the names of the packages that the method is processing
+#: ../client/pk-console.c:345 ../src/pk-polkit-action-lookup.c:352
+#, fuzzy
 msgid "Package"
-msgstr "Paket"
+msgid_plural "Packages"
+msgstr[0] "Paket"
+msgstr[1] "Paket"
+msgstr[2] "Paket"
+msgstr[3] "Paket"
 
 #. TRANSLATORS: details about the update, any packages that this update updates
-#: ../client/pk-console.c:347
+#: ../client/pk-console.c:348
 msgid "Updates"
 msgstr "Ažurira"
 
 #. TRANSLATORS: details about the update, any packages that this update obsoletes
-#: ../client/pk-console.c:351
+#: ../client/pk-console.c:352
 msgid "Obsoletes"
 msgstr "Prevazilazi"
 
 #. TRANSLATORS: details about the update, the vendor URLs
-#: ../client/pk-console.c:355
+#: ../client/pk-console.c:356
 msgid "Vendor"
 msgstr "Izdavač"
 
 #. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:359
+#: ../client/pk-console.c:360
 msgid "Bugzilla"
 msgstr "Bugzilla"
 
 #. TRANSLATORS: details about the update, the CVE URLs
-#: ../client/pk-console.c:363
+#: ../client/pk-console.c:364
 msgid "CVE"
 msgstr "CVE"
 
 #. TRANSLATORS: details about the update, if the package requires a restart
-#: ../client/pk-console.c:367
+#: ../client/pk-console.c:368
 msgid "Restart"
 msgstr "Ponovno pokretanje"
 
 #. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:371
+#: ../client/pk-console.c:372
 msgid "Update text"
 msgstr "Opis ažuriranja"
 
 #. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:375
+#: ../client/pk-console.c:376
 msgid "Changes"
 msgstr "Promene"
 
 #. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:379
+#: ../client/pk-console.c:380
 msgid "State"
 msgstr "Stanje"
 
 #. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:384
+#: ../client/pk-console.c:385
 msgid "Issued"
 msgstr "Izdato"
 
 #. TRANSLATORS: details about the update, date the update was updated
-#: ../client/pk-console.c:389
+#: ../client/pk-console.c:390
 msgid "Updated"
 msgstr "Datum ažuriranja"
 
-#: ../client/pk-console.c:476 ../client/pk-console.c:478
+#: ../client/pk-console.c:477 ../client/pk-console.c:479
 msgid "Percentage"
 msgstr "Procenat"
 
-#: ../client/pk-console.c:478
+#: ../client/pk-console.c:479
 msgid "Unknown"
 msgstr "Nepoznato"
 
 #. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:529
+#: ../client/pk-console.c:521
 msgid "System restart required by:"
 msgstr "Ponovno pokretanje sistema zahteva paket:"
 
 #. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:532
+#: ../client/pk-console.c:524
 msgid "Session restart required:"
 msgstr "Neophodno je ponovno pokretanje sesije:"
 
+#. TRANSLATORS: a package requires the system to be restarted due to a security update
+#: ../client/pk-console.c:527
+#, fuzzy
+msgid "System restart (security) required by:"
+msgstr "Ponovno pokretanje sistema zahteva paket:"
+
+#. TRANSLATORS: a package requires the session to be restarted due to a security update
+#: ../client/pk-console.c:530
+#, fuzzy
+msgid "Session restart (security) required:"
+msgstr "Neophodno je ponovno pokretanje sesije:"
+
 #. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:535
+#: ../client/pk-console.c:533
 msgid "Application restart required by:"
 msgstr "Ponovno pokretanje programa zahteva paket:"
 
-#. TRANSLATORS: a package needs to restart they system
-#: ../client/pk-console.c:572
+#. TRANSLATORS: a package needs to restart their system
+#: ../client/pk-console.c:588
 msgid "Please restart the computer to complete the update."
 msgstr "Neophodno je ponovno pokretanje sistema radi završetka ažuriranja."
 
 #. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:575
+#: ../client/pk-console.c:591
 msgid "Please logout and login to complete the update."
 msgstr ""
 "Neophodno je odjavljivanje i ponovna prijava radi završetka ažuriranja."
 
 #. TRANSLATORS: a package needs to restart the application
-#: ../client/pk-console.c:578
+#: ../client/pk-console.c:594
 msgid "Please restart the application as it is being used."
 msgstr "Neophodno je ponovno pokretanje programa pošto je u upotrebi."
 
+#. TRANSLATORS: a package needs to restart their system (due to security)
+#: ../client/pk-console.c:597
+#, fuzzy
+msgid ""
+"Please restart the computer to complete the update as important security "
+"updates have been installed."
+msgstr "Neophodno je ponovno pokretanje sistema radi završetka ažuriranja."
+
+#. TRANSLATORS: a package needs to restart the session (due to security)
+#: ../client/pk-console.c:600
+#, fuzzy
+msgid ""
+"Please logout and login to complete the update as important security updates "
+"have been installed."
+msgstr ""
+"Neophodno je odjavljivanje i ponovna prijava radi završetka ažuriranja."
+
 #. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:691
+#: ../client/pk-console.c:727
 #, c-format
 msgid "The package %s is already installed"
 msgstr "Paket %s je već instaliran"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:699
+#: ../client/pk-console.c:735
 #, c-format
 msgid "The package %s could not be installed: %s"
 msgstr "Paket %s se nije mogao instalirati: %s"
 
 #. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
-#: ../client/pk-console.c:724 ../client/pk-console.c:751
-#: ../client/pk-console.c:847 ../client/pk-console.c:964
+#: ../client/pk-console.c:760 ../client/pk-console.c:783
+#: ../client/pk-console.c:879 ../client/pk-console.c:996
 #: ../client/pk-tools-common.c:62 ../client/pk-tools-common.c:81
 #: ../client/pk-tools-common.c:89
 #, c-format
@@ -253,400 +290,404 @@ msgid "Internal error: %s"
 msgstr "Unutrašnja greška: %s"
 
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:732 ../client/pk-console.c:1360
+#: ../client/pk-console.c:768 ../client/pk-console.c:1392
 #, c-format
 msgid "This tool could not install the packages: %s"
 msgstr "Ova alatka nije mogla instalirati pakete: %s"
 
 #. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:759
+#: ../client/pk-console.c:791
 #, c-format
 msgid "This tool could not install the files: %s"
 msgstr "Ova alatka nije mogla instalirati datoteke: %s"
 
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:815
+#: ../client/pk-console.c:847
 #, c-format
 msgid "This tool could not remove %s: %s"
 msgstr "Ova alatka nije mogla ukloniti %s: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:838 ../client/pk-console.c:876
-#: ../client/pk-console.c:909
+#: ../client/pk-console.c:870 ../client/pk-console.c:908
+#: ../client/pk-console.c:941
 #, c-format
 msgid "This tool could not remove the packages: %s"
 msgstr "Ova alatka nije mogla ukloniti pakete: %s"
 
 #. TRANSLATORS: When removing, we might have to remove other dependencies
-#: ../client/pk-console.c:888
+#: ../client/pk-console.c:920
 msgid "The following packages have to be removed:"
 msgstr "Sledeći paketi će biti uklonjeni:"
 
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:895
+#: ../client/pk-console.c:927
 msgid "Proceed removing additional packages?"
 msgstr "Da li je u redu da uklonim ove dodatne pakete?"
 
 #. TRANSLATORS: We did not remove any packages
-#: ../client/pk-console.c:900
+#: ../client/pk-console.c:932
 msgid "The package removal was canceled!"
 msgstr "Izbacivanje paketa je prekinuto!"
 
 #. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:941
+#: ../client/pk-console.c:973
 #, c-format
 msgid "This tool could not download the package %s as it could not be found"
 msgstr "Ova alatka nije mogla preuzeti paket %s jer ga nije mogla pronaći"
 
 #. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:972
+#: ../client/pk-console.c:1004
 #, c-format
 msgid "This tool could not download the packages: %s"
 msgstr "Ova alatka nije mogla preuzeti pakete: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:999 ../client/pk-console.c:1008
+#: ../client/pk-console.c:1031 ../client/pk-console.c:1040
 #, c-format
 msgid "This tool could not update %s: %s"
 msgstr "Ova alatka nije mogla ažurirati %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1030 ../client/pk-console.c:1038
+#: ../client/pk-console.c:1062 ../client/pk-console.c:1070
 #, c-format
 msgid "This tool could not get the requirements for %s: %s"
 msgstr "Ova alatka nije mogla srediti sve uslove za %s: %s"
 
 #. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:1060 ../client/pk-console.c:1068
+#: ../client/pk-console.c:1092 ../client/pk-console.c:1100
 #, c-format
 msgid "This tool could not get the dependencies for %s: %s"
 msgstr "Ova alatka nije mogla dobaviti međuzavisnosti za %s: %s"
 
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:1090 ../client/pk-console.c:1098
+#: ../client/pk-console.c:1122 ../client/pk-console.c:1130
 #, c-format
 msgid "This tool could not get package details for %s: %s"
 msgstr "Ova alatka nije mogla dobaviti detalje paketa za %s: %s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1120
+#: ../client/pk-console.c:1152
 #, c-format
 msgid "This tool could not find the files for %s: %s"
 msgstr "Ova alatka nije mogla naći datoteke za %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1128
+#: ../client/pk-console.c:1160
 #, c-format
 msgid "This tool could not get the file list for %s: %s"
 msgstr "Ova alatka nije mogla dobaviti spisak datoteka za %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of packages. The filename follows
-#: ../client/pk-console.c:1150
+#: ../client/pk-console.c:1182
 #, c-format
 msgid "File already exists: %s"
 msgstr "Datoteka već postoji: %s"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1155 ../client/pk-console.c:1211
-#: ../client/pk-console.c:1286
+#: ../client/pk-console.c:1187 ../client/pk-console.c:1243
+#: ../client/pk-console.c:1318
 msgid "Getting package list"
 msgstr "Dobavljam spisak paketa"
 
 #. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1161 ../client/pk-console.c:1217
-#: ../client/pk-console.c:1292
+#: ../client/pk-console.c:1193 ../client/pk-console.c:1249
+#: ../client/pk-console.c:1324
 #, c-format
 msgid "This tool could not get package list: %s"
 msgstr "Ova alatka nije mogla dobaviti spisak paketa: %s"
 
 #. TRANSLATORS: There was an error saving the list
-#: ../client/pk-console.c:1172
+#: ../client/pk-console.c:1204
 #, c-format
 msgid "Failed to save to disk"
 msgstr "Neuspešno zapisivanje na disk"
 
 #. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1206 ../client/pk-console.c:1281
+#: ../client/pk-console.c:1238 ../client/pk-console.c:1313
 #, c-format
 msgid "File does not exist: %s"
 msgstr "Datoteka ne postoji: %s"
 
 #. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1238
+#: ../client/pk-console.c:1270
 msgid "Packages to add"
 msgstr "Paketi koji će se dodati"
 
 #. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1246
+#: ../client/pk-console.c:1278
 msgid "Packages to remove"
 msgstr "Paketi koji će se ukloniti"
 
 #. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1314
+#: ../client/pk-console.c:1346
 #, c-format
 msgid "No new packages need to be installed"
 msgstr "Nema novih paketa za instalaciju"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1320
+#: ../client/pk-console.c:1352
 msgid "To install"
 msgstr "Za instalaciju"
 
 #. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1332
+#: ../client/pk-console.c:1364
 msgid "Searching for package: "
 msgstr "Tražim paket: "
 
 #. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1336
+#: ../client/pk-console.c:1368
 msgid "not found."
 msgstr "nije nađen."
 
 #. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1347
+#: ../client/pk-console.c:1379
 #, c-format
 msgid "No packages can be found to install"
 msgstr "Nije pronađen nijedan paket za instalaciju"
 
 #. TRANSLATORS: installing new packages from package list
-#: ../client/pk-console.c:1353
+#. TRANSLATORS: we are now installing the debuginfo packages we found earlier
+#: ../client/pk-console.c:1385
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:886
+#, c-format
 msgid "Installing packages"
 msgstr "Instaliram pakete"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1389
+#: ../client/pk-console.c:1421
 #, c-format
 msgid "This tool could not find the update details for %s: %s"
 msgstr "Ova alatka nije mogla naći detalje ažuriranja za %s: %s"
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1397
+#: ../client/pk-console.c:1429
 #, c-format
 msgid "This tool could not get the update details for %s: %s"
 msgstr "Ova alatka nije mogla dobaviti detalje ažuriranja za %s: %s"
 
 #. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
-#: ../client/pk-console.c:1443
+#: ../client/pk-console.c:1460
 msgid "Error:"
 msgstr "Greška:"
 
 #. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1457
+#: ../client/pk-console.c:1474
 msgid "Package description"
 msgstr "Opis paketa"
 
 #. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
-#: ../client/pk-console.c:1473
+#: ../client/pk-console.c:1490
 msgid "Message:"
 msgstr "Poruka:"
 
 #. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1501
+#: ../client/pk-console.c:1518
 msgid "Package files"
 msgstr "Spisak datoteka"
 
 #. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1509
+#: ../client/pk-console.c:1526
 msgid "No files"
 msgstr "Nema datoteka"
 
 #. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1532
+#: ../client/pk-console.c:1549
 msgid "Repository signature required"
 msgstr "Potpis riznice je obavezan"
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1542
+#: ../client/pk-console.c:1559
 msgid "Do you accept this signature?"
 msgstr "Prihvatate li ovaj potpis?"
 
 #. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1546
+#: ../client/pk-console.c:1563
 msgid "The signature was not accepted."
 msgstr "Ovaj potpis nije prihvaćen."
 
 #. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1580
+#: ../client/pk-console.c:1597
 msgid "End user license agreement required"
 msgstr "Licenci dogovor sa krajnjim korisnikom je obavezan"
 
 #. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1587
+#: ../client/pk-console.c:1604
 msgid "Do you agree to this license?"
 msgstr "Slažete li se sa ovom licencom?"
 
 #. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1591
+#: ../client/pk-console.c:1608
 msgid "The license was refused."
 msgstr "Licenca je odbijena."
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1620
+#: ../client/pk-console.c:1637
 msgid "The daemon crashed mid-transaction!"
 msgstr "Uslužni program se iznenada prekinuo!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1673
+#: ../client/pk-console.c:1690
 msgid "PackageKit Console Interface"
 msgstr "Tekstualno sučelje programa PaketKit"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1675
+#: ../client/pk-console.c:1692
 msgid "Subcommands:"
 msgstr "Naredbe:"
 
 #. TRANSLATORS: command line argument, if we should show debugging information
 #. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:1767 ../client/pk-generate-pack.c:185
-#: ../client/pk-monitor.c:125
-#: ../contrib/command-not-found/pk-command-not-found.c:518
-#: ../src/pk-main.c:201
+#: ../client/pk-console.c:1785 ../client/pk-generate-pack.c:185
+#: ../client/pk-monitor.c:128
+#: ../contrib/command-not-found/pk-command-not-found.c:616
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:550
+#: ../contrib/device-rebind/pk-device-rebind.c:293 ../src/pk-main.c:211
 msgid "Show extra debugging information"
 msgstr "Prikaži dodatne podatke za otkrivanje grešaka"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1770 ../client/pk-monitor.c:127
+#: ../client/pk-console.c:1788 ../client/pk-monitor.c:130
 msgid "Show the program version and exit"
 msgstr "Prikaži verziju programa i završi rad"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1773
+#: ../client/pk-console.c:1791
 msgid "Set the filter, e.g. installed"
 msgstr "Namesti filter, npr. instalirani"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1776
+#: ../client/pk-console.c:1794
 msgid "Exit without waiting for actions to complete"
 msgstr "Završi rad bez čekanja da se poslovi završe"
 
 #. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:1803
+#: ../client/pk-console.c:1821
 msgid "This tool could not connect to system DBUS."
 msgstr "Ne mogu da se povežem na sistemsku komunikacionu magistralu (DBUS)."
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1894
+#: ../client/pk-console.c:1911
 msgid "The filter specified was invalid"
 msgstr "Navedeni filter nije ispravan"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1912
+#: ../client/pk-console.c:1930
 msgid "A search type is required, e.g. name"
 msgstr "Morate navesti vrstu pretrage, npr. po imenu"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1918 ../client/pk-console.c:1926
-#: ../client/pk-console.c:1934 ../client/pk-console.c:1942
+#: ../client/pk-console.c:1937 ../client/pk-console.c:1946
+#: ../client/pk-console.c:1955 ../client/pk-console.c:1964
 msgid "A search term is required"
 msgstr "Morate navesti termin za pretragu"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1948
+#: ../client/pk-console.c:1971
 msgid "Invalid search type"
 msgstr "Neispravna vrsta pretrage"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1954
+#: ../client/pk-console.c:1977
 msgid "A package name or filename to install is required"
 msgstr "Morate navesti ime paketa ili ime datoteke za instalaciju"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1962
+#: ../client/pk-console.c:1986
 msgid "A type, key_id and package_id are required"
 msgstr "Morate navesti vrstu, IB ključa i IB paketa (key_id i package_id)"
 
 #. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:1970
+#: ../client/pk-console.c:1995
 msgid "A package name to remove is required"
 msgstr "Morate navesti naziv paketa za uklanjanje"
 
 #. TRANSLATORS: the user did not specify anything about what to download or where
-#: ../client/pk-console.c:1977
-msgid ""
-"A destination directory and then the package names to download are required"
+#: ../client/pk-console.c:2003
+#, fuzzy
+msgid "A destination directory and the package names to download are required"
 msgstr "Morate navesti odredišni direktorijum pa onda pakete za preuzimanje"
 
 #. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:1983
+#: ../client/pk-console.c:2010
 msgid "Directory not found"
 msgstr "Direktorijum nije nađen"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1990
+#: ../client/pk-console.c:2018
 msgid "A licence identifier (eula-id) is required"
 msgstr "Morete navesti identifikator licence (eula-id)"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1999
+#: ../client/pk-console.c:2028
 msgid "A transaction identifier (tid) is required"
 msgstr "Morate navesti identifikator transakcije (tid)"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:2015
+#: ../client/pk-console.c:2045
 msgid "A package name to resolve is required"
 msgstr "Morate navesti ime paketa za razrešavanje"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:2023 ../client/pk-console.c:2031
+#: ../client/pk-console.c:2054 ../client/pk-console.c:2063
 msgid "A repository name is required"
 msgstr "Morate navesti ime riznice"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2039
+#: ../client/pk-console.c:2072
 msgid "A repo name, parameter and value are required"
 msgstr "Morate navesti ime, parametar i vrednost riznice"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:2052
+#: ../client/pk-console.c:2086
 msgid "An action, e.g. 'update-system' is required"
 msgstr "Morate navesti radnju, npr. „update-system“ (ažuriranje sistema)"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:2058
+#: ../client/pk-console.c:2093
 msgid "A correct role is required"
 msgstr "Morate navesti važeću radnju"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2064
+#: ../client/pk-console.c:2100
 msgid "Failed to get the time since this action was last completed"
 msgstr "Datum poslednjeg izvršavanja ove radnje nije pronađen"
 
 #. TRANSLATORS: The user did not provide a package name
 #. TRANSLATORS: This is when the user fails to supply the package name
-#: ../client/pk-console.c:2073 ../client/pk-console.c:2084
-#: ../client/pk-console.c:2092 ../client/pk-console.c:2108
-#: ../client/pk-console.c:2116 ../client/pk-generate-pack.c:241
+#: ../client/pk-console.c:2110 ../client/pk-console.c:2122
+#: ../client/pk-console.c:2131 ../client/pk-console.c:2149
+#: ../client/pk-console.c:2158 ../client/pk-generate-pack.c:241
 msgid "A package name is required"
 msgstr "Morate navesti ime paketa"
 
 #. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:2100
+#: ../client/pk-console.c:2140
 msgid "A package provide string is required"
 msgstr "Morate navesti „provide“ niz (šta paket pruža)"
 
 #. TRANSLATORS: The user didn't specify a filename to create as a list
-#: ../client/pk-console.c:2124
+#: ../client/pk-console.c:2167
 msgid "A list file name to create is required"
 msgstr "Morate navesti ime datoteke spiska koja će se napraviti"
 
 #. TRANSLATORS: The user didn't specify a filename to open as a list
-#: ../client/pk-console.c:2133 ../client/pk-console.c:2142
+#: ../client/pk-console.c:2177 ../client/pk-console.c:2187
 msgid "A list file to open is required"
 msgstr "Morate navesti datoteku spiska za otvaranje"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2195
+#: ../client/pk-console.c:2241
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "Opcija „%s“ nije podržana"
 
 #. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2208
+#: ../client/pk-console.c:2254
 msgid "Incorrect privileges for this operation"
 msgstr "Neispravna ovlašćenja za ovu operaciju"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2211
+#: ../client/pk-console.c:2257
 msgid "Command failed"
 msgstr "Naredba nije uspela"
 
@@ -709,64 +750,75 @@ msgstr "Morate navesti ime izlazne datoteke ili direktorijuma"
 msgid "The package manager cannot perform this type of operation."
 msgstr "Upravnik paketa ne može izvršiti ovu vrstu radnje."
 
+#. TRANSLATORS: This is when the distro didn't include libarchive support into PK
+#: ../client/pk-generate-pack.c:280
+msgid ""
+"Service packs cannot be created as PackageKit was not built with libarchive "
+"support."
+msgstr ""
+
 #. TRANSLATORS: the user specified an absolute path, but didn't get the extension correct
-#: ../client/pk-generate-pack.c:285
+#: ../client/pk-generate-pack.c:291
 msgid "If specifying a file, the service pack name must end with"
 msgstr "Ako navodite datoteku, naziv servisnog paketa se mora završiti sa"
 
 #. TRANSLATORS: This is when file already exists
-#: ../client/pk-generate-pack.c:301
+#: ../client/pk-generate-pack.c:307
 msgid "A pack with the same name already exists, do you want to overwrite it?"
 msgstr "Skup sa istim nazivom već postoji, da li ga želite presnimiti?"
 
 #. TRANSLATORS: This is when the pack was not overwritten
-#: ../client/pk-generate-pack.c:304
+#: ../client/pk-generate-pack.c:310
 msgid "The pack was not overwritten."
 msgstr "Skup nije presnimljen."
 
 #. TRANSLATORS: This is when the temporary directory cannot be created, the directory name follows
-#: ../client/pk-generate-pack.c:317
+#: ../client/pk-generate-pack.c:323
 msgid "Failed to create directory:"
 msgstr "Neuspelo pravljenje direktorijuma:"
 
 #. TRANSLATORS: This is when the list of packages from the remote computer cannot be opened
-#: ../client/pk-generate-pack.c:327
+#: ../client/pk-generate-pack.c:333
 msgid "Failed to open package list."
 msgstr "Neuspešno otvaranje spiska paketa."
 
 #. TRANSLATORS: The package name is being matched up to available packages
-#: ../client/pk-generate-pack.c:338
+#: ../client/pk-generate-pack.c:344
 msgid "Finding package name."
 msgstr "Traženje imena paketa."
 
 #. TRANSLATORS: This is when the package cannot be found in any software source. The detailed error follows
-#: ../client/pk-generate-pack.c:342
+#: ../client/pk-generate-pack.c:348
 #, c-format
 msgid "Failed to find package '%s': %s"
 msgstr "Nisam mogao da pronađem paket „%s“: %s"
 
 #. TRANSLATORS: This is telling the user we are in the process of making the pack
-#: ../client/pk-generate-pack.c:359
+#: ../client/pk-generate-pack.c:365
 msgid "Creating service pack..."
 msgstr "Pravim servisnu grupu..."
 
 #. TRANSLATORS: we succeeded in making the file
-#: ../client/pk-generate-pack.c:366
+#: ../client/pk-generate-pack.c:372
 #, c-format
 msgid "Service pack created '%s'"
 msgstr "Servisna grupa je napravljena „%s“"
 
 #. TRANSLATORS: we failed to make te file
-#: ../client/pk-generate-pack.c:371
+#: ../client/pk-generate-pack.c:377
 #, c-format
 msgid "Failed to create '%s': %s"
 msgstr "Neuspelo pravljenje „%s“: %s"
 
 #. TRANSLATORS: this is a program that monitors PackageKit
-#: ../client/pk-monitor.c:143
+#: ../client/pk-monitor.c:146
 msgid "PackageKit Monitor"
 msgstr "PaketKit redar"
 
+#: ../client/pk-monitor.c:183
+msgid "Cannot show the list of transactions"
+msgstr ""
+
 #. TRANSLATORS: The package was not found in any software sources
 #: ../client/pk-tools-common.c:118
 #, c-format
@@ -788,128 +840,434 @@ msgstr "Izaberite željeni paket: "
 msgid "Please enter a number from 1 to %i: "
 msgstr "Unesite broj između 1 i %i: "
 
+#. TRANSLATORS: when we are getting data from the daemon
+#: ../contrib/browser-plugin/pk-plugin-install.c:466
+msgid "Getting package information..."
+msgstr "Dobavljam podatke o paketu...."
+
+#. TRANSLATORS: run an applicaiton
+#: ../contrib/browser-plugin/pk-plugin-install.c:472
+#, c-format
+msgid "Run %s"
+msgstr "Pokreni %s"
+
+#. TRANSLATORS: show the installed version of a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:478
+msgid "Installed version"
+msgstr "Instalirana verzija"
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:486
+#, c-format
+msgid "Run version %s now"
+msgstr "Pokreni verziju %s sada"
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:492
+msgid "Run now"
+msgstr "Pokreni sada"
+
+#. TRANSLATORS: update to a new version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:498
+#, c-format
+msgid "Update to version %s"
+msgstr "Ažuriraj na verziju %s"
+
+#. TRANSLATORS: To install a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:504
+#, c-format
+msgid "Install %s now"
+msgstr "Instaliraj %s sada"
+
+#. TRANSLATORS: the version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:507
+msgid "Version"
+msgstr "Verzija"
+
+#. TRANSLATORS: noting found, so can't install
+#: ../contrib/browser-plugin/pk-plugin-install.c:512
+msgid "No packages found for your system"
+msgstr "Nije pronađen nijedan paket za vaš sistem"
+
+#. TRANSLATORS: package is being installed
+#: ../contrib/browser-plugin/pk-plugin-install.c:517
+msgid "Installing..."
+msgstr "Instaliram..."
+
+#. TRANSLATORS: downloading repo data so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:349
+msgid "Downloading details about the software sources."
+msgstr ""
+
+#. TRANSLATORS: downloading file lists so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:353
+msgid "Downloading filelists (this may take some time to complete)."
+msgstr ""
+
+#. TRANSLATORS: waiting for native lock
+#: ../contrib/command-not-found/pk-command-not-found.c:357
+#, fuzzy
+msgid "Waiting for package manager lock."
+msgstr "Traženje imena paketa."
+
+#. TRANSLATORS: loading package cache so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:361
+#, fuzzy
+msgid "Loading list of packages."
+msgstr "Preuzimanje paketa"
+
 #. TRANSLATORS: we failed to find the package, this shouldn't happen
-#: ../contrib/command-not-found/pk-command-not-found.c:369
+#: ../contrib/command-not-found/pk-command-not-found.c:420
 msgid "Failed to search for file"
 msgstr "Datoteka nije pronađena"
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:493
+#: ../contrib/command-not-found/pk-command-not-found.c:557
 msgid "Failed to launch:"
 msgstr "Neuspešno pokretanje:"
 
 #. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/command-not-found/pk-command-not-found.c:534
+#: ../contrib/command-not-found/pk-command-not-found.c:632
 msgid "PackageKit Command Not Found"
 msgstr "PaketKit naredba nije nađena"
 
 #. TRANSLATORS: the prefix of all the output telling the user why it's not executing
-#: ../contrib/command-not-found/pk-command-not-found.c:557
+#: ../contrib/command-not-found/pk-command-not-found.c:658
 msgid "Command not found."
 msgstr "Naredba nije nađena."
 
 #. TRANSLATORS: tell the user what we think the command is
-#: ../contrib/command-not-found/pk-command-not-found.c:564
+#: ../contrib/command-not-found/pk-command-not-found.c:665
 msgid "Similar command is:"
 msgstr "Slična naredba je:"
 
 #. TRANSLATORS: Ask the user if we should run the similar command
-#: ../contrib/command-not-found/pk-command-not-found.c:573
+#: ../contrib/command-not-found/pk-command-not-found.c:674
 msgid "Run similar command:"
 msgstr "Pokreni sličnu naredbu:"
 
 #. TRANSLATORS: show the user a list of commands that they could have meant
 #. TRANSLATORS: show the user a list of commands we could run
-#: ../contrib/command-not-found/pk-command-not-found.c:585
-#: ../contrib/command-not-found/pk-command-not-found.c:594
+#: ../contrib/command-not-found/pk-command-not-found.c:686
+#: ../contrib/command-not-found/pk-command-not-found.c:695
 msgid "Similar commands are:"
 msgstr "Slične naredbe su:"
 
 #. TRANSLATORS: ask the user to choose a file to run
-#: ../contrib/command-not-found/pk-command-not-found.c:601
+#: ../contrib/command-not-found/pk-command-not-found.c:702
 msgid "Please choose a command to run"
 msgstr "Izaberite naredbu za pokretanje"
 
 #. TRANSLATORS: tell the user what package provides the command
-#: ../contrib/command-not-found/pk-command-not-found.c:616
+#: ../contrib/command-not-found/pk-command-not-found.c:721
 msgid "The package providing this file is:"
 msgstr "Paket koji pruža ovu datoteku je:"
 
 #. TRANSLATORS: as the user if we want to install a package to provide the command
-#: ../contrib/command-not-found/pk-command-not-found.c:621
+#: ../contrib/command-not-found/pk-command-not-found.c:726
 #, c-format
 msgid "Install package '%s' to provide command '%s'?"
 msgstr "Da instaliram paket „%s“ koji pruža naredbu „%s“?"
 
 #. TRANSLATORS: Show the user a list of packages that provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:642
+#: ../contrib/command-not-found/pk-command-not-found.c:747
 msgid "Packages providing this file are:"
 msgstr "Paketi koji pružaju ovu datoteku su:"
 
 #. TRANSLATORS: Show the user a list of packages that they can install to provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:651
+#: ../contrib/command-not-found/pk-command-not-found.c:756
 msgid "Suitable packages are:"
 msgstr "Prikladni paketi su:"
 
 #. get selection
 #. TRANSLATORS: ask the user to choose a file to install
-#: ../contrib/command-not-found/pk-command-not-found.c:659
+#: ../contrib/command-not-found/pk-command-not-found.c:764
 msgid "Please choose a package to install"
 msgstr "Izaberite paket za instalaciju"
 
-#. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/src/contents.cpp:298
-msgid "Getting package information..."
-msgstr "Dobavljam podatke o paketu...."
+#. TRANSLATORS: we are starting to install the packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:187
+#, fuzzy
+msgid "Starting install"
+msgstr "Za instalaciju"
 
-#. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/src/contents.cpp:304
+#. TRANSLATORS: we couldn't find the package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:397
+#, fuzzy, c-format
+msgid "Failed to find the package %s, or already installed: %s"
+msgstr "Paket %s je već instaliran"
+
+#. command line argument, simulate what would be done, but don't actually do it
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:553
+msgid ""
+"Don't actually install any packages, only simulate what would be installed"
+msgstr ""
+
+#. command line argument, do we skip packages that depend on the ones specified
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:556
+msgid "Do not install dependencies of the core packages"
+msgstr ""
+
+#. command line argument, do we operate quietly
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:559
+msgid "Do not display information or progress"
+msgstr ""
+
+#. TRANSLATORS: tool that gets called when the command is not found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:577
+#, fuzzy
+msgid "PackageKit Debuginfo Installer"
+msgstr "Tekstualno sučelje programa PaketKit"
+
+#. TRANSLATORS: the use needs to specify a list of package names on the command line
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:589
+#, fuzzy, c-format
+msgid "ERROR: Specify package names to install."
+msgstr "Morate navesti paket ili datoteku za instalaciju"
+
+#. TRANSLATORS: we are getting the list of repositories
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:623
+#, fuzzy, c-format
+msgid "Getting sources list"
+msgstr "Dobavljam spisak paketa"
+
+#. TRANSLATORS: all completed 100%
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:641
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:681
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:716
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:800
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:844
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:911
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:955
 #, c-format
-msgid "Run %s"
-msgstr "Pokreni %s"
+msgid "OK."
+msgstr ""
 
-#. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/src/contents.cpp:310
-msgid "Installed version"
-msgstr "Instalirana verzija"
+#. TRANSLATORS: tell the user what we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:644
+#, c-format
+msgid "Found %i enabled and %i disabled sources."
+msgstr ""
 
-#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/src/contents.cpp:318
+#. TRANSLATORS: we're finding repositories that match out pattern
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:651
 #, c-format
-msgid "Run version %s now"
-msgstr "Pokreni verziju %s sada"
+msgid "Finding debugging sources"
+msgstr ""
 
-#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/src/contents.cpp:324
-msgid "Run now"
-msgstr "Pokreni sada"
+#. TRANSLATORS: tell the user what we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:684
+#, c-format
+msgid "Found %i disabled debuginfo repos."
+msgstr ""
 
-#. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/src/contents.cpp:330
+#. TRANSLATORS: we're now enabling all the debug sources we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:691
 #, c-format
-msgid "Update to version %s"
-msgstr "Ažuriraj na verziju %s"
+msgid "Enabling debugging sources"
+msgstr ""
 
-#. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/src/contents.cpp:336
+#. TRANSLATORS: operation was not successful
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:701
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:785
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:829
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:896
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:940
+msgid "FAILED."
+msgstr ""
+
+#. TRANSLATORS: tell the user how many we enabled
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:719
 #, c-format
-msgid "Install %s now"
-msgstr "Instaliraj %s sada"
+msgid "Enabled %i debugging sources."
+msgstr ""
 
-#. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/src/contents.cpp:339
-msgid "Version"
-msgstr "Verzija"
+#. TRANSLATORS: we're now finding packages that match in all the repos
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:726
+#, fuzzy, c-format
+msgid "Finding debugging packages"
+msgstr "Traženje imena paketa."
 
-#. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/src/contents.cpp:344
-msgid "No packages found for your system"
-msgstr "Nije pronađen nijedan paket za vaš sistem"
+#. TRANSLATORS: we couldn't find the package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:738
+#, fuzzy, c-format
+msgid "Failed to find the package %s: %s"
+msgstr "Nisam mogao da pronađem paket „%s“: %s"
 
-#. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/src/contents.cpp:349
-msgid "Installing..."
-msgstr "Instaliram..."
+#. TRANSLATORS: we couldn't find the debuginfo package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:761
+#, fuzzy, c-format
+msgid "Failed to find the debuginfo package %s: %s"
+msgstr "Nisam mogao da pronađem paket „%s“: %s"
+
+#. TRANSLATORS: no debuginfo packages could be found to be installed
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:789
+#, fuzzy, c-format
+msgid "Found no packages to install."
+msgstr "Nema novih paketa za instalaciju"
+
+#. TRANSLATORS: tell the user we found some packages, and then list them
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:803
+#, fuzzy, c-format
+msgid "Found %i packages:"
+msgstr "Preuzimanje paketa"
+
+#. TRANSLATORS: tell the user we are searching for deps
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:819
+#, c-format
+msgid "Finding packages that depend on these packages"
+msgstr ""
+
+#. TRANSLATORS: could not install, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:832
+#, fuzzy, c-format
+msgid "Could not find dependant packages: %s"
+msgstr "Ne mogu da pronađem paket"
+
+#. TRANSLATORS: tell the user we found some more packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:848
+#, c-format
+msgid "Found %i extra packages."
+msgstr ""
+
+#. TRANSLATORS: tell the user we found some more packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:852
+#, fuzzy, c-format
+msgid "No extra packages required."
+msgstr "Morate navesti ime paketa"
+
+#. TRANSLATORS: tell the user we found some packages (and deps), and then list them
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:861
+#, fuzzy, c-format
+msgid "Found %i packages to install:"
+msgstr "Nema novih paketa za instalaciju"
+
+#. TRANSLATORS: simulate mode is a testing mode where we quit before the action
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:874
+#, fuzzy, c-format
+msgid "Not installing packages in simulate mode"
+msgstr "Instaliram pakete"
+
+#. TRANSLATORS: could not install, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:899
+#, fuzzy, c-format
+msgid "Could not install packages: %s"
+msgstr "Ova alatka nije mogla instalirati pakete: %s"
+
+#. TRANSLATORS: we are now disabling all debuginfo repos we previously enabled
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:931
+#, c-format
+msgid "Disabling sources previously enabled"
+msgstr ""
+
+#. TRANSLATORS: no debuginfo packages could be found to be installed, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:943
+#, c-format
+msgid "Could not disable the debugging sources: %s"
+msgstr ""
+
+#. TRANSLATORS: we disabled all the debugging repos that we enabled before
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:958
+#, c-format
+msgid "Disabled %i debugging sources."
+msgstr ""
+
+#. TRANSLATORS: couldn't open device to write
+#: ../contrib/device-rebind/pk-device-rebind.c:61
+#, fuzzy
+msgid "Failed to open file"
+msgstr "Datoteka nije pronađena"
+
+#. TRANSLATORS: could not write to the device
+#: ../contrib/device-rebind/pk-device-rebind.c:70
+#, fuzzy
+msgid "Failed to write to the file"
+msgstr "Datoteka nije pronađena"
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:110
+#: ../contrib/device-rebind/pk-device-rebind.c:147
+#, fuzzy
+msgid "Failed to write to device"
+msgstr "Neuspešno zapisivanje na disk"
+
+#. TRANSLATORS: the device could not be found in sysfs
+#: ../contrib/device-rebind/pk-device-rebind.c:175
+#, fuzzy
+msgid "Device could not be found"
+msgstr "Paket nije nađen"
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:202
+#, fuzzy
+msgid "Failed to unregister driver"
+msgstr "Neuspelo pravljenje direktorijuma:"
+
+#. TRANSLATORS: we failed to bind the old driver
+#: ../contrib/device-rebind/pk-device-rebind.c:211
+#, fuzzy
+msgid "Failed to register driver"
+msgstr "Neuspelo pravljenje direktorijuma:"
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:260
+#, fuzzy
+msgid "Device path not found"
+msgstr "Direktorijum nije nađen"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:268
+msgid "Incorrect device path specified"
+msgstr ""
+
+#. command line argument, simulate what would be done, but don't actually do it
+#: ../contrib/device-rebind/pk-device-rebind.c:296
+msgid "Don't actually touch the hardware, only simulate what would be done"
+msgstr ""
+
+#. TRANSLATORS: command line option: a list of files to install
+#: ../contrib/device-rebind/pk-device-rebind.c:299
+msgid "Device paths"
+msgstr ""
+
+#. TRANSLATORS: tool that gets called when the device needs reloading after installing firmware
+#: ../contrib/device-rebind/pk-device-rebind.c:314
+#, fuzzy
+msgid "PackageKit Device Reloader"
+msgstr "Servis PaketKita"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:322
+#, fuzzy
+msgid "You need to specify at least one valid device path"
+msgstr "Moraš navesti vremensku odrednicu"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:332
+msgid "This script can only be used by the root user"
+msgstr ""
+
+#. TRANSLATORS: we're going to verify the path first
+#: ../contrib/device-rebind/pk-device-rebind.c:341
+msgid "Verifying device path"
+msgstr ""
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:346
+#, fuzzy
+msgid "Failed to verify device path"
+msgstr "Datoteka nije pronađena"
+
+#. TRANSLATORS: we're going to try
+#: ../contrib/device-rebind/pk-device-rebind.c:360
+msgid "Attempting to rebind device"
+msgstr ""
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:365
+#, fuzzy
+msgid "Failed to rebind device"
+msgstr "Neuspelo pravljenje direktorijuma:"
 
 #: ../data/packagekit-catalog.xml.in.h:1
 msgid "PackageKit Catalog"
@@ -923,25 +1281,31 @@ msgstr "PaketKit spisak paketa"
 msgid "PackageKit Service Pack"
 msgstr "Servis PaketKita"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:1
+#. SECURITY:
+#. - Normal users do not require admin authentication to accept new
+#. licence agreements.
+#. - Change this to 'auth_admin' for environments where users should not
+#. be given the option to make legal decisions.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:7
 msgid "Accept EULA"
 msgstr "Prihvati licencu"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:2
+#: ../policy/org.freedesktop.packagekit.policy.in.h:8
 msgid "Authentication is required to accept a EULA"
 msgstr "Neophodna je autentifikacija za prihvatanje licence"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:3
+#: ../policy/org.freedesktop.packagekit.policy.in.h:9
 msgid ""
 "Authentication is required to cancel a task that was not started by yourself"
 msgstr ""
 "Neophodna je autentifikacija za otkazivanje posla kojeg niste vi pokrenuli"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:4
+#: ../policy/org.freedesktop.packagekit.policy.in.h:10
 msgid "Authentication is required to change software source parameters"
 msgstr "Neophodna je autentifikacija za izmenu postavki skladišta softvera"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:5
+#: ../policy/org.freedesktop.packagekit.policy.in.h:11
 msgid ""
 "Authentication is required to consider a key used for signing packages as "
 "trusted"
@@ -949,28 +1313,33 @@ msgstr ""
 "Neophodna je autentifikacija da bise ključ korišćen za potpisivanje paketa "
 "smatrao verodostojnim"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:6
+#: ../policy/org.freedesktop.packagekit.policy.in.h:12
 msgid "Authentication is required to install a signed package"
 msgstr "Neophodna je autentifikacija za instalaciju potpisanog paketa"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:7
+#: ../policy/org.freedesktop.packagekit.policy.in.h:13
 msgid "Authentication is required to install an untrusted package"
 msgstr ""
 "Neophodna je autentifikacija za instalaciju paketa iz neproverenog izvora"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:8
+#: ../policy/org.freedesktop.packagekit.policy.in.h:14
 msgid "Authentication is required to refresh the system sources"
 msgstr "Neophodna je autentifikacija za osvežavanje sistemskih riznica"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:9
+#: ../policy/org.freedesktop.packagekit.policy.in.h:15
+#, fuzzy
+msgid "Authentication is required to reload the device with a new driver"
+msgstr "Neophodna je autentifikacija za osvežavanje sistemskih riznica"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:16
 msgid "Authentication is required to remove packages"
 msgstr "Neophodna je autentifikacija za uklanjanje paketa"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:10
+#: ../policy/org.freedesktop.packagekit.policy.in.h:17
 msgid "Authentication is required to rollback a transaction"
 msgstr "Neophodna je autentifikacija za poništavanje sve-ili-ništa promena"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:11
+#: ../policy/org.freedesktop.packagekit.policy.in.h:18
 msgid ""
 "Authentication is required to set the network proxy used for downloading "
 "packages"
@@ -978,47 +1347,115 @@ msgstr ""
 "Neophodna je autentifikacija  kako bise namestio mrežni posrednik korišćen "
 "za preuzimanje paketa"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:12
+#: ../policy/org.freedesktop.packagekit.policy.in.h:19
 msgid "Authentication is required to update packages"
 msgstr "Neophodna je autentifikacija za ažuriranje paketa"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:13
+#. SECURITY:
+#. - Normal users are allowed to cancel their own task without
+#. authentication, but a different user id needs the admin password
+#. to cancel another users task.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:25
 msgid "Cancel foreign task"
 msgstr "Otkaži strani posao"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:14
+#. SECURITY:
+#. - Normal users require admin authentication to enable or disable
+#. software sources as this can be used to enable new updates or
+#. install different versions of software.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:31
 msgid "Change software source parameters"
 msgstr "Promeni postavke skladišta softvera"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:15
+#. SECURITY:
+#. - Normal users do not need authentication to install signed packages
+#. from signed repositories, as this cannot exploit a system.
+#. - Paranoid users (or parents!) can change this to 'auth_admin' or
+#. 'auth_admin_keep'.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:38
 msgid "Install signed package"
 msgstr "Instaliraj potpisani paket"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:16
+#. SECURITY:
+#. - Normal users require admin authentication to install untrusted or
+#. unrecognised packages, as allowing users to do this without a
+#. password would be a massive security hole.
+#. - This is not retained as each package should be authenticated.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:45
 msgid "Install untrusted local file"
 msgstr "Instaliraj neoverenu lokalnu datoteku"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:17
+#. SECURITY:
+#. - Normal users do not require admin authentication to refresh the
+#. cache, as this doesn't actually install or remove software.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:50
 msgid "Refresh system sources"
 msgstr "Osveži sistemske riznice"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:18
+#. SECURITY:
+#. - Normal users require admin authentication to rebind a driver
+#. so that it works after we install firmware.
+#. - This should not be set to 'yes' as unprivileged users could then
+#. try to rebind drivers in use, for instance security authentication
+#. devices.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:58
+msgid "Reload a device"
+msgstr ""
+
+#. SECURITY:
+#. - Normal users require admin authentication to remove packages as
+#. this can make the system unbootable or stop other applications from
+#. working.
+#. - Be sure to close the tool used to remove the packages after the
+#. admin authentication has been obtained, otherwise packages can still
+#. be removed. If this is not possible, change this authentication to
+#. 'auth_admin'.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:68
 msgid "Remove package"
 msgstr "Ukloni paket"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:19
+#. SECURITY:
+#. - Normal users require admin authentication to rollback system state
+#. as this will change a large number of packages, and could expose the
+#. system to previously patched security vulnerabilities.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:74
 msgid "Rollback to a previous transaction"
 msgstr "Vrati se na stanje prethodne promene"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:20
+#. SECURITY:
+#. - Normal users do not require admin authentication to set the proxy
+#. used for downloading packages.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:79
 msgid "Set network proxy"
 msgstr "Postavi mrežnog posrednika"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:21
+#. SECURITY:
+#. - Normal users require admin authentication to add signing keys.
+#. - This implies adding an explicit trust, and should not be granted
+#. without a secure authentication.
+#. - This is not kept as each package should be authenticated.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:86
 msgid "Trust a key used for signing packages"
 msgstr "Veruj ključu korišćenom za potpisivanje paketa"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:22
+#. SECURITY:
+#. - Normal users do not require admin authentication to update the
+#. system as the packages will be signed, and the action is required
+#. to update the system when unattended.
+#. - Changing this to anything other than 'yes' will break unattended
+#. updates.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:94
 msgid "Update packages"
 msgstr "Ažuriraj pakete"
 
@@ -1047,60 +1484,98 @@ msgstr ""
 "direktorijum:"
 
 #. TRANSLATORS: a backend is the system package tool, e.g. yum, apt
-#: ../src/pk-main.c:195
+#: ../src/pk-main.c:205
 msgid "Packaging backend to use, e.g. dummy"
 msgstr "Pozadinski sistem u upotrebi, npr. „dummy“ (probni)"
 
 #. TRANSLATORS: if we should run in the background
-#: ../src/pk-main.c:198
+#: ../src/pk-main.c:208
 msgid "Daemonize and detach from the terminal"
 msgstr "Odvoji od terminala i nastavi rad kao uslužni program"
 
 #. TRANSLATORS: if we should not monitor how long we are inactive for
-#: ../src/pk-main.c:204
+#: ../src/pk-main.c:214
 msgid "Disable the idle timer"
 msgstr "Onemogući merač čekanja"
 
 #. TRANSLATORS: show version
-#: ../src/pk-main.c:207
+#: ../src/pk-main.c:217
 msgid "Show version and exit"
 msgstr "Prikaži verziju i završi rad"
 
 #. TRANSLATORS: exit after we've started up, used for user profiling
-#: ../src/pk-main.c:210
+#: ../src/pk-main.c:220
 msgid "Exit after a small delay"
 msgstr "Izađi posle kratke zadrške"
 
 #. TRANSLATORS: exit straight away, used for automatic profiling
-#: ../src/pk-main.c:213
+#: ../src/pk-main.c:223
 msgid "Exit after the engine has loaded"
 msgstr "Završi rad nakon što se učita pozadinski sistem"
 
 #. TRANSLATORS: describing the service that is running
-#: ../src/pk-main.c:228
+#: ../src/pk-main.c:238
 msgid "PackageKit service"
 msgstr "Servis PaketKita"
 
 #. TRANSLATORS: fatal error, dbus is not running
-#: ../src/pk-main.c:265
+#: ../src/pk-main.c:275
 msgid "Cannot connect to the system bus"
 msgstr "Ne mogu da se povežem na sistemsku magistralu"
 
-#. TRANSLATORS: cannot register on system bus, unknown reason
-#: ../src/pk-main.c:317
-#, c-format
+#. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error follows
+#: ../src/pk-main.c:334
 msgid "Error trying to start:"
 msgstr "Greška pri pokretanju:"
 
+#: ../src/pk-polkit-action-lookup.c:147
+#, fuzzy
+msgid "To install debugging packages, extra sources need to be enabled"
+msgstr "Nema novih paketa za instalaciju"
+
+#. TRANSLATORS: is not GPG signed
+#: ../src/pk-polkit-action-lookup.c:168 ../src/pk-polkit-action-lookup.c:187
+msgid "The software is not from a trusted source."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:173
+msgid "Do not update this package unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:174
+msgid "Do not update these packages unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:192
+msgid "Do not install this package unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:193
+msgid "Do not install these packages unless you are sure it is safe to do so."
+msgstr ""
+
+#. TRANSLATORS: warn the user that all bets are off
+#: ../src/pk-polkit-action-lookup.c:199
+msgid "Malicious software can damage your computer or cause other harm."
+msgstr ""
+
+#. TRANSLATORS: too many packages to list each one
+#: ../src/pk-polkit-action-lookup.c:274
+#, fuzzy
+msgid "Many packages"
+msgstr "Ažuriraj pakete"
+
+#. TRANSLATORS: if the transaction is forced to install only trusted packages
+#: ../src/pk-polkit-action-lookup.c:334
+msgid "Only trusted"
+msgstr ""
+
 #~ msgid "You need to specify a search type, e.g. name"
 #~ msgstr "Morate navesti vrstu pretrage, npr. ime"
 
 #~ msgid "You need to specify a search term"
 #~ msgstr "Morate navesti termin za pretragu"
 
-#~ msgid "You need to specify a package or file to install"
-#~ msgstr "Morate navesti paket ili datoteku za instalaciju"
-
 #~ msgid "You need to specify a package to remove"
 #~ msgstr "Moraš navesti paket za uklanjanje"
 
@@ -1123,10 +1598,6 @@ msgstr "Greška pri pokretanju:"
 #~ msgstr "Morate navesti ime paketa za prikaz spiska datoteka"
 
 #, fuzzy
-#~ msgid "You need to specify a list file to create"
-#~ msgstr "Moraš navesti vremensku odrednicu"
-
-#, fuzzy
 #~ msgid "You need to specify a list file to open"
 #~ msgstr "Moraš navesti vremensku odrednicu"
 
@@ -1164,9 +1635,6 @@ msgstr "Greška pri pokretanju:"
 #~ msgid "Could not find details for"
 #~ msgstr "Ne mogu da pribavim spisak datoteka iz ovog paketa"
 
-#~ msgid "Could not find a package match"
-#~ msgstr "Ne mogu da pronađem paket"
-
 #, fuzzy
 #~ msgid "Could not set database readonly"
 #~ msgstr "Ne mogu da otvorim bazu: %s"
diff --git a/po/sv.po b/po/sv.po
index 5b03edb..286d676 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: packagekit\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-07-27 19:56+0000\n"
+"POT-Creation-Date: 2009-08-24 11:06+0100\n"
 "PO-Revision-Date: 2009-07-28 00:12+0100\n"
 "Last-Translator: Daniel Nylander <po at danielnylander.se>\n"
 "Language-Team: Swedish <tp-sv at listor.tp-sv.se>\n"
@@ -17,687 +17,667 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
 
 #. TRANSLATORS: this is an atomic transaction
-#: ../client/pk-console.c:231
+#: ../client/pk-console.c:235
 msgid "Transaction"
 msgstr "Transaktion"
 
 #. TRANSLATORS: this is the time the transaction was started in system timezone
-#: ../client/pk-console.c:233
+#: ../client/pk-console.c:237
 msgid "System time"
 msgstr "Systemtid"
 
 #. TRANSLATORS: this is if the transaction succeeded or not
-#: ../client/pk-console.c:235
+#: ../client/pk-console.c:239
 msgid "Succeeded"
 msgstr "Lyckades"
 
 #. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:235
-#: ../client/pk-console.c:402
+#: ../client/pk-console.c:239 ../client/pk-console.c:406
 msgid "True"
 msgstr "Sant"
 
-#: ../client/pk-console.c:235
-#: ../client/pk-console.c:402
+#: ../client/pk-console.c:239 ../client/pk-console.c:406
 msgid "False"
 msgstr "Falskt"
 
 #. TRANSLATORS: this is the transactions role, e.g. "update-system"
 #. TRANSLATORS: the trasaction role, e.g. update-system
-#: ../client/pk-console.c:237
-#: ../src/pk-polkit-action-lookup.c:297
+#: ../client/pk-console.c:241 ../src/pk-polkit-action-lookup.c:327
 msgid "Role"
 msgstr "Roll"
 
 #. TRANSLATORS: this is The duration of the transaction
-#: ../client/pk-console.c:242
+#: ../client/pk-console.c:246
 msgid "Duration"
 msgstr "Längd"
 
-#: ../client/pk-console.c:242
+#: ../client/pk-console.c:246
 msgid "(seconds)"
 msgstr "(sekunder)"
 
 #. TRANSLATORS: this is The command line used to do the action
 #. TRANSLATORS: the command line of the thing that wants the authentication
-#: ../client/pk-console.c:246
-#: ../src/pk-polkit-action-lookup.c:311
+#: ../client/pk-console.c:250 ../src/pk-polkit-action-lookup.c:341
 msgid "Command line"
 msgstr "Kommandorad"
 
 #. TRANSLATORS: this is the user ID of the user that started the action
-#: ../client/pk-console.c:248
+#: ../client/pk-console.c:252
 msgid "User ID"
 msgstr "Användar-id"
 
 #. TRANSLATORS: this is the username, e.g. hughsie
-#: ../client/pk-console.c:255
+#: ../client/pk-console.c:259
 msgid "Username"
 msgstr "Användarnamn"
 
 #. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
-#: ../client/pk-console.c:259
+#: ../client/pk-console.c:263
 msgid "Real name"
 msgstr "Verkligt namn"
 
-#: ../client/pk-console.c:267
+#: ../client/pk-console.c:271
 msgid "Affected packages:"
 msgstr "PÃ¥verkade paket:"
 
-#: ../client/pk-console.c:269
+#: ../client/pk-console.c:273
 msgid "Affected packages: None"
 msgstr "PÃ¥verkade paket: Inga"
 
 #. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:294
+#: ../client/pk-console.c:298
 msgid "Distribution"
 msgstr "Distribution"
 
 #. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:296
+#: ../client/pk-console.c:300
 msgid "Type"
 msgstr "Typ"
 
 #. TRANSLATORS: this is any summary text describing the upgrade
 #. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:298
-#: ../client/pk-console.c:321
+#: ../client/pk-console.c:302 ../client/pk-console.c:325
 msgid "Summary"
 msgstr "Sammandrag"
 
 #. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:310
+#: ../client/pk-console.c:314
 msgid "Category"
 msgstr "Kategori"
 
 #. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:312
+#: ../client/pk-console.c:316
 msgid "ID"
 msgstr "ID"
 
 #. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:315
+#: ../client/pk-console.c:319
 msgid "Parent"
 msgstr "Förälder"
 
 #. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:318
+#: ../client/pk-console.c:322
 msgid "Name"
 msgstr "Namn"
 
 #. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:324
+#: ../client/pk-console.c:328
 msgid "Icon"
 msgstr "Ikon"
 
 #. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:339
+#: ../client/pk-console.c:343
 msgid "Details about the update:"
 msgstr "Detaljer om uppdateringen:"
 
 #. TRANSLATORS: details about the update, package name and version
 #. TRANSLATORS: title, the names of the packages that the method is processing
-#: ../client/pk-console.c:341
-#: ../src/pk-polkit-action-lookup.c:322
+#: ../client/pk-console.c:345 ../src/pk-polkit-action-lookup.c:352
 msgid "Package"
 msgid_plural "Packages"
 msgstr[0] "Paket"
 msgstr[1] "Paket"
 
 #. TRANSLATORS: details about the update, any packages that this update updates
-#: ../client/pk-console.c:344
+#: ../client/pk-console.c:348
 msgid "Updates"
 msgstr "Uppdaterar"
 
 #. TRANSLATORS: details about the update, any packages that this update obsoletes
-#: ../client/pk-console.c:348
+#: ../client/pk-console.c:352
 msgid "Obsoletes"
 msgstr "Föräldrar"
 
 #. TRANSLATORS: details about the update, the vendor URLs
-#: ../client/pk-console.c:352
+#: ../client/pk-console.c:356
 msgid "Vendor"
 msgstr "Leverantör"
 
 #. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:356
+#: ../client/pk-console.c:360
 msgid "Bugzilla"
 msgstr "Bugzilla"
 
 #. TRANSLATORS: details about the update, the CVE URLs
-#: ../client/pk-console.c:360
+#: ../client/pk-console.c:364
 msgid "CVE"
 msgstr "CVE"
 
 #. TRANSLATORS: details about the update, if the package requires a restart
-#: ../client/pk-console.c:364
+#: ../client/pk-console.c:368
 msgid "Restart"
 msgstr "Omstart"
 
 #. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:368
+#: ../client/pk-console.c:372
 msgid "Update text"
 msgstr "Uppdateringstext"
 
 #. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:372
+#: ../client/pk-console.c:376
 msgid "Changes"
 msgstr "Ändringar"
 
 #. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:376
+#: ../client/pk-console.c:380
 msgid "State"
 msgstr "Tillstånd"
 
 #. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:381
+#: ../client/pk-console.c:385
 msgid "Issued"
 msgstr "Utfärdad"
 
 #. TRANSLATORS: details about the update, date the update was updated
-#: ../client/pk-console.c:386
+#: ../client/pk-console.c:390
 msgid "Updated"
 msgstr "Uppdaterad"
 
-#: ../client/pk-console.c:473
-#: ../client/pk-console.c:475
+#: ../client/pk-console.c:477 ../client/pk-console.c:479
 msgid "Percentage"
 msgstr "Procentandel"
 
-#: ../client/pk-console.c:475
+#: ../client/pk-console.c:479
 msgid "Unknown"
 msgstr "Okänt"
 
 #. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:517
+#: ../client/pk-console.c:521
 msgid "System restart required by:"
 msgstr "Omstart av systemet krävs:"
 
 #. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:520
+#: ../client/pk-console.c:524
 msgid "Session restart required:"
 msgstr "Omstart av sessionen krävs:"
 
 #. TRANSLATORS: a package requires the system to be restarted due to a security update
-#: ../client/pk-console.c:523
+#: ../client/pk-console.c:527
 msgid "System restart (security) required by:"
 msgstr "Omstart av systemet (säkerhet) krävs av:"
 
 #. TRANSLATORS: a package requires the session to be restarted due to a security update
-#: ../client/pk-console.c:526
+#: ../client/pk-console.c:530
 msgid "Session restart (security) required:"
 msgstr "Omstart av sessionen (säkerhet) krävs:"
 
 #. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:529
+#: ../client/pk-console.c:533
 msgid "Application restart required by:"
 msgstr "Omstart av program krävs av:"
 
 #. TRANSLATORS: a package needs to restart their system
-#: ../client/pk-console.c:584
+#: ../client/pk-console.c:588
 msgid "Please restart the computer to complete the update."
 msgstr "Starta om datorn för att färdigställa uppdateringen."
 
 #. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:587
+#: ../client/pk-console.c:591
 msgid "Please logout and login to complete the update."
 msgstr "Logga ut och logga in igen för att färdigställa uppdateringen."
 
 #. TRANSLATORS: a package needs to restart the application
-#: ../client/pk-console.c:590
+#: ../client/pk-console.c:594
 msgid "Please restart the application as it is being used."
 msgstr "Starta om programmet eftersom det används för tillfället."
 
 #. TRANSLATORS: a package needs to restart their system (due to security)
-#: ../client/pk-console.c:593
-msgid "Please restart the computer to complete the update as important security updates have been installed."
-msgstr "Starta om datorn för att färdigställa uppdateringen eftersom viktiga säkerhetsuppdateringar har installerats."
+#: ../client/pk-console.c:597
+msgid ""
+"Please restart the computer to complete the update as important security "
+"updates have been installed."
+msgstr ""
+"Starta om datorn för att färdigställa uppdateringen eftersom viktiga "
+"säkerhetsuppdateringar har installerats."
 
 #. TRANSLATORS: a package needs to restart the session (due to security)
-#: ../client/pk-console.c:596
-msgid "Please logout and login to complete the update as important security updates have been installed."
-msgstr "Logga ut och logga in igen för att färdigställa uppdateringen eftersom viktiga säkerhetsuppdateringar har installerats."
+#: ../client/pk-console.c:600
+msgid ""
+"Please logout and login to complete the update as important security updates "
+"have been installed."
+msgstr ""
+"Logga ut och logga in igen för att färdigställa uppdateringen eftersom "
+"viktiga säkerhetsuppdateringar har installerats."
 
 #. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:723
+#: ../client/pk-console.c:727
 #, c-format
 msgid "The package %s is already installed"
 msgstr "Paketet %s är redan installerat"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:731
+#: ../client/pk-console.c:735
 #, c-format
 msgid "The package %s could not be installed: %s"
 msgstr "Paketet %s kunde inte installeras: %s"
 
 #. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
-#: ../client/pk-console.c:756
-#: ../client/pk-console.c:779
-#: ../client/pk-console.c:875
-#: ../client/pk-console.c:992
-#: ../client/pk-tools-common.c:62
-#: ../client/pk-tools-common.c:81
+#: ../client/pk-console.c:760 ../client/pk-console.c:783
+#: ../client/pk-console.c:879 ../client/pk-console.c:996
+#: ../client/pk-tools-common.c:62 ../client/pk-tools-common.c:81
 #: ../client/pk-tools-common.c:89
 #, c-format
 msgid "Internal error: %s"
 msgstr "Internt fel: %s"
 
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:764
-#: ../client/pk-console.c:1388
+#: ../client/pk-console.c:768 ../client/pk-console.c:1392
 #, c-format
 msgid "This tool could not install the packages: %s"
 msgstr "Detta verktyg kunde inte installera paketen: %s"
 
 #. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:787
+#: ../client/pk-console.c:791
 #, c-format
 msgid "This tool could not install the files: %s"
 msgstr "Detta verktyg kunde inte installera filerna: %s"
 
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:843
+#: ../client/pk-console.c:847
 #, c-format
 msgid "This tool could not remove %s: %s"
 msgstr "Detta verktyg kunde inte ta bort %s: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:866
-#: ../client/pk-console.c:904
-#: ../client/pk-console.c:937
+#: ../client/pk-console.c:870 ../client/pk-console.c:908
+#: ../client/pk-console.c:941
 #, c-format
 msgid "This tool could not remove the packages: %s"
 msgstr "Detta verktyg kunde inte ta bort paketen: %s"
 
 #. TRANSLATORS: When removing, we might have to remove other dependencies
-#: ../client/pk-console.c:916
+#: ../client/pk-console.c:920
 msgid "The following packages have to be removed:"
 msgstr "Följande paket måste tas bort:"
 
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:923
+#: ../client/pk-console.c:927
 msgid "Proceed removing additional packages?"
 msgstr "Fortsätt med att ta bort ytterligare paket?"
 
 #. TRANSLATORS: We did not remove any packages
-#: ../client/pk-console.c:928
+#: ../client/pk-console.c:932
 msgid "The package removal was canceled!"
 msgstr "Paketborttagningen avbröts!"
 
 #. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:969
+#: ../client/pk-console.c:973
 #, c-format
 msgid "This tool could not download the package %s as it could not be found"
 msgstr "Detta verktyg kunde inte hämta paketet %s eftersom det inte hittades"
 
 #. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:1000
+#: ../client/pk-console.c:1004
 #, c-format
 msgid "This tool could not download the packages: %s"
 msgstr "Detta verktyg kunde inte hämta paketen: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1027
-#: ../client/pk-console.c:1036
+#: ../client/pk-console.c:1031 ../client/pk-console.c:1040
 #, c-format
 msgid "This tool could not update %s: %s"
 msgstr "Detta verktyg kunde inte uppdatera %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1058
-#: ../client/pk-console.c:1066
+#: ../client/pk-console.c:1062 ../client/pk-console.c:1070
 #, c-format
 msgid "This tool could not get the requirements for %s: %s"
 msgstr "Detta verktyg kunde inte få tag på kraven för %s: %s"
 
 #. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:1088
-#: ../client/pk-console.c:1096
+#: ../client/pk-console.c:1092 ../client/pk-console.c:1100
 #, c-format
 msgid "This tool could not get the dependencies for %s: %s"
 msgstr "Detta verktyg kunde inte få tag på beroenden för detta %s: %s"
 
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:1118
-#: ../client/pk-console.c:1126
+#: ../client/pk-console.c:1122 ../client/pk-console.c:1130
 #, c-format
 msgid "This tool could not get package details for %s: %s"
 msgstr "Detta verktyg kunde inte få tag på paketdetaljerna för %s: %s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1148
+#: ../client/pk-console.c:1152
 #, c-format
 msgid "This tool could not find the files for %s: %s"
 msgstr "Detta verktyg kunde inte hitta filerna för %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1156
+#: ../client/pk-console.c:1160
 #, c-format
 msgid "This tool could not get the file list for %s: %s"
 msgstr "Detta verktyg kunde inte få tag på fillistan för %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of packages. The filename follows
-#: ../client/pk-console.c:1178
+#: ../client/pk-console.c:1182
 #, c-format
 msgid "File already exists: %s"
 msgstr "Filen finns redan: %s"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1183
-#: ../client/pk-console.c:1239
-#: ../client/pk-console.c:1314
+#: ../client/pk-console.c:1187 ../client/pk-console.c:1243
+#: ../client/pk-console.c:1318
 msgid "Getting package list"
 msgstr "Hämtar paketlista"
 
 #. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1189
-#: ../client/pk-console.c:1245
-#: ../client/pk-console.c:1320
+#: ../client/pk-console.c:1193 ../client/pk-console.c:1249
+#: ../client/pk-console.c:1324
 #, c-format
 msgid "This tool could not get package list: %s"
 msgstr "Detta verktyg kunde inte få tag på paketlistan: %s"
 
 #. TRANSLATORS: There was an error saving the list
-#: ../client/pk-console.c:1200
+#: ../client/pk-console.c:1204
 #, c-format
 msgid "Failed to save to disk"
 msgstr "Misslyckades med att spara till disk"
 
 #. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1234
-#: ../client/pk-console.c:1309
+#: ../client/pk-console.c:1238 ../client/pk-console.c:1313
 #, c-format
 msgid "File does not exist: %s"
 msgstr "Filen finns inte: %s"
 
 #. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1266
+#: ../client/pk-console.c:1270
 msgid "Packages to add"
 msgstr "Paket att lägga till"
 
 #. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1274
+#: ../client/pk-console.c:1278
 msgid "Packages to remove"
 msgstr "Paket att ta bort"
 
 #. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1342
+#: ../client/pk-console.c:1346
 #, c-format
 msgid "No new packages need to be installed"
 msgstr "Inga nya paket behöver installeras"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1348
+#: ../client/pk-console.c:1352
 msgid "To install"
 msgstr "Att installera"
 
 #. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1360
+#: ../client/pk-console.c:1364
 msgid "Searching for package: "
 msgstr "Söker efter paket: "
 
 #. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1364
+#: ../client/pk-console.c:1368
 msgid "not found."
 msgstr "hittades inte."
 
 #. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1375
+#: ../client/pk-console.c:1379
 #, c-format
 msgid "No packages can be found to install"
 msgstr "Inga paket hittades för installation"
 
 #. TRANSLATORS: installing new packages from package list
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
-#: ../client/pk-console.c:1381
+#: ../client/pk-console.c:1385
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:886
 #, c-format
 msgid "Installing packages"
 msgstr "Installerar paket"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1417
+#: ../client/pk-console.c:1421
 #, c-format
 msgid "This tool could not find the update details for %s: %s"
 msgstr "Detta verktyg kunde inte hitta uppdateringsdetaljer för %s: %s"
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1425
+#: ../client/pk-console.c:1429
 #, c-format
 msgid "This tool could not get the update details for %s: %s"
 msgstr "Detta verktyg kunde inte få tag på uppdateringsdetaljer för %s: %s"
 
 #. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
-#: ../client/pk-console.c:1456
+#: ../client/pk-console.c:1460
 msgid "Error:"
 msgstr "Fel:"
 
 #. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1470
+#: ../client/pk-console.c:1474
 msgid "Package description"
 msgstr "Paketbeskrivning"
 
 #. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
-#: ../client/pk-console.c:1486
+#: ../client/pk-console.c:1490
 msgid "Message:"
 msgstr "Meddelande:"
 
 #. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1514
+#: ../client/pk-console.c:1518
 msgid "Package files"
 msgstr "Paketfiler"
 
 #. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1522
+#: ../client/pk-console.c:1526
 msgid "No files"
 msgstr "Inga filer"
 
 #. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1545
+#: ../client/pk-console.c:1549
 msgid "Repository signature required"
 msgstr "Förrådssignatur krävs"
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1555
+#: ../client/pk-console.c:1559
 msgid "Do you accept this signature?"
 msgstr "Godkänner du denna signatur?"
 
 #. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1559
+#: ../client/pk-console.c:1563
 msgid "The signature was not accepted."
 msgstr "Signaturen godkändes inte."
 
 #. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1593
+#: ../client/pk-console.c:1597
 msgid "End user license agreement required"
 msgstr "Godkännande av slutanvändaravtal krävs"
 
 #. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1600
+#: ../client/pk-console.c:1604
 msgid "Do you agree to this license?"
 msgstr "Godkänner du denna licens?"
 
 #. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1604
+#: ../client/pk-console.c:1608
 msgid "The license was refused."
 msgstr "Licensen nekades."
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1633
+#: ../client/pk-console.c:1637
 msgid "The daemon crashed mid-transaction!"
 msgstr "Demonen kraschade mitt under transaktionen!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1686
+#: ../client/pk-console.c:1690
 msgid "PackageKit Console Interface"
 msgstr "Konsollgränssnitt för PackageKit"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1688
+#: ../client/pk-console.c:1692
 msgid "Subcommands:"
 msgstr "Underkommandon:"
 
 #. TRANSLATORS: command line argument, if we should show debugging information
 #. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:1781
-#: ../client/pk-generate-pack.c:185
+#: ../client/pk-console.c:1785 ../client/pk-generate-pack.c:185
 #: ../client/pk-monitor.c:128
-#: ../contrib/command-not-found/pk-command-not-found.c:610
+#: ../contrib/command-not-found/pk-command-not-found.c:616
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:550
-#: ../src/pk-main.c:211
+#: ../contrib/device-rebind/pk-device-rebind.c:293 ../src/pk-main.c:211
 msgid "Show extra debugging information"
 msgstr "Visa extra felsökningsinformation"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1784
-#: ../client/pk-monitor.c:130
+#: ../client/pk-console.c:1788 ../client/pk-monitor.c:130
 msgid "Show the program version and exit"
 msgstr "Visa programversion och avsluta"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1787
+#: ../client/pk-console.c:1791
 msgid "Set the filter, e.g. installed"
 msgstr "Ange filtret, t.ex. installed"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1790
+#: ../client/pk-console.c:1794
 msgid "Exit without waiting for actions to complete"
 msgstr "Avsluta utan att vänta på att åtgärder ska färdigställas"
 
 #. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:1817
+#: ../client/pk-console.c:1821
 msgid "This tool could not connect to system DBUS."
 msgstr "Detta verktyg kunde inte ansluta till systemets DBUS."
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1907
+#: ../client/pk-console.c:1911
 msgid "The filter specified was invalid"
 msgstr "Angivet filter var ogiltigt"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1926
+#: ../client/pk-console.c:1930
 msgid "A search type is required, e.g. name"
 msgstr "En söktyp krävs, t.ex. namn"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1933
-#: ../client/pk-console.c:1942
-#: ../client/pk-console.c:1951
-#: ../client/pk-console.c:1960
+#: ../client/pk-console.c:1937 ../client/pk-console.c:1946
+#: ../client/pk-console.c:1955 ../client/pk-console.c:1964
 msgid "A search term is required"
 msgstr "Ett sökvillkor krävs"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1967
+#: ../client/pk-console.c:1971
 msgid "Invalid search type"
 msgstr "Ogiltig söktyp"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1973
+#: ../client/pk-console.c:1977
 msgid "A package name or filename to install is required"
 msgstr "Ett paketnamn eller filnamn att installera krävs"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1982
+#: ../client/pk-console.c:1986
 msgid "A type, key_id and package_id are required"
 msgstr "En type, key_id och package_id krävs"
 
 #. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:1991
+#: ../client/pk-console.c:1995
 msgid "A package name to remove is required"
 msgstr "Ett paketnamn att ta bort krävs"
 
 #. TRANSLATORS: the user did not specify anything about what to download or where
-#: ../client/pk-console.c:1999
+#: ../client/pk-console.c:2003
 msgid "A destination directory and the package names to download are required"
 msgstr "En målkatalog och paketnamn att hämta ner krävs"
 
 #. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:2006
+#: ../client/pk-console.c:2010
 msgid "Directory not found"
 msgstr "Katalogen hittades inte"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2014
+#: ../client/pk-console.c:2018
 msgid "A licence identifier (eula-id) is required"
 msgstr "En licensidentifierare (eula-id) krävs"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2024
+#: ../client/pk-console.c:2028
 msgid "A transaction identifier (tid) is required"
 msgstr "En transaktionsidentifierare (tid) krävs"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:2041
+#: ../client/pk-console.c:2045
 msgid "A package name to resolve is required"
 msgstr "Ett paketnamn att slå upp krävs"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:2050
-#: ../client/pk-console.c:2059
+#: ../client/pk-console.c:2054 ../client/pk-console.c:2063
 msgid "A repository name is required"
 msgstr "Ett förrådsnamn krävs"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2068
+#: ../client/pk-console.c:2072
 msgid "A repo name, parameter and value are required"
 msgstr "Ett förrådsnamn, parameter och värde krävs"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:2082
+#: ../client/pk-console.c:2086
 msgid "An action, e.g. 'update-system' is required"
 msgstr "En åtgärd, t.ex. \"update-system\" krävs"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:2089
+#: ../client/pk-console.c:2093
 msgid "A correct role is required"
 msgstr "En korrekt roll krävs"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2096
+#: ../client/pk-console.c:2100
 msgid "Failed to get the time since this action was last completed"
 msgstr "Misslyckades med att få tiden sedan denna åtgärd senast färdigställdes"
 
 #. TRANSLATORS: The user did not provide a package name
 #. TRANSLATORS: This is when the user fails to supply the package name
-#: ../client/pk-console.c:2106
-#: ../client/pk-console.c:2118
-#: ../client/pk-console.c:2127
-#: ../client/pk-console.c:2145
-#: ../client/pk-console.c:2154
-#: ../client/pk-generate-pack.c:241
+#: ../client/pk-console.c:2110 ../client/pk-console.c:2122
+#: ../client/pk-console.c:2131 ../client/pk-console.c:2149
+#: ../client/pk-console.c:2158 ../client/pk-generate-pack.c:241
 msgid "A package name is required"
 msgstr "Ett paketnamn krävs"
 
 #. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:2136
+#: ../client/pk-console.c:2140
 msgid "A package provide string is required"
 msgstr "En sträng för vad paketet tillhandahåller krävs"
 
 #. TRANSLATORS: The user didn't specify a filename to create as a list
-#: ../client/pk-console.c:2163
+#: ../client/pk-console.c:2167
 msgid "A list file name to create is required"
 msgstr "Ett listfilnamn att skapa krävs"
 
 #. TRANSLATORS: The user didn't specify a filename to open as a list
-#: ../client/pk-console.c:2173
-#: ../client/pk-console.c:2183
+#: ../client/pk-console.c:2177 ../client/pk-console.c:2187
 msgid "A list file to open is required"
 msgstr "En listfil att öppna krävs"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2237
+#: ../client/pk-console.c:2241
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "Flaggan \"%s\" stöds inte"
 
 #. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2250
+#: ../client/pk-console.c:2254
 msgid "Incorrect privileges for this operation"
 msgstr "Felaktig behörighet för denna åtgärd"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2253
+#: ../client/pk-console.c:2257
 msgid "Command failed"
 msgstr "Kommandot misslyckades"
 
@@ -723,8 +703,11 @@ msgstr "Ange filnamnet för beroenden att undanta"
 
 #. TRANSLATORS: the output location
 #: ../client/pk-generate-pack.c:191
-msgid "The output file or directory (the current directory is used if ommitted)"
-msgstr "Fil eller katalog för utdata (den aktuella katalogen används om den inte anges)"
+msgid ""
+"The output file or directory (the current directory is used if ommitted)"
+msgstr ""
+"Fil eller katalog för utdata (den aktuella katalogen används om den inte "
+"anges)"
 
 #. TRANSLATORS: put a list of packages in the pack
 #: ../client/pk-generate-pack.c:194
@@ -753,15 +736,18 @@ msgstr "En utmatningskatalog eller filnamn krävs"
 
 #. TRANSLATORS: This is when the backend doesn't have the capability to get-depends
 #. TRANSLATORS: This is when the backend doesn't have the capability to download
-#: ../client/pk-generate-pack.c:267
-#: ../client/pk-generate-pack.c:273
+#: ../client/pk-generate-pack.c:267 ../client/pk-generate-pack.c:273
 msgid "The package manager cannot perform this type of operation."
 msgstr "Pakethanteraren kan inte genomföra denna typ av åtgärd."
 
 #. TRANSLATORS: This is when the distro didn't include libarchive support into PK
 #: ../client/pk-generate-pack.c:280
-msgid "Service packs cannot be created as PackageKit was not built with libarchive support."
-msgstr "Servicepaket kan inte skapa eftersom PackageKit inte har byggts med stöd för libarchive."
+msgid ""
+"Service packs cannot be created as PackageKit was not built with libarchive "
+"support."
+msgstr ""
+"Servicepaket kan inte skapa eftersom PackageKit inte har byggts med stöd för "
+"libarchive."
 
 #. TRANSLATORS: the user specified an absolute path, but didn't get the extension correct
 #: ../client/pk-generate-pack.c:291
@@ -846,6 +832,60 @@ msgstr "Välj det korrekta paketet: "
 msgid "Please enter a number from 1 to %i: "
 msgstr "Ange ett tal från 1 till %i: "
 
+#. TRANSLATORS: when we are getting data from the daemon
+#: ../contrib/browser-plugin/pk-plugin-install.c:466
+msgid "Getting package information..."
+msgstr "Hämtar paketinformation..."
+
+#. TRANSLATORS: run an applicaiton
+#: ../contrib/browser-plugin/pk-plugin-install.c:472
+#, c-format
+msgid "Run %s"
+msgstr "Kör %s"
+
+#. TRANSLATORS: show the installed version of a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:478
+msgid "Installed version"
+msgstr "Installerad version"
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:486
+#, c-format
+msgid "Run version %s now"
+msgstr "Kör version %s nu"
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:492
+msgid "Run now"
+msgstr "Kör nu"
+
+#. TRANSLATORS: update to a new version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:498
+#, c-format
+msgid "Update to version %s"
+msgstr "Uppdatera till version %s"
+
+#. TRANSLATORS: To install a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:504
+#, c-format
+msgid "Install %s now"
+msgstr "Installera %s nu"
+
+#. TRANSLATORS: the version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:507
+msgid "Version"
+msgstr "Version"
+
+#. TRANSLATORS: noting found, so can't install
+#: ../contrib/browser-plugin/pk-plugin-install.c:512
+msgid "No packages found for your system"
+msgstr "Inga paket hittades för ditt system"
+
+#. TRANSLATORS: package is being installed
+#: ../contrib/browser-plugin/pk-plugin-install.c:517
+msgid "Installing..."
+msgstr "Installerar..."
+
 #. TRANSLATORS: downloading repo data so we can search
 #: ../contrib/command-not-found/pk-command-not-found.c:349
 msgid "Downloading details about the software sources."
@@ -867,128 +907,74 @@ msgid "Loading list of packages."
 msgstr "Läser in lista över paket."
 
 #. TRANSLATORS: we failed to find the package, this shouldn't happen
-#: ../contrib/command-not-found/pk-command-not-found.c:414
+#: ../contrib/command-not-found/pk-command-not-found.c:420
 msgid "Failed to search for file"
 msgstr "Misslyckades med att söka efter filen"
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:551
+#: ../contrib/command-not-found/pk-command-not-found.c:557
 msgid "Failed to launch:"
 msgstr "Misslyckades med att starta:"
 
 #. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/command-not-found/pk-command-not-found.c:626
+#: ../contrib/command-not-found/pk-command-not-found.c:632
 msgid "PackageKit Command Not Found"
 msgstr "PackageKit - Kommandot hittades inte"
 
 #. TRANSLATORS: the prefix of all the output telling the user why it's not executing
-#: ../contrib/command-not-found/pk-command-not-found.c:652
+#: ../contrib/command-not-found/pk-command-not-found.c:658
 msgid "Command not found."
 msgstr "Kommandot hittades inte."
 
 #. TRANSLATORS: tell the user what we think the command is
-#: ../contrib/command-not-found/pk-command-not-found.c:659
+#: ../contrib/command-not-found/pk-command-not-found.c:665
 msgid "Similar command is:"
 msgstr "Liknande kommando är:"
 
 #. TRANSLATORS: Ask the user if we should run the similar command
-#: ../contrib/command-not-found/pk-command-not-found.c:668
+#: ../contrib/command-not-found/pk-command-not-found.c:674
 msgid "Run similar command:"
 msgstr "Kör liknande command:"
 
 #. TRANSLATORS: show the user a list of commands that they could have meant
 #. TRANSLATORS: show the user a list of commands we could run
-#: ../contrib/command-not-found/pk-command-not-found.c:680
-#: ../contrib/command-not-found/pk-command-not-found.c:689
+#: ../contrib/command-not-found/pk-command-not-found.c:686
+#: ../contrib/command-not-found/pk-command-not-found.c:695
 msgid "Similar commands are:"
 msgstr "Liknande kommandon är:"
 
 #. TRANSLATORS: ask the user to choose a file to run
-#: ../contrib/command-not-found/pk-command-not-found.c:696
+#: ../contrib/command-not-found/pk-command-not-found.c:702
 msgid "Please choose a command to run"
 msgstr "Välj ett kommando att köra"
 
 #. TRANSLATORS: tell the user what package provides the command
-#: ../contrib/command-not-found/pk-command-not-found.c:715
+#: ../contrib/command-not-found/pk-command-not-found.c:721
 msgid "The package providing this file is:"
 msgstr "Paketet som tillhandahåller denna fil är:"
 
 #. TRANSLATORS: as the user if we want to install a package to provide the command
-#: ../contrib/command-not-found/pk-command-not-found.c:720
+#: ../contrib/command-not-found/pk-command-not-found.c:726
 #, c-format
 msgid "Install package '%s' to provide command '%s'?"
 msgstr "Installera paketet \"%s\" för att tillhandahålla kommandot \"%s\"?"
 
 #. TRANSLATORS: Show the user a list of packages that provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:741
+#: ../contrib/command-not-found/pk-command-not-found.c:747
 msgid "Packages providing this file are:"
 msgstr "Paket som tillhandahåller denna fil är:"
 
 #. TRANSLATORS: Show the user a list of packages that they can install to provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:750
+#: ../contrib/command-not-found/pk-command-not-found.c:756
 msgid "Suitable packages are:"
 msgstr "Lämpliga paket är:"
 
 #. get selection
 #. TRANSLATORS: ask the user to choose a file to install
-#: ../contrib/command-not-found/pk-command-not-found.c:758
+#: ../contrib/command-not-found/pk-command-not-found.c:764
 msgid "Please choose a package to install"
 msgstr "Välj ett paket att installera"
 
-#. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/pk-plugin-install.c:433
-msgid "Getting package information..."
-msgstr "Hämtar paketinformation..."
-
-#. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/pk-plugin-install.c:439
-#, c-format
-msgid "Run %s"
-msgstr "Kör %s"
-
-#. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:445
-msgid "Installed version"
-msgstr "Installerad version"
-
-#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:453
-#, c-format
-msgid "Run version %s now"
-msgstr "Kör version %s nu"
-
-#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:459
-msgid "Run now"
-msgstr "Kör nu"
-
-#. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:465
-#, c-format
-msgid "Update to version %s"
-msgstr "Uppdatera till version %s"
-
-#. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:471
-#, c-format
-msgid "Install %s now"
-msgstr "Installera %s nu"
-
-#. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:474
-msgid "Version"
-msgstr "Version"
-
-#. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/pk-plugin-install.c:479
-msgid "No packages found for your system"
-msgstr "Inga paket hittades för ditt system"
-
-#. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/pk-plugin-install.c:484
-msgid "Installing..."
-msgstr "Installerar..."
-
 #. TRANSLATORS: we are starting to install the packages
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:187
 msgid "Starting install"
@@ -998,11 +984,13 @@ msgstr "Påbörjar installation"
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:397
 #, c-format
 msgid "Failed to find the package %s, or already installed: %s"
-msgstr "Misslyckades med att hitta paketet %s, eller så är det redan installerat: %s"
+msgstr ""
+"Misslyckades med att hitta paketet %s, eller så är det redan installerat: %s"
 
 #. command line argument, simulate what would be done, but don't actually do it
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:553
-msgid "Don't actually install any packages, only simulate what would be installed"
+msgid ""
+"Don't actually install any packages, only simulate what would be installed"
 msgstr "Installera inte några paket, simulera endast vad som ska installeras"
 
 #. command line argument, do we skip packages that depend on the ones specified
@@ -1173,6 +1161,104 @@ msgstr "Kunde inte inaktivera källorna för felsökning: %s"
 msgid "Disabled %i debugging sources."
 msgstr "Inaktiverade %i källor för felsökning."
 
+#. TRANSLATORS: couldn't open device to write
+#: ../contrib/device-rebind/pk-device-rebind.c:61
+#, fuzzy
+msgid "Failed to open file"
+msgstr "Misslyckades med att söka efter filen"
+
+#. TRANSLATORS: could not write to the device
+#: ../contrib/device-rebind/pk-device-rebind.c:70
+#, fuzzy
+msgid "Failed to write to the file"
+msgstr "Misslyckades med att söka efter filen"
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:110
+#: ../contrib/device-rebind/pk-device-rebind.c:147
+#, fuzzy
+msgid "Failed to write to device"
+msgstr "Misslyckades med att spara till disk"
+
+#. TRANSLATORS: the device could not be found in sysfs
+#: ../contrib/device-rebind/pk-device-rebind.c:175
+#, fuzzy
+msgid "Device could not be found"
+msgstr "Paketet kunde inte hittas"
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:202
+#, fuzzy
+msgid "Failed to unregister driver"
+msgstr "Misslyckades med att skapa katalog:"
+
+#. TRANSLATORS: we failed to bind the old driver
+#: ../contrib/device-rebind/pk-device-rebind.c:211
+#, fuzzy
+msgid "Failed to register driver"
+msgstr "Misslyckades med att skapa katalog:"
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:260
+#, fuzzy
+msgid "Device path not found"
+msgstr "Katalogen hittades inte"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:268
+msgid "Incorrect device path specified"
+msgstr ""
+
+#. command line argument, simulate what would be done, but don't actually do it
+#: ../contrib/device-rebind/pk-device-rebind.c:296
+#, fuzzy
+msgid "Don't actually touch the hardware, only simulate what would be done"
+msgstr "Installera inte några paket, simulera endast vad som ska installeras"
+
+#. TRANSLATORS: command line option: a list of files to install
+#: ../contrib/device-rebind/pk-device-rebind.c:299
+msgid "Device paths"
+msgstr ""
+
+#. TRANSLATORS: tool that gets called when the device needs reloading after installing firmware
+#: ../contrib/device-rebind/pk-device-rebind.c:314
+#, fuzzy
+msgid "PackageKit Device Reloader"
+msgstr "Servicepaket för PackageKit"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:322
+#, fuzzy
+msgid "You need to specify at least one valid device path"
+msgstr "Du måste ange en listfil att skapa"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:332
+msgid "This script can only be used by the root user"
+msgstr ""
+
+#. TRANSLATORS: we're going to verify the path first
+#: ../contrib/device-rebind/pk-device-rebind.c:341
+msgid "Verifying device path"
+msgstr ""
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:346
+#, fuzzy
+msgid "Failed to verify device path"
+msgstr "Misslyckades med att söka efter filen"
+
+#. TRANSLATORS: we're going to try
+#: ../contrib/device-rebind/pk-device-rebind.c:360
+msgid "Attempting to rebind device"
+msgstr ""
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:365
+#, fuzzy
+msgid "Failed to rebind device"
+msgstr "Misslyckades med att skapa katalog:"
+
 #: ../data/packagekit-catalog.xml.in.h:1
 msgid "PackageKit Catalog"
 msgstr "Katalog för PackageKit"
@@ -1200,16 +1286,22 @@ msgid "Authentication is required to accept a EULA"
 msgstr "Autentisering krävs för att acceptera ett slutanvändaravtal"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:9
-msgid "Authentication is required to cancel a task that was not started by yourself"
-msgstr "Autentisering krävs för att avbryta en åtgärd som inte startades av dig själv"
+msgid ""
+"Authentication is required to cancel a task that was not started by yourself"
+msgstr ""
+"Autentisering krävs för att avbryta en åtgärd som inte startades av dig själv"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:10
 msgid "Authentication is required to change software source parameters"
 msgstr "Autentisering krävs för att ändra parametrar för programvarukällor"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:11
-msgid "Authentication is required to consider a key used for signing packages as trusted"
-msgstr "Autentisering krävs för att anse att en nyckel som används för paketsignering ska vara pålitlig"
+msgid ""
+"Authentication is required to consider a key used for signing packages as "
+"trusted"
+msgstr ""
+"Autentisering krävs för att anse att en nyckel som används för "
+"paketsignering ska vara pålitlig"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:12
 msgid "Authentication is required to install a signed package"
@@ -1224,18 +1316,27 @@ msgid "Authentication is required to refresh the system sources"
 msgstr "Autentisering krävs för att uppdatera systemkällorna"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:15
+#, fuzzy
+msgid "Authentication is required to reload the device with a new driver"
+msgstr "Autentisering krävs för att uppdatera systemkällorna"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:16
 msgid "Authentication is required to remove packages"
 msgstr "Autentisering krävs för att ta bort paket"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:16
+#: ../policy/org.freedesktop.packagekit.policy.in.h:17
 msgid "Authentication is required to rollback a transaction"
 msgstr "Autentisering krävs för att rulla tillbaka en transaktion"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:17
-msgid "Authentication is required to set the network proxy used for downloading packages"
-msgstr "Autentisering krävs för att ange nätverksproxyservern som ska användas för hämtning av paket"
-
 #: ../policy/org.freedesktop.packagekit.policy.in.h:18
+msgid ""
+"Authentication is required to set the network proxy used for downloading "
+"packages"
+msgstr ""
+"Autentisering krävs för att ange nätverksproxyservern som ska användas för "
+"hämtning av paket"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:19
 msgid "Authentication is required to update packages"
 msgstr "Autentisering krävs för att uppdatera paket"
 
@@ -1244,7 +1345,7 @@ msgstr "Autentisering krävs för att uppdatera paket"
 #. authentication, but a different user id needs the admin password
 #. to cancel another users task.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:24
+#: ../policy/org.freedesktop.packagekit.policy.in.h:25
 msgid "Cancel foreign task"
 msgstr "Avbryt främmande åtgärd"
 
@@ -1253,7 +1354,7 @@ msgstr "Avbryt främmande åtgärd"
 #. software sources as this can be used to enable new updates or
 #. install different versions of software.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:30
+#: ../policy/org.freedesktop.packagekit.policy.in.h:31
 msgid "Change software source parameters"
 msgstr "Ändra parametrar för programvarukällor"
 
@@ -1263,7 +1364,7 @@ msgstr "Ändra parametrar för programvarukällor"
 #. - Paranoid users (or parents!) can change this to 'auth_admin' or
 #. 'auth_admin_keep'.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:37
+#: ../policy/org.freedesktop.packagekit.policy.in.h:38
 msgid "Install signed package"
 msgstr "Installera signerat paket"
 
@@ -1273,7 +1374,7 @@ msgstr "Installera signerat paket"
 #. password would be a massive security hole.
 #. - This is not retained as each package should be authenticated.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:44
+#: ../policy/org.freedesktop.packagekit.policy.in.h:45
 msgid "Install untrusted local file"
 msgstr "Installera opålitlig lokal fil"
 
@@ -1281,11 +1382,22 @@ msgstr "Installera opålitlig lokal fil"
 #. - Normal users do not require admin authentication to refresh the
 #. cache, as this doesn't actually install or remove software.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:49
+#: ../policy/org.freedesktop.packagekit.policy.in.h:50
 msgid "Refresh system sources"
 msgstr "Uppdatera systemkällor"
 
 #. SECURITY:
+#. - Normal users require admin authentication to rebind a driver
+#. so that it works after we install firmware.
+#. - This should not be set to 'yes' as unprivileged users could then
+#. try to rebind drivers in use, for instance security authentication
+#. devices.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:58
+msgid "Reload a device"
+msgstr ""
+
+#. SECURITY:
 #. - Normal users require admin authentication to remove packages as
 #. this can make the system unbootable or stop other applications from
 #. working.
@@ -1294,7 +1406,7 @@ msgstr "Uppdatera systemkällor"
 #. be removed. If this is not possible, change this authentication to
 #. 'auth_admin'.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:59
+#: ../policy/org.freedesktop.packagekit.policy.in.h:68
 msgid "Remove package"
 msgstr "Ta bort paket"
 
@@ -1303,7 +1415,7 @@ msgstr "Ta bort paket"
 #. as this will change a large number of packages, and could expose the
 #. system to previously patched security vulnerabilities.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:65
+#: ../policy/org.freedesktop.packagekit.policy.in.h:74
 msgid "Rollback to a previous transaction"
 msgstr "Rulla tillbaka till en tidigare transaktion"
 
@@ -1311,7 +1423,7 @@ msgstr "Rulla tillbaka till en tidigare transaktion"
 #. - Normal users do not require admin authentication to set the proxy
 #. used for downloading packages.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:70
+#: ../policy/org.freedesktop.packagekit.policy.in.h:79
 msgid "Set network proxy"
 msgstr "Ange nätverksproxyserver"
 
@@ -1321,7 +1433,7 @@ msgstr "Ange nätverksproxyserver"
 #. without a secure authentication.
 #. - This is not kept as each package should be authenticated.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:77
+#: ../policy/org.freedesktop.packagekit.policy.in.h:86
 msgid "Trust a key used for signing packages"
 msgstr "Lita på en nyckel som används för signering av paket"
 
@@ -1332,7 +1444,7 @@ msgstr "Lita på en nyckel som används för signering av paket"
 #. - Changing this to anything other than 'yes' will break unattended
 #. updates.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:85
+#: ../policy/org.freedesktop.packagekit.policy.in.h:94
 msgid "Update packages"
 msgstr "Uppdatera paket"
 
@@ -1349,12 +1461,16 @@ msgstr "Detta kan inträffa av två anledningar:"
 #. TRANSLATORS: only allowed to be owned by root
 #: ../src/pk-main.c:91
 msgid "The correct user is not launching the executable (usually root)"
-msgstr "Den korrekta användaren startar inte den körbara filen (vanligtvis root)"
+msgstr ""
+"Den korrekta användaren startar inte den körbara filen (vanligtvis root)"
 
 #. TRANSLATORS: or we are installed in a prefix
 #: ../src/pk-main.c:93
-msgid "The org.freedesktop.PackageKit.conf file is not installed in the system directory:"
-msgstr "Filen org.freedesktop.PackageKit.conf är inte installerad i systemkatalogen:"
+msgid ""
+"The org.freedesktop.PackageKit.conf file is not installed in the system "
+"directory:"
+msgstr ""
+"Filen org.freedesktop.PackageKit.conf är inte installerad i systemkatalogen:"
 
 #. TRANSLATORS: a backend is the system package tool, e.g. yum, apt
 #: ../src/pk-main.c:205
@@ -1397,103 +1513,144 @@ msgid "Cannot connect to the system bus"
 msgstr "Kan inte ansluta till systembussen"
 
 #. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error follows
-#: ../src/pk-main.c:331
+#: ../src/pk-main.c:334
 msgid "Error trying to start:"
 msgstr "Fel vid försök att starta:"
 
-#: ../src/pk-polkit-action-lookup.c:143
+#: ../src/pk-polkit-action-lookup.c:147
 msgid "To install debugging packages, extra sources need to be enabled"
-msgstr "För att installera paket för felsökning så behöver extra källor aktiveras"
+msgstr ""
+"För att installera paket för felsökning så behöver extra källor aktiveras"
 
 #. TRANSLATORS: is not GPG signed
-#: ../src/pk-polkit-action-lookup.c:156
-#: ../src/pk-polkit-action-lookup.c:175
+#: ../src/pk-polkit-action-lookup.c:168 ../src/pk-polkit-action-lookup.c:187
 msgid "The software is not from a trusted source."
 msgstr "Programvaran kommer inte från en pålitlig källa."
 
-#. TRANSLATORS: user has to trust provider -- I know, this sucks
-#: ../src/pk-polkit-action-lookup.c:160
+#: ../src/pk-polkit-action-lookup.c:173
 msgid "Do not update this package unless you are sure it is safe to do so."
-msgstr "Uppdatera inte detta paket såvida inte du vet att det är säkert att göra så."
+msgstr ""
+"Uppdatera inte detta paket såvida inte du vet att det är säkert att göra så."
+
+#: ../src/pk-polkit-action-lookup.c:174
+#, fuzzy
+msgid "Do not update these packages unless you are sure it is safe to do so."
+msgstr ""
+"Uppdatera inte detta paket såvida inte du vet att det är säkert att göra så."
+
+#: ../src/pk-polkit-action-lookup.c:192
+msgid "Do not install this package unless you are sure it is safe to do so."
+msgstr ""
+"Installera inte detta paket såvida inte du vet att det är säkert att göra så."
+
+#: ../src/pk-polkit-action-lookup.c:193
+#, fuzzy
+msgid "Do not install these packages unless you are sure it is safe to do so."
+msgstr ""
+"Installera inte detta paket såvida inte du vet att det är säkert att göra så."
 
 #. TRANSLATORS: warn the user that all bets are off
-#: ../src/pk-polkit-action-lookup.c:164
-#: ../src/pk-polkit-action-lookup.c:183
+#: ../src/pk-polkit-action-lookup.c:199
 msgid "Malicious software can damage your computer or cause other harm."
 msgstr "Skadlig programvara kan skada din dator eller orsaka andra problem."
 
-#. TRANSLATORS: user has to trust provider -- I know, this sucks
-#: ../src/pk-polkit-action-lookup.c:179
-msgid "Do not install this package unless you are sure it is safe to do so."
-msgstr "Installera inte detta paket såvida inte du vet att det är säkert att göra så."
+#. TRANSLATORS: too many packages to list each one
+#: ../src/pk-polkit-action-lookup.c:274
+#, fuzzy
+msgid "Many packages"
+msgstr "Uppdatera paket"
 
 #. TRANSLATORS: if the transaction is forced to install only trusted packages
-#: ../src/pk-polkit-action-lookup.c:304
+#: ../src/pk-polkit-action-lookup.c:334
 msgid "Only trusted"
 msgstr "Endast pålitliga"
 
 #~ msgid "You need to specify a search type, e.g. name"
 #~ msgstr "Du måste ange en söktyp, t.ex. name"
+
 #~ msgid "You need to specify a search term"
 #~ msgstr "Du måste ange en sökterm"
+
 #~ msgid "You need to specify a package to remove"
 #~ msgstr "Du måste ange ett paket att ta bort"
+
 #~ msgid "You need to specify a package name to resolve"
 #~ msgstr "Du måste ange ett paketnamn att lösa"
+
 #~ msgid "You need to specify a repository name"
 #~ msgstr "Du måste ange ett förrådsnamn"
+
 #~ msgid "You need to specify an action, e.g. 'update-system'"
 #~ msgstr "Du måste ange en åtgärd, t.ex. \"update-system\""
+
 #~ msgid "You need to specify a correct role"
 #~ msgstr "Du måste ange en korrekt roll"
+
 #~ msgid "You need to specify a package to find the details for"
 #~ msgstr "Du måste ange ett paket att söka information om"
+
 #~ msgid "You need to specify a package to find the files for"
 #~ msgstr "Du måste ange ett paket att söka efter filerna för"
-#~ msgid "You need to specify a list file to create"
-#~ msgstr "Du måste ange en listfil att skapa"
+
 #~ msgid "You need to specify a list file to open"
 #~ msgstr "Du måste ange en listfil att öppna"
+
 #~ msgid "This tool could not remove the packages: '%s'"
 #~ msgstr "Detta verktyg kunde inte ta bort paketen: \"%s\""
+
 #~ msgid "Install local file"
 #~ msgstr "Installera lokal fil"
+
 #~ msgid "Authentication is required to install a local file"
 #~ msgstr "Autentisering krävs för att installera en lokal fil"
+
 #~ msgid "Authentication is required to install a security signature"
 #~ msgstr "Autentisering krävs för att installera en säkerhetssignatur"
+
 #~ msgid "Authentication is required to update all packages"
 #~ msgstr "Autentisering krävs för att uppdatera alla paket"
+
 #~ msgid ""
 #~ "Further authentication is required to install an untrusted local file"
 #~ msgstr ""
 #~ "Ytterligare autentisering krävs för att installera en opålitlig lokal fil"
+
 #~ msgid "Refresh package lists"
 #~ msgstr "Uppdatera paketlistor"
+
 #~ msgid "Update all packages"
 #~ msgstr "Uppdatera alla paket"
+
 #~ msgid ""
 #~ "Could not find a package with that name to install, or package already "
 #~ "installed"
 #~ msgstr ""
 #~ "Kunde inte hitta ett paket med det namnet att installera, eller så är "
 #~ "paketet redan installerat"
+
 #~ msgid "Could not find a package with that name to remove"
 #~ msgstr "Kunde inte hitta ett paket att ta bort med det namnet"
+
 #~ msgid "Cancelled!"
 #~ msgstr "Avbruten!"
+
 #~ msgid "Could not find a package with that name to update"
 #~ msgstr "Kunde inte hitta ett paket att uppdatera med det namnet"
+
 #~ msgid "Could not find what packages require this package"
 #~ msgstr "Kunde inte hitta vilka paket som kräver detta paket"
+
 #~ msgid "Okay to import key?"
 #~ msgstr "Ok att importera nyckeln?"
+
 #~ msgid "Did not import key"
 #~ msgstr "Importerade inte nyckeln"
+
 #~ msgid "Did not agree to licence, task will fail"
 #~ msgstr "Godkände inte licensen, åtgärden kommer att misslyckas"
+
 #~ msgid "Could not open database: %s"
 #~ msgstr "Kunde inte öppna databasen: %s"
+
 #~ msgid "You probably need to run this program as the root user"
 #~ msgstr "Du behöver antagligen köra detta program som root-användaren"
-
diff --git a/po/ta.po b/po/ta.po
index 8c38353..a210ca3 100644
--- a/po/ta.po
+++ b/po/ta.po
@@ -6,8 +6,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: packagekit.master.ta\n"
-"Report-Msgid-Bugs-To: https://bugs.freedesktop.org/enter_bug.cgi?product=PackageKit&component=General\n"
-"POT-Creation-Date: 2009-06-18 03:24+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-08-24 11:06+0100\n"
 "PO-Revision-Date: 2009-06-26 23:04+0530\n"
 "Last-Translator: I. Felix <ifelix at redhat.com>\n"
 "Language-Team: Tamil <fedora-trans-ta at redhat.com>\n"
@@ -26,231 +26,264 @@ msgstr ""
 "\n"
 
 #. TRANSLATORS: this is an atomic transaction
-#: ../client/pk-console.c:231
+#: ../client/pk-console.c:235
 msgid "Transaction"
 msgstr "பரிமாற்றம்"
 
 #. TRANSLATORS: this is the time the transaction was started in system timezone
-#: ../client/pk-console.c:233
+#: ../client/pk-console.c:237
 msgid "System time"
 msgstr "கணினி நேரம்"
 
 #. TRANSLATORS: this is if the transaction succeeded or not
-#: ../client/pk-console.c:235
+#: ../client/pk-console.c:239
 msgid "Succeeded"
 msgstr "வெற்றியடைதல்"
 
 #. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:235 ../client/pk-console.c:402
+#: ../client/pk-console.c:239 ../client/pk-console.c:406
 msgid "True"
 msgstr "சரி"
 
-#: ../client/pk-console.c:235 ../client/pk-console.c:402
+#: ../client/pk-console.c:239 ../client/pk-console.c:406
 msgid "False"
 msgstr "தவறு"
 
 #. TRANSLATORS: this is the transactions role, e.g. "update-system"
 #. TRANSLATORS: the trasaction role, e.g. update-system
-#: ../client/pk-console.c:237 ../src/pk-polkit-action-lookup.c:228
+#: ../client/pk-console.c:241 ../src/pk-polkit-action-lookup.c:327
 msgid "Role"
 msgstr "பங்கு"
 
 #. TRANSLATORS: this is The duration of the transaction
-#: ../client/pk-console.c:242
+#: ../client/pk-console.c:246
 msgid "Duration"
 msgstr "இடைவெளி"
 
-#: ../client/pk-console.c:242
+#: ../client/pk-console.c:246
 msgid "(seconds)"
 msgstr "(நொடிகள்"
 
 #. TRANSLATORS: this is The command line used to do the action
-#: ../client/pk-console.c:246
+#. TRANSLATORS: the command line of the thing that wants the authentication
+#: ../client/pk-console.c:250 ../src/pk-polkit-action-lookup.c:341
 msgid "Command line"
 msgstr "கட்டளை வரி"
 
 #. TRANSLATORS: this is the user ID of the user that started the action
-#: ../client/pk-console.c:248
+#: ../client/pk-console.c:252
 msgid "User ID"
 msgstr "பயனர் ஐடி"
 
 #. TRANSLATORS: this is the username, e.g. hughsie
-#: ../client/pk-console.c:255
+#: ../client/pk-console.c:259
 msgid "Username"
 msgstr "பயனர் பெயர்"
 
 #. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
-#: ../client/pk-console.c:259
+#: ../client/pk-console.c:263
 msgid "Real name"
 msgstr "உண்மையான பெயர்"
 
-#: ../client/pk-console.c:267
+#: ../client/pk-console.c:271
 msgid "Affected packages:"
 msgstr "பாதிக்கப்பட்ட தொகுதிகள்:"
 
-#: ../client/pk-console.c:269
+#: ../client/pk-console.c:273
 msgid "Affected packages: None"
 msgstr "பாதிக்கப்பட்ட தொகுதிகள்: ஒன்றுமில்லாத"
 
 #. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:294
+#: ../client/pk-console.c:298
 msgid "Distribution"
 msgstr "விநியோகம்"
 
 #. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:296
+#: ../client/pk-console.c:300
 msgid "Type"
 msgstr "வகை"
 
 #. TRANSLATORS: this is any summary text describing the upgrade
 #. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:298 ../client/pk-console.c:321
+#: ../client/pk-console.c:302 ../client/pk-console.c:325
 msgid "Summary"
 msgstr "சுருக்கம்"
 
 #. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:310
+#: ../client/pk-console.c:314
 msgid "Category"
 msgstr "வகை"
 
 #. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:312
+#: ../client/pk-console.c:316
 msgid "ID"
 msgstr "ID"
 
 #. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:315
+#: ../client/pk-console.c:319
 msgid "Parent"
 msgstr "பெற்றோர்"
 
 #. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:318
+#: ../client/pk-console.c:322
 msgid "Name"
 msgstr "பெயர்"
 
 #. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:324
+#: ../client/pk-console.c:328
 msgid "Icon"
 msgstr "சின்னம்"
 
 #. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:339
+#: ../client/pk-console.c:343
 msgid "Details about the update:"
 msgstr "மேம்படுத்துதல் பற்றிய விவரங்கள்:"
 
 #. TRANSLATORS: details about the update, package name and version
-#: ../client/pk-console.c:341
+#. TRANSLATORS: title, the names of the packages that the method is processing
+#: ../client/pk-console.c:345 ../src/pk-polkit-action-lookup.c:352
+#, fuzzy
 msgid "Package"
-msgstr "தொகுப்பு"
+msgid_plural "Packages"
+msgstr[0] "தொகுப்பு"
+msgstr[1] "தொகுப்பு"
 
 #. TRANSLATORS: details about the update, any packages that this update updates
-#: ../client/pk-console.c:344
+#: ../client/pk-console.c:348
 msgid "Updates"
 msgstr "மேம்படுத்தல்கள"
 
 #. TRANSLATORS: details about the update, any packages that this update obsoletes
-#: ../client/pk-console.c:348
+#: ../client/pk-console.c:352
 msgid "Obsoletes"
 msgstr "நீக்கப்பட்டது"
 
 #. TRANSLATORS: details about the update, the vendor URLs
-#: ../client/pk-console.c:352
+#: ../client/pk-console.c:356
 msgid "Vendor"
 msgstr "விற்பனையாளர்"
 
 #. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:356
+#: ../client/pk-console.c:360
 msgid "Bugzilla"
 msgstr "பக்ஸிலா"
 
 #. TRANSLATORS: details about the update, the CVE URLs
-#: ../client/pk-console.c:360
+#: ../client/pk-console.c:364
 msgid "CVE"
 msgstr "CVE"
 
 #. TRANSLATORS: details about the update, if the package requires a restart
-#: ../client/pk-console.c:364
+#: ../client/pk-console.c:368
 msgid "Restart"
 msgstr "மறுதுவக்கு"
 
 #. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:368
+#: ../client/pk-console.c:372
 msgid "Update text"
 msgstr "மேம்படுத்தப்பட்ட உரை"
 
 #. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:372
+#: ../client/pk-console.c:376
 msgid "Changes"
 msgstr "மாற்றங்கள்"
 
 #. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:376
+#: ../client/pk-console.c:380
 msgid "State"
 msgstr "நிலை"
 
 #. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:381
+#: ../client/pk-console.c:385
 msgid "Issued"
 msgstr "வழங்கப்பட்டது"
 
 #. TRANSLATORS: details about the update, date the update was updated
-#: ../client/pk-console.c:386
+#: ../client/pk-console.c:390
 msgid "Updated"
 msgstr "மேம்படுத்தப்பட்டது"
 
-#: ../client/pk-console.c:473 ../client/pk-console.c:475
+#: ../client/pk-console.c:477 ../client/pk-console.c:479
 msgid "Percentage"
 msgstr "சதவீதம்"
 
-#: ../client/pk-console.c:475
+#: ../client/pk-console.c:479
 msgid "Unknown"
 msgstr "தெரியாத"
 
 #. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:517
+#: ../client/pk-console.c:521
 msgid "System restart required by:"
 msgstr "கணினிக்கு மறுதுவக்கம் தேவைப்படுகிறது:"
 
 #. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:520
+#: ../client/pk-console.c:524
 msgid "Session restart required:"
 msgstr "அமர்வுக்கு மறுதுவக்கம் தேவைப்படுகிறது:"
 
+#. TRANSLATORS: a package requires the system to be restarted due to a security update
+#: ../client/pk-console.c:527
+#, fuzzy
+msgid "System restart (security) required by:"
+msgstr "கணினிக்கு மறுதுவக்கம் தேவைப்படுகிறது:"
+
+#. TRANSLATORS: a package requires the session to be restarted due to a security update
+#: ../client/pk-console.c:530
+#, fuzzy
+msgid "Session restart (security) required:"
+msgstr "அமர்வுக்கு மறுதுவக்கம் தேவைப்படுகிறது:"
+
 #. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:523
+#: ../client/pk-console.c:533
 msgid "Application restart required by:"
 msgstr "பயன்பாடிற்கு மறுதுவக்கம் தேவைப்படுகிறது:"
 
-#. TRANSLATORS: a package needs to restart they system
-#: ../client/pk-console.c:578
+#. TRANSLATORS: a package needs to restart their system
+#: ../client/pk-console.c:588
 msgid "Please restart the computer to complete the update."
 msgstr "கணினியை மீண்டும் துவக்கி மேம்படுத்துதலை முடிக்கவும்."
 
 #. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:581
+#: ../client/pk-console.c:591
 msgid "Please logout and login to complete the update."
 msgstr "வெளியேறிவிட்டு மற்றும் மேம்படுத்துதலை முடிக்க உள்நுழையவும்."
 
 #. TRANSLATORS: a package needs to restart the application
-#: ../client/pk-console.c:584
+#: ../client/pk-console.c:594
 msgid "Please restart the application as it is being used."
 msgstr "பயன்படுத்தபட்டிருந்தாலும் அதன் பயன்பாட்டை மீண்டும் துவக்கவும்."
 
+#. TRANSLATORS: a package needs to restart their system (due to security)
+#: ../client/pk-console.c:597
+#, fuzzy
+msgid ""
+"Please restart the computer to complete the update as important security "
+"updates have been installed."
+msgstr "கணினியை மீண்டும் துவக்கி மேம்படுத்துதலை முடிக்கவும்."
+
+#. TRANSLATORS: a package needs to restart the session (due to security)
+#: ../client/pk-console.c:600
+#, fuzzy
+msgid ""
+"Please logout and login to complete the update as important security updates "
+"have been installed."
+msgstr "வெளியேறிவிட்டு மற்றும் மேம்படுத்துதலை முடிக்க உள்நுழையவும்."
+
 #. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:711
+#: ../client/pk-console.c:727
 #, c-format
 msgid "The package %s is already installed"
 msgstr "தொகுப்பு %s ஏற்கனவே நிறுவப்பட்டது"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:719
+#: ../client/pk-console.c:735
 #, c-format
 msgid "The package %s could not be installed: %s"
 msgstr "தொகுப்பு %s நிறுவப்படவில்லை: %s"
 
 #. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
-#: ../client/pk-console.c:744 ../client/pk-console.c:767
-#: ../client/pk-console.c:863 ../client/pk-console.c:980
+#: ../client/pk-console.c:760 ../client/pk-console.c:783
+#: ../client/pk-console.c:879 ../client/pk-console.c:996
 #: ../client/pk-tools-common.c:62 ../client/pk-tools-common.c:81
 #: ../client/pk-tools-common.c:89
 #, c-format
@@ -258,399 +291,405 @@ msgid "Internal error: %s"
 msgstr "உட்புற பிழை: %s"
 
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:752 ../client/pk-console.c:1376
+#: ../client/pk-console.c:768 ../client/pk-console.c:1392
 #, c-format
 msgid "This tool could not install the packages: %s"
 msgstr "இந்த கருவி இந்த தொகுப்புகளை நிறுவ முடியவில்லை: %s"
 
 #. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:775
+#: ../client/pk-console.c:791
 #, c-format
 msgid "This tool could not install the files: %s"
 msgstr "இந்த கருவியால் கோப்புகளை நிறுவ முடியவில்லை: %s"
 
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:831
+#: ../client/pk-console.c:847
 #, c-format
 msgid "This tool could not remove %s: %s"
 msgstr "இந்த கருவியால் %sஐ நீக்க முடியவில்லை: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:854 ../client/pk-console.c:892
-#: ../client/pk-console.c:925
+#: ../client/pk-console.c:870 ../client/pk-console.c:908
+#: ../client/pk-console.c:941
 #, c-format
 msgid "This tool could not remove the packages: %s"
 msgstr "இந்த கருவி தொகுப்புகளை நீக்க முடியவில்லை: %s"
 
 #. TRANSLATORS: When removing, we might have to remove other dependencies
-#: ../client/pk-console.c:904
+#: ../client/pk-console.c:920
 msgid "The following packages have to be removed:"
 msgstr "பின்வரும் தொகுப்புகளை நீக்கப்பட வேண்டியவை:"
 
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:911
+#: ../client/pk-console.c:927
 msgid "Proceed removing additional packages?"
 msgstr "கூடுதல் தொகுப்புகளை நீக்குதல் நடைபெற்று கொண்டிருக்கிறது?"
 
 #. TRANSLATORS: We did not remove any packages
-#: ../client/pk-console.c:916
+#: ../client/pk-console.c:932
 msgid "The package removal was canceled!"
 msgstr "தொகுப்புகளை நீக்குவது ரத்து செய்யப்பட்டது!"
 
 #. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:957
+#: ../client/pk-console.c:973
 #, c-format
 msgid "This tool could not download the package %s as it could not be found"
-msgstr "இந்த கருவியால் %s தொகுப்புகளை பதிவிறக்க முடியவில்லை அதை கண்டுபிடிக்கவும் முடியவில்லை"
+msgstr ""
+"இந்த கருவியால் %s தொகுப்புகளை பதிவிறக்க முடியவில்லை அதை கண்டுபிடிக்கவும் முடியவில்லை"
 
 #. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:988
+#: ../client/pk-console.c:1004
 #, c-format
 msgid "This tool could not download the packages: %s"
 msgstr "இந்த கருவியால் தொகுப்புகளை பதிவிறக்க முடியவில்லை: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1015 ../client/pk-console.c:1024
+#: ../client/pk-console.c:1031 ../client/pk-console.c:1040
 #, c-format
 msgid "This tool could not update %s: %s"
 msgstr "மேம்பாடு %sஐ இந்த கருவியால் மேம்படுத்த முடியவில்லை : %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1046 ../client/pk-console.c:1054
+#: ../client/pk-console.c:1062 ../client/pk-console.c:1070
 #, c-format
 msgid "This tool could not get the requirements for %s: %s"
 msgstr "%sக்கு தேவையானவற்றை இந்த கருவியால் பெற முடியவில்லை: %s"
 
 #. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:1076 ../client/pk-console.c:1084
+#: ../client/pk-console.c:1092 ../client/pk-console.c:1100
 #, c-format
 msgid "This tool could not get the dependencies for %s: %s"
 msgstr "%sகான சார்புகளை இந்தக் கருவியால் பெற முடியவில்லை: %s"
 
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:1106 ../client/pk-console.c:1114
+#: ../client/pk-console.c:1122 ../client/pk-console.c:1130
 #, c-format
 msgid "This tool could not get package details for %s: %s"
 msgstr "%sக்கான தொகுப்பு விவரங்களை இந்தக் கருவியால் பெற முடியாது: %s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1136
+#: ../client/pk-console.c:1152
 #, c-format
 msgid "This tool could not find the files for %s: %s"
 msgstr "%sக்கான கோப்புகளை இந்த கருவியால் கண்டுபிடிக்க முடியாது: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1144
+#: ../client/pk-console.c:1160
 #, c-format
 msgid "This tool could not get the file list for %s: %s"
 msgstr "%sகாக கோப்பு பட்டியலை இந்தக் கருவியால் பெற முடியவில்லை: %s"
 
 #. TRANSLATORS: There was an error getting the list of packages. The filename follows
-#: ../client/pk-console.c:1166
+#: ../client/pk-console.c:1182
 #, c-format
 msgid "File already exists: %s"
 msgstr "கோப்பு ஏற்கனவை வெளியேற்றப்பட்டது: %s"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1171 ../client/pk-console.c:1227
-#: ../client/pk-console.c:1302
+#: ../client/pk-console.c:1187 ../client/pk-console.c:1243
+#: ../client/pk-console.c:1318
 msgid "Getting package list"
 msgstr "தொகுப்புகளின் பட்டியல் பெறப்படுகிறது"
 
 #. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1177 ../client/pk-console.c:1233
-#: ../client/pk-console.c:1308
+#: ../client/pk-console.c:1193 ../client/pk-console.c:1249
+#: ../client/pk-console.c:1324
 #, c-format
 msgid "This tool could not get package list: %s"
 msgstr "இந்த கருவியால் தொகுப்பு பட்டியலை பெற இயலாது: %s"
 
 #. TRANSLATORS: There was an error saving the list
-#: ../client/pk-console.c:1188
+#: ../client/pk-console.c:1204
 #, c-format
 msgid "Failed to save to disk"
 msgstr "வட்டில் சேமிப்பதில் தோல்வி"
 
 #. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1222 ../client/pk-console.c:1297
+#: ../client/pk-console.c:1238 ../client/pk-console.c:1313
 #, c-format
 msgid "File does not exist: %s"
 msgstr "கோப்பு வெளியேற்றப்படவில்லை: %s"
 
 #. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1254
+#: ../client/pk-console.c:1270
 msgid "Packages to add"
 msgstr "சேர்ப்பதற்கான தொகுப்புகள்"
 
 #. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1262
+#: ../client/pk-console.c:1278
 msgid "Packages to remove"
 msgstr "நீக்கவேண்டிய தொகுப்புகள்"
 
 #. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1330
+#: ../client/pk-console.c:1346
 #, c-format
 msgid "No new packages need to be installed"
 msgstr "புதிய தொகுப்புகள் நிறுவப்பட வேண்டியுள்ளது"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1336
+#: ../client/pk-console.c:1352
 msgid "To install"
 msgstr "நிறுவுவதற்கு"
 
 #. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1348
+#: ../client/pk-console.c:1364
 msgid "Searching for package: "
 msgstr "தொகுப்பினை தேடுகிறது: "
 
 #. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1352
+#: ../client/pk-console.c:1368
 msgid "not found."
 msgstr "காணப்படவில்லை."
 
 #. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1363
+#: ../client/pk-console.c:1379
 #, c-format
 msgid "No packages can be found to install"
 msgstr "நிறுவுவதற்கு தொகுப்புகள் எதுவும் காணப்படவில்லை"
 
 #. TRANSLATORS: installing new packages from package list
-#: ../client/pk-console.c:1369
+#. TRANSLATORS: we are now installing the debuginfo packages we found earlier
+#: ../client/pk-console.c:1385
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:886
+#, c-format
 msgid "Installing packages"
 msgstr "நிறுவப்பட்ட தொகுப்புகள்"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1405
+#: ../client/pk-console.c:1421
 #, c-format
 msgid "This tool could not find the update details for %s: %s"
 msgstr "%sகான விவரங்களை மேம்படுத்த இந்தக் கருவியால் கண்டுபிடிக்க முடியவில்லை: %s"
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1413
+#: ../client/pk-console.c:1429
 #, c-format
 msgid "This tool could not get the update details for %s: %s"
 msgstr "This tool could not get the update details for %s: %s"
 
 #. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
-#: ../client/pk-console.c:1444
+#: ../client/pk-console.c:1460
 msgid "Error:"
 msgstr "பிழை:"
 
 #. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1458
+#: ../client/pk-console.c:1474
 msgid "Package description"
 msgstr "தொகுப்பு விளக்கம்"
 
 #. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
-#: ../client/pk-console.c:1474
+#: ../client/pk-console.c:1490
 msgid "Message:"
 msgstr "செய்தி:"
 
 #. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1502
+#: ../client/pk-console.c:1518
 msgid "Package files"
 msgstr "தொகுப்பு கோப்புகள்"
 
 #. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1510
+#: ../client/pk-console.c:1526
 msgid "No files"
 msgstr "கோப்புகள் இல்லை"
 
 #. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1533
+#: ../client/pk-console.c:1549
 msgid "Repository signature required"
 msgstr "நம்பிக்கையான கையெழுத்து தேவைப்படுகிறது"
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1543
+#: ../client/pk-console.c:1559
 msgid "Do you accept this signature?"
 msgstr "நீங்கள் இந்த கையெமுத்து ஏற்றுக் கொள்கிறீர்களா ?"
 
 #. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1547
+#: ../client/pk-console.c:1563
 msgid "The signature was not accepted."
 msgstr "கையேழுத்து ஏற்றுக் கொள்ளப்படவில்லை."
 
 #. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1581
+#: ../client/pk-console.c:1597
 msgid "End user license agreement required"
 msgstr "இறுதியான பயனரின் உரிம ஒப்பந்தம் தேவைப்படுகிறது"
 
 #. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1588
+#: ../client/pk-console.c:1604
 msgid "Do you agree to this license?"
 msgstr "இந்த உரிமத்தை நீங்கள் ஏற்று கொள்கிறீர்களா?"
 
 #. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1592
+#: ../client/pk-console.c:1608
 msgid "The license was refused."
 msgstr "உரிமம் மறுக்கப்பட்டது."
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1621
+#: ../client/pk-console.c:1637
 msgid "The daemon crashed mid-transaction!"
 msgstr "மத்திய பரிமாற்றத்தின் போது டோமோன் நொறுக்கப்பட்டது!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1674
+#: ../client/pk-console.c:1690
 msgid "PackageKit Console Interface"
 msgstr "PackageKit பணியக முகப்பு"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1676
+#: ../client/pk-console.c:1692
 msgid "Subcommands:"
 msgstr "துணைக்கட்டளைகள்:"
 
 #. TRANSLATORS: command line argument, if we should show debugging information
 #. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:1768 ../client/pk-generate-pack.c:185
-#: ../client/pk-monitor.c:125
-#: ../contrib/command-not-found/pk-command-not-found.c:521
-#: ../src/pk-main.c:211
+#: ../client/pk-console.c:1785 ../client/pk-generate-pack.c:185
+#: ../client/pk-monitor.c:128
+#: ../contrib/command-not-found/pk-command-not-found.c:616
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:550
+#: ../contrib/device-rebind/pk-device-rebind.c:293 ../src/pk-main.c:211
 msgid "Show extra debugging information"
 msgstr "கூடுதல் பிழைதிருத்த தகவலைக் காட்டு"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1771 ../client/pk-monitor.c:127
+#: ../client/pk-console.c:1788 ../client/pk-monitor.c:130
 msgid "Show the program version and exit"
 msgstr "நிகழ்ச்சி பதிப்பு மற்றும் வெளியேறுவதைக் காட்டு"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1774
+#: ../client/pk-console.c:1791
 msgid "Set the filter, e.g. installed"
 msgstr "வடோப்பினை"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1777
+#: ../client/pk-console.c:1794
 msgid "Exit without waiting for actions to complete"
 msgstr "செயல் முடிவடை வரை காத்திருக்காமல் வெளியேறு"
 
 #. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:1804
+#: ../client/pk-console.c:1821
 msgid "This tool could not connect to system DBUS."
 msgstr "இந்தக் கருவியால் கணினி DBUSஐ இணைக்க முடியாது."
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1893
+#: ../client/pk-console.c:1911
 msgid "The filter specified was invalid"
 msgstr "வடிப்பி குறிப்பிடுவது தவறானது"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1911
+#: ../client/pk-console.c:1930
 msgid "A search type is required, e.g. name"
 msgstr "ஒரு தேடும் வகை தேவைப்படுகிறது, எ.கா. பெயர்"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1917 ../client/pk-console.c:1925
-#: ../client/pk-console.c:1933 ../client/pk-console.c:1941
+#: ../client/pk-console.c:1937 ../client/pk-console.c:1946
+#: ../client/pk-console.c:1955 ../client/pk-console.c:1964
 msgid "A search term is required"
 msgstr "ஒரு தேடும் சொல் தேவைப்படுகிறது"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1947
+#: ../client/pk-console.c:1971
 msgid "Invalid search type"
 msgstr "தவறான தேடும் வகை"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1953
+#: ../client/pk-console.c:1977
 msgid "A package name or filename to install is required"
 msgstr "ஒரு தொகுப்பு பெயர் அல்லது கோப்பு பெயரை நறுவுவதற்கு தேவைப்படுகிறது"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1961
+#: ../client/pk-console.c:1986
 msgid "A type, key_id and package_id are required"
 msgstr "ஒரு வகை, விசை_ஐடி மற்றும் தொகுப்பு_ஐடி தேவைப்படுகிறது"
 
 #. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:1969
+#: ../client/pk-console.c:1995
 msgid "A package name to remove is required"
 msgstr "நீக்குவதற்கு ஒரு தொகுப்பு பெயர் தேவைப்படுகிறது"
 
 #. TRANSLATORS: the user did not specify anything about what to download or where
-#: ../client/pk-console.c:1976
-msgid "A destination directory and then the package names to download are required"
+#: ../client/pk-console.c:2003
+#, fuzzy
+msgid "A destination directory and the package names to download are required"
 msgstr "ஒரு இலக்கு அடைவு மற்றும் தொகுப்பு பெயர்கள் பதிவிறக்க தேவைப்படுகிறது"
 
 #. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:1982
+#: ../client/pk-console.c:2010
 msgid "Directory not found"
 msgstr "அடைவு காணப்படவில்லை"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1989
+#: ../client/pk-console.c:2018
 msgid "A licence identifier (eula-id) is required"
 msgstr "ஒரு உரிமம் எடுத்துகாட்டுபவர் (eula-id) தேவைப்படுகிறது"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1998
+#: ../client/pk-console.c:2028
 msgid "A transaction identifier (tid) is required"
 msgstr "பரிமாற்ற கண்டுபிடிப்பாளர் (tid) தேவைப்படுகிறது"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:2014
+#: ../client/pk-console.c:2045
 msgid "A package name to resolve is required"
 msgstr "தொகுப்பு பெயர் மறுதீர்வுக்கு தேவைப்படுகிறது"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:2022 ../client/pk-console.c:2030
+#: ../client/pk-console.c:2054 ../client/pk-console.c:2063
 msgid "A repository name is required"
 msgstr "நம்பகமான ஒரு பெயர் தேவைப்படுகிறது"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2038
+#: ../client/pk-console.c:2072
 msgid "A repo name, parameter and value are required"
 msgstr "ஒரு ரெபோ பெநர், அளவுரு மற்றும் மதிப்பு தேவைப்படுகிறது"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:2051
+#: ../client/pk-console.c:2086
 msgid "An action, e.g. 'update-system' is required"
 msgstr "செயலுக்கு, எ.கா. 'மேம்படுத்தப்பட்ட கணினி' தேவைப்படுகிறது"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:2057
+#: ../client/pk-console.c:2093
 msgid "A correct role is required"
 msgstr "ஒரு சரியான திருப்பம் தேவைப்படுகிறது"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2063
+#: ../client/pk-console.c:2100
 msgid "Failed to get the time since this action was last completed"
 msgstr "இந்த செயல் கடைசியாக முடிவடையும் வரை நேரத்தை பெற்றிருப்பதில் தோல்வி"
 
 #. TRANSLATORS: The user did not provide a package name
 #. TRANSLATORS: This is when the user fails to supply the package name
-#: ../client/pk-console.c:2072 ../client/pk-console.c:2083
-#: ../client/pk-console.c:2091 ../client/pk-console.c:2107
-#: ../client/pk-console.c:2115 ../client/pk-generate-pack.c:241
+#: ../client/pk-console.c:2110 ../client/pk-console.c:2122
+#: ../client/pk-console.c:2131 ../client/pk-console.c:2149
+#: ../client/pk-console.c:2158 ../client/pk-generate-pack.c:241
 msgid "A package name is required"
 msgstr "ஒரு தொகுப்பு பெயர் தேவைப்படுகிறது"
 
 #. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:2099
+#: ../client/pk-console.c:2140
 msgid "A package provide string is required"
 msgstr "ஒரு தொகுப்பால் வழங்கப்படும் சரம் தேவைப்படுகிறது"
 
 #. TRANSLATORS: The user didn't specify a filename to create as a list
-#: ../client/pk-console.c:2123
+#: ../client/pk-console.c:2167
 msgid "A list file name to create is required"
 msgstr "ஒரு பட்டியல் கோப்பு பெயரை உருவாக்குவது தேவைப்படுகிறது"
 
 #. TRANSLATORS: The user didn't specify a filename to open as a list
-#: ../client/pk-console.c:2132 ../client/pk-console.c:2141
+#: ../client/pk-console.c:2177 ../client/pk-console.c:2187
 msgid "A list file to open is required"
 msgstr "ஒரு பட்டியல் கோப்பினை திறப்பது தேவைப்படுகிறது"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2194
+#: ../client/pk-console.c:2241
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr " '%s' விருப்பம் துணைபுரியவில்லை"
 
 #. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2207
+#: ../client/pk-console.c:2254
 msgid "Incorrect privileges for this operation"
 msgstr "இந்த செயல்பாடுக்கு தவறான முன்னுரிமைகள்"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2210
+#: ../client/pk-console.c:2257
 msgid "Command failed"
 msgstr "கட்டளை தோல்வியுற்றது"
 
@@ -676,8 +715,10 @@ msgstr "நீக்கப்பட்ட சார்புகளுடைய à
 
 #. TRANSLATORS: the output location
 #: ../client/pk-generate-pack.c:191
-msgid "The output file or directory (the current directory is used if ommitted)"
-msgstr "வெளியேறும் கோப்பு அல்லது அடைவு (தற்போது பயன்படுத்தப்படுகிற அடைவு தவிர்க்கப்பட்டால்)"
+msgid ""
+"The output file or directory (the current directory is used if ommitted)"
+msgstr ""
+"வெளியேறும் கோப்பு அல்லது அடைவு (தற்போது பயன்படுத்தப்படுகிற அடைவு தவிர்க்கப்பட்டால்)"
 
 #. TRANSLATORS: put a list of packages in the pack
 #: ../client/pk-generate-pack.c:194
@@ -725,7 +766,8 @@ msgstr "ஒரு கோப்பினை குறிப்பிட்டாà
 #. TRANSLATORS: This is when file already exists
 #: ../client/pk-generate-pack.c:307
 msgid "A pack with the same name already exists, do you want to overwrite it?"
-msgstr "ஒரே பெயருடைய தொகுப்பு ஏற்கனவே வெளியேற்றப்பட்டது, அதை மீண்டும் மேலெழுத விரும்புகிறீர்களா?"
+msgstr ""
+"ஒரே பெயருடைய தொகுப்பு ஏற்கனவே வெளியேற்றப்பட்டது, அதை மீண்டும் மேலெழுத விரும்புகிறீர்களா?"
 
 #. TRANSLATORS: This is when the pack was not overwritten
 #: ../client/pk-generate-pack.c:310
@@ -771,10 +813,14 @@ msgid "Failed to create '%s': %s"
 msgstr "'%s' உருவாக்குவதில் தோல்வி: %s"
 
 #. TRANSLATORS: this is a program that monitors PackageKit
-#: ../client/pk-monitor.c:143
+#: ../client/pk-monitor.c:146
 msgid "PackageKit Monitor"
 msgstr "PackageKit திரை"
 
+#: ../client/pk-monitor.c:183
+msgid "Cannot show the list of transactions"
+msgstr ""
+
 #. TRANSLATORS: The package was not found in any software sources
 #: ../client/pk-tools-common.c:118
 #, c-format
@@ -796,128 +842,433 @@ msgstr "சரியான தொகுப்பினை தேர்ந்தà
 msgid "Please enter a number from 1 to %i: "
 msgstr "1 லிருந்து %i வரை எண்னை உள்ளீடவும் : "
 
+#. TRANSLATORS: when we are getting data from the daemon
+#: ../contrib/browser-plugin/pk-plugin-install.c:466
+msgid "Getting package information..."
+msgstr "தொகுப்புகளின் தகவலை பெறுகிறது..."
+
+#. TRANSLATORS: run an applicaiton
+#: ../contrib/browser-plugin/pk-plugin-install.c:472
+#, c-format
+msgid "Run %s"
+msgstr "%sஐ இயக்கு"
+
+#. TRANSLATORS: show the installed version of a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:478
+msgid "Installed version"
+msgstr "நிறுவப்பட்ட பதிப்பு"
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:486
+#, c-format
+msgid "Run version %s now"
+msgstr "பதிப்பு %sஐ இப்போது இயக்கு"
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:492
+msgid "Run now"
+msgstr "இப்போது இயக்கு"
+
+#. TRANSLATORS: update to a new version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:498
+#, c-format
+msgid "Update to version %s"
+msgstr "%s பதிப்பினை புதுப்பி"
+
+#. TRANSLATORS: To install a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:504
+#, c-format
+msgid "Install %s now"
+msgstr "இப்போது  %sஐ நிறுவவும்"
+
+#. TRANSLATORS: the version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:507
+msgid "Version"
+msgstr "பதிப்பு"
+
+#. TRANSLATORS: noting found, so can't install
+#: ../contrib/browser-plugin/pk-plugin-install.c:512
+msgid "No packages found for your system"
+msgstr "உங்கள் கணினியில் தொகுப்புகள் காணப்படவில்லை"
+
+#. TRANSLATORS: package is being installed
+#: ../contrib/browser-plugin/pk-plugin-install.c:517
+msgid "Installing..."
+msgstr "நிறுவுகிறது..."
+
+#. TRANSLATORS: downloading repo data so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:349
+msgid "Downloading details about the software sources."
+msgstr ""
+
+#. TRANSLATORS: downloading file lists so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:353
+msgid "Downloading filelists (this may take some time to complete)."
+msgstr ""
+
+#. TRANSLATORS: waiting for native lock
+#: ../contrib/command-not-found/pk-command-not-found.c:357
+#, fuzzy
+msgid "Waiting for package manager lock."
+msgstr "தொகுப்பு பெயரை தேடுகிறது."
+
+#. TRANSLATORS: loading package cache so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:361
+#, fuzzy
+msgid "Loading list of packages."
+msgstr "தொகுப்புகளை பதிவிறக்குகிறது"
+
 #. TRANSLATORS: we failed to find the package, this shouldn't happen
-#: ../contrib/command-not-found/pk-command-not-found.c:372
+#: ../contrib/command-not-found/pk-command-not-found.c:420
 msgid "Failed to search for file"
 msgstr "கோப்பிற்காக தேடுவதில் தோல்வி"
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:496
+#: ../contrib/command-not-found/pk-command-not-found.c:557
 msgid "Failed to launch:"
 msgstr "கடண்டுபிடிப்பத்தில் தோல்வி:"
 
 #. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/command-not-found/pk-command-not-found.c:537
+#: ../contrib/command-not-found/pk-command-not-found.c:632
 msgid "PackageKit Command Not Found"
 msgstr "PackageKit கட்டளை காணப்படவில்லை"
 
 #. TRANSLATORS: the prefix of all the output telling the user why it's not executing
-#: ../contrib/command-not-found/pk-command-not-found.c:560
+#: ../contrib/command-not-found/pk-command-not-found.c:658
 msgid "Command not found."
 msgstr "கட்டளைக் காணப்படவில்லை."
 
 #. TRANSLATORS: tell the user what we think the command is
-#: ../contrib/command-not-found/pk-command-not-found.c:567
+#: ../contrib/command-not-found/pk-command-not-found.c:665
 msgid "Similar command is:"
 msgstr "ஒரே மாதிரியான கட்டளைகளாவன:"
 
 #. TRANSLATORS: Ask the user if we should run the similar command
-#: ../contrib/command-not-found/pk-command-not-found.c:576
+#: ../contrib/command-not-found/pk-command-not-found.c:674
 msgid "Run similar command:"
 msgstr "ஒரே மாதிரியான கட்டளையை இயக்கு:"
 
 #. TRANSLATORS: show the user a list of commands that they could have meant
 #. TRANSLATORS: show the user a list of commands we could run
-#: ../contrib/command-not-found/pk-command-not-found.c:588
-#: ../contrib/command-not-found/pk-command-not-found.c:597
+#: ../contrib/command-not-found/pk-command-not-found.c:686
+#: ../contrib/command-not-found/pk-command-not-found.c:695
 msgid "Similar commands are:"
 msgstr "ஒரே மாதிரியான கட்டளைகள்:"
 
 #. TRANSLATORS: ask the user to choose a file to run
-#: ../contrib/command-not-found/pk-command-not-found.c:604
+#: ../contrib/command-not-found/pk-command-not-found.c:702
 msgid "Please choose a command to run"
 msgstr "இயக்குவதற்கு ஒரு கட்டளையை தேர்ந்தெடு"
 
 #. TRANSLATORS: tell the user what package provides the command
-#: ../contrib/command-not-found/pk-command-not-found.c:619
+#: ../contrib/command-not-found/pk-command-not-found.c:721
 msgid "The package providing this file is:"
 msgstr "இந்த கோப்பில் தொகுப்பு வழங்குவது:"
 
 #. TRANSLATORS: as the user if we want to install a package to provide the command
-#: ../contrib/command-not-found/pk-command-not-found.c:624
+#: ../contrib/command-not-found/pk-command-not-found.c:726
 #, c-format
 msgid "Install package '%s' to provide command '%s'?"
 msgstr "'%s' கட்டளை வழங்குவதற்கு '%s' தொகுப்பை நிறுவு?"
 
 #. TRANSLATORS: Show the user a list of packages that provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:645
+#: ../contrib/command-not-found/pk-command-not-found.c:747
 msgid "Packages providing this file are:"
 msgstr "இந்த கோப்பில் தொகுப்புகள் வழங்குவ:"
 
 #. TRANSLATORS: Show the user a list of packages that they can install to provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:654
+#: ../contrib/command-not-found/pk-command-not-found.c:756
 msgid "Suitable packages are:"
 msgstr "சரியான தொகுப்புகள்:"
 
 #. get selection
 #. TRANSLATORS: ask the user to choose a file to install
-#: ../contrib/command-not-found/pk-command-not-found.c:662
+#: ../contrib/command-not-found/pk-command-not-found.c:764
 msgid "Please choose a package to install"
 msgstr "நிறுவுவதற்கு ஒரு கோப்பினை தேர்ந்தெடு"
 
-#. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/src/contents.cpp:299
-msgid "Getting package information..."
-msgstr "தொகுப்புகளின் தகவலை பெறுகிறது..."
+#. TRANSLATORS: we are starting to install the packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:187
+#, fuzzy
+msgid "Starting install"
+msgstr "நிறுவுவதற்கு"
 
-#. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/src/contents.cpp:305
+#. TRANSLATORS: we couldn't find the package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:397
+#, fuzzy, c-format
+msgid "Failed to find the package %s, or already installed: %s"
+msgstr "தொகுப்பு %s ஏற்கனவே நிறுவப்பட்டது"
+
+#. command line argument, simulate what would be done, but don't actually do it
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:553
+msgid ""
+"Don't actually install any packages, only simulate what would be installed"
+msgstr ""
+
+#. command line argument, do we skip packages that depend on the ones specified
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:556
+msgid "Do not install dependencies of the core packages"
+msgstr ""
+
+#. command line argument, do we operate quietly
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:559
+msgid "Do not display information or progress"
+msgstr ""
+
+#. TRANSLATORS: tool that gets called when the command is not found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:577
+#, fuzzy
+msgid "PackageKit Debuginfo Installer"
+msgstr "PackageKit பணியக முகப்பு"
+
+#. TRANSLATORS: the use needs to specify a list of package names on the command line
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:589
+#, fuzzy, c-format
+msgid "ERROR: Specify package names to install."
+msgstr "புதிய தொகுப்புகள் நிறுவப்பட வேண்டியுள்ளது"
+
+#. TRANSLATORS: we are getting the list of repositories
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:623
+#, fuzzy, c-format
+msgid "Getting sources list"
+msgstr "தொகுப்புகளின் பட்டியல் பெறப்படுகிறது"
+
+#. TRANSLATORS: all completed 100%
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:641
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:681
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:716
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:800
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:844
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:911
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:955
 #, c-format
-msgid "Run %s"
-msgstr "%sஐ இயக்கு"
+msgid "OK."
+msgstr ""
 
-#. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/src/contents.cpp:311
-msgid "Installed version"
-msgstr "நிறுவப்பட்ட பதிப்பு"
+#. TRANSLATORS: tell the user what we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:644
+#, c-format
+msgid "Found %i enabled and %i disabled sources."
+msgstr ""
 
-#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/src/contents.cpp:319
+#. TRANSLATORS: we're finding repositories that match out pattern
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:651
 #, c-format
-msgid "Run version %s now"
-msgstr "பதிப்பு %sஐ இப்போது இயக்கு"
+msgid "Finding debugging sources"
+msgstr ""
 
-#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/src/contents.cpp:325
-msgid "Run now"
-msgstr "இப்போது இயக்கு"
+#. TRANSLATORS: tell the user what we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:684
+#, c-format
+msgid "Found %i disabled debuginfo repos."
+msgstr ""
 
-#. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/src/contents.cpp:331
+#. TRANSLATORS: we're now enabling all the debug sources we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:691
 #, c-format
-msgid "Update to version %s"
-msgstr "%s பதிப்பினை புதுப்பி"
+msgid "Enabling debugging sources"
+msgstr ""
 
-#. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/src/contents.cpp:337
+#. TRANSLATORS: operation was not successful
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:701
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:785
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:829
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:896
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:940
+msgid "FAILED."
+msgstr ""
+
+#. TRANSLATORS: tell the user how many we enabled
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:719
 #, c-format
-msgid "Install %s now"
-msgstr "இப்போது  %sஐ நிறுவவும்"
+msgid "Enabled %i debugging sources."
+msgstr ""
 
-#. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/src/contents.cpp:340
-msgid "Version"
-msgstr "பதிப்பு"
+#. TRANSLATORS: we're now finding packages that match in all the repos
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:726
+#, fuzzy, c-format
+msgid "Finding debugging packages"
+msgstr "தொகுப்பு பெயரை தேடுகிறது."
 
-#. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/src/contents.cpp:345
-msgid "No packages found for your system"
-msgstr "உங்கள் கணினியில் தொகுப்புகள் காணப்படவில்லை"
+#. TRANSLATORS: we couldn't find the package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:738
+#, fuzzy, c-format
+msgid "Failed to find the package %s: %s"
+msgstr "தொகுப்பு '%s'ஐ காணமுடியவில்லை: %s"
 
-#. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/src/contents.cpp:350
-msgid "Installing..."
-msgstr "நிறுவுகிறது..."
+#. TRANSLATORS: we couldn't find the debuginfo package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:761
+#, fuzzy, c-format
+msgid "Failed to find the debuginfo package %s: %s"
+msgstr "தொகுப்பு '%s'ஐ காணமுடியவில்லை: %s"
+
+#. TRANSLATORS: no debuginfo packages could be found to be installed
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:789
+#, fuzzy, c-format
+msgid "Found no packages to install."
+msgstr "புதிய தொகுப்புகள் நிறுவப்பட வேண்டியுள்ளது"
+
+#. TRANSLATORS: tell the user we found some packages, and then list them
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:803
+#, fuzzy, c-format
+msgid "Found %i packages:"
+msgstr "தொகுப்புகளை பதிவிறக்குகிறது"
+
+#. TRANSLATORS: tell the user we are searching for deps
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:819
+#, c-format
+msgid "Finding packages that depend on these packages"
+msgstr ""
+
+#. TRANSLATORS: could not install, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:832
+#, fuzzy, c-format
+msgid "Could not find dependant packages: %s"
+msgstr "தொகுப்பு '%s'ஐ காணமுடியவில்லை: %s"
+
+#. TRANSLATORS: tell the user we found some more packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:848
+#, c-format
+msgid "Found %i extra packages."
+msgstr ""
+
+#. TRANSLATORS: tell the user we found some more packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:852
+#, fuzzy, c-format
+msgid "No extra packages required."
+msgstr "ஒரு தொகுப்பு பெயர் தேவைப்படுகிறது"
+
+#. TRANSLATORS: tell the user we found some packages (and deps), and then list them
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:861
+#, fuzzy, c-format
+msgid "Found %i packages to install:"
+msgstr "புதிய தொகுப்புகள் நிறுவப்பட வேண்டியுள்ளது"
+
+#. TRANSLATORS: simulate mode is a testing mode where we quit before the action
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:874
+#, fuzzy, c-format
+msgid "Not installing packages in simulate mode"
+msgstr "நிறுவப்பட்ட தொகுப்புகள்"
+
+#. TRANSLATORS: could not install, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:899
+#, fuzzy, c-format
+msgid "Could not install packages: %s"
+msgstr "இந்த கருவி இந்த தொகுப்புகளை நிறுவ முடியவில்லை: %s"
+
+#. TRANSLATORS: we are now disabling all debuginfo repos we previously enabled
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:931
+#, c-format
+msgid "Disabling sources previously enabled"
+msgstr ""
+
+#. TRANSLATORS: no debuginfo packages could be found to be installed, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:943
+#, c-format
+msgid "Could not disable the debugging sources: %s"
+msgstr ""
+
+#. TRANSLATORS: we disabled all the debugging repos that we enabled before
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:958
+#, c-format
+msgid "Disabled %i debugging sources."
+msgstr ""
+
+#. TRANSLATORS: couldn't open device to write
+#: ../contrib/device-rebind/pk-device-rebind.c:61
+#, fuzzy
+msgid "Failed to open file"
+msgstr "கோப்பிற்காக தேடுவதில் தோல்வி"
+
+#. TRANSLATORS: could not write to the device
+#: ../contrib/device-rebind/pk-device-rebind.c:70
+#, fuzzy
+msgid "Failed to write to the file"
+msgstr "கோப்பிற்காக தேடுவதில் தோல்வி"
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:110
+#: ../contrib/device-rebind/pk-device-rebind.c:147
+#, fuzzy
+msgid "Failed to write to device"
+msgstr "வட்டில் சேமிப்பதில் தோல்வி"
+
+#. TRANSLATORS: the device could not be found in sysfs
+#: ../contrib/device-rebind/pk-device-rebind.c:175
+#, fuzzy
+msgid "Device could not be found"
+msgstr "தொகுப்புகள் காணப்படவில்லை"
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:202
+#, fuzzy
+msgid "Failed to unregister driver"
+msgstr "அடைவினை உருவாக்குவதில் தோல்வி:"
+
+#. TRANSLATORS: we failed to bind the old driver
+#: ../contrib/device-rebind/pk-device-rebind.c:211
+#, fuzzy
+msgid "Failed to register driver"
+msgstr "அடைவினை உருவாக்குவதில் தோல்வி:"
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:260
+#, fuzzy
+msgid "Device path not found"
+msgstr "அடைவு காணப்படவில்லை"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:268
+msgid "Incorrect device path specified"
+msgstr ""
+
+#. command line argument, simulate what would be done, but don't actually do it
+#: ../contrib/device-rebind/pk-device-rebind.c:296
+msgid "Don't actually touch the hardware, only simulate what would be done"
+msgstr ""
+
+#. TRANSLATORS: command line option: a list of files to install
+#: ../contrib/device-rebind/pk-device-rebind.c:299
+msgid "Device paths"
+msgstr ""
+
+#. TRANSLATORS: tool that gets called when the device needs reloading after installing firmware
+#: ../contrib/device-rebind/pk-device-rebind.c:314
+#, fuzzy
+msgid "PackageKit Device Reloader"
+msgstr "PackageKit சேவை தொகுப்பு"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:322
+msgid "You need to specify at least one valid device path"
+msgstr ""
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:332
+msgid "This script can only be used by the root user"
+msgstr ""
+
+#. TRANSLATORS: we're going to verify the path first
+#: ../contrib/device-rebind/pk-device-rebind.c:341
+msgid "Verifying device path"
+msgstr ""
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:346
+#, fuzzy
+msgid "Failed to verify device path"
+msgstr "கோப்பிற்காக தேடுவதில் தோல்வி"
+
+#. TRANSLATORS: we're going to try
+#: ../contrib/device-rebind/pk-device-rebind.c:360
+msgid "Attempting to rebind device"
+msgstr ""
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:365
+#, fuzzy
+msgid "Failed to rebind device"
+msgstr "அடைவினை உருவாக்குவதில் தோல்வி:"
 
 #: ../data/packagekit-catalog.xml.in.h:1
 msgid "PackageKit Catalog"
@@ -931,95 +1282,177 @@ msgstr "PackageKit தொகுப்பு பட்டியல்"
 msgid "PackageKit Service Pack"
 msgstr "PackageKit சேவை தொகுப்பு"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:1
+#. SECURITY:
+#. - Normal users do not require admin authentication to accept new
+#. licence agreements.
+#. - Change this to 'auth_admin' for environments where users should not
+#. be given the option to make legal decisions.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:7
 msgid "Accept EULA"
 msgstr "EULAவை ஏற்கிறது"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:2
+#: ../policy/org.freedesktop.packagekit.policy.in.h:8
 msgid "Authentication is required to accept a EULA"
 msgstr "EULAவை ஏற்பதற்கு அங்கீகாரம் தேவைப்படுகிறது"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:3
-msgid "Authentication is required to cancel a task that was not started by yourself"
+#: ../policy/org.freedesktop.packagekit.policy.in.h:9
+msgid ""
+"Authentication is required to cancel a task that was not started by yourself"
 msgstr "உங்களால் துவங்கப்படாத பணியை ரத்துச் செய்ய அங்கீகாரம் தேவைப்படுகிறது"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:4
+#: ../policy/org.freedesktop.packagekit.policy.in.h:10
 msgid "Authentication is required to change software source parameters"
 msgstr "மென்பொருள் மூல அளவுருகளை மாற்றுவதற்கு அங்கீகாரம் தேவைப்படுகிறது"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:5
+#: ../policy/org.freedesktop.packagekit.policy.in.h:11
 msgid ""
 "Authentication is required to consider a key used for signing packages as "
 "trusted"
-msgstr "நம்ப்பபட்ட தொகுப்புகளை கையெழுத்திட ஒரு விசையை பயன்படுத்த அங்கீகாரம் தேவைப்படுகிறது"
+msgstr ""
+"நம்ப்பபட்ட தொகுப்புகளை கையெழுத்திட ஒரு விசையை பயன்படுத்த அங்கீகாரம் தேவைப்படுகிறது"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:6
+#: ../policy/org.freedesktop.packagekit.policy.in.h:12
 msgid "Authentication is required to install a signed package"
 msgstr "கையெழுத்திடப்பட்ட தொகுப்பினை நிறுவுவதற்கு அங்கீகாரம் தேவைப்படுகிறது"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:7
+#: ../policy/org.freedesktop.packagekit.policy.in.h:13
 msgid "Authentication is required to install an untrusted package"
 msgstr "நம்பகமில்லாத தொகுப்பினை நிறுவுவதற்கு அங்கீகாரம் தேவைப்படுகிறது"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:8
+#: ../policy/org.freedesktop.packagekit.policy.in.h:14
 msgid "Authentication is required to refresh the system sources"
 msgstr "கணினி மூலங்களை புதுப்பிக்க அங்கீகாரம் தேவைப்படுகிறது"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:9
+#: ../policy/org.freedesktop.packagekit.policy.in.h:15
+#, fuzzy
+msgid "Authentication is required to reload the device with a new driver"
+msgstr "கணினி மூலங்களை புதுப்பிக்க அங்கீகாரம் தேவைப்படுகிறது"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:16
 msgid "Authentication is required to remove packages"
 msgstr "தொகுப்புகளை நீக்குவதற்கு அங்கீகாரம் தேவைப்படுகிறது"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:10
+#: ../policy/org.freedesktop.packagekit.policy.in.h:17
 msgid "Authentication is required to rollback a transaction"
 msgstr "ஒரு பரிமாற்றத்தை திரும்ப பெறுவதற்கு அங்கீகாரம் தேவைப்படுகிறது"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:11
+#: ../policy/org.freedesktop.packagekit.policy.in.h:18
 msgid ""
 "Authentication is required to set the network proxy used for downloading "
 "packages"
-msgstr "தொகுப்புகளை பதிவிறக்க பயன்படும் பிணைய பிராக்ஸியை அமைக்க அங்கீகாரம் தேவைப்படுகிறது"
+msgstr ""
+"தொகுப்புகளை பதிவிறக்க பயன்படும் பிணைய பிராக்ஸியை அமைக்க அங்கீகாரம் தேவைப்படுகிறது"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:12
+#: ../policy/org.freedesktop.packagekit.policy.in.h:19
 msgid "Authentication is required to update packages"
 msgstr "தொகுப்புகளை மேம்படுத்த "
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:13
+#. SECURITY:
+#. - Normal users are allowed to cancel their own task without
+#. authentication, but a different user id needs the admin password
+#. to cancel another users task.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:25
 msgid "Cancel foreign task"
 msgstr "வெளி வேலைகளை ரத்துசெய்"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:14
+#. SECURITY:
+#. - Normal users require admin authentication to enable or disable
+#. software sources as this can be used to enable new updates or
+#. install different versions of software.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:31
 msgid "Change software source parameters"
 msgstr " மென்பொருள் மூல அளவுருகளை மாற்று"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:15
+#. SECURITY:
+#. - Normal users do not need authentication to install signed packages
+#. from signed repositories, as this cannot exploit a system.
+#. - Paranoid users (or parents!) can change this to 'auth_admin' or
+#. 'auth_admin_keep'.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:38
 msgid "Install signed package"
 msgstr "பையெமுத்திடப்பட்ட தொகுப்பை நிறுவு"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:16
+#. SECURITY:
+#. - Normal users require admin authentication to install untrusted or
+#. unrecognised packages, as allowing users to do this without a
+#. password would be a massive security hole.
+#. - This is not retained as each package should be authenticated.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:45
 msgid "Install untrusted local file"
 msgstr "நம்பமுடியாத  உள்ளமை கோப்பினை நிறுவு"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:17
+#. SECURITY:
+#. - Normal users do not require admin authentication to refresh the
+#. cache, as this doesn't actually install or remove software.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:50
 msgid "Refresh system sources"
 msgstr "கணினி மூலங்களை புதுப்பி"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:18
+#. SECURITY:
+#. - Normal users require admin authentication to rebind a driver
+#. so that it works after we install firmware.
+#. - This should not be set to 'yes' as unprivileged users could then
+#. try to rebind drivers in use, for instance security authentication
+#. devices.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:58
+msgid "Reload a device"
+msgstr ""
+
+#. SECURITY:
+#. - Normal users require admin authentication to remove packages as
+#. this can make the system unbootable or stop other applications from
+#. working.
+#. - Be sure to close the tool used to remove the packages after the
+#. admin authentication has been obtained, otherwise packages can still
+#. be removed. If this is not possible, change this authentication to
+#. 'auth_admin'.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:68
 msgid "Remove package"
 msgstr "தொகுப்பினை நீக்கு"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:19
+#. SECURITY:
+#. - Normal users require admin authentication to rollback system state
+#. as this will change a large number of packages, and could expose the
+#. system to previously patched security vulnerabilities.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:74
 msgid "Rollback to a previous transaction"
 msgstr "முந்தைய பரிமாற்றத்திற்கு திரும்பி செல்லுதல்"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:20
+#. SECURITY:
+#. - Normal users do not require admin authentication to set the proxy
+#. used for downloading packages.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:79
 msgid "Set network proxy"
 msgstr "பிராக்ஸி பிணையத்தைஅமை"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:21
+#. SECURITY:
+#. - Normal users require admin authentication to add signing keys.
+#. - This implies adding an explicit trust, and should not be granted
+#. without a secure authentication.
+#. - This is not kept as each package should be authenticated.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:86
 msgid "Trust a key used for signing packages"
 msgstr "கையெழுத்திப்பட்ட தொகுப்புகளுக்கு பயன்படுத்தும் விசையை நம்பு"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:22
+#. SECURITY:
+#. - Normal users do not require admin authentication to update the
+#. system as the packages will be signed, and the action is required
+#. to update the system when unattended.
+#. - Changing this to anything other than 'yes' will break unattended
+#. updates.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:94
 msgid "Update packages"
 msgstr "தொகுப்புகளை மேம்படுத்து"
 
@@ -1086,32 +1519,50 @@ msgid "Cannot connect to the system bus"
 msgstr "கணினி பஸ்ஸுடன் இணைக்க முடியவில்லை"
 
 #. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error follows
-#: ../src/pk-main.c:331
+#: ../src/pk-main.c:334
 msgid "Error trying to start:"
 msgstr "துவக்க முயற்சிப்பதில் பிழை:"
 
+#: ../src/pk-polkit-action-lookup.c:147
+#, fuzzy
+msgid "To install debugging packages, extra sources need to be enabled"
+msgstr "புதிய தொகுப்புகள் நிறுவப்பட வேண்டியுள்ளது"
+
 #. TRANSLATORS: is not GPG signed
-#: ../src/pk-polkit-action-lookup.c:128 ../src/pk-polkit-action-lookup.c:147
+#: ../src/pk-polkit-action-lookup.c:168 ../src/pk-polkit-action-lookup.c:187
 msgid "The software is not from a trusted source."
 msgstr "இந்த மென்பொருள் ஒரு நம்பப்பட்ட மூலத்திலிருந்து இல்லை."
 
-#. TRANSLATORS: user has to trust provider -- I know, this sucks
-#: ../src/pk-polkit-action-lookup.c:132
+#: ../src/pk-polkit-action-lookup.c:173
 msgid "Do not update this package unless you are sure it is safe to do so."
 msgstr "இதை பாதுகாக்க நீங்கள் ஏதாவது செய்யும் வரை இந்த தொகுப்பை மேம்படுத்த முடியாது."
 
+#: ../src/pk-polkit-action-lookup.c:174
+#, fuzzy
+msgid "Do not update these packages unless you are sure it is safe to do so."
+msgstr "இதை பாதுகாக்க நீங்கள் ஏதாவது செய்யும் வரை இந்த தொகுப்பை மேம்படுத்த முடியாது."
+
+#: ../src/pk-polkit-action-lookup.c:192
+msgid "Do not install this package unless you are sure it is safe to do so."
+msgstr "இதை பாதுகாக்க நீங்கள் ஏதாவது செய்யும் வரை இந்த தொகுப்பை நிறுவ முடியாது."
+
+#: ../src/pk-polkit-action-lookup.c:193
+#, fuzzy
+msgid "Do not install these packages unless you are sure it is safe to do so."
+msgstr "இதை பாதுகாக்க நீங்கள் ஏதாவது செய்யும் வரை இந்த தொகுப்பை நிறுவ முடியாது."
+
 #. TRANSLATORS: warn the user that all bets are off
-#: ../src/pk-polkit-action-lookup.c:136 ../src/pk-polkit-action-lookup.c:155
+#: ../src/pk-polkit-action-lookup.c:199
 msgid "Malicious software can damage your computer or cause other harm."
 msgstr "முறையற்ற மென்பொருள் உங்கள் கணினியை சேதப்படுத்தலாம் அல்லது மற்ற கெடுதலைச் செய்யலாம்."
 
-#. TRANSLATORS: user has to trust provider -- I know, this sucks
-#: ../src/pk-polkit-action-lookup.c:151
-msgid "Do not install this package unless you are sure it is safe to do so."
-msgstr "இதை பாதுகாக்க நீங்கள் ஏதாவது செய்யும் வரை இந்த தொகுப்பை நிறுவ முடியாது."
+#. TRANSLATORS: too many packages to list each one
+#: ../src/pk-polkit-action-lookup.c:274
+#, fuzzy
+msgid "Many packages"
+msgstr "தொகுப்புகளை மேம்படுத்து"
 
 #. TRANSLATORS: if the transaction is forced to install only trusted packages
-#: ../src/pk-polkit-action-lookup.c:235
+#: ../src/pk-polkit-action-lookup.c:334
 msgid "Only trusted"
 msgstr "நம்பக்கூடிய மட்டும்"
-
diff --git a/po/te.po b/po/te.po
index 226d8d0..c9e3f3a 100644
--- a/po/te.po
+++ b/po/te.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: packagekit.master.te\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-06-02 08:19+0000\n"
+"POT-Creation-Date: 2009-08-24 11:06+0100\n"
 "PO-Revision-Date: 2009-06-02 17:20+0530\n"
 "Last-Translator: Krishna Babu K <kkrothap at redhat.com>\n"
 "Language-Team: Telugu <en at li.org>\n"
@@ -15,235 +15,270 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "X-Generator: KBabel 1.11.4\n"
-"Plural-Forms: nplurals=2; plural=(n!=1);\n\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+"\n"
 "\n"
 "\n"
 
 #. TRANSLATORS: this is an atomic transaction
-#: ../client/pk-console.c:234
+#: ../client/pk-console.c:235
 msgid "Transaction"
 msgstr "వ్యవహారము"
 
 #. TRANSLATORS: this is the time the transaction was started in system timezone
-#: ../client/pk-console.c:236
+#: ../client/pk-console.c:237
 msgid "System time"
 msgstr "సిస్టమ్ సమయం"
 
 #. TRANSLATORS: this is if the transaction succeeded or not
-#: ../client/pk-console.c:238
+#: ../client/pk-console.c:239
 msgid "Succeeded"
 msgstr "సఫలమైంది"
 
 #. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:238 ../client/pk-console.c:405
+#: ../client/pk-console.c:239 ../client/pk-console.c:406
 msgid "True"
 msgstr "సత్యము"
 
-#: ../client/pk-console.c:238 ../client/pk-console.c:405
+#: ../client/pk-console.c:239 ../client/pk-console.c:406
 msgid "False"
 msgstr "అసత్యము"
 
 #. TRANSLATORS: this is the transactions role, e.g. "update-system"
-#: ../client/pk-console.c:240
+#. TRANSLATORS: the trasaction role, e.g. update-system
+#: ../client/pk-console.c:241 ../src/pk-polkit-action-lookup.c:327
 msgid "Role"
 msgstr "పాత్ర"
 
 #. TRANSLATORS: this is The duration of the transaction
-#: ../client/pk-console.c:245
+#: ../client/pk-console.c:246
 msgid "Duration"
 msgstr "నిడివి"
 
-#: ../client/pk-console.c:245
+#: ../client/pk-console.c:246
 msgid "(seconds)"
 msgstr "(సెకనులు)"
 
 #. TRANSLATORS: this is The command line used to do the action
-#: ../client/pk-console.c:249
+#. TRANSLATORS: the command line of the thing that wants the authentication
+#: ../client/pk-console.c:250 ../src/pk-polkit-action-lookup.c:341
 msgid "Command line"
 msgstr "ఆదేశ వరుస"
 
 #. TRANSLATORS: this is the user ID of the user that started the action
-#: ../client/pk-console.c:251
+#: ../client/pk-console.c:252
 msgid "User ID"
 msgstr "వినియోగదారి ID"
 
 #. TRANSLATORS: this is the username, e.g. hughsie
-#: ../client/pk-console.c:258
+#: ../client/pk-console.c:259
 msgid "Username"
 msgstr "వినియోగదారినామము"
 
 #. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
-#: ../client/pk-console.c:262
+#: ../client/pk-console.c:263
 msgid "Real name"
 msgstr "వాస్తవ నామము"
 
-#: ../client/pk-console.c:270
+#: ../client/pk-console.c:271
 msgid "Affected packages:"
 msgstr "ప్రభావిత సంకలనాలు:"
 
-#: ../client/pk-console.c:272
+#: ../client/pk-console.c:273
 msgid "Affected packages: None"
 msgstr "ప్రభావిత సంకలనాలు: ఏదీకాదు"
 
 #. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:297
+#: ../client/pk-console.c:298
 msgid "Distribution"
 msgstr "పంపిణి"
 
 #. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:299
+#: ../client/pk-console.c:300
 msgid "Type"
 msgstr "రకము"
 
 #. TRANSLATORS: this is any summary text describing the upgrade
 #. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:301 ../client/pk-console.c:324
+#: ../client/pk-console.c:302 ../client/pk-console.c:325
 msgid "Summary"
 msgstr "సంక్షిప్త సమాచారము"
 
 #. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:313
+#: ../client/pk-console.c:314
 msgid "Category"
 msgstr "వర్గము"
 
 #. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:315
+#: ../client/pk-console.c:316
 msgid "ID"
 msgstr "ID"
 
 #. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:318
+#: ../client/pk-console.c:319
 msgid "Parent"
 msgstr "మాత్రుక"
 
 #. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:321
+#: ../client/pk-console.c:322
 msgid "Name"
 msgstr "నామము"
 
 #. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:327
+#: ../client/pk-console.c:328
 msgid "Icon"
 msgstr "ప్రతిమ"
 
 #. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:342
+#: ../client/pk-console.c:343
 msgid "Details about the update:"
 msgstr "నవీకరణ గురించి సమాచారము:"
 
 #. TRANSLATORS: details about the update, package name and version
-#: ../client/pk-console.c:344
+#. TRANSLATORS: title, the names of the packages that the method is processing
+#: ../client/pk-console.c:345 ../src/pk-polkit-action-lookup.c:352
+#, fuzzy
 msgid "Package"
-msgstr "సంకలనము"
+msgid_plural "Packages"
+msgstr[0] "సంకలనము"
+msgstr[1] "సంకలనము"
 
 #. TRANSLATORS: details about the update, any packages that this update updates
-#: ../client/pk-console.c:347
+#: ../client/pk-console.c:348
 msgid "Updates"
 msgstr "నవీకరణలు"
 
 #. TRANSLATORS: details about the update, any packages that this update obsoletes
-#: ../client/pk-console.c:351
+#: ../client/pk-console.c:352
 msgid "Obsoletes"
 msgstr "తొలగించినవి"
 
 #. TRANSLATORS: details about the update, the vendor URLs
-#: ../client/pk-console.c:355
+#: ../client/pk-console.c:356
 msgid "Vendor"
 msgstr "అమ్మకందారు"
 
 #. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:359
+#: ../client/pk-console.c:360
 msgid "Bugzilla"
 msgstr "బగ్‌జిల్లా"
 
 #. TRANSLATORS: details about the update, the CVE URLs
-#: ../client/pk-console.c:363
+#: ../client/pk-console.c:364
 msgid "CVE"
 msgstr "CVE"
 
 #. TRANSLATORS: details about the update, if the package requires a restart
-#: ../client/pk-console.c:367
+#: ../client/pk-console.c:368
 msgid "Restart"
 msgstr "పునఃప్రారంభము"
 
 #. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:371
+#: ../client/pk-console.c:372
 msgid "Update text"
 msgstr "పాఠము నవీకరించుము"
 
 #. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:375
+#: ../client/pk-console.c:376
 msgid "Changes"
 msgstr "మార్పులు"
 
 #. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:379
+#: ../client/pk-console.c:380
 msgid "State"
 msgstr "స్థితి"
 
 #. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:384
+#: ../client/pk-console.c:385
 msgid "Issued"
 msgstr "విడుదలైన"
 
 #. TRANSLATORS: details about the update, date the update was updated
-#: ../client/pk-console.c:389
+#: ../client/pk-console.c:390
 msgid "Updated"
 msgstr "నవీకరించిన"
 
-#: ../client/pk-console.c:476 ../client/pk-console.c:478
+#: ../client/pk-console.c:477 ../client/pk-console.c:479
 msgid "Percentage"
 msgstr "శాతము"
 
-#: ../client/pk-console.c:478
+#: ../client/pk-console.c:479
 msgid "Unknown"
 msgstr "తెలియని"
 
 #. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:529
+#: ../client/pk-console.c:521
 msgid "System restart required by:"
 msgstr "సిస్టమ్ పునఃప్రారంభము అవసరమైంది:"
 
 #. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:532
+#: ../client/pk-console.c:524
 msgid "Session restart required:"
 msgstr "విభాగము(సెషన్) పునఃప్రారంభము అవసరమైంది:"
 
+#. TRANSLATORS: a package requires the system to be restarted due to a security update
+#: ../client/pk-console.c:527
+#, fuzzy
+msgid "System restart (security) required by:"
+msgstr "సిస్టమ్ పునఃప్రారంభము అవసరమైంది:"
+
+#. TRANSLATORS: a package requires the session to be restarted due to a security update
+#: ../client/pk-console.c:530
+#, fuzzy
+msgid "Session restart (security) required:"
+msgstr "విభాగము(సెషన్) పునఃప్రారంభము అవసరమైంది:"
+
 #. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:535
+#: ../client/pk-console.c:533
 msgid "Application restart required by:"
 msgstr "అనువర్తనము పునఃప్రారంభము అవసరమైంది:"
 
-#. TRANSLATORS: a package needs to restart they system
-#: ../client/pk-console.c:572
+#. TRANSLATORS: a package needs to restart their system
+#: ../client/pk-console.c:588
 msgid "Please restart the computer to complete the update."
 msgstr "ఈ నవీకరణ పూర్తగుటకు దయచేసి కంప్యూటర్ పునఃప్రారంభించుము."
 
 #. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:575
+#: ../client/pk-console.c:591
 msgid "Please logout and login to complete the update."
 msgstr "ఈ నవీకరణ పూర్తగుటకు దయచేసి లాగ్అవుటై మరియు లాగిన్అవ్వుము"
 
 #. TRANSLATORS: a package needs to restart the application
-#: ../client/pk-console.c:578
+#: ../client/pk-console.c:594
 msgid "Please restart the application as it is being used."
 msgstr "అది వుపయోగించుచుండటం వలన అనువర్తనమును దయచేసి పునఃప్రారంభించుము."
 
+#. TRANSLATORS: a package needs to restart their system (due to security)
+#: ../client/pk-console.c:597
+#, fuzzy
+msgid ""
+"Please restart the computer to complete the update as important security "
+"updates have been installed."
+msgstr "ఈ నవీకరణ పూర్తగుటకు దయచేసి కంప్యూటర్ పునఃప్రారంభించుము."
+
+#. TRANSLATORS: a package needs to restart the session (due to security)
+#: ../client/pk-console.c:600
+#, fuzzy
+msgid ""
+"Please logout and login to complete the update as important security updates "
+"have been installed."
+msgstr "ఈ నవీకరణ పూర్తగుటకు దయచేసి లాగ్అవుటై మరియు లాగిన్అవ్వుము"
+
 #. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:691
+#: ../client/pk-console.c:727
 #, c-format
 msgid "The package %s is already installed"
 msgstr "సంకలనము %s యిప్పటికే సంస్థాపించబడినది"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:699
+#: ../client/pk-console.c:735
 #, c-format
 msgid "The package %s could not be installed: %s"
 msgstr "సంకలము %s సంస్థాపించబడలేక పోయినది: %s"
 
 #. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
-#: ../client/pk-console.c:724 ../client/pk-console.c:751
-#: ../client/pk-console.c:847 ../client/pk-console.c:964
+#: ../client/pk-console.c:760 ../client/pk-console.c:783
+#: ../client/pk-console.c:879 ../client/pk-console.c:996
 #: ../client/pk-tools-common.c:62 ../client/pk-tools-common.c:81
 #: ../client/pk-tools-common.c:89
 #, c-format
@@ -251,399 +286,404 @@ msgid "Internal error: %s"
 msgstr "అతర్గత దోషము: %s"
 
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:732 ../client/pk-console.c:1360
+#: ../client/pk-console.c:768 ../client/pk-console.c:1392
 #, c-format
 msgid "This tool could not install the packages: %s"
 msgstr "ఈ సాధనము సంకలనములు సంస్థాపించలేదు: %s"
 
 #. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:759
+#: ../client/pk-console.c:791
 #, c-format
 msgid "This tool could not install the files: %s"
 msgstr "ఈ సాధనము దస్త్రములను సంస్థాపించలేదు: %s"
 
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:815
+#: ../client/pk-console.c:847
 #, c-format
 msgid "This tool could not remove %s: %s"
 msgstr "ఈ సాధనము తీసివేయలేదు %s: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:838 ../client/pk-console.c:876
-#: ../client/pk-console.c:909
+#: ../client/pk-console.c:870 ../client/pk-console.c:908
+#: ../client/pk-console.c:941
 #, c-format
 msgid "This tool could not remove the packages: %s"
 msgstr "ఈ సాధనము సంకలనములను తీసివేయలేదు: %s"
 
 #. TRANSLATORS: When removing, we might have to remove other dependencies
-#: ../client/pk-console.c:888
+#: ../client/pk-console.c:920
 msgid "The following packages have to be removed:"
 msgstr "ఈ క్రింది సంకలనములు తీసివేయబడాలి:"
 
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:895
+#: ../client/pk-console.c:927
 msgid "Proceed removing additional packages?"
 msgstr "అదనపు సంకలనములను తీసివేయుట కొనసాగించాలా?"
 
 #. TRANSLATORS: We did not remove any packages
-#: ../client/pk-console.c:900
+#: ../client/pk-console.c:932
 msgid "The package removal was canceled!"
 msgstr "సంకలనము తీసివేత రద్దుచేయబడింది!"
 
 #. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:941
+#: ../client/pk-console.c:973
 #, c-format
 msgid "This tool could not download the package %s as it could not be found"
 msgstr "ఈ సాధనము %s సంకలనము కనబడని కారణంగా దానిని డౌనులోడు చేయలేక పోయింది"
 
 #. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:972
+#: ../client/pk-console.c:1004
 #, c-format
 msgid "This tool could not download the packages: %s"
 msgstr "ఈ సాధనము సంకలనాలను డౌనులోడు చేయలేక పోయింది: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:999 ../client/pk-console.c:1008
+#: ../client/pk-console.c:1031 ../client/pk-console.c:1040
 #, c-format
 msgid "This tool could not update %s: %s"
 msgstr "ఈ సాధనము నవీకరించబడలేక పోయింది %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1030 ../client/pk-console.c:1038
+#: ../client/pk-console.c:1062 ../client/pk-console.c:1070
 #, c-format
 msgid "This tool could not get the requirements for %s: %s"
 msgstr "ఈ సాధనము %s కొరకు అవసరాలను పొందలేక పోయింది: %s"
 
 #. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:1060 ../client/pk-console.c:1068
+#: ../client/pk-console.c:1092 ../client/pk-console.c:1100
 #, c-format
 msgid "This tool could not get the dependencies for %s: %s"
 msgstr "ఈ సాధనము %s కొరకు ఆధారములు(డిపెన్డెన్సీలు)ను పొందలేక పోయింది: %s"
 
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:1090 ../client/pk-console.c:1098
+#: ../client/pk-console.c:1122 ../client/pk-console.c:1130
 #, c-format
 msgid "This tool could not get package details for %s: %s"
 msgstr "ఈ సాధనము సంకలనము వివరములను %s కొరకు పొందలేక పోయింది: %s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1120
+#: ../client/pk-console.c:1152
 #, c-format
 msgid "This tool could not find the files for %s: %s"
 msgstr "ఈ సాధనము దస్త్రములను %s కొరకు పొందలేక పోయింది: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1128
+#: ../client/pk-console.c:1160
 #, c-format
 msgid "This tool could not get the file list for %s: %s"
 msgstr "ఈ సాధనము దస్త్రము జాబితాను %s కొరకు పొందలేక పోయింది: %s"
 
 #. TRANSLATORS: There was an error getting the list of packages. The filename follows
-#: ../client/pk-console.c:1150
+#: ../client/pk-console.c:1182
 #, c-format
 msgid "File already exists: %s"
 msgstr "దస్త్రము యిప్పటికే వుంది: %s"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1155 ../client/pk-console.c:1211
-#: ../client/pk-console.c:1286
+#: ../client/pk-console.c:1187 ../client/pk-console.c:1243
+#: ../client/pk-console.c:1318
 msgid "Getting package list"
 msgstr "ప్యాకేజీ జాబితాను పొందుచున్నది"
 
 #. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1161 ../client/pk-console.c:1217
-#: ../client/pk-console.c:1292
+#: ../client/pk-console.c:1193 ../client/pk-console.c:1249
+#: ../client/pk-console.c:1324
 #, c-format
 msgid "This tool could not get package list: %s"
 msgstr "ఈ సాధనము ప్యాకేజీ జాబితాను పొందలేక పోయింది: %s"
 
 #. TRANSLATORS: There was an error saving the list
-#: ../client/pk-console.c:1172
+#: ../client/pk-console.c:1204
 #, c-format
 msgid "Failed to save to disk"
 msgstr "డిస్కునకు దాయుటకు విఫలమైంది"
 
 #. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1206 ../client/pk-console.c:1281
+#: ../client/pk-console.c:1238 ../client/pk-console.c:1313
 #, c-format
 msgid "File does not exist: %s"
 msgstr "దస్త్రము లేదు: %s"
 
 #. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1238
+#: ../client/pk-console.c:1270
 msgid "Packages to add"
 msgstr "జతచేయుటకు సంకలనములు"
 
 #. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1246
+#: ../client/pk-console.c:1278
 msgid "Packages to remove"
 msgstr "తీసివేయుటకు సంకలనములు"
 
 #. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1314
+#: ../client/pk-console.c:1346
 #, c-format
 msgid "No new packages need to be installed"
 msgstr "ఏ కొత్త సంకలనములు సంస్థాపించవలసిన అవసరములేదు"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1320
+#: ../client/pk-console.c:1352
 msgid "To install"
 msgstr "సంస్థాపించుటకు"
 
 #. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1332
+#: ../client/pk-console.c:1364
 msgid "Searching for package: "
 msgstr "సంకలనముల కొరకు శోధించుచున్నది: "
 
 #. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1336
+#: ../client/pk-console.c:1368
 msgid "not found."
 msgstr "కనబడలేదు."
 
 #. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1347
+#: ../client/pk-console.c:1379
 #, c-format
 msgid "No packages can be found to install"
 msgstr "సంస్థాపించుటకు ఏ సంకలనములు కనుగొనబడలేదు"
 
 #. TRANSLATORS: installing new packages from package list
-#: ../client/pk-console.c:1353
+#. TRANSLATORS: we are now installing the debuginfo packages we found earlier
+#: ../client/pk-console.c:1385
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:886
+#, c-format
 msgid "Installing packages"
 msgstr "సంకలనాలను సంస్థాపించుచున్నది"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1389
+#: ../client/pk-console.c:1421
 #, c-format
 msgid "This tool could not find the update details for %s: %s"
 msgstr "సాధనము నవీకరణ వివరములను %s కొరకు పొందలేక పోయింది: %s"
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1397
+#: ../client/pk-console.c:1429
 #, c-format
 msgid "This tool could not get the update details for %s: %s"
 msgstr "సాధనము నవీకరణ వివరములను %s కొరకు పొందలేక పోయింది: %s"
 
 #. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
-#: ../client/pk-console.c:1443
+#: ../client/pk-console.c:1460
 msgid "Error:"
 msgstr "దోషము:"
 
 #. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1457
+#: ../client/pk-console.c:1474
 msgid "Package description"
 msgstr "సంకలనము వివరణ"
 
 #. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
-#: ../client/pk-console.c:1473
+#: ../client/pk-console.c:1490
 msgid "Message:"
 msgstr "సందేశము:"
 
 #. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1501
+#: ../client/pk-console.c:1518
 msgid "Package files"
 msgstr "సంకలనము దస్త్రములు"
 
 #. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1509
+#: ../client/pk-console.c:1526
 msgid "No files"
 msgstr "దస్త్రములు లేవు"
 
 #. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1532
+#: ../client/pk-console.c:1549
 msgid "Repository signature required"
 msgstr "రిపోజిటరీ సంతకము అవసరమైంది"
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1542
+#: ../client/pk-console.c:1559
 msgid "Do you accept this signature?"
 msgstr "మీరు ఈ సంతకమును ఆమోదిస్తారా?"
 
 #. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1546
+#: ../client/pk-console.c:1563
 msgid "The signature was not accepted."
 msgstr "సంతకము ఆమోదించబడలేదు."
 
 #. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1580
+#: ../client/pk-console.c:1597
 msgid "End user license agreement required"
 msgstr "అంతిమ వినియోగదారి వొప్పందము అవసరమైంది"
 
 #. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1587
+#: ../client/pk-console.c:1604
 msgid "Do you agree to this license?"
 msgstr "మీరు ఈ వొప్పందమునకు ఆమోదిస్తారా?"
 
 #. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1591
+#: ../client/pk-console.c:1608
 msgid "The license was refused."
 msgstr "లైసెన్సు తిరస్కరించబడింది."
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1620
+#: ../client/pk-console.c:1637
 msgid "The daemon crashed mid-transaction!"
 msgstr "వ్యవహారము-మద్యలో డెమోన్ కుప్పకూలినది!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1673
+#: ../client/pk-console.c:1690
 msgid "PackageKit Console Interface"
 msgstr "ప్యాకేజీకిట్ కన్సోల్ ఇంటర్ఫేస్"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1675
+#: ../client/pk-console.c:1692
 msgid "Subcommands:"
 msgstr "ఉపఆదేశములు:"
 
 #. TRANSLATORS: command line argument, if we should show debugging information
 #. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:1767 ../client/pk-generate-pack.c:185
-#: ../client/pk-monitor.c:125
-#: ../contrib/command-not-found/pk-command-not-found.c:520
-#: ../src/pk-main.c:211
+#: ../client/pk-console.c:1785 ../client/pk-generate-pack.c:185
+#: ../client/pk-monitor.c:128
+#: ../contrib/command-not-found/pk-command-not-found.c:616
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:550
+#: ../contrib/device-rebind/pk-device-rebind.c:293 ../src/pk-main.c:211
 msgid "Show extra debugging information"
 msgstr "అదనపు డీబగ్గింగ్ సమాచారమును చూపుము"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1770 ../client/pk-monitor.c:127
+#: ../client/pk-console.c:1788 ../client/pk-monitor.c:130
 msgid "Show the program version and exit"
 msgstr "ప్రోగ్రామ్ వర్షన్‌ను చూపుము మరియు నిష్క్రమించుము"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1773
+#: ../client/pk-console.c:1791
 msgid "Set the filter, e.g. installed"
 msgstr "వడపోత(ఫిల్టర్) అమర్చుము, ఉ.దా. సంస్థాపించిన"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1776
+#: ../client/pk-console.c:1794
 msgid "Exit without waiting for actions to complete"
 msgstr "పూర్తవవలసిన చర్యల కొరకు వేచివుండకుండా నిష్క్రమించుము"
 
 #. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:1803
+#: ../client/pk-console.c:1821
 msgid "This tool could not connect to system DBUS."
 msgstr "ఈ సాధనము సిస్టమ్ DBUSకు అనుసంధానము కాలేక పోయింది."
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1894
+#: ../client/pk-console.c:1911
 msgid "The filter specified was invalid"
 msgstr "తెలుపబడిన వడపోత(ఫిల్టర్) చెల్లనిది"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1912
+#: ../client/pk-console.c:1930
 msgid "A search type is required, e.g. name"
 msgstr "ఒక శోధన రకము అవసరమైంది, ఉ.దా. నామము"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1918 ../client/pk-console.c:1926
-#: ../client/pk-console.c:1934 ../client/pk-console.c:1942
+#: ../client/pk-console.c:1937 ../client/pk-console.c:1946
+#: ../client/pk-console.c:1955 ../client/pk-console.c:1964
 msgid "A search term is required"
 msgstr "ఒక శోధన పదము అవసరమైంది"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1948
+#: ../client/pk-console.c:1971
 msgid "Invalid search type"
 msgstr "చెల్లని సోధన రకము"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1954
+#: ../client/pk-console.c:1977
 msgid "A package name or filename to install is required"
 msgstr "సంస్థాపించుటకు సంకలనము నామము లేదా దస్త్రనామము అవసరము"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1962
+#: ../client/pk-console.c:1986
 msgid "A type, key_id and package_id are required"
 msgstr "ఒక రకము, key_id మరియు package_id అవసరమైంది"
 
 #. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:1970
+#: ../client/pk-console.c:1995
 msgid "A package name to remove is required"
 msgstr "తొలగించుటకు సంకలనము నామము అవసరమైంది"
 
 #. TRANSLATORS: the user did not specify anything about what to download or where
-#: ../client/pk-console.c:1977
-msgid "A destination directory and then the package names to download are required"
+#: ../client/pk-console.c:2003
+#, fuzzy
+msgid "A destination directory and the package names to download are required"
 msgstr "డౌనులోడు చేయుటకు గమ్య డైరెక్టరీ మరియు సంకలనము నామములు అవసరము"
 
 #. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:1983
+#: ../client/pk-console.c:2010
 msgid "Directory not found"
 msgstr "డైరెక్టరీ కనబడలేదు"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1990
+#: ../client/pk-console.c:2018
 msgid "A licence identifier (eula-id) is required"
 msgstr "ఒక లైసెన్సు గుర్తింపుదారి (eula-id) అవసరమైంది"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1999
+#: ../client/pk-console.c:2028
 msgid "A transaction identifier (tid) is required"
 msgstr "వ్యవహారపు గుర్తింపుదారి (tid) అవసరమైంది"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:2015
+#: ../client/pk-console.c:2045
 msgid "A package name to resolve is required"
 msgstr "పరిష్కరించుటకు ఒక ప్యాకేజీ నామము అవసరము"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:2023 ../client/pk-console.c:2031
+#: ../client/pk-console.c:2054 ../client/pk-console.c:2063
 msgid "A repository name is required"
 msgstr "ఒక రిపోజిటరీ నామము అవసరమైంది"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2039
+#: ../client/pk-console.c:2072
 msgid "A repo name, parameter and value are required"
 msgstr "ఒక రెపో నామము, పారామితి మరియు విలువ అవసరమైంది"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:2052
+#: ../client/pk-console.c:2086
 msgid "An action, e.g. 'update-system' is required"
 msgstr "చర్య, ఉ.దా. update-system అవసరము"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:2058
+#: ../client/pk-console.c:2093
 msgid "A correct role is required"
 msgstr "ఒక సరైన పాత్ర అవసరము"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2064
+#: ../client/pk-console.c:2100
 msgid "Failed to get the time since this action was last completed"
 msgstr "ఈ చర్య ఆఖరున పూర్తైన కారణముగా సమయమును పొందుటలో విఫలమైంది"
 
 #. TRANSLATORS: The user did not provide a package name
 #. TRANSLATORS: This is when the user fails to supply the package name
-#: ../client/pk-console.c:2073 ../client/pk-console.c:2084
-#: ../client/pk-console.c:2092 ../client/pk-console.c:2108
-#: ../client/pk-console.c:2116 ../client/pk-generate-pack.c:241
+#: ../client/pk-console.c:2110 ../client/pk-console.c:2122
+#: ../client/pk-console.c:2131 ../client/pk-console.c:2149
+#: ../client/pk-console.c:2158 ../client/pk-generate-pack.c:241
 msgid "A package name is required"
 msgstr "సంకలనము నామము అవసరమైంది"
 
 #. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:2100
+#: ../client/pk-console.c:2140
 msgid "A package provide string is required"
 msgstr "సంకలనము అందించు పదబందము(స్ట్రింగు) అవసరమైంది"
 
 #. TRANSLATORS: The user didn't specify a filename to create as a list
-#: ../client/pk-console.c:2124
+#: ../client/pk-console.c:2167
 msgid "A list file name to create is required"
 msgstr "సృష్టించుటకు జాబితా దస్త్రము నామము అవసరము"
 
 #. TRANSLATORS: The user didn't specify a filename to open as a list
-#: ../client/pk-console.c:2133 ../client/pk-console.c:2142
+#: ../client/pk-console.c:2177 ../client/pk-console.c:2187
 msgid "A list file to open is required"
 msgstr "తెరువుటకు ఒక జాబితా దస్త్రము అవసరము"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2195
+#: ../client/pk-console.c:2241
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "ఐచ్చికము '%s' మద్దతీయబడదు"
 
 #. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2208
+#: ../client/pk-console.c:2254
 msgid "Incorrect privileges for this operation"
 msgstr "ఈ కార్యక్రమము కొరకు సరికాని అనుమతులు"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2211
+#: ../client/pk-console.c:2257
 msgid "Command failed"
 msgstr "ఆదేశము విఫలమైంది"
 
@@ -669,7 +709,8 @@ msgstr "వదిలివేయవలసిన ఆధారముల(à°¡à°¿à°ªà
 
 #. TRANSLATORS: the output location
 #: ../client/pk-generate-pack.c:191
-msgid "The output file or directory (the current directory is used if ommitted)"
+msgid ""
+"The output file or directory (the current directory is used if ommitted)"
 msgstr "అవుట్పుట్ దస్త్రము లేదా డైరెక్టరీ (వదిలివేస్తే ప్రస్తుత డైరెక్టరీ వుపయోగించబడుతుంది)"
 
 #. TRANSLATORS: put a list of packages in the pack
@@ -764,10 +805,14 @@ msgid "Failed to create '%s': %s"
 msgstr "'%s' సృష్టించుటకు విఫలమైంది: %s"
 
 #. TRANSLATORS: this is a program that monitors PackageKit
-#: ../client/pk-monitor.c:143
+#: ../client/pk-monitor.c:146
 msgid "PackageKit Monitor"
 msgstr "PackageKit పర్యవేక్షకి"
 
+#: ../client/pk-monitor.c:183
+msgid "Cannot show the list of transactions"
+msgstr ""
+
 #. TRANSLATORS: The package was not found in any software sources
 #: ../client/pk-tools-common.c:118
 #, c-format
@@ -789,128 +834,433 @@ msgstr "దయచేసి సరైన సంకలనమును యెంచ
 msgid "Please enter a number from 1 to %i: "
 msgstr "దయచేసి సంఖ్యను 1 నుండి %iకు ప్రవేశపెట్టుము: "
 
+#. TRANSLATORS: when we are getting data from the daemon
+#: ../contrib/browser-plugin/pk-plugin-install.c:466
+msgid "Getting package information..."
+msgstr "సంకలనము సమాచారమును పొందుచున్నది..."
+
+#. TRANSLATORS: run an applicaiton
+#: ../contrib/browser-plugin/pk-plugin-install.c:472
+#, c-format
+msgid "Run %s"
+msgstr "%s నడుపు"
+
+#. TRANSLATORS: show the installed version of a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:478
+msgid "Installed version"
+msgstr "సంస్థాపించిన వర్షన్"
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:486
+#, c-format
+msgid "Run version %s now"
+msgstr "వర్షన్ %s యిప్పుడు నడుపుము"
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:492
+msgid "Run now"
+msgstr "ఇప్పుడు నడుపుము"
+
+#. TRANSLATORS: update to a new version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:498
+#, c-format
+msgid "Update to version %s"
+msgstr "వర్షన్ %sకు నవీకరించుము"
+
+#. TRANSLATORS: To install a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:504
+#, c-format
+msgid "Install %s now"
+msgstr "%s యిప్పుడు సంస్థాపించుము"
+
+#. TRANSLATORS: the version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:507
+msgid "Version"
+msgstr "వర్షన్"
+
+#. TRANSLATORS: noting found, so can't install
+#: ../contrib/browser-plugin/pk-plugin-install.c:512
+msgid "No packages found for your system"
+msgstr "మీ సిస్టమ్ కొరకు ఎటువంటి సంకలనాలు కనబడలేదు"
+
+#. TRANSLATORS: package is being installed
+#: ../contrib/browser-plugin/pk-plugin-install.c:517
+msgid "Installing..."
+msgstr "సంస్థాపించుచున్నది..."
+
+#. TRANSLATORS: downloading repo data so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:349
+msgid "Downloading details about the software sources."
+msgstr ""
+
+#. TRANSLATORS: downloading file lists so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:353
+msgid "Downloading filelists (this may take some time to complete)."
+msgstr ""
+
+#. TRANSLATORS: waiting for native lock
+#: ../contrib/command-not-found/pk-command-not-found.c:357
+#, fuzzy
+msgid "Waiting for package manager lock."
+msgstr "సంకలనము నామము కనుగొనుచున్నది."
+
+#. TRANSLATORS: loading package cache so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:361
+#, fuzzy
+msgid "Loading list of packages."
+msgstr "సంకలనాలను డౌనులోడు చేయుచున్నది"
+
 #. TRANSLATORS: we failed to find the package, this shouldn't happen
-#: ../contrib/command-not-found/pk-command-not-found.c:371
+#: ../contrib/command-not-found/pk-command-not-found.c:420
 msgid "Failed to search for file"
 msgstr "దస్త్రమును శోధించుటలో విఫలమైంది"
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:495
+#: ../contrib/command-not-found/pk-command-not-found.c:557
 msgid "Failed to launch:"
 msgstr "ఆరంభించుటకు విఫలమైంది:"
 
 #. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/command-not-found/pk-command-not-found.c:536
+#: ../contrib/command-not-found/pk-command-not-found.c:632
 msgid "PackageKit Command Not Found"
 msgstr "PackageKit ఆదేశము కనబడలేదు"
 
 #. TRANSLATORS: the prefix of all the output telling the user why it's not executing
-#: ../contrib/command-not-found/pk-command-not-found.c:559
+#: ../contrib/command-not-found/pk-command-not-found.c:658
 msgid "Command not found."
 msgstr "ఆదేశము కనబడలేదు"
 
 #. TRANSLATORS: tell the user what we think the command is
-#: ../contrib/command-not-found/pk-command-not-found.c:566
+#: ../contrib/command-not-found/pk-command-not-found.c:665
 msgid "Similar command is:"
 msgstr "అటువంటి ఆదేశము:"
 
 #. TRANSLATORS: Ask the user if we should run the similar command
-#: ../contrib/command-not-found/pk-command-not-found.c:575
+#: ../contrib/command-not-found/pk-command-not-found.c:674
 msgid "Run similar command:"
 msgstr "అటువంటి ఆదేశమును నడుపుము:"
 
 #. TRANSLATORS: show the user a list of commands that they could have meant
 #. TRANSLATORS: show the user a list of commands we could run
-#: ../contrib/command-not-found/pk-command-not-found.c:587
-#: ../contrib/command-not-found/pk-command-not-found.c:596
+#: ../contrib/command-not-found/pk-command-not-found.c:686
+#: ../contrib/command-not-found/pk-command-not-found.c:695
 msgid "Similar commands are:"
 msgstr "ఓకేతీరు ఆదేశములు:"
 
 #. TRANSLATORS: ask the user to choose a file to run
-#: ../contrib/command-not-found/pk-command-not-found.c:603
+#: ../contrib/command-not-found/pk-command-not-found.c:702
 msgid "Please choose a command to run"
 msgstr "నడుపుటకు దయచేసి ఆదేశమును యెంచుకొనుము"
 
 #. TRANSLATORS: tell the user what package provides the command
-#: ../contrib/command-not-found/pk-command-not-found.c:618
+#: ../contrib/command-not-found/pk-command-not-found.c:721
 msgid "The package providing this file is:"
 msgstr "సంకలనము అందించుచున్న ఈ దస్త్రము:"
 
 #. TRANSLATORS: as the user if we want to install a package to provide the command
-#: ../contrib/command-not-found/pk-command-not-found.c:623
+#: ../contrib/command-not-found/pk-command-not-found.c:726
 #, c-format
 msgid "Install package '%s' to provide command '%s'?"
 msgstr "సంకలనము '%s'ను ఆదేశము '%s' అందివ్వుటకు సంస్థాపించాలా?"
 
 #. TRANSLATORS: Show the user a list of packages that provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:644
+#: ../contrib/command-not-found/pk-command-not-found.c:747
 msgid "Packages providing this file are:"
 msgstr "ఈ దస్త్రమును అందించు సంకలనములు:"
 
 #. TRANSLATORS: Show the user a list of packages that they can install to provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:653
+#: ../contrib/command-not-found/pk-command-not-found.c:756
 msgid "Suitable packages are:"
 msgstr "సరితూగు సంకలనములు:"
 
 #. get selection
 #. TRANSLATORS: ask the user to choose a file to install
-#: ../contrib/command-not-found/pk-command-not-found.c:661
+#: ../contrib/command-not-found/pk-command-not-found.c:764
 msgid "Please choose a package to install"
 msgstr "సంస్థాపించుటకు దయచేసి సంకలనమును యెంచుకొనుము"
 
-#. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/src/contents.cpp:298
-msgid "Getting package information..."
-msgstr "సంకలనము సమాచారమును పొందుచున్నది..."
+#. TRANSLATORS: we are starting to install the packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:187
+#, fuzzy
+msgid "Starting install"
+msgstr "సంస్థాపించుటకు"
 
-#. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/src/contents.cpp:304
+#. TRANSLATORS: we couldn't find the package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:397
+#, fuzzy, c-format
+msgid "Failed to find the package %s, or already installed: %s"
+msgstr "సంకలనము %s యిప్పటికే సంస్థాపించబడినది"
+
+#. command line argument, simulate what would be done, but don't actually do it
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:553
+msgid ""
+"Don't actually install any packages, only simulate what would be installed"
+msgstr ""
+
+#. command line argument, do we skip packages that depend on the ones specified
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:556
+msgid "Do not install dependencies of the core packages"
+msgstr ""
+
+#. command line argument, do we operate quietly
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:559
+msgid "Do not display information or progress"
+msgstr ""
+
+#. TRANSLATORS: tool that gets called when the command is not found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:577
+#, fuzzy
+msgid "PackageKit Debuginfo Installer"
+msgstr "ప్యాకేజీకిట్ కన్సోల్ ఇంటర్ఫేస్"
+
+#. TRANSLATORS: the use needs to specify a list of package names on the command line
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:589
+#, fuzzy, c-format
+msgid "ERROR: Specify package names to install."
+msgstr "ఏ కొత్త సంకలనములు సంస్థాపించవలసిన అవసరములేదు"
+
+#. TRANSLATORS: we are getting the list of repositories
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:623
+#, fuzzy, c-format
+msgid "Getting sources list"
+msgstr "ప్యాకేజీ జాబితాను పొందుచున్నది"
+
+#. TRANSLATORS: all completed 100%
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:641
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:681
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:716
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:800
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:844
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:911
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:955
 #, c-format
-msgid "Run %s"
-msgstr "%s నడుపు"
+msgid "OK."
+msgstr ""
 
-#. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/src/contents.cpp:310
-msgid "Installed version"
-msgstr "సంస్థాపించిన వర్షన్"
+#. TRANSLATORS: tell the user what we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:644
+#, c-format
+msgid "Found %i enabled and %i disabled sources."
+msgstr ""
 
-#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/src/contents.cpp:318
+#. TRANSLATORS: we're finding repositories that match out pattern
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:651
 #, c-format
-msgid "Run version %s now"
-msgstr "వర్షన్ %s యిప్పుడు నడుపుము"
+msgid "Finding debugging sources"
+msgstr ""
 
-#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/src/contents.cpp:324
-msgid "Run now"
-msgstr "ఇప్పుడు నడుపుము"
+#. TRANSLATORS: tell the user what we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:684
+#, c-format
+msgid "Found %i disabled debuginfo repos."
+msgstr ""
 
-#. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/src/contents.cpp:330
+#. TRANSLATORS: we're now enabling all the debug sources we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:691
 #, c-format
-msgid "Update to version %s"
-msgstr "వర్షన్ %sకు నవీకరించుము"
+msgid "Enabling debugging sources"
+msgstr ""
 
-#. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/src/contents.cpp:336
+#. TRANSLATORS: operation was not successful
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:701
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:785
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:829
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:896
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:940
+msgid "FAILED."
+msgstr ""
+
+#. TRANSLATORS: tell the user how many we enabled
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:719
 #, c-format
-msgid "Install %s now"
-msgstr "%s యిప్పుడు సంస్థాపించుము"
+msgid "Enabled %i debugging sources."
+msgstr ""
 
-#. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/src/contents.cpp:339
-msgid "Version"
-msgstr "వర్షన్"
+#. TRANSLATORS: we're now finding packages that match in all the repos
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:726
+#, fuzzy, c-format
+msgid "Finding debugging packages"
+msgstr "సంకలనము నామము కనుగొనుచున్నది."
 
-#. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/src/contents.cpp:344
-msgid "No packages found for your system"
-msgstr "మీ సిస్టమ్ కొరకు ఎటువంటి సంకలనాలు కనబడలేదు"
+#. TRANSLATORS: we couldn't find the package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:738
+#, fuzzy, c-format
+msgid "Failed to find the package %s: %s"
+msgstr "సంకలనము '%s' కనుగొనుటలో విఫలమైంది: %s"
 
-#. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/src/contents.cpp:349
-msgid "Installing..."
-msgstr "సంస్థాపించుచున్నది..."
+#. TRANSLATORS: we couldn't find the debuginfo package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:761
+#, fuzzy, c-format
+msgid "Failed to find the debuginfo package %s: %s"
+msgstr "సంకలనము '%s' కనుగొనుటలో విఫలమైంది: %s"
+
+#. TRANSLATORS: no debuginfo packages could be found to be installed
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:789
+#, fuzzy, c-format
+msgid "Found no packages to install."
+msgstr "ఏ కొత్త సంకలనములు సంస్థాపించవలసిన అవసరములేదు"
+
+#. TRANSLATORS: tell the user we found some packages, and then list them
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:803
+#, fuzzy, c-format
+msgid "Found %i packages:"
+msgstr "సంకలనాలను డౌనులోడు చేయుచున్నది"
+
+#. TRANSLATORS: tell the user we are searching for deps
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:819
+#, c-format
+msgid "Finding packages that depend on these packages"
+msgstr ""
+
+#. TRANSLATORS: could not install, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:832
+#, fuzzy, c-format
+msgid "Could not find dependant packages: %s"
+msgstr "సంకలనము '%s' కనుగొనుటలో విఫలమైంది: %s"
+
+#. TRANSLATORS: tell the user we found some more packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:848
+#, c-format
+msgid "Found %i extra packages."
+msgstr ""
+
+#. TRANSLATORS: tell the user we found some more packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:852
+#, fuzzy, c-format
+msgid "No extra packages required."
+msgstr "సంకలనము నామము అవసరమైంది"
+
+#. TRANSLATORS: tell the user we found some packages (and deps), and then list them
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:861
+#, fuzzy, c-format
+msgid "Found %i packages to install:"
+msgstr "ఏ కొత్త సంకలనములు సంస్థాపించవలసిన అవసరములేదు"
+
+#. TRANSLATORS: simulate mode is a testing mode where we quit before the action
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:874
+#, fuzzy, c-format
+msgid "Not installing packages in simulate mode"
+msgstr "సంకలనాలను సంస్థాపించుచున్నది"
+
+#. TRANSLATORS: could not install, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:899
+#, fuzzy, c-format
+msgid "Could not install packages: %s"
+msgstr "ఈ సాధనము సంకలనములు సంస్థాపించలేదు: %s"
+
+#. TRANSLATORS: we are now disabling all debuginfo repos we previously enabled
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:931
+#, c-format
+msgid "Disabling sources previously enabled"
+msgstr ""
+
+#. TRANSLATORS: no debuginfo packages could be found to be installed, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:943
+#, c-format
+msgid "Could not disable the debugging sources: %s"
+msgstr ""
+
+#. TRANSLATORS: we disabled all the debugging repos that we enabled before
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:958
+#, c-format
+msgid "Disabled %i debugging sources."
+msgstr ""
+
+#. TRANSLATORS: couldn't open device to write
+#: ../contrib/device-rebind/pk-device-rebind.c:61
+#, fuzzy
+msgid "Failed to open file"
+msgstr "దస్త్రమును శోధించుటలో విఫలమైంది"
+
+#. TRANSLATORS: could not write to the device
+#: ../contrib/device-rebind/pk-device-rebind.c:70
+#, fuzzy
+msgid "Failed to write to the file"
+msgstr "దస్త్రమును శోధించుటలో విఫలమైంది"
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:110
+#: ../contrib/device-rebind/pk-device-rebind.c:147
+#, fuzzy
+msgid "Failed to write to device"
+msgstr "డిస్కునకు దాయుటకు విఫలమైంది"
+
+#. TRANSLATORS: the device could not be found in sysfs
+#: ../contrib/device-rebind/pk-device-rebind.c:175
+#, fuzzy
+msgid "Device could not be found"
+msgstr "సంకలనము కనుగొనబడలేక పోయింది"
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:202
+#, fuzzy
+msgid "Failed to unregister driver"
+msgstr "డైరెక్టరీ సృష్టించుటకు విఫలమైంది:"
+
+#. TRANSLATORS: we failed to bind the old driver
+#: ../contrib/device-rebind/pk-device-rebind.c:211
+#, fuzzy
+msgid "Failed to register driver"
+msgstr "డైరెక్టరీ సృష్టించుటకు విఫలమైంది:"
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:260
+#, fuzzy
+msgid "Device path not found"
+msgstr "డైరెక్టరీ కనబడలేదు"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:268
+msgid "Incorrect device path specified"
+msgstr ""
+
+#. command line argument, simulate what would be done, but don't actually do it
+#: ../contrib/device-rebind/pk-device-rebind.c:296
+msgid "Don't actually touch the hardware, only simulate what would be done"
+msgstr ""
+
+#. TRANSLATORS: command line option: a list of files to install
+#: ../contrib/device-rebind/pk-device-rebind.c:299
+msgid "Device paths"
+msgstr ""
+
+#. TRANSLATORS: tool that gets called when the device needs reloading after installing firmware
+#: ../contrib/device-rebind/pk-device-rebind.c:314
+#, fuzzy
+msgid "PackageKit Device Reloader"
+msgstr "PackageKit సేవా పాక్"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:322
+msgid "You need to specify at least one valid device path"
+msgstr ""
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:332
+msgid "This script can only be used by the root user"
+msgstr ""
+
+#. TRANSLATORS: we're going to verify the path first
+#: ../contrib/device-rebind/pk-device-rebind.c:341
+msgid "Verifying device path"
+msgstr ""
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:346
+#, fuzzy
+msgid "Failed to verify device path"
+msgstr "దస్త్రమును శోధించుటలో విఫలమైంది"
+
+#. TRANSLATORS: we're going to try
+#: ../contrib/device-rebind/pk-device-rebind.c:360
+msgid "Attempting to rebind device"
+msgstr ""
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:365
+#, fuzzy
+msgid "Failed to rebind device"
+msgstr "డైరెక్టరీ సృష్టించుటకు విఫలమైంది:"
 
 #: ../data/packagekit-catalog.xml.in.h:1
 msgid "PackageKit Catalog"
@@ -924,95 +1274,175 @@ msgstr "PackageKit సంకలనము జాబితా"
 msgid "PackageKit Service Pack"
 msgstr "PackageKit సేవా పాక్"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:1
+#. SECURITY:
+#. - Normal users do not require admin authentication to accept new
+#. licence agreements.
+#. - Change this to 'auth_admin' for environments where users should not
+#. be given the option to make legal decisions.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:7
 msgid "Accept EULA"
 msgstr "EULA ఆమోదించుము"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:2
+#: ../policy/org.freedesktop.packagekit.policy.in.h:8
 msgid "Authentication is required to accept a EULA"
 msgstr "EULA ఆమోదించుటకు దృవీకరణము అవసరమైంది"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:3
-msgid "Authentication is required to cancel a task that was not started by yourself"
+#: ../policy/org.freedesktop.packagekit.policy.in.h:9
+msgid ""
+"Authentication is required to cancel a task that was not started by yourself"
 msgstr "మీ ద్వారా ప్రారంభించని కార్యము రద్దుచేయుటకు దృవీకరణము అవసరము"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:4
+#: ../policy/org.freedesktop.packagekit.policy.in.h:10
 msgid "Authentication is required to change software source parameters"
 msgstr "సాఫ్టువేరు మూలపు పారామితులను మార్చుటకు దృవీకరణము అవసరము"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:5
+#: ../policy/org.freedesktop.packagekit.policy.in.h:11
 msgid ""
 "Authentication is required to consider a key used for signing packages as "
 "trusted"
 msgstr "సంకలనాలను నమ్మదగినవిగా సంతకంచేయుటకు వుపయోగించు కీను ఆమోదించుటకు దృవీకరణము అవసరము"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:6
+#: ../policy/org.freedesktop.packagekit.policy.in.h:12
 msgid "Authentication is required to install a signed package"
 msgstr "సంతకముచేసిన సంకలనమును సంస్థాపించుటకు దృవీకరణము అవసరము"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:7
+#: ../policy/org.freedesktop.packagekit.policy.in.h:13
 msgid "Authentication is required to install an untrusted package"
 msgstr "నమ్మదగని సంకలనము సంస్థాపించుటకు దృవీకరణము అవసరము"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:8
+#: ../policy/org.freedesktop.packagekit.policy.in.h:14
 msgid "Authentication is required to refresh the system sources"
 msgstr "సిస్టమ్ మూలాలను రీఫ్రెష్ చేయుటకు దృవీకరణ అవసరము"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:9
+#: ../policy/org.freedesktop.packagekit.policy.in.h:15
+#, fuzzy
+msgid "Authentication is required to reload the device with a new driver"
+msgstr "సిస్టమ్ మూలాలను రీఫ్రెష్ చేయుటకు దృవీకరణ అవసరము"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:16
 msgid "Authentication is required to remove packages"
 msgstr "సంకలనాలను తీసివేయుటకు దృవీకరణ అవసరము"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:10
+#: ../policy/org.freedesktop.packagekit.policy.in.h:17
 msgid "Authentication is required to rollback a transaction"
 msgstr "వ్యవహారమును తిరిగివుంచుటకు దృవీకరణము అవసరము"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:11
+#: ../policy/org.freedesktop.packagekit.policy.in.h:18
 msgid ""
 "Authentication is required to set the network proxy used for downloading "
 "packages"
 msgstr "డౌనులోడవుతున్న సంకలనాల కొరకు వుపయోగించు నెట్వర్కు ప్రోక్సీను అమర్చుటకు దృవీకరణ అవసరము"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:12
+#: ../policy/org.freedesktop.packagekit.policy.in.h:19
 msgid "Authentication is required to update packages"
 msgstr "సంకలనాలను నవీకరించుటకు దృవీకరణము అవసరము"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:13
+#. SECURITY:
+#. - Normal users are allowed to cancel their own task without
+#. authentication, but a different user id needs the admin password
+#. to cancel another users task.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:25
 msgid "Cancel foreign task"
 msgstr "పరాయి కర్తవ్యమును రద్దుచేయి"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:14
+#. SECURITY:
+#. - Normal users require admin authentication to enable or disable
+#. software sources as this can be used to enable new updates or
+#. install different versions of software.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:31
 msgid "Change software source parameters"
 msgstr "సాఫ్టువేరు మూలపు పారామితులను మార్చుము"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:15
+#. SECURITY:
+#. - Normal users do not need authentication to install signed packages
+#. from signed repositories, as this cannot exploit a system.
+#. - Paranoid users (or parents!) can change this to 'auth_admin' or
+#. 'auth_admin_keep'.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:38
 msgid "Install signed package"
 msgstr "సంతకముచేసిన సంకలనములను సంస్థాపించుము"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:16
+#. SECURITY:
+#. - Normal users require admin authentication to install untrusted or
+#. unrecognised packages, as allowing users to do this without a
+#. password would be a massive security hole.
+#. - This is not retained as each package should be authenticated.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:45
 msgid "Install untrusted local file"
 msgstr "నమ్మదగని స్థానిక దస్త్రమును సంస్థాపించుము"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:17
+#. SECURITY:
+#. - Normal users do not require admin authentication to refresh the
+#. cache, as this doesn't actually install or remove software.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:50
 msgid "Refresh system sources"
 msgstr "సిస్టమ్ మూలాలను రీఫ్రెష్ చేయుము"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:18
+#. SECURITY:
+#. - Normal users require admin authentication to rebind a driver
+#. so that it works after we install firmware.
+#. - This should not be set to 'yes' as unprivileged users could then
+#. try to rebind drivers in use, for instance security authentication
+#. devices.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:58
+msgid "Reload a device"
+msgstr ""
+
+#. SECURITY:
+#. - Normal users require admin authentication to remove packages as
+#. this can make the system unbootable or stop other applications from
+#. working.
+#. - Be sure to close the tool used to remove the packages after the
+#. admin authentication has been obtained, otherwise packages can still
+#. be removed. If this is not possible, change this authentication to
+#. 'auth_admin'.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:68
 msgid "Remove package"
 msgstr "ప్యాకేజీని తీసివేయుము"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:19
+#. SECURITY:
+#. - Normal users require admin authentication to rollback system state
+#. as this will change a large number of packages, and could expose the
+#. system to previously patched security vulnerabilities.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:74
 msgid "Rollback to a previous transaction"
 msgstr "మునుపటి వ్యవహారమునకు తిరిగివుంచుము"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:20
+#. SECURITY:
+#. - Normal users do not require admin authentication to set the proxy
+#. used for downloading packages.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:79
 msgid "Set network proxy"
 msgstr "నెట్వర్కు ప్రోక్సీను అమర్చుము"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:21
+#. SECURITY:
+#. - Normal users require admin authentication to add signing keys.
+#. - This implies adding an explicit trust, and should not be granted
+#. without a secure authentication.
+#. - This is not kept as each package should be authenticated.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:86
 msgid "Trust a key used for signing packages"
 msgstr "సంకలనాలను సంతకము చేయుటకు వుపయోగించిన కీను నమ్మండి"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:22
+#. SECURITY:
+#. - Normal users do not require admin authentication to update the
+#. system as the packages will be signed, and the action is required
+#. to update the system when unattended.
+#. - Changing this to anything other than 'yes' will break unattended
+#. updates.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:94
 msgid "Update packages"
 msgstr "సంకలనాలను నవీకరించుము"
 
@@ -1079,7 +1509,48 @@ msgid "Cannot connect to the system bus"
 msgstr "సిస్టమ్ బస్‌నకు అనుసంధానము కాలేదు"
 
 #. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error follows
-#: ../src/pk-main.c:331
+#: ../src/pk-main.c:334
 msgid "Error trying to start:"
 msgstr "ప్రారంభించుటలో దోషము:"
 
+#: ../src/pk-polkit-action-lookup.c:147
+#, fuzzy
+msgid "To install debugging packages, extra sources need to be enabled"
+msgstr "ఏ కొత్త సంకలనములు సంస్థాపించవలసిన అవసరములేదు"
+
+#. TRANSLATORS: is not GPG signed
+#: ../src/pk-polkit-action-lookup.c:168 ../src/pk-polkit-action-lookup.c:187
+msgid "The software is not from a trusted source."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:173
+msgid "Do not update this package unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:174
+msgid "Do not update these packages unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:192
+msgid "Do not install this package unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:193
+msgid "Do not install these packages unless you are sure it is safe to do so."
+msgstr ""
+
+#. TRANSLATORS: warn the user that all bets are off
+#: ../src/pk-polkit-action-lookup.c:199
+msgid "Malicious software can damage your computer or cause other harm."
+msgstr ""
+
+#. TRANSLATORS: too many packages to list each one
+#: ../src/pk-polkit-action-lookup.c:274
+#, fuzzy
+msgid "Many packages"
+msgstr "సంకలనాలను నవీకరించుము"
+
+#. TRANSLATORS: if the transaction is forced to install only trusted packages
+#: ../src/pk-polkit-action-lookup.c:334
+msgid "Only trusted"
+msgstr ""
diff --git a/po/th.po b/po/th.po
index a02749e..dc47e9d 100644
--- a/po/th.po
+++ b/po/th.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-11-09 12:10+0000\n"
+"POT-Creation-Date: 2009-08-24 11:06+0100\n"
 "PO-Revision-Date: 2008-12-05 18:14+0700\n"
 "Last-Translator: Manatsawin <whs at whsgroup.ath.cx>\n"
 "Language-Team: LANGUAGE <LL at li.org>\n"
@@ -15,397 +15,1658 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "X-Generator: Pootle 1.1.0\n"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:1
-msgid "Accept EULA"
-msgstr "ยอมรับข้อตกลงสัญญาอนุญาต"
+#. TRANSLATORS: this is an atomic transaction
+#: ../client/pk-console.c:235
+msgid "Transaction"
+msgstr ""
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:2
-msgid "Authentication is required to accept a EULA"
-msgstr "ต้องยึนยันตัวเพื่อยอมรับข้อตกลงสัญญาอนุญาต"
+#. TRANSLATORS: this is the time the transaction was started in system timezone
+#: ../client/pk-console.c:237
+msgid "System time"
+msgstr ""
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:3
-msgid "Authentication is required to change software source parameters"
-msgstr "ต้องยึนยันตัวเพื่อเปลี่ยนแปลงพารามิเตอร์คลังซอฟต์แวร์"
+#. TRANSLATORS: this is if the transaction succeeded or not
+#: ../client/pk-console.c:239
+msgid "Succeeded"
+msgstr ""
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:4
-msgid "Authentication is required to install a local file"
-msgstr "ต้องยึนยันตัวเพื่อติดตั้งไฟล์บนเครื่อง"
+#. TRANSLATORS: if the repo is enabled
+#: ../client/pk-console.c:239 ../client/pk-console.c:406
+msgid "True"
+msgstr ""
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:5
-msgid "Authentication is required to install a package"
-msgstr "ต้องยึนยันตัวเพื่อติดตั้งแพคเกจ"
+#: ../client/pk-console.c:239 ../client/pk-console.c:406
+msgid "False"
+msgstr ""
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:6
-msgid "Authentication is required to install a security signature"
-msgstr "ต้องยึนยันตัวเพื่อติดตั้งลายเซ็นรับรองความปลอดภัย"
+#. TRANSLATORS: this is the transactions role, e.g. "update-system"
+#. TRANSLATORS: the trasaction role, e.g. update-system
+#: ../client/pk-console.c:241 ../src/pk-polkit-action-lookup.c:327
+msgid "Role"
+msgstr ""
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:7
-msgid "Authentication is required to refresh the package lists"
-msgstr "ต้องยึนยันตัวเพื่อเรียกรายการแพคเกจใหม่"
+#. TRANSLATORS: this is The duration of the transaction
+#: ../client/pk-console.c:246
+msgid "Duration"
+msgstr ""
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:8
-msgid "Authentication is required to remove packages"
-msgstr "ต้องยึนยันตัวเพื่อถอดแพคเกจ"
+#: ../client/pk-console.c:246
+msgid "(seconds)"
+msgstr ""
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:9
-msgid "Authentication is required to rollback a transaction"
-msgstr "ต้องยึนยันตัวเพื่อยกเลิกการดำเนินการ"
+#. TRANSLATORS: this is The command line used to do the action
+#. TRANSLATORS: the command line of the thing that wants the authentication
+#: ../client/pk-console.c:250 ../src/pk-polkit-action-lookup.c:341
+#, fuzzy
+msgid "Command line"
+msgstr "คำสั่งล้มเหลว"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:10
-msgid "Authentication is required to update all packages"
-msgstr "ต้องยึนยันตัวเพื่ออัปเดตแพคเกจทั้งหมด"
+#. TRANSLATORS: this is the user ID of the user that started the action
+#: ../client/pk-console.c:252
+msgid "User ID"
+msgstr ""
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:11
-msgid "Authentication is required to update packages"
-msgstr "ต้องยึนยันตัวเพื่ออัปเดตแพคเกจ"
+#. TRANSLATORS: this is the username, e.g. hughsie
+#: ../client/pk-console.c:259
+msgid "Username"
+msgstr ""
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:12
-msgid "Change software source parameters"
-msgstr "เปลี่ยนแปลงพารามิเตอร์คลังซอฟต์แวร์"
+#. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
+#: ../client/pk-console.c:263
+msgid "Real name"
+msgstr ""
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:13
-msgid "Further authentication is required to install an untrusted local file"
-msgstr "ต้องยึนยันตัวเพื่อติดตั้งไฟล์ที่ไม่น่าเชื่อถือบนเครื่อง"
+#: ../client/pk-console.c:271
+#, fuzzy
+msgid "Affected packages:"
+msgstr "ถอดแพคเกจ"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:14
-msgid "Install local file"
-msgstr "ติดตั้งแพคเกจบนเครื่อง"
+#: ../client/pk-console.c:273
+msgid "Affected packages: None"
+msgstr ""
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:15
-msgid "Install package"
-msgstr "ติดตั้งแพคเกจ"
+#. TRANSLATORS: this is the distro, e.g. Fedora 10
+#: ../client/pk-console.c:298
+msgid "Distribution"
+msgstr ""
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:16
-msgid "Install security signature"
-msgstr "ติดตั้งลายเซ็นรับรองความปลอดภัย"
+#. TRANSLATORS: this is type of update, stable or testing
+#: ../client/pk-console.c:300
+msgid "Type"
+msgstr ""
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:17
-msgid "Install untrusted local file"
-msgstr "ติดตั้งไฟล์ที่ไม่น่าเชื่อถือบนเครื่อง"
+#. TRANSLATORS: this is any summary text describing the upgrade
+#. TRANSLATORS: this is the summary of the group
+#: ../client/pk-console.c:302 ../client/pk-console.c:325
+msgid "Summary"
+msgstr ""
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:18
-msgid "Refresh package lists"
-msgstr "เรียกรายการแพคเกจใหม่"
+#. TRANSLATORS: this is the group category name
+#: ../client/pk-console.c:314
+msgid "Category"
+msgstr ""
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:19
-msgid "Remove package"
-msgstr "ถอดแพคเกจ"
+#. TRANSLATORS: this is group identifier
+#: ../client/pk-console.c:316
+msgid "ID"
+msgstr ""
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:20
-msgid "Rollback to a previous transaction"
-msgstr "ถอยกลับไปยังการดำเนินการก่อนหน้า"
+#. TRANSLATORS: this is the parent group
+#: ../client/pk-console.c:319
+msgid "Parent"
+msgstr ""
+
+#. TRANSLATORS: this is the name of the parent group
+#: ../client/pk-console.c:322
+msgid "Name"
+msgstr ""
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:21
-msgid "Update all packages"
-msgstr "อัปเดตแพคเกจทั้งหมด"
+#. TRANSLATORS: this is preferred icon for the group
+#: ../client/pk-console.c:328
+msgid "Icon"
+msgstr ""
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:22
-msgid "Update package"
-msgstr "อัปเดตแพคเกจ"
+#. TRANSLATORS: this is a header for the package that can be updated
+#: ../client/pk-console.c:343
+msgid "Details about the update:"
+msgstr ""
+
+#. TRANSLATORS: details about the update, package name and version
+#. TRANSLATORS: title, the names of the packages that the method is processing
+#: ../client/pk-console.c:345 ../src/pk-polkit-action-lookup.c:352
+#, fuzzy
+msgid "Package"
+msgid_plural "Packages"
+msgstr[0] "ไฟล์แพคเกจ"
+msgstr[1] "ไฟล์แพคเกจ"
+
+#. TRANSLATORS: details about the update, any packages that this update updates
+#: ../client/pk-console.c:348
+#, fuzzy
+msgid "Updates"
+msgstr "รายละเอียดการอัปเดต"
+
+#. TRANSLATORS: details about the update, any packages that this update obsoletes
+#: ../client/pk-console.c:352
+msgid "Obsoletes"
+msgstr ""
+
+#. TRANSLATORS: details about the update, the vendor URLs
+#: ../client/pk-console.c:356
+msgid "Vendor"
+msgstr ""
+
+#. TRANSLATORS: details about the update, the bugzilla URLs
+#: ../client/pk-console.c:360
+msgid "Bugzilla"
+msgstr ""
+
+#. TRANSLATORS: details about the update, the CVE URLs
+#: ../client/pk-console.c:364
+msgid "CVE"
+msgstr ""
+
+#. TRANSLATORS: details about the update, if the package requires a restart
+#: ../client/pk-console.c:368
+msgid "Restart"
+msgstr ""
+
+#. TRANSLATORS: details about the update, any description of the update
+#: ../client/pk-console.c:372
+#, fuzzy
+msgid "Update text"
+msgstr "รายละเอียดการอัปเดต"
+
+#. TRANSLATORS: details about the update, the changelog for the package
+#: ../client/pk-console.c:376
+msgid "Changes"
+msgstr ""
+
+#. TRANSLATORS: details about the update, the ongoing state of the update
+#: ../client/pk-console.c:380
+msgid "State"
+msgstr ""
 
-#: ../client/pk-console.c:224
-msgid "Update detail"
+#. TRANSLATORS: details about the update, date the update was issued
+#: ../client/pk-console.c:385
+msgid "Issued"
+msgstr ""
+
+#. TRANSLATORS: details about the update, date the update was updated
+#: ../client/pk-console.c:390
+#, fuzzy
+msgid "Updated"
 msgstr "รายละเอียดการอัปเดต"
 
-#: ../client/pk-console.c:425
-msgid "A system restart is required"
+#: ../client/pk-console.c:477 ../client/pk-console.c:479
+msgid "Percentage"
+msgstr ""
+
+#: ../client/pk-console.c:479
+msgid "Unknown"
+msgstr ""
+
+#. TRANSLATORS: a package requires the system to be restarted
+#: ../client/pk-console.c:521
+#, fuzzy
+msgid "System restart required by:"
 msgstr "ต้องเริ่มต้นระบบใหม่"
 
-#: ../client/pk-console.c:427
-msgid "A logout and login is required"
-msgstr "ต้องออกจากระบบและเข้าสู่ระบบใหม่"
+#. TRANSLATORS: a package requires the session to be restarted
+#: ../client/pk-console.c:524
+#, fuzzy
+msgid "Session restart required:"
+msgstr "ต้องเริ่มต้นระบบใหม่"
+
+#. TRANSLATORS: a package requires the system to be restarted due to a security update
+#: ../client/pk-console.c:527
+#, fuzzy
+msgid "System restart (security) required by:"
+msgstr "ต้องเริ่มต้นระบบใหม่"
 
-#: ../client/pk-console.c:429
-msgid "An application restart is required"
+#. TRANSLATORS: a package requires the session to be restarted due to a security update
+#: ../client/pk-console.c:530
+#, fuzzy
+msgid "Session restart (security) required:"
+msgstr "ต้องเริ่มต้นระบบใหม่"
+
+#. TRANSLATORS: a package requires the application to be restarted
+#: ../client/pk-console.c:533
+#, fuzzy
+msgid "Application restart required by:"
 msgstr "ต้องเริ่มต้นโปรแกรมใหม่"
 
-#: ../client/pk-console.c:474
-#, c-format
-msgid "Please enter a number from 1 to %i: "
-msgstr "กรุณาป้อนตัวเลขจาก 1 ถึง %i: "
+#. TRANSLATORS: a package needs to restart their system
+#: ../client/pk-console.c:588
+msgid "Please restart the computer to complete the update."
+msgstr ""
 
-#: ../client/pk-console.c:524
-msgid "Could not find a package match"
-msgstr "ไม่สามารถหาแพคเกจที่ตรงกันได้"
+#. TRANSLATORS: a package needs to restart the session
+#: ../client/pk-console.c:591
+msgid "Please logout and login to complete the update."
+msgstr ""
 
-#: ../client/pk-console.c:538
-msgid "There are multiple package matches"
-msgstr "มีแพคเกจที่ตรงกันหลายตัว"
+#. TRANSLATORS: a package needs to restart the application
+#: ../client/pk-console.c:594
+msgid "Please restart the application as it is being used."
+msgstr ""
 
-#. find out what package the user wants to use
-#: ../client/pk-console.c:545
-msgid "Please enter the package number: "
-msgstr "กรุณาป้อนหมายเลขแพคเกจ: "
+#. TRANSLATORS: a package needs to restart their system (due to security)
+#: ../client/pk-console.c:597
+msgid ""
+"Please restart the computer to complete the update as important security "
+"updates have been installed."
+msgstr ""
 
-#: ../client/pk-console.c:561
+#. TRANSLATORS: a package needs to restart the session (due to security)
+#: ../client/pk-console.c:600
 msgid ""
-"Could not find a package with that name to install, or package already "
-"installed"
+"Please logout and login to complete the update as important security updates "
+"have been installed."
 msgstr ""
-"ไม่สามารถค้นหาแพคเกจชื่อดังกล่าวเพื่อติดตั้ง "
-"หรือแพคเกจดังกล่าวถูกติดตั้งไว้อยู่แล้ว"
 
-#: ../client/pk-console.c:643
-msgid "Could not find a package with that name to remove"
-msgstr "ไม่สามารถค้นหาแพคเกจดังกล่าวเพื่อถอดถอน"
+#. TRANSLATORS: The package is already installed on the system
+#: ../client/pk-console.c:727
+#, c-format
+msgid "The package %s is already installed"
+msgstr ""
 
-#: ../client/pk-console.c:683
-msgid "The following packages have to be removed"
+#. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
+#: ../client/pk-console.c:735
+#, c-format
+msgid "The package %s could not be installed: %s"
+msgstr ""
+
+#. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
+#: ../client/pk-console.c:760 ../client/pk-console.c:783
+#: ../client/pk-console.c:879 ../client/pk-console.c:996
+#: ../client/pk-tools-common.c:62 ../client/pk-tools-common.c:81
+#: ../client/pk-tools-common.c:89
+#, c-format
+msgid "Internal error: %s"
+msgstr ""
+
+#. TRANSLATORS: There was an error installing the packages. The detailed error follows
+#: ../client/pk-console.c:768 ../client/pk-console.c:1392
+#, fuzzy, c-format
+msgid "This tool could not install the packages: %s"
+msgstr "ไม่สามารถค้นหารายละเอียดแพคเกจนี้"
+
+#. TRANSLATORS: There was an error installing the files. The detailed error follows
+#: ../client/pk-console.c:791
+#, c-format
+msgid "This tool could not install the files: %s"
+msgstr ""
+
+#. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
+#: ../client/pk-console.c:847
+#, c-format
+msgid "This tool could not remove %s: %s"
+msgstr ""
+
+#. TRANSLATORS: There was an error removing the packages. The detailed error follows
+#: ../client/pk-console.c:870 ../client/pk-console.c:908
+#: ../client/pk-console.c:941
+#, c-format
+msgid "This tool could not remove the packages: %s"
+msgstr ""
+
+#. TRANSLATORS: When removing, we might have to remove other dependencies
+#: ../client/pk-console.c:920
+#, fuzzy
+msgid "The following packages have to be removed:"
 msgstr "แพคเกจต่อไปนี้จะถูกถอดถอน"
 
-#. get user input
-#: ../client/pk-console.c:692
-msgid "Okay to remove additional packages?"
+#. TRANSLATORS: We are checking if it's okay to remove a list of packages
+#: ../client/pk-console.c:927
+#, fuzzy
+msgid "Proceed removing additional packages?"
 msgstr "ต้องการถอดแพคเกจเพิ่มเติม?"
 
-#: ../client/pk-console.c:696
-msgid "Cancelled!"
-msgstr "ถูกยกเลิก!"
+#. TRANSLATORS: We did not remove any packages
+#: ../client/pk-console.c:932
+msgid "The package removal was canceled!"
+msgstr ""
+
+#. TRANSLATORS: The package name was not found in any software sources
+#: ../client/pk-console.c:973
+#, c-format
+msgid "This tool could not download the package %s as it could not be found"
+msgstr ""
+
+#. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
+#: ../client/pk-console.c:1004
+#, c-format
+msgid "This tool could not download the packages: %s"
+msgstr ""
 
-#: ../client/pk-console.c:718
-msgid "Could not find a package with that name to update"
-msgstr "ไม่สามารถค้นหาแพคเกจชื่อดังกล่าวเพื่ออัปเดต"
+#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
+#: ../client/pk-console.c:1031 ../client/pk-console.c:1040
+#, fuzzy, c-format
+msgid "This tool could not update %s: %s"
+msgstr "ไม่สามารถเปิดฐานข้อมูล: %s"
 
-#: ../client/pk-console.c:736
-msgid "Could not find what packages require this package"
-msgstr "ไม่สามารถค้นหาแพคเกจที่ต้องการแพคเกจนี้"
+#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
+#: ../client/pk-console.c:1062 ../client/pk-console.c:1070
+#, c-format
+msgid "This tool could not get the requirements for %s: %s"
+msgstr ""
 
-#: ../client/pk-console.c:754
-msgid "Could not get dependencies for this package"
+#. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
+#: ../client/pk-console.c:1092 ../client/pk-console.c:1100
+#, fuzzy, c-format
+msgid "This tool could not get the dependencies for %s: %s"
 msgstr "ไม่สามารถค้นหารายการพึ่งพาแพคเกจสำหรับแพคเกจนี้"
 
-#: ../client/pk-console.c:772
-msgid "Could not find details for this package"
+#. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
+#: ../client/pk-console.c:1122 ../client/pk-console.c:1130
+#, c-format
+msgid "This tool could not get package details for %s: %s"
+msgstr ""
+
+#. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
+#: ../client/pk-console.c:1152
+#, fuzzy, c-format
+msgid "This tool could not find the files for %s: %s"
+msgstr "ไม่สามารถค้นหาไฟล์สำหรับแพคเกจนี้"
+
+#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
+#: ../client/pk-console.c:1160
+#, c-format
+msgid "This tool could not get the file list for %s: %s"
+msgstr ""
+
+#. TRANSLATORS: There was an error getting the list of packages. The filename follows
+#: ../client/pk-console.c:1182
+#, c-format
+msgid "File already exists: %s"
+msgstr ""
+
+#. TRANSLATORS: follows a list of packages to install
+#: ../client/pk-console.c:1187 ../client/pk-console.c:1243
+#: ../client/pk-console.c:1318
+#, fuzzy
+msgid "Getting package list"
+msgstr "เรียกรายการแพคเกจใหม่"
+
+#. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
+#: ../client/pk-console.c:1193 ../client/pk-console.c:1249
+#: ../client/pk-console.c:1324
+#, c-format
+msgid "This tool could not get package list: %s"
+msgstr ""
+
+#. TRANSLATORS: There was an error saving the list
+#: ../client/pk-console.c:1204
+#, fuzzy, c-format
+msgid "Failed to save to disk"
+msgstr "ไม่สามารถหาเวลาล่าสุด"
+
+#. TRANSLATORS: There was an error getting the list. The filename follows
+#: ../client/pk-console.c:1238 ../client/pk-console.c:1313
+#, c-format
+msgid "File does not exist: %s"
+msgstr ""
+
+#. TRANSLATORS: header to a list of packages newly added
+#: ../client/pk-console.c:1270
+#, fuzzy
+msgid "Packages to add"
+msgstr "โปรแกรมเฝ้าสังเกต PackageKit"
+
+#. TRANSLATORS: header to a list of packages removed
+#: ../client/pk-console.c:1278
+#, fuzzy
+msgid "Packages to remove"
+msgstr "บริการ PackageKit"
+
+#. TRANSLATORS: We didn't find any differences
+#: ../client/pk-console.c:1346
+#, c-format
+msgid "No new packages need to be installed"
+msgstr ""
+
+#. TRANSLATORS: follows a list of packages to install
+#: ../client/pk-console.c:1352
+msgid "To install"
+msgstr ""
+
+#. TRANSLATORS: searching takes some time....
+#: ../client/pk-console.c:1364
+msgid "Searching for package: "
+msgstr ""
+
+#. TRANSLATORS: package was not found -- this is the end of a string ended in ...
+#: ../client/pk-console.c:1368
+msgid "not found."
+msgstr ""
+
+#. TRANSLATORS: We didn't find any packages to install
+#: ../client/pk-console.c:1379
+#, c-format
+msgid "No packages can be found to install"
+msgstr ""
+
+#. TRANSLATORS: installing new packages from package list
+#. TRANSLATORS: we are now installing the debuginfo packages we found earlier
+#: ../client/pk-console.c:1385
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:886
+#, fuzzy, c-format
+msgid "Installing packages"
+msgstr "ติดตั้งแพคเกจ"
+
+#. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
+#: ../client/pk-console.c:1421
+#, fuzzy, c-format
+msgid "This tool could not find the update details for %s: %s"
 msgstr "ไม่สามารถค้นหารายละเอียดแพคเกจนี้"
 
-#: ../client/pk-console.c:790
+#. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
+#: ../client/pk-console.c:1429
 #, c-format
-msgid "Could not find the files for this package"
-msgstr "ไม่สามารถค้นหาไฟล์สำหรับแพคเกจนี้"
+msgid "This tool could not get the update details for %s: %s"
+msgstr ""
 
-#: ../client/pk-console.c:870
+#. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
+#: ../client/pk-console.c:1460
+msgid "Error:"
+msgstr ""
+
+#. TRANSLATORS: This a list of details about the package
+#: ../client/pk-console.c:1474
 msgid "Package description"
 msgstr "รายละเอียดแพคเกจ"
 
-#: ../client/pk-console.c:893
+#. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
+#: ../client/pk-console.c:1490
+msgid "Message:"
+msgstr ""
+
+#. TRANSLATORS: This a list files contained in the package
+#: ../client/pk-console.c:1518
 msgid "Package files"
 msgstr "ไฟล์แพคเกจ"
 
-#: ../client/pk-console.c:901
+#. TRANSLATORS: This where the package has no files
+#: ../client/pk-console.c:1526
 msgid "No files"
 msgstr "ไม่มีไฟล์"
 
-#. get user input
-#: ../client/pk-console.c:933
-msgid "Okay to import key?"
-msgstr "ต้องการนำเข้ากุญแจ?"
+#. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
+#: ../client/pk-console.c:1549
+msgid "Repository signature required"
+msgstr ""
 
-#: ../client/pk-console.c:936
-msgid "Did not import key"
-msgstr "ไม่ได้นำเข้ากุญแจ"
+#. TRANSLATORS: This a prompt asking the user to import the security key
+#: ../client/pk-console.c:1559
+msgid "Do you accept this signature?"
+msgstr ""
 
-#. get user input
-#: ../client/pk-console.c:976
-msgid "Do you agree?"
+#. TRANSLATORS: This is where the user declined the security key
+#: ../client/pk-console.c:1563
+msgid "The signature was not accepted."
+msgstr ""
+
+#. TRANSLATORS: This a request for a EULA
+#: ../client/pk-console.c:1597
+msgid "End user license agreement required"
+msgstr ""
+
+#. TRANSLATORS: This a prompt asking the user to agree to the license
+#: ../client/pk-console.c:1604
+#, fuzzy
+msgid "Do you agree to this license?"
 msgstr "ยอมรับข้อความข้างต้น?"
 
-#: ../client/pk-console.c:979
-msgid "Did not agree to licence, task will fail"
-msgstr "ไม่ยอมรับข้อตกลงสัญญาอนุญาต งานที่ทำจะล้มเหลว"
+#. TRANSLATORS: This is where the user declined the license
+#: ../client/pk-console.c:1608
+msgid "The license was refused."
+msgstr ""
 
-#: ../client/pk-console.c:1008
+#. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
+#: ../client/pk-console.c:1637
 msgid "The daemon crashed mid-transaction!"
 msgstr "ดีมอนขัดข้องระหว่างกระบวนการ!"
 
-#. header
-#: ../client/pk-console.c:1061
+#. TRANSLATORS: This is the header to the --help menu
+#: ../client/pk-console.c:1690
 msgid "PackageKit Console Interface"
 msgstr "ส่วนติดต่อบนคอนโซลของ PackageKit"
 
-#: ../client/pk-console.c:1061
+#. these are commands we can use with pkcon
+#: ../client/pk-console.c:1692
 msgid "Subcommands:"
 msgstr "คำสั่งย่อย:"
 
-#: ../client/pk-console.c:1165 ../client/pk-monitor.c:104 ../src/pk-main.c:189
+#. TRANSLATORS: command line argument, if we should show debugging information
+#. TRANSLATORS: if we should show debugging data
+#: ../client/pk-console.c:1785 ../client/pk-generate-pack.c:185
+#: ../client/pk-monitor.c:128
+#: ../contrib/command-not-found/pk-command-not-found.c:616
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:550
+#: ../contrib/device-rebind/pk-device-rebind.c:293 ../src/pk-main.c:211
 msgid "Show extra debugging information"
 msgstr "แสดงข้อมูลเพิ่มเติมสำหรับดีบั๊ก"
 
-#: ../client/pk-console.c:1167 ../client/pk-monitor.c:106
+#. TRANSLATORS: command line argument, just show the version string
+#: ../client/pk-console.c:1788 ../client/pk-monitor.c:130
 msgid "Show the program version and exit"
 msgstr "แสดงรุ่นของโปรแกรมแล้วออก"
 
-#: ../client/pk-console.c:1169
+#. TRANSLATORS: command line argument, use a filter to narrow down results
+#: ../client/pk-console.c:1791
 msgid "Set the filter, e.g. installed"
 msgstr "ตั้งตัวกรอง เช่น ติดตั้งไว้แล้ว"
 
-#: ../client/pk-console.c:1171
+#. TRANSLATORS: command line argument, work asynchronously
+#: ../client/pk-console.c:1794
 msgid "Exit without waiting for actions to complete"
 msgstr "ออกโดยไม่ต้องรอกระบวนการให้เสร็จสิ้น"
 
-#: ../client/pk-console.c:1194
-msgid "Could not connect to system DBUS."
+#. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
+#: ../client/pk-console.c:1821
+#, fuzzy
+msgid "This tool could not connect to system DBUS."
 msgstr "ไม่สามารถต่อกับ DBUS ของระบบ"
 
-#: ../client/pk-console.c:1288
-#, c-format
-msgid "You need to specify a search type"
-msgstr "คุณต้องระบุชนิดการค้นหา"
+#. TRANSLATORS: The user specified an incorrect filter
+#: ../client/pk-console.c:1911
+msgid "The filter specified was invalid"
+msgstr ""
 
-#: ../client/pk-console.c:1293 ../client/pk-console.c:1300
-#: ../client/pk-console.c:1307 ../client/pk-console.c:1314
-#: ../client/pk-console.c:1421 ../client/pk-console.c:1428
-#: ../client/pk-console.c:1435 ../client/pk-console.c:1442
-#, c-format
-msgid "You need to specify a search term"
-msgstr "คุณต้องระบุคำค้นหา"
+#. TRANSLATORS: a search type can be name, details, file, etc
+#: ../client/pk-console.c:1930
+msgid "A search type is required, e.g. name"
+msgstr ""
 
-#: ../client/pk-console.c:1319
-#, c-format
+#. TRANSLATORS: the user needs to provide a search term
+#: ../client/pk-console.c:1937 ../client/pk-console.c:1946
+#: ../client/pk-console.c:1955 ../client/pk-console.c:1964
+#, fuzzy
+msgid "A search term is required"
+msgstr "ต้องเริ่มต้นระบบใหม่"
+
+#. TRANSLATORS: the search type was provided, but invalid
+#: ../client/pk-console.c:1971
 msgid "Invalid search type"
 msgstr "ชนิดการค้นหาไม่ถูกต้อง"
 
-#: ../client/pk-console.c:1324
+#. TRANSLATORS: the user did not specify what they wanted to install
+#: ../client/pk-console.c:1977
+msgid "A package name or filename to install is required"
+msgstr ""
+
+#. TRANSLATORS: geeky error, 99.9999% of users won't see this
+#: ../client/pk-console.c:1986
+#, fuzzy
+msgid "A type, key_id and package_id are required"
+msgstr "คุณต้องระบุชนิด, key_id และ package_id"
+
+#. TRANSLATORS: the user did not specify what they wanted to remove
+#: ../client/pk-console.c:1995
+#, fuzzy
+msgid "A package name to remove is required"
+msgstr "ต้องเริ่มต้นโปรแกรมใหม่"
+
+#. TRANSLATORS: the user did not specify anything about what to download or where
+#: ../client/pk-console.c:2003
+msgid "A destination directory and the package names to download are required"
+msgstr ""
+
+#. TRANSLATORS: the directory does not exist, so we can't continue
+#: ../client/pk-console.c:2010
+msgid "Directory not found"
+msgstr ""
+
+#. TRANSLATORS: geeky error, 99.9999% of users won't see this
+#: ../client/pk-console.c:2018
+msgid "A licence identifier (eula-id) is required"
+msgstr ""
+
+#. TRANSLATORS: geeky error, 99.9999% of users won't see this
+#: ../client/pk-console.c:2028
+#, fuzzy
+msgid "A transaction identifier (tid) is required"
+msgstr "ต้องเริ่มต้นโปรแกรมใหม่"
+
+#. TRANSLATORS: The user did not specify a package name
+#: ../client/pk-console.c:2045
+#, fuzzy
+msgid "A package name to resolve is required"
+msgstr "ต้องเริ่มต้นโปรแกรมใหม่"
+
+#. TRANSLATORS: The user did not specify a repository (software source) name
+#: ../client/pk-console.c:2054 ../client/pk-console.c:2063
+#, fuzzy
+msgid "A repository name is required"
+msgstr "ต้องเริ่มต้นระบบใหม่"
+
+#. TRANSLATORS: The user didn't provide any data
+#: ../client/pk-console.c:2072
+#, fuzzy
+msgid "A repo name, parameter and value are required"
+msgstr "คุณต้องระบุชื่อคลัง/พารามิเตอร์และค่า"
+
+#. TRANSLATORS: The user didn't specify what action to use
+#: ../client/pk-console.c:2086
+#, fuzzy
+msgid "An action, e.g. 'update-system' is required"
+msgstr "ต้องเริ่มต้นโปรแกรมใหม่"
+
+#. TRANSLATORS: The user specified an invalid action
+#: ../client/pk-console.c:2093
+#, fuzzy
+msgid "A correct role is required"
+msgstr "ต้องเริ่มต้นระบบใหม่"
+
+#. TRANSLATORS: we keep a database updated with the time that an action was last executed
+#: ../client/pk-console.c:2100
+msgid "Failed to get the time since this action was last completed"
+msgstr ""
+
+#. TRANSLATORS: The user did not provide a package name
+#. TRANSLATORS: This is when the user fails to supply the package name
+#: ../client/pk-console.c:2110 ../client/pk-console.c:2122
+#: ../client/pk-console.c:2131 ../client/pk-console.c:2149
+#: ../client/pk-console.c:2158 ../client/pk-generate-pack.c:241
+#, fuzzy
+msgid "A package name is required"
+msgstr "ต้องเริ่มต้นโปรแกรมใหม่"
+
+#. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
+#: ../client/pk-console.c:2140
+#, fuzzy
+msgid "A package provide string is required"
+msgstr "ต้องเริ่มต้นโปรแกรมใหม่"
+
+#. TRANSLATORS: The user didn't specify a filename to create as a list
+#: ../client/pk-console.c:2167
+#, fuzzy
+msgid "A list file name to create is required"
+msgstr "ต้องเริ่มต้นระบบใหม่"
+
+#. TRANSLATORS: The user didn't specify a filename to open as a list
+#: ../client/pk-console.c:2177 ../client/pk-console.c:2187
+#, fuzzy
+msgid "A list file to open is required"
+msgstr "ต้องออกจากระบบและเข้าสู่ระบบใหม่"
+
+#. TRANSLATORS: The user tried to use an unsupported option on the command line
+#: ../client/pk-console.c:2241
+#, fuzzy, c-format
+msgid "Option '%s' is not supported"
+msgstr "ไม่รองรับตัวเลือก '%s'"
+
+#. TRANSLATORS: User does not have permission to do this
+#: ../client/pk-console.c:2254
+#, fuzzy
+msgid "Incorrect privileges for this operation"
+msgstr "คุณมีสิทธิไม่เพียงพอสำหรับกระบวนการนี้"
+
+#. TRANSLATORS: Generic failure of what they asked to do
+#: ../client/pk-console.c:2257
+msgid "Command failed"
+msgstr "คำสั่งล้มเหลว"
+
+#. TRANSLATORS: This is the state of the transaction
+#: ../client/pk-generate-pack.c:101
+msgid "Downloading"
+msgstr ""
+
+#. TRANSLATORS: This is when the main packages are being downloaded
+#: ../client/pk-generate-pack.c:121
+msgid "Downloading packages"
+msgstr ""
+
+#. TRANSLATORS: This is when the dependency packages are being downloaded
+#: ../client/pk-generate-pack.c:126
+msgid "Downloading dependencies"
+msgstr ""
+
+#. TRANSLATORS: we can exclude certain packages (glibc) when we know they'll exist on the target
+#: ../client/pk-generate-pack.c:188
+msgid "Set the file name of dependencies to be excluded"
+msgstr ""
+
+#. TRANSLATORS: the output location
+#: ../client/pk-generate-pack.c:191
+msgid ""
+"The output file or directory (the current directory is used if ommitted)"
+msgstr ""
+
+#. TRANSLATORS: put a list of packages in the pack
+#: ../client/pk-generate-pack.c:194
+msgid "The package to be put into the service pack"
+msgstr ""
+
+#. TRANSLATORS: put all pending updates in the pack
+#: ../client/pk-generate-pack.c:197
+msgid "Put all updates available in the service pack"
+msgstr ""
+
+#. TRANSLATORS: This is when the user fails to supply the correct arguments
+#: ../client/pk-generate-pack.c:225
+msgid "Neither --package or --updates option selected."
+msgstr ""
+
+#. TRANSLATORS: This is when the user fails to supply just one argument
+#: ../client/pk-generate-pack.c:233
+msgid "Both options selected."
+msgstr ""
+
+#. TRANSLATORS: This is when the user fails to supply the output
+#: ../client/pk-generate-pack.c:249
+#, fuzzy
+msgid "A output directory or file name is required"
+msgstr "ต้องออกจากระบบและเข้าสู่ระบบใหม่"
+
+#. TRANSLATORS: This is when the backend doesn't have the capability to get-depends
+#. TRANSLATORS: This is when the backend doesn't have the capability to download
+#: ../client/pk-generate-pack.c:267 ../client/pk-generate-pack.c:273
+msgid "The package manager cannot perform this type of operation."
+msgstr ""
+
+#. TRANSLATORS: This is when the distro didn't include libarchive support into PK
+#: ../client/pk-generate-pack.c:280
+msgid ""
+"Service packs cannot be created as PackageKit was not built with libarchive "
+"support."
+msgstr ""
+
+#. TRANSLATORS: the user specified an absolute path, but didn't get the extension correct
+#: ../client/pk-generate-pack.c:291
+msgid "If specifying a file, the service pack name must end with"
+msgstr ""
+
+#. TRANSLATORS: This is when file already exists
+#: ../client/pk-generate-pack.c:307
+msgid "A pack with the same name already exists, do you want to overwrite it?"
+msgstr ""
+
+#. TRANSLATORS: This is when the pack was not overwritten
+#: ../client/pk-generate-pack.c:310
+msgid "The pack was not overwritten."
+msgstr ""
+
+#. TRANSLATORS: This is when the temporary directory cannot be created, the directory name follows
+#: ../client/pk-generate-pack.c:323
+#, fuzzy
+msgid "Failed to create directory:"
+msgstr "ไม่สามารถหาเวลาล่าสุด"
+
+#. TRANSLATORS: This is when the list of packages from the remote computer cannot be opened
+#: ../client/pk-generate-pack.c:333
+#, fuzzy
+msgid "Failed to open package list."
+msgstr "ไม่สามารถหาเวลาล่าสุด"
+
+#. TRANSLATORS: The package name is being matched up to available packages
+#: ../client/pk-generate-pack.c:344
+msgid "Finding package name."
+msgstr ""
+
+#. TRANSLATORS: This is when the package cannot be found in any software source. The detailed error follows
+#: ../client/pk-generate-pack.c:348
 #, c-format
-msgid "You need to specify a package or file to install"
-msgstr "คุณต้องระบุแพคเกจหรือไฟล์ที่จะติดตั้ง"
+msgid "Failed to find package '%s': %s"
+msgstr ""
+
+#. TRANSLATORS: This is telling the user we are in the process of making the pack
+#: ../client/pk-generate-pack.c:365
+msgid "Creating service pack..."
+msgstr ""
 
-#: ../client/pk-console.c:1339
+#. TRANSLATORS: we succeeded in making the file
+#: ../client/pk-generate-pack.c:372
 #, c-format
-msgid "You need to specify a type, key_id and package_id"
-msgstr "คุณต้องระบุชนิด, key_id และ package_id"
+msgid "Service pack created '%s'"
+msgstr ""
 
-#: ../client/pk-console.c:1346
+#. TRANSLATORS: we failed to make te file
+#: ../client/pk-generate-pack.c:377
+#, fuzzy, c-format
+msgid "Failed to create '%s': %s"
+msgstr "ไม่สามารถหาเวลาล่าสุด"
+
+#. TRANSLATORS: this is a program that monitors PackageKit
+#: ../client/pk-monitor.c:146
+msgid "PackageKit Monitor"
+msgstr "โปรแกรมเฝ้าสังเกต PackageKit"
+
+#: ../client/pk-monitor.c:183
+msgid "Cannot show the list of transactions"
+msgstr ""
+
+#. TRANSLATORS: The package was not found in any software sources
+#: ../client/pk-tools-common.c:118
 #, c-format
-msgid "You need to specify a package to remove"
-msgstr "คุณต้องระบุแพคเกจที่จะถอดถอน"
+msgid "The package could not be found"
+msgstr ""
 
-#: ../client/pk-console.c:1353
+#. TRANSLATORS: more than one package could be found that matched, to follow is a list of possible packages
+#: ../client/pk-tools-common.c:130
+#, fuzzy
+msgid "More than one package matches:"
+msgstr "มีแพคเกจที่ตรงกันหลายตัว"
+
+#. TRANSLATORS: This finds out which package in the list to use
+#: ../client/pk-tools-common.c:137
+#, fuzzy
+msgid "Please choose the correct package: "
+msgstr "กรุณาป้อนหมายเลขแพคเกจ: "
+
+#: ../client/pk-tools-common.c:162
 #, c-format
-msgid "You need to specify a eula-id"
-msgstr "คุณต้องระบุ eula-id"
+msgid "Please enter a number from 1 to %i: "
+msgstr "กรุณาป้อนตัวเลขจาก 1 ถึง %i: "
+
+#. TRANSLATORS: when we are getting data from the daemon
+#: ../contrib/browser-plugin/pk-plugin-install.c:466
+msgid "Getting package information..."
+msgstr ""
 
-#: ../client/pk-console.c:1369
+#. TRANSLATORS: run an applicaiton
+#: ../contrib/browser-plugin/pk-plugin-install.c:472
 #, c-format
+msgid "Run %s"
+msgstr ""
+
+#. TRANSLATORS: show the installed version of a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:478
 #, fuzzy
-msgid "You need to specify a package name to resolve"
-msgstr "คุณต้องระบุชื่อแพคเกจที่จะแยกแยะ"
+msgid "Installed version"
+msgstr "ติดตั้งลายเซ็นรับรองความปลอดภัย"
 
-#: ../client/pk-console.c:1376 ../client/pk-console.c:1383
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:486
 #, c-format
-msgid "You need to specify a repo name"
-msgstr "คุณต้องระบุชื่อคลัง"
+msgid "Run version %s now"
+msgstr ""
 
-#: ../client/pk-console.c:1390
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:492
+msgid "Run now"
+msgstr ""
+
+#. TRANSLATORS: update to a new version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:498
 #, c-format
-msgid "You need to specify a repo name/parameter and value"
-msgstr "คุณต้องระบุชื่อคลัง/พารามิเตอร์และค่า"
+msgid "Update to version %s"
+msgstr ""
 
-#: ../client/pk-console.c:1403
+#. TRANSLATORS: To install a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:504
 #, c-format
+msgid "Install %s now"
+msgstr ""
+
+#. TRANSLATORS: the version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:507
+msgid "Version"
+msgstr ""
+
+#. TRANSLATORS: noting found, so can't install
+#: ../contrib/browser-plugin/pk-plugin-install.c:512
+msgid "No packages found for your system"
+msgstr ""
+
+#. TRANSLATORS: package is being installed
+#: ../contrib/browser-plugin/pk-plugin-install.c:517
+msgid "Installing..."
+msgstr ""
+
+#. TRANSLATORS: downloading repo data so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:349
+msgid "Downloading details about the software sources."
+msgstr ""
+
+#. TRANSLATORS: downloading file lists so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:353
+msgid "Downloading filelists (this may take some time to complete)."
+msgstr ""
+
+#. TRANSLATORS: waiting for native lock
+#: ../contrib/command-not-found/pk-command-not-found.c:357
+msgid "Waiting for package manager lock."
+msgstr ""
+
+#. TRANSLATORS: loading package cache so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:361
+msgid "Loading list of packages."
+msgstr ""
+
+#. TRANSLATORS: we failed to find the package, this shouldn't happen
+#: ../contrib/command-not-found/pk-command-not-found.c:420
+#, fuzzy
+msgid "Failed to search for file"
+msgstr "ไม่สามารถหาเวลาล่าสุด"
+
+#. TRANSLATORS: we failed to launch the executable, the error follows
+#: ../contrib/command-not-found/pk-command-not-found.c:557
+#, fuzzy
+msgid "Failed to launch:"
+msgstr "ไม่สามารถหาเวลาล่าสุด"
+
+#. TRANSLATORS: tool that gets called when the command is not found
+#: ../contrib/command-not-found/pk-command-not-found.c:632
+#, fuzzy
+msgid "PackageKit Command Not Found"
+msgstr "โปรแกรมเฝ้าสังเกต PackageKit"
+
+#. TRANSLATORS: the prefix of all the output telling the user why it's not executing
+#: ../contrib/command-not-found/pk-command-not-found.c:658
+#, fuzzy
+msgid "Command not found."
+msgstr "คำสั่งล้มเหลว"
+
+#. TRANSLATORS: tell the user what we think the command is
+#: ../contrib/command-not-found/pk-command-not-found.c:665
+#, fuzzy
+msgid "Similar command is:"
+msgstr "คำสั่งย่อย:"
+
+#. TRANSLATORS: Ask the user if we should run the similar command
+#: ../contrib/command-not-found/pk-command-not-found.c:674
+msgid "Run similar command:"
+msgstr ""
+
+#. TRANSLATORS: show the user a list of commands that they could have meant
+#. TRANSLATORS: show the user a list of commands we could run
+#: ../contrib/command-not-found/pk-command-not-found.c:686
+#: ../contrib/command-not-found/pk-command-not-found.c:695
+#, fuzzy
+msgid "Similar commands are:"
+msgstr "คำสั่งย่อย:"
+
+#. TRANSLATORS: ask the user to choose a file to run
+#: ../contrib/command-not-found/pk-command-not-found.c:702
+msgid "Please choose a command to run"
+msgstr ""
+
+#. TRANSLATORS: tell the user what package provides the command
+#: ../contrib/command-not-found/pk-command-not-found.c:721
+msgid "The package providing this file is:"
+msgstr ""
+
+#. TRANSLATORS: as the user if we want to install a package to provide the command
+#: ../contrib/command-not-found/pk-command-not-found.c:726
+#, c-format
+msgid "Install package '%s' to provide command '%s'?"
+msgstr ""
+
+#. TRANSLATORS: Show the user a list of packages that provide this command
+#: ../contrib/command-not-found/pk-command-not-found.c:747
+msgid "Packages providing this file are:"
+msgstr ""
+
+#. TRANSLATORS: Show the user a list of packages that they can install to provide this command
+#: ../contrib/command-not-found/pk-command-not-found.c:756
+msgid "Suitable packages are:"
+msgstr ""
+
+#. get selection
+#. TRANSLATORS: ask the user to choose a file to install
+#: ../contrib/command-not-found/pk-command-not-found.c:764
+#, fuzzy
+msgid "Please choose a package to install"
+msgstr "คุณต้องระบุแพคเกจหรือไฟล์ที่จะติดตั้ง"
+
+#. TRANSLATORS: we are starting to install the packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:187
+msgid "Starting install"
+msgstr ""
+
+#. TRANSLATORS: we couldn't find the package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:397
+#, fuzzy, c-format
+msgid "Failed to find the package %s, or already installed: %s"
+msgstr "ไม่สามารถค้นหาแพคเกจชื่อดังกล่าวเพื่อติดตั้ง หรือแพคเกจดังกล่าวถูกติดตั้งไว้อยู่แล้ว"
+
+#. command line argument, simulate what would be done, but don't actually do it
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:553
+msgid ""
+"Don't actually install any packages, only simulate what would be installed"
+msgstr ""
+
+#. command line argument, do we skip packages that depend on the ones specified
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:556
+#, fuzzy
+msgid "Do not install dependencies of the core packages"
+msgstr "ไม่สามารถค้นหารายการพึ่งพาแพคเกจสำหรับแพคเกจนี้"
+
+#. command line argument, do we operate quietly
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:559
+msgid "Do not display information or progress"
+msgstr ""
+
+#. TRANSLATORS: tool that gets called when the command is not found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:577
 #, fuzzy
-msgid "You need to specify a time term"
-msgstr "คุณต้องระบุระยะเวลา"
+msgid "PackageKit Debuginfo Installer"
+msgstr "ส่วนติดต่อบนคอนโซลของ PackageKit"
 
-#: ../client/pk-console.c:1408
+#. TRANSLATORS: the use needs to specify a list of package names on the command line
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:589
+#, fuzzy, c-format
+msgid "ERROR: Specify package names to install."
+msgstr "คุณต้องระบุแพคเกจหรือไฟล์ที่จะติดตั้ง"
+
+#. TRANSLATORS: we are getting the list of repositories
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:623
 #, c-format
-msgid "You need to specify a correct role"
-msgstr "คุณต้องระบุหน้าที่ที่ถูกต้อง"
+msgid "Getting sources list"
+msgstr ""
 
-#: ../client/pk-console.c:1413
+#. TRANSLATORS: all completed 100%
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:641
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:681
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:716
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:800
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:844
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:911
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:955
 #, c-format
-msgid "Failed to get last time"
-msgstr "ไม่สามารถหาเวลาล่าสุด"
+msgid "OK."
+msgstr ""
 
-#: ../client/pk-console.c:1449
+#. TRANSLATORS: tell the user what we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:644
 #, c-format
-msgid "You need to specify a package to find the details for"
-msgstr "คุณต้องระบุแพคเกจที่จะค้นหารายละเอียด"
+msgid "Found %i enabled and %i disabled sources."
+msgstr ""
 
-#: ../client/pk-console.c:1456
+#. TRANSLATORS: we're finding repositories that match out pattern
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:651
 #, c-format
-msgid "You need to specify a package to find the files for"
-msgstr "คุณต้องระบุแพคเกจที่จะค้นหาไฟล์"
+msgid "Finding debugging sources"
+msgstr ""
 
-#: ../client/pk-console.c:1503
+#. TRANSLATORS: tell the user what we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:684
 #, c-format
-msgid "Option '%s' not supported"
-msgstr "ไม่รองรับตัวเลือก '%s'"
+msgid "Found %i disabled debuginfo repos."
+msgstr ""
 
-#: ../client/pk-console.c:1514
-msgid "Command failed"
-msgstr "คำสั่งล้มเหลว"
+#. TRANSLATORS: we're now enabling all the debug sources we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:691
+#, c-format
+msgid "Enabling debugging sources"
+msgstr ""
 
-#: ../client/pk-console.c:1518
-msgid "You don't have the necessary privileges for this operation"
-msgstr "คุณมีสิทธิไม่เพียงพอสำหรับกระบวนการนี้"
+#. TRANSLATORS: operation was not successful
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:701
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:785
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:829
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:896
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:940
+msgid "FAILED."
+msgstr ""
 
-#: ../client/pk-monitor.c:117
-msgid "PackageKit Monitor"
-msgstr "โปรแกรมเฝ้าสังเกต PackageKit"
+#. TRANSLATORS: tell the user how many we enabled
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:719
+#, c-format
+msgid "Enabled %i debugging sources."
+msgstr ""
 
-#: ../client/pk-import-desktop.c:293 ../client/pk-import-specspo.c:169
+#. TRANSLATORS: we're now finding packages that match in all the repos
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:726
 #, c-format
-msgid "Could not open database: %s"
-msgstr "ไม่สามารถเปิดฐานข้อมูล: %s"
+msgid "Finding debugging packages"
+msgstr ""
+
+#. TRANSLATORS: we couldn't find the package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:738
+#, fuzzy, c-format
+msgid "Failed to find the package %s: %s"
+msgstr "ไม่สามารถหาแพคเกจที่ตรงกันได้"
+
+#. TRANSLATORS: we couldn't find the debuginfo package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:761
+#, c-format
+msgid "Failed to find the debuginfo package %s: %s"
+msgstr ""
+
+#. TRANSLATORS: no debuginfo packages could be found to be installed
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:789
+#, fuzzy, c-format
+msgid "Found no packages to install."
+msgstr "คุณต้องระบุแพคเกจหรือไฟล์ที่จะติดตั้ง"
+
+#. TRANSLATORS: tell the user we found some packages, and then list them
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:803
+#, c-format
+msgid "Found %i packages:"
+msgstr ""
+
+#. TRANSLATORS: tell the user we are searching for deps
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:819
+#, fuzzy, c-format
+msgid "Finding packages that depend on these packages"
+msgstr "ไม่สามารถค้นหารายการพึ่งพาแพคเกจสำหรับแพคเกจนี้"
+
+#. TRANSLATORS: could not install, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:832
+#, fuzzy, c-format
+msgid "Could not find dependant packages: %s"
+msgstr "ไม่สามารถหาแพคเกจที่ตรงกันได้"
 
-#: ../client/pk-import-desktop.c:294 ../client/pk-import-specspo.c:170
-msgid "You probably need to run this program as the root user"
-msgstr "คุณอาจจะต้องรันโปรแกรมนี้เป็นผู้ใช้รูท"
+#. TRANSLATORS: tell the user we found some more packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:848
+#, c-format
+msgid "Found %i extra packages."
+msgstr ""
+
+#. TRANSLATORS: tell the user we found some more packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:852
+#, c-format
+msgid "No extra packages required."
+msgstr ""
+
+#. TRANSLATORS: tell the user we found some packages (and deps), and then list them
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:861
+#, fuzzy, c-format
+msgid "Found %i packages to install:"
+msgstr "คุณต้องระบุแพคเกจหรือไฟล์ที่จะติดตั้ง"
+
+#. TRANSLATORS: simulate mode is a testing mode where we quit before the action
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:874
+#, c-format
+msgid "Not installing packages in simulate mode"
+msgstr ""
+
+#. TRANSLATORS: could not install, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:899
+#, fuzzy, c-format
+msgid "Could not install packages: %s"
+msgstr "ไม่สามารถหาแพคเกจที่ตรงกันได้"
+
+#. TRANSLATORS: we are now disabling all debuginfo repos we previously enabled
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:931
+#, c-format
+msgid "Disabling sources previously enabled"
+msgstr ""
+
+#. TRANSLATORS: no debuginfo packages could be found to be installed, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:943
+#, c-format
+msgid "Could not disable the debugging sources: %s"
+msgstr ""
+
+#. TRANSLATORS: we disabled all the debugging repos that we enabled before
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:958
+#, c-format
+msgid "Disabled %i debugging sources."
+msgstr ""
+
+#. TRANSLATORS: couldn't open device to write
+#: ../contrib/device-rebind/pk-device-rebind.c:61
+#, fuzzy
+msgid "Failed to open file"
+msgstr "ไม่สามารถหาเวลาล่าสุด"
+
+#. TRANSLATORS: could not write to the device
+#: ../contrib/device-rebind/pk-device-rebind.c:70
+#, fuzzy
+msgid "Failed to write to the file"
+msgstr "ไม่สามารถหาเวลาล่าสุด"
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:110
+#: ../contrib/device-rebind/pk-device-rebind.c:147
+#, fuzzy
+msgid "Failed to write to device"
+msgstr "ไม่สามารถหาเวลาล่าสุด"
+
+#. TRANSLATORS: the device could not be found in sysfs
+#: ../contrib/device-rebind/pk-device-rebind.c:175
+msgid "Device could not be found"
+msgstr ""
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:202
+#, fuzzy
+msgid "Failed to unregister driver"
+msgstr "ไม่สามารถหาเวลาล่าสุด"
+
+#. TRANSLATORS: we failed to bind the old driver
+#: ../contrib/device-rebind/pk-device-rebind.c:211
+#, fuzzy
+msgid "Failed to register driver"
+msgstr "ไม่สามารถหาเวลาล่าสุด"
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:260
+msgid "Device path not found"
+msgstr ""
 
-#: ../src/pk-main.c:83
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:268
+msgid "Incorrect device path specified"
+msgstr ""
+
+#. command line argument, simulate what would be done, but don't actually do it
+#: ../contrib/device-rebind/pk-device-rebind.c:296
+msgid "Don't actually touch the hardware, only simulate what would be done"
+msgstr ""
+
+#. TRANSLATORS: command line option: a list of files to install
+#: ../contrib/device-rebind/pk-device-rebind.c:299
+msgid "Device paths"
+msgstr ""
+
+#. TRANSLATORS: tool that gets called when the device needs reloading after installing firmware
+#: ../contrib/device-rebind/pk-device-rebind.c:314
+#, fuzzy
+msgid "PackageKit Device Reloader"
+msgstr "บริการ PackageKit"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:322
+#, fuzzy
+msgid "You need to specify at least one valid device path"
+msgstr "คุณต้องระบุชนิดการค้นหา"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:332
+msgid "This script can only be used by the root user"
+msgstr ""
+
+#. TRANSLATORS: we're going to verify the path first
+#: ../contrib/device-rebind/pk-device-rebind.c:341
+msgid "Verifying device path"
+msgstr ""
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:346
+msgid "Failed to verify device path"
+msgstr ""
+
+#. TRANSLATORS: we're going to try
+#: ../contrib/device-rebind/pk-device-rebind.c:360
+msgid "Attempting to rebind device"
+msgstr ""
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:365
+#, fuzzy
+msgid "Failed to rebind device"
+msgstr "ไม่สามารถหาเวลาล่าสุด"
+
+#: ../data/packagekit-catalog.xml.in.h:1
+#, fuzzy
+msgid "PackageKit Catalog"
+msgstr "โปรแกรมเฝ้าสังเกต PackageKit"
+
+#: ../data/packagekit-package-list.xml.in.h:1
+#, fuzzy
+msgid "PackageKit Package List"
+msgstr "โปรแกรมเฝ้าสังเกต PackageKit"
+
+#: ../data/packagekit-servicepack.xml.in.h:1
+#, fuzzy
+msgid "PackageKit Service Pack"
+msgstr "บริการ PackageKit"
+
+#. SECURITY:
+#. - Normal users do not require admin authentication to accept new
+#. licence agreements.
+#. - Change this to 'auth_admin' for environments where users should not
+#. be given the option to make legal decisions.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:7
+msgid "Accept EULA"
+msgstr "ยอมรับข้อตกลงสัญญาอนุญาต"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:8
+msgid "Authentication is required to accept a EULA"
+msgstr "ต้องยึนยันตัวเพื่อยอมรับข้อตกลงสัญญาอนุญาต"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:9
+#, fuzzy
+msgid ""
+"Authentication is required to cancel a task that was not started by yourself"
+msgstr "ต้องยึนยันตัวเพื่อเปลี่ยนแปลงพารามิเตอร์คลังซอฟต์แวร์"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:10
+msgid "Authentication is required to change software source parameters"
+msgstr "ต้องยึนยันตัวเพื่อเปลี่ยนแปลงพารามิเตอร์คลังซอฟต์แวร์"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:11
+#, fuzzy
+msgid ""
+"Authentication is required to consider a key used for signing packages as "
+"trusted"
+msgstr "ต้องยึนยันตัวเพื่อเรียกรายการแพคเกจใหม่"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:12
+#, fuzzy
+msgid "Authentication is required to install a signed package"
+msgstr "ต้องยึนยันตัวเพื่อติดตั้งแพคเกจ"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:13
+#, fuzzy
+msgid "Authentication is required to install an untrusted package"
+msgstr "ต้องยึนยันตัวเพื่อติดตั้งแพคเกจ"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:14
+#, fuzzy
+msgid "Authentication is required to refresh the system sources"
+msgstr "ต้องยึนยันตัวเพื่อเรียกรายการแพคเกจใหม่"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:15
+#, fuzzy
+msgid "Authentication is required to reload the device with a new driver"
+msgstr "ต้องยึนยันตัวเพื่อเรียกรายการแพคเกจใหม่"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:16
+msgid "Authentication is required to remove packages"
+msgstr "ต้องยึนยันตัวเพื่อถอดแพคเกจ"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:17
+msgid "Authentication is required to rollback a transaction"
+msgstr "ต้องยึนยันตัวเพื่อยกเลิกการดำเนินการ"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:18
+#, fuzzy
+msgid ""
+"Authentication is required to set the network proxy used for downloading "
+"packages"
+msgstr "ต้องยึนยันตัวเพื่อถอดแพคเกจ"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:19
+msgid "Authentication is required to update packages"
+msgstr "ต้องยึนยันตัวเพื่ออัปเดตแพคเกจ"
+
+#. SECURITY:
+#. - Normal users are allowed to cancel their own task without
+#. authentication, but a different user id needs the admin password
+#. to cancel another users task.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:25
+msgid "Cancel foreign task"
+msgstr ""
+
+#. SECURITY:
+#. - Normal users require admin authentication to enable or disable
+#. software sources as this can be used to enable new updates or
+#. install different versions of software.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:31
+msgid "Change software source parameters"
+msgstr "เปลี่ยนแปลงพารามิเตอร์คลังซอฟต์แวร์"
+
+#. SECURITY:
+#. - Normal users do not need authentication to install signed packages
+#. from signed repositories, as this cannot exploit a system.
+#. - Paranoid users (or parents!) can change this to 'auth_admin' or
+#. 'auth_admin_keep'.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:38
+#, fuzzy
+msgid "Install signed package"
+msgstr "ติดตั้งแพคเกจ"
+
+#. SECURITY:
+#. - Normal users require admin authentication to install untrusted or
+#. unrecognised packages, as allowing users to do this without a
+#. password would be a massive security hole.
+#. - This is not retained as each package should be authenticated.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:45
+msgid "Install untrusted local file"
+msgstr "ติดตั้งไฟล์ที่ไม่น่าเชื่อถือบนเครื่อง"
+
+#. SECURITY:
+#. - Normal users do not require admin authentication to refresh the
+#. cache, as this doesn't actually install or remove software.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:50
+msgid "Refresh system sources"
+msgstr ""
+
+#. SECURITY:
+#. - Normal users require admin authentication to rebind a driver
+#. so that it works after we install firmware.
+#. - This should not be set to 'yes' as unprivileged users could then
+#. try to rebind drivers in use, for instance security authentication
+#. devices.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:58
+msgid "Reload a device"
+msgstr ""
+
+#. SECURITY:
+#. - Normal users require admin authentication to remove packages as
+#. this can make the system unbootable or stop other applications from
+#. working.
+#. - Be sure to close the tool used to remove the packages after the
+#. admin authentication has been obtained, otherwise packages can still
+#. be removed. If this is not possible, change this authentication to
+#. 'auth_admin'.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:68
+msgid "Remove package"
+msgstr "ถอดแพคเกจ"
+
+#. SECURITY:
+#. - Normal users require admin authentication to rollback system state
+#. as this will change a large number of packages, and could expose the
+#. system to previously patched security vulnerabilities.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:74
+msgid "Rollback to a previous transaction"
+msgstr "ถอยกลับไปยังการดำเนินการก่อนหน้า"
+
+#. SECURITY:
+#. - Normal users do not require admin authentication to set the proxy
+#. used for downloading packages.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:79
+msgid "Set network proxy"
+msgstr ""
+
+#. SECURITY:
+#. - Normal users require admin authentication to add signing keys.
+#. - This implies adding an explicit trust, and should not be granted
+#. without a secure authentication.
+#. - This is not kept as each package should be authenticated.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:86
+msgid "Trust a key used for signing packages"
+msgstr ""
+
+#. SECURITY:
+#. - Normal users do not require admin authentication to update the
+#. system as the packages will be signed, and the action is required
+#. to update the system when unattended.
+#. - Changing this to anything other than 'yes' will break unattended
+#. updates.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:94
+#, fuzzy
+msgid "Update packages"
+msgstr "อัปเดตแพคเกจ"
+
+#. TRANSLATORS: failed due to DBus security
+#: ../src/pk-main.c:87
 msgid "Startup failed due to security policies on this machine."
 msgstr "การเริ่มโปรแกรมไม่สำเร็จเนื่องจากนโยบายด้านความปลอดภัยบนเครื่องนี้"
 
-#: ../src/pk-main.c:84
+#. TRANSLATORS: only two ways this can fail...
+#: ../src/pk-main.c:89
 msgid "This can happen for two reasons:"
 msgstr "นี่อาจจะเกิดจากสองสาเหตุ:"
 
 # งงกับที่เค้าเขียนมาเหมือนกันครับ
-#: ../src/pk-main.c:85
+#. TRANSLATORS: only allowed to be owned by root
+#: ../src/pk-main.c:91
 msgid "The correct user is not launching the executable (usually root)"
 msgstr "ผู้ใช้ที่ถูกต้องไม่ได้เรียกโปรแกรม (ปกติคือ root)"
 
-#: ../src/pk-main.c:86
+#. TRANSLATORS: or we are installed in a prefix
+#: ../src/pk-main.c:93
+#, fuzzy
 msgid ""
-"The org.freedesktop.PackageKit.conf file is not installed in the system /etc/"
-"dbus-1/system.d directory"
+"The org.freedesktop.PackageKit.conf file is not installed in the system "
+"directory:"
 msgstr ""
-"ไฟล์ org.freedesktop.PackageKit.conf file ไม่ได้ถูกติดตั้งในไดเรคทอรี "
-"/etc/dbus-1/system.d"
+"ไฟล์ org.freedesktop.PackageKit.conf file ไม่ได้ถูกติดตั้งในไดเรคทอรี /etc/dbus-1/"
+"system.d"
 
-#: ../src/pk-main.c:185
+#. TRANSLATORS: a backend is the system package tool, e.g. yum, apt
+#: ../src/pk-main.c:205
 msgid "Packaging backend to use, e.g. dummy"
 msgstr "แบ็คเอนด์ตัวจัดการแพคเกจที่จะใช้ เช่น dummy"
 
-#: ../src/pk-main.c:187
+#. TRANSLATORS: if we should run in the background
+#: ../src/pk-main.c:208
 msgid "Daemonize and detach from the terminal"
 msgstr "เปลี่ยนเป็นดีมอนและแยกตัวออกจากเทอร์มินัล"
 
-#: ../src/pk-main.c:191
+#. TRANSLATORS: if we should not monitor how long we are inactive for
+#: ../src/pk-main.c:214
 msgid "Disable the idle timer"
 msgstr "ปิดไทเมอร์ที่ไม่ใช้งาน"
 
-#: ../src/pk-main.c:193
+#. TRANSLATORS: show version
+#: ../src/pk-main.c:217
 msgid "Show version and exit"
 msgstr "แสดงรุ่นแล้วออก"
 
-#: ../src/pk-main.c:195
+#. TRANSLATORS: exit after we've started up, used for user profiling
+#: ../src/pk-main.c:220
 msgid "Exit after a small delay"
 msgstr "ออกหลังจากหน่วงเวลาเล็กน้อย"
 
-#: ../src/pk-main.c:197
+#. TRANSLATORS: exit straight away, used for automatic profiling
+#: ../src/pk-main.c:223
 msgid "Exit after the engine has loaded"
 msgstr "ออกหลังจาก engine ถูกเรียกแล้ว"
 
-#: ../src/pk-main.c:207
+#. TRANSLATORS: describing the service that is running
+#: ../src/pk-main.c:238
 msgid "PackageKit service"
 msgstr "บริการ PackageKit"
 
-#: ../src/pk-main.c:233
+#. TRANSLATORS: fatal error, dbus is not running
+#: ../src/pk-main.c:275
 msgid "Cannot connect to the system bus"
 msgstr "ไม่สามารถติดต่อกับบัสระบบ"
 
-#: ../src/pk-main.c:273
-#, c-format
+#. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error follows
+#: ../src/pk-main.c:334
 msgid "Error trying to start:"
 msgstr "เกิดข้อผิดพลาดขณะจะเริ่ม:"
+
+#: ../src/pk-polkit-action-lookup.c:147
+msgid "To install debugging packages, extra sources need to be enabled"
+msgstr ""
+
+#. TRANSLATORS: is not GPG signed
+#: ../src/pk-polkit-action-lookup.c:168 ../src/pk-polkit-action-lookup.c:187
+msgid "The software is not from a trusted source."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:173
+msgid "Do not update this package unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:174
+msgid "Do not update these packages unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:192
+msgid "Do not install this package unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:193
+msgid "Do not install these packages unless you are sure it is safe to do so."
+msgstr ""
+
+#. TRANSLATORS: warn the user that all bets are off
+#: ../src/pk-polkit-action-lookup.c:199
+msgid "Malicious software can damage your computer or cause other harm."
+msgstr ""
+
+#. TRANSLATORS: too many packages to list each one
+#: ../src/pk-polkit-action-lookup.c:274
+#, fuzzy
+msgid "Many packages"
+msgstr "อัปเดตแพคเกจ"
+
+#. TRANSLATORS: if the transaction is forced to install only trusted packages
+#: ../src/pk-polkit-action-lookup.c:334
+msgid "Only trusted"
+msgstr ""
+
+#~ msgid "Authentication is required to install a local file"
+#~ msgstr "ต้องยึนยันตัวเพื่อติดตั้งไฟล์บนเครื่อง"
+
+#~ msgid "Authentication is required to install a security signature"
+#~ msgstr "ต้องยึนยันตัวเพื่อติดตั้งลายเซ็นรับรองความปลอดภัย"
+
+#~ msgid "Authentication is required to update all packages"
+#~ msgstr "ต้องยึนยันตัวเพื่ออัปเดตแพคเกจทั้งหมด"
+
+#~ msgid ""
+#~ "Further authentication is required to install an untrusted local file"
+#~ msgstr "ต้องยึนยันตัวเพื่อติดตั้งไฟล์ที่ไม่น่าเชื่อถือบนเครื่อง"
+
+#~ msgid "Install local file"
+#~ msgstr "ติดตั้งแพคเกจบนเครื่อง"
+
+#~ msgid "Update all packages"
+#~ msgstr "อัปเดตแพคเกจทั้งหมด"
+
+#~ msgid "Could not find a package with that name to remove"
+#~ msgstr "ไม่สามารถค้นหาแพคเกจดังกล่าวเพื่อถอดถอน"
+
+#~ msgid "Cancelled!"
+#~ msgstr "ถูกยกเลิก!"
+
+#~ msgid "Could not find a package with that name to update"
+#~ msgstr "ไม่สามารถค้นหาแพคเกจชื่อดังกล่าวเพื่ออัปเดต"
+
+#~ msgid "Could not find what packages require this package"
+#~ msgstr "ไม่สามารถค้นหาแพคเกจที่ต้องการแพคเกจนี้"
+
+#~ msgid "Okay to import key?"
+#~ msgstr "ต้องการนำเข้ากุญแจ?"
+
+#~ msgid "Did not import key"
+#~ msgstr "ไม่ได้นำเข้ากุญแจ"
+
+#~ msgid "Did not agree to licence, task will fail"
+#~ msgstr "ไม่ยอมรับข้อตกลงสัญญาอนุญาต งานที่ทำจะล้มเหลว"
+
+#~ msgid "You need to specify a search term"
+#~ msgstr "คุณต้องระบุคำค้นหา"
+
+#~ msgid "You need to specify a package to remove"
+#~ msgstr "คุณต้องระบุแพคเกจที่จะถอดถอน"
+
+#~ msgid "You need to specify a eula-id"
+#~ msgstr "คุณต้องระบุ eula-id"
+
+#, fuzzy
+#~ msgid "You need to specify a package name to resolve"
+#~ msgstr "คุณต้องระบุชื่อแพคเกจที่จะแยกแยะ"
+
+#~ msgid "You need to specify a repo name"
+#~ msgstr "คุณต้องระบุชื่อคลัง"
+
+#, fuzzy
+#~ msgid "You need to specify a time term"
+#~ msgstr "คุณต้องระบุระยะเวลา"
+
+#~ msgid "You need to specify a correct role"
+#~ msgstr "คุณต้องระบุหน้าที่ที่ถูกต้อง"
+
+#~ msgid "You need to specify a package to find the details for"
+#~ msgstr "คุณต้องระบุแพคเกจที่จะค้นหารายละเอียด"
+
+#~ msgid "You need to specify a package to find the files for"
+#~ msgstr "คุณต้องระบุแพคเกจที่จะค้นหาไฟล์"
+
+#~ msgid "You probably need to run this program as the root user"
+#~ msgstr "คุณอาจจะต้องรันโปรแกรมนี้เป็นผู้ใช้รูท"
diff --git a/po/tr.po b/po/tr.po
index 25f232a..a218d6f 100644
--- a/po/tr.po
+++ b/po/tr.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: packagekit\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-01-15 16:57+0000\n"
+"POT-Creation-Date: 2009-08-24 11:06+0100\n"
 "PO-Revision-Date: 2008-10-27 15:39+0200\n"
 "Last-Translator: S.Çağlar Onur <caglar at pardus.org.tr>\n"
 "Language-Team: <tr at li.org>\n"
@@ -16,825 +16,1243 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 
 #. TRANSLATORS: this is an atomic transaction
-#: ../client/pk-console.c:230
+#: ../client/pk-console.c:235
 msgid "Transaction"
 msgstr ""
 
 #. TRANSLATORS: this is the time the transaction was started in system timezone
-#: ../client/pk-console.c:232
+#: ../client/pk-console.c:237
 msgid "System time"
 msgstr ""
 
 #. TRANSLATORS: this is if the transaction succeeded or not
-#: ../client/pk-console.c:234
+#: ../client/pk-console.c:239
 msgid "Succeeded"
 msgstr ""
 
 #. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:234 ../client/pk-console.c:377
+#: ../client/pk-console.c:239 ../client/pk-console.c:406
 msgid "True"
 msgstr ""
 
-#: ../client/pk-console.c:234 ../client/pk-console.c:377
+#: ../client/pk-console.c:239 ../client/pk-console.c:406
 msgid "False"
 msgstr ""
 
 #. TRANSLATORS: this is the transactions role, e.g. "update-system"
-#: ../client/pk-console.c:236
+#. TRANSLATORS: the trasaction role, e.g. update-system
+#: ../client/pk-console.c:241 ../src/pk-polkit-action-lookup.c:327
 msgid "Role"
 msgstr ""
 
 #. TRANSLATORS: this is The duration of the transaction
-#: ../client/pk-console.c:241
+#: ../client/pk-console.c:246
 msgid "Duration"
 msgstr ""
 
-#: ../client/pk-console.c:241
+#: ../client/pk-console.c:246
 msgid "(seconds)"
 msgstr ""
 
 #. TRANSLATORS: this is The command line used to do the action
-#: ../client/pk-console.c:245
+#. TRANSLATORS: the command line of the thing that wants the authentication
+#: ../client/pk-console.c:250 ../src/pk-polkit-action-lookup.c:341
 msgid "Command line"
 msgstr ""
 
 #. TRANSLATORS: this is the user ID of the user that started the action
-#: ../client/pk-console.c:247
+#: ../client/pk-console.c:252
 msgid "User ID"
 msgstr ""
 
 #. TRANSLATORS: this is the username, e.g. hughsie
-#: ../client/pk-console.c:254
+#: ../client/pk-console.c:259
 msgid "Username"
 msgstr ""
 
 #. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
-#: ../client/pk-console.c:258
+#: ../client/pk-console.c:263
 msgid "Real name"
 msgstr ""
 
-#: ../client/pk-console.c:266
+#: ../client/pk-console.c:271
 msgid "Affected packages:"
 msgstr ""
 
-#: ../client/pk-console.c:268
+#: ../client/pk-console.c:273
 msgid "Affected packages: None"
 msgstr ""
 
 #. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:293
+#: ../client/pk-console.c:298
 msgid "Distribution"
 msgstr ""
 
 #. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:295
+#: ../client/pk-console.c:300
 msgid "Type"
 msgstr ""
 
 #. TRANSLATORS: this is any summary text describing the upgrade
 #. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:297 ../client/pk-console.c:319
+#: ../client/pk-console.c:302 ../client/pk-console.c:325
 msgid "Summary"
 msgstr ""
 
 #. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:309
+#: ../client/pk-console.c:314
 msgid "Category"
 msgstr ""
 
 #. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:311
+#: ../client/pk-console.c:316
 msgid "ID"
 msgstr ""
 
 #. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:314
+#: ../client/pk-console.c:319
 msgid "Parent"
 msgstr ""
 
-#: ../client/pk-console.c:316
+#. TRANSLATORS: this is the name of the parent group
+#: ../client/pk-console.c:322
 msgid "Name"
 msgstr ""
 
 #. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:322
+#: ../client/pk-console.c:328
 msgid "Icon"
 msgstr ""
 
 #. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:337
+#: ../client/pk-console.c:343
 msgid "Details about the update:"
 msgstr "Paket hakkındaki detaylar:"
 
-#: ../client/pk-console.c:338
+#. TRANSLATORS: details about the update, package name and version
+#. TRANSLATORS: title, the names of the packages that the method is processing
+#: ../client/pk-console.c:345 ../src/pk-polkit-action-lookup.c:352
 #, fuzzy
 msgid "Package"
-msgstr "Paket dosyaları"
+msgid_plural "Packages"
+msgstr[0] "Paket dosyaları"
+msgstr[1] "Paket dosyaları"
 
-#: ../client/pk-console.c:340
+#. TRANSLATORS: details about the update, any packages that this update updates
+#: ../client/pk-console.c:348
 msgid "Updates"
 msgstr ""
 
-#: ../client/pk-console.c:342
+#. TRANSLATORS: details about the update, any packages that this update obsoletes
+#: ../client/pk-console.c:352
 msgid "Obsoletes"
 msgstr ""
 
-#: ../client/pk-console.c:344
+#. TRANSLATORS: details about the update, the vendor URLs
+#: ../client/pk-console.c:356
 msgid "Vendor"
 msgstr ""
 
-#: ../client/pk-console.c:346
+#. TRANSLATORS: details about the update, the bugzilla URLs
+#: ../client/pk-console.c:360
 msgid "Bugzilla"
 msgstr ""
 
-#: ../client/pk-console.c:348
+#. TRANSLATORS: details about the update, the CVE URLs
+#: ../client/pk-console.c:364
 msgid "CVE"
 msgstr ""
 
-#: ../client/pk-console.c:350
+#. TRANSLATORS: details about the update, if the package requires a restart
+#: ../client/pk-console.c:368
 msgid "Restart"
 msgstr ""
 
-#: ../client/pk-console.c:352
+#. TRANSLATORS: details about the update, any description of the update
+#: ../client/pk-console.c:372
 msgid "Update text"
 msgstr ""
 
-#: ../client/pk-console.c:354
+#. TRANSLATORS: details about the update, the changelog for the package
+#: ../client/pk-console.c:376
 msgid "Changes"
 msgstr ""
 
-#: ../client/pk-console.c:356
+#. TRANSLATORS: details about the update, the ongoing state of the update
+#: ../client/pk-console.c:380
 msgid "State"
 msgstr ""
 
-#: ../client/pk-console.c:359
+#. TRANSLATORS: details about the update, date the update was issued
+#: ../client/pk-console.c:385
 msgid "Issued"
 msgstr ""
 
-#: ../client/pk-console.c:362
+#. TRANSLATORS: details about the update, date the update was updated
+#: ../client/pk-console.c:390
 msgid "Updated"
 msgstr ""
 
-#: ../client/pk-console.c:448 ../client/pk-console.c:450
+#: ../client/pk-console.c:477 ../client/pk-console.c:479
 msgid "Percentage"
 msgstr ""
 
-#: ../client/pk-console.c:450
+#: ../client/pk-console.c:479
 msgid "Unknown"
 msgstr ""
 
 #. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:501
+#: ../client/pk-console.c:521
 msgid "System restart required by:"
 msgstr ""
 
 #. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:504
+#: ../client/pk-console.c:524
 #, fuzzy
 msgid "Session restart required:"
 msgstr "Depo imzası gerekiyor"
 
+#. TRANSLATORS: a package requires the system to be restarted due to a security update
+#: ../client/pk-console.c:527
+#, fuzzy
+msgid "System restart (security) required by:"
+msgstr "Depo imzası gerekiyor"
+
+#. TRANSLATORS: a package requires the session to be restarted due to a security update
+#: ../client/pk-console.c:530
+#, fuzzy
+msgid "Session restart (security) required:"
+msgstr "Depo imzası gerekiyor"
+
 #. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:507
+#: ../client/pk-console.c:533
 msgid "Application restart required by:"
 msgstr ""
 
-#: ../client/pk-console.c:543
+#. TRANSLATORS: a package needs to restart their system
+#: ../client/pk-console.c:588
 msgid "Please restart the computer to complete the update."
 msgstr ""
 "Lütfen güncelleme işlemini tamamlamak için bilgisayarınızı yeniden başlatın."
 
-#: ../client/pk-console.c:545
+#. TRANSLATORS: a package needs to restart the session
+#: ../client/pk-console.c:591
 msgid "Please logout and login to complete the update."
 msgstr ""
 "Lütfen güncelleme işlemini tamamlamak için oturumu kapatıp yeniden giriş "
 "yapın."
 
-#: ../client/pk-console.c:547
+#. TRANSLATORS: a package needs to restart the application
+#: ../client/pk-console.c:594
 msgid "Please restart the application as it is being used."
 msgstr "Lütfen uygulamayı şu an kullanıldığı için yeniden başlatın."
 
+#. TRANSLATORS: a package needs to restart their system (due to security)
+#: ../client/pk-console.c:597
+#, fuzzy
+msgid ""
+"Please restart the computer to complete the update as important security "
+"updates have been installed."
+msgstr ""
+"Lütfen güncelleme işlemini tamamlamak için bilgisayarınızı yeniden başlatın."
+
+#. TRANSLATORS: a package needs to restart the session (due to security)
+#: ../client/pk-console.c:600
+#, fuzzy
+msgid ""
+"Please logout and login to complete the update as important security updates "
+"have been installed."
+msgstr ""
+"Lütfen güncelleme işlemini tamamlamak için oturumu kapatıp yeniden giriş "
+"yapın."
+
 #. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:659
+#: ../client/pk-console.c:727
 #, fuzzy, c-format
 msgid "The package %s is already installed"
 msgstr "'%s' paketi zaten kurulu"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:667
+#: ../client/pk-console.c:735
 #, fuzzy, c-format
 msgid "The package %s could not be installed: %s"
 msgstr "'%s' paketi kurulamıyor:"
 
 #. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
-#: ../client/pk-console.c:692 ../client/pk-console.c:719
-#: ../client/pk-console.c:815 ../client/pk-console.c:932
-#: ../client/pk-tools-common.c:61 ../client/pk-tools-common.c:79
-#: ../client/pk-tools-common.c:86
+#: ../client/pk-console.c:760 ../client/pk-console.c:783
+#: ../client/pk-console.c:879 ../client/pk-console.c:996
+#: ../client/pk-tools-common.c:62 ../client/pk-tools-common.c:81
+#: ../client/pk-tools-common.c:89
 #, c-format
 msgid "Internal error: %s"
 msgstr ""
 
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:700 ../client/pk-console.c:1327
+#: ../client/pk-console.c:768 ../client/pk-console.c:1392
 #, c-format
 msgid "This tool could not install the packages: %s"
 msgstr ""
 
 #. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:727
+#: ../client/pk-console.c:791
 #, c-format
 msgid "This tool could not install the files: %s"
 msgstr ""
 
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:783
+#: ../client/pk-console.c:847
 #, c-format
 msgid "This tool could not remove %s: %s"
 msgstr ""
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:806 ../client/pk-console.c:844
-#: ../client/pk-console.c:877
+#: ../client/pk-console.c:870 ../client/pk-console.c:908
+#: ../client/pk-console.c:941
 #, c-format
 msgid "This tool could not remove the packages: %s"
 msgstr ""
 
 #. TRANSLATORS: When removing, we might have to remove other dependencies
-#: ../client/pk-console.c:856
+#: ../client/pk-console.c:920
 msgid "The following packages have to be removed:"
 msgstr ""
 
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:863
+#: ../client/pk-console.c:927
 msgid "Proceed removing additional packages?"
 msgstr ""
 
 #. TRANSLATORS: We did not remove any packages
-#: ../client/pk-console.c:868
+#: ../client/pk-console.c:932
 msgid "The package removal was canceled!"
 msgstr ""
 
 #. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:909
+#: ../client/pk-console.c:973
 #, c-format
 msgid "This tool could not download the package %s as it could not be found"
 msgstr ""
 
 #. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:940
+#: ../client/pk-console.c:1004
 #, c-format
 msgid "This tool could not download the packages: %s"
 msgstr ""
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:967 ../client/pk-console.c:976
+#: ../client/pk-console.c:1031 ../client/pk-console.c:1040
 #, c-format
 msgid "This tool could not update %s: %s"
 msgstr ""
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:998 ../client/pk-console.c:1006
+#: ../client/pk-console.c:1062 ../client/pk-console.c:1070
 #, c-format
 msgid "This tool could not get the requirements for %s: %s"
 msgstr ""
 
 #. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:1028 ../client/pk-console.c:1036
+#: ../client/pk-console.c:1092 ../client/pk-console.c:1100
 #, c-format
 msgid "This tool could not get the dependencies for %s: %s"
 msgstr ""
 
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:1058 ../client/pk-console.c:1066
+#: ../client/pk-console.c:1122 ../client/pk-console.c:1130
 #, c-format
 msgid "This tool could not get package details for %s: %s"
 msgstr ""
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1088
+#: ../client/pk-console.c:1152
 #, c-format
 msgid "This tool could not find the files for %s: %s"
 msgstr ""
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1096
+#: ../client/pk-console.c:1160
 #, c-format
 msgid "This tool could not get the file list for %s: %s"
 msgstr ""
 
 #. TRANSLATORS: There was an error getting the list of packages. The filename follows
-#: ../client/pk-console.c:1118
+#: ../client/pk-console.c:1182
 #, c-format
 msgid "File already exists: %s"
 msgstr ""
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1123 ../client/pk-console.c:1179
-#: ../client/pk-console.c:1254
+#: ../client/pk-console.c:1187 ../client/pk-console.c:1243
+#: ../client/pk-console.c:1318
 msgid "Getting package list"
 msgstr ""
 
 #. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1129 ../client/pk-console.c:1185
-#: ../client/pk-console.c:1260
+#: ../client/pk-console.c:1193 ../client/pk-console.c:1249
+#: ../client/pk-console.c:1324
 #, c-format
 msgid "This tool could not get package list: %s"
 msgstr ""
 
 #. TRANSLATORS: There was an error saving the list
-#: ../client/pk-console.c:1140
+#: ../client/pk-console.c:1204
 #, c-format
 msgid "Failed to save to disk"
 msgstr ""
 
 #. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1174 ../client/pk-console.c:1249
+#: ../client/pk-console.c:1238 ../client/pk-console.c:1313
 #, c-format
 msgid "File does not exist: %s"
 msgstr ""
 
 #. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1206
+#: ../client/pk-console.c:1270
 msgid "Packages to add"
 msgstr ""
 
 #. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1214
+#: ../client/pk-console.c:1278
 #, fuzzy
 msgid "Packages to remove"
 msgstr "PackageKit servisi"
 
 #. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1282
+#: ../client/pk-console.c:1346
 #, fuzzy, c-format
 msgid "No new packages need to be installed"
 msgstr "'%s' paketi kurulamıyor:"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1288
+#: ../client/pk-console.c:1352
 msgid "To install"
 msgstr ""
 
 #. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1299
+#: ../client/pk-console.c:1364
 msgid "Searching for package: "
 msgstr ""
 
 #. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1303
+#: ../client/pk-console.c:1368
 msgid "not found."
 msgstr ""
 
 #. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1314
+#: ../client/pk-console.c:1379
 #, fuzzy, c-format
 msgid "No packages can be found to install"
 msgstr "'%s' paketi kurulamıyor:"
 
 #. TRANSLATORS: installing new packages from package list
-#: ../client/pk-console.c:1320
+#. TRANSLATORS: we are now installing the debuginfo packages we found earlier
+#: ../client/pk-console.c:1385
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:886
+#, c-format
 msgid "Installing packages"
 msgstr ""
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1356
+#: ../client/pk-console.c:1421
 #, c-format
 msgid "This tool could not find the update details for %s: %s"
 msgstr ""
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1364
+#: ../client/pk-console.c:1429
 #, c-format
 msgid "This tool could not get the update details for %s: %s"
 msgstr ""
 
 #. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
-#: ../client/pk-console.c:1410
+#: ../client/pk-console.c:1460
 msgid "Error:"
 msgstr "Hata:"
 
 #. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1424
+#: ../client/pk-console.c:1474
 msgid "Package description"
 msgstr "Paket tanımı"
 
+#. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
+#: ../client/pk-console.c:1490
+msgid "Message:"
+msgstr ""
+
 #. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1458
+#: ../client/pk-console.c:1518
 msgid "Package files"
 msgstr "Paket dosyaları"
 
 #. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1466
+#: ../client/pk-console.c:1526
 msgid "No files"
 msgstr "Dosya yok"
 
 #. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1489
+#: ../client/pk-console.c:1549
 msgid "Repository signature required"
 msgstr "Depo imzası gerekiyor"
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1499
+#: ../client/pk-console.c:1559
 msgid "Do you accept this signature?"
 msgstr "İmzayı kabul ediyor musunuz?"
 
 #. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1503
+#: ../client/pk-console.c:1563
 msgid "The signature was not accepted."
 msgstr "Ä°mza kabul edilmedi."
 
 #. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1537
+#: ../client/pk-console.c:1597
 msgid "End user license agreement required"
 msgstr "Son kullanıcı lisans antlaşması gerekiyor"
 
 #. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1544
+#: ../client/pk-console.c:1604
 msgid "Do you agree to this license?"
 msgstr "Lisansı kabul ediyor musunuz?"
 
 #. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1548
+#: ../client/pk-console.c:1608
 msgid "The license was refused."
 msgstr "Lisans red edildi."
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1577
+#: ../client/pk-console.c:1637
 msgid "The daemon crashed mid-transaction!"
 msgstr ""
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1630
+#: ../client/pk-console.c:1690
 msgid "PackageKit Console Interface"
 msgstr "PackageKit Konsol Arayüzü"
 
-#: ../client/pk-console.c:1630
+#. these are commands we can use with pkcon
+#: ../client/pk-console.c:1692
 msgid "Subcommands:"
 msgstr ""
 
-#: ../client/pk-console.c:1719 ../client/pk-generate-pack.c:184
-#: ../client/pk-monitor.c:115
-#: ../contrib/command-not-found/pk-command-not-found.c:510
-#: ../src/pk-main.c:192
+#. TRANSLATORS: command line argument, if we should show debugging information
+#. TRANSLATORS: if we should show debugging data
+#: ../client/pk-console.c:1785 ../client/pk-generate-pack.c:185
+#: ../client/pk-monitor.c:128
+#: ../contrib/command-not-found/pk-command-not-found.c:616
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:550
+#: ../contrib/device-rebind/pk-device-rebind.c:293 ../src/pk-main.c:211
 msgid "Show extra debugging information"
 msgstr "Ek hata ayıklama bilgisini göster"
 
-#: ../client/pk-console.c:1721 ../client/pk-monitor.c:117
+#. TRANSLATORS: command line argument, just show the version string
+#: ../client/pk-console.c:1788 ../client/pk-monitor.c:130
 msgid "Show the program version and exit"
 msgstr "Uygulama versiyonunu göster ve çık"
 
-#: ../client/pk-console.c:1723
+#. TRANSLATORS: command line argument, use a filter to narrow down results
+#: ../client/pk-console.c:1791
 msgid "Set the filter, e.g. installed"
 msgstr ""
 
-#: ../client/pk-console.c:1725
+#. TRANSLATORS: command line argument, work asynchronously
+#: ../client/pk-console.c:1794
 msgid "Exit without waiting for actions to complete"
 msgstr "İşlemlerin bitmesini beklemeden çık"
 
 #. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:1752
+#: ../client/pk-console.c:1821
 msgid "This tool could not connect to system DBUS."
 msgstr ""
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1839
+#: ../client/pk-console.c:1911
 msgid "The filter specified was invalid"
 msgstr ""
 
-#: ../client/pk-console.c:1856
-msgid "You need to specify a search type, e.g. name"
+#. TRANSLATORS: a search type can be name, details, file, etc
+#: ../client/pk-console.c:1930
+msgid "A search type is required, e.g. name"
 msgstr ""
 
-#: ../client/pk-console.c:1861 ../client/pk-console.c:1868
-#: ../client/pk-console.c:1875 ../client/pk-console.c:1882
-#: ../client/pk-console.c:1990 ../client/pk-console.c:2000
-#: ../client/pk-console.c:2007 ../client/pk-console.c:2014
-msgid "You need to specify a search term"
+#. TRANSLATORS: the user needs to provide a search term
+#: ../client/pk-console.c:1937 ../client/pk-console.c:1946
+#: ../client/pk-console.c:1955 ../client/pk-console.c:1964
+msgid "A search term is required"
 msgstr ""
 
-#: ../client/pk-console.c:1887
+#. TRANSLATORS: the search type was provided, but invalid
+#: ../client/pk-console.c:1971
 msgid "Invalid search type"
 msgstr ""
 
-#: ../client/pk-console.c:1892
-msgid "You need to specify a package or file to install"
+#. TRANSLATORS: the user did not specify what they wanted to install
+#: ../client/pk-console.c:1977
+msgid "A package name or filename to install is required"
 msgstr ""
 
-#: ../client/pk-console.c:1899
-msgid "You need to specify a type, key_id and package_id"
+#. TRANSLATORS: geeky error, 99.9999% of users won't see this
+#: ../client/pk-console.c:1986
+msgid "A type, key_id and package_id are required"
 msgstr ""
 
-#: ../client/pk-console.c:1906
-msgid "You need to specify a package to remove"
+#. TRANSLATORS: the user did not specify what they wanted to remove
+#: ../client/pk-console.c:1995
+msgid "A package name to remove is required"
 msgstr ""
 
-#: ../client/pk-console.c:1912
-msgid ""
-"You need to specify the destination directory and then the packages to "
-"download"
+#. TRANSLATORS: the user did not specify anything about what to download or where
+#: ../client/pk-console.c:2003
+msgid "A destination directory and the package names to download are required"
 msgstr ""
 
-#: ../client/pk-console.c:1917
+#. TRANSLATORS: the directory does not exist, so we can't continue
+#: ../client/pk-console.c:2010
 msgid "Directory not found"
 msgstr ""
 
-#: ../client/pk-console.c:1923
-msgid "You need to specify a licence identifier (eula-id)"
+#. TRANSLATORS: geeky error, 99.9999% of users won't see this
+#: ../client/pk-console.c:2018
+msgid "A licence identifier (eula-id) is required"
 msgstr ""
 
-#: ../client/pk-console.c:1939
-msgid "You need to specify a package name to resolve"
+#. TRANSLATORS: geeky error, 99.9999% of users won't see this
+#: ../client/pk-console.c:2028
+msgid "A transaction identifier (tid) is required"
 msgstr ""
 
-#: ../client/pk-console.c:1946 ../client/pk-console.c:1953
-msgid "You need to specify a repository name"
+#. TRANSLATORS: The user did not specify a package name
+#: ../client/pk-console.c:2045
+msgid "A package name to resolve is required"
 msgstr ""
 
-#: ../client/pk-console.c:1960
-msgid "You need to specify a repo name/parameter and value"
+#. TRANSLATORS: The user did not specify a repository (software source) name
+#: ../client/pk-console.c:2054 ../client/pk-console.c:2063
+#, fuzzy
+msgid "A repository name is required"
+msgstr "Depo imzası gerekiyor"
+
+#. TRANSLATORS: The user didn't provide any data
+#: ../client/pk-console.c:2072
+msgid "A repo name, parameter and value are required"
 msgstr ""
 
-#: ../client/pk-console.c:1972
-msgid "You need to specify an action, e.g. 'update-system'"
+#. TRANSLATORS: The user didn't specify what action to use
+#: ../client/pk-console.c:2086
+msgid "An action, e.g. 'update-system' is required"
 msgstr ""
 
-#: ../client/pk-console.c:1977
-msgid "You need to specify a correct role"
+#. TRANSLATORS: The user specified an invalid action
+#: ../client/pk-console.c:2093
+msgid "A correct role is required"
 msgstr ""
 
-#: ../client/pk-console.c:1982
-msgid "Failed to get last time"
+#. TRANSLATORS: we keep a database updated with the time that an action was last executed
+#: ../client/pk-console.c:2100
+msgid "Failed to get the time since this action was last completed"
 msgstr ""
 
-#: ../client/pk-console.c:2021
-msgid "You need to specify a package to find the details for"
+#. TRANSLATORS: The user did not provide a package name
+#. TRANSLATORS: This is when the user fails to supply the package name
+#: ../client/pk-console.c:2110 ../client/pk-console.c:2122
+#: ../client/pk-console.c:2131 ../client/pk-console.c:2149
+#: ../client/pk-console.c:2158 ../client/pk-generate-pack.c:241
+msgid "A package name is required"
 msgstr ""
 
-#: ../client/pk-console.c:2028
-msgid "You need to specify a package to find the files for"
+#. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
+#: ../client/pk-console.c:2140
+msgid "A package provide string is required"
 msgstr ""
 
-#: ../client/pk-console.c:2035
-msgid "You need to specify a list file to create"
+#. TRANSLATORS: The user didn't specify a filename to create as a list
+#: ../client/pk-console.c:2167
+msgid "A list file name to create is required"
 msgstr ""
 
-#: ../client/pk-console.c:2043 ../client/pk-console.c:2051
-msgid "You need to specify a list file to open"
+#. TRANSLATORS: The user didn't specify a filename to open as a list
+#: ../client/pk-console.c:2177 ../client/pk-console.c:2187
+msgid "A list file to open is required"
 msgstr ""
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2104
+#: ../client/pk-console.c:2241
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr ""
 
 #. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2117
-msgid "You don't have the necessary privileges for this operation"
+#: ../client/pk-console.c:2254
+msgid "Incorrect privileges for this operation"
 msgstr ""
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2120
+#: ../client/pk-console.c:2257
 msgid "Command failed"
 msgstr ""
 
 #. TRANSLATORS: This is the state of the transaction
-#: ../client/pk-generate-pack.c:100
+#: ../client/pk-generate-pack.c:101
 msgid "Downloading"
 msgstr ""
 
 #. TRANSLATORS: This is when the main packages are being downloaded
-#: ../client/pk-generate-pack.c:120
+#: ../client/pk-generate-pack.c:121
 msgid "Downloading packages"
 msgstr ""
 
 #. TRANSLATORS: This is when the dependency packages are being downloaded
-#: ../client/pk-generate-pack.c:125
+#: ../client/pk-generate-pack.c:126
 msgid "Downloading dependencies"
 msgstr ""
 
-#: ../client/pk-generate-pack.c:186
+#. TRANSLATORS: we can exclude certain packages (glibc) when we know they'll exist on the target
+#: ../client/pk-generate-pack.c:188
 msgid "Set the file name of dependencies to be excluded"
 msgstr ""
 
-#: ../client/pk-generate-pack.c:188
-msgid "The output directory (the current directory is used if ommitted)"
+#. TRANSLATORS: the output location
+#: ../client/pk-generate-pack.c:191
+msgid ""
+"The output file or directory (the current directory is used if ommitted)"
 msgstr ""
 
-#: ../client/pk-generate-pack.c:190
+#. TRANSLATORS: put a list of packages in the pack
+#: ../client/pk-generate-pack.c:194
 msgid "The package to be put into the service pack"
 msgstr ""
 
-#: ../client/pk-generate-pack.c:192
+#. TRANSLATORS: put all pending updates in the pack
+#: ../client/pk-generate-pack.c:197
 msgid "Put all updates available in the service pack"
 msgstr ""
 
 #. TRANSLATORS: This is when the user fails to supply the correct arguments
-#: ../client/pk-generate-pack.c:220
+#: ../client/pk-generate-pack.c:225
 msgid "Neither --package or --updates option selected."
 msgstr ""
 
 #. TRANSLATORS: This is when the user fails to supply just one argument
-#: ../client/pk-generate-pack.c:228
+#: ../client/pk-generate-pack.c:233
 msgid "Both options selected."
 msgstr ""
 
+#. TRANSLATORS: This is when the user fails to supply the output
+#: ../client/pk-generate-pack.c:249
+msgid "A output directory or file name is required"
+msgstr ""
+
+#. TRANSLATORS: This is when the backend doesn't have the capability to get-depends
+#. TRANSLATORS: This is when the backend doesn't have the capability to download
+#: ../client/pk-generate-pack.c:267 ../client/pk-generate-pack.c:273
+msgid "The package manager cannot perform this type of operation."
+msgstr ""
+
+#. TRANSLATORS: This is when the distro didn't include libarchive support into PK
+#: ../client/pk-generate-pack.c:280
+msgid ""
+"Service packs cannot be created as PackageKit was not built with libarchive "
+"support."
+msgstr ""
+
+#. TRANSLATORS: the user specified an absolute path, but didn't get the extension correct
+#: ../client/pk-generate-pack.c:291
+msgid "If specifying a file, the service pack name must end with"
+msgstr ""
+
 #. TRANSLATORS: This is when file already exists
-#: ../client/pk-generate-pack.c:261
+#: ../client/pk-generate-pack.c:307
 msgid "A pack with the same name already exists, do you want to overwrite it?"
 msgstr ""
 
 #. TRANSLATORS: This is when the pack was not overwritten
-#: ../client/pk-generate-pack.c:264
+#: ../client/pk-generate-pack.c:310
 msgid "The pack was not overwritten."
 msgstr ""
 
 #. TRANSLATORS: This is when the temporary directory cannot be created, the directory name follows
-#: ../client/pk-generate-pack.c:276
+#: ../client/pk-generate-pack.c:323
 msgid "Failed to create directory:"
 msgstr ""
 
 #. TRANSLATORS: This is when the list of packages from the remote computer cannot be opened
-#: ../client/pk-generate-pack.c:285
+#: ../client/pk-generate-pack.c:333
 msgid "Failed to open package list."
 msgstr ""
 
 #. TRANSLATORS: The package name is being matched up to available packages
-#: ../client/pk-generate-pack.c:295
+#: ../client/pk-generate-pack.c:344
 msgid "Finding package name."
 msgstr ""
 
 #. TRANSLATORS: This is when the package cannot be found in any software source. The detailed error follows
-#: ../client/pk-generate-pack.c:299
+#: ../client/pk-generate-pack.c:348
 #, c-format
 msgid "Failed to find package '%s': %s"
 msgstr ""
 
 #. TRANSLATORS: This is telling the user we are in the process of making the pack
-#: ../client/pk-generate-pack.c:315
+#: ../client/pk-generate-pack.c:365
 msgid "Creating service pack..."
 msgstr ""
 
 #. TRANSLATORS: we succeeded in making the file
-#: ../client/pk-generate-pack.c:322
+#: ../client/pk-generate-pack.c:372
 #, c-format
 msgid "Service pack created '%s'"
 msgstr ""
 
 #. TRANSLATORS: we failed to make te file
-#: ../client/pk-generate-pack.c:326
+#: ../client/pk-generate-pack.c:377
 #, c-format
 msgid "Failed to create '%s': %s"
 msgstr ""
 
-#: ../client/pk-monitor.c:132
+#. TRANSLATORS: this is a program that monitors PackageKit
+#: ../client/pk-monitor.c:146
 msgid "PackageKit Monitor"
 msgstr ""
 
+#: ../client/pk-monitor.c:183
+msgid "Cannot show the list of transactions"
+msgstr ""
+
 #. TRANSLATORS: The package was not found in any software sources
-#: ../client/pk-tools-common.c:114
+#: ../client/pk-tools-common.c:118
 #, c-format
 msgid "The package could not be found"
 msgstr ""
 
 #. TRANSLATORS: more than one package could be found that matched, to follow is a list of possible packages
-#: ../client/pk-tools-common.c:125
+#: ../client/pk-tools-common.c:130
 msgid "More than one package matches:"
 msgstr ""
 
 #. TRANSLATORS: This finds out which package in the list to use
-#: ../client/pk-tools-common.c:132
+#: ../client/pk-tools-common.c:137
 msgid "Please choose the correct package: "
 msgstr ""
 
-#: ../client/pk-tools-common.c:157
+#: ../client/pk-tools-common.c:162
 #, c-format
 msgid "Please enter a number from 1 to %i: "
 msgstr ""
 
-#. TRANSLATORS: we failed to find the package, this shouldn't happen
+#. TRANSLATORS: when we are getting data from the daemon
+#: ../contrib/browser-plugin/pk-plugin-install.c:466
+msgid "Getting package information..."
+msgstr ""
+
+#. TRANSLATORS: run an applicaiton
+#: ../contrib/browser-plugin/pk-plugin-install.c:472
+#, c-format
+msgid "Run %s"
+msgstr ""
+
+#. TRANSLATORS: show the installed version of a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:478
+msgid "Installed version"
+msgstr ""
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:486
+#, c-format
+msgid "Run version %s now"
+msgstr ""
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:492
+msgid "Run now"
+msgstr ""
+
+#. TRANSLATORS: update to a new version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:498
+#, c-format
+msgid "Update to version %s"
+msgstr ""
+
+#. TRANSLATORS: To install a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:504
+#, c-format
+msgid "Install %s now"
+msgstr ""
+
+#. TRANSLATORS: the version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:507
+msgid "Version"
+msgstr ""
+
+#. TRANSLATORS: noting found, so can't install
+#: ../contrib/browser-plugin/pk-plugin-install.c:512
+msgid "No packages found for your system"
+msgstr ""
+
+#. TRANSLATORS: package is being installed
+#: ../contrib/browser-plugin/pk-plugin-install.c:517
+msgid "Installing..."
+msgstr ""
+
+#. TRANSLATORS: downloading repo data so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:349
+msgid "Downloading details about the software sources."
+msgstr ""
+
+#. TRANSLATORS: downloading file lists so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:353
+msgid "Downloading filelists (this may take some time to complete)."
+msgstr ""
+
+#. TRANSLATORS: waiting for native lock
+#: ../contrib/command-not-found/pk-command-not-found.c:357
+msgid "Waiting for package manager lock."
+msgstr ""
+
+#. TRANSLATORS: loading package cache so we can search
 #: ../contrib/command-not-found/pk-command-not-found.c:361
+msgid "Loading list of packages."
+msgstr ""
+
+#. TRANSLATORS: we failed to find the package, this shouldn't happen
+#: ../contrib/command-not-found/pk-command-not-found.c:420
 msgid "Failed to search for file"
 msgstr ""
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:485
+#: ../contrib/command-not-found/pk-command-not-found.c:557
 msgid "Failed to launch:"
 msgstr ""
 
 #. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/command-not-found/pk-command-not-found.c:526
+#: ../contrib/command-not-found/pk-command-not-found.c:632
 #, fuzzy
 msgid "PackageKit Command Not Found"
 msgstr "PackageKit Konsol Arayüzü"
 
 #. TRANSLATORS: the prefix of all the output telling the user why it's not executing
-#: ../contrib/command-not-found/pk-command-not-found.c:548
+#: ../contrib/command-not-found/pk-command-not-found.c:658
 msgid "Command not found."
 msgstr ""
 
 #. TRANSLATORS: tell the user what we think the command is
-#: ../contrib/command-not-found/pk-command-not-found.c:555
+#: ../contrib/command-not-found/pk-command-not-found.c:665
 msgid "Similar command is:"
 msgstr ""
 
 #. TRANSLATORS: Ask the user if we should run the similar command
-#: ../contrib/command-not-found/pk-command-not-found.c:564
+#: ../contrib/command-not-found/pk-command-not-found.c:674
 msgid "Run similar command:"
 msgstr ""
 
 #. TRANSLATORS: show the user a list of commands that they could have meant
 #. TRANSLATORS: show the user a list of commands we could run
-#: ../contrib/command-not-found/pk-command-not-found.c:576
-#: ../contrib/command-not-found/pk-command-not-found.c:585
+#: ../contrib/command-not-found/pk-command-not-found.c:686
+#: ../contrib/command-not-found/pk-command-not-found.c:695
 msgid "Similar commands are:"
 msgstr ""
 
 #. TRANSLATORS: ask the user to choose a file to run
-#: ../contrib/command-not-found/pk-command-not-found.c:592
+#: ../contrib/command-not-found/pk-command-not-found.c:702
 msgid "Please choose a command to run"
 msgstr ""
 
 #. TRANSLATORS: tell the user what package provides the command
-#: ../contrib/command-not-found/pk-command-not-found.c:607
+#: ../contrib/command-not-found/pk-command-not-found.c:721
 msgid "The package providing this file is:"
 msgstr ""
 
 #. TRANSLATORS: as the user if we want to install a package to provide the command
-#: ../contrib/command-not-found/pk-command-not-found.c:612
+#: ../contrib/command-not-found/pk-command-not-found.c:726
 #, c-format
 msgid "Install package '%s' to provide command '%s'?"
 msgstr ""
 
 #. TRANSLATORS: Show the user a list of packages that provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:633
+#: ../contrib/command-not-found/pk-command-not-found.c:747
 msgid "Packages providing this file are:"
 msgstr ""
 
 #. TRANSLATORS: Show the user a list of packages that they can install to provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:642
+#: ../contrib/command-not-found/pk-command-not-found.c:756
 msgid "Suitable packages are:"
 msgstr ""
 
 #. get selection
 #. TRANSLATORS: ask the user to choose a file to install
-#: ../contrib/command-not-found/pk-command-not-found.c:650
+#: ../contrib/command-not-found/pk-command-not-found.c:764
 #, fuzzy
 msgid "Please choose a package to install"
 msgstr "'%s' paketi kurulamıyor:"
 
-#. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/src/contents.cpp:298
-msgid "Getting package information..."
+#. TRANSLATORS: we are starting to install the packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:187
+msgid "Starting install"
 msgstr ""
 
-#. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/src/contents.cpp:304
+#. TRANSLATORS: we couldn't find the package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:397
+#, fuzzy, c-format
+msgid "Failed to find the package %s, or already installed: %s"
+msgstr "'%s' paketi zaten kurulu"
+
+#. command line argument, simulate what would be done, but don't actually do it
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:553
+msgid ""
+"Don't actually install any packages, only simulate what would be installed"
+msgstr ""
+
+#. command line argument, do we skip packages that depend on the ones specified
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:556
+msgid "Do not install dependencies of the core packages"
+msgstr ""
+
+#. command line argument, do we operate quietly
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:559
+msgid "Do not display information or progress"
+msgstr ""
+
+#. TRANSLATORS: tool that gets called when the command is not found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:577
+#, fuzzy
+msgid "PackageKit Debuginfo Installer"
+msgstr "PackageKit Konsol Arayüzü"
+
+#. TRANSLATORS: the use needs to specify a list of package names on the command line
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:589
+#, fuzzy, c-format
+msgid "ERROR: Specify package names to install."
+msgstr "'%s' paketi kurulamıyor:"
+
+#. TRANSLATORS: we are getting the list of repositories
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:623
 #, c-format
-msgid "Run %s"
+msgid "Getting sources list"
 msgstr ""
 
-#. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/src/contents.cpp:310
-msgid "Installed version"
+#. TRANSLATORS: all completed 100%
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:641
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:681
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:716
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:800
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:844
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:911
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:955
+#, c-format
+msgid "OK."
 msgstr ""
 
-#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/src/contents.cpp:318
+#. TRANSLATORS: tell the user what we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:644
 #, c-format
-msgid "Run version %s now"
+msgid "Found %i enabled and %i disabled sources."
 msgstr ""
 
-#: ../contrib/browser-plugin/src/contents.cpp:324
-msgid "Run now"
+#. TRANSLATORS: we're finding repositories that match out pattern
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:651
+#, c-format
+msgid "Finding debugging sources"
 msgstr ""
 
-#. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/src/contents.cpp:330
+#. TRANSLATORS: tell the user what we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:684
 #, c-format
-msgid "Update to version %s"
+msgid "Found %i disabled debuginfo repos."
 msgstr ""
 
-#. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/src/contents.cpp:336
+#. TRANSLATORS: we're now enabling all the debug sources we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:691
 #, c-format
-msgid "Install %s now"
+msgid "Enabling debugging sources"
 msgstr ""
 
-#. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/src/contents.cpp:339
-msgid "Version"
+#. TRANSLATORS: operation was not successful
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:701
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:785
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:829
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:896
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:940
+msgid "FAILED."
 msgstr ""
 
-#. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/src/contents.cpp:344
-msgid "No packages found for your system"
+#. TRANSLATORS: tell the user how many we enabled
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:719
+#, c-format
+msgid "Enabled %i debugging sources."
 msgstr ""
 
-#. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/src/contents.cpp:349
-msgid "Installing..."
+#. TRANSLATORS: we're now finding packages that match in all the repos
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:726
+#, c-format
+msgid "Finding debugging packages"
+msgstr ""
+
+#. TRANSLATORS: we couldn't find the package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:738
+#, c-format
+msgid "Failed to find the package %s: %s"
+msgstr ""
+
+#. TRANSLATORS: we couldn't find the debuginfo package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:761
+#, c-format
+msgid "Failed to find the debuginfo package %s: %s"
+msgstr ""
+
+#. TRANSLATORS: no debuginfo packages could be found to be installed
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:789
+#, fuzzy, c-format
+msgid "Found no packages to install."
+msgstr "'%s' paketi kurulamıyor:"
+
+#. TRANSLATORS: tell the user we found some packages, and then list them
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:803
+#, c-format
+msgid "Found %i packages:"
+msgstr ""
+
+#. TRANSLATORS: tell the user we are searching for deps
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:819
+#, c-format
+msgid "Finding packages that depend on these packages"
+msgstr ""
+
+#. TRANSLATORS: could not install, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:832
+#, c-format
+msgid "Could not find dependant packages: %s"
+msgstr ""
+
+#. TRANSLATORS: tell the user we found some more packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:848
+#, c-format
+msgid "Found %i extra packages."
+msgstr ""
+
+#. TRANSLATORS: tell the user we found some more packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:852
+#, c-format
+msgid "No extra packages required."
+msgstr ""
+
+#. TRANSLATORS: tell the user we found some packages (and deps), and then list them
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:861
+#, fuzzy, c-format
+msgid "Found %i packages to install:"
+msgstr "'%s' paketi kurulamıyor:"
+
+#. TRANSLATORS: simulate mode is a testing mode where we quit before the action
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:874
+#, c-format
+msgid "Not installing packages in simulate mode"
+msgstr ""
+
+#. TRANSLATORS: could not install, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:899
+#, c-format
+msgid "Could not install packages: %s"
+msgstr ""
+
+#. TRANSLATORS: we are now disabling all debuginfo repos we previously enabled
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:931
+#, c-format
+msgid "Disabling sources previously enabled"
+msgstr ""
+
+#. TRANSLATORS: no debuginfo packages could be found to be installed, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:943
+#, c-format
+msgid "Could not disable the debugging sources: %s"
+msgstr ""
+
+#. TRANSLATORS: we disabled all the debugging repos that we enabled before
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:958
+#, c-format
+msgid "Disabled %i debugging sources."
+msgstr ""
+
+#. TRANSLATORS: couldn't open device to write
+#: ../contrib/device-rebind/pk-device-rebind.c:61
+msgid "Failed to open file"
+msgstr ""
+
+#. TRANSLATORS: could not write to the device
+#: ../contrib/device-rebind/pk-device-rebind.c:70
+msgid "Failed to write to the file"
+msgstr ""
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:110
+#: ../contrib/device-rebind/pk-device-rebind.c:147
+msgid "Failed to write to device"
+msgstr ""
+
+#. TRANSLATORS: the device could not be found in sysfs
+#: ../contrib/device-rebind/pk-device-rebind.c:175
+msgid "Device could not be found"
+msgstr ""
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:202
+msgid "Failed to unregister driver"
+msgstr ""
+
+#. TRANSLATORS: we failed to bind the old driver
+#: ../contrib/device-rebind/pk-device-rebind.c:211
+msgid "Failed to register driver"
+msgstr ""
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:260
+msgid "Device path not found"
+msgstr ""
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:268
+msgid "Incorrect device path specified"
+msgstr ""
+
+#. command line argument, simulate what would be done, but don't actually do it
+#: ../contrib/device-rebind/pk-device-rebind.c:296
+msgid "Don't actually touch the hardware, only simulate what would be done"
+msgstr ""
+
+#. TRANSLATORS: command line option: a list of files to install
+#: ../contrib/device-rebind/pk-device-rebind.c:299
+msgid "Device paths"
+msgstr ""
+
+#. TRANSLATORS: tool that gets called when the device needs reloading after installing firmware
+#: ../contrib/device-rebind/pk-device-rebind.c:314
+#, fuzzy
+msgid "PackageKit Device Reloader"
+msgstr "PackageKit servisi"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:322
+msgid "You need to specify at least one valid device path"
+msgstr ""
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:332
+msgid "This script can only be used by the root user"
+msgstr ""
+
+#. TRANSLATORS: we're going to verify the path first
+#: ../contrib/device-rebind/pk-device-rebind.c:341
+msgid "Verifying device path"
+msgstr ""
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:346
+msgid "Failed to verify device path"
+msgstr ""
+
+#. TRANSLATORS: we're going to try
+#: ../contrib/device-rebind/pk-device-rebind.c:360
+msgid "Attempting to rebind device"
+msgstr ""
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:365
+msgid "Failed to rebind device"
 msgstr ""
 
 #: ../data/packagekit-catalog.xml.in.h:1
@@ -849,150 +1267,282 @@ msgstr ""
 msgid "PackageKit Service Pack"
 msgstr ""
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:1
+#. SECURITY:
+#. - Normal users do not require admin authentication to accept new
+#. licence agreements.
+#. - Change this to 'auth_admin' for environments where users should not
+#. be given the option to make legal decisions.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:7
 msgid "Accept EULA"
 msgstr ""
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:2
+#: ../policy/org.freedesktop.packagekit.policy.in.h:8
 msgid "Authentication is required to accept a EULA"
 msgstr ""
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:3
+#: ../policy/org.freedesktop.packagekit.policy.in.h:9
 msgid ""
 "Authentication is required to cancel a task that was not started by yourself"
 msgstr ""
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:4
+#: ../policy/org.freedesktop.packagekit.policy.in.h:10
 msgid "Authentication is required to change software source parameters"
 msgstr ""
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:5
+#: ../policy/org.freedesktop.packagekit.policy.in.h:11
 msgid ""
 "Authentication is required to consider a key used for signing packages as "
 "trusted"
 msgstr ""
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:6
+#: ../policy/org.freedesktop.packagekit.policy.in.h:12
 msgid "Authentication is required to install a signed package"
 msgstr ""
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:7
+#: ../policy/org.freedesktop.packagekit.policy.in.h:13
 msgid "Authentication is required to install an untrusted package"
 msgstr ""
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:8
+#: ../policy/org.freedesktop.packagekit.policy.in.h:14
 msgid "Authentication is required to refresh the system sources"
 msgstr ""
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:9
+#: ../policy/org.freedesktop.packagekit.policy.in.h:15
+msgid "Authentication is required to reload the device with a new driver"
+msgstr ""
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:16
 msgid "Authentication is required to remove packages"
 msgstr ""
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:10
+#: ../policy/org.freedesktop.packagekit.policy.in.h:17
 msgid "Authentication is required to rollback a transaction"
 msgstr ""
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:11
+#: ../policy/org.freedesktop.packagekit.policy.in.h:18
 msgid ""
 "Authentication is required to set the network proxy used for downloading "
 "packages"
 msgstr ""
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:12
+#: ../policy/org.freedesktop.packagekit.policy.in.h:19
 msgid "Authentication is required to update packages"
 msgstr ""
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:13
+#. SECURITY:
+#. - Normal users are allowed to cancel their own task without
+#. authentication, but a different user id needs the admin password
+#. to cancel another users task.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:25
 msgid "Cancel foreign task"
 msgstr ""
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:14
+#. SECURITY:
+#. - Normal users require admin authentication to enable or disable
+#. software sources as this can be used to enable new updates or
+#. install different versions of software.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:31
 msgid "Change software source parameters"
 msgstr ""
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:15
+#. SECURITY:
+#. - Normal users do not need authentication to install signed packages
+#. from signed repositories, as this cannot exploit a system.
+#. - Paranoid users (or parents!) can change this to 'auth_admin' or
+#. 'auth_admin_keep'.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:38
 msgid "Install signed package"
 msgstr ""
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:16
+#. SECURITY:
+#. - Normal users require admin authentication to install untrusted or
+#. unrecognised packages, as allowing users to do this without a
+#. password would be a massive security hole.
+#. - This is not retained as each package should be authenticated.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:45
 msgid "Install untrusted local file"
 msgstr ""
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:17
+#. SECURITY:
+#. - Normal users do not require admin authentication to refresh the
+#. cache, as this doesn't actually install or remove software.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:50
 msgid "Refresh system sources"
 msgstr ""
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:18
+#. SECURITY:
+#. - Normal users require admin authentication to rebind a driver
+#. so that it works after we install firmware.
+#. - This should not be set to 'yes' as unprivileged users could then
+#. try to rebind drivers in use, for instance security authentication
+#. devices.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:58
+msgid "Reload a device"
+msgstr ""
+
+#. SECURITY:
+#. - Normal users require admin authentication to remove packages as
+#. this can make the system unbootable or stop other applications from
+#. working.
+#. - Be sure to close the tool used to remove the packages after the
+#. admin authentication has been obtained, otherwise packages can still
+#. be removed. If this is not possible, change this authentication to
+#. 'auth_admin'.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:68
 msgid "Remove package"
 msgstr ""
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:19
+#. SECURITY:
+#. - Normal users require admin authentication to rollback system state
+#. as this will change a large number of packages, and could expose the
+#. system to previously patched security vulnerabilities.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:74
 msgid "Rollback to a previous transaction"
 msgstr ""
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:20
+#. SECURITY:
+#. - Normal users do not require admin authentication to set the proxy
+#. used for downloading packages.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:79
 msgid "Set network proxy"
 msgstr ""
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:21
+#. SECURITY:
+#. - Normal users require admin authentication to add signing keys.
+#. - This implies adding an explicit trust, and should not be granted
+#. without a secure authentication.
+#. - This is not kept as each package should be authenticated.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:86
 msgid "Trust a key used for signing packages"
 msgstr ""
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:22
+#. SECURITY:
+#. - Normal users do not require admin authentication to update the
+#. system as the packages will be signed, and the action is required
+#. to update the system when unattended.
+#. - Changing this to anything other than 'yes' will break unattended
+#. updates.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:94
 msgid "Update packages"
 msgstr ""
 
-#: ../src/pk-main.c:86
+#. TRANSLATORS: failed due to DBus security
+#: ../src/pk-main.c:87
 msgid "Startup failed due to security policies on this machine."
 msgstr ""
 
-#: ../src/pk-main.c:87
+#. TRANSLATORS: only two ways this can fail...
+#: ../src/pk-main.c:89
 msgid "This can happen for two reasons:"
 msgstr ""
 
-#: ../src/pk-main.c:88
+#. TRANSLATORS: only allowed to be owned by root
+#: ../src/pk-main.c:91
 msgid "The correct user is not launching the executable (usually root)"
 msgstr ""
 
-#: ../src/pk-main.c:89
+#. TRANSLATORS: or we are installed in a prefix
+#: ../src/pk-main.c:93
 msgid ""
 "The org.freedesktop.PackageKit.conf file is not installed in the system "
 "directory:"
 msgstr ""
 
-#: ../src/pk-main.c:188
+#. TRANSLATORS: a backend is the system package tool, e.g. yum, apt
+#: ../src/pk-main.c:205
 msgid "Packaging backend to use, e.g. dummy"
 msgstr ""
 
-#: ../src/pk-main.c:190
+#. TRANSLATORS: if we should run in the background
+#: ../src/pk-main.c:208
 msgid "Daemonize and detach from the terminal"
 msgstr ""
 
-#: ../src/pk-main.c:194
+#. TRANSLATORS: if we should not monitor how long we are inactive for
+#: ../src/pk-main.c:214
 msgid "Disable the idle timer"
 msgstr ""
 
-#: ../src/pk-main.c:196
+#. TRANSLATORS: show version
+#: ../src/pk-main.c:217
 msgid "Show version and exit"
 msgstr ""
 
-#: ../src/pk-main.c:198
+#. TRANSLATORS: exit after we've started up, used for user profiling
+#: ../src/pk-main.c:220
 msgid "Exit after a small delay"
 msgstr ""
 
-#: ../src/pk-main.c:200
+#. TRANSLATORS: exit straight away, used for automatic profiling
+#: ../src/pk-main.c:223
 msgid "Exit after the engine has loaded"
 msgstr ""
 
-#: ../src/pk-main.c:214
+#. TRANSLATORS: describing the service that is running
+#: ../src/pk-main.c:238
 msgid "PackageKit service"
 msgstr "PackageKit servisi"
 
-#: ../src/pk-main.c:250
+#. TRANSLATORS: fatal error, dbus is not running
+#: ../src/pk-main.c:275
 msgid "Cannot connect to the system bus"
 msgstr ""
 
-#: ../src/pk-main.c:299
-#, c-format
+#. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error follows
+#: ../src/pk-main.c:334
 msgid "Error trying to start:"
 msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:147
+#, fuzzy
+msgid "To install debugging packages, extra sources need to be enabled"
+msgstr "'%s' paketi kurulamıyor:"
+
+#. TRANSLATORS: is not GPG signed
+#: ../src/pk-polkit-action-lookup.c:168 ../src/pk-polkit-action-lookup.c:187
+msgid "The software is not from a trusted source."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:173
+msgid "Do not update this package unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:174
+msgid "Do not update these packages unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:192
+msgid "Do not install this package unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:193
+msgid "Do not install these packages unless you are sure it is safe to do so."
+msgstr ""
+
+#. TRANSLATORS: warn the user that all bets are off
+#: ../src/pk-polkit-action-lookup.c:199
+msgid "Malicious software can damage your computer or cause other harm."
+msgstr ""
+
+#. TRANSLATORS: too many packages to list each one
+#: ../src/pk-polkit-action-lookup.c:274
+#, fuzzy
+msgid "Many packages"
+msgstr "Paket dosyaları"
+
+#. TRANSLATORS: if the transaction is forced to install only trusted packages
+#: ../src/pk-polkit-action-lookup.c:334
+msgid "Only trusted"
+msgstr ""
diff --git a/po/zh_CN.po b/po/zh_CN.po
index f975f51..5b63a18 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -12,7 +12,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: packagekit.master\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-03-31 08:08+0000\n"
+"POT-Creation-Date: 2009-08-24 11:06+0100\n"
 "PO-Revision-Date: 2009-04-01 21:53+1000\n"
 "Last-Translator: Leah Liu <lliu at redhat.com>\n"
 "Language-Team: Simplified Chinese <zh at li.org>\n"
@@ -22,230 +22,264 @@ msgstr ""
 "X-Generator: KBabel 1.11.4\n"
 
 #. TRANSLATORS: this is an atomic transaction
-#: ../client/pk-console.c:234
+#: ../client/pk-console.c:235
 msgid "Transaction"
 msgstr "处理"
 
 #. TRANSLATORS: this is the time the transaction was started in system timezone
-#: ../client/pk-console.c:236
+#: ../client/pk-console.c:237
 msgid "System time"
 msgstr "系统时间"
 
 #. TRANSLATORS: this is if the transaction succeeded or not
-#: ../client/pk-console.c:238
+#: ../client/pk-console.c:239
 msgid "Succeeded"
 msgstr "成功"
 
 #. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:238 ../client/pk-console.c:405
+#: ../client/pk-console.c:239 ../client/pk-console.c:406
 msgid "True"
 msgstr "是"
 
-#: ../client/pk-console.c:238 ../client/pk-console.c:405
+#: ../client/pk-console.c:239 ../client/pk-console.c:406
 msgid "False"
 msgstr "否"
 
 #. TRANSLATORS: this is the transactions role, e.g. "update-system"
-#: ../client/pk-console.c:240
+#. TRANSLATORS: the trasaction role, e.g. update-system
+#: ../client/pk-console.c:241 ../src/pk-polkit-action-lookup.c:327
 msgid "Role"
 msgstr "操作"
 
 #. TRANSLATORS: this is The duration of the transaction
-#: ../client/pk-console.c:245
+#: ../client/pk-console.c:246
 msgid "Duration"
 msgstr "持续时间"
 
-#: ../client/pk-console.c:245
+#: ../client/pk-console.c:246
 msgid "(seconds)"
 msgstr "秒"
 
 #. TRANSLATORS: this is The command line used to do the action
-#: ../client/pk-console.c:249
+#. TRANSLATORS: the command line of the thing that wants the authentication
+#: ../client/pk-console.c:250 ../src/pk-polkit-action-lookup.c:341
 msgid "Command line"
 msgstr "命令行"
 
 #. TRANSLATORS: this is the user ID of the user that started the action
-#: ../client/pk-console.c:251
+#: ../client/pk-console.c:252
 msgid "User ID"
 msgstr "用户ID"
 
 #. TRANSLATORS: this is the username, e.g. hughsie
-#: ../client/pk-console.c:258
+#: ../client/pk-console.c:259
 msgid "Username"
 msgstr "用户名"
 
 #. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
-#: ../client/pk-console.c:262
+#: ../client/pk-console.c:263
 msgid "Real name"
 msgstr "真实姓名"
 
-#: ../client/pk-console.c:270
+#: ../client/pk-console.c:271
 msgid "Affected packages:"
 msgstr "受影响的软件包"
 
-#: ../client/pk-console.c:272
+#: ../client/pk-console.c:273
 msgid "Affected packages: None"
 msgstr "受影响的软件包:无"
 
 #. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:297
+#: ../client/pk-console.c:298
 msgid "Distribution"
 msgstr "发布"
 
 #. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:299
+#: ../client/pk-console.c:300
 msgid "Type"
 msgstr "类型"
 
 #. TRANSLATORS: this is any summary text describing the upgrade
 #. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:301 ../client/pk-console.c:324
+#: ../client/pk-console.c:302 ../client/pk-console.c:325
 msgid "Summary"
 msgstr "摘要"
 
 #. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:313
+#: ../client/pk-console.c:314
 msgid "Category"
 msgstr "分类"
 
 #. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:315
+#: ../client/pk-console.c:316
 msgid "ID"
 msgstr "ID"
 
 #. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:318
+#: ../client/pk-console.c:319
 msgid "Parent"
 msgstr "上一级"
 
 #. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:321
+#: ../client/pk-console.c:322
 msgid "Name"
 msgstr "上一级组名"
 
 #. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:327
+#: ../client/pk-console.c:328
 msgid "Icon"
 msgstr "图标"
 
 #. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:342
+#: ../client/pk-console.c:343
 msgid "Details about the update:"
 msgstr "本次更新详情:"
 
 #. TRANSLATORS: details about the update, package name and version
-#: ../client/pk-console.c:344
+#. TRANSLATORS: title, the names of the packages that the method is processing
+#: ../client/pk-console.c:345 ../src/pk-polkit-action-lookup.c:352
+#, fuzzy
 msgid "Package"
-msgstr "软件包"
+msgid_plural "Packages"
+msgstr[0] "软件包"
+msgstr[1] "软件包"
 
 #. TRANSLATORS: details about the update, any packages that this update updates
-#: ../client/pk-console.c:347
+#: ../client/pk-console.c:348
 msgid "Updates"
 msgstr "æ›´æ–°"
 
 #. TRANSLATORS: details about the update, any packages that this update obsoletes
-#: ../client/pk-console.c:351
+#: ../client/pk-console.c:352
 msgid "Obsoletes"
 msgstr "过时"
 
 #. TRANSLATORS: details about the update, the vendor URLs
-#: ../client/pk-console.c:355
+#: ../client/pk-console.c:356
 msgid "Vendor"
 msgstr "厂商"
 
 #. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:359
+#: ../client/pk-console.c:360
 msgid "Bugzilla"
 msgstr "Bugzilla"
 
 #. TRANSLATORS: details about the update, the CVE URLs
-#: ../client/pk-console.c:363
+#: ../client/pk-console.c:364
 msgid "CVE"
 msgstr "CVE"
 
 #. TRANSLATORS: details about the update, if the package requires a restart
-#: ../client/pk-console.c:367
+#: ../client/pk-console.c:368
 msgid "Restart"
 msgstr "重启"
 
 #. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:371
+#: ../client/pk-console.c:372
 msgid "Update text"
 msgstr "更新文档"
 
 #. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:375
+#: ../client/pk-console.c:376
 msgid "Changes"
 msgstr "变化"
 
 #. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:379
+#: ../client/pk-console.c:380
 msgid "State"
 msgstr "状态"
 
 #. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:384
+#: ../client/pk-console.c:385
 msgid "Issued"
 msgstr "发布"
 
 #. TRANSLATORS: details about the update, date the update was updated
-#: ../client/pk-console.c:389
+#: ../client/pk-console.c:390
 msgid "Updated"
 msgstr "已更新"
 
-#: ../client/pk-console.c:476 ../client/pk-console.c:478
+#: ../client/pk-console.c:477 ../client/pk-console.c:479
 msgid "Percentage"
 msgstr "百分比"
 
-#: ../client/pk-console.c:478
+#: ../client/pk-console.c:479
 msgid "Unknown"
 msgstr "未知"
 
 #. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:529
+#: ../client/pk-console.c:521
 msgid "System restart required by:"
 msgstr "要求系统重启的软件包:"
 
 #. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:532
+#: ../client/pk-console.c:524
 msgid "Session restart required:"
 msgstr "要求会话重启的软件包:"
 
+#. TRANSLATORS: a package requires the system to be restarted due to a security update
+#: ../client/pk-console.c:527
+#, fuzzy
+msgid "System restart (security) required by:"
+msgstr "要求系统重启的软件包:"
+
+#. TRANSLATORS: a package requires the session to be restarted due to a security update
+#: ../client/pk-console.c:530
+#, fuzzy
+msgid "Session restart (security) required:"
+msgstr "要求会话重启的软件包:"
+
 #. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:535
+#: ../client/pk-console.c:533
 msgid "Application restart required by:"
 msgstr "要求应用程序重启的软件包:"
 
-#. TRANSLATORS: a package needs to restart they system
-#: ../client/pk-console.c:572
+#. TRANSLATORS: a package needs to restart their system
+#: ../client/pk-console.c:588
 msgid "Please restart the computer to complete the update."
 msgstr "请重新启动计算机以完成本次更新。"
 
 #. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:575
+#: ../client/pk-console.c:591
 msgid "Please logout and login to complete the update."
 msgstr "请登出并登录以完成本次更新。"
 
 #. TRANSLATORS: a package needs to restart the application
-#: ../client/pk-console.c:578
+#: ../client/pk-console.c:594
 msgid "Please restart the application as it is being used."
 msgstr "请重新启动正在使用中的程序。"
 
+#. TRANSLATORS: a package needs to restart their system (due to security)
+#: ../client/pk-console.c:597
+#, fuzzy
+msgid ""
+"Please restart the computer to complete the update as important security "
+"updates have been installed."
+msgstr "请重新启动计算机以完成本次更新。"
+
+#. TRANSLATORS: a package needs to restart the session (due to security)
+#: ../client/pk-console.c:600
+#, fuzzy
+msgid ""
+"Please logout and login to complete the update as important security updates "
+"have been installed."
+msgstr "请登出并登录以完成本次更新。"
+
 #. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:691
+#: ../client/pk-console.c:727
 #, c-format
 msgid "The package %s is already installed"
 msgstr "该软件包 '%s' 已经安装"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:699
+#: ../client/pk-console.c:735
 #, c-format
 msgid "The package %s could not be installed: %s"
 msgstr "该软件包 '%s' 无法安装:%s"
 
 #. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
-#: ../client/pk-console.c:724 ../client/pk-console.c:751
-#: ../client/pk-console.c:847 ../client/pk-console.c:964
+#: ../client/pk-console.c:760 ../client/pk-console.c:783
+#: ../client/pk-console.c:879 ../client/pk-console.c:996
 #: ../client/pk-tools-common.c:62 ../client/pk-tools-common.c:81
 #: ../client/pk-tools-common.c:89
 #, c-format
@@ -253,394 +287,404 @@ msgid "Internal error: %s"
 msgstr "内部错误:%s"
 
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:732 ../client/pk-console.c:1360
+#: ../client/pk-console.c:768 ../client/pk-console.c:1392
 #, c-format
 msgid "This tool could not install the packages: %s"
 msgstr "该工具无法安装本软件包:%s"
 
 #. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:759
+#: ../client/pk-console.c:791
 #, c-format
 msgid "This tool could not install the files: %s"
 msgstr "本工具无法安装文件:%s"
 
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:815
+#: ../client/pk-console.c:847
 #, c-format
 msgid "This tool could not remove %s: %s"
 msgstr "该工具无法删除 %s:%s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:838 ../client/pk-console.c:876
-#: ../client/pk-console.c:909
+#: ../client/pk-console.c:870 ../client/pk-console.c:908
+#: ../client/pk-console.c:941
 #, c-format
 msgid "This tool could not remove the packages: %s"
 msgstr "该工具无法删除本软件包:%s"
 
 #. TRANSLATORS: When removing, we might have to remove other dependencies
-#: ../client/pk-console.c:888
+#: ../client/pk-console.c:920
 msgid "The following packages have to be removed:"
 msgstr "下列软件包必须被删除:"
 
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:895
+#: ../client/pk-console.c:927
 msgid "Proceed removing additional packages?"
 msgstr "开始进行删除额外的软件包吗?"
 
 #. TRANSLATORS: We did not remove any packages
-#: ../client/pk-console.c:900
+#: ../client/pk-console.c:932
 msgid "The package removal was canceled!"
 msgstr "已取消删除本软件包!"
 
 #. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:941
+#: ../client/pk-console.c:973
 #, c-format
 msgid "This tool could not download the package %s as it could not be found"
 msgstr "本工具无法下载软件包 '%s' (无法找到)"
 
 #. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:972
+#: ../client/pk-console.c:1004
 #, c-format
 msgid "This tool could not download the packages: %s"
 msgstr "本工具无法下载该软件包:%s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:999 ../client/pk-console.c:1008
+#: ../client/pk-console.c:1031 ../client/pk-console.c:1040
 #, c-format
 msgid "This tool could not update %s: %s"
 msgstr "该工具无法更新 %s:%s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1030 ../client/pk-console.c:1038
+#: ../client/pk-console.c:1062 ../client/pk-console.c:1070
 #, c-format
 msgid "This tool could not get the requirements for %s: %s"
 msgstr "本工具无法得到 %s 的需求:%s "
 
 #. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:1060 ../client/pk-console.c:1068
+#: ../client/pk-console.c:1092 ../client/pk-console.c:1100
 #, c-format
 msgid "This tool could not get the dependencies for %s: %s"
 msgstr "本工具无法得到 %s 的依赖关系:%s"
 
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:1090 ../client/pk-console.c:1098
+#: ../client/pk-console.c:1122 ../client/pk-console.c:1130
 #, c-format
 msgid "This tool could not get package details for %s: %s"
 msgstr "该工具无法得到 %s 的软件包详情:%s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1120
+#: ../client/pk-console.c:1152
 #, c-format
 msgid "This tool could not find the files for %s: %s"
 msgstr "该工具无法找到 %s 的文件:%s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1128
+#: ../client/pk-console.c:1160
 #, c-format
 msgid "This tool could not get the file list for %s: %s"
 msgstr "该工具无法得到 %s 的文件清单:%s"
 
 #. TRANSLATORS: There was an error getting the list of packages. The filename follows
-#: ../client/pk-console.c:1150
+#: ../client/pk-console.c:1182
 #, c-format
 msgid "File already exists: %s"
 msgstr "文件已存在: %s"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1155 ../client/pk-console.c:1211
-#: ../client/pk-console.c:1286
+#: ../client/pk-console.c:1187 ../client/pk-console.c:1243
+#: ../client/pk-console.c:1318
 msgid "Getting package list"
 msgstr "正在获得软件包列表..."
 
 #. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1161 ../client/pk-console.c:1217
-#: ../client/pk-console.c:1292
+#: ../client/pk-console.c:1193 ../client/pk-console.c:1249
+#: ../client/pk-console.c:1324
 #, c-format
 msgid "This tool could not get package list: %s"
 msgstr "该工具无法得到软件表列表:%s"
 
 #. TRANSLATORS: There was an error saving the list
-#: ../client/pk-console.c:1172
+#: ../client/pk-console.c:1204
 #, c-format
 msgid "Failed to save to disk"
 msgstr "存盘失败"
 
 #. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1206 ../client/pk-console.c:1281
+#: ../client/pk-console.c:1238 ../client/pk-console.c:1313
 #, c-format
 msgid "File does not exist: %s"
 msgstr "文件不存在 : %s"
 
 #. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1238
+#: ../client/pk-console.c:1270
 msgid "Packages to add"
 msgstr "添加软件包"
 
 #. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1246
+#: ../client/pk-console.c:1278
 msgid "Packages to remove"
 msgstr "删除软件包"
 
 #. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1314
+#: ../client/pk-console.c:1346
 #, c-format
 msgid "No new packages need to be installed"
 msgstr "没有新的软件包安装"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1320
+#: ../client/pk-console.c:1352
 msgid "To install"
 msgstr "安装"
 
 #. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1332
+#: ../client/pk-console.c:1364
 msgid "Searching for package: "
 msgstr "搜索软件包: "
 
 #. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1336
+#: ../client/pk-console.c:1368
 msgid "not found."
 msgstr "没有找到"
 
 #. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1347
+#: ../client/pk-console.c:1379
 #, c-format
 msgid "No packages can be found to install"
 msgstr "找不到软件包安装"
 
 #. TRANSLATORS: installing new packages from package list
-#: ../client/pk-console.c:1353
+#. TRANSLATORS: we are now installing the debuginfo packages we found earlier
+#: ../client/pk-console.c:1385
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:886
+#, c-format
 msgid "Installing packages"
 msgstr "正在安装软件包..."
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1389
+#: ../client/pk-console.c:1421
 #, c-format
 msgid "This tool could not find the update details for %s: %s"
 msgstr "该工具无法找到 %s 的更新详情:%s"
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1397
+#: ../client/pk-console.c:1429
 #, c-format
 msgid "This tool could not get the update details for %s: %s"
 msgstr "该工具无法得到 %s 的更新详情:%s"
 
 #. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
-#: ../client/pk-console.c:1443
+#: ../client/pk-console.c:1460
 msgid "Error:"
 msgstr "错误:"
 
 #. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1457
+#: ../client/pk-console.c:1474
 msgid "Package description"
 msgstr "软件包描述"
 
+#. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
+#: ../client/pk-console.c:1490
+msgid "Message:"
+msgstr ""
+
 #. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1491
+#: ../client/pk-console.c:1518
 msgid "Package files"
 msgstr "软件包文件"
 
 #. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1499
+#: ../client/pk-console.c:1526
 msgid "No files"
 msgstr "没有文件"
 
 #. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1522
+#: ../client/pk-console.c:1549
 msgid "Repository signature required"
 msgstr "要求软件库签名"
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1532
+#: ../client/pk-console.c:1559
 msgid "Do you accept this signature?"
 msgstr "您接受该签名吗?"
 
 #. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1536
+#: ../client/pk-console.c:1563
 msgid "The signature was not accepted."
 msgstr "没有接受签名。"
 
 #. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1570
+#: ../client/pk-console.c:1597
 msgid "End user license agreement required"
 msgstr "需要最终用户许可协议"
 
 #. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1577
+#: ../client/pk-console.c:1604
 msgid "Do you agree to this license?"
 msgstr "您同意本许可吗?"
 
 #. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1581
+#: ../client/pk-console.c:1608
 msgid "The license was refused."
 msgstr "拒绝该许可。"
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1610
+#: ../client/pk-console.c:1637
 msgid "The daemon crashed mid-transaction!"
 msgstr "后台程序在事务处理中期崩溃!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1663
+#: ../client/pk-console.c:1690
 msgid "PackageKit Console Interface"
 msgstr "PackageKit 终端界面"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1665
+#: ../client/pk-console.c:1692
 msgid "Subcommands:"
 msgstr "子命令:"
 
 #. TRANSLATORS: command line argument, if we should show debugging information
 #. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:1757 ../client/pk-generate-pack.c:185
-#: ../client/pk-monitor.c:125
-#: ../contrib/command-not-found/pk-command-not-found.c:518
-#: ../src/pk-main.c:199
+#: ../client/pk-console.c:1785 ../client/pk-generate-pack.c:185
+#: ../client/pk-monitor.c:128
+#: ../contrib/command-not-found/pk-command-not-found.c:616
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:550
+#: ../contrib/device-rebind/pk-device-rebind.c:293 ../src/pk-main.c:211
 msgid "Show extra debugging information"
 msgstr "显示额外的调试信息"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1760 ../client/pk-monitor.c:127
+#: ../client/pk-console.c:1788 ../client/pk-monitor.c:130
 msgid "Show the program version and exit"
 msgstr "显示本程序版本并退出"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1763
+#: ../client/pk-console.c:1791
 msgid "Set the filter, e.g. installed"
 msgstr "设置过滤器,例如已安装的"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1766
+#: ../client/pk-console.c:1794
 msgid "Exit without waiting for actions to complete"
 msgstr "不等操作完成即退出"
 
 #. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:1793
+#: ../client/pk-console.c:1821
 msgid "This tool could not connect to system DBUS."
 msgstr "该工具无法连接到系统 DBUS。"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1880
+#: ../client/pk-console.c:1911
 msgid "The filter specified was invalid"
 msgstr "过滤器指定非法"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1898
+#: ../client/pk-console.c:1930
 msgid "A search type is required, e.g. name"
 msgstr "您需要指定搜索类型,如软件包名"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1904 ../client/pk-console.c:1912
-#: ../client/pk-console.c:1920 ../client/pk-console.c:1928
+#: ../client/pk-console.c:1937 ../client/pk-console.c:1946
+#: ../client/pk-console.c:1955 ../client/pk-console.c:1964
 msgid "A search term is required"
 msgstr "您需要指定搜索条件"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1934
+#: ../client/pk-console.c:1971
 msgid "Invalid search type"
 msgstr "无效的搜索类型"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1940
+#: ../client/pk-console.c:1977
 msgid "A package name or filename to install is required"
 msgstr "您需要为安装指定一个软件包名或文件名"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1948
+#: ../client/pk-console.c:1986
 msgid "A type, key_id and package_id are required"
 msgstr "需要指定某个类型,证书ID或者软件包ID"
 
 #. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:1956
+#: ../client/pk-console.c:1995
 msgid "A package name to remove is required"
 msgstr "您需要为卸载指定一个软件包名"
 
 #. TRANSLATORS: the user did not specify anything about what to download or where
-#: ../client/pk-console.c:1963
-msgid "A destination directory and then the package names to download are required"
+#: ../client/pk-console.c:2003
+#, fuzzy
+msgid "A destination directory and the package names to download are required"
 msgstr "需要指定目的地目录以及软件包名来下载"
 
 #. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:1969
+#: ../client/pk-console.c:2010
 msgid "Directory not found"
 msgstr "目录没有找到"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1976
+#: ../client/pk-console.c:2018
 msgid "A licence identifier (eula-id) is required"
 msgstr "需要指定某个许可证鉴别 (eula-id)"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1985
+#: ../client/pk-console.c:2028
 msgid "A transaction identifier (tid) is required"
 msgstr "需要交易标识符(tid)"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:2001
+#: ../client/pk-console.c:2045
 msgid "A package name to resolve is required"
 msgstr "您需要为解析指定一个软件包名"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:2009 ../client/pk-console.c:2017
+#: ../client/pk-console.c:2054 ../client/pk-console.c:2063
 msgid "A repository name is required"
 msgstr "要求软件库名"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2025
+#: ../client/pk-console.c:2072
 msgid "A repo name, parameter and value are required"
 msgstr "您需要指定某个软件库名字,参数或值"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:2038
+#: ../client/pk-console.c:2086
 msgid "An action, e.g. 'update-system' is required"
 msgstr "您需要指定某个行动,例如“更新系统”"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:2044
+#: ../client/pk-console.c:2093
 msgid "A correct role is required"
 msgstr "需要一个正确响应"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2050
+#: ../client/pk-console.c:2100
 msgid "Failed to get the time since this action was last completed"
 msgstr "未获得最后一次操作的时间"
 
 #. TRANSLATORS: The user did not provide a package name
 #. TRANSLATORS: This is when the user fails to supply the package name
-#: ../client/pk-console.c:2059 ../client/pk-console.c:2070
-#: ../client/pk-console.c:2078 ../client/pk-console.c:2094
-#: ../client/pk-console.c:2102 ../client/pk-generate-pack.c:241
+#: ../client/pk-console.c:2110 ../client/pk-console.c:2122
+#: ../client/pk-console.c:2131 ../client/pk-console.c:2149
+#: ../client/pk-console.c:2158 ../client/pk-generate-pack.c:241
 msgid "A package name is required"
 msgstr "需要软件包名"
 
 #. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:2086
+#: ../client/pk-console.c:2140
 msgid "A package provide string is required"
 msgstr "您需要指定特定参数"
 
 #. TRANSLATORS: The user didn't specify a filename to create as a list
-#: ../client/pk-console.c:2110
+#: ../client/pk-console.c:2167
 msgid "A list file name to create is required"
 msgstr "需要建立一个文件列表"
 
 #. TRANSLATORS: The user didn't specify a filename to open as a list
-#: ../client/pk-console.c:2119 ../client/pk-console.c:2128
+#: ../client/pk-console.c:2177 ../client/pk-console.c:2187
 msgid "A list file to open is required"
 msgstr "需要打开一个文件列表"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2181
+#: ../client/pk-console.c:2241
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "不支持 '%s' 选项"
 
 #. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2194
+#: ../client/pk-console.c:2254
 msgid "Incorrect privileges for this operation"
 msgstr "您没有本次操作需要的必要权限"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2197
+#: ../client/pk-console.c:2257
 msgid "Command failed"
 msgstr "命令失败"
 
@@ -666,7 +710,8 @@ msgstr "设置将被除外的依赖关系的文件名"
 
 #. TRANSLATORS: the output location
 #: ../client/pk-generate-pack.c:191
-msgid "The output file or directory (the current directory is used if ommitted)"
+msgid ""
+"The output file or directory (the current directory is used if ommitted)"
 msgstr "输出文件或目录(使用当前目录如忘记指定)"
 
 #. TRANSLATORS: put a list of packages in the pack
@@ -700,64 +745,75 @@ msgstr "您需要指定输出的目录名或文件名"
 msgid "The package manager cannot perform this type of operation."
 msgstr "软件包管理器不能处理当前类型的操作"
 
+#. TRANSLATORS: This is when the distro didn't include libarchive support into PK
+#: ../client/pk-generate-pack.c:280
+msgid ""
+"Service packs cannot be created as PackageKit was not built with libarchive "
+"support."
+msgstr ""
+
 #. TRANSLATORS: the user specified an absolute path, but didn't get the extension correct
-#: ../client/pk-generate-pack.c:285
+#: ../client/pk-generate-pack.c:291
 msgid "If specifying a file, the service pack name must end with"
 msgstr "如果指定一个文件,文件后缀名必须是"
 
 #. TRANSLATORS: This is when file already exists
-#: ../client/pk-generate-pack.c:301
+#: ../client/pk-generate-pack.c:307
 msgid "A pack with the same name already exists, do you want to overwrite it?"
 msgstr "已经有同名软件包存在,您想要覆盖它吗?"
 
 #. TRANSLATORS: This is when the pack was not overwritten
-#: ../client/pk-generate-pack.c:304
+#: ../client/pk-generate-pack.c:310
 msgid "The pack was not overwritten."
 msgstr "该软件包没有被覆盖"
 
 #. TRANSLATORS: This is when the temporary directory cannot be created, the directory name follows
-#: ../client/pk-generate-pack.c:317
+#: ../client/pk-generate-pack.c:323
 msgid "Failed to create directory:"
 msgstr "无法创建目录"
 
 #. TRANSLATORS: This is when the list of packages from the remote computer cannot be opened
-#: ../client/pk-generate-pack.c:327
+#: ../client/pk-generate-pack.c:333
 msgid "Failed to open package list."
 msgstr "无法打开软件包清单"
 
 #. TRANSLATORS: The package name is being matched up to available packages
-#: ../client/pk-generate-pack.c:338
+#: ../client/pk-generate-pack.c:344
 msgid "Finding package name."
 msgstr "正在寻找软件包名"
 
 #. TRANSLATORS: This is when the package cannot be found in any software source. The detailed error follows
-#: ../client/pk-generate-pack.c:342
+#: ../client/pk-generate-pack.c:348
 #, c-format
 msgid "Failed to find package '%s': %s"
 msgstr "无法找到软件包 '%s': %s"
 
 #. TRANSLATORS: This is telling the user we are in the process of making the pack
-#: ../client/pk-generate-pack.c:359
+#: ../client/pk-generate-pack.c:365
 msgid "Creating service pack..."
 msgstr "正在创建服务包..."
 
 #. TRANSLATORS: we succeeded in making the file
-#: ../client/pk-generate-pack.c:366
+#: ../client/pk-generate-pack.c:372
 #, c-format
 msgid "Service pack created '%s'"
 msgstr "服务包已创建 '%s'"
 
 #. TRANSLATORS: we failed to make te file
-#: ../client/pk-generate-pack.c:371
+#: ../client/pk-generate-pack.c:377
 #, c-format
 msgid "Failed to create '%s': %s"
 msgstr "无法创建 '%s': %s"
 
 #. TRANSLATORS: this is a program that monitors PackageKit
-#: ../client/pk-monitor.c:143
+#: ../client/pk-monitor.c:146
 msgid "PackageKit Monitor"
 msgstr "PackageKit 监视器"
 
+#: ../client/pk-monitor.c:183
+msgid "Cannot show the list of transactions"
+msgstr ""
+
 #. TRANSLATORS: The package was not found in any software sources
 #: ../client/pk-tools-common.c:118
 #, c-format
@@ -779,128 +835,433 @@ msgstr "请选择正确的软件包:"
 msgid "Please enter a number from 1 to %i: "
 msgstr "请输入从1到 %i 的数字:"
 
+#. TRANSLATORS: when we are getting data from the daemon
+#: ../contrib/browser-plugin/pk-plugin-install.c:466
+msgid "Getting package information..."
+msgstr "正在获得软件包信息..."
+
+#. TRANSLATORS: run an applicaiton
+#: ../contrib/browser-plugin/pk-plugin-install.c:472
+#, c-format
+msgid "Run %s"
+msgstr "运行 %s"
+
+#. TRANSLATORS: show the installed version of a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:478
+msgid "Installed version"
+msgstr "已安装版本"
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:486
+#, c-format
+msgid "Run version %s now"
+msgstr "现在运行版本 %s"
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:492
+msgid "Run now"
+msgstr "现在运行"
+
+#. TRANSLATORS: update to a new version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:498
+#, c-format
+msgid "Update to version %s"
+msgstr "更新到版本 %s"
+
+#. TRANSLATORS: To install a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:504
+#, c-format
+msgid "Install %s now"
+msgstr "现在安装 %s "
+
+#. TRANSLATORS: the version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:507
+msgid "Version"
+msgstr "版本"
+
+#. TRANSLATORS: noting found, so can't install
+#: ../contrib/browser-plugin/pk-plugin-install.c:512
+msgid "No packages found for your system"
+msgstr "没有为您系统发现软件包"
+
+#. TRANSLATORS: package is being installed
+#: ../contrib/browser-plugin/pk-plugin-install.c:517
+msgid "Installing..."
+msgstr "正在安装..."
+
+#. TRANSLATORS: downloading repo data so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:349
+msgid "Downloading details about the software sources."
+msgstr ""
+
+#. TRANSLATORS: downloading file lists so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:353
+msgid "Downloading filelists (this may take some time to complete)."
+msgstr ""
+
+#. TRANSLATORS: waiting for native lock
+#: ../contrib/command-not-found/pk-command-not-found.c:357
+#, fuzzy
+msgid "Waiting for package manager lock."
+msgstr "正在寻找软件包名"
+
+#. TRANSLATORS: loading package cache so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:361
+#, fuzzy
+msgid "Loading list of packages."
+msgstr "正在下载软件包"
+
 #. TRANSLATORS: we failed to find the package, this shouldn't happen
-#: ../contrib/command-not-found/pk-command-not-found.c:369
+#: ../contrib/command-not-found/pk-command-not-found.c:420
 msgid "Failed to search for file"
 msgstr "未找到该软件包"
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:493
+#: ../contrib/command-not-found/pk-command-not-found.c:557
 msgid "Failed to launch:"
 msgstr "无法执行"
 
 #. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/command-not-found/pk-command-not-found.c:534
+#: ../contrib/command-not-found/pk-command-not-found.c:632
 msgid "PackageKit Command Not Found"
 msgstr "PackageKit 命令没有找到"
 
 #. TRANSLATORS: the prefix of all the output telling the user why it's not executing
-#: ../contrib/command-not-found/pk-command-not-found.c:556
+#: ../contrib/command-not-found/pk-command-not-found.c:658
 msgid "Command not found."
 msgstr "命令未找到"
 
 #. TRANSLATORS: tell the user what we think the command is
-#: ../contrib/command-not-found/pk-command-not-found.c:563
+#: ../contrib/command-not-found/pk-command-not-found.c:665
 msgid "Similar command is:"
 msgstr "可能命令是:"
 
 #. TRANSLATORS: Ask the user if we should run the similar command
-#: ../contrib/command-not-found/pk-command-not-found.c:572
+#: ../contrib/command-not-found/pk-command-not-found.c:674
 msgid "Run similar command:"
 msgstr "执行可能的命令:"
 
 #. TRANSLATORS: show the user a list of commands that they could have meant
 #. TRANSLATORS: show the user a list of commands we could run
-#: ../contrib/command-not-found/pk-command-not-found.c:584
-#: ../contrib/command-not-found/pk-command-not-found.c:593
+#: ../contrib/command-not-found/pk-command-not-found.c:686
+#: ../contrib/command-not-found/pk-command-not-found.c:695
 msgid "Similar commands are:"
 msgstr "可能命令是:"
 
 #. TRANSLATORS: ask the user to choose a file to run
-#: ../contrib/command-not-found/pk-command-not-found.c:600
+#: ../contrib/command-not-found/pk-command-not-found.c:702
 msgid "Please choose a command to run"
 msgstr "请选择一条命令执行"
 
 #. TRANSLATORS: tell the user what package provides the command
-#: ../contrib/command-not-found/pk-command-not-found.c:615
+#: ../contrib/command-not-found/pk-command-not-found.c:721
 msgid "The package providing this file is:"
 msgstr "提供该命令的软件包是:"
 
 #. TRANSLATORS: as the user if we want to install a package to provide the command
-#: ../contrib/command-not-found/pk-command-not-found.c:620
+#: ../contrib/command-not-found/pk-command-not-found.c:726
 #, c-format
 msgid "Install package '%s' to provide command '%s'?"
 msgstr "安装包'%s' 提供命令 '%s'"
 
 #. TRANSLATORS: Show the user a list of packages that provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:641
+#: ../contrib/command-not-found/pk-command-not-found.c:747
 msgid "Packages providing this file are:"
 msgstr "提供该命令的软件包有:"
 
 #. TRANSLATORS: Show the user a list of packages that they can install to provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:650
+#: ../contrib/command-not-found/pk-command-not-found.c:756
 msgid "Suitable packages are:"
 msgstr "适合的软件包是:"
 
 #. get selection
 #. TRANSLATORS: ask the user to choose a file to install
-#: ../contrib/command-not-found/pk-command-not-found.c:658
+#: ../contrib/command-not-found/pk-command-not-found.c:764
 msgid "Please choose a package to install"
 msgstr "请选择要安装的某个软件包"
 
-#. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/src/contents.cpp:298
-msgid "Getting package information..."
-msgstr "正在获得软件包信息..."
+#. TRANSLATORS: we are starting to install the packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:187
+#, fuzzy
+msgid "Starting install"
+msgstr "安装"
 
-#. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/src/contents.cpp:304
+#. TRANSLATORS: we couldn't find the package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:397
+#, fuzzy, c-format
+msgid "Failed to find the package %s, or already installed: %s"
+msgstr "该软件包 '%s' 已经安装"
+
+#. command line argument, simulate what would be done, but don't actually do it
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:553
+msgid ""
+"Don't actually install any packages, only simulate what would be installed"
+msgstr ""
+
+#. command line argument, do we skip packages that depend on the ones specified
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:556
+msgid "Do not install dependencies of the core packages"
+msgstr ""
+
+#. command line argument, do we operate quietly
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:559
+msgid "Do not display information or progress"
+msgstr ""
+
+#. TRANSLATORS: tool that gets called when the command is not found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:577
+#, fuzzy
+msgid "PackageKit Debuginfo Installer"
+msgstr "PackageKit 终端界面"
+
+#. TRANSLATORS: the use needs to specify a list of package names on the command line
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:589
+#, fuzzy, c-format
+msgid "ERROR: Specify package names to install."
+msgstr "没有新的软件包安装"
+
+#. TRANSLATORS: we are getting the list of repositories
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:623
+#, fuzzy, c-format
+msgid "Getting sources list"
+msgstr "正在获得软件包列表..."
+
+#. TRANSLATORS: all completed 100%
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:641
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:681
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:716
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:800
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:844
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:911
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:955
 #, c-format
-msgid "Run %s"
-msgstr "运行 %s"
+msgid "OK."
+msgstr ""
 
-#. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/src/contents.cpp:310
-msgid "Installed version"
-msgstr "已安装版本"
+#. TRANSLATORS: tell the user what we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:644
+#, c-format
+msgid "Found %i enabled and %i disabled sources."
+msgstr ""
 
-#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/src/contents.cpp:318
+#. TRANSLATORS: we're finding repositories that match out pattern
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:651
 #, c-format
-msgid "Run version %s now"
-msgstr "现在运行版本 %s"
+msgid "Finding debugging sources"
+msgstr ""
 
-#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/src/contents.cpp:324
-msgid "Run now"
-msgstr "现在运行"
+#. TRANSLATORS: tell the user what we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:684
+#, c-format
+msgid "Found %i disabled debuginfo repos."
+msgstr ""
 
-#. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/src/contents.cpp:330
+#. TRANSLATORS: we're now enabling all the debug sources we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:691
 #, c-format
-msgid "Update to version %s"
-msgstr "更新到版本 %s"
+msgid "Enabling debugging sources"
+msgstr ""
 
-#. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/src/contents.cpp:336
+#. TRANSLATORS: operation was not successful
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:701
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:785
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:829
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:896
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:940
+msgid "FAILED."
+msgstr ""
+
+#. TRANSLATORS: tell the user how many we enabled
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:719
 #, c-format
-msgid "Install %s now"
-msgstr "现在安装 %s "
+msgid "Enabled %i debugging sources."
+msgstr ""
 
-#. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/src/contents.cpp:339
-msgid "Version"
-msgstr "版本"
+#. TRANSLATORS: we're now finding packages that match in all the repos
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:726
+#, fuzzy, c-format
+msgid "Finding debugging packages"
+msgstr "正在寻找软件包名"
 
-#. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/src/contents.cpp:344
-msgid "No packages found for your system"
-msgstr "没有为您系统发现软件包"
+#. TRANSLATORS: we couldn't find the package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:738
+#, fuzzy, c-format
+msgid "Failed to find the package %s: %s"
+msgstr "无法找到软件包 '%s': %s"
 
-#. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/src/contents.cpp:349
-msgid "Installing..."
-msgstr "正在安装..."
+#. TRANSLATORS: we couldn't find the debuginfo package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:761
+#, fuzzy, c-format
+msgid "Failed to find the debuginfo package %s: %s"
+msgstr "无法找到软件包 '%s': %s"
+
+#. TRANSLATORS: no debuginfo packages could be found to be installed
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:789
+#, fuzzy, c-format
+msgid "Found no packages to install."
+msgstr "没有新的软件包安装"
+
+#. TRANSLATORS: tell the user we found some packages, and then list them
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:803
+#, fuzzy, c-format
+msgid "Found %i packages:"
+msgstr "正在下载软件包"
+
+#. TRANSLATORS: tell the user we are searching for deps
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:819
+#, c-format
+msgid "Finding packages that depend on these packages"
+msgstr ""
+
+#. TRANSLATORS: could not install, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:832
+#, fuzzy, c-format
+msgid "Could not find dependant packages: %s"
+msgstr "无法找到软件包 '%s': %s"
+
+#. TRANSLATORS: tell the user we found some more packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:848
+#, c-format
+msgid "Found %i extra packages."
+msgstr ""
+
+#. TRANSLATORS: tell the user we found some more packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:852
+#, fuzzy, c-format
+msgid "No extra packages required."
+msgstr "需要软件包名"
+
+#. TRANSLATORS: tell the user we found some packages (and deps), and then list them
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:861
+#, fuzzy, c-format
+msgid "Found %i packages to install:"
+msgstr "没有新的软件包安装"
+
+#. TRANSLATORS: simulate mode is a testing mode where we quit before the action
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:874
+#, fuzzy, c-format
+msgid "Not installing packages in simulate mode"
+msgstr "正在安装软件包..."
+
+#. TRANSLATORS: could not install, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:899
+#, fuzzy, c-format
+msgid "Could not install packages: %s"
+msgstr "该工具无法安装本软件包:%s"
+
+#. TRANSLATORS: we are now disabling all debuginfo repos we previously enabled
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:931
+#, c-format
+msgid "Disabling sources previously enabled"
+msgstr ""
+
+#. TRANSLATORS: no debuginfo packages could be found to be installed, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:943
+#, c-format
+msgid "Could not disable the debugging sources: %s"
+msgstr ""
+
+#. TRANSLATORS: we disabled all the debugging repos that we enabled before
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:958
+#, c-format
+msgid "Disabled %i debugging sources."
+msgstr ""
+
+#. TRANSLATORS: couldn't open device to write
+#: ../contrib/device-rebind/pk-device-rebind.c:61
+#, fuzzy
+msgid "Failed to open file"
+msgstr "未找到该软件包"
+
+#. TRANSLATORS: could not write to the device
+#: ../contrib/device-rebind/pk-device-rebind.c:70
+#, fuzzy
+msgid "Failed to write to the file"
+msgstr "未找到该软件包"
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:110
+#: ../contrib/device-rebind/pk-device-rebind.c:147
+#, fuzzy
+msgid "Failed to write to device"
+msgstr "存盘失败"
+
+#. TRANSLATORS: the device could not be found in sysfs
+#: ../contrib/device-rebind/pk-device-rebind.c:175
+#, fuzzy
+msgid "Device could not be found"
+msgstr "无法找到该软件包"
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:202
+#, fuzzy
+msgid "Failed to unregister driver"
+msgstr "无法创建目录"
+
+#. TRANSLATORS: we failed to bind the old driver
+#: ../contrib/device-rebind/pk-device-rebind.c:211
+#, fuzzy
+msgid "Failed to register driver"
+msgstr "无法创建目录"
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:260
+#, fuzzy
+msgid "Device path not found"
+msgstr "目录没有找到"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:268
+msgid "Incorrect device path specified"
+msgstr ""
+
+#. command line argument, simulate what would be done, but don't actually do it
+#: ../contrib/device-rebind/pk-device-rebind.c:296
+msgid "Don't actually touch the hardware, only simulate what would be done"
+msgstr ""
+
+#. TRANSLATORS: command line option: a list of files to install
+#: ../contrib/device-rebind/pk-device-rebind.c:299
+msgid "Device paths"
+msgstr ""
+
+#. TRANSLATORS: tool that gets called when the device needs reloading after installing firmware
+#: ../contrib/device-rebind/pk-device-rebind.c:314
+#, fuzzy
+msgid "PackageKit Device Reloader"
+msgstr "PackageKit 服务包"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:322
+msgid "You need to specify at least one valid device path"
+msgstr ""
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:332
+msgid "This script can only be used by the root user"
+msgstr ""
+
+#. TRANSLATORS: we're going to verify the path first
+#: ../contrib/device-rebind/pk-device-rebind.c:341
+msgid "Verifying device path"
+msgstr ""
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:346
+#, fuzzy
+msgid "Failed to verify device path"
+msgstr "未找到该软件包"
+
+#. TRANSLATORS: we're going to try
+#: ../contrib/device-rebind/pk-device-rebind.c:360
+msgid "Attempting to rebind device"
+msgstr ""
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:365
+#, fuzzy
+msgid "Failed to rebind device"
+msgstr "无法创建目录"
 
 #: ../data/packagekit-catalog.xml.in.h:1
 msgid "PackageKit Catalog"
@@ -914,95 +1275,175 @@ msgstr "PackageKit 软件包清单"
 msgid "PackageKit Service Pack"
 msgstr "PackageKit 服务包"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:1
+#. SECURITY:
+#. - Normal users do not require admin authentication to accept new
+#. licence agreements.
+#. - Change this to 'auth_admin' for environments where users should not
+#. be given the option to make legal decisions.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:7
 msgid "Accept EULA"
 msgstr "接受 EULA"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:2
+#: ../policy/org.freedesktop.packagekit.policy.in.h:8
 msgid "Authentication is required to accept a EULA"
 msgstr "需要验证才可接受 EULA"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:3
-msgid "Authentication is required to cancel a task that was not started by yourself"
+#: ../policy/org.freedesktop.packagekit.policy.in.h:9
+msgid ""
+"Authentication is required to cancel a task that was not started by yourself"
 msgstr "需要验证才可取消不是您启动的任务"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:4
+#: ../policy/org.freedesktop.packagekit.policy.in.h:10
 msgid "Authentication is required to change software source parameters"
 msgstr "需要验证才可更改软件源参数"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:5
+#: ../policy/org.freedesktop.packagekit.policy.in.h:11
 msgid ""
 "Authentication is required to consider a key used for signing packages as "
 "trusted"
 msgstr "需要验证才可将用于签注软件包的密钥视为可信的"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:6
+#: ../policy/org.freedesktop.packagekit.policy.in.h:12
 msgid "Authentication is required to install a signed package"
 msgstr "需要验证才可安装签注的软件包"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:7
+#: ../policy/org.freedesktop.packagekit.policy.in.h:13
 msgid "Authentication is required to install an untrusted package"
 msgstr "需要验证才可安装不可信的软件包"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:8
+#: ../policy/org.freedesktop.packagekit.policy.in.h:14
 msgid "Authentication is required to refresh the system sources"
 msgstr "需要验证才可刷新系统源"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:9
+#: ../policy/org.freedesktop.packagekit.policy.in.h:15
+#, fuzzy
+msgid "Authentication is required to reload the device with a new driver"
+msgstr "需要验证才可刷新系统源"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:16
 msgid "Authentication is required to remove packages"
 msgstr "需要验证才可删除软件包"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:10
+#: ../policy/org.freedesktop.packagekit.policy.in.h:17
 msgid "Authentication is required to rollback a transaction"
 msgstr "需要验证才可重新运行交易"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:11
+#: ../policy/org.freedesktop.packagekit.policy.in.h:18
 msgid ""
 "Authentication is required to set the network proxy used for downloading "
 "packages"
 msgstr "需要验证才可设置用于下载软件包的网络代理服务器"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:12
+#: ../policy/org.freedesktop.packagekit.policy.in.h:19
 msgid "Authentication is required to update packages"
 msgstr "需要验证才可更新软件包"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:13
+#. SECURITY:
+#. - Normal users are allowed to cancel their own task without
+#. authentication, but a different user id needs the admin password
+#. to cancel another users task.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:25
 msgid "Cancel foreign task"
 msgstr "取消外来的任务"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:14
+#. SECURITY:
+#. - Normal users require admin authentication to enable or disable
+#. software sources as this can be used to enable new updates or
+#. install different versions of software.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:31
 msgid "Change software source parameters"
 msgstr "更改软件源参数"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:15
+#. SECURITY:
+#. - Normal users do not need authentication to install signed packages
+#. from signed repositories, as this cannot exploit a system.
+#. - Paranoid users (or parents!) can change this to 'auth_admin' or
+#. 'auth_admin_keep'.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:38
 msgid "Install signed package"
 msgstr "安装签注的软件包"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:16
+#. SECURITY:
+#. - Normal users require admin authentication to install untrusted or
+#. unrecognised packages, as allowing users to do this without a
+#. password would be a massive security hole.
+#. - This is not retained as each package should be authenticated.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:45
 msgid "Install untrusted local file"
 msgstr "安装不可信本地文件"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:17
+#. SECURITY:
+#. - Normal users do not require admin authentication to refresh the
+#. cache, as this doesn't actually install or remove software.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:50
 msgid "Refresh system sources"
 msgstr "刷新系统源"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:18
+#. SECURITY:
+#. - Normal users require admin authentication to rebind a driver
+#. so that it works after we install firmware.
+#. - This should not be set to 'yes' as unprivileged users could then
+#. try to rebind drivers in use, for instance security authentication
+#. devices.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:58
+msgid "Reload a device"
+msgstr ""
+
+#. SECURITY:
+#. - Normal users require admin authentication to remove packages as
+#. this can make the system unbootable or stop other applications from
+#. working.
+#. - Be sure to close the tool used to remove the packages after the
+#. admin authentication has been obtained, otherwise packages can still
+#. be removed. If this is not possible, change this authentication to
+#. 'auth_admin'.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:68
 msgid "Remove package"
 msgstr "删除软件包"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:19
+#. SECURITY:
+#. - Normal users require admin authentication to rollback system state
+#. as this will change a large number of packages, and could expose the
+#. system to previously patched security vulnerabilities.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:74
 msgid "Rollback to a previous transaction"
 msgstr "重新运行前一个交易"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:20
+#. SECURITY:
+#. - Normal users do not require admin authentication to set the proxy
+#. used for downloading packages.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:79
 msgid "Set network proxy"
 msgstr "设置网络代理服务器"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:21
+#. SECURITY:
+#. - Normal users require admin authentication to add signing keys.
+#. - This implies adding an explicit trust, and should not be granted
+#. without a secure authentication.
+#. - This is not kept as each package should be authenticated.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:86
 msgid "Trust a key used for signing packages"
 msgstr "相信用来签注软件包的密钥"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:22
+#. SECURITY:
+#. - Normal users do not require admin authentication to update the
+#. system as the packages will be signed, and the action is required
+#. to update the system when unattended.
+#. - Changing this to anything other than 'yes' will break unattended
+#. updates.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:94
 msgid "Update packages"
 msgstr "更新软件包"
 
@@ -1029,48 +1470,88 @@ msgid ""
 msgstr "org.freedesktop.PackageKit.conf 没有安装到系统目录中:"
 
 #. TRANSLATORS: a backend is the system package tool, e.g. yum, apt
-#: ../src/pk-main.c:193
+#: ../src/pk-main.c:205
 msgid "Packaging backend to use, e.g. dummy"
 msgstr "使用的打包后端,例如“伪”后端"
 
 #. TRANSLATORS: if we should run in the background
-#: ../src/pk-main.c:196
+#: ../src/pk-main.c:208
 msgid "Daemonize and detach from the terminal"
 msgstr "后台化并从终端中分离"
 
 #. TRANSLATORS: if we should not monitor how long we are inactive for
-#: ../src/pk-main.c:202
+#: ../src/pk-main.c:214
 msgid "Disable the idle timer"
 msgstr "禁止计时器"
 
 #. TRANSLATORS: show version
-#: ../src/pk-main.c:205
+#: ../src/pk-main.c:217
 msgid "Show version and exit"
 msgstr "显示版本并退出"
 
 #. TRANSLATORS: exit after we've started up, used for user profiling
-#: ../src/pk-main.c:208
+#: ../src/pk-main.c:220
 msgid "Exit after a small delay"
 msgstr "稍稍延迟后退出"
 
 #. TRANSLATORS: exit straight away, used for automatic profiling
-#: ../src/pk-main.c:211
+#: ../src/pk-main.c:223
 msgid "Exit after the engine has loaded"
 msgstr "引擎载入后退出"
 
 #. TRANSLATORS: describing the service that is running
-#: ../src/pk-main.c:226
+#: ../src/pk-main.c:238
 msgid "PackageKit service"
 msgstr "PackageKit 服务"
 
 #. TRANSLATORS: fatal error, dbus is not running
-#: ../src/pk-main.c:263
+#: ../src/pk-main.c:275
 msgid "Cannot connect to the system bus"
 msgstr "无法连接到系统总线"
 
-#. TRANSLATORS: cannot register on system bus, unknown reason
-#: ../src/pk-main.c:313
-#, c-format
+#. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error follows
+#: ../src/pk-main.c:334
 msgid "Error trying to start:"
 msgstr "尝试启动时出错:"
 
+#: ../src/pk-polkit-action-lookup.c:147
+#, fuzzy
+msgid "To install debugging packages, extra sources need to be enabled"
+msgstr "没有新的软件包安装"
+
+#. TRANSLATORS: is not GPG signed
+#: ../src/pk-polkit-action-lookup.c:168 ../src/pk-polkit-action-lookup.c:187
+msgid "The software is not from a trusted source."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:173
+msgid "Do not update this package unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:174
+msgid "Do not update these packages unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:192
+msgid "Do not install this package unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:193
+msgid "Do not install these packages unless you are sure it is safe to do so."
+msgstr ""
+
+#. TRANSLATORS: warn the user that all bets are off
+#: ../src/pk-polkit-action-lookup.c:199
+msgid "Malicious software can damage your computer or cause other harm."
+msgstr ""
+
+#. TRANSLATORS: too many packages to list each one
+#: ../src/pk-polkit-action-lookup.c:274
+#, fuzzy
+msgid "Many packages"
+msgstr "更新软件包"
+
+#. TRANSLATORS: if the transaction is forced to install only trusted packages
+#: ../src/pk-polkit-action-lookup.c:334
+msgid "Only trusted"
+msgstr ""
diff --git a/po/zh_TW.po b/po/zh_TW.po
index b424601..0363d5f 100644
--- a/po/zh_TW.po
+++ b/po/zh_TW.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: packagekit.master\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-04-02 08:10+0000\n"
+"POT-Creation-Date: 2009-08-24 11:06+0100\n"
 "PO-Revision-Date: 2009-04-06 16:03+1000\n"
 "Last-Translator: Terry Chuang <tchuang at redhat.com>\n"
 "Language-Team:  <zh at li.org>\n"
@@ -18,230 +18,264 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
 #. TRANSLATORS: this is an atomic transaction
-#: ../client/pk-console.c:234
+#: ../client/pk-console.c:235
 msgid "Transaction"
 msgstr "交易"
 
 #. TRANSLATORS: this is the time the transaction was started in system timezone
-#: ../client/pk-console.c:236
+#: ../client/pk-console.c:237
 msgid "System time"
 msgstr "系統時間"
 
 #. TRANSLATORS: this is if the transaction succeeded or not
-#: ../client/pk-console.c:238
+#: ../client/pk-console.c:239
 msgid "Succeeded"
 msgstr "成功"
 
 #. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:238 ../client/pk-console.c:405
+#: ../client/pk-console.c:239 ../client/pk-console.c:406
 msgid "True"
 msgstr "True"
 
-#: ../client/pk-console.c:238 ../client/pk-console.c:405
+#: ../client/pk-console.c:239 ../client/pk-console.c:406
 msgid "False"
 msgstr "False"
 
 #. TRANSLATORS: this is the transactions role, e.g. "update-system"
-#: ../client/pk-console.c:240
+#. TRANSLATORS: the trasaction role, e.g. update-system
+#: ../client/pk-console.c:241 ../src/pk-polkit-action-lookup.c:327
 msgid "Role"
 msgstr "角色"
 
 #. TRANSLATORS: this is The duration of the transaction
-#: ../client/pk-console.c:245
+#: ../client/pk-console.c:246
 msgid "Duration"
 msgstr "持續時間"
 
-#: ../client/pk-console.c:245
+#: ../client/pk-console.c:246
 msgid "(seconds)"
 msgstr "(秒)"
 
 #. TRANSLATORS: this is The command line used to do the action
-#: ../client/pk-console.c:249
+#. TRANSLATORS: the command line of the thing that wants the authentication
+#: ../client/pk-console.c:250 ../src/pk-polkit-action-lookup.c:341
 msgid "Command line"
 msgstr "指令列"
 
 #. TRANSLATORS: this is the user ID of the user that started the action
-#: ../client/pk-console.c:251
+#: ../client/pk-console.c:252
 msgid "User ID"
 msgstr "用戶 ID"
 
 #. TRANSLATORS: this is the username, e.g. hughsie
-#: ../client/pk-console.c:258
+#: ../client/pk-console.c:259
 msgid "Username"
 msgstr "用戶名稱"
 
 #. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
-#: ../client/pk-console.c:262
+#: ../client/pk-console.c:263
 msgid "Real name"
 msgstr "真實名稱"
 
-#: ../client/pk-console.c:270
+#: ../client/pk-console.c:271
 msgid "Affected packages:"
 msgstr "受影響的套件:"
 
-#: ../client/pk-console.c:272
+#: ../client/pk-console.c:273
 msgid "Affected packages: None"
 msgstr "受影響的套件:無"
 
 #. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:297
+#: ../client/pk-console.c:298
 msgid "Distribution"
 msgstr "發行套件"
 
 #. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:299
+#: ../client/pk-console.c:300
 msgid "Type"
 msgstr "é¡žåž‹"
 
 #. TRANSLATORS: this is any summary text describing the upgrade
 #. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:301 ../client/pk-console.c:324
+#: ../client/pk-console.c:302 ../client/pk-console.c:325
 msgid "Summary"
 msgstr "摘要"
 
 #. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:313
+#: ../client/pk-console.c:314
 msgid "Category"
 msgstr "類別"
 
 #. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:315
+#: ../client/pk-console.c:316
 msgid "ID"
 msgstr "ID"
 
 #. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:318
+#: ../client/pk-console.c:319
 msgid "Parent"
 msgstr "父"
 
 #. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:321
+#: ../client/pk-console.c:322
 msgid "Name"
 msgstr "名稱"
 
 #. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:327
+#: ../client/pk-console.c:328
 msgid "Icon"
 msgstr "圖像"
 
 #. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:342
+#: ../client/pk-console.c:343
 msgid "Details about the update:"
 msgstr "有關於更新的詳情:"
 
 #. TRANSLATORS: details about the update, package name and version
-#: ../client/pk-console.c:344
+#. TRANSLATORS: title, the names of the packages that the method is processing
+#: ../client/pk-console.c:345 ../src/pk-polkit-action-lookup.c:352
+#, fuzzy
 msgid "Package"
-msgstr "套件"
+msgid_plural "Packages"
+msgstr[0] "套件"
+msgstr[1] "套件"
 
 #. TRANSLATORS: details about the update, any packages that this update updates
-#: ../client/pk-console.c:347
+#: ../client/pk-console.c:348
 msgid "Updates"
 msgstr "æ›´æ–°"
 
 #. TRANSLATORS: details about the update, any packages that this update obsoletes
-#: ../client/pk-console.c:351
+#: ../client/pk-console.c:352
 msgid "Obsoletes"
 msgstr "已淘汰的套件"
 
 #. TRANSLATORS: details about the update, the vendor URLs
-#: ../client/pk-console.c:355
+#: ../client/pk-console.c:356
 msgid "Vendor"
 msgstr "供應商"
 
 #. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:359
+#: ../client/pk-console.c:360
 msgid "Bugzilla"
 msgstr "供應商"
 
 #. TRANSLATORS: details about the update, the CVE URLs
-#: ../client/pk-console.c:363
+#: ../client/pk-console.c:364
 msgid "CVE"
 msgstr "CVE"
 
 #. TRANSLATORS: details about the update, if the package requires a restart
-#: ../client/pk-console.c:367
+#: ../client/pk-console.c:368
 msgid "Restart"
 msgstr "重新啟動"
 
 #. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:371
+#: ../client/pk-console.c:372
 msgid "Update text"
 msgstr "更新文字"
 
 #. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:375
+#: ../client/pk-console.c:376
 msgid "Changes"
 msgstr "變更"
 
 #. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:379
+#: ../client/pk-console.c:380
 msgid "State"
 msgstr "狀態"
 
 #. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:384
+#: ../client/pk-console.c:385
 msgid "Issued"
 msgstr "已發出"
 
 #. TRANSLATORS: details about the update, date the update was updated
-#: ../client/pk-console.c:389
+#: ../client/pk-console.c:390
 msgid "Updated"
 msgstr "已更新"
 
-#: ../client/pk-console.c:476 ../client/pk-console.c:478
+#: ../client/pk-console.c:477 ../client/pk-console.c:479
 msgid "Percentage"
 msgstr "百分比"
 
-#: ../client/pk-console.c:478
+#: ../client/pk-console.c:479
 msgid "Unknown"
 msgstr "不明"
 
 #. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:529
+#: ../client/pk-console.c:521
 msgid "System restart required by:"
 msgstr "需要系統重新啟動:"
 
 #. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:532
+#: ../client/pk-console.c:524
 msgid "Session restart required:"
 msgstr "需要重新啟動 session:"
 
+#. TRANSLATORS: a package requires the system to be restarted due to a security update
+#: ../client/pk-console.c:527
+#, fuzzy
+msgid "System restart (security) required by:"
+msgstr "需要系統重新啟動:"
+
+#. TRANSLATORS: a package requires the session to be restarted due to a security update
+#: ../client/pk-console.c:530
+#, fuzzy
+msgid "Session restart (security) required:"
+msgstr "需要重新啟動 session:"
+
 #. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:535
+#: ../client/pk-console.c:533
 msgid "Application restart required by:"
 msgstr "需要重新啟動應用程式:"
 
-#. TRANSLATORS: a package needs to restart they system
-#: ../client/pk-console.c:572
+#. TRANSLATORS: a package needs to restart their system
+#: ../client/pk-console.c:588
 msgid "Please restart the computer to complete the update."
 msgstr "請重新啟動電腦來完成更新。"
 
 #. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:575
+#: ../client/pk-console.c:591
 msgid "Please logout and login to complete the update."
 msgstr "請登出並再次登入來完成更新。"
 
 #. TRANSLATORS: a package needs to restart the application
-#: ../client/pk-console.c:578
+#: ../client/pk-console.c:594
 msgid "Please restart the application as it is being used."
 msgstr "請重新啟動應用程式因為該應用程式正被使用中。"
 
+#. TRANSLATORS: a package needs to restart their system (due to security)
+#: ../client/pk-console.c:597
+#, fuzzy
+msgid ""
+"Please restart the computer to complete the update as important security "
+"updates have been installed."
+msgstr "請重新啟動電腦來完成更新。"
+
+#. TRANSLATORS: a package needs to restart the session (due to security)
+#: ../client/pk-console.c:600
+#, fuzzy
+msgid ""
+"Please logout and login to complete the update as important security updates "
+"have been installed."
+msgstr "請登出並再次登入來完成更新。"
+
 #. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:691
+#: ../client/pk-console.c:727
 #, c-format
 msgid "The package %s is already installed"
 msgstr "%s 套件已安裝"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:699
+#: ../client/pk-console.c:735
 #, c-format
 msgid "The package %s could not be installed: %s"
 msgstr "%s 套件無法被安裝:%s"
 
 #. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
-#: ../client/pk-console.c:724 ../client/pk-console.c:751
-#: ../client/pk-console.c:847 ../client/pk-console.c:964
+#: ../client/pk-console.c:760 ../client/pk-console.c:783
+#: ../client/pk-console.c:879 ../client/pk-console.c:996
 #: ../client/pk-tools-common.c:62 ../client/pk-tools-common.c:81
 #: ../client/pk-tools-common.c:89
 #, c-format
@@ -249,394 +283,404 @@ msgid "Internal error: %s"
 msgstr "內部錯誤:%s"
 
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:732 ../client/pk-console.c:1360
+#: ../client/pk-console.c:768 ../client/pk-console.c:1392
 #, c-format
 msgid "This tool could not install the packages: %s"
 msgstr "此工具無法安裝套件:%s"
 
 #. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:759
+#: ../client/pk-console.c:791
 #, c-format
 msgid "This tool could not install the files: %s"
 msgstr "此工具無法安裝檔案:%s"
 
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:815
+#: ../client/pk-console.c:847
 #, c-format
 msgid "This tool could not remove %s: %s"
 msgstr "此工具無法被移除 %s:%s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:838 ../client/pk-console.c:876
-#: ../client/pk-console.c:909
+#: ../client/pk-console.c:870 ../client/pk-console.c:908
+#: ../client/pk-console.c:941
 #, c-format
 msgid "This tool could not remove the packages: %s"
 msgstr "此工具無法移除套件:%s"
 
 #. TRANSLATORS: When removing, we might have to remove other dependencies
-#: ../client/pk-console.c:888
+#: ../client/pk-console.c:920
 msgid "The following packages have to be removed:"
 msgstr "下列套件必須被移除掉:"
 
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:895
+#: ../client/pk-console.c:927
 msgid "Proceed removing additional packages?"
 msgstr "移除額外套件?"
 
 #. TRANSLATORS: We did not remove any packages
-#: ../client/pk-console.c:900
+#: ../client/pk-console.c:932
 msgid "The package removal was canceled!"
 msgstr "套件移除已取消!"
 
 #. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:941
+#: ../client/pk-console.c:973
 #, c-format
 msgid "This tool could not download the package %s as it could not be found"
 msgstr "此工具無法下載套件 %s 因為找不到該套件"
 
 #. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:972
+#: ../client/pk-console.c:1004
 #, c-format
 msgid "This tool could not download the packages: %s"
 msgstr "此工具無法下載套件:%s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:999 ../client/pk-console.c:1008
+#: ../client/pk-console.c:1031 ../client/pk-console.c:1040
 #, c-format
 msgid "This tool could not update %s: %s"
 msgstr "此工具無法更新 %s:%s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1030 ../client/pk-console.c:1038
+#: ../client/pk-console.c:1062 ../client/pk-console.c:1070
 #, c-format
 msgid "This tool could not get the requirements for %s: %s"
 msgstr "此工具無法取得 %s 的需求:%s"
 
 #. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:1060 ../client/pk-console.c:1068
+#: ../client/pk-console.c:1092 ../client/pk-console.c:1100
 #, c-format
 msgid "This tool could not get the dependencies for %s: %s"
 msgstr "此工具無法取得 %s 的相依性:%s"
 
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:1090 ../client/pk-console.c:1098
+#: ../client/pk-console.c:1122 ../client/pk-console.c:1130
 #, c-format
 msgid "This tool could not get package details for %s: %s"
 msgstr "此工具無法取得 %s 的套件詳情:%s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1120
+#: ../client/pk-console.c:1152
 #, c-format
 msgid "This tool could not find the files for %s: %s"
 msgstr "此工具找不到 %s 的檔案:%s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1128
+#: ../client/pk-console.c:1160
 #, c-format
 msgid "This tool could not get the file list for %s: %s"
 msgstr "此工具無法取得 %s 的檔案清單:%s"
 
 #. TRANSLATORS: There was an error getting the list of packages. The filename follows
-#: ../client/pk-console.c:1150
+#: ../client/pk-console.c:1182
 #, c-format
 msgid "File already exists: %s"
 msgstr "檔案已經存在:%s"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1155 ../client/pk-console.c:1211
-#: ../client/pk-console.c:1286
+#: ../client/pk-console.c:1187 ../client/pk-console.c:1243
+#: ../client/pk-console.c:1318
 msgid "Getting package list"
 msgstr "正在取得套件清單"
 
 #. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1161 ../client/pk-console.c:1217
-#: ../client/pk-console.c:1292
+#: ../client/pk-console.c:1193 ../client/pk-console.c:1249
+#: ../client/pk-console.c:1324
 #, c-format
 msgid "This tool could not get package list: %s"
 msgstr "此工具無法取得套件清單:%s"
 
 #. TRANSLATORS: There was an error saving the list
-#: ../client/pk-console.c:1172
+#: ../client/pk-console.c:1204
 #, c-format
 msgid "Failed to save to disk"
 msgstr "無法儲存至磁碟"
 
 #. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1206 ../client/pk-console.c:1281
+#: ../client/pk-console.c:1238 ../client/pk-console.c:1313
 #, c-format
 msgid "File does not exist: %s"
 msgstr "檔案不存在:%s"
 
 #. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1238
+#: ../client/pk-console.c:1270
 msgid "Packages to add"
 msgstr "要新增的套件"
 
 #. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1246
+#: ../client/pk-console.c:1278
 msgid "Packages to remove"
 msgstr "要移除的套件"
 
 #. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1314
+#: ../client/pk-console.c:1346
 #, c-format
 msgid "No new packages need to be installed"
 msgstr "沒有需要安裝的新套件"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1320
+#: ../client/pk-console.c:1352
 msgid "To install"
 msgstr "安裝"
 
 #. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1332
+#: ../client/pk-console.c:1364
 msgid "Searching for package: "
 msgstr "搜尋套件:"
 
 #. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1336
+#: ../client/pk-console.c:1368
 msgid "not found."
 msgstr "找不到套件。"
 
 #. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1347
+#: ../client/pk-console.c:1379
 #, c-format
 msgid "No packages can be found to install"
 msgstr "找不到可安裝的套件"
 
 #. TRANSLATORS: installing new packages from package list
-#: ../client/pk-console.c:1353
+#. TRANSLATORS: we are now installing the debuginfo packages we found earlier
+#: ../client/pk-console.c:1385
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:886
+#, c-format
 msgid "Installing packages"
 msgstr "安裝套件"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1389
+#: ../client/pk-console.c:1421
 #, c-format
 msgid "This tool could not find the update details for %s: %s"
 msgstr "此工具找不到 %s 的更新詳情:%s"
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1397
+#: ../client/pk-console.c:1429
 #, c-format
 msgid "This tool could not get the update details for %s: %s"
 msgstr "此工具無法取得 %s 的更新詳情:%s"
 
 #. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
-#: ../client/pk-console.c:1443
+#: ../client/pk-console.c:1460
 msgid "Error:"
 msgstr "錯誤:"
 
 #. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1457
+#: ../client/pk-console.c:1474
 msgid "Package description"
 msgstr "套件描述"
 
+#. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
+#: ../client/pk-console.c:1490
+msgid "Message:"
+msgstr ""
+
 #. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1491
+#: ../client/pk-console.c:1518
 msgid "Package files"
 msgstr "套件檔案"
 
 #. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1499
+#: ../client/pk-console.c:1526
 msgid "No files"
 msgstr "無檔案"
 
 #. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1522
+#: ../client/pk-console.c:1549
 msgid "Repository signature required"
 msgstr "需要軟體庫簽章"
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1532
+#: ../client/pk-console.c:1559
 msgid "Do you accept this signature?"
 msgstr "您是否接受此簽章?"
 
 #. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1536
+#: ../client/pk-console.c:1563
 msgid "The signature was not accepted."
 msgstr "簽章未被接受。"
 
 #. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1570
+#: ../client/pk-console.c:1597
 msgid "End user license agreement required"
 msgstr "需要使用者授權合約"
 
 #. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1577
+#: ../client/pk-console.c:1604
 msgid "Do you agree to this license?"
 msgstr "您是否同意此授權合約?"
 
 #. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1581
+#: ../client/pk-console.c:1608
 msgid "The license was refused."
 msgstr "已拒絕授權合約。"
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1610
+#: ../client/pk-console.c:1637
 msgid "The daemon crashed mid-transaction!"
 msgstr "daemon 損毀了 mid-transaction!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1663
+#: ../client/pk-console.c:1690
 msgid "PackageKit Console Interface"
 msgstr "PackageKit 主控台介面"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1665
+#: ../client/pk-console.c:1692
 msgid "Subcommands:"
 msgstr "次指令:"
 
 #. TRANSLATORS: command line argument, if we should show debugging information
 #. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:1757 ../client/pk-generate-pack.c:185
-#: ../client/pk-monitor.c:125
-#: ../contrib/command-not-found/pk-command-not-found.c:518
-#: ../src/pk-main.c:199
+#: ../client/pk-console.c:1785 ../client/pk-generate-pack.c:185
+#: ../client/pk-monitor.c:128
+#: ../contrib/command-not-found/pk-command-not-found.c:616
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:550
+#: ../contrib/device-rebind/pk-device-rebind.c:293 ../src/pk-main.c:211
 msgid "Show extra debugging information"
 msgstr "顯示額外的除錯資訊"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1760 ../client/pk-monitor.c:127
+#: ../client/pk-console.c:1788 ../client/pk-monitor.c:130
 msgid "Show the program version and exit"
 msgstr "顯示程式版本然後退出"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1763
+#: ../client/pk-console.c:1791
 msgid "Set the filter, e.g. installed"
 msgstr "設定過濾選項,例如「installed」"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1766
+#: ../client/pk-console.c:1794
 msgid "Exit without waiting for actions to complete"
 msgstr "不等待動作完成便退出"
 
 #. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:1793
+#: ../client/pk-console.c:1821
 msgid "This tool could not connect to system DBUS."
 msgstr "此工具無法連至系統 DBUS。"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1880
+#: ../client/pk-console.c:1911
 msgid "The filter specified was invalid"
 msgstr "指定的過濾器無效"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1898
+#: ../client/pk-console.c:1930
 msgid "A search type is required, e.g. name"
 msgstr "需要搜尋類型,例如名稱"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1904 ../client/pk-console.c:1912
-#: ../client/pk-console.c:1920 ../client/pk-console.c:1928
+#: ../client/pk-console.c:1937 ../client/pk-console.c:1946
+#: ../client/pk-console.c:1955 ../client/pk-console.c:1964
 msgid "A search term is required"
 msgstr "需要搜尋關鍵字"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1934
+#: ../client/pk-console.c:1971
 msgid "Invalid search type"
 msgstr "無效的搜尋類型"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1940
+#: ../client/pk-console.c:1977
 msgid "A package name or filename to install is required"
 msgstr "需要欲安裝的套件之名稱或檔案名稱"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1948
+#: ../client/pk-console.c:1986
 msgid "A type, key_id and package_id are required"
 msgstr "需要指定一個類型、key_id 以及 package_id"
 
 #. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:1956
+#: ../client/pk-console.c:1995
 msgid "A package name to remove is required"
 msgstr "需要欲移除的套件之名稱"
 
 #. TRANSLATORS: the user did not specify anything about what to download or where
-#: ../client/pk-console.c:1963
-msgid "A destination directory and then the package names to download are required"
+#: ../client/pk-console.c:2003
+#, fuzzy
+msgid "A destination directory and the package names to download are required"
 msgstr "需要指定目的地目錄以及欲下載的套件之名稱"
 
 #. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:1969
+#: ../client/pk-console.c:2010
 msgid "Directory not found"
 msgstr "找不到目錄"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1976
+#: ../client/pk-console.c:2018
 msgid "A licence identifier (eula-id) is required"
 msgstr "需要指定一個授權合約的標示符號(eula-id)"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1985
+#: ../client/pk-console.c:2028
 msgid "A transaction identifier (tid) is required"
 msgstr "需要交易標示符號(tid)"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:2001
+#: ../client/pk-console.c:2045
 msgid "A package name to resolve is required"
 msgstr "需要欲解析的套件之名稱"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:2009 ../client/pk-console.c:2017
+#: ../client/pk-console.c:2054 ../client/pk-console.c:2063
 msgid "A repository name is required"
 msgstr "需要軟體庫的名稱"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2025
+#: ../client/pk-console.c:2072
 msgid "A repo name, parameter and value are required"
 msgstr "需要指定一個 repo 名稱、參數和數值"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:2038
+#: ../client/pk-console.c:2086
 msgid "An action, e.g. 'update-system' is required"
 msgstr "需要指定一項動作,例如「update-system」"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:2044
+#: ../client/pk-console.c:2093
 msgid "A correct role is required"
 msgstr "需要正確的角色"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2050
+#: ../client/pk-console.c:2100
 msgid "Failed to get the time since this action was last completed"
 msgstr "無法取得此動作最後完成後的時間"
 
 #. TRANSLATORS: The user did not provide a package name
 #. TRANSLATORS: This is when the user fails to supply the package name
-#: ../client/pk-console.c:2059 ../client/pk-console.c:2070
-#: ../client/pk-console.c:2078 ../client/pk-console.c:2094
-#: ../client/pk-console.c:2102 ../client/pk-generate-pack.c:241
+#: ../client/pk-console.c:2110 ../client/pk-console.c:2122
+#: ../client/pk-console.c:2131 ../client/pk-console.c:2149
+#: ../client/pk-console.c:2158 ../client/pk-generate-pack.c:241
 msgid "A package name is required"
 msgstr "需要套件的名稱"
 
 #. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:2086
+#: ../client/pk-console.c:2140
 msgid "A package provide string is required"
 msgstr "需要提供套件的字串"
 
 #. TRANSLATORS: The user didn't specify a filename to create as a list
-#: ../client/pk-console.c:2110
+#: ../client/pk-console.c:2167
 msgid "A list file name to create is required"
 msgstr "需要欲建立的清單檔案名稱"
 
 #. TRANSLATORS: The user didn't specify a filename to open as a list
-#: ../client/pk-console.c:2119 ../client/pk-console.c:2128
+#: ../client/pk-console.c:2177 ../client/pk-console.c:2187
 msgid "A list file to open is required"
 msgstr "需要欲開啟的清單檔案"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2181
+#: ../client/pk-console.c:2241
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "「%s」選項不被支援"
 
 #. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2194
+#: ../client/pk-console.c:2254
 msgid "Incorrect privileges for this operation"
 msgstr "進行這項作業的權限錯誤"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2197
+#: ../client/pk-console.c:2257
 msgid "Command failed"
 msgstr "指令失敗"
 
@@ -662,7 +706,8 @@ msgstr "設定將被排除的相依檔案名稱"
 
 #. TRANSLATORS: the output location
 #: ../client/pk-generate-pack.c:191
-msgid "The output file or directory (the current directory is used if ommitted)"
+msgid ""
+"The output file or directory (the current directory is used if ommitted)"
 msgstr "輸出檔案或目錄(若省略的話,目前的目錄便會被使用)"
 
 #. TRANSLATORS: put a list of packages in the pack
@@ -696,64 +741,75 @@ msgstr "需要輸出目錄或檔案名稱"
 msgid "The package manager cannot perform this type of operation."
 msgstr "套件管理員無法進行這類型的作業。"
 
+#. TRANSLATORS: This is when the distro didn't include libarchive support into PK
+#: ../client/pk-generate-pack.c:280
+msgid ""
+"Service packs cannot be created as PackageKit was not built with libarchive "
+"support."
+msgstr ""
+
 #. TRANSLATORS: the user specified an absolute path, but didn't get the extension correct
-#: ../client/pk-generate-pack.c:285
+#: ../client/pk-generate-pack.c:291
 msgid "If specifying a file, the service pack name must end with"
 msgstr "若要指定檔案的話,服務套件名稱必須以此為結尾"
 
 #. TRANSLATORS: This is when file already exists
-#: ../client/pk-generate-pack.c:301
+#: ../client/pk-generate-pack.c:307
 msgid "A pack with the same name already exists, do you want to overwrite it?"
 msgstr "擁有相同名稱的套件已經存在,您要覆寫這個檔案嗎?"
 
 #. TRANSLATORS: This is when the pack was not overwritten
-#: ../client/pk-generate-pack.c:304
+#: ../client/pk-generate-pack.c:310
 msgid "The pack was not overwritten."
 msgstr "套件並未被覆寫。"
 
 #. TRANSLATORS: This is when the temporary directory cannot be created, the directory name follows
-#: ../client/pk-generate-pack.c:317
+#: ../client/pk-generate-pack.c:323
 msgid "Failed to create directory:"
 msgstr "建立目錄失敗:"
 
 #. TRANSLATORS: This is when the list of packages from the remote computer cannot be opened
-#: ../client/pk-generate-pack.c:327
+#: ../client/pk-generate-pack.c:333
 msgid "Failed to open package list."
 msgstr "開啟套件清單失敗。"
 
 #. TRANSLATORS: The package name is being matched up to available packages
-#: ../client/pk-generate-pack.c:338
+#: ../client/pk-generate-pack.c:344
 msgid "Finding package name."
 msgstr "正在尋找套件名稱。"
 
 #. TRANSLATORS: This is when the package cannot be found in any software source. The detailed error follows
-#: ../client/pk-generate-pack.c:342
+#: ../client/pk-generate-pack.c:348
 #, c-format
 msgid "Failed to find package '%s': %s"
 msgstr "找不到套件「%s」:%s"
 
 #. TRANSLATORS: This is telling the user we are in the process of making the pack
-#: ../client/pk-generate-pack.c:359
+#: ../client/pk-generate-pack.c:365
 msgid "Creating service pack..."
 msgstr "正在建立服務套件..."
 
 #. TRANSLATORS: we succeeded in making the file
-#: ../client/pk-generate-pack.c:366
+#: ../client/pk-generate-pack.c:372
 #, c-format
 msgid "Service pack created '%s'"
 msgstr "服務套件建立了「%s」"
 
 #. TRANSLATORS: we failed to make te file
-#: ../client/pk-generate-pack.c:371
+#: ../client/pk-generate-pack.c:377
 #, c-format
 msgid "Failed to create '%s': %s"
 msgstr "無法建立「%s」:%s"
 
 #. TRANSLATORS: this is a program that monitors PackageKit
-#: ../client/pk-monitor.c:143
+#: ../client/pk-monitor.c:146
 msgid "PackageKit Monitor"
 msgstr "PackageKit 監控程式"
 
+#: ../client/pk-monitor.c:183
+msgid "Cannot show the list of transactions"
+msgstr ""
+
 #. TRANSLATORS: The package was not found in any software sources
 #: ../client/pk-tools-common.c:118
 #, c-format
@@ -775,128 +831,433 @@ msgstr "請選擇正確的套件:"
 msgid "Please enter a number from 1 to %i: "
 msgstr "請輸入一組由 1 到 %i 的數字:"
 
+#. TRANSLATORS: when we are getting data from the daemon
+#: ../contrib/browser-plugin/pk-plugin-install.c:466
+msgid "Getting package information..."
+msgstr "正在取得套件資訊..."
+
+#. TRANSLATORS: run an applicaiton
+#: ../contrib/browser-plugin/pk-plugin-install.c:472
+#, c-format
+msgid "Run %s"
+msgstr "執行 %s"
+
+#. TRANSLATORS: show the installed version of a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:478
+msgid "Installed version"
+msgstr "安裝版本"
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:486
+#, c-format
+msgid "Run version %s now"
+msgstr "現在執行版本 %s"
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:492
+msgid "Run now"
+msgstr "現在執行"
+
+#. TRANSLATORS: update to a new version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:498
+#, c-format
+msgid "Update to version %s"
+msgstr "更新至版本 %s"
+
+#. TRANSLATORS: To install a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:504
+#, c-format
+msgid "Install %s now"
+msgstr "現在安裝 %s"
+
+#. TRANSLATORS: the version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:507
+msgid "Version"
+msgstr "版本"
+
+#. TRANSLATORS: noting found, so can't install
+#: ../contrib/browser-plugin/pk-plugin-install.c:512
+msgid "No packages found for your system"
+msgstr "找不到適合您系統的套件"
+
+#. TRANSLATORS: package is being installed
+#: ../contrib/browser-plugin/pk-plugin-install.c:517
+msgid "Installing..."
+msgstr "安裝中..."
+
+#. TRANSLATORS: downloading repo data so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:349
+msgid "Downloading details about the software sources."
+msgstr ""
+
+#. TRANSLATORS: downloading file lists so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:353
+msgid "Downloading filelists (this may take some time to complete)."
+msgstr ""
+
+#. TRANSLATORS: waiting for native lock
+#: ../contrib/command-not-found/pk-command-not-found.c:357
+#, fuzzy
+msgid "Waiting for package manager lock."
+msgstr "正在尋找套件名稱。"
+
+#. TRANSLATORS: loading package cache so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:361
+#, fuzzy
+msgid "Loading list of packages."
+msgstr "下載套件中"
+
 #. TRANSLATORS: we failed to find the package, this shouldn't happen
-#: ../contrib/command-not-found/pk-command-not-found.c:369
+#: ../contrib/command-not-found/pk-command-not-found.c:420
 msgid "Failed to search for file"
 msgstr "搜尋檔案失敗"
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:493
+#: ../contrib/command-not-found/pk-command-not-found.c:557
 msgid "Failed to launch:"
 msgstr "啟動失敗"
 
 #. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/command-not-found/pk-command-not-found.c:534
+#: ../contrib/command-not-found/pk-command-not-found.c:632
 msgid "PackageKit Command Not Found"
 msgstr "找不到 PackageKit 指令"
 
 #. TRANSLATORS: the prefix of all the output telling the user why it's not executing
-#: ../contrib/command-not-found/pk-command-not-found.c:556
+#: ../contrib/command-not-found/pk-command-not-found.c:658
 msgid "Command not found."
 msgstr "找不到指令。"
 
 #. TRANSLATORS: tell the user what we think the command is
-#: ../contrib/command-not-found/pk-command-not-found.c:563
+#: ../contrib/command-not-found/pk-command-not-found.c:665
 msgid "Similar command is:"
 msgstr "相似指令:"
 
 #. TRANSLATORS: Ask the user if we should run the similar command
-#: ../contrib/command-not-found/pk-command-not-found.c:572
+#: ../contrib/command-not-found/pk-command-not-found.c:674
 msgid "Run similar command:"
 msgstr "執行相似指令:"
 
 #. TRANSLATORS: show the user a list of commands that they could have meant
 #. TRANSLATORS: show the user a list of commands we could run
-#: ../contrib/command-not-found/pk-command-not-found.c:584
-#: ../contrib/command-not-found/pk-command-not-found.c:593
+#: ../contrib/command-not-found/pk-command-not-found.c:686
+#: ../contrib/command-not-found/pk-command-not-found.c:695
 msgid "Similar commands are:"
 msgstr "相似指令:"
 
 #. TRANSLATORS: ask the user to choose a file to run
-#: ../contrib/command-not-found/pk-command-not-found.c:600
+#: ../contrib/command-not-found/pk-command-not-found.c:702
 msgid "Please choose a command to run"
 msgstr "請選擇一項指令來執行"
 
 #. TRANSLATORS: tell the user what package provides the command
-#: ../contrib/command-not-found/pk-command-not-found.c:615
+#: ../contrib/command-not-found/pk-command-not-found.c:721
 msgid "The package providing this file is:"
 msgstr "提供此檔案的套件為:"
 
 #. TRANSLATORS: as the user if we want to install a package to provide the command
-#: ../contrib/command-not-found/pk-command-not-found.c:620
+#: ../contrib/command-not-found/pk-command-not-found.c:726
 #, c-format
 msgid "Install package '%s' to provide command '%s'?"
 msgstr "是否要安裝「%s」套件來提供「%s」指令?"
 
 #. TRANSLATORS: Show the user a list of packages that provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:641
+#: ../contrib/command-not-found/pk-command-not-found.c:747
 msgid "Packages providing this file are:"
 msgstr "提供此檔案的套件有:"
 
 #. TRANSLATORS: Show the user a list of packages that they can install to provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:650
+#: ../contrib/command-not-found/pk-command-not-found.c:756
 msgid "Suitable packages are:"
 msgstr "適合的套件有:"
 
 #. get selection
 #. TRANSLATORS: ask the user to choose a file to install
-#: ../contrib/command-not-found/pk-command-not-found.c:658
+#: ../contrib/command-not-found/pk-command-not-found.c:764
 msgid "Please choose a package to install"
 msgstr "請選擇欲安裝的套件"
 
-#. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/src/contents.cpp:298
-msgid "Getting package information..."
-msgstr "正在取得套件資訊..."
+#. TRANSLATORS: we are starting to install the packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:187
+#, fuzzy
+msgid "Starting install"
+msgstr "安裝"
 
-#. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/src/contents.cpp:304
+#. TRANSLATORS: we couldn't find the package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:397
+#, fuzzy, c-format
+msgid "Failed to find the package %s, or already installed: %s"
+msgstr "%s 套件已安裝"
+
+#. command line argument, simulate what would be done, but don't actually do it
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:553
+msgid ""
+"Don't actually install any packages, only simulate what would be installed"
+msgstr ""
+
+#. command line argument, do we skip packages that depend on the ones specified
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:556
+msgid "Do not install dependencies of the core packages"
+msgstr ""
+
+#. command line argument, do we operate quietly
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:559
+msgid "Do not display information or progress"
+msgstr ""
+
+#. TRANSLATORS: tool that gets called when the command is not found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:577
+#, fuzzy
+msgid "PackageKit Debuginfo Installer"
+msgstr "PackageKit 主控台介面"
+
+#. TRANSLATORS: the use needs to specify a list of package names on the command line
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:589
+#, fuzzy, c-format
+msgid "ERROR: Specify package names to install."
+msgstr "沒有需要安裝的新套件"
+
+#. TRANSLATORS: we are getting the list of repositories
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:623
+#, fuzzy, c-format
+msgid "Getting sources list"
+msgstr "正在取得套件清單"
+
+#. TRANSLATORS: all completed 100%
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:641
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:681
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:716
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:800
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:844
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:911
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:955
 #, c-format
-msgid "Run %s"
-msgstr "執行 %s"
+msgid "OK."
+msgstr ""
 
-#. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/src/contents.cpp:310
-msgid "Installed version"
-msgstr "安裝版本"
+#. TRANSLATORS: tell the user what we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:644
+#, c-format
+msgid "Found %i enabled and %i disabled sources."
+msgstr ""
 
-#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/src/contents.cpp:318
+#. TRANSLATORS: we're finding repositories that match out pattern
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:651
 #, c-format
-msgid "Run version %s now"
-msgstr "現在執行版本 %s"
+msgid "Finding debugging sources"
+msgstr ""
 
-#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/src/contents.cpp:324
-msgid "Run now"
-msgstr "現在執行"
+#. TRANSLATORS: tell the user what we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:684
+#, c-format
+msgid "Found %i disabled debuginfo repos."
+msgstr ""
 
-#. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/src/contents.cpp:330
+#. TRANSLATORS: we're now enabling all the debug sources we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:691
 #, c-format
-msgid "Update to version %s"
-msgstr "更新至版本 %s"
+msgid "Enabling debugging sources"
+msgstr ""
 
-#. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/src/contents.cpp:336
+#. TRANSLATORS: operation was not successful
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:701
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:785
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:829
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:896
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:940
+msgid "FAILED."
+msgstr ""
+
+#. TRANSLATORS: tell the user how many we enabled
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:719
 #, c-format
-msgid "Install %s now"
-msgstr "現在安裝 %s"
+msgid "Enabled %i debugging sources."
+msgstr ""
 
-#. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/src/contents.cpp:339
-msgid "Version"
-msgstr "版本"
+#. TRANSLATORS: we're now finding packages that match in all the repos
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:726
+#, fuzzy, c-format
+msgid "Finding debugging packages"
+msgstr "正在尋找套件名稱。"
 
-#. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/src/contents.cpp:344
-msgid "No packages found for your system"
-msgstr "找不到適合您系統的套件"
+#. TRANSLATORS: we couldn't find the package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:738
+#, fuzzy, c-format
+msgid "Failed to find the package %s: %s"
+msgstr "找不到套件「%s」:%s"
 
-#. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/src/contents.cpp:349
-msgid "Installing..."
-msgstr "安裝中..."
+#. TRANSLATORS: we couldn't find the debuginfo package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:761
+#, fuzzy, c-format
+msgid "Failed to find the debuginfo package %s: %s"
+msgstr "找不到套件「%s」:%s"
+
+#. TRANSLATORS: no debuginfo packages could be found to be installed
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:789
+#, fuzzy, c-format
+msgid "Found no packages to install."
+msgstr "沒有需要安裝的新套件"
+
+#. TRANSLATORS: tell the user we found some packages, and then list them
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:803
+#, fuzzy, c-format
+msgid "Found %i packages:"
+msgstr "下載套件中"
+
+#. TRANSLATORS: tell the user we are searching for deps
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:819
+#, c-format
+msgid "Finding packages that depend on these packages"
+msgstr ""
+
+#. TRANSLATORS: could not install, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:832
+#, fuzzy, c-format
+msgid "Could not find dependant packages: %s"
+msgstr "找不到套件「%s」:%s"
+
+#. TRANSLATORS: tell the user we found some more packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:848
+#, c-format
+msgid "Found %i extra packages."
+msgstr ""
+
+#. TRANSLATORS: tell the user we found some more packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:852
+#, fuzzy, c-format
+msgid "No extra packages required."
+msgstr "需要套件的名稱"
+
+#. TRANSLATORS: tell the user we found some packages (and deps), and then list them
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:861
+#, fuzzy, c-format
+msgid "Found %i packages to install:"
+msgstr "沒有需要安裝的新套件"
+
+#. TRANSLATORS: simulate mode is a testing mode where we quit before the action
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:874
+#, fuzzy, c-format
+msgid "Not installing packages in simulate mode"
+msgstr "安裝套件"
+
+#. TRANSLATORS: could not install, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:899
+#, fuzzy, c-format
+msgid "Could not install packages: %s"
+msgstr "此工具無法安裝套件:%s"
+
+#. TRANSLATORS: we are now disabling all debuginfo repos we previously enabled
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:931
+#, c-format
+msgid "Disabling sources previously enabled"
+msgstr ""
+
+#. TRANSLATORS: no debuginfo packages could be found to be installed, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:943
+#, c-format
+msgid "Could not disable the debugging sources: %s"
+msgstr ""
+
+#. TRANSLATORS: we disabled all the debugging repos that we enabled before
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:958
+#, c-format
+msgid "Disabled %i debugging sources."
+msgstr ""
+
+#. TRANSLATORS: couldn't open device to write
+#: ../contrib/device-rebind/pk-device-rebind.c:61
+#, fuzzy
+msgid "Failed to open file"
+msgstr "搜尋檔案失敗"
+
+#. TRANSLATORS: could not write to the device
+#: ../contrib/device-rebind/pk-device-rebind.c:70
+#, fuzzy
+msgid "Failed to write to the file"
+msgstr "搜尋檔案失敗"
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:110
+#: ../contrib/device-rebind/pk-device-rebind.c:147
+#, fuzzy
+msgid "Failed to write to device"
+msgstr "無法儲存至磁碟"
+
+#. TRANSLATORS: the device could not be found in sysfs
+#: ../contrib/device-rebind/pk-device-rebind.c:175
+#, fuzzy
+msgid "Device could not be found"
+msgstr "找不到套件"
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:202
+#, fuzzy
+msgid "Failed to unregister driver"
+msgstr "建立目錄失敗:"
+
+#. TRANSLATORS: we failed to bind the old driver
+#: ../contrib/device-rebind/pk-device-rebind.c:211
+#, fuzzy
+msgid "Failed to register driver"
+msgstr "建立目錄失敗:"
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:260
+#, fuzzy
+msgid "Device path not found"
+msgstr "找不到目錄"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:268
+msgid "Incorrect device path specified"
+msgstr ""
+
+#. command line argument, simulate what would be done, but don't actually do it
+#: ../contrib/device-rebind/pk-device-rebind.c:296
+msgid "Don't actually touch the hardware, only simulate what would be done"
+msgstr ""
+
+#. TRANSLATORS: command line option: a list of files to install
+#: ../contrib/device-rebind/pk-device-rebind.c:299
+msgid "Device paths"
+msgstr ""
+
+#. TRANSLATORS: tool that gets called when the device needs reloading after installing firmware
+#: ../contrib/device-rebind/pk-device-rebind.c:314
+#, fuzzy
+msgid "PackageKit Device Reloader"
+msgstr "PackageKit 服務套件"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:322
+msgid "You need to specify at least one valid device path"
+msgstr ""
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:332
+msgid "This script can only be used by the root user"
+msgstr ""
+
+#. TRANSLATORS: we're going to verify the path first
+#: ../contrib/device-rebind/pk-device-rebind.c:341
+msgid "Verifying device path"
+msgstr ""
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:346
+#, fuzzy
+msgid "Failed to verify device path"
+msgstr "搜尋檔案失敗"
+
+#. TRANSLATORS: we're going to try
+#: ../contrib/device-rebind/pk-device-rebind.c:360
+msgid "Attempting to rebind device"
+msgstr ""
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:365
+#, fuzzy
+msgid "Failed to rebind device"
+msgstr "建立目錄失敗:"
 
 #: ../data/packagekit-catalog.xml.in.h:1
 msgid "PackageKit Catalog"
@@ -910,95 +1271,175 @@ msgstr "PackageKit 套件清單"
 msgid "PackageKit Service Pack"
 msgstr "PackageKit 服務套件"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:1
+#. SECURITY:
+#. - Normal users do not require admin authentication to accept new
+#. licence agreements.
+#. - Change this to 'auth_admin' for environments where users should not
+#. be given the option to make legal decisions.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:7
 msgid "Accept EULA"
 msgstr "接受 EULA"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:2
+#: ../policy/org.freedesktop.packagekit.policy.in.h:8
 msgid "Authentication is required to accept a EULA"
 msgstr "要接受 EULA 需先經過身份認證"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:3
-msgid "Authentication is required to cancel a task that was not started by yourself"
+#: ../policy/org.freedesktop.packagekit.policy.in.h:9
+msgid ""
+"Authentication is required to cancel a task that was not started by yourself"
 msgstr "若要取消一項並非您自行啟動的工作,您必須先經過身份認證"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:4
+#: ../policy/org.freedesktop.packagekit.policy.in.h:10
 msgid "Authentication is required to change software source parameters"
 msgstr "要更改軟體來源參數需先經過身份認證"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:5
+#: ../policy/org.freedesktop.packagekit.policy.in.h:11
 msgid ""
 "Authentication is required to consider a key used for signing packages as "
 "trusted"
 msgstr "要將一個用來簽署套件的金鑰列為信任的金鑰需先經過身份認證"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:6
+#: ../policy/org.freedesktop.packagekit.policy.in.h:12
 msgid "Authentication is required to install a signed package"
 msgstr "要安裝一個已簽署的套件需先經過身份認證"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:7
+#: ../policy/org.freedesktop.packagekit.policy.in.h:13
 msgid "Authentication is required to install an untrusted package"
 msgstr "要安裝非信任的套件需先經過身份認證"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:8
+#: ../policy/org.freedesktop.packagekit.policy.in.h:14
 msgid "Authentication is required to refresh the system sources"
 msgstr "要刷新系統來源需先經過身份認證"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:9
+#: ../policy/org.freedesktop.packagekit.policy.in.h:15
+#, fuzzy
+msgid "Authentication is required to reload the device with a new driver"
+msgstr "要刷新系統來源需先經過身份認證"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:16
 msgid "Authentication is required to remove packages"
 msgstr "要移除套件需先經過身份認證"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:10
+#: ../policy/org.freedesktop.packagekit.policy.in.h:17
 msgid "Authentication is required to rollback a transaction"
 msgstr "要復原一筆交易,需先經過身份認證"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:11
+#: ../policy/org.freedesktop.packagekit.policy.in.h:18
 msgid ""
 "Authentication is required to set the network proxy used for downloading "
 "packages"
 msgstr "要設定用來下載套件的網路 proxy 需先經過身份認證"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:12
+#: ../policy/org.freedesktop.packagekit.policy.in.h:19
 msgid "Authentication is required to update packages"
 msgstr "要更新套件需先經過身份認證"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:13
+#. SECURITY:
+#. - Normal users are allowed to cancel their own task without
+#. authentication, but a different user id needs the admin password
+#. to cancel another users task.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:25
 msgid "Cancel foreign task"
 msgstr "取消外來的工作"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:14
+#. SECURITY:
+#. - Normal users require admin authentication to enable or disable
+#. software sources as this can be used to enable new updates or
+#. install different versions of software.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:31
 msgid "Change software source parameters"
 msgstr "更改軟體來源參數"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:15
+#. SECURITY:
+#. - Normal users do not need authentication to install signed packages
+#. from signed repositories, as this cannot exploit a system.
+#. - Paranoid users (or parents!) can change this to 'auth_admin' or
+#. 'auth_admin_keep'.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:38
 msgid "Install signed package"
 msgstr "安裝已簽署的套件"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:16
+#. SECURITY:
+#. - Normal users require admin authentication to install untrusted or
+#. unrecognised packages, as allowing users to do this without a
+#. password would be a massive security hole.
+#. - This is not retained as each package should be authenticated.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:45
 msgid "Install untrusted local file"
 msgstr "安裝非信任的本地檔案"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:17
+#. SECURITY:
+#. - Normal users do not require admin authentication to refresh the
+#. cache, as this doesn't actually install or remove software.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:50
 msgid "Refresh system sources"
 msgstr "刷新系統來源"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:18
+#. SECURITY:
+#. - Normal users require admin authentication to rebind a driver
+#. so that it works after we install firmware.
+#. - This should not be set to 'yes' as unprivileged users could then
+#. try to rebind drivers in use, for instance security authentication
+#. devices.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:58
+msgid "Reload a device"
+msgstr ""
+
+#. SECURITY:
+#. - Normal users require admin authentication to remove packages as
+#. this can make the system unbootable or stop other applications from
+#. working.
+#. - Be sure to close the tool used to remove the packages after the
+#. admin authentication has been obtained, otherwise packages can still
+#. be removed. If this is not possible, change this authentication to
+#. 'auth_admin'.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:68
 msgid "Remove package"
 msgstr "移除套件"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:19
+#. SECURITY:
+#. - Normal users require admin authentication to rollback system state
+#. as this will change a large number of packages, and could expose the
+#. system to previously patched security vulnerabilities.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:74
 msgid "Rollback to a previous transaction"
 msgstr "復原至先前的交易"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:20
+#. SECURITY:
+#. - Normal users do not require admin authentication to set the proxy
+#. used for downloading packages.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:79
 msgid "Set network proxy"
 msgstr "設定網路 proxy"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:21
+#. SECURITY:
+#. - Normal users require admin authentication to add signing keys.
+#. - This implies adding an explicit trust, and should not be granted
+#. without a secure authentication.
+#. - This is not kept as each package should be authenticated.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:86
 msgid "Trust a key used for signing packages"
 msgstr "信任一個用來簽署套件的金鑰"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:22
+#. SECURITY:
+#. - Normal users do not require admin authentication to update the
+#. system as the packages will be signed, and the action is required
+#. to update the system when unattended.
+#. - Changing this to anything other than 'yes' will break unattended
+#. updates.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:94
 msgid "Update packages"
 msgstr "更新套件"
 
@@ -1025,48 +1466,88 @@ msgid ""
 msgstr "org.freedesktop.PackageKit.conf 檔案尚未安裝在系統目錄中:"
 
 #. TRANSLATORS: a backend is the system package tool, e.g. yum, apt
-#: ../src/pk-main.c:193
+#: ../src/pk-main.c:205
 msgid "Packaging backend to use, e.g. dummy"
 msgstr "欲使用的套件後端,例如「dummy」"
 
 #. TRANSLATORS: if we should run in the background
-#: ../src/pk-main.c:196
+#: ../src/pk-main.c:208
 msgid "Daemonize and detach from the terminal"
 msgstr "Daemon 化並由終端機分離"
 
 #. TRANSLATORS: if we should not monitor how long we are inactive for
-#: ../src/pk-main.c:202
+#: ../src/pk-main.c:214
 msgid "Disable the idle timer"
 msgstr "停用閒置計時器"
 
 #. TRANSLATORS: show version
-#: ../src/pk-main.c:205
+#: ../src/pk-main.c:217
 msgid "Show version and exit"
 msgstr "顯示版本並退出"
 
 #. TRANSLATORS: exit after we've started up, used for user profiling
-#: ../src/pk-main.c:208
+#: ../src/pk-main.c:220
 msgid "Exit after a small delay"
 msgstr "經過了短暫的延遲後退出"
 
 #. TRANSLATORS: exit straight away, used for automatic profiling
-#: ../src/pk-main.c:211
+#: ../src/pk-main.c:223
 msgid "Exit after the engine has loaded"
 msgstr "引擎載入後退出"
 
 #. TRANSLATORS: describing the service that is running
-#: ../src/pk-main.c:226
+#: ../src/pk-main.c:238
 msgid "PackageKit service"
 msgstr "PackageKit 服務"
 
 #. TRANSLATORS: fatal error, dbus is not running
-#: ../src/pk-main.c:263
+#: ../src/pk-main.c:275
 msgid "Cannot connect to the system bus"
 msgstr "無法連至系統 bus"
 
-#. TRANSLATORS: cannot register on system bus, unknown reason
-#: ../src/pk-main.c:313
-#, c-format
+#. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error follows
+#: ../src/pk-main.c:334
 msgid "Error trying to start:"
 msgstr "嘗試啟動時發生錯誤:"
 
+#: ../src/pk-polkit-action-lookup.c:147
+#, fuzzy
+msgid "To install debugging packages, extra sources need to be enabled"
+msgstr "沒有需要安裝的新套件"
+
+#. TRANSLATORS: is not GPG signed
+#: ../src/pk-polkit-action-lookup.c:168 ../src/pk-polkit-action-lookup.c:187
+msgid "The software is not from a trusted source."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:173
+msgid "Do not update this package unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:174
+msgid "Do not update these packages unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:192
+msgid "Do not install this package unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:193
+msgid "Do not install these packages unless you are sure it is safe to do so."
+msgstr ""
+
+#. TRANSLATORS: warn the user that all bets are off
+#: ../src/pk-polkit-action-lookup.c:199
+msgid "Malicious software can damage your computer or cause other harm."
+msgstr ""
+
+#. TRANSLATORS: too many packages to list each one
+#: ../src/pk-polkit-action-lookup.c:274
+#, fuzzy
+msgid "Many packages"
+msgstr "更新套件"
+
+#. TRANSLATORS: if the transaction is forced to install only trusted packages
+#: ../src/pk-polkit-action-lookup.c:334
+msgid "Only trusted"
+msgstr ""
commit 827e05db82e9fab711fa2da656706171db2a0073
Author: Anders F Bjorklund <afb at users.sourceforge.net>
Date:   Mon Aug 24 11:38:44 2009 +0200

    smart: fix duplicatation bug with cve/bugzilla urls

diff --git a/backends/smart/smartBackend.py b/backends/smart/smartBackend.py
index 44d98b2..1f08d5c 100755
--- a/backends/smart/smartBackend.py
+++ b/backends/smart/smartBackend.py
@@ -432,8 +432,8 @@ class PackageKitSmartBackend(PackageKitBaseBackend):
                 else:
                     vendor_urls.append(url)
             vendor_url = ';'.join(vendor_urls)
-            bugzilla_url = ';'.join(vendor_urls)
-            cve_url = ';'.join(vendor_urls)
+            bugzilla_url = ';'.join(bugzilla_urls)
+            cve_url = ';'.join(cve_urls)
 
             if errata.isRebootSuggested():
                 reboot = 'system'
commit ef168eb2845f75701dbb8dbb24dfa5a72a0b0442
Author: Anders F Bjorklund <afb at users.sourceforge.net>
Date:   Mon Aug 24 11:11:21 2009 +0200

    trivial: wrong image name

diff --git a/docs/html/pk-matrix.html b/docs/html/pk-matrix.html
index f138dc1..3cc008d 100644
--- a/docs/html/pk-matrix.html
+++ b/docs/html/pk-matrix.html
@@ -544,7 +544,7 @@
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- opkg -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- pisi -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- poldek -->
-<td><img src="img/status-yes.png" alt="[yes]"/></td><!-- portage -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- portage -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- ports -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- smart -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- urpmi -->
commit b66309e34ac9f6910341a329b0ff64e4c9ce1412
Author: مؤيد السعدي <muayyad.alsadi at ojuba.org>
Date:   Mon Aug 24 01:01:51 2009 +0300

    yumbackend: DeviceKit implementation for mediarepo

diff --git a/backends/yum/yumMediaManagerDeviceKit.py b/backends/yum/yumMediaManagerDeviceKit.py
new file mode 100644
index 0000000..a32766b
--- /dev/null
+++ b/backends/yum/yumMediaManagerDeviceKit.py
@@ -0,0 +1,152 @@
+# Licensed under the GNU General Public License Version 2
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, 
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# Copyright (C) 2009
+#    Muayyad Saleh Alsadi <alsadi at ojuba.org>
+
+"""
+This is the DeviceKit implementation of MediaManager module for dealing with removable media
+
+it's used like this
+
+    from yumMediaManagerDeviceKit import MediaManagerDeviceKit as MediaManager
+    manager = MediaManager()
+    media, found = None, False
+    for media in manager:
+        mnt = media.acquire() # get mount point, mount and lock if needed
+        found = is_it_the_needed_media(mnt)
+        if found: break
+    if found: copy_files ..etc.
+    if media: del media
+
+NOTE: releasing (unmounting and unlocking) is done when media is destructed
+"""
+
+#list:
+#dbus-send --system --print-reply --dest=org.freedesktop.DeviceKit.Disks
+#/org/freedesktop/DeviceKit/Disks
+#org.freedesktop.DeviceKit.Disks.EnumerateDevices
+#
+#filter:
+#dbus-send --system --print-reply --dest=org.freedesktop.DeviceKit.Disks
+#/org/freedesktop/DeviceKit/Disks/devices/sr0
+#org.freedesktop.DBus.Properties.Get
+#string:org.freedesktop.DeviceKit.Disks.Device string:"device-is-removable"
+#
+#mount:
+#dbus-send --system --print-reply --dest=org.freedesktop.DeviceKit.Disks
+#/org/freedesktop/DeviceKit/Disks/devices/sr0
+#org.freedesktop.DeviceKit.Disks.Device.FilesystemMount string:auto
+#array:string:
+
+import dbus
+import dbus.service
+from dbus.mainloop.glib import DBusGMainLoop
+from yumMediaManager import MediaManager, MediaDevice
+dbus_loop = DBusGMainLoop(set_as_default = True)
+bus = dbus.SystemBus()
+interface = 'org.freedesktop.DeviceKit.Disks'
+
+# TODO: catch some "except dbus.exceptions.DBusException"
+
+class MediaDeviceDeviceKit(MediaDevice):
+    """
+    You should just use acquire() to get the mount point (the implementation is
+    supposed to be smart enough to return mount point when it's already mounted)
+    You don't need to manually call release(), just destruct MediaDevice object
+    and the implementation should do that if needed.
+    """
+    def __init__(self, media_id):
+        """
+        media_id argument is the implementation-specific id in our case it's udi in hal, 
+        it's provided by MediaManager.
+        """
+        self._unmount_needed = False
+        self._unlock_needed = False
+        self.__uid = media_id
+        self.__dev = bus.get_object(interface, media_id)
+
+    def get_device_property(self, key):
+        return self.__dev.Get(interface+'.Device', key, dbus_interface="org.freedesktop.DBus.Properties")
+
+    def is_removable(self):
+        return bool(self.get_device_property('device-is-removable'))
+
+    def is_mounted(self):
+        return bool(self.get_device_property('device-is-mounted'))
+ 
+    def is_locked(self):
+        return False
+
+    def get_mount_point(self):
+        """
+        return the mount point or None if not mounted
+        """
+        if not self.is_mounted():
+            return None
+        l=self.get_device_property('device-mount-paths')
+        if l: return str(l[0]) or None
+        return None
+
+    def lock(self):
+        """
+        return True if lock is successfully acquired.
+        """
+        return False
+
+    def unlock(self):
+        """
+        return True if it was able to release the lock successfully.
+        """
+        return False
+
+    def mount(self):
+        """
+        mount the device and return the mount point.
+        If it's already mounted, just return the mount point.
+        """
+        if self.is_mounted():
+            return self.get_mount_point()
+        r=None
+        try:
+            r = str(self.__dev.FilesystemMount('auto', dbus.Array(dbus.String()), dbus_interface = interface+".Device")) or None
+        except dbus.exceptions.DBusException:
+            pass
+        return r
+
+    def unmount(self):
+        """
+        unmount the device and return True.
+        """
+        try:
+            self.__dev.FilesystemUnmount(dbus.Array(dbus.String()), dbus_interface = interface+".Device")
+        except dbus.exceptions.DBusException:
+            pass
+        return not self.is_mounted()
+
+class MediaManagerDeviceKit(MediaManager):
+    """Just iterate over an instance of this class to get MediaDevice objects"""
+    def __init__(self):
+        self.__dev = bus.get_object(interface, "/org/freedesktop/DeviceKit/Disks")
+
+    def __iter__(self):
+        #self.__close_tray_and_be_ready()
+        # use volume.disc to restrict that to optical discs
+        for i in self.__dev.EnumerateDevices(dbus_interface = interface):
+            o = MediaDeviceDeviceKit(i)
+            if o.is_removable():
+                yield o
+
commit bced7411525e3a768f55d48f1b920fa59d303d3e
Author: beckerde <beckerde at fedoraproject.org>
Date:   Sun Aug 23 13:43:24 2009 +0000

    Sending translation for Spanish

diff --git a/po/es.po b/po/es.po
index b946f6d..1fe85c0 100644
--- a/po/es.po
+++ b/po/es.po
@@ -9,8 +9,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: packagekit\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-08-20 08:42+0000\n"
-"PO-Revision-Date: 2009-08-20 09:46-0300\n"
+"POT-Creation-Date: 2009-08-23 08:29+0000\n"
+"PO-Revision-Date: 2009-08-23 10:38-0300\n"
 "Last-Translator: Domingo Becker <domingobecker at gmail.com>\n"
 "Language-Team: Fedora Spanish <fedora-trans-es at redhat.com>\n"
 "MIME-Version: 1.0\n"
@@ -547,7 +547,7 @@ msgstr "Subcomandos:"
 #: ../client/pk-monitor.c:128
 #: ../contrib/command-not-found/pk-command-not-found.c:616
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:550
-#: ../contrib/device-rebind/pk-device-rebind.c:252
+#: ../contrib/device-rebind/pk-device-rebind.c:293
 #: ../src/pk-main.c:211
 msgid "Show extra debugging information"
 msgstr "Mostrar información extra de depuración"
@@ -851,56 +851,56 @@ msgid "Please enter a number from 1 to %i: "
 msgstr "Introduzca un número de 1 a %i: "
 
 #. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/pk-plugin-install.c:433
+#: ../contrib/browser-plugin/pk-plugin-install.c:464
 msgid "Getting package information..."
 msgstr "Extrayendo información del paquete..."
 
 #. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/pk-plugin-install.c:439
+#: ../contrib/browser-plugin/pk-plugin-install.c:470
 #, c-format
 msgid "Run %s"
 msgstr "Ejecutar %s"
 
 #. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:445
+#: ../contrib/browser-plugin/pk-plugin-install.c:476
 msgid "Installed version"
 msgstr "Versión instalada"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:453
+#: ../contrib/browser-plugin/pk-plugin-install.c:484
 #, c-format
 msgid "Run version %s now"
 msgstr "Ejecutar la versión %s ahora"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:459
+#: ../contrib/browser-plugin/pk-plugin-install.c:490
 msgid "Run now"
 msgstr "Ejecutar ahora"
 
 #. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:465
+#: ../contrib/browser-plugin/pk-plugin-install.c:496
 #, c-format
 msgid "Update to version %s"
 msgstr "Actualizar a la versión %s"
 
 #. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:471
+#: ../contrib/browser-plugin/pk-plugin-install.c:502
 #, c-format
 msgid "Install %s now"
 msgstr "Instalar %s ahora"
 
 #. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:474
+#: ../contrib/browser-plugin/pk-plugin-install.c:505
 msgid "Version"
 msgstr "Versión"
 
 #. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/pk-plugin-install.c:479
+#: ../contrib/browser-plugin/pk-plugin-install.c:510
 msgid "No packages found for your system"
 msgstr "No se encontró ningún paquete para su sistema"
 
 #. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/pk-plugin-install.c:484
+#: ../contrib/browser-plugin/pk-plugin-install.c:515
 msgid "Installing..."
 msgstr "Instalando..."
 
@@ -1178,78 +1178,88 @@ msgid "Disabled %i debugging sources."
 msgstr "Se han deshabilitado %i fuentes para la depuración. "
 
 #. TRANSLATORS: couldn't open device to write
-#: ../contrib/device-rebind/pk-device-rebind.c:60
+#: ../contrib/device-rebind/pk-device-rebind.c:61
 msgid "Failed to open file"
 msgstr "Falló al abrir el archivo"
 
 #. TRANSLATORS: could not write to the device
-#: ../contrib/device-rebind/pk-device-rebind.c:69
+#: ../contrib/device-rebind/pk-device-rebind.c:70
 msgid "Failed to write to the file"
 msgstr "Falló al escribir en el archivo"
 
 #. TRANSLATORS: we failed to release the current driver
-#: ../contrib/device-rebind/pk-device-rebind.c:109
-#: ../contrib/device-rebind/pk-device-rebind.c:146
+#: ../contrib/device-rebind/pk-device-rebind.c:110
+#: ../contrib/device-rebind/pk-device-rebind.c:147
 msgid "Failed to write to device"
 msgstr "Falló al escribir en el dispositivo"
 
+#. TRANSLATORS: the device could not be found in sysfs
+#: ../contrib/device-rebind/pk-device-rebind.c:175
+msgid "Device could not be found"
+msgstr "No se pudo encontrar el dispositivo"
+
 #. TRANSLATORS: we failed to release the current driver
-#: ../contrib/device-rebind/pk-device-rebind.c:190
+#: ../contrib/device-rebind/pk-device-rebind.c:202
 msgid "Failed to unregister driver"
 msgstr "Falló al desregistrar el controlador"
 
 #. TRANSLATORS: we failed to bind the old driver
-#: ../contrib/device-rebind/pk-device-rebind.c:199
+#: ../contrib/device-rebind/pk-device-rebind.c:211
 msgid "Failed to register driver"
 msgstr "Falló al registrar el controlador"
 
 #. TRANSLATORS: user did not specify a device sysfs path that exists
-#: ../contrib/device-rebind/pk-device-rebind.c:221
+#: ../contrib/device-rebind/pk-device-rebind.c:260
 msgid "Device path not found"
 msgstr "Dirección de dispositivo no encontrado"
 
 #. TRANSLATORS: user did not specify a valid device sysfs path
-#: ../contrib/device-rebind/pk-device-rebind.c:229
+#: ../contrib/device-rebind/pk-device-rebind.c:268
 msgid "Incorrect device path specified"
 msgstr "Dirección de dispositivo especificada incorrecta"
 
 #. command line argument, simulate what would be done, but don't actually do it
-#: ../contrib/device-rebind/pk-device-rebind.c:255
+#: ../contrib/device-rebind/pk-device-rebind.c:296
 msgid "Don't actually touch the hardware, only simulate what would be done"
 msgstr "No tocar el hardware, solamente simular lo que se haría"
 
 #. TRANSLATORS: command line option: a list of files to install
-#: ../contrib/device-rebind/pk-device-rebind.c:258
+#: ../contrib/device-rebind/pk-device-rebind.c:299
 msgid "Device paths"
 msgstr "Dirección de dispositivo"
 
 #. TRANSLATORS: tool that gets called when the device needs reloading after installing firmware
-#: ../contrib/device-rebind/pk-device-rebind.c:264
+#: ../contrib/device-rebind/pk-device-rebind.c:314
 msgid "PackageKit Device Reloader"
 msgstr "Recargador de Dispositivo de PackageKit"
 
 #. TRANSLATORS: user did not specify a valid device sysfs path
-#: ../contrib/device-rebind/pk-device-rebind.c:272
+#: ../contrib/device-rebind/pk-device-rebind.c:322
 msgid "You need to specify at least one valid device path"
 msgstr "Necesita especificar al menos una dirección de dispositivo válida"
 
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:332
+msgid "This script can only be used by the root user"
+msgstr "Este script sólo puede ser usado por el usuario root"
+
 #. TRANSLATORS: we're going to verify the path first
-#: ../contrib/device-rebind/pk-device-rebind.c:281
+#: ../contrib/device-rebind/pk-device-rebind.c:341
 msgid "Verifying device path"
 msgstr "Verificando dirección de dispositivo"
 
 #. TRANSLATORS: user did not specify a device sysfs path that exists
-#: ../contrib/device-rebind/pk-device-rebind.c:286
+#: ../contrib/device-rebind/pk-device-rebind.c:346
 msgid "Failed to verify device path"
 msgstr "Falló al verificar la dirección del dispositivo"
 
 #. TRANSLATORS: we're going to try
-#: ../contrib/device-rebind/pk-device-rebind.c:300
+#: ../contrib/device-rebind/pk-device-rebind.c:360
 msgid "Attempting to rebind device"
 msgstr "Intentando reconectar dispositivo"
 
 #. TRANSLATORS: we failed to release the current driver
-#: ../contrib/device-rebind/pk-device-rebind.c:305
+#: ../contrib/device-rebind/pk-device-rebind.c:365
 msgid "Failed to rebind device"
 msgstr "Falló al reconectar el dispositivo"
 
commit 76c7935b14b406ad8c61bb59119f646b573848f9
Merge: 4d2327e... c8020af...
Author: Sebastian Heinlein <devel at glatzor.de>
Date:   Thu Aug 20 23:42:59 2009 +0200

    Merge branch 'master' of git+ssh://glatzor@git.packagekit.org/srv/git/PackageKit

commit c8020affbdf280f45412f7546b1748dc7c477058
Author: Daniel Nicoletti <dantti85-pk at yahoo.com.br>
Date:   Sun Aug 23 11:20:21 2009 +0100

    pkcon: use SimulateRemovePackages in preference to GetRequires

diff --git a/client/pk-console.c b/client/pk-console.c
index 4af8eac..8d81004 100644
--- a/client/pk-console.c
+++ b/client/pk-console.c
@@ -862,7 +862,7 @@ pk_console_remove_packages (PkClient *client, gchar **packages, GError **error)
 	package_ids = pk_ptr_array_to_strv (array);
 
 	/* are we dumb and can't check for requires? */
-	if (!pk_bitfield_contain (roles, PK_ROLE_ENUM_GET_REQUIRES)) {
+	if (!pk_bitfield_contain (roles, PK_ROLE_ENUM_SIMULATE_REMOVE_PACKAGES)) {
 		/* no, just try to remove it without deps */
 		ret = pk_console_remove_only (client, package_ids, FALSE, &error_local);
 		if (!ret) {
@@ -883,9 +883,9 @@ pk_console_remove_packages (PkClient *client, gchar **packages, GError **error)
 
 	egg_debug ("Getting installed requires for %s", package_ids[0]);
 	/* see if any packages require this one */
-	ret = pk_client_get_requires (client_sync, pk_bitfield_value (PK_FILTER_ENUM_INSTALLED), package_ids, TRUE, error);
+	ret = pk_client_simulate_remove_packages (client_sync, package_ids, error);
 	if (!ret) {
-		egg_warning ("failed to get requires");
+		egg_warning ("failed to simulate a package removal");
 		goto out;
 	}
 
@@ -894,7 +894,7 @@ pk_console_remove_packages (PkClient *client, gchar **packages, GError **error)
 	pk_obj_list_add_list (PK_OBJ_LIST(list), PK_OBJ_LIST(list_single));
 	g_object_unref (list_single);
 
-	/* one of the get-requires failed */
+	/* one of the simulate-remove-packages failed */
 	if (!ret)
 		goto out;
 
commit 06a053be8502896173947835e2c7f70aa9affef0
Author: Daniel Nicoletti <dantti85-pk at yahoo.com.br>
Date:   Sun Aug 23 11:15:26 2009 +0100

    pkcon: don't do the bar for simulate actions

diff --git a/client/pk-console.c b/client/pk-console.c
index fd196fe..4af8eac 100644
--- a/client/pk-console.c
+++ b/client/pk-console.c
@@ -194,7 +194,11 @@ pk_console_package_cb (PkClient *client, const PkPackageObj *obj, gpointer data)
 	    role == PK_ROLE_ENUM_GET_PACKAGES ||
 	    role == PK_ROLE_ENUM_GET_DEPENDS ||
 	    role == PK_ROLE_ENUM_GET_REQUIRES ||
-	    role == PK_ROLE_ENUM_GET_UPDATES) {
+	    role == PK_ROLE_ENUM_GET_UPDATES ||
+	    role == PK_ROLE_ENUM_SIMULATE_INSTALL_FILES ||
+	    role == PK_ROLE_ENUM_SIMULATE_INSTALL_PACKAGES ||
+	    role == PK_ROLE_ENUM_SIMULATE_REMOVE_PACKAGES ||
+	    role == PK_ROLE_ENUM_SIMULATE_UPDATE_PACKAGES) {
 		/* don't do the bar */
 		g_print ("%s\t%s\t%s\n", info_pad, package_pad, obj->summary);
 		goto out;
commit 7828424c278388fc69502f504af9fe2d9cf9b4dd
Author: Daniel Nicoletti <dantti85-pk at yahoo.com.br>
Date:   Sun Aug 23 11:12:59 2009 +0100

    More trivial fixes for simulate

diff --git a/src/pk-transaction.c b/src/pk-transaction.c
index 48bdf2b..316e37d 100644
--- a/src/pk-transaction.c
+++ b/src/pk-transaction.c
@@ -1401,21 +1401,21 @@ pk_transaction_set_running (PkTransaction *transaction)
 		desc->simulate_install_files (priv->backend, priv->cached_package_ids);
 	else if (priv->role == PK_ROLE_ENUM_SIMULATE_INSTALL_PACKAGES) {
 		if (desc->simulate_install_packages != NULL) {
-		    desc->simulate_install_packages (priv->backend, priv->cached_package_ids);
+			desc->simulate_install_packages (priv->backend, priv->cached_package_ids);
 		} else {
-		    desc->get_depends (priv->backend, PK_FILTER_ENUM_NOT_INSTALLED, priv->cached_package_ids, TRUE);
+			desc->get_depends (priv->backend, PK_FILTER_ENUM_NOT_INSTALLED, priv->cached_package_ids, TRUE);
 		}
 	} else if (priv->role == PK_ROLE_ENUM_SIMULATE_REMOVE_PACKAGES) {
 		if (desc->simulate_remove_packages != NULL) {
-		    desc->simulate_remove_packages (priv->backend, priv->cached_package_ids);
+			desc->simulate_remove_packages (priv->backend, priv->cached_package_ids);
 		} else {
-		    desc->get_requires (priv->backend, PK_FILTER_ENUM_INSTALLED, priv->cached_package_ids, TRUE);
+			desc->get_requires (priv->backend, PK_FILTER_ENUM_INSTALLED, priv->cached_package_ids, TRUE);
 		}
 	} else if (priv->role == PK_ROLE_ENUM_SIMULATE_UPDATE_PACKAGES) {
 		if (desc->simulate_update_packages != NULL) {
-		    desc->simulate_update_packages (priv->backend, priv->cached_package_ids);
+			desc->simulate_update_packages (priv->backend, priv->cached_package_ids);
 		} else {
-		    desc->get_depends (priv->backend, PK_FILTER_ENUM_NOT_INSTALLED, priv->cached_package_ids, TRUE);
+			desc->get_depends (priv->backend, PK_FILTER_ENUM_NOT_INSTALLED, priv->cached_package_ids, TRUE);
 		}
 	} else {
 		egg_error ("failed to run as role not assigned");
@@ -4227,7 +4227,7 @@ pk_transaction_simulate_install_packages (PkTransaction *transaction, gchar **pa
 
 	/* not implemented yet */
 	if (transaction->priv->backend->desc->simulate_install_packages == NULL &&
-	    transaction->priv->backend->desc->get_depends               == NULL) {
+	    transaction->priv->backend->desc->get_depends == NULL) {
 		error = g_error_new (PK_TRANSACTION_ERROR, PK_TRANSACTION_ERROR_NOT_SUPPORTED,
 				     "SimulateInstallPackages not yet supported by backend");
 		pk_transaction_release_tid (transaction);
@@ -4303,7 +4303,7 @@ pk_transaction_simulate_remove_packages (PkTransaction *transaction, gchar **pac
 
 	/* not implemented yet */
 	if (transaction->priv->backend->desc->simulate_remove_packages == NULL &&
-	    transaction->priv->backend->desc->get_requires             == NULL) {
+	    transaction->priv->backend->desc->get_requires == NULL) {
 		error = g_error_new (PK_TRANSACTION_ERROR, PK_TRANSACTION_ERROR_NOT_SUPPORTED,
 				     "SimulateRemovePackages not yet supported by backend");
 		pk_transaction_release_tid (transaction);
@@ -4378,8 +4378,8 @@ pk_transaction_simulate_update_packages (PkTransaction *transaction, gchar **pac
 	egg_debug ("SimulateUpdatePackages method called: %s", package_ids[0]);
 
 	/* not implemented yet */
-	if (transaction->priv->backend->desc->simulate_update_packages  == NULL &&
-	    transaction->priv->backend->desc->get_depends               == NULL) {
+	if (transaction->priv->backend->desc->simulate_update_packages == NULL &&
+	    transaction->priv->backend->desc->get_depends == NULL) {
 		error = g_error_new (PK_TRANSACTION_ERROR, PK_TRANSACTION_ERROR_NOT_SUPPORTED,
 				     "SimulateUpdatePackages not yet supported by backend");
 		pk_transaction_release_tid (transaction);
commit ab67bba1e691aee483c98187ceb9e898f9964638
Author: Matthias Clasen <mclasen at redhat.com>
Date:   Sun Aug 23 10:50:28 2009 +0100

    Add more plugin polish with coloured backgrounds and curved edges

diff --git a/contrib/browser-plugin/README b/contrib/browser-plugin/README
index ccf5951..5dbb43b 100644
--- a/contrib/browser-plugin/README
+++ b/contrib/browser-plugin/README
@@ -113,8 +113,6 @@ Add the following code to your web page:
       <param name="displayname" value="GNU Backgammon"/>
       <!-- Whitespace separated list of package names -->
       <param name="packagenames" value="gnubg"/>
-      <!-- List of basenames of possible desktop files (no .desktop extension) -->
-      <param name="desktopnames" value="gnubg fedora-gnubg"/>
     </object>
 
 Unfortunately browser plugins have no mechanism for size negotiation, so you
@@ -135,6 +133,25 @@ Using em sizes rather than points is probably a good idea to help with the
 font size issue, but it doesn't completely resolve it since the text of the
 plugin will be sized based on the system font size, not on the web pages font.
 
+Customization
+=============
+
+The default appearance of the plugin is very plain, with a rectangular outline
+and a white background. To customize this appearance, you can add the
+optional parameters radius and color to your web page. This will make the
+plugin draw a rectangle with rounded corners, and use the given color
+instead of white.
+
+    <!-- radius for rounded corners -->
+    <param name="radius" value="10"/>
+    <!-- background color, must be parsable by pango_color_parse() -->
+    <param name="color" value="#aeaeff"/>
+
+
 Owen Taylor <otaylor at redhat.com>
 July 24, 2008
 
+Last updated:
+
+Matthias Clasen <mclasen at redhat.com>
+August 21, 2009
diff --git a/contrib/browser-plugin/pk-main.c b/contrib/browser-plugin/pk-main.c
index ba94217..5a18821 100644
--- a/contrib/browser-plugin/pk-main.c
+++ b/contrib/browser-plugin/pk-main.c
@@ -145,7 +145,9 @@ pk_main_newp (NPMIMEType pluginType, NPP instance, uint16_t mode, int16_t argc,
 	/* set data */
 	for (i=0; i<argc; i++) {
 		if (g_strcmp0 (argn[i], "displayname") == 0 ||
-		    g_strcmp0 (argn[i], "packagenames") == 0)
+		    g_strcmp0 (argn[i], "packagenames") == 0 ||
+                    g_strcmp0 (argn[i], "radius") == 0 ||
+                    g_strcmp0 (argn[i], "color") == 0)
 			pk_plugin_set_data (plugin, argn[i], argv[i]);
 	}
 
@@ -241,6 +243,7 @@ pk_main_create_window (PkPlugin *plugin)
 		/* show window */
 		gdk_window_show (gdk_window);
 		g_object_set (plugin, "gdk-window", gdk_window, NULL);
+
 	} else {
 		gdk_window_move_resize (gdk_window, 0, 0, width, height);
 	}
diff --git a/contrib/browser-plugin/pk-plugin-install.c b/contrib/browser-plugin/pk-plugin-install.c
index d630f7b..cc12f81 100644
--- a/contrib/browser-plugin/pk-plugin-install.c
+++ b/contrib/browser-plugin/pk-plugin-install.c
@@ -22,15 +22,17 @@
 
 #include <config.h>
 
-#include <glib/gi18n-lib.h>
+#include <stdlib.h>
 #include <string.h>
+#include <math.h>
+
+#include <glib/gi18n-lib.h>
 #include <gio/gdesktopappinfo.h>
 #include <pango/pangocairo.h>
 #include <dbus/dbus-glib.h>
 #include <gdk/gdkx.h>
 #include <gtk/gtk.h>
 #include <math.h>
-
 #include "pk-main.h"
 #include "pk-plugin-install.h"
 
@@ -90,7 +92,7 @@ pk_plugin_install_refresh (PkPluginInstall *self)
 }
 
 #define SPINNER_LINES 12
-#define SPINNER_SIZE 20
+#define SPINNER_SIZE 24
 
 static gboolean
 spinner_timeout (gpointer data)
@@ -304,7 +306,7 @@ pk_plugin_install_error_code_cb (PkClient *client, PkErrorCodeEnum code, const g
  * pk_plugin_install_finished_cb:
  **/
 static void
-pk_plugin_install_finished_cb (PkClient *client, PkExitEnum exit, guint runtime, PkPluginInstall *self)
+pk_plugin_install_finished_cb (PkClient *client, PkExitEnum exit_code, guint runtime, PkPluginInstall *self)
 {
 	if (self->priv->status == IN_PROGRESS) {
 		pk_plugin_install_set_status (self, UNAVAILABLE);
@@ -573,14 +575,14 @@ static void
 pk_plugin_install_draw_spinner (PkPlugin *plugin, cairo_t *cr, int cx, int cy)
 {
 	gint width, height;
-	gdouble x, y;
-	gdouble radius;
-	gdouble half;
+	double x, y;
+	double radius;
+	double half;
 	gint i;
 
 	PkPluginInstall *self = PK_PLUGIN_INSTALL (plugin);
 
-	cairo_set_operator (cr, CAIRO_OPERATOR_OVER);
+        cairo_set_operator (cr, CAIRO_OPERATOR_OVER);
 
 	width = height = SPINNER_SIZE;
 	radius = MIN (width / 2.0, height / 2.0);
@@ -609,6 +611,41 @@ pk_plugin_install_draw_spinner (PkPlugin *plugin, cairo_t *cr, int cx, int cy)
 }
 
 /**
+ * pk_plugin_install_rounded_rectangle:
+ **/
+static void
+pk_plugin_install_rounded_rectangle (cairo_t *cr, gdouble x, gdouble y,
+				     gdouble w, gdouble h, gdouble radius)
+{
+	const gdouble ARC_TO_BEZIER = 0.55228475;
+	gdouble c;
+
+	if (radius == 0) {
+		cairo_rectangle (cr, x, y, w, h);
+		return;
+	}
+
+	if (radius > w - radius)
+		radius = w / 2;
+	if (radius > h - radius)
+		radius = h / 2;
+
+	c = ARC_TO_BEZIER * radius;
+
+	cairo_new_path (cr);
+	cairo_move_to (cr, x + radius, y);
+	cairo_rel_line_to (cr, w - 2 * radius, 0);
+	cairo_rel_curve_to (cr, c, 0, radius, c, radius, radius);
+	cairo_rel_line_to (cr, 0, h - 2 * radius);
+	cairo_rel_curve_to (cr, 0, c, c - radius, radius, -radius, radius);
+	cairo_rel_line_to (cr, -w + 2 * radius, 0);
+	cairo_rel_curve_to (cr, -c, 0, -radius, -c, -radius, -radius);
+	cairo_rel_line_to (cr, 0, -h + 2 * radius);
+	cairo_rel_curve_to (cr, 0, -c, radius - c, -radius, radius, -radius);
+	cairo_close_path (cr);
+}
+
+/**
  * pk_plugin_install_draw:
  **/
 static gboolean
@@ -620,11 +657,16 @@ pk_plugin_install_draw (PkPlugin *plugin, cairo_t *cr)
 	guint y;
 	guint width;
 	guint height;
+	guint radius;
 	const gchar *filename;
 	GtkIconTheme *theme;
 	GdkPixbuf *pixbuf;
 	PangoRectangle rect;
 	PkPluginInstall *self = PK_PLUGIN_INSTALL (plugin);
+	guint sep;
+	const gchar *data;
+	PangoColor color;
+	gboolean has_color;
 
 	/* get parameters */
 	g_object_get (self,
@@ -634,6 +676,20 @@ pk_plugin_install_draw (PkPlugin *plugin, cairo_t *cr)
 		      "height", &height,
 		      NULL);
 
+	data = pk_plugin_get_data (plugin, "radius");
+	if (data)
+		radius = atoi (data);
+	else
+		radius = 0;
+
+	data = pk_plugin_get_data (plugin, "color");
+	if (data)
+		has_color = pango_color_parse (&color, data);
+	else
+		has_color = FALSE;
+
+	sep = MAX ((height - 48) / 2, radius);
+
 	pk_debug ("drawing on %ux%u (%ux%u)", x, y, width, height);
 
 	/* get properties */
@@ -643,14 +699,20 @@ pk_plugin_install_draw (PkPlugin *plugin, cairo_t *cr)
 		goto update_spinner;
 	}
 
-	/* fill background */
+        /* fill background */
 	pk_plugin_install_set_source_from_rgba (cr, background);
 	cairo_rectangle (cr, x, y, width, height);
 	cairo_fill (cr);
+	if (has_color)
+		cairo_set_source_rgb (cr, color.red / 65536.0, color.green / 65536.0, color.blue / 65536.0);
+	else
+		pk_plugin_install_set_source_from_rgba (cr, background);
+	pk_plugin_install_rounded_rectangle (cr, x + 0.5, y + 0.5, width - 1, height - 1, radius);
+	cairo_fill (cr);
 
         /* grey outline */
 	cairo_set_source_rgb (cr, 0.5, 0.5, 0.5);
-	cairo_rectangle (cr, x + 0.5, y + 0.5, width - 1, height - 1);
+	pk_plugin_install_rounded_rectangle (cr, x + 0.5, y + 0.5, width - 1, height - 1, radius);
 	cairo_set_line_width (cr, 1);
 	cairo_stroke (cr);
 
@@ -662,32 +724,37 @@ pk_plugin_install_draw (PkPlugin *plugin, cairo_t *cr)
 	pixbuf = gtk_icon_theme_load_icon (theme, filename, 48, GTK_ICON_LOOKUP_FORCE_SIZE, NULL);
 	if (pixbuf == NULL)
 		goto skip;
-	gdk_cairo_set_source_pixbuf (cr, pixbuf, x + PK_PLUGIN_INSTALL_MARGIN, y + PK_PLUGIN_INSTALL_MARGIN);
-	cairo_rectangle (cr, x + PK_PLUGIN_INSTALL_MARGIN, y + PK_PLUGIN_INSTALL_MARGIN, 48, 48);
+
+	gdk_cairo_set_source_pixbuf (cr, pixbuf, x + sep, y + (height - 48) / 2);
+	cairo_rectangle (cr, x + sep, y + (height - 48) / 2, 48, 48);
 	cairo_fill (cr);
 	g_object_unref (pixbuf);
 
 skip:
 	/* write text */
 	pk_plugin_install_ensure_layout (self, cr, font_desc, link);
-	cairo_move_to (cr, (x + PK_PLUGIN_INSTALL_MARGIN*2) + 48, y + PK_PLUGIN_INSTALL_MARGIN + PK_PLUGIN_INSTALL_MARGIN);
+	pango_layout_get_pixel_extents (self->priv->pango_layout, &rect, NULL);
+	cairo_move_to (cr, x + sep + 48 + sep, y + (height - (rect.height + 48) / 2) / 2);
 	pk_plugin_install_set_source_from_rgba (cr, foreground);
 	pango_cairo_show_layout (cr, self->priv->pango_layout);
 
 update_spinner:
 	if (self->priv->status == INSTALLING) {
 		pango_layout_get_pixel_extents (self->priv->pango_layout, &rect, NULL);
-		pk_plugin_install_set_source_from_rgba (cr, background);
+		if (has_color)
+			cairo_set_source_rgb (cr, color.red / 65536.0, color.green / 65536.0, color.blue / 65536.0);
+		else
+			pk_plugin_install_set_source_from_rgba (cr, background);
 		cairo_rectangle (cr,
-				 x + PK_PLUGIN_INSTALL_MARGIN*2 + 48 + rect.width + PK_PLUGIN_INSTALL_MARGIN,
-				 y + PK_PLUGIN_INSTALL_MARGIN + PK_PLUGIN_INSTALL_MARGIN,
+				 x + sep + 48 + sep + rect.width + 2 * sep,
+				 y + (height - SPINNER_SIZE) / 2,
 				 SPINNER_SIZE, SPINNER_SIZE);
 		cairo_fill (cr);
 		pk_plugin_install_set_source_from_rgba (cr, foreground);
 
 		pk_plugin_install_draw_spinner (plugin, cr,
-						x + PK_PLUGIN_INSTALL_MARGIN*2 + 48 + rect.width + PK_PLUGIN_INSTALL_MARGIN,
-						y + PK_PLUGIN_INSTALL_MARGIN + PK_PLUGIN_INSTALL_MARGIN);
+						x + sep + 48 + sep + rect.width + 2 * sep,
+						y + (height - SPINNER_SIZE) / 2);
 	}
 
 	return TRUE;
@@ -748,14 +815,27 @@ pk_plugin_install_get_link_index (PkPluginInstall *self, gint x, gint y)
 	gint seen_links = 0;
 	gboolean in_link = FALSE;
 	gint result = -1;
+	guint height;
+	guint radius;
+	guint sep;
+	PangoRectangle rect;
+	const char *data;
 
 	/* Coordinates are relative to origin of plugin (different from drawing) */
 
 	if (!self->priv->pango_layout)
 		return -1;
 
-	x -= (PK_PLUGIN_INSTALL_MARGIN * 2) + 48;
-	y -= (PK_PLUGIN_INSTALL_MARGIN * 2);
+	g_object_get (self, "height", &height, NULL);
+	data = pk_plugin_get_data (PK_PLUGIN (self), "radius");
+	if (data)
+		radius = atoi (data);
+	else
+		radius = 0;
+	sep = MAX ((height - 48) / 2, radius);
+	pango_layout_get_pixel_extents (self->priv->pango_layout, &rect, NULL);
+	x -= sep + 48 + sep;
+	y -= (height - (rect.height + 48) / 2) / 2;
 
 	if (!pango_layout_xy_to_index (self->priv->pango_layout, x * PANGO_SCALE, y * PANGO_SCALE, &idx, &trailing))
 		return - 1;
@@ -962,39 +1042,32 @@ pk_plugin_install_button_release (PkPlugin *plugin, gint x, gint y, Time event_t
 	return TRUE;
 }
 
-/**
- * pk_plugin_set_cursor:
- **/
 static void
 pk_plugin_set_cursor (GdkWindow     *window,
-		      GdkCursorType  cursor)
+                      GdkCursorType  cursor)
 {
 	Display *display;
 	Cursor xcursor;
 
 	display = GDK_DISPLAY_XDISPLAY (gdk_display_get_default());
-	if (cursor >= 0)
+        if (cursor >= 0)
 		xcursor = XCreateFontCursor (display, cursor);
 	else
 		xcursor = None;
 	XDefineCursor (display, GDK_WINDOW_XID (window), xcursor);
-
 }
 
-/**
- * pk_plugin_install_motion:
- **/
 static gboolean
 pk_plugin_install_motion (PkPlugin *plugin,
-			  gint      x,
-			  gint      y)
+                          gint      x,
+                          gint      y)
 {
 	PkPluginInstall *self = PK_PLUGIN_INSTALL (plugin);
 	GdkWindow *window;
 	gint idx;
 
 	idx = pk_plugin_install_get_link_index (self, x, y);
-	g_object_get (plugin, "gdk-window", &window, NULL);
+        g_object_get (plugin, "gdk-window", &window, NULL);
 
 	if (idx < 0) {
 		pk_plugin_set_cursor (window, -1);
diff --git a/contrib/browser-plugin/tests/test.html b/contrib/browser-plugin/tests/test.html
index 24766ac..1d6b2bb 100644
--- a/contrib/browser-plugin/tests/test.html
+++ b/contrib/browser-plugin/tests/test.html
@@ -15,11 +15,15 @@
   <body>
     <object type="application/x-packagekit-plugin" width="500" height="200" class="packagekit-plugin">
       <param name="packagenames" value="firefox mozilla-firefox"/>
+      <param name="radius" value="10"/>
+      <param name="color" value="#aeaeff"/>
     </object>
     <br/><br/>
     <object type="application/x-packagekit-plugin" width="500" height="200" class="packagekit-plugin">
       <param name="displayname" value="KStars"/>
       <param name="packagenames" value="kdeedu"/>
+      <param name="radius" value="5"/>
+      <param name="color" value="#ffaeff"/>
     </object>
     <br/><br/>
     <object type="application/x-packagekit-plugin" width="500" height="200" class="packagekit-plugin">
commit de5da16717aea922f74cb0228b7c58a15264f4e2
Author: raven <raven at fedoraproject.org>
Date:   Sat Aug 22 10:11:39 2009 +0000

    Sending translation for Polish

diff --git a/po/pl.po b/po/pl.po
index 48b89ce..3000dc6 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -5,8 +5,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: pl\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-08-03 14:45+0000\n"
-"PO-Revision-Date: 2009-08-03 20:42+0200\n"
+"POT-Creation-Date: 2009-08-22 02:51+0000\n"
+"PO-Revision-Date: 2009-08-22 12:10+0200\n"
 "Last-Translator: Piotr DrÄ…g <piotrdrag at gmail.com>\n"
 "Language-Team: Polish <pl at li.org>\n"
 "MIME-Version: 1.0\n"
@@ -41,7 +41,7 @@ msgstr "Fałsz"
 
 #. TRANSLATORS: this is the transactions role, e.g. "update-system"
 #. TRANSLATORS: the trasaction role, e.g. update-system
-#: ../client/pk-console.c:237 ../src/pk-polkit-action-lookup.c:331
+#: ../client/pk-console.c:237 ../src/pk-polkit-action-lookup.c:327
 msgid "Role"
 msgstr "Rola"
 
@@ -56,7 +56,7 @@ msgstr "(sekundy)"
 
 #. TRANSLATORS: this is The command line used to do the action
 #. TRANSLATORS: the command line of the thing that wants the authentication
-#: ../client/pk-console.c:246 ../src/pk-polkit-action-lookup.c:345
+#: ../client/pk-console.c:246 ../src/pk-polkit-action-lookup.c:341
 msgid "Command line"
 msgstr "Wiersz poleceń"
 
@@ -131,7 +131,7 @@ msgstr "Szczegóły aktualizacji:"
 
 #. TRANSLATORS: details about the update, package name and version
 #. TRANSLATORS: title, the names of the packages that the method is processing
-#: ../client/pk-console.c:341 ../src/pk-polkit-action-lookup.c:356
+#: ../client/pk-console.c:341 ../src/pk-polkit-action-lookup.c:352
 msgid "Package"
 msgid_plural "Packages"
 msgstr[0] "Pakiet"
@@ -530,9 +530,9 @@ msgstr "Podpolecenia:"
 #. TRANSLATORS: if we should show debugging data
 #: ../client/pk-console.c:1781 ../client/pk-generate-pack.c:185
 #: ../client/pk-monitor.c:128
-#: ../contrib/command-not-found/pk-command-not-found.c:610
+#: ../contrib/command-not-found/pk-command-not-found.c:616
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:550
-#: ../src/pk-main.c:211
+#: ../contrib/device-rebind/pk-device-rebind.c:293 ../src/pk-main.c:211
 msgid "Show extra debugging information"
 msgstr "Wyświetla dodatkowe informacje o debugowaniu"
 
@@ -833,6 +833,60 @@ msgstr "Proszę wybrać poprawny pakiet: "
 msgid "Please enter a number from 1 to %i: "
 msgstr "Proszę podać numer od 1 do %i: "
 
+#. TRANSLATORS: when we are getting data from the daemon
+#: ../contrib/browser-plugin/pk-plugin-install.c:464
+msgid "Getting package information..."
+msgstr "Pobieranie informacji o pakiecie..."
+
+#. TRANSLATORS: run an applicaiton
+#: ../contrib/browser-plugin/pk-plugin-install.c:470
+#, c-format
+msgid "Run %s"
+msgstr "Uruchom %s"
+
+#. TRANSLATORS: show the installed version of a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:476
+msgid "Installed version"
+msgstr "Zainstalowana wersja"
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:484
+#, c-format
+msgid "Run version %s now"
+msgstr "Uruchom wersjÄ™ %s"
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:490
+msgid "Run now"
+msgstr "Uruchom teraz"
+
+#. TRANSLATORS: update to a new version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:496
+#, c-format
+msgid "Update to version %s"
+msgstr "Zaktualizuj do wersji %s"
+
+#. TRANSLATORS: To install a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:502
+#, c-format
+msgid "Install %s now"
+msgstr "Zainstaluj %s"
+
+#. TRANSLATORS: the version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:505
+msgid "Version"
+msgstr "Wersja"
+
+#. TRANSLATORS: noting found, so can't install
+#: ../contrib/browser-plugin/pk-plugin-install.c:510
+msgid "No packages found for your system"
+msgstr "Nie znaleziono pakietów dla systemu"
+
+#. TRANSLATORS: package is being installed
+#: ../contrib/browser-plugin/pk-plugin-install.c:515
+msgid "Installing..."
+msgstr "Instalowanie..."
+
 #. TRANSLATORS: downloading repo data so we can search
 #: ../contrib/command-not-found/pk-command-not-found.c:349
 msgid "Downloading details about the software sources."
@@ -854,128 +908,74 @@ msgid "Loading list of packages."
 msgstr "Wczytywanie listy pakietów."
 
 #. TRANSLATORS: we failed to find the package, this shouldn't happen
-#: ../contrib/command-not-found/pk-command-not-found.c:414
+#: ../contrib/command-not-found/pk-command-not-found.c:420
 msgid "Failed to search for file"
 msgstr "Znalezienie pliku nie powiodło się"
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:551
+#: ../contrib/command-not-found/pk-command-not-found.c:557
 msgid "Failed to launch:"
 msgstr "Uruchomienie nie powiodło się:"
 
 #. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/command-not-found/pk-command-not-found.c:626
+#: ../contrib/command-not-found/pk-command-not-found.c:632
 msgid "PackageKit Command Not Found"
 msgstr "Nie znaleziono polecenia PackageKit"
 
 #. TRANSLATORS: the prefix of all the output telling the user why it's not executing
-#: ../contrib/command-not-found/pk-command-not-found.c:652
+#: ../contrib/command-not-found/pk-command-not-found.c:658
 msgid "Command not found."
 msgstr "Nie znaleziono polecenia."
 
 #. TRANSLATORS: tell the user what we think the command is
-#: ../contrib/command-not-found/pk-command-not-found.c:659
+#: ../contrib/command-not-found/pk-command-not-found.c:665
 msgid "Similar command is:"
 msgstr "Podobne polecenie:"
 
 #. TRANSLATORS: Ask the user if we should run the similar command
-#: ../contrib/command-not-found/pk-command-not-found.c:668
+#: ../contrib/command-not-found/pk-command-not-found.c:674
 msgid "Run similar command:"
 msgstr "Wykonaj podobne polecenie:"
 
 #. TRANSLATORS: show the user a list of commands that they could have meant
 #. TRANSLATORS: show the user a list of commands we could run
-#: ../contrib/command-not-found/pk-command-not-found.c:680
-#: ../contrib/command-not-found/pk-command-not-found.c:689
+#: ../contrib/command-not-found/pk-command-not-found.c:686
+#: ../contrib/command-not-found/pk-command-not-found.c:695
 msgid "Similar commands are:"
 msgstr "Podobne polecenia:"
 
 #. TRANSLATORS: ask the user to choose a file to run
-#: ../contrib/command-not-found/pk-command-not-found.c:696
+#: ../contrib/command-not-found/pk-command-not-found.c:702
 msgid "Please choose a command to run"
 msgstr "Proszę wybrać polecenie do wykonania"
 
 #. TRANSLATORS: tell the user what package provides the command
-#: ../contrib/command-not-found/pk-command-not-found.c:715
+#: ../contrib/command-not-found/pk-command-not-found.c:721
 msgid "The package providing this file is:"
 msgstr "Pakiet dostarczajÄ…cy ten plik:"
 
 #. TRANSLATORS: as the user if we want to install a package to provide the command
-#: ../contrib/command-not-found/pk-command-not-found.c:720
+#: ../contrib/command-not-found/pk-command-not-found.c:726
 #, c-format
 msgid "Install package '%s' to provide command '%s'?"
 msgstr "Zainstalować pakiet \"%s\", aby dostarczyć polecenie \"%s\"?"
 
 #. TRANSLATORS: Show the user a list of packages that provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:741
+#: ../contrib/command-not-found/pk-command-not-found.c:747
 msgid "Packages providing this file are:"
 msgstr "Pakiety dostarczajÄ…ce ten plik:"
 
 #. TRANSLATORS: Show the user a list of packages that they can install to provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:750
+#: ../contrib/command-not-found/pk-command-not-found.c:756
 msgid "Suitable packages are:"
 msgstr "Odpowiednie pakiety:"
 
 #. get selection
 #. TRANSLATORS: ask the user to choose a file to install
-#: ../contrib/command-not-found/pk-command-not-found.c:758
+#: ../contrib/command-not-found/pk-command-not-found.c:764
 msgid "Please choose a package to install"
 msgstr "Proszę wybrać pakiet do zainstalowania"
 
-#. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/pk-plugin-install.c:433
-msgid "Getting package information..."
-msgstr "Pobieranie informacji o pakiecie..."
-
-#. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/pk-plugin-install.c:439
-#, c-format
-msgid "Run %s"
-msgstr "Uruchom %s"
-
-#. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:445
-msgid "Installed version"
-msgstr "Zainstalowana wersja"
-
-#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:453
-#, c-format
-msgid "Run version %s now"
-msgstr "Uruchom wersjÄ™ %s"
-
-#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:459
-msgid "Run now"
-msgstr "Uruchom teraz"
-
-#. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:465
-#, c-format
-msgid "Update to version %s"
-msgstr "Zaktualizuj do wersji %s"
-
-#. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:471
-#, c-format
-msgid "Install %s now"
-msgstr "Zainstaluj %s"
-
-#. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:474
-msgid "Version"
-msgstr "Wersja"
-
-#. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/pk-plugin-install.c:479
-msgid "No packages found for your system"
-msgstr "Nie znaleziono pakietów dla systemu"
-
-#. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/pk-plugin-install.c:484
-msgid "Installing..."
-msgstr "Instalowanie..."
-
 #. TRANSLATORS: we are starting to install the packages
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:187
 msgid "Starting install"
@@ -1161,6 +1161,92 @@ msgstr "Nie można wyłączyć źródeł pakietów debugowania: %s"
 msgid "Disabled %i debugging sources."
 msgstr "Wyłączono %i źródła pakietów debugowania."
 
+#. TRANSLATORS: couldn't open device to write
+#: ../contrib/device-rebind/pk-device-rebind.c:61
+msgid "Failed to open file"
+msgstr "Otwarcie pliku nie powiodło się"
+
+#. TRANSLATORS: could not write to the device
+#: ../contrib/device-rebind/pk-device-rebind.c:70
+msgid "Failed to write to the file"
+msgstr "Zapisanie do pliku nie powiodło się"
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:110
+#: ../contrib/device-rebind/pk-device-rebind.c:147
+msgid "Failed to write to device"
+msgstr "Zapisanie na urządzeniu nie powiodło się"
+
+#. TRANSLATORS: the device could not be found in sysfs
+#: ../contrib/device-rebind/pk-device-rebind.c:175
+msgid "Device could not be found"
+msgstr "Nie można znaleźć urządzenia"
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:202
+msgid "Failed to unregister driver"
+msgstr "Usunięcie sterownika z rejestru nie powiodło się"
+
+#. TRANSLATORS: we failed to bind the old driver
+#: ../contrib/device-rebind/pk-device-rebind.c:211
+msgid "Failed to register driver"
+msgstr "Zarejestrowanie sterownika nie powiodło się"
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:260
+msgid "Device path not found"
+msgstr "Nie znaleziono ścieżki do urządzenia"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:268
+msgid "Incorrect device path specified"
+msgstr "Podano niepoprawną ścieżkę do urządzenia"
+
+#. command line argument, simulate what would be done, but don't actually do it
+#: ../contrib/device-rebind/pk-device-rebind.c:296
+msgid "Don't actually touch the hardware, only simulate what would be done"
+msgstr "Nie rusza sprzętu, tylko symuluje"
+
+#. TRANSLATORS: command line option: a list of files to install
+#: ../contrib/device-rebind/pk-device-rebind.c:299
+msgid "Device paths"
+msgstr "Ścieżki do urządzeń"
+
+#. TRANSLATORS: tool that gets called when the device needs reloading after installing firmware
+#: ../contrib/device-rebind/pk-device-rebind.c:314
+msgid "PackageKit Device Reloader"
+msgstr "Ponowne wczytywanie urządzeń PackageKit"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:322
+msgid "You need to specify at least one valid device path"
+msgstr "Należy podać co najmniej jedną prawidłową ścieżkę do urządzenia"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:332
+msgid "This script can only be used by the root user"
+msgstr "Ten skrypt może być używany tylko przez użytkownika root"
+
+#. TRANSLATORS: we're going to verify the path first
+#: ../contrib/device-rebind/pk-device-rebind.c:341
+msgid "Verifying device path"
+msgstr "Sprawdzanie ścieżki do urządzenia"
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:346
+msgid "Failed to verify device path"
+msgstr "Sprawdzenie ścieżki do urządzenia nie powiodło się"
+
+#. TRANSLATORS: we're going to try
+#: ../contrib/device-rebind/pk-device-rebind.c:360
+msgid "Attempting to rebind device"
+msgstr "Próba ponownego dowiązania do urządzenia"
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:365
+msgid "Failed to rebind device"
+msgstr "Ponowne dowiązanie do urządzenia nie powiodło się"
+
 #: ../data/packagekit-catalog.xml.in.h:1
 msgid "PackageKit Catalog"
 msgstr "Katalog PackageKit"
@@ -1220,14 +1306,18 @@ msgid "Authentication is required to refresh the system sources"
 msgstr "Wymagane jest uwierzytelnienie, aby odświeżyć źródła systemu"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:15
+msgid "Authentication is required to reload the device with a new driver"
+msgstr "Wymagane jest uwierzytelnienie, aby ponownie wczytać urządzenie za pomocą nowego sterownika"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:16
 msgid "Authentication is required to remove packages"
 msgstr "Wymagane jest uwierzytelnienie, aby usunąć pakiety"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:16
+#: ../policy/org.freedesktop.packagekit.policy.in.h:17
 msgid "Authentication is required to rollback a transaction"
 msgstr "Wymagane jest uwierzytelnienie, aby przywrócić transakcję"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:17
+#: ../policy/org.freedesktop.packagekit.policy.in.h:18
 msgid ""
 "Authentication is required to set the network proxy used for downloading "
 "packages"
@@ -1235,7 +1325,7 @@ msgstr ""
 "Wymagane jest uwierzytelnienie, aby ustawić pośrednika sieciowego używanego "
 "do pobierania pakietów"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:18
+#: ../policy/org.freedesktop.packagekit.policy.in.h:19
 msgid "Authentication is required to update packages"
 msgstr "Wymagane jest uwierzytelnienie, aby zaktualizować pakiety"
 
@@ -1244,7 +1334,7 @@ msgstr "Wymagane jest uwierzytelnienie, aby zaktualizować pakiety"
 #. authentication, but a different user id needs the admin password
 #. to cancel another users task.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:24
+#: ../policy/org.freedesktop.packagekit.policy.in.h:25
 msgid "Cancel foreign task"
 msgstr "Anulowanie obcego zadania"
 
@@ -1253,7 +1343,7 @@ msgstr "Anulowanie obcego zadania"
 #. software sources as this can be used to enable new updates or
 #. install different versions of software.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:30
+#: ../policy/org.freedesktop.packagekit.policy.in.h:31
 msgid "Change software source parameters"
 msgstr "Zmiana parametrów źródła oprogramowania"
 
@@ -1263,7 +1353,7 @@ msgstr "Zmiana parametrów źródła oprogramowania"
 #. - Paranoid users (or parents!) can change this to 'auth_admin' or
 #. 'auth_admin_keep'.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:37
+#: ../policy/org.freedesktop.packagekit.policy.in.h:38
 msgid "Install signed package"
 msgstr "Instalacja podpisanego pakietu"
 
@@ -1273,7 +1363,7 @@ msgstr "Instalacja podpisanego pakietu"
 #. password would be a massive security hole.
 #. - This is not retained as each package should be authenticated.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:44
+#: ../policy/org.freedesktop.packagekit.policy.in.h:45
 msgid "Install untrusted local file"
 msgstr "Instalacja niezaufanego lokalnego pliku"
 
@@ -1281,11 +1371,22 @@ msgstr "Instalacja niezaufanego lokalnego pliku"
 #. - Normal users do not require admin authentication to refresh the
 #. cache, as this doesn't actually install or remove software.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:49
+#: ../policy/org.freedesktop.packagekit.policy.in.h:50
 msgid "Refresh system sources"
 msgstr "Odświeżenie źródeł systemu"
 
 #. SECURITY:
+#. - Normal users require admin authentication to rebind a driver
+#. so that it works after we install firmware.
+#. - This should not be set to 'yes' as unprivileged users could then
+#. try to rebind drivers in use, for instance security authentication
+#. devices.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:58
+msgid "Reload a device"
+msgstr "Ponowne wczytanie urzÄ…dzenia"
+
+#. SECURITY:
 #. - Normal users require admin authentication to remove packages as
 #. this can make the system unbootable or stop other applications from
 #. working.
@@ -1294,7 +1395,7 @@ msgstr "Odświeżenie źródeł systemu"
 #. be removed. If this is not possible, change this authentication to
 #. 'auth_admin'.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:59
+#: ../policy/org.freedesktop.packagekit.policy.in.h:68
 msgid "Remove package"
 msgstr "Usunięcie pakietu"
 
@@ -1303,7 +1404,7 @@ msgstr "Usunięcie pakietu"
 #. as this will change a large number of packages, and could expose the
 #. system to previously patched security vulnerabilities.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:65
+#: ../policy/org.freedesktop.packagekit.policy.in.h:74
 msgid "Rollback to a previous transaction"
 msgstr "Przywrócenie poprzedniej transakcji"
 
@@ -1311,7 +1412,7 @@ msgstr "Przywrócenie poprzedniej transakcji"
 #. - Normal users do not require admin authentication to set the proxy
 #. used for downloading packages.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:70
+#: ../policy/org.freedesktop.packagekit.policy.in.h:79
 msgid "Set network proxy"
 msgstr "Ustawienie pośrednika sieciowego"
 
@@ -1321,7 +1422,7 @@ msgstr "Ustawienie pośrednika sieciowego"
 #. without a secure authentication.
 #. - This is not kept as each package should be authenticated.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:77
+#: ../policy/org.freedesktop.packagekit.policy.in.h:86
 msgid "Trust a key used for signing packages"
 msgstr "Oznaczenie klucza używanego do podpisywania pakietów jako zaufanego"
 
@@ -1332,7 +1433,7 @@ msgstr "Oznaczenie klucza używanego do podpisywania pakietów jako zaufanego"
 #. - Changing this to anything other than 'yes' will break unattended
 #. updates.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:85
+#: ../policy/org.freedesktop.packagekit.policy.in.h:94
 msgid "Update packages"
 msgstr "Aktualizacja pakietów"
 
@@ -1412,7 +1513,7 @@ msgid "To install debugging packages, extra sources need to be enabled"
 msgstr "Aby zainstalować pakiety debugowania, należy włączyć dodatkowe źródła"
 
 #. TRANSLATORS: is not GPG signed
-#: ../src/pk-polkit-action-lookup.c:168 ../src/pk-polkit-action-lookup.c:191
+#: ../src/pk-polkit-action-lookup.c:168 ../src/pk-polkit-action-lookup.c:187
 msgid "The software is not from a trusted source."
 msgstr "Oprogramowanie nie jest z zaufanego źródła."
 
@@ -1428,30 +1529,30 @@ msgstr ""
 "Nie należy aktualizować tych pakietów, jeśli nie ma się pewności, że to "
 "bezpieczne."
 
-#. TRANSLATORS: warn the user that all bets are off
-#: ../src/pk-polkit-action-lookup.c:180 ../src/pk-polkit-action-lookup.c:203
-msgid "Malicious software can damage your computer or cause other harm."
-msgstr ""
-"Złośliwe oprogramowanie może uszkodzić komputer lub spowodować inne szkody."
-
-#: ../src/pk-polkit-action-lookup.c:196
+#: ../src/pk-polkit-action-lookup.c:192
 msgid "Do not install this package unless you are sure it is safe to do so."
 msgstr ""
 "Nie należy instalować tego pakietu, jeśli nie ma się pewności, że to "
 "bezpieczne."
 
-#: ../src/pk-polkit-action-lookup.c:197
+#: ../src/pk-polkit-action-lookup.c:193
 msgid "Do not install these packages unless you are sure it is safe to do so."
 msgstr ""
 "Nie należy instalować tych pakietów, jeśli nie ma się pewności, że to "
 "bezpieczne."
 
+#. TRANSLATORS: warn the user that all bets are off
+#: ../src/pk-polkit-action-lookup.c:199
+msgid "Malicious software can damage your computer or cause other harm."
+msgstr ""
+"Złośliwe oprogramowanie może uszkodzić komputer lub spowodować inne szkody."
+
 #. TRANSLATORS: too many packages to list each one
-#: ../src/pk-polkit-action-lookup.c:278
+#: ../src/pk-polkit-action-lookup.c:274
 msgid "Many packages"
 msgstr "Wiele pakietów"
 
 #. TRANSLATORS: if the transaction is forced to install only trusted packages
-#: ../src/pk-polkit-action-lookup.c:338
+#: ../src/pk-polkit-action-lookup.c:334
 msgid "Only trusted"
 msgstr "Tylko zaufane"
commit 29a3734e39cb4867d817214e3337d0269738e622
Author: Adrien Bustany <madcat at mymadcat.com>
Date:   Fri Aug 21 15:50:28 2009 -0400

    PackageKit-Qt : Update Transaction::Status enum

diff --git a/lib/packagekit-qt/src/transaction.h b/lib/packagekit-qt/src/transaction.h
index dca3c0b..ce2bd79 100644
--- a/lib/packagekit-qt/src/transaction.h
+++ b/lib/packagekit-qt/src/transaction.h
@@ -185,6 +185,10 @@ public:
 		StatusScanApplications,
 		StatusGeneratePackageList,
 		StatusWaitingForLock,
+		StatusWaitingForAuth,
+		StatusScanProcessList,
+		StatusCheckExecutableFiles,
+		StatusCheckLibraries,
 		UnknownStatus
 	} Status;
 	/**
commit 3dbeedee1e3dd431ed48ca311a633fef7b744585
Author: igor <igor at fedoraproject.org>
Date:   Fri Aug 21 18:45:27 2009 +0000

    Sending translation for Brazilian Portuguese

diff --git a/po/pt_BR.po b/po/pt_BR.po
index 986780c..369d7d3 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -8,8 +8,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-08-20 19:52+0000\n"
-"PO-Revision-Date: 2009-08-20 23:23-0300\n"
+"POT-Creation-Date: 2009-08-21 14:49+0000\n"
+"PO-Revision-Date: 2009-08-21 15:44-0300\n"
 "Last-Translator: Igor Pires Soares <igor at projetofedora.org>\n"
 "Language-Team: Brazilian Portuguese <fedora-trans-pt_br at redhat.com>\n"
 "MIME-Version: 1.0\n"
@@ -547,7 +547,7 @@ msgstr "Subcomandos:"
 #: ../client/pk-monitor.c:128
 #: ../contrib/command-not-found/pk-command-not-found.c:616
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:550
-#: ../contrib/device-rebind/pk-device-rebind.c:280
+#: ../contrib/device-rebind/pk-device-rebind.c:293
 #: ../src/pk-main.c:211
 msgid "Show extra debugging information"
 msgstr "Mostrar informações extras de depuração"
@@ -851,56 +851,56 @@ msgid "Please enter a number from 1 to %i: "
 msgstr "Por favor, insira um número entre 1 e %i: "
 
 #. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/pk-plugin-install.c:433
+#: ../contrib/browser-plugin/pk-plugin-install.c:464
 msgid "Getting package information..."
 msgstr "Obtendo informações do pacote..."
 
 #. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/pk-plugin-install.c:439
+#: ../contrib/browser-plugin/pk-plugin-install.c:470
 #, c-format
 msgid "Run %s"
 msgstr "Executar %s"
 
 #. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:445
+#: ../contrib/browser-plugin/pk-plugin-install.c:476
 msgid "Installed version"
 msgstr "Versão instalada"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:453
+#: ../contrib/browser-plugin/pk-plugin-install.c:484
 #, c-format
 msgid "Run version %s now"
 msgstr "Executar a versão %s agora"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:459
+#: ../contrib/browser-plugin/pk-plugin-install.c:490
 msgid "Run now"
 msgstr "Executar agora"
 
 #. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:465
+#: ../contrib/browser-plugin/pk-plugin-install.c:496
 #, c-format
 msgid "Update to version %s"
 msgstr "Atualizar para a versão %s"
 
 #. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:471
+#: ../contrib/browser-plugin/pk-plugin-install.c:502
 #, c-format
 msgid "Install %s now"
 msgstr "Instalar %s agora"
 
 #. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:474
+#: ../contrib/browser-plugin/pk-plugin-install.c:505
 msgid "Version"
 msgstr "Versão"
 
 #. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/pk-plugin-install.c:479
+#: ../contrib/browser-plugin/pk-plugin-install.c:510
 msgid "No packages found for your system"
 msgstr "Nenhum pacote localizado para o seu sistema"
 
 #. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/pk-plugin-install.c:484
+#: ../contrib/browser-plugin/pk-plugin-install.c:515
 msgid "Installing..."
 msgstr "Instalando..."
 
@@ -1193,63 +1193,73 @@ msgstr "Falha ao gravar no arquivo"
 msgid "Failed to write to device"
 msgstr "Falha ao gravar no dispositivo"
 
+#. TRANSLATORS: the device could not be found in sysfs
+#: ../contrib/device-rebind/pk-device-rebind.c:175
+msgid "Device could not be found"
+msgstr "O dispositivo não pôde ser localizado"
+
 #. TRANSLATORS: we failed to release the current driver
-#: ../contrib/device-rebind/pk-device-rebind.c:191
+#: ../contrib/device-rebind/pk-device-rebind.c:202
 msgid "Failed to unregister driver"
 msgstr "Falha ao liberar o driver"
 
 #. TRANSLATORS: we failed to bind the old driver
-#: ../contrib/device-rebind/pk-device-rebind.c:200
+#: ../contrib/device-rebind/pk-device-rebind.c:211
 msgid "Failed to register driver"
 msgstr "Falha ao registrar o driver"
 
 #. TRANSLATORS: user did not specify a device sysfs path that exists
-#: ../contrib/device-rebind/pk-device-rebind.c:249
+#: ../contrib/device-rebind/pk-device-rebind.c:260
 msgid "Device path not found"
 msgstr "Caminho de dispositivo não localizado"
 
 #. TRANSLATORS: user did not specify a valid device sysfs path
-#: ../contrib/device-rebind/pk-device-rebind.c:257
+#: ../contrib/device-rebind/pk-device-rebind.c:268
 msgid "Incorrect device path specified"
 msgstr "Caminho incorreto de dispositivo especificado"
 
 #. command line argument, simulate what would be done, but don't actually do it
-#: ../contrib/device-rebind/pk-device-rebind.c:283
+#: ../contrib/device-rebind/pk-device-rebind.c:296
 msgid "Don't actually touch the hardware, only simulate what would be done"
 msgstr "Não lida com o hardware na realidade, apenas simula o que seria feito"
 
 #. TRANSLATORS: command line option: a list of files to install
-#: ../contrib/device-rebind/pk-device-rebind.c:286
+#: ../contrib/device-rebind/pk-device-rebind.c:299
 msgid "Device paths"
 msgstr "Caminhos de dispositivos"
 
 #. TRANSLATORS: tool that gets called when the device needs reloading after installing firmware
-#: ../contrib/device-rebind/pk-device-rebind.c:292
+#: ../contrib/device-rebind/pk-device-rebind.c:314
 msgid "PackageKit Device Reloader"
 msgstr "Recarregador de dispositivos do PackageKit"
 
 #. TRANSLATORS: user did not specify a valid device sysfs path
-#: ../contrib/device-rebind/pk-device-rebind.c:300
+#: ../contrib/device-rebind/pk-device-rebind.c:322
 msgid "You need to specify at least one valid device path"
 msgstr "Você precisa especificar pelo menos um caminho de dispositivo válido"
 
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:332
+msgid "This script can only be used by the root user"
+msgstr "Este script somente pode ser usado pelo usuário root"
+
 #. TRANSLATORS: we're going to verify the path first
-#: ../contrib/device-rebind/pk-device-rebind.c:309
+#: ../contrib/device-rebind/pk-device-rebind.c:341
 msgid "Verifying device path"
 msgstr "Verificando caminho do dispositivo"
 
 #. TRANSLATORS: user did not specify a device sysfs path that exists
-#: ../contrib/device-rebind/pk-device-rebind.c:314
+#: ../contrib/device-rebind/pk-device-rebind.c:346
 msgid "Failed to verify device path"
 msgstr "Falha ao verificar o caminho do dispositivo"
 
 #. TRANSLATORS: we're going to try
-#: ../contrib/device-rebind/pk-device-rebind.c:328
+#: ../contrib/device-rebind/pk-device-rebind.c:360
 msgid "Attempting to rebind device"
 msgstr "Tentando revincular o dispositivo"
 
 #. TRANSLATORS: we failed to release the current driver
-#: ../contrib/device-rebind/pk-device-rebind.c:333
+#: ../contrib/device-rebind/pk-device-rebind.c:365
 msgid "Failed to rebind device"
 msgstr "Falha ao revincular o dispositivo"
 
commit 1ac6f14b870b2fe97dd317a0d879053b63808981
Author: Adrien Bustany <madcat at mymadcat.com>
Date:   Fri Aug 21 12:56:41 2009 -0400

    PackageKit-Qt : fix a bug where the error state of a transaction wouldn't be initialized

diff --git a/lib/packagekit-qt/src/transaction.cpp b/lib/packagekit-qt/src/transaction.cpp
index c5ac32f..df7e498 100644
--- a/lib/packagekit-qt/src/transaction.cpp
+++ b/lib/packagekit-qt/src/transaction.cpp
@@ -39,6 +39,8 @@ Transaction::Transaction(const QString& tid, Client* parent) : QObject(parent)
 	if(!d->p->isValid())
 		qDebug("Error, cannot create transaction proxy");
 
+	d->error = Client::NoError;
+
 	connect(d->p, SIGNAL(AllowCancel(bool)), this, SIGNAL(allowCancelChanged(bool)));
 	connect(d->p, SIGNAL(Category(const QString&, const QString&, const QString&, const QString&, const QString&)), this, SIGNAL(category(const QString&, const QString&, const QString&, const QString&, const QString&)));
 	connect(d->p, SIGNAL(Destroy()), this, SIGNAL(destroy()));
commit 1d1a5cd027078b148e67687fe6d81f51c0980da0
Author: Adrien Bustany <madcat at mymadcat.com>
Date:   Fri Aug 21 12:40:42 2009 -0400

    PackageKit-Qt : hopefully fix the lib (while I set up a testing environment)

diff --git a/lib/packagekit-qt/src/client.cpp b/lib/packagekit-qt/src/client.cpp
index fc85854..aba8cc9 100644
--- a/lib/packagekit-qt/src/client.cpp
+++ b/lib/packagekit-qt/src/client.cpp
@@ -32,7 +32,7 @@
 
 #define CREATE_NEW_TRANSACTION                      \
 		Transaction* t = d->createNewTransaction(); \
-		if (!t) {                                   \
+		if (t->tid ().isEmpty ()) {                                   \
 			setLastError (ErrorDaemonUnreachable);  \
 			setTransactionError (t, ErrorDaemonUnreachable); \
 			return t;                            \
diff --git a/lib/packagekit-qt/src/clientprivate.cpp b/lib/packagekit-qt/src/clientprivate.cpp
index 85718cf..7815304 100644
--- a/lib/packagekit-qt/src/clientprivate.cpp
+++ b/lib/packagekit-qt/src/clientprivate.cpp
@@ -40,7 +40,7 @@ Transaction* ClientPrivate::createNewTransaction()
 	Transaction* t = new Transaction(daemon->GetTid(), c);
 	if (t->tid().isEmpty()) {
 		qDebug() << "empty tid, the daemon is probably not here anymore";
-		return NULL;
+		return t;
 	}
 
 	if(!locale.isNull())
commit 89b4cba225186f66024d6b08afe49b860f75b2d9
Author: Daniel Nicoletti <dantti85-pk at yahoo.com.br>
Date:   Fri Aug 21 16:36:46 2009 +0100

    Add a dummy backend version of simulate-install-packages for testing

diff --git a/backends/dummy/pk-backend-dummy.c b/backends/dummy/pk-backend-dummy.c
index 968e6d3..8ce7775 100644
--- a/backends/dummy/pk-backend-dummy.c
+++ b/backends/dummy/pk-backend-dummy.c
@@ -1160,6 +1160,41 @@ backend_download_packages (PkBackend *backend, gchar **package_ids, const gchar
 	pk_backend_finished (backend);
 }
 
+/**
+ * backend_simulate_install_packages:
+ */
+static void
+backend_simulate_install_packages (PkBackend *backend, gchar **package_ids)
+{
+	pk_backend_set_status (backend, PK_STATUS_ENUM_DEP_RESOLVE);
+
+	pk_backend_package (backend, PK_INFO_ENUM_REMOVING,
+			    "powertop;1.8-1.fc8;i386;fedora", "Power consumption monitor");
+
+	pk_backend_package (backend, PK_INFO_ENUM_INSTALLING,
+			    "gtk2;2.11.6-6.fc8;i386;fedora", "GTK+ Libraries for GIMP");
+
+	pk_backend_package (backend, PK_INFO_ENUM_UPDATING,
+			    "lib7;7.0.1-6.fc13;i386;fedora", "C Libraries");
+
+	pk_backend_package (backend, PK_INFO_ENUM_INSTALLING,
+			    "libssl;3.5.7-2.fc13;i386;fedora", "SSL Libraries");
+
+	pk_backend_package (backend, PK_INFO_ENUM_AVAILABLE,
+			    "vips-doc;7.12.4-2.fc8;noarch;linva", "The vips documentation package.");
+
+	pk_backend_package (backend, PK_INFO_ENUM_INSTALLED,
+			    "glib2;2.14.0;i386;fedora", "The GLib library");
+
+	pk_backend_package (backend, PK_INFO_ENUM_OBSOLETING,
+			    "kernel;2.6.23-0.115.rc3.git1.fc8;i386;installed", "The Linux kernel (the core of the Linux operating system)");
+
+	pk_backend_package (backend, PK_INFO_ENUM_UPDATING,
+			    "gtkhtml2;2.19.1-4.fc8;i386;fedora", "An HTML widget for GTK+ 2.0");
+
+	pk_backend_finished (backend);
+}
+
 PK_BACKEND_OPTIONS (
 	"Dummy",				/* description */
 	"Richard Hughes <richard at hughsie.com>",	/* author */
@@ -1197,7 +1232,7 @@ PK_BACKEND_OPTIONS (
 	backend_update_system,			/* update_system */
 	backend_what_provides,			/* what_provides */
 	NULL,					/* simulate_install_files */
-	NULL,					/* simulate_install_packages */
+	backend_simulate_install_packages,	/* simulate_install_packages */
 	NULL,					/* simulate_remove_packages */
 	NULL					/* simulate_update_packages */
 );
commit ebac794bd0eb1ed9463987e9e41c77e477148303
Author: Daniel Nicoletti <dantti85-pk at yahoo.com.br>
Date:   Fri Aug 21 16:34:42 2009 +0100

    Add the glib client helpers for Simulate

diff --git a/lib/packagekit-glib/pk-client.c b/lib/packagekit-glib/pk-client.c
index 76a3318..5d2cf88 100644
--- a/lib/packagekit-glib/pk-client.c
+++ b/lib/packagekit-glib/pk-client.c
@@ -3767,6 +3767,295 @@ out:
 }
 
 /**
+ * pk_client_simulate_install_files:
+ * @client: a valid #PkClient instance
+ * @files_rel: a file such as "/home/hughsie/Desktop/hal-devel-0.10.0.rpm"
+ * @error: a %GError to put the error code and message in, or %NULL
+ * Simulate an installation of files.
+ * NOTE: This method might emit packages with INSTALLING, REMOVING, UPDATING or REINSTALLING status.
+ * Return value: %TRUE if the daemon queued the transaction
+ **/
+gboolean
+pk_client_simulate_install_files (PkClient *client, gchar **files_rel, GError **error)
+{
+	guint i;
+	guint length;
+	gboolean ret = FALSE;
+	gchar **files = NULL;
+	gchar *file;
+
+	g_return_val_if_fail (PK_IS_CLIENT (client), FALSE);
+	g_return_val_if_fail (files_rel != NULL, FALSE);
+	g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+
+	/* ensure we are not trying to run without reset */
+	if (client->priv->tid != NULL) {
+		if (error != NULL)
+			*error = g_error_new (PK_CLIENT_ERROR, PK_CLIENT_ERROR_FAILED, "TID already set to %s", client->priv->tid);
+		return FALSE;
+	}
+
+	/* get and set a new ID */
+	ret = pk_client_allocate_transaction_id (client, error);
+	if (!ret) {
+		return FALSE;
+	}
+
+	/* convert all the relative paths to absolute ones */
+	files = g_strdupv (files_rel);
+	length = g_strv_length (files);
+	for (i=0; i<length; i++) {
+		file = pk_resolve_local_path (files[i]);
+		/* only replace if different */
+		if (g_strcmp0 (file, files[i]) != 0) {
+			egg_debug ("resolved %s to %s", files[i], file);
+			/* replace */
+			g_free (files[i]);
+			files[i] = g_strdup (file);
+		}
+		g_free (file);
+	}
+
+	/* save this so we can re-issue it */
+	client->priv->role = PK_ROLE_ENUM_SIMULATE_INSTALL_FILES;
+	client->priv->cached_full_paths = g_strdupv (files);
+
+	/* check to see if we have a valid proxy */
+	if (client->priv->proxy == NULL) {
+		if (error != NULL)
+			*error = g_error_new (PK_CLIENT_ERROR, PK_CLIENT_ERROR_NO_TID, "No proxy for transaction");
+		return FALSE;
+	}
+
+	/* do the method */
+	ret = dbus_g_proxy_call (client->priv->proxy, "SimulateInstallFiles", error,
+				 G_TYPE_STRV, files,
+				 G_TYPE_INVALID, G_TYPE_INVALID);
+
+	/* we failed one of these, return the error to the user */
+	if (ret && !client->priv->is_finished) {
+		/* allow clients to respond in the status changed callback */
+		pk_client_change_status (client, PK_STATUS_ENUM_WAIT);
+
+		/* spin until finished */
+		if (client->priv->synchronous)
+			g_main_loop_run (client->priv->loop);
+	}
+
+	return ret;
+}
+
+/**
+ * pk_client_simulate_install_packages:
+ * @client: a valid #PkClient instance
+ * @package_ids: a null terminated array of package_id structures such as "hal;0.0.1;i386;fedora"
+ * @error: a %GError to put the error code and message in, or %NULL
+ * Simulate an installation of packages.
+ * NOTE: This method might emit packages with INSTALLING, REMOVING, UPDATING or REINSTALLING status
+ *       if the backend supports SimulateInstallPackages, otherwise it will silently fallback
+ *       to use GetDepends("~installed", packages, recursive=TRUE), which might emit only
+ *       AVAILABLE packages.
+ * Return value: %TRUE if the daemon queued the transaction
+ **/
+gboolean
+pk_client_simulate_install_packages (PkClient *client, gchar **package_ids, GError **error)
+{
+	gboolean ret;
+	gchar *package_ids_temp;
+
+	g_return_val_if_fail (PK_IS_CLIENT (client), FALSE);
+	g_return_val_if_fail (package_ids != NULL, FALSE);
+	g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+
+	/* ensure we are not trying to run without reset */
+	if (client->priv->tid != NULL) {
+		if (error != NULL)
+			*error = g_error_new (PK_CLIENT_ERROR, PK_CLIENT_ERROR_FAILED, "TID already set to %s", client->priv->tid);
+		return FALSE;
+	}
+
+	/* check the PackageIDs here to avoid a round trip if invalid */
+	ret = pk_package_ids_check (package_ids);
+	if (!ret) {
+		package_ids_temp = pk_package_ids_to_text (package_ids);
+		if (error != NULL)
+			*error = g_error_new (PK_CLIENT_ERROR, PK_CLIENT_ERROR_INVALID_INPUT, "package_ids '%s' are not valid", package_ids_temp);
+		g_free (package_ids_temp);
+		return FALSE;
+	}
+
+	/* get and set a new ID */
+	ret = pk_client_allocate_transaction_id (client, error);
+	if (!ret) {
+		return FALSE;
+	}
+
+	/* save this so we can re-issue it */
+	client->priv->role = PK_ROLE_ENUM_SIMULATE_INSTALL_PACKAGES;
+	client->priv->cached_package_ids = g_strdupv (package_ids);
+
+	/* check to see if we have a valid proxy */
+	if (client->priv->proxy == NULL) {
+		if (error != NULL)
+			*error = g_error_new (PK_CLIENT_ERROR, PK_CLIENT_ERROR_NO_TID, "No proxy for transaction");
+		return FALSE;
+	}
+	ret = dbus_g_proxy_call (client->priv->proxy, "SimulateInstallPackages", error,
+				 G_TYPE_STRV, package_ids,
+				 G_TYPE_INVALID, G_TYPE_INVALID);
+	if (ret && !client->priv->is_finished) {
+		/* allow clients to respond in the status changed callback */
+		pk_client_change_status (client, PK_STATUS_ENUM_WAIT);
+
+		/* spin until finished */
+		if (client->priv->synchronous)
+			g_main_loop_run (client->priv->loop);
+	}
+
+	return ret;
+}
+
+/**
+ * pk_client_simulate_remove_packages:
+ * @client: a valid #PkClient instance
+ * @package_ids: a null terminated array of package_id structures such as "hal;0.0.1;i386;fedora"
+ * @error: a %GError to put the error code and message in, or %NULL
+ * Simulate a removal of packages.
+ * NOTE: This method might emit packages with INSTALLING, REMOVING, UPDATING or REINSTALLING status
+ *       if the backend supports SimulateRemovePackages, otherwise it will silently fallback
+ *       to use GetRequires("installed", packages, recursive=TRUE), which might emit only
+ *       INSTALLED packages.
+ * Return value: %TRUE if the daemon queued the transaction
+ **/
+gboolean
+pk_client_simulate_remove_packages (PkClient *client, gchar **package_ids, GError **error)
+{
+	gboolean ret;
+	gchar *package_ids_temp;
+
+	g_return_val_if_fail (PK_IS_CLIENT (client), FALSE);
+	g_return_val_if_fail (package_ids != NULL, FALSE);
+	g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+
+	/* ensure we are not trying to run without reset */
+	if (client->priv->tid != NULL) {
+		if (error != NULL)
+			*error = g_error_new (PK_CLIENT_ERROR, PK_CLIENT_ERROR_FAILED, "TID already set to %s", client->priv->tid);
+		return FALSE;
+	}
+
+	/* check the PackageIDs here to avoid a round trip if invalid */
+	ret = pk_package_ids_check (package_ids);
+	if (!ret) {
+		package_ids_temp = pk_package_ids_to_text (package_ids);
+		if (error != NULL)
+			*error = g_error_new (PK_CLIENT_ERROR, PK_CLIENT_ERROR_INVALID_INPUT, "package_ids '%s' are not valid", package_ids_temp);
+		g_free (package_ids_temp);
+		return FALSE;
+	}
+
+	/* get and set a new ID */
+	ret = pk_client_allocate_transaction_id (client, error);
+	if (!ret) {
+		return FALSE;
+	}
+
+	/* save this so we can re-issue it */
+	client->priv->role = PK_ROLE_ENUM_SIMULATE_REMOVE_PACKAGES;
+	client->priv->cached_package_ids = g_strdupv (package_ids);
+
+	/* check to see if we have a valid proxy */
+	if (client->priv->proxy == NULL) {
+		if (error != NULL)
+			*error = g_error_new (PK_CLIENT_ERROR, PK_CLIENT_ERROR_NO_TID, "No proxy for transaction");
+		return FALSE;
+	}
+	ret = dbus_g_proxy_call (client->priv->proxy, "SimulateRemovePackages", error,
+				 G_TYPE_STRV, package_ids,
+				 G_TYPE_INVALID, G_TYPE_INVALID);
+	if (ret && !client->priv->is_finished) {
+		/* allow clients to respond in the status changed callback */
+		pk_client_change_status (client, PK_STATUS_ENUM_WAIT);
+
+		/* spin until finished */
+		if (client->priv->synchronous)
+			g_main_loop_run (client->priv->loop);
+	}
+
+	return ret;
+}
+
+/**
+ * pk_client_simulate_update_packages:
+ * @client: a valid #PkClient instance
+ * @package_ids: a null terminated array of package_id structures such as "hal;0.0.1;i386;fedora"
+ * @error: a %GError to put the error code and message in, or %NULL
+ * Simulate an update of packages.
+ * NOTE: This method might emit packages with INSTALLING, REMOVING, UPDATING or REINSTALLING status
+ *       if the backend supports SimulateUpdatePackages, otherwise it will silently fallback
+ *       to use GetDepends("~installed", packages, recursive=TRUE), which might emit only
+ *       AVAILABLE packages.
+ * Return value: %TRUE if the daemon queued the transaction
+ **/
+gboolean
+pk_client_simulate_update_packages (PkClient *client, gchar **package_ids, GError **error)
+{
+	gboolean ret;
+	gchar *package_ids_temp;
+
+	g_return_val_if_fail (PK_IS_CLIENT (client), FALSE);
+	g_return_val_if_fail (package_ids != NULL, FALSE);
+	g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+
+	/* ensure we are not trying to run without reset */
+	if (client->priv->tid != NULL) {
+		if (error != NULL)
+			*error = g_error_new (PK_CLIENT_ERROR, PK_CLIENT_ERROR_FAILED, "TID already set to %s", client->priv->tid);
+		return FALSE;
+	}
+
+	/* check the PackageIDs here to avoid a round trip if invalid */
+	ret = pk_package_ids_check (package_ids);
+	if (!ret) {
+		package_ids_temp = pk_package_ids_to_text (package_ids);
+		if (error != NULL)
+			*error = g_error_new (PK_CLIENT_ERROR, PK_CLIENT_ERROR_INVALID_INPUT, "package_ids '%s' are not valid", package_ids_temp);
+		g_free (package_ids_temp);
+		return FALSE;
+	}
+
+	/* get and set a new ID */
+	ret = pk_client_allocate_transaction_id (client, error);
+	if (!ret) {
+		return FALSE;
+	}
+
+	/* save this so we can re-issue it */
+	client->priv->role = PK_ROLE_ENUM_SIMULATE_UPDATE_PACKAGES;
+	client->priv->cached_package_ids = g_strdupv (package_ids);
+
+	/* check to see if we have a valid proxy */
+	if (client->priv->proxy == NULL) {
+		if (error != NULL)
+			*error = g_error_new (PK_CLIENT_ERROR, PK_CLIENT_ERROR_NO_TID, "No proxy for transaction");
+		return FALSE;
+	}
+	ret = dbus_g_proxy_call (client->priv->proxy, "SimulateUpdatePackages", error,
+				 G_TYPE_STRV, package_ids,
+				 G_TYPE_INVALID, G_TYPE_INVALID);
+	if (ret && !client->priv->is_finished) {
+		/* allow clients to respond in the status changed callback */
+		pk_client_change_status (client, PK_STATUS_ENUM_WAIT);
+
+		/* spin until finished */
+		if (client->priv->synchronous)
+			g_main_loop_run (client->priv->loop);
+	}
+
+	return ret;
+}
+
+/**
  * pk_client_is_caller_active:
  * @client: a valid #PkClient instance
  * @is_active: if the caller of the method is still alive
@@ -3976,6 +4265,14 @@ pk_client_requeue (PkClient *client, GError **error)
 		ret = pk_client_get_categories (client, error);
 	else if (priv->role == PK_ROLE_ENUM_GET_DISTRO_UPGRADES)
 		ret = pk_client_get_distro_upgrades (client, error);
+	else if (priv->role == PK_ROLE_ENUM_SIMULATE_INSTALL_FILES)
+		ret = pk_client_simulate_install_files (client, priv->cached_full_paths, error);
+	else if (priv->role == PK_ROLE_ENUM_SIMULATE_INSTALL_PACKAGES)
+		ret = pk_client_simulate_install_packages (client, priv->cached_package_ids, error);
+	else if (priv->role == PK_ROLE_ENUM_SIMULATE_REMOVE_PACKAGES)
+		ret = pk_client_simulate_remove_packages (client, priv->cached_package_ids, error);
+	else if (priv->role == PK_ROLE_ENUM_SIMULATE_UPDATE_PACKAGES)
+		ret = pk_client_simulate_update_packages (client, priv->cached_package_ids, error);
 	else {
 		if (error != NULL)
 			*error = g_error_new (PK_CLIENT_ERROR, PK_CLIENT_ERROR_ROLE_UNKNOWN, "role unknown for reque");
diff --git a/lib/packagekit-glib/pk-client.h b/lib/packagekit-glib/pk-client.h
index d20874a..4fb3b0c 100644
--- a/lib/packagekit-glib/pk-client.h
+++ b/lib/packagekit-glib/pk-client.h
@@ -350,6 +350,24 @@ gboolean	 pk_client_repo_set_data		(PkClient	*client,
 							 GError		**error)
 							 G_GNUC_WARN_UNUSED_RESULT;
 
+/* simulate stuff */
+gboolean	 pk_client_simulate_install_files	(PkClient	*client,
+							 gchar		**files_rel,
+							 GError		**error)
+							 G_GNUC_WARN_UNUSED_RESULT;
+gboolean	 pk_client_simulate_install_packages	(PkClient	*client,
+							 gchar		**package_ids,
+							 GError		**error)
+							 G_GNUC_WARN_UNUSED_RESULT;
+gboolean	 pk_client_simulate_remove_packages	(PkClient	*client,
+							 gchar		**package_ids,
+							 GError		**error)
+							 G_GNUC_WARN_UNUSED_RESULT;
+gboolean	 pk_client_simulate_update_packages	(PkClient	*client,
+							 gchar		**package_ids,
+							 GError		**error)
+							 G_GNUC_WARN_UNUSED_RESULT;
+
 /* cached stuff */
 PkPackageList	*pk_client_get_package_list		(PkClient	*client);
 PkRestartEnum	 pk_client_get_require_restart		(PkClient	*client);
commit ada942a6f9a28cf699b863eed66cfe4f97e905c3
Author: Daniel Nicoletti <dantti85-pk at yahoo.com.br>
Date:   Fri Aug 21 16:33:08 2009 +0100

    Add the external D-Bus methods for Simulate

diff --git a/src/org.freedesktop.PackageKit.Transaction.xml b/src/org.freedesktop.PackageKit.Transaction.xml
index 0877fc9..b21e483 100644
--- a/src/org.freedesktop.PackageKit.Transaction.xml
+++ b/src/org.freedesktop.PackageKit.Transaction.xml
@@ -1238,6 +1238,94 @@
     </method>
 
     <!--*****************************************************************************************-->
+    <method name="SimulateInstallFiles">
+      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
+      <doc:doc>
+        <doc:description>
+          <doc:para>
+            This method simulates a package file instalation emitting packages required to be
+            installed, removed, reinstalled or updated.
+          </doc:para>
+        </doc:description>
+      </doc:doc>
+      <arg type="as" name="full_paths" direction="in">
+        <doc:doc>
+          <doc:summary>
+            <doc:para>
+              An array of full path and filenames to packages.
+            </doc:para>
+          </doc:summary>
+        </doc:doc>
+      </arg>
+    </method>
+
+    <!--*****************************************************************************************-->
+    <method name="SimulateInstallPackages">
+      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
+      <doc:doc>
+        <doc:description>
+          <doc:para>
+            This method simulates a package instalation emitting packages required to be
+            installed, removed, reinstalled or updated.
+          </doc:para>
+        </doc:description>
+      </doc:doc>
+      <arg type="as" name="package_ids" direction="in">
+        <doc:doc>
+          <doc:summary>
+            <doc:para>
+              An array of package IDs.
+            </doc:para>
+          </doc:summary>
+        </doc:doc>
+      </arg>
+    </method>
+
+    <!--*****************************************************************************************-->
+    <method name="SimulateRemovePackages">
+      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
+      <doc:doc>
+        <doc:description>
+          <doc:para>
+            This method simulates a package removal emitting packages required to be
+            installed, removed, reinstalled or updated.
+          </doc:para>
+        </doc:description>
+      </doc:doc>
+      <arg type="as" name="package_ids" direction="in">
+        <doc:doc>
+          <doc:summary>
+            <doc:para>
+              An array of package IDs.
+            </doc:para>
+          </doc:summary>
+        </doc:doc>
+      </arg>
+    </method>
+
+    <!--*****************************************************************************************-->
+    <method name="SimulateUpdatePackages">
+      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
+      <doc:doc>
+        <doc:description>
+          <doc:para>
+            This method simulates a package update emitting packages required to be
+            installed, removed, reinstalled or updated.
+          </doc:para>
+        </doc:description>
+      </doc:doc>
+      <arg type="as" name="package_ids" direction="in">
+        <doc:doc>
+          <doc:summary>
+            <doc:para>
+              An array of package IDs.
+            </doc:para>
+          </doc:summary>
+        </doc:doc>
+      </arg>
+    </method>
+
+    <!--*****************************************************************************************-->
     <method name="UpdatePackages">
       <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
       <doc:doc>
diff --git a/src/pk-transaction.c b/src/pk-transaction.c
index 656139b..48bdf2b 100644
--- a/src/pk-transaction.c
+++ b/src/pk-transaction.c
@@ -1397,7 +1397,27 @@ pk_transaction_set_running (PkTransaction *transaction)
 		desc->repo_enable (priv->backend, priv->cached_repo_id, priv->cached_enabled);
 	else if (priv->role == PK_ROLE_ENUM_REPO_SET_DATA)
 		desc->repo_set_data (priv->backend, priv->cached_repo_id, priv->cached_parameter, priv->cached_value);
-	else {
+	else if (priv->role == PK_ROLE_ENUM_SIMULATE_INSTALL_FILES)
+		desc->simulate_install_files (priv->backend, priv->cached_package_ids);
+	else if (priv->role == PK_ROLE_ENUM_SIMULATE_INSTALL_PACKAGES) {
+		if (desc->simulate_install_packages != NULL) {
+		    desc->simulate_install_packages (priv->backend, priv->cached_package_ids);
+		} else {
+		    desc->get_depends (priv->backend, PK_FILTER_ENUM_NOT_INSTALLED, priv->cached_package_ids, TRUE);
+		}
+	} else if (priv->role == PK_ROLE_ENUM_SIMULATE_REMOVE_PACKAGES) {
+		if (desc->simulate_remove_packages != NULL) {
+		    desc->simulate_remove_packages (priv->backend, priv->cached_package_ids);
+		} else {
+		    desc->get_requires (priv->backend, PK_FILTER_ENUM_INSTALLED, priv->cached_package_ids, TRUE);
+		}
+	} else if (priv->role == PK_ROLE_ENUM_SIMULATE_UPDATE_PACKAGES) {
+		if (desc->simulate_update_packages != NULL) {
+		    desc->simulate_update_packages (priv->backend, priv->cached_package_ids);
+		} else {
+		    desc->get_depends (priv->backend, PK_FILTER_ENUM_NOT_INSTALLED, priv->cached_package_ids, TRUE);
+		}
+	} else {
 		egg_error ("failed to run as role not assigned");
 		return FALSE;
 	}
@@ -4081,6 +4101,342 @@ pk_transaction_set_locale (PkTransaction *transaction, const gchar *code, DBusGM
 }
 
 /**
+ * pk_transaction_simulate_install_files:
+ **/
+void
+pk_transaction_simulate_install_files (PkTransaction *transaction, gchar **full_paths, DBusGMethodInvocation *context)
+{
+	gchar *full_paths_temp;
+	gboolean ret;
+	GError *error;
+	GError *error_local = NULL;
+	PkServicePack *service_pack;
+	gchar *content_type;
+	guint length;
+	guint i;
+
+	g_return_if_fail (PK_IS_TRANSACTION (transaction));
+	g_return_if_fail (transaction->priv->tid != NULL);
+
+	full_paths_temp = pk_package_ids_to_text (full_paths);
+	egg_debug ("SimulateInstallFiles method called: %s", full_paths_temp);
+	g_free (full_paths_temp);
+
+	/* not implemented yet */
+	if (transaction->priv->backend->desc->simulate_install_files == NULL) {
+		error = g_error_new (PK_TRANSACTION_ERROR, PK_TRANSACTION_ERROR_NOT_SUPPORTED,
+				     "SimulateInstallFiles not yet supported by backend");
+		pk_transaction_release_tid (transaction);
+		pk_transaction_dbus_return_error (context, error);
+		return;
+	}
+
+	/* check if the sender is the same */
+	ret = pk_transaction_verify_sender (transaction, context, &error);
+	if (!ret) {
+		/* don't release tid */
+		pk_transaction_dbus_return_error (context, error);
+		return;
+	}
+
+	/* check all files exists and are valid */
+	length = g_strv_length (full_paths);
+
+	for (i=0; i<length; i++) {
+		/* exists */
+		ret = g_file_test (full_paths[i], G_FILE_TEST_EXISTS);
+		if (!ret) {
+			error = g_error_new (PK_TRANSACTION_ERROR, PK_TRANSACTION_ERROR_NO_SUCH_FILE,
+					     "No such file %s", full_paths[i]);
+			pk_transaction_release_tid (transaction);
+			pk_transaction_dbus_return_error (context, error);
+			return;
+		}
+
+		/* get content type */
+		content_type = pk_transaction_get_content_type_for_file (full_paths[i], &error_local);
+		if (content_type == NULL) {
+			error = g_error_new (PK_TRANSACTION_ERROR, PK_TRANSACTION_ERROR_NOT_SUPPORTED,
+					     "Failed to get content type for file %s", full_paths[i]);
+			pk_transaction_release_tid (transaction);
+			pk_transaction_dbus_return_error (context, error);
+			return;
+		}
+
+		/* supported content type? */
+		ret = pk_transaction_is_supported_content_type (transaction, content_type);
+		g_free (content_type);
+		if (!ret) {
+			error = g_error_new (PK_TRANSACTION_ERROR, PK_TRANSACTION_ERROR_MIME_TYPE_NOT_SUPPORTED,
+					     "MIME type not supported %s", full_paths[i]);
+			pk_transaction_release_tid (transaction);
+			pk_transaction_dbus_return_error (context, error);
+			return;
+		}
+
+		/* valid */
+		if (g_str_has_suffix (full_paths[i], ".servicepack")) {
+			service_pack = pk_service_pack_new ();
+			pk_service_pack_set_filename (service_pack, full_paths[i]);
+			ret = pk_service_pack_check_valid (service_pack, &error_local);
+			g_object_unref (service_pack);
+			if (!ret) {
+				error = g_error_new (PK_TRANSACTION_ERROR, PK_TRANSACTION_ERROR_PACK_INVALID, "%s", error_local->message);
+				pk_transaction_release_tid (transaction);
+				pk_transaction_dbus_return_error (context, error);
+				g_error_free (error_local);
+				return;
+			}
+		}
+	}
+
+	/* save so we can run later */
+	transaction->priv->cached_full_paths = g_strdupv (full_paths);
+	pk_transaction_set_role (transaction, PK_ROLE_ENUM_SIMULATE_INSTALL_FILES);
+
+	/* try to commit this */
+	ret = pk_transaction_commit (transaction);
+	if (!ret) {
+		error = g_error_new (PK_TRANSACTION_ERROR, PK_TRANSACTION_ERROR_COMMIT_FAILED,
+				     "Could not commit to a transaction object");
+		pk_transaction_release_tid (transaction);
+		pk_transaction_dbus_return_error (context, error);
+		return;
+	}
+
+	/* return from async with success */
+	pk_transaction_dbus_return (context);
+}
+
+/**
+ * pk_transaction_simulate_install_packages:
+ **/
+void
+pk_transaction_simulate_install_packages (PkTransaction *transaction, gchar **package_ids, DBusGMethodInvocation *context)
+{
+	gboolean ret;
+	GError *error;
+	gchar *package_ids_temp;
+	guint length;
+	guint max_length;
+
+	g_return_if_fail (PK_IS_TRANSACTION (transaction));
+	g_return_if_fail (transaction->priv->tid != NULL);
+
+	egg_debug ("SimulateInstallPackages method called: %s", package_ids[0]);
+
+	/* not implemented yet */
+	if (transaction->priv->backend->desc->simulate_install_packages == NULL &&
+	    transaction->priv->backend->desc->get_depends               == NULL) {
+		error = g_error_new (PK_TRANSACTION_ERROR, PK_TRANSACTION_ERROR_NOT_SUPPORTED,
+				     "SimulateInstallPackages not yet supported by backend");
+		pk_transaction_release_tid (transaction);
+		pk_transaction_dbus_return_error (context, error);
+		return;
+	}
+
+	/* check if the sender is the same */
+	ret = pk_transaction_verify_sender (transaction, context, &error);
+	if (!ret) {
+		/* don't release tid */
+		pk_transaction_dbus_return_error (context, error);
+		return;
+	}
+
+	/* check for length sanity */
+	length = g_strv_length (package_ids);
+	max_length = pk_conf_get_int (transaction->priv->conf, "MaximumPackagesToProcess");
+	if (length > max_length) {
+		error = g_error_new (PK_TRANSACTION_ERROR, PK_TRANSACTION_ERROR_NUMBER_OF_PACKAGES_INVALID,
+				     "Too many packages to process (%i/%i)", length, max_length);
+		pk_transaction_release_tid (transaction);
+		pk_transaction_dbus_return_error (context, error);
+		return;
+	}
+
+	/* check package_ids */
+	ret = pk_package_ids_check (package_ids);
+	if (!ret) {
+		package_ids_temp = pk_package_ids_to_text (package_ids);
+		error = g_error_new (PK_TRANSACTION_ERROR, PK_TRANSACTION_ERROR_PACKAGE_ID_INVALID,
+				     "The package id's '%s' are not valid", package_ids_temp);
+		g_free (package_ids_temp);
+		pk_transaction_release_tid (transaction);
+		pk_transaction_dbus_return_error (context, error);
+		return;
+	}
+
+	/* save so we can run later */
+	transaction->priv->cached_package_ids = g_strdupv (package_ids);
+	pk_transaction_set_role (transaction, PK_ROLE_ENUM_SIMULATE_INSTALL_PACKAGES);
+
+	/* try to commit this */
+	ret = pk_transaction_commit (transaction);
+	if (!ret) {
+		error = g_error_new (PK_TRANSACTION_ERROR, PK_TRANSACTION_ERROR_COMMIT_FAILED,
+				     "Could not commit to a transaction object");
+		pk_transaction_release_tid (transaction);
+		pk_transaction_dbus_return_error (context, error);
+		return;
+	}
+
+	/* return from async with success */
+	pk_transaction_dbus_return (context);
+}
+
+/**
+ * pk_transaction_simulate_remove_packages:
+ **/
+void
+pk_transaction_simulate_remove_packages (PkTransaction *transaction, gchar **package_ids, DBusGMethodInvocation *context)
+{
+	gboolean ret;
+	GError *error;
+	gchar *package_ids_temp;
+	guint length;
+	guint max_length;
+
+	g_return_if_fail (PK_IS_TRANSACTION (transaction));
+	g_return_if_fail (transaction->priv->tid != NULL);
+
+	egg_debug ("SimulateRemovePackages method called: %s", package_ids[0]);
+
+	/* not implemented yet */
+	if (transaction->priv->backend->desc->simulate_remove_packages == NULL &&
+	    transaction->priv->backend->desc->get_requires             == NULL) {
+		error = g_error_new (PK_TRANSACTION_ERROR, PK_TRANSACTION_ERROR_NOT_SUPPORTED,
+				     "SimulateRemovePackages not yet supported by backend");
+		pk_transaction_release_tid (transaction);
+		pk_transaction_dbus_return_error (context, error);
+		return;
+	}
+
+	/* check if the sender is the same */
+	ret = pk_transaction_verify_sender (transaction, context, &error);
+	if (!ret) {
+		/* don't release tid */
+		pk_transaction_dbus_return_error (context, error);
+		return;
+	}
+
+	/* check for length sanity */
+	length = g_strv_length (package_ids);
+	max_length = pk_conf_get_int (transaction->priv->conf, "MaximumPackagesToProcess");
+	if (length > max_length) {
+		error = g_error_new (PK_TRANSACTION_ERROR, PK_TRANSACTION_ERROR_NUMBER_OF_PACKAGES_INVALID,
+				     "Too many packages to process (%i/%i)", length, max_length);
+		pk_transaction_release_tid (transaction);
+		pk_transaction_dbus_return_error (context, error);
+		return;
+	}
+
+	/* check package_ids */
+	ret = pk_package_ids_check (package_ids);
+	if (!ret) {
+		package_ids_temp = pk_package_ids_to_text (package_ids);
+		error = g_error_new (PK_TRANSACTION_ERROR, PK_TRANSACTION_ERROR_PACKAGE_ID_INVALID,
+				     "The package id's '%s' are not valid", package_ids_temp);
+		g_free (package_ids_temp);
+		pk_transaction_release_tid (transaction);
+		pk_transaction_dbus_return_error (context, error);
+		return;
+	}
+
+	/* save so we can run later */
+	transaction->priv->cached_package_ids = g_strdupv (package_ids);
+	pk_transaction_set_role (transaction, PK_ROLE_ENUM_SIMULATE_REMOVE_PACKAGES);
+
+	/* try to commit this */
+	ret = pk_transaction_commit (transaction);
+	if (!ret) {
+		error = g_error_new (PK_TRANSACTION_ERROR, PK_TRANSACTION_ERROR_COMMIT_FAILED,
+				     "Could not commit to a transaction object");
+		pk_transaction_release_tid (transaction);
+		pk_transaction_dbus_return_error (context, error);
+		return;
+	}
+
+	/* return from async with success */
+	pk_transaction_dbus_return (context);
+}
+
+/**
+ * pk_transaction_simulate_update_packages:
+ **/
+void
+pk_transaction_simulate_update_packages (PkTransaction *transaction, gchar **package_ids, DBusGMethodInvocation *context)
+{
+	gboolean ret;
+	GError *error;
+	gchar *package_ids_temp;
+	guint length;
+	guint max_length;
+
+	g_return_if_fail (PK_IS_TRANSACTION (transaction));
+	g_return_if_fail (transaction->priv->tid != NULL);
+
+	egg_debug ("SimulateUpdatePackages method called: %s", package_ids[0]);
+
+	/* not implemented yet */
+	if (transaction->priv->backend->desc->simulate_update_packages  == NULL &&
+	    transaction->priv->backend->desc->get_depends               == NULL) {
+		error = g_error_new (PK_TRANSACTION_ERROR, PK_TRANSACTION_ERROR_NOT_SUPPORTED,
+				     "SimulateUpdatePackages not yet supported by backend");
+		pk_transaction_release_tid (transaction);
+		pk_transaction_dbus_return_error (context, error);
+		return;
+	}
+
+	/* check if the sender is the same */
+	ret = pk_transaction_verify_sender (transaction, context, &error);
+	if (!ret) {
+		/* don't release tid */
+		pk_transaction_dbus_return_error (context, error);
+		return;
+	}
+
+	/* check for length sanity */
+	length = g_strv_length (package_ids);
+	max_length = pk_conf_get_int (transaction->priv->conf, "MaximumPackagesToProcess");
+	if (length > max_length) {
+		error = g_error_new (PK_TRANSACTION_ERROR, PK_TRANSACTION_ERROR_NUMBER_OF_PACKAGES_INVALID,
+				     "Too many packages to process (%i/%i)", length, max_length);
+		pk_transaction_release_tid (transaction);
+		pk_transaction_dbus_return_error (context, error);
+		return;
+	}
+
+	/* check package_ids */
+	ret = pk_package_ids_check (package_ids);
+	if (!ret) {
+		package_ids_temp = pk_package_ids_to_text (package_ids);
+		error = g_error_new (PK_TRANSACTION_ERROR, PK_TRANSACTION_ERROR_PACKAGE_ID_INVALID,
+				     "The package id's '%s' are not valid", package_ids_temp);
+		g_free (package_ids_temp);
+		pk_transaction_release_tid (transaction);
+		pk_transaction_dbus_return_error (context, error);
+		return;
+	}
+
+	/* save so we can run later */
+	transaction->priv->cached_package_ids = g_strdupv (package_ids);
+	pk_transaction_set_role (transaction, PK_ROLE_ENUM_SIMULATE_UPDATE_PACKAGES);
+
+	/* try to commit this */
+	ret = pk_transaction_commit (transaction);
+	if (!ret) {
+		error = g_error_new (PK_TRANSACTION_ERROR, PK_TRANSACTION_ERROR_COMMIT_FAILED,
+				     "Could not commit to a transaction object");
+		pk_transaction_release_tid (transaction);
+		pk_transaction_dbus_return_error (context, error);
+		return;
+	}
+
+	/* return from async with success */
+	pk_transaction_dbus_return (context);
+}
+
+/**
  * pk_transaction_update_packages:
  **/
 void
diff --git a/src/pk-transaction.h b/src/pk-transaction.h
index 38cdf49..044910d 100644
--- a/src/pk-transaction.h
+++ b/src/pk-transaction.h
@@ -77,160 +77,172 @@ typedef enum
 	PK_TRANSACTION_ERROR_LAST
 } PkTransactionError;
 
-GQuark		 pk_transaction_error_quark		(void);
-GType		 pk_transaction_error_get_type		(void);
-GType		 pk_transaction_get_type		(void);
-PkTransaction	*pk_transaction_new			(void);
+GQuark		 pk_transaction_error_quark			(void);
+GType		 pk_transaction_error_get_type			(void);
+GType		 pk_transaction_get_type			(void);
+PkTransaction	*pk_transaction_new				(void);
 
 /* go go go! */
-gboolean	 pk_transaction_run			(PkTransaction      *transaction)
-							 G_GNUC_WARN_UNUSED_RESULT;
+gboolean	 pk_transaction_run				(PkTransaction      *transaction)
+								 G_GNUC_WARN_UNUSED_RESULT;
 /* internal status */
-PkRoleEnum	 pk_transaction_priv_get_role		(PkTransaction	*transaction);
+PkRoleEnum	 pk_transaction_priv_get_role			(PkTransaction	*transaction);
 
 /* set and retrieve tid */
-const gchar	*pk_transaction_get_tid			(PkTransaction	*transaction);
-gboolean	 pk_transaction_set_tid			(PkTransaction	*transaction,
-							 const gchar	*tid);
+const gchar	*pk_transaction_get_tid				(PkTransaction	*transaction);
+gboolean	 pk_transaction_set_tid				(PkTransaction	*transaction,
+								 const gchar	*tid);
 
 /* set DBUS sender */
-gboolean	 pk_transaction_set_sender		(PkTransaction	*transaction,
-							 const gchar	*sender);
+gboolean	 pk_transaction_set_sender			(PkTransaction	*transaction,
+								 const gchar	*sender);
 
 /* dbus methods */
-void		 pk_transaction_accept_eula		(PkTransaction	*transaction,
-							 const gchar	*eula_id,
-							 DBusGMethodInvocation *context);
-void		 pk_transaction_cancel			(PkTransaction	*transaction,
-							 DBusGMethodInvocation *context);
-void		 pk_transaction_download_packages	(PkTransaction  *transaction,
-							 gchar		**package_ids,
-							 DBusGMethodInvocation *context);
-gboolean	 pk_transaction_get_allow_cancel	(PkTransaction	*transaction,
-							 gboolean	*allow_cancel,
-							 GError		**error);
-void		 pk_transaction_get_categories		(PkTransaction	*transaction,
-							 DBusGMethodInvocation *context);
-void		 pk_transaction_get_depends		(PkTransaction	*transaction,
-							 const gchar	*filter,
-							 gchar		**package_ids,
-							 gboolean	 recursive,
-							 DBusGMethodInvocation *context);
-void		 pk_transaction_get_details		(PkTransaction	*transaction,
-							 gchar		**package_ids,
-							 DBusGMethodInvocation *context);
-void		 pk_transaction_get_distro_upgrades	(PkTransaction	*transaction,
-							 DBusGMethodInvocation *context);
-void		 pk_transaction_get_files		(PkTransaction	*transaction,
-							 gchar		**package_ids,
-							 DBusGMethodInvocation *context);
-gboolean	 pk_transaction_get_old_transactions	(PkTransaction	*transaction,
-							 guint		 number,
-							 GError		**error);
-gboolean	 pk_transaction_get_package_last	(PkTransaction	*transaction,
-							 gchar		**package,
-							 GError		**error);
-void		 pk_transaction_get_packages		(PkTransaction	*transaction,
-							 const gchar	*filter,
-							 DBusGMethodInvocation *context);
-gboolean	 pk_transaction_get_progress		(PkTransaction	*transaction,
-							 guint		*percentage,
-							 guint		*subpercentage,
-							 guint		*elapsed,
-							 guint		*remaining,
-							 GError		**error);
-void		 pk_transaction_get_repo_list		(PkTransaction	*transaction,
-							 const gchar	*filter,
-							 DBusGMethodInvocation *context);
-void		 pk_transaction_get_requires		(PkTransaction	*transaction,
-							 const gchar	*filter,
-							 gchar		**package_ids,
-							 gboolean	 recursive,
-							 DBusGMethodInvocation *context);
-gboolean	 pk_transaction_get_role		(PkTransaction	*transaction,
-							 const gchar	**role,
-							 const gchar	**text,
-							 GError		**error);
-gboolean	 pk_transaction_get_status		(PkTransaction	*transaction,
-							 const gchar	**status,
-							 GError		**error);
-void		 pk_transaction_get_update_detail	(PkTransaction	*transaction,
-							 gchar		**package_ids,
-							 DBusGMethodInvocation *context);
-void		 pk_transaction_get_updates		(PkTransaction	*transaction,
-							 const gchar	*filter,
-							 DBusGMethodInvocation *context);
-void		 pk_transaction_install_files		(PkTransaction	*transaction,
-							 gboolean	 only_trusted,
-							 gchar		**full_paths,
-							 DBusGMethodInvocation *context);
-void		 pk_transaction_install_packages	(PkTransaction	*transaction,
-							 gboolean	 only_trusted,
-							 gchar		**package_ids,
-							 DBusGMethodInvocation *context);
-void		 pk_transaction_install_signature	(PkTransaction	*transaction,
-							 const gchar	*sig_type,
-							 const gchar	*key_id,
-							 const gchar	*package_id,
-							 DBusGMethodInvocation *context);
-gboolean	 pk_transaction_is_caller_active	(PkTransaction	*transaction,
-							 gboolean	*is_active,
-							 GError		**error);
-void		 pk_transaction_refresh_cache		(PkTransaction	*transaction,
-							 gboolean	 force,
-							 DBusGMethodInvocation *context);
-void		 pk_transaction_remove_packages		(PkTransaction	*transaction,
-							 gchar		**package_ids,
-							 gboolean	 allow_deps,
-							 gboolean	 autoremove,
-							 DBusGMethodInvocation *context);
-void		 pk_transaction_repo_enable		(PkTransaction	*transaction,
-							 const gchar	*repo_id,
-							 gboolean	 enabled,
-							 DBusGMethodInvocation *context);
-void		 pk_transaction_repo_set_data		(PkTransaction	*transaction,
-							 const gchar	*repo_id,
-							 const gchar	*parameter,
-							 const gchar	*value,
-							 DBusGMethodInvocation *context);
-void		 pk_transaction_resolve			(PkTransaction	*transaction,
-							 const gchar	*filter,
-							 gchar		**packages,
-							 DBusGMethodInvocation *context);
-void		 pk_transaction_rollback		(PkTransaction	*transaction,
-							 const gchar	*transaction_id,
-							 DBusGMethodInvocation *context);
-void		 pk_transaction_search_details		(PkTransaction	*transaction,
-							 const gchar	*filter,
-							 const gchar	*search,
-							 DBusGMethodInvocation *context);
-void		 pk_transaction_search_file		(PkTransaction	*transaction,
-							 const gchar	*filter,
-							 const gchar	*search,
-							 DBusGMethodInvocation *context);
-void		 pk_transaction_search_group		(PkTransaction	*transaction,
-							 const gchar	*filter,
-							 const gchar	*search,
-							 DBusGMethodInvocation *context);
-void		 pk_transaction_search_name		(PkTransaction	*transaction,
-							 const gchar	*filter,
-							 const gchar	*search,
-							 DBusGMethodInvocation *context);
-void		 pk_transaction_set_locale		(PkTransaction	*transaction,
-							 const gchar	*code,
-							 DBusGMethodInvocation *context);
-void		 pk_transaction_update_packages		(PkTransaction	*transaction,
-							 gboolean	 only_trusted,
-							 gchar		**package_ids,
-							 DBusGMethodInvocation *context);
-void		 pk_transaction_update_system		(PkTransaction	*transaction,
-							 gboolean	 only_trusted,
-							 DBusGMethodInvocation *context);
-void		 pk_transaction_what_provides		(PkTransaction	*transaction,
-							 const gchar	*filter,
-							 const gchar	*type,
-							 const gchar	*search,
-							 DBusGMethodInvocation *context);
+void		 pk_transaction_accept_eula			(PkTransaction	*transaction,
+								 const gchar	*eula_id,
+								 DBusGMethodInvocation *context);
+void		 pk_transaction_cancel				(PkTransaction	*transaction,
+								 DBusGMethodInvocation *context);
+void		 pk_transaction_download_packages		(PkTransaction  *transaction,
+								 gchar		**package_ids,
+								 DBusGMethodInvocation *context);
+gboolean	 pk_transaction_get_allow_cancel		(PkTransaction	*transaction,
+								 gboolean	*allow_cancel,
+								 GError		**error);
+void		 pk_transaction_get_categories			(PkTransaction	*transaction,
+								 DBusGMethodInvocation *context);
+void		 pk_transaction_get_depends			(PkTransaction	*transaction,
+								 const gchar	*filter,
+								 gchar		**package_ids,
+								 gboolean	 recursive,
+								 DBusGMethodInvocation *context);
+void		 pk_transaction_get_details			(PkTransaction	*transaction,
+								 gchar		**package_ids,
+								 DBusGMethodInvocation *context);
+void		 pk_transaction_get_distro_upgrades		(PkTransaction	*transaction,
+								 DBusGMethodInvocation *context);
+void		 pk_transaction_get_files			(PkTransaction	*transaction,
+								 gchar		**package_ids,
+								 DBusGMethodInvocation *context);
+gboolean	 pk_transaction_get_old_transactions		(PkTransaction	*transaction,
+								 guint		 number,
+								 GError		**error);
+gboolean	 pk_transaction_get_package_last		(PkTransaction	*transaction,
+								 gchar		**package,
+								 GError		**error);
+void		 pk_transaction_get_packages			(PkTransaction	*transaction,
+								 const gchar	*filter,
+								 DBusGMethodInvocation *context);
+gboolean	 pk_transaction_get_progress			(PkTransaction	*transaction,
+								 guint		*percentage,
+								 guint		*subpercentage,
+								 guint		*elapsed,
+								 guint		*remaining,
+								 GError		**error);
+void		 pk_transaction_get_repo_list			(PkTransaction	*transaction,
+								 const gchar	*filter,
+								 DBusGMethodInvocation *context);
+void		 pk_transaction_get_requires			(PkTransaction	*transaction,
+								 const gchar	*filter,
+								 gchar		**package_ids,
+								 gboolean	 recursive,
+								 DBusGMethodInvocation *context);
+gboolean	 pk_transaction_get_role			(PkTransaction	*transaction,
+								 const gchar	**role,
+								 const gchar	**text,
+								 GError		**error);
+gboolean	 pk_transaction_get_status			(PkTransaction	*transaction,
+								 const gchar	**status,
+								 GError		**error);
+void		 pk_transaction_get_update_detail		(PkTransaction	*transaction,
+								 gchar		**package_ids,
+								 DBusGMethodInvocation *context);
+void		 pk_transaction_get_updates			(PkTransaction	*transaction,
+								 const gchar	*filter,
+								 DBusGMethodInvocation *context);
+void		 pk_transaction_install_files			(PkTransaction	*transaction,
+								 gboolean	 only_trusted,
+								 gchar		**full_paths,
+								 DBusGMethodInvocation *context);
+void		 pk_transaction_install_packages		(PkTransaction	*transaction,
+								 gboolean	 only_trusted,
+								 gchar		**package_ids,
+								 DBusGMethodInvocation *context);
+void		 pk_transaction_install_signature		(PkTransaction	*transaction,
+								 const gchar	*sig_type,
+								 const gchar	*key_id,
+								 const gchar	*package_id,
+								DBusGMethodInvocation *context);
+gboolean	 pk_transaction_is_caller_active		(PkTransaction	*transaction,
+								 gboolean	*is_active,
+								 GError		**error);
+void		 pk_transaction_refresh_cache			(PkTransaction	*transaction,
+								 gboolean	 force,
+								 DBusGMethodInvocation *context);
+void		 pk_transaction_remove_packages			(PkTransaction	*transaction,
+								 gchar		**package_ids,
+								 gboolean	 allow_deps,
+								 gboolean	 autoremove,
+								 DBusGMethodInvocation *context);
+void		 pk_transaction_repo_enable			(PkTransaction	*transaction,
+								 const gchar	*repo_id,
+								 gboolean	 enabled,
+								 DBusGMethodInvocation *context);
+void		 pk_transaction_repo_set_data			(PkTransaction	*transaction,
+								 const gchar	*repo_id,
+								 const gchar	*parameter,
+								 const gchar	*value,
+								 DBusGMethodInvocation *context);
+void		 pk_transaction_resolve				(PkTransaction	*transaction,
+								 const gchar	*filter,
+								 gchar		**packages,
+								 DBusGMethodInvocation *context);
+void		 pk_transaction_rollback			(PkTransaction	*transaction,
+								 const gchar	*transaction_id,
+								 DBusGMethodInvocation *context);
+void		 pk_transaction_search_details			(PkTransaction	*transaction,
+								 const gchar	*filter,
+								 const gchar	*search,
+								 DBusGMethodInvocation *context);
+void		 pk_transaction_search_file			(PkTransaction	*transaction,
+								 const gchar	*filter,
+								 const gchar	*search,
+								 DBusGMethodInvocation *context);
+void		 pk_transaction_search_group			(PkTransaction	*transaction,
+								 const gchar	*filter,
+								 const gchar	*search,
+								 DBusGMethodInvocation *context);
+void		 pk_transaction_search_name			(PkTransaction	*transaction,
+								 const gchar	*filter,
+								 const gchar	*search,
+								 DBusGMethodInvocation *context);
+void		 pk_transaction_set_locale			(PkTransaction	*transaction,
+								 const gchar	*code,
+								 DBusGMethodInvocation *context);
+void		 pk_transaction_simulate_install_files		(PkTransaction  *transaction,
+								 gchar		**full_paths,
+								 DBusGMethodInvocation *context);
+void		 pk_transaction_simulate_install_packages	(PkTransaction  *transaction,
+								 gchar		**package_ids,
+								 DBusGMethodInvocation *context);
+void		 pk_transaction_simulate_remove_packages	(PkTransaction  *transaction,
+								 gchar		**package_ids,
+								 DBusGMethodInvocation *context);
+void		 pk_transaction_simulate_update_packages	(PkTransaction  *transaction,
+								 gchar		**package_ids,
+								 DBusGMethodInvocation *context);
+void		 pk_transaction_update_packages			(PkTransaction	*transaction,
+								 gboolean	 only_trusted,
+								 gchar		**package_ids,
+								 DBusGMethodInvocation *context);
+void		 pk_transaction_update_system			(PkTransaction	*transaction,
+								 gboolean	 only_trusted,
+								 DBusGMethodInvocation *context);
+void		 pk_transaction_what_provides			(PkTransaction	*transaction,
+								 const gchar	*filter,
+								 const gchar	*type,
+								 const gchar	*search,
+								 DBusGMethodInvocation *context);
 
 G_END_DECLS
 
commit b9842318fc7977469a50337841365d854563219d
Author: Daniel Nicoletti <dantti85-pk at yahoo.com.br>
Date:   Fri Aug 21 16:30:33 2009 +0100

    Add the backend internal API for Simulate

diff --git a/backends/alpm/pk-backend-alpm.c b/backends/alpm/pk-backend-alpm.c
index 0a82bf3..14d1c3d 100644
--- a/backends/alpm/pk-backend-alpm.c
+++ b/backends/alpm/pk-backend-alpm.c
@@ -1602,5 +1602,9 @@ PK_BACKEND_OPTIONS (
 	backend_search_name,				/* search_name */
 	backend_update_packages,			/* update_packages */
 	backend_update_system,				/* update_system */
-	backend_what_provides				/* what_provides */
+	backend_what_provides,				/* what_provides */
+	NULL,						/* simulate_install_files */
+	NULL,						/* simulate_install_packages */
+	NULL,						/* simulate_remove_packages */
+	NULL						/* simulate_update_packages */
 );
diff --git a/backends/apt/pk-backend-apt.c b/backends/apt/pk-backend-apt.c
index 3e04189..c01486a 100644
--- a/backends/apt/pk-backend-apt.c
+++ b/backends/apt/pk-backend-apt.c
@@ -517,7 +517,11 @@ PK_BACKEND_OPTIONS (
 	backend_search_name,			/* search_name */
 	backend_update_packages,		/* update_packages */
 	backend_update_system,			/* update_system */
-	backend_what_provides			/* what_provides */
+	backend_what_provides,			/* what_provides */
+	NULL,					/* simulate_install_files */
+	NULL,					/* simulate_install_packages */
+	NULL,					/* simulate_remove_packages */
+	NULL					/* simulate_update_packages */
 );
 
 
diff --git a/backends/aptcc/pk-backend-aptcc.cpp b/backends/aptcc/pk-backend-aptcc.cpp
index 8381dc1..559e8db 100644
--- a/backends/aptcc/pk-backend-aptcc.cpp
+++ b/backends/aptcc/pk-backend-aptcc.cpp
@@ -1406,5 +1406,9 @@ extern "C" PK_BACKEND_OPTIONS (
 	backend_search_name,				/* search_name */
 	NULL,						/* update_packages */
 	backend_update_system,				/* update_system */
-	NULL						/* what_provides */
+	NULL,						/* what_provides */
+	NULL,						/* simulate_install_files */
+	NULL,						/* simulate_install_packages */
+	NULL,						/* simulate_remove_packages */
+	NULL						/* simulate_update_packages */
 );
diff --git a/backends/box/pk-backend-box.c b/backends/box/pk-backend-box.c
index 6f21f12..6097cbb 100644
--- a/backends/box/pk-backend-box.c
+++ b/backends/box/pk-backend-box.c
@@ -700,6 +700,10 @@ PK_BACKEND_OPTIONS (
 	backend_search_name,			/* search_name */
 	backend_update_packages,		/* update_packages */
 	backend_update_system,			/* update_system */
-	NULL					/* what_provides */
+	NULL,					/* what_provides */
+	NULL,					/* simulate_install_files */
+	NULL,					/* simulate_install_packages */
+	NULL,					/* simulate_remove_packages */
+	NULL					/* simulate_update_packages */
 );
 
diff --git a/backends/conary/pk-backend-conary.c b/backends/conary/pk-backend-conary.c
index 412dc69..8156a94 100644
--- a/backends/conary/pk-backend-conary.c
+++ b/backends/conary/pk-backend-conary.c
@@ -387,6 +387,10 @@ PK_BACKEND_OPTIONS (
 	backend_search_name,			/* search_name */
 	backend_update_packages,		/* update_packages */
 	backend_update_system,			/* update_system */
-	NULL					/* what_provides */
+	NULL,					/* what_provides */
+	NULL,					/* simulate_install_files */
+	NULL,					/* simulate_install_packages */
+	NULL,					/* simulate_remove_packages */
+	NULL					/* simulate_update_packages */
 );
 
diff --git a/backends/dummy/pk-backend-dummy.c b/backends/dummy/pk-backend-dummy.c
index e0295dc..968e6d3 100644
--- a/backends/dummy/pk-backend-dummy.c
+++ b/backends/dummy/pk-backend-dummy.c
@@ -1195,6 +1195,10 @@ PK_BACKEND_OPTIONS (
 	backend_search_name,			/* search_name */
 	backend_update_packages,		/* update_packages */
 	backend_update_system,			/* update_system */
-	backend_what_provides			/* what_provides */
+	backend_what_provides,			/* what_provides */
+	NULL,					/* simulate_install_files */
+	NULL,					/* simulate_install_packages */
+	NULL,					/* simulate_remove_packages */
+	NULL					/* simulate_update_packages */
 );
 
diff --git a/backends/opkg/pk-backend-opkg.c b/backends/opkg/pk-backend-opkg.c
index 34a2439..211ec72 100644
--- a/backends/opkg/pk-backend-opkg.c
+++ b/backends/opkg/pk-backend-opkg.c
@@ -756,6 +756,10 @@ PK_BACKEND_OPTIONS (
 	backend_search_name,			/* search_name */
 	backend_update_packages,		/* update_packages */
 	backend_update_system,			/* update_system */
-	NULL					/* what_provides */
+	NULL,					/* what_provides */
+	NULL,					/* simulate_install_files */
+	NULL,					/* simulate_install_packages */
+	NULL,					/* simulate_remove_packages */
+	NULL					/* simulate_update_packages */
 );
 
diff --git a/backends/pisi/pk-backend-pisi.c b/backends/pisi/pk-backend-pisi.c
index 583edc0..3375919 100644
--- a/backends/pisi/pk-backend-pisi.c
+++ b/backends/pisi/pk-backend-pisi.c
@@ -381,6 +381,10 @@ PK_BACKEND_OPTIONS (
 	backend_search_name,			/* search_name */
 	backend_update_packages,		/* update_packages */
 	backend_update_system,			/* update_system */
-	NULL					/* what_provides */
+	NULL,					/* what_provides */
+	NULL,					/* simulate_install_files */
+	NULL,					/* simulate_install_packages */
+	NULL,					/* simulate_remove_packages */
+	NULL					/* simulate_update_packages */
 );
 
diff --git a/backends/poldek/pk-backend-poldek.c b/backends/poldek/pk-backend-poldek.c
index 3dd1551..96f1979 100644
--- a/backends/poldek/pk-backend-poldek.c
+++ b/backends/poldek/pk-backend-poldek.c
@@ -3107,6 +3107,10 @@ PK_BACKEND_OPTIONS (
 	backend_search_name,				/* search_name */
 	backend_update_packages,			/* update_packages */
 	backend_update_system,				/* update_system */
-	backend_what_provides				/* what_provides */
+	backend_what_provides,				/* what_provides */
+	NULL,						/* simulate_install_files */
+	NULL,						/* simulate_install_packages */
+	NULL,						/* simulate_remove_packages */
+	NULL						/* simulate_update_packages */
 );
 
diff --git a/backends/portage/pk-backend-portage.c b/backends/portage/pk-backend-portage.c
index 1967c22..98d558a 100644
--- a/backends/portage/pk-backend-portage.c
+++ b/backends/portage/pk-backend-portage.c
@@ -421,6 +421,10 @@ PK_BACKEND_OPTIONS (
 	backend_search_name,			/* search_name */
 	backend_update_packages,		/* update_packages */
 	backend_update_system,			/* update_system */
-	NULL			/* what_provides */
+	NULL,			/* what_provides */
+	NULL,					/* simulate_install_files */
+	NULL,					/* simulate_install_packages */
+	NULL,					/* simulate_remove_packages */
+	NULL					/* simulate_update_packages */
 );
 
diff --git a/backends/razor/pk-backend-razor.c b/backends/razor/pk-backend-razor.c
index 9301c62..6deed68 100644
--- a/backends/razor/pk-backend-razor.c
+++ b/backends/razor/pk-backend-razor.c
@@ -427,6 +427,10 @@ PK_BACKEND_OPTIONS (
 	backend_search_name,			/* search_name */
 	NULL,					/* update_packages */
 	NULL,					/* update_system */
-	NULL					/* what_provides */
+	NULL,					/* what_provides */
+	NULL,					/* simulate_install_files */
+	NULL,					/* simulate_install_packages */
+	NULL,					/* simulate_remove_packages */
+	NULL					/* simulate_update_packages */
 );
 
diff --git a/backends/smart/pk-backend-smart.c b/backends/smart/pk-backend-smart.c
index d93c327..aedecde 100644
--- a/backends/smart/pk-backend-smart.c
+++ b/backends/smart/pk-backend-smart.c
@@ -479,5 +479,9 @@ PK_BACKEND_OPTIONS (
 	backend_search_name,				/* search_name */
 	backend_update_packages,			/* update_packages */
 	backend_update_system,				/* update_system */
-	backend_what_provides				/* what_provides */
+	backend_what_provides,				/* what_provides */
+	NULL,						/* simulate_install_files */
+	NULL,						/* simulate_install_packages */
+	NULL,						/* simulate_remove_packages */
+	NULL						/* simulate_update_packages */
 );
diff --git a/backends/test/pk-backend-test-fail.c b/backends/test/pk-backend-test-fail.c
index 54d65ab..9b75559 100644
--- a/backends/test/pk-backend-test-fail.c
+++ b/backends/test/pk-backend-test-fail.c
@@ -282,6 +282,10 @@ PK_BACKEND_OPTIONS (
 	backend_search_name,			/* search_name */
 	backend_update_packages,		/* update_packages */
 	backend_update_system,			/* update_system */
-	NULL					/* what_provides */
+	NULL,					/* what_provides */
+	NULL,					/* simulate_install_files */
+	NULL,					/* simulate_install_packages */
+	NULL,					/* simulate_remove_packages */
+	NULL					/* simulate_update_packages */
 );
 
diff --git a/backends/test/pk-backend-test-nop.c b/backends/test/pk-backend-test-nop.c
index edfe53b..569580b 100644
--- a/backends/test/pk-backend-test-nop.c
+++ b/backends/test/pk-backend-test-nop.c
@@ -58,6 +58,10 @@ PK_BACKEND_OPTIONS (
 	NULL,					/* search_name */
 	NULL,					/* update_package */
 	NULL,					/* update_system */
-	NULL					/* what_provides */
+	NULL,					/* what_provides */
+	NULL,					/* simulate_install_files */
+	NULL,					/* simulate_install_packages */
+	NULL,					/* simulate_remove_packages */
+	NULL					/* simulate_update_packages */
 );
 
diff --git a/backends/test/pk-backend-test-spawn.c b/backends/test/pk-backend-test-spawn.c
index c983543..01d3fc8 100644
--- a/backends/test/pk-backend-test-spawn.c
+++ b/backends/test/pk-backend-test-spawn.c
@@ -99,6 +99,10 @@ PK_BACKEND_OPTIONS (
 	backend_search_name,			/* search_name */
 	NULL,					/* update_package */
 	NULL,					/* update_system */
-	NULL					/* what_provides */
+	NULL,					/* what_provides */
+	NULL,					/* simulate_install_files */
+	NULL,					/* simulate_install_packages */
+	NULL,					/* simulate_remove_packages */
+	NULL					/* simulate_update_packages */
 );
 
diff --git a/backends/test/pk-backend-test-succeed.c b/backends/test/pk-backend-test-succeed.c
index ae5c012..b1b7e0a 100644
--- a/backends/test/pk-backend-test-succeed.c
+++ b/backends/test/pk-backend-test-succeed.c
@@ -342,6 +342,10 @@ PK_BACKEND_OPTIONS (
 	backend_search_name,			/* search_name */
 	backend_update_packages,		/* update_packages */
 	backend_update_system,			/* update_system */
-	backend_what_provides			/* what_provides */
+	backend_what_provides,			/* what_provides */
+	NULL,					/* simulate_install_files */
+	NULL,					/* simulate_install_packages */
+	NULL,					/* simulate_remove_packages */
+	NULL					/* simulate_update_packages */
 );
 
diff --git a/backends/test/pk-backend-test-thread.c b/backends/test/pk-backend-test-thread.c
index fbdbada..c5e1a1e 100644
--- a/backends/test/pk-backend-test-thread.c
+++ b/backends/test/pk-backend-test-thread.c
@@ -171,6 +171,10 @@ PK_BACKEND_OPTIONS (
 	backend_search_name,			/* search_name */
 	NULL,					/* update_package */
 	NULL,					/* update_system */
-	NULL					/* what_provides */
+	NULL,					/* what_provides */
+	NULL,					/* simulate_install_files */
+	NULL,					/* simulate_install_packages */
+	NULL,					/* simulate_remove_packages */
+	NULL					/* simulate_update_packages */
 );
 
diff --git a/backends/urpmi/pk-backend-urpmi.c b/backends/urpmi/pk-backend-urpmi.c
index 5bdc8f8..9a44249 100644
--- a/backends/urpmi/pk-backend-urpmi.c
+++ b/backends/urpmi/pk-backend-urpmi.c
@@ -379,6 +379,10 @@ PK_BACKEND_OPTIONS (
 	backend_search_name,			/* search_name */
 	backend_update_packages,		/* update_packages */
 	backend_update_system,			/* update_system */
-	NULL					/* what_provides */
+	NULL,					/* what_provides */
+	NULL,					/* simulate_install_files */
+	NULL,					/* simulate_install_packages */
+	NULL,					/* simulate_remove_packages */
+	NULL					/* simulate_update_packages */
 );
 
diff --git a/backends/yum/pk-backend-yum.c b/backends/yum/pk-backend-yum.c
index 3ff4d1e..d28c177 100644
--- a/backends/yum/pk-backend-yum.c
+++ b/backends/yum/pk-backend-yum.c
@@ -507,6 +507,10 @@ PK_BACKEND_OPTIONS (
 	backend_search_name,			/* search_name */
 	backend_update_packages,		/* update_packages */
 	backend_update_system,			/* update_system */
-	backend_what_provides			/* what_provides */
+	backend_what_provides,			/* what_provides */
+	NULL,					/* simulate_install_files */
+	NULL,					/* simulate_install_packages */
+	NULL,					/* simulate_remove_packages */
+	NULL					/* simulate_update_packages */
 );
 
diff --git a/backends/zypp/pk-backend-zypp.cpp b/backends/zypp/pk-backend-zypp.cpp
index 3070555..46ca5a1 100644
--- a/backends/zypp/pk-backend-zypp.cpp
+++ b/backends/zypp/pk-backend-zypp.cpp
@@ -1888,6 +1888,10 @@ extern "C" PK_BACKEND_OPTIONS (
 	backend_search_name,			/* search_name */
 	backend_update_packages,		/* update_packages */
 	backend_update_system,			/* update_system */
-	backend_what_provides			/* what_provides */
+	backend_what_provides,			/* what_provides */
+	NULL,					/* simulate_install_files */
+	NULL,					/* simulate_install_packages */
+	NULL,					/* simulate_remove_packages */
+	NULL					/* simulate_update_packages */
 );
 
diff --git a/lib/packagekit-glib/pk-enum.c b/lib/packagekit-glib/pk-enum.c
index 965aacd..41eef4f 100644
--- a/lib/packagekit-glib/pk-enum.c
+++ b/lib/packagekit-glib/pk-enum.c
@@ -94,37 +94,41 @@ static const PkEnumMatch enum_status[] = {
 };
 
 static const PkEnumMatch enum_role[] = {
-	{PK_ROLE_ENUM_UNKNOWN,			"unknown"},	/* fall though value */
-	{PK_ROLE_ENUM_CANCEL,			"cancel"},
-	{PK_ROLE_ENUM_GET_DEPENDS,		"get-depends"},
-	{PK_ROLE_ENUM_GET_DETAILS,		"get-details"},
-	{PK_ROLE_ENUM_GET_FILES,		"get-files"},
-	{PK_ROLE_ENUM_GET_PACKAGES,		"get-packages"},
-	{PK_ROLE_ENUM_GET_REPO_LIST,		"get-repo-list"},
-	{PK_ROLE_ENUM_GET_REQUIRES,		"get-requires"},
-	{PK_ROLE_ENUM_GET_UPDATE_DETAIL,	"get-update-detail"},
-	{PK_ROLE_ENUM_GET_UPDATES,		"get-updates"},
-	{PK_ROLE_ENUM_INSTALL_FILES,		"install-files"},
-	{PK_ROLE_ENUM_INSTALL_PACKAGES,		"install-packages"},
-	{PK_ROLE_ENUM_INSTALL_SIGNATURE,	"install-signature"},
-	{PK_ROLE_ENUM_REFRESH_CACHE,		"refresh-cache"},
-	{PK_ROLE_ENUM_REMOVE_PACKAGES,		"remove-packages"},
-	{PK_ROLE_ENUM_REPO_ENABLE,		"repo-enable"},
-	{PK_ROLE_ENUM_REPO_SET_DATA,		"repo-set-data"},
-	{PK_ROLE_ENUM_RESOLVE,			"resolve"},
-	{PK_ROLE_ENUM_ROLLBACK,			"rollback"},
-	{PK_ROLE_ENUM_SEARCH_DETAILS,		"search-details"},
-	{PK_ROLE_ENUM_SEARCH_FILE,		"search-file"},
-	{PK_ROLE_ENUM_SEARCH_GROUP,		"search-group"},
-	{PK_ROLE_ENUM_SEARCH_NAME,		"search-name"},
-	{PK_ROLE_ENUM_UPDATE_PACKAGES,		"update-packages"},
-	{PK_ROLE_ENUM_UPDATE_SYSTEM,		"update-system"},
-	{PK_ROLE_ENUM_WHAT_PROVIDES,		"what-provides"},
-	{PK_ROLE_ENUM_ACCEPT_EULA,		"accept-eula"},
-	{PK_ROLE_ENUM_DOWNLOAD_PACKAGES,	"download-packages"},
-	{PK_ROLE_ENUM_GET_DISTRO_UPGRADES,	"get-distro-upgrades"},
-	{PK_ROLE_ENUM_GET_CATEGORIES,		"get-categories"},
-	{PK_ROLE_ENUM_GET_OLD_TRANSACTIONS,	"get-old-transactions"},
+	{PK_ROLE_ENUM_UNKNOWN,				"unknown"},	/* fall though value */
+	{PK_ROLE_ENUM_CANCEL,				"cancel"},
+	{PK_ROLE_ENUM_GET_DEPENDS,			"get-depends"},
+	{PK_ROLE_ENUM_GET_DETAILS,			"get-details"},
+	{PK_ROLE_ENUM_GET_FILES,			"get-files"},
+	{PK_ROLE_ENUM_GET_PACKAGES,			"get-packages"},
+	{PK_ROLE_ENUM_GET_REPO_LIST,			"get-repo-list"},
+	{PK_ROLE_ENUM_GET_REQUIRES,			"get-requires"},
+	{PK_ROLE_ENUM_GET_UPDATE_DETAIL,		"get-update-detail"},
+	{PK_ROLE_ENUM_GET_UPDATES,			"get-updates"},
+	{PK_ROLE_ENUM_INSTALL_FILES,			"install-files"},
+	{PK_ROLE_ENUM_INSTALL_PACKAGES,			"install-packages"},
+	{PK_ROLE_ENUM_INSTALL_SIGNATURE,		"install-signature"},
+	{PK_ROLE_ENUM_REFRESH_CACHE,			"refresh-cache"},
+	{PK_ROLE_ENUM_REMOVE_PACKAGES,			"remove-packages"},
+	{PK_ROLE_ENUM_REPO_ENABLE,			"repo-enable"},
+	{PK_ROLE_ENUM_REPO_SET_DATA,			"repo-set-data"},
+	{PK_ROLE_ENUM_RESOLVE,				"resolve"},
+	{PK_ROLE_ENUM_ROLLBACK,				"rollback"},
+	{PK_ROLE_ENUM_SEARCH_DETAILS,			"search-details"},
+	{PK_ROLE_ENUM_SEARCH_FILE,			"search-file"},
+	{PK_ROLE_ENUM_SEARCH_GROUP,			"search-group"},
+	{PK_ROLE_ENUM_SEARCH_NAME,			"search-name"},
+	{PK_ROLE_ENUM_UPDATE_PACKAGES,			"update-packages"},
+	{PK_ROLE_ENUM_UPDATE_SYSTEM,			"update-system"},
+	{PK_ROLE_ENUM_WHAT_PROVIDES,			"what-provides"},
+	{PK_ROLE_ENUM_ACCEPT_EULA,			"accept-eula"},
+	{PK_ROLE_ENUM_DOWNLOAD_PACKAGES,		"download-packages"},
+	{PK_ROLE_ENUM_GET_DISTRO_UPGRADES,		"get-distro-upgrades"},
+	{PK_ROLE_ENUM_GET_CATEGORIES,			"get-categories"},
+	{PK_ROLE_ENUM_GET_OLD_TRANSACTIONS,		"get-old-transactions"},
+	{PK_ROLE_ENUM_SIMULATE_INSTALL_FILES,		"simulate-install-files"},
+	{PK_ROLE_ENUM_SIMULATE_INSTALL_PACKAGES,	"simulate-install-packages"},
+	{PK_ROLE_ENUM_SIMULATE_REMOVE_PACKAGES,		"simulate-remove-packages"},
+	{PK_ROLE_ENUM_SIMULATE_UPDATE_PACKAGES,		"simulate-update-packages"},
 	{0, NULL}
 };
 
diff --git a/lib/packagekit-glib/pk-enum.h b/lib/packagekit-glib/pk-enum.h
index b62ceee..2542ce8 100644
--- a/lib/packagekit-glib/pk-enum.h
+++ b/lib/packagekit-glib/pk-enum.h
@@ -80,6 +80,10 @@ typedef enum {
 	PK_ROLE_ENUM_GET_DISTRO_UPGRADES,
 	PK_ROLE_ENUM_GET_CATEGORIES,
 	PK_ROLE_ENUM_GET_OLD_TRANSACTIONS,
+	PK_ROLE_ENUM_SIMULATE_INSTALL_FILES,
+	PK_ROLE_ENUM_SIMULATE_INSTALL_PACKAGES,
+	PK_ROLE_ENUM_SIMULATE_REMOVE_PACKAGES,
+	PK_ROLE_ENUM_SIMULATE_UPDATE_PACKAGES,
 	PK_ROLE_ENUM_UNKNOWN
 } PkRoleEnum;
 
diff --git a/src/pk-backend.c b/src/pk-backend.c
index c7669e5..680d10e 100644
--- a/src/pk-backend.c
+++ b/src/pk-backend.c
@@ -258,6 +258,14 @@ pk_backend_get_actions (PkBackend *backend)
 		pk_bitfield_add (roles, PK_ROLE_ENUM_GET_DISTRO_UPGRADES);
 	if (desc->get_categories != NULL)
 		pk_bitfield_add (roles, PK_ROLE_ENUM_GET_CATEGORIES);
+	if (desc->simulate_install_files != NULL)
+		pk_bitfield_add (roles, PK_ROLE_ENUM_SIMULATE_INSTALL_FILES);
+	if (desc->simulate_install_packages != NULL || desc->get_depends != NULL)
+		pk_bitfield_add (roles, PK_ROLE_ENUM_SIMULATE_INSTALL_PACKAGES);
+	if (desc->simulate_remove_packages != NULL || desc->get_requires != NULL)
+		pk_bitfield_add (roles, PK_ROLE_ENUM_SIMULATE_REMOVE_PACKAGES);
+	if (desc->simulate_update_packages != NULL || desc->get_depends != NULL)
+		pk_bitfield_add (roles, PK_ROLE_ENUM_SIMULATE_UPDATE_PACKAGES);
 	return roles;
 }
 
diff --git a/src/pk-backend.h b/src/pk-backend.h
index a151796..10bd3eb 100644
--- a/src/pk-backend.h
+++ b/src/pk-backend.h
@@ -289,53 +289,67 @@ typedef struct {
 							 PkBitfield	 filters,
 							 PkProvidesEnum	 provides,
 							 const gchar	*search);
+	void		(*simulate_install_files)	(PkBackend	*backend,
+							 gchar		**full_paths);
+	void		(*simulate_install_packages)	(PkBackend	*backend,
+							 gchar		**package_ids);
+	void		(*simulate_remove_packages)	(PkBackend	*backend,
+							 gchar		**package_ids);
+	void		(*simulate_update_packages)	(PkBackend	*backend,
+							 gchar		**package_ids);
 	gpointer	padding[10];
 } PkBackendDesc;
 
 #define PK_BACKEND_OPTIONS(description, author, initialize, destroy, get_groups, get_filters, 		\
 			   get_mime_types, cancel, download_packages, get_categories, get_depends,	\
-			   get_details, get_distro_upgrades, get_files, get_packages, get_repo_list, get_requires,	\
-			   get_update_detail, get_updates, install_files, install_packages,		\
-			   install_signature, refresh_cache, remove_packages, repo_enable,		\
-			   repo_set_data, resolve, rollback, search_details, search_file, search_group,	\
-			   search_name, update_packages, update_system, what_provides)	\
+			   get_details, get_distro_upgrades, get_files, get_packages, get_repo_list,	\
+			   get_requires, get_update_detail, get_updates, install_files,			\
+			   install_packages, install_signature, refresh_cache, remove_packages,		\
+			   repo_enable, repo_set_data, resolve, rollback, search_details, search_file,	\
+			   search_group, search_name, update_packages, update_system, what_provides,	\
+			   simulate_install_files, simulate_install_packages, simulate_remove_packages,	\
+			   simulate_update_packages )							\
 	G_MODULE_EXPORT const PkBackendDesc pk_backend_desc = { 					\
-		description,		\
-		author,			\
-		initialize,		\
-		destroy,		\
-		get_groups,		\
-		get_filters,		\
-		get_mime_types,		\
-		cancel,			\
-		download_packages,	\
-		get_categories,		\
-		get_depends,		\
-		get_details,		\
-		get_distro_upgrades,	\
-		get_files,		\
-		get_packages,		\
-		get_repo_list,		\
-		get_requires,		\
-		get_update_detail,	\
-		get_updates,		\
-		install_files,		\
-		install_packages,	\
-		install_signature,	\
-		refresh_cache,		\
-		remove_packages,	\
-		repo_enable,		\
-		repo_set_data,		\
-		resolve,		\
-		rollback,		\
-		search_details,		\
-		search_file,		\
-		search_group,		\
-		search_name,		\
-		update_packages,	\
-		update_system,		\
-		what_provides,		\
-		{0} 			\
+		description,			\
+		author,				\
+		initialize,			\
+		destroy,			\
+		get_groups,			\
+		get_filters,			\
+		get_mime_types,			\
+		cancel,				\
+		download_packages,		\
+		get_categories,			\
+		get_depends,			\
+		get_details,			\
+		get_distro_upgrades,		\
+		get_files,			\
+		get_packages,			\
+		get_repo_list,			\
+		get_requires,			\
+		get_update_detail,		\
+		get_updates,			\
+		install_files,			\
+		install_packages,		\
+		install_signature,		\
+		refresh_cache,			\
+		remove_packages,		\
+		repo_enable,			\
+		repo_set_data,			\
+		resolve,			\
+		rollback,			\
+		search_details,			\
+		search_file,			\
+		search_group,			\
+		search_name,			\
+		update_packages,		\
+		update_system,			\
+		what_provides,			\
+		simulate_install_files,		\
+		simulate_install_packages,	\
+		simulate_remove_packages,	\
+		simulate_update_packages,	\
+		{0} 				\
 	}
 
 G_END_DECLS
commit e3b9d746680532a167d481945232a497d98f90c4
Author: Daniel Nicoletti <dantti85-pk at yahoo.com.br>
Date:   Fri Aug 21 16:24:57 2009 +0100

    trivial: fix a couple of typos

diff --git a/src/pk-backend.c b/src/pk-backend.c
index c9130c3..c7669e5 100644
--- a/src/pk-backend.c
+++ b/src/pk-backend.c
@@ -761,14 +761,14 @@ pk_backend_set_status (PkBackend *backend, PkStatusEnum status)
 	/* do we have to enumate a running call? */
 	if (status != PK_STATUS_ENUM_RUNNING && status != PK_STATUS_ENUM_SETUP) {
 		if (backend->priv->status == PK_STATUS_ENUM_SETUP) {
-			egg_debug ("emiting status-changed running");
+			egg_debug ("emitting status-changed running");
 			g_signal_emit (backend, signals [PK_BACKEND_STATUS_CHANGED], 0, PK_STATUS_ENUM_RUNNING);
 		}
 	}
 
 	backend->priv->status = status;
 
-	egg_debug ("emiting status-changed %s", pk_status_enum_to_text (status));
+	egg_debug ("emitting status-changed %s", pk_status_enum_to_text (status));
 	g_signal_emit (backend, signals [PK_BACKEND_STATUS_CHANGED], 0, status);
 	return TRUE;
 }
commit a60072bb829ab89800c6b03f443aca9125399239
Merge: a9f3791... ef99fd3...
Author: Richard Hughes <richard at hughsie.com>
Date:   Fri Aug 21 14:31:14 2009 +0100

    Merge branch 'master' of git+ssh://git.packagekit.org/srv/git/PackageKit

commit ef99fd3b39c66835c658b3cbd07e30b2ebcba936
Author: Mounir Lamouri (volkmar) <mounir.lamouri at gmail.com>
Date:   Fri Aug 21 17:02:25 2009 +0200

    portage: add error management when install/updating/removing

diff --git a/backends/portage/portageBackend.py b/backends/portage/portageBackend.py
index a65eedf..0788ec7 100755
--- a/backends/portage/portageBackend.py
+++ b/backends/portage/portageBackend.py
@@ -299,6 +299,8 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
 
         # TODO: atm, this stack keep tracks of elog messages
         self._elog_messages = []
+        self._error_message = ""
+        self._error_phase = ""
 
         # TODO: should be removed when using non-verbose function API
         self.orig_out = None
@@ -406,11 +408,11 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
         listeners so we have to keep them as arguments.
         '''
         message = "Messages for package %s:;" % str(key)
+        error_message = ""
 
         # building the message
-        for phases in logentries:
-            # actually, we don't care about phases
-            for entries in logentries[phases]:
+        for phase in logentries:
+            for entries in logentries[phase]:
                 type = entries[0]
                 messages = entries[1]
 
@@ -419,19 +421,41 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
                     message += ";Information messages:"
                 elif type == 'WARN':
                     message += ";Warning messages:"
-                elif type == 'ERROR':
-                    message += ";Error messages:"
                 elif type == 'QA':
                     message += ";QA messages:"
+                elif type == 'ERROR':
+                    message += ";Error messages:"
+                    self._error_phase = phase
                 else:
                     continue
 
                 for msg in messages:
                     msg = msg.replace('\n', '')
+                    if type == 'ERROR':
+                        error_message += msg + ";"
                     message += "; " + msg
 
         # add the message to the stack
         self._elog_messages.append(message)
+        self._error_message = message
+
+    def send_merge_error(self, default):
+        # EAPI-2 compliant (at least)
+        # 'other' phase is ignored except this one, every phase should be there
+        if self._error_phase in ("setup", "unpack", "prepare", "configure",
+            "nofetch", "config", "info"):
+            error_type = ERROR_PACKAGE_FAILED_TO_CONFIGURE
+        elif self._error_phase in ("compile", "test"):
+            error_type = ERROR_PACKAGE_FAILED_TO_BUILD
+        elif self._error_phase in ("install", "preinst", "postinst",
+            "package"):
+            error_type = ERROR_PACKAGE_FAILED_TO_INSTALL
+        elif self._error_phase in ("prerm", "postrm"):
+            error_type = ERROR_PACKAGE_FAILED_TO_REMOVE
+        else:
+            error_type = default
+
+        self.error(error_type, self._error_message)
 
     def get_file_list(self, cpv):
         cat, pv = portage.catsplit(cpv)
@@ -1186,8 +1210,6 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
         # can't install an already installed packages
         # even if it happens to be needed in Gentoo but probably not this API
 
-        # TODO: manage errors
-
         self.status(STATUS_RUNNING)
         self.allow_cancel(False)
         self.percentage(None)
@@ -1246,10 +1268,14 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
             mergetask = _emerge.Scheduler.Scheduler(self.pvar.settings,
                     self.pvar.trees, self.pvar.mtimedb, myopts, None,
                     depgraph.altlist(), favorites, depgraph.schedulerGraph())
-            mergetask.merge()
+            rval = mergetask.merge()
         finally:
             self.unblock_output()
 
+        # when an error is found print error messages
+        if rval != os.EX_OK:
+            self.send_merge_error(ERROR_PACKAGE_FAILED_TO_INSTALL)
+
         # show elog messages and clean
         portage.elog.remove_listener(self.elog_listener)
         for msg in self._elog_messages:
@@ -1381,10 +1407,14 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
             mergetask = _emerge.Scheduler.Scheduler(self.pvar.settings,
                     self.pvar.trees, self.pvar.mtimedb, mergelist=packages,
                     myopts={}, spinner=None, favorites=favorites, digraph=None)
-            mergetask.merge()
+            rval = mergetask.merge()
         finally:
             self.unblock_output()
 
+        # when an error is found print error messages
+        if rval != os.EX_OK:
+            self.send_merge_error(ERROR_PACKAGE_FAILED_TO_REMOVE)
+
         # show elog messages and clean
         portage.elog.remove_listener(self.elog_listener)
         for msg in self._elog_messages:
@@ -1698,10 +1728,14 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
             mergetask = _emerge.Scheduler.Scheduler(self.pvar.settings,
                     self.pvar.trees, self.pvar.mtimedb, myopts, None,
                     depgraph.altlist(), favorites, depgraph.schedulerGraph())
-            mergetask.merge()
+            rval = mergetask.merge()
         finally:
             self.unblock_output()
 
+        # when an error is found print error messages
+        if rval != os.EX_OK:
+            self.send_merge_error(ERROR_PACKAGE_FAILED_TO_INSTALL)
+
         # show elog messages and clean
         portage.elog.remove_listener(self.elog_listener)
         for msg in self._elog_messages:
@@ -1755,10 +1789,14 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
             mergetask = _emerge.Scheduler.Scheduler(self.pvar.settings,
                     self.pvar.trees, self.pvar.mtimedb, myopts, None,
                     depgraph.altlist(), None, depgraph.schedulerGraph())
-            mergetask.merge()
+            rval = mergetask.merge()
         finally:
             self.unblock_output()
 
+        # when an error is found print error messages
+        if rval != os.EX_OK:
+            self.send_merge_error(ERROR_PACKAGE_FAILED_TO_INSTALL)
+
         # show elog messages and clean
         portage.elog.remove_listener(self.elog_listener)
         for msg in self._elog_messages:
commit 5fb444b1da0ad87320d507d8cacdda47bfc04991
Author: Mounir Lamouri (volkmar) <mounir.lamouri at gmail.com>
Date:   Fri Aug 21 16:45:51 2009 +0200

    Add ERROR_PACKAGE_FAILED_TO_REMOVE to packagekit-glib, packagekit-qt

diff --git a/lib/packagekit-glib/pk-enum.c b/lib/packagekit-glib/pk-enum.c
index 525f69d..f956524 100644
--- a/lib/packagekit-glib/pk-enum.c
+++ b/lib/packagekit-glib/pk-enum.c
@@ -188,6 +188,7 @@ static const PkEnumMatch enum_error[] = {
 	{PK_ERROR_ENUM_PACKAGE_FAILED_TO_CONFIGURE, "package-failed-to-configure"},
 	{PK_ERROR_ENUM_PACKAGE_FAILED_TO_BUILD, "package-failed-to-build"},
 	{PK_ERROR_ENUM_PACKAGE_FAILED_TO_INSTALL, "package-failed-to-install"},
+	{PK_ERROR_ENUM_PACKAGE_FAILED_TO_REMOVE, "package-failed-to-remove"},
 	{0, NULL}
 };
 
diff --git a/lib/packagekit-glib/pk-enum.h b/lib/packagekit-glib/pk-enum.h
index 3303c02..ba5f34e 100644
--- a/lib/packagekit-glib/pk-enum.h
+++ b/lib/packagekit-glib/pk-enum.h
@@ -306,6 +306,7 @@ typedef enum {
 	PK_ERROR_ENUM_PACKAGE_FAILED_TO_CONFIGURE,
 	PK_ERROR_ENUM_PACKAGE_FAILED_TO_BUILD,
 	PK_ERROR_ENUM_PACKAGE_FAILED_TO_INSTALL,
+	PK_ERROR_ENUM_PACKAGE_FAILED_TO_REMOVE,
 	PK_ERROR_ENUM_UNKNOWN
 } PkErrorCodeEnum;
 
diff --git a/lib/packagekit-qt/src/client.h b/lib/packagekit-qt/src/client.h
index 081d775..d46bb65 100644
--- a/lib/packagekit-qt/src/client.h
+++ b/lib/packagekit-qt/src/client.h
@@ -380,6 +380,7 @@ public:
 		ErrorPackageFailedToConfigure,
 		ErrorPackageFailedToBuild,
 		ErrorPackageFailedToInstall,
+		ErrorPackageFailedToRemove,
 		UnknownErrorType
 	} ErrorType;
 
commit a9f3791940adeebe624d21add9849f28021bf89b
Author: Richard Hughes <richard at hughsie.com>
Date:   Fri Aug 21 13:43:22 2009 +0100

    yum: fix bad date formatting in update descriptions. Fixes rh#516700

diff --git a/backends/yum/yumBackend.py b/backends/yum/yumBackend.py
index 8a0be03..dbcf5f3 100755
--- a/backends/yum/yumBackend.py
+++ b/backends/yum/yumBackend.py
@@ -2406,7 +2406,7 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
                             break
 
                     gmtime = time.gmtime(change[0])
-                    time_str = "%i-%i-%i" % (gmtime[0], gmtime[1], gmtime[2])
+                    time_str = "%i-%02i-%02i" % (gmtime[0], gmtime[1], gmtime[2])
                     body = _to_unicode(change[2].replace("\t", " "))
                     changelog += _format_str('**' + time_str + '** ' + header + '\n' + body + '\n\n')
 
commit b4d1ecf64060fb7056a831c9c0e4a9cf9488a823
Author: Richard Hughes <richard at hughsie.com>
Date:   Fri Aug 21 13:12:10 2009 +0100

    yum: Add the PROVIDES_POSTSCRIPT_DRIVER prefix for Fedora

diff --git a/backends/yum/yumBackend.py b/backends/yum/yumBackend.py
index 57328f3..8a0be03 100755
--- a/backends/yum/yumBackend.py
+++ b/backends/yum/yumBackend.py
@@ -680,6 +680,8 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
             return [ "font(%s)" % search ]
         if provides_type == PROVIDES_MIMETYPE:
             return [ "mimehandler(%s)" % search ]
+        if provides_type == PROVIDES_POSTSCRIPT_DRIVER:
+            return [ "postscriptdriver(%s)" % search ]
         if provides_type == PROVIDES_ANY:
             provides = []
             provides.append(self._get_provides_query(PROVIDES_CODEC, search)[0])
commit 855a772ebbfbf484eeb4a8bff2eba299d5a4386f
Author: Richard Hughes <richard at hughsie.com>
Date:   Fri Aug 21 13:05:37 2009 +0100

    Add PK_PROVIDES_ENUM_POSTSCRIPT_DRIVER for the new foomatic functionality

diff --git a/lib/packagekit-glib/pk-enum.c b/lib/packagekit-glib/pk-enum.c
index f956524..965aacd 100644
--- a/lib/packagekit-glib/pk-enum.c
+++ b/lib/packagekit-glib/pk-enum.c
@@ -342,6 +342,7 @@ static const PkEnumMatch enum_provides[] = {
 	{PK_PROVIDES_ENUM_MIMETYPE,		"mimetype"},
 	{PK_PROVIDES_ENUM_HARDWARE_DRIVER,	"driver"},
 	{PK_PROVIDES_ENUM_FONT,			"font"},
+	{PK_PROVIDES_ENUM_POSTSCRIPT_DRIVER,	"postscript-driver"},
 	{0, NULL}
 };
 
diff --git a/lib/packagekit-glib/pk-enum.h b/lib/packagekit-glib/pk-enum.h
index ba5f34e..b62ceee 100644
--- a/lib/packagekit-glib/pk-enum.h
+++ b/lib/packagekit-glib/pk-enum.h
@@ -426,6 +426,7 @@ typedef enum {
 	PK_PROVIDES_ENUM_MIMETYPE,
 	PK_PROVIDES_ENUM_FONT,
 	PK_PROVIDES_ENUM_HARDWARE_DRIVER,
+	PK_PROVIDES_ENUM_POSTSCRIPT_DRIVER,
 	PK_PROVIDES_ENUM_UNKNOWN
 } PkProvidesEnum;
 
commit fe47790cddb149b8dc1cd68712d9df8b63912bdb
Author: Matthias Clasen <mclasen at redhat.com>
Date:   Fri Aug 21 11:53:29 2009 +0100

    Make the browser plugin interaction better

diff --git a/contrib/browser-plugin/pk-plugin-install.c b/contrib/browser-plugin/pk-plugin-install.c
index 6724845..d630f7b 100644
--- a/contrib/browser-plugin/pk-plugin-install.c
+++ b/contrib/browser-plugin/pk-plugin-install.c
@@ -29,6 +29,7 @@
 #include <dbus/dbus-glib.h>
 #include <gdk/gdkx.h>
 #include <gtk/gtk.h>
+#include <math.h>
 
 #include "pk-main.h"
 #include "pk-plugin-install.h"
@@ -58,6 +59,9 @@ struct PkPluginInstallPrivate
 	PkClientPool		*client_pool;
 	DBusGProxy		*install_package_proxy;
 	DBusGProxyCall		*install_package_call;
+	gint			timeout;
+	gint			current;
+	gint			update_spinner;
 };
 
 G_DEFINE_TYPE (PkPluginInstall, pk_plugin_install, PK_TYPE_PLUGIN)
@@ -85,6 +89,24 @@ pk_plugin_install_refresh (PkPluginInstall *self)
 	pk_plugin_request_refresh (PK_PLUGIN (self));
 }
 
+#define SPINNER_LINES 12
+#define SPINNER_SIZE 20
+
+static gboolean
+spinner_timeout (gpointer data)
+{
+	PkPluginInstall *self = data;
+
+	self->priv->current++;
+	if (self->priv->current >= SPINNER_LINES)
+		self->priv->current = 0;
+	self->priv->update_spinner = TRUE;
+
+	pk_plugin_install_refresh (self);
+
+	return TRUE;
+}
+
 /**
  * pk_plugin_install_set_status:
  **/
@@ -94,7 +116,16 @@ pk_plugin_install_set_status (PkPluginInstall *self, PkPluginInstallPackageStatu
 	if (self->priv->status != status) {
 		pk_debug ("setting status %u", status);
 		self->priv->status = status;
+
+		if (status == INSTALLING) {
+			self->priv->timeout = g_timeout_add (80, spinner_timeout, self);
+		}
+		else if (self->priv->timeout) {
+			g_source_remove (self->priv->timeout);
+			self->priv->timeout = 0;
+		}
 	}
+
 }
 
 /**
@@ -536,6 +567,48 @@ pk_plugin_install_start (PkPlugin *plugin)
 }
 
 /**
+ * pk_plugin_install_draw_spinner:
+ **/
+static void
+pk_plugin_install_draw_spinner (PkPlugin *plugin, cairo_t *cr, int cx, int cy)
+{
+	gint width, height;
+	gdouble x, y;
+	gdouble radius;
+	gdouble half;
+	gint i;
+
+	PkPluginInstall *self = PK_PLUGIN_INSTALL (plugin);
+
+	cairo_set_operator (cr, CAIRO_OPERATOR_OVER);
+
+	width = height = SPINNER_SIZE;
+	radius = MIN (width / 2.0, height / 2.0);
+	half = SPINNER_LINES / 2;
+
+	x = cx + width / 2;
+	y = cy + height / 2;
+
+	for (i = 0; i < SPINNER_LINES; i++) {
+		gint inset = 0.7 * radius;
+		/* transparency is a function of time and intial value */
+		gdouble t = (gdouble) ((i + SPINNER_LINES - self->priv->current) % SPINNER_LINES) / SPINNER_LINES;
+		cairo_save (cr);
+
+		cairo_set_source_rgba (cr, 0, 0, 0, t);
+		cairo_set_line_width (cr, 2.0);
+		cairo_move_to (cr,
+			       x + (radius - inset) * cos (i * G_PI / half),
+			       y + (radius - inset) * sin (i * G_PI / half));
+		cairo_line_to (cr,
+			       x + radius * cos (i * G_PI / half),
+			       y + radius * sin (i * G_PI / half));
+		cairo_stroke (cr);
+		cairo_restore (cr);
+	}
+}
+
+/**
  * pk_plugin_install_draw:
  **/
 static gboolean
@@ -550,6 +623,7 @@ pk_plugin_install_draw (PkPlugin *plugin, cairo_t *cr)
 	const gchar *filename;
 	GtkIconTheme *theme;
 	GdkPixbuf *pixbuf;
+	PangoRectangle rect;
 	PkPluginInstall *self = PK_PLUGIN_INSTALL (plugin);
 
 	/* get parameters */
@@ -564,8 +638,12 @@ pk_plugin_install_draw (PkPlugin *plugin, cairo_t *cr)
 
 	/* get properties */
 	pk_plugin_install_get_style (&font_desc, &foreground, &background, &link);
+	if (self->priv->update_spinner) {
+		self->priv->update_spinner = FALSE;
+		goto update_spinner;
+	}
 
-       /* fill background */
+	/* fill background */
 	pk_plugin_install_set_source_from_rgba (cr, background);
 	cairo_rectangle (cr, x, y, width, height);
 	cairo_fill (cr);
@@ -595,6 +673,23 @@ skip:
 	cairo_move_to (cr, (x + PK_PLUGIN_INSTALL_MARGIN*2) + 48, y + PK_PLUGIN_INSTALL_MARGIN + PK_PLUGIN_INSTALL_MARGIN);
 	pk_plugin_install_set_source_from_rgba (cr, foreground);
 	pango_cairo_show_layout (cr, self->priv->pango_layout);
+
+update_spinner:
+	if (self->priv->status == INSTALLING) {
+		pango_layout_get_pixel_extents (self->priv->pango_layout, &rect, NULL);
+		pk_plugin_install_set_source_from_rgba (cr, background);
+		cairo_rectangle (cr,
+				 x + PK_PLUGIN_INSTALL_MARGIN*2 + 48 + rect.width + PK_PLUGIN_INSTALL_MARGIN,
+				 y + PK_PLUGIN_INSTALL_MARGIN + PK_PLUGIN_INSTALL_MARGIN,
+				 SPINNER_SIZE, SPINNER_SIZE);
+		cairo_fill (cr);
+		pk_plugin_install_set_source_from_rgba (cr, foreground);
+
+		pk_plugin_install_draw_spinner (plugin, cr,
+						x + PK_PLUGIN_INSTALL_MARGIN*2 + 48 + rect.width + PK_PLUGIN_INSTALL_MARGIN,
+						y + PK_PLUGIN_INSTALL_MARGIN + PK_PLUGIN_INSTALL_MARGIN);
+	}
+
 	return TRUE;
 }
 
@@ -777,7 +872,7 @@ pk_plugin_install_install_package (PkPluginInstall *self, Time event_time)
 						      24 * 60 * 1000 * 1000, /* one day */
 						      G_TYPE_UINT, xid, /* xid */
 						      G_TYPE_STRV, packages,
-						      G_TYPE_STRING, "hide-confirm-search,hide-confirm-deps,hide-finished",
+						      G_TYPE_STRING, "hide-confirm-search,hide-progress,hide-confirm-deps,hide-finished",
 						      G_TYPE_INVALID,
 						      G_TYPE_INVALID);
 	g_strfreev (packages);
@@ -868,6 +963,59 @@ pk_plugin_install_button_release (PkPlugin *plugin, gint x, gint y, Time event_t
 }
 
 /**
+ * pk_plugin_set_cursor:
+ **/
+static void
+pk_plugin_set_cursor (GdkWindow     *window,
+		      GdkCursorType  cursor)
+{
+	Display *display;
+	Cursor xcursor;
+
+	display = GDK_DISPLAY_XDISPLAY (gdk_display_get_default());
+	if (cursor >= 0)
+		xcursor = XCreateFontCursor (display, cursor);
+	else
+		xcursor = None;
+	XDefineCursor (display, GDK_WINDOW_XID (window), xcursor);
+
+}
+
+/**
+ * pk_plugin_install_motion:
+ **/
+static gboolean
+pk_plugin_install_motion (PkPlugin *plugin,
+			  gint      x,
+			  gint      y)
+{
+	PkPluginInstall *self = PK_PLUGIN_INSTALL (plugin);
+	GdkWindow *window;
+	gint idx;
+
+	idx = pk_plugin_install_get_link_index (self, x, y);
+	g_object_get (plugin, "gdk-window", &window, NULL);
+
+	if (idx < 0) {
+		pk_plugin_set_cursor (window, -1);
+		return FALSE;
+	}
+	switch (self->priv->status) {
+	case IN_PROGRESS:
+	case INSTALLING:
+	case UNAVAILABLE:
+		pk_plugin_set_cursor (window, -1);
+		break;
+	case INSTALLED:
+	case UPGRADABLE:
+	case AVAILABLE:
+		pk_plugin_set_cursor (window, GDK_HAND2);
+		break;
+	}
+	return FALSE;
+}
+
+/**
  * pk_plugin_install_finalize:
  **/
 static void
@@ -906,6 +1054,7 @@ pk_plugin_install_class_init (PkPluginInstallClass *klass)
 	plugin_class->start = pk_plugin_install_start;
 	plugin_class->draw = pk_plugin_install_draw;
 	plugin_class->button_release = pk_plugin_install_button_release;
+	plugin_class->motion = pk_plugin_install_motion;
 
 	g_type_class_add_private (klass, sizeof (PkPluginInstallPrivate));
 }
commit 106d393d99d86865dfc54308722b2cd8361bbe84
Author: Richard Hughes <richard at hughsie.com>
Date:   Fri Aug 21 11:43:57 2009 +0100

    trivial: add device-rebind subpackage

diff --git a/contrib/PackageKit.spec.in b/contrib/PackageKit.spec.in
index 1faffef..8f2a873 100644
--- a/contrib/PackageKit.spec.in
+++ b/contrib/PackageKit.spec.in
@@ -44,6 +44,7 @@ BuildRequires: python-devel
 BuildRequires: perl(XML::Parser)
 BuildRequires: intltool
 BuildRequires: gettext
+BuildRequires: libgudev1-devel
 BuildRequires: xulrunner-devel
 BuildRequires: libarchive-devel
 BuildRequires: gstreamer-devel
@@ -226,6 +227,16 @@ interface for rcd and red carpet daemon.
 Ruck is for a couple of lazy people who got used to Red Carpet's rug command
 and are unable to learn any new tricks.
 
+%package device-rebind
+Summary: Device rebind functionality for PackageKit
+Group: Development/Libraries
+Requires: PackageKit-glib = %{version}-%{release}
+
+%description device-rebind
+The device rebind functionality offer the ability to re-initialize devices
+after firmware has been installed by PackageKit. This removes the need for the
+user to restart the computer or remove and re-insert the device.
+
 %prep
 %setup -q
 
@@ -391,6 +402,12 @@ update-mime-database %{_datadir}/mime &> /dev/null || :
 %{_sysconfdir}/profile.d/*
 %{_libexecdir}/pk-command-not-found
 
+%files device-rebind
+%defattr(-,root,root,-)
+%doc README AUTHORS NEWS COPYING
+%{_sbindir}/pk-device-rebind
+%{_datadir}/man/man1/pk-device-rebind.1.gz
+
 %files ruck
 %defattr(-,root,root,-)
 %doc README AUTHORS NEWS COPYING
commit 0a66ec92ee4df51e5ce8552c1dfd09fc313d8bdb
Author: Richard Hughes <richard at hughsie.com>
Date:   Fri Aug 21 10:49:04 2009 +0100

    device-rebind: actually make this work after testing with a bit of actual hardware

diff --git a/contrib/device-rebind/Makefile.am b/contrib/device-rebind/Makefile.am
index dc9a149..1bd90c5 100644
--- a/contrib/device-rebind/Makefile.am
+++ b/contrib/device-rebind/Makefile.am
@@ -16,7 +16,11 @@ pk-device-rebind.1: pk-device-rebind.xml
 	xsltproc http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $? &> /dev/null
 endif
 
-INCLUDES = $(GLIB_CFLAGS) $(GUDEV_CFLAGS)
+INCLUDES =						\
+	-DPACKAGE_LOCALE_DIR=\"$(localedir)\"		\
+	$(GLIB_CFLAGS)					\
+	$(GUDEV_CFLAGS)					\
+	$(NULL)
 
 sbin_PROGRAMS = pk-device-rebind
 
diff --git a/contrib/device-rebind/README b/contrib/device-rebind/README
index 495ac95..85d9505 100644
--- a/contrib/device-rebind/README
+++ b/contrib/device-rebind/README
@@ -13,7 +13,7 @@ rebind a device with Linux.
 
 You can test this functionality by doing:
 
-./pk-device-rebind -v -s "/sys/devices/pci0000:00/0000:00:1d.0/usb5/5-2" */
+./pk-device-rebind -v -s "/sys/devices/pci0000:00/0000:00:1d.0/usb5/5-2"
 
 In userspace it is expected that clients just use PolicyKit to run this command
 as root, for instance, "pkexec /usr/sbin/pk-device-rebind"
diff --git a/contrib/device-rebind/pk-device-rebind.c b/contrib/device-rebind/pk-device-rebind.c
index 0cb580a..09b355d 100644
--- a/contrib/device-rebind/pk-device-rebind.c
+++ b/contrib/device-rebind/pk-device-rebind.c
@@ -89,7 +89,7 @@ static gboolean
 pk_device_unbind (const gchar *filename, const gchar *bus_id, GError **error)
 {
 	gchar *path;
-	gboolean ret;
+	gboolean ret = TRUE;
 	GError *error_local = NULL;
 
 	/* create a path to unbind the driver */
@@ -126,11 +126,11 @@ static gboolean
 pk_device_bind (const gchar *bus_id, const gchar *subsystem, const gchar *driver, GError **error)
 {
 	gchar *path;
-	gboolean ret;
+	gboolean ret = TRUE;
 	GError *error_local = NULL;
 
 	/* create a path to bind the driver */
-	path = g_build_filename ("sys", "bus", subsystem, "drivers", driver, "bind", NULL);
+	path = g_build_filename ("/sys", "bus", subsystem, "drivers", driver, "bind", NULL);
 
 	/* debug */
 	if (verbose)
@@ -162,14 +162,21 @@ pk_device_rebind (GUdevClient *client, const gchar *path, GError **error)
 	GUdevDevice *device;
 	gint busnum;
 	gint devnum;
-	gboolean ret;
+	gboolean ret = FALSE;
 	const gchar *driver;
 	const gchar *subsystem;
 	gchar *bus_id;
 	GError *error_local = NULL;
 
-	/* get properties about the device */
+	/* get device */
 	device = g_udev_client_query_by_sysfs_path (client, path);
+	if (device == NULL) {
+		/* TRANSLATORS: the device could not be found in sysfs */
+		*error = g_error_new (1, 0, "%s: %s\n", _("Device could not be found"), path);
+		goto out;
+	}
+
+	/* get properties about the device */
 	driver = g_udev_device_get_driver (device);
 	subsystem = g_udev_device_get_subsystem (device);
 	busnum = g_udev_device_get_sysfs_attr_as_int (device, "busnum");
@@ -182,7 +189,11 @@ pk_device_rebind (GUdevClient *client, const gchar *path, GError **error)
 	}
 
 	/* form the bus id as recognised by the kernel */
-	bus_id = g_strdup_printf ("%i-%i", busnum, devnum);
+	bus_id = g_path_get_basename (path);
+
+	/* FIXME: sometimes the busnum is incorrect */
+	if (bus_id == NULL)
+		bus_id = g_strdup_printf ("%i-%i", busnum, devnum);
 
 	/* unbind device */
 	ret = pk_device_unbind (path, bus_id, &error_local);
@@ -203,7 +214,8 @@ pk_device_rebind (GUdevClient *client, const gchar *path, GError **error)
 	}
 out:
 	g_free (bus_id);
-	g_object_unref (device);
+	if (device != NULL)
+		g_object_unref (device);
 	return ret;
 }
 
@@ -214,7 +226,6 @@ static gboolean
 pk_device_rebind_verify_path (const gchar *filename)
 {
 	gboolean ret;
-	gchar *found;
 
 	/* don't let the user escape /sys */
 	ret = (strstr (filename, "..") == NULL);
@@ -272,6 +283,8 @@ main (gint argc, gchar *argv[])
 	GError *error = NULL;
 	GOptionContext *context;
 	guint i;
+	gint uid;
+	gint euid;
 	guint retval = 0;
 	GUdevClient *client = NULL;
 
@@ -287,6 +300,15 @@ main (gint argc, gchar *argv[])
 		{ NULL}
 	};
 
+	/* setup translations */
+	setlocale (LC_ALL, "");
+	bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR);
+	bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
+	textdomain (GETTEXT_PACKAGE);
+
+	/* setup type system */
+	g_type_init ();
+
 	context = g_option_context_new (NULL);
 	/* TRANSLATORS: tool that gets called when the device needs reloading after installing firmware */
 	g_option_context_set_summary (context, _("PackageKit Device Reloader"));
@@ -302,6 +324,16 @@ main (gint argc, gchar *argv[])
 		goto out;
 	}
 
+	/* get calling process */
+	uid = getuid ();
+	euid = geteuid ();
+	if (uid != 0 || euid != 0) {
+		/* TRANSLATORS: user did not specify a valid device sysfs path */
+		g_print ("%s\n", _("This script can only be used by the root user"));
+		retval = PK_DEVICE_REBIND_EXIT_CODE_ARGUMENTS_INVALID;
+		goto out;
+	}
+
 	/* we're running as root, be paranoid and check them for sanity */
 	for (i=0; paths[i] != NULL; i++) {
 		if (verbose) {
commit 344fe13592207341bc6ebd0ab95985d17e838a0f
Author: Richard Hughes <richard at hughsie.com>
Date:   Fri Aug 21 10:04:54 2009 +0100

    Fix the build when using PolicyKit from git master

diff --git a/configure.ac b/configure.ac
index 8a98f15..1c65215 100644
--- a/configure.ac
+++ b/configure.ac
@@ -99,7 +99,7 @@ if test "$GCC" = "yes"; then
 	WARNINGFLAGS_CPP="$WARNINGFLAGS_CPP -Wall"
 	WARNINGFLAGS_CPP="$WARNINGFLAGS_CPP -Wcast-align -Wno-uninitialized"
 	WARNINGFLAGS_CPP="$WARNINGFLAGS_CPP -Wmissing-declarations"
-	WARNINGFLAGS_CPP="$WARNINGFLAGS_CPP -Wredundant-decls"
+#	WARNINGFLAGS_CPP="$WARNINGFLAGS_CPP -Wredundant-decls"
 	WARNINGFLAGS_CPP="$WARNINGFLAGS_CPP -Wpointer-arith"
 	WARNINGFLAGS_CPP="$WARNINGFLAGS_CPP -Wcast-align"
 	WARNINGFLAGS_CPP="$WARNINGFLAGS_CPP -Wwrite-strings"
commit 4d2327e0737f133941506826e3cb902b58468fd7
Author: Sebastian Heinlein <devel at glatzor.de>
Date:   Thu Aug 20 23:34:23 2009 +0200

    APT: Remove not required imports

diff --git a/backends/apt/aptBackend.py b/backends/apt/aptBackend.py
index ae1b44e..c942590 100755
--- a/backends/apt/aptBackend.py
+++ b/backends/apt/aptBackend.py
@@ -29,24 +29,16 @@ import os
 import pty
 import re
 import signal
-import shutil
 import socket
 import stat
 import string
 import subprocess
 import sys
 import time
-import urllib2
-import warnings
 
 import apt
 import apt.debfile
 import apt_pkg
-import dbus
-import dbus.glib
-import dbus.service
-import dbus.mainloop.glib
-import gobject
 
 from packagekit.backend import *
 from packagekit.progress import *
commit cc9a04671b10eb9f982e387b47bfbd47f0396284
Author: Sebastian Heinlein <devel at glatzor.de>
Date:   Thu Aug 20 23:30:37 2009 +0200

    APT: Fix wrong media type enum

diff --git a/backends/apt/aptBackend.py b/backends/apt/aptBackend.py
index 5edb363..ae1b44e 100755
--- a/backends/apt/aptBackend.py
+++ b/backends/apt/aptBackend.py
@@ -347,8 +347,7 @@ class PackageKitFetchProgress(apt.progress.FetchProgress):
 
     def mediaChange(self, medium, drive):
         #FIXME: Perhaps use hal to show a nicer drive name
-        self._backend.media_change_required(MEDIA_TYPE_CD_OR_DVD, medium,
-                                            drive)
+        self._backend.media_change_required(MEDIA_TYPE_DISC, medium, drive)
         # FIXME: We cannot call sys.exit() here. APT module would procduce
         #        a backend error message otherwise. This way the backend
         #        sends another error message in the FetchFailedError handling
commit 9c646badbee49ad4cf1b53a752a3d24679335290
Author: Sebastian Heinlein <devel at glatzor.de>
Date:   Thu Aug 20 23:25:36 2009 +0200

    APT: Trivial remove obsolete reference to the cancelled event

diff --git a/backends/apt/aptBackend.py b/backends/apt/aptBackend.py
index 1f7b400..5edb363 100755
--- a/backends/apt/aptBackend.py
+++ b/backends/apt/aptBackend.py
@@ -1645,7 +1645,6 @@ class PackageKitAptBackend(PackageKitBaseBackend):
             self.error(ERROR_PACKAGE_DOWNLOAD_FAILED, format_string(e.message))
         except apt.cache.FetchCancelledException:
             self._open_cache(prange=(95,100))
-            self._canceled.clear()
         except InstallTimeOutPKError, e:
             self._recover()
             self._open_cache(prange=(95,100))
commit 1ff5e31b488720625d0b532de6d19085440ea617
Author: Sebastian Heinlein <devel at glatzor.de>
Date:   Thu Aug 20 23:24:17 2009 +0200

    APT: Trivial remove never reached false Exit calls

diff --git a/backends/apt/aptBackend.py b/backends/apt/aptBackend.py
index c092bba..1f7b400 100755
--- a/backends/apt/aptBackend.py
+++ b/backends/apt/aptBackend.py
@@ -1599,14 +1599,12 @@ class PackageKitAptBackend(PackageKitBaseBackend):
                                                                progress))
         except:
             self.error(ERROR_NO_CACHE, "Package cache could not be opened")
-            self.Exit()
             return
         if self._cache._depcache.BrokenCount > 0:
             self.error(ERROR_DEP_RESOLUTION_FAILED,
                        "There are broken dependecies on your system. "
                        "Please use an advanced package manage e.g. "
                        "Synaptic or aptitude to resolve this situation.")
-            self.Exit()
             return
         self._last_cache_refresh = time.time()
 
commit 9040aff3a50ef32c4ebfe318a7a4deb1db4d1475
Author: Sebastian Heinlein <devel at glatzor.de>
Date:   Thu Aug 20 23:22:05 2009 +0200

    APT: Fix distro upgrade call

diff --git a/backends/apt/aptBackend.py b/backends/apt/aptBackend.py
index b8b3db9..c092bba 100755
--- a/backends/apt/aptBackend.py
+++ b/backends/apt/aptBackend.py
@@ -615,7 +615,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
             time.sleep(1)
         #FIXME: Add support for description
         if meta_release.new_dist != None:
-            self.distro_ppgrade("stable", 
+            self.distro_upgrade("stable", 
                                 "%s %s" % (meta_release.new_dist.name,
                                            meta_release.new_dist.version),
                                 "The latest stable release")
diff --git a/lib/python/packagekit/pylint.sh b/lib/python/packagekit/pylint.sh
index 8c4e52f..2c964c2 100755
--- a/lib/python/packagekit/pylint.sh
+++ b/lib/python/packagekit/pylint.sh
@@ -1 +1 @@
-pylint --disable-msg=W0614,C0301,C0103,W0613,C0111,R0913,R0904,R0903,C0302,W0401,R0912,R0914,R0911,R0915,R0902,W0612,W0703 $1
+pylint --disable-msg=W0614,C0301,C0103,W0613,C0111,R0913,R0904,R0903,C0302,W0401,R0912,R0914,R0911,R0915,R0902,W0612,W0703 --output-format colorized $1
commit 6fe17b4b176b0cfdee91ad556a68371bfd7126a9
Author: Sebastian Heinlein <devel at glatzor.de>
Date:   Thu Aug 20 22:31:37 2009 +0200

    APT: Unset LC_ALL to gain support for translated descriptions

diff --git a/backends/apt/aptBackend.py b/backends/apt/aptBackend.py
index f86fe2b..b8b3db9 100755
--- a/backends/apt/aptBackend.py
+++ b/backends/apt/aptBackend.py
@@ -157,6 +157,9 @@ HREF_BUG_DEBIAN="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=%s"
 MATCH_CVE="CVE-\d{4}-\d{4}"
 HREF_CVE="http://web.nvd.nist.gov/view/vuln/detail?vulnId=%s"
 
+# Required to get translated descriptions
+locale.setlocale(locale.LC_ALL, "")
+
 def unlock_cache_afterwards(func):
     """
     Make sure that the package cache is unlocked after the decorated function
commit 2e0b4384c885aa0220c51dedc3b1f54d7db477b9
Author: Sebastian Heinlein <devel at glatzor.de>
Date:   Thu Aug 20 22:30:07 2009 +0200

    APT: Trivial fix another unicode package key

diff --git a/backends/apt/aptBackend.py b/backends/apt/aptBackend.py
index 69a644b..f86fe2b 100755
--- a/backends/apt/aptBackend.py
+++ b/backends/apt/aptBackend.py
@@ -1339,7 +1339,9 @@ class PackageKitAptBackend(PackageKitBaseBackend):
         self._check_init(progress=False)
         self.allow_cancel(False)
 
-        for name in names:
+        for name_raw in names:
+            #FIXME: Python-apt doesn't allow unicode as key. See #542965
+            name = str(name_raw)
             if self._cache.has_key(name):
                 self._emit_visible_package(filters, self._cache[name])
             else:
commit 66594ff3aeb86aab6f3b7f2cc05d51f3b8b8cce3
Author: Sebastian Heinlein <devel at glatzor.de>
Date:   Thu Aug 20 22:21:27 2009 +0200

    APT: Workaround a regression in python-apt 0.7.12 which only allows strings as keys for packages in the cache dict.

diff --git a/backends/apt/aptBackend.py b/backends/apt/aptBackend.py
index 7f1304c..69a644b 100755
--- a/backends/apt/aptBackend.py
+++ b/backends/apt/aptBackend.py
@@ -1752,12 +1752,13 @@ class PackageKitAptBackend(PackageKitBaseBackend):
         Find the packages with the given namens. Afterwards filter and emit
         them
         """
-        for name in pkgs:
+        for name_raw in pkgs:
+            #FIXME: Python-apt doesn't allow unicode as key. See #542965
+            name = str(name_raw)
             if self._cache.has_key(name) and \
                self._is_package_visible(self._cache[name], filters):
                 self._emit_package(self._cache[name], info)
 
-
     def _is_package_visible(self, pkg, filters):
         """
         Return True if the package should be shown in the user interface
@@ -1841,7 +1842,9 @@ class PackageKitAptBackend(PackageKitBaseBackend):
         """
         Return a package version matching the given package id or None.
         """
-        name, version, arch, data = id.split(";", 4)
+        name_raw, version, arch, data = id.split(";", 4)
+        #FIXME: Python-apt doesn't allow unicode as key. See #542965
+        name = str(name_raw)
         if self._cache.has_key(name):
             for pkg_ver in self._cache[name].versions:
                 if pkg_ver.version == version and \
@@ -1854,7 +1857,9 @@ class PackageKitAptBackend(PackageKitBaseBackend):
         Return a package matching to the given package id
         """
         # FIXME: Should use package.Version
-        name, version, arch, data = id.split(";", 4)
+        name_raw, version, arch, data = id.split(";", 4)
+        #FIXME: Python-apt doesn't allow unicode as key. See #542965
+        name = str(name_raw)
         if self._cache.has_key(name):
             return self._cache[name]
         else:
commit 85ba863eb0a26fa7ae865e991616e6b3e153f6c0
Author: Sebastian Heinlein <devel at glatzor.de>
Date:   Thu Aug 20 21:09:47 2009 +0200

    APT: Fix a silly previous merge which broke searching for names

diff --git a/backends/apt/aptBackend.py b/backends/apt/aptBackend.py
index b187845..7f1304c 100755
--- a/backends/apt/aptBackend.py
+++ b/backends/apt/aptBackend.py
@@ -542,7 +542,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
         self._check_init(progress=False)
         self.allow_cancel(True)
 
-        for pkg_name in search(self._cache.keys()):
+        for pkg_name in self._cache.keys():
             if search in pkg_name:
                 self._emit_visible_package(filters, self._cache[pkg_name])
 
commit 1dad94fce458854ccbbaad8830c96c9e65807d1a
Author: Sebastian Heinlein <devel at glatzor.de>
Date:   Thu Aug 20 18:03:30 2009 +0200

    APT: Improve APT cache based search-details by using a more modern syntax, searching in the raw description and not matching packages without a candidate

diff --git a/backends/apt/aptBackend.py b/backends/apt/aptBackend.py
index 00198b4..b187845 100755
--- a/backends/apt/aptBackend.py
+++ b/backends/apt/aptBackend.py
@@ -576,11 +576,13 @@ class PackageKitAptBackend(PackageKitBaseBackend):
                     self._emit_visible_package(filters, self._cache[pkg_name])
         else:
             pklog.debug("Performing apt cache based search")
-            for p in self._cache._dict.values():
-                needle = search.strip().lower()
-                haystack = p.description.lower()
-                if p.name.find(needle) >= 0 or haystack.find(needle) >= 0:
-                    self._emit_visible_package(filters, r)
+            needle = search.strip().lower()
+            for pkg in self._cache:
+                if not pkg.candidate:
+                    continue
+                haystack = pkg.rawDescription.lower()
+                if needle in pkg.name or needle in haystack:
+                    self._emit_visible_package(filters, pkg)
 
     def get_distro_upgrades(self):
         """
commit dd9bcfd2b84a6dbfae9954cd75989cc7aac18964
Author: Sebastian Heinlein <devel at glatzor.de>
Date:   Thu Aug 20 17:26:38 2009 +0200

    APT: Emit results in the details search as soon as possible. Furthermore use a more modern syntax in the xapian search.

diff --git a/backends/apt/aptBackend.py b/backends/apt/aptBackend.py
index 626806f..00198b4 100755
--- a/backends/apt/aptBackend.py
+++ b/backends/apt/aptBackend.py
@@ -570,20 +570,17 @@ class PackageKitAptBackend(PackageKitBaseBackend):
             enquire = xapian.Enquire(db)
             enquire.set_query(query)
             matches = enquire.get_mset(0, 1000)
-            for r in  map(lambda m: m[xapian.MSET_DOCUMENT].get_data(),
-                          enquire.get_mset(0,1000)):
-                if self._cache.has_key(r):
-                    results.append(self._cache[r])
+            for pkg_name in (match[xapian.MSET_DOCUMENT].get_data() \
+                             for match in enquire.get_mset(0,1000)):
+                if pkg_name in self._cache:
+                    self._emit_visible_package(filters, self._cache[pkg_name])
         else:
             pklog.debug("Performing apt cache based search")
             for p in self._cache._dict.values():
                 needle = search.strip().lower()
                 haystack = p.description.lower()
                 if p.name.find(needle) >= 0 or haystack.find(needle) >= 0:
-                    results.append(p)
-
-        for r in results:
-            self._emit_visible_package(filters, r)
+                    self._emit_visible_package(filters, r)
 
     def get_distro_upgrades(self):
         """
commit 8c346ec67f84cda0775beb4292497e2750a6ce88
Author: Sebastian Heinlein <devel at glatzor.de>
Date:   Thu Aug 20 17:21:26 2009 +0200

    APT: Speed up searching for the package name by creating only the matching
    packages

diff --git a/backends/apt/aptBackend.py b/backends/apt/aptBackend.py
index 75f316c..626806f 100755
--- a/backends/apt/aptBackend.py
+++ b/backends/apt/aptBackend.py
@@ -542,9 +542,9 @@ class PackageKitAptBackend(PackageKitBaseBackend):
         self._check_init(progress=False)
         self.allow_cancel(True)
 
-        for pkg in self._cache:
-            if search in pkg.name:
-                self._emit_visible_package(filters, pkg)
+        for pkg_name in search(self._cache.keys()):
+            if search in pkg_name:
+                self._emit_visible_package(filters, self._cache[pkg_name])
 
     def search_details(self, filters, search):
         """
commit e73e6dc39842448f225946cadaabe05dc80c0a08
Merge: 603af39... dfa4493...
Author: Sebastian Heinlein <devel at glatzor.de>
Date:   Thu Aug 20 16:57:37 2009 +0200

    Merge branch 'master' of git+ssh://glatzor@git.packagekit.org/srv/git/PackageKit

commit dfa4493a7030520c605b12622a772f2aabbc8461
Author: igor <igor at fedoraproject.org>
Date:   Fri Aug 21 02:25:39 2009 +0000

    Sending translation for Brazilian Portuguese

diff --git a/po/pt_BR.po b/po/pt_BR.po
index af4f504..986780c 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -8,8 +8,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-08-07 19:47+0000\n"
-"PO-Revision-Date: 2009-08-07 17:21-0300\n"
+"POT-Creation-Date: 2009-08-20 19:52+0000\n"
+"PO-Revision-Date: 2009-08-20 23:23-0300\n"
 "Last-Translator: Igor Pires Soares <igor at projetofedora.org>\n"
 "Language-Team: Brazilian Portuguese <fedora-trans-pt_br at redhat.com>\n"
 "MIME-Version: 1.0\n"
@@ -48,7 +48,7 @@ msgstr "Falso"
 #. TRANSLATORS: this is the transactions role, e.g. "update-system"
 #. TRANSLATORS: the trasaction role, e.g. update-system
 #: ../client/pk-console.c:237
-#: ../src/pk-polkit-action-lookup.c:331
+#: ../src/pk-polkit-action-lookup.c:327
 msgid "Role"
 msgstr "Modo"
 
@@ -64,7 +64,7 @@ msgstr "(segundos)"
 #. TRANSLATORS: this is The command line used to do the action
 #. TRANSLATORS: the command line of the thing that wants the authentication
 #: ../client/pk-console.c:246
-#: ../src/pk-polkit-action-lookup.c:345
+#: ../src/pk-polkit-action-lookup.c:341
 msgid "Command line"
 msgstr "Linha de comando"
 
@@ -141,7 +141,7 @@ msgstr "Detalhes sobre a atualização:"
 #. TRANSLATORS: details about the update, package name and version
 #. TRANSLATORS: title, the names of the packages that the method is processing
 #: ../client/pk-console.c:341
-#: ../src/pk-polkit-action-lookup.c:356
+#: ../src/pk-polkit-action-lookup.c:352
 msgid "Package"
 msgid_plural "Packages"
 msgstr[0] "Pacote"
@@ -547,6 +547,7 @@ msgstr "Subcomandos:"
 #: ../client/pk-monitor.c:128
 #: ../contrib/command-not-found/pk-command-not-found.c:616
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:550
+#: ../contrib/device-rebind/pk-device-rebind.c:280
 #: ../src/pk-main.c:211
 msgid "Show extra debugging information"
 msgstr "Mostrar informações extras de depuração"
@@ -849,6 +850,60 @@ msgstr "Por favor, escolha o pacote correto: "
 msgid "Please enter a number from 1 to %i: "
 msgstr "Por favor, insira um número entre 1 e %i: "
 
+#. TRANSLATORS: when we are getting data from the daemon
+#: ../contrib/browser-plugin/pk-plugin-install.c:433
+msgid "Getting package information..."
+msgstr "Obtendo informações do pacote..."
+
+#. TRANSLATORS: run an applicaiton
+#: ../contrib/browser-plugin/pk-plugin-install.c:439
+#, c-format
+msgid "Run %s"
+msgstr "Executar %s"
+
+#. TRANSLATORS: show the installed version of a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:445
+msgid "Installed version"
+msgstr "Versão instalada"
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:453
+#, c-format
+msgid "Run version %s now"
+msgstr "Executar a versão %s agora"
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:459
+msgid "Run now"
+msgstr "Executar agora"
+
+#. TRANSLATORS: update to a new version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:465
+#, c-format
+msgid "Update to version %s"
+msgstr "Atualizar para a versão %s"
+
+#. TRANSLATORS: To install a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:471
+#, c-format
+msgid "Install %s now"
+msgstr "Instalar %s agora"
+
+#. TRANSLATORS: the version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:474
+msgid "Version"
+msgstr "Versão"
+
+#. TRANSLATORS: noting found, so can't install
+#: ../contrib/browser-plugin/pk-plugin-install.c:479
+msgid "No packages found for your system"
+msgstr "Nenhum pacote localizado para o seu sistema"
+
+#. TRANSLATORS: package is being installed
+#: ../contrib/browser-plugin/pk-plugin-install.c:484
+msgid "Installing..."
+msgstr "Instalando..."
+
 #. TRANSLATORS: downloading repo data so we can search
 #: ../contrib/command-not-found/pk-command-not-found.c:349
 msgid "Downloading details about the software sources."
@@ -938,60 +993,6 @@ msgstr "Os pacotes apropriados são:"
 msgid "Please choose a package to install"
 msgstr "Por favor, escolha um pacote a ser instalado"
 
-#. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/pk-plugin-install.c:433
-msgid "Getting package information..."
-msgstr "Obtendo informações do pacote..."
-
-#. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/pk-plugin-install.c:439
-#, c-format
-msgid "Run %s"
-msgstr "Executar %s"
-
-#. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:445
-msgid "Installed version"
-msgstr "Versão instalada"
-
-#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:453
-#, c-format
-msgid "Run version %s now"
-msgstr "Executar a versão %s agora"
-
-#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:459
-msgid "Run now"
-msgstr "Executar agora"
-
-#. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:465
-#, c-format
-msgid "Update to version %s"
-msgstr "Atualizar para a versão %s"
-
-#. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:471
-#, c-format
-msgid "Install %s now"
-msgstr "Instalar %s agora"
-
-#. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:474
-msgid "Version"
-msgstr "Versão"
-
-#. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/pk-plugin-install.c:479
-msgid "No packages found for your system"
-msgstr "Nenhum pacote localizado para o seu sistema"
-
-#. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/pk-plugin-install.c:484
-msgid "Installing..."
-msgstr "Instalando..."
-
 #. TRANSLATORS: we are starting to install the packages
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:187
 msgid "Starting install"
@@ -1176,6 +1177,82 @@ msgstr "Não foi possível desabilitar as fontes de depuração: %s"
 msgid "Disabled %i debugging sources."
 msgstr "%i fontes de depuração desabilitadas."
 
+#. TRANSLATORS: couldn't open device to write
+#: ../contrib/device-rebind/pk-device-rebind.c:61
+msgid "Failed to open file"
+msgstr "Falha ao abrir o arquivo"
+
+#. TRANSLATORS: could not write to the device
+#: ../contrib/device-rebind/pk-device-rebind.c:70
+msgid "Failed to write to the file"
+msgstr "Falha ao gravar no arquivo"
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:110
+#: ../contrib/device-rebind/pk-device-rebind.c:147
+msgid "Failed to write to device"
+msgstr "Falha ao gravar no dispositivo"
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:191
+msgid "Failed to unregister driver"
+msgstr "Falha ao liberar o driver"
+
+#. TRANSLATORS: we failed to bind the old driver
+#: ../contrib/device-rebind/pk-device-rebind.c:200
+msgid "Failed to register driver"
+msgstr "Falha ao registrar o driver"
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:249
+msgid "Device path not found"
+msgstr "Caminho de dispositivo não localizado"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:257
+msgid "Incorrect device path specified"
+msgstr "Caminho incorreto de dispositivo especificado"
+
+#. command line argument, simulate what would be done, but don't actually do it
+#: ../contrib/device-rebind/pk-device-rebind.c:283
+msgid "Don't actually touch the hardware, only simulate what would be done"
+msgstr "Não lida com o hardware na realidade, apenas simula o que seria feito"
+
+#. TRANSLATORS: command line option: a list of files to install
+#: ../contrib/device-rebind/pk-device-rebind.c:286
+msgid "Device paths"
+msgstr "Caminhos de dispositivos"
+
+#. TRANSLATORS: tool that gets called when the device needs reloading after installing firmware
+#: ../contrib/device-rebind/pk-device-rebind.c:292
+msgid "PackageKit Device Reloader"
+msgstr "Recarregador de dispositivos do PackageKit"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:300
+msgid "You need to specify at least one valid device path"
+msgstr "Você precisa especificar pelo menos um caminho de dispositivo válido"
+
+#. TRANSLATORS: we're going to verify the path first
+#: ../contrib/device-rebind/pk-device-rebind.c:309
+msgid "Verifying device path"
+msgstr "Verificando caminho do dispositivo"
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:314
+msgid "Failed to verify device path"
+msgstr "Falha ao verificar o caminho do dispositivo"
+
+#. TRANSLATORS: we're going to try
+#: ../contrib/device-rebind/pk-device-rebind.c:328
+msgid "Attempting to rebind device"
+msgstr "Tentando revincular o dispositivo"
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:333
+msgid "Failed to rebind device"
+msgstr "Falha ao revincular o dispositivo"
+
 #: ../data/packagekit-catalog.xml.in.h:1
 msgid "PackageKit Catalog"
 msgstr "Catálogo do PackageKit"
@@ -1227,18 +1304,22 @@ msgid "Authentication is required to refresh the system sources"
 msgstr "É necessário autenticar para recarregar as fontes do sistema"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:15
+msgid "Authentication is required to reload the device with a new driver"
+msgstr "É necessário autenticar para recarregar o dispositivo com o novo driver"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:16
 msgid "Authentication is required to remove packages"
 msgstr "É necessário autenticar para remover pacotes"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:16
+#: ../policy/org.freedesktop.packagekit.policy.in.h:17
 msgid "Authentication is required to rollback a transaction"
 msgstr "É necessário autenticar para retroceder uma transação"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:17
+#: ../policy/org.freedesktop.packagekit.policy.in.h:18
 msgid "Authentication is required to set the network proxy used for downloading packages"
 msgstr "É necessário autenticar para definir o proxy de rede usado para baixar pacotes"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:18
+#: ../policy/org.freedesktop.packagekit.policy.in.h:19
 msgid "Authentication is required to update packages"
 msgstr "É necessário autenticar para atualizar os pacotes"
 
@@ -1247,7 +1328,7 @@ msgstr "É necessário autenticar para atualizar os pacotes"
 #. authentication, but a different user id needs the admin password
 #. to cancel another users task.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:24
+#: ../policy/org.freedesktop.packagekit.policy.in.h:25
 msgid "Cancel foreign task"
 msgstr "Cancelar tarefa externa"
 
@@ -1256,7 +1337,7 @@ msgstr "Cancelar tarefa externa"
 #. software sources as this can be used to enable new updates or
 #. install different versions of software.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:30
+#: ../policy/org.freedesktop.packagekit.policy.in.h:31
 msgid "Change software source parameters"
 msgstr "Altere parâmetros das fontes de programas"
 
@@ -1266,7 +1347,7 @@ msgstr "Altere parâmetros das fontes de programas"
 #. - Paranoid users (or parents!) can change this to 'auth_admin' or
 #. 'auth_admin_keep'.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:37
+#: ../policy/org.freedesktop.packagekit.policy.in.h:38
 msgid "Install signed package"
 msgstr "Instalar pacote assinado"
 
@@ -1276,7 +1357,7 @@ msgstr "Instalar pacote assinado"
 #. password would be a massive security hole.
 #. - This is not retained as each package should be authenticated.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:44
+#: ../policy/org.freedesktop.packagekit.policy.in.h:45
 msgid "Install untrusted local file"
 msgstr "Instalar arquivo local não confiável"
 
@@ -1284,11 +1365,22 @@ msgstr "Instalar arquivo local não confiável"
 #. - Normal users do not require admin authentication to refresh the
 #. cache, as this doesn't actually install or remove software.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:49
+#: ../policy/org.freedesktop.packagekit.policy.in.h:50
 msgid "Refresh system sources"
 msgstr "Recarregar fontes do sistema"
 
 #. SECURITY:
+#. - Normal users require admin authentication to rebind a driver
+#. so that it works after we install firmware.
+#. - This should not be set to 'yes' as unprivileged users could then
+#. try to rebind drivers in use, for instance security authentication
+#. devices.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:58
+msgid "Reload a device"
+msgstr "Recarregar um dispositivo"
+
+#. SECURITY:
 #. - Normal users require admin authentication to remove packages as
 #. this can make the system unbootable or stop other applications from
 #. working.
@@ -1297,7 +1389,7 @@ msgstr "Recarregar fontes do sistema"
 #. be removed. If this is not possible, change this authentication to
 #. 'auth_admin'.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:59
+#: ../policy/org.freedesktop.packagekit.policy.in.h:68
 msgid "Remove package"
 msgstr "Remover pacote"
 
@@ -1306,7 +1398,7 @@ msgstr "Remover pacote"
 #. as this will change a large number of packages, and could expose the
 #. system to previously patched security vulnerabilities.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:65
+#: ../policy/org.freedesktop.packagekit.policy.in.h:74
 msgid "Rollback to a previous transaction"
 msgstr "Retroceder para uma transação anterior"
 
@@ -1314,7 +1406,7 @@ msgstr "Retroceder para uma transação anterior"
 #. - Normal users do not require admin authentication to set the proxy
 #. used for downloading packages.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:70
+#: ../policy/org.freedesktop.packagekit.policy.in.h:79
 msgid "Set network proxy"
 msgstr "Definir um proxy de rede"
 
@@ -1324,7 +1416,7 @@ msgstr "Definir um proxy de rede"
 #. without a secure authentication.
 #. - This is not kept as each package should be authenticated.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:77
+#: ../policy/org.freedesktop.packagekit.policy.in.h:86
 msgid "Trust a key used for signing packages"
 msgstr "Confiar numa chave usada para assinar pacotes"
 
@@ -1335,7 +1427,7 @@ msgstr "Confiar numa chave usada para assinar pacotes"
 #. - Changing this to anything other than 'yes' will break unattended
 #. updates.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:85
+#: ../policy/org.freedesktop.packagekit.policy.in.h:94
 msgid "Update packages"
 msgstr "Atualizar pacotes"
 
@@ -1410,7 +1502,7 @@ msgstr "Fontes extras precisam ser habilitadas para a instalação dos pacotes d
 
 #. TRANSLATORS: is not GPG signed
 #: ../src/pk-polkit-action-lookup.c:168
-#: ../src/pk-polkit-action-lookup.c:191
+#: ../src/pk-polkit-action-lookup.c:187
 msgid "The software is not from a trusted source."
 msgstr "O programa não vem de uma fonte confiável."
 
@@ -1422,27 +1514,26 @@ msgstr "Não atualize este pacote a não ser que você esteja certo de que é se
 msgid "Do not update these packages unless you are sure it is safe to do so."
 msgstr "Não atualize estes pacotes a não ser que você esteja certo de que é seguro fazer isso."
 
-#. TRANSLATORS: warn the user that all bets are off
-#: ../src/pk-polkit-action-lookup.c:180
-#: ../src/pk-polkit-action-lookup.c:203
-msgid "Malicious software can damage your computer or cause other harm."
-msgstr "Programas maliciosos podem danificar o seu computador ou causar outros prejuízos."
-
-#: ../src/pk-polkit-action-lookup.c:196
+#: ../src/pk-polkit-action-lookup.c:192
 msgid "Do not install this package unless you are sure it is safe to do so."
 msgstr "Não instale este pacote a não ser que você esteja certo de que é seguro fazer isso."
 
-#: ../src/pk-polkit-action-lookup.c:197
+#: ../src/pk-polkit-action-lookup.c:193
 msgid "Do not install these packages unless you are sure it is safe to do so."
 msgstr "Não instale estes pacotes a não ser que você esteja certo de que é seguro fazer isso."
 
+#. TRANSLATORS: warn the user that all bets are off
+#: ../src/pk-polkit-action-lookup.c:199
+msgid "Malicious software can damage your computer or cause other harm."
+msgstr "Programas maliciosos podem danificar o seu computador ou causar outros prejuízos."
+
 #. TRANSLATORS: too many packages to list each one
-#: ../src/pk-polkit-action-lookup.c:278
+#: ../src/pk-polkit-action-lookup.c:274
 msgid "Many packages"
 msgstr "Muitos pacotes"
 
 #. TRANSLATORS: if the transaction is forced to install only trusted packages
-#: ../src/pk-polkit-action-lookup.c:338
+#: ../src/pk-polkit-action-lookup.c:334
 msgid "Only trusted"
 msgstr "Somente confiáveis"
 
@@ -1486,8 +1577,6 @@ msgstr "Somente confiáveis"
 #~ msgstr ""
 #~ "Você precisa especificar o pacote para o qual você quer localizar os "
 #~ "arquivos"
-#~ msgid "You need to specify a list file to create"
-#~ msgstr "Você precisa especificar um arquivo de lista a ser criado"
 #~ msgid "You need to specify a list file to open"
 #~ msgstr "Você precisa especificar um arquivo de lista a ser aberto"
 #~ msgid "This tool could not remove the packages: '%s'"
commit b3d08dad0b3804da87c8286dedce14dd8133b574
Merge: f516cae... 0b6cd57...
Author: Daniel Nicoletti <dantti85-pk at yahoo.com.br>
Date:   Thu Aug 20 19:19:01 2009 -0300

    Merge branch 'master' of git+ssh://dantti@git.packagekit.org/srv/git/PackageKit

commit f516caecb312ebc31ef50b4f03d1252bac89364b
Author: Daniel Nicoletti <dantti85-pk at yahoo.com.br>
Date:   Thu Aug 20 19:15:23 2009 -0300

    aptcc: Fix search-file to search for just one file (not considering space as a file delimiter)

diff --git a/backends/aptcc/apt.cpp b/backends/aptcc/apt.cpp
index 999bb7e..26552b0 100644
--- a/backends/aptcc/apt.cpp
+++ b/backends/aptcc/apt.cpp
@@ -503,15 +503,14 @@ void aptcc::get_requires(vector<pair<pkgCache::PkgIterator, pkgCache::VerIterato
 	}
 }
 
-// used to emit files it reads the info directly from the files
+// used to return files it reads, using the info from the files in /var/lib/dpkg/info/
 vector<string> search_file (PkBackend *backend, const string &file_name, bool &_cancel)
 {
 	vector<string> packageList;
+	regex_t re;
 
-	matcher *m_matcher = new matcher(string(file_name));
-	if (m_matcher->hasError()) {
+	if(regcomp(&re, file_name.c_str(), REG_ICASE|REG_NOSUB) != 0) {
 		egg_debug("Regex compilation error");
-		delete m_matcher;
 		return vector<string>();
 	}
 
@@ -519,7 +518,7 @@ vector<string> search_file (PkBackend *backend, const string &file_name, bool &_
 	struct dirent *dirp;
 	if (!(dp = opendir("/var/lib/dpkg/info/"))) {
 		egg_debug ("Error opening /var/lib/dpkg/info/\n");
-		delete m_matcher;
+		regfree(&re);
 		return vector<string>();
 	}
 
@@ -537,9 +536,8 @@ vector<string> search_file (PkBackend *backend, const string &file_name, bool &_
 			map<int, bool> matchers_used;
 			while (!in.eof()) {
 				getline(in, line);
-				if (m_matcher->matchesFile(line, matchers_used)) {
+				if (regexec(&re, line.c_str(), (size_t)0, NULL, 0) == 0) {
 					string file(dirp->d_name);
-					printf("matchers_used: %d", matchers_used.size());
 					packageList.push_back(file.erase(file.size() - 5, file.size()));
 					break;
 				}
@@ -547,7 +545,7 @@ vector<string> search_file (PkBackend *backend, const string &file_name, bool &_
 		}
 	}
 	closedir(dp);
-	delete m_matcher;
+	regfree(&re);
 	return packageList;
 }
 
commit 603af39b798d45a674abe5d29bc17fc010d06eec
Author: Sebastian Heinlein <devel at glatzor.de>
Date:   Thu Aug 20 16:56:59 2009 +0200

    APT: Fix the not auto installed marking of upgrades

diff --git a/backends/apt/aptBackend.py b/backends/apt/aptBackend.py
index 6184280..75f316c 100755
--- a/backends/apt/aptBackend.py
+++ b/backends/apt/aptBackend.py
@@ -1088,7 +1088,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
                 return
             pkgs.append(pkg.name[:])
             # Actually should be fixed in python-apt
-            auto = self._cache._depcache.IsAutoInstalled(pkg._pkg)
+            auto = not self._cache._depcache.IsAutoInstalled(pkg._pkg)
             pkg.markInstall(False, True, auto)
             resolver.Clear(pkg._pkg)
             resolver.Protect(pkg._pkg)
commit 0b6cd578ce5d993e9bc8d3d4548a4522d59f4bb9
Author: Richard Hughes <richard at hughsie.com>
Date:   Thu Aug 20 15:56:30 2009 +0100

    device-rebind: be more militant about what paths we accept

diff --git a/contrib/device-rebind/pk-device-rebind.c b/contrib/device-rebind/pk-device-rebind.c
index 9b00b19..0cb580a 100644
--- a/contrib/device-rebind/pk-device-rebind.c
+++ b/contrib/device-rebind/pk-device-rebind.c
@@ -24,6 +24,7 @@
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <fcntl.h>
+#include <string.h>
 #include <unistd.h>
 #include <errno.h>
 #include <glib-object.h>
@@ -207,6 +208,33 @@ out:
 }
 
 /**
+ * pk_device_rebind_verify_path:
+ **/
+static gboolean
+pk_device_rebind_verify_path (const gchar *filename)
+{
+	gboolean ret;
+	gchar *found;
+
+	/* don't let the user escape /sys */
+	ret = (strstr (filename, "..") == NULL);
+	if (!ret)
+		goto out;
+
+	/* don't let the user use quoting */
+	ret = (strstr (filename, "\\") == NULL);
+	if (!ret)
+		goto out;
+
+	/* linux specific */
+	ret = g_str_has_prefix (filename, "/sys/");
+	if (!ret)
+		goto out;
+out:
+	return ret;
+}
+
+/**
  * pk_device_rebind_verify:
  **/
 static gboolean
@@ -222,8 +250,8 @@ pk_device_rebind_verify (const gchar *filename, GError **error)
 		goto out;
 	}
 
-	/* linux specific */
-	ret = g_str_has_prefix (filename, "/sys/");
+	/* don't let the user escape /sys */
+	ret = pk_device_rebind_verify_path (filename);
 	if (!ret) {
 		/* TRANSLATORS: user did not specify a valid device sysfs path */
 		*error = g_error_new (1, 0, "%s: %s\n", _("Incorrect device path specified"), filename);
commit 82401e4510ffe84b65ed939739ec44cd3ac445e0
Merge: e50c55e... 1ffbafa...
Author: Richard Hughes <richard at hughsie.com>
Date:   Thu Aug 20 14:25:40 2009 +0100

    Merge branch 'master' of git+ssh://hughsie@git.packagekit.org/srv/git/PackageKit

commit 1ffbafad2abe4c149b1db64a56b7278ed2874270
Author: beckerde <beckerde at fedoraproject.org>
Date:   Thu Aug 20 12:38:52 2009 +0000

    Sending translation for Spanish

diff --git a/po/es.po b/po/es.po
index 2a2c903..b946f6d 100644
--- a/po/es.po
+++ b/po/es.po
@@ -10,8 +10,8 @@ msgstr ""
 "Project-Id-Version: packagekit\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2009-08-20 08:42+0000\n"
-"PO-Revision-Date: 2009-08-20 09:33-0300\n"
-"Last-Translator: Héctor Daniel Cabrera <h.daniel.cabrera at gmail.com>\n"
+"PO-Revision-Date: 2009-08-20 09:46-0300\n"
+"Last-Translator: Domingo Becker <domingobecker at gmail.com>\n"
 "Language-Team: Fedora Spanish <fedora-trans-es at redhat.com>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -1195,69 +1195,63 @@ msgstr "Falló al escribir en el dispositivo"
 
 #. TRANSLATORS: we failed to release the current driver
 #: ../contrib/device-rebind/pk-device-rebind.c:190
-#, fuzzy
 msgid "Failed to unregister driver"
-msgstr "Falló al crear el directorio:"
+msgstr "Falló al desregistrar el controlador"
 
 #. TRANSLATORS: we failed to bind the old driver
 #: ../contrib/device-rebind/pk-device-rebind.c:199
-#, fuzzy
 msgid "Failed to register driver"
 msgstr "Falló al registrar el controlador"
 
 #. TRANSLATORS: user did not specify a device sysfs path that exists
 #: ../contrib/device-rebind/pk-device-rebind.c:221
 msgid "Device path not found"
-msgstr "Ruta al dispositivo no encontrada"
+msgstr "Dirección de dispositivo no encontrado"
 
 #. TRANSLATORS: user did not specify a valid device sysfs path
 #: ../contrib/device-rebind/pk-device-rebind.c:229
 msgid "Incorrect device path specified"
-msgstr "La ruta al dispositivo especificada es incorrecta"
+msgstr "Dirección de dispositivo especificada incorrecta"
 
 #. command line argument, simulate what would be done, but don't actually do it
 #: ../contrib/device-rebind/pk-device-rebind.c:255
-#, fuzzy
 msgid "Don't actually touch the hardware, only simulate what would be done"
-msgstr "El hardware se mantiene inalterado, solamente se simula lo que sucedería."
+msgstr "No tocar el hardware, solamente simular lo que se haría"
 
 #. TRANSLATORS: command line option: a list of files to install
 #: ../contrib/device-rebind/pk-device-rebind.c:258
-#, fuzzy
 msgid "Device paths"
-msgstr "Rutas de dispositivo"
+msgstr "Dirección de dispositivo"
 
 #. TRANSLATORS: tool that gets called when the device needs reloading after installing firmware
 #: ../contrib/device-rebind/pk-device-rebind.c:264
-#, fuzzy
 msgid "PackageKit Device Reloader"
-msgstr "Recargador de dispositivo de PackageKit"
+msgstr "Recargador de Dispositivo de PackageKit"
 
 #. TRANSLATORS: user did not specify a valid device sysfs path
 #: ../contrib/device-rebind/pk-device-rebind.c:272
 msgid "You need to specify at least one valid device path"
-msgstr "Debe especificar al menos una ruta de dispositivo válida"
+msgstr "Necesita especificar al menos una dirección de dispositivo válida"
 
 #. TRANSLATORS: we're going to verify the path first
 #: ../contrib/device-rebind/pk-device-rebind.c:281
 msgid "Verifying device path"
-msgstr "Vrificando la ruta al dispositivo"
+msgstr "Verificando dirección de dispositivo"
 
 #. TRANSLATORS: user did not specify a device sysfs path that exists
 #: ../contrib/device-rebind/pk-device-rebind.c:286
 msgid "Failed to verify device path"
-msgstr "Falló al verificar la ruta de dispositivo"
+msgstr "Falló al verificar la dirección del dispositivo"
 
 #. TRANSLATORS: we're going to try
 #: ../contrib/device-rebind/pk-device-rebind.c:300
 msgid "Attempting to rebind device"
-msgstr "Intentando reasociar el dispositivo"
+msgstr "Intentando reconectar dispositivo"
 
 #. TRANSLATORS: we failed to release the current driver
 #: ../contrib/device-rebind/pk-device-rebind.c:305
-#, fuzzy
 msgid "Failed to rebind device"
-msgstr "Falló al reasociar el dispositivo"
+msgstr "Falló al reconectar el dispositivo"
 
 #: ../data/packagekit-catalog.xml.in.h:1
 msgid "PackageKit Catalog"
@@ -1311,7 +1305,7 @@ msgstr "Se necesita autenticación para refrescar las fuentes del sistema"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:15
 msgid "Authentication is required to reload the device with a new driver"
-msgstr "Se necesita autenticación para recargar el dispositivo con un nuevo controlador"
+msgstr "Se necesita autenticación para recargar el dispositivo con un controlador nuevo"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:16
 msgid "Authentication is required to remove packages"
commit 17a9e95c6633a5c1a700990b6c9218be890ca5a4
Author: logan <logan at fedoraproject.org>
Date:   Thu Aug 20 12:34:53 2009 +0000

    Sending translation for Spanish

diff --git a/po/es.po b/po/es.po
index f1e15b2..2a2c903 100644
--- a/po/es.po
+++ b/po/es.po
@@ -9,9 +9,9 @@ msgid ""
 msgstr ""
 "Project-Id-Version: packagekit\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-08-18 08:39+0000\n"
-"PO-Revision-Date: 2009-08-18 11:26-0300\n"
-"Last-Translator: Domingo Becker <domingobecker at gmail.com>\n"
+"POT-Creation-Date: 2009-08-20 08:42+0000\n"
+"PO-Revision-Date: 2009-08-20 09:33-0300\n"
+"Last-Translator: Héctor Daniel Cabrera <h.daniel.cabrera at gmail.com>\n"
 "Language-Team: Fedora Spanish <fedora-trans-es at redhat.com>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -48,7 +48,7 @@ msgstr "Falso"
 #. TRANSLATORS: this is the transactions role, e.g. "update-system"
 #. TRANSLATORS: the trasaction role, e.g. update-system
 #: ../client/pk-console.c:237
-#: ../src/pk-polkit-action-lookup.c:331
+#: ../src/pk-polkit-action-lookup.c:327
 msgid "Role"
 msgstr "Rol"
 
@@ -64,7 +64,7 @@ msgstr "(segundos)"
 #. TRANSLATORS: this is The command line used to do the action
 #. TRANSLATORS: the command line of the thing that wants the authentication
 #: ../client/pk-console.c:246
-#: ../src/pk-polkit-action-lookup.c:345
+#: ../src/pk-polkit-action-lookup.c:341
 msgid "Command line"
 msgstr "Línea de comandos"
 
@@ -141,7 +141,7 @@ msgstr "Detalles acerca de la actualización:"
 #. TRANSLATORS: details about the update, package name and version
 #. TRANSLATORS: title, the names of the packages that the method is processing
 #: ../client/pk-console.c:341
-#: ../src/pk-polkit-action-lookup.c:356
+#: ../src/pk-polkit-action-lookup.c:352
 msgid "Package"
 msgid_plural "Packages"
 msgstr[0] "Paquete"
@@ -547,6 +547,7 @@ msgstr "Subcomandos:"
 #: ../client/pk-monitor.c:128
 #: ../contrib/command-not-found/pk-command-not-found.c:616
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:550
+#: ../contrib/device-rebind/pk-device-rebind.c:252
 #: ../src/pk-main.c:211
 msgid "Show extra debugging information"
 msgstr "Mostrar información extra de depuración"
@@ -849,6 +850,60 @@ msgstr "Elija el paquete correcto: "
 msgid "Please enter a number from 1 to %i: "
 msgstr "Introduzca un número de 1 a %i: "
 
+#. TRANSLATORS: when we are getting data from the daemon
+#: ../contrib/browser-plugin/pk-plugin-install.c:433
+msgid "Getting package information..."
+msgstr "Extrayendo información del paquete..."
+
+#. TRANSLATORS: run an applicaiton
+#: ../contrib/browser-plugin/pk-plugin-install.c:439
+#, c-format
+msgid "Run %s"
+msgstr "Ejecutar %s"
+
+#. TRANSLATORS: show the installed version of a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:445
+msgid "Installed version"
+msgstr "Versión instalada"
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:453
+#, c-format
+msgid "Run version %s now"
+msgstr "Ejecutar la versión %s ahora"
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:459
+msgid "Run now"
+msgstr "Ejecutar ahora"
+
+#. TRANSLATORS: update to a new version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:465
+#, c-format
+msgid "Update to version %s"
+msgstr "Actualizar a la versión %s"
+
+#. TRANSLATORS: To install a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:471
+#, c-format
+msgid "Install %s now"
+msgstr "Instalar %s ahora"
+
+#. TRANSLATORS: the version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:474
+msgid "Version"
+msgstr "Versión"
+
+#. TRANSLATORS: noting found, so can't install
+#: ../contrib/browser-plugin/pk-plugin-install.c:479
+msgid "No packages found for your system"
+msgstr "No se encontró ningún paquete para su sistema"
+
+#. TRANSLATORS: package is being installed
+#: ../contrib/browser-plugin/pk-plugin-install.c:484
+msgid "Installing..."
+msgstr "Instalando..."
+
 #. TRANSLATORS: downloading repo data so we can search
 #: ../contrib/command-not-found/pk-command-not-found.c:349
 msgid "Downloading details about the software sources."
@@ -938,60 +993,6 @@ msgstr "Los posibles paquetes son:"
 msgid "Please choose a package to install"
 msgstr "Elija un paquete para instalar"
 
-#. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/pk-plugin-install.c:433
-msgid "Getting package information..."
-msgstr "Extrayendo información del paquete..."
-
-#. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/pk-plugin-install.c:439
-#, c-format
-msgid "Run %s"
-msgstr "Ejecutar %s"
-
-#. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:445
-msgid "Installed version"
-msgstr "Versión instalada"
-
-#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:453
-#, c-format
-msgid "Run version %s now"
-msgstr "Ejecutar la versión %s ahora"
-
-#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:459
-msgid "Run now"
-msgstr "Ejecutar ahora"
-
-#. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:465
-#, c-format
-msgid "Update to version %s"
-msgstr "Actualizar a la versión %s"
-
-#. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:471
-#, c-format
-msgid "Install %s now"
-msgstr "Instalar %s ahora"
-
-#. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:474
-msgid "Version"
-msgstr "Versión"
-
-#. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/pk-plugin-install.c:479
-msgid "No packages found for your system"
-msgstr "No se encontró ningún paquete para su sistema"
-
-#. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/pk-plugin-install.c:484
-msgid "Installing..."
-msgstr "Instalando..."
-
 #. TRANSLATORS: we are starting to install the packages
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:187
 msgid "Starting install"
@@ -1176,6 +1177,88 @@ msgstr "No es posible deshabilitar las fuentes para depuración:%s"
 msgid "Disabled %i debugging sources."
 msgstr "Se han deshabilitado %i fuentes para la depuración. "
 
+#. TRANSLATORS: couldn't open device to write
+#: ../contrib/device-rebind/pk-device-rebind.c:60
+msgid "Failed to open file"
+msgstr "Falló al abrir el archivo"
+
+#. TRANSLATORS: could not write to the device
+#: ../contrib/device-rebind/pk-device-rebind.c:69
+msgid "Failed to write to the file"
+msgstr "Falló al escribir en el archivo"
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:109
+#: ../contrib/device-rebind/pk-device-rebind.c:146
+msgid "Failed to write to device"
+msgstr "Falló al escribir en el dispositivo"
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:190
+#, fuzzy
+msgid "Failed to unregister driver"
+msgstr "Falló al crear el directorio:"
+
+#. TRANSLATORS: we failed to bind the old driver
+#: ../contrib/device-rebind/pk-device-rebind.c:199
+#, fuzzy
+msgid "Failed to register driver"
+msgstr "Falló al registrar el controlador"
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:221
+msgid "Device path not found"
+msgstr "Ruta al dispositivo no encontrada"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:229
+msgid "Incorrect device path specified"
+msgstr "La ruta al dispositivo especificada es incorrecta"
+
+#. command line argument, simulate what would be done, but don't actually do it
+#: ../contrib/device-rebind/pk-device-rebind.c:255
+#, fuzzy
+msgid "Don't actually touch the hardware, only simulate what would be done"
+msgstr "El hardware se mantiene inalterado, solamente se simula lo que sucedería."
+
+#. TRANSLATORS: command line option: a list of files to install
+#: ../contrib/device-rebind/pk-device-rebind.c:258
+#, fuzzy
+msgid "Device paths"
+msgstr "Rutas de dispositivo"
+
+#. TRANSLATORS: tool that gets called when the device needs reloading after installing firmware
+#: ../contrib/device-rebind/pk-device-rebind.c:264
+#, fuzzy
+msgid "PackageKit Device Reloader"
+msgstr "Recargador de dispositivo de PackageKit"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:272
+msgid "You need to specify at least one valid device path"
+msgstr "Debe especificar al menos una ruta de dispositivo válida"
+
+#. TRANSLATORS: we're going to verify the path first
+#: ../contrib/device-rebind/pk-device-rebind.c:281
+msgid "Verifying device path"
+msgstr "Vrificando la ruta al dispositivo"
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:286
+msgid "Failed to verify device path"
+msgstr "Falló al verificar la ruta de dispositivo"
+
+#. TRANSLATORS: we're going to try
+#: ../contrib/device-rebind/pk-device-rebind.c:300
+msgid "Attempting to rebind device"
+msgstr "Intentando reasociar el dispositivo"
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:305
+#, fuzzy
+msgid "Failed to rebind device"
+msgstr "Falló al reasociar el dispositivo"
+
 #: ../data/packagekit-catalog.xml.in.h:1
 msgid "PackageKit Catalog"
 msgstr "Catálogo de PackageKit"
@@ -1227,18 +1310,22 @@ msgid "Authentication is required to refresh the system sources"
 msgstr "Se necesita autenticación para refrescar las fuentes del sistema"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:15
+msgid "Authentication is required to reload the device with a new driver"
+msgstr "Se necesita autenticación para recargar el dispositivo con un nuevo controlador"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:16
 msgid "Authentication is required to remove packages"
 msgstr "Se necesita autenticación para eliminar paquetes"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:16
+#: ../policy/org.freedesktop.packagekit.policy.in.h:17
 msgid "Authentication is required to rollback a transaction"
 msgstr "Se necesita autenticación para deshacer una transacción"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:17
+#: ../policy/org.freedesktop.packagekit.policy.in.h:18
 msgid "Authentication is required to set the network proxy used for downloading packages"
 msgstr "Se necesita autenticación para cambiar el proxy de red usado para descargar paquetes"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:18
+#: ../policy/org.freedesktop.packagekit.policy.in.h:19
 msgid "Authentication is required to update packages"
 msgstr "Se necesita autenticación para actualizar paquetes"
 
@@ -1247,7 +1334,7 @@ msgstr "Se necesita autenticación para actualizar paquetes"
 #. authentication, but a different user id needs the admin password
 #. to cancel another users task.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:24
+#: ../policy/org.freedesktop.packagekit.policy.in.h:25
 msgid "Cancel foreign task"
 msgstr "Cancelar tarea externa"
 
@@ -1256,7 +1343,7 @@ msgstr "Cancelar tarea externa"
 #. software sources as this can be used to enable new updates or
 #. install different versions of software.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:30
+#: ../policy/org.freedesktop.packagekit.policy.in.h:31
 msgid "Change software source parameters"
 msgstr "Cambiar los parámetros de fuente de software"
 
@@ -1266,7 +1353,7 @@ msgstr "Cambiar los parámetros de fuente de software"
 #. - Paranoid users (or parents!) can change this to 'auth_admin' or
 #. 'auth_admin_keep'.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:37
+#: ../policy/org.freedesktop.packagekit.policy.in.h:38
 msgid "Install signed package"
 msgstr "Instalar paquete firmado"
 
@@ -1276,7 +1363,7 @@ msgstr "Instalar paquete firmado"
 #. password would be a massive security hole.
 #. - This is not retained as each package should be authenticated.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:44
+#: ../policy/org.freedesktop.packagekit.policy.in.h:45
 msgid "Install untrusted local file"
 msgstr "Instalar archivo local no-confiable"
 
@@ -1284,11 +1371,22 @@ msgstr "Instalar archivo local no-confiable"
 #. - Normal users do not require admin authentication to refresh the
 #. cache, as this doesn't actually install or remove software.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:49
+#: ../policy/org.freedesktop.packagekit.policy.in.h:50
 msgid "Refresh system sources"
 msgstr "Refrescar las fuentes del sistema"
 
 #. SECURITY:
+#. - Normal users require admin authentication to rebind a driver
+#. so that it works after we install firmware.
+#. - This should not be set to 'yes' as unprivileged users could then
+#. try to rebind drivers in use, for instance security authentication
+#. devices.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:58
+msgid "Reload a device"
+msgstr "Recargar un dispositivo"
+
+#. SECURITY:
 #. - Normal users require admin authentication to remove packages as
 #. this can make the system unbootable or stop other applications from
 #. working.
@@ -1297,7 +1395,7 @@ msgstr "Refrescar las fuentes del sistema"
 #. be removed. If this is not possible, change this authentication to
 #. 'auth_admin'.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:59
+#: ../policy/org.freedesktop.packagekit.policy.in.h:68
 msgid "Remove package"
 msgstr "Eliminar paquete"
 
@@ -1306,7 +1404,7 @@ msgstr "Eliminar paquete"
 #. as this will change a large number of packages, and could expose the
 #. system to previously patched security vulnerabilities.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:65
+#: ../policy/org.freedesktop.packagekit.policy.in.h:74
 msgid "Rollback to a previous transaction"
 msgstr "Deshacer hasta una transacción anterior"
 
@@ -1314,7 +1412,7 @@ msgstr "Deshacer hasta una transacción anterior"
 #. - Normal users do not require admin authentication to set the proxy
 #. used for downloading packages.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:70
+#: ../policy/org.freedesktop.packagekit.policy.in.h:79
 msgid "Set network proxy"
 msgstr "Establecer el proxy de la red"
 
@@ -1324,7 +1422,7 @@ msgstr "Establecer el proxy de la red"
 #. without a secure authentication.
 #. - This is not kept as each package should be authenticated.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:77
+#: ../policy/org.freedesktop.packagekit.policy.in.h:86
 msgid "Trust a key used for signing packages"
 msgstr "Confiar en una llave usada para firmar paquetes"
 
@@ -1335,7 +1433,7 @@ msgstr "Confiar en una llave usada para firmar paquetes"
 #. - Changing this to anything other than 'yes' will break unattended
 #. updates.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:85
+#: ../policy/org.freedesktop.packagekit.policy.in.h:94
 msgid "Update packages"
 msgstr "Actualizar paquetes"
 
@@ -1410,7 +1508,7 @@ msgstr "Para poder instalar paquetes de depuración, es necesario habilitar nuev
 
 #. TRANSLATORS: is not GPG signed
 #: ../src/pk-polkit-action-lookup.c:168
-#: ../src/pk-polkit-action-lookup.c:191
+#: ../src/pk-polkit-action-lookup.c:187
 msgid "The software is not from a trusted source."
 msgstr "El software no proviene de una fuente confiable."
 
@@ -1422,27 +1520,26 @@ msgstr "No actualice este paquete a menos que sepa con certeza que es seguro hac
 msgid "Do not update these packages unless you are sure it is safe to do so."
 msgstr "No actualice estos paquete a menos que sepa con certeza que es seguro hacerlo."
 
-#. TRANSLATORS: warn the user that all bets are off
-#: ../src/pk-polkit-action-lookup.c:180
-#: ../src/pk-polkit-action-lookup.c:203
-msgid "Malicious software can damage your computer or cause other harm."
-msgstr "Un software considerado maligno puede provocar diferentes clases de daño, por ejemplo, podría dañar su computadora. "
-
-#: ../src/pk-polkit-action-lookup.c:196
+#: ../src/pk-polkit-action-lookup.c:192
 msgid "Do not install this package unless you are sure it is safe to do so."
 msgstr "No instale este paquete a menos que sepa con certeza que es seguro hacerlo."
 
-#: ../src/pk-polkit-action-lookup.c:197
+#: ../src/pk-polkit-action-lookup.c:193
 msgid "Do not install these packages unless you are sure it is safe to do so."
 msgstr "No instale estos paquete a menos que sepa con certeza que es seguro hacerlo."
 
+#. TRANSLATORS: warn the user that all bets are off
+#: ../src/pk-polkit-action-lookup.c:199
+msgid "Malicious software can damage your computer or cause other harm."
+msgstr "Un software considerado maligno puede provocar diferentes clases de daño, por ejemplo, podría dañar su computadora. "
+
 #. TRANSLATORS: too many packages to list each one
-#: ../src/pk-polkit-action-lookup.c:278
+#: ../src/pk-polkit-action-lookup.c:274
 msgid "Many packages"
 msgstr "Varios paquetes"
 
 #. TRANSLATORS: if the transaction is forced to install only trusted packages
-#: ../src/pk-polkit-action-lookup.c:338
+#: ../src/pk-polkit-action-lookup.c:334
 msgid "Only trusted"
 msgstr "Solo confiable"
 
@@ -1480,8 +1577,6 @@ msgstr "Solo confiable"
 #~ msgstr "Debe especificar un paquete para el que buscar la descripción"
 #~ msgid "You need to specify a package to find the files for"
 #~ msgstr "Debe especificar un paquete para el que buscar los archivos"
-#~ msgid "You need to specify a list file to create"
-#~ msgstr "Debe especificar un archivo de lista a crear"
 #~ msgid "You need to specify a list file to open"
 #~ msgstr "Debe especificar un archivo de lista a abrir"
 #~ msgid "This tool could not remove the packages: '%s'"
commit e50c55ec6c72e8dc60cc8ece95fd967d909a1885
Author: Richard Hughes <richard at hughsie.com>
Date:   Thu Aug 20 10:40:02 2009 +0100

    ports: Add a gitignore file

diff --git a/backends/ports/.gitignore b/backends/ports/.gitignore
new file mode 100644
index 0000000..a8be826
--- /dev/null
+++ b/backends/ports/.gitignore
@@ -0,0 +1,6 @@
+.deps
+.libs/
+*.la
+*.lo
+*.o
+
commit 542975288bbbb1ad6015752caa8a05c2e2b342df
Author: Richard Hughes <richard at hughsie.com>
Date:   Thu Aug 20 09:20:17 2009 +0100

    Reduce the amount of GUI interaction in the web plugin

diff --git a/contrib/browser-plugin/pk-plugin-install.c b/contrib/browser-plugin/pk-plugin-install.c
index e138d9a..6724845 100644
--- a/contrib/browser-plugin/pk-plugin-install.c
+++ b/contrib/browser-plugin/pk-plugin-install.c
@@ -777,7 +777,7 @@ pk_plugin_install_install_package (PkPluginInstall *self, Time event_time)
 						      24 * 60 * 1000 * 1000, /* one day */
 						      G_TYPE_UINT, xid, /* xid */
 						      G_TYPE_STRV, packages,
-						      G_TYPE_STRING, "hide-finished",
+						      G_TYPE_STRING, "hide-confirm-search,hide-confirm-deps,hide-finished",
 						      G_TYPE_INVALID,
 						      G_TYPE_INVALID);
 	g_strfreev (packages);
commit 8cae95d085d68f95cc890ad3de66cb402c4cdae4
Author: Richard Hughes <richard at hughsie.com>
Date:   Thu Aug 20 09:02:22 2009 +0100

    Actually make device-rebind compile on a GUdev system

diff --git a/contrib/device-rebind/Makefile.am b/contrib/device-rebind/Makefile.am
index 05bfddd..dc9a149 100644
--- a/contrib/device-rebind/Makefile.am
+++ b/contrib/device-rebind/Makefile.am
@@ -16,7 +16,7 @@ pk-device-rebind.1: pk-device-rebind.xml
 	xsltproc http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $? &> /dev/null
 endif
 
-INCLUDES = $(GLIB_CFLAGS)
+INCLUDES = $(GLIB_CFLAGS) $(GUDEV_CFLAGS)
 
 sbin_PROGRAMS = pk-device-rebind
 
@@ -26,10 +26,12 @@ pk_device_rebind_SOURCES =				\
 
 pk_device_rebind_LDADD =				\
 	$(GLIB_LIBS)					\
+	$(GUDEV_LIBS)					\
 	$(NULL)
 
 pk_device_rebind_CFLAGS =				\
 	$(WARNINGFLAGS_C)				\
+	-DG_UDEV_API_IS_SUBJECT_TO_CHANGE		\
 	$(NULL)
 
 clean-local:
diff --git a/contrib/device-rebind/pk-device-rebind.c b/contrib/device-rebind/pk-device-rebind.c
index 07e01c3..9b00b19 100644
--- a/contrib/device-rebind/pk-device-rebind.c
+++ b/contrib/device-rebind/pk-device-rebind.c
@@ -161,6 +161,7 @@ pk_device_rebind (GUdevClient *client, const gchar *path, GError **error)
 	GUdevDevice *device;
 	gint busnum;
 	gint devnum;
+	gboolean ret;
 	const gchar *driver;
 	const gchar *subsystem;
 	gchar *bus_id;
@@ -183,10 +184,10 @@ pk_device_rebind (GUdevClient *client, const gchar *path, GError **error)
 	bus_id = g_strdup_printf ("%i-%i", busnum, devnum);
 
 	/* unbind device */
-	ret = pk_device_unbind (paths[i], bus_id, &error_local);
+	ret = pk_device_unbind (path, bus_id, &error_local);
 	if (!ret) {
 		/* TRANSLATORS: we failed to release the current driver */
-		*error = g_error_new (1, 0, _("Failed to unregister driver"), error_local->message);
+		*error = g_error_new (1, 0, "%s: %s", _("Failed to unregister driver"), error_local->message);
 		g_error_free (error_local);
 		goto out;
 	}
@@ -195,7 +196,7 @@ pk_device_rebind (GUdevClient *client, const gchar *path, GError **error)
 	ret = pk_device_bind (bus_id, subsystem, driver, &error_local);
 	if (!ret) {
 		/* TRANSLATORS: we failed to bind the old driver */
-		*error = g_error_new (1, 0, _("Failed to register driver"), error_local->message);
+		*error = g_error_new (1, 0, "%s: %s", _("Failed to register driver"), error_local->message);
 		g_error_free (error_local);
 		goto out;
 	}
commit 9f835922a2c85e4225d725402ef6e1a22ca448a4
Merge: 1aa93e4... 8098592...
Author: Richard Hughes <richard at hughsie.com>
Date:   Thu Aug 20 08:34:55 2009 +0100

    Merge branch 'master' of git+ssh://hughsie@git.packagekit.org/srv/git/PackageKit

commit 8098592c467046b39d97b41d5279a62720cbf2da
Author: Richard Hughes <richard at hughsie.com>
Date:   Thu Aug 20 08:33:14 2009 +0100

    Add the device rebinding functionality required for the session to install drivers

diff --git a/configure.ac b/configure.ac
index ae0c40b..8a98f15 100644
--- a/configure.ac
+++ b/configure.ac
@@ -505,6 +505,19 @@ AC_ARG_ENABLE(debuginfo-install, AS_HELP_STRING([--enable-debuginfo-install],[Bu
 AM_CONDITIONAL(PK_BUILD_DEBUGINFO_INSTALL, test $build_debuginfo_install = "yes")
 
 dnl ---------------------------------------------------------------------------
+dnl - Able to use device rebind functionality
+dnl ---------------------------------------------------------------------------
+AC_ARG_ENABLE(device-rebind, AS_HELP_STRING([--enable-device-rebind],[Build device rebind functionality]),
+	      build_device_rebind=$enableval,build_device_rebind=yes)
+if test x$build_device_rebind = xyes; then
+	PKG_CHECK_MODULES(GUDEV, gudev-1.0,
+			  build_device_rebind=yes, build_device_rebind=no)
+else
+	build_device_rebind=no
+fi
+AM_CONDITIONAL(PK_BUILD_DEVICE_REBIND, test $build_device_rebind = "yes")
+
+dnl ---------------------------------------------------------------------------
 dnl - Able to build pm-utils script functionality
 dnl ---------------------------------------------------------------------------
 AC_ARG_ENABLE(pm_utils, AS_HELP_STRING([--enable-pm-utils],[Build pm-utils script functionality]),
@@ -763,6 +776,7 @@ contrib/yum-packagekit/Makefile
 contrib/command-not-found/Makefile
 contrib/cron/Makefile
 contrib/debuginfo-install/Makefile
+contrib/device-rebind/Makefile
 contrib/pm-utils/Makefile
 contrib/ruck/Makefile
 contrib/ruck/src/Makefile
@@ -831,6 +845,7 @@ echo "
         BASH Command not found:    ${build_command_not_found}
         Cron scripts:              ${build_cron}
         debuginfo-install:         ${build_debuginfo_install}
+        device-rebind:             ${build_device_rebind}
         pm-utils scripts:          ${build_pm_utils}
         RUCK client:               ${build_ruck}
         QT library:                ${build_qt}
diff --git a/contrib/Makefile.am b/contrib/Makefile.am
index 6a2d883..3e8b001 100644
--- a/contrib/Makefile.am
+++ b/contrib/Makefile.am
@@ -36,6 +36,10 @@ if PK_BUILD_PM_UTILS
 SUBDIRS += pm-utils
 endif
 
+if PK_BUILD_DEVICE_REBIND
+SUBDIRS += device-rebind
+endif
+
 bashcompletiondir = ${SYSCONFDIR}/bash_completion.d
 dist_bashcompletion_DATA = pk-completion.bash
 
diff --git a/contrib/device-rebind/.gitignore b/contrib/device-rebind/.gitignore
new file mode 100644
index 0000000..f69b650
--- /dev/null
+++ b/contrib/device-rebind/.gitignore
@@ -0,0 +1,7 @@
+.deps
+.libs
+*.o
+pk-device-rebind
+manpage.*
+*.1
+
diff --git a/contrib/device-rebind/Makefile.am b/contrib/device-rebind/Makefile.am
new file mode 100644
index 0000000..05bfddd
--- /dev/null
+++ b/contrib/device-rebind/Makefile.am
@@ -0,0 +1,40 @@
+## We require new-style dependency handling.
+AUTOMAKE_OPTIONS = 1.7
+
+EXTRA_DIST =						\
+	pk-device-rebind.xml				\
+	$(NULL)
+
+if HAVE_XSLTPROC
+man_MANS =						\
+	pk-device-rebind.1				\
+	$(NULL)
+endif
+
+if HAVE_XSLTPROC
+pk-device-rebind.1: pk-device-rebind.xml
+	xsltproc http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $? &> /dev/null
+endif
+
+INCLUDES = $(GLIB_CFLAGS)
+
+sbin_PROGRAMS = pk-device-rebind
+
+pk_device_rebind_SOURCES =				\
+	pk-device-rebind.c				\
+	$(NULL)
+
+pk_device_rebind_LDADD =				\
+	$(GLIB_LIBS)					\
+	$(NULL)
+
+pk_device_rebind_CFLAGS =				\
+	$(WARNINGFLAGS_C)				\
+	$(NULL)
+
+clean-local:
+	rm -f *~
+	rm -f *.1
+	rm -f manpage.*
+	rm -f *.out
+
diff --git a/contrib/device-rebind/README b/contrib/device-rebind/README
new file mode 100644
index 0000000..495ac95
--- /dev/null
+++ b/contrib/device-rebind/README
@@ -0,0 +1,43 @@
+			Device Rebinding
+
+Device rebinding is something that can be done in userspace to simulate removing
+and then replugging hardware so that the driver attempts to connect to the
+device again and firmware is re-requested.
+
+If the session client installs a driver or firmware, then this functionality is
+required to avoid asking the user to remove the hardware manually, or in the
+case where the hardware is internal, to avoid asking the user to reboot.
+
+See http://lwn.net/Articles/143397/ for more information about how to unbind and
+rebind a device with Linux.
+
+You can test this functionality by doing:
+
+./pk-device-rebind -v -s "/sys/devices/pci0000:00/0000:00:1d.0/usb5/5-2" */
+
+In userspace it is expected that clients just use PolicyKit to run this command
+as root, for instance, "pkexec /usr/sbin/pk-device-rebind"
+
+This functionality is only available if GUdev is available.
+
+TODO:
+
+Modify /lib/udev/firmware.sh so that we use usb-db and pci-db to get a better
+vendor and model.
+
+--------------------------------------------------------------------------------
+
+if [ ! -e /sys$DEVPATH/loading ]; then
+	err "udev firmware loader misses sysfs directory"
+	exit 1
+fi
+
+use loading file in sysfs to match these properties
+
+SUBSYSTEM=="firmware", ACTION=="add", , NEED_FIRMWARE="1", RUN+="firmware.sh", NEED_FIRMWARE="0"
+
+SUBSYSTEMS=="usb", ENV{ID_VENDOR_FROM_DATABASE}=="", IMPORT{program}="usb-db %p"
+SUBSYSTEMS=="usb", GOTO="skip_pci"
+SUBSYSTEMS=="pci", ENV{ID_VENDOR_FROM_DATABASE}=="", IMPORT{program}="pci-db %p"
+LABEL="skip_pci"
+
diff --git a/contrib/device-rebind/pk-device-rebind.c b/contrib/device-rebind/pk-device-rebind.c
new file mode 100644
index 0000000..07e01c3
--- /dev/null
+++ b/contrib/device-rebind/pk-device-rebind.c
@@ -0,0 +1,319 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2009 Richard Hughes <richard at hughsie.com>
+ *
+ * Licensed under the GNU General Public License Version 2
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#include "config.h"
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <unistd.h>
+#include <errno.h>
+#include <glib-object.h>
+#include <glib/gi18n.h>
+#include <gudev/gudev.h>
+
+#define PK_DEVICE_REBIND_EXIT_CODE_SUCCESS			0
+#define PK_DEVICE_REBIND_EXIT_CODE_FAILED			1
+#define PK_DEVICE_REBIND_EXIT_CODE_ARGUMENTS_INVALID		3
+#define PK_DEVICE_REBIND_EXIT_CODE_FAILED_TO_WRITE		4
+
+/* globals */
+static gboolean simulate = FALSE;
+static gboolean verbose = FALSE;
+
+/**
+ * pk_device_rebind_set_contents:
+ *
+ * This is a UNIXy version of g_file_set_contents as this is a device file
+ * and we can't play games with temporary files.
+ **/
+static gboolean
+pk_device_rebind_set_contents (const gchar *filename, const gchar *contents, GError **error)
+{
+	gboolean ret = FALSE;
+	guint len;
+	guint wrote;
+	gint fd;
+
+	/* just write to file */
+	fd = open (filename, O_WRONLY | O_SYNC);
+	if (fd < 0) {
+		/* TRANSLATORS: couldn't open device to write */
+		*error = g_error_new (1, 0, "%s: %s [%s]", _("Failed to open file"), filename, strerror (errno));
+		goto out;
+	}
+
+	/* just write to file */
+	len = strlen (contents);
+	wrote = write (fd, contents, len);
+	if (wrote != len) {
+		/* TRANSLATORS: could not write to the device */
+		*error = g_error_new (1, 0, "%s: %s [%s]", _("Failed to write to the file"), filename, strerror (errno));
+		goto out;
+	}
+
+	/* success */
+	ret = TRUE;
+out:
+	if (fd >= 0)
+		close (fd);
+	return ret;
+}
+
+/**
+ * pk_device_unbind:
+ *
+ * echo -n "5-2" > /sys/devices/pci0000\:00/0000\:00\:1d.0/usb5/5-2/driver/unbind
+ *           ^- busnum-devnum = "bus id"
+ **/
+static gboolean
+pk_device_unbind (const gchar *filename, const gchar *bus_id, GError **error)
+{
+	gchar *path;
+	gboolean ret;
+	GError *error_local = NULL;
+
+	/* create a path to unbind the driver */
+	path = g_build_filename (filename, "driver", "unbind", NULL);
+
+	/* debug */
+	if (verbose)
+		g_debug ("UNBIND: %s > %s", bus_id, path);
+
+	/* don't actually write */
+	if (simulate)
+		goto out;
+
+	/* write to file */
+	ret = pk_device_rebind_set_contents (path, bus_id, &error_local);
+	if (!ret) {
+		/* TRANSLATORS: we failed to release the current driver */
+		*error = g_error_new (1, 0, "%s: %s", _("Failed to write to device"), error_local->message);
+		g_error_free (error_local);
+		goto out;
+	}
+out:
+	g_free (path);
+	return ret;
+}
+
+/**
+ * pk_device_bind:
+ *
+ * echo -n "5-2" > /sys/bus/usb/drivers/usb/bind
+ *                          ^-bus       ^-driver
+ **/
+static gboolean
+pk_device_bind (const gchar *bus_id, const gchar *subsystem, const gchar *driver, GError **error)
+{
+	gchar *path;
+	gboolean ret;
+	GError *error_local = NULL;
+
+	/* create a path to bind the driver */
+	path = g_build_filename ("sys", "bus", subsystem, "drivers", driver, "bind", NULL);
+
+	/* debug */
+	if (verbose)
+		g_debug ("BIND: %s > %s", bus_id, path);
+
+	/* don't actually write */
+	if (simulate)
+		goto out;
+
+	/* write to file */
+	ret = pk_device_rebind_set_contents (path, bus_id, &error_local);
+	if (!ret) {
+		/* TRANSLATORS: we failed to release the current driver */
+		*error = g_error_new (1, 0, "%s: %s", _("Failed to write to device"), error_local->message);
+		g_error_free (error_local);
+		goto out;
+	}
+out:
+	g_free (path);
+	return ret;
+}
+
+/**
+ * pk_device_rebind:
+ **/
+static gboolean
+pk_device_rebind (GUdevClient *client, const gchar *path, GError **error)
+{
+	GUdevDevice *device;
+	gint busnum;
+	gint devnum;
+	const gchar *driver;
+	const gchar *subsystem;
+	gchar *bus_id;
+	GError *error_local = NULL;
+
+	/* get properties about the device */
+	device = g_udev_client_query_by_sysfs_path (client, path);
+	driver = g_udev_device_get_driver (device);
+	subsystem = g_udev_device_get_subsystem (device);
+	busnum = g_udev_device_get_sysfs_attr_as_int (device, "busnum");
+	devnum = g_udev_device_get_sysfs_attr_as_int (device, "devnum");
+
+	/* debug */
+	if (verbose) {
+		g_debug ("DEVICE: driver:%s, subsystem:%s, busnum:%i, devnum:%i",
+			 driver, subsystem, busnum, devnum);
+	}
+
+	/* form the bus id as recognised by the kernel */
+	bus_id = g_strdup_printf ("%i-%i", busnum, devnum);
+
+	/* unbind device */
+	ret = pk_device_unbind (paths[i], bus_id, &error_local);
+	if (!ret) {
+		/* TRANSLATORS: we failed to release the current driver */
+		*error = g_error_new (1, 0, _("Failed to unregister driver"), error_local->message);
+		g_error_free (error_local);
+		goto out;
+	}
+
+	/* bind device */
+	ret = pk_device_bind (bus_id, subsystem, driver, &error_local);
+	if (!ret) {
+		/* TRANSLATORS: we failed to bind the old driver */
+		*error = g_error_new (1, 0, _("Failed to register driver"), error_local->message);
+		g_error_free (error_local);
+		goto out;
+	}
+out:
+	g_free (bus_id);
+	g_object_unref (device);
+	return ret;
+}
+
+/**
+ * pk_device_rebind_verify:
+ **/
+static gboolean
+pk_device_rebind_verify (const gchar *filename, GError **error)
+{
+	gboolean ret;
+
+	/* does directory exist */
+	ret = g_file_test (filename, G_FILE_TEST_IS_DIR);
+	if (!ret) {
+		/* TRANSLATORS: user did not specify a device sysfs path that exists */
+		*error = g_error_new (1, 0, "%s: %s\n", _("Device path not found"), filename);
+		goto out;
+	}
+
+	/* linux specific */
+	ret = g_str_has_prefix (filename, "/sys/");
+	if (!ret) {
+		/* TRANSLATORS: user did not specify a valid device sysfs path */
+		*error = g_error_new (1, 0, "%s: %s\n", _("Incorrect device path specified"), filename);
+		goto out;
+	}
+out:
+	return ret;
+}
+
+/**
+ * main:
+ **/
+gint
+main (gint argc, gchar *argv[])
+{
+	gboolean ret;
+	gchar **paths = NULL;
+	GError *error = NULL;
+	GOptionContext *context;
+	guint i;
+	guint retval = 0;
+	GUdevClient *client = NULL;
+
+	const GOptionEntry options[] = {
+		{ "verbose", 'v', 0, G_OPTION_ARG_NONE, &verbose,
+		  _("Show extra debugging information"), NULL },
+		{ "simulate", 's', 0, G_OPTION_ARG_NONE, &simulate,
+		   /* command line argument, simulate what would be done, but don't actually do it */
+		  _("Don't actually touch the hardware, only simulate what would be done"), NULL },
+		{ G_OPTION_REMAINING, '\0', 0, G_OPTION_ARG_FILENAME_ARRAY, &paths,
+		  /* TRANSLATORS: command line option: a list of files to install */
+		  _("Device paths"), NULL },
+		{ NULL}
+	};
+
+	context = g_option_context_new (NULL);
+	/* TRANSLATORS: tool that gets called when the device needs reloading after installing firmware */
+	g_option_context_set_summary (context, _("PackageKit Device Reloader"));
+	g_option_context_add_main_entries (context, options, NULL);
+	g_option_context_parse (context, &argc, &argv, NULL);
+	g_option_context_free (context);
+
+	/* no input */
+	if (paths == NULL) {
+		/* TRANSLATORS: user did not specify a valid device sysfs path */
+		g_print ("%s\n", _("You need to specify at least one valid device path"));
+		retval = PK_DEVICE_REBIND_EXIT_CODE_ARGUMENTS_INVALID;
+		goto out;
+	}
+
+	/* we're running as root, be paranoid and check them for sanity */
+	for (i=0; paths[i] != NULL; i++) {
+		if (verbose) {
+			/* TRANSLATORS: we're going to verify the path first */
+			g_print ("%s: %s\n", _("Verifying device path"), paths[i]);
+		}
+		ret = pk_device_rebind_verify (paths[i], &error);
+		if (!ret) {
+			/* TRANSLATORS: user did not specify a device sysfs path that exists */
+			g_print ("%s: %s\n", _("Failed to verify device path"), error->message);
+			g_error_free (error);
+			retval = PK_DEVICE_REBIND_EXIT_CODE_ARGUMENTS_INVALID;
+			goto out;
+		}
+	}
+
+	/* use GUdev to find properties */
+	client = g_udev_client_new (NULL);
+
+	/* unbind and then bind all the devices */
+	for (i=0; paths[i] != NULL; i++) {
+		if (verbose) {
+			/* TRANSLATORS: we're going to try */
+			g_print ("%s: %s\n", _("Attempting to rebind device"), paths[i]);
+		}
+		ret = pk_device_rebind (client, paths[i], &error);
+		if (!ret) {
+			/* TRANSLATORS: we failed to release the current driver */
+			g_print ("%s: %s\n", _("Failed to rebind device"), error->message);
+			g_error_free (error);
+			retval = PK_DEVICE_REBIND_EXIT_CODE_FAILED_TO_WRITE;
+			goto out;
+		}
+	}
+
+	/* success */
+	retval = PK_DEVICE_REBIND_EXIT_CODE_SUCCESS;
+out:
+	if (client != NULL)
+		g_object_unref (client);
+	g_strfreev (paths);
+	return retval;
+}
+
diff --git a/contrib/device-rebind/pk-device-rebind.xml b/contrib/device-rebind/pk-device-rebind.xml
new file mode 100644
index 0000000..430bc4d
--- /dev/null
+++ b/contrib/device-rebind/pk-device-rebind.xml
@@ -0,0 +1,141 @@
+<?xml version='1.0' encoding='ISO-8859-1'?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
+"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
+
+<!-- Process this file with docbook-to-man to generate an nroff manual
+     page: `docbook-to-man manpage.xml > manpage.1'.  You may view
+     the manual page with: `docbook-to-man manpage.xml | nroff -man |
+     less'.  A typical entry in a Makefile or Makefile.am is:
+
+manpage.1: manpage.xml
+	docbook-to-man $< > $@
+
+	The docbook-to-man binary is found in the docbook-to-man package.
+	Please remember that if you create the nroff version in one of the
+	debian/rules file targets (such as build), you will need to include
+	docbook-to-man in your Build-Depends control field.
+  -->
+
+  <!-- Please adjust the date whenever revising the manpage. -->
+  <!ENTITY date        "<date>19 August,2009</date>">
+  <!-- SECTION should be 1-8, maybe w/ subsection other parameters are
+       allowed: see man(7), man(1). -->
+  <!ENTITY package     "pk-device-rebind">
+  <!ENTITY gnu         "<acronym>GNU</acronym>">
+  <!ENTITY gpl         "&gnu; <acronym>GPL</acronym>">
+]>
+
+<refentry>
+  <refentryinfo>
+    <copyright>
+      <year>2009</year>
+      <holder>Richard Hughes</holder>
+    </copyright>
+    &date;
+  </refentryinfo>
+  <refmeta>
+    <refentrytitle>pk-device-rebind</refentrytitle>
+    <manvolnum>1</manvolnum>
+  </refmeta>
+  <refnamediv>
+    <refname>&package;</refname>
+    <refpurpose>Device software reloader</refpurpose>
+  </refnamediv>
+  <refsynopsisdiv>
+    <cmdsynopsis>
+      <command>&package;</command>
+      <arg><option>--help</option></arg>
+    </cmdsynopsis>
+  </refsynopsisdiv>
+  <refsect1>
+    <title>Description</title>
+    <para>
+      This manual page documents briefly the <command>&package;</command> command.
+    </para>
+    <para>
+      <command>&package;</command> is the command line client for reloading devices after firmware has been installed.
+    </para>
+  </refsect1>
+  <refsect1>
+    <title>Options</title>
+    <para>
+      This program follows the usual &gnu; command line syntax, with long options
+      starting with two dashes (`-').
+      A summary of options is included below.
+    </para>
+    <variablelist>
+      <varlistentry>
+        <term>
+          <option>--help</option>
+        </term>
+        <listitem>
+          <para>Show summary of options.</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>
+          <option>--verbose</option>
+        </term>
+        <listitem>
+          <para>Show extra debugging information.</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>
+          <option>--simulate</option>
+        </term>
+        <listitem>
+          <para>Don't actually poke the hardware, only simulate what would be done.</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refsect1>
+  <refsect1>
+    <title>Return values</title>
+    <variablelist>
+      <varlistentry>
+        <term>
+          <option>0</option>
+        </term>
+        <listitem>
+          <para>Success, the device was reloaded</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>
+          <option>1</option>
+        </term>
+        <listitem>
+          <para>Failed with miscellaneous internal error.</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>
+          <option>3</option>
+        </term>
+        <listitem>
+          <para>Arguments incorrect.</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>
+          <option>4</option>
+        </term>
+        <listitem>
+          <para>Failed to write to device.</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refsect1>
+
+  <refsect1>
+    <title>See Also</title>
+    <para><command>packagekitd</command> (1). <command>udev</command>(1).</para>
+  </refsect1>
+  <refsect1>
+    <title>Author</title>
+    <para>
+      This manual page was written by Richard Hughes <email>richard at hughsie.com</email>.
+    </para>
+  </refsect1>
+</refentry>
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 19416f4..e90ecaa 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -5,9 +5,10 @@ client/pk-console.c
 client/pk-generate-pack.c
 client/pk-monitor.c
 client/pk-tools-common.c
-contrib/command-not-found/pk-command-not-found.c
 contrib/browser-plugin/pk-plugin-install.c
+contrib/command-not-found/pk-command-not-found.c
 contrib/debuginfo-install/pk-debuginfo-install.c
+contrib/device-rebind/pk-device-rebind.c
 data/packagekit-catalog.xml.in
 data/packagekit-package-list.xml.in
 data/packagekit-servicepack.xml.in
diff --git a/policy/org.freedesktop.packagekit.policy.in b/policy/org.freedesktop.packagekit.policy.in
index e7d000b..e5e5522 100644
--- a/policy/org.freedesktop.packagekit.policy.in
+++ b/policy/org.freedesktop.packagekit.policy.in
@@ -197,5 +197,24 @@
     </defaults>
   </action>
 
+  <action id="org.freedesktop.packagekit.device-rebind">
+    <!-- SECURITY:
+          - Normal users require admin authentication to rebind a driver
+            so that it works after we install firmware.
+          - This should not be set to 'yes' as unprivileged users could then
+            try to rebind drivers in use, for instance security authentication
+            devices.
+     -->
+    <_description>Reload a device</_description>
+    <_message>Authentication is required to reload the device with a new driver</_message>
+    <icon_name>package-x-generic</icon_name>
+    <defaults>
+      <allow_any>no</allow_any>
+      <allow_inactive>no</allow_inactive>
+      <allow_active>auth_admin_keep</allow_active>
+    </defaults>
+    <annotate key="org.freedesktop.policykit.exec.path">/usr/sbin/pk-device-rebind</annotate>
+  </action>
+
 </policyconfig>
 
commit 3eaec649129364670922b829cc407ac185bffa6c
Author: Mounir Lamouri (volkmar) <mounir.lamouri at gmail.com>
Date:   Wed Aug 19 22:40:33 2009 +0200

    portage: move elog commented elog filters to PortageBridge

diff --git a/backends/portage/portageBackend.py b/backends/portage/portageBackend.py
index 4918d06..a65eedf 100755
--- a/backends/portage/portageBackend.py
+++ b/backends/portage/portageBackend.py
@@ -270,12 +270,25 @@ class PortageBridge():
         self.portdb = self.trees[self.settings['ROOT']]['porttree'].dbapi
         self.root_config = self.trees[self.settings['ROOT']]['root_config']
 
+        # doing all the changes to settings
         self.settings.unlock()
+
+        # we don't want interactive ebuilds
         self.settings["ACCEPT_PROPERTIES"] = "-interactive"
         self.settings.backup_changes("ACCEPT_PROPERTIES")
+
+        # do not log with mod_echo (cleanly prevent some outputs)
+        def filter_echo(x): return x != 'echo'
+        elogs = self.settings["PORTAGE_ELOG_SYSTEM"].split()
+        elogs = filter(filter_echo, elogs)
+        self.settings["PORTAGE_ELOG_SYSTEM"] = ' '.join(elogs)
+        self.settings.backup_changes("PORTAGE_ELOG_SYSTEM")
+
+        # finally, regenerate settings and lock them again
         self.settings.regenerate()
         self.settings.lock()
 
+
 class PackageKitPortageBackend(PackageKitBaseBackend):
 
     def __init__(self, args):
@@ -291,15 +304,6 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
         self.orig_out = None
         self.orig_err = None
 
-        # do not log with mod_echo
-        '''
-        def filter_echo(x): return x != 'echo'
-
-        elogs = self.pvar.settings["PORTAGE_ELOG_SYSTEM"].split()
-        elogs = filter(filter_echo, elogs)
-        self.pvar.settings["PORTAGE_ELOG_SYSTEM"] = ' '.join(elogs)
-        '''
-
     def get_ebuild_settings(self, cpv, metadata):
         settings = portage.config(clone=self.pvar.settings)
         settings.setcpv(cpv, mydb=metadata)
@@ -1183,7 +1187,6 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
         # even if it happens to be needed in Gentoo but probably not this API
 
         # TODO: manage errors
-        # TODO: manage config file updates
 
         self.status(STATUS_RUNNING)
         self.allow_cancel(False)
@@ -1219,18 +1222,6 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
         myparams = _emerge.create_depgraph_params.create_depgraph_params(
                 myopts, "")
 
-        # do not log with mod_echo
-        '''
-        def filter_echo(x): return x != 'echo'
-
-        elogs = settings["PORTAGE_ELOG_SYSTEM"].split()
-        elogs = filter(filter_echo, elogs)
-        settings.unlock()
-        settings["PORTAGE_ELOG_SYSTEM"] = ' '.join(elogs)
-        settings.backup_changes("PORTAGE_ELOG_SYSTEM")
-        settings.regenerate()
-        '''
-
         self.status(STATUS_DEP_RESOLVE)
 
         depgraph = _emerge.depgraph.depgraph(self.pvar.settings,
commit 0863ceaeb2e4581033d3f91f4637a8a2415a6dd8
Author: Richard Hughes <richard at hughsie.com>
Date:   Wed Aug 19 15:16:55 2009 +0100

    Trivial whitespace nit

diff --git a/configure.ac b/configure.ac
index 73901ca..ae0c40b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -258,7 +258,7 @@ dnl ---------------------------------------------------------------------------
 dnl - Service Packs (default enabled)
 dnl ---------------------------------------------------------------------------
 AC_ARG_ENABLE(service-packs, AC_HELP_STRING([--disable-service-packs],
-							[Disable Service Packs support]), enable_servicepacks=$enableval)
+		[Disable Service Packs support]), enable_servicepacks=$enableval)
 if test x$enable_servicepacks != xno; then
 	AC_CHECK_HEADERS(archive.h,
 			 HAVE_ARCHIVE_H="yes",
@@ -292,8 +292,8 @@ dnl ---------------------------------------------------------------------------
 dnl - NetworkManager (default enabled)
 dnl ---------------------------------------------------------------------------
 AC_ARG_ENABLE(networkmanager, AC_HELP_STRING([--disable-networkmanager],
-							[Disable NetworkManager support]),
-							enable_networkmanager=$enableval)
+		[Disable NetworkManager support]),
+		enable_networkmanager=$enableval)
 if test x$enable_networkmanager != xno; then
 	PKG_CHECK_MODULES(LIBNM, libnm_glib >= $LIBNM_GLIB_REQUIRED, PK_BUILD_NETWORKMANAGER="yes", PK_BUILD_NETWORKMANAGER="no")
 	if test "x$PK_BUILD_NETWORKMANAGER" = "xyes"; then
@@ -316,7 +316,7 @@ dnl ---------------------------------------------------------------------------
 dnl - ConnMan (default enabled)
 dnl ---------------------------------------------------------------------------
 AC_ARG_ENABLE(connman, AC_HELP_STRING([--disable-connman],
-							[Disable ConnMan support]), enable_connman=$enableval)
+		[Disable ConnMan support]), enable_connman=$enableval)
 if test x$enable_connman != xno; then
 	PKG_CHECK_MODULES(CONNMAN, connman, PK_BUILD_CONNMAN="yes", PK_BUILD_CONNMAN="no")
 	if test "x$PK_BUILD_CONNMAN" = "xyes"; then
@@ -344,7 +344,7 @@ dnl ---------------------------------------------------------------------------
 dnl - Generate man pages ? (default enabled)
 dnl ---------------------------------------------------------------------------
 AC_ARG_ENABLE(man_pages, AC_HELP_STRING([--disable-man-pages],
-							[Disable man pages generation]), enable_man_pages=$enableval)
+		[Disable man pages generation]), enable_man_pages=$enableval)
 if test x$enable_man_pages != xno; then
 	AC_PATH_PROG(XSLTPROC, xsltproc, no)
 	if test x$enable_man_pages = xyes; then
commit 51d6daf62082fe18103718c04c3ed80f9dc1c7ab
Author: Adrien Bustany <madcat at mymadcat.com>
Date:   Wed Aug 19 09:11:38 2009 -0400

    PackageKit-Qt : fix wrong signal connection in transaction.cpp

diff --git a/lib/packagekit-qt/src/transaction.cpp b/lib/packagekit-qt/src/transaction.cpp
index 3657bb5..c5ac32f 100644
--- a/lib/packagekit-qt/src/transaction.cpp
+++ b/lib/packagekit-qt/src/transaction.cpp
@@ -41,7 +41,7 @@ Transaction::Transaction(const QString& tid, Client* parent) : QObject(parent)
 
 	connect(d->p, SIGNAL(AllowCancel(bool)), this, SIGNAL(allowCancelChanged(bool)));
 	connect(d->p, SIGNAL(Category(const QString&, const QString&, const QString&, const QString&, const QString&)), this, SIGNAL(category(const QString&, const QString&, const QString&, const QString&, const QString&)));
-	connect(d->p, SIGNAL(Destroy()), d, SLOT(destroy()));
+	connect(d->p, SIGNAL(Destroy()), this, SIGNAL(destroy()));
 	connect(d->p, SIGNAL(Details(const QString&, const QString&, const QString&, const QString&, const QString&, qulonglong)), d, SLOT(details(const QString&, const QString&, const QString&, const QString&, const QString&, qulonglong)));
 	connect(d->p, SIGNAL(DistroUpgrade(const QString&, const QString&, const QString&)), d, SLOT(distroUpgrade(const QString&, const QString&, const QString&)));
 	connect(d->p, SIGNAL(ErrorCode(const QString&, const QString&)), d, SLOT(errorCode(const QString&, const QString&)));
commit ba1065ad28c5cd7c23bfec83d9eed8a2417df8f4
Merge: 3147556... eb37fd2...
Author: Mounir Lamouri (volkmar) <mounir.lamouri at gmail.com>
Date:   Tue Aug 18 19:44:34 2009 +0200

    Merge branch 'master' of git+ssh://volkmar@git.packagekit.org/srv/git/PackageKit

commit 314755610b6ff60d546fc8b20a592ef3f56e9cf6
Author: Mounir Lamouri (volkmar) <mounir.lamouri at gmail.com>
Date:   Tue Aug 18 19:39:54 2009 +0200

    packagekit-{glib,qt}: add
    ERROR_PACKAGE_FAILED_TO_{CONFIGURE,BUILD,INSTALL}

diff --git a/lib/packagekit-glib/pk-enum.c b/lib/packagekit-glib/pk-enum.c
index 7f564b6..525f69d 100644
--- a/lib/packagekit-glib/pk-enum.c
+++ b/lib/packagekit-glib/pk-enum.c
@@ -185,6 +185,9 @@ static const PkEnumMatch enum_error[] = {
 	{PK_ERROR_ENUM_CANNOT_GET_REQUIRES, "cannot-get-requires"},
 	{PK_ERROR_ENUM_CANNOT_DISABLE_REPOSITORY, "cannot-disable-repository"},
 	{PK_ERROR_ENUM_RESTRICTED_DOWNLOAD, "restricted-download"},
+	{PK_ERROR_ENUM_PACKAGE_FAILED_TO_CONFIGURE, "package-failed-to-configure"},
+	{PK_ERROR_ENUM_PACKAGE_FAILED_TO_BUILD, "package-failed-to-build"},
+	{PK_ERROR_ENUM_PACKAGE_FAILED_TO_INSTALL, "package-failed-to-install"},
 	{0, NULL}
 };
 
diff --git a/lib/packagekit-glib/pk-enum.h b/lib/packagekit-glib/pk-enum.h
index 46d4e92..3303c02 100644
--- a/lib/packagekit-glib/pk-enum.h
+++ b/lib/packagekit-glib/pk-enum.h
@@ -303,6 +303,9 @@ typedef enum {
 	PK_ERROR_ENUM_CANNOT_GET_REQUIRES,
 	PK_ERROR_ENUM_CANNOT_DISABLE_REPOSITORY,
 	PK_ERROR_ENUM_RESTRICTED_DOWNLOAD,
+	PK_ERROR_ENUM_PACKAGE_FAILED_TO_CONFIGURE,
+	PK_ERROR_ENUM_PACKAGE_FAILED_TO_BUILD,
+	PK_ERROR_ENUM_PACKAGE_FAILED_TO_INSTALL,
 	PK_ERROR_ENUM_UNKNOWN
 } PkErrorCodeEnum;
 
diff --git a/lib/packagekit-qt/src/client.h b/lib/packagekit-qt/src/client.h
index 7197be0..081d775 100644
--- a/lib/packagekit-qt/src/client.h
+++ b/lib/packagekit-qt/src/client.h
@@ -377,6 +377,9 @@ public:
 		ErrorCannotGetRequires,
 		ErrorCannotDisableRepository,
 		ErrorRestrictedDownload,
+		ErrorPackageFailedToConfigure,
+		ErrorPackageFailedToBuild,
+		ErrorPackageFailedToInstall,
 		UnknownErrorType
 	} ErrorType;
 
commit eb37fd24dca94f038c5b4b1315dbe55438c6c3e2
Author: beckerde <beckerde at fedoraproject.org>
Date:   Tue Aug 18 14:19:45 2009 +0000

    Sending translation for Spanish

diff --git a/po/es.po b/po/es.po
index 4aad242..f1e15b2 100644
--- a/po/es.po
+++ b/po/es.po
@@ -9,14 +9,15 @@ msgid ""
 msgstr ""
 "Project-Id-Version: packagekit\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-08-03 14:45+0000\n"
-"PO-Revision-Date: 2009-08-03 11:51-0300\n"
-"Last-Translator: Héctor Daniel Cabrera <h.daniel.cabrera at gmail.com>\n"
+"POT-Creation-Date: 2009-08-18 08:39+0000\n"
+"PO-Revision-Date: 2009-08-18 11:26-0300\n"
+"Last-Translator: Domingo Becker <domingobecker at gmail.com>\n"
 "Language-Team: Fedora Spanish <fedora-trans-es at redhat.com>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "X-Poedit-Language: Spanish\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
 #. TRANSLATORS: this is an atomic transaction
 #: ../client/pk-console.c:231
@@ -141,11 +142,10 @@ msgstr "Detalles acerca de la actualización:"
 #. TRANSLATORS: title, the names of the packages that the method is processing
 #: ../client/pk-console.c:341
 #: ../src/pk-polkit-action-lookup.c:356
-#, fuzzy
 msgid "Package"
 msgid_plural "Packages"
 msgstr[0] "Paquete"
-msgstr[1] "Paquete"
+msgstr[1] "Paquetes"
 
 #. TRANSLATORS: details about the update, any packages that this update updates
 #: ../client/pk-console.c:344
@@ -545,7 +545,7 @@ msgstr "Subcomandos:"
 #: ../client/pk-console.c:1781
 #: ../client/pk-generate-pack.c:185
 #: ../client/pk-monitor.c:128
-#: ../contrib/command-not-found/pk-command-not-found.c:610
+#: ../contrib/command-not-found/pk-command-not-found.c:616
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:550
 #: ../src/pk-main.c:211
 msgid "Show extra debugging information"
@@ -870,71 +870,71 @@ msgid "Loading list of packages."
 msgstr "Cargando listas de paquetes"
 
 #. TRANSLATORS: we failed to find the package, this shouldn't happen
-#: ../contrib/command-not-found/pk-command-not-found.c:414
+#: ../contrib/command-not-found/pk-command-not-found.c:420
 msgid "Failed to search for file"
 msgstr "Falló al buscar el archivo"
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:551
+#: ../contrib/command-not-found/pk-command-not-found.c:557
 msgid "Failed to launch:"
 msgstr "Falló al iniciar:"
 
 #. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/command-not-found/pk-command-not-found.c:626
+#: ../contrib/command-not-found/pk-command-not-found.c:632
 msgid "PackageKit Command Not Found"
 msgstr "No se encontró el comando PackageKit"
 
 #. TRANSLATORS: the prefix of all the output telling the user why it's not executing
-#: ../contrib/command-not-found/pk-command-not-found.c:652
+#: ../contrib/command-not-found/pk-command-not-found.c:658
 msgid "Command not found."
 msgstr "Comando no encontrado."
 
 #. TRANSLATORS: tell the user what we think the command is
-#: ../contrib/command-not-found/pk-command-not-found.c:659
+#: ../contrib/command-not-found/pk-command-not-found.c:665
 msgid "Similar command is:"
 msgstr "Un comando similar es:"
 
 #. TRANSLATORS: Ask the user if we should run the similar command
-#: ../contrib/command-not-found/pk-command-not-found.c:668
+#: ../contrib/command-not-found/pk-command-not-found.c:674
 msgid "Run similar command:"
 msgstr "Ejecutar un comando similar:"
 
 #. TRANSLATORS: show the user a list of commands that they could have meant
 #. TRANSLATORS: show the user a list of commands we could run
-#: ../contrib/command-not-found/pk-command-not-found.c:680
-#: ../contrib/command-not-found/pk-command-not-found.c:689
+#: ../contrib/command-not-found/pk-command-not-found.c:686
+#: ../contrib/command-not-found/pk-command-not-found.c:695
 msgid "Similar commands are:"
 msgstr "Los comandos similares son:"
 
 #. TRANSLATORS: ask the user to choose a file to run
-#: ../contrib/command-not-found/pk-command-not-found.c:696
+#: ../contrib/command-not-found/pk-command-not-found.c:702
 msgid "Please choose a command to run"
 msgstr "Elija un comando para ejecutar"
 
 #. TRANSLATORS: tell the user what package provides the command
-#: ../contrib/command-not-found/pk-command-not-found.c:715
+#: ../contrib/command-not-found/pk-command-not-found.c:721
 msgid "The package providing this file is:"
 msgstr "El paquete que proporciona este archivo es:"
 
 #. TRANSLATORS: as the user if we want to install a package to provide the command
-#: ../contrib/command-not-found/pk-command-not-found.c:720
+#: ../contrib/command-not-found/pk-command-not-found.c:726
 #, c-format
 msgid "Install package '%s' to provide command '%s'?"
 msgstr "¿Instalar el paquete «%s» para proporcionar el comando «%s»?"
 
 #. TRANSLATORS: Show the user a list of packages that provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:741
+#: ../contrib/command-not-found/pk-command-not-found.c:747
 msgid "Packages providing this file are:"
 msgstr "Los paquetes que proporcionan este archivo son:"
 
 #. TRANSLATORS: Show the user a list of packages that they can install to provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:750
+#: ../contrib/command-not-found/pk-command-not-found.c:756
 msgid "Suitable packages are:"
 msgstr "Los posibles paquetes son:"
 
 #. get selection
 #. TRANSLATORS: ask the user to choose a file to install
-#: ../contrib/command-not-found/pk-command-not-found.c:758
+#: ../contrib/command-not-found/pk-command-not-found.c:764
 msgid "Please choose a package to install"
 msgstr "Elija un paquete para instalar"
 
commit dda13829aa98d7aaeadac3c1d00416e8ab1a172e
Author: Richard Hughes <richard at hughsie.com>
Date:   Tue Aug 18 11:36:47 2009 +0100

    Make the PolicyKit dialog title be on one line

diff --git a/src/pk-polkit-action-lookup.c b/src/pk-polkit-action-lookup.c
index 219142d..24dd656 100644
--- a/src/pk-polkit-action-lookup.c
+++ b/src/pk-polkit-action-lookup.c
@@ -174,10 +174,6 @@ pk_action_lookup_get_message (PolkitBackendActionLookup *lookup, const gchar *ac
 				    N_("Do not update these packages unless you are sure it is safe to do so."),
 				    len);
 		g_string_append (string, text);
-		g_string_append (string, "\n\n");
-
-		/* TRANSLATORS: warn the user that all bets are off */
-		g_string_append (string, g_dgettext (GETTEXT_PACKAGE, N_("Malicious software can damage your computer or cause other harm.")));
 
 		message = g_string_free (string, FALSE);
 		goto out;
commit 07c4eda4ad36b9fd4af78ae2b9282f566205ddd9
Author: Richard Hughes <richard at hughsie.com>
Date:   Tue Aug 18 10:27:35 2009 +0100

    Add a Listaller screenshot

diff --git a/docs/html/img/listallmgr-1.png b/docs/html/img/listallmgr-1.png
new file mode 100644
index 0000000..19a25a6
Binary files /dev/null and b/docs/html/img/listallmgr-1.png differ
diff --git a/docs/html/img/thumbnails/listallmgr-1.png b/docs/html/img/thumbnails/listallmgr-1.png
new file mode 100644
index 0000000..37270b8
Binary files /dev/null and b/docs/html/img/thumbnails/listallmgr-1.png differ
diff --git a/docs/html/pk-screenshots.html b/docs/html/pk-screenshots.html
index c38a2b5..1cec01b 100644
--- a/docs/html/pk-screenshots.html
+++ b/docs/html/pk-screenshots.html
@@ -204,22 +204,26 @@
   <center><a href="img/kpk-settings.png"><img src="img/thumbnails/kpk-settings.png" alt=""/></a></center>
   <p class="caption">Update settings</p>
 </td>
-<td width="300">
-  <center><a href="img/pk-opensuse-updater.png"><img src="img/thumbnails/pk-opensuse-updater.png" alt=""/></a></center>
-  <p class="caption">OpenSuse Updater</p>
-</td>
 </tr>
 </table>
 </center>
 
-<h1><a name="moko">OpenMoko Screenshots</a></h1>
+<h1><a name="moko">Other Screenshots</a></h1>
 
 <center>
 <table cellpadding="5px">
 <tr>
 <td width="300">
+  <center><a href="img/pk-opensuse-updater.png"><img src="img/thumbnails/pk-opensuse-updater.png" alt=""/></a></center>
+  <p class="caption">OpenSuse Updater</p>
+</td>
+<td width="300">
   <center><a href="img/assassin.png"><img src="img/thumbnails/assassin.png" alt=""/></a></center>
-  <p class="caption">Assassin</p>
+  <p class="caption">OpenMoko Assassin</p>
+</td>
+<td width="300">
+  <center><a href="img/listallmgr-1.png"><img src="img/thumbnails/listallmgr-1.png" alt=""/></a></center>
+  <p class="caption">The main add/remove <a href="http://listaller.nlinux.org/">Listaller</a> GUI</p>
 </td>
 </tr>
 </table>
diff --git a/docs/html/thumbnail.sh b/docs/html/thumbnail.sh
index 5eb0612..3ecd44d 100755
--- a/docs/html/thumbnail.sh
+++ b/docs/html/thumbnail.sh
@@ -1,6 +1,6 @@
 # rethumbnail the images
 cd img
-images="gpk-*.png kpk-*.png pk-*.png assassin.png"
+images="gpk-*.png kpk-*.png pk-*.png assassin.png list*.png"
 for image in $images; do
 	echo "thumbnailing $image"
 	convert -geometry 300x170 $image thumbnails/$image
commit a3ebf0e0a5a9699963825c328d9a8b214f24f411
Author: Richard Hughes <richard at hughsie.com>
Date:   Tue Aug 18 10:11:57 2009 +0100

    Update the status matrix for yum as it can now filter by arch

diff --git a/docs/html/pk-matrix.html b/docs/html/pk-matrix.html
index 8cf6e06..f138dc1 100644
--- a/docs/html/pk-matrix.html
+++ b/docs/html/pk-matrix.html
@@ -489,8 +489,8 @@
 </tr>
 <tr>
 <td><b>Installed</b></td>
-<td><img src="img/status-good.png" alt="[no]"/></td><!-- apt -->
-<td><img src="img/status-good.png" alt="[no]"/></td><!-- alpm -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- apt -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- alpm -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- box -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- conary -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- opkg -->
@@ -505,7 +505,7 @@
 </tr>
 <tr>
 <td><b>Development</b></td>
-<td><img src="img/status-good.png" alt="[no]"/></td><!-- apt -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- apt -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- alpm -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- box -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- conary -->
@@ -521,7 +521,7 @@
 </tr>
 <tr>
 <td><b>GUI</b></td>
-<td><img src="img/status-good.png" alt="[no]"/></td><!-- apt -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- apt -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- alpm -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- box -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- conary -->
@@ -628,7 +628,7 @@
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- ports -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- smart -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- urpmi -->
-<td><img src="img/status-bad.png" alt="[no]"/></td><!-- yum -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- yum -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- zypp -->
 </tr>
 </table>
commit de0e5059ed48b59f984b10bc15992b055df16c2e
Author: Mounir Lamouri (volkmar) <mounir.lamouri at gmail.com>
Date:   Mon Aug 17 21:05:21 2009 +0200

    website: some fixes in portage column

diff --git a/docs/html/pk-matrix.html b/docs/html/pk-matrix.html
index 06cff02..8cf6e06 100644
--- a/docs/html/pk-matrix.html
+++ b/docs/html/pk-matrix.html
@@ -300,7 +300,7 @@
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- opkg -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- pisi -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- poldek -->
-<td><img src="img/status-bad.png" alt="[yes]"/></td><!-- portage -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- portage -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- ports -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- smart -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- urpmi -->
@@ -460,7 +460,7 @@
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- opkg -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- pisi -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- poldek -->
-<td><img src="img/status-good.png" alt="[no]"/></td><!-- portage -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- portage -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- ports -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- smart -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- urpmi -->
@@ -512,7 +512,7 @@
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- opkg -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pisi -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- poldek -->
-<td><img src="img/status-good.png" alt="[no]"/></td><!-- portage -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- portage -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- ports -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- smart -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- urpmi -->
@@ -528,7 +528,7 @@
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- opkg -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pisi -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- poldek -->
-<td><img src="img/status-good.png" alt="[no]"/></td><!-- portage -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- portage -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- ports -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- smart -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- urpmi -->
@@ -544,7 +544,7 @@
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- opkg -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- pisi -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- poldek -->
-<td><img src="img/status-bad.png" alt="[yes]"/></td><!-- portage -->
+<td><img src="img/status-yes.png" alt="[yes]"/></td><!-- portage -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- ports -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- smart -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- urpmi -->
commit bb642c69b60388df96205212d3d938cf94c03de3
Author: Richard Hughes <richard at hughsie.com>
Date:   Mon Aug 17 17:44:44 2009 +0100

    Fix compile without PolicyKit installed

diff --git a/src/pk-engine.c b/src/pk-engine.c
index 2fec730..c77d5dd 100644
--- a/src/pk-engine.c
+++ b/src/pk-engine.c
@@ -785,7 +785,7 @@ out:
 	g_free (sender);
 	return authorize;
 #else
-	return AUTORIZE_RESULT_YES;
+	return PK_AUTHORIZE_ENUM_YES;
 #endif
 }
 
commit 0aee8638f17202f10f8cd9fd7419bfacbf780ac7
Merge: 75730ef... de2b77d...
Author: Richard Hughes <richard at hughsie.com>
Date:   Mon Aug 17 16:56:10 2009 +0100

    Merge branch 'can-authorize'

commit 75730efc4b5db6ee7d372a86a3a40620c1203b10
Merge: bfe11da... 5f75a76...
Author: Richard Hughes <richard at hughsie.com>
Date:   Mon Aug 17 16:54:12 2009 +0100

    Merge branch 'master' of git+ssh://hughsie@git.packagekit.org/srv/git/PackageKit

commit de2b77d801017095dd7664e5b4fcff091c277a89
Author: Richard Hughes <richard at hughsie.com>
Date:   Mon Aug 17 16:53:35 2009 +0100

    GLib: Add pk_control_can_authorize() as a client helper

diff --git a/lib/packagekit-glib/pk-control.c b/lib/packagekit-glib/pk-control.c
index bdc3d17..68b394f 100644
--- a/lib/packagekit-glib/pk-control.c
+++ b/lib/packagekit-glib/pk-control.c
@@ -547,6 +547,56 @@ pk_control_get_time_since_action (PkControl *control, PkRoleEnum role, guint *se
 }
 
 /**
+ * pk_control_can_authorize:
+ * @control: a valid #PkControl instance
+ * @action_id: the action ID, e.g. "org.freedesktop.packagekit.system-update"
+ * @error: a %GError to put the error code and message in, or %NULL
+ *
+ * We may want to know before we run a method if we are going to be denied,
+ * accepted or challenged for authentication.
+ *
+ * Return value: the %PkAuthorizeEnum or %PK_AUTHORIZE_ENUM_UNKNOWN if the method failed
+ */
+PkAuthorizeEnum
+pk_control_can_authorize (PkControl *control, const gchar *action_id, GError **error)
+{
+	gboolean ret = FALSE;
+	GError *error_local = NULL;
+	gchar *authorize = NULL;
+	PkAuthorizeEnum retval = PK_AUTHORIZE_ENUM_UNKNOWN;
+
+	g_return_val_if_fail (PK_IS_CONTROL (control), PK_AUTHORIZE_ENUM_UNKNOWN);
+	g_return_val_if_fail (error == NULL || *error == NULL, PK_AUTHORIZE_ENUM_UNKNOWN);
+
+	/* check to see if we have a valid proxy */
+	if (control->priv->proxy == NULL) {
+		pk_control_error_set (error, PK_CONTROL_ERROR_FAILED, "No proxy for manager");
+		goto out;
+	}
+	ret = dbus_g_proxy_call (control->priv->proxy, "CanAuthorize", &error_local,
+				 G_TYPE_STRING, action_id,
+				 G_TYPE_INVALID,
+				 G_TYPE_STRING, &authorize,
+				 G_TYPE_INVALID);
+	if (!ret) {
+		egg_warning ("CanAuthorize failed :%s", error_local->message);
+		pk_control_error_set (error, PK_CONTROL_ERROR_FAILED, error_local->message);
+		g_error_free (error_local);
+		goto out;
+	}
+
+	/* convert to enum */
+	retval = pk_authorize_type_enum_from_text (authorize);
+	if (retval == PK_AUTHORIZE_ENUM_UNKNOWN) {
+		pk_control_error_set (error, PK_CONTROL_ERROR_FAILED, "unexpected return value");
+		goto out;
+	}
+out:
+	g_free (authorize);
+	return retval;
+}
+
+/**
  * pk_control_set_locale:
  * @error: a %GError to put the error code and message in, or %NULL
  **/
@@ -1202,6 +1252,7 @@ pk_control_test (EggTest *test)
 	PkControl *control;
 	PkConnection *connection;
 	guint version;
+	PkAuthorizeEnum authorize;
 
 	if (!egg_test_start (test, "PkControl"))
 		return;
@@ -1235,6 +1286,26 @@ pk_control_test (EggTest *test)
 	g_object_get (control, "version-micro", &version, NULL);
 	egg_test_assert (test, (version == PK_MICRO_VERSION));
 
+	/************************************************************/
+	egg_test_title (test, "can authorize invalid prefix");
+	authorize = pk_control_can_authorize (control, "org.freedesktop.devicekit.power.system-update", NULL);
+	egg_test_assert (test, (authorize == PK_AUTHORIZE_ENUM_UNKNOWN));
+
+	/************************************************************/
+	egg_test_title (test, "can authorize unknown method");
+	authorize = pk_control_can_authorize (control, "org.freedesktop.packagekit.system-x-update", NULL);
+	egg_test_assert (test, (authorize == PK_AUTHORIZE_ENUM_UNKNOWN));
+
+	/************************************************************/
+	egg_test_title (test, "can authorize yes method");
+	authorize = pk_control_can_authorize (control, "org.freedesktop.packagekit.system-sources-refresh", NULL);
+	egg_test_assert (test, (authorize == PK_AUTHORIZE_ENUM_YES));
+
+	/************************************************************/
+	egg_test_title (test, "can authorize interactive method");
+	authorize = pk_control_can_authorize (control, "org.freedesktop.packagekit.system-rollback", NULL);
+	egg_test_assert (test, (authorize == PK_AUTHORIZE_ENUM_INTERACTIVE));
+
 	g_object_unref (control);
 out:
 	egg_test_end (test);
diff --git a/lib/packagekit-glib/pk-control.h b/lib/packagekit-glib/pk-control.h
index d99eb74..393ad06 100644
--- a/lib/packagekit-glib/pk-control.h
+++ b/lib/packagekit-glib/pk-control.h
@@ -120,6 +120,9 @@ gboolean	 pk_control_get_time_since_action	(PkControl	*control,
 							 GError		**error);
 gboolean	 pk_control_transaction_list_print	(PkControl	*control);
 const gchar	**pk_control_transaction_list_get	(PkControl	*control);
+PkAuthorizeEnum	 pk_control_can_authorize		(PkControl	*control,
+							 const gchar	*action_id,
+							 GError		**error);
 
 G_END_DECLS
 
commit 5f75a7655481f657d69e3d962d441a1cd8b9331d
Author: Mounir Lamouri (volkmar) <mounir.lamouri at gmail.com>
Date:   Mon Aug 17 17:47:08 2009 +0200

    portage: show elog messages when updating packages or system and when
    removing packages

diff --git a/backends/portage/portageBackend.py b/backends/portage/portageBackend.py
index 08c8bc7..4918d06 100755
--- a/backends/portage/portageBackend.py
+++ b/backends/portage/portageBackend.py
@@ -1246,7 +1246,7 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
 
         self.status(STATUS_INSTALL)
 
-        # 
+        # get elog messages
         portage.elog.add_listener(self.elog_listener)
 
         try:
@@ -1259,6 +1259,7 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
         finally:
             self.unblock_output()
 
+        # show elog messages and clean
         portage.elog.remove_listener(self.elog_listener)
         for msg in self._elog_messages:
             # TODO: use specific message ?
@@ -1380,6 +1381,9 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
         for p in packages:
             favorites.append('=' + p.cpv)
 
+        # get elog messages
+        portage.elog.add_listener(self.elog_listener)
+
         # now, we can remove
         try:
             self.block_output()
@@ -1390,6 +1394,13 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
         finally:
             self.unblock_output()
 
+        # show elog messages and clean
+        portage.elog.remove_listener(self.elog_listener)
+        for msg in self._elog_messages:
+            # TODO: use specific message ?
+            self.message(MESSAGE_UNKNOWN, msg)
+        self._elog_messages = []
+
     def repo_enable(self, repoid, enable):
         # NOTES: use layman API >= 1.2.3
         self.status(STATUS_INFO)
@@ -1687,6 +1698,9 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
 
         self.status(STATUS_INSTALL)
 
+        # get elog messages
+        portage.elog.add_listener(self.elog_listener)
+
         try:
             self.block_output()
             # compiling/installing
@@ -1697,6 +1711,13 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
         finally:
             self.unblock_output()
 
+        # show elog messages and clean
+        portage.elog.remove_listener(self.elog_listener)
+        for msg in self._elog_messages:
+            # TODO: use specific message ?
+            self.message(MESSAGE_UNKNOWN, msg)
+        self._elog_messages = []
+
         self.send_configuration_file_message()
 
     def update_system(self, only_trusted):
@@ -1734,6 +1755,9 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
 
         self.status(STATUS_INSTALL)
 
+        # get elog messages
+        portage.elog.add_listener(self.elog_listener)
+
         try:
             self.block_output()
             # compiling/installing
@@ -1744,6 +1768,13 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
         finally:
             self.unblock_output()
 
+        # show elog messages and clean
+        portage.elog.remove_listener(self.elog_listener)
+        for msg in self._elog_messages:
+            # TODO: use specific message ?
+            self.message(MESSAGE_UNKNOWN, msg)
+        self._elog_messages = []
+
         self.send_configuration_file_message()
 
 def main():
commit a13b489b7e8f61278d45c861cec06752da151d03
Author: Richard Hughes <richard at hughsie.com>
Date:   Mon Aug 17 16:31:43 2009 +0100

    Use a more specific error when we are checking authorisation

diff --git a/src/pk-engine.c b/src/pk-engine.c
index 7edf985..2fec730 100644
--- a/src/pk-engine.c
+++ b/src/pk-engine.c
@@ -153,6 +153,7 @@ pk_engine_error_get_type (void)
 			ENUM_ENTRY (PK_ENGINE_ERROR_CANNOT_SET_PROXY, "CannotSetProxy"),
 			ENUM_ENTRY (PK_ENGINE_ERROR_NOT_SUPPORTED, "NotSupported"),
 			ENUM_ENTRY (PK_ENGINE_ERROR_CANNOT_ALLOCATE_TID, "CannotAllocateTid"),
+			ENUM_ENTRY (PK_ENGINE_ERROR_CANNOT_CHECK_AUTH, "CannotCheckAuth"),
 			{ 0, NULL, NULL }
 		};
 		etype = g_enum_register_static ("PkEngineError", values);
@@ -804,7 +805,7 @@ pk_engine_can_authorize (PkEngine *engine, const gchar *action_id, DBusGMethodIn
 	/* check is an action id */
 	ret = g_str_has_prefix (action_id, "org.freedesktop.packagekit.");
 	if (!ret) {
-		error = g_error_new (PK_ENGINE_ERROR, PK_ENGINE_ERROR_INVALID_STATE,
+		error = g_error_new (PK_ENGINE_ERROR, PK_ENGINE_ERROR_CANNOT_CHECK_AUTH,
 				     "action_id '%s' has the wrong prefix", action_id);
 		dbus_g_method_return_error (context, error);
 		return;
@@ -813,7 +814,7 @@ pk_engine_can_authorize (PkEngine *engine, const gchar *action_id, DBusGMethodIn
 	/* can we do this action? */
 	result_enum = pk_engine_can_authorize_action_id (engine, action_id, context, &error_local);
 	if (result_enum == PK_AUTHORIZE_ENUM_UNKNOWN) {
-		error = g_error_new (PK_ENGINE_ERROR, PK_ENGINE_ERROR_INVALID_STATE,
+		error = g_error_new (PK_ENGINE_ERROR, PK_ENGINE_ERROR_CANNOT_CHECK_AUTH,
 				     "failed to check authorisation %s: %s", action_id, error_local->message);
 		g_error_free (error_local);
 		dbus_g_method_return_error (context, error);
diff --git a/src/pk-engine.h b/src/pk-engine.h
index 558d606..7dfa23a 100644
--- a/src/pk-engine.h
+++ b/src/pk-engine.h
@@ -61,6 +61,7 @@ typedef enum
 	PK_ENGINE_ERROR_CANNOT_SET_PROXY,
 	PK_ENGINE_ERROR_NOT_SUPPORTED,
 	PK_ENGINE_ERROR_CANNOT_ALLOCATE_TID,
+	PK_ENGINE_ERROR_CANNOT_CHECK_AUTH,
 	PK_ENGINE_ERROR_LAST
 } PkEngineError;
 
commit a3735439a4c4bedfd48343bed1fccb034bef07ff
Author: Mounir Lamouri (volkmar) <mounir.lamouri at gmail.com>
Date:   Mon Aug 17 16:35:07 2009 +0200

    portage: use restricted-download error instead of download-failed for
    fetch restriction

diff --git a/backends/portage/portageBackend.py b/backends/portage/portageBackend.py
index 64321b6..08c8bc7 100755
--- a/backends/portage/portageBackend.py
+++ b/backends/portage/portageBackend.py
@@ -392,7 +392,7 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
                     message += ";Please, download manually the followonig file(s):"
                     for x in files:
                         message += ";- %s then copy it to %s" % (' '.join(x[1]), x[0])
-                    self.error(ERROR_PACKAGE_DOWNLOAD_FAILED, message)
+                    self.error(ERROR_RESTRICTED_DOWNLOAD, message)
 
     def elog_listener(self, settings, key, logentries, fulltext):
         '''
commit 344d45876f5c4d1170755a6c11a80d8a384f63a1
Author: Mounir Lamouri (volkmar) <mounir.lamouri at gmail.com>
Date:   Mon Aug 17 16:34:49 2009 +0200

    packagekit-qt: add restricted-download error

diff --git a/lib/packagekit-qt/src/client.h b/lib/packagekit-qt/src/client.h
index a84a500..7197be0 100644
--- a/lib/packagekit-qt/src/client.h
+++ b/lib/packagekit-qt/src/client.h
@@ -376,6 +376,7 @@ public:
 		ErrorCannotGetFilelist,
 		ErrorCannotGetRequires,
 		ErrorCannotDisableRepository,
+		ErrorRestrictedDownload,
 		UnknownErrorType
 	} ErrorType;
 
commit cdfed09ba08ae1b43641c81e9a92ce57d4ae1a71
Author: Mounir Lamouri (volkmar) <mounir.lamouri at gmail.com>
Date:   Mon Aug 17 16:32:16 2009 +0200

    packagekit-glib: add restricted-download error

diff --git a/lib/packagekit-glib/pk-enum.c b/lib/packagekit-glib/pk-enum.c
index ba2f2bc..6455b62 100644
--- a/lib/packagekit-glib/pk-enum.c
+++ b/lib/packagekit-glib/pk-enum.c
@@ -184,6 +184,7 @@ static const PkEnumMatch enum_error[] = {
 	{PK_ERROR_ENUM_CANNOT_GET_FILELIST, "cannot-get-filelist"},
 	{PK_ERROR_ENUM_CANNOT_GET_REQUIRES, "cannot-get-requires"},
 	{PK_ERROR_ENUM_CANNOT_DISABLE_REPOSITORY, "cannot-disable-repository"},
+	{PK_ERROR_ENUM_RESTRICTED_DOWNLOAD, "restricted-download"},
 	{0, NULL}
 };
 
diff --git a/lib/packagekit-glib/pk-enum.h b/lib/packagekit-glib/pk-enum.h
index 7f9e283..7bd703e 100644
--- a/lib/packagekit-glib/pk-enum.h
+++ b/lib/packagekit-glib/pk-enum.h
@@ -302,6 +302,7 @@ typedef enum {
 	PK_ERROR_ENUM_CANNOT_GET_FILELIST,
 	PK_ERROR_ENUM_CANNOT_GET_REQUIRES,
 	PK_ERROR_ENUM_CANNOT_DISABLE_REPOSITORY,
+	PK_ERROR_ENUM_RESTRICTED_DOWNLOAD,
 	PK_ERROR_ENUM_UNKNOWN
 } PkErrorCodeEnum;
 
commit b43041fd7701585c85dbebd2a6a6d5ea2c688a3e
Merge: 58d0b80... e66fb75...
Author: Mounir Lamouri (volkmar) <mounir.lamouri at gmail.com>
Date:   Mon Aug 17 16:13:46 2009 +0200

    Merge branch 'master' of git+ssh://volkmar@git.packagekit.org/srv/git/PackageKit

commit 58d0b80df05a38a3da095831350dcce76a1dd97f
Author: Mounir Lamouri (volkmar) <mounir.lamouri at gmail.com>
Date:   Mon Aug 17 16:13:27 2009 +0200

    portage: show elog messages when installing

diff --git a/backends/portage/portageBackend.py b/backends/portage/portageBackend.py
index 8c8855d..64321b6 100755
--- a/backends/portage/portageBackend.py
+++ b/backends/portage/portageBackend.py
@@ -284,6 +284,9 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
 
         self.pvar = PortageBridge()
 
+        # TODO: atm, this stack keep tracks of elog messages
+        self._elog_messages = []
+
         # TODO: should be removed when using non-verbose function API
         self.orig_out = None
         self.orig_err = None
@@ -391,6 +394,41 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
                         message += ";- %s then copy it to %s" % (' '.join(x[1]), x[0])
                     self.error(ERROR_PACKAGE_DOWNLOAD_FAILED, message)
 
+    def elog_listener(self, settings, key, logentries, fulltext):
+        '''
+        This is a listener for elog.
+        It's called each time elog is emitting log messages (at end of process).
+        We are not using settings and fulltext but they are used by other
+        listeners so we have to keep them as arguments.
+        '''
+        message = "Messages for package %s:;" % str(key)
+
+        # building the message
+        for phases in logentries:
+            # actually, we don't care about phases
+            for entries in logentries[phases]:
+                type = entries[0]
+                messages = entries[1]
+
+                # TODO: portage.elog.filtering is using upper() should we ?
+                if type == 'LOG':
+                    message += ";Information messages:"
+                elif type == 'WARN':
+                    message += ";Warning messages:"
+                elif type == 'ERROR':
+                    message += ";Error messages:"
+                elif type == 'QA':
+                    message += ";QA messages:"
+                else:
+                    continue
+
+                for msg in messages:
+                    msg = msg.replace('\n', '')
+                    message += "; " + msg
+
+        # add the message to the stack
+        self._elog_messages.append(message)
+
     def get_file_list(self, cpv):
         cat, pv = portage.catsplit(cpv)
         db = portage.dblink(cat, pv, self.pvar.settings['ROOT'],
@@ -1209,22 +1247,7 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
         self.status(STATUS_INSTALL)
 
         # 
-        '''
-        def default_listener(mysettings, key, logentries, fulltext):
-            print 'BEGIN LISTENER'
-            print logentries
-            print fulltext
-            for phases in logentries:
-                # actually, we don't care about phases
-                for entries in phases:
-                    # we want to show all messages except INFO
-                    if entries == 'INFO':
-                        break
-                    if entries == 'LOG':
-                        for message in entries:
-
-        portage.elog.add_listener(default_listener)
-        '''
+        portage.elog.add_listener(self.elog_listener)
 
         try:
             self.block_output()
@@ -1236,6 +1259,12 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
         finally:
             self.unblock_output()
 
+        portage.elog.remove_listener(self.elog_listener)
+        for msg in self._elog_messages:
+            # TODO: use specific message ?
+            self.message(MESSAGE_UNKNOWN, msg)
+        self._elog_messages = []
+
         self.send_configuration_file_message()
 
     def refresh_cache(self, force):
commit d24c90716ba9cbfe49ccdca25719d90208a6acc1
Author: Richard Hughes <richard at hughsie.com>
Date:   Mon Aug 17 14:49:21 2009 +0100

    Add a CanAuthorize method to the daemon to know if the daemon will show an authentication window

diff --git a/lib/packagekit-glib/pk-enum.c b/lib/packagekit-glib/pk-enum.c
index 6455b62..7f564b6 100644
--- a/lib/packagekit-glib/pk-enum.c
+++ b/lib/packagekit-glib/pk-enum.c
@@ -489,6 +489,14 @@ static const PkEnumMatch enum_media_type[] = {
 	{0, NULL}
 };
 
+static const PkEnumMatch enum_authorize_type[] = {
+	{PK_AUTHORIZE_ENUM_UNKNOWN,		"unknown"},	/* fall though value */
+	{PK_AUTHORIZE_ENUM_YES,			"yes"},
+	{PK_AUTHORIZE_ENUM_NO,			"no"},
+	{PK_AUTHORIZE_ENUM_INTERACTIVE,		"interactive"},
+	{0, NULL}
+};
+
 /**
  * pk_enum_find_value:
  * @table: A #PkEnumMatch enum table of values
@@ -974,7 +982,8 @@ pk_license_enum_to_text (PkLicenseEnum license)
  *
  * Return value: the enumerated constant value, e.g. PK_MEDIA_TYPE_ENUM_CD
  **/
-PkMediaTypeEnum pk_media_type_enum_from_text (const gchar *media_type)
+PkMediaTypeEnum
+pk_media_type_enum_from_text (const gchar *media_type)
 {
 	return pk_enum_find_value (enum_media_type, media_type);
 }
@@ -987,11 +996,40 @@ PkMediaTypeEnum pk_media_type_enum_from_text (const gchar *media_type)
  *
  * Return value: the enumerated constant value, e.g. "dvd"
  **/
-const gchar* pk_media_type_enum_to_text (PkMediaTypeEnum media_type)
+const gchar *
+pk_media_type_enum_to_text (PkMediaTypeEnum media_type)
 {
 	return pk_enum_find_string (enum_media_type, media_type);
 }
 
+/**
+ * pk_authorize_type_enum_from_text:
+ * @code: Text describing the enumerated type
+ *
+ * Converts a text enumerated type to its unsigned integer representation
+ *
+ * Return value: the enumerated constant value, e.g. PK_AUTHORIZE_ENUM_YES
+ **/
+PkAuthorizeEnum
+pk_authorize_type_enum_from_text (const gchar *authorize_type)
+{
+	return pk_enum_find_value (enum_authorize_type, authorize_type);
+}
+
+/**
+ * pk_authorize_type_enum_to_text:
+ * @code: The enumerated type value
+ *
+ * Converts a enumerated type to its text representation
+ *
+ * Return value: the enumerated constant value, e.g. "yes"
+ **/
+const gchar *
+pk_authorize_type_enum_to_text (PkAuthorizeEnum authorize_type)
+{
+	return pk_enum_find_string (enum_authorize_type, authorize_type);
+}
+
 /***************************************************************************
  ***                          MAKE CHECK TESTS                           ***
  ***************************************************************************/
diff --git a/lib/packagekit-glib/pk-enum.h b/lib/packagekit-glib/pk-enum.h
index 7bd703e..46d4e92 100644
--- a/lib/packagekit-glib/pk-enum.h
+++ b/lib/packagekit-glib/pk-enum.h
@@ -566,6 +566,18 @@ typedef enum {
 	PK_MEDIA_TYPE_ENUM_UNKNOWN
 } PkMediaTypeEnum;
 
+/**
+ * PkAuthorizeEnum:
+ *
+ * The authorization result
+ **/
+typedef enum {
+	PK_AUTHORIZE_ENUM_YES,
+	PK_AUTHORIZE_ENUM_NO,
+	PK_AUTHORIZE_ENUM_INTERACTIVE,
+	PK_AUTHORIZE_ENUM_UNKNOWN
+} PkAuthorizeEnum;
+
 /* general */
 guint		 pk_enum_find_value			(const PkEnumMatch *table,
 							 const gchar	*string)
@@ -622,6 +634,9 @@ const gchar	*pk_distro_upgrade_enum_to_text		(PkDistroUpgradeEnum upgrade);
 PkMediaTypeEnum  pk_media_type_enum_from_text		(const gchar	*media_type);
 const gchar	*pk_media_type_enum_to_text		(PkMediaTypeEnum media_type);
 
+PkAuthorizeEnum  pk_authorize_type_enum_from_text	(const gchar	*auth_type);
+const gchar	*pk_authorize_type_enum_to_text		(PkAuthorizeEnum auth_type);
+
 G_END_DECLS
 
 #endif /* __PK_ENUM_H */
diff --git a/src/org.freedesktop.PackageKit.xml b/src/org.freedesktop.PackageKit.xml
index ae6518f..c229d03 100644
--- a/src/org.freedesktop.PackageKit.xml
+++ b/src/org.freedesktop.PackageKit.xml
@@ -43,6 +43,36 @@
     </property>
 
     <!--*****************************************************************************************-->
+    <method name="CanAuthorize">
+      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
+      <doc:doc>
+        <doc:description>
+          <doc:para>
+            Allows a client to find out if it would be allowed to authorize an action.
+          </doc:para>
+        </doc:description>
+      </doc:doc>
+      <arg type="s" name="action_id" direction="in">
+        <doc:doc>
+          <doc:summary>
+            <doc:para>
+              The action ID, e.g. <doc:tt>org.freedesktop.packagekit.system-network-proxy-configure</doc:tt>
+            </doc:para>
+          </doc:summary>
+        </doc:doc>
+      </arg>
+      <arg type="s" name="result" direction="out">
+        <doc:doc>
+          <doc:summary>
+            <doc:para>
+              The result, either <doc:tt>yes</doc:tt>, <doc:tt>no</doc:tt> or <doc:tt>interactive</doc:tt>.
+            </doc:para>
+          </doc:summary>
+        </doc:doc>
+      </arg>
+    </method>
+
+    <!--*****************************************************************************************-->
     <method name="GetActions">
       <doc:doc>
         <doc:description>
diff --git a/src/pk-engine.c b/src/pk-engine.c
index c1163ef..7edf985 100644
--- a/src/pk-engine.c
+++ b/src/pk-engine.c
@@ -737,6 +737,94 @@ pk_engine_set_proxy (PkEngine *engine, const gchar *proxy_http, const gchar *pro
 }
 
 /**
+ * pk_engine_can_authorize:
+ **/
+static PkAuthorizeEnum
+pk_engine_can_authorize_action_id (PkEngine *engine, const gchar *action_id, DBusGMethodInvocation *context, GError **error)
+{
+#ifdef USE_SECURITY_POLKIT
+	gboolean ret;
+	gchar *sender = NULL;
+	PkAuthorizeEnum authorize;
+	PolkitAuthorizationResult *res;
+	PolkitSubject *subject;
+
+	/* check subject */
+	sender = dbus_g_method_get_sender (context);
+	subject = polkit_system_bus_name_new (sender);
+
+	/* check authorization (okay being sync as there's no blocking on the user) */
+	res = polkit_authority_check_authorization_sync (engine->priv->authority, subject, action_id,
+							 NULL, POLKIT_CHECK_AUTHORIZATION_FLAGS_NONE, NULL, error);
+	if (res == NULL) {
+		authorize = PK_AUTHORIZE_ENUM_UNKNOWN;
+		goto out;
+	}
+
+	/* already yes */
+	ret = polkit_authorization_result_get_is_authorized (res);
+	if (ret) {
+		authorize = PK_AUTHORIZE_ENUM_YES;
+		goto out;
+	}
+
+	/* could be yes with user input */
+	ret = polkit_authorization_result_get_is_challenge (res);
+	if (ret) {
+		authorize = PK_AUTHORIZE_ENUM_INTERACTIVE;
+		goto out;
+	}
+
+	/* fall back to not letting user authenticate */
+	authorize = PK_AUTHORIZE_ENUM_NO;
+out:
+	if (res != NULL)
+		g_object_unref (res);
+	g_object_unref (subject);
+	g_free (sender);
+	return authorize;
+#else
+	return AUTORIZE_RESULT_YES;
+#endif
+}
+
+/**
+ * pk_engine_can_authorize:
+ **/
+void
+pk_engine_can_authorize (PkEngine *engine, const gchar *action_id, DBusGMethodInvocation *context)
+{
+	gboolean ret;
+	PkAuthorizeEnum result_enum;
+	GError *error;
+	GError *error_local = NULL;
+
+	g_return_if_fail (PK_IS_ENGINE (engine));
+
+	/* check is an action id */
+	ret = g_str_has_prefix (action_id, "org.freedesktop.packagekit.");
+	if (!ret) {
+		error = g_error_new (PK_ENGINE_ERROR, PK_ENGINE_ERROR_INVALID_STATE,
+				     "action_id '%s' has the wrong prefix", action_id);
+		dbus_g_method_return_error (context, error);
+		return;
+	}
+
+	/* can we do this action? */
+	result_enum = pk_engine_can_authorize_action_id (engine, action_id, context, &error_local);
+	if (result_enum == PK_AUTHORIZE_ENUM_UNKNOWN) {
+		error = g_error_new (PK_ENGINE_ERROR, PK_ENGINE_ERROR_INVALID_STATE,
+				     "failed to check authorisation %s: %s", action_id, error_local->message);
+		g_error_free (error_local);
+		dbus_g_method_return_error (context, error);
+		return;
+	}
+
+	/* all okay */
+	dbus_g_method_return (context, pk_authorize_type_enum_to_text (result_enum));
+}
+
+/**
  * pk_engine_get_property:
  **/
 static void
diff --git a/src/pk-engine.h b/src/pk-engine.h
index 8096f3a..558d606 100644
--- a/src/pk-engine.h
+++ b/src/pk-engine.h
@@ -114,6 +114,9 @@ void		 pk_engine_set_proxy			(PkEngine	*engine,
 							 const gchar	*proxy_http,
 							 const gchar	*proxy_ftp,
 							 DBusGMethodInvocation *context);
+void		 pk_engine_can_authorize		(PkEngine	*engine,
+							 const gchar	*action_id,
+							 DBusGMethodInvocation *context);
 
 G_END_DECLS
 
commit bfe11da61baa6347293523b4ac1205952ee6f441
Author: Richard Hughes <richard at hughsie.com>
Date:   Mon Aug 17 14:48:33 2009 +0100

    Trivially add encoding to the top of the xml DBus system file

diff --git a/data/org.freedesktop.PackageKit.conf.in b/data/org.freedesktop.PackageKit.conf.in
index ad43ac1..a0629a6 100644
--- a/data/org.freedesktop.PackageKit.conf.in
+++ b/data/org.freedesktop.PackageKit.conf.in
@@ -1,3 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?> <!-- -*- XML -*- -->
+
 <!DOCTYPE busconfig PUBLIC
  "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
  "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
commit 64d44826a0a5ea795207bd8207773a8793c469ef
Author: Mounir Lamouri (volkmar) <mounir.lamouri at gmail.com>
Date:   Mon Aug 17 14:11:37 2009 +0200

    packagekit-qt: adding missing Restart types

diff --git a/lib/packagekit-qt/src/client.h b/lib/packagekit-qt/src/client.h
index 1c0179b..a84a500 100644
--- a/lib/packagekit-qt/src/client.h
+++ b/lib/packagekit-qt/src/client.h
@@ -421,6 +421,8 @@ public:
 		RestartApplication,
 		RestartSession,
 		RestartSystem,
+		RestartSecuritySession,
+		RestartSecuritySystem,
 		UnknownRestartType
 	} RestartType;
 
commit e66fb7531935ca86a79341f37d676b2ae6bd5158
Author: Anders F Bjorklund <afb at users.sourceforge.net>
Date:   Mon Aug 17 12:30:34 2009 +0200

    Update feature matrix for ports.

diff --git a/docs/html/pk-matrix.html b/docs/html/pk-matrix.html
index 5911451..06cff02 100644
--- a/docs/html/pk-matrix.html
+++ b/docs/html/pk-matrix.html
@@ -29,6 +29,7 @@
 <td><center>pisi</center></td>
 <td><center>poldek</center></td>
 <td><center>portage</center></td>
+<td><center>ports</center></td>
 <td><center>smart</center></td>
 <td><center>urpmi</center></td>
 <td><center>yum</center></td>
@@ -44,6 +45,7 @@
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pisi -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- poldek -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- portage -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- ports -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- smart -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- urpmi -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- yum -->
@@ -59,6 +61,7 @@
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- pisi -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- poldek -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- portage -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- ports -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- smart -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- urpmi -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- yum -->
@@ -74,6 +77,7 @@
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pisi -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- poldek -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- portage -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- ports -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- smart -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- urpmi -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- yum -->
@@ -89,6 +93,7 @@
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pisi -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- poldek -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- portage -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- ports -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- smart -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- urpmi -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- yum -->
@@ -104,6 +109,7 @@
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- pisi -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- poldek -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- portage -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- ports -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- smart -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- urpmi -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- yum -->
@@ -119,6 +125,7 @@
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pisi -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- poldek -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- portage -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- ports -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- smart -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- urpmi -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- yum -->
@@ -134,6 +141,7 @@
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- pisi -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- poldek -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- portage -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- ports -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- smart -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- urpmi -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- yum -->
@@ -149,6 +157,7 @@
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pisi -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- poldek -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- portage -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- ports -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- smart -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- urpmi -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- yum -->
@@ -164,6 +173,7 @@
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pisi -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- poldek -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- portage -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- ports -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- smart -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- urpmi -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- yum -->
@@ -179,6 +189,7 @@
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- pisi -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- poldek -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- portage -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- ports -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- smart -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- urpmi -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- yum -->
@@ -194,6 +205,7 @@
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pisi -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- poldek -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- portage -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- ports -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- smart -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- urpmi -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- yum -->
@@ -209,6 +221,7 @@
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pisi -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- poldek -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- portage -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- ports -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- smart -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- urpmi -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- yum -->
@@ -224,6 +237,7 @@
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pisi -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- poldek -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- portage -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- ports -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- smart -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- urpmi -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- yum -->
@@ -239,6 +253,7 @@
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- pisi -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- poldek -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- portage -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- ports -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- smart -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- urpmi -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- yum -->
@@ -254,6 +269,7 @@
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pisi -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- poldek -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- portage -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- ports -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- smart -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- urpmi -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- yum -->
@@ -269,6 +285,7 @@
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pisi -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- poldek -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- portage -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- ports -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- smart -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- urpmi -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- yum -->
@@ -284,6 +301,7 @@
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- pisi -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- poldek -->
 <td><img src="img/status-bad.png" alt="[yes]"/></td><!-- portage -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- ports -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- smart -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- urpmi -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- yum -->
@@ -299,6 +317,7 @@
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pisi -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- poldek -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- portage -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- ports -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- smart -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- urpmi -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- yum -->
@@ -314,6 +333,7 @@
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pisi -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- poldek -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- portage -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- ports -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- smart -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- urpmi -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- yum -->
@@ -329,6 +349,7 @@
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- pisi -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- poldek -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- portage -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- ports -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- smart -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- urpmi -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- yum -->
@@ -344,6 +365,7 @@
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pisi -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- poldek -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- portage -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- ports -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- smart -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- urpmi -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- yum -->
@@ -359,6 +381,7 @@
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pisi -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- poldek -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- portage -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- ports -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- smart -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- urpmi -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- yum -->
@@ -374,6 +397,7 @@
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pisi -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- poldek -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- portage -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- ports -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- smart -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- urpmi -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- yum -->
@@ -389,6 +413,7 @@
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pisi -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- poldek -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- portage -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- ports -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- smart -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- urpmi -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- yum -->
@@ -404,6 +429,7 @@
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pisi -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- poldek -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- portage -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- ports -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- smart -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- urpmi -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- yum -->
@@ -419,6 +445,7 @@
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pisi -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- poldek -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- portage -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- ports -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- smart -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- urpmi -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- yum -->
@@ -434,6 +461,7 @@
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- pisi -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- poldek -->
 <td><img src="img/status-good.png" alt="[no]"/></td><!-- portage -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- ports -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- smart -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- urpmi -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- yum -->
@@ -453,6 +481,7 @@
 <td><center>pisi</center></td>
 <td><center>poldek</center></td>
 <td><center>portage</center></td>
+<td><center>ports</center></td>
 <td><center>smart</center></td>
 <td><center>urpmi</center></td>
 <td><center>yum</center></td>
@@ -468,6 +497,7 @@
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pisi -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- poldek -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- portage -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- ports -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- smart -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- urpmi -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- yum -->
@@ -483,6 +513,7 @@
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pisi -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- poldek -->
 <td><img src="img/status-good.png" alt="[no]"/></td><!-- portage -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- ports -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- smart -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- urpmi -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- yum -->
@@ -498,6 +529,7 @@
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pisi -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- poldek -->
 <td><img src="img/status-good.png" alt="[no]"/></td><!-- portage -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- ports -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- smart -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- urpmi -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- yum -->
@@ -513,6 +545,7 @@
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- pisi -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- poldek -->
 <td><img src="img/status-bad.png" alt="[yes]"/></td><!-- portage -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- ports -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- smart -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- urpmi -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- yum -->
@@ -528,6 +561,7 @@
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- pisi -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- poldek -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- portage -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- ports -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- smart -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- urpmi -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- yum -->
@@ -543,6 +577,7 @@
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- pisi -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- poldek -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- portage -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- ports -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- smart -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- urpmi -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- yum -->
@@ -558,6 +593,7 @@
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- pisi -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- poldek -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- portage -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- ports -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- smart -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- urpmi -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- yum -->
@@ -573,6 +609,7 @@
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- pisi -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- poldek -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- portage -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- ports -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- smart -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- urpmi -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- yum -->
@@ -588,6 +625,7 @@
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- pisi -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- poldek -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- portage -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- ports -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- smart -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- urpmi -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- yum -->
commit 57c5f55385eeb1977b953de468f56698cdfa625d
Merge: a66c97c... 718b7c9...
Author: Anders F Bjorklund <afb at users.sourceforge.net>
Date:   Mon Aug 17 12:00:48 2009 +0200

    Merge branch 'master' of git+ssh://afb@git.packagekit.org/srv/git/PackageKit

commit 718b7c91f0faf84f7f500f18acb2f65bf5a5453e
Merge: d70636a... 7d848bc...
Author: Sebastian Heinlein <devel at glatzor.de>
Date:   Mon Aug 17 06:16:17 2009 +0200

    Merge branch 'master' of git+ssh://glatzor@git.packagekit.org/srv/git/PackageKit

commit 7d848bc1a5e1daa005d256c740bbccddba9a3d8a
Author: Mounir Lamouri (volkmar) <mounir.lamouri at gmail.com>
Date:   Mon Aug 17 00:03:58 2009 +0200

    portage: nothing (just to keep track of some temporary work)

diff --git a/backends/portage/portageBackend.py b/backends/portage/portageBackend.py
index f2ef21e..8c8855d 100755
--- a/backends/portage/portageBackend.py
+++ b/backends/portage/portageBackend.py
@@ -1208,6 +1208,24 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
 
         self.status(STATUS_INSTALL)
 
+        # 
+        '''
+        def default_listener(mysettings, key, logentries, fulltext):
+            print 'BEGIN LISTENER'
+            print logentries
+            print fulltext
+            for phases in logentries:
+                # actually, we don't care about phases
+                for entries in phases:
+                    # we want to show all messages except INFO
+                    if entries == 'INFO':
+                        break
+                    if entries == 'LOG':
+                        for message in entries:
+
+        portage.elog.add_listener(default_listener)
+        '''
+
         try:
             self.block_output()
             # compiling/installing
commit a66c97cf63bf148d4cf223f2f762c75790541abb
Author: Anders F Bjorklund <afb at users.sourceforge.net>
Date:   Sun Aug 16 23:54:55 2009 +0200

    search /usr/local on FreeBSD

diff --git a/lib/packagekit-glib/pk-desktop.h b/lib/packagekit-glib/pk-desktop.h
index 0120036..73a8cf0 100644
--- a/lib/packagekit-glib/pk-desktop.h
+++ b/lib/packagekit-glib/pk-desktop.h
@@ -49,7 +49,11 @@ G_BEGIN_DECLS
  *
  * The default location for the desktop files
  */
+#ifndef __FreeBSD__
 #define PK_DESKTOP_DEFAULT_APPLICATION_DIR	"/usr/share/applications"
+#else
+#define PK_DESKTOP_DEFAULT_APPLICATION_DIR	"/usr/local/share/applications"
+#endif
 
 typedef struct _PkDesktopPrivate	PkDesktopPrivate;
 typedef struct _PkDesktop		PkDesktop;
commit 3d94aa58683e314575c6439aec3b36eb3062fafa
Author: Anders F Bjorklund <afb at users.sourceforge.net>
Date:   Sun Aug 16 23:54:18 2009 +0200

    ports: configure and add backend

diff --git a/backends/Makefile.am b/backends/Makefile.am
index 53413e8..cf20493 100644
--- a/backends/Makefile.am
+++ b/backends/Makefile.am
@@ -60,6 +60,10 @@ if BACKEND_TYPE_PORTAGE
 SUBDIRS += portage
 endif
 
+if BACKEND_TYPE_PORTS
+SUBDIRS += ports
+endif
+
 clean-local :
 	rm -f *~
 
diff --git a/configure.ac b/configure.ac
index 066b8a1..73901ca 100644
--- a/configure.ac
+++ b/configure.ac
@@ -535,6 +535,7 @@ AC_ARG_ENABLE(opkg, AS_HELP_STRING([--enable-opkg],[use the OPKG backend]),enabl
 AC_ARG_ENABLE(pisi, AS_HELP_STRING([--enable-pisi],[use the PiSi backend]),enable_pisi=$enableval,enable_pisi=no)
 AC_ARG_ENABLE(poldek, AS_HELP_STRING([--enable-poldek],[use the poldek backend]),enable_poldek=$enableval,enable_poldek=no)
 AC_ARG_ENABLE(portage, AS_HELP_STRING([--enable-portage],[use the portage backend]),enable_portage=$enableval,enable_portage=no)
+AC_ARG_ENABLE(ports, AS_HELP_STRING([--enable-ports],[use the ports backend]),enable_ports=$enableval,enable_ports=no)
 AC_ARG_ENABLE(razor, AS_HELP_STRING([--enable-razor],[use the razor backend]),enable_razor=$enableval,enable_razor=no)
 AC_ARG_ENABLE(smart, AS_HELP_STRING([--enable-smart],[use the SMART backend]),enable_smart=$enableval,enable_smart=no)
 AC_ARG_ENABLE(urpmi, AS_HELP_STRING([--enable-urpmi],[use the URPMI backend]),enable_urpmi=$enableval,enable_urpmi=no)
@@ -552,6 +553,7 @@ AM_CONDITIONAL(BACKEND_TYPE_OPKG, [test x$enable_opkg = xyes])
 AM_CONDITIONAL(BACKEND_TYPE_PISI, [test x$enable_pisi = xyes])
 AM_CONDITIONAL(BACKEND_TYPE_POLDEK, [test x$enable_poldek = xyes])
 AM_CONDITIONAL(BACKEND_TYPE_PORTAGE, [test x$enable_portage = xyes])
+AM_CONDITIONAL(BACKEND_TYPE_PORTS, [test x$enable_ports = xyes])
 AM_CONDITIONAL(BACKEND_TYPE_RAZOR, [test x$enable_razor = xyes])
 AM_CONDITIONAL(BACKEND_TYPE_SMART, [test x$enable_smart = xyes])
 AM_CONDITIONAL(BACKEND_TYPE_URPMI, [test x$enable_urpmi = xyes])
@@ -619,7 +621,7 @@ dnl ---------------------------------------------------------------------------
 AC_ARG_WITH([default_backend],
 	    AS_HELP_STRING([--with-default-backend=<option>],
 			   [Default backend to use
-                           alpm,apt,aptcc,box,conary,dummy,opkg,pisi,portage,razor,smart,urpmi,yum,zypp (dummy)]))
+                           alpm,apt,aptcc,box,conary,dummy,opkg,pisi,portage,ports,razor,smart,urpmi,yum,zypp (dummy)]))
 # default to a sane option for the installed tool
 if test x$with_default_backend = x; then
 	if test -f /usr/bin/yum ; then
@@ -646,6 +648,8 @@ if test x$with_default_backend = x; then
 		with_default_backend=zypp
 	elif test -f /usr/bin/emerge ; then
 		with_default_backend=portage
+	elif test -f /usr/local/sbin/portupgrade ; then
+		with_default_backend=ports
 	else
 		with_default_backend=dummy
 	fi
@@ -782,6 +786,8 @@ backends/yum/Makefile
 backends/pisi/Makefile
 backends/poldek/Makefile
 backends/portage/Makefile
+backends/ports/Makefile
+backends/ports/ruby_packagekit/Makefile
 backends/zypp/Makefile
 data/Makefile
 data/org.freedesktop.PackageKit.conf
@@ -842,6 +848,7 @@ echo "
         PiSi backend:              ${enable_pisi}
         poldek backend:            ${enable_poldek}
         Portage backend:           ${enable_portage}
+        Ports backend:             ${enable_ports}
         SMART backend:             ${enable_smart}
         URPMI backend:             ${enable_urpmi}
         YUM backend:               ${enable_yum}
commit ce0d2d0c8e3eb688722a385ed9aeadc02fc4a3db
Author: Anders F Bjorklund <afb at users.sourceforge.net>
Date:   Sun Aug 16 23:52:26 2009 +0200

    ports: new (read-only so far) backend for FreeBSD Ports

diff --git a/backends/ports/Makefile.am b/backends/ports/Makefile.am
new file mode 100644
index 0000000..898aebe
--- /dev/null
+++ b/backends/ports/Makefile.am
@@ -0,0 +1,17 @@
+SUBDIRS=ruby_packagekit
+
+helperdir = $(datadir)/PackageKit/helpers/ports
+dist_helper_DATA = portsBackend.rb
+
+plugindir = $(PK_PLUGIN_DIR)
+plugin_LTLIBRARIES = libpk_backend_ports.la
+libpk_backend_ports_la_SOURCES = pk-backend-ports.c
+libpk_backend_ports_la_LIBADD = $(PK_PLUGIN_LIBS)
+libpk_backend_ports_la_LDFLAGS = -module -avoid-version
+libpk_backend_ports_la_CFLAGS = $(PK_PLUGIN_CFLAGS) $(WARNINGFLAGS_C)
+
+install-data-hook:
+	chmod a+rx $(DESTDIR)$(helperdir)/*.rb
+
+clean-local :
+	rm -f *~
diff --git a/backends/ports/pk-backend-ports.c b/backends/ports/pk-backend-ports.c
new file mode 100644
index 0000000..ba95ab0
--- /dev/null
+++ b/backends/ports/pk-backend-ports.c
@@ -0,0 +1,323 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2009 Anders F Bjorklund <afb at users.sourceforge.net>
+ *
+ * Licensed under the GNU General Public License Version 2
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#include <pk-backend.h>
+#include <pk-backend-spawn.h>
+
+static PkBackendSpawn *spawn = 0;
+static const gchar* BACKEND_FILE = "portsBackend.rb";
+
+/**
+ * backend_initialize:
+ * This should only be run once per backend load, i.e. not every transaction
+ */
+static void
+backend_initialize (PkBackend *backend)
+{
+	egg_debug ("backend: initialize");
+	spawn = pk_backend_spawn_new ();
+	pk_backend_spawn_set_name (spawn, "ports");
+	/* allowing sigkill as long as no one complain */
+	pk_backend_spawn_set_allow_sigkill (spawn, TRUE);
+}
+
+/**
+ * backend_destroy:
+ * This should only be run once per backend load, i.e. not every transaction
+ */
+static void
+backend_destroy (PkBackend *backend)
+{
+	egg_debug ("backend: destroy");
+	g_object_unref (spawn);
+}
+
+/**
+ * backend_get_groups:
+ */
+static PkBitfield
+backend_get_groups (PkBackend *backend)
+{
+	return pk_bitfield_from_enums (
+			PK_GROUP_ENUM_ACCESSIBILITY,
+			PK_GROUP_ENUM_ACCESSORIES,
+			PK_GROUP_ENUM_ADMIN_TOOLS,
+			PK_GROUP_ENUM_COMMUNICATION,
+			PK_GROUP_ENUM_DESKTOP_GNOME,
+			PK_GROUP_ENUM_DESKTOP_KDE,
+			PK_GROUP_ENUM_DESKTOP_OTHER,
+			PK_GROUP_ENUM_DESKTOP_XFCE,
+		/*	PK_GROUP_ENUM_EDUCATION, */
+			PK_GROUP_ENUM_FONTS,
+			PK_GROUP_ENUM_GAMES,
+			PK_GROUP_ENUM_GRAPHICS,
+			PK_GROUP_ENUM_INTERNET,
+		/*	PK_GROUP_ENUM_LEGACY, */
+			PK_GROUP_ENUM_LOCALIZATION,
+		/*	PK_GROUP_ENUM_MAPS, */
+			PK_GROUP_ENUM_MULTIMEDIA,
+			PK_GROUP_ENUM_NETWORK,
+		/*	PK_GROUP_ENUM_OFFICE, */
+			PK_GROUP_ENUM_OTHER,
+		/*	PK_GROUP_ENUM_POWER_MANAGEMENT, */
+			PK_GROUP_ENUM_PROGRAMMING,
+			PK_GROUP_ENUM_PUBLISHING,
+		/*	PK_GROUP_ENUM_REPOS, */
+			PK_GROUP_ENUM_SECURITY,
+			PK_GROUP_ENUM_SERVERS,
+			PK_GROUP_ENUM_SYSTEM,
+			PK_GROUP_ENUM_VIRTUALIZATION,
+			PK_GROUP_ENUM_SCIENCE,
+			PK_GROUP_ENUM_DOCUMENTATION,
+		/*	PK_GROUP_ENUM_ELECTRONICS, */
+		/*	PK_GROUP_ENUM_COLLECTIONS, */
+		/*	PK_GROUP_ENUM_VENDOR, */
+		/*	PK_GROUP_ENUM_NEWEST, */
+			-1);
+}
+
+/**
+ * backend_get_filters:
+ */
+static PkBitfield
+backend_get_filters (PkBackend *backend)
+{
+	return pk_bitfield_from_enums (
+			PK_FILTER_ENUM_INSTALLED,
+			-1);
+}
+
+/**
+ * backend_cancel:
+ */
+static void
+backend_cancel (PkBackend *backend)
+{
+	/* this feels bad... */
+	pk_backend_spawn_kill (spawn);
+}
+
+/**
+ * backend_get_depends:
+ */
+static void
+backend_get_depends (PkBackend *backend, PkBitfield filters, gchar **package_ids, gboolean recursive)
+{
+	gchar *filters_text;
+	gchar *package_ids_temp;
+
+	package_ids_temp = pk_package_ids_to_text (package_ids);
+	filters_text = pk_filter_bitfield_to_text (filters);
+	pk_backend_spawn_helper (spawn, BACKEND_FILE, "get-depends", filters_text, package_ids_temp, pk_backend_bool_to_text (recursive), NULL);
+	g_free (package_ids_temp);
+	g_free (filters_text);
+}
+
+/**
+ * backend_get_details:
+ */
+static void
+backend_get_details (PkBackend *backend, gchar **package_ids)
+{
+	gchar *package_ids_temp;
+
+	package_ids_temp = pk_package_ids_to_text (package_ids);
+	pk_backend_spawn_helper (spawn, BACKEND_FILE, "get-details", package_ids_temp, NULL);
+	g_free (package_ids_temp);
+}
+
+/**
+ * backend_get_files:
+ */
+static void
+backend_get_files (PkBackend *backend, gchar **package_ids)
+{
+	gchar *package_ids_temp;
+
+	package_ids_temp = pk_package_ids_to_text (package_ids);
+	pk_backend_spawn_helper (spawn, BACKEND_FILE, "get-files", package_ids_temp, NULL);
+	g_free (package_ids_temp);
+}
+
+/**
+ * backend_refresh_cache:
+ */
+static void
+backend_refresh_cache (PkBackend *backend, gboolean force)
+{
+	/* check network state */
+	if (!pk_backend_is_online (backend)) {
+		pk_backend_error_code (backend, PK_ERROR_ENUM_NO_NETWORK, "Cannot refresh cache whilst offline");
+		pk_backend_finished (backend);
+		return;
+	}
+
+	pk_backend_spawn_helper (spawn, BACKEND_FILE, "refresh-cache", pk_backend_bool_to_text (force), NULL);
+}
+
+/**
+ * pk_backend_resolve:
+ */
+static void
+backend_resolve (PkBackend *backend, PkBitfield filters, gchar **package_ids)
+{
+	gchar *filters_text;
+	gchar *package_ids_temp;
+
+	filters_text = pk_filter_bitfield_to_text (filters);
+	package_ids_temp = pk_package_ids_to_text (package_ids);
+	pk_backend_spawn_helper (spawn, BACKEND_FILE, "resolve", filters_text, package_ids_temp, NULL);
+	g_free (package_ids_temp);
+	g_free (filters_text);
+}
+
+/**
+ * pk_backend_search_details:
+ */
+static void
+backend_search_details (PkBackend *backend, PkBitfield filters, const gchar *search)
+{
+	gchar *filters_text;
+
+	filters_text = pk_filter_bitfield_to_text (filters);
+	pk_backend_spawn_helper (spawn, BACKEND_FILE, "search-details", filters_text, search, NULL);
+	g_free (filters_text);
+}
+
+/**
+ * backend_search_file:
+ */
+static void
+backend_search_file (PkBackend *backend, PkBitfield filters, const gchar *search)
+{
+	gchar *filters_text;
+
+	filters_text = pk_filter_bitfield_to_text (filters);
+	pk_backend_spawn_helper (spawn, BACKEND_FILE, "search-file", filters_text, search, NULL);
+	g_free (filters_text);
+}
+
+/**
+ * pk_backend_search_group:
+ */
+static void
+backend_search_group (PkBackend *backend, PkBitfield filters, const gchar *search)
+{
+	gchar *filters_text;
+
+	filters_text = pk_filter_bitfield_to_text (filters);
+	pk_backend_spawn_helper (spawn, BACKEND_FILE, "search-group", filters_text, search, NULL);
+	g_free (filters_text);
+}
+
+/**
+ * backend_search_name:
+ */
+static void
+backend_search_name (PkBackend *backend, PkBitfield filters, const gchar *search)
+{
+	gchar *filters_text;
+
+	filters_text = pk_filter_bitfield_to_text (filters);
+	pk_backend_spawn_helper (spawn, BACKEND_FILE, "search-name", filters_text, search, NULL);
+	g_free (filters_text);
+}
+
+/**
+ * backend_get_packages:
+ */
+static void
+backend_get_packages (PkBackend *backend, PkBitfield filters)
+{
+	gchar *filters_text;
+
+	filters_text = pk_filter_bitfield_to_text (filters);
+	pk_backend_spawn_helper (spawn, BACKEND_FILE, "get-packages", filters_text, NULL);
+	g_free (filters_text);
+}
+
+/**
+ * pk_backend_get_repo_list:
+ */
+static void
+backend_get_repo_list (PkBackend *backend, PkBitfield filters)
+{
+	gchar *filters_text;
+
+	filters_text = pk_filter_bitfield_to_text (filters);
+	pk_backend_spawn_helper (spawn, BACKEND_FILE, "get-repo-list", filters_text, NULL);
+	g_free (filters_text);
+}
+
+/**
+ * backend_get_requires:
+ */
+static void
+backend_get_requires (PkBackend *backend, PkBitfield filters, gchar **package_ids, gboolean recursive)
+{
+	gchar *package_ids_temp;
+	gchar *filters_text;
+
+	package_ids_temp = pk_package_ids_to_text (package_ids);
+	filters_text = pk_filter_bitfield_to_text (filters);
+	pk_backend_spawn_helper (spawn, BACKEND_FILE, "get-requires", filters_text, package_ids_temp, pk_backend_bool_to_text (recursive), NULL);
+	g_free (filters_text);
+	g_free (package_ids_temp);
+}
+
+PK_BACKEND_OPTIONS (
+	"Ports",				/* description */
+	"Anders F Björklund <afb at users.sourceforge.net>",	/* author */
+	backend_initialize,			/* initalize */
+	backend_destroy,			/* destroy */
+	backend_get_groups,			/* get_groups */
+	backend_get_filters,			/* get_filters */
+	NULL,			/* get_mime_types */
+	backend_cancel,				/* cancel */
+	NULL,		/* download_packages */
+	NULL,					/* get_categories */
+	backend_get_depends,			/* get_depends */
+	backend_get_details,			/* get_details */
+	NULL,		/* get_distro_upgrades */
+	backend_get_files,			/* get_files */
+	backend_get_packages,			/* get_packages */
+	backend_get_repo_list,			/* get_repo_list */
+	backend_get_requires,			/* get_requires */
+	NULL,		/* get_update_detail */
+	NULL,			/* get_updates */
+	NULL,			/* install_files */
+	NULL,		/* install_packages */
+	NULL,			/* install_signature */
+	backend_refresh_cache,			/* refresh_cache */
+	NULL,		/* remove_packages */
+	NULL,			/* repo_enable */
+	NULL,			/* repo_set_data */
+	backend_resolve,			/* resolve */
+	NULL,			/* rollback */
+	backend_search_details,			/* search_details */
+	backend_search_file,			/* search_file */
+	backend_search_group,			/* search_group */
+	backend_search_name,			/* search_name */
+	NULL,		/* update_packages */
+	NULL,			/* update_system */
+	NULL			/* what_provides */
+);
+
diff --git a/backends/ports/portsBackend.rb b/backends/ports/portsBackend.rb
new file mode 100755
index 0000000..9843a1a
--- /dev/null
+++ b/backends/ports/portsBackend.rb
@@ -0,0 +1,585 @@
+#!/usr/local/bin/ruby
+# -*- ruby -*-
+
+# Copyright (C) 2009 Anders F Bjorklund <afb at users.sourceforge.net>
+#
+# Licensed under the GNU General Public License Version 2
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+require 'pkgtools'
+
+$LOAD_PATH.unshift File.dirname(File.expand_path($PROGRAM_NAME))
+
+require 'ruby_packagekit/enums'
+
+PACKAGE_IDS_DELIM = '&'
+FILENAME_DELIM = '|'
+
+# maps Ports group to PackageKit group
+GROUPS = {
+"accessibility" => GROUP_ACCESSIBILITY,
+"arabic" => GROUP_LOCALIZATION,
+"archivers" => GROUP_UNKNOWN,
+"astro" => GROUP_UNKNOWN,
+"audio" => GROUP_MULTIMEDIA, # ???
+"benchmarks" => GROUP_UNKNOWN,
+"biology" => GROUP_SCIENCE,
+"cad" => GROUP_UNKNOWN,
+"chinese" => GROUP_LOCALIZATION,
+"comms" => GROUP_COMMUNICATION,
+"converters" => GROUP_UNKNOWN,
+"databases" => GROUP_SERVERS,
+"deskutils" => GROUP_ACCESSORIES,
+"devel" => GROUP_PROGRAMMING,
+"dns" => GROUP_INTERNET,
+"editors" => GROUP_UNKNOWN,
+"emulators" => GROUP_VIRTUALIZATION, # ???
+"finance" => GROUP_UNKNOWN,
+"french" => GROUP_LOCALIZATION,
+"ftp" => GROUP_INTERNET,
+"games" => GROUP_GAMES,
+"german" => GROUP_LOCALIZATION,
+"graphics" => GROUP_GRAPHICS,
+"hebrew" => GROUP_LOCALIZATION,
+"hungarian" => GROUP_LOCALIZATION,
+"irc" => GROUP_INTERNET,
+"japanese" => GROUP_LOCALIZATION,
+"java" => GROUP_UNKNOWN,
+"korean" => GROUP_LOCALIZATION,
+"lang" => GROUP_UNKNOWN,
+"mail" => GROUP_INTERNET,
+"math" => GROUP_SCIENCE,
+"mbone" => GROUP_UNKNOWN,
+"misc" => GROUP_OTHER,
+"multimedia" => GROUP_MULTIMEDIA,
+"net" => GROUP_NETWORK,
+"net-im" => GROUP_NETWORK,
+"net-mgmt" => GROUP_NETWORK,
+"net-p2p" => GROUP_NETWORK,
+"news" => GROUP_INTERNET,
+"palm" => GROUP_UNKNOWN,
+"polish" => GROUP_LOCALIZATION,
+"ports-mgmt" => GROUP_ADMIN_TOOLS,
+"portuguese" => GROUP_LOCALIZATION,
+"print" => GROUP_PUBLISHING,
+"russian" => GROUP_LOCALIZATION,
+"science" => GROUP_SCIENCE,
+"security" => GROUP_SECURITY,
+"shells" => GROUP_SYSTEM, # ???
+"spanish" => GROUP_LOCALIZATION,
+"sysutils" => GROUP_SYSTEM,
+"textproc" => GROUP_UNKNOWN,
+"ukrainian" => GROUP_LOCALIZATION,
+"vietnamese" => GROUP_LOCALIZATION,
+"www" => GROUP_INTERNET,
+"x11" => GROUP_DESKTOP_OTHER,
+"x11-clocks" => GROUP_DESKTOP_OTHER,
+"x11-drivers" => GROUP_DESKTOP_OTHER,
+"x11-fm" => GROUP_DESKTOP_OTHER,
+"x11-fonts" => GROUP_FONTS,
+"x11-servers" => GROUP_DESKTOP_OTHER,
+"x11-themes" => GROUP_DESKTOP_OTHER,
+"x11-toolkits" => GROUP_DESKTOP_OTHER,
+"x11-wm" => GROUP_DESKTOP_OTHER,
+### virtual categories
+"afterstep" => GROUP_DESKTOP_OTHER,
+"docs" => GROUP_DOCUMENTATION,
+"elisp" => GROUP_UNKNOWN,
+"geography" => GROUP_UNKNOWN,
+"gnome" => GROUP_DESKTOP_GNOME,
+"gnustep" => GROUP_DESKTOP_OTHER,
+"hamradio" => GROUP_COMMUNICATION,
+"haskell" => GROUP_UNKNOWN,
+"ipv6" => GROUP_NETWORK,
+"kde" => GROUP_DESKTOP_KDE,
+"kld" => GROUP_SYSTEM,
+"linux" => GROUP_VIRTUALIZATION, # ???
+"lisp" => GROUP_UNKNOWN,
+"parallel" => GROUP_UNKNOWN,
+"pear" => GROUP_UNKNOWN,
+"perl5" => GROUP_UNKNOWN,
+"plan9" => GROUP_UNKNOWN,
+"python" => GROUP_UNKNOWN,
+"ruby" => GROUP_UNKNOWN,
+"rubygems" => GROUP_UNKNOWN,
+"scheme" => GROUP_UNKNOWN,
+"tcl" => GROUP_UNKNOWN,
+"tk" => GROUP_UNKNOWN,
+"windowmaker" => GROUP_UNKNOWN,
+"xfce" => GROUP_DESKTOP_XFCE,
+"zope" => GROUP_UNKNOWN,
+}
+
+def init_global
+    $pkg_arch = PkgConfig::OS_PLATFORM
+end
+
+def get_packages(filters)
+    status(STATUS_QUERY)
+    filterlist = filters.split(';')
+    begin
+      $portsdb.each do |portinfo|
+        port = PortInfo.new(portinfo)
+        pkg = PkgInfo.new(port.pkgname)
+        installed = pkg.installed?
+        if filterlist.include? FILTER_NOT_INSTALLED and installed:
+            next
+        elsif filterlist.include? FILTER_INSTALLED and !installed:
+            next
+        end
+        data = installed ? "installed" : "ports"
+        package_id = sprintf "%s;%s;%s;%s", pkg.name, pkg.version, $pkg_arch, data
+        status = installed ? INFO_INSTALLED : INFO_AVAILABLE
+        summary = port.comment
+        if summary
+            summary.chomp.chomp
+            summary = summary.gsub(/\n\n/, ';')
+            summary = summary.gsub(/\n/, ' ')
+            summary = summary.gsub(/\t/, ' ')
+        end
+        package(package_id, status, summary)
+      end
+    rescue => e
+       STDERR.puts e.message
+       exit 1
+    end
+rescue PortsDB::IndexFileError
+  error(ERROR_INTERNAL_ERROR, "Error reading the ports INDEX.", false)
+rescue PortsDB::DBError
+  error(ERROR_INTERNAL_ERROR, "Error reading the ports database.", false)
+end
+
+def get_repo_list(filters)
+    status(STATUS_INFO)
+    repo_detail("ports", "FreeBSD Ports", enabled=true)
+end
+
+def resolve(filters, packages)
+    status(STATUS_QUERY)
+    filterlist = filters.split(';')
+    packages.each do |package|
+      portnames = $portsdb.glob(package)
+      if portnames
+      portnames.each do |port|
+        pkg = PkgInfo.new(port.pkgname)
+        installed = pkg.installed?
+        if filterlist.include? FILTER_NOT_INSTALLED and installed:
+            next
+        elsif filterlist.include? FILTER_INSTALLED and !installed:
+            next
+        end
+        data = installed ? "installed" : "ports"
+        package_id = sprintf "%s;%s;%s;%s", pkg.name, pkg.version, $pkg_arch, data
+        status = installed ? INFO_INSTALLED : INFO_AVAILABLE
+        summary = port.comment
+        if summary
+            summary.chomp.chomp
+            summary = summary.gsub(/\n/, ';')
+            summary = summary.gsub(/\t/, ' ')
+        end
+        package(package_id, status, summary)
+      end
+      else
+        error(ERROR_PACKAGE_NOT_FOUND, "Package #{package} was not found")
+      end
+    end
+end
+
+def search_group(filters, key)
+    status(STATUS_QUERY)
+    filterlist = filters.split(';')
+    category = GROUPS.invert[key] || GROUP_UNKNOWN
+    begin
+      $portsdb.each(category) do |portinfo|
+        port = PortInfo.new(portinfo)
+        pkg = PkgInfo.new(port.pkgname)
+        installed = pkg.installed?
+        if filterlist.include? FILTER_NOT_INSTALLED and installed:
+            next
+        elsif filterlist.include? FILTER_INSTALLED and !installed:
+            next
+        end
+        data = installed ? "installed" : "ports"
+        package_id = sprintf "%s;%s;%s;%s", pkg.name, pkg.version, $pkg_arch, data
+        status = installed ? INFO_INSTALLED : INFO_AVAILABLE
+        summary = port.comment
+        if summary
+            summary.chomp.chomp
+            summary = summary.gsub(/\n\n/, ';')
+            summary = summary.gsub(/\n/, ' ')
+            summary = summary.gsub(/\t/, ' ')
+        end
+        package(package_id, status, summary)
+      end
+    end
+end
+
+def search_name(filters, key)
+    status(STATUS_QUERY)
+    filterlist = filters.split(';')
+    name = key
+    begin
+      $portsdb.glob("*#{name}*").each do |port|
+        pkg = PkgInfo.new(port.pkgname)
+        installed = pkg.installed?
+        data = installed ? "installed" : "ports"
+        package_id = sprintf "%s;%s;%s;%s", pkg.name, pkg.version, $pkg_arch, data
+        status = installed ? INFO_INSTALLED : INFO_AVAILABLE
+        summary = port.comment
+        if summary
+            summary.chomp.chomp
+            summary = summary.gsub(/\n/, ' ')
+            summary = summary.gsub(/\t/, ' ')
+        end
+        package(package_id, status, summary)
+      end
+    end
+end
+
+def search_details(filters, key)
+    status(STATUS_QUERY)
+    filterlist = filters.split(';')
+    begin
+      $portsdb.each do |portinfo|
+        port = PortInfo.new(portinfo)
+        pkg = PkgInfo.new(port.pkgname)
+        if port.comment and port.comment.match(key)
+        installed = pkg.installed?
+        data = installed ? "installed" : "ports"
+        package_id = sprintf "%s;%s;%s;%s", pkg.name, pkg.version, $pkg_arch, data
+        status = installed ? INFO_INSTALLED : INFO_AVAILABLE
+        summary = pkg.comment
+        if summary
+            summary.chomp.chomp
+            summary = summary.gsub(/\n/, ' ')
+            summary = summary.gsub(/\t/, ' ')
+        end
+        package(package_id, status, summary)
+        end
+      end
+    end
+end
+
+def search_file(filters, key)
+    status(STATUS_QUERY)
+    filterlist = filters.split(';')
+    if filterlist.include? FILTER_NOT_INSTALLED
+      error(ERROR_CANNOT_GET_FILELIST, "Only available for installed packages", false)
+      return
+    end
+    if key[0,1] == '/':
+      packages = $pkgdb.which_m(key)
+      if packages
+      packages.each do |pkgname|
+        pkg = $pkgdb.pkg(pkgname)
+        installed = true
+        data = installed ? "installed" : "ports"
+        package_id = sprintf "%s;%s;%s;%s", pkg.name, pkg.version, $pkg_arch, data
+        status = installed ? INFO_INSTALLED : INFO_AVAILABLE
+        summary = pkg.comment
+        if summary
+            summary.chomp.chomp
+            summary = summary.gsub(/\n/, ' ')
+            summary = summary.gsub(/\t/, ' ')
+        end
+        package(package_id, status, summary)
+      end
+      end
+    else
+        $pkgdb.each do |pkg|
+        match = false
+        pkg.files.each do |file|
+          match = true if file.match(key)
+        end
+        next unless match
+        installed = true
+        data = installed ? "installed" : "ports"
+        package_id = sprintf "%s;%s;%s;%s", pkg.name, pkg.version, $pkg_arch, data
+        status = installed ? INFO_INSTALLED : INFO_AVAILABLE
+        summary = pkg.comment
+        if summary
+            summary.chomp.chomp
+            summary = summary.gsub(/\n/, ' ')
+            summary = summary.gsub(/\t/, ' ')
+        end
+        package(package_id, status, summary)
+      end
+    end
+end
+
+def get_depends(filters, package_ids, recursive)
+    status(STATUS_INFO)
+    package_ids.each do |package|
+      name, version, arch, data = package.split(';')
+
+      pkgnames = $portsdb.glob(name)
+      if pkgnames
+       pkgnames.each do |port|
+        pkg = PkgInfo.new(port.pkgname)
+        next if pkg.version != version
+
+        if pkg.pkgdep
+        pkg.pkgdep.each do |dep|
+            resolve(FILTER_INSTALLED, dep)
+        end
+        end
+       end
+      else
+        error(ERROR_PACKAGE_NOT_FOUND, "Package #{package} was not found")
+      end
+    end
+end
+
+def get_details(package_ids)
+    status(STATUS_INFO)
+    package_ids.each do |package|
+      name, version, arch, data = package.split(';')
+
+      pkgnames = $portsdb.glob(name)
+      if pkgnames
+        pkgnames.each do |port|
+        pkg = PkgInfo.new(port.pkgname)
+        next if pkg.version != version
+
+        license = LICENSE_UNKNOWN
+        portgroup = port.category()
+        group = GROUPS[portgroup] || GROUP_UNKNOWN
+        descr_file = File.join($portsdb.ports_dir, port.descr_file)
+        www = ""
+        if descr_file
+            desc = IO.read(descr_file)
+            desc.chomp.chomp
+            www = $~[1] if desc =~ /WWW:\s+(.*)/
+            desc = desc.sub(/WWW:\s+(.*)/, "")
+            license = $~[1] if desc =~ /LICENSE:\s+(.*)/
+            license = license.gsub(/\s/, ' ')
+            desc = desc.gsub(/\n/, ';')
+            desc = desc.gsub(/\t/, ' ')
+        end
+        size = pkg.totalsize || 0
+        details(package, license, group, desc, www, size)
+      end
+      else
+        error(ERROR_PACKAGE_NOT_FOUND, "Package #{package} was not found")
+      end
+    end
+end
+
+def get_files(package_ids)
+    status(STATUS_INFO)
+    package_ids.each do |package|
+      name, version, arch, data = package.split(';')
+
+      pkgnames = $portsdb.glob(name)
+      if pkgnames
+        pkgnames.each do |port|
+        pkg = PkgInfo.new(port.pkgname)
+        next if pkg.version != version
+        if !pkg.installed?
+            error(ERROR_CANNOT_GET_FILELIST, "Only available for installed packages", false)
+        end
+        file_list = pkg.files.join(';')
+        files(package, file_list)
+      end
+      else
+        error(ERROR_PACKAGE_NOT_FOUND, "Package #{package} was not found")
+      end
+    end
+end
+
+def get_requires(filters, package_ids, recursive)
+    status(STATUS_INFO)
+    package_ids.each do |package|
+      name, version, arch, data = package.split(';')
+
+     pkgnames = $portsdb.glob(name)
+      if pkgnames
+       pkgnames.each do |port|
+        pkg = PkgInfo.new(port.pkgname)
+        next if pkg.version != version
+
+        if pkg.required_by
+        pkg.required_by.each do |dep|
+            resolve(FILTER_INSTALLED, dep)
+        end
+        end
+       end
+      else
+        error(ERROR_PACKAGE_NOT_FOUND, "Package #{package} was not found")
+      end
+    end
+end
+
+def refresh_cache(force)
+    percentage(0)
+    status(STATUS_DOWNLOAD_PACKAGELIST)
+    $portsdb.update(fetch=true)
+    percentage(50)
+    status(STATUS_REFRESH_CACHE)
+    $portsdb.update_db(force)
+    percentage(100)
+end
+
+#######################################################################
+
+def package(package_id, status, summary)
+   $stdout.printf "package\t%s\t%s\t%s\n", status, package_id, summary
+   $stdout.flush
+end
+
+def repo_detail(repoid, name, state)
+   $stdout.printf "repo-detail\t%s\t%s\t%s\n", repoid, name, state
+   $stdout.flush
+end
+
+def details(package_id, package_license, group, desc, url, bytes)
+   $stdout.printf "details\t%s\t%s\t%s\t%s\t%s\t%d\n", package_id, package_license, group, desc, url, bytes
+   $stdout.flush
+end
+
+def files(package_id, file_list)
+   $stdout.printf "files\t%s\t%s\n", package_id, file_list
+   $stdout.flush
+end
+
+def status(state)
+   $stdout.printf "status\t%s\n", state
+   $stdout.flush
+end
+
+def error(err, description, exit=true)
+   $stdout.printf "error\t%s\t%s\n", err, description
+   $stdout.flush
+   if exit
+      finished
+      exit(1)
+   end
+end
+
+def percentage(percent=nil)
+   if percent==nil
+      $stdout.printf "finished\n"
+   else percent == 0 or percent > $percentage_old
+      $stdout.printf "percentage\t%i\n", percent
+      $percentage_old = percent
+   end
+   $stdout.flush
+end
+
+def finished
+   $stdout.printf "finished\n"
+   $stdout.flush
+end
+
+#######################################################################
+
+def to_b(string)
+    return true if string == true || string =~ /^true$/i
+    return false if string == false || string.nil? || string =~ /^false$/i
+    raise ArgumentError.new("invalid value for bool: \"#{string}\"")
+end
+
+def dispatch_command(cmd, args)
+    case
+    when cmd == 'get-packages'
+        filters = args[0]
+        get_packages(filters)
+        finished()
+    when cmd == 'get-repo-list'
+        filters = args[0]
+        get_repo_list(filters)
+        finished()
+    when cmd == 'resolve'
+        filters = args[0]
+        package_ids = args[1].split(PACKAGE_IDS_DELIM)
+        resolve(filters, package_ids)
+        finished()
+    when cmd == 'search-details'
+        options = args[0]
+        searchterms = args[1]
+        search_details(options, searchterms)
+        finished()
+    when cmd == 'search-file'
+        options = args[0]
+        searchterms = args[1]
+        search_file(options, searchterms)
+        finished()
+    when cmd == 'search-group'
+        options = args[0]
+        searchterms = args[1]
+        search_group(options, searchterms)
+        finished()
+    when cmd == 'search-name'
+        options = args[0]
+        searchterms = args[1]
+        search_name(options, searchterms)
+        finished()
+    when cmd == 'get-depends'
+        filters = args[0]
+        package_ids = args[1].split(PACKAGE_IDS_DELIM)
+        recursive = to_b(args[2])
+        get_depends(filters, package_ids, recursive)
+        finished()
+    when cmd == 'get-details'
+        package_ids = args[0].split(PACKAGE_IDS_DELIM)
+        get_details(package_ids)
+        finished()
+    when cmd == 'get-files'
+        package_ids = args[0].split(PACKAGE_IDS_DELIM)
+        get_files(package_ids)
+        finished()
+    when cmd == 'get-requires'
+        filters = args[0]
+        package_ids = args[1].split(PACKAGE_IDS_DELIM)
+        recursive = to_b(args[2])
+        get_requires(filters, package_ids, recursive)
+        finished()
+    when cmd == 'refresh-cache'
+        force = to_b(args[0])
+        refresh_cache(force)
+        finished()
+    else
+        errmsg = "command '#{cmd}' is not known"
+        error(ERROR_INTERNAL_ERROR, errmsg, exit=false)
+        finished()
+    end
+end
+
+def dispatcher(args)
+    if args.size > 0
+      dispatch_command(args[0], args[1..-1])
+    else
+      $stdin.each_line do |line|
+        args = line.chomp.split('\t')
+        dispatch_command(args[0], args[1..-1])
+      end
+    end
+end
+
+#######################################################################
+
+def main(argv)
+    init_global
+    init_pkgtools_global
+    dispatcher(argv)
+    0
+end
+
+if $0 == __FILE__
+  set_signal_handlers
+
+  exit(main(ARGV) || 1)
+end
diff --git a/backends/ports/ruby_packagekit/Makefile.am b/backends/ports/ruby_packagekit/Makefile.am
new file mode 100644
index 0000000..a1d7a7c
--- /dev/null
+++ b/backends/ports/ruby_packagekit/Makefile.am
@@ -0,0 +1,11 @@
+helperdir = $(datadir)/PackageKit/helpers/ports/ruby_packagekit/
+
+NULL =
+
+dist_helper_DATA =                                              \
+	enums.rb                                                \
+	$(NULL)
+
+clean-local :
+	rm -f *~
+
diff --git a/backends/ports/ruby_packagekit/enums.rb b/backends/ports/ruby_packagekit/enums.rb
new file mode 100644
index 0000000..df63dd6
--- /dev/null
+++ b/backends/ports/ruby_packagekit/enums.rb
@@ -0,0 +1,385 @@
+# Constants
+
+DISTRO_UPGRADE_STABLE = "stable"
+DISTRO_UPGRADE_UNKNOWN = "unknown"
+DISTRO_UPGRADE_UNSTABLE = "unstable"
+ERROR_ALL_PACKAGES_ALREADY_INSTALLED = "all-packages-already-installed"
+ERROR_BAD_GPG_SIGNATURE = "bad-gpg-signature"
+ERROR_CANNOT_CANCEL = "cannot-cancel"
+ERROR_CANNOT_DISABLE_REPOSITORY = "cannot-disable-repository"
+ERROR_CANNOT_GET_FILELIST = "cannot-get-filelist"
+ERROR_CANNOT_GET_LOCK = "cannot-get-lock"
+ERROR_CANNOT_GET_REQUIRES = "cannot-get-requires"
+ERROR_CANNOT_INSTALL_REPO_UNSIGNED = "cannot-install-repo-unsigned"
+ERROR_CANNOT_INSTALL_SOURCE_PACKAGE = "cannot-install-source-package"
+ERROR_CANNOT_REMOVE_SYSTEM_PACKAGE = "cannot-remove-system-package"
+ERROR_CANNOT_UPDATE_REPO_UNSIGNED = "cannot-update-repo-unsigned"
+ERROR_CANNOT_WRITE_REPO_CONFIG = "cannot-write-repo-config"
+ERROR_CREATE_THREAD_FAILED = "create-thread-failed"
+ERROR_DEP_RESOLUTION_FAILED = "dep-resolution-failed"
+ERROR_FAILED_CONFIG_PARSING = "failed-config-parsing"
+ERROR_FAILED_FINALISE = "failed-finalise"
+ERROR_FAILED_INITIALIZATION = "failed-initialization"
+ERROR_FILE_CONFLICTS = "file-conflicts"
+ERROR_FILE_NOT_FOUND = "file-not-found"
+ERROR_FILTER_INVALID = "filter-invalid"
+ERROR_GPG_FAILURE = "gpg-failure"
+ERROR_GROUP_LIST_INVALID = "group-list-invalid"
+ERROR_GROUP_NOT_FOUND = "group-not-found"
+ERROR_INCOMPATIBLE_ARCHITECTURE = "incompatible-architecture"
+ERROR_INTERNAL_ERROR = "internal-error"
+ERROR_INVALID_PACKAGE_FILE = "invalid-package-file"
+ERROR_LOCAL_INSTALL_FAILED = "local-install-failed"
+ERROR_MEDIA_CHANGE_REQUIRED = "media-change-required"
+ERROR_MISSING_GPG_SIGNATURE = "missing-gpg-signature"
+ERROR_NOT_AUTHORIZED = "not-authorized"
+ERROR_NOT_SUPPORTED = "not-supported"
+ERROR_NO_CACHE = "no-cache"
+ERROR_NO_DISTRO_UPGRADE_DATA = "no-distro-upgrade-data"
+ERROR_NO_LICENSE_AGREEMENT = "no-license-agreement"
+ERROR_NO_MORE_MIRRORS_TO_TRY = "no-more-mirrors-to-try"
+ERROR_NO_NETWORK = "no-network"
+ERROR_NO_PACKAGES_TO_UPDATE = "no-packages-to-update"
+ERROR_NO_SPACE_ON_DEVICE = "no-space-on-device"
+ERROR_OOM = "out-of-memory"
+ERROR_PACKAGE_ALREADY_INSTALLED = "package-already-installed"
+ERROR_PACKAGE_CONFLICTS = "package-conflicts"
+ERROR_PACKAGE_CORRUPT = "package-corrupt"
+ERROR_PACKAGE_DOWNLOAD_FAILED = "package-download-failed"
+ERROR_PACKAGE_ID_INVALID = "package-id-invalid"
+ERROR_PACKAGE_INSTALL_BLOCKED = "package-install-blocked"
+ERROR_PACKAGE_NOT_FOUND = "package-not-found"
+ERROR_PACKAGE_NOT_INSTALLED = "package-not-installed"
+ERROR_PROCESS_KILL = "process-kill"
+ERROR_REPO_CONFIGURATION_ERROR = "repo-configuration-error"
+ERROR_REPO_NOT_AVAILABLE = "repo-not-available"
+ERROR_REPO_NOT_FOUND = "repo-not-found"
+ERROR_TRANSACTION_CANCELLED = "transaction-cancelled"
+ERROR_TRANSACTION_ERROR = "transaction-error"
+ERROR_UNKNOWN = "unknown"
+ERROR_UPDATE_NOT_FOUND = "update-not-found"
+EXIT_CANCELLED = "cancelled"
+EXIT_EULA_REQUIRED = "eula-required"
+EXIT_FAILED = "failed"
+EXIT_KEY_REQUIRED = "key-required"
+EXIT_KILLED = "killed"
+EXIT_MEDIA_CHANGE_REQUIRED = "media-change-required"
+EXIT_NEED_UNTRUSTED = "need-untrusted"
+EXIT_SUCCESS = "success"
+EXIT_UNKNOWN = "unknown"
+FILTER_APPLICATION = "application"
+FILTER_ARCH = "arch"
+FILTER_BASENAME = "basename"
+FILTER_COLLECTIONS = "collections"
+FILTER_DEVELOPMENT = "devel"
+FILTER_FREE = "free"
+FILTER_GUI = "gui"
+FILTER_INSTALLED = "installed"
+FILTER_NEWEST = "newest"
+FILTER_NONE = "none"
+FILTER_NOT_APPLICATION = "~application"
+FILTER_NOT_ARCH = "~arch"
+FILTER_NOT_BASENAME = "~basename"
+FILTER_NOT_COLLECTIONS = "~collections"
+FILTER_NOT_DEVELOPMENT = "~devel"
+FILTER_NOT_FREE = "~free"
+FILTER_NOT_GUI = "~gui"
+FILTER_NOT_INSTALLED = "~installed"
+FILTER_NOT_NEWEST = "~newest"
+FILTER_NOT_SOURCE = "~source"
+FILTER_NOT_SUPPORTED = "~supported"
+FILTER_NOT_VISIBLE = "~visible"
+FILTER_SOURCE = "source"
+FILTER_SUPPORTED = "supported"
+FILTER_UNKNOWN = "unknown"
+FILTER_VISIBLE = "visible"
+GROUP_ACCESSIBILITY = "accessibility"
+GROUP_ACCESSORIES = "accessories"
+GROUP_ADMIN_TOOLS = "admin-tools"
+GROUP_COLLECTIONS = "collections"
+GROUP_COMMUNICATION = "communication"
+GROUP_DESKTOP_GNOME = "desktop-gnome"
+GROUP_DESKTOP_KDE = "desktop-kde"
+GROUP_DESKTOP_OTHER = "desktop-other"
+GROUP_DESKTOP_XFCE = "desktop-xfce"
+GROUP_DOCUMENTATION = "documentation"
+GROUP_EDUCATION = "education"
+GROUP_ELECTRONICS = "electronics"
+GROUP_FONTS = "fonts"
+GROUP_GAMES = "games"
+GROUP_GRAPHICS = "graphics"
+GROUP_INTERNET = "internet"
+GROUP_LEGACY = "legacy"
+GROUP_LOCALIZATION = "localization"
+GROUP_MAPS = "maps"
+GROUP_MULTIMEDIA = "multimedia"
+GROUP_NETWORK = "network"
+GROUP_NEWEST = "newest"
+GROUP_OFFICE = "office"
+GROUP_OTHER = "other"
+GROUP_POWER_MANAGEMENT = "power-management"
+GROUP_PROGRAMMING = "programming"
+GROUP_PUBLISHING = "publishing"
+GROUP_REPOS = "repos"
+GROUP_SCIENCE = "science"
+GROUP_SECURITY = "security"
+GROUP_SERVERS = "servers"
+GROUP_SYSTEM = "system"
+GROUP_UNKNOWN = "unknown"
+GROUP_VENDOR = "vendor"
+GROUP_VIRTUALIZATION = "virtualization"
+INFO_AVAILABLE = "available"
+INFO_BLOCKED = "blocked"
+INFO_BUGFIX = "bugfix"
+INFO_CLEANUP = "cleanup"
+INFO_COLLECTION_AVAILABLE = "collection-available"
+INFO_COLLECTION_INSTALLED = "collection-installed"
+INFO_DOWNLOADING = "downloading"
+INFO_ENHANCEMENT = "enhancement"
+INFO_FINISHED = "finished"
+INFO_IMPORTANT = "important"
+INFO_INSTALLED = "installed"
+INFO_INSTALLING = "installing"
+INFO_LOW = "low"
+INFO_NORMAL = "normal"
+INFO_OBSOLETING = "obsoleting"
+INFO_REMOVING = "removing"
+INFO_SECURITY = "security"
+INFO_UNKNOWN = "unknown"
+INFO_UPDATING = "updating"
+LICENSE_ADOBE = "Adobe"
+LICENSE_AFL = "AFL"
+LICENSE_AGPLV1 = "AGPLv1"
+LICENSE_AGPLV3 = "AGPLv3"
+LICENSE_AMAZON_DSL = "ADSL"
+LICENSE_AMPAS_BSD = "AMPAS BSD"
+LICENSE_APSL_2_DOT_0 = "APSL 2.0"
+LICENSE_ARL = "ARL"
+LICENSE_ARPHIC = "Arphic"
+LICENSE_ARTISTIC_2_DOT_0 = "Artistic 2.0"
+LICENSE_ARTISTIC_CLARIFIED = "Artistic clarified"
+LICENSE_ASL_1_DOT_0 = "ASL 1.0"
+LICENSE_ASL_1_DOT_1 = "ASL 1.1"
+LICENSE_ASL_2_DOT_0 = "ASL 2.0"
+LICENSE_BAEKMUK = "Baekmuk"
+LICENSE_BITSTREAM_VERA = "Bitstream Vera"
+LICENSE_BITTORRENT = "BitTorrent"
+LICENSE_BOOST = "Boost"
+LICENSE_BSD = "BSD"
+LICENSE_BSD_WITH_ADVERTISING = "BSD with advertising"
+LICENSE_CC_BY = "CC-BY"
+LICENSE_CC_BY_ND = "CC-BY-ND"
+LICENSE_CC_BY_SA = "CC-BY-SA"
+LICENSE_CDDL = "CDDL"
+LICENSE_CDL = "CDL"
+LICENSE_CECILL = "CeCILL"
+LICENSE_CONDOR = "Condor"
+LICENSE_COPYRIGHT_ONLY = "Copyright only"
+LICENSE_CPL = "CPL"
+LICENSE_CRYPTIX = "Cryptix"
+LICENSE_CRYSTAL_STACKER = "Crystal Stacker"
+LICENSE_DOC = "DOC"
+LICENSE_DSL = "DSL"
+LICENSE_ECOS = "eCos"
+LICENSE_EFL_2_DOT_0 = "EFL 2.0"
+LICENSE_EPL = "EPL"
+LICENSE_EU_DATAGRID = "EU Datagrid"
+LICENSE_FBSDDL = "FBSDDL"
+LICENSE_FREE_ART = "Free Art"
+LICENSE_FTL = "FTL"
+LICENSE_GFDL = "GFDL"
+LICENSE_GIFTWARE = "Giftware"
+LICENSE_GLIDE = "Glide"
+LICENSE_GNUPLOT = "gnuplot"
+LICENSE_GPLV2 = "GPLv2"
+LICENSE_GPLV2_PLUS_WITH_EXCEPTIONS = "GPLv2+ with exceptions"
+LICENSE_GPLV2_WITH_EXCEPTIONS = "GPLv2 with exceptions"
+LICENSE_GPLV3 = "GPLv3"
+LICENSE_GPLV3_PLUS_WITH_EXCEPTIONS = "GPLv3+ with exceptions"
+LICENSE_GPLV3_WITH_EXCEPTIONS = "GPLv3 with exceptions"
+LICENSE_IBM = "IBM"
+LICENSE_IEEE = "IEEE"
+LICENSE_IJG = "IJG"
+LICENSE_IMAGEMAGICK = "ImageMagick"
+LICENSE_IMATIX = "iMatix"
+LICENSE_IMLIB2 = "Imlib2"
+LICENSE_INTEL_ACPI = "Intel ACPI"
+LICENSE_INTERBASE = "Interbase"
+LICENSE_ISC = "ISC"
+LICENSE_JABBER = "Jabber"
+LICENSE_JASPER = "JasPer"
+LICENSE_LGPLV2 = "LGPLv2"
+LICENSE_LGPLV3 = "LGPLv3"
+LICENSE_LIBTIFF = "libtiff"
+LICENSE_LPL = "LPL"
+LICENSE_LPPL = "LPPL"
+LICENSE_LUCIDA = "Lucida"
+LICENSE_MECAB_IPADIC = "mecab-ipadic"
+LICENSE_MIT = "MIT"
+LICENSE_MIT_WITH_ADVERTISING = "MIT with advertising"
+LICENSE_MPLUS = "mplus"
+LICENSE_MPLV1_DOT_0 = "MPLv1.0"
+LICENSE_MPLV1_DOT_1 = "MPLv1.1"
+LICENSE_NCSA = "NCSA"
+LICENSE_NETCDF = "NetCDF"
+LICENSE_NETSCAPE = "Netscape"
+LICENSE_NGPL = "NGPL"
+LICENSE_NOKIA = "Nokia"
+LICENSE_NOSL = "NOSL"
+LICENSE_OFL = "OFL"
+LICENSE_OFSFDL = "OFSFDL"
+LICENSE_OPENLDAP = "OpenLDAP"
+LICENSE_OPENPBS = "OpenPBS"
+LICENSE_OPENSSL = "OpenSSL"
+LICENSE_OPEN_PUBLICATION = "Open Publication"
+LICENSE_OREILLY = "OReilly"
+LICENSE_OSL_1_DOT_0 = "OSL 1.0"
+LICENSE_OSL_1_DOT_1 = "OSL 1.1"
+LICENSE_OSL_2_DOT_0 = "OSL 2.0"
+LICENSE_OSL_3_DOT_0 = "OSL 3.0"
+LICENSE_PHORUM = "Phorum"
+LICENSE_PHP = "PHP"
+LICENSE_PUBLIC_DOMAIN = "Public Domain"
+LICENSE_PYTHON = "Python"
+LICENSE_QHULL = "Qhull"
+LICENSE_QPL = "QPL"
+LICENSE_RICEBSD = "RiceBSD"
+LICENSE_RPSL = "RPSL"
+LICENSE_RUBY = "Ruby"
+LICENSE_SENDMAIL = "Sendmail"
+LICENSE_SISSL = "SISSL"
+LICENSE_SLEEPYCAT = "Sleepycat"
+LICENSE_SLIB = "SLIB"
+LICENSE_SPL = "SPL"
+LICENSE_STIX = "STIX"
+LICENSE_TCL = "TCL"
+LICENSE_UCD = "UCD"
+LICENSE_UNKNOWN = "unknown"
+LICENSE_UTOPIA = "Utopia"
+LICENSE_VIM = "Vim"
+LICENSE_VNLSL = "VNLSL"
+LICENSE_VOSTROM = "VOSTROM"
+LICENSE_VSL = "VSL"
+LICENSE_W3C = "W3C"
+LICENSE_WTFPL = "WTFPL"
+LICENSE_WXWIDGETS = "wxWidgets"
+LICENSE_XANO = "XANO"
+LICENSE_XEROX = "Xerox License"
+LICENSE_XINETD = "xinetd"
+LICENSE_ZEND = "Zend"
+LICENSE_ZLIB = "zlib"
+LICENSE_ZLIB_WITH_ACK = "zlib with acknowledgement"
+LICENSE_ZPLV1_DOT_0 = "ZPLv1.0"
+LICENSE_ZPLV2_DOT_0 = "ZPLv2.0"
+LICENSE_ZPLV2_DOT_1 = "ZPLv2.1"
+MEDIA_TYPE_CD = "cd"
+MEDIA_TYPE_DISC = "disc"
+MEDIA_TYPE_DVD = "dvd"
+MEDIA_TYPE_UNKNOWN = "unknown"
+MESSAGE_AUTOREMOVE_IGNORED = "autoremove-ignored"
+MESSAGE_BACKEND_ERROR = "backend-error"
+MESSAGE_BROKEN_MIRROR = "broken-mirror"
+MESSAGE_CACHE_BEING_REBUILT = "cache-being-rebuilt"
+MESSAGE_CONFIG_FILES_CHANGED = "config-files-changed"
+MESSAGE_CONNECTION_REFUSED = "connection-refused"
+MESSAGE_COULD_NOT_FIND_PACKAGE = "could-not-find-package"
+MESSAGE_DAEMON_ERROR = "daemon-error"
+MESSAGE_NEWER_PACKAGE_EXISTS = "newer-package-exists"
+MESSAGE_PACKAGE_ALREADY_INSTALLED = "package-already-installed"
+MESSAGE_PARAMETER_INVALID = "parameter-invalid"
+MESSAGE_PRIORITY_INVALID = "priority-invalid"
+MESSAGE_UNKNOWN = "unknown"
+MESSAGE_UNTRUSTED_PACKAGE = "untrusted-package"
+NETWORK_MOBILE = "mobile"
+NETWORK_OFFLINE = "offline"
+NETWORK_ONLINE = "online"
+NETWORK_UNKNOWN = "unknown"
+NETWORK_WIFI = "wifi"
+NETWORK_WIRED = "wired"
+PROVIDES_ANY = "any"
+PROVIDES_CODEC = "codec"
+PROVIDES_FONT = "font"
+PROVIDES_HARDWARE_DRIVER = "driver"
+PROVIDES_MIMETYPE = "mimetype"
+PROVIDES_MODALIAS = "modalias"
+PROVIDES_UNKNOWN = "unknown"
+RESTART_APPLICATION = "application"
+RESTART_NONE = "none"
+RESTART_SECURITY_SESSION = "security-session"
+RESTART_SECURITY_SYSTEM = "security-system"
+RESTART_SESSION = "session"
+RESTART_SYSTEM = "system"
+RESTART_UNKNOWN = "unknown"
+ROLE_ACCEPT_EULA = "accept-eula"
+ROLE_CANCEL = "cancel"
+ROLE_DOWNLOAD_PACKAGES = "download-packages"
+ROLE_GET_CATEGORIES = "get-categories"
+ROLE_GET_DEPENDS = "get-depends"
+ROLE_GET_DETAILS = "get-details"
+ROLE_GET_DISTRO_UPGRADES = "get-distro-upgrades"
+ROLE_GET_FILES = "get-files"
+ROLE_GET_OLD_TRANSACTIONS = "get-old-transactions"
+ROLE_GET_PACKAGES = "get-packages"
+ROLE_GET_REPO_LIST = "get-repo-list"
+ROLE_GET_REQUIRES = "get-requires"
+ROLE_GET_UPDATES = "get-updates"
+ROLE_GET_UPDATE_DETAIL = "get-update-detail"
+ROLE_INSTALL_FILES = "install-files"
+ROLE_INSTALL_PACKAGES = "install-packages"
+ROLE_INSTALL_SIGNATURE = "install-signature"
+ROLE_REFRESH_CACHE = "refresh-cache"
+ROLE_REMOVE_PACKAGES = "remove-packages"
+ROLE_REPO_ENABLE = "repo-enable"
+ROLE_REPO_SET_DATA = "repo-set-data"
+ROLE_RESOLVE = "resolve"
+ROLE_ROLLBACK = "rollback"
+ROLE_SEARCH_DETAILS = "search-details"
+ROLE_SEARCH_FILE = "search-file"
+ROLE_SEARCH_GROUP = "search-group"
+ROLE_SEARCH_NAME = "search-name"
+ROLE_UNKNOWN = "unknown"
+ROLE_UPDATE_PACKAGES = "update-packages"
+ROLE_UPDATE_SYSTEM = "update-system"
+ROLE_WHAT_PROVIDES = "what-provides"
+SIGTYPE_GPG = "gpg"
+SIGTYPE_UNKNOWN = "unknown"
+STATUS_CANCEL = "cancel"
+STATUS_CHECK_EXECUTABLE_FILES = "check-executable-files"
+STATUS_CHECK_LIBRARIES = "check-libraries"
+STATUS_CLEANUP = "cleanup"
+STATUS_COMMIT = "commit"
+STATUS_DEP_RESOLVE = "dep-resolve"
+STATUS_DOWNLOAD = "download"
+STATUS_DOWNLOAD_CHANGELOG = "download-changelog"
+STATUS_DOWNLOAD_FILELIST = "download-filelist"
+STATUS_DOWNLOAD_GROUP = "download-group"
+STATUS_DOWNLOAD_PACKAGELIST = "download-packagelist"
+STATUS_DOWNLOAD_REPOSITORY = "download-repository"
+STATUS_DOWNLOAD_UPDATEINFO = "download-updateinfo"
+STATUS_FINISHED = "finished"
+STATUS_GENERATE_PACKAGE_LIST = "generate-package-list"
+STATUS_INFO = "info"
+STATUS_INSTALL = "install"
+STATUS_LOADING_CACHE = "loading-cache"
+STATUS_OBSOLETE = "obsolete"
+STATUS_QUERY = "query"
+STATUS_REFRESH_CACHE = "refresh-cache"
+STATUS_REMOVE = "remove"
+STATUS_REPACKAGING = "repackaging"
+STATUS_REQUEST = "request"
+STATUS_ROLLBACK = "rollback"
+STATUS_RUNNING = "running"
+STATUS_SCAN_APPLICATIONS = "scan-applications"
+STATUS_SCAN_PROCESS_LIST = "scan-process-list"
+STATUS_SETUP = "setup"
+STATUS_SIG_CHECK = "sig-check"
+STATUS_TEST_COMMIT = "test-commit"
+STATUS_UNKNOWN = "unknown"
+STATUS_UPDATE = "update"
+STATUS_WAIT = "wait"
+STATUS_WAITING_FOR_AUTH = "waiting-for-auth"
+STATUS_WAITING_FOR_LOCK = "waiting-for-lock"
+UPDATE_STATE_STABLE = "stable"
+UPDATE_STATE_TESTING = "testing"
+UPDATE_STATE_UNKNOWN = "unknown"
+UPDATE_STATE_UNSTABLE = "unstable"
commit b5ee67fdd57cb5afbcfa7b43e8c3af908a42c8a4
Author: Mounir Lamouri (volkmar) <mounir.lamouri at gmail.com>
Date:   Sun Aug 16 18:32:17 2009 +0200

    portage: use ERROR_DEP_RESOLUTION_FAILED if generating depgraph fails

diff --git a/backends/portage/portageBackend.py b/backends/portage/portageBackend.py
index e245df4..f2ef21e 100755
--- a/backends/portage/portageBackend.py
+++ b/backends/portage/portageBackend.py
@@ -53,7 +53,6 @@ from itertools import izip
 #   names a package (an ebuild for portage)
 
 # TODO:
-# ERRORS with messages ?
 # remove percentage(None) if percentage is used
 # protection against signal when installing/removing
 
@@ -772,7 +771,7 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
         retval, fav = depgraph.select_files(cpv_input)
 
         if not retval:
-            self.error(ERROR_INTERNAL_ERROR,
+            self.error(ERROR_DEP_RESOLUTION_FAILED,
                     "Wasn't able to get dependency graph")
             return
 
@@ -1200,7 +1199,7 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
                 self.pvar.trees, myopts, myparams, None)
         retval, favorites = depgraph.select_files(cpv_list)
         if not retval:
-            self.error(ERROR_INTERNAL_ERROR,
+            self.error(ERROR_DEP_RESOLUTION_FAILED,
                     "Wasn't able to get dependency graph")
             return
 
@@ -1632,7 +1631,7 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
                 self.pvar.trees, myopts, myparams, None)
         retval, favorites = depgraph.select_files(cpv_list)
         if not retval:
-            self.error(ERROR_INTERNAL_ERROR,
+            self.error(ERROR_DEP_RESOLUTION_FAILED,
                     "Wasn't able to get dependency graph")
             return
 
commit 1f2d57d81e0db4cab4a90963bdea24192b943998
Author: Mounir Lamouri (volkmar) <mounir.lamouri at gmail.com>
Date:   Sun Aug 16 17:44:05 2009 +0200

    portage: add some status info to install-packages, update-packages and
    update-system

diff --git a/backends/portage/portageBackend.py b/backends/portage/portageBackend.py
index c959980..e245df4 100755
--- a/backends/portage/portageBackend.py
+++ b/backends/portage/portageBackend.py
@@ -1194,6 +1194,8 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
         settings.regenerate()
         '''
 
+        self.status(STATUS_DEP_RESOLVE)
+
         depgraph = _emerge.depgraph.depgraph(self.pvar.settings,
                 self.pvar.trees, myopts, myparams, None)
         retval, favorites = depgraph.select_files(cpv_list)
@@ -1205,6 +1207,8 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
         # check fetch restrict, can stop the function via error signal
         self.check_fetch_restrict(depgraph.altlist())
 
+        self.status(STATUS_INSTALL)
+
         try:
             self.block_output()
             # compiling/installing
@@ -1239,7 +1243,7 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
         try:
             self.block_output()
             for o in installed_layman_db.overlays.keys():
-                installed_layman_db.sync(o, True)
+                installed_layman_db.sync(o, quiet=True)
             _emerge.actions.action_sync(self.pvar.settings, self.pvar.trees,
                     self.pvar.mtimedb, myopts, "")
         except:
@@ -1622,6 +1626,8 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
         myparams = _emerge.create_depgraph_params.create_depgraph_params(
                 myopts, "")
 
+        self.status(STATUS_DEP_RESOLVE)
+
         depgraph = _emerge.depgraph.depgraph(self.pvar.settings,
                 self.pvar.trees, myopts, myparams, None)
         retval, favorites = depgraph.select_files(cpv_list)
@@ -1633,6 +1639,8 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
         # check fetch restrict, can stop the function via error signal
         self.check_fetch_restrict(depgraph.altlist())
 
+        self.status(STATUS_INSTALL)
+
         try:
             self.block_output()
             # compiling/installing
@@ -1663,6 +1671,8 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
         myparams = _emerge.create_depgraph_params.create_depgraph_params(
                 myopts, "")
 
+        self.status(STATUS_DEP_RESOLVE)
+
         # creating list of ebuilds needed for the system update
         # using backtrack_depgraph to prevent errors
         retval, depgraph, _ = _emerge.depgraph.backtrack_depgraph(
@@ -1676,6 +1686,8 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
         # check fetch restrict, can stop the function via error signal
         self.check_fetch_restrict(depgraph.altlist())
 
+        self.status(STATUS_INSTALL)
+
         try:
             self.block_output()
             # compiling/installing
commit c5955d7eebc6f741b6a1243a438be55ad99ea28d
Author: Mounir Lamouri (volkmar) <mounir.lamouri at gmail.com>
Date:   Sun Aug 16 16:12:38 2009 +0200

    portage: send an error if an ebuild with RESTRICT='fetch' is in the
    installation list with a missing file
    the error is telling the files to download and where to put them

diff --git a/backends/portage/portageBackend.py b/backends/portage/portageBackend.py
index ca0ba75..c959980 100755
--- a/backends/portage/portageBackend.py
+++ b/backends/portage/portageBackend.py
@@ -353,6 +353,45 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
             message += ";If you can't do that, ask your system administrator."
             self.message(MESSAGE_CONFIG_FILES_CHANGED, message)
 
+    def get_restricted_fetch_files(self, cpv, metadata):
+        '''
+        This function checks files in SRC_URI and look if they are in DESTDIR.
+        Missing files are returned. If there is no issue, None is returned.
+        We don't care about digest but only about existance of files.
+
+        NOTES:
+        - we are assuming the package has RESTRICT='fetch'
+          be sure to call this function only in this case.
+        - we are not using fetch_check because it's not returning missing files
+          so this function is a simplist fetch_check
+        '''
+        missing_files = []
+        ebuild_settings = self.get_ebuild_settings(cpv, metadata)
+
+        files = self.pvar.portdb.getFetchMap(cpv,
+                ebuild_settings['USE'].split())
+
+        for f in files:
+            file_path = os.path.join(ebuild_settings["DISTDIR"], f)
+            if not os.access(file_path, os.F_OK):
+                missing_files.append([file_path, files[f]])
+
+        if len(missing_files) > 0:
+            return missing_files
+
+        return None
+
+    def check_fetch_restrict(self, packages_list):
+        for p in packages_list:
+            if 'fetch' in p.metadata['RESTRICT']:
+                files = self.get_restricted_fetch_files(p.cpv, p.metadata)
+                if files:
+                    message = "Package %s can't download some files." % p.cpv
+                    message += ";Please, download manually the followonig file(s):"
+                    for x in files:
+                        message += ";- %s then copy it to %s" % (' '.join(x[1]), x[0])
+                    self.error(ERROR_PACKAGE_DOWNLOAD_FAILED, message)
+
     def get_file_list(self, cpv):
         cat, pv = portage.catsplit(cpv)
         db = portage.dblink(cat, pv, self.pvar.settings['ROOT'],
@@ -1163,6 +1202,9 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
                     "Wasn't able to get dependency graph")
             return
 
+        # check fetch restrict, can stop the function via error signal
+        self.check_fetch_restrict(depgraph.altlist())
+
         try:
             self.block_output()
             # compiling/installing
@@ -1588,6 +1630,9 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
                     "Wasn't able to get dependency graph")
             return
 
+        # check fetch restrict, can stop the function via error signal
+        self.check_fetch_restrict(depgraph.altlist())
+
         try:
             self.block_output()
             # compiling/installing
@@ -1628,6 +1673,9 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
                     "Wasn't able to get dependency graph")
             return
 
+        # check fetch restrict, can stop the function via error signal
+        self.check_fetch_restrict(depgraph.altlist())
+
         try:
             self.block_output()
             # compiling/installing
commit a752f0e99944414b25e69e125567b9690f6b2d41
Author: Mounir Lamouri (volkmar) <mounir.lamouri at gmail.com>
Date:   Sun Aug 16 13:02:59 2009 +0200

    portage: use MESSAGE_CONFIG_FILES_CHANGED to inform the user about
    updated configuration files as a replacement before a real configuration
    file update manager

diff --git a/backends/portage/portageBackend.py b/backends/portage/portageBackend.py
index 50633b8..ca0ba75 100755
--- a/backends/portage/portageBackend.py
+++ b/backends/portage/portageBackend.py
@@ -342,6 +342,17 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
 
         return license
 
+    def send_configuration_file_message(self):
+        result = list(portage.util.find_updated_config_files(
+            self.pvar.settings['ROOT'],
+            self.pvar.settings.get('CONFIG_PROTECT', '').split()))
+
+        if result:
+            message = "Some configuration files need updating."
+            message += ";You should use Gentoo's tools to update them (dispatch-conf)"
+            message += ";If you can't do that, ask your system administrator."
+            self.message(MESSAGE_CONFIG_FILES_CHANGED, message)
+
     def get_file_list(self, cpv):
         cat, pv = portage.catsplit(cpv)
         db = portage.dblink(cat, pv, self.pvar.settings['ROOT'],
@@ -1162,6 +1173,8 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
         finally:
             self.unblock_output()
 
+        self.send_configuration_file_message()
+
     def refresh_cache(self, force):
         # NOTES: can't manage progress even if it could be better
         # TODO: do not wait for exception, check timestamp
@@ -1585,6 +1598,8 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
         finally:
             self.unblock_output()
 
+        self.send_configuration_file_message()
+
     def update_system(self, only_trusted):
         self.status(STATUS_RUNNING)
         self.allow_cancel(False)
@@ -1623,6 +1638,8 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
         finally:
             self.unblock_output()
 
+        self.send_configuration_file_message()
+
 def main():
     backend = PackageKitPortageBackend("")
     backend.dispatcher(sys.argv[1:])
commit c343744cec789a8e704d4b5267f0742ea9c60f49
Author: Adrien Bustany <madcat at mymadcat.com>
Date:   Sat Aug 15 16:25:50 2009 -0400

    PackageKit-Qt : never return null when expecting a Transaction (return a Transaction with error set)

diff --git a/lib/packagekit-qt/src/client.cpp b/lib/packagekit-qt/src/client.cpp
index 4002e85..fc85854 100644
--- a/lib/packagekit-qt/src/client.cpp
+++ b/lib/packagekit-qt/src/client.cpp
@@ -34,7 +34,8 @@
 		Transaction* t = d->createNewTransaction(); \
 		if (!t) {                                   \
 			setLastError (ErrorDaemonUnreachable);  \
-			return NULL;                            \
+			setTransactionError (t, ErrorDaemonUnreachable); \
+			return t;                            \
 		}                                           \
 
 #define CHECK_TRANSACTION                                          \
commit 8e8cc913fc0ac4e5ffea334a16c1c7a54880c402
Author: Mounir Lamouri (volkmar) <mounir.lamouri at gmail.com>
Date:   Sat Aug 15 21:49:18 2009 +0200

    portage: block interactive packages to be used via the backend

diff --git a/backends/portage/portageBackend.py b/backends/portage/portageBackend.py
index 0e6d51e..50633b8 100755
--- a/backends/portage/portageBackend.py
+++ b/backends/portage/portageBackend.py
@@ -271,6 +271,11 @@ class PortageBridge():
         self.portdb = self.trees[self.settings['ROOT']]['porttree'].dbapi
         self.root_config = self.trees[self.settings['ROOT']]['root_config']
 
+        self.settings.unlock()
+        self.settings["ACCEPT_PROPERTIES"] = "-interactive"
+        self.settings.backup_changes("ACCEPT_PROPERTIES")
+        self.settings.regenerate()
+        self.settings.lock()
 
 class PackageKitPortageBackend(PackageKitBaseBackend):
 
commit 8d8efc90612c62a5ca6854fcb503b6fdb04d318c
Author: Mounir Lamouri (volkmar) <mounir.lamouri at gmail.com>
Date:   Sat Aug 15 18:33:16 2009 +0200

    portage:
    -search-details now search for real (updated) license
    -refactoring

diff --git a/backends/portage/portageBackend.py b/backends/portage/portageBackend.py
index c1692ad..0e6d51e 100755
--- a/backends/portage/portageBackend.py
+++ b/backends/portage/portageBackend.py
@@ -326,6 +326,17 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
 
         return False
 
+    def get_real_license_str(self, cpv, metadata):
+        # use conditionals info (w/ USE) in LICENSE and remove ||
+        ebuild_settings = self.get_ebuild_settings(cpv, metadata)
+        license = set(portage.flatten(portage.dep.use_reduce(
+            portage.dep.paren_reduce(metadata["LICENSE"]),
+            uselist=ebuild_settings.get("USE", "").split())))
+        license.discard('||')
+        license = ' '.join(license)
+
+        return license
+
     def get_file_list(self, cpv):
         cat, pv = portage.catsplit(cpv)
         db = portage.dblink(cat, pv, self.pvar.settings['ROOT'],
@@ -782,14 +793,7 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
             metadata = self.get_metadata(cpv,
                     ["DESCRIPTION", "HOMEPAGE", "IUSE", "LICENSE", "SLOT"],
                     in_dict=True)
-
-            # use conditionals info in LICENSE and remove ||
-            ebuild_settings = self.get_ebuild_settings(cpv, metadata)
-            license = set(portage.flatten(portage.dep.use_reduce(
-                portage.dep.paren_reduce(metadata["LICENSE"]),
-                uselist=ebuild_settings.get("USE", "").split())))
-            license.discard('||')
-            license = ' '.join(license)
+            license = self.get_real_license_str(cpv, metadata)
 
             self.details(self.cpv_to_id(cpv), license, get_group(cpv),
                     metadata["DESCRIPTION"], metadata["HOMEPAGE"],
@@ -1374,12 +1378,16 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
             # and newest filter could be alterated
             for cpv in self.get_all_cpv(cp, fltlist, filter_newest=False):
                 match = True
-                details = self.get_metadata(cpv,
-                        ["DESCRIPTION", "HOMEPAGE","LICENSE","repository"])
+                metadata =  self.get_metadata(cpv,
+                        ["DESCRIPTION", "HOMEPAGE", "IUSE",
+                            "LICENSE", "repository", "SLOT"],
+                        in_dict=True)
+                # update LICENSE to correspond to system settings
+                metadata["LICENSE"] = self.get_real_license_str(cpv, metadata)
                 for s in search_list:
                     found = False
-                    for x in details:
-                        if s.search(x):
+                    for x in metadata:
+                        if s.search(metadata[x]):
                             found = True
                             break
                     if not found:
commit a3e4906e3d6f4db1ebbf82490702f77cc4b2eda8
Author: Mounir Lamouri (volkmar) <mounir.lamouri at gmail.com>
Date:   Sat Aug 15 16:33:27 2009 +0200

    portage: move root_config to PortageBridge class

diff --git a/backends/portage/portageBackend.py b/backends/portage/portageBackend.py
index b815ba1..c1692ad 100755
--- a/backends/portage/portageBackend.py
+++ b/backends/portage/portageBackend.py
@@ -260,6 +260,7 @@ class PortageBridge():
         self.mtimedb = None
         self.vardb = None
         self.portdb = None
+        self.root_config = None
 
         self.update()
 
@@ -268,6 +269,7 @@ class PortageBridge():
                 _emerge.actions.load_emerge_config()
         self.vardb = self.trees[self.settings['ROOT']]['vartree'].dbapi
         self.portdb = self.trees[self.settings['ROOT']]['porttree'].dbapi
+        self.root_config = self.trees[self.settings['ROOT']]['root_config']
 
 
 class PackageKitPortageBackend(PackageKitBaseBackend):
@@ -398,14 +400,14 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
             else:
                 size = int(size)
         else:
-            root_config = self.pvar.trees[self.pvar.settings["ROOT"]]["root_config"]
+            self
             metadata = self.get_metadata(cpv, ["IUSE", "SLOT"], in_dict=True)
 
             package = _emerge.Package.Package(
                     type_name="ebuild",
                     built=False,
                     installed=False,
-                    root_config=root_config,
+                    root_config=self.pvar.root_config,
                     cpv=cpv,
                     metadata=metadata)
 
@@ -981,8 +983,6 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
 
         fltlist = filters.split(';')
 
-        root_config = self.pvar.trees[self.pvar.settings["ROOT"]]["root_config"]
-
         update_candidates = []
         cpv_updates = {}
         cpv_downgra = {}
@@ -990,7 +990,7 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
         # get system and world packages
         for s in ["system", "world"]:
             set = portage.sets.base.InternalPackageSet(
-                    initial_atoms=root_config.setconfig.getSetAtoms(s))
+                    initial_atoms=self.pvar.root_config.setconfig.getSetAtoms(s))
             for atom in set:
                 update_candidates.append(atom.cp)
 
@@ -1055,7 +1055,7 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
 
         # get security updates
         for atom in portage.sets.base.InternalPackageSet(
-                initial_atoms=root_config.setconfig.getSetAtoms("security")):
+                initial_atoms=self.pvar.root_config.setconfig.getSetAtoms("security")):
             # send update message and remove atom from cpv_updates
             if atom.cp in cpv_updates:
                 slot = self.get_metadata(atom.cpv, ["SLOT"])[0]
@@ -1193,11 +1193,9 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
         required_packages = []
         system_packages = []
 
-        root_config = self.pvar.trees[self.pvar.settings["ROOT"]]["root_config"]
-
         # get system packages
         set = portage.sets.base.InternalPackageSet(
-                initial_atoms=root_config.setconfig.getSetAtoms("system"))
+                initial_atoms=self.pvar.root_config.setconfig.getSetAtoms("system"))
         for atom in set:
             system_packages.append(atom.cp)
 
@@ -1257,7 +1255,7 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
                     type_name="ebuild",
                     built=True,
                     installed=True,
-                    root_config=root_config,
+                    root_config=self.pvar.root_config,
                     cpv=cpv,
                     metadata=metadata,
                     operation="uninstall")
commit 0e29ef111c8bebfcaf9a780fa44088f5b5de30df
Author: Mounir Lamouri (volkmar) <mounir.lamouri at gmail.com>
Date:   Sat Aug 15 16:21:38 2009 +0200

    portage:
    -move id_to_cpv() to the class
    -call self.error(ERROR_PACKAGE_ID_INVALID) instead of raising exception

diff --git a/backends/portage/portageBackend.py b/backends/portage/portageBackend.py
index 1639807..b815ba1 100755
--- a/backends/portage/portageBackend.py
+++ b/backends/portage/portageBackend.py
@@ -218,21 +218,6 @@ CATEGORY_GROUP_MAP = {
 def sigquit(signum, frame):
     sys.exit(1)
 
-def id_to_cpv(pkgid):
-    '''
-    Transform the package id (packagekit) to a cpv (portage)
-    '''
-    # TODO: raise error if ret[0] doesn't contain a '/'
-    ret = split_package_id(pkgid)
-
-    if len(ret) < 4:
-        raise "id_to_cpv: package id not valid"
-
-    # remove slot info from version field
-    version = ret[1].split(':')[0]
-
-    return ret[0] + "-" + version
-
 def get_group(cp):
     ''' Return the group of the package
     Argument could be cp or cpv. '''
@@ -561,6 +546,24 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
 
         return cpv_list
 
+    def id_to_cpv(self, pkgid):
+        '''
+        Transform the package id (packagekit) to a cpv (portage)
+        '''
+        ret = split_package_id(pkgid)
+
+        if len(ret) < 4:
+            self.error(ERROR_PACKAGE_ID_INVALID,
+                    "The package id %s does not contain 4 fields" % pkgid)
+        if '/' not in ret[0]:
+            self.error(ERROR_PACKAGE_ID_INVALID,
+                    "The first field of the package id must contain a category")
+
+        # remove slot info from version field
+        version = ret[1].split(':')[0]
+
+        return ret[0] + "-" + version
+
     def cpv_to_id(self, cpv):
         '''
         Transform the cpv (portage) to a package id (packagekit)
@@ -683,7 +686,7 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
         cpv_list = []
 
         for pkg in pkgs:
-            cpv = id_to_cpv(pkg)
+            cpv = self.id_to_cpv(pkg)
             if not self.is_cpv_valid(cpv):
                 self.error(ERROR_PACKAGE_NOT_FOUND,
                         "Package %s was not found" % pkg)
@@ -767,7 +770,7 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
         pkg_processed = 0.0
 
         for pkg in pkgs:
-            cpv = id_to_cpv(pkg)
+            cpv = self.id_to_cpv(pkg)
 
             if not self.is_cpv_valid(cpv):
                 self.error(ERROR_PACKAGE_NOT_FOUND,
@@ -804,7 +807,7 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
         pkg_processed = 0.0
 
         for pkg in pkgs:
-            cpv = id_to_cpv(pkg)
+            cpv = self.id_to_cpv(pkg)
 
             if not self.is_cpv_valid(cpv):
                 self.error(ERROR_PACKAGE_NOT_FOUND,
@@ -894,7 +897,7 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
             return
 
         for pkg in pkgs:
-            cpv = id_to_cpv(pkg)
+            cpv = self.id_to_cpv(pkg)
 
             if not self.is_cpv_valid(cpv):
                 self.error(ERROR_PACKAGE_NOT_FOUND,
@@ -937,7 +940,7 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
             bugzilla_url = ""
             cve_url = ""
 
-            cpv = id_to_cpv(pkg)
+            cpv = self.id_to_cpv(pkg)
 
             if not self.pvar.portdb.cpv_exists(cpv):
                 self.message(MESSAGE_COULD_NOT_FIND_PACKAGE, "could not find %s" % pkg)
@@ -1093,7 +1096,7 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
         cpv_list = []
 
         for pkg in pkgs:
-            cpv = id_to_cpv(pkg)
+            cpv = self.id_to_cpv(pkg)
 
             if not self.is_cpv_valid(cpv):
                 self.error(ERROR_PACKAGE_NOT_FOUND,
@@ -1200,7 +1203,7 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
 
         # create cpv_list
         for pkg in pkgs:
-            cpv = id_to_cpv(pkg)
+            cpv = self.id_to_cpv(pkg)
 
             if not self.is_cpv_valid(cpv):
                 self.error(ERROR_PACKAGE_NOT_FOUND,
@@ -1531,7 +1534,7 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
         cpv_list = []
 
         for pkg in pkgs:
-            cpv = id_to_cpv(pkg)
+            cpv = self.id_to_cpv(pkg)
 
             if not self.is_cpv_valid(cpv):
                 self.error(ERROR_UPDATE_NOT_FOUND,
commit 98432b2855da772cd9bc4dd76f22512823b999c5
Author: Mounir Lamouri (volkmar) <mounir.lamouri at gmail.com>
Date:   Sat Aug 15 16:08:48 2009 +0200

    portage:
    -get-details show a cleanier LICENSE info
    -get_metadata is now able to add cache keys
    -misc cleaning

diff --git a/backends/portage/portageBackend.py b/backends/portage/portageBackend.py
index c2c12d5..1639807 100755
--- a/backends/portage/portageBackend.py
+++ b/backends/portage/portageBackend.py
@@ -306,6 +306,12 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
         self.pvar.settings["PORTAGE_ELOG_SYSTEM"] = ' '.join(elogs)
         '''
 
+    def get_ebuild_settings(self, cpv, metadata):
+        settings = portage.config(clone=self.pvar.settings)
+        settings.setcpv(cpv, mydb=metadata)
+
+        return settings
+
     # TODO: should be removed when using non-verbose function API
     def block_output(self):
         null_out = open('/dev/null', 'w')
@@ -372,11 +378,20 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
 
         return newer
 
-    def get_metadata(self, cpv, keys, in_dict = False):
+    def get_metadata(self, cpv, keys, in_dict = False, add_cache_keys = False):
+        '''
+        This function returns required metadata.
+        If in_dict is True, metadata is returned in a dict object.
+        If add_cache_keys is True, cached keys are added to keys in parameter.
+        '''
         if self.is_installed(cpv):
             aux_get = self.pvar.vardb.aux_get
+            if add_cache_keys:
+                keys.extend(list(self.pvar.vardb._aux_cache_keys))
         else:
             aux_get = self.pvar.portdb.aux_get
+            if add_cache_keys:
+                keys.extend(list(self.pvar.portdb._aux_cache_keys))
 
         if in_dict:
             return dict(izip(keys, aux_get(cpv, keys)))
@@ -399,8 +414,7 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
                 size = int(size)
         else:
             root_config = self.pvar.trees[self.pvar.settings["ROOT"]]["root_config"]
-            db_keys = list(self.pvar.portdb._aux_cache_keys)
-            metadata = self.get_metadata(cpv, db_keys, in_dict=True)
+            metadata = self.get_metadata(cpv, ["IUSE", "SLOT"], in_dict=True)
 
             package = _emerge.Package.Package(
                     type_name="ebuild",
@@ -408,8 +422,7 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
                     installed=False,
                     root_config=root_config,
                     cpv=cpv,
-                    metadata=metadata,
-                    operation="uninstall")
+                    metadata=metadata)
 
             fetch_file = self.pvar.portdb.getfetchsizes(package[2],
                     package.use.enabled)
@@ -761,11 +774,21 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
                         "Package %s was not found" % pkg)
                 continue
 
-            homepage, desc, license = self.get_metadata(cpv,
-                    ["HOMEPAGE", "DESCRIPTION", "LICENSE"])
+            metadata = self.get_metadata(cpv,
+                    ["DESCRIPTION", "HOMEPAGE", "IUSE", "LICENSE", "SLOT"],
+                    in_dict=True)
+
+            # use conditionals info in LICENSE and remove ||
+            ebuild_settings = self.get_ebuild_settings(cpv, metadata)
+            license = set(portage.flatten(portage.dep.use_reduce(
+                portage.dep.paren_reduce(metadata["LICENSE"]),
+                uselist=ebuild_settings.get("USE", "").split())))
+            license.discard('||')
+            license = ' '.join(license)
 
             self.details(self.cpv_to_id(cpv), license, get_group(cpv),
-                    desc, homepage, self.get_size(cpv))
+                    metadata["DESCRIPTION"], metadata["HOMEPAGE"],
+                    self.get_size(cpv))
 
             pkg_processed += 100.0
             self.percentage(int(pkg_processed/nb_pkg))
@@ -1224,9 +1247,9 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
             packages.append(package)
 
         # and now, packages we want really to remove
-        db_keys = list(self.pvar.portdb._aux_cache_keys)
         for cpv in cpv_list:
-            metadata = self.get_metadata(cpv, db_keys, in_dict=True)
+            metadata = self.get_metadata(cpv, [],
+                    in_dict=True, add_cache_keys=True)
             package = _emerge.Package.Package(
                     type_name="ebuild",
                     built=True,
@@ -1236,7 +1259,6 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
                     metadata=metadata,
                     operation="uninstall")
             packages.append(package)
-        del db_keys
 
         # need to define favorites to remove packages from world set
         favorites = []
commit 1a384df72ebef40d1f6a48a5471afb4613f89228
Author: Mounir Lamouri (volkmar) <mounir.lamouri at gmail.com>
Date:   Sat Aug 15 12:06:59 2009 +0200

    portage: remove removed packages from world set  by adding them to favorites
    (actually, need a fix in portage trunk which is ready to be commited)

diff --git a/backends/portage/portageBackend.py b/backends/portage/portageBackend.py
index c4c9c1e..c2c12d5 100755
--- a/backends/portage/portageBackend.py
+++ b/backends/portage/portageBackend.py
@@ -1238,12 +1238,17 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
             packages.append(package)
         del db_keys
 
+        # need to define favorites to remove packages from world set
+        favorites = []
+        for p in packages:
+            favorites.append('=' + p.cpv)
+
         # now, we can remove
         try:
             self.block_output()
             mergetask = _emerge.Scheduler.Scheduler(self.pvar.settings,
                     self.pvar.trees, self.pvar.mtimedb, mergelist=packages,
-                    myopts={}, spinner=None, favorites=[], digraph=None)
+                    myopts={}, spinner=None, favorites=favorites, digraph=None)
             mergetask.merge()
         finally:
             self.unblock_output()
commit 0797220bb80f26354e586da469728f2b143e2a2e
Author: Adrien BUSTANY <madcat at mymadcat.com>
Date:   Fri Aug 14 12:13:01 2009 -0400

    PackageKit-Qt : properly remove the old PolicyKit files

diff --git a/lib/packagekit-qt/src/Makefile.am b/lib/packagekit-qt/src/Makefile.am
index 2567b7f..d203e61 100644
--- a/lib/packagekit-qt/src/Makefile.am
+++ b/lib/packagekit-qt/src/Makefile.am
@@ -6,7 +6,6 @@ INCLUDES = \
 	$(QTCORE_CFLAGS)					\
 	$(QTDBUS_CFLAGS)					\
 	$(QTSQL_CFLAGS)						\
-	$(POLKIT_CFLAGS)					\
 	-DPACKAGE_LOCALE_DIR=\""$(prefix)/$(DATADIRNAME)/locale"\"
 
 METASOURCES = AUTO
@@ -29,7 +28,6 @@ $(libpackagekit_qt_la_OBJECTS) :				\
 	clientprivate.moc					\
 	daemonproxy.moc						\
 	package.moc						\
-	polkitclient.moc					\
 	transaction.moc						\
 	transactionprivate.moc					\
 	transactionproxy.moc					\
@@ -52,8 +50,6 @@ libpackagekit_qt_la_SOURCES =					\
 	transactionproxy.cpp					\
 	package.h						\
 	package.cpp						\
-	polkitclient.h						\
-	polkitclient.cpp					\
 	util.h							\
 	util.cpp						\
 	$(NULL)
@@ -62,7 +58,6 @@ libpackagekit_qt_la_LIBADD =					\
 	$(QTCORE_LIBS)						\
 	$(QTDBUS_LIBS)						\
 	$(QTSQL_LIBS)						\
-	$(POLKIT_LIBS)						\
 	$(NULL)
 
 libpackagekit_qt_la_CFLAGS =					\
diff --git a/lib/packagekit-qt/src/client.cpp b/lib/packagekit-qt/src/client.cpp
index 1a1ed9c..4002e85 100644
--- a/lib/packagekit-qt/src/client.cpp
+++ b/lib/packagekit-qt/src/client.cpp
@@ -25,7 +25,6 @@
 
 #include "common.h"
 #include "daemonproxy.h"
-#include "polkitclient.h"
 #include "transaction.h"
 #include "transactionprivate.h"
 #include "transactionproxy.h"
diff --git a/lib/packagekit-qt/src/polkitclient.cpp b/lib/packagekit-qt/src/polkitclient.cpp
deleted file mode 100644
index 5623c31..0000000
--- a/lib/packagekit-qt/src/polkitclient.cpp
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * This file is part of the QPackageKit project
- * Copyright (C) 2008 Adrien Bustany <madcat at mymadcat.com>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB. If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-#include "config.h"
-
-#include "polkitclient.h"
-
-using namespace PackageKit;
-
-PolkitClient* PolkitClient::m_instance = NULL;
-PolkitClient* PolkitClient::instance()
-{
-	if(!m_instance)
-		m_instance = new PolkitClient(qApp);
-	return m_instance;
-}
-
-PolkitClient::PolkitClient(QObject *parent) : QObject(parent) {
-}
-
-#if 0
-
-#ifdef USE_SECURITY_POLKIT
-bool PolkitClient::getAuth(const QString &action) {
-	DBusError e;
-	dbus_error_init(&e);
-
-	if(polkit_check_auth(QCoreApplication::applicationPid(), action.toAscii().data(), NULL))
-		return true;
-
-	bool auth = polkit_auth_obtain(action.toAscii().data(), 0, QCoreApplication::applicationPid(), &e);
-	if(!auth) {
-		qDebug() << "Authentification error :" << e.name << ":" << e.message;
-	}
-
-	return auth;
-}
-#else
-bool PolkitClient::getAuth(const QString &action) {
-	qDebug() << "Not configured with old PolicyKit support";
-	return false;
-}
-#endif
-#endif
-
-#include "polkitclient.moc"
-
diff --git a/lib/packagekit-qt/src/polkitclient.h b/lib/packagekit-qt/src/polkitclient.h
deleted file mode 100644
index 4788951..0000000
--- a/lib/packagekit-qt/src/polkitclient.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * This file is part of the QPackageKit project
- * Copyright (C) 2008 Adrien Bustany <madcat at mymadcat.com>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB. If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifndef POLKITCLIENT_H
-#define POLKITCLIENT_H
-
-#include <QtCore>
-
-namespace PackageKit {
-
-class PolkitClient : QObject{
-
-	Q_OBJECT
-
-public:
-	static PolkitClient* instance();
-#if 0
-	bool getAuth(const QString& action);
-#endif
-private:
-	static PolkitClient* m_instance;
-	PolkitClient(QObject *parent = 0);
-
-};
-
-} // End namespace PackageKit
-
-#endif
diff --git a/lib/packagekit-qt/src/transaction.cpp b/lib/packagekit-qt/src/transaction.cpp
index fa92a73..3657bb5 100644
--- a/lib/packagekit-qt/src/transaction.cpp
+++ b/lib/packagekit-qt/src/transaction.cpp
@@ -24,7 +24,6 @@
 #include "package.h"
 #include "transactionprivate.h"
 #include "transactionproxy.h"
-#include "polkitclient.h"
 #include "util.h"
 
 using namespace PackageKit;
commit f39366aeab11eca927bc4489130e117366e84618
Author: Adrien BUSTANY <madcat at mymadcat.com>
Date:   Fri Aug 14 11:42:22 2009 -0400

    PackageKit-Qt : Fix undefined symbol daemonErrorFromDBusReply

diff --git a/lib/packagekit-qt/src/client.cpp b/lib/packagekit-qt/src/client.cpp
index 1294d1b..1a1ed9c 100644
--- a/lib/packagekit-qt/src/client.cpp
+++ b/lib/packagekit-qt/src/client.cpp
@@ -53,6 +53,10 @@ using namespace PackageKit;
 
 Client* Client::m_instance = 0;
 
+template<class T> Client::DaemonError daemonErrorFromDBusReply (QDBusReply<T> e) {
+	return Util::errorFromString (e.error ().name ());
+}
+
 Client* Client::instance()
 {
 	if(!m_instance)
@@ -437,8 +441,5 @@ void Client::setTransactionError (Transaction* t, DaemonError e)
 	t->d->error = e;
 }
 
-template<class T> Client::DaemonError daemonErrorFromDBusReply (QDBusReply<T> e) {
-	return Util::errorFromString (e.error ().name ());
-}
 #include "client.moc"
 
diff --git a/lib/packagekit-qt/src/client.h b/lib/packagekit-qt/src/client.h
index 6e5bee2..1c0179b 100644
--- a/lib/packagekit-qt/src/client.h
+++ b/lib/packagekit-qt/src/client.h
@@ -764,7 +764,6 @@ private:
 
 	void setLastError (DaemonError e);
 	void setTransactionError (Transaction* t, DaemonError e);
-	template<class T> DaemonError daemonErrorFromDBusReply (QDBusReply<T> e);
 };
 Q_DECLARE_OPERATORS_FOR_FLAGS(Client::Actions)
 Q_DECLARE_OPERATORS_FOR_FLAGS(Client::Filters)
commit 86a8a76a3007402c8cfcac0c3ad6a2a360cdeefe
Merge: 774900f... 5c52741...
Author: Daniel Nicoletti <dantti85-pk at yahoo.com.br>
Date:   Fri Aug 14 12:47:02 2009 -0300

    Merge branch 'master' of git+ssh://dantti@git.packagekit.org/srv/git/PackageKit

commit 774900f5e61b666c3ce32e6560172343c08d1d12
Author: Daniel Nicoletti <dantti85-pk at yahoo.com.br>
Date:   Fri Aug 14 12:44:17 2009 -0300

    Removed default values from getDepends, getRequires and removePackages.

diff --git a/lib/packagekit-qt/src/client.h b/lib/packagekit-qt/src/client.h
index e14e463..6e5bee2 100644
--- a/lib/packagekit-qt/src/client.h
+++ b/lib/packagekit-qt/src/client.h
@@ -536,8 +536,8 @@ public:
 	 * \sa Transaction::package
 	 *
 	 */
-	Transaction* getDepends(const QList<Package*>& packages, Filters filters = NoFilter, bool recursive = true);
-	Transaction* getDepends(Package* package, Filters filters = NoFilter, bool recursive = true);
+	Transaction* getDepends(const QList<Package*>& packages, Filters filters, bool recursive);
+	Transaction* getDepends(Package* package, Filters filters , bool recursive);
 
 	/**
 	 * Gets more details about the given \p packages
@@ -580,8 +580,8 @@ public:
 	 * The search can be limited using the \p filters parameter. The recursive flag is used to tell
 	 * if the package manager should also search for the package requiring the resulting packages.
 	 */
-	Transaction* getRequires(const QList<Package*>& packages, Filters filters = NoFilter, bool recursive = true);
-	Transaction* getRequires(Package* package, Filters filters = NoFilter, bool recursive = true);
+	Transaction* getRequires(const QList<Package*>& packages, Filters filters, bool recursive);
+	Transaction* getRequires(Package* package, Filters filters, bool recursive);
 
 	/**
 	 * Retrieves more details about the update for the given \p packages
@@ -633,11 +633,11 @@ public:
 	 * \brief Removes the given \p packages
 	 *
 	 * \p allow_deps if the package manager has the right to remove other packages which depend on the
-	 * pacakges to be removed. \p autoremove tells the package manager to remove all the package which
+	 * packages to be removed. \p autoremove tells the package manager to remove all the package which
 	 * won't be needed anymore after the packages are uninstalled.
 	 */
-	Transaction* removePackages(const QList<Package*>& packages, bool allow_deps = false, bool autoremove = false);
-	Transaction* removePackage(Package* p, bool allow_deps = false, bool autoremove = false);
+	Transaction* removePackages(const QList<Package*>& packages, bool allow_deps, bool autoremove);
+	Transaction* removePackage(Package* p, bool allow_deps, bool autoremove);
 
 	/**
 	 * Activates or disables a repository
commit 5c527413cb27a695ebccfa2488f1c07fb53d68e6
Merge: 42d78ba... 0d2ca63...
Author: Mounir Lamouri (volkmar) <mounir.lamouri at gmail.com>
Date:   Fri Aug 14 15:43:20 2009 +0200

    Merge branch 'master' of git+ssh://volkmar@git.packagekit.org/srv/git/PackageKit

commit 0d2ca6302e0a6d0be3c114a9bf5f6af233e97bb6
Merge: 3752afb... 89360ee...
Author: Mounir Lamouri (volkmar) <mounir.lamouri at gmail.com>
Date:   Fri Aug 14 17:39:49 2009 +0200

    Merge branch 'master' of git+ssh://volkmar@git.packagekit.org/srv/git/PackageKit

commit 42d78ba820b8b2f20137bfa9587e3115a3f84a4e
Author: Mounir Lamouri (volkmar) <mounir.lamouri at gmail.com>
Date:   Fri Aug 14 15:42:11 2009 +0200

    portage: fix search-files doublon results when a package has many files
    with the key in the name

diff --git a/backends/portage/portageBackend.py b/backends/portage/portageBackend.py
index 5a03631..02473c5 100755
--- a/backends/portage/portageBackend.py
+++ b/backends/portage/portageBackend.py
@@ -1406,6 +1406,7 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
                 if (is_full_path and key == f) \
                 or (not is_full_path and searchre.search(f)):
                     self.package(cpv)
+                    break
 
             cpv_processed += 100.0
             self.percentage(int(cpv_processed/nb_cpv))
commit 89360ee7b3bf38783cab78ded1008252f11e73de
Author: Mounir Lamouri (volkmar) <mounir.lamouri at gmail.com>
Date:   Fri Aug 14 15:10:20 2009 +0200

    portage: moving every portage/emerge vars to a PortageBridge class
    let a simplier access to those vars
    let a better control of those vars (like updating before backend destroy)

diff --git a/backends/portage/portageBackend.py b/backends/portage/portageBackend.py
index c53d2c7..5a03631 100755
--- a/backends/portage/portageBackend.py
+++ b/backends/portage/portageBackend.py
@@ -263,15 +263,35 @@ def is_repository_enabled(layman_db, repo_name):
         return True
     return False
 
+class PortageBridge():
+    '''
+    Bridge to portage/emerge settings and variabales to help using them
+    and be sure they are always up-to-date.
+    '''
+
+    def __init__(self):
+        self.settings = None
+        self.trees = None
+        self.mtimedb = None
+        self.vardb = None
+        self.portdb = None
+
+        self.update()
+
+    def update(self):
+        self.settings, self.trees, self.mtimedb = \
+                _emerge.actions.load_emerge_config()
+        self.vardb = self.trees[self.settings['ROOT']]['vartree'].dbapi
+        self.portdb = self.trees[self.settings['ROOT']]['porttree'].dbapi
+
+
 class PackageKitPortageBackend(PackageKitBaseBackend):
 
     def __init__(self, args):
         signal.signal(signal.SIGQUIT, sigquit)
         PackageKitBaseBackend.__init__(self, args)
 
-        self.psettings = portage.config()
-        self.vardb = portage.db[portage.settings["ROOT"]]["vartree"].dbapi
-        #self.portdb = portage.db[portage.settings["ROOT"]]["porttree"].dbapi
+        self.pvar = PortageBridge()
 
         # TODO: should be removed when using non-verbose function API
         self.orig_out = None
@@ -281,9 +301,9 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
         '''
         def filter_echo(x): return x != 'echo'
 
-        elogs = self.psettings["PORTAGE_ELOG_SYSTEM"].split()
+        elogs = self.pvar.settings["PORTAGE_ELOG_SYSTEM"].split()
         elogs = filter(filter_echo, elogs)
-        self.psettings["PORTAGE_ELOG_SYSTEM"] = ' '.join(elogs)
+        self.pvar.settings["PORTAGE_ELOG_SYSTEM"] = ' '.join(elogs)
         '''
 
     # TODO: should be removed when using non-verbose function API
@@ -300,7 +320,7 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
         sys.stderr = self.orig_err
 
     def is_installed(self, cpv):
-        if self.vardb.cpv_exists(cpv):
+        if self.pvar.vardb.cpv_exists(cpv):
             return True
         return False
 
@@ -308,16 +328,16 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
         if self.is_installed(cpv):
             # actually if is_installed return True that means cpv is in db
             return True
-        elif portage.portdb.cpv_exists(cpv):
+        elif self.pvar.portdb.cpv_exists(cpv):
             return True
 
         return False
 
     def get_file_list(self, cpv):
         cat, pv = portage.catsplit(cpv)
-        db = portage.dblink(cat, pv, portage.settings["ROOT"],
-                self.psettings, treetype="vartree",
-                vartree=self.vardb)
+        db = portage.dblink(cat, pv, self.pvar.settings['ROOT'],
+                self.pvar.settings, treetype="vartree",
+                vartree=self.pvar.vardb)
 
         contents = db.getcontents()
         if not contents:
@@ -354,9 +374,9 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
 
     def get_metadata(self, cpv, keys, in_dict = False):
         if self.is_installed(cpv):
-            aux_get = self.vardb.aux_get
+            aux_get = self.pvar.vardb.aux_get
         else:
-            aux_get = portage.portdb.aux_get
+            aux_get = self.pvar.portdb.aux_get
 
         if in_dict:
             return dict(izip(keys, aux_get(cpv, keys)))
@@ -378,9 +398,8 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
             else:
                 size = int(size)
         else:
-            settings, trees, _ = _emerge.actions.load_emerge_config()
-            root_config = trees[self.psettings["ROOT"]]["root_config"]
-            db_keys = list(portage.portdb._aux_cache_keys)
+            root_config = self.pvar.trees[self.pvar.settings["ROOT"]]["root_config"]
+            db_keys = list(self.pvar.portdb._aux_cache_keys)
             metadata = self.get_metadata(cpv, db_keys, in_dict=True)
 
             package = _emerge.Package.Package(
@@ -392,7 +411,7 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
                     metadata=metadata,
                     operation="uninstall")
 
-            fetch_file = portage.portdb.getfetchsizes(package[2],
+            fetch_file = self.pvar.portdb.getfetchsizes(package[2],
                     package.use.enabled)
             for f in fetch_file:
                 size += fetch_file[f]
@@ -417,24 +436,27 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
 
         def _has_validLicense(cpv):
             metadata = self.get_metadata(cpv, ["LICENSE", "USE", "SLOT"], True)
-            return not self.psettings._getMissingLicenses(cpv, metadata)
+            return not self.pvar.settings._getMissingLicenses(cpv, metadata)
 
         if FILTER_FREE in fltlist or FILTER_NOT_FREE in fltlist:
             free_licenses = "@FSF-APPROVED"
             if FILTER_FREE in fltlist:
                 licenses = "-* " + free_licenses
-            else:
+            elif FILTER_NOT_FREE in fltlist:
                 licenses = "* -" + free_licenses
-            backup_license = self.psettings["ACCEPT_LICENSE"]
-            self.psettings["ACCEPT_LICENSE"] = licenses
-            self.psettings.backup_changes("ACCEPT_LICENSE")
-            self.psettings.regenerate()
+            backup_license = self.pvar.settings["ACCEPT_LICENSE"]
+
+            self.pvar.settings.unlock()
+            self.pvar.settings["ACCEPT_LICENSE"] = licenses
+            self.pvar.settings.backup_changes("ACCEPT_LICENSE")
+            self.pvar.settings.regenerate()
 
             cpv_list = filter(_has_validLicense, cpv_list)
 
-            self.psettings["ACCEPT_LICENSE"] = backup_license
-            self.psettings.backup_changes("ACCEPT_LICENSE")
-            self.psettings.regenerate()
+            self.pvar.settings["ACCEPT_LICENSE"] = backup_license
+            self.pvar.settings.backup_changes("ACCEPT_LICENSE")
+            self.pvar.settings.regenerate()
+            self.pvar.settings.lock()
 
         return cpv_list
 
@@ -481,13 +503,13 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
         cp_list = []
 
         if FILTER_INSTALLED in fltlist:
-            cp_list = self.vardb.cp_all()
+            cp_list = self.pvar.vardb.cp_all()
         elif FILTER_NOT_INSTALLED in fltlist:
-            cp_list = portage.portdb.cp_all()
+            cp_list = self.pvar.portdb.cp_all()
         else:
             # need installed packages first
-            cp_list = self.vardb.cp_all()
-            for cp in portage.portdb.cp_all():
+            cp_list = self.pvar.vardb.cp_all()
+            for cp in self.pvar.portdb.cp_all():
                 if cp not in cp_list:
                     cp_list.append(cp)
 
@@ -506,14 +528,14 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
 
         # populate cpv_list taking care of installed filter
         if FILTER_INSTALLED in fltlist:
-            cpv_list = self.vardb.match(cp)
+            cpv_list = self.pvar.vardb.match(cp)
         elif FILTER_NOT_INSTALLED in fltlist:
-            for cpv in portage.portdb.match(cp):
+            for cpv in self.pvar.portdb.match(cp):
                 if not self.is_installed(cpv):
                     cpv_list.append(cpv)
         else:
-            cpv_list = self.vardb.match(cp)
-            for cpv in portage.portdb.match(cp):
+            cpv_list = self.pvar.vardb.match(cp)
+            for cpv in self.pvar.portdb.match(cp):
                 if cpv not in cpv_list:
                     cpv_list.append(cpv)
 
@@ -535,7 +557,7 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
                 ["KEYWORDS", "repository", "SLOT"])
 
         pkg_keywords = pkg_keywords.split()
-        sys_keywords = self.psettings["ACCEPT_KEYWORDS"].split()
+        sys_keywords = self.pvar.settings["ACCEPT_KEYWORDS"].split()
         keywords = []
 
         for x in sys_keywords:
@@ -544,7 +566,8 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
 
         # if no keywords, check in package.keywords
         if not keywords:
-            key_dict = self.psettings.pkeywordsdict.get(portage.dep_getkey(cpv))
+            key_dict = self.pvar.settings.pkeywordsdict.get(
+                    portage.dep_getkey(cpv))
             if key_dict:
                 for _, keys in key_dict.iteritems():
                     for x in keys:
@@ -567,10 +590,10 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
 
         return get_package_id(package, version, ' '.join(keywords), repo)
 
-    def get_packages_required(self, cpv_input, settings, trees, recursive):
+    def get_packages_required(self, cpv_input, recursive):
         '''
-        Get a list of cpv, portage settings and tree and recursive parameter
-        And returns the list of packages required for cpv list
+        Get a list of cpv and recursive parameter.
+        Returns the list of packages required for cpv list.
         '''
         packages_list = []
 
@@ -580,8 +603,8 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
 
         myparams = _emerge.create_depgraph_params.create_depgraph_params(
                 myopts, "remove")
-        depgraph = _emerge.depgraph.depgraph(settings, trees, myopts,
-                myparams, None)
+        depgraph = _emerge.depgraph.depgraph(self.pvar.settings,
+                self.pvar.trees, myopts, myparams, None)
 
         # TODO: atm, using FILTER_INSTALLED because it's quicker
         # and we don't want to manage non-installed packages
@@ -590,7 +613,7 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
                 depgraph._dynamic_config._dep_stack.append(
                         _emerge.Dependency.Dependency(
                             atom=portage.dep.Atom('=' + cpv),
-                            root=portage.settings["ROOT"], parent=None))
+                            root=self.pvar.settings["ROOT"], parent=None))
 
         if not depgraph._complete_graph():
             self.error(ERROR_INTERNAL_ERROR, "Error when generating depgraph")
@@ -657,12 +680,11 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
         myopts = {}
         myopts["--selective"] = True
         myopts["--deep"] = True
-        settings, trees, _ = _emerge.actions.load_emerge_config()
         myparams = _emerge.create_depgraph_params.create_depgraph_params(
                 myopts, "")
 
         depgraph = _emerge.depgraph.depgraph(
-                settings, trees, myopts, myparams, None)
+                self.pvar.settings, self.pvar.trees, myopts, myparams, None)
         retval, fav = depgraph.select_files(cpv_input)
 
         if not retval:
@@ -862,10 +884,7 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
 
             cpv_input.append(cpv)
 
-        settings, trees, _ = _emerge.actions.load_emerge_config()
-
-        packages_list = self.get_packages_required(cpv_input,
-                settings, trees, recursive)
+        packages_list = self.get_packages_required(cpv_input, recursive)
 
         # now we can populate cpv_list
         cpv_list = []
@@ -897,10 +916,10 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
 
             cpv = id_to_cpv(pkg)
 
-            if not portage.portdb.cpv_exists(cpv):
+            if not self.pvar.portdb.cpv_exists(cpv):
                 self.message(MESSAGE_COULD_NOT_FIND_PACKAGE, "could not find %s" % pkg)
 
-            for cpv in self.vardb.match(portage.pkgsplit(cpv)[0]):
+            for cpv in self.pvar.vardb.match(portage.pkgsplit(cpv)[0]):
                 updates.append(cpv)
             updates = "&".join(updates)
 
@@ -936,8 +955,7 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
 
         fltlist = filters.split(';')
 
-        settings, trees, _ = _emerge.actions.load_emerge_config()
-        root_config = trees[self.psettings["ROOT"]]["root_config"]
+        root_config = self.pvar.trees[self.pvar.settings["ROOT"]]["root_config"]
 
         update_candidates = []
         cpv_updates = {}
@@ -952,8 +970,8 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
 
         # check if a candidate can be updated
         for cp in update_candidates:
-            cpv_list_inst = self.vardb.match(cp)
-            cpv_list_avai = portage.portdb.match(cp)
+            cpv_list_inst = self.pvar.vardb.match(cp)
+            cpv_list_avai = self.pvar.portdb.match(cp)
 
             cpv_dict_inst = self.get_cpv_slotted(cpv_list_inst)
             cpv_dict_avai = self.get_cpv_slotted(cpv_list_avai)
@@ -984,7 +1002,7 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
 
                 # no update for this slot
                 if len(cpv_list_updates) == 0:
-                    if [cpv_inst] == portage.portdb.visible([cpv_inst]):
+                    if [cpv_inst] == self.pvar.portdb.visible([cpv_inst]):
                         break # really no update
                     else:
                         # that's actually a downgrade or even worst
@@ -1076,7 +1094,6 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
         # creating installation depgraph
         myopts = {}
         favorites = []
-        settings, trees, mtimedb = _emerge.actions.load_emerge_config()
         myparams = _emerge.create_depgraph_params.create_depgraph_params(
                 myopts, "")
 
@@ -1092,8 +1109,8 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
         settings.regenerate()
         '''
 
-        depgraph = _emerge.depgraph.depgraph(settings, trees,
-                myopts, myparams, None)
+        depgraph = _emerge.depgraph.depgraph(self.pvar.settings,
+                self.pvar.trees, myopts, myparams, None)
         retval, favorites = depgraph.select_files(cpv_list)
         if not retval:
             self.error(ERROR_INTERNAL_ERROR,
@@ -1103,9 +1120,9 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
         try:
             self.block_output()
             # compiling/installing
-            mergetask = _emerge.Scheduler.Scheduler(settings, trees, mtimedb,
-                    myopts, None, depgraph.altlist(),
-                    favorites, depgraph.schedulerGraph())
+            mergetask = _emerge.Scheduler.Scheduler(self.pvar.settings,
+                    self.pvar.trees, self.pvar.mtimedb, myopts, None,
+                    depgraph.altlist(), favorites, depgraph.schedulerGraph())
             mergetask.merge()
         finally:
             self.unblock_output()
@@ -1119,14 +1136,13 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
         self.percentage(None)
 
         myopts = {'--quiet': True}
-        settings, trees, mtimedb = _emerge.actions.load_emerge_config()
 
         # get installed and available dbs
         installed_layman_db = layman.db.DB(layman.config.Config())
 
         if force:
             timestamp_path = os.path.join(
-                    settings["PORTDIR"], "metadata", "timestamp.chk")
+                    self.pvar.settings["PORTDIR"], "metadata", "timestamp.chk")
             if os.access(timestamp_path, os.F_OK):
                 os.remove(timestamp_path)
 
@@ -1134,7 +1150,8 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
             self.block_output()
             for o in installed_layman_db.overlays.keys():
                 installed_layman_db.sync(o, True)
-            _emerge.actions.action_sync(settings, trees, mtimedb, myopts, "")
+            _emerge.actions.action_sync(self.pvar.settings, self.pvar.trees,
+                    self.pvar.mtimedb, myopts, "")
         except:
             self.error(ERROR_INTERNAL_ERROR, traceback.format_exc())
         finally:
@@ -1150,8 +1167,7 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
         required_packages = []
         system_packages = []
 
-        settings, trees, mtimedb = _emerge.actions.load_emerge_config()
-        root_config = trees[self.psettings["ROOT"]]["root_config"]
+        root_config = self.pvar.trees[self.pvar.settings["ROOT"]]["root_config"]
 
         # get system packages
         set = portage.sets.base.InternalPackageSet(
@@ -1187,8 +1203,7 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
                     "Portage backend do not implement autoremove option")
 
         # get packages needing candidates for removal
-        required_packages = self.get_packages_required(cpv_list,
-                settings, trees, recursive=True)
+        required_packages = self.get_packages_required(cpv_list, recursive=True)
 
         # if there are required packages, allowdep must be on
         if required_packages and not allowdep:
@@ -1209,7 +1224,7 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
             packages.append(package)
 
         # and now, packages we want really to remove
-        db_keys = list(portage.portdb._aux_cache_keys)
+        db_keys = list(self.pvar.portdb._aux_cache_keys)
         for cpv in cpv_list:
             metadata = self.get_metadata(cpv, db_keys, in_dict=True)
             package = _emerge.Package.Package(
@@ -1226,9 +1241,9 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
         # now, we can remove
         try:
             self.block_output()
-            mergetask = _emerge.Scheduler.Scheduler(settings,
-                    trees, mtimedb, mergelist=packages, myopts={},
-                    spinner=None, favorites=[], digraph=None)
+            mergetask = _emerge.Scheduler.Scheduler(self.pvar.settings,
+                    self.pvar.trees, self.pvar.mtimedb, mergelist=packages,
+                    myopts={}, spinner=None, favorites=[], digraph=None)
             mergetask.merge()
         finally:
             self.unblock_output()
@@ -1372,7 +1387,7 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
                     "search-file isn't available with ~installed filter")
             return
 
-        cpv_list = self.vardb.cpv_all()
+        cpv_list = self.pvar.vardb.cpv_all()
         nb_cpv = 0.0
         cpv_processed = 0.0
         is_full_path = True
@@ -1478,12 +1493,11 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
         # creating update depgraph
         myopts = {}
         favorites = []
-        settings, trees, mtimedb = _emerge.actions.load_emerge_config()
         myparams = _emerge.create_depgraph_params.create_depgraph_params(
                 myopts, "")
 
-        depgraph = _emerge.depgraph.depgraph(settings, trees,
-                myopts, myparams, None)
+        depgraph = _emerge.depgraph.depgraph(self.pvar.settings,
+                self.pvar.trees, myopts, myparams, None)
         retval, favorites = depgraph.select_files(cpv_list)
         if not retval:
             self.error(ERROR_INTERNAL_ERROR,
@@ -1493,9 +1507,9 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
         try:
             self.block_output()
             # compiling/installing
-            mergetask = _emerge.Scheduler.Scheduler(settings, trees, mtimedb,
-                    myopts, None, depgraph.altlist(),
-                    favorites, depgraph.schedulerGraph())
+            mergetask = _emerge.Scheduler.Scheduler(self.pvar.settings,
+                    self.pvar.trees, self.pvar.mtimedb, myopts, None,
+                    depgraph.altlist(), favorites, depgraph.schedulerGraph())
             mergetask.merge()
         finally:
             self.unblock_output()
@@ -1515,14 +1529,13 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
         myopts["--newuse"] = True
         myopts["--update"] = True
 
-        settings, trees, mtimedb = _emerge.actions.load_emerge_config()
         myparams = _emerge.create_depgraph_params.create_depgraph_params(
                 myopts, "")
 
         # creating list of ebuilds needed for the system update
         # using backtrack_depgraph to prevent errors
         retval, depgraph, _ = _emerge.depgraph.backtrack_depgraph(
-                settings, trees, myopts, myparams, "",
+                self.pvar.settings, self.pvar.trees, myopts, myparams, "",
                 ["@system", "@world"], None)
         if not retval:
             self.error(ERROR_INTERNAL_ERROR,
@@ -1532,9 +1545,9 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
         try:
             self.block_output()
             # compiling/installing
-            mergetask = _emerge.Scheduler.Scheduler(settings, trees, mtimedb,
-                    myopts, None, depgraph.altlist(),
-                    None, depgraph.schedulerGraph())
+            mergetask = _emerge.Scheduler.Scheduler(self.pvar.settings,
+                    self.pvar.trees, self.pvar.mtimedb, myopts, None,
+                    depgraph.altlist(), None, depgraph.schedulerGraph())
             mergetask.merge()
         finally:
             self.unblock_output()
commit faf0395939533b9e5923b0ce35380b2f89730f33
Author: Mounir Lamouri (volkmar) <mounir.lamouri at gmail.com>
Date:   Fri Aug 14 11:31:23 2009 +0200

    portage:
    show repo nome instead of repo description because too long
    this is fixing unicode issue in repo-list

diff --git a/backends/portage/portageBackend.py b/backends/portage/portageBackend.py
index c9291ec..c53d2c7 100755
--- a/backends/portage/portageBackend.py
+++ b/backends/portage/portageBackend.py
@@ -823,8 +823,7 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
             for o in available_layman_db.overlays.keys():
                 if available_layman_db.overlays[o].is_official() \
                         and available_layman_db.overlays[o].is_supported():
-                    self.repo_detail(o,
-                            available_layman_db.overlays[o].description,
+                    self.repo_detail(o, o,
                             is_repository_enabled(installed_layman_db, o))
 
     def get_requires(self, filters, pkgs, recursive):
commit 679d5eaf556437214aac09f00d33dd62b39791d1
Author: Mounir Lamouri (volkmar) <mounir.lamouri at gmail.com>
Date:   Fri Aug 14 08:42:21 2009 +0200

    portage: fix repo-list, showing devel repo when ~devel off instead of devel on

diff --git a/backends/portage/portageBackend.py b/backends/portage/portageBackend.py
index 6924881..c9291ec 100755
--- a/backends/portage/portageBackend.py
+++ b/backends/portage/portageBackend.py
@@ -819,7 +819,7 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
         # 'gentoo' is a dummy repo
         self.repo_detail('gentoo', 'Gentoo Portage tree', True)
 
-        if FILTER_DEVELOPMENT in fltlist:
+        if FILTER_NOT_DEVELOPMENT not in fltlist:
             for o in available_layman_db.overlays.keys():
                 if available_layman_db.overlays[o].is_official() \
                         and available_layman_db.overlays[o].is_supported():
commit 16ee9902aa34cd49bec009f3afec28ba06552f9b
Author: Adrien BUSTANY <madcat at mymadcat.com>
Date:   Thu Aug 13 17:29:20 2009 -0400

    PackageKit-Qt : Update the API to match PK 0.5, and handle DBus errors better

diff --git a/lib/packagekit-qt/src/client.cpp b/lib/packagekit-qt/src/client.cpp
index 2d65355..1294d1b 100644
--- a/lib/packagekit-qt/src/client.cpp
+++ b/lib/packagekit-qt/src/client.cpp
@@ -31,6 +31,24 @@
 #include "transactionproxy.h"
 #include "util.h"
 
+#define CREATE_NEW_TRANSACTION                      \
+		Transaction* t = d->createNewTransaction(); \
+		if (!t) {                                   \
+			setLastError (ErrorDaemonUnreachable);  \
+			return NULL;                            \
+		}                                           \
+
+#define CHECK_TRANSACTION                                          \
+		if (!r.isValid ()) {                                       \
+			setTransactionError (t, daemonErrorFromDBusReply (r)); \
+		}                                                          \
+
+#define RUN_TRANSACTION(blurb) \
+		CREATE_NEW_TRANSACTION \
+		QDBusReply<void> r = t->d->p->blurb;        \
+		CHECK_TRANSACTION      \
+		return t;              \
+
 using namespace PackageKit;
 
 Client* Client::m_instance = 0;
@@ -50,6 +68,8 @@ Client::Client(QObject* parent) : QObject(parent)
 	d->daemon = new DaemonProxy(PK_NAME, PK_PATH, QDBusConnection::systemBus(), this);
 	d->locale = QString();
 
+	d->error = NoError;
+
 	connect(d->daemon, SIGNAL(Locked(bool)), this, SIGNAL(locked(bool)));
 	connect(d->daemon, SIGNAL(NetworkStateChanged(const QString&)), d, SLOT(networkStateChanged(const QString&)));
 	connect(d->daemon, SIGNAL(RepoListChanged()), this, SIGNAL(repoListChanged()));
@@ -151,16 +171,15 @@ void Client::setLocale(const QString& locale)
 	d->locale = locale;
 }
 
-void Client::setProxy(const QString& http_proxy, const QString& ftp_proxy)
+bool Client::setProxy(const QString& http_proxy, const QString& ftp_proxy)
 {
-#if 0
-	if(!PolkitClient::instance()->getAuth(AUTH_SYSTEM_NETWORK_PROXY_CONFIGURE)) {
-		emit authError(AUTH_SYSTEM_NETWORK_PROXY_CONFIGURE);
-		return;
+	QDBusReply<void> r = d->daemon->SetProxy(http_proxy, ftp_proxy);
+	if (!r.isValid ()) {
+		setLastError (daemonErrorFromDBusReply (r));
+		return false;
+	} else {
+		return true;
 	}
-#endif
-
-	d->daemon->SetProxy(http_proxy, ftp_proxy);
 }
 
 void Client::stateHasChanged(const QString& reason)
@@ -175,42 +194,19 @@ void Client::suggestDaemonQuit()
 
 Client::DaemonError Client::getLastError ()
 {
-	return d->lastError;
+	return d->error;
 }
 
 ////// Transaction functions
 
 Transaction* Client::acceptEula(EulaInfo info)
 {
-#if 0
-	if(!PolkitClient::instance()->getAuth(AUTH_PACKAGE_EULA_ACCEPT)) {
-		emit authError(AUTH_PACKAGE_EULA_ACCEPT);
-		return NULL;
-	}
-#endif
-
-	Transaction* t = d->createNewTransaction();
-	if (!t) {
-		emit daemonError(DaemonUnreachable);
-		return NULL;
-	}
-
-	t->d->p->AcceptEula(info.id);
-
-	return t;
+	RUN_TRANSACTION(AcceptEula(info.id))
 }
 
 Transaction* Client::downloadPackages(const QList<Package*>& packages)
 {
-	Transaction* t = d->createNewTransaction();
-	if (!t) {
-		emit daemonError(DaemonUnreachable);
-		return NULL;
-	}
-
-	t->d->p->DownloadPackages(Util::packageListToPids(packages));
-
-	return t;
+	RUN_TRANSACTION(DownloadPackages(Util::packageListToPids(packages)))
 }
 
 Transaction* Client::downloadPackage(Package* package)
@@ -220,15 +216,7 @@ Transaction* Client::downloadPackage(Package* package)
 
 Transaction* Client::getDepends(const QList<Package*>& packages, Filters filters, bool recursive)
 {
-	Transaction* t = d->createNewTransaction();
-	if (!t) {
-		emit daemonError(DaemonUnreachable);
-		return NULL;
-	}
-
-	t->d->p->GetDepends(Util::filtersToString(filters), Util::packageListToPids(packages), recursive);
-
-	return t;
+	RUN_TRANSACTION(GetDepends(Util::filtersToString(filters), Util::packageListToPids(packages), recursive))
 }
 
 Transaction* Client::getDepends(Package* package, Filters filters, bool recursive)
@@ -238,17 +226,15 @@ Transaction* Client::getDepends(Package* package, Filters filters, bool recursiv
 
 Transaction* Client::getDetails(const QList<Package*>& packages)
 {
-	Transaction* t = d->createNewTransaction();
-	if (!t) {
-		emit daemonError(DaemonUnreachable);
-		return NULL;
-	}
+	CREATE_NEW_TRANSACTION
 
 	foreach(Package* p, packages) {
 		t->d->packageMap.insert(p->id(), p);
 	}
 
-	t->d->p->GetDetails(Util::packageListToPids(packages));
+	QDBusReply<void> r = t->d->p->GetDetails(Util::packageListToPids(packages));
+
+	CHECK_TRANSACTION
 
 	return t;
 }
@@ -260,15 +246,7 @@ Transaction* Client::getDetails(Package* package)
 
 Transaction* Client::getFiles(const QList<Package*>& packages)
 {
-	Transaction* t = d->createNewTransaction();
-	if (!t) {
-		emit daemonError(DaemonUnreachable);
-		return NULL;
-	}
-
-	t->d->p->GetFiles(Util::packageListToPids(packages));
-
-	return t;
+	RUN_TRANSACTION(GetFiles(Util::packageListToPids(packages)))
 }
 
 Transaction* Client::getFiles(Package* package)
@@ -278,54 +256,22 @@ Transaction* Client::getFiles(Package* package)
 
 Transaction* Client::getOldTransactions(uint number)
 {
-	Transaction* t = d->createNewTransaction();
-	if (!t) {
-		emit daemonError(DaemonUnreachable);
-		return NULL;
-	}
-
-	t->d->p->GetOldTransactions(number);
-
-	return t;
+	RUN_TRANSACTION(GetOldTransactions(number))
 }
 
 Transaction* Client::getPackages(Filters filters)
 {
-	Transaction* t = d->createNewTransaction();
-	if (!t) {
-		emit daemonError(DaemonUnreachable);
-		return NULL;
-	}
-
-	t->d->p->GetPackages(Util::filtersToString(filters));
-
-	return t;
+	RUN_TRANSACTION(GetPackages(Util::filtersToString(filters)))
 }
 
 Transaction* Client::getRepoList(Filters filters)
 {
-	Transaction* t = d->createNewTransaction();
-	if (!t) {
-		emit daemonError(DaemonUnreachable);
-		return NULL;
-	}
-
-	t->d->p->GetRepoList(Util::filtersToString(filters));
-
-	return t;
+	RUN_TRANSACTION(GetRepoList(Util::filtersToString(filters)))
 }
 
 Transaction* Client::getRequires(const QList<Package*>& packages, Filters filters, bool recursive)
 {
-	Transaction* t = d->createNewTransaction();
-	if (!t) {
-		emit daemonError(DaemonUnreachable);
-		return NULL;
-	}
-
-	t->d->p->GetRequires(Util::filtersToString(filters), Util::packageListToPids(packages), recursive);
-
-	return t;
+	RUN_TRANSACTION(GetRequires(Util::filtersToString(filters), Util::packageListToPids(packages), recursive))
 }
 
 Transaction* Client::getRequires(Package* package, Filters filters, bool recursive)
@@ -335,15 +281,7 @@ Transaction* Client::getRequires(Package* package, Filters filters, bool recursi
 
 Transaction* Client::getUpdateDetail(const QList<Package*>& packages)
 {
-	Transaction* t = d->createNewTransaction();
-	if (!t) {
-		emit daemonError(DaemonUnreachable);
-		return NULL;
-	}
-
-	t->d->p->GetUpdateDetail(Util::packageListToPids(packages));
-
-	return t;
+	RUN_TRANSACTION(GetUpdateDetail(Util::packageListToPids(packages)))
 }
 
 Transaction* Client::getUpdateDetail(Package* package)
@@ -353,49 +291,17 @@ Transaction* Client::getUpdateDetail(Package* package)
 
 Transaction* Client::getUpdates(Filters filters)
 {
-	Transaction* t = d->createNewTransaction();
-	if (!t) {
-		emit daemonError(DaemonUnreachable);
-		return NULL;
-	}
-
-	t->d->p->GetUpdates(Util::filtersToString(filters));
-
-	return t;
+	RUN_TRANSACTION(GetUpdates(Util::filtersToString(filters)))
 }
 
 Transaction* Client::getDistroUpgrades()
 {
-	Transaction* t = d->createNewTransaction();
-	if (!t) {
-		emit daemonError(DaemonUnreachable);
-		return NULL;
-	}
-
-	t->d->p->GetDistroUpgrades();
-
-	return t;
+	RUN_TRANSACTION(GetDistroUpgrades())
 }
 
 Transaction* Client::installFiles(const QStringList& files, bool only_trusted)
 {
-	QString polkitAction = only_trusted ? AUTH_PACKAGE_INSTALL : AUTH_PACKAGE_INSTALL_UNTRUSTED;
-#if 0
-	if(!PolkitClient::instance()->getAuth(polkitAction)) {
-		emit authError(polkitAction);
-		return NULL;
-	}
-#endif
-
-	Transaction* t = d->createNewTransaction();
-	if (!t) {
-		emit daemonError(DaemonUnreachable);
-		return NULL;
-	}
-
-	t->d->p->InstallFiles(only_trusted, files);
-
-	return t;
+	RUN_TRANSACTION(InstallFiles(only_trusted, files))
 }
 
 Transaction* Client::installFile(const QString& file, bool only_trusted)
@@ -403,89 +309,29 @@ Transaction* Client::installFile(const QString& file, bool only_trusted)
 	return installFiles(QStringList() << file, only_trusted);
 }
 
-Transaction* Client::installPackages(const QList<Package*>& packages)
+Transaction* Client::installPackages(bool only_trusted, const QList<Package*>& packages)
 {
-#if 0
-	if(!PolkitClient::instance()->getAuth(AUTH_PACKAGE_INSTALL)) {
-		emit authError(AUTH_PACKAGE_INSTALL);
-		return NULL;
-	}
-#endif
-
-	Transaction* t = d->createNewTransaction();
-	if (!t) {
-		emit daemonError(DaemonUnreachable);
-		return NULL;
-	}
-
-	t->d->p->InstallPackages(Util::packageListToPids(packages));
-
-	return t;
+	RUN_TRANSACTION(InstallPackages(only_trusted, Util::packageListToPids(packages)))
 }
 
-Transaction* Client::installPackage(Package* p)
+Transaction* Client::installPackage(bool only_trusted, Package* p)
 {
-	return installPackages(QList<Package*>() << p);
+	return installPackages(only_trusted, QList<Package*>() << p);
 }
 
 Transaction* Client::installSignature(SignatureType type, const QString& key_id, Package* p)
 {
-#if 0
-	if(!PolkitClient::instance()->getAuth(AUTH_SYSTEM_TRUST_SIGNING_KEY)) {
-		emit authError(AUTH_SYSTEM_TRUST_SIGNING_KEY);
-		return NULL;
-	}
-#endif
-
-	Transaction* t = d->createNewTransaction();
-	if (!t) {
-		emit daemonError(DaemonUnreachable);
-		return NULL;
-	}
-
-	t->d->p->InstallSignature(Util::enumToString<Client>(type, "SignatureType", "Signature"), key_id, p->id());
-
-	return t;
+	RUN_TRANSACTION(InstallSignature(Util::enumToString<Client>(type, "SignatureType", "Signature"), key_id, p->id()))
 }
 
 Transaction* Client::refreshCache(bool force)
 {
-#if 0
-	if(!PolkitClient::instance()->getAuth(AUTH_SYSTEM_SOURCES_REFRESH)) {
-		emit authError(AUTH_SYSTEM_SOURCES_REFRESH);
-		return NULL;
-	}
-#endif
-
-	Transaction* t = d->createNewTransaction();
-	if (!t) {
-		emit daemonError(DaemonUnreachable);
-		return NULL;
-	}
-
-	t->d->p->RefreshCache(force);
-
-	return t;
+	RUN_TRANSACTION(RefreshCache(force))
 }
 
 Transaction* Client::removePackages(const QList<Package*>& packages, bool allow_deps, bool autoremove)
 {
-#if 0
-	if(!PolkitClient::instance()->getAuth(AUTH_PACKAGE_REMOVE)) {
-		emit authError(AUTH_PACKAGE_REMOVE);
-		return NULL;
-	}
-#endif
-
-	Transaction* t = d->createNewTransaction();
-	if (!t) {
-		emit daemonError(DaemonUnreachable);
-		return NULL;
-	}
-
-	t->d->p->RemovePackages(Util::packageListToPids(packages), allow_deps, autoremove);
-
-	return t;
+	RUN_TRANSACTION(RemovePackages(Util::packageListToPids(packages), allow_deps, autoremove))
 }
 
 Transaction* Client::removePackage(Package* p, bool allow_deps, bool autoremove)
@@ -495,55 +341,17 @@ Transaction* Client::removePackage(Package* p, bool allow_deps, bool autoremove)
 
 Transaction* Client::repoEnable(const QString& repo_id, bool enable)
 {
-#if 0
-	if(!PolkitClient::instance()->getAuth(AUTH_SYSTEM_SOURCES_CONFIGURE)) {
-		emit authError(AUTH_SYSTEM_SOURCES_CONFIGURE);
-		return NULL;
-	}
-#endif
-
-	Transaction* t = d->createNewTransaction();
-	if (!t) {
-		emit daemonError(DaemonUnreachable);
-		return NULL;
-	}
-
-	t->d->p->RepoEnable(repo_id, enable);
-
-	return t;
+	RUN_TRANSACTION(RepoEnable(repo_id, enable))
 }
 
 Transaction* Client::repoSetData(const QString& repo_id, const QString& parameter, const QString& value)
 {
-#if 0
-	if(!PolkitClient::instance()->getAuth(AUTH_SYSTEM_SOURCES_CONFIGURE)) {
-		emit authError(AUTH_SYSTEM_SOURCES_CONFIGURE);
-		return NULL;
-	}
-#endif
-
-	Transaction* t = d->createNewTransaction();
-	if (!t) {
-		emit daemonError(DaemonUnreachable);
-		return NULL;
-	}
-
-	t->d->p->RepoSetData(repo_id, parameter, value);
-
-	return t;
+	RUN_TRANSACTION(RepoSetData(repo_id, parameter, value))
 }
 
 Transaction* Client::resolve(const QStringList& packageNames, Filters filters)
 {
-	Transaction* t = d->createNewTransaction();
-	if (!t) {
-		emit daemonError(DaemonUnreachable);
-		return NULL;
-	}
-
-	t->d->p->Resolve(Util::filtersToString(filters), packageNames);
-
-	return t;
+	RUN_TRANSACTION(Resolve(Util::filtersToString(filters), packageNames))
 }
 
 Transaction* Client::resolve(const QString& packageName, Filters filters)
@@ -553,74 +361,27 @@ Transaction* Client::resolve(const QString& packageName, Filters filters)
 
 Transaction* Client::rollback(Transaction* oldtrans)
 {
-#if 0
-	if(!PolkitClient::instance()->getAuth(AUTH_SYSTEM_ROLLBACK)) {
-		emit authError(AUTH_SYSTEM_ROLLBACK);
-		return NULL;
-	}
-#endif
-
-	Transaction* t = d->createNewTransaction();
-	if (!t) {
-		emit daemonError(DaemonUnreachable);
-		return NULL;
-	}
-
-	t->d->p->Rollback(oldtrans->tid());
-
-	return t;
+	RUN_TRANSACTION(Rollback(oldtrans->tid()))
 }
 
 Transaction* Client::searchFile(const QString& search, Filters filters)
 {
-        Transaction* t = d->createNewTransaction();
-		if (!t) {
-			emit daemonError(DaemonUnreachable);
-			return NULL;
-		}
-
-        t->d->p->SearchFile(Util::filtersToString(filters), search);
-
-        return t;
+	RUN_TRANSACTION(SearchFile(Util::filtersToString(filters), search))
 }
 
 Transaction* Client::searchDetails(const QString& search, Filters filters)
 {
-	Transaction* t = d->createNewTransaction();
-	if (!t) {
-		emit daemonError(DaemonUnreachable);
-		return NULL;
-	}
-
-	t->d->p->SearchDetails(Util::filtersToString(filters), search);
-
-	return t;
+	RUN_TRANSACTION(SearchDetails(Util::filtersToString(filters), search))
 }
 
 Transaction* Client::searchGroup(Client::Group group, Filters filters)
 {
-	Transaction* t = d->createNewTransaction();
-	if (!t) {
-		emit daemonError(DaemonUnreachable);
-		return NULL;
-	}
-
-	t->d->p->SearchGroup(Util::filtersToString(filters), Util::enumToString<Client>(group, "Group", "Group"));
-
-	return t;
+	RUN_TRANSACTION(SearchGroup(Util::filtersToString(filters), Util::enumToString<Client>(group, "Group", "Group")))
 }
 
 Transaction* Client::searchName(const QString& search, Filters filters)
 {
-	Transaction* t = d->createNewTransaction();
-	if (!t) {
-		emit daemonError(DaemonUnreachable);
-		return NULL;
-	}
-
-	t->d->p->SearchName(Util::filtersToString(filters), search);
-
-	return t;
+	RUN_TRANSACTION(SearchName(Util::filtersToString(filters), search))
 }
 
 Package* Client::searchFromDesktopFile(const QString& path)
@@ -645,64 +406,39 @@ Package* Client::searchFromDesktopFile(const QString& path)
 
 }
 
-Transaction* Client::updatePackages(const QList<Package*>& packages)
+Transaction* Client::updatePackages(bool only_trusted, const QList<Package*>& packages)
 {
-#if 0
-	if(!PolkitClient::instance()->getAuth(AUTH_SYSTEM_UPDATE)) {
-		emit authError(AUTH_SYSTEM_UPDATE);
-		return NULL;
-	}
-#endif
-
-	Transaction* t = d->createNewTransaction();
-	if (!t) {
-		emit daemonError(DaemonUnreachable);
-		return NULL;
-	}
-
-	t->d->p->UpdatePackages(Util::packageListToPids(packages));
-
-	return t;
+	RUN_TRANSACTION(UpdatePackages(only_trusted, Util::packageListToPids(packages)))
 }
 
-Transaction* Client::updatePackage(Package* package)
+Transaction* Client::updatePackage(bool only_trusted, Package* package)
 {
-	return updatePackages(QList<Package*>() << package);
+	return updatePackages(only_trusted, QList<Package*>() << package);
 }
 
-Transaction* Client::updateSystem()
+Transaction* Client::updateSystem(bool only_trusted)
 {
-#if 0
-	if(!PolkitClient::instance()->getAuth(AUTH_SYSTEM_UPDATE)) {
-		emit authError(AUTH_SYSTEM_UPDATE);
-		return NULL;
-	}
-#endif
-
-	Transaction* t = d->createNewTransaction();
-	if (!t) {
-		emit daemonError(DaemonUnreachable);
-		d->lastError = DaemonUnreachable;
-		return NULL;
-	}
-
-	t->d->p->UpdateSystem();
-
-	return t;
+	RUN_TRANSACTION(UpdateSystem(only_trusted))
 }
 
 Transaction* Client::whatProvides(ProvidesType type, const QString& search, Filters filters)
 {
-	Transaction* t = d->createNewTransaction();
-	if (!t) {
-		emit daemonError(DaemonUnreachable);
-		return NULL;
-	}
+	RUN_TRANSACTION(WhatProvides(Util::filtersToString(filters), Util::enumToString<Client>(type, "ProvidesType", "Provides"), search))
+}
 
-	t->d->p->WhatProvides(Util::filtersToString(filters), Util::enumToString<Client>(type, "ProvidesType", "Provides"), search);
+void Client::setLastError (DaemonError e)
+{
+	d->error = e;
+	emit error (e);
+}
 
-	return t;
+void Client::setTransactionError (Transaction* t, DaemonError e)
+{
+	t->d->error = e;
 }
 
+template<class T> Client::DaemonError daemonErrorFromDBusReply (QDBusReply<T> e) {
+	return Util::errorFromString (e.error ().name ());
+}
 #include "client.moc"
 
diff --git a/lib/packagekit-qt/src/client.h b/lib/packagekit-qt/src/client.h
index 3c91d5b..e14e463 100644
--- a/lib/packagekit-qt/src/client.h
+++ b/lib/packagekit-qt/src/client.h
@@ -22,6 +22,7 @@
 #define CLIENT_H
 
 #include <QtCore>
+#include <QDBusReply>
 
 namespace PackageKit {
 
@@ -262,7 +263,7 @@ public:
 	/**
 	 * Sets a proxy to be used for all the network operations
 	 */
-	void setProxy(const QString& http_proxy, const QString& ftp_proxy);
+	bool setProxy(const QString& http_proxy, const QString& ftp_proxy);
 
 	/**
 	 * \brief Tells the daemon that the system state has changed, to make it reload its cache
@@ -444,11 +445,25 @@ public:
 
 	/**
 	 * Describes an error at the daemon level (for example, PackageKit crashes or is unreachable)
+	 *
+	 * \sa Client::error
+	 * \sa Transaction::error
 	 */
 	typedef enum {
-		DaemonUnreachable,
-		UnkownDaemonError
+		NoError = 0,
+		ErrorFailed,
+		ErrorFailedAuth,
+		ErrorNoTid,
+		ErrorAlreadyTid,
+		ErrorRoleUnkown,
+		ErrorCannotStartDaemon,
+		ErrorInvalidInput,
+		ErrorInvalidFile,
+		ErrorFunctionNotSupported,
+		ErrorDaemonUnreachable,
+		UnkownError
 	} DaemonError;
+
 	/**
 	 * Returns the last daemon error that was caught
 	 */
@@ -596,9 +611,11 @@ public:
 
 	/**
 	 * Install the given \p packages
+	 *
+	 * \p only_trusted indicates if we should allow installation of untrusted packages (requires a different authorization)
 	 */
-	Transaction* installPackages(const QList<Package*>& packages);
-	Transaction* installPackage(Package* p);
+	Transaction* installPackages(bool only_trusted, const QList<Package*>& packages);
+	Transaction* installPackage(bool only_trusted, Package* p);
 
 	/**
 	 * \brief Installs a signature
@@ -686,13 +703,15 @@ public:
 	/**
 	 * Update the given \p packages
 	 */
-	Transaction* updatePackages(const QList<Package*>& packages);
-	Transaction* updatePackage(Package* package);
+	Transaction* updatePackages(bool only_trusted, const QList<Package*>& packages);
+	Transaction* updatePackage(bool only_trusted, Package* package);
 
 	/**
 	 * Updates the whole system
+	 *
+	 * \p only_trusted indicates if this transaction is only allowed to install trusted packages
 	 */
-	Transaction* updateSystem();
+	Transaction* updateSystem(bool only_trusted);
 
 	/**
 	 * Searchs for a package providing a file/a mimetype
@@ -701,16 +720,9 @@ public:
 
 Q_SIGNALS:
 	/**
-	 * \brief Emitted when PolicyKit doesn't grant the necessary permissions to the user
-	 *
-	 * \p action is the PolicyKit name of the action
+	 * Emitted when the PackageKit daemon sends an error
 	 */
-	void authError(const QString& action);
-
-	/**
-	 * Emitted when the PackageKit daemon is not reachable anymore
-	 */
-	void daemonError(PackageKit::Client::DaemonError e);
+	void error(PackageKit::Client::DaemonError e);
 
 	/**
 	 * Emitted when the daemon's locked state changes
@@ -749,6 +761,10 @@ private:
 	static Client* m_instance;
 	friend class ClientPrivate;
 	ClientPrivate* d;
+
+	void setLastError (DaemonError e);
+	void setTransactionError (Transaction* t, DaemonError e);
+	template<class T> DaemonError daemonErrorFromDBusReply (QDBusReply<T> e);
 };
 Q_DECLARE_OPERATORS_FOR_FLAGS(Client::Actions)
 Q_DECLARE_OPERATORS_FOR_FLAGS(Client::Filters)
diff --git a/lib/packagekit-qt/src/clientprivate.h b/lib/packagekit-qt/src/clientprivate.h
index f57c1da..e469117 100644
--- a/lib/packagekit-qt/src/clientprivate.h
+++ b/lib/packagekit-qt/src/clientprivate.h
@@ -49,7 +49,7 @@ public:
 	// Get a tid, creates a new transaction and sets it up (ie call SetLocale)
 	Transaction* createNewTransaction();
 
-	Client::DaemonError lastError;
+	Client::DaemonError error;
 
 public slots:
 	// org.freedesktop.PackageKit
diff --git a/lib/packagekit-qt/src/transaction.cpp b/lib/packagekit-qt/src/transaction.cpp
index 9414e84..fa92a73 100644
--- a/lib/packagekit-qt/src/transaction.cpp
+++ b/lib/packagekit-qt/src/transaction.cpp
@@ -42,6 +42,7 @@ Transaction::Transaction(const QString& tid, Client* parent) : QObject(parent)
 
 	connect(d->p, SIGNAL(AllowCancel(bool)), this, SIGNAL(allowCancelChanged(bool)));
 	connect(d->p, SIGNAL(Category(const QString&, const QString&, const QString&, const QString&, const QString&)), this, SIGNAL(category(const QString&, const QString&, const QString&, const QString&, const QString&)));
+	connect(d->p, SIGNAL(Destroy()), d, SLOT(destroy()));
 	connect(d->p, SIGNAL(Details(const QString&, const QString&, const QString&, const QString&, const QString&, qulonglong)), d, SLOT(details(const QString&, const QString&, const QString&, const QString&, const QString&, qulonglong)));
 	connect(d->p, SIGNAL(DistroUpgrade(const QString&, const QString&, const QString&)), d, SLOT(distroUpgrade(const QString&, const QString&, const QString&)));
 	connect(d->p, SIGNAL(ErrorCode(const QString&, const QString&)), d, SLOT(errorCode(const QString&, const QString&)));
@@ -77,6 +78,7 @@ Transaction::Transaction(const QString& tid, const QString& timespec, bool succe
 	d->uid = uid;
 	d->cmdline = cmdline;
 	d->client = parent;
+	d->error = Client::NoError;
 }
 
 Transaction::~Transaction()
@@ -89,6 +91,11 @@ QString Transaction::tid() const
 	return d->tid;
 }
 
+Client::DaemonError Transaction::error () const
+{
+	return d->error;
+}
+
 bool Transaction::allowCancel()
 {
 	return d->p->GetAllowCancel().value();
@@ -101,16 +108,9 @@ bool Transaction::callerActive()
 
 void Transaction::cancel()
 {
-	if (!d->p->Cancel().isValid ()) {
-#if 0
-		// Cancel failed, maybe it's not our transaction and we need authorization
-		if(!PolkitClient::instance()->getAuth(AUTH_CANCEL_FOREIGN)) {
-			// FIXME : should warn somehow here
-			qDebug () << "Authorization to cancel foreign failed";
-			return;
-		}
-#endif
-		d->p->Cancel();
+	QDBusReply<void> r = d->p->Cancel ();
+	if (!r.isValid ()) {
+		d->error = Util::errorFromString (r.error ().message ());
 	}
 }
 
diff --git a/lib/packagekit-qt/src/transaction.h b/lib/packagekit-qt/src/transaction.h
index 7c413c0..dca3c0b 100644
--- a/lib/packagekit-qt/src/transaction.h
+++ b/lib/packagekit-qt/src/transaction.h
@@ -50,6 +50,7 @@ class TransactionPrivate;
 class Transaction : public QObject
 {
 	Q_OBJECT
+	Q_ENUMS(TransactionError)
 	Q_ENUMS(Status)
 	Q_ENUMS(ExitStatus)
 	Q_ENUMS(MediaType)
@@ -69,6 +70,14 @@ public:
 	 */
 	QString tid() const;
 
+
+	/**
+	 * \brief Returns the error status of the Transaction
+	 *
+	 * \return A value from TransactionError describing the state of the transaction
+	 */
+	Client::DaemonError error () const;
+
 	/**
 	 * Indicates weither you can cancel the transaction or not
 	 *
@@ -286,6 +295,12 @@ Q_SIGNALS:
 	void details(PackageKit::Package* package);
 
 	/**
+	 * Sent when the transaction has been destroyed and is
+	 * no longer available for use.
+	 */
+	void destroy ();
+
+	/**
 	 * Emitted when a distribution upgrade is available
 	 * \sa Client::getDistroUpgrades
 	 */
diff --git a/lib/packagekit-qt/src/transactionprivate.h b/lib/packagekit-qt/src/transactionprivate.h
index ba35d81..4cec47f 100644
--- a/lib/packagekit-qt/src/transactionprivate.h
+++ b/lib/packagekit-qt/src/transactionprivate.h
@@ -54,6 +54,8 @@ public:
 	// Used for getDetails
 	QHash<QString, Package*> packageMap;
 
+	Client::DaemonError error;
+
 public slots:
 	void details(const QString& pid, const QString& license, const QString& group, const QString& detail, const QString& url, qulonglong size);
 	void distroUpgrade(const QString& type, const QString& name, const QString& description);
diff --git a/lib/packagekit-qt/src/transactionproxy.h b/lib/packagekit-qt/src/transactionproxy.h
index df0fd24..68e9a33 100644
--- a/lib/packagekit-qt/src/transactionproxy.h
+++ b/lib/packagekit-qt/src/transactionproxy.h
@@ -180,10 +180,10 @@ public Q_SLOTS: // METHODS
         return callWithArgumentList(QDBus::Block, QLatin1String("InstallFiles"), argumentList);
     }
 
-    inline QDBusReply<void> InstallPackages(const QStringList &package_ids)
+    inline QDBusReply<void> InstallPackages(bool only_trusted, const QStringList &package_ids)
     {
         QList<QVariant> argumentList;
-        argumentList << qVariantFromValue(package_ids);
+        argumentList << qVariantFromValue (only_trusted) << qVariantFromValue(package_ids);
         return callWithArgumentList(QDBus::Block, QLatin1String("InstallPackages"), argumentList);
     }
 
@@ -277,16 +277,17 @@ public Q_SLOTS: // METHODS
         return callWithArgumentList(QDBus::Block, QLatin1String("SetLocale"), argumentList);
     }
 
-    inline QDBusReply<void> UpdatePackages(const QStringList &package_ids)
+    inline QDBusReply<void> UpdatePackages(bool only_trusted, const QStringList &package_ids)
     {
         QList<QVariant> argumentList;
-        argumentList << qVariantFromValue(package_ids);
+        argumentList << qVariantFromValue (only_trusted) << qVariantFromValue(package_ids);
         return callWithArgumentList(QDBus::Block, QLatin1String("UpdatePackages"), argumentList);
     }
 
-    inline QDBusReply<void> UpdateSystem()
+    inline QDBusReply<void> UpdateSystem(bool only_trusted)
     {
         QList<QVariant> argumentList;
+		argumentList << qVariantFromValue (only_trusted);
         return callWithArgumentList(QDBus::Block, QLatin1String("UpdateSystem"), argumentList);
     }
 
diff --git a/lib/packagekit-qt/src/util.cpp b/lib/packagekit-qt/src/util.cpp
index 4dfb620..d824a2d 100644
--- a/lib/packagekit-qt/src/util.cpp
+++ b/lib/packagekit-qt/src/util.cpp
@@ -44,3 +44,31 @@ QString Util::filtersToString(const QFlags<PackageKit::Client::Filter>& flags)
 	return flagStrings.join(";");
 }
 
+Client::DaemonError Util::errorFromString (QString errorName)
+{
+		if (errorName.startsWith ("org.freedesktop.packagekit.")) {
+			return Client::ErrorFailedAuth;
+		}
+
+		errorName.replace ("org.freedesktop.PackageKit.Transaction.", "");
+
+		if (errorName.startsWith ("PermissionDenied") || errorName.startsWith ("RefusedByPolicy")) {
+			return Client::ErrorFailedAuth;
+		}
+
+		if (errorName.startsWith ("PackageIdInvalid") || errorName.startsWith ("SearchInvalid") || errorName.startsWith ("FilterInvalid") || errorName.startsWith ("InvalidProvide") || errorName.startsWith ("InputInvalid")) {
+			return Client::ErrorInvalidInput;
+		}
+
+		if (errorName.startsWith ("PackInvalid") || errorName.startsWith ("NoSuchFile") || errorName.startsWith ("NoSuchDirectory")) {
+			return Client::ErrorInvalidFile;
+		}
+
+		if (errorName.startsWith ("NotSupported")) {
+			return Client::ErrorFunctionNotSupported;
+		}
+
+		return Client::ErrorFailed;
+}
+
+
diff --git a/lib/packagekit-qt/src/util.h b/lib/packagekit-qt/src/util.h
index 088014e..0ca422c 100644
--- a/lib/packagekit-qt/src/util.h
+++ b/lib/packagekit-qt/src/util.h
@@ -129,6 +129,26 @@ public:
 
 	static QString filtersToString(const QFlags<PackageKit::Client::Filter>& flags);
 
+	/*
+	 * Describes the different errors that might happen on the bus
+	 *
+	 * \sa Client::error
+	 * \sa Transaction::error
+	 */
+	typedef enum {
+		NoError = 0,
+		ErrorFailed,
+		ErrorFailedAuth,
+		ErrorNoTid,
+		ErrorAlreadyTid,
+		ErrorRoleUnkown,
+		ErrorCannotStartDaemon,
+		ErrorInvalidInput,
+		ErrorInvalidFile,
+		ErrorNotSupported
+	} TransactionError;
+
+	static Client::DaemonError errorFromString (QString errorName);
 
 };
 
commit 0d22885217f2e0c16530a31920ab95d1f2d8b47f
Author: Mounir Lamouri (volkmar) <mounir.lamouri at gmail.com>
Date:   Thu Aug 13 23:40:47 2009 +0200

    portage: fix newest filter (typo)

diff --git a/backends/portage/portageBackend.py b/backends/portage/portageBackend.py
index cb35128..6924881 100755
--- a/backends/portage/portageBackend.py
+++ b/backends/portage/portageBackend.py
@@ -347,7 +347,7 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
 
         for cpv in cpv_list:
             if self.is_installed(cpv) == installed:
-                if self.cmp_cpv(cpv, never) == 1:
+                if self.cmp_cpv(cpv, newer) == 1:
                     newer = cpv
 
         return newer
commit 97501c0136bba41de82c825cac51b03a4607ee62
Merge: d6b9239... 80c71e4...
Author: Mounir Lamouri (volkmar) <mounir.lamouri at gmail.com>
Date:   Thu Aug 13 22:08:51 2009 +0200

    Merge branch 'master' of git+ssh://volkmar@git.packagekit.org/srv/git/PackageKit

commit d6b92397da15678e1588e9819722a29f417f98a3
Author: Mounir Lamouri (volkmar) <mounir.lamouri at gmail.com>
Date:   Thu Aug 13 22:04:40 2009 +0200

    website: add Mounir Lamouri (volkmar) in pk-authors.html

diff --git a/docs/html/img/author-volkmar.png b/docs/html/img/author-volkmar.png
new file mode 100644
index 0000000..147a994
Binary files /dev/null and b/docs/html/img/author-volkmar.png differ
diff --git a/docs/html/pk-authors.html b/docs/html/pk-authors.html
index 002815d..cd60e14 100644
--- a/docs/html/pk-authors.html
+++ b/docs/html/pk-authors.html
@@ -316,6 +316,22 @@
  </td>
 </tr>
 
+<tr>
+ <td>
+  <img src="img/author-volkmar.png" alt=""/><!-- image should be 120px wide -->
+ </td>
+ <td>
+  <h2>Mounir Lamouri</h2>
+  <p>
+	Mounir is a student at <a href='http://www.insa-lyon.fr/indexEN.php'>INSA Lyon</a> a french engineering university. He is also a <a href='http://www.gentoo.org/'>Gentoo</a> developer. He began his work for the portage backend in the context of his <a href='http://en.wikipedia.org/wiki/Google_Summer_of_Code'>GSOC</a> in 2009.
+  </p>
+  <p>
+   <b>Responsible for: portage backend</b>
+  </p>
+ </td>
+</tr>
+
+</table>
 </table>
 
 <p>Back to the <a href="index.html">main page</a></p>
commit 80c71e4c0cbbde2f658bbbe670b096c8b27a5345
Author: Richard Hughes <richard at hughsie.com>
Date:   Thu Aug 13 14:40:56 2009 +0100

    Fix a warning in one of the po files

diff --git a/po/ko.po b/po/ko.po
index fc6deb6..a9353c3 100644
--- a/po/ko.po
+++ b/po/ko.po
@@ -13,7 +13,7 @@ msgstr ""
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <LL at li.org>\n"
 "MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
 
commit ba3190f0589b82a57571dacf2507ea3d0539e07b
Author: Richard Hughes <richard at hughsie.com>
Date:   Thu Aug 13 14:33:53 2009 +0100

    Update LINGUAS with the new language

diff --git a/po/LINGUAS b/po/LINGUAS
index cd20d55..05d2462 100644
--- a/po/LINGUAS
+++ b/po/LINGUAS
@@ -16,6 +16,7 @@ hi
 hu
 it
 kn
+ko
 ml
 mr
 ms
commit d70636a2b708b53b4d0204be4625bc191b83edae
Author: Sebastian Heinlein <devel at glatzor.de>
Date:   Thu Aug 13 14:06:27 2009 +0200

    APT: Fix resolver handling for removing packages. THey have to be protected.

diff --git a/backends/apt/aptBackend.py b/backends/apt/aptBackend.py
index 0403102..6184280 100755
--- a/backends/apt/aptBackend.py
+++ b/backends/apt/aptBackend.py
@@ -868,6 +868,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
             pkgs.append(pkg.name[:])
             pkg.markDelete(False, False)
             resolver.Clear(pkg._pkg)
+            resolver.Protect(pkg._pkg)
             resolver.Remove(pkg._pkg)
         try:
             resolver.Resolve()
@@ -1437,6 +1438,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
                 return
             pkgs.append(pkg)
             resolver.Clear(pkg._pkg)
+            resolver.Protect(pkg._pkg)
             resolver.Remove(pkg._pkg)
         resolver.InstallProtect()
         try:
commit c4a254e2e8be0858afb48cf617d8f966b4001678
Author: Sebastian Heinlein <devel at glatzor.de>
Date:   Thu Aug 13 13:54:36 2009 +0200

    APT: Use the resolver in get-requires and get-depends

diff --git a/backends/apt/aptBackend.py b/backends/apt/aptBackend.py
index 8715d8c..0403102 100755
--- a/backends/apt/aptBackend.py
+++ b/backends/apt/aptBackend.py
@@ -1371,21 +1371,25 @@ class PackageKitAptBackend(PackageKitBaseBackend):
 
         # Mark all packages for installation
         pkgs = []
+        resolver = apt_pkg.GetPkgProblemResolver(self._cache._depcache)
         for id in ids:
             pkg = self._find_package_by_id(id)
             if pkg == None:
                 self.error(ERROR_PACKAGE_NOT_FOUND,
                            "Package %s isn't available" % id)
                 return
-            try:
-                pkg.markInstall()
-            except Exception, e:
-                #FIXME: Introduce a new info enumerate PK_INFO_MISSING for
-                #       missing dependecies
-                self.error(ERROR_DEP_RESOLUTION_FAILED,
-                           "Dependecies for %s cannot be satisfied: %s" % e)
-                return
             pkgs.append(pkg)
+            resolver.Clear(pkg._pkg)
+            resolver.Protect(pkg._pkg)
+        resolver.InstallProtect()
+        try:
+            resolver.Resolve()
+        except Exception, e:
+            #FIXME: Introduce a new info enumerate PK_INFO_MISSING for
+            #       missing dependecies
+            self.error(ERROR_DEP_RESOLUTION_FAILED,
+                       "Dependecies for %s cannot be satisfied: %s" % e)
+            return
         # Check the status of the resulting changes
         for p in self._cache.getChanges():
             if p in pkgs: continue
@@ -1418,9 +1422,9 @@ class PackageKitAptBackend(PackageKitBaseBackend):
         self.percentage(None)
         self._check_init(progress=False)
         self.allow_cancel(True)
+        # Mark all packages for removal
+        resolver = apt_pkg.GetPkgProblemResolver(self._cache._depcache)
         pkgs = []
-
-        # Mark all packages for installation
         for id in ids:
             pkg = self._find_package_by_id(id)
             if pkg == None:
@@ -1432,14 +1436,15 @@ class PackageKitAptBackend(PackageKitBaseBackend):
                            "Package %s cannot be removed." % pkg.name)
                 return
             pkgs.append(pkg)
-            try:
-                pkg.markDelete()
-            except Exception, e:
-                #FIXME: Introduce a new info enumerate PK_INFO_MISSING for
-                #       missing dependecies
-                self.error(ERROR_DEP_RESOLUTION_FAILED,
-                           "Error removing %s: %s" % (pkg.name, e))
-                return
+            resolver.Clear(pkg._pkg)
+            resolver.Remove(pkg._pkg)
+        resolver.InstallProtect()
+        try:
+            resolver.Resolve()
+        except Exception, e:
+            self.error(ERROR_DEP_RESOLUTION_FAILED,
+                       "Error removing %s: %s" % (pkg.name, e))
+            return
         # Check the status of the resulting changes
         for p in self._cache.getChanges():
             if p.markedDelete:
commit 3752afb51a86c8cb957f22369aa7c4b9e6a22558
Author: Mounir Lamouri (volkmar) <mounir.lamouri at gmail.com>
Date:   Wed Aug 12 15:50:57 2009 +0200

    portage: search-name is now category aware

diff --git a/backends/portage/portageBackend.py b/backends/portage/portageBackend.py
index cb35128..23d9c1b 100755
--- a/backends/portage/portageBackend.py
+++ b/backends/portage/portageBackend.py
@@ -1420,22 +1420,51 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
         self.percentage(100)
 
     def search_name(self, filters, keys):
-        # NOTES: searching in package name, excluding category
-        # TODO: search for cat/pkg if '/' is found
+        # searching for all keys in package name
+        # also filtering by categories if categery is specified in a key
+        # keys contain more than one category name, no results can be found
         self.status(STATUS_QUERY)
         self.allow_cancel(True)
         self.percentage(0)
 
+        categories = []
+        keys_list = keys.split(' ')
+        for k in keys_list[:]:
+            if "/" in k:
+                cat, cp = portage.catsplit(k)
+                categories.append(cat)
+                keys_list[keys_list.index(k)] = cp
+
+        category_filter = None
+        if len(categories) > 1:
+            # nothing will be found because we have two cat/pkg
+            # with a AND operator search
+            return
+        elif len(categories) == 1:
+            category_filter = categories[0]
+
+        # do not use get_search_list because of this category feature
+        search_list = []
+        for k in keys_list:
+            # not done entirely by pk-transaction
+            k = re.escape(k)
+            search_list.append(re.compile(k, re.IGNORECASE))
+
         fltlist = filters.split(';')
         cp_list = self.get_all_cp(fltlist)
         nb_cp = float(len(cp_list))
         cp_processed = 0.0
-        search_list = get_search_list(keys)
 
         for cp in cp_list:
-            # pkg name has to correspond to _every_ keys
-            pkg_name = portage.catsplit(cp)[1]
+            if category_filter:
+                cat, pkg_name = portage.catsplit(cp)
+                if cat != category_filter:
+                    continue
+            else:
+                pkg_name = portage.catsplit(cp)[1]
             found = True
+
+            # pkg name has to correspond to _every_ keys
             for s in search_list:
                 if not s.search(pkg_name):
                     found = False
commit 1aa93e4bf78a90e249ce0831eaebf2f5682bdbc0
Merge: 2049ab4... 4266e06...
Author: Richard Hughes <hughsie at hughsie-rawhide2.(none)>
Date:   Fri Jul 24 10:55:15 2009 +0100

    Merge branch 'master' of git+ssh://hughsie@git.packagekit.org/srv/git/PackageKit

commit 2049ab4f8bf49a47247605384c6541b0af549d4e
Merge: 9063802... 57f266b...
Author: Richard Hughes <hughsie at hughsie-rawhide2.(none)>
Date:   Thu Jul 23 19:18:19 2009 +0100

    Merge branch 'master' of git+ssh://hughsie@git.packagekit.org/srv/git/PackageKit

commit 90638020f57d3458639c3ec3b0a88330264cda5b
Merge: cf411cb... 21e2b91...
Author: Richard Hughes <richard at hughsie.com>
Date:   Wed Jul 22 09:58:41 2009 +0100

    Merge branch 'master' of git+ssh://hughsie@git.packagekit.org/srv/git/PackageKit

commit cf411cb8dc8eaeab84423e80b7594306c7b69055
Merge: d0a7442... 95adf5c...
Author: Richard Hughes <richard at hughsie.com>
Date:   Tue Jul 21 20:39:05 2009 +0100

    Merge branch 'master' of git+ssh://hughsie@git.packagekit.org/srv/git/PackageKit

commit d0a744257b5b79454a77571be7c3d0e5f26651d6
Merge: ddd2925... 6892130...
Author: Richard Hughes <richard at hughsie.com>
Date:   Tue Jul 21 17:01:25 2009 +0100

    Merge branch 'master' of git+ssh://hughsie@git.packagekit.org/srv/git/PackageKit

commit ddd2925d7edebed3c4db5854a86c7ce6dc7ff754
Author: Richard Hughes <richard at hughsie.com>
Date:   Tue Jul 21 12:20:19 2009 +0100

    Add a 'status' property to PkClient

diff --git a/lib/packagekit-glib/pk-client.c b/lib/packagekit-glib/pk-client.c
index 2f333bf..3958d86 100644
--- a/lib/packagekit-glib/pk-client.c
+++ b/lib/packagekit-glib/pk-client.c
@@ -91,7 +91,7 @@ struct _PkClientPrivate
 	PkConnection		*pconnection;
 	gulong			 pconnection_signal_id;
 	PkRestartEnum		 require_restart;
-	PkStatusEnum		 last_status;
+	PkStatusEnum		 status;
 	PkRoleEnum		 role;
 	gboolean		 cached_force;
 	gboolean		 cached_allow_deps;
@@ -139,6 +139,7 @@ enum {
 enum {
 	PROP_0,
 	PROP_ROLE,
+	PROP_STATUS,
 	PROP_LAST,
 };
 
@@ -590,7 +591,7 @@ pk_client_change_status (PkClient *client, PkStatusEnum status)
 {
 	egg_debug ("emit status-changed %s", pk_status_enum_to_text (status));
 	g_signal_emit (client , signals [SIGNAL_STATUS_CHANGED], 0, status);
-	client->priv->last_status = status;
+	client->priv->status = status;
 }
 
 /**
@@ -1036,6 +1037,12 @@ pk_client_message_cb (DBusGProxy  *proxy, const gchar *message_text, const gchar
  * Gets the status of a transaction.
  * A transaction has one roles in it's lifetime, but many values of status.
  *
+ * Reading the property "status" is quicker than contacting the daemon, but this
+ * only works when the transaction was created by the application, and not when
+ * using pk_client_set_tid() in a client program.
+ *
+ * TODO: deprecate
+ *
  * Return value: %TRUE if we found the status successfully
  **/
 gboolean
@@ -3908,7 +3915,7 @@ pk_client_requeue (PkClient *client, GError **error)
 	/* clear enough data of the client to allow us to requeue */
 	g_free (client->priv->tid);
 	client->priv->tid = NULL;
-	client->priv->last_status = PK_STATUS_ENUM_UNKNOWN;
+	client->priv->status = PK_STATUS_ENUM_UNKNOWN;
 	client->priv->is_finished = FALSE;
 
 	/* clear package list */
@@ -4115,6 +4122,9 @@ pk_client_get_property (GObject *object, guint prop_id, GValue *value, GParamSpe
 	case PROP_ROLE:
 		g_value_set_uint (value, client->priv->role);
 		break;
+	case PROP_STATUS:
+		g_value_set_uint (value, client->priv->status);
+		break;
 	default:
 		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
 		break;
@@ -4156,6 +4166,14 @@ pk_client_class_init (PkClientClass *klass)
 	g_object_class_install_property (object_class, PROP_ROLE, pspec);
 
 	/**
+	 * PkClient:status:
+	 */
+	pspec = g_param_spec_uint ("status", NULL, NULL,
+				   0, G_MAXUINT, 0,
+				   G_PARAM_READWRITE);
+	g_object_class_install_property (object_class, PROP_STATUS, pspec);
+
+	/**
 	 * PkClient::status-changed:
 	 * @client: the #PkClient instance that emitted the signal
 	 * @status: the #PkStatusEnum type, e.g. PK_STATUS_ENUM_REMOVE
@@ -4602,7 +4620,7 @@ pk_client_reset (PkClient *client, GError **error)
 	client->priv->cached_package_ids = NULL;
 	client->priv->cached_directory = NULL;
 	client->priv->cached_filters = PK_FILTER_ENUM_UNKNOWN;
-	client->priv->last_status = PK_STATUS_ENUM_UNKNOWN;
+	client->priv->status = PK_STATUS_ENUM_UNKNOWN;
 	client->priv->role = PK_ROLE_ENUM_UNKNOWN;
 	client->priv->is_finished = FALSE;
 	client->priv->timeout = -1;
@@ -4631,7 +4649,7 @@ pk_client_init (PkClient *client)
 	client->priv->loop = g_main_loop_new (NULL, FALSE);
 	client->priv->use_buffer = FALSE;
 	client->priv->synchronous = FALSE;
-	client->priv->last_status = PK_STATUS_ENUM_UNKNOWN;
+	client->priv->status = PK_STATUS_ENUM_UNKNOWN;
 	client->priv->require_restart = PK_RESTART_ENUM_NONE;
 	client->priv->role = PK_ROLE_ENUM_UNKNOWN;
 	client->priv->is_finished = FALSE;


More information about the PackageKit-commit mailing list