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

Richard Hughes hughsient at kemper.freedesktop.org
Tue Jan 17 09:42:48 PST 2012


 Makefile.am                                                                      |    3 
 NEWS                                                                             |   96 
 RELEASE                                                                          |   11 
 backends/Makefile.am                                                             |    4 
 backends/apt/20packagekit                                                        |   12 
 backends/apt/Makefile.am                                                         |   36 
 backends/apt/README.apt                                                          |   17 
 backends/apt/aptBackend.py                                                       | 2262 +++++++
 backends/apt/data/Packages                                                       |   71 
 backends/apt/data/status                                                         |   38 
 backends/apt/data/xterm.list                                                     |   49 
 backends/apt/hotshot-analyze.py                                                  |   39 
 backends/apt/packagekit                                                          |    1 
 backends/apt/pk-backend-apt.c                                                    |  573 +
 backends/apt/profiler.py                                                         |   17 
 backends/apt/test.sh                                                             |    2 
 backends/apt/tests/aptBackend.py                                                 |    1 
 backends/apt/tests/core.py                                                       |  178 
 backends/apt/tests/dpkg-wrapper.sh                                               |    2 
 backends/apt/tests/packagekit                                                    |    1 
 backends/apt/tests/repo/Packages                                                 |  225 
 backends/apt/tests/repo/Release                                                  |   10 
 backends/apt/tests/repo/Release.gpg                                              |   11 
 backends/apt/tests/repo/backports/Packages                                       |   20 
 backends/apt/tests/repo/backports/Packages.gpg                                   |   34 
 backends/apt/tests/repo/backports/Release                                        |   16 
 backends/apt/tests/repo/backports/Release.gpg                                    |   30 
 backends/apt/tests/repo/glatzor.gpg                                              |   59 
 backends/apt/tests/repo/gstreamer0.10-silly_0.1-0_all.deb                        |binary
 backends/apt/tests/repo/security/Packages                                        |   20 
 backends/apt/tests/repo/security/Packages.gpg                                    |   34 
 backends/apt/tests/repo/security/Release                                         |   16 
 backends/apt/tests/repo/security/Release.gpg                                     |   30 
 backends/apt/tests/repo/silly-base_0.1-0_all.deb                                 |binary
 backends/apt/tests/repo/silly-base_0.1-0update1_all.deb                          |binary
 backends/apt/tests/repo/silly-broken_0.1-0_all.deb                               |binary
 backends/apt/tests/repo/silly-config_0.1-0_all.deb                               |binary
 backends/apt/tests/repo/silly-depend-base-lintian-broken_0.1-0_all.deb           |binary
 backends/apt/tests/repo/silly-depend-base_0.1-0_all.deb                          |binary
 backends/apt/tests/repo/silly-essential_0.1-0_all.deb                            |binary
 backends/apt/tests/repo/silly-fail_0.1-0_all.deb                                 |binary
 backends/apt/tests/repo/silly-important_0.1-0_all.deb                            |binary
 backends/apt/tests/repo/silly-postinst-input_0.1-0_all.deb                       |binary
 backends/apt/tests/test_filters.py                                               |   97 
 backends/apt/tests/test_modifiers.py                                             |  341 +
 backends/apt/tests/test_queries.py                                               |  112 
 backends/apt/tests/test_updates.py                                               |   99 
 backends/apt/update-packagekit-app-data                                          |   86 
 backends/aptcc/20packagekit                                                      |    4 
 backends/aptcc/Makefile.am                                                       |    6 
 backends/aptcc/apt-utils.h                                                       |    3 
 backends/aptcc/apt.cpp                                                           |  272 
 backends/aptcc/apt.h                                                             |   45 
 backends/aptcc/deb-file.cpp                                                      |  138 
 backends/aptcc/deb-file.h                                                        |   51 
 backends/aptcc/dpkgpm.cpp                                                        |   37 
 backends/aptcc/dpkgpm.h                                                          |   36 
 backends/aptcc/pk-backend-aptcc.cpp                                              |  422 -
 backends/box/pk-backend-box.c                                                    |    2 
 backends/dummy/pk-backend-dummy.c                                                |   18 
 backends/entropy/entropyBackend.py                                               |    4 
 backends/opkg/pk-backend-opkg.c                                                  |    2 
 backends/pisi/pk-backend-pisi.c                                                  |    2 
 backends/urpmi/helpers/urpmi-dispatched-backend.pl                               |   86 
 backends/urpmi/helpers/urpmi_backend/filters.pm                                  |   66 
 backends/urpmi/helpers/urpmi_backend/groups.pm                                   |    6 
 backends/urpmi/helpers/urpmi_backend/tools.pm                                    |   33 
 backends/urpmi/pk-backend-urpmi.c                                                |  248 
 backends/yum/yumBackend.py                                                       |   68 
 backends/zif/pk-backend-zif.c                                                    |   43 
 backends/zypp/pk-backend-zypp.cpp                                                |    2 
 client/Makefile.am                                                               |    1 
 client/pk-console.c                                                              |   11 
 client/pk-generate-pack.c                                                        |    4 
 client/pk-monitor.c                                                              |    4 
 configure.ac                                                                     |   38 
 contrib/PackageKit.spec.in                                                       |   11 
 contrib/browser-plugin/pk-main.c                                                 |    4 
 contrib/command-not-found/Makefile.am                                            |    1 
 contrib/command-not-found/pk-command-not-found.c                                 |    2 
 contrib/debuginfo-install/Makefile.am                                            |    1 
 contrib/debuginfo-install/pk-debuginfo-install.c                                 |    8 
 contrib/gstreamer-plugin/Makefile.am                                             |    1 
 contrib/gtk-module/Makefile.am                                                   |    2 
 contrib/gtk-module/org.gnome.settings-daemon.gtk-modules-packagekit.gschema.xml  |   12 
 contrib/gtk-module/org.gnome.setttings-daemon.gtk-modules-packagekit.gschema.xml |   12 
 contrib/pk-completion.bash                                                       |    1 
 docs/html/img/users-listaller.png                                                |binary
 docs/html/pk-download.html                                                       |    1 
 docs/html/pk-matrix.html                                                         |   38 
 docs/html/pk-screenshots.html                                                    |    2 
 docs/html/pk-users.html                                                          |   10 
 docs/provides-component-naming.txt                                               |    8 
 lib/packagekit-glib2/Makefile.am                                                 |    3 
 lib/packagekit-glib2/packagekit-glib2.pc.in                                      |    2 
 lib/packagekit-glib2/pk-catalog.c                                                |    3 
 lib/packagekit-glib2/pk-client-sync.c                                            |  113 
 lib/packagekit-glib2/pk-client-sync.h                                            |   13 
 lib/packagekit-glib2/pk-client.c                                                 | 3005 +++++-----
 lib/packagekit-glib2/pk-client.h                                                 |   16 
 lib/packagekit-glib2/pk-console-shared.c                                         |  289 
 lib/packagekit-glib2/pk-console-shared.h                                         |    4 
 lib/packagekit-glib2/pk-control.c                                                | 1977 +++---
 lib/packagekit-glib2/pk-desktop.c                                                |    4 
 lib/packagekit-glib2/pk-enum.c                                                   |  321 +
 lib/packagekit-glib2/pk-enum.h                                                   |    6 
 lib/packagekit-glib2/pk-self-test.c                                              |   30 
 lib/packagekit-glib2/pk-task-sync.c                                              |   53 
 lib/packagekit-glib2/pk-task-sync.h                                              |    6 
 lib/packagekit-glib2/pk-task.c                                                   |   82 
 lib/packagekit-glib2/pk-task.h                                                   |    6 
 lib/python/packagekit/backend.py                                                 |   31 
 moc.mk                                                                           |   12 
 po/LINGUAS                                                                       |    2 
 po/POTFILES.in                                                                   |    1 
 po/as.po                                                                         |  445 -
 po/bg.po                                                                         |  447 -
 po/bn_IN.po                                                                      |  448 -
 po/ca.po                                                                         |  447 -
 po/da.po                                                                         |  452 -
 po/de.po                                                                         |  519 -
 po/el.po                                                                         |  450 -
 po/en_GB.po                                                                      |  445 -
 po/eo.po                                                                         | 2068 ++++++
 po/es.po                                                                         |  459 -
 po/eu.po                                                                         |  444 -
 po/fi.po                                                                         |  450 -
 po/fr.po                                                                         |  451 -
 po/gu.po                                                                         |  445 -
 po/he.po                                                                         |  444 -
 po/hi.po                                                                         |  445 -
 po/hu.po                                                                         |  447 -
 po/it.po                                                                         |  500 -
 po/it_IT.po                                                                      |  442 -
 po/ja.po                                                                         |  481 -
 po/kn.po                                                                         |  447 -
 po/ko.po                                                                         | 1173 +--
 po/lt.po                                                                         |  507 -
 po/lv.po                                                                         | 2092 ++++++
 po/ml.po                                                                         |  446 -
 po/mr.po                                                                         |  446 -
 po/ms.po                                                                         |  443 -
 po/nb.po                                                                         |  445 -
 po/nl.po                                                                         |  472 -
 po/or.po                                                                         |  444 -
 po/pa.po                                                                         |  430 -
 po/pl.po                                                                         |  449 -
 po/pt.po                                                                         |  447 -
 po/pt_BR.po                                                                      |  446 -
 po/ro.po                                                                         |  445 -
 po/sl.po                                                                         |  441 -
 po/sr.po                                                                         |  444 -
 po/sr at latin.po                                                                   |  444 -
 po/ta.po                                                                         |  442 -
 po/te.po                                                                         |  445 -
 po/th.po                                                                         |  442 -
 po/tr.po                                                                         |  442 -
 po/uk.po                                                                         |  447 -
 po/zh_CN.po                                                                      |  470 -
 policy/org.freedesktop.packagekit.policy.in                                      |   16 
 src/Makefile.am                                                                  |    8 
 src/org.freedesktop.PackageKit.Transaction.xml                                   |   58 
 src/pk-backend-spawn.c                                                           |    7 
 src/pk-backend.c                                                                 |   91 
 src/pk-backend.h                                                                 |   10 
 src/pk-engine.c                                                                  |   40 
 src/pk-plugin.h                                                                  |   28 
 src/pk-proc.c                                                                    |  362 +
 src/pk-proc.h                                                                    |   63 
 src/pk-transaction.c                                                             |  591 +
 src/pk-transaction.h                                                             |    2 
 src/plugins/Makefile.am                                                          |   12 
 src/plugins/pk-proc.c                                                            |  362 -
 src/plugins/pk-proc.h                                                            |   63 
 src/plugins/pk-self-test.c                                                       |   19 
 175 files changed, 23963 insertions(+), 14045 deletions(-)

New commits:
commit d3230babbc33e2840b3aa61a8719fcb2415fbdb0
Author: Richard Hughes <richard at hughsie.com>
Date:   Tue Jan 17 17:41:36 2012 +0000

    Release version 0.7.2

diff --git a/NEWS b/NEWS
index 65963bc..6fc1a07 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,99 @@
+Version 0.7.2
+~~~~~~~~~~~~~
+Released: 2011-01-17
+
+Notes:
+ - Lots of new features, bugfixes and bugs, so please test this release
+   carefully if you're uploading into a stable distribution. If you want
+   stability, you're probably better off with a release from the
+   0.6.x series until all the new stuff has settled down.
+
+Libraries:
+ - glib: Convert libpackagekit-glib2 from dbus-glib to GDBus (Richard Hughes)
+ - glib: Skip empty catalog entries (Christian Persch)
+ - qt: automatically rebuild moc files with different moc version (Nils Philippsen)
+
+Backends:
+ - apt: Adapt progress reporting to the latest PackageKit and python-apt API (Sebastian Heinlein)
+ - apt: Add a test suite covering already most of the methods (Sebastian Heinlein)
+ - apt: Add support for piping the debconf communication to the client (Sebastian Heinlein)
+ - apt: Add support for repair-system and simulate-repair-system including correpsonding test cases (Sebastian Heinlein)
+ - apt: Add tests if security updates and backports are detected correctly (Sebastian Heinlein)
+ - apt: Disable apt-listbugs frontend (Sebastian Heinlein)
+ - apt: Do not try to install not available files (TODO.apt) (Sebastian Heinlein)
+ - apt: Don't open the cache on backend initialization to speed up processing (Sebastian Heinlein)
+ - apt: Don't use optparse to safe some startup time. Instead use a separate profiler script (Sebastian Heinlein)
+ - apt: Fix a wrong str/unicode replacement by the Py3 preparation (Sebastian Heinlein)
+ - apt: Fix filter tests since we have a new package in the test repo (Sebastian Heinlein)
+ - apt: Fix media change failure and a test case (Sebastian Heinlein)
+ - apt: Fix repo details signals (Sebastian Heinlein)
+ - apt: Improve detection and killing of hanging maintainer scripts (Sebastian Heinlein)
+ - apt: Improve forked child setup (Sebastian Heinlein)
+ - apt: improve progress range handling (Sebastian Heinlein)
+ - apt: More python3 related clean ups (Sebastian Heinlein)
+ - apt: Port to latest PackageKit API (Sebastian Heinlein)
+ - apt: Raise exceptions in the backend code instead of calling PackageKitBaseBackend.error directly (Sebastian Heinlein)
+ - apt: remove encoding mangling - should be handled by packagekit.backend already (Sebastian Heinlein)
+ - apt: remove oboslete files (Sebastian Heinlein)
+ - apt: Respect the ROOT environement variable (Sebastian Heinlein)
+ - apt: Start with updating the backend on several places (Sebastian Heinlein)
+ - apt: Too many API and style fixes to count (Sebastian Heinlein)
+ - apt: Use the apt.progress.base.InstallProgress abilities to handle dpkg progress (Sebastian Heinlein)
+ - apt: use the dpkg bin and options from the apt configuration (Sebastian Heinlein)
+ - apt: Use the ROOT env to set the backend to the chroot and the correct path to the test repo (Sebastian Heinlein)
+ - aptcc: Add Multi-Arch support (Daniel Nicoletti)
+ - aptcc: Add native filter so we do not show i386 packages if we are on amd64 for example (Daniel Nicoletti)
+ - aptcc: Fix crash on get-categories, backend does not support that (Matthias Klumpp)
+ - aptcc: forgot to add DebFile class (Daniel Nicoletti)
+ - aptcc: Initial commit to support InstallPackageFiles (Daniel Nicoletti)
+ - aptcc: Only return GetDistroUpgrades and installFiles if the helpers are available (Daniel Nicoletti)
+ - aptcc: Properly read GDebi install/remove line (Daniel Nicoletti)
+ - aptcc: Use gdebi to resolve local file installation, Fix conffile handlying by interpreting the exit status properly (Daniel Nicoletti)
+ - apt(cc): Use gdbus in the post-update hook call to StateHasChanged (Sebastian Heinlein)
+ - dummy: Add dummy RepairSystem methods (Richard Hughes)
+ - urpmi: Add enums for unimplemented features as commented out code (Per Øyvind Karlsen)
+ - urpmi: Add support for provide type (Per Øyvind Karlsen)
+ - urpmi: Do matching against fullname (Per Øyvind Karlsen)
+ - urpmi: First shot at what-provides (Per Øyvind Karlsen)
+ - urpmi: Fix 'Using a hash as a reference is deprecated' warning (Per Øyvind Karlsen)
+ - urpmi: Implement a 'Supported' filter (Per Øyvind Karlsen)
+ - urpmi: Implement 'Cancel' feature (Per Øyvind Karlsen)
+ - urpmi: Implement 'Free' filter (Per Øyvind Karlsen)
+ - urpmi: Implement get_mime_types (Per Øyvind Karlsen)
+ - urpmi: Implement get_roles (Per Øyvind Karlsen)
+ - urpmi: Implement is_package_installed() which uses URPM:is_package_installed() (Per Øyvind Karlsen)
+ - urpmi: import urpm::msg for N() (Per Øyvind Karlsen)
+ - urpmi: Make find_installed_version use EVRD (Per Øyvind Karlsen)
+ - urpmi: Put 'supported' filter to use (Per Øyvind Karlsen)
+ - urpmi: Traverse database by name rather than nvra (Per Øyvind Karlsen)
+ - urpmi: Update to use find_installed_fullname (Per Øyvind Karlsen)
+ - urpmi: Use urpm2deium from tools & check if undefined or not (Per Øyvind Karlsen)
+ - yum: Use current API for installing untrusted packages (Nils Philippsen)
+ - yum: Consistently use same logic to determine GPG checking (Nils Philippsen)
+ - yum: Don't request authorization for trusted packages (#771746) (Nils Philippsen)
+ - zif: Use the new transaction_reset hook to clear the backend state (Richard Hughes)
+ - zypp: Retrieve url for packages instead of returning "TODO" (Duncan Mac-Vicar P)
+
+New Features:
+ - Add a new repair-system policy and use it by the corresponding RepairSystem method (Sebastian Heinlein)
+ - Add a transaction_reset backend hook (Richard Hughes)
+ - Add new roles SimulateRepairSystem and RepairSystem (Sebastian Heinlein)
+ - Add pk_*_enum_to_localised_text to pk-enum.h and export via GIR (Michael Vogt)
+ - Add possibility to connect/disconnect backend signals (Matthias Klumpp)
+ - Add PropertiesChanged signals to the main and transaction interfaces (Richard Hughes)
+ - Allow the Plasma version to be specified for PK_PROVIDES_ENUM_PLASMA_SERVICE (Kevin Kofler)
+
+Bugfixes:
+ - browser-plugin: Make it compile with newest xulrunner (Matthias Klumpp)
+ - Fix a critical warning in the client tools when a simulation is cancelled (Richard Hughes)
+ - Fix builddir != srcdir issue (Ryan Lortie)
+ - Fix item-percentage call in the spawned backend (Sebastian Heinlein)
+ - gtk-plugin: Fix name of GTK plugin schema file (Matthias Klumpp)
+ - Make PkProc part of the daemon again (Matthias Klumpp)
+ - Remove deprecated g_thread_init() on GLib < 2.31 (Per Øyvind Karlsen)
+ - Set the frontend socket as environment variable in the spawned backend (Sebastian Heinlein)
+ - Update the website matrix to include the new (Simulate)RepairSystem roles (Sebastian Heinlein)
+
 Version 0.7.1
 ~~~~~~~~~~~~~
 Released: 2011-11-10
diff --git a/RELEASE b/RELEASE
index c5eb3c8..adcba7e 100644
--- a/RELEASE
+++ b/RELEASE
@@ -25,6 +25,7 @@ Bugfixes:
 2.5. Update translations and commit them with sign-off:
 
 tx pull --all
+git add po/*.po
 
 3. Update library version if new ABI or API in configure.ac
 
diff --git a/configure.ac b/configure.ac
index 32858e8..ad2b2d0 100644
--- a/configure.ac
+++ b/configure.ac
@@ -45,7 +45,7 @@ AC_SUBST(PK_VERSION)
 # AGE		If libpackagekit can be linked into executables which can be
 # 		built with previous versions of this library. Don't use.
 LT_CURRENT=14
-LT_REVISION=10
+LT_REVISION=11
 LT_AGE=0
 AC_SUBST(LT_CURRENT)
 AC_SUBST(LT_REVISION)
diff --git a/docs/html/pk-download.html b/docs/html/pk-download.html
index d8ce101..77a2fd3 100644
--- a/docs/html/pk-download.html
+++ b/docs/html/pk-download.html
@@ -72,6 +72,7 @@ Releases are normally on the first working Monday of each month.
 </p>
 <table>
 <tr><td><b>Version</b></td><td>&nbsp;&nbsp;</td><td><b>Date</b></td></tr>
+<tr><td>0.7.2</td><td></td><td>2012-01-17</td></tr>
 <tr><td>0.7.1</td><td></td><td>2011-11-10</td></tr>
 <tr><td>0.7.0</td><td></td><td>2011-09-05</td></tr>
 </table>
diff --git a/po/LINGUAS b/po/LINGUAS
index aca4c92..252a80e 100644
--- a/po/LINGUAS
+++ b/po/LINGUAS
@@ -10,6 +10,7 @@ da
 de
 el
 en_GB
+eo
 es
 eu
 fa_IR
@@ -29,6 +30,7 @@ kk
 kn
 ko
 lt
+lv
 ml
 mr
 ms
diff --git a/po/as.po b/po/as.po
index 58432b7..97576e7 100644
--- a/po/as.po
+++ b/po/as.po
@@ -2,14 +2,16 @@
 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
 # This file is distributed under the same license as the PACKAGE package.
 # 
-# Richard Hughes <richard at hughsie.com>, 2011
+# Translators:
+# Amitakhya Phukan <aphukan at fedoraproject.org>, 2009.
+# Richard Hughes <richard at hughsie.com>, 2011.
 msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-04 10:50+0100\n"
-"PO-Revision-Date: 2011-05-04 09:56+0000\n"
-"Last-Translator: hughsie <richard at hughsie.com>\n"
+"POT-Creation-Date: 2011-11-10 19:50+0000\n"
+"PO-Revision-Date: 2011-11-10 19:50+0000\n"
+"Last-Translator: Richard Hughes <richard at hughsie.com>\n"
 "Language-Team: LANGUAGE <LL at li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -195,7 +197,7 @@ msgstr "প্ৰদান কৰা হ'ল"
 
 #. TRANSLATORS: details about the update, date the update was updated
 #. TRANSLATORS: The action of the package, in past tense
-#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:524
+#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:559
 msgid "Updated"
 msgstr "উন্নত কৰা হ'ল"
 
@@ -285,7 +287,7 @@ msgstr ""
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
 #: ../client/pk-console.c:704
-#: ../contrib/command-not-found/pk-command-not-found.c:639
+#: ../contrib/command-not-found/pk-command-not-found.c:634
 msgid "The transaction failed"
 msgstr "লেন দেন বিফল হৈছে"
 
@@ -337,21 +339,21 @@ msgstr ""
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:866
+#: ../client/pk-console.c:871
 #, c-format
 msgid "This tool could not find any available package: %s"
 msgstr "উপলব্ধ কোনো সৰঞ্জাম এই সামগ্ৰী দ্বাৰা পোৱা নাযায়: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:894
+#: ../client/pk-console.c:899
 #, c-format
 msgid "This tool could not find the installed package: %s"
 msgstr "এই সৰঞ্জামে সংস্থাপিত সৰঞ্জামসমূহ বিচাৰিব নোৱাৰিলে: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:922 ../client/pk-console.c:950
+#: ../client/pk-console.c:927 ../client/pk-console.c:955
 #, c-format
 msgid "This tool could not find the package: %s"
 msgstr "এই সৰঞ্জামে সৰঞ্জামসমূহ বিচাৰিব নোৱাৰিলে: %s"
@@ -364,68 +366,68 @@ msgstr "এই সৰঞ্জামে সৰঞ্জামসমূহ বি
 #. detailed error follows
 #. TRANSLATORS: The package name was not found in any software sources. The
 #. detailed error follows
-#: ../client/pk-console.c:978 ../client/pk-console.c:1006
-#: ../client/pk-console.c:1034 ../client/pk-console.c:1062
-#: ../client/pk-console.c:1090
+#: ../client/pk-console.c:983 ../client/pk-console.c:1011
+#: ../client/pk-console.c:1039 ../client/pk-console.c:1067
+#: ../client/pk-console.c:1095
 #, c-format
 msgid "This tool could not find all the packages: %s"
 msgstr "এই সৰঞ্জামে সকলো সৰঞ্জামসমূহ বিচাৰিব নোৱাৰিলে: %s"
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek
 #. without a paddle
-#: ../client/pk-console.c:1119
+#: ../client/pk-console.c:1124
 msgid "The daemon crashed mid-transaction!"
 msgstr "লেন দেনৰ মাজতে ডেমন ক্ৰেশ্ব হ'ল!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1153
+#: ../client/pk-console.c:1158
 msgid "PackageKit Console Interface"
 msgstr "PackageKit ক'ন্সোল সংযোগমাধ্যম"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1155
+#: ../client/pk-console.c:1160
 msgid "Subcommands:"
 msgstr "উপ আদেশ:"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was
 #. last executed
-#: ../client/pk-console.c:1235
+#: ../client/pk-console.c:1240
 msgid "Failed to get the time since this action was last completed"
 msgstr "যোৱাবাৰৰ কাম শেষ হোৱাৰ সময় পাবলৈ বিফল"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1277 ../client/pk-monitor.c:371
+#: ../client/pk-console.c:1282 ../client/pk-monitor.c:371
 msgid "Show the program version and exit"
 msgstr "অনুপ্ৰয়োগৰ সংস্কৰণ দেখুৱাই প্ৰস্থান কৰক"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1280
+#: ../client/pk-console.c:1285
 msgid "Set the filter, e.g. installed"
 msgstr "ফিল্টাৰ নিৰ্ধাৰণ কৰক, যেনে সংস্থাপিত"
 
 #. TRANSLATORS: command line argument, use a non-standard install prefix
-#: ../client/pk-console.c:1283
+#: ../client/pk-console.c:1288
 msgid "Set the install root, e.g. '/' or '/mnt/ltsp'"
 msgstr ""
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1286
+#: ../client/pk-console.c:1291
 msgid "Exit without waiting for actions to complete"
 msgstr "কাম সম্পূৰ্ণ নকৰাকে প্ৰস্থান কৰক"
 
 #. command line argument, do we ask questions
-#: ../client/pk-console.c:1289
+#: ../client/pk-console.c:1294
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:525
 msgid "Install the packages without asking for confirmation"
 msgstr "নিশ্চিত কৰিবলৈ প্ৰশ্ন নকৰিয়েই সৰঞ্জামসমূহ সংস্থাপন কৰক"
 
 #. TRANSLATORS: command line argument, this command is not a priority
-#: ../client/pk-console.c:1292
+#: ../client/pk-console.c:1297
 msgid "Run the command using idle network bandwidth and also using less power"
 msgstr "নিষ্কৰ্ম নে'টৱৰ্ক বেণ্ডৱিথ আৰু কম শক্তি ব্যৱহাৰ কৰি আদেশ চলাওক"
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1295
+#: ../client/pk-console.c:1300
 msgid ""
 "Print to screen a machine readable output, rather than using animated "
 "widgets"
@@ -433,156 +435,156 @@ msgstr ""
 "এনিমেটেড ৱিজেটৰ সলনি, পৰ্দ্দাত এটা যন্ত্ৰই পঢ়িব পৰা নিৰ্গম হিচাপে লিখক"
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1298
+#: ../client/pk-console.c:1303
 msgid "The maximum metadata cache age. Use -1 for 'never'."
 msgstr ""
 
 #. TRANSLATORS: command line argument, --help
-#: ../client/pk-console.c:1301
+#: ../client/pk-console.c:1306
 msgid "Show help options."
 msgstr ""
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1331
+#: ../client/pk-console.c:1336
 msgid "Failed to parse command line"
 msgstr ""
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1341
+#: ../client/pk-console.c:1346
 msgid "Failed to contact PackageKit"
 msgstr "PackageKit ৰ সৈতে সংযোগ স্থাপন কৰিবলৈ ব্যৰ্থ ।"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1394
+#: ../client/pk-console.c:1399
 msgid "The proxy could not be set"
 msgstr ""
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1406
+#: ../client/pk-console.c:1411
 msgid "The install root could not be set"
 msgstr ""
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1418
+#: ../client/pk-console.c:1423
 msgid "The filter specified was invalid"
 msgstr "নিৰ্ধাৰিত ফিল্টাৰ অবৈধ"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1437
+#: ../client/pk-console.c:1442
 msgid "A search type is required, e.g. name"
 msgstr "বিচৰাৰ ধৰণৰ প্ৰয়োজন, যেনে নাম"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1444 ../client/pk-console.c:1456
-#: ../client/pk-console.c:1468 ../client/pk-console.c:1480
+#: ../client/pk-console.c:1449 ../client/pk-console.c:1461
+#: ../client/pk-console.c:1473 ../client/pk-console.c:1485
 msgid "A search term is required"
 msgstr "বিচাৰিবলৈ শব্দৰ প্ৰয়োজন"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1490
+#: ../client/pk-console.c:1495
 msgid "Invalid search type"
 msgstr "অবৈধ বিচৰাৰ ধৰণ"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1496
+#: ../client/pk-console.c:1501
 msgid "A package name to install is required"
 msgstr "সংস্থাপন কৰিবলৈ সৰঞ্জামৰ নামৰ প্ৰয়োজন"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1505
+#: ../client/pk-console.c:1510
 msgid "A filename to install is required"
 msgstr "সংস্থাপন কৰিবলৈ নথিপত্ৰৰ নামৰ প্ৰয়োজন"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1516
+#: ../client/pk-console.c:1521
 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:1527
+#: ../client/pk-console.c:1532
 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:1536
+#: ../client/pk-console.c:1541
 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:1543
+#: ../client/pk-console.c:1548
 msgid "Directory not found"
 msgstr "পঞ্জিকা পোৱা ন'গ'ল"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1552
+#: ../client/pk-console.c:1557
 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:1563
+#: ../client/pk-console.c:1568
 msgid "A transaction identifier (tid) is required"
 msgstr "লেন দেনৰ চিনাকি এটাৰ (tid) প্ৰয়োজন"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:1584
+#: ../client/pk-console.c:1589
 msgid "A package name to resolve is required"
 msgstr "বিশ্লেষণ কৰিবলৈ এটা সৰঞ্জামৰ নামৰ প্ৰয়োজন"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:1595 ../client/pk-console.c:1606
+#: ../client/pk-console.c:1600 ../client/pk-console.c:1611
 msgid "A repository name is required"
 msgstr "এটা ভঁৰালৰ নামৰ প্ৰয়োজন"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:1617
+#: ../client/pk-console.c:1622
 msgid "A repo name, parameter and value are required"
 msgstr "এটা ভঁৰালৰ নাম, স্থিতিমাপ আৰু মানৰ প্ৰয়োজন"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:1634
+#: ../client/pk-console.c:1639
 msgid "An action, e.g. 'update-system' is required"
 msgstr "এটা কাৰ্য্য, যেনে 'update system' ৰ প্ৰয়োজন"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:1641
+#: ../client/pk-console.c:1646
 msgid "A correct role is required"
 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:1651 ../client/pk-console.c:1665
-#: ../client/pk-console.c:1674 ../client/pk-console.c:1694
-#: ../client/pk-console.c:1703 ../client/pk-generate-pack.c:314
+#: ../client/pk-console.c:1656 ../client/pk-console.c:1670
+#: ../client/pk-console.c:1679 ../client/pk-console.c:1699
+#: ../client/pk-console.c:1708 ../client/pk-generate-pack.c:314
 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:1683
+#: ../client/pk-console.c:1688
 msgid "A package provide string is required"
 msgstr "এটা সৰঞ্জাম দিওঁতাৰ শব্দৰ প্ৰয়োজন"
 
 #. TRANSLATORS: The user did not provide a distro name
-#: ../client/pk-console.c:1727
+#: ../client/pk-console.c:1732
 msgid "A distribution name is required"
 msgstr ""
 
 #. TRANSLATORS: The user did not provide an upgrade type
-#: ../client/pk-console.c:1733
+#: ../client/pk-console.c:1738
 msgid "An upgrade type is required, e.g. 'minimal', 'default' or 'complete'"
 msgstr ""
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command
 #. line
-#: ../client/pk-console.c:1783
+#: ../client/pk-console.c:1788
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "'%s' বিকল্প অসমৰ্থিত"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:1793
+#: ../client/pk-console.c:1798
 msgid "Command failed"
 msgstr "আদেশ বিফল"
 
@@ -719,161 +721,156 @@ msgid "PackageKit Monitor"
 msgstr "PackageKit Monitor"
 
 #. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/pk-plugin-install.c:499
+#: ../contrib/browser-plugin/pk-plugin-install.c:503
 msgid "Getting package information..."
 msgstr "সৰঞ্জামৰ তথ্য পোৱা হৈছে..."
 
 #. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/pk-plugin-install.c:505
+#: ../contrib/browser-plugin/pk-plugin-install.c:509
 #, c-format
 msgid "Run %s"
 msgstr "%s চলাওক"
 
 #. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:511
+#: ../contrib/browser-plugin/pk-plugin-install.c:515
 msgid "Installed version"
 msgstr "সংস্থাপিত সংস্কৰণ"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:519
+#: ../contrib/browser-plugin/pk-plugin-install.c:523
 #, c-format
 msgid "Run version %s now"
 msgstr "সংস্কৰণ %s এতিয়া চলাওক"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:525
+#: ../contrib/browser-plugin/pk-plugin-install.c:529
 msgid "Run now"
 msgstr "এতিয়া চলাওক"
 
 #. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:531
+#: ../contrib/browser-plugin/pk-plugin-install.c:535
 #, c-format
 msgid "Update to version %s"
 msgstr "%s সংস্কৰণলৈ উন্নত কৰক"
 
 #. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:537
+#: ../contrib/browser-plugin/pk-plugin-install.c:541
 #, c-format
 msgid "Install %s now"
 msgstr "এতিয়া %s সংস্থাপন কৰক"
 
 #. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:540
+#: ../contrib/browser-plugin/pk-plugin-install.c:544
 msgid "Version"
 msgstr "সংস্কৰণ"
 
 #. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/pk-plugin-install.c:545
+#: ../contrib/browser-plugin/pk-plugin-install.c:549
 msgid "No packages found for your system"
 msgstr "আপোনাৰ ব্যৱস্থাপ্ৰণালীৰ বাবে সৰঞ্জাম পোৱা ন'গ'ল"
 
 #. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/pk-plugin-install.c:550
+#: ../contrib/browser-plugin/pk-plugin-install.c:554
 msgid "Installing..."
 msgstr "সংস্থাপন কৰা হৈছে..."
 
 #. TRANSLATORS: downloading repo data so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:366
+#: ../contrib/command-not-found/pk-command-not-found.c:363
 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:370
+#: ../contrib/command-not-found/pk-command-not-found.c:367
 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:374
+#: ../contrib/command-not-found/pk-command-not-found.c:371
 msgid "Waiting for package manager lock."
 msgstr "সৰঞ্জাম পৰিচালন ব্যৱস্থাৰ লক প্ৰাপ্ত কৰাৰ অপেক্ষা চলিছে ।"
 
 #. TRANSLATORS: loading package cache so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:378
+#: ../contrib/command-not-found/pk-command-not-found.c:375
 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:444
+#: ../contrib/command-not-found/pk-command-not-found.c:439
 msgid "Failed to search for file"
 msgstr "নথিপত্ৰ বিচাৰিব পৰা ন'গ'ল"
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
-#: ../contrib/command-not-found/pk-command-not-found.c:456
+#: ../contrib/command-not-found/pk-command-not-found.c:451
 msgid "Getting the list of files failed"
 msgstr ""
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:602
+#: ../contrib/command-not-found/pk-command-not-found.c:597
 msgid "Failed to launch:"
 msgstr "আৰম্ভ কৰিবলৈ বিফল:"
 
 #. TRANSLATORS: we failed to install the package
-#: ../contrib/command-not-found/pk-command-not-found.c:630
+#: ../contrib/command-not-found/pk-command-not-found.c:625
 msgid "Failed to install packages"
 msgstr "সৰঞ্জাম সংস্থাপন কৰা নাযায়: %s"
 
-#. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/command-not-found/pk-command-not-found.c:706
-msgid "PackageKit Command Not Found"
-msgstr "PackageKit আদেশ পোৱা ন'গ'ল"
-
 #. TRANSLATORS: the prefix of all the output telling the user
 #. * why it's not executing. NOTE: this is lowercase to mimic
 #. * the style of bash itself -- apologies
-#: ../contrib/command-not-found/pk-command-not-found.c:741
+#: ../contrib/command-not-found/pk-command-not-found.c:723
 msgid "command not found"
 msgstr ""
 
 #. TRANSLATORS: tell the user what we think the command is
-#: ../contrib/command-not-found/pk-command-not-found.c:759
+#: ../contrib/command-not-found/pk-command-not-found.c:741
 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:773
+#: ../contrib/command-not-found/pk-command-not-found.c:755
 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:787
-#: ../contrib/command-not-found/pk-command-not-found.c:796
+#: ../contrib/command-not-found/pk-command-not-found.c:769
+#: ../contrib/command-not-found/pk-command-not-found.c:778
 msgid "Similar commands are:"
 msgstr "একে ধৰণৰ আদেশ হ'ল:"
 
 #. TRANSLATORS: ask the user to choose a file to run
-#: ../contrib/command-not-found/pk-command-not-found.c:803
+#: ../contrib/command-not-found/pk-command-not-found.c:785
 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:821
+#: ../contrib/command-not-found/pk-command-not-found.c:803
 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:828
+#: ../contrib/command-not-found/pk-command-not-found.c:810
 #, 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:855
+#: ../contrib/command-not-found/pk-command-not-found.c:837
 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:865
+#: ../contrib/command-not-found/pk-command-not-found.c:847
 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:874
+#: ../contrib/command-not-found/pk-command-not-found.c:856
 msgid "Please choose a package to install"
 msgstr "সংস্থাপন কৰিবলৈ এটা সৰঞ্জাম নিৰ্ব্বাচন কৰক"
 
@@ -1048,7 +1045,7 @@ msgstr "অনুকৰণৰ মোডত কোনো সৰঞ্জাম 
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
 #. TRANSLATORS: transaction state, installing packages
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:860
-#: ../lib/packagekit-glib2/pk-console-shared.c:296
+#: ../lib/packagekit-glib2/pk-console-shared.c:331
 #, c-format
 msgid "Installing packages"
 msgstr "সৰঞ্জাম সংস্থাপন কৰা হৈছে"
@@ -1184,474 +1181,474 @@ msgstr "PackageKit সৰঞ্জামৰ তালিকা"
 msgid "PackageKit Service Pack"
 msgstr "PackageKit সেৱাৰ গোট"
 
-#: ../lib/packagekit-glib2/pk-console-shared.c:64
+#: ../lib/packagekit-glib2/pk-console-shared.c:65
 #, c-format
 msgid "Please enter a number from 1 to %i: "
 msgstr "১ ৰ পৰা %i লৈ এটা সংখ্যা দিয়ক: "
 
 #. TRANSLATORS: more than one package could be found that matched, to follow
 #. is a list of possible packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:198
+#: ../lib/packagekit-glib2/pk-console-shared.c:233
 msgid "More than one package matches:"
 msgstr "একাধিক সৰঞ্জামৰ সৈতে মিল:"
 
 #. TRANSLATORS: This finds out which package in the list to use
-#: ../lib/packagekit-glib2/pk-console-shared.c:209
+#: ../lib/packagekit-glib2/pk-console-shared.c:244
 msgid "Please choose the correct package: "
 msgstr "অনুগ্ৰহ কৰি শুদ্ধ সৰঞ্জাম নিৰ্ব্বাচন কৰক:"
 
 #. TRANSLATORS: This is when the transaction status is not known
-#: ../lib/packagekit-glib2/pk-console-shared.c:264
+#: ../lib/packagekit-glib2/pk-console-shared.c:299
 msgid "Unknown state"
 msgstr "অজ্ঞাত অৱস্থা"
 
 #. TRANSLATORS: transaction state, the daemon is in the process of starting
-#: ../lib/packagekit-glib2/pk-console-shared.c:268
+#: ../lib/packagekit-glib2/pk-console-shared.c:303
 msgid "Starting"
 msgstr "সংস্থাপন আৰম্ভ কৰা হৈছে"
 
 #. TRANSLATORS: transaction state, the transaction is waiting for another to
 #. complete
-#: ../lib/packagekit-glib2/pk-console-shared.c:272
+#: ../lib/packagekit-glib2/pk-console-shared.c:307
 msgid "Waiting in queue"
 msgstr "শাৰীত অপেক্ষাৰত"
 
 #. TRANSLATORS: transaction state, just started
-#: ../lib/packagekit-glib2/pk-console-shared.c:276
+#: ../lib/packagekit-glib2/pk-console-shared.c:311
 msgid "Running"
 msgstr "চলি থকা"
 
 #. TRANSLATORS: transaction state, is querying data
-#: ../lib/packagekit-glib2/pk-console-shared.c:280
+#: ../lib/packagekit-glib2/pk-console-shared.c:315
 msgid "Querying"
 msgstr "অনুসন্ধান কৰা হৈছে"
 
 #. TRANSLATORS: transaction state, getting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:284
+#: ../lib/packagekit-glib2/pk-console-shared.c:319
 msgid "Getting information"
 msgstr "তথ্য প্ৰাপ্ত কৰা হৈছে..."
 
 #. TRANSLATORS: transaction state, removing packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:288
+#: ../lib/packagekit-glib2/pk-console-shared.c:323
 msgid "Removing packages"
 msgstr "সৰঞ্জাম আঁতৰুৱা হৈছে"
 
 #. TRANSLATORS: transaction state, downloading package files
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:292
-#: ../lib/packagekit-glib2/pk-console-shared.c:670
+#: ../lib/packagekit-glib2/pk-console-shared.c:327
+#: ../lib/packagekit-glib2/pk-console-shared.c:705
 msgid "Downloading packages"
 msgstr "সৰঞ্জাম ডাউন্‌লোড কৰা হৈছে"
 
 #. TRANSLATORS: transaction state, refreshing internal lists
-#: ../lib/packagekit-glib2/pk-console-shared.c:300
+#: ../lib/packagekit-glib2/pk-console-shared.c:335
 msgid "Refreshing software list"
 msgstr "চালনাজ্ঞানৰ তালিকা নতুনকৈ নিৰ্মাণ কৰা হৈছে"
 
 #. TRANSLATORS: transaction state, installing updates
-#: ../lib/packagekit-glib2/pk-console-shared.c:304
+#: ../lib/packagekit-glib2/pk-console-shared.c:339
 msgid "Installing updates"
 msgstr "উন্নয়ন সংস্থাপন কৰা হৈছে"
 
 #. TRANSLATORS: transaction state, removing old packages, and cleaning config
 #. files
-#: ../lib/packagekit-glib2/pk-console-shared.c:308
+#: ../lib/packagekit-glib2/pk-console-shared.c:343
 msgid "Cleaning up packages"
 msgstr "সৰঞ্জাম পৰিশ্ৰুত কৰা হৈছে"
 
 #. TRANSLATORS: transaction state, obsoleting old packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:312
+#: ../lib/packagekit-glib2/pk-console-shared.c:347
 msgid "Obsoleting packages"
 msgstr "সৰঞ্জাম অবচিত কৰা হৈছে"
 
 #. TRANSLATORS: transaction state, checking the transaction before we do it
-#: ../lib/packagekit-glib2/pk-console-shared.c:316
+#: ../lib/packagekit-glib2/pk-console-shared.c:351
 msgid "Resolving dependencies"
 msgstr "নিৰ্ভৰতাৰ মীমাংসা কৰা হৈছে"
 
 #. TRANSLATORS: transaction state, checking if we have all the security keys
 #. for the operation
-#: ../lib/packagekit-glib2/pk-console-shared.c:320
+#: ../lib/packagekit-glib2/pk-console-shared.c:355
 msgid "Checking signatures"
 msgstr "স্বাক্ষৰ পৰীক্ষা কৰা হৈছে"
 
 #. TRANSLATORS: transaction state, when we return to a previous system state
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:324
-#: ../lib/packagekit-glib2/pk-console-shared.c:630
+#: ../lib/packagekit-glib2/pk-console-shared.c:359
+#: ../lib/packagekit-glib2/pk-console-shared.c:665
 msgid "Rolling back"
 msgstr "পূৰ্বাৱস্থালৈ প্ৰত্যাবৰ্তন কৰা হৈছে"
 
 #. TRANSLATORS: transaction state, when we're doing a test transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:328
+#: ../lib/packagekit-glib2/pk-console-shared.c:363
 msgid "Testing changes"
 msgstr "পৰিবৰ্তনসমূহ পৰীক্ষা কৰা হৈছে"
 
 #. TRANSLATORS: transaction state, when we're writing to the system package
 #. database
-#: ../lib/packagekit-glib2/pk-console-shared.c:332
+#: ../lib/packagekit-glib2/pk-console-shared.c:367
 msgid "Committing changes"
 msgstr "পৰিবৰ্তনসমূহ সংৰক্ষণ কৰা হৈছে"
 
 #. TRANSLATORS: transaction state, requesting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:336
+#: ../lib/packagekit-glib2/pk-console-shared.c:371
 msgid "Requesting data"
 msgstr "তথ্য প্ৰাপ্তিৰ অনুৰোধ কৰা হৈছে"
 
 #. TRANSLATORS: transaction state, all done!
-#: ../lib/packagekit-glib2/pk-console-shared.c:340
+#: ../lib/packagekit-glib2/pk-console-shared.c:375
 msgid "Finished"
 msgstr "সমাপ্ত"
 
 #. TRANSLATORS: transaction state, in the process of cancelling
-#: ../lib/packagekit-glib2/pk-console-shared.c:344
+#: ../lib/packagekit-glib2/pk-console-shared.c:379
 msgid "Cancelling"
 msgstr "বাতিল কৰা হৈছে"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:348
+#: ../lib/packagekit-glib2/pk-console-shared.c:383
 msgid "Downloading repository information"
 msgstr "সংগ্ৰহস্থল সংক্ৰান্ত তথ্য ডাউনলোড কৰা হৈছে"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:352
+#: ../lib/packagekit-glib2/pk-console-shared.c:387
 msgid "Downloading list of packages"
 msgstr "সৰঞ্জামৰ তালিকা ডাউনলোড কৰা হৈছে ।"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:356
+#: ../lib/packagekit-glib2/pk-console-shared.c:391
 msgid "Downloading file lists"
 msgstr "নথিপত্ৰৰ তালিকা ডাউনলোড কৰা হৈছে"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:360
+#: ../lib/packagekit-glib2/pk-console-shared.c:395
 msgid "Downloading lists of changes"
 msgstr "পৰিবৰ্তনৰ তালিকা ডাউনলোড কৰা হৈছে ।"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:364
+#: ../lib/packagekit-glib2/pk-console-shared.c:399
 msgid "Downloading groups"
 msgstr "দলৰ তথ্য ডাউনলোড কৰা হৈছে"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:368
+#: ../lib/packagekit-glib2/pk-console-shared.c:403
 msgid "Downloading update information"
 msgstr "উন্নয়ন সংক্ৰান্ত তথ্য ডাউনলোড কৰা হৈছে"
 
 #. TRANSLATORS: transaction state, repackaging delta files
-#: ../lib/packagekit-glib2/pk-console-shared.c:372
+#: ../lib/packagekit-glib2/pk-console-shared.c:407
 msgid "Repackaging files"
 msgstr "নথিপত্ৰক পুনঃ সৰঞ্জামৰ গোটত ভৰোৱা হৈছে"
 
 #. TRANSLATORS: transaction state, loading databases
-#: ../lib/packagekit-glib2/pk-console-shared.c:376
+#: ../lib/packagekit-glib2/pk-console-shared.c:411
 msgid "Loading cache"
 msgstr "কেশ্বে লোড কৰা হৈছে‌"
 
 #. TRANSLATORS: transaction state, scanning for running processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:380
+#: ../lib/packagekit-glib2/pk-console-shared.c:415
 msgid "Scanning applications"
 msgstr "অনুপ্ৰয়োগ অনুসন্ধান কৰা হৈছে"
 
 #. TRANSLATORS: transaction state, generating a list of packages installed on
 #. the system
-#: ../lib/packagekit-glib2/pk-console-shared.c:384
+#: ../lib/packagekit-glib2/pk-console-shared.c:419
 msgid "Generating package lists"
 msgstr "সৰঞ্জামৰ তালিকা নিৰ্মাণ কৰা হৈছে"
 
 #. TRANSLATORS: transaction state, when we're waiting for the native tools to
 #. exit
-#: ../lib/packagekit-glib2/pk-console-shared.c:388
+#: ../lib/packagekit-glib2/pk-console-shared.c:423
 msgid "Waiting for package manager lock"
 msgstr "সৰঞ্জাম পৰিচালন ব্যৱস্থাৰ লক প্ৰাপ্ত কৰাৰ অপেক্ষা কৰা হৈছে"
 
 #. TRANSLATORS: transaction state, waiting for user to type in a password
-#: ../lib/packagekit-glib2/pk-console-shared.c:392
+#: ../lib/packagekit-glib2/pk-console-shared.c:427
 msgid "Waiting for authentication"
 msgstr "প্ৰমাণীকৰণৰ অপেক্ষাৰত"
 
 #. TRANSLATORS: transaction state, we are updating the list of processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:396
+#: ../lib/packagekit-glib2/pk-console-shared.c:431
 msgid "Updating running applications"
 msgstr "চলমান অনুপ্ৰয়োগৰ তালিকা উন্নয়ন কৰা হৈছে"
 
 #. TRANSLATORS: transaction state, we are checking executable files currently
 #. in use
-#: ../lib/packagekit-glib2/pk-console-shared.c:400
+#: ../lib/packagekit-glib2/pk-console-shared.c:435
 msgid "Checking applications in use"
 msgstr "ব্যৱহৃত অনুপ্ৰয়োগ পৰীক্ষা কৰা হৈছে"
 
 #. TRANSLATORS: transaction state, we are checking for libraries currently in
 #. use
-#: ../lib/packagekit-glib2/pk-console-shared.c:404
+#: ../lib/packagekit-glib2/pk-console-shared.c:439
 msgid "Checking libraries in use"
 msgstr "ব্যৱহৃত লাইব্ৰৰিসমূহ পৰীক্ষা কৰা হৈছে"
 
 #. TRANSLATORS: transaction state, we are copying package files before or
 #. after the transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:408
+#: ../lib/packagekit-glib2/pk-console-shared.c:443
 msgid "Copying files"
 msgstr "নথিপত্ৰ নকল কৰা হৈছে"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:426
+#: ../lib/packagekit-glib2/pk-console-shared.c:461
 msgid "Trivial"
 msgstr "সামান্য"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:430
+#: ../lib/packagekit-glib2/pk-console-shared.c:465
 msgid "Normal"
 msgstr "সাধাৰণ"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:434
+#: ../lib/packagekit-glib2/pk-console-shared.c:469
 msgid "Important"
 msgstr "গুৰুত্বপূৰ্ণ"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:438
+#: ../lib/packagekit-glib2/pk-console-shared.c:473
 msgid "Security"
 msgstr "নিৰাপত্তা বিষয়ক"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:442
+#: ../lib/packagekit-glib2/pk-console-shared.c:477
 msgid "Bug fix "
 msgstr "বাগ সংশোধন"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:446
+#: ../lib/packagekit-glib2/pk-console-shared.c:481
 msgid "Enhancement"
 msgstr "উন্নত বৈশিষ্ট্য"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:450
+#: ../lib/packagekit-glib2/pk-console-shared.c:485
 msgid "Blocked"
 msgstr "ব্লক কৰা"
 
 #. TRANSLATORS: The state of a package
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:455
-#: ../lib/packagekit-glib2/pk-console-shared.c:528
+#: ../lib/packagekit-glib2/pk-console-shared.c:490
+#: ../lib/packagekit-glib2/pk-console-shared.c:563
 msgid "Installed"
 msgstr "সংস্থাপন কৰা হ'ল"
 
 #. TRANSLATORS: The state of a package, i.e. not installed
-#: ../lib/packagekit-glib2/pk-console-shared.c:460
+#: ../lib/packagekit-glib2/pk-console-shared.c:495
 msgid "Available"
 msgstr "উপলব্ধ"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:478
+#: ../lib/packagekit-glib2/pk-console-shared.c:513
 msgid "Downloading"
 msgstr "ডাউন্‌লোড কৰা হৈছে"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:482
+#: ../lib/packagekit-glib2/pk-console-shared.c:517
 msgid "Updating"
 msgstr "উন্নয়ন কৰা হৈছে"
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:486
-#: ../lib/packagekit-glib2/pk-console-shared.c:606
+#: ../lib/packagekit-glib2/pk-console-shared.c:521
+#: ../lib/packagekit-glib2/pk-console-shared.c:641
 msgid "Installing"
 msgstr "সংস্থাপন কৰা হৈছে"
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:490
-#: ../lib/packagekit-glib2/pk-console-shared.c:602
+#: ../lib/packagekit-glib2/pk-console-shared.c:525
+#: ../lib/packagekit-glib2/pk-console-shared.c:637
 msgid "Removing"
 msgstr "আঁতৰুৱা হৈছে"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:494
+#: ../lib/packagekit-glib2/pk-console-shared.c:529
 msgid "Cleaning up"
 msgstr "পৰিশ্ৰুত কৰা হৈছে"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:498
+#: ../lib/packagekit-glib2/pk-console-shared.c:533
 msgid "Obsoleting"
 msgstr "অবচিত কৰা হৈছে"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:502
+#: ../lib/packagekit-glib2/pk-console-shared.c:537
 msgid "Reinstalling"
 msgstr "পুনঃ সংস্থাপন কৰা হৈছে"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:520
+#: ../lib/packagekit-glib2/pk-console-shared.c:555
 msgid "Downloaded"
 msgstr "ডাউনলোড কৰা হৈছে"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:532
+#: ../lib/packagekit-glib2/pk-console-shared.c:567
 msgid "Removed"
 msgstr "অপশাৰীত"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:536
+#: ../lib/packagekit-glib2/pk-console-shared.c:571
 msgid "Cleaned up"
 msgstr "পৰিশ্ৰুত কৰা হৈছে"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:540
+#: ../lib/packagekit-glib2/pk-console-shared.c:575
 msgid "Obsoleted"
 msgstr "অবচিত"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:544
+#: ../lib/packagekit-glib2/pk-console-shared.c:579
 msgid "Reinstalled"
 msgstr "পুনঃ সংস্থাপন কৰা হ'ল"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:562
+#: ../lib/packagekit-glib2/pk-console-shared.c:597
 msgid "Unknown role type"
 msgstr "অজ্ঞাত ধৰনৰ ভূমিকা"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:566
+#: ../lib/packagekit-glib2/pk-console-shared.c:601
 msgid "Getting dependencies"
 msgstr "নিৰ্ভৰতাসমূহ প্ৰাপ্ত কৰা হৈছে"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:570
+#: ../lib/packagekit-glib2/pk-console-shared.c:605
 msgid "Getting update details"
 msgstr "উন্নয়নৰ বিৱৰণ প্ৰাপ্ত কৰা হৈছে"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:574
+#: ../lib/packagekit-glib2/pk-console-shared.c:609
 msgid "Getting details"
 msgstr "বিৱৰণ প্ৰাপ্ত কৰা হৈছে"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:578
+#: ../lib/packagekit-glib2/pk-console-shared.c:613
 msgid "Getting requires"
 msgstr "প্ৰয়োজনীয় সামগ্ৰীৰ তালিকা প্ৰাপ্ত কৰা হৈছে"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:582
+#: ../lib/packagekit-glib2/pk-console-shared.c:617
 msgid "Getting updates"
 msgstr "উন্নয়ন প্ৰাপ্ত কৰা হৈছে"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:586
+#: ../lib/packagekit-glib2/pk-console-shared.c:621
 msgid "Searching by details"
 msgstr "বিৱৰণ অনুযায়ী অনুসন্ধান কৰা হৈছে"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:590
+#: ../lib/packagekit-glib2/pk-console-shared.c:625
 msgid "Searching by file"
 msgstr "নথিপত্ৰ অনুযায়ী অনুসন্ধান কৰা হৈছে"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:594
+#: ../lib/packagekit-glib2/pk-console-shared.c:629
 msgid "Searching groups"
 msgstr "দলৰ অনুযায়ী অনুসন্ধান কৰা হৈছে"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:598
+#: ../lib/packagekit-glib2/pk-console-shared.c:633
 msgid "Searching by name"
 msgstr "নাম অনুযায়ী অনুসন্ধান কৰা হৈছে"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:610
+#: ../lib/packagekit-glib2/pk-console-shared.c:645
 msgid "Installing files"
 msgstr "নথিপত্ৰ সংস্থাপন কৰা হৈছে"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:614
+#: ../lib/packagekit-glib2/pk-console-shared.c:649
 msgid "Refreshing cache"
 msgstr "কেশ্বে নতুনকৈ নিৰ্মাণ কৰা হৈছে"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:618
+#: ../lib/packagekit-glib2/pk-console-shared.c:653
 msgid "Updating packages"
 msgstr "সৰঞ্জাম উন্নয়ন কৰা হৈছে"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:622
+#: ../lib/packagekit-glib2/pk-console-shared.c:657
 msgid "Updating system"
 msgstr "প্ৰণালী উন্নত কৰা হৈছে"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:626
+#: ../lib/packagekit-glib2/pk-console-shared.c:661
 msgid "Canceling"
 msgstr "বাতিল কৰা হৈছে"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:634
+#: ../lib/packagekit-glib2/pk-console-shared.c:669
 msgid "Getting repositories"
 msgstr "সংগ্ৰহস্থলৰ তালিকা প্ৰাপ্ত কৰা হৈছে"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:638
+#: ../lib/packagekit-glib2/pk-console-shared.c:673
 msgid "Enabling repository"
 msgstr "সংগ্ৰহস্থল সক্ৰিয় কৰা হৈছে"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:642
+#: ../lib/packagekit-glib2/pk-console-shared.c:677
 msgid "Setting data"
 msgstr "তথ্য নিৰ্ধাৰণ কৰা হৈছে"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:646
+#: ../lib/packagekit-glib2/pk-console-shared.c:681
 msgid "Resolving"
 msgstr "মীমাংসা কৰা হৈছে"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:650
+#: ../lib/packagekit-glib2/pk-console-shared.c:685
 msgid "Getting file list"
 msgstr "নথিপত্ৰৰ তালিকা প্ৰাপ্ত কৰা হৈছে"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:654
+#: ../lib/packagekit-glib2/pk-console-shared.c:689
 msgid "Getting provides"
 msgstr "উপলব্ধকাৰী সামগ্ৰীৰ তালিকা প্ৰাপ্ত কৰা হৈছে"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:658
+#: ../lib/packagekit-glib2/pk-console-shared.c:693
 msgid "Installing signature"
 msgstr "স্বাক্ষৰ সংস্থাপন কৰা হৈছে"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:662
+#: ../lib/packagekit-glib2/pk-console-shared.c:697
 msgid "Getting packages"
 msgstr "সৰঞ্জাম প্ৰাপ্ত কৰা হৈছে"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:666
+#: ../lib/packagekit-glib2/pk-console-shared.c:701
 msgid "Accepting EULA"
 msgstr "EULA ৰ চৰ্ত্তসমূহ গ্ৰহণ কৰা হৈছে"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:674
+#: ../lib/packagekit-glib2/pk-console-shared.c:709
 msgid "Getting upgrades"
 msgstr "আপগ্ৰেড প্ৰাপ্ত কৰা হৈছে"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:678
+#: ../lib/packagekit-glib2/pk-console-shared.c:713
 msgid "Getting categories"
 msgstr "বিভাগ পৰীক্ষা কৰা হৈছে"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:682
+#: ../lib/packagekit-glib2/pk-console-shared.c:717
 msgid "Getting transactions"
 msgstr "লেন দেন প্ৰাপ্ত কৰা হৈছে"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:686
-#: ../lib/packagekit-glib2/pk-console-shared.c:690
+#: ../lib/packagekit-glib2/pk-console-shared.c:721
+#: ../lib/packagekit-glib2/pk-console-shared.c:725
 msgid "Simulating install"
 msgstr "সংস্থাপনৰ অনুকৰণ কৰা হৈছে"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:694
+#: ../lib/packagekit-glib2/pk-console-shared.c:729
 msgid "Simulating remove"
 msgstr "অপসাৰণৰ অনুকৰণ কৰা হৈছে"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:698
+#: ../lib/packagekit-glib2/pk-console-shared.c:733
 msgid "Simulating update"
 msgstr "উন্নয়নৰ অনুকৰণ কৰা হৈছে"
 
@@ -1801,13 +1798,19 @@ msgstr "তলৰ সৰঞ্জামসমূহক পুনঃ সংস্
 msgid "The following packages have to be downgraded:"
 msgstr "নিম্নলিখিত সৰঞ্জামসমূহ ডাউনগ্ৰেড কৰা আৱশ্যক:"
 
+#. TRANSLATORS: When processing, untrusted and non-verified packages may be
+#. encountered
+#: ../lib/packagekit-glib2/pk-task-text.c:325
+msgid "The following packages are untrusted:"
+msgstr ""
+
 #. TRANSLATORS: ask the user if the proposed changes are okay
-#: ../lib/packagekit-glib2/pk-task-text.c:380
+#: ../lib/packagekit-glib2/pk-task-text.c:385
 msgid "Proceed with changes?"
 msgstr "পৰিবৰ্তনসমূহ প্ৰয়োগ কৰা হ'ব নেকি ?"
 
 #. TRANSLATORS: tell the user we didn't do anything
-#: ../lib/packagekit-glib2/pk-task-text.c:385
+#: ../lib/packagekit-glib2/pk-task-text.c:390
 msgid "The transaction did not proceed."
 msgstr "লেন দেন আগ নাবাঢ়িলে ।"
 
@@ -2014,104 +2017,74 @@ msgstr "সৰঞ্জাম উন্নত কৰক"
 msgid "Upgrade System"
 msgstr ""
 
-#. TRANSLATORS: failed due to DBus security
-#: ../src/pk-main.c:91
-msgid "Startup failed due to security policies on this machine."
-msgstr "এই যন্ত্ৰত থকা সুৰক্ষাৰ নিয়মৰ কাৰণে আৰম্ভ কৰিব পৰা ন'গ'ল ।"
-
-#. TRANSLATORS: only two ways this can fail...
-#: ../src/pk-main.c:93
-msgid "This can happen for two reasons:"
-msgstr "এইটো দুটা কাৰণত হ'ব পাৰে:"
-
-#. TRANSLATORS: only allowed to be owned by root
-#: ../src/pk-main.c:95
-msgid "The correct user is not launching the executable (usually root)"
-msgstr "চলাব পৰা অনুপ্ৰয়োগ শুদ্ধ ব্যৱহাৰকৰ্তাই (সাধাৰণতে ৰূট) আৰম্ভ কৰা নাই"
-
-#. TRANSLATORS: or we are installed in a prefix
-#: ../src/pk-main.c:97
-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:223
+#: ../src/pk-main.c:149
 msgid "Packaging backend to use, e.g. dummy"
 msgstr "ব্যৱহাৰ কৰিব লগা গোট সৃষ্টি কৰাৰ বেক এণ্ড, যেনে dummy"
 
 #. TRANSLATORS: if we should run in the background
-#: ../src/pk-main.c:226
+#: ../src/pk-main.c:152
 msgid "Daemonize and detach from the terminal"
 msgstr "ডেমন কৰি তাৰ টাৰ্মিনেলৰ পৰা বিচ্ছিন্ন কৰক"
 
 #. TRANSLATORS: if we should not monitor how long we are inactive for
-#: ../src/pk-main.c:229
+#: ../src/pk-main.c:155
 msgid "Disable the idle timer"
 msgstr "idle timer নিষ্ক্ৰিয় কৰক"
 
 #. TRANSLATORS: show version
-#: ../src/pk-main.c:232
+#: ../src/pk-main.c:158
 msgid "Show version and exit"
 msgstr "সংস্কৰণ দেখুৱাই প্ৰস্থান কৰক"
 
 #. TRANSLATORS: exit after we've started up, used for user profiling
-#: ../src/pk-main.c:235
+#: ../src/pk-main.c:161
 msgid "Exit after a small delay"
 msgstr "কিছু সময়ৰ পিছত বাহিৰ হওক"
 
 #. TRANSLATORS: exit straight away, used for automatic profiling
-#: ../src/pk-main.c:238
+#: ../src/pk-main.c:164
 msgid "Exit after the engine has loaded"
 msgstr "কলঘৰ তুলি লোৱাৰ পিছত বাহিৰ হওক"
 
+#. TRANSLATORS: don't unset environment variables, used for debugging
+#: ../src/pk-main.c:167
+msgid "Don't clear environment on startup"
+msgstr ""
+
 #. TRANSLATORS: describing the service that is running
-#: ../src/pk-main.c:253
+#: ../src/pk-main.c:179
 msgid "PackageKit service"
 msgstr "PackageKit সেৱা"
 
-#. TRANSLATORS: fatal error, dbus is not running
-#: ../src/pk-main.c:298
-msgid "Cannot connect to the system bus"
-msgstr "ব্যৱস্থাপ্ৰণালীৰ বাছৰ সৈতে সংযোগ স্থাপনত ব্যৰ্থ"
-
-#: ../src/pk-main.c:344
+#: ../src/pk-main.c:253
 msgid "Failed to load any of the specified backends:"
 msgstr ""
 
-#. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error
-#. follows
-#: ../src/pk-main.c:358
-msgid "Error trying to start:"
-msgstr "আৰম্ভ কৰিবলৈ চেষ্টা কৰোঁতে ভুল:"
-
 #. TRANSLATORS: is not GPG signed
-#: ../src/pk-transaction.c:2611 ../src/pk-transaction.c:2618
+#: ../src/pk-transaction.c:2696
 msgid "The software is not from a trusted source."
 msgstr "বিশ্বস্ত উৎসস্থলৰ পৰা চালনাজ্ঞান প্ৰাপ্ত কৰা নহয় ।"
 
-#: ../src/pk-transaction.c:2623
+#: ../src/pk-transaction.c:2704
 msgid "Do not update this package unless you are sure it is safe to do so."
 msgstr ""
 "সৰঞ্জামৰ সুৰক্ষা সম্পৰ্কে সম্পূৰ্ণৰূপে নিশ্চিত ন'হ'লে এই সৰঞ্জাম উন্নয়ন নকৰা"
 " উচিত ।"
 
-#: ../src/pk-transaction.c:2624
+#: ../src/pk-transaction.c:2705
 msgid "Do not update these packages unless you are sure it is safe to do so."
 msgstr ""
 "সৰঞ্জামৰ সুৰক্ষা সম্পৰ্কে সম্পূৰ্ণৰূপে নিশ্চিত ন'হ'লে এই সৰঞ্জামসমূহ উন্নয়ন "
 "নকৰা উচিত ।"
 
-#: ../src/pk-transaction.c:2634
+#: ../src/pk-transaction.c:2715
 msgid "Do not install this package unless you are sure it is safe to do so."
 msgstr ""
 "সৰঞ্জামৰ সুৰক্ষা সম্পৰ্কে সম্পূৰ্ণৰূপে নিশ্চিত ন'হ'লে এই সৰঞ্জাম সংস্থাপন "
 "নকৰা উচিত ।"
 
-#: ../src/pk-transaction.c:2635
+#: ../src/pk-transaction.c:2716
 msgid "Do not install these packages unless you are sure it is safe to do so."
 msgstr ""
 "সৰঞ্জামৰ সুৰক্ষা সম্পৰ্কে সম্পূৰ্ণৰূপে নিশ্চিত ন'হ'লে এই সৰঞ্জাম উন্নয়ন নকৰা"
diff --git a/po/bg.po b/po/bg.po
index 8f2261a..d198a6f 100644
--- a/po/bg.po
+++ b/po/bg.po
@@ -2,15 +2,16 @@
 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
 # This file is distributed under the same license as the PACKAGE package.
 # 
-# Alexander Shopov <ash at kambanaria.org>, 2011
-# Richard Hughes <richard at hughsie.com>, 2011
+# Translators:
+# Alexander Shopov <ash at kambanaria.org>, 2008, 2009, 2010, 2011.
+# Richard Hughes <richard at hughsie.com>, 2011.
 msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-04 10:50+0100\n"
-"PO-Revision-Date: 2011-05-04 09:56+0000\n"
-"Last-Translator: hughsie <richard at hughsie.com>\n"
+"POT-Creation-Date: 2011-11-10 19:50+0000\n"
+"PO-Revision-Date: 2011-11-10 19:50+0000\n"
+"Last-Translator: Richard Hughes <richard at hughsie.com>\n"
 "Language-Team: LANGUAGE <LL at li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -196,7 +197,7 @@ msgstr "Издаден"
 
 #. TRANSLATORS: details about the update, date the update was updated
 #. TRANSLATORS: The action of the package, in past tense
-#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:524
+#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:559
 msgid "Updated"
 msgstr "Обновен"
 
@@ -286,7 +287,7 @@ msgstr "Няма обновления."
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
 #: ../client/pk-console.c:704
-#: ../contrib/command-not-found/pk-command-not-found.c:639
+#: ../contrib/command-not-found/pk-command-not-found.c:634
 msgid "The transaction failed"
 msgstr "Неуспешна транзакция"
 
@@ -340,21 +341,21 @@ msgstr ""
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:866
+#: ../client/pk-console.c:871
 #, c-format
 msgid "This tool could not find any available package: %s"
 msgstr "Този инструмент не може да намери наличен пакет: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:894
+#: ../client/pk-console.c:899
 #, c-format
 msgid "This tool could not find the installed package: %s"
 msgstr "Този инструмент не може да намери инсталирания пакет: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:922 ../client/pk-console.c:950
+#: ../client/pk-console.c:927 ../client/pk-console.c:955
 #, c-format
 msgid "This tool could not find the package: %s"
 msgstr "Този инструмент не може да намери пакета: %s"
@@ -367,214 +368,214 @@ msgstr "Този инструмент не може да намери пакет
 #. detailed error follows
 #. TRANSLATORS: The package name was not found in any software sources. The
 #. detailed error follows
-#: ../client/pk-console.c:978 ../client/pk-console.c:1006
-#: ../client/pk-console.c:1034 ../client/pk-console.c:1062
-#: ../client/pk-console.c:1090
+#: ../client/pk-console.c:983 ../client/pk-console.c:1011
+#: ../client/pk-console.c:1039 ../client/pk-console.c:1067
+#: ../client/pk-console.c:1095
 #, c-format
 msgid "This tool could not find all the packages: %s"
 msgstr "Този инструмент не може да намери всички пакети: %s"
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek
 #. without a paddle
-#: ../client/pk-console.c:1119
+#: ../client/pk-console.c:1124
 msgid "The daemon crashed mid-transaction!"
 msgstr "Демонът заби по време на транзакция!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1153
+#: ../client/pk-console.c:1158
 msgid "PackageKit Console Interface"
 msgstr "Конзолен интерфейс на PackageKit"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1155
+#: ../client/pk-console.c:1160
 msgid "Subcommands:"
 msgstr "Подкоманди:"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was
 #. last executed
-#: ../client/pk-console.c:1235
+#: ../client/pk-console.c:1240
 msgid "Failed to get the time since this action was last completed"
 msgstr "Неуспешно получаване на времето от последно завършване на операцията"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1277 ../client/pk-monitor.c:371
+#: ../client/pk-console.c:1282 ../client/pk-monitor.c:371
 msgid "Show the program version and exit"
 msgstr "Извеждане на версията на програмата и изход"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1280
+#: ../client/pk-console.c:1285
 msgid "Set the filter, e.g. installed"
 msgstr "Задаване на филтър, напр. „инсталирани“"
 
 #. TRANSLATORS: command line argument, use a non-standard install prefix
-#: ../client/pk-console.c:1283
+#: ../client/pk-console.c:1288
 msgid "Set the install root, e.g. '/' or '/mnt/ltsp'"
 msgstr "Задаване на папката за инсталиране, напр „/“, „/mnt/ltsp“…"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1286
+#: ../client/pk-console.c:1291
 msgid "Exit without waiting for actions to complete"
 msgstr "Изход без изчакване на завършването на действията"
 
 #. command line argument, do we ask questions
-#: ../client/pk-console.c:1289
+#: ../client/pk-console.c:1294
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:525
 msgid "Install the packages without asking for confirmation"
 msgstr "Инсталиране на пакетите без изчакване на потвърждение"
 
 #. TRANSLATORS: command line argument, this command is not a priority
-#: ../client/pk-console.c:1292
+#: ../client/pk-console.c:1297
 msgid "Run the command using idle network bandwidth and also using less power"
 msgstr ""
 "Изпълняване на мрежовата команда при ненатоварен компютър като се ползва и "
 "по-малко ток"
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1295
+#: ../client/pk-console.c:1300
 msgid ""
 "Print to screen a machine readable output, rather than using animated "
 "widgets"
 msgstr "Отпечатване на машинно четим изход без анимирани графични обекти"
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1298
+#: ../client/pk-console.c:1303
 msgid "The maximum metadata cache age. Use -1 for 'never'."
 msgstr "Максималната възраст за временните файлове. „-1“ — без ограничение."
 
 #. TRANSLATORS: command line argument, --help
-#: ../client/pk-console.c:1301
+#: ../client/pk-console.c:1306
 msgid "Show help options."
 msgstr ""
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1331
+#: ../client/pk-console.c:1336
 msgid "Failed to parse command line"
 msgstr ""
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1341
+#: ../client/pk-console.c:1346
 msgid "Failed to contact PackageKit"
 msgstr "Неуспех при свързване с PackageKit"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1394
+#: ../client/pk-console.c:1399
 msgid "The proxy could not be set"
 msgstr "Сървърът-посредник не може да бъде зададен"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1406
+#: ../client/pk-console.c:1411
 msgid "The install root could not be set"
 msgstr "Основната папка при инсталиране не може да е тази"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1418
+#: ../client/pk-console.c:1423
 msgid "The filter specified was invalid"
 msgstr "Указаният филтър е неправилен"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1437
+#: ../client/pk-console.c:1442
 msgid "A search type is required, e.g. name"
 msgstr "Трябва да укажете вида на търсенето, напр. по име"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1444 ../client/pk-console.c:1456
-#: ../client/pk-console.c:1468 ../client/pk-console.c:1480
+#: ../client/pk-console.c:1449 ../client/pk-console.c:1461
+#: ../client/pk-console.c:1473 ../client/pk-console.c:1485
 msgid "A search term is required"
 msgstr "Трябва да укажете дума за търсене"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1490
+#: ../client/pk-console.c:1495
 msgid "Invalid search type"
 msgstr "Неправилен вид търсене"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1496
+#: ../client/pk-console.c:1501
 msgid "A package name to install is required"
 msgstr "Трябва да укажете име на пакет за инсталиране"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1505
+#: ../client/pk-console.c:1510
 msgid "A filename to install is required"
 msgstr "Трябва да укажете име на файл за инсталиране"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1516
+#: ../client/pk-console.c:1521
 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:1527
+#: ../client/pk-console.c:1532
 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:1536
+#: ../client/pk-console.c:1541
 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:1543
+#: ../client/pk-console.c:1548
 msgid "Directory not found"
 msgstr "Папката не е открита"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1552
+#: ../client/pk-console.c:1557
 msgid "A licence identifier (eula-id) is required"
 msgstr "Трябва да укажете идентификатор на лиценз"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1563
+#: ../client/pk-console.c:1568
 msgid "A transaction identifier (tid) is required"
 msgstr "Трябва да укажете идентификатор на транзакция (tid)"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:1584
+#: ../client/pk-console.c:1589
 msgid "A package name to resolve is required"
 msgstr "Трябва да укажете име на пакет"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:1595 ../client/pk-console.c:1606
+#: ../client/pk-console.c:1600 ../client/pk-console.c:1611
 msgid "A repository name is required"
 msgstr "Трябва да укажете име на хранилището"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:1617
+#: ../client/pk-console.c:1622
 msgid "A repo name, parameter and value are required"
 msgstr "Трябва да укажете име на хранилище, параметър и стойност"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:1634
+#: ../client/pk-console.c:1639
 msgid "An action, e.g. 'update-system' is required"
 msgstr "Трябва да укажете действие, напр. „update-system“"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:1641
+#: ../client/pk-console.c:1646
 msgid "A correct role is required"
 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:1651 ../client/pk-console.c:1665
-#: ../client/pk-console.c:1674 ../client/pk-console.c:1694
-#: ../client/pk-console.c:1703 ../client/pk-generate-pack.c:314
+#: ../client/pk-console.c:1656 ../client/pk-console.c:1670
+#: ../client/pk-console.c:1679 ../client/pk-console.c:1699
+#: ../client/pk-console.c:1708 ../client/pk-generate-pack.c:314
 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:1683
+#: ../client/pk-console.c:1688
 msgid "A package provide string is required"
 msgstr "Трябва да укажете име на пакет, предоставящ ресурса"
 
 #. TRANSLATORS: The user did not provide a distro name
-#: ../client/pk-console.c:1727
+#: ../client/pk-console.c:1732
 msgid "A distribution name is required"
 msgstr "Трябва да укажете име на дистрибуция"
 
 #. TRANSLATORS: The user did not provide an upgrade type
-#: ../client/pk-console.c:1733
+#: ../client/pk-console.c:1738
 msgid "An upgrade type is required, e.g. 'minimal', 'default' or 'complete'"
 msgstr ""
 "Трябва да укажете вида на надграждането — „minimal“ (минимално), „default“ "
@@ -582,13 +583,13 @@ msgstr ""
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command
 #. line
-#: ../client/pk-console.c:1783
+#: ../client/pk-console.c:1788
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "Опцията „%s“ не се поддържа"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:1793
+#: ../client/pk-console.c:1798
 msgid "Command failed"
 msgstr "Неуспешна команда"
 
@@ -727,159 +728,154 @@ msgid "PackageKit Monitor"
 msgstr "Датчик на PackageKit"
 
 #. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/pk-plugin-install.c:499
+#: ../contrib/browser-plugin/pk-plugin-install.c:503
 msgid "Getting package information..."
 msgstr "Получаване на информация за пакета…"
 
 #. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/pk-plugin-install.c:505
+#: ../contrib/browser-plugin/pk-plugin-install.c:509
 #, c-format
 msgid "Run %s"
 msgstr "Изпълняване на %s"
 
 #. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:511
+#: ../contrib/browser-plugin/pk-plugin-install.c:515
 msgid "Installed version"
 msgstr "Инсталирана версия"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:519
+#: ../contrib/browser-plugin/pk-plugin-install.c:523
 #, c-format
 msgid "Run version %s now"
 msgstr "Незабавно изпълнение на версия %s"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:525
+#: ../contrib/browser-plugin/pk-plugin-install.c:529
 msgid "Run now"
 msgstr "Незабавно изпълнение"
 
 #. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:531
+#: ../contrib/browser-plugin/pk-plugin-install.c:535
 #, c-format
 msgid "Update to version %s"
 msgstr "Обновяване до версия %s"
 
 #. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:537
+#: ../contrib/browser-plugin/pk-plugin-install.c:541
 #, c-format
 msgid "Install %s now"
 msgstr "Инсталиране на %s"
 
 #. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:540
+#: ../contrib/browser-plugin/pk-plugin-install.c:544
 msgid "Version"
 msgstr "Версия"
 
 #. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/pk-plugin-install.c:545
+#: ../contrib/browser-plugin/pk-plugin-install.c:549
 msgid "No packages found for your system"
 msgstr "За вашата система не са открити пакети"
 
 #. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/pk-plugin-install.c:550
+#: ../contrib/browser-plugin/pk-plugin-install.c:554
 msgid "Installing..."
 msgstr "Инсталиране…"
 
 #. TRANSLATORS: downloading repo data so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:366
+#: ../contrib/command-not-found/pk-command-not-found.c:363
 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:370
+#: ../contrib/command-not-found/pk-command-not-found.c:367
 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:374
+#: ../contrib/command-not-found/pk-command-not-found.c:371
 msgid "Waiting for package manager lock."
 msgstr "Изчакване на заключване от управлението на пакети."
 
 #. TRANSLATORS: loading package cache so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:378
+#: ../contrib/command-not-found/pk-command-not-found.c:375
 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:444
+#: ../contrib/command-not-found/pk-command-not-found.c:439
 msgid "Failed to search for file"
 msgstr "Неуспешно търсене на файл"
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
-#: ../contrib/command-not-found/pk-command-not-found.c:456
+#: ../contrib/command-not-found/pk-command-not-found.c:451
 msgid "Getting the list of files failed"
 msgstr "Неуспешно изтегляне на списък с файлове"
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:602
+#: ../contrib/command-not-found/pk-command-not-found.c:597
 msgid "Failed to launch:"
 msgstr "Неуспешно стартиране:"
 
 #. TRANSLATORS: we failed to install the package
-#: ../contrib/command-not-found/pk-command-not-found.c:630
+#: ../contrib/command-not-found/pk-command-not-found.c:625
 msgid "Failed to install packages"
 msgstr "Неуспешно инсталиране на пакети"
 
-#. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/command-not-found/pk-command-not-found.c:706
-msgid "PackageKit Command Not Found"
-msgstr "Командата на PackageKit не е открита"
-
 #. TRANSLATORS: the prefix of all the output telling the user
 #. * why it's not executing. NOTE: this is lowercase to mimic
 #. * the style of bash itself -- apologies
-#: ../contrib/command-not-found/pk-command-not-found.c:741
+#: ../contrib/command-not-found/pk-command-not-found.c:723
 msgid "command not found"
 msgstr "командата не е открита."
 
 #. TRANSLATORS: tell the user what we think the command is
-#: ../contrib/command-not-found/pk-command-not-found.c:759
+#: ../contrib/command-not-found/pk-command-not-found.c:741
 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:773
+#: ../contrib/command-not-found/pk-command-not-found.c:755
 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:787
-#: ../contrib/command-not-found/pk-command-not-found.c:796
+#: ../contrib/command-not-found/pk-command-not-found.c:769
+#: ../contrib/command-not-found/pk-command-not-found.c:778
 msgid "Similar commands are:"
 msgstr "Подобни команди са:"
 
 #. TRANSLATORS: ask the user to choose a file to run
-#: ../contrib/command-not-found/pk-command-not-found.c:803
+#: ../contrib/command-not-found/pk-command-not-found.c:785
 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:821
+#: ../contrib/command-not-found/pk-command-not-found.c:803
 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:828
+#: ../contrib/command-not-found/pk-command-not-found.c:810
 #, 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:855
+#: ../contrib/command-not-found/pk-command-not-found.c:837
 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:865
+#: ../contrib/command-not-found/pk-command-not-found.c:847
 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:874
+#: ../contrib/command-not-found/pk-command-not-found.c:856
 msgid "Please choose a package to install"
 msgstr "Изберете пакета за инсталиране"
 
@@ -1053,7 +1049,7 @@ msgstr "В режим на симулация не се инсталират п
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
 #. TRANSLATORS: transaction state, installing packages
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:860
-#: ../lib/packagekit-glib2/pk-console-shared.c:296
+#: ../lib/packagekit-glib2/pk-console-shared.c:331
 #, c-format
 msgid "Installing packages"
 msgstr "Инсталиране на пакети"
@@ -1187,474 +1183,474 @@ msgstr "Списък с пакети на PackageKit"
 msgid "PackageKit Service Pack"
 msgstr "Сервизен пакет на PackageKit"
 
-#: ../lib/packagekit-glib2/pk-console-shared.c:64
+#: ../lib/packagekit-glib2/pk-console-shared.c:65
 #, c-format
 msgid "Please enter a number from 1 to %i: "
 msgstr "Въведете число от 1 до %i: "
 
 #. TRANSLATORS: more than one package could be found that matched, to follow
 #. is a list of possible packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:198
+#: ../lib/packagekit-glib2/pk-console-shared.c:233
 msgid "More than one package matches:"
 msgstr "Открит бе повече от един подобен пакет:"
 
 #. TRANSLATORS: This finds out which package in the list to use
-#: ../lib/packagekit-glib2/pk-console-shared.c:209
+#: ../lib/packagekit-glib2/pk-console-shared.c:244
 msgid "Please choose the correct package: "
 msgstr "Изберете правилния пакет: "
 
 #. TRANSLATORS: This is when the transaction status is not known
-#: ../lib/packagekit-glib2/pk-console-shared.c:264
+#: ../lib/packagekit-glib2/pk-console-shared.c:299
 msgid "Unknown state"
 msgstr "Неизвестно състояние"
 
 #. TRANSLATORS: transaction state, the daemon is in the process of starting
-#: ../lib/packagekit-glib2/pk-console-shared.c:268
+#: ../lib/packagekit-glib2/pk-console-shared.c:303
 msgid "Starting"
 msgstr "Начало"
 
 #. TRANSLATORS: transaction state, the transaction is waiting for another to
 #. complete
-#: ../lib/packagekit-glib2/pk-console-shared.c:272
+#: ../lib/packagekit-glib2/pk-console-shared.c:307
 msgid "Waiting in queue"
 msgstr "Изчакване в опашка"
 
 #. TRANSLATORS: transaction state, just started
-#: ../lib/packagekit-glib2/pk-console-shared.c:276
+#: ../lib/packagekit-glib2/pk-console-shared.c:311
 msgid "Running"
 msgstr "Изпълнение"
 
 #. TRANSLATORS: transaction state, is querying data
-#: ../lib/packagekit-glib2/pk-console-shared.c:280
+#: ../lib/packagekit-glib2/pk-console-shared.c:315
 msgid "Querying"
 msgstr "Запитване"
 
 #. TRANSLATORS: transaction state, getting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:284
+#: ../lib/packagekit-glib2/pk-console-shared.c:319
 msgid "Getting information"
 msgstr "Получаване на информация"
 
 #. TRANSLATORS: transaction state, removing packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:288
+#: ../lib/packagekit-glib2/pk-console-shared.c:323
 msgid "Removing packages"
 msgstr "Деинсталиране на пакeти"
 
 #. TRANSLATORS: transaction state, downloading package files
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:292
-#: ../lib/packagekit-glib2/pk-console-shared.c:670
+#: ../lib/packagekit-glib2/pk-console-shared.c:327
+#: ../lib/packagekit-glib2/pk-console-shared.c:705
 msgid "Downloading packages"
 msgstr "Изтегляне на пакети"
 
 #. TRANSLATORS: transaction state, refreshing internal lists
-#: ../lib/packagekit-glib2/pk-console-shared.c:300
+#: ../lib/packagekit-glib2/pk-console-shared.c:335
 msgid "Refreshing software list"
 msgstr "Обновяване на списъка със софтуер"
 
 #. TRANSLATORS: transaction state, installing updates
-#: ../lib/packagekit-glib2/pk-console-shared.c:304
+#: ../lib/packagekit-glib2/pk-console-shared.c:339
 msgid "Installing updates"
 msgstr "Инсталиране на обновления"
 
 #. TRANSLATORS: transaction state, removing old packages, and cleaning config
 #. files
-#: ../lib/packagekit-glib2/pk-console-shared.c:308
+#: ../lib/packagekit-glib2/pk-console-shared.c:343
 msgid "Cleaning up packages"
 msgstr "Изчистване на пакети"
 
 #. TRANSLATORS: transaction state, obsoleting old packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:312
+#: ../lib/packagekit-glib2/pk-console-shared.c:347
 msgid "Obsoleting packages"
 msgstr "Обявяване на пакети за остарели"
 
 #. TRANSLATORS: transaction state, checking the transaction before we do it
-#: ../lib/packagekit-glib2/pk-console-shared.c:316
+#: ../lib/packagekit-glib2/pk-console-shared.c:351
 msgid "Resolving dependencies"
 msgstr "Изчисляване на зависимости"
 
 #. TRANSLATORS: transaction state, checking if we have all the security keys
 #. for the operation
-#: ../lib/packagekit-glib2/pk-console-shared.c:320
+#: ../lib/packagekit-glib2/pk-console-shared.c:355
 msgid "Checking signatures"
 msgstr "Проверка на подписи"
 
 #. TRANSLATORS: transaction state, when we return to a previous system state
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:324
-#: ../lib/packagekit-glib2/pk-console-shared.c:630
+#: ../lib/packagekit-glib2/pk-console-shared.c:359
+#: ../lib/packagekit-glib2/pk-console-shared.c:665
 msgid "Rolling back"
 msgstr "Връщане на транзакция"
 
 #. TRANSLATORS: transaction state, when we're doing a test transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:328
+#: ../lib/packagekit-glib2/pk-console-shared.c:363
 msgid "Testing changes"
 msgstr "Проверка на промените"
 
 #. TRANSLATORS: transaction state, when we're writing to the system package
 #. database
-#: ../lib/packagekit-glib2/pk-console-shared.c:332
+#: ../lib/packagekit-glib2/pk-console-shared.c:367
 msgid "Committing changes"
 msgstr "Трайно задаване на промените"
 
 #. TRANSLATORS: transaction state, requesting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:336
+#: ../lib/packagekit-glib2/pk-console-shared.c:371
 msgid "Requesting data"
 msgstr "Запитване за данни"
 
 #. TRANSLATORS: transaction state, all done!
-#: ../lib/packagekit-glib2/pk-console-shared.c:340
+#: ../lib/packagekit-glib2/pk-console-shared.c:375
 msgid "Finished"
 msgstr "Завършено"
 
 #. TRANSLATORS: transaction state, in the process of cancelling
-#: ../lib/packagekit-glib2/pk-console-shared.c:344
+#: ../lib/packagekit-glib2/pk-console-shared.c:379
 msgid "Cancelling"
 msgstr "Отказване"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:348
+#: ../lib/packagekit-glib2/pk-console-shared.c:383
 msgid "Downloading repository information"
 msgstr "Изтегляне на информация за хранилищата на софтуер"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:352
+#: ../lib/packagekit-glib2/pk-console-shared.c:387
 msgid "Downloading list of packages"
 msgstr "Изтегляне на списъка с пакети"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:356
+#: ../lib/packagekit-glib2/pk-console-shared.c:391
 msgid "Downloading file lists"
 msgstr "Изтегляне на списъците с файлове"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:360
+#: ../lib/packagekit-glib2/pk-console-shared.c:395
 msgid "Downloading lists of changes"
 msgstr "Изтегляне на списъците с промени"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:364
+#: ../lib/packagekit-glib2/pk-console-shared.c:399
 msgid "Downloading groups"
 msgstr "Изтегляне на групите"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:368
+#: ../lib/packagekit-glib2/pk-console-shared.c:403
 msgid "Downloading update information"
 msgstr "Изтегляне на информация за обновленията"
 
 #. TRANSLATORS: transaction state, repackaging delta files
-#: ../lib/packagekit-glib2/pk-console-shared.c:372
+#: ../lib/packagekit-glib2/pk-console-shared.c:407
 msgid "Repackaging files"
 msgstr "Повторно пакетиране на файлове"
 
 #. TRANSLATORS: transaction state, loading databases
-#: ../lib/packagekit-glib2/pk-console-shared.c:376
+#: ../lib/packagekit-glib2/pk-console-shared.c:411
 msgid "Loading cache"
 msgstr "Зареждане на временните файлове"
 
 #. TRANSLATORS: transaction state, scanning for running processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:380
+#: ../lib/packagekit-glib2/pk-console-shared.c:415
 msgid "Scanning applications"
 msgstr "Проверка на програмите"
 
 #. TRANSLATORS: transaction state, generating a list of packages installed on
 #. the system
-#: ../lib/packagekit-glib2/pk-console-shared.c:384
+#: ../lib/packagekit-glib2/pk-console-shared.c:419
 msgid "Generating package lists"
 msgstr "Генериране на списъци с пакети"
 
 #. TRANSLATORS: transaction state, when we're waiting for the native tools to
 #. exit
-#: ../lib/packagekit-glib2/pk-console-shared.c:388
+#: ../lib/packagekit-glib2/pk-console-shared.c:423
 msgid "Waiting for package manager lock"
 msgstr "Изчакване на заключване от управлението на пакети"
 
 #. TRANSLATORS: transaction state, waiting for user to type in a password
-#: ../lib/packagekit-glib2/pk-console-shared.c:392
+#: ../lib/packagekit-glib2/pk-console-shared.c:427
 msgid "Waiting for authentication"
 msgstr "Изчакване на идентификация"
 
 #. TRANSLATORS: transaction state, we are updating the list of processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:396
+#: ../lib/packagekit-glib2/pk-console-shared.c:431
 msgid "Updating running applications"
 msgstr "Обновяване на работеща в момента програма"
 
 #. TRANSLATORS: transaction state, we are checking executable files currently
 #. in use
-#: ../lib/packagekit-glib2/pk-console-shared.c:400
+#: ../lib/packagekit-glib2/pk-console-shared.c:435
 msgid "Checking applications in use"
 msgstr "Проверка на ползваните програми"
 
 #. TRANSLATORS: transaction state, we are checking for libraries currently in
 #. use
-#: ../lib/packagekit-glib2/pk-console-shared.c:404
+#: ../lib/packagekit-glib2/pk-console-shared.c:439
 msgid "Checking libraries in use"
 msgstr "Проверка на ползваните библиотеки"
 
 #. TRANSLATORS: transaction state, we are copying package files before or
 #. after the transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:408
+#: ../lib/packagekit-glib2/pk-console-shared.c:443
 msgid "Copying files"
 msgstr "Копиране на файлове"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:426
+#: ../lib/packagekit-glib2/pk-console-shared.c:461
 msgid "Trivial"
 msgstr "Дребно"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:430
+#: ../lib/packagekit-glib2/pk-console-shared.c:465
 msgid "Normal"
 msgstr "Обикновено"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:434
+#: ../lib/packagekit-glib2/pk-console-shared.c:469
 msgid "Important"
 msgstr "Важно"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:438
+#: ../lib/packagekit-glib2/pk-console-shared.c:473
 msgid "Security"
 msgstr "За сигурността"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:442
+#: ../lib/packagekit-glib2/pk-console-shared.c:477
 msgid "Bug fix "
 msgstr "Поправка на грешки"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:446
+#: ../lib/packagekit-glib2/pk-console-shared.c:481
 msgid "Enhancement"
 msgstr "Подобрение"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:450
+#: ../lib/packagekit-glib2/pk-console-shared.c:485
 msgid "Blocked"
 msgstr "Блокирано"
 
 #. TRANSLATORS: The state of a package
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:455
-#: ../lib/packagekit-glib2/pk-console-shared.c:528
+#: ../lib/packagekit-glib2/pk-console-shared.c:490
+#: ../lib/packagekit-glib2/pk-console-shared.c:563
 msgid "Installed"
 msgstr "Инсталиран"
 
 #. TRANSLATORS: The state of a package, i.e. not installed
-#: ../lib/packagekit-glib2/pk-console-shared.c:460
+#: ../lib/packagekit-glib2/pk-console-shared.c:495
 msgid "Available"
 msgstr "Наличен"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:478
+#: ../lib/packagekit-glib2/pk-console-shared.c:513
 msgid "Downloading"
 msgstr "Изтегляне"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:482
+#: ../lib/packagekit-glib2/pk-console-shared.c:517
 msgid "Updating"
 msgstr "Обновяване"
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:486
-#: ../lib/packagekit-glib2/pk-console-shared.c:606
+#: ../lib/packagekit-glib2/pk-console-shared.c:521
+#: ../lib/packagekit-glib2/pk-console-shared.c:641
 msgid "Installing"
 msgstr "Инсталиране"
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:490
-#: ../lib/packagekit-glib2/pk-console-shared.c:602
+#: ../lib/packagekit-glib2/pk-console-shared.c:525
+#: ../lib/packagekit-glib2/pk-console-shared.c:637
 msgid "Removing"
 msgstr "Деинсталиране"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:494
+#: ../lib/packagekit-glib2/pk-console-shared.c:529
 msgid "Cleaning up"
 msgstr "Изчистване"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:498
+#: ../lib/packagekit-glib2/pk-console-shared.c:533
 msgid "Obsoleting"
 msgstr "Обявяване за остарели"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:502
+#: ../lib/packagekit-glib2/pk-console-shared.c:537
 msgid "Reinstalling"
 msgstr "Преинсталиране"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:520
+#: ../lib/packagekit-glib2/pk-console-shared.c:555
 msgid "Downloaded"
 msgstr "Изтеглен"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:532
+#: ../lib/packagekit-glib2/pk-console-shared.c:567
 msgid "Removed"
 msgstr "Деинсталиран"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:536
+#: ../lib/packagekit-glib2/pk-console-shared.c:571
 msgid "Cleaned up"
 msgstr "Изчистен"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:540
+#: ../lib/packagekit-glib2/pk-console-shared.c:575
 msgid "Obsoleted"
 msgstr "Обявен за остарял"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:544
+#: ../lib/packagekit-glib2/pk-console-shared.c:579
 msgid "Reinstalled"
 msgstr "Преинсталиран"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:562
+#: ../lib/packagekit-glib2/pk-console-shared.c:597
 msgid "Unknown role type"
 msgstr "Непознат вид роля"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:566
+#: ../lib/packagekit-glib2/pk-console-shared.c:601
 msgid "Getting dependencies"
 msgstr "Изтегляне на зависимости"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:570
+#: ../lib/packagekit-glib2/pk-console-shared.c:605
 msgid "Getting update details"
 msgstr "Получаване на информация за обновление"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:574
+#: ../lib/packagekit-glib2/pk-console-shared.c:609
 msgid "Getting details"
 msgstr "Получаване на информация"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:578
+#: ../lib/packagekit-glib2/pk-console-shared.c:613
 msgid "Getting requires"
 msgstr "Получаване на зависимости"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:582
+#: ../lib/packagekit-glib2/pk-console-shared.c:617
 msgid "Getting updates"
 msgstr "Получаване на обновления"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:586
+#: ../lib/packagekit-glib2/pk-console-shared.c:621
 msgid "Searching by details"
 msgstr "Търсене по информация"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:590
+#: ../lib/packagekit-glib2/pk-console-shared.c:625
 msgid "Searching by file"
 msgstr "Търсене по файл"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:594
+#: ../lib/packagekit-glib2/pk-console-shared.c:629
 msgid "Searching groups"
 msgstr "Търсене в групи"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:598
+#: ../lib/packagekit-glib2/pk-console-shared.c:633
 msgid "Searching by name"
 msgstr "Търсене по име"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:610
+#: ../lib/packagekit-glib2/pk-console-shared.c:645
 msgid "Installing files"
 msgstr "Инсталиране на файлове"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:614
+#: ../lib/packagekit-glib2/pk-console-shared.c:649
 msgid "Refreshing cache"
 msgstr "Обновяване на временните файлове"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:618
+#: ../lib/packagekit-glib2/pk-console-shared.c:653
 msgid "Updating packages"
 msgstr "Обновяване на пакети"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:622
+#: ../lib/packagekit-glib2/pk-console-shared.c:657
 msgid "Updating system"
 msgstr "Обновяване на системата"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:626
+#: ../lib/packagekit-glib2/pk-console-shared.c:661
 msgid "Canceling"
 msgstr "Отказване"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:634
+#: ../lib/packagekit-glib2/pk-console-shared.c:669
 msgid "Getting repositories"
 msgstr "Получаване на хранилищата със софтуер"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:638
+#: ../lib/packagekit-glib2/pk-console-shared.c:673
 msgid "Enabling repository"
 msgstr "Включване на хранилище"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:642
+#: ../lib/packagekit-glib2/pk-console-shared.c:677
 msgid "Setting data"
 msgstr "Задаване на данни"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:646
+#: ../lib/packagekit-glib2/pk-console-shared.c:681
 msgid "Resolving"
 msgstr "Изчисляване"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:650
+#: ../lib/packagekit-glib2/pk-console-shared.c:685
 msgid "Getting file list"
 msgstr "Получаване на списъка с файлове"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:654
+#: ../lib/packagekit-glib2/pk-console-shared.c:689
 msgid "Getting provides"
 msgstr "Получаване на предоставяните ресурси"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:658
+#: ../lib/packagekit-glib2/pk-console-shared.c:693
 msgid "Installing signature"
 msgstr "Инсталиране на подпис"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:662
+#: ../lib/packagekit-glib2/pk-console-shared.c:697
 msgid "Getting packages"
 msgstr "Получаване на пакети"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:666
+#: ../lib/packagekit-glib2/pk-console-shared.c:701
 msgid "Accepting EULA"
 msgstr "Приемане на EULA"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:674
+#: ../lib/packagekit-glib2/pk-console-shared.c:709
 msgid "Getting upgrades"
 msgstr "Получаване на надграждания"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:678
+#: ../lib/packagekit-glib2/pk-console-shared.c:713
 msgid "Getting categories"
 msgstr "Получаване на категории"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:682
+#: ../lib/packagekit-glib2/pk-console-shared.c:717
 msgid "Getting transactions"
 msgstr "Получаване на транзакции"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:686
-#: ../lib/packagekit-glib2/pk-console-shared.c:690
+#: ../lib/packagekit-glib2/pk-console-shared.c:721
+#: ../lib/packagekit-glib2/pk-console-shared.c:725
 msgid "Simulating install"
 msgstr "Симулация на инсталиране"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:694
+#: ../lib/packagekit-glib2/pk-console-shared.c:729
 msgid "Simulating remove"
 msgstr "Симулация на деинсталиране"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:698
+#: ../lib/packagekit-glib2/pk-console-shared.c:733
 msgid "Simulating update"
 msgstr "Симулация на обновяване"
 
@@ -1804,13 +1800,19 @@ msgstr "Следните пакети трябва да бъдат преинс
 msgid "The following packages have to be downgraded:"
 msgstr "Следните пакети трябва да бъдат върнати към предишна версия:"
 
+#. TRANSLATORS: When processing, untrusted and non-verified packages may be
+#. encountered
+#: ../lib/packagekit-glib2/pk-task-text.c:325
+msgid "The following packages are untrusted:"
+msgstr ""
+
 #. TRANSLATORS: ask the user if the proposed changes are okay
-#: ../lib/packagekit-glib2/pk-task-text.c:380
+#: ../lib/packagekit-glib2/pk-task-text.c:385
 msgid "Proceed with changes?"
 msgstr "Да се приложат ли промените?"
 
 #. TRANSLATORS: tell the user we didn't do anything
-#: ../lib/packagekit-glib2/pk-task-text.c:385
+#: ../lib/packagekit-glib2/pk-task-text.c:390
 msgid "The transaction did not proceed."
 msgstr "Транзакцията не бе осъществена."
 
@@ -2020,101 +2022,70 @@ msgstr "Обновяване на пакети"
 msgid "Upgrade System"
 msgstr "Надграждане на системата"
 
-#. TRANSLATORS: failed due to DBus security
-#: ../src/pk-main.c:91
-msgid "Startup failed due to security policies on this machine."
-msgstr "Неуспешно стартиране поради политиката за сигурност на тази машина."
-
-#. TRANSLATORS: only two ways this can fail...
-#: ../src/pk-main.c:93
-msgid "This can happen for two reasons:"
-msgstr "Това може да се случи поради две причини:"
-
-#. TRANSLATORS: only allowed to be owned by root
-#: ../src/pk-main.c:95
-msgid "The correct user is not launching the executable (usually root)"
-msgstr ""
-"Неправилен потребител стартира програмата (обикновено трябва да е "
-"администратор)"
-
-#. TRANSLATORS: or we are installed in a prefix
-#: ../src/pk-main.c:97
-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:223
+#: ../src/pk-main.c:149
 msgid "Packaging backend to use, e.g. dummy"
 msgstr "Пакетно ядро, което да се ползва, напр. „dummy“"
 
 #. TRANSLATORS: if we should run in the background
-#: ../src/pk-main.c:226
+#: ../src/pk-main.c:152
 msgid "Daemonize and detach from the terminal"
 msgstr "Преминаване в режим на демон и освобождаване на терминала"
 
 #. TRANSLATORS: if we should not monitor how long we are inactive for
-#: ../src/pk-main.c:229
+#: ../src/pk-main.c:155
 msgid "Disable the idle timer"
 msgstr "Изключване на хронометъра за бездействие"
 
 #. TRANSLATORS: show version
-#: ../src/pk-main.c:232
+#: ../src/pk-main.c:158
 msgid "Show version and exit"
 msgstr "Извеждане на версията и изход"
 
 #. TRANSLATORS: exit after we've started up, used for user profiling
-#: ../src/pk-main.c:235
+#: ../src/pk-main.c:161
 msgid "Exit after a small delay"
 msgstr "Изход след кратко изчакване"
 
 #. TRANSLATORS: exit straight away, used for automatic profiling
-#: ../src/pk-main.c:238
+#: ../src/pk-main.c:164
 msgid "Exit after the engine has loaded"
 msgstr "Изход след зареждането на ядрото"
 
+#. TRANSLATORS: don't unset environment variables, used for debugging
+#: ../src/pk-main.c:167
+msgid "Don't clear environment on startup"
+msgstr ""
+
 #. TRANSLATORS: describing the service that is running
-#: ../src/pk-main.c:253
+#: ../src/pk-main.c:179
 msgid "PackageKit service"
 msgstr "Услуга PackageKit"
 
-#. TRANSLATORS: fatal error, dbus is not running
-#: ../src/pk-main.c:298
-msgid "Cannot connect to the system bus"
-msgstr "Не може да се осъществи връзка към системната шина"
-
-#: ../src/pk-main.c:344
+#: ../src/pk-main.c:253
 msgid "Failed to load any of the specified backends:"
 msgstr ""
 
-#. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error
-#. follows
-#: ../src/pk-main.c:358
-msgid "Error trying to start:"
-msgstr "Грешка при опита за стартиране:"
-
 #. TRANSLATORS: is not GPG signed
-#: ../src/pk-transaction.c:2611 ../src/pk-transaction.c:2618
+#: ../src/pk-transaction.c:2696
 msgid "The software is not from a trusted source."
 msgstr "Програмата не е от доверено хранилище."
 
-#: ../src/pk-transaction.c:2623
+#: ../src/pk-transaction.c:2704
 msgid "Do not update this package unless you are sure it is safe to do so."
 msgstr "Не обновявайте пакета, освен ако не сте сигурни, че това е безопасно."
 
-#: ../src/pk-transaction.c:2624
+#: ../src/pk-transaction.c:2705
 msgid "Do not update these packages unless you are sure it is safe to do so."
 msgstr ""
 "Не обновявайте пакетите, освен ако не сте сигурни, че това е безопасно."
 
-#: ../src/pk-transaction.c:2634
+#: ../src/pk-transaction.c:2715
 msgid "Do not install this package unless you are sure it is safe to do so."
 msgstr ""
 "Не инсталирайте пакета, освен ако не сте сигурни, че това е безопасно."
 
-#: ../src/pk-transaction.c:2635
+#: ../src/pk-transaction.c:2716
 msgid "Do not install these packages unless you are sure it is safe to do so."
 msgstr ""
 "Не инсталирайте пакетите, освен ако не сте сигурни, че това е безопасно."
diff --git a/po/bn_IN.po b/po/bn_IN.po
index e912a30..3690242 100644
--- a/po/bn_IN.po
+++ b/po/bn_IN.po
@@ -2,14 +2,17 @@
 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
 # This file is distributed under the same license as the PACKAGE package.
 # 
-# Richard Hughes <richard at hughsie.com>, 2011
+# Translators:
+# Richard Hughes <richard at hughsie.com>, 2011.
+# Runa Bhattacharjee <runab at fedoraproject.org>, 2009.
+# Runa Bhattacharjee <runab at redhat.com>, 2008, 2009.
 msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-04 10:50+0100\n"
-"PO-Revision-Date: 2011-05-04 09:56+0000\n"
-"Last-Translator: hughsie <richard at hughsie.com>\n"
+"POT-Creation-Date: 2011-11-10 19:50+0000\n"
+"PO-Revision-Date: 2011-11-10 19:50+0000\n"
+"Last-Translator: Richard Hughes <richard at hughsie.com>\n"
 "Language-Team: Bengali (India) (http://www.transifex.net/projects/p/freedesktop/team/bn_IN/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -195,7 +198,7 @@ msgstr "প্রকাশনার সময়ক্ষণ"
 
 #. TRANSLATORS: details about the update, date the update was updated
 #. TRANSLATORS: The action of the package, in past tense
-#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:524
+#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:559
 msgid "Updated"
 msgstr "আপডেটের সময়ক্ষণ"
 
@@ -285,7 +288,7 @@ msgstr ""
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
 #: ../client/pk-console.c:704
-#: ../contrib/command-not-found/pk-command-not-found.c:639
+#: ../contrib/command-not-found/pk-command-not-found.c:634
 msgid "The transaction failed"
 msgstr "ট্রানস্যাকশন বিফল হয়েছে"
 
@@ -337,21 +340,21 @@ msgstr ""
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:866
+#: ../client/pk-console.c:871
 #, c-format
 msgid "This tool could not find any available package: %s"
 msgstr "উপলব্ধ কোনো প্যাকেজ এই সামগ্রী দ্বারা পাওয়া যায়নি: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:894
+#: ../client/pk-console.c:899
 #, c-format
 msgid "This tool could not find the installed package: %s"
 msgstr "ইনস্টল করা প্যাকেজটি এই সামগ্রী দ্বারা পাওয়া যায়নি: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:922 ../client/pk-console.c:950
+#: ../client/pk-console.c:927 ../client/pk-console.c:955
 #, c-format
 msgid "This tool could not find the package: %s"
 msgstr "প্যাকেজটি এই সামগ্রী দ্বারা পাওয়া যায়নি: %s"
@@ -364,70 +367,70 @@ msgstr "প্যাকেজটি এই সামগ্রী দ্বার
 #. detailed error follows
 #. TRANSLATORS: The package name was not found in any software sources. The
 #. detailed error follows
-#: ../client/pk-console.c:978 ../client/pk-console.c:1006
-#: ../client/pk-console.c:1034 ../client/pk-console.c:1062
-#: ../client/pk-console.c:1090
+#: ../client/pk-console.c:983 ../client/pk-console.c:1011
+#: ../client/pk-console.c:1039 ../client/pk-console.c:1067
+#: ../client/pk-console.c:1095
 #, c-format
 msgid "This tool could not find all the packages: %s"
 msgstr "উপলব্ধ সকল প্যাকেজগুলি এই সামগ্রী পাওয়া যায়নি: %s"
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek
 #. without a paddle
-#: ../client/pk-console.c:1119
+#: ../client/pk-console.c:1124
 msgid "The daemon crashed mid-transaction!"
 msgstr "সম্প্রচার চলাকালে ডেমন বিপর্যস্ত হয়েছে!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1153
+#: ../client/pk-console.c:1158
 msgid "PackageKit Console Interface"
 msgstr "PackageKit কনসোল ইন্টারফেস"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1155
+#: ../client/pk-console.c:1160
 msgid "Subcommands:"
 msgstr "সাব-কমান্ড:"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was
 #. last executed
-#: ../client/pk-console.c:1235
+#: ../client/pk-console.c:1240
 msgid "Failed to get the time since this action was last completed"
 msgstr ""
 "চিহ্নিত কর্ম সর্বশেষ সমাপ্তির সময়ের পরে অতিবাহিত সময় প্রাপ্ত করা যায়নি"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1277 ../client/pk-monitor.c:371
+#: ../client/pk-console.c:1282 ../client/pk-monitor.c:371
 msgid "Show the program version and exit"
 msgstr "Show the program version and exit"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1280
+#: ../client/pk-console.c:1285
 msgid "Set the filter, e.g. installed"
 msgstr "Set the filter, e.g. installed"
 
 #. TRANSLATORS: command line argument, use a non-standard install prefix
-#: ../client/pk-console.c:1283
+#: ../client/pk-console.c:1288
 msgid "Set the install root, e.g. '/' or '/mnt/ltsp'"
 msgstr ""
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1286
+#: ../client/pk-console.c:1291
 msgid "Exit without waiting for actions to complete"
 msgstr "Exit without waiting for actions to complete"
 
 #. command line argument, do we ask questions
-#: ../client/pk-console.c:1289
+#: ../client/pk-console.c:1294
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:525
 msgid "Install the packages without asking for confirmation"
 msgstr "Install the packages without asking for confirmation"
 
 #. TRANSLATORS: command line argument, this command is not a priority
-#: ../client/pk-console.c:1292
+#: ../client/pk-console.c:1297
 msgid "Run the command using idle network bandwidth and also using less power"
 msgstr ""
 "Run the command using idle network bandwidth and also using less power"
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1295
+#: ../client/pk-console.c:1300
 msgid ""
 "Print to screen a machine readable output, rather than using animated "
 "widgets"
@@ -436,157 +439,157 @@ msgstr ""
 "widgets"
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1298
+#: ../client/pk-console.c:1303
 msgid "The maximum metadata cache age. Use -1 for 'never'."
 msgstr ""
 
 #. TRANSLATORS: command line argument, --help
-#: ../client/pk-console.c:1301
+#: ../client/pk-console.c:1306
 msgid "Show help options."
 msgstr ""
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1331
+#: ../client/pk-console.c:1336
 msgid "Failed to parse command line"
 msgstr ""
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1341
+#: ../client/pk-console.c:1346
 msgid "Failed to contact PackageKit"
 msgstr "PackageKit-র সাথে সংযোগ স্থাপন করতে ব্যর্থ"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1394
+#: ../client/pk-console.c:1399
 msgid "The proxy could not be set"
 msgstr ""
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1406
+#: ../client/pk-console.c:1411
 msgid "The install root could not be set"
 msgstr ""
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1418
+#: ../client/pk-console.c:1423
 msgid "The filter specified was invalid"
 msgstr "নির্ধারিত ফিল্টার বৈধ নয়"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1437
+#: ../client/pk-console.c:1442
 msgid "A search type is required, e.g. name"
 msgstr "অনুসন্ধানের ধরন আবশ্যক, উদাহরণ নাম (name)"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1444 ../client/pk-console.c:1456
-#: ../client/pk-console.c:1468 ../client/pk-console.c:1480
+#: ../client/pk-console.c:1449 ../client/pk-console.c:1461
+#: ../client/pk-console.c:1473 ../client/pk-console.c:1485
 msgid "A search term is required"
 msgstr "অনুসন্ধানের উদ্দেশ্যে কিছু তথ্য লেখা আবশ্যক"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1490
+#: ../client/pk-console.c:1495
 msgid "Invalid search type"
 msgstr "অনুসন্ধানের ধরন বৈধ নয়"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1496
+#: ../client/pk-console.c:1501
 msgid "A package name to install is required"
 msgstr "ইনস্টল করার উদ্দেশ্যে প্যাকেজের নাম উল্লেখ করা আবশ্যক"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1505
+#: ../client/pk-console.c:1510
 msgid "A filename to install is required"
 msgstr "ইনস্টলেশনের জন্য ফাইলের নাম উল্লেখ করা আবশ্যক"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1516
+#: ../client/pk-console.c:1521
 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:1527
+#: ../client/pk-console.c:1532
 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:1536
+#: ../client/pk-console.c:1541
 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:1543
+#: ../client/pk-console.c:1548
 msgid "Directory not found"
 msgstr "ডিরেক্টরি পাওয়া যায়নি"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1552
+#: ../client/pk-console.c:1557
 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:1563
+#: ../client/pk-console.c:1568
 msgid "A transaction identifier (tid) is required"
 msgstr "ট্রানস্যাকশন পরিচয়কারী (tid) উল্লেখ করা আবশ্যক"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:1584
+#: ../client/pk-console.c:1589
 msgid "A package name to resolve is required"
 msgstr "মীমাংসা করার উদ্দেশ্যে প্যাকেজের নাম উল্লেখ করা আবশ্যক"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:1595 ../client/pk-console.c:1606
+#: ../client/pk-console.c:1600 ../client/pk-console.c:1611
 msgid "A repository name is required"
 msgstr "সংগ্রহস্থলের নাম উল্লেখ আবশ্যক"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:1617
+#: ../client/pk-console.c:1622
 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:1634
+#: ../client/pk-console.c:1639
 msgid "An action, e.g. 'update-system' is required"
 msgstr "কর্ম নির্ধারণ করা আবশ্যক, উদাহরণ 'update-system'"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:1641
+#: ../client/pk-console.c:1646
 msgid "A correct role is required"
 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:1651 ../client/pk-console.c:1665
-#: ../client/pk-console.c:1674 ../client/pk-console.c:1694
-#: ../client/pk-console.c:1703 ../client/pk-generate-pack.c:314
+#: ../client/pk-console.c:1656 ../client/pk-console.c:1670
+#: ../client/pk-console.c:1679 ../client/pk-console.c:1699
+#: ../client/pk-console.c:1708 ../client/pk-generate-pack.c:314
 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:1683
+#: ../client/pk-console.c:1688
 msgid "A package provide string is required"
 msgstr ""
 "প্যাকেজ দ্বারা উপলব্ধ (provides) সামগ্রী সংক্রান্ত তথ্য উল্লেখ করা আবশ্যক"
 
 #. TRANSLATORS: The user did not provide a distro name
-#: ../client/pk-console.c:1727
+#: ../client/pk-console.c:1732
 msgid "A distribution name is required"
 msgstr ""
 
 #. TRANSLATORS: The user did not provide an upgrade type
-#: ../client/pk-console.c:1733
+#: ../client/pk-console.c:1738
 msgid "An upgrade type is required, e.g. 'minimal', 'default' or 'complete'"
 msgstr ""
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command
 #. line
-#: ../client/pk-console.c:1783
+#: ../client/pk-console.c:1788
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "'%s' বিকল্পটি সমর্থিত নয়"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:1793
+#: ../client/pk-console.c:1798
 msgid "Command failed"
 msgstr "কমান্ড বিফল"
 
@@ -728,143 +731,138 @@ msgid "PackageKit Monitor"
 msgstr "PackageKit Monitor"
 
 #. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/pk-plugin-install.c:499
+#: ../contrib/browser-plugin/pk-plugin-install.c:503
 msgid "Getting package information..."
 msgstr "প্যাকেজ সংক্রান্ত তথ্য প্রাপ্ত করা হচ্ছে..."
 
 #. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/pk-plugin-install.c:505
+#: ../contrib/browser-plugin/pk-plugin-install.c:509
 #, c-format
 msgid "Run %s"
 msgstr "%s সঞ্চালন করুন"
 
 #. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:511
+#: ../contrib/browser-plugin/pk-plugin-install.c:515
 msgid "Installed version"
 msgstr "ইনস্টল করা সংস্করণ"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:519
+#: ../contrib/browser-plugin/pk-plugin-install.c:523
 #, c-format
 msgid "Run version %s now"
 msgstr "%s সংস্করণ এখন সঞ্চালন করুন"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:525
+#: ../contrib/browser-plugin/pk-plugin-install.c:529
 msgid "Run now"
 msgstr "এখন সঞ্চালন করুন"
 
 #. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:531
+#: ../contrib/browser-plugin/pk-plugin-install.c:535
 #, c-format
 msgid "Update to version %s"
 msgstr "%s সংস্করণে আপডেট করুন"
 
 #. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:537
+#: ../contrib/browser-plugin/pk-plugin-install.c:541
 #, c-format
 msgid "Install %s now"
 msgstr "%s এখন ইনস্টল করুন"
 
 #. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:540
+#: ../contrib/browser-plugin/pk-plugin-install.c:544
 msgid "Version"
 msgstr "সংস্করণ"
 
 #. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/pk-plugin-install.c:545
+#: ../contrib/browser-plugin/pk-plugin-install.c:549
 msgid "No packages found for your system"
 msgstr "আপনার সিস্টেমের জন্য কোনো প্যাকেজ পাওয়া যায়নি"
 
 #. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/pk-plugin-install.c:550
+#: ../contrib/browser-plugin/pk-plugin-install.c:554
 msgid "Installing..."
 msgstr "ইনস্টল করা হচ্ছে..."
 
 #. TRANSLATORS: downloading repo data so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:366
+#: ../contrib/command-not-found/pk-command-not-found.c:363
 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:370
+#: ../contrib/command-not-found/pk-command-not-found.c:367
 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:374
+#: ../contrib/command-not-found/pk-command-not-found.c:371
 msgid "Waiting for package manager lock."
 msgstr "প্যাকেজ পরিচালনব্যবস্থার লক প্রাপ্ত করার অপেক্ষা চলছে।"
 
 #. TRANSLATORS: loading package cache so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:378
+#: ../contrib/command-not-found/pk-command-not-found.c:375
 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:444
+#: ../contrib/command-not-found/pk-command-not-found.c:439
 msgid "Failed to search for file"
 msgstr "ফাইল অনুসন্ধান করতে ব্যর্থ"
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
-#: ../contrib/command-not-found/pk-command-not-found.c:456
+#: ../contrib/command-not-found/pk-command-not-found.c:451
 msgid "Getting the list of files failed"
 msgstr ""
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:602
+#: ../contrib/command-not-found/pk-command-not-found.c:597
 msgid "Failed to launch:"
 msgstr "চিহ্নিত সামগ্রী আরম্ভ করতে ব্যর্থ:"
 
 #. TRANSLATORS: we failed to install the package
-#: ../contrib/command-not-found/pk-command-not-found.c:630
+#: ../contrib/command-not-found/pk-command-not-found.c:625
 msgid "Failed to install packages"
 msgstr "প্যাকেজ ইনস্টল করা যায়নি"
 
-#. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/command-not-found/pk-command-not-found.c:706
-msgid "PackageKit Command Not Found"
-msgstr "PackageKit কমান্ড পাওয়া যায়নি"
-
 #. TRANSLATORS: the prefix of all the output telling the user
 #. * why it's not executing. NOTE: this is lowercase to mimic
 #. * the style of bash itself -- apologies
-#: ../contrib/command-not-found/pk-command-not-found.c:741
+#: ../contrib/command-not-found/pk-command-not-found.c:723
 msgid "command not found"
 msgstr ""
 
 #. TRANSLATORS: tell the user what we think the command is
-#: ../contrib/command-not-found/pk-command-not-found.c:759
+#: ../contrib/command-not-found/pk-command-not-found.c:741
 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:773
+#: ../contrib/command-not-found/pk-command-not-found.c:755
 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:787
-#: ../contrib/command-not-found/pk-command-not-found.c:796
+#: ../contrib/command-not-found/pk-command-not-found.c:769
+#: ../contrib/command-not-found/pk-command-not-found.c:778
 msgid "Similar commands are:"
 msgstr "অনুরূপ কমান্ড হল:"
 
 #. TRANSLATORS: ask the user to choose a file to run
-#: ../contrib/command-not-found/pk-command-not-found.c:803
+#: ../contrib/command-not-found/pk-command-not-found.c:785
 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:821
+#: ../contrib/command-not-found/pk-command-not-found.c:803
 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:828
+#: ../contrib/command-not-found/pk-command-not-found.c:810
 #, c-format
 msgid "Install package '%s' to provide command '%s'?"
 msgstr ""
@@ -872,19 +870,19 @@ msgstr ""
 "উদ্দেশ্যে উপলব্ধ করা হবে।"
 
 #. TRANSLATORS: Show the user a list of packages that provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:855
+#: ../contrib/command-not-found/pk-command-not-found.c:837
 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:865
+#: ../contrib/command-not-found/pk-command-not-found.c:847
 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:874
+#: ../contrib/command-not-found/pk-command-not-found.c:856
 msgid "Please choose a package to install"
 msgstr "অনুগ্রহ করে ইনস্টল করার জন্য একটি প্যাকেজ নির্বাচন করুন"
 
@@ -1060,7 +1058,7 @@ msgstr "অনুকরণের মোডে কোনো প্যাকেজ
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
 #. TRANSLATORS: transaction state, installing packages
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:860
-#: ../lib/packagekit-glib2/pk-console-shared.c:296
+#: ../lib/packagekit-glib2/pk-console-shared.c:331
 #, c-format
 msgid "Installing packages"
 msgstr "প্যাকেজ ইনস্টল করা হচ্ছে"
@@ -1196,474 +1194,474 @@ msgstr "PackageKit প্যাকেজের তালিকা"
 msgid "PackageKit Service Pack"
 msgstr "PackageKit সার্ভিস প্যাক"
 
-#: ../lib/packagekit-glib2/pk-console-shared.c:64
+#: ../lib/packagekit-glib2/pk-console-shared.c:65
 #, c-format
 msgid "Please enter a number from 1 to %i: "
 msgstr "অনুগ্রহ করে ১ থেকে %i-র মধ্যে একটি সংখ্যা লিখুন: "
 
 #. TRANSLATORS: more than one package could be found that matched, to follow
 #. is a list of possible packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:198
+#: ../lib/packagekit-glib2/pk-console-shared.c:233
 msgid "More than one package matches:"
 msgstr "একাধিক প্যাকেজের সাথে মিল পাওয়া গিয়েছে:"
 
 #. TRANSLATORS: This finds out which package in the list to use
-#: ../lib/packagekit-glib2/pk-console-shared.c:209
+#: ../lib/packagekit-glib2/pk-console-shared.c:244
 msgid "Please choose the correct package: "
 msgstr "অনুগ্রহ করে সঠিক প্যাকেজ নির্বাচন করুন: "
 
 #. TRANSLATORS: This is when the transaction status is not known
-#: ../lib/packagekit-glib2/pk-console-shared.c:264
+#: ../lib/packagekit-glib2/pk-console-shared.c:299
 msgid "Unknown state"
 msgstr "অজানা অবস্থা"
 
 #. TRANSLATORS: transaction state, the daemon is in the process of starting
-#: ../lib/packagekit-glib2/pk-console-shared.c:268
+#: ../lib/packagekit-glib2/pk-console-shared.c:303
 msgid "Starting"
 msgstr "আরম্ভ করা হচ্ছে"
 
 #. TRANSLATORS: transaction state, the transaction is waiting for another to
 #. complete
-#: ../lib/packagekit-glib2/pk-console-shared.c:272
+#: ../lib/packagekit-glib2/pk-console-shared.c:307
 msgid "Waiting in queue"
 msgstr "সারির মধ্যে অপেক্ষারত"
 
 #. TRANSLATORS: transaction state, just started
-#: ../lib/packagekit-glib2/pk-console-shared.c:276
+#: ../lib/packagekit-glib2/pk-console-shared.c:311
 msgid "Running"
 msgstr "চলমান"
 
 #. TRANSLATORS: transaction state, is querying data
-#: ../lib/packagekit-glib2/pk-console-shared.c:280
+#: ../lib/packagekit-glib2/pk-console-shared.c:315
 msgid "Querying"
 msgstr "অনুসন্ধানরত"
 
 #. TRANSLATORS: transaction state, getting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:284
+#: ../lib/packagekit-glib2/pk-console-shared.c:319
 msgid "Getting information"
 msgstr "তথ্য প্রাপ্ত করা হচ্ছে"
 
 #. TRANSLATORS: transaction state, removing packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:288
+#: ../lib/packagekit-glib2/pk-console-shared.c:323
 msgid "Removing packages"
 msgstr "প্যাকেজ মুছে ফেলা হচ্ছে"
 
 #. TRANSLATORS: transaction state, downloading package files
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:292
-#: ../lib/packagekit-glib2/pk-console-shared.c:670
+#: ../lib/packagekit-glib2/pk-console-shared.c:327
+#: ../lib/packagekit-glib2/pk-console-shared.c:705
 msgid "Downloading packages"
 msgstr "প্যাকেজ ডাউনলোড করা হচ্ছে"
 
 #. TRANSLATORS: transaction state, refreshing internal lists
-#: ../lib/packagekit-glib2/pk-console-shared.c:300
+#: ../lib/packagekit-glib2/pk-console-shared.c:335
 msgid "Refreshing software list"
 msgstr "সফ্টওয়্যারের তালিকা নতুন করে তৈরি করা হচ্ছে"
 
 #. TRANSLATORS: transaction state, installing updates
-#: ../lib/packagekit-glib2/pk-console-shared.c:304
+#: ../lib/packagekit-glib2/pk-console-shared.c:339
 msgid "Installing updates"
 msgstr "আপডেট ইনস্টল করা হচ্ছে"
 
 #. TRANSLATORS: transaction state, removing old packages, and cleaning config
 #. files
-#: ../lib/packagekit-glib2/pk-console-shared.c:308
+#: ../lib/packagekit-glib2/pk-console-shared.c:343
 msgid "Cleaning up packages"
 msgstr "প্যাকেজ পরিশ্রুত করা হচ্ছে"
 
 #. TRANSLATORS: transaction state, obsoleting old packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:312
+#: ../lib/packagekit-glib2/pk-console-shared.c:347
 msgid "Obsoleting packages"
 msgstr "প্যাকেজ অবচিত করা হচ্ছে"
 
 #. TRANSLATORS: transaction state, checking the transaction before we do it
-#: ../lib/packagekit-glib2/pk-console-shared.c:316
+#: ../lib/packagekit-glib2/pk-console-shared.c:351
 msgid "Resolving dependencies"
 msgstr "নির্ভরতার মীমাংসা করা হচ্ছে"
 
 #. TRANSLATORS: transaction state, checking if we have all the security keys
 #. for the operation
-#: ../lib/packagekit-glib2/pk-console-shared.c:320
+#: ../lib/packagekit-glib2/pk-console-shared.c:355
 msgid "Checking signatures"
 msgstr "স্বাক্ষর পরীক্ষা করা হচ্ছে"
 
 #. TRANSLATORS: transaction state, when we return to a previous system state
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:324
-#: ../lib/packagekit-glib2/pk-console-shared.c:630
+#: ../lib/packagekit-glib2/pk-console-shared.c:359
+#: ../lib/packagekit-glib2/pk-console-shared.c:665
 msgid "Rolling back"
 msgstr "পূর্বাবস্থায় প্রত্যাবর্তন করা হচ্ছে"
 
 #. TRANSLATORS: transaction state, when we're doing a test transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:328
+#: ../lib/packagekit-glib2/pk-console-shared.c:363
 msgid "Testing changes"
 msgstr "পরিবর্তনগুলি পরীক্ষা করা হচ্ছে"
 
 #. TRANSLATORS: transaction state, when we're writing to the system package
 #. database
-#: ../lib/packagekit-glib2/pk-console-shared.c:332
+#: ../lib/packagekit-glib2/pk-console-shared.c:367
 msgid "Committing changes"
 msgstr "পরিবর্তনগুলি সংরক্ষণ করা হচ্ছে"
 
 #. TRANSLATORS: transaction state, requesting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:336
+#: ../lib/packagekit-glib2/pk-console-shared.c:371
 msgid "Requesting data"
 msgstr "তথ্য প্রাপ্তির অনুরোধ করা হচ্ছে"
 
 #. TRANSLATORS: transaction state, all done!
-#: ../lib/packagekit-glib2/pk-console-shared.c:340
+#: ../lib/packagekit-glib2/pk-console-shared.c:375
 msgid "Finished"
 msgstr "সমাপ্ত"
 
 #. TRANSLATORS: transaction state, in the process of cancelling
-#: ../lib/packagekit-glib2/pk-console-shared.c:344
+#: ../lib/packagekit-glib2/pk-console-shared.c:379
 msgid "Cancelling"
 msgstr "বাতিল করা হচ্ছে"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:348
+#: ../lib/packagekit-glib2/pk-console-shared.c:383
 msgid "Downloading repository information"
 msgstr "সংগ্রহস্থল সংক্রান্ত তথ্য ডাউনলোড করা হচ্ছে"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:352
+#: ../lib/packagekit-glib2/pk-console-shared.c:387
 msgid "Downloading list of packages"
 msgstr "প্যাকেজের তালিকা ডাউনলোড করা হচ্ছে"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:356
+#: ../lib/packagekit-glib2/pk-console-shared.c:391
 msgid "Downloading file lists"
 msgstr "ফাইলের তালিকা ডাউনলোড করা হচ্ছে"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:360
+#: ../lib/packagekit-glib2/pk-console-shared.c:395
 msgid "Downloading lists of changes"
 msgstr "পরিবর্তনের তালিকা ডাউনলোড করা হচ্ছ।"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:364
+#: ../lib/packagekit-glib2/pk-console-shared.c:399
 msgid "Downloading groups"
 msgstr "দলের তথ্য ডাউনলোড করা হচ্ছে"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:368
+#: ../lib/packagekit-glib2/pk-console-shared.c:403
 msgid "Downloading update information"
 msgstr "আপডেট সংক্রান্ত তথ্য ডাউনলোড করা হচ্ছে"
 
 #. TRANSLATORS: transaction state, repackaging delta files
-#: ../lib/packagekit-glib2/pk-console-shared.c:372
+#: ../lib/packagekit-glib2/pk-console-shared.c:407
 msgid "Repackaging files"
 msgstr "ফাইল পুনরায় প্যাকেজ করা হচ্ছে"
 
 #. TRANSLATORS: transaction state, loading databases
-#: ../lib/packagekit-glib2/pk-console-shared.c:376
+#: ../lib/packagekit-glib2/pk-console-shared.c:411
 msgid "Loading cache"
 msgstr "ক্যাশে লোড করা হচ্ছে"
 
 #. TRANSLATORS: transaction state, scanning for running processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:380
+#: ../lib/packagekit-glib2/pk-console-shared.c:415
 msgid "Scanning applications"
 msgstr "অ্যাপ্লিকেশন অনুসন্ধান করা হচ্ছে"
 
 #. TRANSLATORS: transaction state, generating a list of packages installed on
 #. the system
-#: ../lib/packagekit-glib2/pk-console-shared.c:384
+#: ../lib/packagekit-glib2/pk-console-shared.c:419
 msgid "Generating package lists"
 msgstr "প্যাকেজের তালিকা নির্মাণ করা হচ্ছে"
 
 #. TRANSLATORS: transaction state, when we're waiting for the native tools to
 #. exit
-#: ../lib/packagekit-glib2/pk-console-shared.c:388
+#: ../lib/packagekit-glib2/pk-console-shared.c:423
 msgid "Waiting for package manager lock"
 msgstr "প্যাকেজ পরিচালনব্যবস্থার লক প্রাপ্ত করার অপেক্ষা চলছে"
 
 #. TRANSLATORS: transaction state, waiting for user to type in a password
-#: ../lib/packagekit-glib2/pk-console-shared.c:392
+#: ../lib/packagekit-glib2/pk-console-shared.c:427
 msgid "Waiting for authentication"
 msgstr "অনুমোদনের অপেক্ষারত"
 
 #. TRANSLATORS: transaction state, we are updating the list of processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:396
+#: ../lib/packagekit-glib2/pk-console-shared.c:431
 msgid "Updating running applications"
 msgstr "চলমান অ্যাপ্লিকেশনের তালিকা আপডেট করা হচ্ছে"
 
 #. TRANSLATORS: transaction state, we are checking executable files currently
 #. in use
-#: ../lib/packagekit-glib2/pk-console-shared.c:400
+#: ../lib/packagekit-glib2/pk-console-shared.c:435
 msgid "Checking applications in use"
 msgstr "ব্যবহৃত অ্যাপ্লিকেশন পরীক্ষা করা হচ্ছে"
 
 #. TRANSLATORS: transaction state, we are checking for libraries currently in
 #. use
-#: ../lib/packagekit-glib2/pk-console-shared.c:404
+#: ../lib/packagekit-glib2/pk-console-shared.c:439
 msgid "Checking libraries in use"
 msgstr "ব্যবহৃত লাইব্রেরিগুলি পরীক্ষা করা হচ্ছে"
 
 #. TRANSLATORS: transaction state, we are copying package files before or
 #. after the transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:408
+#: ../lib/packagekit-glib2/pk-console-shared.c:443
 msgid "Copying files"
 msgstr "ফাইল কপি করা হচ্ছে"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:426
+#: ../lib/packagekit-glib2/pk-console-shared.c:461
 msgid "Trivial"
 msgstr "সামান্য"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:430
+#: ../lib/packagekit-glib2/pk-console-shared.c:465
 msgid "Normal"
 msgstr "সাধারণ"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:434
+#: ../lib/packagekit-glib2/pk-console-shared.c:469
 msgid "Important"
 msgstr "গুরুত্বপূর্ণ"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:438
+#: ../lib/packagekit-glib2/pk-console-shared.c:473
 msgid "Security"
 msgstr "নিরাপত্তা বিষয়ক"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:442
+#: ../lib/packagekit-glib2/pk-console-shared.c:477
 msgid "Bug fix "
 msgstr "বাগ সংশোধন"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:446
+#: ../lib/packagekit-glib2/pk-console-shared.c:481
 msgid "Enhancement"
 msgstr "উন্নত বৈশিষ্ট্য"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:450
+#: ../lib/packagekit-glib2/pk-console-shared.c:485
 msgid "Blocked"
 msgstr "ব্লক করা"
 
 #. TRANSLATORS: The state of a package
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:455
-#: ../lib/packagekit-glib2/pk-console-shared.c:528
+#: ../lib/packagekit-glib2/pk-console-shared.c:490
+#: ../lib/packagekit-glib2/pk-console-shared.c:563
 msgid "Installed"
 msgstr "ইনস্টল করা হয়েছে"
 
 #. TRANSLATORS: The state of a package, i.e. not installed
-#: ../lib/packagekit-glib2/pk-console-shared.c:460
+#: ../lib/packagekit-glib2/pk-console-shared.c:495
 msgid "Available"
 msgstr "উপলব্ধ"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:478
+#: ../lib/packagekit-glib2/pk-console-shared.c:513
 msgid "Downloading"
 msgstr "ডাউনলোড করা হচ্ছে"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:482
+#: ../lib/packagekit-glib2/pk-console-shared.c:517
 msgid "Updating"
 msgstr "আপডেট করা হচ্ছে"
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:486
-#: ../lib/packagekit-glib2/pk-console-shared.c:606
+#: ../lib/packagekit-glib2/pk-console-shared.c:521
+#: ../lib/packagekit-glib2/pk-console-shared.c:641
 msgid "Installing"
 msgstr "ইনস্টল করা হচ্ছে"
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:490
-#: ../lib/packagekit-glib2/pk-console-shared.c:602
+#: ../lib/packagekit-glib2/pk-console-shared.c:525
+#: ../lib/packagekit-glib2/pk-console-shared.c:637
 msgid "Removing"
 msgstr "মুছে ফেলা হচ্ছে"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:494
+#: ../lib/packagekit-glib2/pk-console-shared.c:529
 msgid "Cleaning up"
 msgstr "পরিশ্রুত করা হচ্ছে"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:498
+#: ../lib/packagekit-glib2/pk-console-shared.c:533
 msgid "Obsoleting"
 msgstr "অবচিত করা হচ্ছে"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:502
+#: ../lib/packagekit-glib2/pk-console-shared.c:537
 msgid "Reinstalling"
 msgstr "পুনরায় ইনস্টল করা হচ্ছে"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:520
+#: ../lib/packagekit-glib2/pk-console-shared.c:555
 msgid "Downloaded"
 msgstr "ডাউনলোড করা হয়েছে"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:532
+#: ../lib/packagekit-glib2/pk-console-shared.c:567
 msgid "Removed"
 msgstr "অপসারিত"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:536
+#: ../lib/packagekit-glib2/pk-console-shared.c:571
 msgid "Cleaned up"
 msgstr "পরিশ্রুত করা হয়েছে"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:540
+#: ../lib/packagekit-glib2/pk-console-shared.c:575
 msgid "Obsoleted"
 msgstr "অবচিত"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:544
+#: ../lib/packagekit-glib2/pk-console-shared.c:579
 msgid "Reinstalled"
 msgstr "পুনরায় ইনস্টল করা হয়েছে"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:562
+#: ../lib/packagekit-glib2/pk-console-shared.c:597
 msgid "Unknown role type"
 msgstr "অজানা ধরনের ভূমিকা"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:566
+#: ../lib/packagekit-glib2/pk-console-shared.c:601
 msgid "Getting dependencies"
 msgstr "নির্ভরতার মীমাংসা করা হচ্ছে"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:570
+#: ../lib/packagekit-glib2/pk-console-shared.c:605
 msgid "Getting update details"
 msgstr "আপডেটের বিবরণ প্রাপ্ত করা হচ্ছে"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:574
+#: ../lib/packagekit-glib2/pk-console-shared.c:609
 msgid "Getting details"
 msgstr "বিবরণ প্রাপ্ত করা হচ্ছে"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:578
+#: ../lib/packagekit-glib2/pk-console-shared.c:613
 msgid "Getting requires"
 msgstr "প্রয়োজনীয় সামগ্রীর তালিকা প্রাপ্ত করা হচ্ছে"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:582
+#: ../lib/packagekit-glib2/pk-console-shared.c:617
 msgid "Getting updates"
 msgstr "আপডেট প্রাপ্ত করা হচ্ছে"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:586
+#: ../lib/packagekit-glib2/pk-console-shared.c:621
 msgid "Searching by details"
 msgstr "বিবরণ অনুযায়ী অনুসন্ধান করা হচ্ছে"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:590
+#: ../lib/packagekit-glib2/pk-console-shared.c:625
 msgid "Searching by file"
 msgstr "ফাইল অনুযায়ী অনুসন্ধান করা হচ্ছে"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:594
+#: ../lib/packagekit-glib2/pk-console-shared.c:629
 msgid "Searching groups"
 msgstr "দলের অনুযায়ী অনুসন্ধান করা হচ্ছে"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:598
+#: ../lib/packagekit-glib2/pk-console-shared.c:633
 msgid "Searching by name"
 msgstr "নাম অনুযায়ী অনুসন্ধান করা হচ্ছে"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:610
+#: ../lib/packagekit-glib2/pk-console-shared.c:645
 msgid "Installing files"
 msgstr "ফাইল ইনস্টল করা হচ্ছে"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:614
+#: ../lib/packagekit-glib2/pk-console-shared.c:649
 msgid "Refreshing cache"
 msgstr "ক্যাশে নতুন করে তৈরি করা হচ্ছে"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:618
+#: ../lib/packagekit-glib2/pk-console-shared.c:653
 msgid "Updating packages"
 msgstr "প্যাকেজ আপডেট করা হচ্ছে"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:622
+#: ../lib/packagekit-glib2/pk-console-shared.c:657
 msgid "Updating system"
 msgstr "সিস্টেম আপডেট করা হচ্ছে"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:626
+#: ../lib/packagekit-glib2/pk-console-shared.c:661
 msgid "Canceling"
 msgstr "বাতিল করা হচ্ছে"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:634
+#: ../lib/packagekit-glib2/pk-console-shared.c:669
 msgid "Getting repositories"
 msgstr "সংগ্রহস্থলের তালিকা প্রাপ্ত করা হচ্ছে"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:638
+#: ../lib/packagekit-glib2/pk-console-shared.c:673
 msgid "Enabling repository"
 msgstr "সংগ্রহস্থল সক্রিয় করা হচ্ছে"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:642
+#: ../lib/packagekit-glib2/pk-console-shared.c:677
 msgid "Setting data"
 msgstr "তথ্য নির্ধারণ করা হচ্ছে"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:646
+#: ../lib/packagekit-glib2/pk-console-shared.c:681
 msgid "Resolving"
 msgstr "মীমাংসা করা হচ্ছে"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:650
+#: ../lib/packagekit-glib2/pk-console-shared.c:685
 msgid "Getting file list"
 msgstr "ফাইলের তালিকা প্রাপ্ত করা হচ্ছে"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:654
+#: ../lib/packagekit-glib2/pk-console-shared.c:689
 msgid "Getting provides"
 msgstr "উপলব্ধকারী সামগ্রীর তালিকা প্রাপ্ত করা হচ্ছে"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:658
+#: ../lib/packagekit-glib2/pk-console-shared.c:693
 msgid "Installing signature"
 msgstr "স্বাক্ষর ইনস্টল করা হচ্ছে"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:662
+#: ../lib/packagekit-glib2/pk-console-shared.c:697
 msgid "Getting packages"
 msgstr "প্যাকেজ প্রাপ্ত করা হচ্ছে"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:666
+#: ../lib/packagekit-glib2/pk-console-shared.c:701
 msgid "Accepting EULA"
 msgstr "EULA-র শর্তাবলী গ্রহণ করা হচ্ছে"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:674
+#: ../lib/packagekit-glib2/pk-console-shared.c:709
 msgid "Getting upgrades"
 msgstr "আপগ্রেড প্রাপ্ত করা হচ্ছে"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:678
+#: ../lib/packagekit-glib2/pk-console-shared.c:713
 msgid "Getting categories"
 msgstr "বিভাগ পরীক্ষা করা হচ্ছে"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:682
+#: ../lib/packagekit-glib2/pk-console-shared.c:717
 msgid "Getting transactions"
 msgstr "ট্রানস্যাকশন প্রাপ্ত করা হচ্ছে"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:686
-#: ../lib/packagekit-glib2/pk-console-shared.c:690
+#: ../lib/packagekit-glib2/pk-console-shared.c:721
+#: ../lib/packagekit-glib2/pk-console-shared.c:725
 msgid "Simulating install"
 msgstr "ইনস্টলেশনের অনুকরণ করা হচ্ছে"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:694
+#: ../lib/packagekit-glib2/pk-console-shared.c:729
 msgid "Simulating remove"
 msgstr "অপসারণের অনুকরণ করা হচ্ছে"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:698
+#: ../lib/packagekit-glib2/pk-console-shared.c:733
 msgid "Simulating update"
 msgstr "আপডেটের অনুকরণ করা হচ্ছে"
 
@@ -1813,13 +1811,19 @@ msgstr "নিম্নলিখিত প্যাকেজগুলি পু
 msgid "The following packages have to be downgraded:"
 msgstr "নিম্নলিখিত প্যাকেজগুলি ডাউনগ্রেড করা আবশ্যক:"
 
+#. TRANSLATORS: When processing, untrusted and non-verified packages may be
+#. encountered
+#: ../lib/packagekit-glib2/pk-task-text.c:325
+msgid "The following packages are untrusted:"
+msgstr ""
+
 #. TRANSLATORS: ask the user if the proposed changes are okay
-#: ../lib/packagekit-glib2/pk-task-text.c:380
+#: ../lib/packagekit-glib2/pk-task-text.c:385
 msgid "Proceed with changes?"
 msgstr "পরিবর্তনগুলি প্রয়োগ করা হবে কি?"
 
 #. TRANSLATORS: tell the user we didn't do anything
-#: ../lib/packagekit-glib2/pk-task-text.c:385
+#: ../lib/packagekit-glib2/pk-task-text.c:390
 msgid "The transaction did not proceed."
 msgstr "ট্রানসাকশানে এগিয়ে যায়নি।"
 
@@ -2027,106 +2031,74 @@ msgstr "প্যাকেজ আপডেট করুন"
 msgid "Upgrade System"
 msgstr ""
 
-#. TRANSLATORS: failed due to DBus security
-#: ../src/pk-main.c:91
-msgid "Startup failed due to security policies on this machine."
-msgstr ""
-"এই মেশিনের জন্য নির্ধারিত নিরাপত্তা সংক্রান্ত নিয়মনীতির কারণে প্রারম্ভ করতে "
-"ব্যর্থ।"
-
-#. TRANSLATORS: only two ways this can fail...
-#: ../src/pk-main.c:93
-msgid "This can happen for two reasons:"
-msgstr "দুটি কারণে এই পরিস্থিতি উৎপন্ন হতে পারে:"
-
-#. TRANSLATORS: only allowed to be owned by root
-#: ../src/pk-main.c:95
-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:97
-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:223
+#: ../src/pk-main.c:149
 msgid "Packaging backend to use, e.g. dummy"
 msgstr "প্যাকেজ করতে ব্যবহৃত ব্যাক-এন্ড, উদাহরণ dummy"
 
 #. TRANSLATORS: if we should run in the background
-#: ../src/pk-main.c:226
+#: ../src/pk-main.c:152
 msgid "Daemonize and detach from the terminal"
 msgstr "ডেমন তৈরি করে টার্মিন্যাল থেকে বিচ্ছিন্ন করুন"
 
 #. TRANSLATORS: if we should not monitor how long we are inactive for
-#: ../src/pk-main.c:229
+#: ../src/pk-main.c:155
 msgid "Disable the idle timer"
 msgstr "কর্মবিহীন অবস্থাসূচক টাইমার নিষ্ক্রিয় করুন"
 
 #. TRANSLATORS: show version
-#: ../src/pk-main.c:232
+#: ../src/pk-main.c:158
 msgid "Show version and exit"
 msgstr "সংস্করণ প্রদর্শন করে প্রস্থান করা হবে"
 
 #. TRANSLATORS: exit after we've started up, used for user profiling
-#: ../src/pk-main.c:235
+#: ../src/pk-main.c:161
 msgid "Exit after a small delay"
 msgstr "স্বল্প বিলম্বের পরে প্রস্থান করা হবে"
 
 #. TRANSLATORS: exit straight away, used for automatic profiling
-#: ../src/pk-main.c:238
+#: ../src/pk-main.c:164
 msgid "Exit after the engine has loaded"
 msgstr "ইঞ্জিন লোড করার পরে প্রস্থান করা হবে"
 
+#. TRANSLATORS: don't unset environment variables, used for debugging
+#: ../src/pk-main.c:167
+msgid "Don't clear environment on startup"
+msgstr ""
+
 #. TRANSLATORS: describing the service that is running
-#: ../src/pk-main.c:253
+#: ../src/pk-main.c:179
 msgid "PackageKit service"
 msgstr "PackageKit পরিসেবা"
 
-#. TRANSLATORS: fatal error, dbus is not running
-#: ../src/pk-main.c:298
-msgid "Cannot connect to the system bus"
-msgstr "সিস্টেম বাসের সাথে সংযোগ স্থাপন করতে ব্যর্থ"
-
-#: ../src/pk-main.c:344
+#: ../src/pk-main.c:253
 msgid "Failed to load any of the specified backends:"
 msgstr ""
 
-#. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error
-#. follows
-#: ../src/pk-main.c:358
-msgid "Error trying to start:"
-msgstr "আরম্ভ করতে সমস্যা:"
-
 #. TRANSLATORS: is not GPG signed
-#: ../src/pk-transaction.c:2611 ../src/pk-transaction.c:2618
+#: ../src/pk-transaction.c:2696
 msgid "The software is not from a trusted source."
 msgstr "বিশ্বস্ত উৎসস্থল থেকে সফ্টওয়্যারটি প্রাপ্ত করা হয়নি।"
 
-#: ../src/pk-transaction.c:2623
+#: ../src/pk-transaction.c:2704
 msgid "Do not update this package unless you are sure it is safe to do so."
 msgstr ""
 "প্যাকেজের নিরাপত্তা সম্পর্কের সম্পূর্ণরূপে নিশ্চিত না হলে এই প্যাকেজটি আপডেট"
 " না করা উচিত।"
 
-#: ../src/pk-transaction.c:2624
+#: ../src/pk-transaction.c:2705
 msgid "Do not update these packages unless you are sure it is safe to do so."
 msgstr ""
 "প্যাকেজের নিরাপত্তা সম্পর্কের সম্পূর্ণরূপে নিশ্চিত না হলে এই প্যাকেজগুলি "
 "আপডেট না করা উচিত।"
 
-#: ../src/pk-transaction.c:2634
+#: ../src/pk-transaction.c:2715
 msgid "Do not install this package unless you are sure it is safe to do so."
 msgstr ""
 "প্যাকেজের নিরাপত্তা সম্পর্কের সম্পূর্ণরূপে নিশ্চিত না হলে এই প্যাকেজটি "
 "ইনস্টল না করা উচিত।"
 
-#: ../src/pk-transaction.c:2635
+#: ../src/pk-transaction.c:2716
 msgid "Do not install these packages unless you are sure it is safe to do so."
 msgstr ""
 "প্যাকেজের নিরাপত্তা সম্পর্কের সম্পূর্ণরূপে নিশ্চিত না হলে এই প্যাকেজটি আপডেট"
diff --git a/po/ca.po b/po/ca.po
index 0695dfb..3914b2b 100644
--- a/po/ca.po
+++ b/po/ca.po
@@ -2,14 +2,17 @@
 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
 # This file is distributed under the same license as the PACKAGE package.
 # 
-# Richard Hughes <richard at hughsie.com>, 2011
+# Translators:
+# Pau Iranzo <pau at somgnu.cat>, 2009.
+# Pere Argelich <bakidok at gmail.com>, 2008.
+# Richard Hughes <richard at hughsie.com>, 2011.
 msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-04 10:50+0100\n"
-"PO-Revision-Date: 2011-05-04 09:56+0000\n"
-"Last-Translator: hughsie <richard at hughsie.com>\n"
+"POT-Creation-Date: 2011-11-10 19:50+0000\n"
+"PO-Revision-Date: 2011-11-10 19:50+0000\n"
+"Last-Translator: Richard Hughes <richard at hughsie.com>\n"
 "Language-Team: Catalan (http://www.transifex.net/projects/p/freedesktop/team/ca/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -195,7 +198,7 @@ msgstr "Emès"
 
 #. TRANSLATORS: details about the update, date the update was updated
 #. TRANSLATORS: The action of the package, in past tense
-#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:524
+#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:559
 msgid "Updated"
 msgstr "Actualitzat"
 
@@ -285,7 +288,7 @@ msgstr ""
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
 #: ../client/pk-console.c:704
-#: ../contrib/command-not-found/pk-command-not-found.c:639
+#: ../contrib/command-not-found/pk-command-not-found.c:634
 msgid "The transaction failed"
 msgstr "La transacció ha fallat"
 
@@ -337,21 +340,21 @@ msgstr ""
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:866
+#: ../client/pk-console.c:871
 #, c-format
 msgid "This tool could not find any available package: %s"
 msgstr "No s'ha trobat cap paquet disponible: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:894
+#: ../client/pk-console.c:899
 #, c-format
 msgid "This tool could not find the installed package: %s"
 msgstr "No s'han trobat els paquets instal·lats: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:922 ../client/pk-console.c:950
+#: ../client/pk-console.c:927 ../client/pk-console.c:955
 #, c-format
 msgid "This tool could not find the package: %s"
 msgstr "No s'ha trobat el paquet: %s"
@@ -364,227 +367,227 @@ msgstr "No s'ha trobat el paquet: %s"
 #. detailed error follows
 #. TRANSLATORS: The package name was not found in any software sources. The
 #. detailed error follows
-#: ../client/pk-console.c:978 ../client/pk-console.c:1006
-#: ../client/pk-console.c:1034 ../client/pk-console.c:1062
-#: ../client/pk-console.c:1090
+#: ../client/pk-console.c:983 ../client/pk-console.c:1011
+#: ../client/pk-console.c:1039 ../client/pk-console.c:1067
+#: ../client/pk-console.c:1095
 #, c-format
 msgid "This tool could not find all the packages: %s"
 msgstr "No s'han trobat tots els paquets: %s"
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek
 #. without a paddle
-#: ../client/pk-console.c:1119
+#: ../client/pk-console.c:1124
 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:1153
+#: ../client/pk-console.c:1158
 msgid "PackageKit Console Interface"
 msgstr "Interfície de consola de PackageKit"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1155
+#: ../client/pk-console.c:1160
 msgid "Subcommands:"
 msgstr "Subordres:"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was
 #. last executed
-#: ../client/pk-console.c:1235
+#: ../client/pk-console.c:1240
 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 "
 "darrera vegada"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1277 ../client/pk-monitor.c:371
+#: ../client/pk-console.c:1282 ../client/pk-monitor.c:371
 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:1280
+#: ../client/pk-console.c:1285
 msgid "Set the filter, e.g. installed"
 msgstr "Configura el filtre, p.e. instal·lats"
 
 #. TRANSLATORS: command line argument, use a non-standard install prefix
-#: ../client/pk-console.c:1283
+#: ../client/pk-console.c:1288
 msgid "Set the install root, e.g. '/' or '/mnt/ltsp'"
 msgstr ""
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1286
+#: ../client/pk-console.c:1291
 msgid "Exit without waiting for actions to complete"
 msgstr "Surt sense esperar que les accions es completin"
 
 #. command line argument, do we ask questions
-#: ../client/pk-console.c:1289
+#: ../client/pk-console.c:1294
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:525
 msgid "Install the packages without asking for confirmation"
 msgstr ""
 
 #. TRANSLATORS: command line argument, this command is not a priority
-#: ../client/pk-console.c:1292
+#: ../client/pk-console.c:1297
 msgid "Run the command using idle network bandwidth and also using less power"
 msgstr ""
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1295
+#: ../client/pk-console.c:1300
 msgid ""
 "Print to screen a machine readable output, rather than using animated "
 "widgets"
 msgstr ""
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1298
+#: ../client/pk-console.c:1303
 msgid "The maximum metadata cache age. Use -1 for 'never'."
 msgstr ""
 
 #. TRANSLATORS: command line argument, --help
-#: ../client/pk-console.c:1301
+#: ../client/pk-console.c:1306
 msgid "Show help options."
 msgstr ""
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1331
+#: ../client/pk-console.c:1336
 msgid "Failed to parse command line"
 msgstr ""
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1341
+#: ../client/pk-console.c:1346
 msgid "Failed to contact PackageKit"
 msgstr "S'ha produït un error en contactar amb el PackageKit"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1394
+#: ../client/pk-console.c:1399
 msgid "The proxy could not be set"
 msgstr ""
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1406
+#: ../client/pk-console.c:1411
 msgid "The install root could not be set"
 msgstr ""
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1418
+#: ../client/pk-console.c:1423
 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:1437
+#: ../client/pk-console.c:1442
 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:1444 ../client/pk-console.c:1456
-#: ../client/pk-console.c:1468 ../client/pk-console.c:1480
+#: ../client/pk-console.c:1449 ../client/pk-console.c:1461
+#: ../client/pk-console.c:1473 ../client/pk-console.c:1485
 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:1490
+#: ../client/pk-console.c:1495
 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:1496
+#: ../client/pk-console.c:1501
 msgid "A package name to install is required"
 msgstr "Es requereix un nom de paquet per instal·lar"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1505
+#: ../client/pk-console.c:1510
 msgid "A filename to install is required"
 msgstr "Es requreix un nom de fitxer per instal·lar"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1516
+#: ../client/pk-console.c:1521
 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:1527
+#: ../client/pk-console.c:1532
 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:1536
+#: ../client/pk-console.c:1541
 msgid "A destination directory and the package names to download are required"
 msgstr ""
 "Us cal especificar el directori destí i els noms dels paquets per a la "
 "baixada"
 
 #. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:1543
+#: ../client/pk-console.c:1548
 msgid "Directory not found"
 msgstr "No s'ha trobat el directori"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1552
+#: ../client/pk-console.c:1557
 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:1563
+#: ../client/pk-console.c:1568
 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:1584
+#: ../client/pk-console.c:1589
 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:1595 ../client/pk-console.c:1606
+#: ../client/pk-console.c:1600 ../client/pk-console.c:1611
 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:1617
+#: ../client/pk-console.c:1622
 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:1634
+#: ../client/pk-console.c:1639
 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:1641
+#: ../client/pk-console.c:1646
 msgid "A correct role is required"
 msgstr "Es requereix un rol correcte"
 
 #. 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:1651 ../client/pk-console.c:1665
-#: ../client/pk-console.c:1674 ../client/pk-console.c:1694
-#: ../client/pk-console.c:1703 ../client/pk-generate-pack.c:314
+#: ../client/pk-console.c:1656 ../client/pk-console.c:1670
+#: ../client/pk-console.c:1679 ../client/pk-console.c:1699
+#: ../client/pk-console.c:1708 ../client/pk-generate-pack.c:314
 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:1683
+#: ../client/pk-console.c:1688
 msgid "A package provide string is required"
 msgstr "Es requreix una cadena de proveïdor de paquet"
 
 #. TRANSLATORS: The user did not provide a distro name
-#: ../client/pk-console.c:1727
+#: ../client/pk-console.c:1732
 msgid "A distribution name is required"
 msgstr ""
 
 #. TRANSLATORS: The user did not provide an upgrade type
-#: ../client/pk-console.c:1733
+#: ../client/pk-console.c:1738
 msgid "An upgrade type is required, e.g. 'minimal', 'default' or 'complete'"
 msgstr ""
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command
 #. line
-#: ../client/pk-console.c:1783
+#: ../client/pk-console.c:1788
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "L'opció '%s' no està disponible"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:1793
+#: ../client/pk-console.c:1798
 msgid "Command failed"
 msgstr "Ha fallat l'ordre"
 
@@ -721,159 +724,154 @@ msgid "PackageKit Monitor"
 msgstr "Monitor de PackageKit"
 
 #. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/pk-plugin-install.c:499
+#: ../contrib/browser-plugin/pk-plugin-install.c:503
 msgid "Getting package information..."
 msgstr "S'està obtenint informació dels paquets..."
 
 #. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/pk-plugin-install.c:505
+#: ../contrib/browser-plugin/pk-plugin-install.c:509
 #, c-format
 msgid "Run %s"
 msgstr "Executa %s"
 
 #. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:511
+#: ../contrib/browser-plugin/pk-plugin-install.c:515
 msgid "Installed version"
 msgstr "Versió instal·lada"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:519
+#: ../contrib/browser-plugin/pk-plugin-install.c:523
 #, 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:525
+#: ../contrib/browser-plugin/pk-plugin-install.c:529
 msgid "Run now"
 msgstr "Executa ara"
 
 #. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:531
+#: ../contrib/browser-plugin/pk-plugin-install.c:535
 #, 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:537
+#: ../contrib/browser-plugin/pk-plugin-install.c:541
 #, c-format
 msgid "Install %s now"
 msgstr "Instal·la %s ara"
 
 #. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:540
+#: ../contrib/browser-plugin/pk-plugin-install.c:544
 msgid "Version"
 msgstr "Versió"
 
 #. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/pk-plugin-install.c:545
+#: ../contrib/browser-plugin/pk-plugin-install.c:549
 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:550
+#: ../contrib/browser-plugin/pk-plugin-install.c:554
 msgid "Installing..."
 msgstr "S'està instal·lant..."
 
 #. TRANSLATORS: downloading repo data so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:366
+#: ../contrib/command-not-found/pk-command-not-found.c:363
 msgid "Downloading details about the software sources."
 msgstr "S'estan baixant els detalls de les fonts de programari."
 
 #. TRANSLATORS: downloading file lists so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:370
+#: ../contrib/command-not-found/pk-command-not-found.c:367
 msgid "Downloading filelists (this may take some time to complete)."
 msgstr "S'està baixant la llista de fitxers (pot trigar una mica)."
 
 #. TRANSLATORS: waiting for native lock
-#: ../contrib/command-not-found/pk-command-not-found.c:374
+#: ../contrib/command-not-found/pk-command-not-found.c:371
 msgid "Waiting for package manager lock."
 msgstr "S'està esperant al bloqueig del gestor de paquets."
 
 #. TRANSLATORS: loading package cache so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:378
+#: ../contrib/command-not-found/pk-command-not-found.c:375
 msgid "Loading list of packages."
 msgstr "S'està baixant la llista de paquets."
 
 #. TRANSLATORS: we failed to find the package, this shouldn't happen
-#: ../contrib/command-not-found/pk-command-not-found.c:444
+#: ../contrib/command-not-found/pk-command-not-found.c:439
 msgid "Failed to search for file"
 msgstr "S'ha produït un error en cercar el fitxer"
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
-#: ../contrib/command-not-found/pk-command-not-found.c:456
+#: ../contrib/command-not-found/pk-command-not-found.c:451
 msgid "Getting the list of files failed"
 msgstr ""
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:602
+#: ../contrib/command-not-found/pk-command-not-found.c:597
 msgid "Failed to launch:"
 msgstr "S'ha produït un error en executar:"
 
 #. TRANSLATORS: we failed to install the package
-#: ../contrib/command-not-found/pk-command-not-found.c:630
+#: ../contrib/command-not-found/pk-command-not-found.c:625
 msgid "Failed to install packages"
 msgstr ""
 
-#. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/command-not-found/pk-command-not-found.c:706
-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. NOTE: this is lowercase to mimic
 #. * the style of bash itself -- apologies
-#: ../contrib/command-not-found/pk-command-not-found.c:741
+#: ../contrib/command-not-found/pk-command-not-found.c:723
 msgid "command not found"
 msgstr ""
 
 #. TRANSLATORS: tell the user what we think the command is
-#: ../contrib/command-not-found/pk-command-not-found.c:759
+#: ../contrib/command-not-found/pk-command-not-found.c:741
 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:773
+#: ../contrib/command-not-found/pk-command-not-found.c:755
 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:787
-#: ../contrib/command-not-found/pk-command-not-found.c:796
+#: ../contrib/command-not-found/pk-command-not-found.c:769
+#: ../contrib/command-not-found/pk-command-not-found.c:778
 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:803
+#: ../contrib/command-not-found/pk-command-not-found.c:785
 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:821
+#: ../contrib/command-not-found/pk-command-not-found.c:803
 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:828
+#: ../contrib/command-not-found/pk-command-not-found.c:810
 #, 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:855
+#: ../contrib/command-not-found/pk-command-not-found.c:837
 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:865
+#: ../contrib/command-not-found/pk-command-not-found.c:847
 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:874
+#: ../contrib/command-not-found/pk-command-not-found.c:856
 msgid "Please choose a package to install"
 msgstr "Seleccioneu el paquet a instal·lar"
 
@@ -1047,7 +1045,7 @@ msgstr "No s'instal·laran paquets en el mode simulat"
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
 #. TRANSLATORS: transaction state, installing packages
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:860
-#: ../lib/packagekit-glib2/pk-console-shared.c:296
+#: ../lib/packagekit-glib2/pk-console-shared.c:331
 #, c-format
 msgid "Installing packages"
 msgstr "S'estan instal·lant els paquets"
@@ -1181,474 +1179,474 @@ msgstr "Llista de paquets de Packagekit"
 msgid "PackageKit Service Pack"
 msgstr "Service Pack de PackageKit"
 
-#: ../lib/packagekit-glib2/pk-console-shared.c:64
+#: ../lib/packagekit-glib2/pk-console-shared.c:65
 #, c-format
 msgid "Please enter a number from 1 to %i: "
 msgstr "Introduïu un número de l'1 fins al %i:"
 
 #. TRANSLATORS: more than one package could be found that matched, to follow
 #. is a list of possible packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:198
+#: ../lib/packagekit-glib2/pk-console-shared.c:233
 msgid "More than one package matches:"
 msgstr "S'han trobat més d'un paquet que coincideixen amb:"
 
 #. TRANSLATORS: This finds out which package in the list to use
-#: ../lib/packagekit-glib2/pk-console-shared.c:209
+#: ../lib/packagekit-glib2/pk-console-shared.c:244
 msgid "Please choose the correct package: "
 msgstr "Escolliu el paquet correcte:"
 
 #. TRANSLATORS: This is when the transaction status is not known
-#: ../lib/packagekit-glib2/pk-console-shared.c:264
+#: ../lib/packagekit-glib2/pk-console-shared.c:299
 msgid "Unknown state"
 msgstr "Estat desconegut"
 
 #. TRANSLATORS: transaction state, the daemon is in the process of starting
-#: ../lib/packagekit-glib2/pk-console-shared.c:268
+#: ../lib/packagekit-glib2/pk-console-shared.c:303
 msgid "Starting"
 msgstr "S'està iniciant"
 
 #. TRANSLATORS: transaction state, the transaction is waiting for another to
 #. complete
-#: ../lib/packagekit-glib2/pk-console-shared.c:272
+#: ../lib/packagekit-glib2/pk-console-shared.c:307
 msgid "Waiting in queue"
 msgstr "S'està esperant a la cua"
 
 #. TRANSLATORS: transaction state, just started
-#: ../lib/packagekit-glib2/pk-console-shared.c:276
+#: ../lib/packagekit-glib2/pk-console-shared.c:311
 msgid "Running"
 msgstr "S'està executant"
 
 #. TRANSLATORS: transaction state, is querying data
-#: ../lib/packagekit-glib2/pk-console-shared.c:280
+#: ../lib/packagekit-glib2/pk-console-shared.c:315
 msgid "Querying"
 msgstr "S'està consultant"
 
 #. TRANSLATORS: transaction state, getting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:284
+#: ../lib/packagekit-glib2/pk-console-shared.c:319
 msgid "Getting information"
 msgstr "S'està obtenint informació"
 
 #. TRANSLATORS: transaction state, removing packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:288
+#: ../lib/packagekit-glib2/pk-console-shared.c:323
 msgid "Removing packages"
 msgstr "S'està suprimint els paquets"
 
 #. TRANSLATORS: transaction state, downloading package files
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:292
-#: ../lib/packagekit-glib2/pk-console-shared.c:670
+#: ../lib/packagekit-glib2/pk-console-shared.c:327
+#: ../lib/packagekit-glib2/pk-console-shared.c:705
 msgid "Downloading packages"
 msgstr "S'estan baixant els paquets"
 
 #. TRANSLATORS: transaction state, refreshing internal lists
-#: ../lib/packagekit-glib2/pk-console-shared.c:300
+#: ../lib/packagekit-glib2/pk-console-shared.c:335
 msgid "Refreshing software list"
 msgstr "S'està refrescant la llista de programari"
 
 #. TRANSLATORS: transaction state, installing updates
-#: ../lib/packagekit-glib2/pk-console-shared.c:304
+#: ../lib/packagekit-glib2/pk-console-shared.c:339
 msgid "Installing updates"
 msgstr "S'estan instal·lant les actualitzacions"
 
 #. TRANSLATORS: transaction state, removing old packages, and cleaning config
 #. files
-#: ../lib/packagekit-glib2/pk-console-shared.c:308
+#: ../lib/packagekit-glib2/pk-console-shared.c:343
 msgid "Cleaning up packages"
 msgstr "S'està netejant els paquets"
 
 #. TRANSLATORS: transaction state, obsoleting old packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:312
+#: ../lib/packagekit-glib2/pk-console-shared.c:347
 msgid "Obsoleting packages"
 msgstr "S'està descartant els paquets vells"
 
 #. TRANSLATORS: transaction state, checking the transaction before we do it
-#: ../lib/packagekit-glib2/pk-console-shared.c:316
+#: ../lib/packagekit-glib2/pk-console-shared.c:351
 msgid "Resolving dependencies"
 msgstr "S'estan resolent les dependències"
 
 #. TRANSLATORS: transaction state, checking if we have all the security keys
 #. for the operation
-#: ../lib/packagekit-glib2/pk-console-shared.c:320
+#: ../lib/packagekit-glib2/pk-console-shared.c:355
 msgid "Checking signatures"
 msgstr "S'estan comprovant les firmes"
 
 #. TRANSLATORS: transaction state, when we return to a previous system state
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:324
-#: ../lib/packagekit-glib2/pk-console-shared.c:630
+#: ../lib/packagekit-glib2/pk-console-shared.c:359
+#: ../lib/packagekit-glib2/pk-console-shared.c:665
 msgid "Rolling back"
 msgstr "S'estan desfent els canvis"
 
 #. TRANSLATORS: transaction state, when we're doing a test transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:328
+#: ../lib/packagekit-glib2/pk-console-shared.c:363
 msgid "Testing changes"
 msgstr "S'estan provant els canvis"
 
 #. TRANSLATORS: transaction state, when we're writing to the system package
 #. database
-#: ../lib/packagekit-glib2/pk-console-shared.c:332
+#: ../lib/packagekit-glib2/pk-console-shared.c:367
 msgid "Committing changes"
 msgstr "S'estan aplicant els canvis"
 
 #. TRANSLATORS: transaction state, requesting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:336
+#: ../lib/packagekit-glib2/pk-console-shared.c:371
 msgid "Requesting data"
 msgstr "S'està demanant les dades"
 
 #. TRANSLATORS: transaction state, all done!
-#: ../lib/packagekit-glib2/pk-console-shared.c:340
+#: ../lib/packagekit-glib2/pk-console-shared.c:375
 msgid "Finished"
 msgstr "S'ha completat"
 
 #. TRANSLATORS: transaction state, in the process of cancelling
-#: ../lib/packagekit-glib2/pk-console-shared.c:344
+#: ../lib/packagekit-glib2/pk-console-shared.c:379
 msgid "Cancelling"
 msgstr "S'està cancel·lant"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:348
+#: ../lib/packagekit-glib2/pk-console-shared.c:383
 msgid "Downloading repository information"
 msgstr "S'està baixant la informació dels repositoris"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:352
+#: ../lib/packagekit-glib2/pk-console-shared.c:387
 msgid "Downloading list of packages"
 msgstr "S'està baixant la llista de paquets"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:356
+#: ../lib/packagekit-glib2/pk-console-shared.c:391
 msgid "Downloading file lists"
 msgstr "S'està baixant la llista de fitxers"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:360
+#: ../lib/packagekit-glib2/pk-console-shared.c:395
 msgid "Downloading lists of changes"
 msgstr "S'està baixant la llista de canvis"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:364
+#: ../lib/packagekit-glib2/pk-console-shared.c:399
 msgid "Downloading groups"
 msgstr "S'estan baixant els grups"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:368
+#: ../lib/packagekit-glib2/pk-console-shared.c:403
 msgid "Downloading update information"
 msgstr "S'està baixant la informació d'actualitzacions"
 
 #. TRANSLATORS: transaction state, repackaging delta files
-#: ../lib/packagekit-glib2/pk-console-shared.c:372
+#: ../lib/packagekit-glib2/pk-console-shared.c:407
 msgid "Repackaging files"
 msgstr "S'estan reempaquetant els fitxers"
 
 #. TRANSLATORS: transaction state, loading databases
-#: ../lib/packagekit-glib2/pk-console-shared.c:376
+#: ../lib/packagekit-glib2/pk-console-shared.c:411
 msgid "Loading cache"
 msgstr "S'està carregant la memòria cau"
 
 #. TRANSLATORS: transaction state, scanning for running processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:380
+#: ../lib/packagekit-glib2/pk-console-shared.c:415
 msgid "Scanning applications"
 msgstr "S'estan escanejant les aplicacions"
 
 #. TRANSLATORS: transaction state, generating a list of packages installed on
 #. the system
-#: ../lib/packagekit-glib2/pk-console-shared.c:384
+#: ../lib/packagekit-glib2/pk-console-shared.c:419
 msgid "Generating package lists"
 msgstr "S'estan generant les llistes de paquets"
 
 #. TRANSLATORS: transaction state, when we're waiting for the native tools to
 #. exit
-#: ../lib/packagekit-glib2/pk-console-shared.c:388
+#: ../lib/packagekit-glib2/pk-console-shared.c:423
 msgid "Waiting for package manager lock"
 msgstr "S'està esperant al bloqueig del gestor de paquets"
 
 #. TRANSLATORS: transaction state, waiting for user to type in a password
-#: ../lib/packagekit-glib2/pk-console-shared.c:392
+#: ../lib/packagekit-glib2/pk-console-shared.c:427
 msgid "Waiting for authentication"
 msgstr "S'està esperant a autenticar"
 
 #. TRANSLATORS: transaction state, we are updating the list of processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:396
+#: ../lib/packagekit-glib2/pk-console-shared.c:431
 msgid "Updating running applications"
 msgstr "S'està actualitzant les aplicacions en execució"
 
 #. TRANSLATORS: transaction state, we are checking executable files currently
 #. in use
-#: ../lib/packagekit-glib2/pk-console-shared.c:400
+#: ../lib/packagekit-glib2/pk-console-shared.c:435
 msgid "Checking applications in use"
 msgstr "S'està comprovant les aplicacions en ús"
 
 #. TRANSLATORS: transaction state, we are checking for libraries currently in
 #. use
-#: ../lib/packagekit-glib2/pk-console-shared.c:404
+#: ../lib/packagekit-glib2/pk-console-shared.c:439
 msgid "Checking libraries in use"
 msgstr "S'està comprovant les biblioteques en ús"
 
 #. TRANSLATORS: transaction state, we are copying package files before or
 #. after the transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:408
+#: ../lib/packagekit-glib2/pk-console-shared.c:443
 msgid "Copying files"
 msgstr ""
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:426
+#: ../lib/packagekit-glib2/pk-console-shared.c:461
 msgid "Trivial"
 msgstr "Trivial"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:430
+#: ../lib/packagekit-glib2/pk-console-shared.c:465
 msgid "Normal"
 msgstr "Normal"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:434
+#: ../lib/packagekit-glib2/pk-console-shared.c:469
 msgid "Important"
 msgstr "Important"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:438
+#: ../lib/packagekit-glib2/pk-console-shared.c:473
 msgid "Security"
 msgstr "Seguretat"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:442
+#: ../lib/packagekit-glib2/pk-console-shared.c:477
 msgid "Bug fix "
 msgstr "Correcció d'errors "
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:446
+#: ../lib/packagekit-glib2/pk-console-shared.c:481
 msgid "Enhancement"
 msgstr "Millora"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:450
+#: ../lib/packagekit-glib2/pk-console-shared.c:485
 msgid "Blocked"
 msgstr "Blocat"
 
 #. TRANSLATORS: The state of a package
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:455
-#: ../lib/packagekit-glib2/pk-console-shared.c:528
+#: ../lib/packagekit-glib2/pk-console-shared.c:490
+#: ../lib/packagekit-glib2/pk-console-shared.c:563
 msgid "Installed"
 msgstr "Instal·lat"
 
 #. TRANSLATORS: The state of a package, i.e. not installed
-#: ../lib/packagekit-glib2/pk-console-shared.c:460
+#: ../lib/packagekit-glib2/pk-console-shared.c:495
 msgid "Available"
 msgstr "Disponible"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:478
+#: ../lib/packagekit-glib2/pk-console-shared.c:513
 msgid "Downloading"
 msgstr "S'està baixant"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:482
+#: ../lib/packagekit-glib2/pk-console-shared.c:517
 msgid "Updating"
 msgstr "S'està actualitzant"
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:486
-#: ../lib/packagekit-glib2/pk-console-shared.c:606
+#: ../lib/packagekit-glib2/pk-console-shared.c:521
+#: ../lib/packagekit-glib2/pk-console-shared.c:641
 msgid "Installing"
 msgstr "S'està instal·lant"
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:490
-#: ../lib/packagekit-glib2/pk-console-shared.c:602
+#: ../lib/packagekit-glib2/pk-console-shared.c:525
+#: ../lib/packagekit-glib2/pk-console-shared.c:637
 msgid "Removing"
 msgstr "S'està suprimint"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:494
+#: ../lib/packagekit-glib2/pk-console-shared.c:529
 msgid "Cleaning up"
 msgstr "S'està netejant"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:498
+#: ../lib/packagekit-glib2/pk-console-shared.c:533
 msgid "Obsoleting"
 msgstr "S'està fent obsolet"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:502
+#: ../lib/packagekit-glib2/pk-console-shared.c:537
 msgid "Reinstalling"
 msgstr "S'està reinstal·lant"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:520
+#: ../lib/packagekit-glib2/pk-console-shared.c:555
 msgid "Downloaded"
 msgstr "Baixat"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:532
+#: ../lib/packagekit-glib2/pk-console-shared.c:567
 msgid "Removed"
 msgstr "Suprimit"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:536
+#: ../lib/packagekit-glib2/pk-console-shared.c:571
 msgid "Cleaned up"
 msgstr "Netejat"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:540
+#: ../lib/packagekit-glib2/pk-console-shared.c:575
 msgid "Obsoleted"
 msgstr "Obsolet"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:544
+#: ../lib/packagekit-glib2/pk-console-shared.c:579
 msgid "Reinstalled"
 msgstr "Reinstal·lat"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:562
+#: ../lib/packagekit-glib2/pk-console-shared.c:597
 msgid "Unknown role type"
 msgstr "Tipus de rol desconegut"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:566
+#: ../lib/packagekit-glib2/pk-console-shared.c:601
 msgid "Getting dependencies"
 msgstr "S'estan obtenint les dependències"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:570
+#: ../lib/packagekit-glib2/pk-console-shared.c:605
 msgid "Getting update details"
 msgstr "S'està obtenint els detalls de l'actualització"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:574
+#: ../lib/packagekit-glib2/pk-console-shared.c:609
 msgid "Getting details"
 msgstr "S'està obtenint els detalls"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:578
+#: ../lib/packagekit-glib2/pk-console-shared.c:613
 msgid "Getting requires"
 msgstr "S'està obtenint els requeriments"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:582
+#: ../lib/packagekit-glib2/pk-console-shared.c:617
 msgid "Getting updates"
 msgstr "S'està obtenint les actualitzacions"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:586
+#: ../lib/packagekit-glib2/pk-console-shared.c:621
 msgid "Searching by details"
 msgstr "S'està cercant pels detalls"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:590
+#: ../lib/packagekit-glib2/pk-console-shared.c:625
 msgid "Searching by file"
 msgstr "S'est cercant pels fitxers"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:594
+#: ../lib/packagekit-glib2/pk-console-shared.c:629
 msgid "Searching groups"
 msgstr "S'està cercant els grups"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:598
+#: ../lib/packagekit-glib2/pk-console-shared.c:633
 msgid "Searching by name"
 msgstr "S'està cercant pel nom"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:610
+#: ../lib/packagekit-glib2/pk-console-shared.c:645
 msgid "Installing files"
 msgstr "S'està instal·lant els fitxers"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:614
+#: ../lib/packagekit-glib2/pk-console-shared.c:649
 msgid "Refreshing cache"
 msgstr "S'està refrescant la memòria cau"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:618
+#: ../lib/packagekit-glib2/pk-console-shared.c:653
 msgid "Updating packages"
 msgstr "S'està actualitzant els paquets"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:622
+#: ../lib/packagekit-glib2/pk-console-shared.c:657
 msgid "Updating system"
 msgstr "S'està actualitzant el sistema"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:626
+#: ../lib/packagekit-glib2/pk-console-shared.c:661
 msgid "Canceling"
 msgstr "S'està cancel·lant"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:634
+#: ../lib/packagekit-glib2/pk-console-shared.c:669
 msgid "Getting repositories"
 msgstr "S'està obtenint els repositoris"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:638
+#: ../lib/packagekit-glib2/pk-console-shared.c:673
 msgid "Enabling repository"
 msgstr "S'està habilitant el repositori"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:642
+#: ../lib/packagekit-glib2/pk-console-shared.c:677
 msgid "Setting data"
 msgstr "S'està establint les dades"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:646
+#: ../lib/packagekit-glib2/pk-console-shared.c:681
 msgid "Resolving"
 msgstr "S'està resolent"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:650
+#: ../lib/packagekit-glib2/pk-console-shared.c:685
 msgid "Getting file list"
 msgstr "S'està obtenint la llista de fitxers"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:654
+#: ../lib/packagekit-glib2/pk-console-shared.c:689
 msgid "Getting provides"
 msgstr "S'està obtenint allò proporcionat"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:658
+#: ../lib/packagekit-glib2/pk-console-shared.c:693
 msgid "Installing signature"
 msgstr "S'està instal·lant la signatura"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:662
+#: ../lib/packagekit-glib2/pk-console-shared.c:697
 msgid "Getting packages"
 msgstr "S'està obtenint els paquets"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:666
+#: ../lib/packagekit-glib2/pk-console-shared.c:701
 msgid "Accepting EULA"
 msgstr "S'està acceptant l'EULA"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:674
+#: ../lib/packagekit-glib2/pk-console-shared.c:709
 msgid "Getting upgrades"
 msgstr "S'està obtenint les actualitzacions"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:678
+#: ../lib/packagekit-glib2/pk-console-shared.c:713
 msgid "Getting categories"
 msgstr "S'està obtenint les categories"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:682
+#: ../lib/packagekit-glib2/pk-console-shared.c:717
 msgid "Getting transactions"
 msgstr "S'està obtenint les transaccions"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:686
-#: ../lib/packagekit-glib2/pk-console-shared.c:690
+#: ../lib/packagekit-glib2/pk-console-shared.c:721
+#: ../lib/packagekit-glib2/pk-console-shared.c:725
 msgid "Simulating install"
 msgstr "S'està simulant la instal·lació"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:694
+#: ../lib/packagekit-glib2/pk-console-shared.c:729
 msgid "Simulating remove"
 msgstr "S'està simulant la supressió"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:698
+#: ../lib/packagekit-glib2/pk-console-shared.c:733
 msgid "Simulating update"
 msgstr "S'està simulant les actualitzacions"
 
@@ -1798,13 +1796,19 @@ msgstr "S'han de reinstal·lar els següents paquets:"
 msgid "The following packages have to be downgraded:"
 msgstr "S'ha de desfer l'actualització dels següents paquets:"
 
+#. TRANSLATORS: When processing, untrusted and non-verified packages may be
+#. encountered
+#: ../lib/packagekit-glib2/pk-task-text.c:325
+msgid "The following packages are untrusted:"
+msgstr ""
+
 #. TRANSLATORS: ask the user if the proposed changes are okay
-#: ../lib/packagekit-glib2/pk-task-text.c:380
+#: ../lib/packagekit-glib2/pk-task-text.c:385
 msgid "Proceed with changes?"
 msgstr "Voleu aplicar els canvis?"
 
 #. TRANSLATORS: tell the user we didn't do anything
-#: ../lib/packagekit-glib2/pk-task-text.c:385
+#: ../lib/packagekit-glib2/pk-task-text.c:390
 msgid "The transaction did not proceed."
 msgstr "No s'ha continuat amb la transacció."
 
@@ -2013,99 +2017,68 @@ msgstr "Actualitza paquets"
 msgid "Upgrade System"
 msgstr ""
 
-#. TRANSLATORS: failed due to DBus security
-#: ../src/pk-main.c:91
-msgid "Startup failed due to security policies on this machine."
-msgstr ""
-"Ha fallat l'inici degut a les polítiques de seguretat d'aquest sistema."
-
-#. TRANSLATORS: only two ways this can fail...
-#: ../src/pk-main.c:93
-msgid "This can happen for two reasons:"
-msgstr "Pot succeir per dos motius:"
-
-#. TRANSLATORS: only allowed to be owned by root
-#: ../src/pk-main.c:95
-msgid "The correct user is not launching the executable (usually root)"
-msgstr "No s'està executant amb l'usuari correcte (normalment l'usuari root)"
-
-#. TRANSLATORS: or we are installed in a prefix
-#: ../src/pk-main.c:97
-msgid ""
-"The org.freedesktop.PackageKit.conf file is not installed in the system "
-"directory:"
-msgstr ""
-"El fitxer org.freedesktop.PackageKit.conf no està instal·lat al directori "
-"del sistema:"
-
 #. TRANSLATORS: a backend is the system package tool, e.g. yum, apt
-#: ../src/pk-main.c:223
+#: ../src/pk-main.c:149
 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:226
+#: ../src/pk-main.c:152
 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:229
+#: ../src/pk-main.c:155
 msgid "Disable the idle timer"
 msgstr "Inhabilita el temporitzador de repós"
 
 #. TRANSLATORS: show version
-#: ../src/pk-main.c:232
+#: ../src/pk-main.c:158
 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:235
+#: ../src/pk-main.c:161
 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:238
+#: ../src/pk-main.c:164
 msgid "Exit after the engine has loaded"
 msgstr "Surt després que el motor s'hagi carregat"
 
+#. TRANSLATORS: don't unset environment variables, used for debugging
+#: ../src/pk-main.c:167
+msgid "Don't clear environment on startup"
+msgstr ""
+
 #. TRANSLATORS: describing the service that is running
-#: ../src/pk-main.c:253
+#: ../src/pk-main.c:179
 msgid "PackageKit service"
 msgstr "servei PackageKit"
 
-#. TRANSLATORS: fatal error, dbus is not running
-#: ../src/pk-main.c:298
-msgid "Cannot connect to the system bus"
-msgstr "No s'ha pogut connectar amb el bus del sistema"
-
-#: ../src/pk-main.c:344
+#: ../src/pk-main.c:253
 msgid "Failed to load any of the specified backends:"
 msgstr ""
 
-#. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error
-#. follows
-#: ../src/pk-main.c:358
-msgid "Error trying to start:"
-msgstr "Ha fallat en intentar executar:"
-
 #. TRANSLATORS: is not GPG signed
-#: ../src/pk-transaction.c:2611 ../src/pk-transaction.c:2618
+#: ../src/pk-transaction.c:2696
 msgid "The software is not from a trusted source."
 msgstr "El programari no prové d'una font de confiança."
 
-#: ../src/pk-transaction.c:2623
+#: ../src/pk-transaction.c:2704
 msgid "Do not update this package unless you are sure it is safe to do so."
 msgstr "Actualitzeu aquest paquet només si esteu segurs que cal fer-ho."
 
-#: ../src/pk-transaction.c:2624
+#: ../src/pk-transaction.c:2705
 msgid "Do not update these packages unless you are sure it is safe to do so."
 msgstr "Actualitzeu aquests paquets només si esteu segurs que cal fer-ho."
 
-#: ../src/pk-transaction.c:2634
+#: ../src/pk-transaction.c:2715
 msgid "Do not install this package unless you are sure it is safe to do so."
 msgstr "Instal·leu aquest paquet només si esteu segurs que cal fer-ho."
 
-#: ../src/pk-transaction.c:2635
+#: ../src/pk-transaction.c:2716
 msgid "Do not install these packages unless you are sure it is safe to do so."
 msgstr "Instal·leu aquests paquets només si esteu segurs que cal fer-ho."
 
diff --git a/po/da.po b/po/da.po
index 9b4ff86..d4e911b 100644
--- a/po/da.po
+++ b/po/da.po
@@ -2,15 +2,16 @@
 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
 # This file is distributed under the same license as the PACKAGE package.
 # 
-# Kris Thomsen <lakristho at gmail.com>, 2011
-# Richard Hughes <richard at hughsie.com>, 2011
+# Translators:
+# Kris Thomsen <lakristho at gmail.com>, 2009, 2010, 2011.
+# Richard Hughes <richard at hughsie.com>, 2011.
 msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-04 10:50+0100\n"
-"PO-Revision-Date: 2011-05-04 09:56+0000\n"
-"Last-Translator: hughsie <richard at hughsie.com>\n"
+"POT-Creation-Date: 2011-11-10 19:50+0000\n"
+"PO-Revision-Date: 2011-12-23 23:38+0000\n"
+"Last-Translator: Kris Thomsen <lakristho at gmail.com>\n"
 "Language-Team: Danish (http://www.transifex.net/projects/p/freedesktop/team/da/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -196,7 +197,7 @@ msgstr "Udgivet"
 
 #. TRANSLATORS: details about the update, date the update was updated
 #. TRANSLATORS: The action of the package, in past tense
-#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:524
+#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:559
 msgid "Updated"
 msgstr "Opdateret"
 
@@ -286,7 +287,7 @@ msgstr "Der er ingen pakker at opdatere."
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
 #: ../client/pk-console.c:704
-#: ../contrib/command-not-found/pk-command-not-found.c:639
+#: ../contrib/command-not-found/pk-command-not-found.c:634
 msgid "The transaction failed"
 msgstr "Overførslen kunne ikke gennemføres"
 
@@ -340,21 +341,21 @@ msgstr ""
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:866
+#: ../client/pk-console.c:871
 #, c-format
 msgid "This tool could not find any available package: %s"
 msgstr "Dette værktøj kunne ikke finde nogen tilgængelig pakke: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:894
+#: ../client/pk-console.c:899
 #, c-format
 msgid "This tool could not find the installed package: %s"
 msgstr "Dette værktøj kunne ikke finde den installerede pakke: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:922 ../client/pk-console.c:950
+#: ../client/pk-console.c:927 ../client/pk-console.c:955
 #, c-format
 msgid "This tool could not find the package: %s"
 msgstr "Dette værktøj kunne ikke finde pakken: %s"
@@ -367,70 +368,70 @@ msgstr "Dette værktøj kunne ikke finde pakken: %s"
 #. detailed error follows
 #. TRANSLATORS: The package name was not found in any software sources. The
 #. detailed error follows
-#: ../client/pk-console.c:978 ../client/pk-console.c:1006
-#: ../client/pk-console.c:1034 ../client/pk-console.c:1062
-#: ../client/pk-console.c:1090
+#: ../client/pk-console.c:983 ../client/pk-console.c:1011
+#: ../client/pk-console.c:1039 ../client/pk-console.c:1067
+#: ../client/pk-console.c:1095
 #, c-format
 msgid "This tool could not find all the packages: %s"
 msgstr "Dette værktøj kunne ikke finde alle pakkerne: %s"
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek
 #. without a paddle
-#: ../client/pk-console.c:1119
+#: ../client/pk-console.c:1124
 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:1153
+#: ../client/pk-console.c:1158
 msgid "PackageKit Console Interface"
 msgstr "PackageKit konsolgrænseflade"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1155
+#: ../client/pk-console.c:1160
 msgid "Subcommands:"
 msgstr "Underkommandoer:"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was
 #. last executed
-#: ../client/pk-console.c:1235
+#: ../client/pk-console.c:1240
 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: command line argument, just show the version string
-#: ../client/pk-console.c:1277 ../client/pk-monitor.c:371
+#: ../client/pk-console.c:1282 ../client/pk-monitor.c:371
 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:1280
+#: ../client/pk-console.c:1285
 msgid "Set the filter, e.g. installed"
 msgstr "Sæt filteret, f.eks. installeret"
 
 #. TRANSLATORS: command line argument, use a non-standard install prefix
-#: ../client/pk-console.c:1283
+#: ../client/pk-console.c:1288
 msgid "Set the install root, e.g. '/' or '/mnt/ltsp'"
 msgstr "Sæt installationsroden, f.eks. \"/\" eller \"/mnt/ltsp\""
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1286
+#: ../client/pk-console.c:1291
 msgid "Exit without waiting for actions to complete"
 msgstr "Afslut uden at vente på at handlingerne færdiggøres"
 
 #. command line argument, do we ask questions
-#: ../client/pk-console.c:1289
+#: ../client/pk-console.c:1294
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:525
 msgid "Install the packages without asking for confirmation"
 msgstr "Installér pakkerne uden at spørge efter bekræftelse"
 
 #. TRANSLATORS: command line argument, this command is not a priority
-#: ../client/pk-console.c:1292
+#: ../client/pk-console.c:1297
 msgid "Run the command using idle network bandwidth and also using less power"
 msgstr ""
 "Kør kommandoen ved at bruge lav netværksbåndbredde, hvilket bruger mindre "
 "strøm"
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1295
+#: ../client/pk-console.c:1300
 msgid ""
 "Print to screen a machine readable output, rather than using animated "
 "widgets"
@@ -439,143 +440,143 @@ msgstr ""
 "widgets"
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1298
+#: ../client/pk-console.c:1303
 msgid "The maximum metadata cache age. Use -1 for 'never'."
 msgstr "Maksimumalderen for metadatamellemlager. Brug -1 for \"aldrig\"."
 
 #. TRANSLATORS: command line argument, --help
-#: ../client/pk-console.c:1301
+#: ../client/pk-console.c:1306
 msgid "Show help options."
-msgstr ""
+msgstr "Vise hjælpeindstillinger."
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1331
+#: ../client/pk-console.c:1336
 msgid "Failed to parse command line"
-msgstr ""
+msgstr "Kunne ikke fortolke kommandolinje"
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1341
+#: ../client/pk-console.c:1346
 msgid "Failed to contact PackageKit"
 msgstr "Kunne ikke kontakte PackageKit"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1394
+#: ../client/pk-console.c:1399
 msgid "The proxy could not be set"
 msgstr "Denne proxy kunne ikke blive sat"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1406
+#: ../client/pk-console.c:1411
 msgid "The install root could not be set"
 msgstr "Installationsroden ikke blive sat"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1418
+#: ../client/pk-console.c:1423
 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:1437
+#: ../client/pk-console.c:1442
 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:1444 ../client/pk-console.c:1456
-#: ../client/pk-console.c:1468 ../client/pk-console.c:1480
+#: ../client/pk-console.c:1449 ../client/pk-console.c:1461
+#: ../client/pk-console.c:1473 ../client/pk-console.c:1485
 msgid "A search term is required"
 msgstr "En søgeterm kræves"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1490
+#: ../client/pk-console.c:1495
 msgid "Invalid search type"
 msgstr "Ugyldig søgetype"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1496
+#: ../client/pk-console.c:1501
 msgid "A package name to install is required"
 msgstr "Et pakkenavn til installation er påkrævet"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1505
+#: ../client/pk-console.c:1510
 msgid "A filename to install is required"
 msgstr "Et filnavn til installation er påkrævet"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1516
+#: ../client/pk-console.c:1521
 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:1527
+#: ../client/pk-console.c:1532
 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:1536
+#: ../client/pk-console.c:1541
 msgid "A destination directory and the package names to download are required"
 msgstr "En destinationsmappe og pakkenavnene kræves for at blive hentet"
 
 #. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:1543
+#: ../client/pk-console.c:1548
 msgid "Directory not found"
 msgstr "Mappe ikke fundet"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1552
+#: ../client/pk-console.c:1557
 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:1563
+#: ../client/pk-console.c:1568
 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:1584
+#: ../client/pk-console.c:1589
 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:1595 ../client/pk-console.c:1606
+#: ../client/pk-console.c:1600 ../client/pk-console.c:1611
 msgid "A repository name is required"
 msgstr "Et pakkearkivnavn kræves"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:1617
+#: ../client/pk-console.c:1622
 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:1634
+#: ../client/pk-console.c:1639
 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:1641
+#: ../client/pk-console.c:1646
 msgid "A correct role is required"
 msgstr "En korrekt rolle kræves"
 
 #. 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:1651 ../client/pk-console.c:1665
-#: ../client/pk-console.c:1674 ../client/pk-console.c:1694
-#: ../client/pk-console.c:1703 ../client/pk-generate-pack.c:314
+#: ../client/pk-console.c:1656 ../client/pk-console.c:1670
+#: ../client/pk-console.c:1679 ../client/pk-console.c:1699
+#: ../client/pk-console.c:1708 ../client/pk-generate-pack.c:314
 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:1683
+#: ../client/pk-console.c:1688
 msgid "A package provide string is required"
 msgstr "En pakke udbydningsstreng kræves"
 
 #. TRANSLATORS: The user did not provide a distro name
-#: ../client/pk-console.c:1727
+#: ../client/pk-console.c:1732
 msgid "A distribution name is required"
 msgstr "Et distributionsnavn er påkrævet"
 
 #. TRANSLATORS: The user did not provide an upgrade type
-#: ../client/pk-console.c:1733
+#: ../client/pk-console.c:1738
 msgid "An upgrade type is required, e.g. 'minimal', 'default' or 'complete'"
 msgstr ""
 "En opgraderingstype er påkrævet, f.eks. \"minimal\", \"default\" eller "
@@ -583,13 +584,13 @@ msgstr ""
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command
 #. line
-#: ../client/pk-console.c:1783
+#: ../client/pk-console.c:1788
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "Indstilling \"%s\" er ikke understøttet"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:1793
+#: ../client/pk-console.c:1798
 msgid "Command failed"
 msgstr "Kommando fejlede"
 
@@ -727,159 +728,154 @@ msgid "PackageKit Monitor"
 msgstr "PackageKit overvåger"
 
 #. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/pk-plugin-install.c:499
+#: ../contrib/browser-plugin/pk-plugin-install.c:503
 msgid "Getting package information..."
 msgstr "Henter information om pakke..."
 
 #. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/pk-plugin-install.c:505
+#: ../contrib/browser-plugin/pk-plugin-install.c:509
 #, c-format
 msgid "Run %s"
 msgstr "Kør %s"
 
 #. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:511
+#: ../contrib/browser-plugin/pk-plugin-install.c:515
 msgid "Installed version"
 msgstr "Installeret version"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:519
+#: ../contrib/browser-plugin/pk-plugin-install.c:523
 #, 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:525
+#: ../contrib/browser-plugin/pk-plugin-install.c:529
 msgid "Run now"
 msgstr "Kør nu"
 
 #. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:531
+#: ../contrib/browser-plugin/pk-plugin-install.c:535
 #, 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:537
+#: ../contrib/browser-plugin/pk-plugin-install.c:541
 #, c-format
 msgid "Install %s now"
 msgstr "Installér %s nu"
 
 #. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:540
+#: ../contrib/browser-plugin/pk-plugin-install.c:544
 msgid "Version"
 msgstr "Version"
 
 #. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/pk-plugin-install.c:545
+#: ../contrib/browser-plugin/pk-plugin-install.c:549
 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:550
+#: ../contrib/browser-plugin/pk-plugin-install.c:554
 msgid "Installing..."
 msgstr "Installerer..."
 
 #. TRANSLATORS: downloading repo data so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:366
+#: ../contrib/command-not-found/pk-command-not-found.c:363
 msgid "Downloading details about the software sources."
 msgstr "Henter detaljer om softwarekilderne."
 
 #. TRANSLATORS: downloading file lists so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:370
+#: ../contrib/command-not-found/pk-command-not-found.c:367
 msgid "Downloading filelists (this may take some time to complete)."
 msgstr "Henter fillister (dette kan tage noget tid at udføre)."
 
 #. TRANSLATORS: waiting for native lock
-#: ../contrib/command-not-found/pk-command-not-found.c:374
+#: ../contrib/command-not-found/pk-command-not-found.c:371
 msgid "Waiting for package manager lock."
 msgstr "Venter på at pakkehåndteringsprogrammet låser."
 
 #. TRANSLATORS: loading package cache so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:378
+#: ../contrib/command-not-found/pk-command-not-found.c:375
 msgid "Loading list of packages."
 msgstr "Indlæser liste over pakker."
 
 #. TRANSLATORS: we failed to find the package, this shouldn't happen
-#: ../contrib/command-not-found/pk-command-not-found.c:444
+#: ../contrib/command-not-found/pk-command-not-found.c:439
 msgid "Failed to search for file"
 msgstr "Kunne ikke søge efter fil"
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
-#: ../contrib/command-not-found/pk-command-not-found.c:456
+#: ../contrib/command-not-found/pk-command-not-found.c:451
 msgid "Getting the list of files failed"
 msgstr "Hentning af liste over filer mislykkedes"
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:602
+#: ../contrib/command-not-found/pk-command-not-found.c:597
 msgid "Failed to launch:"
 msgstr "Kunne ikke starte:"
 
 #. TRANSLATORS: we failed to install the package
-#: ../contrib/command-not-found/pk-command-not-found.c:630
+#: ../contrib/command-not-found/pk-command-not-found.c:625
 msgid "Failed to install packages"
 msgstr "Kunne ikke installere pakker"
 
-#. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/command-not-found/pk-command-not-found.c:706
-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. NOTE: this is lowercase to mimic
 #. * the style of bash itself -- apologies
-#: ../contrib/command-not-found/pk-command-not-found.c:741
+#: ../contrib/command-not-found/pk-command-not-found.c:723
 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:759
+#: ../contrib/command-not-found/pk-command-not-found.c:741
 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:773
+#: ../contrib/command-not-found/pk-command-not-found.c:755
 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:787
-#: ../contrib/command-not-found/pk-command-not-found.c:796
+#: ../contrib/command-not-found/pk-command-not-found.c:769
+#: ../contrib/command-not-found/pk-command-not-found.c:778
 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:803
+#: ../contrib/command-not-found/pk-command-not-found.c:785
 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:821
+#: ../contrib/command-not-found/pk-command-not-found.c:803
 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:828
+#: ../contrib/command-not-found/pk-command-not-found.c:810
 #, 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:855
+#: ../contrib/command-not-found/pk-command-not-found.c:837
 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:865
+#: ../contrib/command-not-found/pk-command-not-found.c:847
 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:874
+#: ../contrib/command-not-found/pk-command-not-found.c:856
 msgid "Please choose a package to install"
 msgstr "Vælg venligst en pakke at installere"
 
@@ -1054,7 +1050,7 @@ msgstr "Installerer ikke pakker i simuleringstilstand"
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
 #. TRANSLATORS: transaction state, installing packages
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:860
-#: ../lib/packagekit-glib2/pk-console-shared.c:296
+#: ../lib/packagekit-glib2/pk-console-shared.c:331
 #, c-format
 msgid "Installing packages"
 msgstr "Installerer pakker"
@@ -1188,474 +1184,474 @@ msgstr "PackageKit pakkeliste"
 msgid "PackageKit Service Pack"
 msgstr "PackageKit-servicepakke"
 
-#: ../lib/packagekit-glib2/pk-console-shared.c:64
+#: ../lib/packagekit-glib2/pk-console-shared.c:65
 #, c-format
 msgid "Please enter a number from 1 to %i: "
 msgstr "Indtast et nummer fra 1 til %i: "
 
 #. TRANSLATORS: more than one package could be found that matched, to follow
 #. is a list of possible packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:198
+#: ../lib/packagekit-glib2/pk-console-shared.c:233
 msgid "More than one package matches:"
 msgstr "Mere end én pakke passede:"
 
 #. TRANSLATORS: This finds out which package in the list to use
-#: ../lib/packagekit-glib2/pk-console-shared.c:209
+#: ../lib/packagekit-glib2/pk-console-shared.c:244
 msgid "Please choose the correct package: "
 msgstr "Vælg venligst den rigtige pakke: "
 
 #. TRANSLATORS: This is when the transaction status is not known
-#: ../lib/packagekit-glib2/pk-console-shared.c:264
+#: ../lib/packagekit-glib2/pk-console-shared.c:299
 msgid "Unknown state"
 msgstr "Ukendt status"
 
 #. TRANSLATORS: transaction state, the daemon is in the process of starting
-#: ../lib/packagekit-glib2/pk-console-shared.c:268
+#: ../lib/packagekit-glib2/pk-console-shared.c:303
 msgid "Starting"
 msgstr "Starter"
 
 #. TRANSLATORS: transaction state, the transaction is waiting for another to
 #. complete
-#: ../lib/packagekit-glib2/pk-console-shared.c:272
+#: ../lib/packagekit-glib2/pk-console-shared.c:307
 msgid "Waiting in queue"
 msgstr "Venter i kø"
 
 #. TRANSLATORS: transaction state, just started
-#: ../lib/packagekit-glib2/pk-console-shared.c:276
+#: ../lib/packagekit-glib2/pk-console-shared.c:311
 msgid "Running"
 msgstr "Kører"
 
 #. TRANSLATORS: transaction state, is querying data
-#: ../lib/packagekit-glib2/pk-console-shared.c:280
+#: ../lib/packagekit-glib2/pk-console-shared.c:315
 msgid "Querying"
 msgstr "Forespørger"
 
 #. TRANSLATORS: transaction state, getting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:284
+#: ../lib/packagekit-glib2/pk-console-shared.c:319
 msgid "Getting information"
 msgstr "Henter information"
 
 #. TRANSLATORS: transaction state, removing packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:288
+#: ../lib/packagekit-glib2/pk-console-shared.c:323
 msgid "Removing packages"
 msgstr "Fjerner pakker"
 
 #. TRANSLATORS: transaction state, downloading package files
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:292
-#: ../lib/packagekit-glib2/pk-console-shared.c:670
+#: ../lib/packagekit-glib2/pk-console-shared.c:327
+#: ../lib/packagekit-glib2/pk-console-shared.c:705
 msgid "Downloading packages"
 msgstr "Henter pakker"
 
 #. TRANSLATORS: transaction state, refreshing internal lists
-#: ../lib/packagekit-glib2/pk-console-shared.c:300
+#: ../lib/packagekit-glib2/pk-console-shared.c:335
 msgid "Refreshing software list"
 msgstr "Genopfrisker liste over pakkearkiver"
 
 #. TRANSLATORS: transaction state, installing updates
-#: ../lib/packagekit-glib2/pk-console-shared.c:304
+#: ../lib/packagekit-glib2/pk-console-shared.c:339
 msgid "Installing updates"
 msgstr "Installerer opdateringer"
 
 #. TRANSLATORS: transaction state, removing old packages, and cleaning config
 #. files
-#: ../lib/packagekit-glib2/pk-console-shared.c:308
+#: ../lib/packagekit-glib2/pk-console-shared.c:343
 msgid "Cleaning up packages"
 msgstr "Rydder op i pakker"
 
 #. TRANSLATORS: transaction state, obsoleting old packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:312
+#: ../lib/packagekit-glib2/pk-console-shared.c:347
 msgid "Obsoleting packages"
 msgstr "Overflødigører pakker"
 
 #. TRANSLATORS: transaction state, checking the transaction before we do it
-#: ../lib/packagekit-glib2/pk-console-shared.c:316
+#: ../lib/packagekit-glib2/pk-console-shared.c:351
 msgid "Resolving dependencies"
 msgstr "Løser afhængigheder"
 
 #. TRANSLATORS: transaction state, checking if we have all the security keys
 #. for the operation
-#: ../lib/packagekit-glib2/pk-console-shared.c:320
+#: ../lib/packagekit-glib2/pk-console-shared.c:355
 msgid "Checking signatures"
 msgstr "Kontrollerer signaturer"
 
 #. TRANSLATORS: transaction state, when we return to a previous system state
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:324
-#: ../lib/packagekit-glib2/pk-console-shared.c:630
+#: ../lib/packagekit-glib2/pk-console-shared.c:359
+#: ../lib/packagekit-glib2/pk-console-shared.c:665
 msgid "Rolling back"
 msgstr "Ruller tilbage"
 
 #. TRANSLATORS: transaction state, when we're doing a test transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:328
+#: ../lib/packagekit-glib2/pk-console-shared.c:363
 msgid "Testing changes"
 msgstr "Tester ændringer"
 
 #. TRANSLATORS: transaction state, when we're writing to the system package
 #. database
-#: ../lib/packagekit-glib2/pk-console-shared.c:332
+#: ../lib/packagekit-glib2/pk-console-shared.c:367
 msgid "Committing changes"
 msgstr "Indsender ændringer"
 
 #. TRANSLATORS: transaction state, requesting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:336
+#: ../lib/packagekit-glib2/pk-console-shared.c:371
 msgid "Requesting data"
 msgstr "Forespørger data"
 
 #. TRANSLATORS: transaction state, all done!
-#: ../lib/packagekit-glib2/pk-console-shared.c:340
+#: ../lib/packagekit-glib2/pk-console-shared.c:375
 msgid "Finished"
 msgstr "Afsluttet"
 
 #. TRANSLATORS: transaction state, in the process of cancelling
-#: ../lib/packagekit-glib2/pk-console-shared.c:344
+#: ../lib/packagekit-glib2/pk-console-shared.c:379
 msgid "Cancelling"
 msgstr "Annullerer"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:348
+#: ../lib/packagekit-glib2/pk-console-shared.c:383
 msgid "Downloading repository information"
 msgstr "Henter information om pakkearkiv"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:352
+#: ../lib/packagekit-glib2/pk-console-shared.c:387
 msgid "Downloading list of packages"
 msgstr "Henter liste over pakker"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:356
+#: ../lib/packagekit-glib2/pk-console-shared.c:391
 msgid "Downloading file lists"
 msgstr "Henter fillister"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:360
+#: ../lib/packagekit-glib2/pk-console-shared.c:395
 msgid "Downloading lists of changes"
 msgstr "Henter liste over ændringer"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:364
+#: ../lib/packagekit-glib2/pk-console-shared.c:399
 msgid "Downloading groups"
 msgstr "Henter grupper"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:368
+#: ../lib/packagekit-glib2/pk-console-shared.c:403
 msgid "Downloading update information"
 msgstr "Henter opdateringsinformation"
 
 #. TRANSLATORS: transaction state, repackaging delta files
-#: ../lib/packagekit-glib2/pk-console-shared.c:372
+#: ../lib/packagekit-glib2/pk-console-shared.c:407
 msgid "Repackaging files"
 msgstr "Genpakker filer"
 
 #. TRANSLATORS: transaction state, loading databases
-#: ../lib/packagekit-glib2/pk-console-shared.c:376
+#: ../lib/packagekit-glib2/pk-console-shared.c:411
 msgid "Loading cache"
 msgstr "Indlæser cache"
 
 #. TRANSLATORS: transaction state, scanning for running processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:380
+#: ../lib/packagekit-glib2/pk-console-shared.c:415
 msgid "Scanning applications"
 msgstr "Skanner programmer"
 
 #. TRANSLATORS: transaction state, generating a list of packages installed on
 #. the system
-#: ../lib/packagekit-glib2/pk-console-shared.c:384
+#: ../lib/packagekit-glib2/pk-console-shared.c:419
 msgid "Generating package lists"
 msgstr "Genererer pakkelister"
 
 #. TRANSLATORS: transaction state, when we're waiting for the native tools to
 #. exit
-#: ../lib/packagekit-glib2/pk-console-shared.c:388
+#: ../lib/packagekit-glib2/pk-console-shared.c:423
 msgid "Waiting for package manager lock"
 msgstr "Venter på at pakkehåndteringen låser"
 
 #. TRANSLATORS: transaction state, waiting for user to type in a password
-#: ../lib/packagekit-glib2/pk-console-shared.c:392
+#: ../lib/packagekit-glib2/pk-console-shared.c:427
 msgid "Waiting for authentication"
 msgstr "Venter på godkendelse"
 
 #. TRANSLATORS: transaction state, we are updating the list of processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:396
+#: ../lib/packagekit-glib2/pk-console-shared.c:431
 msgid "Updating running applications"
 msgstr "Opdaterer kørende programmer"
 
 #. TRANSLATORS: transaction state, we are checking executable files currently
 #. in use
-#: ../lib/packagekit-glib2/pk-console-shared.c:400
+#: ../lib/packagekit-glib2/pk-console-shared.c:435
 msgid "Checking applications in use"
 msgstr "Kontrollerer programmer som er i brug"
 
 #. TRANSLATORS: transaction state, we are checking for libraries currently in
 #. use
-#: ../lib/packagekit-glib2/pk-console-shared.c:404
+#: ../lib/packagekit-glib2/pk-console-shared.c:439
 msgid "Checking libraries in use"
 msgstr "Kontrollerer biblioteker som er i brug"
 
 #. TRANSLATORS: transaction state, we are copying package files before or
 #. after the transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:408
+#: ../lib/packagekit-glib2/pk-console-shared.c:443
 msgid "Copying files"
 msgstr "Kopierer filer"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:426
+#: ../lib/packagekit-glib2/pk-console-shared.c:461
 msgid "Trivial"
 msgstr "Triviel"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:430
+#: ../lib/packagekit-glib2/pk-console-shared.c:465
 msgid "Normal"
 msgstr "Normal"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:434
+#: ../lib/packagekit-glib2/pk-console-shared.c:469
 msgid "Important"
 msgstr "Vigtig"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:438
+#: ../lib/packagekit-glib2/pk-console-shared.c:473
 msgid "Security"
 msgstr "Sikkerhed"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:442
+#: ../lib/packagekit-glib2/pk-console-shared.c:477
 msgid "Bug fix "
 msgstr "Fejlrettelse "
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:446
+#: ../lib/packagekit-glib2/pk-console-shared.c:481
 msgid "Enhancement"
 msgstr "Forbedring"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:450
+#: ../lib/packagekit-glib2/pk-console-shared.c:485
 msgid "Blocked"
 msgstr "Blokeret"
 
 #. TRANSLATORS: The state of a package
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:455
-#: ../lib/packagekit-glib2/pk-console-shared.c:528
+#: ../lib/packagekit-glib2/pk-console-shared.c:490
+#: ../lib/packagekit-glib2/pk-console-shared.c:563
 msgid "Installed"
 msgstr "Installeret"
 
 #. TRANSLATORS: The state of a package, i.e. not installed
-#: ../lib/packagekit-glib2/pk-console-shared.c:460
+#: ../lib/packagekit-glib2/pk-console-shared.c:495
 msgid "Available"
 msgstr "Tilgængelig"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:478
+#: ../lib/packagekit-glib2/pk-console-shared.c:513
 msgid "Downloading"
 msgstr "Hentning"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:482
+#: ../lib/packagekit-glib2/pk-console-shared.c:517
 msgid "Updating"
 msgstr "Opdaterer"
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:486
-#: ../lib/packagekit-glib2/pk-console-shared.c:606
+#: ../lib/packagekit-glib2/pk-console-shared.c:521
+#: ../lib/packagekit-glib2/pk-console-shared.c:641
 msgid "Installing"
 msgstr "Installerer"
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:490
-#: ../lib/packagekit-glib2/pk-console-shared.c:602
+#: ../lib/packagekit-glib2/pk-console-shared.c:525
+#: ../lib/packagekit-glib2/pk-console-shared.c:637
 msgid "Removing"
 msgstr "Fjerner"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:494
+#: ../lib/packagekit-glib2/pk-console-shared.c:529
 msgid "Cleaning up"
 msgstr "Rydder op"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:498
+#: ../lib/packagekit-glib2/pk-console-shared.c:533
 msgid "Obsoleting"
 msgstr "Forælder"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:502
+#: ../lib/packagekit-glib2/pk-console-shared.c:537
 msgid "Reinstalling"
 msgstr "Geninstallerer"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:520
+#: ../lib/packagekit-glib2/pk-console-shared.c:555
 msgid "Downloaded"
 msgstr "Hentede"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:532
+#: ../lib/packagekit-glib2/pk-console-shared.c:567
 msgid "Removed"
 msgstr "Fjernede"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:536
+#: ../lib/packagekit-glib2/pk-console-shared.c:571
 msgid "Cleaned up"
 msgstr "Ryddede op"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:540
+#: ../lib/packagekit-glib2/pk-console-shared.c:575
 msgid "Obsoleted"
 msgstr "Forældede"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:544
+#: ../lib/packagekit-glib2/pk-console-shared.c:579
 msgid "Reinstalled"
 msgstr "Geninstallerede"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:562
+#: ../lib/packagekit-glib2/pk-console-shared.c:597
 msgid "Unknown role type"
 msgstr "Ukendt rolletype"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:566
+#: ../lib/packagekit-glib2/pk-console-shared.c:601
 msgid "Getting dependencies"
 msgstr "Henter afhængigheder"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:570
+#: ../lib/packagekit-glib2/pk-console-shared.c:605
 msgid "Getting update details"
 msgstr "Henter opdateringsdetaljer"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:574
+#: ../lib/packagekit-glib2/pk-console-shared.c:609
 msgid "Getting details"
 msgstr "Henter detaljer"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:578
+#: ../lib/packagekit-glib2/pk-console-shared.c:613
 msgid "Getting requires"
 msgstr "Henter afhængigheder"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:582
+#: ../lib/packagekit-glib2/pk-console-shared.c:617
 msgid "Getting updates"
 msgstr "Henter opdateringer"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:586
+#: ../lib/packagekit-glib2/pk-console-shared.c:621
 msgid "Searching by details"
 msgstr "Søger efter detaljer"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:590
+#: ../lib/packagekit-glib2/pk-console-shared.c:625
 msgid "Searching by file"
 msgstr "Søger efter fil"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:594
+#: ../lib/packagekit-glib2/pk-console-shared.c:629
 msgid "Searching groups"
 msgstr "Søger efter grupper"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:598
+#: ../lib/packagekit-glib2/pk-console-shared.c:633
 msgid "Searching by name"
 msgstr "Søger efter navn"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:610
+#: ../lib/packagekit-glib2/pk-console-shared.c:645
 msgid "Installing files"
 msgstr "Installerer filer"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:614
+#: ../lib/packagekit-glib2/pk-console-shared.c:649
 msgid "Refreshing cache"
 msgstr "Genopfrisker cache"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:618
+#: ../lib/packagekit-glib2/pk-console-shared.c:653
 msgid "Updating packages"
 msgstr "Opdaterer pakker"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:622
+#: ../lib/packagekit-glib2/pk-console-shared.c:657
 msgid "Updating system"
 msgstr "Opdaterer system"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:626
+#: ../lib/packagekit-glib2/pk-console-shared.c:661
 msgid "Canceling"
 msgstr "Annullerer"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:634
+#: ../lib/packagekit-glib2/pk-console-shared.c:669
 msgid "Getting repositories"
 msgstr "Henter pakkearkiver"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:638
+#: ../lib/packagekit-glib2/pk-console-shared.c:673
 msgid "Enabling repository"
 msgstr "Aktiverer pakkearkiv"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:642
+#: ../lib/packagekit-glib2/pk-console-shared.c:677
 msgid "Setting data"
 msgstr "Indstiller data"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:646
+#: ../lib/packagekit-glib2/pk-console-shared.c:681
 msgid "Resolving"
 msgstr "Løser"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:650
+#: ../lib/packagekit-glib2/pk-console-shared.c:685
 msgid "Getting file list"
 msgstr "Henter filliste"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:654
+#: ../lib/packagekit-glib2/pk-console-shared.c:689
 msgid "Getting provides"
 msgstr "Henter udbydere"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:658
+#: ../lib/packagekit-glib2/pk-console-shared.c:693
 msgid "Installing signature"
 msgstr "Installerer signatur"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:662
+#: ../lib/packagekit-glib2/pk-console-shared.c:697
 msgid "Getting packages"
 msgstr "Henter pakker"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:666
+#: ../lib/packagekit-glib2/pk-console-shared.c:701
 msgid "Accepting EULA"
 msgstr "Accepterer EULA"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:674
+#: ../lib/packagekit-glib2/pk-console-shared.c:709
 msgid "Getting upgrades"
 msgstr "Henter opgraderinger"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:678
+#: ../lib/packagekit-glib2/pk-console-shared.c:713
 msgid "Getting categories"
 msgstr "Henter kategorier"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:682
+#: ../lib/packagekit-glib2/pk-console-shared.c:717
 msgid "Getting transactions"
 msgstr "Henter overførsler"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:686
-#: ../lib/packagekit-glib2/pk-console-shared.c:690
+#: ../lib/packagekit-glib2/pk-console-shared.c:721
+#: ../lib/packagekit-glib2/pk-console-shared.c:725
 msgid "Simulating install"
 msgstr "Simulerer installation"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:694
+#: ../lib/packagekit-glib2/pk-console-shared.c:729
 msgid "Simulating remove"
 msgstr "Simulerer fjernelse"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:698
+#: ../lib/packagekit-glib2/pk-console-shared.c:733
 msgid "Simulating update"
 msgstr "Simulerer opdatering"
 
@@ -1805,13 +1801,19 @@ msgstr "Følgende pakker er nødt til at blive geninstalleret:"
 msgid "The following packages have to be downgraded:"
 msgstr "Følgende pakker er nødt til at blive nedgraderet:"
 
+#. TRANSLATORS: When processing, untrusted and non-verified packages may be
+#. encountered
+#: ../lib/packagekit-glib2/pk-task-text.c:325
+msgid "The following packages are untrusted:"
+msgstr "Følgende pakker er ikke troværdige:"
+
 #. TRANSLATORS: ask the user if the proposed changes are okay
-#: ../lib/packagekit-glib2/pk-task-text.c:380
+#: ../lib/packagekit-glib2/pk-task-text.c:385
 msgid "Proceed with changes?"
 msgstr "Fortsæt med ændringer?"
 
 #. TRANSLATORS: tell the user we didn't do anything
-#: ../lib/packagekit-glib2/pk-task-text.c:385
+#: ../lib/packagekit-glib2/pk-task-text.c:390
 msgid "The transaction did not proceed."
 msgstr "Overførslen fortsatte ikke."
 
@@ -2022,101 +2024,71 @@ msgstr "Opdatér pakker"
 msgid "Upgrade System"
 msgstr "Opgradér system"
 
-#. TRANSLATORS: failed due to DBus security
-#: ../src/pk-main.c:91
-msgid "Startup failed due to security policies on this machine."
-msgstr "Kunne ikke starte op, grundet sikkerhedsregler på denne maskine."
-
-#. TRANSLATORS: only two ways this can fail...
-#: ../src/pk-main.c:93
-msgid "This can happen for two reasons:"
-msgstr "Dette kan ske af to grunde:"
-
-#. TRANSLATORS: only allowed to be owned by root
-#: ../src/pk-main.c:95
-msgid "The correct user is not launching the executable (usually root)"
-msgstr ""
-"Det er ikke den rigtige bruger der starter den kørbare (normalvis root)"
-
-#. TRANSLATORS: or we are installed in a prefix
-#: ../src/pk-main.c:97
-msgid ""
-"The org.freedesktop.PackageKit.conf file is not installed in the system "
-"directory:"
-msgstr ""
-"org.freedesktop.PackageKit.conf-filen er ikke installeret i systemmappen:"
-
 #. TRANSLATORS: a backend is the system package tool, e.g. yum, apt
-#: ../src/pk-main.c:223
+#: ../src/pk-main.c:149
 msgid "Packaging backend to use, e.g. dummy"
 msgstr "Pakkemotor som bruges, f.eks. dummy"
 
 #. TRANSLATORS: if we should run in the background
-#: ../src/pk-main.c:226
+#: ../src/pk-main.c:152
 msgid "Daemonize and detach from the terminal"
 msgstr "Dæmonisér og hæft fra terminalen"
 
 #. TRANSLATORS: if we should not monitor how long we are inactive for
-#: ../src/pk-main.c:229
+#: ../src/pk-main.c:155
 msgid "Disable the idle timer"
 msgstr "Deaktivér tomgangstimeren"
 
 #. TRANSLATORS: show version
-#: ../src/pk-main.c:232
+#: ../src/pk-main.c:158
 msgid "Show version and exit"
 msgstr "Vis version og afslut"
 
 #. TRANSLATORS: exit after we've started up, used for user profiling
-#: ../src/pk-main.c:235
+#: ../src/pk-main.c:161
 msgid "Exit after a small delay"
 msgstr "Afslut efter kort pause"
 
 #. TRANSLATORS: exit straight away, used for automatic profiling
-#: ../src/pk-main.c:238
+#: ../src/pk-main.c:164
 msgid "Exit after the engine has loaded"
 msgstr "Afslut efter motoren er indlæst"
 
+#. TRANSLATORS: don't unset environment variables, used for debugging
+#: ../src/pk-main.c:167
+msgid "Don't clear environment on startup"
+msgstr "Ryd ikke miljø under opstart"
+
 #. TRANSLATORS: describing the service that is running
-#: ../src/pk-main.c:253
+#: ../src/pk-main.c:179
 msgid "PackageKit service"
 msgstr "PackageKit-tjeneste"
 
-#. TRANSLATORS: fatal error, dbus is not running
-#: ../src/pk-main.c:298
-msgid "Cannot connect to the system bus"
-msgstr "Kan ikke forbinde til systembussen"
-
-#: ../src/pk-main.c:344
+#: ../src/pk-main.c:253
 msgid "Failed to load any of the specified backends:"
-msgstr ""
-
-#. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error
-#. follows
-#: ../src/pk-main.c:358
-msgid "Error trying to start:"
-msgstr "Kunne ikke starte:"
+msgstr "Kunne ikke indlæse nogen af de angivne bagender:"
 
 #. TRANSLATORS: is not GPG signed
-#: ../src/pk-transaction.c:2611 ../src/pk-transaction.c:2618
+#: ../src/pk-transaction.c:2696
 msgid "The software is not from a trusted source."
 msgstr "Softwaren er ikke fra en betroet kilde."
 
-#: ../src/pk-transaction.c:2623
+#: ../src/pk-transaction.c:2704
 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."
 
-#: ../src/pk-transaction.c:2624
+#: ../src/pk-transaction.c:2705
 msgid "Do not update these packages unless you are sure it is safe to do so."
 msgstr ""
 "Opdatér ikke disse pakker medmindre du er sikker på, at det er sikkert."
 
-#: ../src/pk-transaction.c:2634
+#: ../src/pk-transaction.c:2715
 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-transaction.c:2635
+#: ../src/pk-transaction.c:2716
 msgid "Do not install these packages unless you are sure it is safe to do so."
 msgstr ""
 "Installér ikke disse pakker medmindre du er sikker på, at det er sikkert."
diff --git a/po/de.po b/po/de.po
index fd18a67..663e263 100644
--- a/po/de.po
+++ b/po/de.po
@@ -2,14 +2,25 @@
 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
 # This file is distributed under the same license as the PACKAGE package.
 # 
-# Richard Hughes <richard at hughsie.com>, 2011
+# Translators:
+# Christian  <Christian.Kirbach at googlemail.com>, 2011.
+# Christian Kirbach <Christian.Kirbach at googlemail.com>, 2009, 2011.
+# Daniela Kugelmann <dkugelma at redhat.com >, 2008.
+# Fabian Affolter <fab at fedoraproject.org>, 2008, 2009.
+# Hedda Peters <hpeters at redhat.com>, 2009.
+# Holger Wansing <linux at wansing-online.de>, 2006.
+# Marcus Nitzschke <kenda at fedoraproject.org>, 2009, 2010.
+# Richard Hughes <richard at hughsie.com>, 2011.
+# Stefan Posdzich <cheekyboinc at foresightlinux.org>, 2008.
+# Thomas Spura <tomspur at fedoraproject.org>, 2008.
+# Timo Trinks <ttrinks at redhat.com>, 2006, 2007, 2008.
 msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-04 10:50+0100\n"
-"PO-Revision-Date: 2011-05-04 09:56+0000\n"
-"Last-Translator: hughsie <richard at hughsie.com>\n"
+"POT-Creation-Date: 2011-11-10 19:50+0000\n"
+"PO-Revision-Date: 2011-11-10 19:50+0000\n"
+"Last-Translator: Richard Hughes <richard at hughsie.com>\n"
 "Language-Team: German (http://www.transifex.net/projects/p/freedesktop/team/de/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -195,7 +206,7 @@ msgstr "Veröffentlicht"
 
 #. TRANSLATORS: details about the update, date the update was updated
 #. TRANSLATORS: The action of the package, in past tense
-#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:524
+#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:559
 msgid "Updated"
 msgstr "Aktualisiert"
 
@@ -282,11 +293,11 @@ msgstr "Schwerwiegender Fehler"
 #. can be updated
 #: ../client/pk-console.c:701
 msgid "There are no packages to update."
-msgstr ""
+msgstr "Es gibt keine Aktualisierungen für Pakete."
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
 #: ../client/pk-console.c:704
-#: ../contrib/command-not-found/pk-command-not-found.c:639
+#: ../contrib/command-not-found/pk-command-not-found.c:634
 msgid "The transaction failed"
 msgstr "Die Transaktion scheiterte"
 
@@ -297,7 +308,7 @@ msgstr "Derzeit sind keine Aktualisierungen verfügbar."
 
 #: ../client/pk-console.c:756
 msgid "There are no upgrades available at this time."
-msgstr ""
+msgstr "Derzeit sind keine Systemaktualisierungen verfügbar."
 
 #. TRANSLATORS: a package needs to restart their system
 #: ../client/pk-console.c:823
@@ -336,27 +347,29 @@ msgid ""
 "Expected package name, actually got file. Try using 'pkcon install-local %s'"
 " instead."
 msgstr ""
+"Es wurde ein Paketname erwartet, aber tatsächlich eine Datei erhalten. "
+"Versuchen Sie stattdessen »pkcon install-local %s« zu verwenden."
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:866
+#: ../client/pk-console.c:871
 #, c-format
 msgid "This tool could not find any available package: %s"
-msgstr "Dieses Tool konnte keine verfügbaren Pakete finden: %s"
+msgstr "Dieses Werkzeug konnte keine verfügbaren Pakete finden: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:894
+#: ../client/pk-console.c:899
 #, c-format
 msgid "This tool could not find the installed package: %s"
-msgstr "Dieses Tool konnte das installierte Paket nicht finden: %s"
+msgstr "Dieses Werkzeug konnte das installierte Paket nicht finden: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:922 ../client/pk-console.c:950
+#: ../client/pk-console.c:927 ../client/pk-console.c:955
 #, c-format
 msgid "This tool could not find the package: %s"
-msgstr "Dieses Tool konnte das Paket nicht finden: %s"
+msgstr "Dieses Werkzeug konnte das Paket nicht finden: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
@@ -366,71 +379,71 @@ msgstr "Dieses Tool konnte das Paket nicht finden: %s"
 #. detailed error follows
 #. TRANSLATORS: The package name was not found in any software sources. The
 #. detailed error follows
-#: ../client/pk-console.c:978 ../client/pk-console.c:1006
-#: ../client/pk-console.c:1034 ../client/pk-console.c:1062
-#: ../client/pk-console.c:1090
+#: ../client/pk-console.c:983 ../client/pk-console.c:1011
+#: ../client/pk-console.c:1039 ../client/pk-console.c:1067
+#: ../client/pk-console.c:1095
 #, c-format
 msgid "This tool could not find all the packages: %s"
-msgstr "Dieses Tool konnte nicht alle Pakete finden: %s"
+msgstr "Dieses Werkzeug konnte nicht alle Pakete finden: %s"
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek
 #. without a paddle
-#: ../client/pk-console.c:1119
+#: ../client/pk-console.c:1124
 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:1153
+#: ../client/pk-console.c:1158
 msgid "PackageKit Console Interface"
 msgstr "Schnittstelle zur PackageKit-Konsole"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1155
+#: ../client/pk-console.c:1160
 msgid "Subcommands:"
 msgstr "Unterbefehle:"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was
 #. last executed
-#: ../client/pk-console.c:1235
+#: ../client/pk-console.c:1240
 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: command line argument, just show the version string
-#: ../client/pk-console.c:1277 ../client/pk-monitor.c:371
+#: ../client/pk-console.c:1282 ../client/pk-monitor.c:371
 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:1280
+#: ../client/pk-console.c:1285
 msgid "Set the filter, e.g. installed"
 msgstr "Den Filter setzen, z.B. »installiert«"
 
 #. TRANSLATORS: command line argument, use a non-standard install prefix
-#: ../client/pk-console.c:1283
+#: ../client/pk-console.c:1288
 msgid "Set the install root, e.g. '/' or '/mnt/ltsp'"
-msgstr ""
+msgstr "Das Installationsziel festlegen, z.B. »/« oder »/mnt/ltsp«"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1286
+#: ../client/pk-console.c:1291
 msgid "Exit without waiting for actions to complete"
 msgstr "Beenden, ohne auf Beendigung der Aktionen zu warten"
 
 #. command line argument, do we ask questions
-#: ../client/pk-console.c:1289
+#: ../client/pk-console.c:1294
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:525
 msgid "Install the packages without asking for confirmation"
 msgstr "Die Pakete ohne erneute Nachfrage installieren"
 
 #. TRANSLATORS: command line argument, this command is not a priority
-#: ../client/pk-console.c:1292
+#: ../client/pk-console.c:1297
 msgid "Run the command using idle network bandwidth and also using less power"
 msgstr ""
 "Befehl ausführen unter Verwendung ungenutzer Netzwerkbandbreite und wenig "
 "Energie"
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1295
+#: ../client/pk-console.c:1300
 msgid ""
 "Print to screen a machine readable output, rather than using animated "
 "widgets"
@@ -439,157 +452,160 @@ msgstr ""
 "Widgets zu verwenden"
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1298
+#: ../client/pk-console.c:1303
 msgid "The maximum metadata cache age. Use -1 for 'never'."
 msgstr ""
+"Das Höchstalter des Metadaten-Zwischenspeichers. Verwenden Sie -1 für "
+"»keines«."
 
 #. TRANSLATORS: command line argument, --help
-#: ../client/pk-console.c:1301
+#: ../client/pk-console.c:1306
 msgid "Show help options."
-msgstr ""
+msgstr "Hilfeoptionen anzeigen."
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1331
+#: ../client/pk-console.c:1336
 msgid "Failed to parse command line"
-msgstr ""
+msgstr "Verarbeiten der Befehlszeile schlug fehl"
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1341
+#: ../client/pk-console.c:1346
 msgid "Failed to contact PackageKit"
 msgstr "PackageKit konnte nicht kontaktiert werden"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1394
+#: ../client/pk-console.c:1399
 msgid "The proxy could not be set"
-msgstr ""
+msgstr "Der Proxy konnte nicht festgelegt werden"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1406
+#: ../client/pk-console.c:1411
 msgid "The install root could not be set"
-msgstr ""
+msgstr "Das Installationsziel konnte nicht festgelegt werden"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1418
+#: ../client/pk-console.c:1423
 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:1437
+#: ../client/pk-console.c:1442
 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:1444 ../client/pk-console.c:1456
-#: ../client/pk-console.c:1468 ../client/pk-console.c:1480
+#: ../client/pk-console.c:1449 ../client/pk-console.c:1461
+#: ../client/pk-console.c:1473 ../client/pk-console.c:1485
 msgid "A search term is required"
 msgstr "Ein Suchbegriff ist erforderlich"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1490
+#: ../client/pk-console.c:1495
 msgid "Invalid search type"
 msgstr "Ungültige Suchart"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1496
+#: ../client/pk-console.c:1501
 msgid "A package name to install is required"
 msgstr "Ein zu installierender Paketname ist erforderlich"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1505
+#: ../client/pk-console.c:1510
 msgid "A filename to install is required"
 msgstr "Ein zu installierender Dateiname ist erforderlich"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1516
+#: ../client/pk-console.c:1521
 msgid "A type, key_id and package_id are required"
 msgstr "Ein Typ, Schlüsselkennung und Paketkennung sind erforderlich"
 
 #. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:1527
+#: ../client/pk-console.c:1532
 msgid "A package name to remove is required"
 msgstr "Zum Entfernen ist ein Paketname erforderlich"
 
 #. TRANSLATORS: the user did not specify anything about what to download or
 #. where
-#: ../client/pk-console.c:1536
+#: ../client/pk-console.c:1541
 msgid "A destination directory and the package names to download are required"
 msgstr ""
-"Ein Zielverzeichnis und die Namen der Pakete zum Herunterladen sind "
-"erforderlich"
+"Ein Zielordner und die Namen der Pakete zum Herunterladen sind erforderlich"
 
 #. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:1543
+#: ../client/pk-console.c:1548
 msgid "Directory not found"
-msgstr "Verzeichnis nicht gefunden"
+msgstr "Ordner nicht gefunden"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1552
+#: ../client/pk-console.c:1557
 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:1563
+#: ../client/pk-console.c:1568
 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:1584
+#: ../client/pk-console.c:1589
 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:1595 ../client/pk-console.c:1606
+#: ../client/pk-console.c:1600 ../client/pk-console.c:1611
 msgid "A repository name is required"
 msgstr "Ein Depotname wird benötigt"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:1617
+#: ../client/pk-console.c:1622
 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:1634
+#: ../client/pk-console.c:1639
 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:1641
+#: ../client/pk-console.c:1646
 msgid "A correct role is required"
 msgstr "Eine korrekte Rolle wird benötigt"
 
 #. 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:1651 ../client/pk-console.c:1665
-#: ../client/pk-console.c:1674 ../client/pk-console.c:1694
-#: ../client/pk-console.c:1703 ../client/pk-generate-pack.c:314
+#: ../client/pk-console.c:1656 ../client/pk-console.c:1670
+#: ../client/pk-console.c:1679 ../client/pk-console.c:1699
+#: ../client/pk-console.c:1708 ../client/pk-generate-pack.c:314
 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:1683
+#: ../client/pk-console.c:1688
 msgid "A package provide string is required"
 msgstr "Die Zeichenkette »Stellt bereit« wird benötigt"
 
 #. TRANSLATORS: The user did not provide a distro name
-#: ../client/pk-console.c:1727
+#: ../client/pk-console.c:1732
 msgid "A distribution name is required"
-msgstr ""
+msgstr "Ein Distributionsname ist notwendig"
 
 #. TRANSLATORS: The user did not provide an upgrade type
-#: ../client/pk-console.c:1733
+#: ../client/pk-console.c:1738
 msgid "An upgrade type is required, e.g. 'minimal', 'default' or 'complete'"
 msgstr ""
+"Ein Typ ist für eine Sytemaktualisierung erforderlich, wie z.B. »minimal«, "
+"»default« (Vorgabe) oder »complete« (vollständig)"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command
 #. line
-#: ../client/pk-console.c:1783
+#: ../client/pk-console.c:1788
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "Option »%s« wird nicht unterstützt"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:1793
+#: ../client/pk-console.c:1798
 msgid "Command failed"
 msgstr "Ausführung des Befehls fehlgeschlagen"
 
@@ -605,6 +621,8 @@ msgstr ""
 msgid ""
 "The output file or directory (the current directory is used if omitted)"
 msgstr ""
+"Die Ausgabedatei oder der Ausgabeordner (der aktuelle Ordner wird bei "
+"Weglassen verwendet)"
 
 #. TRANSLATORS: put a list of packages in the pack
 #: ../client/pk-generate-pack.c:259
@@ -629,13 +647,13 @@ msgstr "Beide Optionen ausgewählt."
 #. TRANSLATORS: This is when the user fails to supply the output
 #: ../client/pk-generate-pack.c:322
 msgid "A output directory or file name is required"
-msgstr "Ein Ausgabeverzeichnis oder Dateiname ist erforderlich"
+msgstr "Ein Ausgabeordner oder Dateiname ist erforderlich"
 
 #. TRANSLATORS: This is when the daemon is not-installed/broken and fails to
 #. startup
 #: ../client/pk-generate-pack.c:340
 msgid "The daemon failed to startup"
-msgstr ""
+msgstr "Der Dienst konnte nicht gestartet werden"
 
 #. TRANSLATORS: This is when the backend doesn't have the capability to get-
 #. depends
@@ -678,7 +696,7 @@ msgstr "Das Service-Pack wurde nicht überschrieben."
 #. directory name follows
 #: ../client/pk-generate-pack.c:407
 msgid "Failed to create directory:"
-msgstr "Verzeichnis konnte nicht erstellt werden:"
+msgstr "Ordner konnte nicht erstellt werden:"
 
 #. TRANSLATORS: This is when the list of packages from the remote computer
 #. cannot be opened
@@ -722,7 +740,7 @@ msgstr "Daemon-Status konnte nicht abgerufen werden"
 
 #: ../client/pk-monitor.c:349
 msgid "Failed to get properties"
-msgstr ""
+msgstr "Ermitteln der Eigenschaften ist fehlgeschlagen"
 
 #. TRANSLATORS: this is a program that monitors PackageKit
 #: ../client/pk-monitor.c:387
@@ -730,141 +748,136 @@ msgid "PackageKit Monitor"
 msgstr "PackageKit-Monitor"
 
 #. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/pk-plugin-install.c:499
+#: ../contrib/browser-plugin/pk-plugin-install.c:503
 msgid "Getting package information..."
 msgstr "Paket-Informationen werden gelesen …"
 
 #. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/pk-plugin-install.c:505
+#: ../contrib/browser-plugin/pk-plugin-install.c:509
 #, c-format
 msgid "Run %s"
 msgstr "%s starten"
 
 #. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:511
+#: ../contrib/browser-plugin/pk-plugin-install.c:515
 msgid "Installed version"
 msgstr "Installierte Version"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:519
+#: ../contrib/browser-plugin/pk-plugin-install.c:523
 #, c-format
 msgid "Run version %s now"
 msgstr "Jetzt Version %s starten"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:525
+#: ../contrib/browser-plugin/pk-plugin-install.c:529
 msgid "Run now"
 msgstr "Jetzt ausführen"
 
 #. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:531
+#: ../contrib/browser-plugin/pk-plugin-install.c:535
 #, c-format
 msgid "Update to version %s"
 msgstr "Aktualisierung auf Version %s"
 
 #. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:537
+#: ../contrib/browser-plugin/pk-plugin-install.c:541
 #, c-format
 msgid "Install %s now"
 msgstr "%s jetzt installieren"
 
 #. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:540
+#: ../contrib/browser-plugin/pk-plugin-install.c:544
 msgid "Version"
 msgstr "Version"
 
 #. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/pk-plugin-install.c:545
+#: ../contrib/browser-plugin/pk-plugin-install.c:549
 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:550
+#: ../contrib/browser-plugin/pk-plugin-install.c:554
 msgid "Installing..."
 msgstr "Es wird installiert …"
 
 #. TRANSLATORS: downloading repo data so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:366
+#: ../contrib/command-not-found/pk-command-not-found.c:363
 msgid "Downloading details about the software sources."
 msgstr "Details über Softwarequellen werden heruntergeladen"
 
 #. TRANSLATORS: downloading file lists so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:370
+#: ../contrib/command-not-found/pk-command-not-found.c:367
 msgid "Downloading filelists (this may take some time to complete)."
 msgstr "Dateilisten werden heruntergeladen (dies kann einen Moment dauern)"
 
 #. TRANSLATORS: waiting for native lock
-#: ../contrib/command-not-found/pk-command-not-found.c:374
+#: ../contrib/command-not-found/pk-command-not-found.c:371
 msgid "Waiting for package manager lock."
 msgstr "Auf Blockierung des Paketmanagers wird gewartet"
 
 #. TRANSLATORS: loading package cache so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:378
+#: ../contrib/command-not-found/pk-command-not-found.c:375
 msgid "Loading list of packages."
 msgstr "Paketliste wird geladen."
 
 #. TRANSLATORS: we failed to find the package, this shouldn't happen
-#: ../contrib/command-not-found/pk-command-not-found.c:444
+#: ../contrib/command-not-found/pk-command-not-found.c:439
 msgid "Failed to search for file"
 msgstr "Die Suche nach der Datei ist fehlgeschlagen"
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
-#: ../contrib/command-not-found/pk-command-not-found.c:456
+#: ../contrib/command-not-found/pk-command-not-found.c:451
 msgid "Getting the list of files failed"
-msgstr ""
+msgstr "Ermitteln der Dateiliste schlug fehl"
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:602
+#: ../contrib/command-not-found/pk-command-not-found.c:597
 msgid "Failed to launch:"
 msgstr "Start ist fehlgeschlagen:"
 
 #. TRANSLATORS: we failed to install the package
-#: ../contrib/command-not-found/pk-command-not-found.c:630
+#: ../contrib/command-not-found/pk-command-not-found.c:625
 msgid "Failed to install packages"
 msgstr "Die Pakete konnten nicht installiert werden"
 
-#. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/command-not-found/pk-command-not-found.c:706
-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. NOTE: this is lowercase to mimic
 #. * the style of bash itself -- apologies
-#: ../contrib/command-not-found/pk-command-not-found.c:741
+#: ../contrib/command-not-found/pk-command-not-found.c:723
 msgid "command not found"
-msgstr ""
+msgstr "Befehl nicht gefunden"
 
 #. TRANSLATORS: tell the user what we think the command is
-#: ../contrib/command-not-found/pk-command-not-found.c:759
+#: ../contrib/command-not-found/pk-command-not-found.c:741
 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:773
+#: ../contrib/command-not-found/pk-command-not-found.c:755
 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:787
-#: ../contrib/command-not-found/pk-command-not-found.c:796
+#: ../contrib/command-not-found/pk-command-not-found.c:769
+#: ../contrib/command-not-found/pk-command-not-found.c:778
 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:803
+#: ../contrib/command-not-found/pk-command-not-found.c:785
 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:821
+#: ../contrib/command-not-found/pk-command-not-found.c:803
 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:828
+#: ../contrib/command-not-found/pk-command-not-found.c:810
 #, c-format
 msgid "Install package '%s' to provide command '%s'?"
 msgstr ""
@@ -872,19 +885,19 @@ msgstr ""
 "bereitstellt?"
 
 #. TRANSLATORS: Show the user a list of packages that provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:855
+#: ../contrib/command-not-found/pk-command-not-found.c:837
 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:865
+#: ../contrib/command-not-found/pk-command-not-found.c:847
 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:874
+#: ../contrib/command-not-found/pk-command-not-found.c:856
 msgid "Please choose a package to install"
 msgstr "Bitte wählen Sie ein Paket zum Installieren"
 
@@ -1062,7 +1075,7 @@ msgstr "Es werden im Simulationsmodus keine Pakete installiert"
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
 #. TRANSLATORS: transaction state, installing packages
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:860
-#: ../lib/packagekit-glib2/pk-console-shared.c:296
+#: ../lib/packagekit-glib2/pk-console-shared.c:331
 #, c-format
 msgid "Installing packages"
 msgstr "Pakete werden installiert"
@@ -1198,474 +1211,474 @@ msgstr "PackageKit-Paketliste"
 msgid "PackageKit Service Pack"
 msgstr "PackageKit Service-Pack"
 
-#: ../lib/packagekit-glib2/pk-console-shared.c:64
+#: ../lib/packagekit-glib2/pk-console-shared.c:65
 #, c-format
 msgid "Please enter a number from 1 to %i: "
 msgstr "Bitte geben Sie eine Zahl zwischen 1 und %i ein: "
 
 #. TRANSLATORS: more than one package could be found that matched, to follow
 #. is a list of possible packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:198
+#: ../lib/packagekit-glib2/pk-console-shared.c:233
 msgid "More than one package matches:"
 msgstr "Es passt mehr als ein Paket:"
 
 #. TRANSLATORS: This finds out which package in the list to use
-#: ../lib/packagekit-glib2/pk-console-shared.c:209
+#: ../lib/packagekit-glib2/pk-console-shared.c:244
 msgid "Please choose the correct package: "
 msgstr "Bitte wählen Sie das richtige Paket: "
 
 #. TRANSLATORS: This is when the transaction status is not known
-#: ../lib/packagekit-glib2/pk-console-shared.c:264
+#: ../lib/packagekit-glib2/pk-console-shared.c:299
 msgid "Unknown state"
 msgstr "Unbekannter Status"
 
 #. TRANSLATORS: transaction state, the daemon is in the process of starting
-#: ../lib/packagekit-glib2/pk-console-shared.c:268
+#: ../lib/packagekit-glib2/pk-console-shared.c:303
 msgid "Starting"
 msgstr "Starten"
 
 #. TRANSLATORS: transaction state, the transaction is waiting for another to
 #. complete
-#: ../lib/packagekit-glib2/pk-console-shared.c:272
+#: ../lib/packagekit-glib2/pk-console-shared.c:307
 msgid "Waiting in queue"
 msgstr "Warten in Warteschlange"
 
 #. TRANSLATORS: transaction state, just started
-#: ../lib/packagekit-glib2/pk-console-shared.c:276
+#: ../lib/packagekit-glib2/pk-console-shared.c:311
 msgid "Running"
 msgstr "Ausführen"
 
 #. TRANSLATORS: transaction state, is querying data
-#: ../lib/packagekit-glib2/pk-console-shared.c:280
+#: ../lib/packagekit-glib2/pk-console-shared.c:315
 msgid "Querying"
 msgstr "Abfragen"
 
 #. TRANSLATORS: transaction state, getting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:284
+#: ../lib/packagekit-glib2/pk-console-shared.c:319
 msgid "Getting information"
 msgstr "Informationen werden abgerufen"
 
 #. TRANSLATORS: transaction state, removing packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:288
+#: ../lib/packagekit-glib2/pk-console-shared.c:323
 msgid "Removing packages"
 msgstr "Pakete werden entfernt"
 
 #. TRANSLATORS: transaction state, downloading package files
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:292
-#: ../lib/packagekit-glib2/pk-console-shared.c:670
+#: ../lib/packagekit-glib2/pk-console-shared.c:327
+#: ../lib/packagekit-glib2/pk-console-shared.c:705
 msgid "Downloading packages"
 msgstr "Pakete werden heruntergeladen"
 
 #. TRANSLATORS: transaction state, refreshing internal lists
-#: ../lib/packagekit-glib2/pk-console-shared.c:300
+#: ../lib/packagekit-glib2/pk-console-shared.c:335
 msgid "Refreshing software list"
 msgstr "Software-Liste wird aktualisiert"
 
 #. TRANSLATORS: transaction state, installing updates
-#: ../lib/packagekit-glib2/pk-console-shared.c:304
+#: ../lib/packagekit-glib2/pk-console-shared.c:339
 msgid "Installing updates"
 msgstr "Aktualisierungen werden installiert"
 
 #. TRANSLATORS: transaction state, removing old packages, and cleaning config
 #. files
-#: ../lib/packagekit-glib2/pk-console-shared.c:308
+#: ../lib/packagekit-glib2/pk-console-shared.c:343
 msgid "Cleaning up packages"
 msgstr "Pakete werden bereinigt"
 
 #. TRANSLATORS: transaction state, obsoleting old packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:312
+#: ../lib/packagekit-glib2/pk-console-shared.c:347
 msgid "Obsoleting packages"
 msgstr "Veraltete Pakete werden bereinigt"
 
 #. TRANSLATORS: transaction state, checking the transaction before we do it
-#: ../lib/packagekit-glib2/pk-console-shared.c:316
+#: ../lib/packagekit-glib2/pk-console-shared.c:351
 msgid "Resolving dependencies"
 msgstr "Abhängigkeiten werden aufgelöst"
 
 #. TRANSLATORS: transaction state, checking if we have all the security keys
 #. for the operation
-#: ../lib/packagekit-glib2/pk-console-shared.c:320
+#: ../lib/packagekit-glib2/pk-console-shared.c:355
 msgid "Checking signatures"
 msgstr "Signaturen werden überprüft"
 
 #. TRANSLATORS: transaction state, when we return to a previous system state
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:324
-#: ../lib/packagekit-glib2/pk-console-shared.c:630
+#: ../lib/packagekit-glib2/pk-console-shared.c:359
+#: ../lib/packagekit-glib2/pk-console-shared.c:665
 msgid "Rolling back"
 msgstr "Zurücksetzen"
 
 #. TRANSLATORS: transaction state, when we're doing a test transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:328
+#: ../lib/packagekit-glib2/pk-console-shared.c:363
 msgid "Testing changes"
 msgstr "Änderungen werden getestet"
 
 #. TRANSLATORS: transaction state, when we're writing to the system package
 #. database
-#: ../lib/packagekit-glib2/pk-console-shared.c:332
+#: ../lib/packagekit-glib2/pk-console-shared.c:367
 msgid "Committing changes"
 msgstr "Änderungen werden gespeichert"
 
 #. TRANSLATORS: transaction state, requesting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:336
+#: ../lib/packagekit-glib2/pk-console-shared.c:371
 msgid "Requesting data"
 msgstr "Daten werden abgefragt"
 
 #. TRANSLATORS: transaction state, all done!
-#: ../lib/packagekit-glib2/pk-console-shared.c:340
+#: ../lib/packagekit-glib2/pk-console-shared.c:375
 msgid "Finished"
 msgstr "Fertig"
 
 #. TRANSLATORS: transaction state, in the process of cancelling
-#: ../lib/packagekit-glib2/pk-console-shared.c:344
+#: ../lib/packagekit-glib2/pk-console-shared.c:379
 msgid "Cancelling"
 msgstr "Abbruch"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:348
+#: ../lib/packagekit-glib2/pk-console-shared.c:383
 msgid "Downloading repository information"
 msgstr "Depot-Informationen werden heruntergeladen"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:352
+#: ../lib/packagekit-glib2/pk-console-shared.c:387
 msgid "Downloading list of packages"
 msgstr "Paketliste wird heruntergeladen"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:356
+#: ../lib/packagekit-glib2/pk-console-shared.c:391
 msgid "Downloading file lists"
 msgstr "Dateiliste wird heruntergeladen"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:360
+#: ../lib/packagekit-glib2/pk-console-shared.c:395
 msgid "Downloading lists of changes"
 msgstr "Änderungsliste wird heruntergeladen"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:364
+#: ../lib/packagekit-glib2/pk-console-shared.c:399
 msgid "Downloading groups"
 msgstr "Gruppen werden heruntergeladen"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:368
+#: ../lib/packagekit-glib2/pk-console-shared.c:403
 msgid "Downloading update information"
 msgstr "Aktualisierungsinformationen werden heruntergeladen"
 
 #. TRANSLATORS: transaction state, repackaging delta files
-#: ../lib/packagekit-glib2/pk-console-shared.c:372
+#: ../lib/packagekit-glib2/pk-console-shared.c:407
 msgid "Repackaging files"
 msgstr "Dateien werden neu verpackt"
 
 #. TRANSLATORS: transaction state, loading databases
-#: ../lib/packagekit-glib2/pk-console-shared.c:376
+#: ../lib/packagekit-glib2/pk-console-shared.c:411
 msgid "Loading cache"
 msgstr "Cache wird geladen"
 
 #. TRANSLATORS: transaction state, scanning for running processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:380
+#: ../lib/packagekit-glib2/pk-console-shared.c:415
 msgid "Scanning applications"
 msgstr "Applikationen werden überprüft"
 
 #. TRANSLATORS: transaction state, generating a list of packages installed on
 #. the system
-#: ../lib/packagekit-glib2/pk-console-shared.c:384
+#: ../lib/packagekit-glib2/pk-console-shared.c:419
 msgid "Generating package lists"
 msgstr "Paketlisten werden generiert"
 
 #. TRANSLATORS: transaction state, when we're waiting for the native tools to
 #. exit
-#: ../lib/packagekit-glib2/pk-console-shared.c:388
+#: ../lib/packagekit-glib2/pk-console-shared.c:423
 msgid "Waiting for package manager lock"
 msgstr "Warten auf Sperre des Paketmanagers"
 
 #. TRANSLATORS: transaction state, waiting for user to type in a password
-#: ../lib/packagekit-glib2/pk-console-shared.c:392
+#: ../lib/packagekit-glib2/pk-console-shared.c:427
 msgid "Waiting for authentication"
 msgstr "Warten auf Authentifizierung"
 
 #. TRANSLATORS: transaction state, we are updating the list of processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:396
+#: ../lib/packagekit-glib2/pk-console-shared.c:431
 msgid "Updating running applications"
 msgstr "Laufende Applikationen werden aktualisiert"
 
 #. TRANSLATORS: transaction state, we are checking executable files currently
 #. in use
-#: ../lib/packagekit-glib2/pk-console-shared.c:400
+#: ../lib/packagekit-glib2/pk-console-shared.c:435
 msgid "Checking applications in use"
 msgstr "Verwendete Applikationen werden überprüft"
 
 #. TRANSLATORS: transaction state, we are checking for libraries currently in
 #. use
-#: ../lib/packagekit-glib2/pk-console-shared.c:404
+#: ../lib/packagekit-glib2/pk-console-shared.c:439
 msgid "Checking libraries in use"
 msgstr "Verwendete Bibliotheken werden überprüft"
 
 #. TRANSLATORS: transaction state, we are copying package files before or
 #. after the transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:408
+#: ../lib/packagekit-glib2/pk-console-shared.c:443
 msgid "Copying files"
 msgstr "Dateien werden kopiert"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:426
+#: ../lib/packagekit-glib2/pk-console-shared.c:461
 msgid "Trivial"
 msgstr "Trivial"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:430
+#: ../lib/packagekit-glib2/pk-console-shared.c:465
 msgid "Normal"
 msgstr "Normal"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:434
+#: ../lib/packagekit-glib2/pk-console-shared.c:469
 msgid "Important"
 msgstr "Wichtig"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:438
+#: ../lib/packagekit-glib2/pk-console-shared.c:473
 msgid "Security"
 msgstr "Sicherheit"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:442
+#: ../lib/packagekit-glib2/pk-console-shared.c:477
 msgid "Bug fix "
 msgstr "Problembehebung"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:446
+#: ../lib/packagekit-glib2/pk-console-shared.c:481
 msgid "Enhancement"
 msgstr "Verbesserung"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:450
+#: ../lib/packagekit-glib2/pk-console-shared.c:485
 msgid "Blocked"
 msgstr "Blockiert"
 
 #. TRANSLATORS: The state of a package
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:455
-#: ../lib/packagekit-glib2/pk-console-shared.c:528
+#: ../lib/packagekit-glib2/pk-console-shared.c:490
+#: ../lib/packagekit-glib2/pk-console-shared.c:563
 msgid "Installed"
 msgstr "Installiert"
 
 #. TRANSLATORS: The state of a package, i.e. not installed
-#: ../lib/packagekit-glib2/pk-console-shared.c:460
+#: ../lib/packagekit-glib2/pk-console-shared.c:495
 msgid "Available"
 msgstr "Verfügbar"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:478
+#: ../lib/packagekit-glib2/pk-console-shared.c:513
 msgid "Downloading"
 msgstr "Herunterladen ..."
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:482
+#: ../lib/packagekit-glib2/pk-console-shared.c:517
 msgid "Updating"
 msgstr "Aktualisieren ..."
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:486
-#: ../lib/packagekit-glib2/pk-console-shared.c:606
+#: ../lib/packagekit-glib2/pk-console-shared.c:521
+#: ../lib/packagekit-glib2/pk-console-shared.c:641
 msgid "Installing"
 msgstr "Installieren ..."
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:490
-#: ../lib/packagekit-glib2/pk-console-shared.c:602
+#: ../lib/packagekit-glib2/pk-console-shared.c:525
+#: ../lib/packagekit-glib2/pk-console-shared.c:637
 msgid "Removing"
 msgstr "Entfernen ..."
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:494
+#: ../lib/packagekit-glib2/pk-console-shared.c:529
 msgid "Cleaning up"
 msgstr "Bereinigen ..."
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:498
+#: ../lib/packagekit-glib2/pk-console-shared.c:533
 msgid "Obsoleting"
 msgstr "Veraltetes bereinigen ..."
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:502
+#: ../lib/packagekit-glib2/pk-console-shared.c:537
 msgid "Reinstalling"
 msgstr "Neu installieren …"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:520
+#: ../lib/packagekit-glib2/pk-console-shared.c:555
 msgid "Downloaded"
 msgstr "Heruntergeladen"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:532
+#: ../lib/packagekit-glib2/pk-console-shared.c:567
 msgid "Removed"
 msgstr "Entfernt"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:536
+#: ../lib/packagekit-glib2/pk-console-shared.c:571
 msgid "Cleaned up"
 msgstr "Bereinigt"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:540
+#: ../lib/packagekit-glib2/pk-console-shared.c:575
 msgid "Obsoleted"
 msgstr "Veraltetes bereinigt"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:544
+#: ../lib/packagekit-glib2/pk-console-shared.c:579
 msgid "Reinstalled"
 msgstr "Neu installiert"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:562
+#: ../lib/packagekit-glib2/pk-console-shared.c:597
 msgid "Unknown role type"
 msgstr "Unbekannter Rollentyp"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:566
+#: ../lib/packagekit-glib2/pk-console-shared.c:601
 msgid "Getting dependencies"
 msgstr "Abhängigkeiten werden abgerufen"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:570
+#: ../lib/packagekit-glib2/pk-console-shared.c:605
 msgid "Getting update details"
 msgstr "Details der Aktualisierung werden abgerufen"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:574
+#: ../lib/packagekit-glib2/pk-console-shared.c:609
 msgid "Getting details"
 msgstr "Details werden abgerufen"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:578
+#: ../lib/packagekit-glib2/pk-console-shared.c:613
 msgid "Getting requires"
 msgstr "Anforderungen werden abgerufen"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:582
+#: ../lib/packagekit-glib2/pk-console-shared.c:617
 msgid "Getting updates"
 msgstr "Aktualisierungen werden abgerufen"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:586
+#: ../lib/packagekit-glib2/pk-console-shared.c:621
 msgid "Searching by details"
 msgstr "Suche nach Details"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:590
+#: ../lib/packagekit-glib2/pk-console-shared.c:625
 msgid "Searching by file"
 msgstr "Suche nach Datei"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:594
+#: ../lib/packagekit-glib2/pk-console-shared.c:629
 msgid "Searching groups"
 msgstr "Suche nach Gruppe"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:598
+#: ../lib/packagekit-glib2/pk-console-shared.c:633
 msgid "Searching by name"
 msgstr "Suche nach Name"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:610
+#: ../lib/packagekit-glib2/pk-console-shared.c:645
 msgid "Installing files"
 msgstr "Dateien werden installiert"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:614
+#: ../lib/packagekit-glib2/pk-console-shared.c:649
 msgid "Refreshing cache"
 msgstr "Cache wird aktualisiert"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:618
+#: ../lib/packagekit-glib2/pk-console-shared.c:653
 msgid "Updating packages"
 msgstr "Pakete werden aktualisiert"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:622
+#: ../lib/packagekit-glib2/pk-console-shared.c:657
 msgid "Updating system"
 msgstr "System wird aktualisiert"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:626
+#: ../lib/packagekit-glib2/pk-console-shared.c:661
 msgid "Canceling"
 msgstr "Abbruch"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:634
+#: ../lib/packagekit-glib2/pk-console-shared.c:669
 msgid "Getting repositories"
 msgstr "Depots werden abgerufen"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:638
+#: ../lib/packagekit-glib2/pk-console-shared.c:673
 msgid "Enabling repository"
 msgstr "Depots werden aktiviert"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:642
+#: ../lib/packagekit-glib2/pk-console-shared.c:677
 msgid "Setting data"
 msgstr "Daten werden festgelegt"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:646
+#: ../lib/packagekit-glib2/pk-console-shared.c:681
 msgid "Resolving"
 msgstr "Auflösen"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:650
+#: ../lib/packagekit-glib2/pk-console-shared.c:685
 msgid "Getting file list"
 msgstr "Dateiliste wird abgerufen"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:654
+#: ../lib/packagekit-glib2/pk-console-shared.c:689
 msgid "Getting provides"
 msgstr "Anbieter werden abgerufen"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:658
+#: ../lib/packagekit-glib2/pk-console-shared.c:693
 msgid "Installing signature"
 msgstr "Signatur wird installiert"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:662
+#: ../lib/packagekit-glib2/pk-console-shared.c:697
 msgid "Getting packages"
 msgstr "Pakete werden abgerufen"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:666
+#: ../lib/packagekit-glib2/pk-console-shared.c:701
 msgid "Accepting EULA"
 msgstr "EULA annehmen"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:674
+#: ../lib/packagekit-glib2/pk-console-shared.c:709
 msgid "Getting upgrades"
-msgstr "Aktualisierungen werden abgerufen"
+msgstr "Systemaktualisierungen werden abgerufen"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:678
+#: ../lib/packagekit-glib2/pk-console-shared.c:713
 msgid "Getting categories"
 msgstr "Kategorien werden abgerufen"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:682
+#: ../lib/packagekit-glib2/pk-console-shared.c:717
 msgid "Getting transactions"
 msgstr "Transaktionen werden abgerufen"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:686
-#: ../lib/packagekit-glib2/pk-console-shared.c:690
+#: ../lib/packagekit-glib2/pk-console-shared.c:721
+#: ../lib/packagekit-glib2/pk-console-shared.c:725
 msgid "Simulating install"
 msgstr "Installation wird simuliert"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:694
+#: ../lib/packagekit-glib2/pk-console-shared.c:729
 msgid "Simulating remove"
 msgstr "Entfernen wird simuliert"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:698
+#: ../lib/packagekit-glib2/pk-console-shared.c:733
 msgid "Simulating update"
 msgstr "Aktualisierung wird simuliert"
 
@@ -1815,13 +1828,19 @@ msgstr "Die folgenden Pakete müssen neu installiert werden:"
 msgid "The following packages have to be downgraded:"
 msgstr "Die folgenden Pakete müssen heruntergestuft werden:"
 
+#. TRANSLATORS: When processing, untrusted and non-verified packages may be
+#. encountered
+#: ../lib/packagekit-glib2/pk-task-text.c:325
+msgid "The following packages are untrusted:"
+msgstr "Die folgenden Pakete sind nicht vertrauenswürdig:"
+
 #. TRANSLATORS: ask the user if the proposed changes are okay
-#: ../lib/packagekit-glib2/pk-task-text.c:380
+#: ../lib/packagekit-glib2/pk-task-text.c:385
 msgid "Proceed with changes?"
 msgstr "Mit Änderungen fortfahren?"
 
 #. TRANSLATORS: tell the user we didn't do anything
-#: ../lib/packagekit-glib2/pk-task-text.c:385
+#: ../lib/packagekit-glib2/pk-task-text.c:390
 msgid "The transaction did not proceed."
 msgstr "Die Transaktion wurde nicht weitergeführt"
 
@@ -1857,6 +1876,7 @@ msgid ""
 "Authentication is required to change the location used to decompress "
 "packages"
 msgstr ""
+"Legitimation ist zum Ändern des Ortes zum Entpacken von Paketen erforderlich"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:12
 msgid ""
@@ -1891,7 +1911,7 @@ msgstr "Legitimation ist zum Entfernen eines Paketes erforderlich"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:18
 msgid "Authentication is required to rollback a transaction"
-msgstr "Legitimation ist zum Revidieren einer Transaktion erforderlich"
+msgstr "Legitimation ist zum Zurücknehmen einer Transaktion erforderlich"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:19
 msgid ""
@@ -1907,7 +1927,7 @@ msgstr "Legitimation ist zum Aktualisieren von Paketen erforderlich"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:21
 msgid "Authentication is required to upgrade the operating system"
-msgstr ""
+msgstr "Legitimation ist zum Aktualisieren des Betriebssystems erforderlich"
 
 #. SECURITY:
 #. - Normal users are allowed to cancel their own task without
@@ -1926,7 +1946,7 @@ msgstr "Externe Aufgabe abbrechen"
 #. 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:34
 msgid "Change location that packages are installed"
-msgstr ""
+msgstr "Wechseln Sie den Ort, auf den Pakete installiert werden sollen"
 
 #. SECURITY:
 #. - Normal users require admin authentication to enable or disable
@@ -1996,7 +2016,7 @@ msgstr "Paket entfernen"
 #. 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:83
 msgid "Rollback to a previous transaction"
-msgstr "Eine vorhergehende Transaktion revidieren"
+msgstr "Eine vorhergehende Transaktion zurücknehmen"
 
 #. SECURITY:
 #. - Normal users do not require admin authentication to set the proxy
@@ -2034,103 +2054,72 @@ msgstr "Pakete aktualisieren"
 #. 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:109
 msgid "Upgrade System"
-msgstr ""
-
-#. TRANSLATORS: failed due to DBus security
-#: ../src/pk-main.c:91
-msgid "Startup failed due to security policies on this machine."
-msgstr "Startfehler wegen Sicherheitsrichtlinien auf diesem Rechner"
-
-#. TRANSLATORS: only two ways this can fail...
-#: ../src/pk-main.c:93
-msgid "This can happen for two reasons:"
-msgstr "Dies kann aus zwei Gründen passieren:"
-
-#. TRANSLATORS: only allowed to be owned by root
-#: ../src/pk-main.c:95
-msgid "The correct user is not launching the executable (usually 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:97
-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 "
-"Systemverzeichnis installiert:"
+msgstr "Systemaktualisierung"
 
 #. TRANSLATORS: a backend is the system package tool, e.g. yum, apt
-#: ../src/pk-main.c:223
+#: ../src/pk-main.c:149
 msgid "Packaging backend to use, e.g. dummy"
 msgstr "Zu verwendendes Packaging-Backend, z.B. dummy"
 
 #. TRANSLATORS: if we should run in the background
-#: ../src/pk-main.c:226
+#: ../src/pk-main.c:152
 msgid "Daemonize and detach from the terminal"
 msgstr "In Dienst umwandeln und vom Terminal ablösen"
 
 #. TRANSLATORS: if we should not monitor how long we are inactive for
-#: ../src/pk-main.c:229
+#: ../src/pk-main.c:155
 msgid "Disable the idle timer"
 msgstr "Den Bereitschaftszähler deaktivieren"
 
 #. TRANSLATORS: show version
-#: ../src/pk-main.c:232
+#: ../src/pk-main.c:158
 msgid "Show version and exit"
 msgstr "Version zeigen und beenden"
 
 #. TRANSLATORS: exit after we've started up, used for user profiling
-#: ../src/pk-main.c:235
+#: ../src/pk-main.c:161
 msgid "Exit after a small delay"
 msgstr "Nach kurzer Verzögerung beenden"
 
 #. TRANSLATORS: exit straight away, used for automatic profiling
-#: ../src/pk-main.c:238
+#: ../src/pk-main.c:164
 msgid "Exit after the engine has loaded"
 msgstr "Nach Laden des Kerns beenden"
 
+#. TRANSLATORS: don't unset environment variables, used for debugging
+#: ../src/pk-main.c:167
+msgid "Don't clear environment on startup"
+msgstr ""
+
 #. TRANSLATORS: describing the service that is running
-#: ../src/pk-main.c:253
+#: ../src/pk-main.c:179
 msgid "PackageKit service"
 msgstr "PackageKit-Dienst"
 
-#. TRANSLATORS: fatal error, dbus is not running
-#: ../src/pk-main.c:298
-msgid "Cannot connect to the system bus"
-msgstr "Verbindung zum System-Bus konnte nicht hergestellt werden"
-
-#: ../src/pk-main.c:344
+#: ../src/pk-main.c:253
 msgid "Failed to load any of the specified backends:"
-msgstr ""
-
-#. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error
-#. follows
-#: ../src/pk-main.c:358
-msgid "Error trying to start:"
-msgstr "Fehler beim Startversuch:"
+msgstr "Das Laden von irgendeinem der angegebenen Backends schlug fehl:"
 
 #. TRANSLATORS: is not GPG signed
-#: ../src/pk-transaction.c:2611 ../src/pk-transaction.c:2618
+#: ../src/pk-transaction.c:2696
 msgid "The software is not from a trusted source."
 msgstr "Die Software stammt nicht aus einer vertrauenswürdigen Quelle."
 
-#: ../src/pk-transaction.c:2623
+#: ../src/pk-transaction.c:2704
 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-transaction.c:2624
+#: ../src/pk-transaction.c:2705
 msgid "Do not update these packages unless you are sure it is safe to do so."
 msgstr "Aktualisieren Sie diese Pakete nur, wenn Sie dies für sicher halten."
 
-#: ../src/pk-transaction.c:2634
+#: ../src/pk-transaction.c:2715
 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-transaction.c:2635
+#: ../src/pk-transaction.c:2716
 msgid "Do not install these packages unless you are sure it is safe to do so."
 msgstr "Installieren Sie diese Pakete nur, wenn Sie dies für sicher halten."
 
diff --git a/po/el.po b/po/el.po
index c6b8a13..ffb1aaf 100644
--- a/po/el.po
+++ b/po/el.po
@@ -2,14 +2,18 @@
 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
 # This file is distributed under the same license as the PACKAGE package.
 # 
-# Richard Hughes <richard at hughsie.com>, 2011
+# Translators:
+# Dimitris Glezos <dimitris at glezos.com>, 2008, 2009.
+# Jennie Petoumenou <epetoumenou at gmail.com>, 2009.
+# Richard Hughes <richard at hughsie.com>, 2011.
+# Thalia Papoutsaki <saliyath at gmail.com>, 2009.
 msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-04 10:50+0100\n"
-"PO-Revision-Date: 2011-05-04 09:56+0000\n"
-"Last-Translator: hughsie <richard at hughsie.com>\n"
+"POT-Creation-Date: 2011-11-10 19:50+0000\n"
+"PO-Revision-Date: 2011-11-10 19:50+0000\n"
+"Last-Translator: Richard Hughes <richard at hughsie.com>\n"
 "Language-Team: Greek (http://www.transifex.net/projects/p/freedesktop/team/el/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -195,7 +199,7 @@ msgstr "Δημοσίευση"
 
 #. TRANSLATORS: details about the update, date the update was updated
 #. TRANSLATORS: The action of the package, in past tense
-#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:524
+#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:559
 msgid "Updated"
 msgstr "Ενημέρωση"
 
@@ -285,7 +289,7 @@ msgstr ""
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
 #: ../client/pk-console.c:704
-#: ../contrib/command-not-found/pk-command-not-found.c:639
+#: ../contrib/command-not-found/pk-command-not-found.c:634
 msgid "The transaction failed"
 msgstr "Η εργασία απέτυχε"
 
@@ -340,21 +344,21 @@ msgstr ""
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:866
+#: ../client/pk-console.c:871
 #, c-format
 msgid "This tool could not find any available package: %s"
 msgstr "Το εργαλείο δεν μπόρεσε να βρει κανένα διαθέσιμο πακέτο: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:894
+#: ../client/pk-console.c:899
 #, c-format
 msgid "This tool could not find the installed package: %s"
 msgstr "Το εργαλείο δεν μπόρεσε να βρει το εγκατεστημένο πακέτο: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:922 ../client/pk-console.c:950
+#: ../client/pk-console.c:927 ../client/pk-console.c:955
 #, c-format
 msgid "This tool could not find the package: %s"
 msgstr "Το εργαλείο δεν μπόρεσε να βρει το πακέτο: %s"
@@ -367,228 +371,228 @@ msgstr "Το εργαλείο δεν μπόρεσε να βρει το πακέ
 #. detailed error follows
 #. TRANSLATORS: The package name was not found in any software sources. The
 #. detailed error follows
-#: ../client/pk-console.c:978 ../client/pk-console.c:1006
-#: ../client/pk-console.c:1034 ../client/pk-console.c:1062
-#: ../client/pk-console.c:1090
+#: ../client/pk-console.c:983 ../client/pk-console.c:1011
+#: ../client/pk-console.c:1039 ../client/pk-console.c:1067
+#: ../client/pk-console.c:1095
 #, c-format
 msgid "This tool could not find all the packages: %s"
 msgstr "Το εργαλείο δεν μπόρεσε να βρει όλα τα πακέτα: %s"
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek
 #. without a paddle
-#: ../client/pk-console.c:1119
+#: ../client/pk-console.c:1124
 msgid "The daemon crashed mid-transaction!"
 msgstr "Η υπηρεσία κατέρρευσε κατά τη διάρκεια της εργασίας!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1153
+#: ../client/pk-console.c:1158
 msgid "PackageKit Console Interface"
 msgstr "Διεπαφή κονσόλας Packagekit"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1155
+#: ../client/pk-console.c:1160
 msgid "Subcommands:"
 msgstr "Υποεντολές:"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was
 #. last executed
-#: ../client/pk-console.c:1235
+#: ../client/pk-console.c:1240
 msgid "Failed to get the time since this action was last completed"
 msgstr ""
 "Δε βρέθηκε ο χρόνος που είχε ολοκληρωθεί για τελευταία φορά η ενέργεια"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1277 ../client/pk-monitor.c:371
+#: ../client/pk-console.c:1282 ../client/pk-monitor.c:371
 msgid "Show the program version and exit"
 msgstr "Εμφάνιση της έκδοσης του προγράμματος και έξοδος"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1280
+#: ../client/pk-console.c:1285
 msgid "Set the filter, e.g. installed"
 msgstr "Ορισμός του φίλτρου, π.χ. εγκατεστημένα"
 
 #. TRANSLATORS: command line argument, use a non-standard install prefix
-#: ../client/pk-console.c:1283
+#: ../client/pk-console.c:1288
 msgid "Set the install root, e.g. '/' or '/mnt/ltsp'"
 msgstr ""
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1286
+#: ../client/pk-console.c:1291
 msgid "Exit without waiting for actions to complete"
 msgstr "Έξοδος χωρίς να περιμένετε να ολοκληρωθούν οι ενέργειες"
 
 #. command line argument, do we ask questions
-#: ../client/pk-console.c:1289
+#: ../client/pk-console.c:1294
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:525
 msgid "Install the packages without asking for confirmation"
 msgstr "Εγκαταστείστε τα πακέτα χωρίς να ζητήσετε επιβεβαίωση"
 
 #. TRANSLATORS: command line argument, this command is not a priority
-#: ../client/pk-console.c:1292
+#: ../client/pk-console.c:1297
 msgid "Run the command using idle network bandwidth and also using less power"
 msgstr ""
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1295
+#: ../client/pk-console.c:1300
 msgid ""
 "Print to screen a machine readable output, rather than using animated "
 "widgets"
 msgstr ""
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1298
+#: ../client/pk-console.c:1303
 msgid "The maximum metadata cache age. Use -1 for 'never'."
 msgstr ""
 
 #. TRANSLATORS: command line argument, --help
-#: ../client/pk-console.c:1301
+#: ../client/pk-console.c:1306
 msgid "Show help options."
 msgstr ""
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1331
+#: ../client/pk-console.c:1336
 msgid "Failed to parse command line"
 msgstr ""
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1341
+#: ../client/pk-console.c:1346
 msgid "Failed to contact PackageKit"
 msgstr "Απέτυχε η επικοινωνία με το PackageKit"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1394
+#: ../client/pk-console.c:1399
 msgid "The proxy could not be set"
 msgstr ""
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1406
+#: ../client/pk-console.c:1411
 msgid "The install root could not be set"
 msgstr ""
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1418
+#: ../client/pk-console.c:1423
 msgid "The filter specified was invalid"
 msgstr "Το φίλτρο που ορίστηκε δεν ήταν έγκυρο"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1437
+#: ../client/pk-console.c:1442
 msgid "A search type is required, e.g. name"
 msgstr "Πρέπει να οριστεί ο τύπος της αναζήτησης, π.χ. όνομα"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1444 ../client/pk-console.c:1456
-#: ../client/pk-console.c:1468 ../client/pk-console.c:1480
+#: ../client/pk-console.c:1449 ../client/pk-console.c:1461
+#: ../client/pk-console.c:1473 ../client/pk-console.c:1485
 msgid "A search term is required"
 msgstr "Πρέπει να οριστεί όρος προς αναζήτηση"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1490
+#: ../client/pk-console.c:1495
 msgid "Invalid search type"
 msgstr "Μη έγκυρος τύπος αναζήτησης"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1496
+#: ../client/pk-console.c:1501
 msgid "A package name to install is required"
 msgstr "Πρέπει να οριστεί όνομα πακέτου για τον καθορισμό"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1505
+#: ../client/pk-console.c:1510
 msgid "A filename to install is required"
 msgstr "Πρέπει να οριστεί όνομα αρχείου προς εγκατάσταση"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1516
+#: ../client/pk-console.c:1521
 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:1527
+#: ../client/pk-console.c:1532
 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:1536
+#: ../client/pk-console.c:1541
 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:1543
+#: ../client/pk-console.c:1548
 msgid "Directory not found"
 msgstr "Δε βρέθηκε ο κατάλογος"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1552
+#: ../client/pk-console.c:1557
 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:1563
+#: ../client/pk-console.c:1568
 msgid "A transaction identifier (tid) is required"
 msgstr "Πρέπει να οριστεί αναγνωριστικό εργασίας (tid)"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:1584
+#: ../client/pk-console.c:1589
 msgid "A package name to resolve is required"
 msgstr "Πρέπει να οριστεί όνομα πακέτου για τον καθορισμό"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:1595 ../client/pk-console.c:1606
+#: ../client/pk-console.c:1600 ../client/pk-console.c:1611
 msgid "A repository name is required"
 msgstr "Πρέπει να οριστεί όνομα αποθετηρίου"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:1617
+#: ../client/pk-console.c:1622
 msgid "A repo name, parameter and value are required"
 msgstr "Πρέπει να οριστούν όνομα, παράμετρος και τιμή αποθετηρίου"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:1634
+#: ../client/pk-console.c:1639
 msgid "An action, e.g. 'update-system' is required"
 msgstr "Πρέπει να οριστεί μια ενέργεια, π.χ. 'ενημέρωση συστήματος'"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:1641
+#: ../client/pk-console.c:1646
 msgid "A correct role is required"
 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:1651 ../client/pk-console.c:1665
-#: ../client/pk-console.c:1674 ../client/pk-console.c:1694
-#: ../client/pk-console.c:1703 ../client/pk-generate-pack.c:314
+#: ../client/pk-console.c:1656 ../client/pk-console.c:1670
+#: ../client/pk-console.c:1679 ../client/pk-console.c:1699
+#: ../client/pk-console.c:1708 ../client/pk-generate-pack.c:314
 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:1683
+#: ../client/pk-console.c:1688
 msgid "A package provide string is required"
 msgstr "Πρέπει να οριστεί αλφαριθμητικό με το τι παρέχει το αρχείο"
 
 #. TRANSLATORS: The user did not provide a distro name
-#: ../client/pk-console.c:1727
+#: ../client/pk-console.c:1732
 msgid "A distribution name is required"
 msgstr ""
 
 #. TRANSLATORS: The user did not provide an upgrade type
-#: ../client/pk-console.c:1733
+#: ../client/pk-console.c:1738
 msgid "An upgrade type is required, e.g. 'minimal', 'default' or 'complete'"
 msgstr ""
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command
 #. line
-#: ../client/pk-console.c:1783
+#: ../client/pk-console.c:1788
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "Η επιλογή '%s' δεν υποστηρίζεται"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:1793
+#: ../client/pk-console.c:1798
 msgid "Command failed"
 msgstr "Η εντολή απέτυχε"
 
@@ -729,159 +733,154 @@ msgid "PackageKit Monitor"
 msgstr "Παρακολούθηση PackageKit"
 
 #. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/pk-plugin-install.c:499
+#: ../contrib/browser-plugin/pk-plugin-install.c:503
 msgid "Getting package information..."
 msgstr "Λήψη πληροφοριών πακέτου..."
 
 #. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/pk-plugin-install.c:505
+#: ../contrib/browser-plugin/pk-plugin-install.c:509
 #, c-format
 msgid "Run %s"
 msgstr "Εκτέλεση %s"
 
 #. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:511
+#: ../contrib/browser-plugin/pk-plugin-install.c:515
 msgid "Installed version"
 msgstr "Εγκατεστημένη έκδοση"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:519
+#: ../contrib/browser-plugin/pk-plugin-install.c:523
 #, c-format
 msgid "Run version %s now"
 msgstr "Εκτέλεση της έκδοσης %s τώρα"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:525
+#: ../contrib/browser-plugin/pk-plugin-install.c:529
 msgid "Run now"
 msgstr "Εκτέλεση τώρα"
 
 #. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:531
+#: ../contrib/browser-plugin/pk-plugin-install.c:535
 #, c-format
 msgid "Update to version %s"
 msgstr "Εγκατάσταση της ενημερωμένης έκδοσης %s"
 
 #. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:537
+#: ../contrib/browser-plugin/pk-plugin-install.c:541
 #, c-format
 msgid "Install %s now"
 msgstr "Εγκατάσταση %s τώρα"
 
 #. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:540
+#: ../contrib/browser-plugin/pk-plugin-install.c:544
 msgid "Version"
 msgstr "Έκδοση"
 
 #. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/pk-plugin-install.c:545
+#: ../contrib/browser-plugin/pk-plugin-install.c:549
 msgid "No packages found for your system"
 msgstr "Δε βρέθηκαν πακέτα για το σύστημά σας"
 
 #. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/pk-plugin-install.c:550
+#: ../contrib/browser-plugin/pk-plugin-install.c:554
 msgid "Installing..."
 msgstr "Εγκατάσταση..."
 
 #. TRANSLATORS: downloading repo data so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:366
+#: ../contrib/command-not-found/pk-command-not-found.c:363
 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:370
+#: ../contrib/command-not-found/pk-command-not-found.c:367
 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:374
+#: ../contrib/command-not-found/pk-command-not-found.c:371
 msgid "Waiting for package manager lock."
 msgstr ""
 
 #. TRANSLATORS: loading package cache so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:378
+#: ../contrib/command-not-found/pk-command-not-found.c:375
 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:444
+#: ../contrib/command-not-found/pk-command-not-found.c:439
 msgid "Failed to search for file"
 msgstr "Δεν ήταν δυνατή η αναζήτηση για το αρχείο"
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
-#: ../contrib/command-not-found/pk-command-not-found.c:456
+#: ../contrib/command-not-found/pk-command-not-found.c:451
 msgid "Getting the list of files failed"
 msgstr ""
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:602
+#: ../contrib/command-not-found/pk-command-not-found.c:597
 msgid "Failed to launch:"
 msgstr "Δεν ήταν δυνατή η εκκίνηση:"
 
 #. TRANSLATORS: we failed to install the package
-#: ../contrib/command-not-found/pk-command-not-found.c:630
+#: ../contrib/command-not-found/pk-command-not-found.c:625
 msgid "Failed to install packages"
 msgstr ""
 
-#. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/command-not-found/pk-command-not-found.c:706
-msgid "PackageKit Command Not Found"
-msgstr "Δε βρέθηκε η εντολή του PackageKit"
-
 #. TRANSLATORS: the prefix of all the output telling the user
 #. * why it's not executing. NOTE: this is lowercase to mimic
 #. * the style of bash itself -- apologies
-#: ../contrib/command-not-found/pk-command-not-found.c:741
+#: ../contrib/command-not-found/pk-command-not-found.c:723
 msgid "command not found"
 msgstr ""
 
 #. TRANSLATORS: tell the user what we think the command is
-#: ../contrib/command-not-found/pk-command-not-found.c:759
+#: ../contrib/command-not-found/pk-command-not-found.c:741
 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:773
+#: ../contrib/command-not-found/pk-command-not-found.c:755
 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:787
-#: ../contrib/command-not-found/pk-command-not-found.c:796
+#: ../contrib/command-not-found/pk-command-not-found.c:769
+#: ../contrib/command-not-found/pk-command-not-found.c:778
 msgid "Similar commands are:"
 msgstr "Παρόμοιες εντολές:"
 
 #. TRANSLATORS: ask the user to choose a file to run
-#: ../contrib/command-not-found/pk-command-not-found.c:803
+#: ../contrib/command-not-found/pk-command-not-found.c:785
 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:821
+#: ../contrib/command-not-found/pk-command-not-found.c:803
 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:828
+#: ../contrib/command-not-found/pk-command-not-found.c:810
 #, 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:855
+#: ../contrib/command-not-found/pk-command-not-found.c:837
 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:865
+#: ../contrib/command-not-found/pk-command-not-found.c:847
 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:874
+#: ../contrib/command-not-found/pk-command-not-found.c:856
 msgid "Please choose a package to install"
 msgstr "Παρακαλώ, επιλέξτε πακέτο προς εγκατάσταση"
 
@@ -1055,7 +1054,7 @@ msgstr "Δεν εγκαθίστανται πακέτα κατά τη λειτο
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
 #. TRANSLATORS: transaction state, installing packages
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:860
-#: ../lib/packagekit-glib2/pk-console-shared.c:296
+#: ../lib/packagekit-glib2/pk-console-shared.c:331
 #, c-format
 msgid "Installing packages"
 msgstr "Εγκατάσταση πακέτων..."
@@ -1189,474 +1188,474 @@ msgstr "Λίστα πακέτων PackageKit"
 msgid "PackageKit Service Pack"
 msgstr "Πακέτο τεκμηρίωσης PackageKit"
 
-#: ../lib/packagekit-glib2/pk-console-shared.c:64
+#: ../lib/packagekit-glib2/pk-console-shared.c:65
 #, c-format
 msgid "Please enter a number from 1 to %i: "
 msgstr "Παρακαλώ, εισάγετε έναν αριθμό από το 1 μέχρι το %i: "
 
 #. TRANSLATORS: more than one package could be found that matched, to follow
 #. is a list of possible packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:198
+#: ../lib/packagekit-glib2/pk-console-shared.c:233
 msgid "More than one package matches:"
 msgstr "Βρέθηκαν πολλαπλά πακέτα:"
 
 #. TRANSLATORS: This finds out which package in the list to use
-#: ../lib/packagekit-glib2/pk-console-shared.c:209
+#: ../lib/packagekit-glib2/pk-console-shared.c:244
 msgid "Please choose the correct package: "
 msgstr "Παρακαλώ, επιλέξτε το σωστό πακέτο: "
 
 #. TRANSLATORS: This is when the transaction status is not known
-#: ../lib/packagekit-glib2/pk-console-shared.c:264
+#: ../lib/packagekit-glib2/pk-console-shared.c:299
 msgid "Unknown state"
 msgstr "Άγνωστη κατάσταση"
 
 #. TRANSLATORS: transaction state, the daemon is in the process of starting
-#: ../lib/packagekit-glib2/pk-console-shared.c:268
+#: ../lib/packagekit-glib2/pk-console-shared.c:303
 msgid "Starting"
 msgstr "Εκκίνηση..."
 
 #. TRANSLATORS: transaction state, the transaction is waiting for another to
 #. complete
-#: ../lib/packagekit-glib2/pk-console-shared.c:272
+#: ../lib/packagekit-glib2/pk-console-shared.c:307
 msgid "Waiting in queue"
 msgstr "Αναμονή στην ουρά"
 
 #. TRANSLATORS: transaction state, just started
-#: ../lib/packagekit-glib2/pk-console-shared.c:276
+#: ../lib/packagekit-glib2/pk-console-shared.c:311
 msgid "Running"
 msgstr "Εκτελείται"
 
 #. TRANSLATORS: transaction state, is querying data
-#: ../lib/packagekit-glib2/pk-console-shared.c:280
+#: ../lib/packagekit-glib2/pk-console-shared.c:315
 msgid "Querying"
 msgstr ""
 
 #. TRANSLATORS: transaction state, getting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:284
+#: ../lib/packagekit-glib2/pk-console-shared.c:319
 msgid "Getting information"
 msgstr "Λήψη πληροφοριών..."
 
 #. TRANSLATORS: transaction state, removing packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:288
+#: ../lib/packagekit-glib2/pk-console-shared.c:323
 msgid "Removing packages"
 msgstr "Αφαίρεση πακέτων"
 
 #. TRANSLATORS: transaction state, downloading package files
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:292
-#: ../lib/packagekit-glib2/pk-console-shared.c:670
+#: ../lib/packagekit-glib2/pk-console-shared.c:327
+#: ../lib/packagekit-glib2/pk-console-shared.c:705
 msgid "Downloading packages"
 msgstr "Λήψη πακέτων..."
 
 #. TRANSLATORS: transaction state, refreshing internal lists
-#: ../lib/packagekit-glib2/pk-console-shared.c:300
+#: ../lib/packagekit-glib2/pk-console-shared.c:335
 msgid "Refreshing software list"
 msgstr ""
 
 #. TRANSLATORS: transaction state, installing updates
-#: ../lib/packagekit-glib2/pk-console-shared.c:304
+#: ../lib/packagekit-glib2/pk-console-shared.c:339
 msgid "Installing updates"
 msgstr "Εγκατάσταση ενημερώσεων..."
 
 #. TRANSLATORS: transaction state, removing old packages, and cleaning config
 #. files
-#: ../lib/packagekit-glib2/pk-console-shared.c:308
+#: ../lib/packagekit-glib2/pk-console-shared.c:343
 msgid "Cleaning up packages"
 msgstr ""
 
 #. TRANSLATORS: transaction state, obsoleting old packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:312
+#: ../lib/packagekit-glib2/pk-console-shared.c:347
 msgid "Obsoleting packages"
 msgstr ""
 
 #. TRANSLATORS: transaction state, checking the transaction before we do it
-#: ../lib/packagekit-glib2/pk-console-shared.c:316
+#: ../lib/packagekit-glib2/pk-console-shared.c:351
 msgid "Resolving dependencies"
 msgstr ""
 
 #. TRANSLATORS: transaction state, checking if we have all the security keys
 #. for the operation
-#: ../lib/packagekit-glib2/pk-console-shared.c:320
+#: ../lib/packagekit-glib2/pk-console-shared.c:355
 msgid "Checking signatures"
 msgstr "Έλεγχος υπογραφών"
 
 #. TRANSLATORS: transaction state, when we return to a previous system state
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:324
-#: ../lib/packagekit-glib2/pk-console-shared.c:630
+#: ../lib/packagekit-glib2/pk-console-shared.c:359
+#: ../lib/packagekit-glib2/pk-console-shared.c:665
 msgid "Rolling back"
 msgstr ""
 
 #. TRANSLATORS: transaction state, when we're doing a test transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:328
+#: ../lib/packagekit-glib2/pk-console-shared.c:363
 msgid "Testing changes"
 msgstr "Έλεγχος αλλαγών..."
 
 #. TRANSLATORS: transaction state, when we're writing to the system package
 #. database
-#: ../lib/packagekit-glib2/pk-console-shared.c:332
+#: ../lib/packagekit-glib2/pk-console-shared.c:367
 msgid "Committing changes"
 msgstr ""
 
 #. TRANSLATORS: transaction state, requesting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:336
+#: ../lib/packagekit-glib2/pk-console-shared.c:371
 msgid "Requesting data"
 msgstr ""
 
 #. TRANSLATORS: transaction state, all done!
-#: ../lib/packagekit-glib2/pk-console-shared.c:340
+#: ../lib/packagekit-glib2/pk-console-shared.c:375
 msgid "Finished"
 msgstr "Ολοκληρώθηκε"
 
 #. TRANSLATORS: transaction state, in the process of cancelling
-#: ../lib/packagekit-glib2/pk-console-shared.c:344
+#: ../lib/packagekit-glib2/pk-console-shared.c:379
 msgid "Cancelling"
 msgstr "Ακύρωση"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:348
+#: ../lib/packagekit-glib2/pk-console-shared.c:383
 msgid "Downloading repository information"
 msgstr "Λήψη πληροφοριών αποθετηρίου"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:352
+#: ../lib/packagekit-glib2/pk-console-shared.c:387
 msgid "Downloading list of packages"
 msgstr "Λήψη λίστας πακέτων..."
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:356
+#: ../lib/packagekit-glib2/pk-console-shared.c:391
 msgid "Downloading file lists"
 msgstr ""
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:360
+#: ../lib/packagekit-glib2/pk-console-shared.c:395
 msgid "Downloading lists of changes"
 msgstr ""
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:364
+#: ../lib/packagekit-glib2/pk-console-shared.c:399
 msgid "Downloading groups"
 msgstr ""
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:368
+#: ../lib/packagekit-glib2/pk-console-shared.c:403
 msgid "Downloading update information"
 msgstr ""
 
 #. TRANSLATORS: transaction state, repackaging delta files
-#: ../lib/packagekit-glib2/pk-console-shared.c:372
+#: ../lib/packagekit-glib2/pk-console-shared.c:407
 msgid "Repackaging files"
 msgstr ""
 
 #. TRANSLATORS: transaction state, loading databases
-#: ../lib/packagekit-glib2/pk-console-shared.c:376
+#: ../lib/packagekit-glib2/pk-console-shared.c:411
 msgid "Loading cache"
 msgstr ""
 
 #. TRANSLATORS: transaction state, scanning for running processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:380
+#: ../lib/packagekit-glib2/pk-console-shared.c:415
 msgid "Scanning applications"
 msgstr ""
 
 #. TRANSLATORS: transaction state, generating a list of packages installed on
 #. the system
-#: ../lib/packagekit-glib2/pk-console-shared.c:384
+#: ../lib/packagekit-glib2/pk-console-shared.c:419
 msgid "Generating package lists"
 msgstr ""
 
 #. TRANSLATORS: transaction state, when we're waiting for the native tools to
 #. exit
-#: ../lib/packagekit-glib2/pk-console-shared.c:388
+#: ../lib/packagekit-glib2/pk-console-shared.c:423
 msgid "Waiting for package manager lock"
 msgstr ""
 
 #. TRANSLATORS: transaction state, waiting for user to type in a password
-#: ../lib/packagekit-glib2/pk-console-shared.c:392
+#: ../lib/packagekit-glib2/pk-console-shared.c:427
 msgid "Waiting for authentication"
 msgstr "Αναμονή για πιστοποίηση"
 
 #. TRANSLATORS: transaction state, we are updating the list of processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:396
+#: ../lib/packagekit-glib2/pk-console-shared.c:431
 msgid "Updating running applications"
 msgstr ""
 
 #. TRANSLATORS: transaction state, we are checking executable files currently
 #. in use
-#: ../lib/packagekit-glib2/pk-console-shared.c:400
+#: ../lib/packagekit-glib2/pk-console-shared.c:435
 msgid "Checking applications in use"
 msgstr "Έλεγχος εφαρμογών σε χρήση"
 
 #. TRANSLATORS: transaction state, we are checking for libraries currently in
 #. use
-#: ../lib/packagekit-glib2/pk-console-shared.c:404
+#: ../lib/packagekit-glib2/pk-console-shared.c:439
 msgid "Checking libraries in use"
 msgstr "Έλεγχος βιβλιοθηκών σε χρήση"
 
 #. TRANSLATORS: transaction state, we are copying package files before or
 #. after the transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:408
+#: ../lib/packagekit-glib2/pk-console-shared.c:443
 msgid "Copying files"
 msgstr "Αντιγραφή αρχείων"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:426
+#: ../lib/packagekit-glib2/pk-console-shared.c:461
 msgid "Trivial"
 msgstr "Ασήμαντο"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:430
+#: ../lib/packagekit-glib2/pk-console-shared.c:465
 msgid "Normal"
 msgstr ""
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:434
+#: ../lib/packagekit-glib2/pk-console-shared.c:469
 msgid "Important"
 msgstr "Σημαντικό"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:438
+#: ../lib/packagekit-glib2/pk-console-shared.c:473
 msgid "Security"
 msgstr ""
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:442
+#: ../lib/packagekit-glib2/pk-console-shared.c:477
 msgid "Bug fix "
 msgstr ""
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:446
+#: ../lib/packagekit-glib2/pk-console-shared.c:481
 msgid "Enhancement"
 msgstr ""
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:450
+#: ../lib/packagekit-glib2/pk-console-shared.c:485
 msgid "Blocked"
 msgstr ""
 
 #. TRANSLATORS: The state of a package
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:455
-#: ../lib/packagekit-glib2/pk-console-shared.c:528
+#: ../lib/packagekit-glib2/pk-console-shared.c:490
+#: ../lib/packagekit-glib2/pk-console-shared.c:563
 msgid "Installed"
 msgstr ""
 
 #. TRANSLATORS: The state of a package, i.e. not installed
-#: ../lib/packagekit-glib2/pk-console-shared.c:460
+#: ../lib/packagekit-glib2/pk-console-shared.c:495
 msgid "Available"
 msgstr "Διαθέσιμο"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:478
+#: ../lib/packagekit-glib2/pk-console-shared.c:513
 msgid "Downloading"
 msgstr "Λήψη..."
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:482
+#: ../lib/packagekit-glib2/pk-console-shared.c:517
 msgid "Updating"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:486
-#: ../lib/packagekit-glib2/pk-console-shared.c:606
+#: ../lib/packagekit-glib2/pk-console-shared.c:521
+#: ../lib/packagekit-glib2/pk-console-shared.c:641
 msgid "Installing"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:490
-#: ../lib/packagekit-glib2/pk-console-shared.c:602
+#: ../lib/packagekit-glib2/pk-console-shared.c:525
+#: ../lib/packagekit-glib2/pk-console-shared.c:637
 msgid "Removing"
 msgstr "Αφαίρεση"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:494
+#: ../lib/packagekit-glib2/pk-console-shared.c:529
 msgid "Cleaning up"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:498
+#: ../lib/packagekit-glib2/pk-console-shared.c:533
 msgid "Obsoleting"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:502
+#: ../lib/packagekit-glib2/pk-console-shared.c:537
 msgid "Reinstalling"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:520
+#: ../lib/packagekit-glib2/pk-console-shared.c:555
 msgid "Downloaded"
 msgstr "Λήφθηκε"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:532
+#: ../lib/packagekit-glib2/pk-console-shared.c:567
 msgid "Removed"
 msgstr "Έχει αφαιρεθεί"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:536
+#: ../lib/packagekit-glib2/pk-console-shared.c:571
 msgid "Cleaned up"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:540
+#: ../lib/packagekit-glib2/pk-console-shared.c:575
 msgid "Obsoleted"
 msgstr "Αντικαταστάθηκε"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:544
+#: ../lib/packagekit-glib2/pk-console-shared.c:579
 msgid "Reinstalled"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:562
+#: ../lib/packagekit-glib2/pk-console-shared.c:597
 msgid "Unknown role type"
 msgstr "Άγνωστος τύπος ρόλου"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:566
+#: ../lib/packagekit-glib2/pk-console-shared.c:601
 msgid "Getting dependencies"
 msgstr "Λήψη εξαρτήσεων"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:570
+#: ../lib/packagekit-glib2/pk-console-shared.c:605
 msgid "Getting update details"
 msgstr "Λήψη λεπτομερειών ενημέρωσης"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:574
+#: ../lib/packagekit-glib2/pk-console-shared.c:609
 msgid "Getting details"
 msgstr "Λήψη λεπτομερειών"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:578
+#: ../lib/packagekit-glib2/pk-console-shared.c:613
 msgid "Getting requires"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:582
+#: ../lib/packagekit-glib2/pk-console-shared.c:617
 msgid "Getting updates"
 msgstr "Λήψη ενημερώσεων"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:586
+#: ../lib/packagekit-glib2/pk-console-shared.c:621
 msgid "Searching by details"
 msgstr "Αναζήτηση βάσει λεπτομερειών"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:590
+#: ../lib/packagekit-glib2/pk-console-shared.c:625
 msgid "Searching by file"
 msgstr "Αναζήτηση κατά αρχείο:"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:594
+#: ../lib/packagekit-glib2/pk-console-shared.c:629
 msgid "Searching groups"
 msgstr "Αναζήτηση ομάδων:"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:598
+#: ../lib/packagekit-glib2/pk-console-shared.c:633
 msgid "Searching by name"
 msgstr "Αναζήτηση κατά όνομα:"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:610
+#: ../lib/packagekit-glib2/pk-console-shared.c:645
 msgid "Installing files"
 msgstr "Εγκατάσταση αρχείων"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:614
+#: ../lib/packagekit-glib2/pk-console-shared.c:649
 msgid "Refreshing cache"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:618
+#: ../lib/packagekit-glib2/pk-console-shared.c:653
 msgid "Updating packages"
 msgstr "Ενημέρωση πακέτων"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:622
+#: ../lib/packagekit-glib2/pk-console-shared.c:657
 msgid "Updating system"
 msgstr "Ενημέρωση συστήματος"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:626
+#: ../lib/packagekit-glib2/pk-console-shared.c:661
 msgid "Canceling"
 msgstr "Ακύρωση"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:634
+#: ../lib/packagekit-glib2/pk-console-shared.c:669
 msgid "Getting repositories"
 msgstr "Λήψη αποθετηρίων"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:638
+#: ../lib/packagekit-glib2/pk-console-shared.c:673
 msgid "Enabling repository"
 msgstr "Ενεργοποίηση του αποθετηρίου"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:642
+#: ../lib/packagekit-glib2/pk-console-shared.c:677
 msgid "Setting data"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:646
+#: ../lib/packagekit-glib2/pk-console-shared.c:681
 msgid "Resolving"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:650
+#: ../lib/packagekit-glib2/pk-console-shared.c:685
 msgid "Getting file list"
 msgstr "Λήψη λίστας αρχείων"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:654
+#: ../lib/packagekit-glib2/pk-console-shared.c:689
 msgid "Getting provides"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:658
+#: ../lib/packagekit-glib2/pk-console-shared.c:693
 msgid "Installing signature"
 msgstr "Εγκατάσταση υπογραφής"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:662
+#: ../lib/packagekit-glib2/pk-console-shared.c:697
 msgid "Getting packages"
 msgstr "Λήψη πακέτων..."
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:666
+#: ../lib/packagekit-glib2/pk-console-shared.c:701
 msgid "Accepting EULA"
 msgstr "Αποδοχή άδειας χρήσης (EULA)"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:674
+#: ../lib/packagekit-glib2/pk-console-shared.c:709
 msgid "Getting upgrades"
 msgstr "Λήψη αναβαθμίσεων"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:678
+#: ../lib/packagekit-glib2/pk-console-shared.c:713
 msgid "Getting categories"
 msgstr "Λήψη κατηγοριών"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:682
+#: ../lib/packagekit-glib2/pk-console-shared.c:717
 msgid "Getting transactions"
 msgstr "Λήψη εργασιών"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:686
-#: ../lib/packagekit-glib2/pk-console-shared.c:690
+#: ../lib/packagekit-glib2/pk-console-shared.c:721
+#: ../lib/packagekit-glib2/pk-console-shared.c:725
 msgid "Simulating install"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:694
+#: ../lib/packagekit-glib2/pk-console-shared.c:729
 msgid "Simulating remove"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:698
+#: ../lib/packagekit-glib2/pk-console-shared.c:733
 msgid "Simulating update"
 msgstr ""
 
@@ -1806,13 +1805,19 @@ msgstr "Τα παρακάτω πακέτα πρέπει να εγκαταστα
 msgid "The following packages have to be downgraded:"
 msgstr ""
 
+#. TRANSLATORS: When processing, untrusted and non-verified packages may be
+#. encountered
+#: ../lib/packagekit-glib2/pk-task-text.c:325
+msgid "The following packages are untrusted:"
+msgstr ""
+
 #. TRANSLATORS: ask the user if the proposed changes are okay
-#: ../lib/packagekit-glib2/pk-task-text.c:380
+#: ../lib/packagekit-glib2/pk-task-text.c:385
 msgid "Proceed with changes?"
 msgstr "Να προχωρήσουν οι αλλαγές?"
 
 #. TRANSLATORS: tell the user we didn't do anything
-#: ../lib/packagekit-glib2/pk-task-text.c:385
+#: ../lib/packagekit-glib2/pk-task-text.c:390
 msgid "The transaction did not proceed."
 msgstr ""
 
@@ -2024,101 +2029,68 @@ msgstr "Ενημέρωση πακέτων"
 msgid "Upgrade System"
 msgstr ""
 
-#. TRANSLATORS: failed due to DBus security
-#: ../src/pk-main.c:91
-msgid "Startup failed due to security policies on this machine."
-msgstr ""
-"Δεν ήταν δυνατή η εκκίνηση εξαιτίας των πολιτικών ασφαλείας του συστήματος."
-
-#. TRANSLATORS: only two ways this can fail...
-#: ../src/pk-main.c:93
-msgid "This can happen for two reasons:"
-msgstr "Αυτό μπορεί να οφείλεται σε δύο λόγους:"
-
-#. TRANSLATORS: only allowed to be owned by root
-#: ../src/pk-main.c:95
-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:97
-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:223
+#: ../src/pk-main.c:149
 msgid "Packaging backend to use, e.g. dummy"
 msgstr "Σύστημα υποστήριξης που θα χρησιμοποιηθεί, π.χ. dummy"
 
 #. TRANSLATORS: if we should run in the background
-#: ../src/pk-main.c:226
+#: ../src/pk-main.c:152
 msgid "Daemonize and detach from the terminal"
 msgstr "Δημιουργία υπηρεσίας και αποκοπή από το τερματικό"
 
 #. TRANSLATORS: if we should not monitor how long we are inactive for
-#: ../src/pk-main.c:229
+#: ../src/pk-main.c:155
 msgid "Disable the idle timer"
 msgstr "Απενεργοποίηση του χρονομέτρου αδράνειας"
 
 #. TRANSLATORS: show version
-#: ../src/pk-main.c:232
+#: ../src/pk-main.c:158
 msgid "Show version and exit"
 msgstr "Εμφάνιση έκδοσης και έξοδος"
 
 #. TRANSLATORS: exit after we've started up, used for user profiling
-#: ../src/pk-main.c:235
+#: ../src/pk-main.c:161
 msgid "Exit after a small delay"
 msgstr "Έξοδος μετά από μικρή καθυστέρηση"
 
 #. TRANSLATORS: exit straight away, used for automatic profiling
-#: ../src/pk-main.c:238
+#: ../src/pk-main.c:164
 msgid "Exit after the engine has loaded"
 msgstr "Έξοδος μετά τη φόρτωση της μηχανής"
 
+#. TRANSLATORS: don't unset environment variables, used for debugging
+#: ../src/pk-main.c:167
+msgid "Don't clear environment on startup"
+msgstr ""
+
 #. TRANSLATORS: describing the service that is running
-#: ../src/pk-main.c:253
+#: ../src/pk-main.c:179
 msgid "PackageKit service"
 msgstr "Υπηρεσία PackageKit"
 
-#. TRANSLATORS: fatal error, dbus is not running
-#: ../src/pk-main.c:298
-msgid "Cannot connect to the system bus"
-msgstr "Δεν είναι δυνατή η σύνδεση στο δίαυλο του συστήματος"
-
-#: ../src/pk-main.c:344
+#: ../src/pk-main.c:253
 msgid "Failed to load any of the specified backends:"
 msgstr ""
 
-#. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error
-#. follows
-#: ../src/pk-main.c:358
-msgid "Error trying to start:"
-msgstr "Σφάλμα κατα την προσπάθεια έναρξης:"
-
 #. TRANSLATORS: is not GPG signed
-#: ../src/pk-transaction.c:2611 ../src/pk-transaction.c:2618
+#: ../src/pk-transaction.c:2696
 msgid "The software is not from a trusted source."
 msgstr "Το λογισμικό δεν προέρχεται από έμπιστη πηγή."
 
-#: ../src/pk-transaction.c:2623
+#: ../src/pk-transaction.c:2704
 msgid "Do not update this package unless you are sure it is safe to do so."
 msgstr "Ενημερώστε αυτό το πακέτο μόνο αν είστε βέβαιοι ότι είναι ασφαλές."
 
-#: ../src/pk-transaction.c:2624
+#: ../src/pk-transaction.c:2705
 msgid "Do not update these packages unless you are sure it is safe to do so."
 msgstr "Ενημερώστε αυτό το πακέτο μόνο αν είστε βέβαιοι ότι είναι ασφαλές."
 
-#: ../src/pk-transaction.c:2634
+#: ../src/pk-transaction.c:2715
 msgid "Do not install this package unless you are sure it is safe to do so."
 msgstr "Εγκαταστήστε αυτό το πακέτο μόνο αν είστε βέβαιοι ότι είναι ασφαλές."
 
-#: ../src/pk-transaction.c:2635
+#: ../src/pk-transaction.c:2716
 msgid "Do not install these packages unless you are sure it is safe to do so."
 msgstr "Εγκαταστήστε αυτό το πακέτο μόνο αν είστε βέβαιοι ότι είναι ασφαλές."
 
diff --git a/po/en_GB.po b/po/en_GB.po
index 2d32a07..501400d 100644
--- a/po/en_GB.po
+++ b/po/en_GB.po
@@ -2,14 +2,16 @@
 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
 # This file is distributed under the same license as the PACKAGE package.
 # 
-# Richard Hughes <richard at hughsie.com>, 2011
+# Translators:
+# Richard Hughes <richard at hughsie.com>, 2011.
+# Tim Waugh <twaugh at redhat.com>, 2009.
 msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-04 10:50+0100\n"
-"PO-Revision-Date: 2011-05-04 09:56+0000\n"
-"Last-Translator: hughsie <richard at hughsie.com>\n"
+"POT-Creation-Date: 2011-11-10 19:50+0000\n"
+"PO-Revision-Date: 2011-11-10 19:50+0000\n"
+"Last-Translator: Richard Hughes <richard at hughsie.com>\n"
 "Language-Team: LANGUAGE <LL at li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -195,7 +197,7 @@ msgstr ""
 
 #. TRANSLATORS: details about the update, date the update was updated
 #. TRANSLATORS: The action of the package, in past tense
-#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:524
+#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:559
 msgid "Updated"
 msgstr ""
 
@@ -285,7 +287,7 @@ msgstr ""
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
 #: ../client/pk-console.c:704
-#: ../contrib/command-not-found/pk-command-not-found.c:639
+#: ../contrib/command-not-found/pk-command-not-found.c:634
 msgid "The transaction failed"
 msgstr ""
 
@@ -333,21 +335,21 @@ msgstr ""
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:866
+#: ../client/pk-console.c:871
 #, c-format
 msgid "This tool could not find any available package: %s"
 msgstr ""
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:894
+#: ../client/pk-console.c:899
 #, c-format
 msgid "This tool could not find the installed package: %s"
 msgstr ""
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:922 ../client/pk-console.c:950
+#: ../client/pk-console.c:927 ../client/pk-console.c:955
 #, c-format
 msgid "This tool could not find the package: %s"
 msgstr ""
@@ -360,223 +362,223 @@ msgstr ""
 #. detailed error follows
 #. TRANSLATORS: The package name was not found in any software sources. The
 #. detailed error follows
-#: ../client/pk-console.c:978 ../client/pk-console.c:1006
-#: ../client/pk-console.c:1034 ../client/pk-console.c:1062
-#: ../client/pk-console.c:1090
+#: ../client/pk-console.c:983 ../client/pk-console.c:1011
+#: ../client/pk-console.c:1039 ../client/pk-console.c:1067
+#: ../client/pk-console.c:1095
 #, c-format
 msgid "This tool could not find all the packages: %s"
 msgstr ""
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek
 #. without a paddle
-#: ../client/pk-console.c:1119
+#: ../client/pk-console.c:1124
 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:1153
+#: ../client/pk-console.c:1158
 msgid "PackageKit Console Interface"
 msgstr "PackageKit Console Interface"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1155
+#: ../client/pk-console.c:1160
 msgid "Subcommands:"
 msgstr "Subcommands:"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was
 #. last executed
-#: ../client/pk-console.c:1235
+#: ../client/pk-console.c:1240
 msgid "Failed to get the time since this action was last completed"
 msgstr ""
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1277 ../client/pk-monitor.c:371
+#: ../client/pk-console.c:1282 ../client/pk-monitor.c:371
 msgid "Show the program version and exit"
 msgstr "Show the program version and exit"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1280
+#: ../client/pk-console.c:1285
 msgid "Set the filter, e.g. installed"
 msgstr "Set the filter, e.g. installed"
 
 #. TRANSLATORS: command line argument, use a non-standard install prefix
-#: ../client/pk-console.c:1283
+#: ../client/pk-console.c:1288
 msgid "Set the install root, e.g. '/' or '/mnt/ltsp'"
 msgstr ""
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1286
+#: ../client/pk-console.c:1291
 msgid "Exit without waiting for actions to complete"
 msgstr "Exit without waiting for actions to complete"
 
 #. command line argument, do we ask questions
-#: ../client/pk-console.c:1289
+#: ../client/pk-console.c:1294
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:525
 msgid "Install the packages without asking for confirmation"
 msgstr ""
 
 #. TRANSLATORS: command line argument, this command is not a priority
-#: ../client/pk-console.c:1292
+#: ../client/pk-console.c:1297
 msgid "Run the command using idle network bandwidth and also using less power"
 msgstr ""
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1295
+#: ../client/pk-console.c:1300
 msgid ""
 "Print to screen a machine readable output, rather than using animated "
 "widgets"
 msgstr ""
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1298
+#: ../client/pk-console.c:1303
 msgid "The maximum metadata cache age. Use -1 for 'never'."
 msgstr ""
 
 #. TRANSLATORS: command line argument, --help
-#: ../client/pk-console.c:1301
+#: ../client/pk-console.c:1306
 msgid "Show help options."
 msgstr ""
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1331
+#: ../client/pk-console.c:1336
 msgid "Failed to parse command line"
 msgstr ""
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1341
+#: ../client/pk-console.c:1346
 msgid "Failed to contact PackageKit"
 msgstr ""
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1394
+#: ../client/pk-console.c:1399
 msgid "The proxy could not be set"
 msgstr ""
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1406
+#: ../client/pk-console.c:1411
 msgid "The install root could not be set"
 msgstr ""
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1418
+#: ../client/pk-console.c:1423
 msgid "The filter specified was invalid"
 msgstr "The filter specified was invalid"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1437
+#: ../client/pk-console.c:1442
 msgid "A search type is required, e.g. name"
 msgstr ""
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1444 ../client/pk-console.c:1456
-#: ../client/pk-console.c:1468 ../client/pk-console.c:1480
+#: ../client/pk-console.c:1449 ../client/pk-console.c:1461
+#: ../client/pk-console.c:1473 ../client/pk-console.c:1485
 msgid "A search term is required"
 msgstr ""
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1490
+#: ../client/pk-console.c:1495
 msgid "Invalid search type"
 msgstr "Invalid search type"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1496
+#: ../client/pk-console.c:1501
 msgid "A package name to install is required"
 msgstr ""
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1505
+#: ../client/pk-console.c:1510
 msgid "A filename to install is required"
 msgstr ""
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1516
+#: ../client/pk-console.c:1521
 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:1527
+#: ../client/pk-console.c:1532
 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:1536
+#: ../client/pk-console.c:1541
 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:1543
+#: ../client/pk-console.c:1548
 msgid "Directory not found"
 msgstr "Directory not found"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1552
+#: ../client/pk-console.c:1557
 msgid "A licence identifier (eula-id) is required"
 msgstr ""
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1563
+#: ../client/pk-console.c:1568
 msgid "A transaction identifier (tid) is required"
 msgstr ""
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:1584
+#: ../client/pk-console.c:1589
 msgid "A package name to resolve is required"
 msgstr ""
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:1595 ../client/pk-console.c:1606
+#: ../client/pk-console.c:1600 ../client/pk-console.c:1611
 msgid "A repository name is required"
 msgstr ""
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:1617
+#: ../client/pk-console.c:1622
 msgid "A repo name, parameter and value are required"
 msgstr ""
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:1634
+#: ../client/pk-console.c:1639
 msgid "An action, e.g. 'update-system' is required"
 msgstr ""
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:1641
+#: ../client/pk-console.c:1646
 msgid "A correct role is required"
 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:1651 ../client/pk-console.c:1665
-#: ../client/pk-console.c:1674 ../client/pk-console.c:1694
-#: ../client/pk-console.c:1703 ../client/pk-generate-pack.c:314
+#: ../client/pk-console.c:1656 ../client/pk-console.c:1670
+#: ../client/pk-console.c:1679 ../client/pk-console.c:1699
+#: ../client/pk-console.c:1708 ../client/pk-generate-pack.c:314
 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:1683
+#: ../client/pk-console.c:1688
 msgid "A package provide string is required"
 msgstr ""
 
 #. TRANSLATORS: The user did not provide a distro name
-#: ../client/pk-console.c:1727
+#: ../client/pk-console.c:1732
 msgid "A distribution name is required"
 msgstr ""
 
 #. TRANSLATORS: The user did not provide an upgrade type
-#: ../client/pk-console.c:1733
+#: ../client/pk-console.c:1738
 msgid "An upgrade type is required, e.g. 'minimal', 'default' or 'complete'"
 msgstr ""
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command
 #. line
-#: ../client/pk-console.c:1783
+#: ../client/pk-console.c:1788
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "Option '%s' is not supported"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:1793
+#: ../client/pk-console.c:1798
 msgid "Command failed"
 msgstr "Command failed"
 
@@ -712,159 +714,154 @@ msgid "PackageKit Monitor"
 msgstr "PackageKit Monitor"
 
 #. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/pk-plugin-install.c:499
+#: ../contrib/browser-plugin/pk-plugin-install.c:503
 msgid "Getting package information..."
 msgstr "Getting package information..."
 
 #. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/pk-plugin-install.c:505
+#: ../contrib/browser-plugin/pk-plugin-install.c:509
 #, c-format
 msgid "Run %s"
 msgstr "Run %s"
 
 #. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:511
+#: ../contrib/browser-plugin/pk-plugin-install.c:515
 msgid "Installed version"
 msgstr "Installed version"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:519
+#: ../contrib/browser-plugin/pk-plugin-install.c:523
 #, c-format
 msgid "Run version %s now"
 msgstr "Run version %s now"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:525
+#: ../contrib/browser-plugin/pk-plugin-install.c:529
 msgid "Run now"
 msgstr "Run now"
 
 #. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:531
+#: ../contrib/browser-plugin/pk-plugin-install.c:535
 #, c-format
 msgid "Update to version %s"
 msgstr "Update to version %s"
 
 #. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:537
+#: ../contrib/browser-plugin/pk-plugin-install.c:541
 #, c-format
 msgid "Install %s now"
 msgstr "Install %s now"
 
 #. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:540
+#: ../contrib/browser-plugin/pk-plugin-install.c:544
 msgid "Version"
 msgstr "Version"
 
 #. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/pk-plugin-install.c:545
+#: ../contrib/browser-plugin/pk-plugin-install.c:549
 msgid "No packages found for your system"
 msgstr "No packages found for your system"
 
 #. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/pk-plugin-install.c:550
+#: ../contrib/browser-plugin/pk-plugin-install.c:554
 msgid "Installing..."
 msgstr "Installing..."
 
 #. TRANSLATORS: downloading repo data so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:366
+#: ../contrib/command-not-found/pk-command-not-found.c:363
 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:370
+#: ../contrib/command-not-found/pk-command-not-found.c:367
 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:374
+#: ../contrib/command-not-found/pk-command-not-found.c:371
 msgid "Waiting for package manager lock."
 msgstr ""
 
 #. TRANSLATORS: loading package cache so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:378
+#: ../contrib/command-not-found/pk-command-not-found.c:375
 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:444
+#: ../contrib/command-not-found/pk-command-not-found.c:439
 msgid "Failed to search for file"
 msgstr ""
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
-#: ../contrib/command-not-found/pk-command-not-found.c:456
+#: ../contrib/command-not-found/pk-command-not-found.c:451
 msgid "Getting the list of files failed"
 msgstr ""
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:602
+#: ../contrib/command-not-found/pk-command-not-found.c:597
 msgid "Failed to launch:"
 msgstr ""
 
 #. TRANSLATORS: we failed to install the package
-#: ../contrib/command-not-found/pk-command-not-found.c:630
+#: ../contrib/command-not-found/pk-command-not-found.c:625
 msgid "Failed to install packages"
 msgstr ""
 
-#. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/command-not-found/pk-command-not-found.c:706
-msgid "PackageKit Command Not Found"
-msgstr ""
-
 #. TRANSLATORS: the prefix of all the output telling the user
 #. * why it's not executing. NOTE: this is lowercase to mimic
 #. * the style of bash itself -- apologies
-#: ../contrib/command-not-found/pk-command-not-found.c:741
+#: ../contrib/command-not-found/pk-command-not-found.c:723
 msgid "command not found"
 msgstr ""
 
 #. TRANSLATORS: tell the user what we think the command is
-#: ../contrib/command-not-found/pk-command-not-found.c:759
+#: ../contrib/command-not-found/pk-command-not-found.c:741
 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:773
+#: ../contrib/command-not-found/pk-command-not-found.c:755
 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:787
-#: ../contrib/command-not-found/pk-command-not-found.c:796
+#: ../contrib/command-not-found/pk-command-not-found.c:769
+#: ../contrib/command-not-found/pk-command-not-found.c:778
 msgid "Similar commands are:"
 msgstr ""
 
 #. TRANSLATORS: ask the user to choose a file to run
-#: ../contrib/command-not-found/pk-command-not-found.c:803
+#: ../contrib/command-not-found/pk-command-not-found.c:785
 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:821
+#: ../contrib/command-not-found/pk-command-not-found.c:803
 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:828
+#: ../contrib/command-not-found/pk-command-not-found.c:810
 #, 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:855
+#: ../contrib/command-not-found/pk-command-not-found.c:837
 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:865
+#: ../contrib/command-not-found/pk-command-not-found.c:847
 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:874
+#: ../contrib/command-not-found/pk-command-not-found.c:856
 msgid "Please choose a package to install"
 msgstr ""
 
@@ -1038,7 +1035,7 @@ msgstr ""
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
 #. TRANSLATORS: transaction state, installing packages
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:860
-#: ../lib/packagekit-glib2/pk-console-shared.c:296
+#: ../lib/packagekit-glib2/pk-console-shared.c:331
 #, c-format
 msgid "Installing packages"
 msgstr "Installing packages"
@@ -1172,474 +1169,474 @@ msgstr "PackageKit Package List"
 msgid "PackageKit Service Pack"
 msgstr "PackageKit Service Pack"
 
-#: ../lib/packagekit-glib2/pk-console-shared.c:64
+#: ../lib/packagekit-glib2/pk-console-shared.c:65
 #, c-format
 msgid "Please enter a number from 1 to %i: "
 msgstr "Please enter a number from 1 to %i: "
 
 #. TRANSLATORS: more than one package could be found that matched, to follow
 #. is a list of possible packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:198
+#: ../lib/packagekit-glib2/pk-console-shared.c:233
 msgid "More than one package matches:"
 msgstr "More than one package matches:"
 
 #. TRANSLATORS: This finds out which package in the list to use
-#: ../lib/packagekit-glib2/pk-console-shared.c:209
+#: ../lib/packagekit-glib2/pk-console-shared.c:244
 msgid "Please choose the correct package: "
 msgstr "Please choose the correct package: "
 
 #. TRANSLATORS: This is when the transaction status is not known
-#: ../lib/packagekit-glib2/pk-console-shared.c:264
+#: ../lib/packagekit-glib2/pk-console-shared.c:299
 msgid "Unknown state"
 msgstr ""
 
 #. TRANSLATORS: transaction state, the daemon is in the process of starting
-#: ../lib/packagekit-glib2/pk-console-shared.c:268
+#: ../lib/packagekit-glib2/pk-console-shared.c:303
 msgid "Starting"
 msgstr ""
 
 #. TRANSLATORS: transaction state, the transaction is waiting for another to
 #. complete
-#: ../lib/packagekit-glib2/pk-console-shared.c:272
+#: ../lib/packagekit-glib2/pk-console-shared.c:307
 msgid "Waiting in queue"
 msgstr ""
 
 #. TRANSLATORS: transaction state, just started
-#: ../lib/packagekit-glib2/pk-console-shared.c:276
+#: ../lib/packagekit-glib2/pk-console-shared.c:311
 msgid "Running"
 msgstr ""
 
 #. TRANSLATORS: transaction state, is querying data
-#: ../lib/packagekit-glib2/pk-console-shared.c:280
+#: ../lib/packagekit-glib2/pk-console-shared.c:315
 msgid "Querying"
 msgstr ""
 
 #. TRANSLATORS: transaction state, getting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:284
+#: ../lib/packagekit-glib2/pk-console-shared.c:319
 msgid "Getting information"
 msgstr ""
 
 #. TRANSLATORS: transaction state, removing packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:288
+#: ../lib/packagekit-glib2/pk-console-shared.c:323
 msgid "Removing packages"
 msgstr ""
 
 #. TRANSLATORS: transaction state, downloading package files
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:292
-#: ../lib/packagekit-glib2/pk-console-shared.c:670
+#: ../lib/packagekit-glib2/pk-console-shared.c:327
+#: ../lib/packagekit-glib2/pk-console-shared.c:705
 msgid "Downloading packages"
 msgstr "Downloading packages"
 
 #. TRANSLATORS: transaction state, refreshing internal lists
-#: ../lib/packagekit-glib2/pk-console-shared.c:300
+#: ../lib/packagekit-glib2/pk-console-shared.c:335
 msgid "Refreshing software list"
 msgstr ""
 
 #. TRANSLATORS: transaction state, installing updates
-#: ../lib/packagekit-glib2/pk-console-shared.c:304
+#: ../lib/packagekit-glib2/pk-console-shared.c:339
 msgid "Installing updates"
 msgstr ""
 
 #. TRANSLATORS: transaction state, removing old packages, and cleaning config
 #. files
-#: ../lib/packagekit-glib2/pk-console-shared.c:308
+#: ../lib/packagekit-glib2/pk-console-shared.c:343
 msgid "Cleaning up packages"
 msgstr ""
 
 #. TRANSLATORS: transaction state, obsoleting old packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:312
+#: ../lib/packagekit-glib2/pk-console-shared.c:347
 msgid "Obsoleting packages"
 msgstr ""
 
 #. TRANSLATORS: transaction state, checking the transaction before we do it
-#: ../lib/packagekit-glib2/pk-console-shared.c:316
+#: ../lib/packagekit-glib2/pk-console-shared.c:351
 msgid "Resolving dependencies"
 msgstr ""
 
 #. TRANSLATORS: transaction state, checking if we have all the security keys
 #. for the operation
-#: ../lib/packagekit-glib2/pk-console-shared.c:320
+#: ../lib/packagekit-glib2/pk-console-shared.c:355
 msgid "Checking signatures"
 msgstr ""
 
 #. TRANSLATORS: transaction state, when we return to a previous system state
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:324
-#: ../lib/packagekit-glib2/pk-console-shared.c:630
+#: ../lib/packagekit-glib2/pk-console-shared.c:359
+#: ../lib/packagekit-glib2/pk-console-shared.c:665
 msgid "Rolling back"
 msgstr ""
 
 #. TRANSLATORS: transaction state, when we're doing a test transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:328
+#: ../lib/packagekit-glib2/pk-console-shared.c:363
 msgid "Testing changes"
 msgstr ""
 
 #. TRANSLATORS: transaction state, when we're writing to the system package
 #. database
-#: ../lib/packagekit-glib2/pk-console-shared.c:332
+#: ../lib/packagekit-glib2/pk-console-shared.c:367
 msgid "Committing changes"
 msgstr ""
 
 #. TRANSLATORS: transaction state, requesting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:336
+#: ../lib/packagekit-glib2/pk-console-shared.c:371
 msgid "Requesting data"
 msgstr ""
 
 #. TRANSLATORS: transaction state, all done!
-#: ../lib/packagekit-glib2/pk-console-shared.c:340
+#: ../lib/packagekit-glib2/pk-console-shared.c:375
 msgid "Finished"
 msgstr ""
 
 #. TRANSLATORS: transaction state, in the process of cancelling
-#: ../lib/packagekit-glib2/pk-console-shared.c:344
+#: ../lib/packagekit-glib2/pk-console-shared.c:379
 msgid "Cancelling"
 msgstr ""
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:348
+#: ../lib/packagekit-glib2/pk-console-shared.c:383
 msgid "Downloading repository information"
 msgstr ""
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:352
+#: ../lib/packagekit-glib2/pk-console-shared.c:387
 msgid "Downloading list of packages"
 msgstr ""
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:356
+#: ../lib/packagekit-glib2/pk-console-shared.c:391
 msgid "Downloading file lists"
 msgstr ""
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:360
+#: ../lib/packagekit-glib2/pk-console-shared.c:395
 msgid "Downloading lists of changes"
 msgstr ""
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:364
+#: ../lib/packagekit-glib2/pk-console-shared.c:399
 msgid "Downloading groups"
 msgstr ""
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:368
+#: ../lib/packagekit-glib2/pk-console-shared.c:403
 msgid "Downloading update information"
 msgstr ""
 
 #. TRANSLATORS: transaction state, repackaging delta files
-#: ../lib/packagekit-glib2/pk-console-shared.c:372
+#: ../lib/packagekit-glib2/pk-console-shared.c:407
 msgid "Repackaging files"
 msgstr ""
 
 #. TRANSLATORS: transaction state, loading databases
-#: ../lib/packagekit-glib2/pk-console-shared.c:376
+#: ../lib/packagekit-glib2/pk-console-shared.c:411
 msgid "Loading cache"
 msgstr ""
 
 #. TRANSLATORS: transaction state, scanning for running processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:380
+#: ../lib/packagekit-glib2/pk-console-shared.c:415
 msgid "Scanning applications"
 msgstr ""
 
 #. TRANSLATORS: transaction state, generating a list of packages installed on
 #. the system
-#: ../lib/packagekit-glib2/pk-console-shared.c:384
+#: ../lib/packagekit-glib2/pk-console-shared.c:419
 msgid "Generating package lists"
 msgstr ""
 
 #. TRANSLATORS: transaction state, when we're waiting for the native tools to
 #. exit
-#: ../lib/packagekit-glib2/pk-console-shared.c:388
+#: ../lib/packagekit-glib2/pk-console-shared.c:423
 msgid "Waiting for package manager lock"
 msgstr ""
 
 #. TRANSLATORS: transaction state, waiting for user to type in a password
-#: ../lib/packagekit-glib2/pk-console-shared.c:392
+#: ../lib/packagekit-glib2/pk-console-shared.c:427
 msgid "Waiting for authentication"
 msgstr ""
 
 #. TRANSLATORS: transaction state, we are updating the list of processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:396
+#: ../lib/packagekit-glib2/pk-console-shared.c:431
 msgid "Updating running applications"
 msgstr ""
 
 #. TRANSLATORS: transaction state, we are checking executable files currently
 #. in use
-#: ../lib/packagekit-glib2/pk-console-shared.c:400
+#: ../lib/packagekit-glib2/pk-console-shared.c:435
 msgid "Checking applications in use"
 msgstr ""
 
 #. TRANSLATORS: transaction state, we are checking for libraries currently in
 #. use
-#: ../lib/packagekit-glib2/pk-console-shared.c:404
+#: ../lib/packagekit-glib2/pk-console-shared.c:439
 msgid "Checking libraries in use"
 msgstr ""
 
 #. TRANSLATORS: transaction state, we are copying package files before or
 #. after the transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:408
+#: ../lib/packagekit-glib2/pk-console-shared.c:443
 msgid "Copying files"
 msgstr ""
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:426
+#: ../lib/packagekit-glib2/pk-console-shared.c:461
 msgid "Trivial"
 msgstr ""
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:430
+#: ../lib/packagekit-glib2/pk-console-shared.c:465
 msgid "Normal"
 msgstr ""
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:434
+#: ../lib/packagekit-glib2/pk-console-shared.c:469
 msgid "Important"
 msgstr ""
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:438
+#: ../lib/packagekit-glib2/pk-console-shared.c:473
 msgid "Security"
 msgstr ""
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:442
+#: ../lib/packagekit-glib2/pk-console-shared.c:477
 msgid "Bug fix "
 msgstr ""
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:446
+#: ../lib/packagekit-glib2/pk-console-shared.c:481
 msgid "Enhancement"
 msgstr ""
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:450
+#: ../lib/packagekit-glib2/pk-console-shared.c:485
 msgid "Blocked"
 msgstr ""
 
 #. TRANSLATORS: The state of a package
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:455
-#: ../lib/packagekit-glib2/pk-console-shared.c:528
+#: ../lib/packagekit-glib2/pk-console-shared.c:490
+#: ../lib/packagekit-glib2/pk-console-shared.c:563
 msgid "Installed"
 msgstr ""
 
 #. TRANSLATORS: The state of a package, i.e. not installed
-#: ../lib/packagekit-glib2/pk-console-shared.c:460
+#: ../lib/packagekit-glib2/pk-console-shared.c:495
 msgid "Available"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:478
+#: ../lib/packagekit-glib2/pk-console-shared.c:513
 msgid "Downloading"
 msgstr "Downloading"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:482
+#: ../lib/packagekit-glib2/pk-console-shared.c:517
 msgid "Updating"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:486
-#: ../lib/packagekit-glib2/pk-console-shared.c:606
+#: ../lib/packagekit-glib2/pk-console-shared.c:521
+#: ../lib/packagekit-glib2/pk-console-shared.c:641
 msgid "Installing"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:490
-#: ../lib/packagekit-glib2/pk-console-shared.c:602
+#: ../lib/packagekit-glib2/pk-console-shared.c:525
+#: ../lib/packagekit-glib2/pk-console-shared.c:637
 msgid "Removing"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:494
+#: ../lib/packagekit-glib2/pk-console-shared.c:529
 msgid "Cleaning up"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:498
+#: ../lib/packagekit-glib2/pk-console-shared.c:533
 msgid "Obsoleting"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:502
+#: ../lib/packagekit-glib2/pk-console-shared.c:537
 msgid "Reinstalling"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:520
+#: ../lib/packagekit-glib2/pk-console-shared.c:555
 msgid "Downloaded"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:532
+#: ../lib/packagekit-glib2/pk-console-shared.c:567
 msgid "Removed"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:536
+#: ../lib/packagekit-glib2/pk-console-shared.c:571
 msgid "Cleaned up"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:540
+#: ../lib/packagekit-glib2/pk-console-shared.c:575
 msgid "Obsoleted"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:544
+#: ../lib/packagekit-glib2/pk-console-shared.c:579
 msgid "Reinstalled"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:562
+#: ../lib/packagekit-glib2/pk-console-shared.c:597
 msgid "Unknown role type"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:566
+#: ../lib/packagekit-glib2/pk-console-shared.c:601
 msgid "Getting dependencies"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:570
+#: ../lib/packagekit-glib2/pk-console-shared.c:605
 msgid "Getting update details"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:574
+#: ../lib/packagekit-glib2/pk-console-shared.c:609
 msgid "Getting details"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:578
+#: ../lib/packagekit-glib2/pk-console-shared.c:613
 msgid "Getting requires"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:582
+#: ../lib/packagekit-glib2/pk-console-shared.c:617
 msgid "Getting updates"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:586
+#: ../lib/packagekit-glib2/pk-console-shared.c:621
 msgid "Searching by details"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:590
+#: ../lib/packagekit-glib2/pk-console-shared.c:625
 msgid "Searching by file"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:594
+#: ../lib/packagekit-glib2/pk-console-shared.c:629
 msgid "Searching groups"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:598
+#: ../lib/packagekit-glib2/pk-console-shared.c:633
 msgid "Searching by name"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:610
+#: ../lib/packagekit-glib2/pk-console-shared.c:645
 msgid "Installing files"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:614
+#: ../lib/packagekit-glib2/pk-console-shared.c:649
 msgid "Refreshing cache"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:618
+#: ../lib/packagekit-glib2/pk-console-shared.c:653
 msgid "Updating packages"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:622
+#: ../lib/packagekit-glib2/pk-console-shared.c:657
 msgid "Updating system"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:626
+#: ../lib/packagekit-glib2/pk-console-shared.c:661
 msgid "Canceling"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:634
+#: ../lib/packagekit-glib2/pk-console-shared.c:669
 msgid "Getting repositories"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:638
+#: ../lib/packagekit-glib2/pk-console-shared.c:673
 msgid "Enabling repository"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:642
+#: ../lib/packagekit-glib2/pk-console-shared.c:677
 msgid "Setting data"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:646
+#: ../lib/packagekit-glib2/pk-console-shared.c:681
 msgid "Resolving"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:650
+#: ../lib/packagekit-glib2/pk-console-shared.c:685
 msgid "Getting file list"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:654
+#: ../lib/packagekit-glib2/pk-console-shared.c:689
 msgid "Getting provides"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:658
+#: ../lib/packagekit-glib2/pk-console-shared.c:693
 msgid "Installing signature"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:662
+#: ../lib/packagekit-glib2/pk-console-shared.c:697
 msgid "Getting packages"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:666
+#: ../lib/packagekit-glib2/pk-console-shared.c:701
 msgid "Accepting EULA"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:674
+#: ../lib/packagekit-glib2/pk-console-shared.c:709
 msgid "Getting upgrades"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:678
+#: ../lib/packagekit-glib2/pk-console-shared.c:713
 msgid "Getting categories"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:682
+#: ../lib/packagekit-glib2/pk-console-shared.c:717
 msgid "Getting transactions"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:686
-#: ../lib/packagekit-glib2/pk-console-shared.c:690
+#: ../lib/packagekit-glib2/pk-console-shared.c:721
+#: ../lib/packagekit-glib2/pk-console-shared.c:725
 msgid "Simulating install"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:694
+#: ../lib/packagekit-glib2/pk-console-shared.c:729
 msgid "Simulating remove"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:698
+#: ../lib/packagekit-glib2/pk-console-shared.c:733
 msgid "Simulating update"
 msgstr ""
 
@@ -1789,13 +1786,19 @@ msgstr ""
 msgid "The following packages have to be downgraded:"
 msgstr ""
 
+#. TRANSLATORS: When processing, untrusted and non-verified packages may be
+#. encountered
+#: ../lib/packagekit-glib2/pk-task-text.c:325
+msgid "The following packages are untrusted:"
+msgstr ""
+
 #. TRANSLATORS: ask the user if the proposed changes are okay
-#: ../lib/packagekit-glib2/pk-task-text.c:380
+#: ../lib/packagekit-glib2/pk-task-text.c:385
 msgid "Proceed with changes?"
 msgstr ""
 
 #. TRANSLATORS: tell the user we didn't do anything
-#: ../lib/packagekit-glib2/pk-task-text.c:385
+#: ../lib/packagekit-glib2/pk-task-text.c:390
 msgid "The transaction did not proceed."
 msgstr ""
 
@@ -1999,98 +2002,68 @@ msgstr ""
 msgid "Upgrade System"
 msgstr ""
 
-#. TRANSLATORS: failed due to DBus security
-#: ../src/pk-main.c:91
-msgid "Startup failed due to security policies on this machine."
-msgstr "Startup failed due to security policies on this machine."
-
-#. TRANSLATORS: only two ways this can fail...
-#: ../src/pk-main.c:93
-msgid "This can happen for two reasons:"
-msgstr "This can happen for two reasons:"
-
-#. TRANSLATORS: only allowed to be owned by root
-#: ../src/pk-main.c:95
-msgid "The correct user is not launching the executable (usually root)"
-msgstr "The correct user is not launching the executable (usually root)"
-
-#. TRANSLATORS: or we are installed in a prefix
-#: ../src/pk-main.c:97
-msgid ""
-"The org.freedesktop.PackageKit.conf file is not installed in the system "
-"directory:"
-msgstr ""
-"The org.freedesktop.PackageKit.conf file is not installed in the system "
-"directory:"
-
 #. TRANSLATORS: a backend is the system package tool, e.g. yum, apt
-#: ../src/pk-main.c:223
+#: ../src/pk-main.c:149
 msgid "Packaging backend to use, e.g. dummy"
 msgstr "Packaging backend to use, e.g. dummy"
 
 #. TRANSLATORS: if we should run in the background
-#: ../src/pk-main.c:226
+#: ../src/pk-main.c:152
 msgid "Daemonize and detach from the terminal"
 msgstr "Daemonize and detach from the terminal"
 
 #. TRANSLATORS: if we should not monitor how long we are inactive for
-#: ../src/pk-main.c:229
+#: ../src/pk-main.c:155
 msgid "Disable the idle timer"
 msgstr "Disable the idle timer"
 
 #. TRANSLATORS: show version
-#: ../src/pk-main.c:232
+#: ../src/pk-main.c:158
 msgid "Show version and exit"
 msgstr "Show version and exit"
 
 #. TRANSLATORS: exit after we've started up, used for user profiling
-#: ../src/pk-main.c:235
+#: ../src/pk-main.c:161
 msgid "Exit after a small delay"
 msgstr "Exit after a small delay"
 
 #. TRANSLATORS: exit straight away, used for automatic profiling
-#: ../src/pk-main.c:238
+#: ../src/pk-main.c:164
 msgid "Exit after the engine has loaded"
 msgstr "Exit after the engine has loaded"
 
+#. TRANSLATORS: don't unset environment variables, used for debugging
+#: ../src/pk-main.c:167
+msgid "Don't clear environment on startup"
+msgstr ""
+
 #. TRANSLATORS: describing the service that is running
-#: ../src/pk-main.c:253
+#: ../src/pk-main.c:179
 msgid "PackageKit service"
 msgstr "PackageKit service"
 
-#. TRANSLATORS: fatal error, dbus is not running
-#: ../src/pk-main.c:298
-msgid "Cannot connect to the system bus"
-msgstr "Cannot connect to the system bus"
-
-#: ../src/pk-main.c:344
+#: ../src/pk-main.c:253
 msgid "Failed to load any of the specified backends:"
 msgstr ""
 
-#. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error
-#. follows
-#: ../src/pk-main.c:358
-msgid "Error trying to start:"
-msgstr "Error trying to start:"
-
 #. TRANSLATORS: is not GPG signed
-#: ../src/pk-transaction.c:2611 ../src/pk-transaction.c:2618
+#: ../src/pk-transaction.c:2696
 msgid "The software is not from a trusted source."
 msgstr ""
 
-#: ../src/pk-transaction.c:2623
+#: ../src/pk-transaction.c:2704
 msgid "Do not update this package unless you are sure it is safe to do so."
 msgstr ""
 
-#: ../src/pk-transaction.c:2624
+#: ../src/pk-transaction.c:2705
 msgid "Do not update these packages unless you are sure it is safe to do so."
 msgstr ""
 
-#: ../src/pk-transaction.c:2634
+#: ../src/pk-transaction.c:2715
 msgid "Do not install this package unless you are sure it is safe to do so."
 msgstr ""
 
-#: ../src/pk-transaction.c:2635
+#: ../src/pk-transaction.c:2716
 msgid "Do not install these packages unless you are sure it is safe to do so."
 msgstr ""
 
diff --git a/po/eo.po b/po/eo.po
new file mode 100644
index 0000000..73d2f10
--- /dev/null
+++ b/po/eo.po
@@ -0,0 +1,2068 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+# Kristjan SCHMIDT <kristjan.schmidt at googlemail.com>, 2011.
+msgid ""
+msgstr ""
+"Project-Id-Version: PackageKit\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-11-10 19:50+0000\n"
+"PO-Revision-Date: 2011-11-10 19:50+0000\n"
+"Last-Translator: Richard Hughes <richard at hughsie.com>\n"
+"Language-Team: Esperanto (http://www.transifex.net/projects/p/freedesktop/team/eo/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: eo\n"
+"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+
+#. TRANSLATORS: this is an atomic transaction
+#. TRANSLATORS: the role is the point of the transaction, e.g. update-system
+#: ../client/pk-console.c:174 ../client/pk-console.c:596
+msgid "Transaction"
+msgstr "Transakcio"
+
+#. TRANSLATORS: this is the time the transaction was started in system
+#. timezone
+#: ../client/pk-console.c:176
+msgid "System time"
+msgstr "Sistema horo"
+
+#. TRANSLATORS: this is if the transaction succeeded or not
+#: ../client/pk-console.c:178
+msgid "Succeeded"
+msgstr ""
+
+#: ../client/pk-console.c:178
+msgid "True"
+msgstr "Vera"
+
+#: ../client/pk-console.c:178
+msgid "False"
+msgstr "Falsa"
+
+#. TRANSLATORS: this is the transactions role, e.g. "update-system"
+#: ../client/pk-console.c:180
+msgid "Role"
+msgstr ""
+
+#. TRANSLATORS: this is The duration of the transaction
+#: ../client/pk-console.c:185
+msgid "Duration"
+msgstr "DaÅ­ro"
+
+#: ../client/pk-console.c:185
+msgid "(seconds)"
+msgstr "(sekundoj)"
+
+#. TRANSLATORS: this is The command line used to do the action
+#: ../client/pk-console.c:189
+msgid "Command line"
+msgstr "Komandlinio"
+
+#. TRANSLATORS: this is the user ID of the user that started the action
+#: ../client/pk-console.c:191
+msgid "User ID"
+msgstr "Uzanto-ID"
+
+#. TRANSLATORS: this is the username, e.g. hughsie
+#: ../client/pk-console.c:198
+msgid "Username"
+msgstr "Uzantonomo"
+
+#. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
+#: ../client/pk-console.c:202
+msgid "Real name"
+msgstr "Vera nomo"
+
+#: ../client/pk-console.c:210
+msgid "Affected packages:"
+msgstr ""
+
+#: ../client/pk-console.c:212
+msgid "Affected packages: None"
+msgstr ""
+
+#. TRANSLATORS: this is the distro, e.g. Fedora 10
+#: ../client/pk-console.c:247
+msgid "Distribution"
+msgstr "Distribuo"
+
+#. TRANSLATORS: this is type of update, stable or testing
+#: ../client/pk-console.c:249
+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:251 ../client/pk-console.c:290
+msgid "Summary"
+msgstr "Resumo"
+
+#. TRANSLATORS: this is the group category name
+#: ../client/pk-console.c:279
+msgid "Category"
+msgstr "Kategorio"
+
+#. TRANSLATORS: this is group identifier
+#: ../client/pk-console.c:281
+msgid "ID"
+msgstr "ID"
+
+#. TRANSLATORS: this is the parent group
+#: ../client/pk-console.c:284
+msgid "Parent"
+msgstr "Gepatro"
+
+#. TRANSLATORS: this is the name of the parent group
+#: ../client/pk-console.c:287
+msgid "Name"
+msgstr "Nomo"
+
+#. TRANSLATORS: this is preferred icon for the group
+#: ../client/pk-console.c:293
+msgid "Icon"
+msgstr "Piktogramo"
+
+#. TRANSLATORS: this is a header for the package that can be updated
+#: ../client/pk-console.c:339
+msgid "Details about the update:"
+msgstr "Detaloj pri la ĝisdatigo:"
+
+#. TRANSLATORS: details about the update, package name and version
+#. TRANSLATORS: the package that is being processed
+#. TRANSLATORS: the package that is not signed by a known key
+#. TRANSLATORS: the package name that was trying to be installed
+#: ../client/pk-console.c:345 ../client/pk-console.c:615
+#: ../lib/packagekit-glib2/pk-task-text.c:124
+#: ../lib/packagekit-glib2/pk-task-text.c:206
+msgid "Package"
+msgstr "Pakaĵo"
+
+#. TRANSLATORS: details about the update, any packages that this update
+#. updates
+#: ../client/pk-console.c:348
+msgid "Updates"
+msgstr "Äœisdatigoj"
+
+#. TRANSLATORS: details about the update, any packages that this update
+#. obsoletes
+#: ../client/pk-console.c:352
+msgid "Obsoletes"
+msgstr "Arkaikaĵoj"
+
+#. TRANSLATORS: details about the update, the vendor URLs
+#. TRANSLATORS: the vendor (e.g. vmware) that is providing the EULA
+#: ../client/pk-console.c:356 ../lib/packagekit-glib2/pk-task-text.c:209
+msgid "Vendor"
+msgstr "Vendisto"
+
+#. 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 "Restarti"
+
+#. 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 "Ŝanĝoj"
+
+#. TRANSLATORS: details about the update, the ongoing state of the update
+#: ../client/pk-console.c:380
+msgid "State"
+msgstr "Stato"
+
+#. TRANSLATORS: details about the update, date the update was issued
+#: ../client/pk-console.c:384
+msgid "Issued"
+msgstr ""
+
+#. TRANSLATORS: details about the update, date the update was updated
+#. TRANSLATORS: The action of the package, in past tense
+#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:559
+msgid "Updated"
+msgstr "Äœisdatigite"
+
+#. TRANSLATORS: if the repo is enabled
+#: ../client/pk-console.c:424
+msgid "Enabled"
+msgstr "Enŝaltite"
+
+#. TRANSLATORS: if the repo is disabled
+#: ../client/pk-console.c:427
+msgid "Disabled"
+msgstr "Elŝaltite"
+
+#. TRANSLATORS: a package requires the system to be restarted
+#: ../client/pk-console.c:459
+msgid "System restart required by:"
+msgstr ""
+
+#. TRANSLATORS: a package requires the session to be restarted
+#: ../client/pk-console.c:462
+msgid "Session restart required:"
+msgstr ""
+
+#. TRANSLATORS: a package requires the system to be restarted due to a
+#. security update
+#: ../client/pk-console.c:465
+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:468
+msgid "Session restart (security) required:"
+msgstr ""
+
+#. TRANSLATORS: a package requires the application to be restarted
+#: ../client/pk-console.c:471
+msgid "Application restart required by:"
+msgstr ""
+
+#. TRANSLATORS: This a list of details about the package
+#: ../client/pk-console.c:506
+msgid "Package description"
+msgstr ""
+
+#. TRANSLATORS: This a message (like a little note that may be of interest)
+#. from the transaction
+#: ../client/pk-console.c:537
+msgid "Message:"
+msgstr "Mesaĝo:"
+
+#. TRANSLATORS: This where the package has no files
+#: ../client/pk-console.c:558
+msgid "No files"
+msgstr "neniu dosiero"
+
+#. TRANSLATORS: This a list files contained in the package
+#: ../client/pk-console.c:563
+msgid "Package files"
+msgstr ""
+
+#. TRANSLATORS: the percentage complete of the transaction
+#: ../client/pk-console.c:631
+msgid "Percentage"
+msgstr "Elcento"
+
+#. TRANSLATORS: the status of the transaction (e.g. downloading)
+#: ../client/pk-console.c:649
+msgid "Status"
+msgstr "Stato"
+
+#. TRANSLATORS: the results from the transaction
+#: ../client/pk-console.c:678
+msgid "Results:"
+msgstr ""
+
+#. TRANSLATORS: we failed to get any results, which is pretty fatal in my book
+#: ../client/pk-console.c:685
+msgid "Fatal error"
+msgstr ""
+
+#. TRANSLATORS: the user asked to update everything, but there is nothing that
+#. can be updated
+#: ../client/pk-console.c:701
+msgid "There are no packages to update."
+msgstr "Neniu pakaĵo nun estas ĝisdatigebla."
+
+#. TRANSLATORS: the transaction failed in a way we could not expect
+#: ../client/pk-console.c:704
+#: ../contrib/command-not-found/pk-command-not-found.c:634
+msgid "The transaction failed"
+msgstr ""
+
+#. TRANSLATORS: print a message when there are no updates
+#: ../client/pk-console.c:733
+msgid "There are no updates available at this time."
+msgstr "Neniu ĝisdatigo nun estas disponebla."
+
+#: ../client/pk-console.c:756
+msgid "There are no upgrades available at this time."
+msgstr "Neniu promocio nun estas disponebla."
+
+#. TRANSLATORS: a package needs to restart their system
+#: ../client/pk-console.c:823
+msgid "Please restart the computer to complete the update."
+msgstr "Bonvole restarti la komputilon por kompletigi la ĝisdatigon."
+
+#. TRANSLATORS: a package needs to restart the session
+#: ../client/pk-console.c:826
+msgid "Please logout and login to complete the update."
+msgstr "Bonvole elsaluti kaj ensaluti por kompletigi la ĝisdatigon."
+
+#. TRANSLATORS: a package needs to restart their system (due to security)
+#: ../client/pk-console.c:829
+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:832
+msgid ""
+"Please logout and login to complete the update as important security updates"
+" have been installed."
+msgstr ""
+
+#. TRANSLATORS: The user used 'pkcon install dave.rpm' rather than 'pkcon
+#. install-local dave.rpm'
+#: ../client/pk-console.c:858
+#, c-format
+msgid ""
+"Expected package name, actually got file. Try using 'pkcon install-local %s'"
+" instead."
+msgstr ""
+
+#. TRANSLATORS: There was an error getting the list of files for the package.
+#. The detailed error follows
+#: ../client/pk-console.c:871
+#, c-format
+msgid "This tool could not find any available package: %s"
+msgstr ""
+
+#. TRANSLATORS: There was an error getting the list of files for the package.
+#. The detailed error follows
+#: ../client/pk-console.c:899
+#, c-format
+msgid "This tool could not find the installed package: %s"
+msgstr ""
+
+#. TRANSLATORS: There was an error getting the list of files for the package.
+#. The detailed error follows
+#: ../client/pk-console.c:927 ../client/pk-console.c:955
+#, c-format
+msgid "This tool could not find the package: %s"
+msgstr "Tiu ilo ne povis trovi la pakaĵon: %s"
+
+#. TRANSLATORS: There was an error getting the list of files for the package.
+#. The detailed error follows
+#. TRANSLATORS: There was an error getting the dependencies for the package.
+#. The detailed error follows
+#. TRANSLATORS: There was an error getting the details about the package. The
+#. detailed error follows
+#. TRANSLATORS: The package name was not found in any software sources. The
+#. detailed error follows
+#: ../client/pk-console.c:983 ../client/pk-console.c:1011
+#: ../client/pk-console.c:1039 ../client/pk-console.c:1067
+#: ../client/pk-console.c:1095
+#, c-format
+msgid "This tool could not find all the packages: %s"
+msgstr ""
+
+#. TRANSLATORS: This is when the daemon crashed, and we are up shit creek
+#. without a paddle
+#: ../client/pk-console.c:1124
+msgid "The daemon crashed mid-transaction!"
+msgstr ""
+
+#. TRANSLATORS: This is the header to the --help menu
+#: ../client/pk-console.c:1158
+msgid "PackageKit Console Interface"
+msgstr ""
+
+#. these are commands we can use with pkcon
+#: ../client/pk-console.c:1160
+msgid "Subcommands:"
+msgstr ""
+
+#. TRANSLATORS: we keep a database updated with the time that an action was
+#. last executed
+#: ../client/pk-console.c:1240
+msgid "Failed to get the time since this action was last completed"
+msgstr ""
+
+#. TRANSLATORS: command line argument, just show the version string
+#: ../client/pk-console.c:1282 ../client/pk-monitor.c:371
+msgid "Show the program version and exit"
+msgstr "Montri la program-version kaj eliri"
+
+#. TRANSLATORS: command line argument, use a filter to narrow down results
+#: ../client/pk-console.c:1285
+msgid "Set the filter, e.g. installed"
+msgstr ""
+
+#. TRANSLATORS: command line argument, use a non-standard install prefix
+#: ../client/pk-console.c:1288
+msgid "Set the install root, e.g. '/' or '/mnt/ltsp'"
+msgstr ""
+
+#. TRANSLATORS: command line argument, work asynchronously
+#: ../client/pk-console.c:1291
+msgid "Exit without waiting for actions to complete"
+msgstr ""
+
+#. command line argument, do we ask questions
+#: ../client/pk-console.c:1294
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:525
+msgid "Install the packages without asking for confirmation"
+msgstr ""
+
+#. TRANSLATORS: command line argument, this command is not a priority
+#: ../client/pk-console.c:1297
+msgid "Run the command using idle network bandwidth and also using less power"
+msgstr ""
+
+#. TRANSLATORS: command line argument, just output without fancy formatting
+#: ../client/pk-console.c:1300
+msgid ""
+"Print to screen a machine readable output, rather than using animated "
+"widgets"
+msgstr ""
+
+#. TRANSLATORS: command line argument, just output without fancy formatting
+#: ../client/pk-console.c:1303
+msgid "The maximum metadata cache age. Use -1 for 'never'."
+msgstr ""
+
+#. TRANSLATORS: command line argument, --help
+#: ../client/pk-console.c:1306
+msgid "Show help options."
+msgstr "Vidigi helpopciojn."
+
+#. TRANSLATORS: we failed to contact the daemon
+#: ../client/pk-console.c:1336
+msgid "Failed to parse command line"
+msgstr "Fiaskis analizi komanlinion"
+
+#. TRANSLATORS: we failed to contact the daemon
+#: ../client/pk-console.c:1346
+msgid "Failed to contact PackageKit"
+msgstr ""
+
+#. TRANSLATORS: The user specified an incorrect filter
+#: ../client/pk-console.c:1399
+msgid "The proxy could not be set"
+msgstr ""
+
+#. TRANSLATORS: The user specified an incorrect filter
+#: ../client/pk-console.c:1411
+msgid "The install root could not be set"
+msgstr ""
+
+#. TRANSLATORS: The user specified an incorrect filter
+#: ../client/pk-console.c:1423
+msgid "The filter specified was invalid"
+msgstr ""
+
+#. TRANSLATORS: a search type can be name, details, file, etc
+#: ../client/pk-console.c:1442
+msgid "A search type is required, e.g. name"
+msgstr ""
+
+#. TRANSLATORS: the user needs to provide a search term
+#: ../client/pk-console.c:1449 ../client/pk-console.c:1461
+#: ../client/pk-console.c:1473 ../client/pk-console.c:1485
+msgid "A search term is required"
+msgstr ""
+
+#. TRANSLATORS: the search type was provided, but invalid
+#: ../client/pk-console.c:1495
+msgid "Invalid search type"
+msgstr ""
+
+#. TRANSLATORS: the user did not specify what they wanted to install
+#: ../client/pk-console.c:1501
+msgid "A package name to install is required"
+msgstr ""
+
+#. TRANSLATORS: the user did not specify what they wanted to install
+#: ../client/pk-console.c:1510
+msgid "A filename to install is required"
+msgstr ""
+
+#. TRANSLATORS: geeky error, 99.9999% of users won't see this
+#: ../client/pk-console.c:1521
+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:1532
+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:1541
+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:1548
+msgid "Directory not found"
+msgstr "Ne trovis dosierujon"
+
+#. TRANSLATORS: geeky error, 99.9999% of users won't see this
+#: ../client/pk-console.c:1557
+msgid "A licence identifier (eula-id) is required"
+msgstr ""
+
+#. TRANSLATORS: geeky error, 99.9999% of users won't see this
+#: ../client/pk-console.c:1568
+msgid "A transaction identifier (tid) is required"
+msgstr ""
+
+#. TRANSLATORS: The user did not specify a package name
+#: ../client/pk-console.c:1589
+msgid "A package name to resolve is required"
+msgstr ""
+
+#. TRANSLATORS: The user did not specify a repository (software source) name
+#: ../client/pk-console.c:1600 ../client/pk-console.c:1611
+msgid "A repository name is required"
+msgstr ""
+
+#. TRANSLATORS: The user didn't provide any data
+#: ../client/pk-console.c:1622
+msgid "A repo name, parameter and value are required"
+msgstr ""
+
+#. TRANSLATORS: The user didn't specify what action to use
+#: ../client/pk-console.c:1639
+msgid "An action, e.g. 'update-system' is required"
+msgstr ""
+
+#. TRANSLATORS: The user specified an invalid action
+#: ../client/pk-console.c:1646
+msgid "A correct role is required"
+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:1656 ../client/pk-console.c:1670
+#: ../client/pk-console.c:1679 ../client/pk-console.c:1699
+#: ../client/pk-console.c:1708 ../client/pk-generate-pack.c:314
+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:1688
+msgid "A package provide string is required"
+msgstr ""
+
+#. TRANSLATORS: The user did not provide a distro name
+#: ../client/pk-console.c:1732
+msgid "A distribution name is required"
+msgstr ""
+
+#. TRANSLATORS: The user did not provide an upgrade type
+#: ../client/pk-console.c:1738
+msgid "An upgrade type is required, e.g. 'minimal', 'default' or 'complete'"
+msgstr ""
+
+#. TRANSLATORS: The user tried to use an unsupported option on the command
+#. line
+#: ../client/pk-console.c:1788
+#, c-format
+msgid "Option '%s' is not supported"
+msgstr ""
+
+#. TRANSLATORS: Generic failure of what they asked to do
+#: ../client/pk-console.c:1798
+msgid "Command failed"
+msgstr ""
+
+#. TRANSLATORS: we can exclude certain packages (glibc) when we know they'll
+#. exist on the target
+#: ../client/pk-generate-pack.c:253
+msgid "Set the file name of dependencies to be excluded"
+msgstr ""
+
+#. TRANSLATORS: the output location
+#: ../client/pk-generate-pack.c:256
+msgid ""
+"The output file or directory (the current directory is used if omitted)"
+msgstr ""
+
+#. TRANSLATORS: put a list of packages in the pack
+#: ../client/pk-generate-pack.c:259
+msgid "The package to be put into the service pack"
+msgstr ""
+
+#. TRANSLATORS: put all pending updates in the pack
+#: ../client/pk-generate-pack.c:262
+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:298
+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:306
+msgid "Both options selected."
+msgstr ""
+
+#. TRANSLATORS: This is when the user fails to supply the output
+#: ../client/pk-generate-pack.c:322
+msgid "A output directory or file name is required"
+msgstr ""
+
+#. TRANSLATORS: This is when the daemon is not-installed/broken and fails to
+#. startup
+#: ../client/pk-generate-pack.c:340
+msgid "The daemon failed to startup"
+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:351 ../client/pk-generate-pack.c:357
+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:364
+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:375
+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:391
+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:394
+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:407
+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:419
+msgid "Failed to open package list."
+msgstr ""
+
+#. TRANSLATORS: The package name is being matched up to available packages
+#: ../client/pk-generate-pack.c:428
+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:432
+#, 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:440
+msgid "Creating service pack..."
+msgstr ""
+
+#. TRANSLATORS: we succeeded in making the file
+#: ../client/pk-generate-pack.c:455
+#, c-format
+msgid "Service pack created '%s'"
+msgstr ""
+
+#. TRANSLATORS: we failed to make te file
+#: ../client/pk-generate-pack.c:460
+#, c-format
+msgid "Failed to create '%s': %s"
+msgstr "Fiaskis krei '%s': %s"
+
+#: ../client/pk-monitor.c:284
+msgid "Failed to get daemon state"
+msgstr ""
+
+#: ../client/pk-monitor.c:349
+msgid "Failed to get properties"
+msgstr ""
+
+#. TRANSLATORS: this is a program that monitors PackageKit
+#: ../client/pk-monitor.c:387
+msgid "PackageKit Monitor"
+msgstr ""
+
+#. TRANSLATORS: when we are getting data from the daemon
+#: ../contrib/browser-plugin/pk-plugin-install.c:503
+msgid "Getting package information..."
+msgstr ""
+
+#. TRANSLATORS: run an applicaiton
+#: ../contrib/browser-plugin/pk-plugin-install.c:509
+#, c-format
+msgid "Run %s"
+msgstr "Ruli %s"
+
+#. TRANSLATORS: show the installed version of a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:515
+msgid "Installed version"
+msgstr ""
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:523
+#, c-format
+msgid "Run version %s now"
+msgstr ""
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:529
+msgid "Run now"
+msgstr "Ruli nun"
+
+#. TRANSLATORS: update to a new version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:535
+#, c-format
+msgid "Update to version %s"
+msgstr "Äœisdatigi al versio %s"
+
+#. TRANSLATORS: To install a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:541
+#, c-format
+msgid "Install %s now"
+msgstr ""
+
+#. TRANSLATORS: the version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:544
+msgid "Version"
+msgstr "Versio"
+
+#. TRANSLATORS: noting found, so can't install
+#: ../contrib/browser-plugin/pk-plugin-install.c:549
+msgid "No packages found for your system"
+msgstr ""
+
+#. TRANSLATORS: package is being installed
+#: ../contrib/browser-plugin/pk-plugin-install.c:554
+msgid "Installing..."
+msgstr "Instalante..."
+
+#. TRANSLATORS: downloading repo data so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:363
+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:367
+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:371
+msgid "Waiting for package manager lock."
+msgstr ""
+
+#. TRANSLATORS: loading package cache so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:375
+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:439
+msgid "Failed to search for file"
+msgstr ""
+
+#. TRANSLATORS: the transaction failed in a way we could not expect
+#: ../contrib/command-not-found/pk-command-not-found.c:451
+msgid "Getting the list of files failed"
+msgstr ""
+
+#. TRANSLATORS: we failed to launch the executable, the error follows
+#: ../contrib/command-not-found/pk-command-not-found.c:597
+msgid "Failed to launch:"
+msgstr ""
+
+#. TRANSLATORS: we failed to install the package
+#: ../contrib/command-not-found/pk-command-not-found.c:625
+msgid "Failed to install packages"
+msgstr ""
+
+#. TRANSLATORS: the prefix of all the output telling the user
+#. * why it's not executing. NOTE: this is lowercase to mimic
+#. * the style of bash itself -- apologies
+#: ../contrib/command-not-found/pk-command-not-found.c:723
+msgid "command not found"
+msgstr ""
+
+#. TRANSLATORS: tell the user what we think the command is
+#: ../contrib/command-not-found/pk-command-not-found.c:741
+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:755
+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:769
+#: ../contrib/command-not-found/pk-command-not-found.c:778
+msgid "Similar commands are:"
+msgstr ""
+
+#. TRANSLATORS: ask the user to choose a file to run
+#: ../contrib/command-not-found/pk-command-not-found.c:785
+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:803
+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:810
+#, 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:837
+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:847
+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:856
+msgid "Please choose a package to install"
+msgstr ""
+
+#. TRANSLATORS: we are starting to install the packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:195
+msgid "Starting install"
+msgstr ""
+
+#. TRANSLATORS: we couldn't find the package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:407
+#, 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:516
+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:519
+msgid "Do not install dependencies of the core packages"
+msgstr ""
+
+#. command line argument, do we operate quietly
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:522
+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:540
+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:554
+#, 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:590
+#, c-format
+msgid "Getting sources list"
+msgstr ""
+
+#. TRANSLATORS: operation was not successful
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:600
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:675
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:759
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:803
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:870
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:914
+msgid "FAILED."
+msgstr "FIASKIS."
+
+#. TRANSLATORS: all completed 100%
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:615
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:655
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:690
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:774
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:818
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:885
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:929
+#, c-format
+msgid "OK."
+msgstr "Bone."
+
+#. TRANSLATORS: tell the user what we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:618
+#, 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:625
+#, c-format
+msgid "Finding debugging sources"
+msgstr ""
+
+#. TRANSLATORS: tell the user what we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:658
+#, 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:665
+#, c-format
+msgid "Enabling debugging sources"
+msgstr ""
+
+#. TRANSLATORS: tell the user how many we enabled
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:693
+#, 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:700
+#, c-format
+msgid "Finding debugging packages"
+msgstr ""
+
+#. TRANSLATORS: we couldn't find the package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:712
+#, 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:735
+#, 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:763
+#, 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:777
+#, c-format
+msgid "Found %i packages:"
+msgstr ""
+
+#. TRANSLATORS: tell the user we are searching for deps
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:793
+#, 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:806
+#, 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:822
+#, c-format
+msgid "Found %i extra packages."
+msgstr ""
+
+#. TRANSLATORS: tell the user we found some more packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:826
+#, 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:835
+#, 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:848
+#, c-format
+msgid "Not installing packages in simulate mode"
+msgstr ""
+
+#. TRANSLATORS: we are now installing the debuginfo packages we found earlier
+#. TRANSLATORS: transaction state, installing packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:860
+#: ../lib/packagekit-glib2/pk-console-shared.c:331
+#, c-format
+msgid "Installing packages"
+msgstr "Instalaante pakaĵojn"
+
+#. TRANSLATORS: could not install, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:873
+#, 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:905
+#, 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:917
+#, 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:932
+#, c-format
+msgid "Disabled %i debugging sources."
+msgstr ""
+
+#. TRANSLATORS: couldn't open device to write
+#: ../contrib/device-rebind/pk-device-rebind.c:62
+msgid "Failed to open file"
+msgstr "Fiaskis malfermi dosieron"
+
+#. TRANSLATORS: could not write to the device
+#: ../contrib/device-rebind/pk-device-rebind.c:71
+msgid "Failed to write to the file"
+msgstr ""
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:111
+#: ../contrib/device-rebind/pk-device-rebind.c:148
+msgid "Failed to write to device"
+msgstr ""
+
+#. TRANSLATORS: the device could not be found in sysfs
+#: ../contrib/device-rebind/pk-device-rebind.c:176
+msgid "Device could not be found"
+msgstr ""
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:203
+msgid "Failed to unregister driver"
+msgstr ""
+
+#. TRANSLATORS: we failed to bind the old driver
+#: ../contrib/device-rebind/pk-device-rebind.c:212
+msgid "Failed to register driver"
+msgstr ""
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:261
+msgid "Device path not found"
+msgstr ""
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:269
+msgid "Incorrect device path specified"
+msgstr ""
+
+#: ../contrib/device-rebind/pk-device-rebind.c:294
+msgid "Show extra debugging information"
+msgstr "Montri ekstran sencimigan informon"
+
+#. command line argument, simulate what would be done, but don't actually do
+#. it
+#: ../contrib/device-rebind/pk-device-rebind.c:297
+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:300
+msgid "Device paths"
+msgstr ""
+
+#. TRANSLATORS: tool that gets called when the device needs reloading after
+#. installing firmware
+#: ../contrib/device-rebind/pk-device-rebind.c:315
+msgid "PackageKit Device Reloader"
+msgstr ""
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:323
+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:333
+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:342
+msgid "Verifying device path"
+msgstr ""
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:347
+msgid "Failed to verify device path"
+msgstr ""
+
+#. TRANSLATORS: we're going to try
+#: ../contrib/device-rebind/pk-device-rebind.c:361
+msgid "Attempting to rebind device"
+msgstr ""
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:366
+msgid "Failed to rebind device"
+msgstr ""
+
+#: ../data/packagekit-catalog.xml.in.h:1
+msgid "PackageKit Catalog"
+msgstr ""
+
+#: ../data/packagekit-package-list.xml.in.h:1
+msgid "PackageKit Package List"
+msgstr ""
+
+#: ../data/packagekit-servicepack.xml.in.h:1
+msgid "PackageKit Service Pack"
+msgstr ""
+
+#: ../lib/packagekit-glib2/pk-console-shared.c:65
+#, c-format
+msgid "Please enter a number from 1 to %i: "
+msgstr ""
+
+#. TRANSLATORS: more than one package could be found that matched, to follow
+#. is a list of possible packages
+#: ../lib/packagekit-glib2/pk-console-shared.c:233
+msgid "More than one package matches:"
+msgstr ""
+
+#. TRANSLATORS: This finds out which package in the list to use
+#: ../lib/packagekit-glib2/pk-console-shared.c:244
+msgid "Please choose the correct package: "
+msgstr ""
+
+#. TRANSLATORS: This is when the transaction status is not known
+#: ../lib/packagekit-glib2/pk-console-shared.c:299
+msgid "Unknown state"
+msgstr "Nekonata stato"
+
+#. TRANSLATORS: transaction state, the daemon is in the process of starting
+#: ../lib/packagekit-glib2/pk-console-shared.c:303
+msgid "Starting"
+msgstr "Startante"
+
+#. TRANSLATORS: transaction state, the transaction is waiting for another to
+#. complete
+#: ../lib/packagekit-glib2/pk-console-shared.c:307
+msgid "Waiting in queue"
+msgstr ""
+
+#. TRANSLATORS: transaction state, just started
+#: ../lib/packagekit-glib2/pk-console-shared.c:311
+msgid "Running"
+msgstr "Ruliĝante"
+
+#. TRANSLATORS: transaction state, is querying data
+#: ../lib/packagekit-glib2/pk-console-shared.c:315
+msgid "Querying"
+msgstr ""
+
+#. TRANSLATORS: transaction state, getting data from a server
+#: ../lib/packagekit-glib2/pk-console-shared.c:319
+msgid "Getting information"
+msgstr ""
+
+#. TRANSLATORS: transaction state, removing packages
+#: ../lib/packagekit-glib2/pk-console-shared.c:323
+msgid "Removing packages"
+msgstr "Forigante pakaĵojn"
+
+#. TRANSLATORS: transaction state, downloading package files
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:327
+#: ../lib/packagekit-glib2/pk-console-shared.c:705
+msgid "Downloading packages"
+msgstr "Elŝutante pakaĵojn"
+
+#. TRANSLATORS: transaction state, refreshing internal lists
+#: ../lib/packagekit-glib2/pk-console-shared.c:335
+msgid "Refreshing software list"
+msgstr ""
+
+#. TRANSLATORS: transaction state, installing updates
+#: ../lib/packagekit-glib2/pk-console-shared.c:339
+msgid "Installing updates"
+msgstr "Instalante ĝisdatigojn"
+
+#. TRANSLATORS: transaction state, removing old packages, and cleaning config
+#. files
+#: ../lib/packagekit-glib2/pk-console-shared.c:343
+msgid "Cleaning up packages"
+msgstr ""
+
+#. TRANSLATORS: transaction state, obsoleting old packages
+#: ../lib/packagekit-glib2/pk-console-shared.c:347
+msgid "Obsoleting packages"
+msgstr ""
+
+#. TRANSLATORS: transaction state, checking the transaction before we do it
+#: ../lib/packagekit-glib2/pk-console-shared.c:351
+msgid "Resolving dependencies"
+msgstr ""
+
+#. TRANSLATORS: transaction state, checking if we have all the security keys
+#. for the operation
+#: ../lib/packagekit-glib2/pk-console-shared.c:355
+msgid "Checking signatures"
+msgstr ""
+
+#. TRANSLATORS: transaction state, when we return to a previous system state
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:359
+#: ../lib/packagekit-glib2/pk-console-shared.c:665
+msgid "Rolling back"
+msgstr ""
+
+#. TRANSLATORS: transaction state, when we're doing a test transaction
+#: ../lib/packagekit-glib2/pk-console-shared.c:363
+msgid "Testing changes"
+msgstr ""
+
+#. TRANSLATORS: transaction state, when we're writing to the system package
+#. database
+#: ../lib/packagekit-glib2/pk-console-shared.c:367
+msgid "Committing changes"
+msgstr ""
+
+#. TRANSLATORS: transaction state, requesting data from a server
+#: ../lib/packagekit-glib2/pk-console-shared.c:371
+msgid "Requesting data"
+msgstr ""
+
+#. TRANSLATORS: transaction state, all done!
+#: ../lib/packagekit-glib2/pk-console-shared.c:375
+msgid "Finished"
+msgstr ""
+
+#. TRANSLATORS: transaction state, in the process of cancelling
+#: ../lib/packagekit-glib2/pk-console-shared.c:379
+msgid "Cancelling"
+msgstr "Nuligante"
+
+#. TRANSLATORS: transaction state, downloading metadata
+#: ../lib/packagekit-glib2/pk-console-shared.c:383
+msgid "Downloading repository information"
+msgstr ""
+
+#. TRANSLATORS: transaction state, downloading metadata
+#: ../lib/packagekit-glib2/pk-console-shared.c:387
+msgid "Downloading list of packages"
+msgstr ""
+
+#. TRANSLATORS: transaction state, downloading metadata
+#: ../lib/packagekit-glib2/pk-console-shared.c:391
+msgid "Downloading file lists"
+msgstr ""
+
+#. TRANSLATORS: transaction state, downloading metadata
+#: ../lib/packagekit-glib2/pk-console-shared.c:395
+msgid "Downloading lists of changes"
+msgstr ""
+
+#. TRANSLATORS: transaction state, downloading metadata
+#: ../lib/packagekit-glib2/pk-console-shared.c:399
+msgid "Downloading groups"
+msgstr ""
+
+#. TRANSLATORS: transaction state, downloading metadata
+#: ../lib/packagekit-glib2/pk-console-shared.c:403
+msgid "Downloading update information"
+msgstr ""
+
+#. TRANSLATORS: transaction state, repackaging delta files
+#: ../lib/packagekit-glib2/pk-console-shared.c:407
+msgid "Repackaging files"
+msgstr ""
+
+#. TRANSLATORS: transaction state, loading databases
+#: ../lib/packagekit-glib2/pk-console-shared.c:411
+msgid "Loading cache"
+msgstr "Ŝargante kaŝmemoron"
+
+#. TRANSLATORS: transaction state, scanning for running processes
+#: ../lib/packagekit-glib2/pk-console-shared.c:415
+msgid "Scanning applications"
+msgstr ""
+
+#. TRANSLATORS: transaction state, generating a list of packages installed on
+#. the system
+#: ../lib/packagekit-glib2/pk-console-shared.c:419
+msgid "Generating package lists"
+msgstr ""
+
+#. TRANSLATORS: transaction state, when we're waiting for the native tools to
+#. exit
+#: ../lib/packagekit-glib2/pk-console-shared.c:423
+msgid "Waiting for package manager lock"
+msgstr ""
+
+#. TRANSLATORS: transaction state, waiting for user to type in a password
+#: ../lib/packagekit-glib2/pk-console-shared.c:427
+msgid "Waiting for authentication"
+msgstr "Atendas aÅ­tentigon"
+
+#. TRANSLATORS: transaction state, we are updating the list of processes
+#: ../lib/packagekit-glib2/pk-console-shared.c:431
+msgid "Updating running applications"
+msgstr ""
+
+#. TRANSLATORS: transaction state, we are checking executable files currently
+#. in use
+#: ../lib/packagekit-glib2/pk-console-shared.c:435
+msgid "Checking applications in use"
+msgstr ""
+
+#. TRANSLATORS: transaction state, we are checking for libraries currently in
+#. use
+#: ../lib/packagekit-glib2/pk-console-shared.c:439
+msgid "Checking libraries in use"
+msgstr ""
+
+#. TRANSLATORS: transaction state, we are copying package files before or
+#. after the transaction
+#: ../lib/packagekit-glib2/pk-console-shared.c:443
+msgid "Copying files"
+msgstr "Kopiante dosierojn"
+
+#. TRANSLATORS: The type of update
+#: ../lib/packagekit-glib2/pk-console-shared.c:461
+msgid "Trivial"
+msgstr ""
+
+#. TRANSLATORS: The type of update
+#: ../lib/packagekit-glib2/pk-console-shared.c:465
+msgid "Normal"
+msgstr "Normale"
+
+#. TRANSLATORS: The type of update
+#: ../lib/packagekit-glib2/pk-console-shared.c:469
+msgid "Important"
+msgstr "Grave"
+
+#. TRANSLATORS: The type of update
+#: ../lib/packagekit-glib2/pk-console-shared.c:473
+msgid "Security"
+msgstr "Sekureco"
+
+#. TRANSLATORS: The type of update
+#: ../lib/packagekit-glib2/pk-console-shared.c:477
+msgid "Bug fix "
+msgstr ""
+
+#. TRANSLATORS: The type of update
+#: ../lib/packagekit-glib2/pk-console-shared.c:481
+msgid "Enhancement"
+msgstr ""
+
+#. TRANSLATORS: The type of update
+#: ../lib/packagekit-glib2/pk-console-shared.c:485
+msgid "Blocked"
+msgstr "Blokite"
+
+#. TRANSLATORS: The state of a package
+#. TRANSLATORS: The action of the package, in past tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:490
+#: ../lib/packagekit-glib2/pk-console-shared.c:563
+msgid "Installed"
+msgstr "Instalite"
+
+#. TRANSLATORS: The state of a package, i.e. not installed
+#: ../lib/packagekit-glib2/pk-console-shared.c:495
+msgid "Available"
+msgstr "Disponeble"
+
+#. TRANSLATORS: The action of the package, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:513
+msgid "Downloading"
+msgstr "Elŝutante"
+
+#. TRANSLATORS: The action of the package, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:517
+msgid "Updating"
+msgstr "Äœisdatigante"
+
+#. TRANSLATORS: The action of the package, in present tense
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:521
+#: ../lib/packagekit-glib2/pk-console-shared.c:641
+msgid "Installing"
+msgstr "Instalante"
+
+#. TRANSLATORS: The action of the package, in present tense
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:525
+#: ../lib/packagekit-glib2/pk-console-shared.c:637
+msgid "Removing"
+msgstr "Forigante"
+
+#. TRANSLATORS: The action of the package, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:529
+msgid "Cleaning up"
+msgstr "Vakigante"
+
+#. TRANSLATORS: The action of the package, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:533
+msgid "Obsoleting"
+msgstr ""
+
+#. TRANSLATORS: The action of the package, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:537
+msgid "Reinstalling"
+msgstr ""
+
+#. TRANSLATORS: The action of the package, in past tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:555
+msgid "Downloaded"
+msgstr "Elŝutite"
+
+#. TRANSLATORS: The action of the package, in past tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:567
+msgid "Removed"
+msgstr "Forigite"
+
+#. TRANSLATORS: The action of the package, in past tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:571
+msgid "Cleaned up"
+msgstr ""
+
+#. TRANSLATORS: The action of the package, in past tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:575
+msgid "Obsoleted"
+msgstr ""
+
+#. TRANSLATORS: The action of the package, in past tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:579
+msgid "Reinstalled"
+msgstr ""
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:597
+msgid "Unknown role type"
+msgstr ""
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:601
+msgid "Getting dependencies"
+msgstr ""
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:605
+msgid "Getting update details"
+msgstr ""
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:609
+msgid "Getting details"
+msgstr ""
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:613
+msgid "Getting requires"
+msgstr ""
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:617
+msgid "Getting updates"
+msgstr "Akirante ĝisdatigojn"
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:621
+msgid "Searching by details"
+msgstr ""
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:625
+msgid "Searching by file"
+msgstr ""
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:629
+msgid "Searching groups"
+msgstr ""
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:633
+msgid "Searching by name"
+msgstr "Serĉo laŭ nomo"
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:645
+msgid "Installing files"
+msgstr "Instalante dosierojn"
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:649
+msgid "Refreshing cache"
+msgstr ""
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:653
+msgid "Updating packages"
+msgstr "Ĝisdatigante pakaĵojn"
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:657
+msgid "Updating system"
+msgstr "Äœisdatigante sistemon"
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:661
+msgid "Canceling"
+msgstr "Nuligante"
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:669
+msgid "Getting repositories"
+msgstr ""
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:673
+msgid "Enabling repository"
+msgstr ""
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:677
+msgid "Setting data"
+msgstr ""
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:681
+msgid "Resolving"
+msgstr ""
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:685
+msgid "Getting file list"
+msgstr "Ricevante la dosierliston"
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:689
+msgid "Getting provides"
+msgstr ""
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:693
+msgid "Installing signature"
+msgstr ""
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:697
+msgid "Getting packages"
+msgstr ""
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:701
+msgid "Accepting EULA"
+msgstr ""
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:709
+msgid "Getting upgrades"
+msgstr ""
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:713
+msgid "Getting categories"
+msgstr ""
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:717
+msgid "Getting transactions"
+msgstr ""
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:721
+#: ../lib/packagekit-glib2/pk-console-shared.c:725
+msgid "Simulating install"
+msgstr ""
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:729
+msgid "Simulating remove"
+msgstr ""
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:733
+msgid "Simulating update"
+msgstr ""
+
+#. TRANSLATORS: turn on all debugging
+#: ../lib/packagekit-glib2/pk-debug.c:133
+msgid "Show debugging information for all files"
+msgstr "Montri sencimigan informojn de ĉiuj dosieroj"
+
+#: ../lib/packagekit-glib2/pk-debug.c:201
+msgid "Debugging Options"
+msgstr "Sencimigaj agordoj"
+
+#: ../lib/packagekit-glib2/pk-debug.c:201
+msgid "Show debugging options"
+msgstr "Montri sencimigajn agordojn"
+
+#. TRANSLATORS: ask the user if they are comfortable installing insecure
+#. packages
+#: ../lib/packagekit-glib2/pk-task-text.c:67
+msgid "Do you want to allow installing of unsigned software?"
+msgstr ""
+
+#. TRANSLATORS: tell the user we've not done anything
+#: ../lib/packagekit-glib2/pk-task-text.c:72
+msgid "The unsigned software will not be installed."
+msgstr ""
+
+#. TRANSLATORS: the package repository is signed by a key that is not
+#. recognised
+#: ../lib/packagekit-glib2/pk-task-text.c:121
+msgid "Software source signature required"
+msgstr ""
+
+#. TRANSLATORS: the package repository name
+#: ../lib/packagekit-glib2/pk-task-text.c:127
+msgid "Software source name"
+msgstr ""
+
+#. TRANSLATORS: the key URL
+#: ../lib/packagekit-glib2/pk-task-text.c:130
+msgid "Key URL"
+msgstr ""
+
+#. TRANSLATORS: the username of the key
+#: ../lib/packagekit-glib2/pk-task-text.c:133
+msgid "Key user"
+msgstr ""
+
+#. TRANSLATORS: the key ID, usually a few hex digits
+#: ../lib/packagekit-glib2/pk-task-text.c:136
+msgid "Key ID"
+msgstr "Åœlosil-ID"
+
+#. TRANSLATORS: the key fingerprint, again, yet more hex
+#: ../lib/packagekit-glib2/pk-task-text.c:139
+msgid "Key fingerprint"
+msgstr ""
+
+#. TRANSLATORS: the timestamp (a bit like a machine readable time)
+#: ../lib/packagekit-glib2/pk-task-text.c:142
+msgid "Key Timestamp"
+msgstr ""
+
+#. TRANSLATORS: ask the user if they want to import
+#: ../lib/packagekit-glib2/pk-task-text.c:155
+msgid "Do you accept this signature?"
+msgstr ""
+
+#. TRANSLATORS: tell the user we've not done anything
+#: ../lib/packagekit-glib2/pk-task-text.c:160
+msgid "The signature was not accepted."
+msgstr ""
+
+#. TRANSLATORS: this is another name for a software licence that has to be
+#. read before installing
+#: ../lib/packagekit-glib2/pk-task-text.c:203
+msgid "End user licence agreement required"
+msgstr ""
+
+#. TRANSLATORS: the EULA text itself (long and boring)
+#: ../lib/packagekit-glib2/pk-task-text.c:212
+msgid "Agreement"
+msgstr "Permesilo"
+
+#. TRANSLATORS: ask the user if they've read and accepted the EULA
+#: ../lib/packagekit-glib2/pk-task-text.c:221
+msgid "Do you accept this agreement?"
+msgstr ""
+
+#. TRANSLATORS: tell the user we've not done anything
+#: ../lib/packagekit-glib2/pk-task-text.c:226
+msgid "The agreement was not accepted."
+msgstr ""
+
+#. TRANSLATORS: the user needs to change media inserted into the computer
+#: ../lib/packagekit-glib2/pk-task-text.c:265
+msgid "Media change required"
+msgstr ""
+
+#. TRANSLATORS: the type, e.g. DVD, CD, etc
+#: ../lib/packagekit-glib2/pk-task-text.c:268
+msgid "Media type"
+msgstr ""
+
+#. TRANSLATORS: the media label, usually like 'disk-1of3'
+#: ../lib/packagekit-glib2/pk-task-text.c:271
+msgid "Media label"
+msgstr ""
+
+#. TRANSLATORS: the media description, usually like 'Fedora 12 disk 5'
+#: ../lib/packagekit-glib2/pk-task-text.c:274
+msgid "Text"
+msgstr "Teksto"
+
+#. TRANSLATORS: ask the user to insert the media
+#: ../lib/packagekit-glib2/pk-task-text.c:280
+msgid "Please insert the correct media"
+msgstr ""
+
+#. TRANSLATORS: tell the user we've not done anything as they are lazy
+#: ../lib/packagekit-glib2/pk-task-text.c:285
+msgid "The correct media was not inserted."
+msgstr ""
+
+#. TRANSLATORS: When processing, we might have to remove other dependencies
+#: ../lib/packagekit-glib2/pk-task-text.c:300
+msgid "The following packages have to be removed:"
+msgstr ""
+
+#. TRANSLATORS: When processing, we might have to install other dependencies
+#: ../lib/packagekit-glib2/pk-task-text.c:305
+msgid "The following packages have to be installed:"
+msgstr ""
+
+#. TRANSLATORS: When processing, we might have to update other dependencies
+#: ../lib/packagekit-glib2/pk-task-text.c:310
+msgid "The following packages have to be updated:"
+msgstr ""
+
+#. TRANSLATORS: When processing, we might have to reinstall other dependencies
+#: ../lib/packagekit-glib2/pk-task-text.c:315
+msgid "The following packages have to be reinstalled:"
+msgstr ""
+
+#. TRANSLATORS: When processing, we might have to downgrade other dependencies
+#: ../lib/packagekit-glib2/pk-task-text.c:320
+msgid "The following packages have to be downgraded:"
+msgstr ""
+
+#. TRANSLATORS: When processing, untrusted and non-verified packages may be
+#. encountered
+#: ../lib/packagekit-glib2/pk-task-text.c:325
+msgid "The following packages are untrusted:"
+msgstr ""
+
+#. TRANSLATORS: ask the user if the proposed changes are okay
+#: ../lib/packagekit-glib2/pk-task-text.c:385
+msgid "Proceed with changes?"
+msgstr ""
+
+#. TRANSLATORS: tell the user we didn't do anything
+#: ../lib/packagekit-glib2/pk-task-text.c:390
+msgid "The transaction did not proceed."
+msgstr ""
+
+#. 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 change the location used to decompress "
+"packages"
+msgstr ""
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:12
+msgid ""
+"Authentication is required to consider a key used for signing packages as "
+"trusted"
+msgstr ""
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:13
+msgid "Authentication is required to install a signed package"
+msgstr ""
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:14
+msgid "Authentication is required to install an untrusted package"
+msgstr ""
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:15
+msgid "Authentication is required to refresh the system sources"
+msgstr ""
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:16
+msgid "Authentication is required to reload the device with a new driver"
+msgstr ""
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:17
+msgid "Authentication is required to remove packages"
+msgstr ""
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:18
+msgid "Authentication is required to rollback a transaction"
+msgstr ""
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:19
+msgid ""
+"Authentication is required to set the network proxy used for downloading "
+"packages"
+msgstr ""
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:20
+msgid "Authentication is required to update packages"
+msgstr ""
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:21
+msgid "Authentication is required to upgrade the operating system"
+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:27
+msgid "Cancel foreign task"
+msgstr ""
+
+#. SECURITY:
+#. - This is used when users want to install to a different prefix, for
+#. instance to a LTSP image or a virtual machine.
+#. - This could be used to overwrite files not owned by the user using
+#. a carefully created package file.
+#. 
+#: ../policy/org.freedesktop.packagekit.policy.in.h:34
+msgid "Change location that packages are installed"
+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:40
+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:47
+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:54
+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:59
+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:67
+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:77
+msgid "Remove package"
+msgstr "Forigi pakaĵon"
+
+#. 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:83
+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:88
+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:95
+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:103
+msgid "Update packages"
+msgstr "Ĝisdatigi pakaĵojn"
+
+#. SECURITY:
+#. - Normal users require admin authentication to upgrade the disto as
+#. this can make the system unbootable or stop other applications from
+#. working.
+#. 
+#: ../policy/org.freedesktop.packagekit.policy.in.h:109
+msgid "Upgrade System"
+msgstr "Promocii la sistemon"
+
+#. TRANSLATORS: a backend is the system package tool, e.g. yum, apt
+#: ../src/pk-main.c:149
+msgid "Packaging backend to use, e.g. dummy"
+msgstr ""
+
+#. TRANSLATORS: if we should run in the background
+#: ../src/pk-main.c:152
+msgid "Daemonize and detach from the terminal"
+msgstr ""
+
+#. TRANSLATORS: if we should not monitor how long we are inactive for
+#: ../src/pk-main.c:155
+msgid "Disable the idle timer"
+msgstr ""
+
+#. TRANSLATORS: show version
+#: ../src/pk-main.c:158
+msgid "Show version and exit"
+msgstr "Montri la version kaj eliri"
+
+#. TRANSLATORS: exit after we've started up, used for user profiling
+#: ../src/pk-main.c:161
+msgid "Exit after a small delay"
+msgstr ""
+
+#. TRANSLATORS: exit straight away, used for automatic profiling
+#: ../src/pk-main.c:164
+msgid "Exit after the engine has loaded"
+msgstr ""
+
+#. TRANSLATORS: don't unset environment variables, used for debugging
+#: ../src/pk-main.c:167
+msgid "Don't clear environment on startup"
+msgstr ""
+
+#. TRANSLATORS: describing the service that is running
+#: ../src/pk-main.c:179
+msgid "PackageKit service"
+msgstr ""
+
+#: ../src/pk-main.c:253
+msgid "Failed to load any of the specified backends:"
+msgstr ""
+
+#. TRANSLATORS: is not GPG signed
+#: ../src/pk-transaction.c:2696
+msgid "The software is not from a trusted source."
+msgstr ""
+
+#: ../src/pk-transaction.c:2704
+msgid "Do not update this package unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-transaction.c:2705
+msgid "Do not update these packages unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-transaction.c:2715
+msgid "Do not install this package unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-transaction.c:2716
+msgid "Do not install these packages unless you are sure it is safe to do so."
+msgstr ""
+
+
diff --git a/po/es.po b/po/es.po
index 8955542..0bae6c5 100644
--- a/po/es.po
+++ b/po/es.po
@@ -2,15 +2,19 @@
 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
 # This file is distributed under the same license as the PACKAGE package.
 # 
-# Jorge González <aloriel at gmail.com>, 2011
-# Richard Hughes <richard at hughsie.com>, 2011
+# Translators:
+# Daniel Cabrera <logan at fedoraproject.org>, 2011.
+# Fernando Gonzalez Blanco <fgonz at fedoraproject.org>, 2009.
+# Javier Alejandro Castro <javier.alejandro.castro at gmail.com>, 2008.
+# Jorge González <aloriel at gmail.com>, 2011.
+# Richard Hughes <richard at hughsie.com>, 2011.
 msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-04 10:50+0100\n"
-"PO-Revision-Date: 2011-05-29 09:53+0000\n"
-"Last-Translator: aloriel <aloriel at gmail.com>\n"
+"POT-Creation-Date: 2011-11-10 19:50+0000\n"
+"PO-Revision-Date: 2011-11-19 12:56+0000\n"
+"Last-Translator: Daniel Cabrera <logan at fedoraproject.org>\n"
 "Language-Team: Spanish (Castilian) (http://www.transifex.net/projects/p/freedesktop/team/es/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -83,7 +87,7 @@ msgstr "Paquetes involucrados:"
 
 #: ../client/pk-console.c:212
 msgid "Affected packages: None"
-msgstr "Paquetes involucrados: Ninguno"
+msgstr "Paquetes involucrados: ninguno"
 
 #. TRANSLATORS: this is the distro, e.g. Fedora 10
 #: ../client/pk-console.c:247
@@ -196,7 +200,7 @@ msgstr "Emitido"
 
 #. TRANSLATORS: details about the update, date the update was updated
 #. TRANSLATORS: The action of the package, in past tense
-#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:524
+#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:559
 msgid "Updated"
 msgstr "Actualizado"
 
@@ -282,13 +286,13 @@ msgstr "Error fatal"
 #. can be updated
 #: ../client/pk-console.c:701
 msgid "There are no packages to update."
-msgstr "No existen paquetes que actualizar."
+msgstr "No existen paquetes para actualizar."
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
 #: ../client/pk-console.c:704
-#: ../contrib/command-not-found/pk-command-not-found.c:639
+#: ../contrib/command-not-found/pk-command-not-found.c:634
 msgid "The transaction failed"
-msgstr "La transacción no pudo realizarse"
+msgstr "Falló la transacción"
 
 #. TRANSLATORS: print a message when there are no updates
 #: ../client/pk-console.c:733
@@ -340,21 +344,21 @@ msgstr ""
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:866
+#: ../client/pk-console.c:871
 #, c-format
 msgid "This tool could not find any available package: %s"
 msgstr "Esta herramienta no pudo encontrar ningún paquete disponible: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:894
+#: ../client/pk-console.c:899
 #, c-format
 msgid "This tool could not find the installed package: %s"
 msgstr "Esta herramienta no pudo encontrar el paquete instalado: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:922 ../client/pk-console.c:950
+#: ../client/pk-console.c:927 ../client/pk-console.c:955
 #, c-format
 msgid "This tool could not find the package: %s"
 msgstr "Esta herramienta no pudo encontrar el paquete: %s"
@@ -367,69 +371,69 @@ msgstr "Esta herramienta no pudo encontrar el paquete: %s"
 #. detailed error follows
 #. TRANSLATORS: The package name was not found in any software sources. The
 #. detailed error follows
-#: ../client/pk-console.c:978 ../client/pk-console.c:1006
-#: ../client/pk-console.c:1034 ../client/pk-console.c:1062
-#: ../client/pk-console.c:1090
+#: ../client/pk-console.c:983 ../client/pk-console.c:1011
+#: ../client/pk-console.c:1039 ../client/pk-console.c:1067
+#: ../client/pk-console.c:1095
 #, c-format
 msgid "This tool could not find all the packages: %s"
 msgstr "Esta herramienta no pudo encontrar todos los paquetes: %s"
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek
 #. without a paddle
-#: ../client/pk-console.c:1119
+#: ../client/pk-console.c:1124
 msgid "The daemon crashed mid-transaction!"
 msgstr "El demonio se ha colgado en plena transacción."
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1153
+#: ../client/pk-console.c:1158
 msgid "PackageKit Console Interface"
 msgstr "Interfaz de consola de PackageKit"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1155
+#: ../client/pk-console.c:1160
 msgid "Subcommands:"
 msgstr "Subcomandos:"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was
 #. last executed
-#: ../client/pk-console.c:1235
+#: ../client/pk-console.c:1240
 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: command line argument, just show the version string
-#: ../client/pk-console.c:1277 ../client/pk-monitor.c:371
+#: ../client/pk-console.c:1282 ../client/pk-monitor.c:371
 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:1280
+#: ../client/pk-console.c:1285
 msgid "Set the filter, e.g. installed"
 msgstr "Establecer el filtro, p. ej. instalado"
 
 #. TRANSLATORS: command line argument, use a non-standard install prefix
-#: ../client/pk-console.c:1283
+#: ../client/pk-console.c:1288
 msgid "Set the install root, e.g. '/' or '/mnt/ltsp'"
 msgstr "Establecer la raíz de instalación, p. ej., «/», o «/mnt/ltsp»"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1286
+#: ../client/pk-console.c:1291
 msgid "Exit without waiting for actions to complete"
 msgstr "Salir sin esperar que las acciones se completen"
 
 #. command line argument, do we ask questions
-#: ../client/pk-console.c:1289
+#: ../client/pk-console.c:1294
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:525
 msgid "Install the packages without asking for confirmation"
 msgstr "Instalar los paquetes sin confirmación"
 
 #. TRANSLATORS: command line argument, this command is not a priority
-#: ../client/pk-console.c:1292
+#: ../client/pk-console.c:1297
 msgid "Run the command using idle network bandwidth and also using less power"
 msgstr ""
 "Ejecuta el comando utilizando menos potencia, y el ancho de bando libre"
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1295
+#: ../client/pk-console.c:1300
 msgid ""
 "Print to screen a machine readable output, rather than using animated "
 "widgets"
@@ -438,146 +442,146 @@ msgstr ""
 "utilizar widgets animados"
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1298
+#: ../client/pk-console.c:1303
 msgid "The maximum metadata cache age. Use -1 for 'never'."
 msgstr ""
 "El tiempo máximo de edad para la caché de metadatos. Usar -1 para «nunca»."
 
 #. TRANSLATORS: command line argument, --help
-#: ../client/pk-console.c:1301
+#: ../client/pk-console.c:1306
 msgid "Show help options."
 msgstr "Mostrar las opciones de ayuda."
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1331
+#: ../client/pk-console.c:1336
 msgid "Failed to parse command line"
 msgstr "Falló al analizar la línea de comandos"
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1341
+#: ../client/pk-console.c:1346
 msgid "Failed to contact PackageKit"
 msgstr "Falló al contactar con PackageKit"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1394
+#: ../client/pk-console.c:1399
 msgid "The proxy could not be set"
 msgstr "No se pudo definir el proxy"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1406
+#: ../client/pk-console.c:1411
 msgid "The install root could not be set"
 msgstr "La raíz de instalación no pudo ser definida"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1418
+#: ../client/pk-console.c:1423
 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:1437
+#: ../client/pk-console.c:1442
 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:1444 ../client/pk-console.c:1456
-#: ../client/pk-console.c:1468 ../client/pk-console.c:1480
+#: ../client/pk-console.c:1449 ../client/pk-console.c:1461
+#: ../client/pk-console.c:1473 ../client/pk-console.c:1485
 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:1490
+#: ../client/pk-console.c:1495
 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:1496
+#: ../client/pk-console.c:1501
 msgid "A package name to install is required"
 msgstr "Se necesita un nombre de paquete a instalar"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1505
+#: ../client/pk-console.c:1510
 msgid "A filename to install is required"
 msgstr "Se requiere un nombre de archivo a instalar"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1516
+#: ../client/pk-console.c:1521
 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:1527
+#: ../client/pk-console.c:1532
 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:1536
+#: ../client/pk-console.c:1541
 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:1543
+#: ../client/pk-console.c:1548
 msgid "Directory not found"
 msgstr "Directorio no encontrado"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1552
+#: ../client/pk-console.c:1557
 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:1563
+#: ../client/pk-console.c:1568
 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:1584
+#: ../client/pk-console.c:1589
 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:1595 ../client/pk-console.c:1606
+#: ../client/pk-console.c:1600 ../client/pk-console.c:1611
 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:1617
+#: ../client/pk-console.c:1622
 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:1634
+#: ../client/pk-console.c:1639
 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:1641
+#: ../client/pk-console.c:1646
 msgid "A correct role is required"
 msgstr "Se necesita un rol correcto"
 
 #. 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:1651 ../client/pk-console.c:1665
-#: ../client/pk-console.c:1674 ../client/pk-console.c:1694
-#: ../client/pk-console.c:1703 ../client/pk-generate-pack.c:314
+#: ../client/pk-console.c:1656 ../client/pk-console.c:1670
+#: ../client/pk-console.c:1679 ../client/pk-console.c:1699
+#: ../client/pk-console.c:1708 ../client/pk-generate-pack.c:314
 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:1683
+#: ../client/pk-console.c:1688
 msgid "A package provide string is required"
 msgstr "Se necesita la cadena de lo que proporciona el paquete"
 
 #. TRANSLATORS: The user did not provide a distro name
-#: ../client/pk-console.c:1727
+#: ../client/pk-console.c:1732
 msgid "A distribution name is required"
 msgstr "Se necesita un nombre de distribución"
 
 #. TRANSLATORS: The user did not provide an upgrade type
-#: ../client/pk-console.c:1733
+#: ../client/pk-console.c:1738
 msgid "An upgrade type is required, e.g. 'minimal', 'default' or 'complete'"
 msgstr ""
 "Se necesita un tipo de actualización, ej. «mínima», «predeterminada» o "
@@ -585,13 +589,13 @@ msgstr ""
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command
 #. line
-#: ../client/pk-console.c:1783
+#: ../client/pk-console.c:1788
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "La opción «%s» no está soportada"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:1793
+#: ../client/pk-console.c:1798
 msgid "Command failed"
 msgstr "Falló el comando"
 
@@ -606,8 +610,7 @@ msgstr "Establezca el nombre del archivo de dependencias para excluir"
 msgid ""
 "The output file or directory (the current directory is used if omitted)"
 msgstr ""
-"El directorio o archivo de salida (si se imite, será utilizado el directorio"
-" actual)"
+"El directorio o archivo de salida (se usará el actual en caso de omitirse)"
 
 #. TRANSLATORS: put a list of packages in the pack
 #: ../client/pk-generate-pack.c:259
@@ -732,160 +735,155 @@ msgid "PackageKit Monitor"
 msgstr "Monitor de PackageKit"
 
 #. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/pk-plugin-install.c:499
+#: ../contrib/browser-plugin/pk-plugin-install.c:503
 msgid "Getting package information..."
 msgstr "Extrayendo información del paquete..."
 
 #. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/pk-plugin-install.c:505
+#: ../contrib/browser-plugin/pk-plugin-install.c:509
 #, c-format
 msgid "Run %s"
 msgstr "Ejecutar %s"
 
 #. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:511
+#: ../contrib/browser-plugin/pk-plugin-install.c:515
 msgid "Installed version"
 msgstr "Versión instalada"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:519
+#: ../contrib/browser-plugin/pk-plugin-install.c:523
 #, 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:525
+#: ../contrib/browser-plugin/pk-plugin-install.c:529
 msgid "Run now"
 msgstr "Ejecutar ahora"
 
 #. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:531
+#: ../contrib/browser-plugin/pk-plugin-install.c:535
 #, 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:537
+#: ../contrib/browser-plugin/pk-plugin-install.c:541
 #, c-format
 msgid "Install %s now"
 msgstr "Instalar %s ahora"
 
 #. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:540
+#: ../contrib/browser-plugin/pk-plugin-install.c:544
 msgid "Version"
 msgstr "Versión"
 
 #. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/pk-plugin-install.c:545
+#: ../contrib/browser-plugin/pk-plugin-install.c:549
 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:550
+#: ../contrib/browser-plugin/pk-plugin-install.c:554
 msgid "Installing..."
 msgstr "Instalando..."
 
 #. TRANSLATORS: downloading repo data so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:366
+#: ../contrib/command-not-found/pk-command-not-found.c:363
 msgid "Downloading details about the software sources."
 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:370
+#: ../contrib/command-not-found/pk-command-not-found.c:367
 msgid "Downloading filelists (this may take some time to complete)."
 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:374
+#: ../contrib/command-not-found/pk-command-not-found.c:371
 msgid "Waiting for package manager lock."
 msgstr "Esperando bloqueo del administrador de paquetes."
 
 #. TRANSLATORS: loading package cache so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:378
+#: ../contrib/command-not-found/pk-command-not-found.c:375
 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:444
+#: ../contrib/command-not-found/pk-command-not-found.c:439
 msgid "Failed to search for file"
 msgstr "Falló al buscar el archivo"
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
-#: ../contrib/command-not-found/pk-command-not-found.c:456
+#: ../contrib/command-not-found/pk-command-not-found.c:451
 msgid "Getting the list of files failed"
 msgstr "Falló al obtener la lista de archivos"
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:602
+#: ../contrib/command-not-found/pk-command-not-found.c:597
 msgid "Failed to launch:"
 msgstr "Falló al iniciar:"
 
 #. TRANSLATORS: we failed to install the package
-#: ../contrib/command-not-found/pk-command-not-found.c:630
+#: ../contrib/command-not-found/pk-command-not-found.c:625
 msgid "Failed to install packages"
 msgstr "No se han podido instalar los paquetes"
 
-#. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/command-not-found/pk-command-not-found.c:706
-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. NOTE: this is lowercase to mimic
 #. * the style of bash itself -- apologies
-#: ../contrib/command-not-found/pk-command-not-found.c:741
+#: ../contrib/command-not-found/pk-command-not-found.c:723
 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:759
+#: ../contrib/command-not-found/pk-command-not-found.c:741
 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:773
+#: ../contrib/command-not-found/pk-command-not-found.c:755
 msgid "Run similar command:"
 msgstr "Ejecuta 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:787
-#: ../contrib/command-not-found/pk-command-not-found.c:796
+#: ../contrib/command-not-found/pk-command-not-found.c:769
+#: ../contrib/command-not-found/pk-command-not-found.c:778
 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:803
+#: ../contrib/command-not-found/pk-command-not-found.c:785
 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:821
+#: ../contrib/command-not-found/pk-command-not-found.c:803
 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:828
+#: ../contrib/command-not-found/pk-command-not-found.c:810
 #, 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:855
+#: ../contrib/command-not-found/pk-command-not-found.c:837
 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:865
+#: ../contrib/command-not-found/pk-command-not-found.c:847
 msgid "Suitable packages are:"
 msgstr "Los paquetes posibles son:"
 
 #. get selection
 #. TRANSLATORS: ask the user to choose a file to install
-#: ../contrib/command-not-found/pk-command-not-found.c:874
+#: ../contrib/command-not-found/pk-command-not-found.c:856
 msgid "Please choose a package to install"
 msgstr "Elija un paquete para instalar"
 
@@ -1061,7 +1059,7 @@ msgstr "No se instalan paquetes en modo de simulación"
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
 #. TRANSLATORS: transaction state, installing packages
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:860
-#: ../lib/packagekit-glib2/pk-console-shared.c:296
+#: ../lib/packagekit-glib2/pk-console-shared.c:331
 #, c-format
 msgid "Installing packages"
 msgstr "Instalando paquetes"
@@ -1195,476 +1193,476 @@ msgstr "Lista de paquetes de PackageKit"
 msgid "PackageKit Service Pack"
 msgstr "Paquete de servicio de PackageKit"
 
-#: ../lib/packagekit-glib2/pk-console-shared.c:64
+#: ../lib/packagekit-glib2/pk-console-shared.c:65
 #, c-format
 msgid "Please enter a number from 1 to %i: "
 msgstr "Introduzca un número del 1 al %i: "
 
 #. TRANSLATORS: more than one package could be found that matched, to follow
 #. is a list of possible packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:198
+#: ../lib/packagekit-glib2/pk-console-shared.c:233
 msgid "More than one package matches:"
 msgstr "Coincide más de un paquete:"
 
 #. TRANSLATORS: This finds out which package in the list to use
-#: ../lib/packagekit-glib2/pk-console-shared.c:209
+#: ../lib/packagekit-glib2/pk-console-shared.c:244
 msgid "Please choose the correct package: "
 msgstr "Elija el paquete correcto: "
 
 #. TRANSLATORS: This is when the transaction status is not known
-#: ../lib/packagekit-glib2/pk-console-shared.c:264
+#: ../lib/packagekit-glib2/pk-console-shared.c:299
 msgid "Unknown state"
 msgstr "Estado desconocido"
 
 #. TRANSLATORS: transaction state, the daemon is in the process of starting
-#: ../lib/packagekit-glib2/pk-console-shared.c:268
+#: ../lib/packagekit-glib2/pk-console-shared.c:303
 msgid "Starting"
 msgstr "Comenzando"
 
 #. TRANSLATORS: transaction state, the transaction is waiting for another to
 #. complete
-#: ../lib/packagekit-glib2/pk-console-shared.c:272
+#: ../lib/packagekit-glib2/pk-console-shared.c:307
 msgid "Waiting in queue"
 msgstr "Esperando en cola"
 
 #. TRANSLATORS: transaction state, just started
-#: ../lib/packagekit-glib2/pk-console-shared.c:276
+#: ../lib/packagekit-glib2/pk-console-shared.c:311
 msgid "Running"
 msgstr "Ejecutando"
 
 #. TRANSLATORS: transaction state, is querying data
-#: ../lib/packagekit-glib2/pk-console-shared.c:280
+#: ../lib/packagekit-glib2/pk-console-shared.c:315
 msgid "Querying"
 msgstr "Consultando"
 
 #. TRANSLATORS: transaction state, getting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:284
+#: ../lib/packagekit-glib2/pk-console-shared.c:319
 msgid "Getting information"
 msgstr "Obteniendo información"
 
 #. TRANSLATORS: transaction state, removing packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:288
+#: ../lib/packagekit-glib2/pk-console-shared.c:323
 msgid "Removing packages"
 msgstr "Eliminando paquetes"
 
 #. TRANSLATORS: transaction state, downloading package files
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:292
-#: ../lib/packagekit-glib2/pk-console-shared.c:670
+#: ../lib/packagekit-glib2/pk-console-shared.c:327
+#: ../lib/packagekit-glib2/pk-console-shared.c:705
 msgid "Downloading packages"
 msgstr "Descargando paquetes"
 
 #. TRANSLATORS: transaction state, refreshing internal lists
-#: ../lib/packagekit-glib2/pk-console-shared.c:300
+#: ../lib/packagekit-glib2/pk-console-shared.c:335
 msgid "Refreshing software list"
 msgstr "Actualizando la lista de software"
 
 #. TRANSLATORS: transaction state, installing updates
-#: ../lib/packagekit-glib2/pk-console-shared.c:304
+#: ../lib/packagekit-glib2/pk-console-shared.c:339
 msgid "Installing updates"
 msgstr "Instalando actualizaciones"
 
 #. TRANSLATORS: transaction state, removing old packages, and cleaning config
 #. files
-#: ../lib/packagekit-glib2/pk-console-shared.c:308
+#: ../lib/packagekit-glib2/pk-console-shared.c:343
 msgid "Cleaning up packages"
 msgstr "Limpiando paquetes"
 
 #. TRANSLATORS: transaction state, obsoleting old packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:312
+#: ../lib/packagekit-glib2/pk-console-shared.c:347
 msgid "Obsoleting packages"
 msgstr "Paquetes obsoletos"
 
 #. TRANSLATORS: transaction state, checking the transaction before we do it
-#: ../lib/packagekit-glib2/pk-console-shared.c:316
+#: ../lib/packagekit-glib2/pk-console-shared.c:351
 msgid "Resolving dependencies"
 msgstr "Resolviendo dependencias"
 
 #. TRANSLATORS: transaction state, checking if we have all the security keys
 #. for the operation
-#: ../lib/packagekit-glib2/pk-console-shared.c:320
+#: ../lib/packagekit-glib2/pk-console-shared.c:355
 msgid "Checking signatures"
 msgstr "Comprobando firmas"
 
 #. TRANSLATORS: transaction state, when we return to a previous system state
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:324
-#: ../lib/packagekit-glib2/pk-console-shared.c:630
+#: ../lib/packagekit-glib2/pk-console-shared.c:359
+#: ../lib/packagekit-glib2/pk-console-shared.c:665
 msgid "Rolling back"
 msgstr "Retrocediendo"
 
 #. TRANSLATORS: transaction state, when we're doing a test transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:328
+#: ../lib/packagekit-glib2/pk-console-shared.c:363
 msgid "Testing changes"
 msgstr "Comprobando modificaciones"
 
 #. TRANSLATORS: transaction state, when we're writing to the system package
 #. database
-#: ../lib/packagekit-glib2/pk-console-shared.c:332
+#: ../lib/packagekit-glib2/pk-console-shared.c:367
 msgid "Committing changes"
 msgstr "Realizando modificaciones"
 
 #. TRANSLATORS: transaction state, requesting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:336
+#: ../lib/packagekit-glib2/pk-console-shared.c:371
 msgid "Requesting data"
 msgstr "Solicitando datos"
 
 #. TRANSLATORS: transaction state, all done!
-#: ../lib/packagekit-glib2/pk-console-shared.c:340
+#: ../lib/packagekit-glib2/pk-console-shared.c:375
 msgid "Finished"
 msgstr "Finalizado"
 
 #. TRANSLATORS: transaction state, in the process of cancelling
-#: ../lib/packagekit-glib2/pk-console-shared.c:344
+#: ../lib/packagekit-glib2/pk-console-shared.c:379
 msgid "Cancelling"
 msgstr "Cancelando"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:348
+#: ../lib/packagekit-glib2/pk-console-shared.c:383
 msgid "Downloading repository information"
 msgstr "Descargando información del repositorio"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:352
+#: ../lib/packagekit-glib2/pk-console-shared.c:387
 msgid "Downloading list of packages"
 msgstr "Descargando listas de paquetes"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:356
+#: ../lib/packagekit-glib2/pk-console-shared.c:391
 msgid "Downloading file lists"
 msgstr "Descargando listas de archivos"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:360
+#: ../lib/packagekit-glib2/pk-console-shared.c:395
 msgid "Downloading lists of changes"
 msgstr "Descargando listas de modificaciones"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:364
+#: ../lib/packagekit-glib2/pk-console-shared.c:399
 msgid "Downloading groups"
 msgstr "Descargando grupos"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:368
+#: ../lib/packagekit-glib2/pk-console-shared.c:403
 msgid "Downloading update information"
 msgstr "Descargando información de la actualización"
 
 #. TRANSLATORS: transaction state, repackaging delta files
-#: ../lib/packagekit-glib2/pk-console-shared.c:372
+#: ../lib/packagekit-glib2/pk-console-shared.c:407
 msgid "Repackaging files"
 msgstr "Volviendo a empaquetar archivos"
 
 #. TRANSLATORS: transaction state, loading databases
-#: ../lib/packagekit-glib2/pk-console-shared.c:376
+#: ../lib/packagekit-glib2/pk-console-shared.c:411
 msgid "Loading cache"
 msgstr "Cargando caché"
 
 #. TRANSLATORS: transaction state, scanning for running processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:380
+#: ../lib/packagekit-glib2/pk-console-shared.c:415
 msgid "Scanning applications"
 msgstr "Escaneando aplicaciones"
 
 #. TRANSLATORS: transaction state, generating a list of packages installed on
 #. the system
-#: ../lib/packagekit-glib2/pk-console-shared.c:384
+#: ../lib/packagekit-glib2/pk-console-shared.c:419
 msgid "Generating package lists"
 msgstr "Generando la lista de paquetes"
 
 #. TRANSLATORS: transaction state, when we're waiting for the native tools to
 #. exit
-#: ../lib/packagekit-glib2/pk-console-shared.c:388
+#: ../lib/packagekit-glib2/pk-console-shared.c:423
 msgid "Waiting for package manager lock"
 msgstr "Esperando bloqueo del administrador de paquetes"
 
 #. TRANSLATORS: transaction state, waiting for user to type in a password
-#: ../lib/packagekit-glib2/pk-console-shared.c:392
+#: ../lib/packagekit-glib2/pk-console-shared.c:427
 msgid "Waiting for authentication"
 msgstr "Esperando autenticación"
 
 #. TRANSLATORS: transaction state, we are updating the list of processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:396
+#: ../lib/packagekit-glib2/pk-console-shared.c:431
 msgid "Updating running applications"
 msgstr "Actualizando aplicaciones ejecutadas"
 
 #. TRANSLATORS: transaction state, we are checking executable files currently
 #. in use
-#: ../lib/packagekit-glib2/pk-console-shared.c:400
+#: ../lib/packagekit-glib2/pk-console-shared.c:435
 msgid "Checking applications in use"
 msgstr "Comprobando aplicaciones en uso"
 
 #. TRANSLATORS: transaction state, we are checking for libraries currently in
 #. use
-#: ../lib/packagekit-glib2/pk-console-shared.c:404
+#: ../lib/packagekit-glib2/pk-console-shared.c:439
 msgid "Checking libraries in use"
 msgstr "Comprobando bibliotecas en uso"
 
 #. TRANSLATORS: transaction state, we are copying package files before or
 #. after the transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:408
+#: ../lib/packagekit-glib2/pk-console-shared.c:443
 msgid "Copying files"
 msgstr "Copiando archivos"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:426
+#: ../lib/packagekit-glib2/pk-console-shared.c:461
 msgid "Trivial"
 msgstr "Trivial"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:430
+#: ../lib/packagekit-glib2/pk-console-shared.c:465
 msgid "Normal"
 msgstr "Normal"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:434
+#: ../lib/packagekit-glib2/pk-console-shared.c:469
 msgid "Important"
 msgstr "Importante"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:438
+#: ../lib/packagekit-glib2/pk-console-shared.c:473
 msgid "Security"
 msgstr "Seguridad"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:442
+#: ../lib/packagekit-glib2/pk-console-shared.c:477
 msgid "Bug fix "
 msgstr "Solución de error"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:446
+#: ../lib/packagekit-glib2/pk-console-shared.c:481
 msgid "Enhancement"
 msgstr "Mejora"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:450
+#: ../lib/packagekit-glib2/pk-console-shared.c:485
 msgid "Blocked"
 msgstr "Bloqueado"
 
 #. TRANSLATORS: The state of a package
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:455
-#: ../lib/packagekit-glib2/pk-console-shared.c:528
+#: ../lib/packagekit-glib2/pk-console-shared.c:490
+#: ../lib/packagekit-glib2/pk-console-shared.c:563
 msgid "Installed"
 msgstr "Instalado"
 
 #. TRANSLATORS: The state of a package, i.e. not installed
-#: ../lib/packagekit-glib2/pk-console-shared.c:460
+#: ../lib/packagekit-glib2/pk-console-shared.c:495
 msgid "Available"
 msgstr "Disponible"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:478
+#: ../lib/packagekit-glib2/pk-console-shared.c:513
 msgid "Downloading"
 msgstr "Descargando"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:482
+#: ../lib/packagekit-glib2/pk-console-shared.c:517
 msgid "Updating"
 msgstr "Actualizando"
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:486
-#: ../lib/packagekit-glib2/pk-console-shared.c:606
+#: ../lib/packagekit-glib2/pk-console-shared.c:521
+#: ../lib/packagekit-glib2/pk-console-shared.c:641
 msgid "Installing"
 msgstr "Instalando"
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:490
-#: ../lib/packagekit-glib2/pk-console-shared.c:602
+#: ../lib/packagekit-glib2/pk-console-shared.c:525
+#: ../lib/packagekit-glib2/pk-console-shared.c:637
 msgid "Removing"
 msgstr "Eliminando"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:494
+#: ../lib/packagekit-glib2/pk-console-shared.c:529
 msgid "Cleaning up"
 msgstr "Limpiando"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:498
+#: ../lib/packagekit-glib2/pk-console-shared.c:533
 msgid "Obsoleting"
 msgstr "Obsoleto"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:502
+#: ../lib/packagekit-glib2/pk-console-shared.c:537
 msgid "Reinstalling"
 msgstr "Reinstalando"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:520
+#: ../lib/packagekit-glib2/pk-console-shared.c:555
 msgid "Downloaded"
 msgstr "Descargado"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:532
+#: ../lib/packagekit-glib2/pk-console-shared.c:567
 msgid "Removed"
 msgstr "Eliminados"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:536
+#: ../lib/packagekit-glib2/pk-console-shared.c:571
 msgid "Cleaned up"
 msgstr "Limpios"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:540
+#: ../lib/packagekit-glib2/pk-console-shared.c:575
 msgid "Obsoleted"
 msgstr "Obsoletos"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:544
+#: ../lib/packagekit-glib2/pk-console-shared.c:579
 msgid "Reinstalled"
 msgstr "Reinstalados"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:562
+#: ../lib/packagekit-glib2/pk-console-shared.c:597
 msgid "Unknown role type"
 msgstr "Tipo de función desconocido"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:566
+#: ../lib/packagekit-glib2/pk-console-shared.c:601
 msgid "Getting dependencies"
 msgstr "Obteniendo dependencias"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:570
+#: ../lib/packagekit-glib2/pk-console-shared.c:605
 msgid "Getting update details"
 msgstr "Obteniendo detalles de la actualización"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:574
+#: ../lib/packagekit-glib2/pk-console-shared.c:609
 msgid "Getting details"
 msgstr "Obteniendo detalles"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:578
+#: ../lib/packagekit-glib2/pk-console-shared.c:613
 msgid "Getting requires"
 msgstr "Obteniendo lo que requiere"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:582
+#: ../lib/packagekit-glib2/pk-console-shared.c:617
 msgid "Getting updates"
 msgstr "Obteniendo actualizaciones"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:586
+#: ../lib/packagekit-glib2/pk-console-shared.c:621
 msgid "Searching by details"
 msgstr "Buscando por detalles"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:590
+#: ../lib/packagekit-glib2/pk-console-shared.c:625
 msgid "Searching by file"
 msgstr "Buscando por archivos"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:594
+#: ../lib/packagekit-glib2/pk-console-shared.c:629
 msgid "Searching groups"
 msgstr "Buscando grupos"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:598
+#: ../lib/packagekit-glib2/pk-console-shared.c:633
 msgid "Searching by name"
 msgstr "Buscando por nombre"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:610
+#: ../lib/packagekit-glib2/pk-console-shared.c:645
 msgid "Installing files"
 msgstr "Instalando archivos"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:614
+#: ../lib/packagekit-glib2/pk-console-shared.c:649
 msgid "Refreshing cache"
 msgstr "Actualizando el caché"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:618
+#: ../lib/packagekit-glib2/pk-console-shared.c:653
 msgid "Updating packages"
 msgstr "Actualizando paquetes"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:622
+#: ../lib/packagekit-glib2/pk-console-shared.c:657
 msgid "Updating system"
 msgstr "Actualizando el sistema"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:626
+#: ../lib/packagekit-glib2/pk-console-shared.c:661
 msgid "Canceling"
 msgstr "Cancelando"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:634
+#: ../lib/packagekit-glib2/pk-console-shared.c:669
 msgid "Getting repositories"
 msgstr "Obteniendo repositorios"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:638
+#: ../lib/packagekit-glib2/pk-console-shared.c:673
 msgid "Enabling repository"
 msgstr "Habilitando repositorio"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:642
+#: ../lib/packagekit-glib2/pk-console-shared.c:677
 msgid "Setting data"
 msgstr "Definiendo los datos"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:646
+#: ../lib/packagekit-glib2/pk-console-shared.c:681
 msgid "Resolving"
 msgstr "Resolviendo"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:650
+#: ../lib/packagekit-glib2/pk-console-shared.c:685
 msgid "Getting file list"
 msgstr "Obteniendo lista de archivos"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:654
+#: ../lib/packagekit-glib2/pk-console-shared.c:689
 msgid "Getting provides"
 msgstr "Obteniendo lo que provee"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:658
+#: ../lib/packagekit-glib2/pk-console-shared.c:693
 msgid "Installing signature"
 msgstr "Instalando firma"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:662
+#: ../lib/packagekit-glib2/pk-console-shared.c:697
 msgid "Getting packages"
 msgstr "Obteniendo paquetes"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:666
+#: ../lib/packagekit-glib2/pk-console-shared.c:701
 msgid "Accepting EULA"
 msgstr ""
 "Aceptando el Acuerdo de licencia de usuario final (EULA, por las iniciales "
 "en inglés de End User License Agreement)"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:674
+#: ../lib/packagekit-glib2/pk-console-shared.c:709
 msgid "Getting upgrades"
 msgstr "Obteniendo actualizaciones"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:678
+#: ../lib/packagekit-glib2/pk-console-shared.c:713
 msgid "Getting categories"
 msgstr "Obteniendo categorías"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:682
+#: ../lib/packagekit-glib2/pk-console-shared.c:717
 msgid "Getting transactions"
 msgstr "Obteniendo transacciones"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:686
-#: ../lib/packagekit-glib2/pk-console-shared.c:690
+#: ../lib/packagekit-glib2/pk-console-shared.c:721
+#: ../lib/packagekit-glib2/pk-console-shared.c:725
 msgid "Simulating install"
 msgstr "Simulando la instalación"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:694
+#: ../lib/packagekit-glib2/pk-console-shared.c:729
 msgid "Simulating remove"
 msgstr "Simulando eliminación"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:698
+#: ../lib/packagekit-glib2/pk-console-shared.c:733
 msgid "Simulating update"
 msgstr "Simulando la actualización"
 
@@ -1814,13 +1812,19 @@ msgstr "Los siguientes paquetes tienen que ser reinstalados:"
 msgid "The following packages have to be downgraded:"
 msgstr "Los siguientes paquetes tienen que ser desactualizados:"
 
+#. TRANSLATORS: When processing, untrusted and non-verified packages may be
+#. encountered
+#: ../lib/packagekit-glib2/pk-task-text.c:325
+msgid "The following packages are untrusted:"
+msgstr "No se confía en los siguientes paquetes:"
+
 #. TRANSLATORS: ask the user if the proposed changes are okay
-#: ../lib/packagekit-glib2/pk-task-text.c:380
+#: ../lib/packagekit-glib2/pk-task-text.c:385
 msgid "Proceed with changes?"
 msgstr "¿Continuar con las modificaciones?"
 
 #. TRANSLATORS: tell the user we didn't do anything
-#: ../lib/packagekit-glib2/pk-task-text.c:385
+#: ../lib/packagekit-glib2/pk-task-text.c:390
 msgid "The transaction did not proceed."
 msgstr "La transacción no pudo realizarse."
 
@@ -2035,104 +2039,73 @@ msgstr "Actualizar paquetes"
 msgid "Upgrade System"
 msgstr "Actualizar el sistema"
 
-#. TRANSLATORS: failed due to DBus security
-#: ../src/pk-main.c:91
-msgid "Startup failed due to security policies on this machine."
-msgstr "El arranque falló debido a políticas de seguridad en esta máquina."
-
-#. TRANSLATORS: only two ways this can fail...
-#: ../src/pk-main.c:93
-msgid "This can happen for two reasons:"
-msgstr "Esto puede suceder por dos razones:"
-
-#. TRANSLATORS: only allowed to be owned by root
-#: ../src/pk-main.c:95
-msgid "The correct user is not launching the executable (usually root)"
-msgstr ""
-"El usuario correcto no esta iniciando el ejecutable (generalmente root)"
-
-#. TRANSLATORS: or we are installed in a prefix
-#: ../src/pk-main.c:97
-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:223
+#: ../src/pk-main.c:149
 msgid "Packaging backend to use, e.g. dummy"
 msgstr "Motor de paquetes a ser utilizado, ej. dummy"
 
 #. TRANSLATORS: if we should run in the background
-#: ../src/pk-main.c:226
+#: ../src/pk-main.c:152
 msgid "Daemonize and detach from the terminal"
 msgstr "Demonizar y desasociar de la terminal"
 
 #. TRANSLATORS: if we should not monitor how long we are inactive for
-#: ../src/pk-main.c:229
+#: ../src/pk-main.c:155
 msgid "Disable the idle timer"
 msgstr "Desactivar el contador de inactividad"
 
 #. TRANSLATORS: show version
-#: ../src/pk-main.c:232
+#: ../src/pk-main.c:158
 msgid "Show version and exit"
 msgstr "Mostrar versión y salir"
 
 #. TRANSLATORS: exit after we've started up, used for user profiling
-#: ../src/pk-main.c:235
+#: ../src/pk-main.c:161
 msgid "Exit after a small delay"
 msgstr "Salir después de una pequeña pausa"
 
 #. TRANSLATORS: exit straight away, used for automatic profiling
-#: ../src/pk-main.c:238
+#: ../src/pk-main.c:164
 msgid "Exit after the engine has loaded"
 msgstr "Salir después que sea cargado el motor"
 
+#. TRANSLATORS: don't unset environment variables, used for debugging
+#: ../src/pk-main.c:167
+msgid "Don't clear environment on startup"
+msgstr "No limpia el entorno en el inicio"
+
 #. TRANSLATORS: describing the service that is running
-#: ../src/pk-main.c:253
+#: ../src/pk-main.c:179
 msgid "PackageKit service"
 msgstr "Servicio PackageKit"
 
-#. TRANSLATORS: fatal error, dbus is not running
-#: ../src/pk-main.c:298
-msgid "Cannot connect to the system bus"
-msgstr "No se pudo conectar con el bus del sistema"
-
-#: ../src/pk-main.c:344
+#: ../src/pk-main.c:253
 msgid "Failed to load any of the specified backends:"
 msgstr "Falló al cargar cualquiera de los «backend» especificados:"
 
-#. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error
-#. follows
-#: ../src/pk-main.c:358
-msgid "Error trying to start:"
-msgstr "Error intentando iniciar:"
-
 #. TRANSLATORS: is not GPG signed
-#: ../src/pk-transaction.c:2611 ../src/pk-transaction.c:2618
+#: ../src/pk-transaction.c:2696
 msgid "The software is not from a trusted source."
 msgstr "El software no proviene de una fuente confiable."
 
-#: ../src/pk-transaction.c:2623
+#: ../src/pk-transaction.c:2704
 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."
 
-#: ../src/pk-transaction.c:2624
+#: ../src/pk-transaction.c:2705
 msgid "Do not update these packages unless you are sure it is safe to do so."
 msgstr ""
 "No actualice estos paquetes a menos que sepa con certeza que es seguro "
 "hacerlo."
 
-#: ../src/pk-transaction.c:2634
+#: ../src/pk-transaction.c:2715
 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-transaction.c:2635
+#: ../src/pk-transaction.c:2716
 msgid "Do not install these packages unless you are sure it is safe to do so."
 msgstr ""
 "No instale estos paquetes a menos que sepa con certeza que es seguro "
diff --git a/po/eu.po b/po/eu.po
index 55aaa8f..7ffcb0b 100644
--- a/po/eu.po
+++ b/po/eu.po
@@ -2,14 +2,15 @@
 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
 # This file is distributed under the same license as the PACKAGE package.
 # 
-# Richard Hughes <richard at hughsie.com>, 2011
+# Translators:
+# Richard Hughes <richard at hughsie.com>, 2011.
 msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-04 10:50+0100\n"
-"PO-Revision-Date: 2011-05-04 09:56+0000\n"
-"Last-Translator: hughsie <richard at hughsie.com>\n"
+"POT-Creation-Date: 2011-11-10 19:50+0000\n"
+"PO-Revision-Date: 2011-11-10 19:50+0000\n"
+"Last-Translator: Richard Hughes <richard at hughsie.com>\n"
 "Language-Team: LANGUAGE <LL at li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -195,7 +196,7 @@ msgstr "Igorria"
 
 #. TRANSLATORS: details about the update, date the update was updated
 #. TRANSLATORS: The action of the package, in past tense
-#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:524
+#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:559
 msgid "Updated"
 msgstr "Eguneratua"
 
@@ -285,7 +286,7 @@ msgstr "Ez da paketerik eguneratu behar."
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
 #: ../client/pk-console.c:704
-#: ../contrib/command-not-found/pk-command-not-found.c:639
+#: ../contrib/command-not-found/pk-command-not-found.c:634
 msgid "The transaction failed"
 msgstr "Transakzioak huts egin du"
 
@@ -339,21 +340,21 @@ msgstr ""
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:866
+#: ../client/pk-console.c:871
 #, c-format
 msgid "This tool could not find any available package: %s"
 msgstr "Tresna honek ez du aurkitu paketerik eskuragarri: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:894
+#: ../client/pk-console.c:899
 #, c-format
 msgid "This tool could not find the installed package: %s"
 msgstr "Tresna honek ez du aurkitu instalatutako paketea: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:922 ../client/pk-console.c:950
+#: ../client/pk-console.c:927 ../client/pk-console.c:955
 #, c-format
 msgid "This tool could not find the package: %s"
 msgstr "Tresna honek ez du aurkitu paketea: %s"
@@ -366,70 +367,70 @@ msgstr "Tresna honek ez du aurkitu paketea: %s"
 #. detailed error follows
 #. TRANSLATORS: The package name was not found in any software sources. The
 #. detailed error follows
-#: ../client/pk-console.c:978 ../client/pk-console.c:1006
-#: ../client/pk-console.c:1034 ../client/pk-console.c:1062
-#: ../client/pk-console.c:1090
+#: ../client/pk-console.c:983 ../client/pk-console.c:1011
+#: ../client/pk-console.c:1039 ../client/pk-console.c:1067
+#: ../client/pk-console.c:1095
 #, c-format
 msgid "This tool could not find all the packages: %s"
 msgstr "Tresna honek ez du aurkitu pakete guztiak: %s"
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek
 #. without a paddle
-#: ../client/pk-console.c:1119
+#: ../client/pk-console.c:1124
 msgid "The daemon crashed mid-transaction!"
 msgstr "Deabruak huts egin du transakzioaren erdian!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1153
+#: ../client/pk-console.c:1158
 msgid "PackageKit Console Interface"
 msgstr "PackageKit-en kontsola-interfazea"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1155
+#: ../client/pk-console.c:1160
 msgid "Subcommands:"
 msgstr "Azpikomandoak:"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was
 #. last executed
-#: ../client/pk-console.c:1235
+#: ../client/pk-console.c:1240
 msgid "Failed to get the time since this action was last completed"
 msgstr ""
 "Ezin izan da jakin ekintza hau azken aldiz egin zenetik igaro den denbora"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1277 ../client/pk-monitor.c:371
+#: ../client/pk-console.c:1282 ../client/pk-monitor.c:371
 msgid "Show the program version and exit"
 msgstr "Erakutsi programaren bertsioa eta irten"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1280
+#: ../client/pk-console.c:1285
 msgid "Set the filter, e.g. installed"
 msgstr "Ezarri iragazkia, adib. 'instalatua'"
 
 #. TRANSLATORS: command line argument, use a non-standard install prefix
-#: ../client/pk-console.c:1283
+#: ../client/pk-console.c:1288
 msgid "Set the install root, e.g. '/' or '/mnt/ltsp'"
 msgstr "Ezarri instalazio-erroa, adib. '/' edo '/mnt/ltsp'"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1286
+#: ../client/pk-console.c:1291
 msgid "Exit without waiting for actions to complete"
 msgstr "Irten ekintzak osatu daitezen itxaron gabe"
 
 #. command line argument, do we ask questions
-#: ../client/pk-console.c:1289
+#: ../client/pk-console.c:1294
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:525
 msgid "Install the packages without asking for confirmation"
 msgstr "Instalatu paketeak baieztapena eskatu gabe"
 
 #. TRANSLATORS: command line argument, this command is not a priority
-#: ../client/pk-console.c:1292
+#: ../client/pk-console.c:1297
 msgid "Run the command using idle network bandwidth and also using less power"
 msgstr ""
 "Exekutatu komandoa banda-zabalera inaktiboa eta energia gutxiago erabilita"
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1295
+#: ../client/pk-console.c:1300
 msgid ""
 "Print to screen a machine readable output, rather than using animated "
 "widgets"
@@ -438,143 +439,143 @@ msgstr ""
 "ordez"
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1298
+#: ../client/pk-console.c:1303
 msgid "The maximum metadata cache age. Use -1 for 'never'."
 msgstr "Metadata-katxearen adin maximoa. Erabili -1 'inoiz ez' adierazteko."
 
 #. TRANSLATORS: command line argument, --help
-#: ../client/pk-console.c:1301
+#: ../client/pk-console.c:1306
 msgid "Show help options."
 msgstr ""
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1331
+#: ../client/pk-console.c:1336
 msgid "Failed to parse command line"
 msgstr ""
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1341
+#: ../client/pk-console.c:1346
 msgid "Failed to contact PackageKit"
 msgstr "Ezin izan da PackageKit-ekin kontaktatau"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1394
+#: ../client/pk-console.c:1399
 msgid "The proxy could not be set"
 msgstr "Ezin izan da proxy-a ezarri"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1406
+#: ../client/pk-console.c:1411
 msgid "The install root could not be set"
 msgstr "Ezin izan da instalazio-erroa ezarri"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1418
+#: ../client/pk-console.c:1423
 msgid "The filter specified was invalid"
 msgstr "Adierazitako iragazkia baliogabea da"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1437
+#: ../client/pk-console.c:1442
 msgid "A search type is required, e.g. name"
 msgstr "Bilaketa-mota behar da, adib. izena"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1444 ../client/pk-console.c:1456
-#: ../client/pk-console.c:1468 ../client/pk-console.c:1480
+#: ../client/pk-console.c:1449 ../client/pk-console.c:1461
+#: ../client/pk-console.c:1473 ../client/pk-console.c:1485
 msgid "A search term is required"
 msgstr "Bilaketa-hitza behar da"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1490
+#: ../client/pk-console.c:1495
 msgid "Invalid search type"
 msgstr "Bilaketa-mota baliogabea"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1496
+#: ../client/pk-console.c:1501
 msgid "A package name to install is required"
 msgstr "Pakete-izen bat behar da instalaziorako"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1505
+#: ../client/pk-console.c:1510
 msgid "A filename to install is required"
 msgstr "Fitxategi-izen bat behar da instalaziorako"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1516
+#: ../client/pk-console.c:1521
 msgid "A type, key_id and package_id are required"
 msgstr "Mota bat, key_id bat eta package_id bat behar dira"
 
 #. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:1527
+#: ../client/pk-console.c:1532
 msgid "A package name to remove is required"
 msgstr "Pakete-izen bat behar da kendua izateko"
 
 #. TRANSLATORS: the user did not specify anything about what to download or
 #. where
-#: ../client/pk-console.c:1536
+#: ../client/pk-console.c:1541
 msgid "A destination directory and the package names to download are required"
 msgstr "Helburu-direktorio bat eta pakete-izenak behar dira deskargarako"
 
 #. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:1543
+#: ../client/pk-console.c:1548
 msgid "Directory not found"
 msgstr "Ez da direktorioa aurkitu"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1552
+#: ../client/pk-console.c:1557
 msgid "A licence identifier (eula-id) is required"
 msgstr "Lizentzia-identifikatzaile bat (eula-id) behar da"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1563
+#: ../client/pk-console.c:1568
 msgid "A transaction identifier (tid) is required"
 msgstr "Transakzio-identifikatzaile bat (tid) behar da"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:1584
+#: ../client/pk-console.c:1589
 msgid "A package name to resolve is required"
 msgstr "Pakete-izen bat behar da ebatzia izateko"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:1595 ../client/pk-console.c:1606
+#: ../client/pk-console.c:1600 ../client/pk-console.c:1611
 msgid "A repository name is required"
 msgstr "Biltegi-izen bat behar da"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:1617
+#: ../client/pk-console.c:1622
 msgid "A repo name, parameter and value are required"
 msgstr "Biltegi-izen bat, parametro bat eta balio bat behar dira"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:1634
+#: ../client/pk-console.c:1639
 msgid "An action, e.g. 'update-system' is required"
 msgstr "Ekintza bat, adib. 'update-system', behar da"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:1641
+#: ../client/pk-console.c:1646
 msgid "A correct role is required"
 msgstr "Eginkizun zuzena behar 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:1651 ../client/pk-console.c:1665
-#: ../client/pk-console.c:1674 ../client/pk-console.c:1694
-#: ../client/pk-console.c:1703 ../client/pk-generate-pack.c:314
+#: ../client/pk-console.c:1656 ../client/pk-console.c:1670
+#: ../client/pk-console.c:1679 ../client/pk-console.c:1699
+#: ../client/pk-console.c:1708 ../client/pk-generate-pack.c:314
 msgid "A package name is required"
 msgstr "Pakete-izen bat behar da"
 
 #. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-
 #. decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:1683
+#: ../client/pk-console.c:1688
 msgid "A package provide string is required"
 msgstr "Pakete-eskaintzaren kate bat behar da"
 
 #. TRANSLATORS: The user did not provide a distro name
-#: ../client/pk-console.c:1727
+#: ../client/pk-console.c:1732
 msgid "A distribution name is required"
 msgstr "Banaketa-izen bat behar da"
 
 #. TRANSLATORS: The user did not provide an upgrade type
-#: ../client/pk-console.c:1733
+#: ../client/pk-console.c:1738
 msgid "An upgrade type is required, e.g. 'minimal', 'default' or 'complete'"
 msgstr ""
 "Bertsio-berritze mota bat behar da, adib. 'minimal', 'default' edo "
@@ -582,13 +583,13 @@ msgstr ""
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command
 #. line
-#: ../client/pk-console.c:1783
+#: ../client/pk-console.c:1788
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "'%s' aukera ez dago onartuta"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:1793
+#: ../client/pk-console.c:1798
 msgid "Command failed"
 msgstr "Komandoak huts egin du"
 
@@ -730,161 +731,156 @@ msgid "PackageKit Monitor"
 msgstr "PackageKit monitorea"
 
 #. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/pk-plugin-install.c:499
+#: ../contrib/browser-plugin/pk-plugin-install.c:503
 msgid "Getting package information..."
 msgstr "Pakete-informazioa eskuratzen..."
 
 #. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/pk-plugin-install.c:505
+#: ../contrib/browser-plugin/pk-plugin-install.c:509
 #, c-format
 msgid "Run %s"
 msgstr "Exekutatu %s"
 
 #. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:511
+#: ../contrib/browser-plugin/pk-plugin-install.c:515
 msgid "Installed version"
 msgstr "Instalatutako bertsioa"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:519
+#: ../contrib/browser-plugin/pk-plugin-install.c:523
 #, c-format
 msgid "Run version %s now"
 msgstr "Exekutatu %s bertsioa orain"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:525
+#: ../contrib/browser-plugin/pk-plugin-install.c:529
 msgid "Run now"
 msgstr "Exekutatu orain"
 
 #. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:531
+#: ../contrib/browser-plugin/pk-plugin-install.c:535
 #, c-format
 msgid "Update to version %s"
 msgstr "Eguneratu %s bertsiora"
 
 #. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:537
+#: ../contrib/browser-plugin/pk-plugin-install.c:541
 #, c-format
 msgid "Install %s now"
 msgstr "Instalatu %s orain"
 
 #. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:540
+#: ../contrib/browser-plugin/pk-plugin-install.c:544
 msgid "Version"
 msgstr "Bertsioa"
 
 #. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/pk-plugin-install.c:545
+#: ../contrib/browser-plugin/pk-plugin-install.c:549
 msgid "No packages found for your system"
 msgstr "Ez da paketerik aurkitu zure sisteman"
 
 #. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/pk-plugin-install.c:550
+#: ../contrib/browser-plugin/pk-plugin-install.c:554
 msgid "Installing..."
 msgstr "Instalatzen..."
 
 #. TRANSLATORS: downloading repo data so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:366
+#: ../contrib/command-not-found/pk-command-not-found.c:363
 msgid "Downloading details about the software sources."
 msgstr "Software-jatorriei buruzko xehetasunak deskargatzen."
 
 #. TRANSLATORS: downloading file lists so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:370
+#: ../contrib/command-not-found/pk-command-not-found.c:367
 msgid "Downloading filelists (this may take some time to complete)."
 msgstr ""
 "Fitxategi-zerrendak deskargatzen (honek denbora pixka bat behar izan "
 "dezake)."
 
 #. TRANSLATORS: waiting for native lock
-#: ../contrib/command-not-found/pk-command-not-found.c:374
+#: ../contrib/command-not-found/pk-command-not-found.c:371
 msgid "Waiting for package manager lock."
 msgstr "Itxaroten pakete-kudeatzailearen blokeoa."
 
 #. TRANSLATORS: loading package cache so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:378
+#: ../contrib/command-not-found/pk-command-not-found.c:375
 msgid "Loading list of packages."
 msgstr "Paketeen zerrenda kargatzen."
 
 #. TRANSLATORS: we failed to find the package, this shouldn't happen
-#: ../contrib/command-not-found/pk-command-not-found.c:444
+#: ../contrib/command-not-found/pk-command-not-found.c:439
 msgid "Failed to search for file"
 msgstr "Fitxategiaren bilaketak huts egin du"
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
-#: ../contrib/command-not-found/pk-command-not-found.c:456
+#: ../contrib/command-not-found/pk-command-not-found.c:451
 msgid "Getting the list of files failed"
 msgstr "Huts egin duten fitxategien zerrenda eskuratzen"
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:602
+#: ../contrib/command-not-found/pk-command-not-found.c:597
 msgid "Failed to launch:"
 msgstr "Abioak huts egin du:"
 
 #. TRANSLATORS: we failed to install the package
-#: ../contrib/command-not-found/pk-command-not-found.c:630
+#: ../contrib/command-not-found/pk-command-not-found.c:625
 msgid "Failed to install packages"
 msgstr "Paketeen instalazioak huts egin du"
 
-#. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/command-not-found/pk-command-not-found.c:706
-msgid "PackageKit Command Not Found"
-msgstr "Ez da aurkitu PackageKit komandoa"
-
 #. TRANSLATORS: the prefix of all the output telling the user
 #. * why it's not executing. NOTE: this is lowercase to mimic
 #. * the style of bash itself -- apologies
-#: ../contrib/command-not-found/pk-command-not-found.c:741
+#: ../contrib/command-not-found/pk-command-not-found.c:723
 msgid "command not found"
 msgstr "ez da komandoa aurkitu"
 
 #. TRANSLATORS: tell the user what we think the command is
-#: ../contrib/command-not-found/pk-command-not-found.c:759
+#: ../contrib/command-not-found/pk-command-not-found.c:741
 msgid "Similar command is:"
 msgstr "Antzeko komandoa:"
 
 #. TRANSLATORS: Ask the user if we should run the similar command
-#: ../contrib/command-not-found/pk-command-not-found.c:773
+#: ../contrib/command-not-found/pk-command-not-found.c:755
 msgid "Run similar command:"
 msgstr "Exekutatu antzeko komandoa:"
 
 #. 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:787
-#: ../contrib/command-not-found/pk-command-not-found.c:796
+#: ../contrib/command-not-found/pk-command-not-found.c:769
+#: ../contrib/command-not-found/pk-command-not-found.c:778
 msgid "Similar commands are:"
 msgstr "Antzeko komandoak:"
 
 #. TRANSLATORS: ask the user to choose a file to run
-#: ../contrib/command-not-found/pk-command-not-found.c:803
+#: ../contrib/command-not-found/pk-command-not-found.c:785
 msgid "Please choose a command to run"
 msgstr "Hautatu exekutatuko den komandoa"
 
 #. TRANSLATORS: tell the user what package provides the command
-#: ../contrib/command-not-found/pk-command-not-found.c:821
+#: ../contrib/command-not-found/pk-command-not-found.c:803
 msgid "The package providing this file is:"
 msgstr "Fitxategi honetaz hornitzen duen paketea hau da:"
 
 #. TRANSLATORS: as the user if we want to install a package to provide the
 #. command
-#: ../contrib/command-not-found/pk-command-not-found.c:828
+#: ../contrib/command-not-found/pk-command-not-found.c:810
 #, c-format
 msgid "Install package '%s' to provide command '%s'?"
 msgstr "Instalatu  '%s' paketea  '%s' komandoaz hornitzeko?"
 
 #. TRANSLATORS: Show the user a list of packages that provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:855
+#: ../contrib/command-not-found/pk-command-not-found.c:837
 msgid "Packages providing this file are:"
 msgstr "Fitxategi honetaz hornitzen duten paketeak hauek dira:"
 
 #. 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:865
+#: ../contrib/command-not-found/pk-command-not-found.c:847
 msgid "Suitable packages are:"
 msgstr "Pakete egokiak hauek dira:"
 
 #. get selection
 #. TRANSLATORS: ask the user to choose a file to install
-#: ../contrib/command-not-found/pk-command-not-found.c:874
+#: ../contrib/command-not-found/pk-command-not-found.c:856
 msgid "Please choose a package to install"
 msgstr "Hautatu instalatuko den paketea"
 
@@ -1058,7 +1054,7 @@ msgstr "Paketeak ez instalatzen simulazio-moduan"
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
 #. TRANSLATORS: transaction state, installing packages
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:860
-#: ../lib/packagekit-glib2/pk-console-shared.c:296
+#: ../lib/packagekit-glib2/pk-console-shared.c:331
 #, c-format
 msgid "Installing packages"
 msgstr "Paketeak instalatzen"
@@ -1192,474 +1188,474 @@ msgstr "PackageKit pakete-zerrenda"
 msgid "PackageKit Service Pack"
 msgstr "PackageKit zerbitzu-paketea"
 
-#: ../lib/packagekit-glib2/pk-console-shared.c:64
+#: ../lib/packagekit-glib2/pk-console-shared.c:65
 #, c-format
 msgid "Please enter a number from 1 to %i: "
 msgstr "Sartu 1etik %i-(e)ra arteko zenbaki bat: "
 
 #. TRANSLATORS: more than one package could be found that matched, to follow
 #. is a list of possible packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:198
+#: ../lib/packagekit-glib2/pk-console-shared.c:233
 msgid "More than one package matches:"
 msgstr "Pakete bat baino gehiago dator bat:"
 
 #. TRANSLATORS: This finds out which package in the list to use
-#: ../lib/packagekit-glib2/pk-console-shared.c:209
+#: ../lib/packagekit-glib2/pk-console-shared.c:244
 msgid "Please choose the correct package: "
 msgstr "Hautatu pakete zuzena: "
 
 #. TRANSLATORS: This is when the transaction status is not known
-#: ../lib/packagekit-glib2/pk-console-shared.c:264
+#: ../lib/packagekit-glib2/pk-console-shared.c:299
 msgid "Unknown state"
 msgstr "Egoera ezezaguna"
 
 #. TRANSLATORS: transaction state, the daemon is in the process of starting
-#: ../lib/packagekit-glib2/pk-console-shared.c:268
+#: ../lib/packagekit-glib2/pk-console-shared.c:303
 msgid "Starting"
 msgstr "Abiarazten"
 
 #. TRANSLATORS: transaction state, the transaction is waiting for another to
 #. complete
-#: ../lib/packagekit-glib2/pk-console-shared.c:272
+#: ../lib/packagekit-glib2/pk-console-shared.c:307
 msgid "Waiting in queue"
 msgstr "Ilaran itxaroten"
 
 #. TRANSLATORS: transaction state, just started
-#: ../lib/packagekit-glib2/pk-console-shared.c:276
+#: ../lib/packagekit-glib2/pk-console-shared.c:311
 msgid "Running"
 msgstr "Exekutatzen"
 
 #. TRANSLATORS: transaction state, is querying data
-#: ../lib/packagekit-glib2/pk-console-shared.c:280
+#: ../lib/packagekit-glib2/pk-console-shared.c:315
 msgid "Querying"
 msgstr "Kontsultatzen"
 
 #. TRANSLATORS: transaction state, getting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:284
+#: ../lib/packagekit-glib2/pk-console-shared.c:319
 msgid "Getting information"
 msgstr "Informazioa eskuratzen"
 
 #. TRANSLATORS: transaction state, removing packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:288
+#: ../lib/packagekit-glib2/pk-console-shared.c:323
 msgid "Removing packages"
 msgstr "Paketeak kentzen"
 
 #. TRANSLATORS: transaction state, downloading package files
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:292
-#: ../lib/packagekit-glib2/pk-console-shared.c:670
+#: ../lib/packagekit-glib2/pk-console-shared.c:327
+#: ../lib/packagekit-glib2/pk-console-shared.c:705
 msgid "Downloading packages"
 msgstr "Paketeak deskargatzen"
 
 #. TRANSLATORS: transaction state, refreshing internal lists
-#: ../lib/packagekit-glib2/pk-console-shared.c:300
+#: ../lib/packagekit-glib2/pk-console-shared.c:335
 msgid "Refreshing software list"
 msgstr "Software-zerrenda freskatzen"
 
 #. TRANSLATORS: transaction state, installing updates
-#: ../lib/packagekit-glib2/pk-console-shared.c:304
+#: ../lib/packagekit-glib2/pk-console-shared.c:339
 msgid "Installing updates"
 msgstr "Eguneraketak instalatzen"
 
 #. TRANSLATORS: transaction state, removing old packages, and cleaning config
 #. files
-#: ../lib/packagekit-glib2/pk-console-shared.c:308
+#: ../lib/packagekit-glib2/pk-console-shared.c:343
 msgid "Cleaning up packages"
 msgstr "Paketeak garbitzen"
 
 #. TRANSLATORS: transaction state, obsoleting old packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:312
+#: ../lib/packagekit-glib2/pk-console-shared.c:347
 msgid "Obsoleting packages"
 msgstr "Paketeak zaharkitzen"
 
 #. TRANSLATORS: transaction state, checking the transaction before we do it
-#: ../lib/packagekit-glib2/pk-console-shared.c:316
+#: ../lib/packagekit-glib2/pk-console-shared.c:351
 msgid "Resolving dependencies"
 msgstr "Mendekotasunak ebazten"
 
 #. TRANSLATORS: transaction state, checking if we have all the security keys
 #. for the operation
-#: ../lib/packagekit-glib2/pk-console-shared.c:320
+#: ../lib/packagekit-glib2/pk-console-shared.c:355
 msgid "Checking signatures"
 msgstr "Sinadurak egiaztatzen"
 
 #. TRANSLATORS: transaction state, when we return to a previous system state
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:324
-#: ../lib/packagekit-glib2/pk-console-shared.c:630
+#: ../lib/packagekit-glib2/pk-console-shared.c:359
+#: ../lib/packagekit-glib2/pk-console-shared.c:665
 msgid "Rolling back"
 msgstr "Aurreko transakzio batera itzultzen"
 
 #. TRANSLATORS: transaction state, when we're doing a test transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:328
+#: ../lib/packagekit-glib2/pk-console-shared.c:363
 msgid "Testing changes"
 msgstr "Aldaketak probatzen"
 
 #. TRANSLATORS: transaction state, when we're writing to the system package
 #. database
-#: ../lib/packagekit-glib2/pk-console-shared.c:332
+#: ../lib/packagekit-glib2/pk-console-shared.c:367
 msgid "Committing changes"
 msgstr "Aldaketak aplikatzen"
 
 #. TRANSLATORS: transaction state, requesting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:336
+#: ../lib/packagekit-glib2/pk-console-shared.c:371
 msgid "Requesting data"
 msgstr "Datuak eskatzen"
 
 #. TRANSLATORS: transaction state, all done!
-#: ../lib/packagekit-glib2/pk-console-shared.c:340
+#: ../lib/packagekit-glib2/pk-console-shared.c:375
 msgid "Finished"
 msgstr "Amaitua"
 
 #. TRANSLATORS: transaction state, in the process of cancelling
-#: ../lib/packagekit-glib2/pk-console-shared.c:344
+#: ../lib/packagekit-glib2/pk-console-shared.c:379
 msgid "Cancelling"
 msgstr "Uzten"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:348
+#: ../lib/packagekit-glib2/pk-console-shared.c:383
 msgid "Downloading repository information"
 msgstr "Biltegi-informazioa deskargatzen"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:352
+#: ../lib/packagekit-glib2/pk-console-shared.c:387
 msgid "Downloading list of packages"
 msgstr "Pakete-zerrenda deskargatzen"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:356
+#: ../lib/packagekit-glib2/pk-console-shared.c:391
 msgid "Downloading file lists"
 msgstr "Fitxategi-zerrendak deskargatzen"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:360
+#: ../lib/packagekit-glib2/pk-console-shared.c:395
 msgid "Downloading lists of changes"
 msgstr "Aldaketa-zerrenda deskargatzen"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:364
+#: ../lib/packagekit-glib2/pk-console-shared.c:399
 msgid "Downloading groups"
 msgstr "Taldeak deskargatzen"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:368
+#: ../lib/packagekit-glib2/pk-console-shared.c:403
 msgid "Downloading update information"
 msgstr "Eguneraketa-informazioa deskargatzen"
 
 #. TRANSLATORS: transaction state, repackaging delta files
-#: ../lib/packagekit-glib2/pk-console-shared.c:372
+#: ../lib/packagekit-glib2/pk-console-shared.c:407
 msgid "Repackaging files"
 msgstr "Fitxategiak berriro paketatzen"
 
 #. TRANSLATORS: transaction state, loading databases
-#: ../lib/packagekit-glib2/pk-console-shared.c:376
+#: ../lib/packagekit-glib2/pk-console-shared.c:411
 msgid "Loading cache"
 msgstr "Katxea kargatzen"
 
 #. TRANSLATORS: transaction state, scanning for running processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:380
+#: ../lib/packagekit-glib2/pk-console-shared.c:415
 msgid "Scanning applications"
 msgstr "Aplikazioak eskaneatzen"
 
 #. TRANSLATORS: transaction state, generating a list of packages installed on
 #. the system
-#: ../lib/packagekit-glib2/pk-console-shared.c:384
+#: ../lib/packagekit-glib2/pk-console-shared.c:419
 msgid "Generating package lists"
 msgstr "Pakete-zerrenda sortzen"
 
 #. TRANSLATORS: transaction state, when we're waiting for the native tools to
 #. exit
-#: ../lib/packagekit-glib2/pk-console-shared.c:388
+#: ../lib/packagekit-glib2/pk-console-shared.c:423
 msgid "Waiting for package manager lock"
 msgstr "Pakete-kudeatzailearen blokeoa itxaroten"
 
 #. TRANSLATORS: transaction state, waiting for user to type in a password
-#: ../lib/packagekit-glib2/pk-console-shared.c:392
+#: ../lib/packagekit-glib2/pk-console-shared.c:427
 msgid "Waiting for authentication"
 msgstr "Autentifikaziorako itxaroten"
 
 #. TRANSLATORS: transaction state, we are updating the list of processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:396
+#: ../lib/packagekit-glib2/pk-console-shared.c:431
 msgid "Updating running applications"
 msgstr "Abioan dauden aplikazioak eguneratzen"
 
 #. TRANSLATORS: transaction state, we are checking executable files currently
 #. in use
-#: ../lib/packagekit-glib2/pk-console-shared.c:400
+#: ../lib/packagekit-glib2/pk-console-shared.c:435
 msgid "Checking applications in use"
 msgstr "Abioan dauden aplikazioak egiaztatzen"
 
 #. TRANSLATORS: transaction state, we are checking for libraries currently in
 #. use
-#: ../lib/packagekit-glib2/pk-console-shared.c:404
+#: ../lib/packagekit-glib2/pk-console-shared.c:439
 msgid "Checking libraries in use"
 msgstr "Erabiltzen ari diren liburutegiak egiaztatzen"
 
 #. TRANSLATORS: transaction state, we are copying package files before or
 #. after the transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:408
+#: ../lib/packagekit-glib2/pk-console-shared.c:443
 msgid "Copying files"
 msgstr "Fitxategiak kopiatzen"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:426
+#: ../lib/packagekit-glib2/pk-console-shared.c:461
 msgid "Trivial"
 msgstr "Arina"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:430
+#: ../lib/packagekit-glib2/pk-console-shared.c:465
 msgid "Normal"
 msgstr "Normala"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:434
+#: ../lib/packagekit-glib2/pk-console-shared.c:469
 msgid "Important"
 msgstr "Garrantzitsua"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:438
+#: ../lib/packagekit-glib2/pk-console-shared.c:473
 msgid "Security"
 msgstr "Segurtasuna"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:442
+#: ../lib/packagekit-glib2/pk-console-shared.c:477
 msgid "Bug fix "
 msgstr "Akats-konponketa "
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:446
+#: ../lib/packagekit-glib2/pk-console-shared.c:481
 msgid "Enhancement"
 msgstr "Hobekuntza"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:450
+#: ../lib/packagekit-glib2/pk-console-shared.c:485
 msgid "Blocked"
 msgstr "Blokeatua"
 
 #. TRANSLATORS: The state of a package
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:455
-#: ../lib/packagekit-glib2/pk-console-shared.c:528
+#: ../lib/packagekit-glib2/pk-console-shared.c:490
+#: ../lib/packagekit-glib2/pk-console-shared.c:563
 msgid "Installed"
 msgstr "Instalatua"
 
 #. TRANSLATORS: The state of a package, i.e. not installed
-#: ../lib/packagekit-glib2/pk-console-shared.c:460
+#: ../lib/packagekit-glib2/pk-console-shared.c:495
 msgid "Available"
 msgstr "Eskuragarri"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:478
+#: ../lib/packagekit-glib2/pk-console-shared.c:513
 msgid "Downloading"
 msgstr "Deskargatzen"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:482
+#: ../lib/packagekit-glib2/pk-console-shared.c:517
 msgid "Updating"
 msgstr "Eguneratzen"
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:486
-#: ../lib/packagekit-glib2/pk-console-shared.c:606
+#: ../lib/packagekit-glib2/pk-console-shared.c:521
+#: ../lib/packagekit-glib2/pk-console-shared.c:641
 msgid "Installing"
 msgstr "Instalatzen"
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:490
-#: ../lib/packagekit-glib2/pk-console-shared.c:602
+#: ../lib/packagekit-glib2/pk-console-shared.c:525
+#: ../lib/packagekit-glib2/pk-console-shared.c:637
 msgid "Removing"
 msgstr "Kentzen"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:494
+#: ../lib/packagekit-glib2/pk-console-shared.c:529
 msgid "Cleaning up"
 msgstr "Garbitzen"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:498
+#: ../lib/packagekit-glib2/pk-console-shared.c:533
 msgid "Obsoleting"
 msgstr "Zaharkitutzat hartzen"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:502
+#: ../lib/packagekit-glib2/pk-console-shared.c:537
 msgid "Reinstalling"
 msgstr "Berriro instalatzen"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:520
+#: ../lib/packagekit-glib2/pk-console-shared.c:555
 msgid "Downloaded"
 msgstr "Deskargatua"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:532
+#: ../lib/packagekit-glib2/pk-console-shared.c:567
 msgid "Removed"
 msgstr "Kendua"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:536
+#: ../lib/packagekit-glib2/pk-console-shared.c:571
 msgid "Cleaned up"
 msgstr "Garbitua"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:540
+#: ../lib/packagekit-glib2/pk-console-shared.c:575
 msgid "Obsoleted"
 msgstr "Zaharkitua"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:544
+#: ../lib/packagekit-glib2/pk-console-shared.c:579
 msgid "Reinstalled"
 msgstr "Berrinstalatua"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:562
+#: ../lib/packagekit-glib2/pk-console-shared.c:597
 msgid "Unknown role type"
 msgstr "Eginkizun-mota ezezaguna"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:566
+#: ../lib/packagekit-glib2/pk-console-shared.c:601
 msgid "Getting dependencies"
 msgstr "Mendekotasunak eskuratzen"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:570
+#: ../lib/packagekit-glib2/pk-console-shared.c:605
 msgid "Getting update details"
 msgstr "Eguneraketa-xehetasunak eskuratzen"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:574
+#: ../lib/packagekit-glib2/pk-console-shared.c:609
 msgid "Getting details"
 msgstr "Xehetasunak eskuratzen"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:578
+#: ../lib/packagekit-glib2/pk-console-shared.c:613
 msgid "Getting requires"
 msgstr "Betebeharrak eskuratzen"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:582
+#: ../lib/packagekit-glib2/pk-console-shared.c:617
 msgid "Getting updates"
 msgstr "Eguneraketak eskuratzen"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:586
+#: ../lib/packagekit-glib2/pk-console-shared.c:621
 msgid "Searching by details"
 msgstr "Xehetasunen arabera bilatzen"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:590
+#: ../lib/packagekit-glib2/pk-console-shared.c:625
 msgid "Searching by file"
 msgstr "Fitxategien arabera bilatzen"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:594
+#: ../lib/packagekit-glib2/pk-console-shared.c:629
 msgid "Searching groups"
 msgstr "Taldeetan bilaketak egiten"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:598
+#: ../lib/packagekit-glib2/pk-console-shared.c:633
 msgid "Searching by name"
 msgstr "Izenaren arabera bilatzen"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:610
+#: ../lib/packagekit-glib2/pk-console-shared.c:645
 msgid "Installing files"
 msgstr "Fitxategiak instalatzen"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:614
+#: ../lib/packagekit-glib2/pk-console-shared.c:649
 msgid "Refreshing cache"
 msgstr "Katxea freskatzen"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:618
+#: ../lib/packagekit-glib2/pk-console-shared.c:653
 msgid "Updating packages"
 msgstr "Paketeak eguneratzen"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:622
+#: ../lib/packagekit-glib2/pk-console-shared.c:657
 msgid "Updating system"
 msgstr "Sistema eguneratzen"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:626
+#: ../lib/packagekit-glib2/pk-console-shared.c:661
 msgid "Canceling"
 msgstr "Uzten"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:634
+#: ../lib/packagekit-glib2/pk-console-shared.c:669
 msgid "Getting repositories"
 msgstr "Biltegiak eskuratzen"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:638
+#: ../lib/packagekit-glib2/pk-console-shared.c:673
 msgid "Enabling repository"
 msgstr "Biltegia gaitzen"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:642
+#: ../lib/packagekit-glib2/pk-console-shared.c:677
 msgid "Setting data"
 msgstr "Data ezartzen"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:646
+#: ../lib/packagekit-glib2/pk-console-shared.c:681
 msgid "Resolving"
 msgstr "Ebazten"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:650
+#: ../lib/packagekit-glib2/pk-console-shared.c:685
 msgid "Getting file list"
 msgstr "Fitxategi-zerrenda eskuratzen"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:654
+#: ../lib/packagekit-glib2/pk-console-shared.c:689
 msgid "Getting provides"
 msgstr "Hornitzaileak eskuratzen"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:658
+#: ../lib/packagekit-glib2/pk-console-shared.c:693
 msgid "Installing signature"
 msgstr "Sinadura instalatzen"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:662
+#: ../lib/packagekit-glib2/pk-console-shared.c:697
 msgid "Getting packages"
 msgstr "Paketeak eskuratzen"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:666
+#: ../lib/packagekit-glib2/pk-console-shared.c:701
 msgid "Accepting EULA"
 msgstr "EULA onartzen"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:674
+#: ../lib/packagekit-glib2/pk-console-shared.c:709
 msgid "Getting upgrades"
 msgstr "Bertsio-berritzeak eskuratzen"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:678
+#: ../lib/packagekit-glib2/pk-console-shared.c:713
 msgid "Getting categories"
 msgstr "Kategoriak eskuratzen"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:682
+#: ../lib/packagekit-glib2/pk-console-shared.c:717
 msgid "Getting transactions"
 msgstr "Transakzioak eskuratzen"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:686
-#: ../lib/packagekit-glib2/pk-console-shared.c:690
+#: ../lib/packagekit-glib2/pk-console-shared.c:721
+#: ../lib/packagekit-glib2/pk-console-shared.c:725
 msgid "Simulating install"
 msgstr "Instalazioa simulatzen"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:694
+#: ../lib/packagekit-glib2/pk-console-shared.c:729
 msgid "Simulating remove"
 msgstr "Kentzea simulatzen"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:698
+#: ../lib/packagekit-glib2/pk-console-shared.c:733
 msgid "Simulating update"
 msgstr "Eguneraketa simulatzen"
 
@@ -1809,13 +1805,19 @@ msgstr "Hurrengo paketeak berriro instalatu behar dira:"
 msgid "The following packages have to be downgraded:"
 msgstr "Hurrengo paketeen bertsio zaharragoa instalatu behar da:"
 
+#. TRANSLATORS: When processing, untrusted and non-verified packages may be
+#. encountered
+#: ../lib/packagekit-glib2/pk-task-text.c:325
+msgid "The following packages are untrusted:"
+msgstr ""
+
 #. TRANSLATORS: ask the user if the proposed changes are okay
-#: ../lib/packagekit-glib2/pk-task-text.c:380
+#: ../lib/packagekit-glib2/pk-task-text.c:385
 msgid "Proceed with changes?"
 msgstr "Aldaketekin jarraitu?"
 
 #. TRANSLATORS: tell the user we didn't do anything
-#: ../lib/packagekit-glib2/pk-task-text.c:385
+#: ../lib/packagekit-glib2/pk-task-text.c:390
 msgid "The transaction did not proceed."
 msgstr "Transakzioa ez da burutu."
 
@@ -2028,98 +2030,68 @@ msgstr "Eguneratu paketeak"
 msgid "Upgrade System"
 msgstr "Eguneratu sistema"
 
-#. TRANSLATORS: failed due to DBus security
-#: ../src/pk-main.c:91
-msgid "Startup failed due to security policies on this machine."
-msgstr "Abioak huts egin du makina honetako segurtasun-politiken ondorioz"
-
-#. TRANSLATORS: only two ways this can fail...
-#: ../src/pk-main.c:93
-msgid "This can happen for two reasons:"
-msgstr "Bi arrazoi daude horretarako:"
-
-#. TRANSLATORS: only allowed to be owned by root
-#: ../src/pk-main.c:95
-msgid "The correct user is not launching the executable (usually root)"
-msgstr "Exekutagarria ez du erabiltzaile egokiak (normalean root) abiarazi"
-
-#. TRANSLATORS: or we are installed in a prefix
-#: ../src/pk-main.c:97
-msgid ""
-"The org.freedesktop.PackageKit.conf file is not installed in the system "
-"directory:"
-msgstr ""
-"org.freedesktop.PackageKit.conf fitxategia ez dago instalatuta sistemaren "
-"direktorioan:"
-
 #. TRANSLATORS: a backend is the system package tool, e.g. yum, apt
-#: ../src/pk-main.c:223
+#: ../src/pk-main.c:149
 msgid "Packaging backend to use, e.g. dummy"
 msgstr "Erabiliko den paketatze-motorra, adib. dummy"
 
 #. TRANSLATORS: if we should run in the background
-#: ../src/pk-main.c:226
+#: ../src/pk-main.c:152
 msgid "Daemonize and detach from the terminal"
 msgstr "Deabrutu eta askatu terminaletik"
 
 #. TRANSLATORS: if we should not monitor how long we are inactive for
-#: ../src/pk-main.c:229
+#: ../src/pk-main.c:155
 msgid "Disable the idle timer"
 msgstr "Desgaitu inaktibitate-kronometroa"
 
 #. TRANSLATORS: show version
-#: ../src/pk-main.c:232
+#: ../src/pk-main.c:158
 msgid "Show version and exit"
 msgstr "Erakutsi bertsioa eta irten"
 
 #. TRANSLATORS: exit after we've started up, used for user profiling
-#: ../src/pk-main.c:235
+#: ../src/pk-main.c:161
 msgid "Exit after a small delay"
 msgstr "Irten atzerapen txiki baten ondoren"
 
 #. TRANSLATORS: exit straight away, used for automatic profiling
-#: ../src/pk-main.c:238
+#: ../src/pk-main.c:164
 msgid "Exit after the engine has loaded"
 msgstr "Irten motorra kargatu ondoren"
 
+#. TRANSLATORS: don't unset environment variables, used for debugging
+#: ../src/pk-main.c:167
+msgid "Don't clear environment on startup"
+msgstr ""
+
 #. TRANSLATORS: describing the service that is running
-#: ../src/pk-main.c:253
+#: ../src/pk-main.c:179
 msgid "PackageKit service"
 msgstr "PackageKit zerbitzua"
 
-#. TRANSLATORS: fatal error, dbus is not running
-#: ../src/pk-main.c:298
-msgid "Cannot connect to the system bus"
-msgstr "Ezin izan da sistemaren busera konektatu"
-
-#: ../src/pk-main.c:344
+#: ../src/pk-main.c:253
 msgid "Failed to load any of the specified backends:"
 msgstr ""
 
-#. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error
-#. follows
-#: ../src/pk-main.c:358
-msgid "Error trying to start:"
-msgstr "Errorea abiaraztean:"
-
 #. TRANSLATORS: is not GPG signed
-#: ../src/pk-transaction.c:2611 ../src/pk-transaction.c:2618
+#: ../src/pk-transaction.c:2696
 msgid "The software is not from a trusted source."
 msgstr "Softwarea ez da jatorri fidagarri batekoa."
 
-#: ../src/pk-transaction.c:2623
+#: ../src/pk-transaction.c:2704
 msgid "Do not update this package unless you are sure it is safe to do so."
 msgstr "Ez eguneratu pakete hau hori egitea segurua dela egiaztatu arte."
 
-#: ../src/pk-transaction.c:2624
+#: ../src/pk-transaction.c:2705
 msgid "Do not update these packages unless you are sure it is safe to do so."
 msgstr "Ez eguneratu pakete hauek hori egitea segurua dela egiaztatu arte."
 
-#: ../src/pk-transaction.c:2634
+#: ../src/pk-transaction.c:2715
 msgid "Do not install this package unless you are sure it is safe to do so."
 msgstr "Ez instalatu pakete hau hori egitea segurua dela egiaztatu arte."
 
-#: ../src/pk-transaction.c:2635
+#: ../src/pk-transaction.c:2716
 msgid "Do not install these packages unless you are sure it is safe to do so."
 msgstr "Ez instalatu pakete hauek hori egitea segurua dela egiaztatu arte."
 
diff --git a/po/fi.po b/po/fi.po
index 96e6e1f..45c096d 100644
--- a/po/fi.po
+++ b/po/fi.po
@@ -2,16 +2,18 @@
 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
 # This file is distributed under the same license as the PACKAGE package.
 # 
-# Ville-Pekka Vainio <vpivaini at cs.helsinki.fi>, 2011
-# Richard Hughes <richard at hughsie.com>, 2011
+# Translators:
+# Richard Hughes <richard at hughsie.com>, 2011.
+# Ville-Pekka Vainio <vpivaini at cs.helsinki.fi>, 2011.
+# Ville Skyttä <ville.skytta at iki.fi>, 2011.
 msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-04 10:50+0100\n"
-"PO-Revision-Date: 2011-05-04 09:56+0000\n"
-"Last-Translator: hughsie <richard at hughsie.com>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
+"POT-Creation-Date: 2011-11-10 19:50+0000\n"
+"PO-Revision-Date: 2011-11-10 19:50+0000\n"
+"Last-Translator: Richard Hughes <richard at hughsie.com>\n"
+"Language-Team: Finnish (http://www.transifex.net/projects/p/freedesktop/team/fi/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -196,7 +198,7 @@ msgstr "Julkaistu"
 
 #. TRANSLATORS: details about the update, date the update was updated
 #. TRANSLATORS: The action of the package, in past tense
-#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:524
+#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:559
 msgid "Updated"
 msgstr "Päivitetty"
 
@@ -286,7 +288,7 @@ msgstr "Yhtään päivitystä ei ole saatavilla."
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
 #: ../client/pk-console.c:704
-#: ../contrib/command-not-found/pk-command-not-found.c:639
+#: ../contrib/command-not-found/pk-command-not-found.c:634
 msgid "The transaction failed"
 msgstr "Transaktio epäonnistui"
 
@@ -340,21 +342,21 @@ msgstr ""
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:866
+#: ../client/pk-console.c:871
 #, c-format
 msgid "This tool could not find any available package: %s"
 msgstr "Tämä työkalu ei löytänyt saatavilla olevaa pakettia: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:894
+#: ../client/pk-console.c:899
 #, c-format
 msgid "This tool could not find the installed package: %s"
 msgstr "Tämä työkalu ei löytänyt asennettua pakettia: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:922 ../client/pk-console.c:950
+#: ../client/pk-console.c:927 ../client/pk-console.c:955
 #, c-format
 msgid "This tool could not find the package: %s"
 msgstr "Tämä työkalu ei löytänyt pakettia: %s"
@@ -367,70 +369,70 @@ msgstr "Tämä työkalu ei löytänyt pakettia: %s"
 #. detailed error follows
 #. TRANSLATORS: The package name was not found in any software sources. The
 #. detailed error follows
-#: ../client/pk-console.c:978 ../client/pk-console.c:1006
-#: ../client/pk-console.c:1034 ../client/pk-console.c:1062
-#: ../client/pk-console.c:1090
+#: ../client/pk-console.c:983 ../client/pk-console.c:1011
+#: ../client/pk-console.c:1039 ../client/pk-console.c:1067
+#: ../client/pk-console.c:1095
 #, c-format
 msgid "This tool could not find all the packages: %s"
 msgstr "Tämä työkalu ei löytänyt paketteja: %s"
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek
 #. without a paddle
-#: ../client/pk-console.c:1119
+#: ../client/pk-console.c:1124
 msgid "The daemon crashed mid-transaction!"
 msgstr "Taustaprosessi kaatui kesken toimenpiteen"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1153
+#: ../client/pk-console.c:1158
 msgid "PackageKit Console Interface"
 msgstr "PackageKitin konsolikäyttöliittymä"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1155
+#: ../client/pk-console.c:1160
 msgid "Subcommands:"
 msgstr "Alikomennot:"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was
 #. last executed
-#: ../client/pk-console.c:1235
+#: ../client/pk-console.c:1240
 msgid "Failed to get the time since this action was last completed"
 msgstr "Tämän toiminnon edellisen suorittamisen aikaa ei saatu"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1277 ../client/pk-monitor.c:371
+#: ../client/pk-console.c:1282 ../client/pk-monitor.c:371
 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:1280
+#: ../client/pk-console.c:1285
 msgid "Set the filter, e.g. installed"
 msgstr "Aseta suodin, esim. asennettu"
 
 #. TRANSLATORS: command line argument, use a non-standard install prefix
-#: ../client/pk-console.c:1283
+#: ../client/pk-console.c:1288
 msgid "Set the install root, e.g. '/' or '/mnt/ltsp'"
 msgstr "Aseta asennuksen juurihakemisto, esimerkiksi ”/” tai ”/mnt/ltsp”"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1286
+#: ../client/pk-console.c:1291
 msgid "Exit without waiting for actions to complete"
 msgstr "Lopeta odottamatta toimintojen valmistumista"
 
 #. command line argument, do we ask questions
-#: ../client/pk-console.c:1289
+#: ../client/pk-console.c:1294
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:525
 msgid "Install the packages without asking for confirmation"
 msgstr "Asenna paketit kysymättä vahvistusta"
 
 #. TRANSLATORS: command line argument, this command is not a priority
-#: ../client/pk-console.c:1292
+#: ../client/pk-console.c:1297
 msgid "Run the command using idle network bandwidth and also using less power"
 msgstr ""
 "Suorita komento käyttäen ylimääräistä verkon kaistanleveyttä ja tavallista "
 "vähemmän virtaa"
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1295
+#: ../client/pk-console.c:1300
 msgid ""
 "Print to screen a machine readable output, rather than using animated "
 "widgets"
@@ -439,143 +441,143 @@ msgstr ""
 "käyttämisen sijaan"
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1298
+#: ../client/pk-console.c:1303
 msgid "The maximum metadata cache age. Use -1 for 'never'."
 msgstr "Suurin metatietojen välimuistin ikä. Arvo -1 tarkoittaa ”ei koskaan”."
 
 #. TRANSLATORS: command line argument, --help
-#: ../client/pk-console.c:1301
+#: ../client/pk-console.c:1306
 msgid "Show help options."
 msgstr ""
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1331
+#: ../client/pk-console.c:1336
 msgid "Failed to parse command line"
 msgstr ""
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1341
+#: ../client/pk-console.c:1346
 msgid "Failed to contact PackageKit"
 msgstr "PackageKitiin ei saatu yhteyttä"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1394
+#: ../client/pk-console.c:1399
 msgid "The proxy could not be set"
 msgstr "Välityspalvelinta ei voitu asettaa"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1406
+#: ../client/pk-console.c:1411
 msgid "The install root could not be set"
 msgstr "Asennuksen juurihakemistoa ei voitu asettaa"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1418
+#: ../client/pk-console.c:1423
 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:1437
+#: ../client/pk-console.c:1442
 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:1444 ../client/pk-console.c:1456
-#: ../client/pk-console.c:1468 ../client/pk-console.c:1480
+#: ../client/pk-console.c:1449 ../client/pk-console.c:1461
+#: ../client/pk-console.c:1473 ../client/pk-console.c:1485
 msgid "A search term is required"
 msgstr "Hakutermi on annettava"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1490
+#: ../client/pk-console.c:1495
 msgid "Invalid search type"
 msgstr "Virheellinen haun tyyppi"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1496
+#: ../client/pk-console.c:1501
 msgid "A package name to install is required"
 msgstr "Asennettavan paketin nimi on annettava"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1505
+#: ../client/pk-console.c:1510
 msgid "A filename to install is required"
 msgstr "Asennettavan tiedoston nimi on annettava"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1516
+#: ../client/pk-console.c:1521
 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:1527
+#: ../client/pk-console.c:1532
 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:1536
+#: ../client/pk-console.c:1541
 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:1543
+#: ../client/pk-console.c:1548
 msgid "Directory not found"
 msgstr "Hakemistoa ei löytynyt"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1552
+#: ../client/pk-console.c:1557
 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:1563
+#: ../client/pk-console.c:1568
 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:1584
+#: ../client/pk-console.c:1589
 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:1595 ../client/pk-console.c:1606
+#: ../client/pk-console.c:1600 ../client/pk-console.c:1611
 msgid "A repository name is required"
 msgstr "Asennuslähteen nimi on annettava"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:1617
+#: ../client/pk-console.c:1622
 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:1634
+#: ../client/pk-console.c:1639
 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:1641
+#: ../client/pk-console.c:1646
 msgid "A correct role is required"
 msgstr "Sopiva rooli on annettava"
 
 #. 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:1651 ../client/pk-console.c:1665
-#: ../client/pk-console.c:1674 ../client/pk-console.c:1694
-#: ../client/pk-console.c:1703 ../client/pk-generate-pack.c:314
+#: ../client/pk-console.c:1656 ../client/pk-console.c:1670
+#: ../client/pk-console.c:1679 ../client/pk-console.c:1699
+#: ../client/pk-console.c:1708 ../client/pk-generate-pack.c:314
 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:1683
+#: ../client/pk-console.c:1688
 msgid "A package provide string is required"
 msgstr "Paketin tarjoaja-merkkijono on annettava"
 
 #. TRANSLATORS: The user did not provide a distro name
-#: ../client/pk-console.c:1727
+#: ../client/pk-console.c:1732
 msgid "A distribution name is required"
 msgstr "Jakelun nimi on annettava"
 
 #. TRANSLATORS: The user did not provide an upgrade type
-#: ../client/pk-console.c:1733
+#: ../client/pk-console.c:1738
 msgid "An upgrade type is required, e.g. 'minimal', 'default' or 'complete'"
 msgstr ""
 "Päivityksen tyyppi on annettava, esimerkiksi ”minimal”, ”default” tai "
@@ -583,13 +585,13 @@ msgstr ""
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command
 #. line
-#: ../client/pk-console.c:1783
+#: ../client/pk-console.c:1788
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "Valitsinta ”%s” ei tueta"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:1793
+#: ../client/pk-console.c:1798
 msgid "Command failed"
 msgstr "Komento epäonnistui"
 
@@ -729,159 +731,154 @@ msgid "PackageKit Monitor"
 msgstr "PackageKit-tarkkailija"
 
 #. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/pk-plugin-install.c:499
+#: ../contrib/browser-plugin/pk-plugin-install.c:503
 msgid "Getting package information..."
 msgstr "Haetaan pakettitietoja..."
 
 #. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/pk-plugin-install.c:505
+#: ../contrib/browser-plugin/pk-plugin-install.c:509
 #, c-format
 msgid "Run %s"
 msgstr "Suorita %s"
 
 #. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:511
+#: ../contrib/browser-plugin/pk-plugin-install.c:515
 msgid "Installed version"
 msgstr "Asennettu versio"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:519
+#: ../contrib/browser-plugin/pk-plugin-install.c:523
 #, c-format
 msgid "Run version %s now"
 msgstr "Suorita versio %s nyt"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:525
+#: ../contrib/browser-plugin/pk-plugin-install.c:529
 msgid "Run now"
 msgstr "Suorita nyt"
 
 #. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:531
+#: ../contrib/browser-plugin/pk-plugin-install.c:535
 #, c-format
 msgid "Update to version %s"
 msgstr "Päivitä versioon %s"
 
 #. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:537
+#: ../contrib/browser-plugin/pk-plugin-install.c:541
 #, c-format
 msgid "Install %s now"
 msgstr "Asenna %s nyt"
 
 #. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:540
+#: ../contrib/browser-plugin/pk-plugin-install.c:544
 msgid "Version"
 msgstr "Versio"
 
 #. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/pk-plugin-install.c:545
+#: ../contrib/browser-plugin/pk-plugin-install.c:549
 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:550
+#: ../contrib/browser-plugin/pk-plugin-install.c:554
 msgid "Installing..."
 msgstr "Asennetaan..."
 
 #. TRANSLATORS: downloading repo data so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:366
+#: ../contrib/command-not-found/pk-command-not-found.c:363
 msgid "Downloading details about the software sources."
 msgstr "Ladataan tietoja ohjelmistolähteistä."
 
 #. TRANSLATORS: downloading file lists so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:370
+#: ../contrib/command-not-found/pk-command-not-found.c:367
 msgid "Downloading filelists (this may take some time to complete)."
 msgstr "Ladataan tiedostoluetteloja (tämä voi viedä jonkin aikaa)."
 
 #. TRANSLATORS: waiting for native lock
-#: ../contrib/command-not-found/pk-command-not-found.c:374
+#: ../contrib/command-not-found/pk-command-not-found.c:371
 msgid "Waiting for package manager lock."
 msgstr "Odotetaan paketinhallinnan lukkoa."
 
 #. TRANSLATORS: loading package cache so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:378
+#: ../contrib/command-not-found/pk-command-not-found.c:375
 msgid "Loading list of packages."
 msgstr "Ladataan pakettiluetteloja."
 
 #. TRANSLATORS: we failed to find the package, this shouldn't happen
-#: ../contrib/command-not-found/pk-command-not-found.c:444
+#: ../contrib/command-not-found/pk-command-not-found.c:439
 msgid "Failed to search for file"
 msgstr "Tiedoston etsiminen epäonnistui"
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
-#: ../contrib/command-not-found/pk-command-not-found.c:456
+#: ../contrib/command-not-found/pk-command-not-found.c:451
 msgid "Getting the list of files failed"
 msgstr "Tiedostoluettelon hakeminen epäonnistui"
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:602
+#: ../contrib/command-not-found/pk-command-not-found.c:597
 msgid "Failed to launch:"
 msgstr "Käynnistys epäonnistui:"
 
 #. TRANSLATORS: we failed to install the package
-#: ../contrib/command-not-found/pk-command-not-found.c:630
+#: ../contrib/command-not-found/pk-command-not-found.c:625
 msgid "Failed to install packages"
 msgstr "Pakettien asennus epäonnistui"
 
-#. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/command-not-found/pk-command-not-found.c:706
-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. NOTE: this is lowercase to mimic
 #. * the style of bash itself -- apologies
-#: ../contrib/command-not-found/pk-command-not-found.c:741
+#: ../contrib/command-not-found/pk-command-not-found.c:723
 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:759
+#: ../contrib/command-not-found/pk-command-not-found.c:741
 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:773
+#: ../contrib/command-not-found/pk-command-not-found.c:755
 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:787
-#: ../contrib/command-not-found/pk-command-not-found.c:796
+#: ../contrib/command-not-found/pk-command-not-found.c:769
+#: ../contrib/command-not-found/pk-command-not-found.c:778
 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:803
+#: ../contrib/command-not-found/pk-command-not-found.c:785
 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:821
+#: ../contrib/command-not-found/pk-command-not-found.c:803
 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:828
+#: ../contrib/command-not-found/pk-command-not-found.c:810
 #, 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:855
+#: ../contrib/command-not-found/pk-command-not-found.c:837
 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:865
+#: ../contrib/command-not-found/pk-command-not-found.c:847
 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:874
+#: ../contrib/command-not-found/pk-command-not-found.c:856
 msgid "Please choose a package to install"
 msgstr "Valitse asennettava paketti"
 
@@ -1055,7 +1052,7 @@ msgstr "Simulointitilassa ei asenneta paketteja"
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
 #. TRANSLATORS: transaction state, installing packages
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:860
-#: ../lib/packagekit-glib2/pk-console-shared.c:296
+#: ../lib/packagekit-glib2/pk-console-shared.c:331
 #, c-format
 msgid "Installing packages"
 msgstr "Asennetaan paketteja"
@@ -1189,474 +1186,474 @@ msgstr "PackageKit-pakettiluettelo"
 msgid "PackageKit Service Pack"
 msgstr "PackageKit-huoltopakkaus"
 
-#: ../lib/packagekit-glib2/pk-console-shared.c:64
+#: ../lib/packagekit-glib2/pk-console-shared.c:65
 #, c-format
 msgid "Please enter a number from 1 to %i: "
 msgstr "Anna numero väliltä 1-%i: "
 
 #. TRANSLATORS: more than one package could be found that matched, to follow
 #. is a list of possible packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:198
+#: ../lib/packagekit-glib2/pk-console-shared.c:233
 msgid "More than one package matches:"
 msgstr "Useita vastaavia paketteja saatavilla:"
 
 #. TRANSLATORS: This finds out which package in the list to use
-#: ../lib/packagekit-glib2/pk-console-shared.c:209
+#: ../lib/packagekit-glib2/pk-console-shared.c:244
 msgid "Please choose the correct package: "
 msgstr "Valitse oikea paketti:"
 
 #. TRANSLATORS: This is when the transaction status is not known
-#: ../lib/packagekit-glib2/pk-console-shared.c:264
+#: ../lib/packagekit-glib2/pk-console-shared.c:299
 msgid "Unknown state"
 msgstr "Tuntematon tila"
 
 #. TRANSLATORS: transaction state, the daemon is in the process of starting
-#: ../lib/packagekit-glib2/pk-console-shared.c:268
+#: ../lib/packagekit-glib2/pk-console-shared.c:303
 msgid "Starting"
 msgstr "Käynnistetään"
 
 #. TRANSLATORS: transaction state, the transaction is waiting for another to
 #. complete
-#: ../lib/packagekit-glib2/pk-console-shared.c:272
+#: ../lib/packagekit-glib2/pk-console-shared.c:307
 msgid "Waiting in queue"
 msgstr "Jonotetaan"
 
 #. TRANSLATORS: transaction state, just started
-#: ../lib/packagekit-glib2/pk-console-shared.c:276
+#: ../lib/packagekit-glib2/pk-console-shared.c:311
 msgid "Running"
 msgstr "Suoritetaan"
 
 #. TRANSLATORS: transaction state, is querying data
-#: ../lib/packagekit-glib2/pk-console-shared.c:280
+#: ../lib/packagekit-glib2/pk-console-shared.c:315
 msgid "Querying"
 msgstr "Kysellään"
 
 #. TRANSLATORS: transaction state, getting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:284
+#: ../lib/packagekit-glib2/pk-console-shared.c:319
 msgid "Getting information"
 msgstr "Haetaan tietoja"
 
 #. TRANSLATORS: transaction state, removing packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:288
+#: ../lib/packagekit-glib2/pk-console-shared.c:323
 msgid "Removing packages"
 msgstr "Poistetaan paketteja"
 
 #. TRANSLATORS: transaction state, downloading package files
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:292
-#: ../lib/packagekit-glib2/pk-console-shared.c:670
+#: ../lib/packagekit-glib2/pk-console-shared.c:327
+#: ../lib/packagekit-glib2/pk-console-shared.c:705
 msgid "Downloading packages"
 msgstr "Ladataan paketteja"
 
 #. TRANSLATORS: transaction state, refreshing internal lists
-#: ../lib/packagekit-glib2/pk-console-shared.c:300
+#: ../lib/packagekit-glib2/pk-console-shared.c:335
 msgid "Refreshing software list"
 msgstr "Virkistetään ohjelmaluetteloa"
 
 #. TRANSLATORS: transaction state, installing updates
-#: ../lib/packagekit-glib2/pk-console-shared.c:304
+#: ../lib/packagekit-glib2/pk-console-shared.c:339
 msgid "Installing updates"
 msgstr "Asennetaan päivityksiä"
 
 #. TRANSLATORS: transaction state, removing old packages, and cleaning config
 #. files
-#: ../lib/packagekit-glib2/pk-console-shared.c:308
+#: ../lib/packagekit-glib2/pk-console-shared.c:343
 msgid "Cleaning up packages"
 msgstr "Siivotaan paketteja"
 
 #. TRANSLATORS: transaction state, obsoleting old packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:312
+#: ../lib/packagekit-glib2/pk-console-shared.c:347
 msgid "Obsoleting packages"
 msgstr "Vanhennetaan paketteja"
 
 #. TRANSLATORS: transaction state, checking the transaction before we do it
-#: ../lib/packagekit-glib2/pk-console-shared.c:316
+#: ../lib/packagekit-glib2/pk-console-shared.c:351
 msgid "Resolving dependencies"
 msgstr "Ratkaistaan riippuvuuksia"
 
 #. TRANSLATORS: transaction state, checking if we have all the security keys
 #. for the operation
-#: ../lib/packagekit-glib2/pk-console-shared.c:320
+#: ../lib/packagekit-glib2/pk-console-shared.c:355
 msgid "Checking signatures"
 msgstr "Tarkistetaan allekirjoituksia"
 
 #. TRANSLATORS: transaction state, when we return to a previous system state
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:324
-#: ../lib/packagekit-glib2/pk-console-shared.c:630
+#: ../lib/packagekit-glib2/pk-console-shared.c:359
+#: ../lib/packagekit-glib2/pk-console-shared.c:665
 msgid "Rolling back"
 msgstr "Peruutetaan"
 
 #. TRANSLATORS: transaction state, when we're doing a test transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:328
+#: ../lib/packagekit-glib2/pk-console-shared.c:363
 msgid "Testing changes"
 msgstr "Testataan muutoksia"
 
 #. TRANSLATORS: transaction state, when we're writing to the system package
 #. database
-#: ../lib/packagekit-glib2/pk-console-shared.c:332
+#: ../lib/packagekit-glib2/pk-console-shared.c:367
 msgid "Committing changes"
 msgstr "Toteutetaan muutoksia"
 
 #. TRANSLATORS: transaction state, requesting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:336
+#: ../lib/packagekit-glib2/pk-console-shared.c:371
 msgid "Requesting data"
 msgstr "Pyydetään dataa"
 
 #. TRANSLATORS: transaction state, all done!
-#: ../lib/packagekit-glib2/pk-console-shared.c:340
+#: ../lib/packagekit-glib2/pk-console-shared.c:375
 msgid "Finished"
 msgstr "Valmis"
 
 #. TRANSLATORS: transaction state, in the process of cancelling
-#: ../lib/packagekit-glib2/pk-console-shared.c:344
+#: ../lib/packagekit-glib2/pk-console-shared.c:379
 msgid "Cancelling"
 msgstr "Perutaan"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:348
+#: ../lib/packagekit-glib2/pk-console-shared.c:383
 msgid "Downloading repository information"
 msgstr "Ladataan asennuslähdetietoja"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:352
+#: ../lib/packagekit-glib2/pk-console-shared.c:387
 msgid "Downloading list of packages"
 msgstr "Ladataan pakettiluetteloa"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:356
+#: ../lib/packagekit-glib2/pk-console-shared.c:391
 msgid "Downloading file lists"
 msgstr "Ladataan tiedostoluetteloita"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:360
+#: ../lib/packagekit-glib2/pk-console-shared.c:395
 msgid "Downloading lists of changes"
 msgstr "Ladataan muutosluetteloja"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:364
+#: ../lib/packagekit-glib2/pk-console-shared.c:399
 msgid "Downloading groups"
 msgstr "Ladataan ryhmiä"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:368
+#: ../lib/packagekit-glib2/pk-console-shared.c:403
 msgid "Downloading update information"
 msgstr "Ladataan päivitystietoja"
 
 #. TRANSLATORS: transaction state, repackaging delta files
-#: ../lib/packagekit-glib2/pk-console-shared.c:372
+#: ../lib/packagekit-glib2/pk-console-shared.c:407
 msgid "Repackaging files"
 msgstr "Paketoidaan tiedostoja uudelleen"
 
 #. TRANSLATORS: transaction state, loading databases
-#: ../lib/packagekit-glib2/pk-console-shared.c:376
+#: ../lib/packagekit-glib2/pk-console-shared.c:411
 msgid "Loading cache"
 msgstr "Ladataan välimuistia"
 
 #. TRANSLATORS: transaction state, scanning for running processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:380
+#: ../lib/packagekit-glib2/pk-console-shared.c:415
 msgid "Scanning applications"
 msgstr "Etsitään ohjelmia"
 
 #. TRANSLATORS: transaction state, generating a list of packages installed on
 #. the system
-#: ../lib/packagekit-glib2/pk-console-shared.c:384
+#: ../lib/packagekit-glib2/pk-console-shared.c:419
 msgid "Generating package lists"
 msgstr "Luodaan pakettiluetteloita"
 
 #. TRANSLATORS: transaction state, when we're waiting for the native tools to
 #. exit
-#: ../lib/packagekit-glib2/pk-console-shared.c:388
+#: ../lib/packagekit-glib2/pk-console-shared.c:423
 msgid "Waiting for package manager lock"
 msgstr "Odotetaan paketinhallinnan lukkoa"
 
 #. TRANSLATORS: transaction state, waiting for user to type in a password
-#: ../lib/packagekit-glib2/pk-console-shared.c:392
+#: ../lib/packagekit-glib2/pk-console-shared.c:427
 msgid "Waiting for authentication"
 msgstr "Odotetaan tunnistautumista"
 
 #. TRANSLATORS: transaction state, we are updating the list of processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:396
+#: ../lib/packagekit-glib2/pk-console-shared.c:431
 msgid "Updating running applications"
 msgstr "Päivitetään suoritettavia ohjelmia"
 
 #. TRANSLATORS: transaction state, we are checking executable files currently
 #. in use
-#: ../lib/packagekit-glib2/pk-console-shared.c:400
+#: ../lib/packagekit-glib2/pk-console-shared.c:435
 msgid "Checking applications in use"
 msgstr "Etsitään käytössä olevia ohjelmia"
 
 #. TRANSLATORS: transaction state, we are checking for libraries currently in
 #. use
-#: ../lib/packagekit-glib2/pk-console-shared.c:404
+#: ../lib/packagekit-glib2/pk-console-shared.c:439
 msgid "Checking libraries in use"
 msgstr "Etsitään käytössä olevia kirjastoja"
 
 #. TRANSLATORS: transaction state, we are copying package files before or
 #. after the transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:408
+#: ../lib/packagekit-glib2/pk-console-shared.c:443
 msgid "Copying files"
 msgstr "Kopioidaan tiedostoja"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:426
+#: ../lib/packagekit-glib2/pk-console-shared.c:461
 msgid "Trivial"
 msgstr "Vähäpätöinen"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:430
+#: ../lib/packagekit-glib2/pk-console-shared.c:465
 msgid "Normal"
 msgstr "Tavallinen"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:434
+#: ../lib/packagekit-glib2/pk-console-shared.c:469
 msgid "Important"
 msgstr "Tärkeä"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:438
+#: ../lib/packagekit-glib2/pk-console-shared.c:473
 msgid "Security"
 msgstr "Turvallisuus"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:442
+#: ../lib/packagekit-glib2/pk-console-shared.c:477
 msgid "Bug fix "
 msgstr "Virhekorjaus"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:446
+#: ../lib/packagekit-glib2/pk-console-shared.c:481
 msgid "Enhancement"
 msgstr "Kehittävä"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:450
+#: ../lib/packagekit-glib2/pk-console-shared.c:485
 msgid "Blocked"
 msgstr "Estetty"
 
 #. TRANSLATORS: The state of a package
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:455
-#: ../lib/packagekit-glib2/pk-console-shared.c:528
+#: ../lib/packagekit-glib2/pk-console-shared.c:490
+#: ../lib/packagekit-glib2/pk-console-shared.c:563
 msgid "Installed"
 msgstr "Asennettu"
 
 #. TRANSLATORS: The state of a package, i.e. not installed
-#: ../lib/packagekit-glib2/pk-console-shared.c:460
+#: ../lib/packagekit-glib2/pk-console-shared.c:495
 msgid "Available"
 msgstr "Saatavilla"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:478
+#: ../lib/packagekit-glib2/pk-console-shared.c:513
 msgid "Downloading"
 msgstr "Ladataan"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:482
+#: ../lib/packagekit-glib2/pk-console-shared.c:517
 msgid "Updating"
 msgstr "Päivitetään"
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:486
-#: ../lib/packagekit-glib2/pk-console-shared.c:606
+#: ../lib/packagekit-glib2/pk-console-shared.c:521
+#: ../lib/packagekit-glib2/pk-console-shared.c:641
 msgid "Installing"
 msgstr "Asennetaan"
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:490
-#: ../lib/packagekit-glib2/pk-console-shared.c:602
+#: ../lib/packagekit-glib2/pk-console-shared.c:525
+#: ../lib/packagekit-glib2/pk-console-shared.c:637
 msgid "Removing"
 msgstr "Poistetaan"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:494
+#: ../lib/packagekit-glib2/pk-console-shared.c:529
 msgid "Cleaning up"
 msgstr "Siivotaan"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:498
+#: ../lib/packagekit-glib2/pk-console-shared.c:533
 msgid "Obsoleting"
 msgstr "Vanhennetaan"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:502
+#: ../lib/packagekit-glib2/pk-console-shared.c:537
 msgid "Reinstalling"
 msgstr "Asennetaan uudelleen"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:520
+#: ../lib/packagekit-glib2/pk-console-shared.c:555
 msgid "Downloaded"
 msgstr "Ladattu"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:532
+#: ../lib/packagekit-glib2/pk-console-shared.c:567
 msgid "Removed"
 msgstr "Poistettu"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:536
+#: ../lib/packagekit-glib2/pk-console-shared.c:571
 msgid "Cleaned up"
 msgstr "Siivottu"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:540
+#: ../lib/packagekit-glib2/pk-console-shared.c:575
 msgid "Obsoleted"
 msgstr "Vanhennettu"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:544
+#: ../lib/packagekit-glib2/pk-console-shared.c:579
 msgid "Reinstalled"
 msgstr "Asennettu uudelleen"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:562
+#: ../lib/packagekit-glib2/pk-console-shared.c:597
 msgid "Unknown role type"
 msgstr "Tuntematon roolityyppi"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:566
+#: ../lib/packagekit-glib2/pk-console-shared.c:601
 msgid "Getting dependencies"
 msgstr "Haetaan riippuvuuksia"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:570
+#: ../lib/packagekit-glib2/pk-console-shared.c:605
 msgid "Getting update details"
 msgstr "Haetaan päivitystietoja"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:574
+#: ../lib/packagekit-glib2/pk-console-shared.c:609
 msgid "Getting details"
 msgstr "Haetaan tietoja"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:578
+#: ../lib/packagekit-glib2/pk-console-shared.c:613
 msgid "Getting requires"
 msgstr "Haetaan vaatimuksia"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:582
+#: ../lib/packagekit-glib2/pk-console-shared.c:617
 msgid "Getting updates"
 msgstr "Haetaan päivityksiä"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:586
+#: ../lib/packagekit-glib2/pk-console-shared.c:621
 msgid "Searching by details"
 msgstr "Etsitään tietojen perusteella"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:590
+#: ../lib/packagekit-glib2/pk-console-shared.c:625
 msgid "Searching by file"
 msgstr "Etsitään tiedoston perusteella"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:594
+#: ../lib/packagekit-glib2/pk-console-shared.c:629
 msgid "Searching groups"
 msgstr "Etsitään ryhmiä"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:598
+#: ../lib/packagekit-glib2/pk-console-shared.c:633
 msgid "Searching by name"
 msgstr "Etsitään nimen perusteella"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:610
+#: ../lib/packagekit-glib2/pk-console-shared.c:645
 msgid "Installing files"
 msgstr "Asennetaan tiedostoja"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:614
+#: ../lib/packagekit-glib2/pk-console-shared.c:649
 msgid "Refreshing cache"
 msgstr "Virkistetään välimuistia"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:618
+#: ../lib/packagekit-glib2/pk-console-shared.c:653
 msgid "Updating packages"
 msgstr "Päivitetään paketteja"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:622
+#: ../lib/packagekit-glib2/pk-console-shared.c:657
 msgid "Updating system"
 msgstr "Päivitetään järjestelmää"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:626
+#: ../lib/packagekit-glib2/pk-console-shared.c:661
 msgid "Canceling"
 msgstr "Perutaan"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:634
+#: ../lib/packagekit-glib2/pk-console-shared.c:669
 msgid "Getting repositories"
 msgstr "Haetaan asennuslähteitä"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:638
+#: ../lib/packagekit-glib2/pk-console-shared.c:673
 msgid "Enabling repository"
 msgstr "Otetaan asennuslähde käyttöön"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:642
+#: ../lib/packagekit-glib2/pk-console-shared.c:677
 msgid "Setting data"
 msgstr "Asetetaan dataa"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:646
+#: ../lib/packagekit-glib2/pk-console-shared.c:681
 msgid "Resolving"
 msgstr "Ratkaistaan"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:650
+#: ../lib/packagekit-glib2/pk-console-shared.c:685
 msgid "Getting file list"
 msgstr "Haetaan tiedostoluetteloa"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:654
+#: ../lib/packagekit-glib2/pk-console-shared.c:689
 msgid "Getting provides"
 msgstr "Haetaan tarjoajia"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:658
+#: ../lib/packagekit-glib2/pk-console-shared.c:693
 msgid "Installing signature"
 msgstr "Asennetaan allekirjoitusta"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:662
+#: ../lib/packagekit-glib2/pk-console-shared.c:697
 msgid "Getting packages"
 msgstr "Haetaan paketteja"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:666
+#: ../lib/packagekit-glib2/pk-console-shared.c:701
 msgid "Accepting EULA"
 msgstr "Hyväksytään käyttöoikeussopimusta"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:674
+#: ../lib/packagekit-glib2/pk-console-shared.c:709
 msgid "Getting upgrades"
 msgstr "Haetaan päivityksiä"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:678
+#: ../lib/packagekit-glib2/pk-console-shared.c:713
 msgid "Getting categories"
 msgstr "Haetaan kategorioita"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:682
+#: ../lib/packagekit-glib2/pk-console-shared.c:717
 msgid "Getting transactions"
 msgstr "Haetaan transaktioita"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:686
-#: ../lib/packagekit-glib2/pk-console-shared.c:690
+#: ../lib/packagekit-glib2/pk-console-shared.c:721
+#: ../lib/packagekit-glib2/pk-console-shared.c:725
 msgid "Simulating install"
 msgstr "Simuloidaan asennusta"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:694
+#: ../lib/packagekit-glib2/pk-console-shared.c:729
 msgid "Simulating remove"
 msgstr "Simuloidaan poistoa"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:698
+#: ../lib/packagekit-glib2/pk-console-shared.c:733
 msgid "Simulating update"
 msgstr "Simuloidaan päivitystä"
 
@@ -1806,13 +1803,19 @@ msgstr "Seuraavat paketit on asennettava uudelleen:"
 msgid "The following packages have to be downgraded:"
 msgstr "Seuraavat paketit on vaihdettava vanhempaan versioon:"
 
+#. TRANSLATORS: When processing, untrusted and non-verified packages may be
+#. encountered
+#: ../lib/packagekit-glib2/pk-task-text.c:325
+msgid "The following packages are untrusted:"
+msgstr "Seuraaviin paketteihin ei luoteta:"
+
 #. TRANSLATORS: ask the user if the proposed changes are okay
-#: ../lib/packagekit-glib2/pk-task-text.c:380
+#: ../lib/packagekit-glib2/pk-task-text.c:385
 msgid "Proceed with changes?"
 msgstr "Tehdäänkö muutokset?"
 
 #. TRANSLATORS: tell the user we didn't do anything
-#: ../lib/packagekit-glib2/pk-task-text.c:385
+#: ../lib/packagekit-glib2/pk-task-text.c:390
 msgid "The transaction did not proceed."
 msgstr "Transaktiota ei jatkettu."
 
@@ -2025,99 +2028,68 @@ msgstr "Päivitä paketteja"
 msgid "Upgrade System"
 msgstr "Tee käyttöjärjestelmäpäivitys"
 
-#. TRANSLATORS: failed due to DBus security
-#: ../src/pk-main.c:91
-msgid "Startup failed due to security policies on this machine."
-msgstr "Käynnistys epäonnistui tämän koneen turvakäytäntöjen vuoksi"
-
-#. TRANSLATORS: only two ways this can fail...
-#: ../src/pk-main.c:93
-msgid "This can happen for two reasons:"
-msgstr "Näin voi tapahtua kahdesta syystä:"
-
-#. TRANSLATORS: only allowed to be owned by root
-#: ../src/pk-main.c:95
-msgid "The correct user is not launching the executable (usually root)"
-msgstr ""
-"Oikea käyttäjä (yleensä root) ei ole käynnistämässä suoritettavaa ohjelmaa"
-
-#. TRANSLATORS: or we are installed in a prefix
-#: ../src/pk-main.c:97
-msgid ""
-"The org.freedesktop.PackageKit.conf file is not installed in the system "
-"directory:"
-msgstr ""
-"Tiedostoa org.freedesktop.PackageKit.conf ei ole asennettu "
-"järjestelmähakemistoon:"
-
 #. TRANSLATORS: a backend is the system package tool, e.g. yum, apt
-#: ../src/pk-main.c:223
+#: ../src/pk-main.c:149
 msgid "Packaging backend to use, e.g. dummy"
 msgstr "Käytettävä paketinhallintajärjestelmä-taustaosa, esim. dummy"
 
 #. TRANSLATORS: if we should run in the background
-#: ../src/pk-main.c:226
+#: ../src/pk-main.c:152
 msgid "Daemonize and detach from the terminal"
 msgstr "Tee taustaprosessiksi ja irrota päätteestä"
 
 #. TRANSLATORS: if we should not monitor how long we are inactive for
-#: ../src/pk-main.c:229
+#: ../src/pk-main.c:155
 msgid "Disable the idle timer"
 msgstr "Poista toimettomuusajastin käytöstä"
 
 #. TRANSLATORS: show version
-#: ../src/pk-main.c:232
+#: ../src/pk-main.c:158
 msgid "Show version and exit"
 msgstr "Näytä versio ja lopeta"
 
 #. TRANSLATORS: exit after we've started up, used for user profiling
-#: ../src/pk-main.c:235
+#: ../src/pk-main.c:161
 msgid "Exit after a small delay"
 msgstr "Sulje pienen viiveen jälkeen"
 
 #. TRANSLATORS: exit straight away, used for automatic profiling
-#: ../src/pk-main.c:238
+#: ../src/pk-main.c:164
 msgid "Exit after the engine has loaded"
 msgstr "Sulje sen jälkeen, kun moottori on ladattu"
 
+#. TRANSLATORS: don't unset environment variables, used for debugging
+#: ../src/pk-main.c:167
+msgid "Don't clear environment on startup"
+msgstr ""
+
 #. TRANSLATORS: describing the service that is running
-#: ../src/pk-main.c:253
+#: ../src/pk-main.c:179
 msgid "PackageKit service"
 msgstr "PackageKit-palvelu"
 
-#. TRANSLATORS: fatal error, dbus is not running
-#: ../src/pk-main.c:298
-msgid "Cannot connect to the system bus"
-msgstr "Ei voida yhdistää järjestelmäväylään"
-
-#: ../src/pk-main.c:344
+#: ../src/pk-main.c:253
 msgid "Failed to load any of the specified backends:"
 msgstr ""
 
-#. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error
-#. follows
-#: ../src/pk-main.c:358
-msgid "Error trying to start:"
-msgstr "Virhe yritettäessä käynnistää:"
-
 #. TRANSLATORS: is not GPG signed
-#: ../src/pk-transaction.c:2611 ../src/pk-transaction.c:2618
+#: ../src/pk-transaction.c:2696
 msgid "The software is not from a trusted source."
 msgstr "Tämä ohjelmisto ei tule luotetusta lähteestä."
 
-#: ../src/pk-transaction.c:2623
+#: ../src/pk-transaction.c:2704
 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-transaction.c:2624
+#: ../src/pk-transaction.c:2705
 msgid "Do not update these packages unless you are sure it is safe to do so."
 msgstr "Älä päivitä näitä paketteja ellet ole varma, että se on turvallista."
 
-#: ../src/pk-transaction.c:2634
+#: ../src/pk-transaction.c:2715
 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-transaction.c:2635
+#: ../src/pk-transaction.c:2716
 msgid "Do not install these packages unless you are sure it is safe to do so."
 msgstr "Älä asenna näitä paketteja ellet ole varma, että se on turvallista."
 
diff --git a/po/fr.po b/po/fr.po
index dd71e71..f6fc34f 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -2,15 +2,19 @@
 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
 # This file is distributed under the same license as the PACKAGE package.
 # 
-# claudep <claude at 2xlibre.net>, 2011
-# Richard Hughes <richard at hughsie.com>, 2011
+# Translators:
+# Claude Paroz <claude at 2xlibre.net>, 2008.
+# claudep <claude at 2xlibre.net>, 2011.
+# Corentin Perard <corentin.perard at gmail.com>, 2009.
+# Richard Hughes <richard at hughsie.com>, 2011.
+# Thomas Canniot <thomas.canniot at mrtomlinux.org>, 2009.
 msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-04 10:50+0100\n"
-"PO-Revision-Date: 2011-05-04 09:56+0000\n"
-"Last-Translator: hughsie <richard at hughsie.com>\n"
+"POT-Creation-Date: 2011-11-10 19:50+0000\n"
+"PO-Revision-Date: 2011-11-10 19:50+0000\n"
+"Last-Translator: Richard Hughes <richard at hughsie.com>\n"
 "Language-Team: French <traduc at traduc.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -196,7 +200,7 @@ msgstr "Publié"
 
 #. TRANSLATORS: details about the update, date the update was updated
 #. TRANSLATORS: The action of the package, in past tense
-#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:524
+#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:559
 msgid "Updated"
 msgstr "Mis à jour"
 
@@ -286,7 +290,7 @@ msgstr "Aucun paquet ne doit être mis à jour."
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
 #: ../client/pk-console.c:704
-#: ../contrib/command-not-found/pk-command-not-found.c:639
+#: ../contrib/command-not-found/pk-command-not-found.c:634
 msgid "The transaction failed"
 msgstr "La transaction a échoué"
 
@@ -340,21 +344,21 @@ msgstr ""
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:866
+#: ../client/pk-console.c:871
 #, c-format
 msgid "This tool could not find any available package: %s"
 msgstr "Cet outil n'a pas pu trouver de paquet disponible : %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:894
+#: ../client/pk-console.c:899
 #, c-format
 msgid "This tool could not find the installed package: %s"
 msgstr "Cet outil n'a pas pu trouver le paquet installé : %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:922 ../client/pk-console.c:950
+#: ../client/pk-console.c:927 ../client/pk-console.c:955
 #, c-format
 msgid "This tool could not find the package: %s"
 msgstr "Cet outil n'a pas pu trouver le paquet : %s"
@@ -367,72 +371,72 @@ msgstr "Cet outil n'a pas pu trouver le paquet : %s"
 #. detailed error follows
 #. TRANSLATORS: The package name was not found in any software sources. The
 #. detailed error follows
-#: ../client/pk-console.c:978 ../client/pk-console.c:1006
-#: ../client/pk-console.c:1034 ../client/pk-console.c:1062
-#: ../client/pk-console.c:1090
+#: ../client/pk-console.c:983 ../client/pk-console.c:1011
+#: ../client/pk-console.c:1039 ../client/pk-console.c:1067
+#: ../client/pk-console.c:1095
 #, c-format
 msgid "This tool could not find all the packages: %s"
 msgstr "Cet outil n'a pas pu trouver tous les paquets : %s"
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek
 #. without a paddle
-#: ../client/pk-console.c:1119
+#: ../client/pk-console.c:1124
 msgid "The daemon crashed mid-transaction!"
 msgstr "Le service a échoué en cours de transaction."
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1153
+#: ../client/pk-console.c:1158
 msgid "PackageKit Console Interface"
 msgstr "Interface PackageKit en console"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1155
+#: ../client/pk-console.c:1160
 msgid "Subcommands:"
 msgstr "Sous-commandes :"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was
 #. last executed
-#: ../client/pk-console.c:1235
+#: ../client/pk-console.c:1240
 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 "
 "dernière fois"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1277 ../client/pk-monitor.c:371
+#: ../client/pk-console.c:1282 ../client/pk-monitor.c:371
 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:1280
+#: ../client/pk-console.c:1285
 msgid "Set the filter, e.g. installed"
 msgstr "Sélectionne le filtre, par ex. : installé"
 
 #. TRANSLATORS: command line argument, use a non-standard install prefix
-#: ../client/pk-console.c:1283
+#: ../client/pk-console.c:1288
 msgid "Set the install root, e.g. '/' or '/mnt/ltsp'"
 msgstr "Définit la racine d'installation, par ex. « / » ou « /mnt/ltsp »"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1286
+#: ../client/pk-console.c:1291
 msgid "Exit without waiting for actions to complete"
 msgstr "Quitte sans attendre que la tâche soit terminée"
 
 #. command line argument, do we ask questions
-#: ../client/pk-console.c:1289
+#: ../client/pk-console.c:1294
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:525
 msgid "Install the packages without asking for confirmation"
 msgstr "Installer les paquets sans demander de confirmation"
 
 #. TRANSLATORS: command line argument, this command is not a priority
-#: ../client/pk-console.c:1292
+#: ../client/pk-console.c:1297
 msgid "Run the command using idle network bandwidth and also using less power"
 msgstr ""
 "Lancer la commande en utilisant la bande passante réseau inutilisée, et en "
 "consommant moins d'énergie"
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1295
+#: ../client/pk-console.c:1300
 msgid ""
 "Print to screen a machine readable output, rather than using animated "
 "widgets"
@@ -441,145 +445,145 @@ msgstr ""
 "des contrôles animés"
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1298
+#: ../client/pk-console.c:1303
 msgid "The maximum metadata cache age. Use -1 for 'never'."
 msgstr "L'âge maximal du cache des métadonnées. Utilisez -1 pour « jamais »."
 
 #. TRANSLATORS: command line argument, --help
-#: ../client/pk-console.c:1301
+#: ../client/pk-console.c:1306
 msgid "Show help options."
 msgstr ""
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1331
+#: ../client/pk-console.c:1336
 msgid "Failed to parse command line"
 msgstr ""
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1341
+#: ../client/pk-console.c:1346
 msgid "Failed to contact PackageKit"
 msgstr "Impossible de contacter PackageKit"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1394
+#: ../client/pk-console.c:1399
 msgid "The proxy could not be set"
 msgstr "Impossible de définir le serveur mandataire"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1406
+#: ../client/pk-console.c:1411
 msgid "The install root could not be set"
 msgstr "Impossible de définir la racine d'installation"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1418
+#: ../client/pk-console.c:1423
 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:1437
+#: ../client/pk-console.c:1442
 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:1444 ../client/pk-console.c:1456
-#: ../client/pk-console.c:1468 ../client/pk-console.c:1480
+#: ../client/pk-console.c:1449 ../client/pk-console.c:1461
+#: ../client/pk-console.c:1473 ../client/pk-console.c:1485
 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:1490
+#: ../client/pk-console.c:1495
 msgid "Invalid search type"
 msgstr "Type de recherche incorrect"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1496
+#: ../client/pk-console.c:1501
 msgid "A package name to install is required"
 msgstr "Vous devez indiquer un nom de paquet à installer"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1505
+#: ../client/pk-console.c:1510
 msgid "A filename to install is required"
 msgstr "Vous devez indiquer un nom de fichier à installer"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1516
+#: ../client/pk-console.c:1521
 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:1527
+#: ../client/pk-console.c:1532
 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:1536
+#: ../client/pk-console.c:1541
 msgid "A destination directory and the package names to download are required"
 msgstr ""
 "Vous devez indiquer un répertoire de destination ainsi que les noms des "
 "paquets à télécharger"
 
 #. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:1543
+#: ../client/pk-console.c:1548
 msgid "Directory not found"
 msgstr "Répertoire non trouvé"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1552
+#: ../client/pk-console.c:1557
 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:1563
+#: ../client/pk-console.c:1568
 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:1584
+#: ../client/pk-console.c:1589
 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:1595 ../client/pk-console.c:1606
+#: ../client/pk-console.c:1600 ../client/pk-console.c:1611
 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:1617
+#: ../client/pk-console.c:1622
 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:1634
+#: ../client/pk-console.c:1639
 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:1641
+#: ../client/pk-console.c:1646
 msgid "A correct role is required"
 msgstr "Vous devez indiquer un rôle correct"
 
 #. 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:1651 ../client/pk-console.c:1665
-#: ../client/pk-console.c:1674 ../client/pk-console.c:1694
-#: ../client/pk-console.c:1703 ../client/pk-generate-pack.c:314
+#: ../client/pk-console.c:1656 ../client/pk-console.c:1670
+#: ../client/pk-console.c:1679 ../client/pk-console.c:1699
+#: ../client/pk-console.c:1708 ../client/pk-generate-pack.c:314
 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:1683
+#: ../client/pk-console.c:1688
 msgid "A package provide string is required"
 msgstr "Vous devez indiquer une chaîne de fourniture de paquet"
 
 #. TRANSLATORS: The user did not provide a distro name
-#: ../client/pk-console.c:1727
+#: ../client/pk-console.c:1732
 msgid "A distribution name is required"
 msgstr "Vous devez indiquer un nom de distribution"
 
 #. TRANSLATORS: The user did not provide an upgrade type
-#: ../client/pk-console.c:1733
+#: ../client/pk-console.c:1738
 msgid "An upgrade type is required, e.g. 'minimal', 'default' or 'complete'"
 msgstr ""
 "Vous devez indiquer un type de mise à niveau, par ex. « minimal », « default"
@@ -587,13 +591,13 @@ msgstr ""
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command
 #. line
-#: ../client/pk-console.c:1783
+#: ../client/pk-console.c:1788
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "L'option « %s » n'est pas prise en charge"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:1793
+#: ../client/pk-console.c:1798
 msgid "Command failed"
 msgstr "La commande a échoué"
 
@@ -734,161 +738,156 @@ msgid "PackageKit Monitor"
 msgstr "Contrôleur PackageKit"
 
 #. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/pk-plugin-install.c:499
+#: ../contrib/browser-plugin/pk-plugin-install.c:503
 msgid "Getting package information..."
 msgstr "Obtention des informations sur les paquets..."
 
 #. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/pk-plugin-install.c:505
+#: ../contrib/browser-plugin/pk-plugin-install.c:509
 #, c-format
 msgid "Run %s"
 msgstr "Exécuter %s"
 
 #. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:511
+#: ../contrib/browser-plugin/pk-plugin-install.c:515
 msgid "Installed version"
 msgstr "Version installée"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:519
+#: ../contrib/browser-plugin/pk-plugin-install.c:523
 #, 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:525
+#: ../contrib/browser-plugin/pk-plugin-install.c:529
 msgid "Run now"
 msgstr "Exécuter maintenant"
 
 #. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:531
+#: ../contrib/browser-plugin/pk-plugin-install.c:535
 #, 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:537
+#: ../contrib/browser-plugin/pk-plugin-install.c:541
 #, c-format
 msgid "Install %s now"
 msgstr "Installer %s maintenant"
 
 #. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:540
+#: ../contrib/browser-plugin/pk-plugin-install.c:544
 msgid "Version"
 msgstr "Version"
 
 #. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/pk-plugin-install.c:545
+#: ../contrib/browser-plugin/pk-plugin-install.c:549
 msgid "No packages found for your system"
 msgstr "Aucun paquet trouvé pour votre système"
 
 #. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/pk-plugin-install.c:550
+#: ../contrib/browser-plugin/pk-plugin-install.c:554
 msgid "Installing..."
 msgstr "Installation..."
 
 #. TRANSLATORS: downloading repo data so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:366
+#: ../contrib/command-not-found/pk-command-not-found.c:363
 msgid "Downloading details about the software sources."
 msgstr "Téléchargement des détails à propos des sources de logiciels."
 
 #. TRANSLATORS: downloading file lists so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:370
+#: ../contrib/command-not-found/pk-command-not-found.c:367
 msgid "Downloading filelists (this may take some time to complete)."
 msgstr ""
 "Téléchargement des listes de fichiers (cela peut prendre un certain temps)."
 
 #. TRANSLATORS: waiting for native lock
-#: ../contrib/command-not-found/pk-command-not-found.c:374
+#: ../contrib/command-not-found/pk-command-not-found.c:371
 msgid "Waiting for package manager lock."
 msgstr "Attente du verrou du gestionnaire de paquets."
 
 #. TRANSLATORS: loading package cache so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:378
+#: ../contrib/command-not-found/pk-command-not-found.c:375
 msgid "Loading list of packages."
 msgstr "Téléchargement de la liste des paquets."
 
 #. TRANSLATORS: we failed to find the package, this shouldn't happen
-#: ../contrib/command-not-found/pk-command-not-found.c:444
+#: ../contrib/command-not-found/pk-command-not-found.c:439
 msgid "Failed to search for file"
 msgstr "Impossible de rechercher des fichiers"
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
-#: ../contrib/command-not-found/pk-command-not-found.c:456
+#: ../contrib/command-not-found/pk-command-not-found.c:451
 msgid "Getting the list of files failed"
 msgstr "Échec d'obtention de la liste des fichiers"
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:602
+#: ../contrib/command-not-found/pk-command-not-found.c:597
 msgid "Failed to launch:"
 msgstr "Impossible de lancer :"
 
 #. TRANSLATORS: we failed to install the package
-#: ../contrib/command-not-found/pk-command-not-found.c:630
+#: ../contrib/command-not-found/pk-command-not-found.c:625
 msgid "Failed to install packages"
 msgstr "Impossible d'installer les paquets"
 
-#. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/command-not-found/pk-command-not-found.c:706
-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. NOTE: this is lowercase to mimic
 #. * the style of bash itself -- apologies
-#: ../contrib/command-not-found/pk-command-not-found.c:741
+#: ../contrib/command-not-found/pk-command-not-found.c:723
 msgid "command not found"
 msgstr "commande inconnue"
 
 #. TRANSLATORS: tell the user what we think the command is
-#: ../contrib/command-not-found/pk-command-not-found.c:759
+#: ../contrib/command-not-found/pk-command-not-found.c:741
 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:773
+#: ../contrib/command-not-found/pk-command-not-found.c:755
 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:787
-#: ../contrib/command-not-found/pk-command-not-found.c:796
+#: ../contrib/command-not-found/pk-command-not-found.c:769
+#: ../contrib/command-not-found/pk-command-not-found.c:778
 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:803
+#: ../contrib/command-not-found/pk-command-not-found.c:785
 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:821
+#: ../contrib/command-not-found/pk-command-not-found.c:803
 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:828
+#: ../contrib/command-not-found/pk-command-not-found.c:810
 #, c-format
 msgid "Install package '%s' to provide command '%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:855
+#: ../contrib/command-not-found/pk-command-not-found.c:837
 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:865
+#: ../contrib/command-not-found/pk-command-not-found.c:847
 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:874
+#: ../contrib/command-not-found/pk-command-not-found.c:856
 msgid "Please choose a package to install"
 msgstr "Veuillez choisir un paquet à installer"
 
@@ -1065,7 +1064,7 @@ msgstr "Les paquets ne sont pas installés en mode simulation"
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
 #. TRANSLATORS: transaction state, installing packages
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:860
-#: ../lib/packagekit-glib2/pk-console-shared.c:296
+#: ../lib/packagekit-glib2/pk-console-shared.c:331
 #, c-format
 msgid "Installing packages"
 msgstr "Installation des paquets"
@@ -1200,474 +1199,474 @@ msgstr "Liste des paquets de PackageKit"
 msgid "PackageKit Service Pack"
 msgstr "Service pack PackageKit"
 
-#: ../lib/packagekit-glib2/pk-console-shared.c:64
+#: ../lib/packagekit-glib2/pk-console-shared.c:65
 #, c-format
 msgid "Please enter a number from 1 to %i: "
 msgstr "Veuillez saisir un nombre entre 1 et %i : "
 
 #. TRANSLATORS: more than one package could be found that matched, to follow
 #. is a list of possible packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:198
+#: ../lib/packagekit-glib2/pk-console-shared.c:233
 msgid "More than one package matches:"
 msgstr "Il y a plusieurs paquets correspondants :"
 
 #. TRANSLATORS: This finds out which package in the list to use
-#: ../lib/packagekit-glib2/pk-console-shared.c:209
+#: ../lib/packagekit-glib2/pk-console-shared.c:244
 msgid "Please choose the correct package: "
 msgstr "Veuillez choisir le paquet correct : "
 
 #. TRANSLATORS: This is when the transaction status is not known
-#: ../lib/packagekit-glib2/pk-console-shared.c:264
+#: ../lib/packagekit-glib2/pk-console-shared.c:299
 msgid "Unknown state"
 msgstr "État inconnu"
 
 #. TRANSLATORS: transaction state, the daemon is in the process of starting
-#: ../lib/packagekit-glib2/pk-console-shared.c:268
+#: ../lib/packagekit-glib2/pk-console-shared.c:303
 msgid "Starting"
 msgstr "Démarrage"
 
 #. TRANSLATORS: transaction state, the transaction is waiting for another to
 #. complete
-#: ../lib/packagekit-glib2/pk-console-shared.c:272
+#: ../lib/packagekit-glib2/pk-console-shared.c:307
 msgid "Waiting in queue"
 msgstr "Attente dans la file"
 
 #. TRANSLATORS: transaction state, just started
-#: ../lib/packagekit-glib2/pk-console-shared.c:276
+#: ../lib/packagekit-glib2/pk-console-shared.c:311
 msgid "Running"
 msgstr "Exécution"
 
 #. TRANSLATORS: transaction state, is querying data
-#: ../lib/packagekit-glib2/pk-console-shared.c:280
+#: ../lib/packagekit-glib2/pk-console-shared.c:315
 msgid "Querying"
 msgstr "Requête"
 
 #. TRANSLATORS: transaction state, getting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:284
+#: ../lib/packagekit-glib2/pk-console-shared.c:319
 msgid "Getting information"
 msgstr "Obtention d'informations"
 
 #. TRANSLATORS: transaction state, removing packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:288
+#: ../lib/packagekit-glib2/pk-console-shared.c:323
 msgid "Removing packages"
 msgstr "Suppression des paquets"
 
 #. TRANSLATORS: transaction state, downloading package files
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:292
-#: ../lib/packagekit-glib2/pk-console-shared.c:670
+#: ../lib/packagekit-glib2/pk-console-shared.c:327
+#: ../lib/packagekit-glib2/pk-console-shared.c:705
 msgid "Downloading packages"
 msgstr "Téléchargement des paquets"
 
 #. TRANSLATORS: transaction state, refreshing internal lists
-#: ../lib/packagekit-glib2/pk-console-shared.c:300
+#: ../lib/packagekit-glib2/pk-console-shared.c:335
 msgid "Refreshing software list"
 msgstr "Mise à jour de la liste des logiciels"
 
 #. TRANSLATORS: transaction state, installing updates
-#: ../lib/packagekit-glib2/pk-console-shared.c:304
+#: ../lib/packagekit-glib2/pk-console-shared.c:339
 msgid "Installing updates"
 msgstr "Installation des mises à jour"
 
 #. TRANSLATORS: transaction state, removing old packages, and cleaning config
 #. files
-#: ../lib/packagekit-glib2/pk-console-shared.c:308
+#: ../lib/packagekit-glib2/pk-console-shared.c:343
 msgid "Cleaning up packages"
 msgstr "Nettoyage des paquets"
 
 #. TRANSLATORS: transaction state, obsoleting old packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:312
+#: ../lib/packagekit-glib2/pk-console-shared.c:347
 msgid "Obsoleting packages"
 msgstr "Marquage des paquets comme obsolètes"
 
 #. TRANSLATORS: transaction state, checking the transaction before we do it
-#: ../lib/packagekit-glib2/pk-console-shared.c:316
+#: ../lib/packagekit-glib2/pk-console-shared.c:351
 msgid "Resolving dependencies"
 msgstr "Résolution des dépendances"
 
 #. TRANSLATORS: transaction state, checking if we have all the security keys
 #. for the operation
-#: ../lib/packagekit-glib2/pk-console-shared.c:320
+#: ../lib/packagekit-glib2/pk-console-shared.c:355
 msgid "Checking signatures"
 msgstr "Vérification des signatures"
 
 #. TRANSLATORS: transaction state, when we return to a previous system state
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:324
-#: ../lib/packagekit-glib2/pk-console-shared.c:630
+#: ../lib/packagekit-glib2/pk-console-shared.c:359
+#: ../lib/packagekit-glib2/pk-console-shared.c:665
 msgid "Rolling back"
 msgstr "Retour à l'état précédent"
 
 #. TRANSLATORS: transaction state, when we're doing a test transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:328
+#: ../lib/packagekit-glib2/pk-console-shared.c:363
 msgid "Testing changes"
 msgstr "Test des changements"
 
 #. TRANSLATORS: transaction state, when we're writing to the system package
 #. database
-#: ../lib/packagekit-glib2/pk-console-shared.c:332
+#: ../lib/packagekit-glib2/pk-console-shared.c:367
 msgid "Committing changes"
 msgstr "Validation des changements"
 
 #. TRANSLATORS: transaction state, requesting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:336
+#: ../lib/packagekit-glib2/pk-console-shared.c:371
 msgid "Requesting data"
 msgstr "Requête de données"
 
 #. TRANSLATORS: transaction state, all done!
-#: ../lib/packagekit-glib2/pk-console-shared.c:340
+#: ../lib/packagekit-glib2/pk-console-shared.c:375
 msgid "Finished"
 msgstr "Terminé"
 
 #. TRANSLATORS: transaction state, in the process of cancelling
-#: ../lib/packagekit-glib2/pk-console-shared.c:344
+#: ../lib/packagekit-glib2/pk-console-shared.c:379
 msgid "Cancelling"
 msgstr "Annulation"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:348
+#: ../lib/packagekit-glib2/pk-console-shared.c:383
 msgid "Downloading repository information"
 msgstr "Téléchargement de l'information sur les dépôts"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:352
+#: ../lib/packagekit-glib2/pk-console-shared.c:387
 msgid "Downloading list of packages"
 msgstr "Téléchargement de la liste des paquets"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:356
+#: ../lib/packagekit-glib2/pk-console-shared.c:391
 msgid "Downloading file lists"
 msgstr "Téléchargement des listes de fichiers"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:360
+#: ../lib/packagekit-glib2/pk-console-shared.c:395
 msgid "Downloading lists of changes"
 msgstr "Téléchargement des listes de changements"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:364
+#: ../lib/packagekit-glib2/pk-console-shared.c:399
 msgid "Downloading groups"
 msgstr "Téléchargement des groupes"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:368
+#: ../lib/packagekit-glib2/pk-console-shared.c:403
 msgid "Downloading update information"
 msgstr "Téléchargement des informations de mise à jour"
 
 #. TRANSLATORS: transaction state, repackaging delta files
-#: ../lib/packagekit-glib2/pk-console-shared.c:372
+#: ../lib/packagekit-glib2/pk-console-shared.c:407
 msgid "Repackaging files"
 msgstr "Ré-empaquetage des fichiers"
 
 #. TRANSLATORS: transaction state, loading databases
-#: ../lib/packagekit-glib2/pk-console-shared.c:376
+#: ../lib/packagekit-glib2/pk-console-shared.c:411
 msgid "Loading cache"
 msgstr "Chargement du cache"
 
 #. TRANSLATORS: transaction state, scanning for running processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:380
+#: ../lib/packagekit-glib2/pk-console-shared.c:415
 msgid "Scanning applications"
 msgstr "Analyse des applications"
 
 #. TRANSLATORS: transaction state, generating a list of packages installed on
 #. the system
-#: ../lib/packagekit-glib2/pk-console-shared.c:384
+#: ../lib/packagekit-glib2/pk-console-shared.c:419
 msgid "Generating package lists"
 msgstr "Génération des listes de paquets"
 
 #. TRANSLATORS: transaction state, when we're waiting for the native tools to
 #. exit
-#: ../lib/packagekit-glib2/pk-console-shared.c:388
+#: ../lib/packagekit-glib2/pk-console-shared.c:423
 msgid "Waiting for package manager lock"
 msgstr "Attente du verrou du gestionnaire de paquets"
 
 #. TRANSLATORS: transaction state, waiting for user to type in a password
-#: ../lib/packagekit-glib2/pk-console-shared.c:392
+#: ../lib/packagekit-glib2/pk-console-shared.c:427
 msgid "Waiting for authentication"
 msgstr "Attente de l'authentification"
 
 #. TRANSLATORS: transaction state, we are updating the list of processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:396
+#: ../lib/packagekit-glib2/pk-console-shared.c:431
 msgid "Updating running applications"
 msgstr "Mise à jour des applications en cours d'exécution"
 
 #. TRANSLATORS: transaction state, we are checking executable files currently
 #. in use
-#: ../lib/packagekit-glib2/pk-console-shared.c:400
+#: ../lib/packagekit-glib2/pk-console-shared.c:435
 msgid "Checking applications in use"
 msgstr "Vérification des applications en cours d'exécution"
 
 #. TRANSLATORS: transaction state, we are checking for libraries currently in
 #. use
-#: ../lib/packagekit-glib2/pk-console-shared.c:404
+#: ../lib/packagekit-glib2/pk-console-shared.c:439
 msgid "Checking libraries in use"
 msgstr "Vérification des bibliothèques en cours d'utilisation"
 
 #. TRANSLATORS: transaction state, we are copying package files before or
 #. after the transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:408
+#: ../lib/packagekit-glib2/pk-console-shared.c:443
 msgid "Copying files"
 msgstr "Copie des fichiers"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:426
+#: ../lib/packagekit-glib2/pk-console-shared.c:461
 msgid "Trivial"
 msgstr "Triviale"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:430
+#: ../lib/packagekit-glib2/pk-console-shared.c:465
 msgid "Normal"
 msgstr "Normale"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:434
+#: ../lib/packagekit-glib2/pk-console-shared.c:469
 msgid "Important"
 msgstr "Importante"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:438
+#: ../lib/packagekit-glib2/pk-console-shared.c:473
 msgid "Security"
 msgstr "Sécurité"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:442
+#: ../lib/packagekit-glib2/pk-console-shared.c:477
 msgid "Bug fix "
 msgstr "Correction de bogue"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:446
+#: ../lib/packagekit-glib2/pk-console-shared.c:481
 msgid "Enhancement"
 msgstr "Amélioration"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:450
+#: ../lib/packagekit-glib2/pk-console-shared.c:485
 msgid "Blocked"
 msgstr "Bloquée"
 
 #. TRANSLATORS: The state of a package
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:455
-#: ../lib/packagekit-glib2/pk-console-shared.c:528
+#: ../lib/packagekit-glib2/pk-console-shared.c:490
+#: ../lib/packagekit-glib2/pk-console-shared.c:563
 msgid "Installed"
 msgstr "Installé"
 
 #. TRANSLATORS: The state of a package, i.e. not installed
-#: ../lib/packagekit-glib2/pk-console-shared.c:460
+#: ../lib/packagekit-glib2/pk-console-shared.c:495
 msgid "Available"
 msgstr "Disponible"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:478
+#: ../lib/packagekit-glib2/pk-console-shared.c:513
 msgid "Downloading"
 msgstr "Téléchargement"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:482
+#: ../lib/packagekit-glib2/pk-console-shared.c:517
 msgid "Updating"
 msgstr "Mise à jour"
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:486
-#: ../lib/packagekit-glib2/pk-console-shared.c:606
+#: ../lib/packagekit-glib2/pk-console-shared.c:521
+#: ../lib/packagekit-glib2/pk-console-shared.c:641
 msgid "Installing"
 msgstr "Installation"
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:490
-#: ../lib/packagekit-glib2/pk-console-shared.c:602
+#: ../lib/packagekit-glib2/pk-console-shared.c:525
+#: ../lib/packagekit-glib2/pk-console-shared.c:637
 msgid "Removing"
 msgstr "Suppression"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:494
+#: ../lib/packagekit-glib2/pk-console-shared.c:529
 msgid "Cleaning up"
 msgstr "Nettoyage"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:498
+#: ../lib/packagekit-glib2/pk-console-shared.c:533
 msgid "Obsoleting"
 msgstr "Marquage comme obsolète"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:502
+#: ../lib/packagekit-glib2/pk-console-shared.c:537
 msgid "Reinstalling"
 msgstr "Réinstallation"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:520
+#: ../lib/packagekit-glib2/pk-console-shared.c:555
 msgid "Downloaded"
 msgstr "Téléchargé"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:532
+#: ../lib/packagekit-glib2/pk-console-shared.c:567
 msgid "Removed"
 msgstr "Supprimé"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:536
+#: ../lib/packagekit-glib2/pk-console-shared.c:571
 msgid "Cleaned up"
 msgstr "Nettoyé"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:540
+#: ../lib/packagekit-glib2/pk-console-shared.c:575
 msgid "Obsoleted"
 msgstr "Rendu obsolète"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:544
+#: ../lib/packagekit-glib2/pk-console-shared.c:579
 msgid "Reinstalled"
 msgstr "Réinstallé"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:562
+#: ../lib/packagekit-glib2/pk-console-shared.c:597
 msgid "Unknown role type"
 msgstr "Type de rôle inconnu"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:566
+#: ../lib/packagekit-glib2/pk-console-shared.c:601
 msgid "Getting dependencies"
 msgstr "Obtention des dépendances"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:570
+#: ../lib/packagekit-glib2/pk-console-shared.c:605
 msgid "Getting update details"
 msgstr "Obtention des détails de la mise à jour"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:574
+#: ../lib/packagekit-glib2/pk-console-shared.c:609
 msgid "Getting details"
 msgstr "Obtention des détails"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:578
+#: ../lib/packagekit-glib2/pk-console-shared.c:613
 msgid "Getting requires"
 msgstr "Obtention des paquets requis par celui-ci"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:582
+#: ../lib/packagekit-glib2/pk-console-shared.c:617
 msgid "Getting updates"
 msgstr "Obtention des mises à jour"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:586
+#: ../lib/packagekit-glib2/pk-console-shared.c:621
 msgid "Searching by details"
 msgstr "Recherche par détails"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:590
+#: ../lib/packagekit-glib2/pk-console-shared.c:625
 msgid "Searching by file"
 msgstr "Recherche par fichier"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:594
+#: ../lib/packagekit-glib2/pk-console-shared.c:629
 msgid "Searching groups"
 msgstr "Recherche des groupes"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:598
+#: ../lib/packagekit-glib2/pk-console-shared.c:633
 msgid "Searching by name"
 msgstr "Recherche par nom"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:610
+#: ../lib/packagekit-glib2/pk-console-shared.c:645
 msgid "Installing files"
 msgstr "Installation des fichiers"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:614
+#: ../lib/packagekit-glib2/pk-console-shared.c:649
 msgid "Refreshing cache"
 msgstr "Rafraîchissement du cache"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:618
+#: ../lib/packagekit-glib2/pk-console-shared.c:653
 msgid "Updating packages"
 msgstr "Mise à jour des paquets"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:622
+#: ../lib/packagekit-glib2/pk-console-shared.c:657
 msgid "Updating system"
 msgstr "Mise à jour du système"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:626
+#: ../lib/packagekit-glib2/pk-console-shared.c:661
 msgid "Canceling"
 msgstr "Annulation"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:634
+#: ../lib/packagekit-glib2/pk-console-shared.c:669
 msgid "Getting repositories"
 msgstr "Obtention des dépôts"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:638
+#: ../lib/packagekit-glib2/pk-console-shared.c:673
 msgid "Enabling repository"
 msgstr "Activation du dépôt"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:642
+#: ../lib/packagekit-glib2/pk-console-shared.c:677
 msgid "Setting data"
 msgstr "Mise en place des données"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:646
+#: ../lib/packagekit-glib2/pk-console-shared.c:681
 msgid "Resolving"
 msgstr "Résolution"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:650
+#: ../lib/packagekit-glib2/pk-console-shared.c:685
 msgid "Getting file list"
 msgstr "Obtention de la liste des fichiers"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:654
+#: ../lib/packagekit-glib2/pk-console-shared.c:689
 msgid "Getting provides"
 msgstr "Obtention de la liste des fichiers que ce paquet fournit"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:658
+#: ../lib/packagekit-glib2/pk-console-shared.c:693
 msgid "Installing signature"
 msgstr "Installation de la signature"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:662
+#: ../lib/packagekit-glib2/pk-console-shared.c:697
 msgid "Getting packages"
 msgstr "Obtention des paquets"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:666
+#: ../lib/packagekit-glib2/pk-console-shared.c:701
 msgid "Accepting EULA"
 msgstr "Validation du Contrat de Licence Utilisateur Final"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:674
+#: ../lib/packagekit-glib2/pk-console-shared.c:709
 msgid "Getting upgrades"
 msgstr "Obtention des mises à jour complètes"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:678
+#: ../lib/packagekit-glib2/pk-console-shared.c:713
 msgid "Getting categories"
 msgstr "Obtention des catégories"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:682
+#: ../lib/packagekit-glib2/pk-console-shared.c:717
 msgid "Getting transactions"
 msgstr "Obtention des transactions"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:686
-#: ../lib/packagekit-glib2/pk-console-shared.c:690
+#: ../lib/packagekit-glib2/pk-console-shared.c:721
+#: ../lib/packagekit-glib2/pk-console-shared.c:725
 msgid "Simulating install"
 msgstr "Simulation de l'installation"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:694
+#: ../lib/packagekit-glib2/pk-console-shared.c:729
 msgid "Simulating remove"
 msgstr "Simulation de la suppression"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:698
+#: ../lib/packagekit-glib2/pk-console-shared.c:733
 msgid "Simulating update"
 msgstr "Simulation de la mise à jour"
 
@@ -1818,13 +1817,19 @@ msgid "The following packages have to be downgraded:"
 msgstr ""
 "Les paquets suivants doivent être rétrogradés à une version inférieure :"
 
+#. TRANSLATORS: When processing, untrusted and non-verified packages may be
+#. encountered
+#: ../lib/packagekit-glib2/pk-task-text.c:325
+msgid "The following packages are untrusted:"
+msgstr ""
+
 #. TRANSLATORS: ask the user if the proposed changes are okay
-#: ../lib/packagekit-glib2/pk-task-text.c:380
+#: ../lib/packagekit-glib2/pk-task-text.c:385
 msgid "Proceed with changes?"
 msgstr "Continuer avec ces changements ?"
 
 #. TRANSLATORS: tell the user we didn't do anything
-#: ../lib/packagekit-glib2/pk-task-text.c:385
+#: ../lib/packagekit-glib2/pk-task-text.c:390
 msgid "The transaction did not proceed."
 msgstr "La transaction n'a pas été effectuée."
 
@@ -2038,106 +2043,74 @@ msgstr "Mettre à jour les paquets"
 msgid "Upgrade System"
 msgstr "Mettre à niveau le système"
 
-#. TRANSLATORS: failed due to DBus security
-#: ../src/pk-main.c:91
-msgid "Startup failed due to security policies on this machine."
-msgstr "Les règles de sécurité de ce système empêchent le démarrage."
-
-#. TRANSLATORS: only two ways this can fail...
-#: ../src/pk-main.c:93
-msgid "This can happen for two reasons:"
-msgstr "Cela peut s'expliquer pour deux raisons :"
-
-#. TRANSLATORS: only allowed to be owned by root
-#: ../src/pk-main.c:95
-msgid "The correct user is not launching the executable (usually root)"
-msgstr ""
-"L'utilisateur n'a pas la permission d'exécuter le programme (généralement, «"
-" root » la possède)"
-
-#. TRANSLATORS: or we are installed in a prefix
-#: ../src/pk-main.c:97
-msgid ""
-"The org.freedesktop.PackageKit.conf file is not installed in the system "
-"directory:"
-msgstr ""
-"Le fichier « org.freedesktop.PackageKit.conf » n'est pas installé dans le "
-"répertoire système :"
-
 #. TRANSLATORS: a backend is the system package tool, e.g. yum, apt
-#: ../src/pk-main.c:223
+#: ../src/pk-main.c:149
 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:226
+#: ../src/pk-main.c:152
 msgid "Daemonize and detach from the terminal"
 msgstr "Crée un service et se sépare du terminal"
 
 #. TRANSLATORS: if we should not monitor how long we are inactive for
-#: ../src/pk-main.c:229
+#: ../src/pk-main.c:155
 msgid "Disable the idle timer"
 msgstr "Désactive la minuterie d'inactivité"
 
 #. TRANSLATORS: show version
-#: ../src/pk-main.c:232
+#: ../src/pk-main.c:158
 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:235
+#: ../src/pk-main.c:161
 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:238
+#: ../src/pk-main.c:164
 msgid "Exit after the engine has loaded"
 msgstr "Quitte immédiatement après chargement du gestionnaire"
 
+#. TRANSLATORS: don't unset environment variables, used for debugging
+#: ../src/pk-main.c:167
+msgid "Don't clear environment on startup"
+msgstr ""
+
 #. TRANSLATORS: describing the service that is running
-#: ../src/pk-main.c:253
+#: ../src/pk-main.c:179
 msgid "PackageKit service"
 msgstr "Service PackageKit"
 
-#. TRANSLATORS: fatal error, dbus is not running
-#: ../src/pk-main.c:298
-msgid "Cannot connect to the system bus"
-msgstr "Impossible de se connecter au bus système"
-
-#: ../src/pk-main.c:344
+#: ../src/pk-main.c:253
 msgid "Failed to load any of the specified backends:"
 msgstr ""
 
-#. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error
-#. follows
-#: ../src/pk-main.c:358
-msgid "Error trying to start:"
-msgstr "Impossible de démarrer :"
-
 #. TRANSLATORS: is not GPG signed
-#: ../src/pk-transaction.c:2611 ../src/pk-transaction.c:2618
+#: ../src/pk-transaction.c:2696
 msgid "The software is not from a trusted source."
 msgstr "Le logiciel ne provient pas d'une source sûre."
 
-#: ../src/pk-transaction.c:2623
+#: ../src/pk-transaction.c:2704
 msgid "Do not update this package unless you are sure it is safe to do so."
 msgstr ""
 "Ne mettez pas à jour ce paquet à moins que vous ne soyez sûr que cela est "
 "sans danger."
 
-#: ../src/pk-transaction.c:2624
+#: ../src/pk-transaction.c:2705
 msgid "Do not update these packages unless you are sure it is safe to do so."
 msgstr ""
 "Ne mettez pas à jour ces paquets à moins que vous ne soyez sûr que cela est "
 "sans danger."
 
-#: ../src/pk-transaction.c:2634
+#: ../src/pk-transaction.c:2715
 msgid "Do not install this package unless you are sure it is safe to do so."
 msgstr ""
 "N'installez pas ce paquet à moins que vous ne soyez sûr que cela est sans "
 "danger."
 
-#: ../src/pk-transaction.c:2635
+#: ../src/pk-transaction.c:2716
 msgid "Do not install these packages unless you are sure it is safe to do so."
 msgstr ""
 "N'installez pas ces paquets à moins que vous ne soyez sûr que cela est sans "
diff --git a/po/gu.po b/po/gu.po
index c3f2254..b178437 100644
--- a/po/gu.po
+++ b/po/gu.po
@@ -2,14 +2,17 @@
 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
 # This file is distributed under the same license as the PACKAGE package.
 # 
-# Richard Hughes <richard at hughsie.com>, 2011
+# Translators:
+# Ankit Patel <ankit at redhat.com>, 2008.
+# Richard Hughes <richard at hughsie.com>, 2011.
+# Sweta Kothari <swkothar at redhat.com>, 2009.
 msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-04 10:50+0100\n"
-"PO-Revision-Date: 2011-05-04 09:56+0000\n"
-"Last-Translator: hughsie <richard at hughsie.com>\n"
+"POT-Creation-Date: 2011-11-10 19:50+0000\n"
+"PO-Revision-Date: 2011-11-10 19:50+0000\n"
+"Last-Translator: Richard Hughes <richard at hughsie.com>\n"
 "Language-Team: LANGUAGE <LL at li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -195,7 +198,7 @@ msgstr "અદા કરેલ"
 
 #. TRANSLATORS: details about the update, date the update was updated
 #. TRANSLATORS: The action of the package, in past tense
-#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:524
+#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:559
 msgid "Updated"
 msgstr "સુધારેલ"
 
@@ -285,7 +288,7 @@ msgstr ""
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
 #: ../client/pk-console.c:704
-#: ../contrib/command-not-found/pk-command-not-found.c:639
+#: ../contrib/command-not-found/pk-command-not-found.c:634
 msgid "The transaction failed"
 msgstr "પરિવહન નિષ્ફળ"
 
@@ -338,21 +341,21 @@ msgstr ""
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:866
+#: ../client/pk-console.c:871
 #, c-format
 msgid "This tool could not find any available package: %s"
 msgstr "આ સાધન ઉપલ્બધ પેકેજ ને શોધી શક્યુ નહિં: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:894
+#: ../client/pk-console.c:899
 #, c-format
 msgid "This tool could not find the installed package: %s"
 msgstr "આ સાધન સ્થાપિત થયેલ પેકેજને શોધી શક્યુ નહિં: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:922 ../client/pk-console.c:950
+#: ../client/pk-console.c:927 ../client/pk-console.c:955
 #, c-format
 msgid "This tool could not find the package: %s"
 msgstr "આ સાધન પેકેજ ને શોધી શક્યુ નહિં: %s"
@@ -365,68 +368,68 @@ msgstr "આ સાધન પેકેજ ને શોધી શક્યુ ન
 #. detailed error follows
 #. TRANSLATORS: The package name was not found in any software sources. The
 #. detailed error follows
-#: ../client/pk-console.c:978 ../client/pk-console.c:1006
-#: ../client/pk-console.c:1034 ../client/pk-console.c:1062
-#: ../client/pk-console.c:1090
+#: ../client/pk-console.c:983 ../client/pk-console.c:1011
+#: ../client/pk-console.c:1039 ../client/pk-console.c:1067
+#: ../client/pk-console.c:1095
 #, c-format
 msgid "This tool could not find all the packages: %s"
 msgstr "આ સાધન બધા પેકેજોને શોધી શક્યુ નહિં: %s"
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek
 #. without a paddle
-#: ../client/pk-console.c:1119
+#: ../client/pk-console.c:1124
 msgid "The daemon crashed mid-transaction!"
 msgstr "ડિમન મધ્ય-પરિવહન દરમ્યાન ભાંગી પડ્યું!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1153
+#: ../client/pk-console.c:1158
 msgid "PackageKit Console Interface"
 msgstr "PackageKit કન્સોલ ઈન્ટરફેસ"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1155
+#: ../client/pk-console.c:1160
 msgid "Subcommands:"
 msgstr "ઉપઆદેશો:"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was
 #. last executed
-#: ../client/pk-console.c:1235
+#: ../client/pk-console.c:1240
 msgid "Failed to get the time since this action was last completed"
 msgstr "આ ક્રિયા છેલ્લી સમાપ્ત થયેલ હતી ત્યાં સુધી સમયને મેળવવાનું નિષ્ફળ"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1277 ../client/pk-monitor.c:371
+#: ../client/pk-console.c:1282 ../client/pk-monitor.c:371
 msgid "Show the program version and exit"
 msgstr "કાર્યક્રમ આવૃત્તિ બતાવો અને બહાર નીકળો"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1280
+#: ../client/pk-console.c:1285
 msgid "Set the filter, e.g. installed"
 msgstr "ગાળક સુયોજીત કરો, દા.ત. સ્થાપિત"
 
 #. TRANSLATORS: command line argument, use a non-standard install prefix
-#: ../client/pk-console.c:1283
+#: ../client/pk-console.c:1288
 msgid "Set the install root, e.g. '/' or '/mnt/ltsp'"
 msgstr ""
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1286
+#: ../client/pk-console.c:1291
 msgid "Exit without waiting for actions to complete"
 msgstr "ક્રિયાઓ સમાપ્ત થવાની રાહ જોયા વિના બહાર નીકળો"
 
 #. command line argument, do we ask questions
-#: ../client/pk-console.c:1289
+#: ../client/pk-console.c:1294
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:525
 msgid "Install the packages without asking for confirmation"
 msgstr "ખાતરી કરવા માટે પૂછ્યા વગર પેકેજોને સ્થાપિત કરો"
 
 #. TRANSLATORS: command line argument, this command is not a priority
-#: ../client/pk-console.c:1292
+#: ../client/pk-console.c:1297
 msgid "Run the command using idle network bandwidth and also using less power"
 msgstr "નિષ્ક્રિય નેટવર્ક બેન્ડવિથ અને ઓછા પાવરની મદદથી આદેશને ચલાવો"
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1295
+#: ../client/pk-console.c:1300
 msgid ""
 "Print to screen a machine readable output, rather than using animated "
 "widgets"
@@ -435,155 +438,155 @@ msgstr ""
 "કરતા"
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1298
+#: ../client/pk-console.c:1303
 msgid "The maximum metadata cache age. Use -1 for 'never'."
 msgstr ""
 
 #. TRANSLATORS: command line argument, --help
-#: ../client/pk-console.c:1301
+#: ../client/pk-console.c:1306
 msgid "Show help options."
 msgstr ""
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1331
+#: ../client/pk-console.c:1336
 msgid "Failed to parse command line"
 msgstr ""
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1341
+#: ../client/pk-console.c:1346
 msgid "Failed to contact PackageKit"
 msgstr "PackageKit ને સંપર્ક કરવાનું નિષ્ફળ"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1394
+#: ../client/pk-console.c:1399
 msgid "The proxy could not be set"
 msgstr ""
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1406
+#: ../client/pk-console.c:1411
 msgid "The install root could not be set"
 msgstr ""
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1418
+#: ../client/pk-console.c:1423
 msgid "The filter specified was invalid"
 msgstr "સ્પષ્ટ થયેલ ફિલ્ટર અયોગ્ય હતુ"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1437
+#: ../client/pk-console.c:1442
 msgid "A search type is required, e.g. name"
 msgstr "શોધ પ્રકારની જરૂરિયાત છે, દા.ત. નામ"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1444 ../client/pk-console.c:1456
-#: ../client/pk-console.c:1468 ../client/pk-console.c:1480
+#: ../client/pk-console.c:1449 ../client/pk-console.c:1461
+#: ../client/pk-console.c:1473 ../client/pk-console.c:1485
 msgid "A search term is required"
 msgstr "શોધ ટર્મ જરૂરી છે"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1490
+#: ../client/pk-console.c:1495
 msgid "Invalid search type"
 msgstr "અયોગ્ય શોધ પ્રકાર"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1496
+#: ../client/pk-console.c:1501
 msgid "A package name to install is required"
 msgstr "સ્થાપિત કરવા માટે પેકેજ નામ જરૂરી છે"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1505
+#: ../client/pk-console.c:1510
 msgid "A filename to install is required"
 msgstr "સ્થાપન કરવા માટે થવા ફાઇલનામ જરૂરી છે"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1516
+#: ../client/pk-console.c:1521
 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:1527
+#: ../client/pk-console.c:1532
 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:1536
+#: ../client/pk-console.c:1541
 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:1543
+#: ../client/pk-console.c:1548
 msgid "Directory not found"
 msgstr "ડિરેક્ટરી મળી નહિં"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1552
+#: ../client/pk-console.c:1557
 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:1563
+#: ../client/pk-console.c:1568
 msgid "A transaction identifier (tid) is required"
 msgstr "પરિવહન ઓળખનાર (tid) જરૂરી છે"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:1584
+#: ../client/pk-console.c:1589
 msgid "A package name to resolve is required"
 msgstr "સુધારવા માટે પેકેજ નામ જરૂરી છે"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:1595 ../client/pk-console.c:1606
+#: ../client/pk-console.c:1600 ../client/pk-console.c:1611
 msgid "A repository name is required"
 msgstr "રીપોઝીટરી નામ જરૂરી છે"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:1617
+#: ../client/pk-console.c:1622
 msgid "A repo name, parameter and value are required"
 msgstr "રીપો નામ, પરિમાણ અને કિંમતની જરૂર છે"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:1634
+#: ../client/pk-console.c:1639
 msgid "An action, e.g. 'update-system' is required"
 msgstr "ક્રિયા, દા.ત. 'update-system જરૂરી છે"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:1641
+#: ../client/pk-console.c:1646
 msgid "A correct role is required"
 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:1651 ../client/pk-console.c:1665
-#: ../client/pk-console.c:1674 ../client/pk-console.c:1694
-#: ../client/pk-console.c:1703 ../client/pk-generate-pack.c:314
+#: ../client/pk-console.c:1656 ../client/pk-console.c:1670
+#: ../client/pk-console.c:1679 ../client/pk-console.c:1699
+#: ../client/pk-console.c:1708 ../client/pk-generate-pack.c:314
 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:1683
+#: ../client/pk-console.c:1688
 msgid "A package provide string is required"
 msgstr "પેકેજ શબ્દમાળાની પૂરી પાડે છે તેની જરૂર છે"
 
 #. TRANSLATORS: The user did not provide a distro name
-#: ../client/pk-console.c:1727
+#: ../client/pk-console.c:1732
 msgid "A distribution name is required"
 msgstr ""
 
 #. TRANSLATORS: The user did not provide an upgrade type
-#: ../client/pk-console.c:1733
+#: ../client/pk-console.c:1738
 msgid "An upgrade type is required, e.g. 'minimal', 'default' or 'complete'"
 msgstr ""
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command
 #. line
-#: ../client/pk-console.c:1783
+#: ../client/pk-console.c:1788
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "વિકલ્પ '%s' આધારભૂત નથી"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:1793
+#: ../client/pk-console.c:1798
 msgid "Command failed"
 msgstr "આદેશ નિષ્ફળ"
 
@@ -723,161 +726,156 @@ msgid "PackageKit Monitor"
 msgstr "PackageKit મોનીટર"
 
 #. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/pk-plugin-install.c:499
+#: ../contrib/browser-plugin/pk-plugin-install.c:503
 msgid "Getting package information..."
 msgstr "પેકેજ જાણકારી મેળવી રહ્યા છીએ..."
 
 #. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/pk-plugin-install.c:505
+#: ../contrib/browser-plugin/pk-plugin-install.c:509
 #, c-format
 msgid "Run %s"
 msgstr "%s ચલાવો"
 
 #. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:511
+#: ../contrib/browser-plugin/pk-plugin-install.c:515
 msgid "Installed version"
 msgstr "સ્થાપિત આવૃત્તિ"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:519
+#: ../contrib/browser-plugin/pk-plugin-install.c:523
 #, c-format
 msgid "Run version %s now"
 msgstr "આવૃત્તિ %s હમણાં ચલાવો"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:525
+#: ../contrib/browser-plugin/pk-plugin-install.c:529
 msgid "Run now"
 msgstr "હમણાં ચલાવો"
 
 #. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:531
+#: ../contrib/browser-plugin/pk-plugin-install.c:535
 #, c-format
 msgid "Update to version %s"
 msgstr "આવૃત્તિ %s માં સુધારો"
 
 #. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:537
+#: ../contrib/browser-plugin/pk-plugin-install.c:541
 #, c-format
 msgid "Install %s now"
 msgstr "%s હમણાં સ્થાપિત કરો"
 
 #. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:540
+#: ../contrib/browser-plugin/pk-plugin-install.c:544
 msgid "Version"
 msgstr "આવૃત્તિ"
 
 #. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/pk-plugin-install.c:545
+#: ../contrib/browser-plugin/pk-plugin-install.c:549
 msgid "No packages found for your system"
 msgstr "તમારી સિસ્ટમ માટે કોઈ પેકેજો મળ્યા નહિં"
 
 #. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/pk-plugin-install.c:550
+#: ../contrib/browser-plugin/pk-plugin-install.c:554
 msgid "Installing..."
 msgstr "સ્થાપિત કરી રહ્યા છીએ..."
 
 #. TRANSLATORS: downloading repo data so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:366
+#: ../contrib/command-not-found/pk-command-not-found.c:363
 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:370
+#: ../contrib/command-not-found/pk-command-not-found.c:367
 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:374
+#: ../contrib/command-not-found/pk-command-not-found.c:371
 msgid "Waiting for package manager lock."
 msgstr "પેકેજ વ્યવસ્થાપક તાળા માટે રાહ જોઇ રહ્યા છે."
 
 #. TRANSLATORS: loading package cache so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:378
+#: ../contrib/command-not-found/pk-command-not-found.c:375
 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:444
+#: ../contrib/command-not-found/pk-command-not-found.c:439
 msgid "Failed to search for file"
 msgstr "ફાઇલ માટે શોધવાનું નિષ્ફળ"
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
-#: ../contrib/command-not-found/pk-command-not-found.c:456
+#: ../contrib/command-not-found/pk-command-not-found.c:451
 msgid "Getting the list of files failed"
 msgstr ""
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:602
+#: ../contrib/command-not-found/pk-command-not-found.c:597
 msgid "Failed to launch:"
 msgstr "શરૂ કરવામાં નિષ્ફળ:"
 
 #. TRANSLATORS: we failed to install the package
-#: ../contrib/command-not-found/pk-command-not-found.c:630
+#: ../contrib/command-not-found/pk-command-not-found.c:625
 msgid "Failed to install packages"
 msgstr "પેકેજોને સ્થાપિત કરવામાં નિષ્ફળ"
 
-#. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/command-not-found/pk-command-not-found.c:706
-msgid "PackageKit Command Not Found"
-msgstr "PackageKit આદેશ શોધાયો નહિં"
-
 #. TRANSLATORS: the prefix of all the output telling the user
 #. * why it's not executing. NOTE: this is lowercase to mimic
 #. * the style of bash itself -- apologies
-#: ../contrib/command-not-found/pk-command-not-found.c:741
+#: ../contrib/command-not-found/pk-command-not-found.c:723
 msgid "command not found"
 msgstr ""
 
 #. TRANSLATORS: tell the user what we think the command is
-#: ../contrib/command-not-found/pk-command-not-found.c:759
+#: ../contrib/command-not-found/pk-command-not-found.c:741
 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:773
+#: ../contrib/command-not-found/pk-command-not-found.c:755
 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:787
-#: ../contrib/command-not-found/pk-command-not-found.c:796
+#: ../contrib/command-not-found/pk-command-not-found.c:769
+#: ../contrib/command-not-found/pk-command-not-found.c:778
 msgid "Similar commands are:"
 msgstr "સરખા આદેશો છે:"
 
 #. TRANSLATORS: ask the user to choose a file to run
-#: ../contrib/command-not-found/pk-command-not-found.c:803
+#: ../contrib/command-not-found/pk-command-not-found.c:785
 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:821
+#: ../contrib/command-not-found/pk-command-not-found.c:803
 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:828
+#: ../contrib/command-not-found/pk-command-not-found.c:810
 #, 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:855
+#: ../contrib/command-not-found/pk-command-not-found.c:837
 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:865
+#: ../contrib/command-not-found/pk-command-not-found.c:847
 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:874
+#: ../contrib/command-not-found/pk-command-not-found.c:856
 msgid "Please choose a package to install"
 msgstr "મહેરબાની કરીને સ્થાપિત કરવા માટે પેકેજને પસંદ કરો"
 
@@ -1053,7 +1051,7 @@ msgstr "simulate સ્થિતિમાં પેકેજોને સ્થ
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
 #. TRANSLATORS: transaction state, installing packages
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:860
-#: ../lib/packagekit-glib2/pk-console-shared.c:296
+#: ../lib/packagekit-glib2/pk-console-shared.c:331
 #, c-format
 msgid "Installing packages"
 msgstr "પેકેજોને સ્થાપિત કરી રહ્યા છે"
@@ -1187,474 +1185,474 @@ msgstr "PackageKit પેકેજ યાદી"
 msgid "PackageKit Service Pack"
 msgstr "PackageKit સેવા પેક"
 
-#: ../lib/packagekit-glib2/pk-console-shared.c:64
+#: ../lib/packagekit-glib2/pk-console-shared.c:65
 #, c-format
 msgid "Please enter a number from 1 to %i: "
 msgstr "મહેરબાની કરીને ૧ થી %i સુધીનો નંબર દાખલ કરો: "
 
 #. TRANSLATORS: more than one package could be found that matched, to follow
 #. is a list of possible packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:198
+#: ../lib/packagekit-glib2/pk-console-shared.c:233
 msgid "More than one package matches:"
 msgstr "એક પેકેજ કરતાં વધુ જોડણીઓ:"
 
 #. TRANSLATORS: This finds out which package in the list to use
-#: ../lib/packagekit-glib2/pk-console-shared.c:209
+#: ../lib/packagekit-glib2/pk-console-shared.c:244
 msgid "Please choose the correct package: "
 msgstr "મહેરબાની કરીને યોગ્ય પેકેજ પસંદ કરો: "
 
 #. TRANSLATORS: This is when the transaction status is not known
-#: ../lib/packagekit-glib2/pk-console-shared.c:264
+#: ../lib/packagekit-glib2/pk-console-shared.c:299
 msgid "Unknown state"
 msgstr "અજ્ઞાત સ્થિતિ"
 
 #. TRANSLATORS: transaction state, the daemon is in the process of starting
-#: ../lib/packagekit-glib2/pk-console-shared.c:268
+#: ../lib/packagekit-glib2/pk-console-shared.c:303
 msgid "Starting"
 msgstr "શરૂ કરી રહ્યા છે"
 
 #. TRANSLATORS: transaction state, the transaction is waiting for another to
 #. complete
-#: ../lib/packagekit-glib2/pk-console-shared.c:272
+#: ../lib/packagekit-glib2/pk-console-shared.c:307
 msgid "Waiting in queue"
 msgstr "કતારમાં રાહ જોઇ રહ્યા છે"
 
 #. TRANSLATORS: transaction state, just started
-#: ../lib/packagekit-glib2/pk-console-shared.c:276
+#: ../lib/packagekit-glib2/pk-console-shared.c:311
 msgid "Running"
 msgstr "ચાલી રહ્યુ છે"
 
 #. TRANSLATORS: transaction state, is querying data
-#: ../lib/packagekit-glib2/pk-console-shared.c:280
+#: ../lib/packagekit-glib2/pk-console-shared.c:315
 msgid "Querying"
 msgstr "પ્રશ્ર્ન કરી રહ્યા છે"
 
 #. TRANSLATORS: transaction state, getting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:284
+#: ../lib/packagekit-glib2/pk-console-shared.c:319
 msgid "Getting information"
 msgstr "જાણકારીને મેળવી રહ્યા છે"
 
 #. TRANSLATORS: transaction state, removing packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:288
+#: ../lib/packagekit-glib2/pk-console-shared.c:323
 msgid "Removing packages"
 msgstr "પેકેજોને દૂર કરી રહ્યા છે"
 
 #. TRANSLATORS: transaction state, downloading package files
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:292
-#: ../lib/packagekit-glib2/pk-console-shared.c:670
+#: ../lib/packagekit-glib2/pk-console-shared.c:327
+#: ../lib/packagekit-glib2/pk-console-shared.c:705
 msgid "Downloading packages"
 msgstr "પેકેજો ડાઉનલોડ કરી રહ્યા છીએ"
 
 #. TRANSLATORS: transaction state, refreshing internal lists
-#: ../lib/packagekit-glib2/pk-console-shared.c:300
+#: ../lib/packagekit-glib2/pk-console-shared.c:335
 msgid "Refreshing software list"
 msgstr "સોફ્ટવેર યાદીને તાજી કરી રહ્યા છે"
 
 #. TRANSLATORS: transaction state, installing updates
-#: ../lib/packagekit-glib2/pk-console-shared.c:304
+#: ../lib/packagekit-glib2/pk-console-shared.c:339
 msgid "Installing updates"
 msgstr "સુધારાઓને સ્થાપિત કરી રહ્યા છે"
 
 #. TRANSLATORS: transaction state, removing old packages, and cleaning config
 #. files
-#: ../lib/packagekit-glib2/pk-console-shared.c:308
+#: ../lib/packagekit-glib2/pk-console-shared.c:343
 msgid "Cleaning up packages"
 msgstr "પેકેજોને સાફ કરી રહ્યા છે"
 
 #. TRANSLATORS: transaction state, obsoleting old packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:312
+#: ../lib/packagekit-glib2/pk-console-shared.c:347
 msgid "Obsoleting packages"
 msgstr "પેકેજો ને અપ્રચલિત કરી રહ્યા છે"
 
 #. TRANSLATORS: transaction state, checking the transaction before we do it
-#: ../lib/packagekit-glib2/pk-console-shared.c:316
+#: ../lib/packagekit-glib2/pk-console-shared.c:351
 msgid "Resolving dependencies"
 msgstr "આધારભૂતપણાઓને સુધારી રહ્યા છે"
 
 #. TRANSLATORS: transaction state, checking if we have all the security keys
 #. for the operation
-#: ../lib/packagekit-glib2/pk-console-shared.c:320
+#: ../lib/packagekit-glib2/pk-console-shared.c:355
 msgid "Checking signatures"
 msgstr "હસ્તાક્ષરોને ચકાસી રહ્યા છે"
 
 #. TRANSLATORS: transaction state, when we return to a previous system state
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:324
-#: ../lib/packagekit-glib2/pk-console-shared.c:630
+#: ../lib/packagekit-glib2/pk-console-shared.c:359
+#: ../lib/packagekit-glib2/pk-console-shared.c:665
 msgid "Rolling back"
 msgstr "પાછુ લાવી રહ્યા છે"
 
 #. TRANSLATORS: transaction state, when we're doing a test transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:328
+#: ../lib/packagekit-glib2/pk-console-shared.c:363
 msgid "Testing changes"
 msgstr "બદલાવોને ચકાસી રહ્યા છે"
 
 #. TRANSLATORS: transaction state, when we're writing to the system package
 #. database
-#: ../lib/packagekit-glib2/pk-console-shared.c:332
+#: ../lib/packagekit-glib2/pk-console-shared.c:367
 msgid "Committing changes"
 msgstr "બદલાવોને મોકલી રહ્યા છે"
 
 #. TRANSLATORS: transaction state, requesting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:336
+#: ../lib/packagekit-glib2/pk-console-shared.c:371
 msgid "Requesting data"
 msgstr "માહિતીની માંગણી કરી રહ્યા છે"
 
 #. TRANSLATORS: transaction state, all done!
-#: ../lib/packagekit-glib2/pk-console-shared.c:340
+#: ../lib/packagekit-glib2/pk-console-shared.c:375
 msgid "Finished"
 msgstr "સમાપ્ત"
 
 #. TRANSLATORS: transaction state, in the process of cancelling
-#: ../lib/packagekit-glib2/pk-console-shared.c:344
+#: ../lib/packagekit-glib2/pk-console-shared.c:379
 msgid "Cancelling"
 msgstr "રદ કરી રહ્યા છે"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:348
+#: ../lib/packagekit-glib2/pk-console-shared.c:383
 msgid "Downloading repository information"
 msgstr "રિપોઝિટરીની જાણકારીને ડાઉનલોડ કરી રહ્યા છે"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:352
+#: ../lib/packagekit-glib2/pk-console-shared.c:387
 msgid "Downloading list of packages"
 msgstr "પેકેજોની યાદીને લોડ કરી રહ્યા છે"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:356
+#: ../lib/packagekit-glib2/pk-console-shared.c:391
 msgid "Downloading file lists"
 msgstr "ફાઇલ યાદીઓને ડાઉનલોડ કરી રહ્યા છીએ"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:360
+#: ../lib/packagekit-glib2/pk-console-shared.c:395
 msgid "Downloading lists of changes"
 msgstr "બદલાવોની યાદીને લોડ કરી રહ્યા છે"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:364
+#: ../lib/packagekit-glib2/pk-console-shared.c:399
 msgid "Downloading groups"
 msgstr "જૂથો ડાઉનલોડ કરી રહ્યા છીએ"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:368
+#: ../lib/packagekit-glib2/pk-console-shared.c:403
 msgid "Downloading update information"
 msgstr "સુધારા જાણકારીને ડાઉનલોડ કરી રહ્યા છે"
 
 #. TRANSLATORS: transaction state, repackaging delta files
-#: ../lib/packagekit-glib2/pk-console-shared.c:372
+#: ../lib/packagekit-glib2/pk-console-shared.c:407
 msgid "Repackaging files"
 msgstr "ફાઇલોનું પુન:પેકેજ કરી રહ્યા છે"
 
 #. TRANSLATORS: transaction state, loading databases
-#: ../lib/packagekit-glib2/pk-console-shared.c:376
+#: ../lib/packagekit-glib2/pk-console-shared.c:411
 msgid "Loading cache"
 msgstr "કેશ ડાઉનલોડ કરી રહ્યા છીએ"
 
 #. TRANSLATORS: transaction state, scanning for running processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:380
+#: ../lib/packagekit-glib2/pk-console-shared.c:415
 msgid "Scanning applications"
 msgstr "કાર્યક્રમોનું સ્કેન કરી રહ્યા છે"
 
 #. TRANSLATORS: transaction state, generating a list of packages installed on
 #. the system
-#: ../lib/packagekit-glib2/pk-console-shared.c:384
+#: ../lib/packagekit-glib2/pk-console-shared.c:419
 msgid "Generating package lists"
 msgstr "પેકેજ યાદીઓને ઉત્પન્ન કરી રહ્યા છે"
 
 #. TRANSLATORS: transaction state, when we're waiting for the native tools to
 #. exit
-#: ../lib/packagekit-glib2/pk-console-shared.c:388
+#: ../lib/packagekit-glib2/pk-console-shared.c:423
 msgid "Waiting for package manager lock"
 msgstr "પેકેજ વ્યવસ્થાપક તાળા માટે રાહ જોઇ રહ્યા છે"
 
 #. TRANSLATORS: transaction state, waiting for user to type in a password
-#: ../lib/packagekit-glib2/pk-console-shared.c:392
+#: ../lib/packagekit-glib2/pk-console-shared.c:427
 msgid "Waiting for authentication"
 msgstr "સત્તાધિકરણ માટે રાહ જોઇ રહ્યા છે"
 
 #. TRANSLATORS: transaction state, we are updating the list of processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:396
+#: ../lib/packagekit-glib2/pk-console-shared.c:431
 msgid "Updating running applications"
 msgstr "ચાલતા કાર્યક્રમોને સુધારી રહ્યા છે"
 
 #. TRANSLATORS: transaction state, we are checking executable files currently
 #. in use
-#: ../lib/packagekit-glib2/pk-console-shared.c:400
+#: ../lib/packagekit-glib2/pk-console-shared.c:435
 msgid "Checking applications in use"
 msgstr "વપરાશમાં કાર્યક્રમોને ચકાસી રહ્યા છે"
 
 #. TRANSLATORS: transaction state, we are checking for libraries currently in
 #. use
-#: ../lib/packagekit-glib2/pk-console-shared.c:404
+#: ../lib/packagekit-glib2/pk-console-shared.c:439
 msgid "Checking libraries in use"
 msgstr "વપરાશમાં લાઇબ્રેરીઓને ચકાસી રહ્યા છે"
 
 #. TRANSLATORS: transaction state, we are copying package files before or
 #. after the transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:408
+#: ../lib/packagekit-glib2/pk-console-shared.c:443
 msgid "Copying files"
 msgstr "ફાઈલોની નકલ કરી રહ્યા છે"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:426
+#: ../lib/packagekit-glib2/pk-console-shared.c:461
 msgid "Trivial"
 msgstr "Trivial"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:430
+#: ../lib/packagekit-glib2/pk-console-shared.c:465
 msgid "Normal"
 msgstr "સામાન્ય"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:434
+#: ../lib/packagekit-glib2/pk-console-shared.c:469
 msgid "Important"
 msgstr "મહત્વનું"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:438
+#: ../lib/packagekit-glib2/pk-console-shared.c:473
 msgid "Security"
 msgstr "સુરક્ષા"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:442
+#: ../lib/packagekit-glib2/pk-console-shared.c:477
 msgid "Bug fix "
 msgstr "ભૂલ સુધારો"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:446
+#: ../lib/packagekit-glib2/pk-console-shared.c:481
 msgid "Enhancement"
 msgstr "વધારો"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:450
+#: ../lib/packagekit-glib2/pk-console-shared.c:485
 msgid "Blocked"
 msgstr "બ્લોક થયેલ"
 
 #. TRANSLATORS: The state of a package
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:455
-#: ../lib/packagekit-glib2/pk-console-shared.c:528
+#: ../lib/packagekit-glib2/pk-console-shared.c:490
+#: ../lib/packagekit-glib2/pk-console-shared.c:563
 msgid "Installed"
 msgstr "સ્થાપિત થયેલ"
 
 #. TRANSLATORS: The state of a package, i.e. not installed
-#: ../lib/packagekit-glib2/pk-console-shared.c:460
+#: ../lib/packagekit-glib2/pk-console-shared.c:495
 msgid "Available"
 msgstr "ઉપલ્બધ"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:478
+#: ../lib/packagekit-glib2/pk-console-shared.c:513
 msgid "Downloading"
 msgstr "ડાઉનલોડ કરી રહ્યા છીએ"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:482
+#: ../lib/packagekit-glib2/pk-console-shared.c:517
 msgid "Updating"
 msgstr "સુધારી રહ્યા છે"
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:486
-#: ../lib/packagekit-glib2/pk-console-shared.c:606
+#: ../lib/packagekit-glib2/pk-console-shared.c:521
+#: ../lib/packagekit-glib2/pk-console-shared.c:641
 msgid "Installing"
 msgstr "સ્થાપિત કરી રહ્યા છીએ"
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:490
-#: ../lib/packagekit-glib2/pk-console-shared.c:602
+#: ../lib/packagekit-glib2/pk-console-shared.c:525
+#: ../lib/packagekit-glib2/pk-console-shared.c:637
 msgid "Removing"
 msgstr "દૂર કરી રહ્યા છે"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:494
+#: ../lib/packagekit-glib2/pk-console-shared.c:529
 msgid "Cleaning up"
 msgstr "સાફ કરી રહ્યા છે"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:498
+#: ../lib/packagekit-glib2/pk-console-shared.c:533
 msgid "Obsoleting"
 msgstr "અપ્રચલિત કરી રહ્યા છે"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:502
+#: ../lib/packagekit-glib2/pk-console-shared.c:537
 msgid "Reinstalling"
 msgstr "પુન:સ્થાપિત કરી રહ્યા છીએ"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:520
+#: ../lib/packagekit-glib2/pk-console-shared.c:555
 msgid "Downloaded"
 msgstr "ડાઉનલોડ થયેલ"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:532
+#: ../lib/packagekit-glib2/pk-console-shared.c:567
 msgid "Removed"
 msgstr "દૂર કરેલ"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:536
+#: ../lib/packagekit-glib2/pk-console-shared.c:571
 msgid "Cleaned up"
 msgstr "સાફ કરેલ"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:540
+#: ../lib/packagekit-glib2/pk-console-shared.c:575
 msgid "Obsoleted"
 msgstr "અપ્રચલિત થયેલ"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:544
+#: ../lib/packagekit-glib2/pk-console-shared.c:579
 msgid "Reinstalled"
 msgstr "પુન:સ્થાપિત થયેલ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:562
+#: ../lib/packagekit-glib2/pk-console-shared.c:597
 msgid "Unknown role type"
 msgstr "અજ્ઞાત ભૂમિકા પ્રકાર"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:566
+#: ../lib/packagekit-glib2/pk-console-shared.c:601
 msgid "Getting dependencies"
 msgstr "આધારભૂતપણાઓને મેળવી રહ્યા છે"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:570
+#: ../lib/packagekit-glib2/pk-console-shared.c:605
 msgid "Getting update details"
 msgstr "સુધારો વિગતો મેળવી રહ્યા છે"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:574
+#: ../lib/packagekit-glib2/pk-console-shared.c:609
 msgid "Getting details"
 msgstr "વિગતો ને મેળવી રહ્યા છે"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:578
+#: ../lib/packagekit-glib2/pk-console-shared.c:613
 msgid "Getting requires"
 msgstr "જરૂરિયાતો ને મેળવી રહ્યા છે"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:582
+#: ../lib/packagekit-glib2/pk-console-shared.c:617
 msgid "Getting updates"
 msgstr "સુધારાઓને મેળવી રહ્યા છે"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:586
+#: ../lib/packagekit-glib2/pk-console-shared.c:621
 msgid "Searching by details"
 msgstr "વિગતો દ્દારા શોધી રહ્યા છે"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:590
+#: ../lib/packagekit-glib2/pk-console-shared.c:625
 msgid "Searching by file"
 msgstr "ફાઇલ દ્દારા શોધી રહ્યા છે"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:594
+#: ../lib/packagekit-glib2/pk-console-shared.c:629
 msgid "Searching groups"
 msgstr "જૂથોને શોધી રહ્યા છે"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:598
+#: ../lib/packagekit-glib2/pk-console-shared.c:633
 msgid "Searching by name"
 msgstr "નામ દ્દારા શોધી રહ્યા છે"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:610
+#: ../lib/packagekit-glib2/pk-console-shared.c:645
 msgid "Installing files"
 msgstr "ફાઇલોને સ્થાપિત કરી રહ્યા છે"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:614
+#: ../lib/packagekit-glib2/pk-console-shared.c:649
 msgid "Refreshing cache"
 msgstr "કેશ ને તાજુ કરી રહ્યા છે"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:618
+#: ../lib/packagekit-glib2/pk-console-shared.c:653
 msgid "Updating packages"
 msgstr "પેકેજોને સુધારી રહ્યા છે"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:622
+#: ../lib/packagekit-glib2/pk-console-shared.c:657
 msgid "Updating system"
 msgstr "સિસ્ટમને સુધારી રહ્યા છે"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:626
+#: ../lib/packagekit-glib2/pk-console-shared.c:661
 msgid "Canceling"
 msgstr "રદ કરી રહ્યા છે"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:634
+#: ../lib/packagekit-glib2/pk-console-shared.c:669
 msgid "Getting repositories"
 msgstr "રિપોઝીટરીઓને મેળવી રહ્યા છે"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:638
+#: ../lib/packagekit-glib2/pk-console-shared.c:673
 msgid "Enabling repository"
 msgstr "રિપોઝિટરીને સક્રિય કરી રહ્યા છે"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:642
+#: ../lib/packagekit-glib2/pk-console-shared.c:677
 msgid "Setting data"
 msgstr "માહિતીને સુયોજિત કરી રહ્યા છે"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:646
+#: ../lib/packagekit-glib2/pk-console-shared.c:681
 msgid "Resolving"
 msgstr "સુધારી રહ્યા છે"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:650
+#: ../lib/packagekit-glib2/pk-console-shared.c:685
 msgid "Getting file list"
 msgstr "ફાઇલ યાદીને મેળવી રહ્યા છે"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:654
+#: ../lib/packagekit-glib2/pk-console-shared.c:689
 msgid "Getting provides"
 msgstr "પૂરા પાડવા ને મેળવી રહ્યા છે"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:658
+#: ../lib/packagekit-glib2/pk-console-shared.c:693
 msgid "Installing signature"
 msgstr "હસ્તાક્ષરોને સ્થાપિત કરી રહ્યા છે"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:662
+#: ../lib/packagekit-glib2/pk-console-shared.c:697
 msgid "Getting packages"
 msgstr "પેકેજો ને મેળવી રહ્યા છે"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:666
+#: ../lib/packagekit-glib2/pk-console-shared.c:701
 msgid "Accepting EULA"
 msgstr "EULA ને સ્વીકારી રહ્યા છે"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:674
+#: ../lib/packagekit-glib2/pk-console-shared.c:709
 msgid "Getting upgrades"
 msgstr "સુધારોઓને મેળવી રહ્યા છે"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:678
+#: ../lib/packagekit-glib2/pk-console-shared.c:713
 msgid "Getting categories"
 msgstr "વર્ગો ને મેળવી રહ્યા છે"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:682
+#: ../lib/packagekit-glib2/pk-console-shared.c:717
 msgid "Getting transactions"
 msgstr "પરિવહનને મેળવી રહ્યા છે"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:686
-#: ../lib/packagekit-glib2/pk-console-shared.c:690
+#: ../lib/packagekit-glib2/pk-console-shared.c:721
+#: ../lib/packagekit-glib2/pk-console-shared.c:725
 msgid "Simulating install"
 msgstr "સ્થાપનનની નકલ કરી રહ્યા છે"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:694
+#: ../lib/packagekit-glib2/pk-console-shared.c:729
 msgid "Simulating remove"
 msgstr "દૂક કરવાની નકલ કરી રહ્યા છે"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:698
+#: ../lib/packagekit-glib2/pk-console-shared.c:733
 msgid "Simulating update"
 msgstr "સુધારાઓની નકલ કરી રહ્યા છે"
 
@@ -1805,13 +1803,19 @@ msgstr "નીચેનાં પેકેજોને પુન:સ્થાપ
 msgid "The following packages have to be downgraded:"
 msgstr "નીચેનાં પેકેજોને નીચે ઉતારવા જ પડશે:"
 
+#. TRANSLATORS: When processing, untrusted and non-verified packages may be
+#. encountered
+#: ../lib/packagekit-glib2/pk-task-text.c:325
+msgid "The following packages are untrusted:"
+msgstr ""
+
 #. TRANSLATORS: ask the user if the proposed changes are okay
-#: ../lib/packagekit-glib2/pk-task-text.c:380
+#: ../lib/packagekit-glib2/pk-task-text.c:385
 msgid "Proceed with changes?"
 msgstr "બદલાવો સાથે આગળ વધો?"
 
 #. TRANSLATORS: tell the user we didn't do anything
-#: ../lib/packagekit-glib2/pk-task-text.c:385
+#: ../lib/packagekit-glib2/pk-task-text.c:390
 msgid "The transaction did not proceed."
 msgstr "પરિવહનની પ્રક્રિયા કરાઇ નહિં."
 
@@ -2022,100 +2026,71 @@ msgstr "પેકેજોને સુધારો"
 msgid "Upgrade System"
 msgstr ""
 
-#. TRANSLATORS: failed due to DBus security
-#: ../src/pk-main.c:91
-msgid "Startup failed due to security policies on this machine."
-msgstr "આ મશીન પરની સુરક્ષા નીતિઓને કારણે શરૂઆત કરવામાં નિષ્ફળ."
-
-#. TRANSLATORS: only two ways this can fail...
-#: ../src/pk-main.c:93
-msgid "This can happen for two reasons:"
-msgstr "આ બે કારણોસર થઈ શકે:"
-
-#. TRANSLATORS: only allowed to be owned by root
-#: ../src/pk-main.c:95
-msgid "The correct user is not launching the executable (usually root)"
-msgstr "યોગ્ય વપરાશકર્તા એક્ઝેક્યુટેબલ લોન્ચ કરી રહ્યો નથી (સામાન્ય રીતે રુટ)"
-
-#. TRANSLATORS: or we are installed in a prefix
-#: ../src/pk-main.c:97
-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:223
+#: ../src/pk-main.c:149
 msgid "Packaging backend to use, e.g. dummy"
 msgstr "વાપરવા માટે બેકેન્ડ પેકેજ કરી રહ્યા છીએ, દા.ત. dummy"
 
 #. TRANSLATORS: if we should run in the background
-#: ../src/pk-main.c:226
+#: ../src/pk-main.c:152
 msgid "Daemonize and detach from the terminal"
 msgstr "ડિમનવાળું કરો અને ટર્મિનલમાંથી છોડો"
 
 #. TRANSLATORS: if we should not monitor how long we are inactive for
-#: ../src/pk-main.c:229
+#: ../src/pk-main.c:155
 msgid "Disable the idle timer"
 msgstr "ફાજલ સમય નિષ્ક્રિય કરો"
 
 #. TRANSLATORS: show version
-#: ../src/pk-main.c:232
+#: ../src/pk-main.c:158
 msgid "Show version and exit"
 msgstr "આવૃત્તિ બતાવો અને બહાર નીકળો"
 
 #. TRANSLATORS: exit after we've started up, used for user profiling
-#: ../src/pk-main.c:235
+#: ../src/pk-main.c:161
 msgid "Exit after a small delay"
 msgstr "નાના વિલંબ પછી બહાર નીકળો"
 
 #. TRANSLATORS: exit straight away, used for automatic profiling
-#: ../src/pk-main.c:238
+#: ../src/pk-main.c:164
 msgid "Exit after the engine has loaded"
 msgstr "એંજીન લવાઈ જાય પછી બહાર નીકળો"
 
+#. TRANSLATORS: don't unset environment variables, used for debugging
+#: ../src/pk-main.c:167
+msgid "Don't clear environment on startup"
+msgstr ""
+
 #. TRANSLATORS: describing the service that is running
-#: ../src/pk-main.c:253
+#: ../src/pk-main.c:179
 msgid "PackageKit service"
 msgstr "PackageKit સેવા"
 
-#. TRANSLATORS: fatal error, dbus is not running
-#: ../src/pk-main.c:298
-msgid "Cannot connect to the system bus"
-msgstr "સિસ્ટમ બસ સાથે જોડાઈ શકતા નથી"
-
-#: ../src/pk-main.c:344
+#: ../src/pk-main.c:253
 msgid "Failed to load any of the specified backends:"
 msgstr ""
 
-#. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error
-#. follows
-#: ../src/pk-main.c:358
-msgid "Error trying to start:"
-msgstr "શરૂ કરવાનો પ્રયાસ કરવામાં ભૂલ:"
-
 #. TRANSLATORS: is not GPG signed
-#: ../src/pk-transaction.c:2611 ../src/pk-transaction.c:2618
+#: ../src/pk-transaction.c:2696
 msgid "The software is not from a trusted source."
 msgstr "વિશ્ર્વાસપાત્ર સ્ત્રોત માંથી સોફ્ટવેર નથી."
 
-#: ../src/pk-transaction.c:2623
+#: ../src/pk-transaction.c:2704
 msgid "Do not update this package unless you are sure it is safe to do so."
 msgstr ""
 "આ પેકેજમાં સુધારો નહિં નહિં તો તમે ચોક્કસ છો કે તે કરવા માટે સલામત છે."
 
-#: ../src/pk-transaction.c:2624
+#: ../src/pk-transaction.c:2705
 msgid "Do not update these packages unless you are sure it is safe to do so."
 msgstr ""
 "આ પેકેજોમાં સુધારો કરો નહિં  નહિં તો તમે ચોક્કસ છો કે તે કરવા માટે સલામત છે."
 
-#: ../src/pk-transaction.c:2634
+#: ../src/pk-transaction.c:2715
 msgid "Do not install this package unless you are sure it is safe to do so."
 msgstr ""
 "આ પેકેજ ને સ્થાપિત કરો નહિં નહિં તો તમે ચોક્કસ છો કે તે કરવા માટે સલામત છે."
 
-#: ../src/pk-transaction.c:2635
+#: ../src/pk-transaction.c:2716
 msgid "Do not install these packages unless you are sure it is safe to do so."
 msgstr ""
 "આ પેકેજોને સ્થાપિત કરવા માટ સ્થાપિત કરો નહિં નહિં તો તમે ચોક્કસ છો કે તે "
diff --git a/po/he.po b/po/he.po
index 32f78e0..4774d42 100644
--- a/po/he.po
+++ b/po/he.po
@@ -2,15 +2,16 @@
 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
 # This file is distributed under the same license as the PACKAGE package.
 # 
-# Richard Hughes <richard at hughsie.com>, 2011
+# Translators:
+# Richard Hughes <richard at hughsie.com>, 2011.
 msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-04 10:50+0100\n"
-"PO-Revision-Date: 2011-05-04 09:56+0000\n"
-"Last-Translator: hughsie <richard at hughsie.com>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
+"POT-Creation-Date: 2011-11-10 19:50+0000\n"
+"PO-Revision-Date: 2011-11-10 19:50+0000\n"
+"Last-Translator: Richard Hughes <richard at hughsie.com>\n"
+"Language-Team: Hebrew (http://www.transifex.net/projects/p/freedesktop/team/he/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -195,7 +196,7 @@ msgstr "הונפק"
 
 #. TRANSLATORS: details about the update, date the update was updated
 #. TRANSLATORS: The action of the package, in past tense
-#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:524
+#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:559
 msgid "Updated"
 msgstr "עודכן"
 
@@ -285,7 +286,7 @@ msgstr ""
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
 #: ../client/pk-console.c:704
-#: ../contrib/command-not-found/pk-command-not-found.c:639
+#: ../contrib/command-not-found/pk-command-not-found.c:634
 msgid "The transaction failed"
 msgstr "הרצת הפעולה נכשלה"
 
@@ -337,21 +338,21 @@ msgstr ""
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:866
+#: ../client/pk-console.c:871
 #, c-format
 msgid "This tool could not find any available package: %s"
 msgstr "הכלי הזה לא הצליח למצוא אף חבילה זמינה: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:894
+#: ../client/pk-console.c:899
 #, c-format
 msgid "This tool could not find the installed package: %s"
 msgstr "הכלי הזה לא הצליח למצוא את החבילה המותקנת: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:922 ../client/pk-console.c:950
+#: ../client/pk-console.c:927 ../client/pk-console.c:955
 #, c-format
 msgid "This tool could not find the package: %s"
 msgstr "הכלי הזה לא הצליח למצוא את החבילה: %s"
@@ -364,223 +365,223 @@ msgstr "הכלי הזה לא הצליח למצוא את החבילה: %s"
 #. detailed error follows
 #. TRANSLATORS: The package name was not found in any software sources. The
 #. detailed error follows
-#: ../client/pk-console.c:978 ../client/pk-console.c:1006
-#: ../client/pk-console.c:1034 ../client/pk-console.c:1062
-#: ../client/pk-console.c:1090
+#: ../client/pk-console.c:983 ../client/pk-console.c:1011
+#: ../client/pk-console.c:1039 ../client/pk-console.c:1067
+#: ../client/pk-console.c:1095
 #, c-format
 msgid "This tool could not find all the packages: %s"
 msgstr "הכלי הזה לא הצליח למצוא את כל החבילות: %s"
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek
 #. without a paddle
-#: ../client/pk-console.c:1119
+#: ../client/pk-console.c:1124
 msgid "The daemon crashed mid-transaction!"
 msgstr "תכנית השירות (daemon) התרסקה באמצע טראנזקציה!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1153
+#: ../client/pk-console.c:1158
 msgid "PackageKit Console Interface"
 msgstr "מנשק שורת פקודה של PackageKit"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1155
+#: ../client/pk-console.c:1160
 msgid "Subcommands:"
 msgstr "תת-פקודות:"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was
 #. last executed
-#: ../client/pk-console.c:1235
+#: ../client/pk-console.c:1240
 msgid "Failed to get the time since this action was last completed"
 msgstr "נכשל בקבלת הזמן שעבר מאז שהפעולה הושלמה"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1277 ../client/pk-monitor.c:371
+#: ../client/pk-console.c:1282 ../client/pk-monitor.c:371
 msgid "Show the program version and exit"
 msgstr "הצג את גרסת התוכנה וסיים"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1280
+#: ../client/pk-console.c:1285
 msgid "Set the filter, e.g. installed"
 msgstr "קבע את המסנן, למשל, מותקנות"
 
 #. TRANSLATORS: command line argument, use a non-standard install prefix
-#: ../client/pk-console.c:1283
+#: ../client/pk-console.c:1288
 msgid "Set the install root, e.g. '/' or '/mnt/ltsp'"
 msgstr ""
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1286
+#: ../client/pk-console.c:1291
 msgid "Exit without waiting for actions to complete"
 msgstr "צא ללא המתנה לסיום הפעולות"
 
 #. command line argument, do we ask questions
-#: ../client/pk-console.c:1289
+#: ../client/pk-console.c:1294
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:525
 msgid "Install the packages without asking for confirmation"
 msgstr "התקן את החבילה הזאת מבלי לבקש אישור"
 
 #. TRANSLATORS: command line argument, this command is not a priority
-#: ../client/pk-console.c:1292
+#: ../client/pk-console.c:1297
 msgid "Run the command using idle network bandwidth and also using less power"
 msgstr "הרץ את הפקודה הזאת תוך שימוש ברוחב פס סרק וגם השתמש בפחות כוח"
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1295
+#: ../client/pk-console.c:1300
 msgid ""
 "Print to screen a machine readable output, rather than using animated "
 "widgets"
 msgstr "הדפס למסך פלט לקריאה ע\"י מכונה במקום ווידג'טים מונפשים"
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1298
+#: ../client/pk-console.c:1303
 msgid "The maximum metadata cache age. Use -1 for 'never'."
 msgstr ""
 
 #. TRANSLATORS: command line argument, --help
-#: ../client/pk-console.c:1301
+#: ../client/pk-console.c:1306
 msgid "Show help options."
 msgstr ""
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1331
+#: ../client/pk-console.c:1336
 msgid "Failed to parse command line"
 msgstr ""
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1341
+#: ../client/pk-console.c:1346
 msgid "Failed to contact PackageKit"
 msgstr "נכשל ביצירת קשר עם שירות הרקע של Packagekit"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1394
+#: ../client/pk-console.c:1399
 msgid "The proxy could not be set"
 msgstr ""
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1406
+#: ../client/pk-console.c:1411
 msgid "The install root could not be set"
 msgstr ""
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1418
+#: ../client/pk-console.c:1423
 msgid "The filter specified was invalid"
 msgstr "מסנן החיפוש לא תקין"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1437
+#: ../client/pk-console.c:1442
 msgid "A search type is required, e.g. name"
 msgstr "סוג חיפוש דרוש, למשל name"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1444 ../client/pk-console.c:1456
-#: ../client/pk-console.c:1468 ../client/pk-console.c:1480
+#: ../client/pk-console.c:1449 ../client/pk-console.c:1461
+#: ../client/pk-console.c:1473 ../client/pk-console.c:1485
 msgid "A search term is required"
 msgstr "נדרשת מחרוזת לחיפוש"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1490
+#: ../client/pk-console.c:1495
 msgid "Invalid search type"
 msgstr "סוג חיפוש לא תקין"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1496
+#: ../client/pk-console.c:1501
 msgid "A package name to install is required"
 msgstr "שם חבילה להתקנה נדרש"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1505
+#: ../client/pk-console.c:1510
 msgid "A filename to install is required"
 msgstr "שם קובץ להתקנה נדרש"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1516
+#: ../client/pk-console.c:1521
 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:1527
+#: ../client/pk-console.c:1532
 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:1536
+#: ../client/pk-console.c:1541
 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:1543
+#: ../client/pk-console.c:1548
 msgid "Directory not found"
 msgstr "תיקייה לא נמצאה"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1552
+#: ../client/pk-console.c:1557
 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:1563
+#: ../client/pk-console.c:1568
 msgid "A transaction identifier (tid) is required"
 msgstr "מזהה פעולה (tid) נדרש"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:1584
+#: ../client/pk-console.c:1589
 msgid "A package name to resolve is required"
 msgstr "שם חבילה להצגת התלויות שלה"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:1595 ../client/pk-console.c:1606
+#: ../client/pk-console.c:1600 ../client/pk-console.c:1611
 msgid "A repository name is required"
 msgstr "נדרש שם מאגר"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:1617
+#: ../client/pk-console.c:1622
 msgid "A repo name, parameter and value are required"
 msgstr "יש לציין שם מאגר תכנה או פרמטר וערך"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:1634
+#: ../client/pk-console.c:1639
 msgid "An action, e.g. 'update-system' is required"
 msgstr "יש לציין את הפעולה, למשל 'update-system'"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:1641
+#: ../client/pk-console.c:1646
 msgid "A correct role is required"
 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:1651 ../client/pk-console.c:1665
-#: ../client/pk-console.c:1674 ../client/pk-console.c:1694
-#: ../client/pk-console.c:1703 ../client/pk-generate-pack.c:314
+#: ../client/pk-console.c:1656 ../client/pk-console.c:1670
+#: ../client/pk-console.c:1679 ../client/pk-console.c:1699
+#: ../client/pk-console.c:1708 ../client/pk-generate-pack.c:314
 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:1683
+#: ../client/pk-console.c:1688
 msgid "A package provide string is required"
 msgstr "מחרוזת 'מספק את' של חבילה נדרשת"
 
 #. TRANSLATORS: The user did not provide a distro name
-#: ../client/pk-console.c:1727
+#: ../client/pk-console.c:1732
 msgid "A distribution name is required"
 msgstr ""
 
 #. TRANSLATORS: The user did not provide an upgrade type
-#: ../client/pk-console.c:1733
+#: ../client/pk-console.c:1738
 msgid "An upgrade type is required, e.g. 'minimal', 'default' or 'complete'"
 msgstr ""
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command
 #. line
-#: ../client/pk-console.c:1783
+#: ../client/pk-console.c:1788
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "אפשרות '%s' לא נתמכת"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:1793
+#: ../client/pk-console.c:1798
 msgid "Command failed"
 msgstr "פעולה נכשלה"
 
@@ -716,159 +717,154 @@ msgid "PackageKit Monitor"
 msgstr "מוניטור PackageKit"
 
 #. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/pk-plugin-install.c:499
+#: ../contrib/browser-plugin/pk-plugin-install.c:503
 msgid "Getting package information..."
 msgstr "קורא מידע אודות החבילה..."
 
 #. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/pk-plugin-install.c:505
+#: ../contrib/browser-plugin/pk-plugin-install.c:509
 #, c-format
 msgid "Run %s"
 msgstr "מפעיל %s"
 
 #. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:511
+#: ../contrib/browser-plugin/pk-plugin-install.c:515
 msgid "Installed version"
 msgstr "גרסה מותקנת"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:519
+#: ../contrib/browser-plugin/pk-plugin-install.c:523
 #, c-format
 msgid "Run version %s now"
 msgstr "הפעל גרסה %s כעת"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:525
+#: ../contrib/browser-plugin/pk-plugin-install.c:529
 msgid "Run now"
 msgstr "הפעל כעת"
 
 #. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:531
+#: ../contrib/browser-plugin/pk-plugin-install.c:535
 #, c-format
 msgid "Update to version %s"
 msgstr "עדכן לגרסה %s"
 
 #. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:537
+#: ../contrib/browser-plugin/pk-plugin-install.c:541
 #, c-format
 msgid "Install %s now"
 msgstr "התקן %s כעת"
 
 #. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:540
+#: ../contrib/browser-plugin/pk-plugin-install.c:544
 msgid "Version"
 msgstr "גרסה"
 
 #. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/pk-plugin-install.c:545
+#: ../contrib/browser-plugin/pk-plugin-install.c:549
 msgid "No packages found for your system"
 msgstr "לא נמצאו חבילות עבור המערכת שלך"
 
 #. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/pk-plugin-install.c:550
+#: ../contrib/browser-plugin/pk-plugin-install.c:554
 msgid "Installing..."
 msgstr "מתקין..."
 
 #. TRANSLATORS: downloading repo data so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:366
+#: ../contrib/command-not-found/pk-command-not-found.c:363
 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:370
+#: ../contrib/command-not-found/pk-command-not-found.c:367
 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:374
+#: ../contrib/command-not-found/pk-command-not-found.c:371
 msgid "Waiting for package manager lock."
 msgstr "ממתין לנעילה על מנוע ניהול החבילות"
 
 #. TRANSLATORS: loading package cache so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:378
+#: ../contrib/command-not-found/pk-command-not-found.c:375
 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:444
+#: ../contrib/command-not-found/pk-command-not-found.c:439
 msgid "Failed to search for file"
 msgstr "נכשל בחיפוש קובץ"
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
-#: ../contrib/command-not-found/pk-command-not-found.c:456
+#: ../contrib/command-not-found/pk-command-not-found.c:451
 msgid "Getting the list of files failed"
 msgstr ""
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:602
+#: ../contrib/command-not-found/pk-command-not-found.c:597
 msgid "Failed to launch:"
 msgstr "לא ניתן להפעיל: %s"
 
 #. TRANSLATORS: we failed to install the package
-#: ../contrib/command-not-found/pk-command-not-found.c:630
+#: ../contrib/command-not-found/pk-command-not-found.c:625
 msgid "Failed to install packages"
 msgstr "כישלון בהתקנת החבילות: %s"
 
-#. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/command-not-found/pk-command-not-found.c:706
-msgid "PackageKit Command Not Found"
-msgstr "כלי פקודה לא נמצאה של PackageKit"
-
 #. TRANSLATORS: the prefix of all the output telling the user
 #. * why it's not executing. NOTE: this is lowercase to mimic
 #. * the style of bash itself -- apologies
-#: ../contrib/command-not-found/pk-command-not-found.c:741
+#: ../contrib/command-not-found/pk-command-not-found.c:723
 msgid "command not found"
 msgstr ""
 
 #. TRANSLATORS: tell the user what we think the command is
-#: ../contrib/command-not-found/pk-command-not-found.c:759
+#: ../contrib/command-not-found/pk-command-not-found.c:741
 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:773
+#: ../contrib/command-not-found/pk-command-not-found.c:755
 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:787
-#: ../contrib/command-not-found/pk-command-not-found.c:796
+#: ../contrib/command-not-found/pk-command-not-found.c:769
+#: ../contrib/command-not-found/pk-command-not-found.c:778
 msgid "Similar commands are:"
 msgstr "פקודות דומות:"
 
 #. TRANSLATORS: ask the user to choose a file to run
-#: ../contrib/command-not-found/pk-command-not-found.c:803
+#: ../contrib/command-not-found/pk-command-not-found.c:785
 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:821
+#: ../contrib/command-not-found/pk-command-not-found.c:803
 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:828
+#: ../contrib/command-not-found/pk-command-not-found.c:810
 #, 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:855
+#: ../contrib/command-not-found/pk-command-not-found.c:837
 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:865
+#: ../contrib/command-not-found/pk-command-not-found.c:847
 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:874
+#: ../contrib/command-not-found/pk-command-not-found.c:856
 msgid "Please choose a package to install"
 msgstr "אנא בחר חבילה להתקנה"
 
@@ -1042,7 +1038,7 @@ msgstr "לא מתקין חבילות במצב הדמייה"
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
 #. TRANSLATORS: transaction state, installing packages
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:860
-#: ../lib/packagekit-glib2/pk-console-shared.c:296
+#: ../lib/packagekit-glib2/pk-console-shared.c:331
 #, c-format
 msgid "Installing packages"
 msgstr "מתקין חבילות"
@@ -1176,474 +1172,474 @@ msgstr "רשימת חבילות PackageKit"
 msgid "PackageKit Service Pack"
 msgstr "חבילת שירות PackageKit"
 
-#: ../lib/packagekit-glib2/pk-console-shared.c:64
+#: ../lib/packagekit-glib2/pk-console-shared.c:65
 #, c-format
 msgid "Please enter a number from 1 to %i: "
 msgstr "נא להזין מספר בין 1 ל-%i: "
 
 #. TRANSLATORS: more than one package could be found that matched, to follow
 #. is a list of possible packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:198
+#: ../lib/packagekit-glib2/pk-console-shared.c:233
 msgid "More than one package matches:"
 msgstr "יש יותר מחבילה מתאימה אחת:"
 
 #. TRANSLATORS: This finds out which package in the list to use
-#: ../lib/packagekit-glib2/pk-console-shared.c:209
+#: ../lib/packagekit-glib2/pk-console-shared.c:244
 msgid "Please choose the correct package: "
 msgstr "נא לבחור את החבילה הנכונה: "
 
 #. TRANSLATORS: This is when the transaction status is not known
-#: ../lib/packagekit-glib2/pk-console-shared.c:264
+#: ../lib/packagekit-glib2/pk-console-shared.c:299
 msgid "Unknown state"
 msgstr "מצב לא ידוע"
 
 #. TRANSLATORS: transaction state, the daemon is in the process of starting
-#: ../lib/packagekit-glib2/pk-console-shared.c:268
+#: ../lib/packagekit-glib2/pk-console-shared.c:303
 msgid "Starting"
 msgstr "מתחיל"
 
 #. TRANSLATORS: transaction state, the transaction is waiting for another to
 #. complete
-#: ../lib/packagekit-glib2/pk-console-shared.c:272
+#: ../lib/packagekit-glib2/pk-console-shared.c:307
 msgid "Waiting in queue"
 msgstr "ממתין בתור"
 
 #. TRANSLATORS: transaction state, just started
-#: ../lib/packagekit-glib2/pk-console-shared.c:276
+#: ../lib/packagekit-glib2/pk-console-shared.c:311
 msgid "Running"
 msgstr "פועל"
 
 #. TRANSLATORS: transaction state, is querying data
-#: ../lib/packagekit-glib2/pk-console-shared.c:280
+#: ../lib/packagekit-glib2/pk-console-shared.c:315
 msgid "Querying"
 msgstr "מעיין בנתונים"
 
 #. TRANSLATORS: transaction state, getting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:284
+#: ../lib/packagekit-glib2/pk-console-shared.c:319
 msgid "Getting information"
 msgstr "מקבל נתונים"
 
 #. TRANSLATORS: transaction state, removing packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:288
+#: ../lib/packagekit-glib2/pk-console-shared.c:323
 msgid "Removing packages"
 msgstr "מסיר חבילות"
 
 #. TRANSLATORS: transaction state, downloading package files
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:292
-#: ../lib/packagekit-glib2/pk-console-shared.c:670
+#: ../lib/packagekit-glib2/pk-console-shared.c:327
+#: ../lib/packagekit-glib2/pk-console-shared.c:705
 msgid "Downloading packages"
 msgstr "מוריד חבילות"
 
 #. TRANSLATORS: transaction state, refreshing internal lists
-#: ../lib/packagekit-glib2/pk-console-shared.c:300
+#: ../lib/packagekit-glib2/pk-console-shared.c:335
 msgid "Refreshing software list"
 msgstr "מרענן רשימות חבילות"
 
 #. TRANSLATORS: transaction state, installing updates
-#: ../lib/packagekit-glib2/pk-console-shared.c:304
+#: ../lib/packagekit-glib2/pk-console-shared.c:339
 msgid "Installing updates"
 msgstr "מתקין עדכונים"
 
 #. TRANSLATORS: transaction state, removing old packages, and cleaning config
 #. files
-#: ../lib/packagekit-glib2/pk-console-shared.c:308
+#: ../lib/packagekit-glib2/pk-console-shared.c:343
 msgid "Cleaning up packages"
 msgstr "מנקה חבילות"
 
 #. TRANSLATORS: transaction state, obsoleting old packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:312
+#: ../lib/packagekit-glib2/pk-console-shared.c:347
 msgid "Obsoleting packages"
 msgstr "מיישן חבילות"
 
 #. TRANSLATORS: transaction state, checking the transaction before we do it
-#: ../lib/packagekit-glib2/pk-console-shared.c:316
+#: ../lib/packagekit-glib2/pk-console-shared.c:351
 msgid "Resolving dependencies"
 msgstr "מטפל בתלויות"
 
 #. TRANSLATORS: transaction state, checking if we have all the security keys
 #. for the operation
-#: ../lib/packagekit-glib2/pk-console-shared.c:320
+#: ../lib/packagekit-glib2/pk-console-shared.c:355
 msgid "Checking signatures"
 msgstr "בודק חתימות"
 
 #. TRANSLATORS: transaction state, when we return to a previous system state
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:324
-#: ../lib/packagekit-glib2/pk-console-shared.c:630
+#: ../lib/packagekit-glib2/pk-console-shared.c:359
+#: ../lib/packagekit-glib2/pk-console-shared.c:665
 msgid "Rolling back"
 msgstr "מחזיר אחורה"
 
 #. TRANSLATORS: transaction state, when we're doing a test transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:328
+#: ../lib/packagekit-glib2/pk-console-shared.c:363
 msgid "Testing changes"
 msgstr "בודק שינויים"
 
 #. TRANSLATORS: transaction state, when we're writing to the system package
 #. database
-#: ../lib/packagekit-glib2/pk-console-shared.c:332
+#: ../lib/packagekit-glib2/pk-console-shared.c:367
 msgid "Committing changes"
 msgstr "מבצע שינויים"
 
 #. TRANSLATORS: transaction state, requesting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:336
+#: ../lib/packagekit-glib2/pk-console-shared.c:371
 msgid "Requesting data"
 msgstr "מבקש נתונים"
 
 #. TRANSLATORS: transaction state, all done!
-#: ../lib/packagekit-glib2/pk-console-shared.c:340
+#: ../lib/packagekit-glib2/pk-console-shared.c:375
 msgid "Finished"
 msgstr "הסתיים"
 
 #. TRANSLATORS: transaction state, in the process of cancelling
-#: ../lib/packagekit-glib2/pk-console-shared.c:344
+#: ../lib/packagekit-glib2/pk-console-shared.c:379
 msgid "Cancelling"
 msgstr "מבטל"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:348
+#: ../lib/packagekit-glib2/pk-console-shared.c:383
 msgid "Downloading repository information"
 msgstr "מוריד נתוני מאגר"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:352
+#: ../lib/packagekit-glib2/pk-console-shared.c:387
 msgid "Downloading list of packages"
 msgstr "מוריד רשימת חבילות"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:356
+#: ../lib/packagekit-glib2/pk-console-shared.c:391
 msgid "Downloading file lists"
 msgstr "מוריד רשימות קבצים"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:360
+#: ../lib/packagekit-glib2/pk-console-shared.c:395
 msgid "Downloading lists of changes"
 msgstr "מוריד רשימת שינויים"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:364
+#: ../lib/packagekit-glib2/pk-console-shared.c:399
 msgid "Downloading groups"
 msgstr "מוריד קבוצות"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:368
+#: ../lib/packagekit-glib2/pk-console-shared.c:403
 msgid "Downloading update information"
 msgstr "מוריד מידע עדכון"
 
 #. TRANSLATORS: transaction state, repackaging delta files
-#: ../lib/packagekit-glib2/pk-console-shared.c:372
+#: ../lib/packagekit-glib2/pk-console-shared.c:407
 msgid "Repackaging files"
 msgstr "אורז קבצים מחדש"
 
 #. TRANSLATORS: transaction state, loading databases
-#: ../lib/packagekit-glib2/pk-console-shared.c:376
+#: ../lib/packagekit-glib2/pk-console-shared.c:411
 msgid "Loading cache"
 msgstr "טוען מטמון"
 
 #. TRANSLATORS: transaction state, scanning for running processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:380
+#: ../lib/packagekit-glib2/pk-console-shared.c:415
 msgid "Scanning applications"
 msgstr "סורק יישומים מותקנים"
 
 #. TRANSLATORS: transaction state, generating a list of packages installed on
 #. the system
-#: ../lib/packagekit-glib2/pk-console-shared.c:384
+#: ../lib/packagekit-glib2/pk-console-shared.c:419
 msgid "Generating package lists"
 msgstr "מייצר רשימת חבילות"
 
 #. TRANSLATORS: transaction state, when we're waiting for the native tools to
 #. exit
-#: ../lib/packagekit-glib2/pk-console-shared.c:388
+#: ../lib/packagekit-glib2/pk-console-shared.c:423
 msgid "Waiting for package manager lock"
 msgstr "ממנית לנעילה על מנוע ניהול החבילות"
 
 #. TRANSLATORS: transaction state, waiting for user to type in a password
-#: ../lib/packagekit-glib2/pk-console-shared.c:392
+#: ../lib/packagekit-glib2/pk-console-shared.c:427
 msgid "Waiting for authentication"
 msgstr "ממתין לאימות"
 
 #. TRANSLATORS: transaction state, we are updating the list of processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:396
+#: ../lib/packagekit-glib2/pk-console-shared.c:431
 msgid "Updating running applications"
 msgstr "מעדכן את רשימת היישומים הפעילים"
 
 #. TRANSLATORS: transaction state, we are checking executable files currently
 #. in use
-#: ../lib/packagekit-glib2/pk-console-shared.c:400
+#: ../lib/packagekit-glib2/pk-console-shared.c:435
 msgid "Checking applications in use"
 msgstr "בודק אחר יישומים שכרגע בשימוש"
 
 #. TRANSLATORS: transaction state, we are checking for libraries currently in
 #. use
-#: ../lib/packagekit-glib2/pk-console-shared.c:404
+#: ../lib/packagekit-glib2/pk-console-shared.c:439
 msgid "Checking libraries in use"
 msgstr "בודק אחר ספריות תוכנה שכרגע בשימוש"
 
 #. TRANSLATORS: transaction state, we are copying package files before or
 #. after the transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:408
+#: ../lib/packagekit-glib2/pk-console-shared.c:443
 msgid "Copying files"
 msgstr "מעתיק קבצים"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:426
+#: ../lib/packagekit-glib2/pk-console-shared.c:461
 msgid "Trivial"
 msgstr "עדכון שטחי"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:430
+#: ../lib/packagekit-glib2/pk-console-shared.c:465
 msgid "Normal"
 msgstr "רגיל"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:434
+#: ../lib/packagekit-glib2/pk-console-shared.c:469
 msgid "Important"
 msgstr "חשוב"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:438
+#: ../lib/packagekit-glib2/pk-console-shared.c:473
 msgid "Security"
 msgstr "אבטחה"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:442
+#: ../lib/packagekit-glib2/pk-console-shared.c:477
 msgid "Bug fix "
 msgstr "תיקון באג"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:446
+#: ../lib/packagekit-glib2/pk-console-shared.c:481
 msgid "Enhancement"
 msgstr "שיפור"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:450
+#: ../lib/packagekit-glib2/pk-console-shared.c:485
 msgid "Blocked"
 msgstr "חסום"
 
 #. TRANSLATORS: The state of a package
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:455
-#: ../lib/packagekit-glib2/pk-console-shared.c:528
+#: ../lib/packagekit-glib2/pk-console-shared.c:490
+#: ../lib/packagekit-glib2/pk-console-shared.c:563
 msgid "Installed"
 msgstr "הותקן"
 
 #. TRANSLATORS: The state of a package, i.e. not installed
-#: ../lib/packagekit-glib2/pk-console-shared.c:460
+#: ../lib/packagekit-glib2/pk-console-shared.c:495
 msgid "Available"
 msgstr "זמין"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:478
+#: ../lib/packagekit-glib2/pk-console-shared.c:513
 msgid "Downloading"
 msgstr "מוריד מהאינטרנט"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:482
+#: ../lib/packagekit-glib2/pk-console-shared.c:517
 msgid "Updating"
 msgstr "מעדכן"
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:486
-#: ../lib/packagekit-glib2/pk-console-shared.c:606
+#: ../lib/packagekit-glib2/pk-console-shared.c:521
+#: ../lib/packagekit-glib2/pk-console-shared.c:641
 msgid "Installing"
 msgstr "מתקין"
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:490
-#: ../lib/packagekit-glib2/pk-console-shared.c:602
+#: ../lib/packagekit-glib2/pk-console-shared.c:525
+#: ../lib/packagekit-glib2/pk-console-shared.c:637
 msgid "Removing"
 msgstr "מסיר"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:494
+#: ../lib/packagekit-glib2/pk-console-shared.c:529
 msgid "Cleaning up"
 msgstr "מנקה"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:498
+#: ../lib/packagekit-glib2/pk-console-shared.c:533
 msgid "Obsoleting"
 msgstr "מיישן"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:502
+#: ../lib/packagekit-glib2/pk-console-shared.c:537
 msgid "Reinstalling"
 msgstr "מתקין מחדש"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:520
+#: ../lib/packagekit-glib2/pk-console-shared.c:555
 msgid "Downloaded"
 msgstr "ירד"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:532
+#: ../lib/packagekit-glib2/pk-console-shared.c:567
 msgid "Removed"
 msgstr "הוסר"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:536
+#: ../lib/packagekit-glib2/pk-console-shared.c:571
 msgid "Cleaned up"
 msgstr "נוקה"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:540
+#: ../lib/packagekit-glib2/pk-console-shared.c:575
 msgid "Obsoleted"
 msgstr "יושן"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:544
+#: ../lib/packagekit-glib2/pk-console-shared.c:579
 msgid "Reinstalled"
 msgstr "הותקן מחדש"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:562
+#: ../lib/packagekit-glib2/pk-console-shared.c:597
 msgid "Unknown role type"
 msgstr "סוג תפקיד לא ידוע"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:566
+#: ../lib/packagekit-glib2/pk-console-shared.c:601
 msgid "Getting dependencies"
 msgstr "מקבל תלויות"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:570
+#: ../lib/packagekit-glib2/pk-console-shared.c:605
 msgid "Getting update details"
 msgstr "מקבל פרטי עדכון"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:574
+#: ../lib/packagekit-glib2/pk-console-shared.c:609
 msgid "Getting details"
 msgstr "מקבל פרטים"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:578
+#: ../lib/packagekit-glib2/pk-console-shared.c:613
 msgid "Getting requires"
 msgstr "מקבל דרישות"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:582
+#: ../lib/packagekit-glib2/pk-console-shared.c:617
 msgid "Getting updates"
 msgstr "מקבל עדכונים"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:586
+#: ../lib/packagekit-glib2/pk-console-shared.c:621
 msgid "Searching by details"
 msgstr "מחפש לפי פרטים"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:590
+#: ../lib/packagekit-glib2/pk-console-shared.c:625
 msgid "Searching by file"
 msgstr "מחפש לפי קובץ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:594
+#: ../lib/packagekit-glib2/pk-console-shared.c:629
 msgid "Searching groups"
 msgstr "מחפש קבוצות"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:598
+#: ../lib/packagekit-glib2/pk-console-shared.c:633
 msgid "Searching by name"
 msgstr "מחפש לפי שם"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:610
+#: ../lib/packagekit-glib2/pk-console-shared.c:645
 msgid "Installing files"
 msgstr "מתקין קבצים"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:614
+#: ../lib/packagekit-glib2/pk-console-shared.c:649
 msgid "Refreshing cache"
 msgstr "מרענן מטמון"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:618
+#: ../lib/packagekit-glib2/pk-console-shared.c:653
 msgid "Updating packages"
 msgstr "מעדכן חבילות"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:622
+#: ../lib/packagekit-glib2/pk-console-shared.c:657
 msgid "Updating system"
 msgstr "מעדכן מערכת"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:626
+#: ../lib/packagekit-glib2/pk-console-shared.c:661
 msgid "Canceling"
 msgstr "מבטל"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:634
+#: ../lib/packagekit-glib2/pk-console-shared.c:669
 msgid "Getting repositories"
 msgstr "מקבל מאגרים"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:638
+#: ../lib/packagekit-glib2/pk-console-shared.c:673
 msgid "Enabling repository"
 msgstr "מאפשר מאגר"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:642
+#: ../lib/packagekit-glib2/pk-console-shared.c:677
 msgid "Setting data"
 msgstr "מגדיר מידע"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:646
+#: ../lib/packagekit-glib2/pk-console-shared.c:681
 msgid "Resolving"
 msgstr "פותר"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:650
+#: ../lib/packagekit-glib2/pk-console-shared.c:685
 msgid "Getting file list"
 msgstr "מקבל רשימת קבצים"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:654
+#: ../lib/packagekit-glib2/pk-console-shared.c:689
 msgid "Getting provides"
 msgstr "מקבל 'מה מספק'"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:658
+#: ../lib/packagekit-glib2/pk-console-shared.c:693
 msgid "Installing signature"
 msgstr "מתקין חתימה"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:662
+#: ../lib/packagekit-glib2/pk-console-shared.c:697
 msgid "Getting packages"
 msgstr "מקבל חבילות"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:666
+#: ../lib/packagekit-glib2/pk-console-shared.c:701
 msgid "Accepting EULA"
 msgstr "מאשר רשיון משתמש הקצה (EULA)"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:674
+#: ../lib/packagekit-glib2/pk-console-shared.c:709
 msgid "Getting upgrades"
 msgstr "מקבל שדרוגים"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:678
+#: ../lib/packagekit-glib2/pk-console-shared.c:713
 msgid "Getting categories"
 msgstr "מקבל קטגוריות"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:682
+#: ../lib/packagekit-glib2/pk-console-shared.c:717
 msgid "Getting transactions"
 msgstr "מקבל פעולות ישנות"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:686
-#: ../lib/packagekit-glib2/pk-console-shared.c:690
+#: ../lib/packagekit-glib2/pk-console-shared.c:721
+#: ../lib/packagekit-glib2/pk-console-shared.c:725
 msgid "Simulating install"
 msgstr "מדמה התקנה"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:694
+#: ../lib/packagekit-glib2/pk-console-shared.c:729
 msgid "Simulating remove"
 msgstr "מדמה הסרה"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:698
+#: ../lib/packagekit-glib2/pk-console-shared.c:733
 msgid "Simulating update"
 msgstr "מדמה עדכון"
 
@@ -1793,13 +1789,19 @@ msgstr "יש להתקיןו מחדש את החבילות הבאות:"
 msgid "The following packages have to be downgraded:"
 msgstr "יש לשנמך (לשדרג לאחור) את החבילות הבאות:"
 
+#. TRANSLATORS: When processing, untrusted and non-verified packages may be
+#. encountered
+#: ../lib/packagekit-glib2/pk-task-text.c:325
+msgid "The following packages are untrusted:"
+msgstr ""
+
 #. TRANSLATORS: ask the user if the proposed changes are okay
-#: ../lib/packagekit-glib2/pk-task-text.c:380
+#: ../lib/packagekit-glib2/pk-task-text.c:385
 msgid "Proceed with changes?"
 msgstr "להמשיך עם השינויים?"
 
 #. TRANSLATORS: tell the user we didn't do anything
-#: ../lib/packagekit-glib2/pk-task-text.c:385
+#: ../lib/packagekit-glib2/pk-task-text.c:390
 msgid "The transaction did not proceed."
 msgstr "הפעולה לא המשיכה."
 
@@ -2003,96 +2005,68 @@ msgstr "עדכן חבילות"
 msgid "Upgrade System"
 msgstr ""
 
-#. TRANSLATORS: failed due to DBus security
-#: ../src/pk-main.c:91
-msgid "Startup failed due to security policies on this machine."
-msgstr "הפעלה נכשלה עקב מדיניות אבטחה במחשב זה."
-
-#. TRANSLATORS: only two ways this can fail...
-#: ../src/pk-main.c:93
-msgid "This can happen for two reasons:"
-msgstr "זה עלול לקרות כתוצאה מאחת משתי סיבות:"
-
-#. TRANSLATORS: only allowed to be owned by root
-#: ../src/pk-main.c:95
-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:97
-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:223
+#: ../src/pk-main.c:149
 msgid "Packaging backend to use, e.g. dummy"
 msgstr "מערכת ניהול חבילות נבחרת, למשל dummy"
 
 #. TRANSLATORS: if we should run in the background
-#: ../src/pk-main.c:226
+#: ../src/pk-main.c:152
 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:229
+#: ../src/pk-main.c:155
 msgid "Disable the idle timer"
 msgstr "כבה את מד הזמן לחוסר פעילות"
 
 #. TRANSLATORS: show version
-#: ../src/pk-main.c:232
+#: ../src/pk-main.c:158
 msgid "Show version and exit"
 msgstr "הצג גרסה וסיים"
 
 #. TRANSLATORS: exit after we've started up, used for user profiling
-#: ../src/pk-main.c:235
+#: ../src/pk-main.c:161
 msgid "Exit after a small delay"
 msgstr "צא אחרי המתנה קצרה"
 
 #. TRANSLATORS: exit straight away, used for automatic profiling
-#: ../src/pk-main.c:238
+#: ../src/pk-main.c:164
 msgid "Exit after the engine has loaded"
 msgstr "צא אחרי שהמנוע נטען"
 
+#. TRANSLATORS: don't unset environment variables, used for debugging
+#: ../src/pk-main.c:167
+msgid "Don't clear environment on startup"
+msgstr ""
+
 #. TRANSLATORS: describing the service that is running
-#: ../src/pk-main.c:253
+#: ../src/pk-main.c:179
 msgid "PackageKit service"
 msgstr "שירות PackageKit"
 
-#. TRANSLATORS: fatal error, dbus is not running
-#: ../src/pk-main.c:298
-msgid "Cannot connect to the system bus"
-msgstr "לא יכול להתחבר ל-system bus"
-
-#: ../src/pk-main.c:344
+#: ../src/pk-main.c:253
 msgid "Failed to load any of the specified backends:"
 msgstr ""
 
-#. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error
-#. follows
-#: ../src/pk-main.c:358
-msgid "Error trying to start:"
-msgstr "כישלון בהפעלת:"
-
 #. TRANSLATORS: is not GPG signed
-#: ../src/pk-transaction.c:2611 ../src/pk-transaction.c:2618
+#: ../src/pk-transaction.c:2696
 msgid "The software is not from a trusted source."
 msgstr "התוכנה הזאת לא הגיעה ממקור מהימן"
 
-#: ../src/pk-transaction.c:2623
+#: ../src/pk-transaction.c:2704
 msgid "Do not update this package unless you are sure it is safe to do so."
 msgstr "אל תעדכן את החבילה הזאת אלא אם אתה בטוח שזה בטוח לעשות זאת"
 
-#: ../src/pk-transaction.c:2624
+#: ../src/pk-transaction.c:2705
 msgid "Do not update these packages unless you are sure it is safe to do so."
 msgstr "אל תעדכן את החבילות האלו אלא אם אתה בטוח שזה בטוח לעשות זאת"
 
-#: ../src/pk-transaction.c:2634
+#: ../src/pk-transaction.c:2715
 msgid "Do not install this package unless you are sure it is safe to do so."
 msgstr "אל תתתקין את החבילה הזאת אלא אם אתה בטוח שזה בטוח לעשות זאת"
 
-#: ../src/pk-transaction.c:2635
+#: ../src/pk-transaction.c:2716
 msgid "Do not install these packages unless you are sure it is safe to do so."
 msgstr "אל תתתקין את החבילות הזאת האלו אלא אם אתה בטוח שזה בטוח לעשות זאת"
 
diff --git a/po/hi.po b/po/hi.po
index 5dcf463..32ee7ff 100644
--- a/po/hi.po
+++ b/po/hi.po
@@ -2,14 +2,16 @@
 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
 # This file is distributed under the same license as the PACKAGE package.
 # 
-# Richard Hughes <richard at hughsie.com>, 2011
+# Translators:
+# Rajesh Ranjan <rajesh672 at gmail.com>, 2009.
+# Richard Hughes <richard at hughsie.com>, 2011.
 msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-04 10:50+0100\n"
-"PO-Revision-Date: 2011-05-04 09:56+0000\n"
-"Last-Translator: hughsie <richard at hughsie.com>\n"
+"POT-Creation-Date: 2011-11-10 19:50+0000\n"
+"PO-Revision-Date: 2011-11-10 19:50+0000\n"
+"Last-Translator: Richard Hughes <richard at hughsie.com>\n"
 "Language-Team: Hindi (http://www.transifex.net/projects/p/freedesktop/team/hi/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -195,7 +197,7 @@ msgstr "निर्गत"
 
 #. TRANSLATORS: details about the update, date the update was updated
 #. TRANSLATORS: The action of the package, in past tense
-#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:524
+#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:559
 msgid "Updated"
 msgstr "अद्यतन किया गया"
 
@@ -285,7 +287,7 @@ msgstr ""
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
 #: ../client/pk-console.c:704
-#: ../contrib/command-not-found/pk-command-not-found.c:639
+#: ../contrib/command-not-found/pk-command-not-found.c:634
 msgid "The transaction failed"
 msgstr "लेनदेन विफल"
 
@@ -337,21 +339,21 @@ msgstr ""
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:866
+#: ../client/pk-console.c:871
 #, c-format
 msgid "This tool could not find any available package: %s"
 msgstr "यह औजार किसी उपलब्ध संकुल को नहीं ढूँढ़ सका: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:894
+#: ../client/pk-console.c:899
 #, c-format
 msgid "This tool could not find the installed package: %s"
 msgstr "यह औजार संस्थापित संकुल को नहीं ढूँढ सका: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:922 ../client/pk-console.c:950
+#: ../client/pk-console.c:927 ../client/pk-console.c:955
 #, c-format
 msgid "This tool could not find the package: %s"
 msgstr "यह औजार संकुल को नहीं ढूँढ़ सका: %s"
@@ -364,68 +366,68 @@ msgstr "यह औजार संकुल को नहीं ढूँढ़
 #. detailed error follows
 #. TRANSLATORS: The package name was not found in any software sources. The
 #. detailed error follows
-#: ../client/pk-console.c:978 ../client/pk-console.c:1006
-#: ../client/pk-console.c:1034 ../client/pk-console.c:1062
-#: ../client/pk-console.c:1090
+#: ../client/pk-console.c:983 ../client/pk-console.c:1011
+#: ../client/pk-console.c:1039 ../client/pk-console.c:1067
+#: ../client/pk-console.c:1095
 #, c-format
 msgid "This tool could not find all the packages: %s"
 msgstr "यह औजार संकुल को नहीं ढ़ूँढ़ सका: %s"
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek
 #. without a paddle
-#: ../client/pk-console.c:1119
+#: ../client/pk-console.c:1124
 msgid "The daemon crashed mid-transaction!"
 msgstr "यह डेमॉन मध्य विनिमय में क्रैश कर गया!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1153
+#: ../client/pk-console.c:1158
 msgid "PackageKit Console Interface"
 msgstr "पैकेजकिट कंसोल अंतरफलक"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1155
+#: ../client/pk-console.c:1160
 msgid "Subcommands:"
 msgstr "उपकमांड:"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was
 #. last executed
-#: ../client/pk-console.c:1235
+#: ../client/pk-console.c:1240
 msgid "Failed to get the time since this action was last completed"
 msgstr "समय पाने में विफल क्योंकि यह काम अंतिम में पूरा किया गया था"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1277 ../client/pk-monitor.c:371
+#: ../client/pk-console.c:1282 ../client/pk-monitor.c:371
 msgid "Show the program version and exit"
 msgstr "प्रोग्राम संस्करण दिखाएँ और बाहर निकलें"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1280
+#: ../client/pk-console.c:1285
 msgid "Set the filter, e.g. installed"
 msgstr "फ़िल्टर सेट करें, उदा. संस्थापित"
 
 #. TRANSLATORS: command line argument, use a non-standard install prefix
-#: ../client/pk-console.c:1283
+#: ../client/pk-console.c:1288
 msgid "Set the install root, e.g. '/' or '/mnt/ltsp'"
 msgstr ""
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1286
+#: ../client/pk-console.c:1291
 msgid "Exit without waiting for actions to complete"
 msgstr "पूरा होने के लिए क्रिया के लिए प्रतीक्षारत रहे बिना बाहर निकलें"
 
 #. command line argument, do we ask questions
-#: ../client/pk-console.c:1289
+#: ../client/pk-console.c:1294
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:525
 msgid "Install the packages without asking for confirmation"
 msgstr "संपुष्टि के लिए संकुलों को बिना पूछे संस्थापित करें"
 
 #. TRANSLATORS: command line argument, this command is not a priority
-#: ../client/pk-console.c:1292
+#: ../client/pk-console.c:1297
 msgid "Run the command using idle network bandwidth and also using less power"
 msgstr "निष्क्रिय संजाल बैंडबिड्थ और कम बिजली के प्रयोग से कमांड चलाएँ"
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1295
+#: ../client/pk-console.c:1300
 msgid ""
 "Print to screen a machine readable output, rather than using animated "
 "widgets"
@@ -434,155 +436,155 @@ msgstr ""
 "के"
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1298
+#: ../client/pk-console.c:1303
 msgid "The maximum metadata cache age. Use -1 for 'never'."
 msgstr ""
 
 #. TRANSLATORS: command line argument, --help
-#: ../client/pk-console.c:1301
+#: ../client/pk-console.c:1306
 msgid "Show help options."
 msgstr ""
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1331
+#: ../client/pk-console.c:1336
 msgid "Failed to parse command line"
 msgstr ""
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1341
+#: ../client/pk-console.c:1346
 msgid "Failed to contact PackageKit"
 msgstr "PackageKit से संपर्क करने में विफल"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1394
+#: ../client/pk-console.c:1399
 msgid "The proxy could not be set"
 msgstr ""
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1406
+#: ../client/pk-console.c:1411
 msgid "The install root could not be set"
 msgstr ""
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1418
+#: ../client/pk-console.c:1423
 msgid "The filter specified was invalid"
 msgstr "निर्दिष्ट फिल्टर अवैध था"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1437
+#: ../client/pk-console.c:1442
 msgid "A search type is required, e.g. name"
 msgstr "खोज प्रकार जरूरी है, उदा. name"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1444 ../client/pk-console.c:1456
-#: ../client/pk-console.c:1468 ../client/pk-console.c:1480
+#: ../client/pk-console.c:1449 ../client/pk-console.c:1461
+#: ../client/pk-console.c:1473 ../client/pk-console.c:1485
 msgid "A search term is required"
 msgstr "खोज पद जरूरी है"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1490
+#: ../client/pk-console.c:1495
 msgid "Invalid search type"
 msgstr "अवैध खोज प्रकार"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1496
+#: ../client/pk-console.c:1501
 msgid "A package name to install is required"
 msgstr "संस्थापित करने के लिए संकुल नाम जरूरी है"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1505
+#: ../client/pk-console.c:1510
 msgid "A filename to install is required"
 msgstr "संस्थापित करने के लिए फाइलनाम जरूरी है"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1516
+#: ../client/pk-console.c:1521
 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:1527
+#: ../client/pk-console.c:1532
 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:1536
+#: ../client/pk-console.c:1541
 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:1543
+#: ../client/pk-console.c:1548
 msgid "Directory not found"
 msgstr "निर्देशिका नहीं मिला"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1552
+#: ../client/pk-console.c:1557
 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:1563
+#: ../client/pk-console.c:1568
 msgid "A transaction identifier (tid) is required"
 msgstr "विनिमय पहचानकर्ता (tid) जरूरी है"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:1584
+#: ../client/pk-console.c:1589
 msgid "A package name to resolve is required"
 msgstr "हल किया पैकेज नाम जरूरी है"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:1595 ../client/pk-console.c:1606
+#: ../client/pk-console.c:1600 ../client/pk-console.c:1611
 msgid "A repository name is required"
 msgstr "रिपाजिटरी नाम जरूरी है"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:1617
+#: ../client/pk-console.c:1622
 msgid "A repo name, parameter and value are required"
 msgstr "रेपो नाम, पैरामीटर और मान जरूरी है"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:1634
+#: ../client/pk-console.c:1639
 msgid "An action, e.g. 'update-system' is required"
 msgstr "क्रिया, उदा. 'update-system' जरूरी है"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:1641
+#: ../client/pk-console.c:1646
 msgid "A correct role is required"
 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:1651 ../client/pk-console.c:1665
-#: ../client/pk-console.c:1674 ../client/pk-console.c:1694
-#: ../client/pk-console.c:1703 ../client/pk-generate-pack.c:314
+#: ../client/pk-console.c:1656 ../client/pk-console.c:1670
+#: ../client/pk-console.c:1679 ../client/pk-console.c:1699
+#: ../client/pk-console.c:1708 ../client/pk-generate-pack.c:314
 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:1683
+#: ../client/pk-console.c:1688
 msgid "A package provide string is required"
 msgstr "संकुल प्रदत्त स्ट्रिंग जरूरी है"
 
 #. TRANSLATORS: The user did not provide a distro name
-#: ../client/pk-console.c:1727
+#: ../client/pk-console.c:1732
 msgid "A distribution name is required"
 msgstr ""
 
 #. TRANSLATORS: The user did not provide an upgrade type
-#: ../client/pk-console.c:1733
+#: ../client/pk-console.c:1738
 msgid "An upgrade type is required, e.g. 'minimal', 'default' or 'complete'"
 msgstr ""
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command
 #. line
-#: ../client/pk-console.c:1783
+#: ../client/pk-console.c:1788
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "विकल्प '%s' समर्थित नहीं है"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:1793
+#: ../client/pk-console.c:1798
 msgid "Command failed"
 msgstr "कमांड असफल"
 
@@ -721,159 +723,154 @@ msgid "PackageKit Monitor"
 msgstr "PackageKit मानिटर"
 
 #. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/pk-plugin-install.c:499
+#: ../contrib/browser-plugin/pk-plugin-install.c:503
 msgid "Getting package information..."
 msgstr "संकुल सूचना पा रहा है..."
 
 #. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/pk-plugin-install.c:505
+#: ../contrib/browser-plugin/pk-plugin-install.c:509
 #, c-format
 msgid "Run %s"
 msgstr "%s चलाएँ"
 
 #. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:511
+#: ../contrib/browser-plugin/pk-plugin-install.c:515
 msgid "Installed version"
 msgstr "संस्थापित संस्करण"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:519
+#: ../contrib/browser-plugin/pk-plugin-install.c:523
 #, c-format
 msgid "Run version %s now"
 msgstr "अब %s संस्करण चलाएँ"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:525
+#: ../contrib/browser-plugin/pk-plugin-install.c:529
 msgid "Run now"
 msgstr "अभी चलाएँ"
 
 #. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:531
+#: ../contrib/browser-plugin/pk-plugin-install.c:535
 #, c-format
 msgid "Update to version %s"
 msgstr "संस्करण %s में अद्यतन करें"
 
 #. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:537
+#: ../contrib/browser-plugin/pk-plugin-install.c:541
 #, c-format
 msgid "Install %s now"
 msgstr "अब %s को संस्थापित करें"
 
 #. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:540
+#: ../contrib/browser-plugin/pk-plugin-install.c:544
 msgid "Version"
 msgstr "संस्करण"
 
 #. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/pk-plugin-install.c:545
+#: ../contrib/browser-plugin/pk-plugin-install.c:549
 msgid "No packages found for your system"
 msgstr "आपके तंत्र के लिए कोई संकुल नहीं पाया गया"
 
 #. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/pk-plugin-install.c:550
+#: ../contrib/browser-plugin/pk-plugin-install.c:554
 msgid "Installing..."
 msgstr "संस्थापित कर रहा है..."
 
 #. TRANSLATORS: downloading repo data so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:366
+#: ../contrib/command-not-found/pk-command-not-found.c:363
 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:370
+#: ../contrib/command-not-found/pk-command-not-found.c:367
 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:374
+#: ../contrib/command-not-found/pk-command-not-found.c:371
 msgid "Waiting for package manager lock."
 msgstr "संकुल प्रबंधक लॉक के लिए प्रतीक्षारत."
 
 #. TRANSLATORS: loading package cache so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:378
+#: ../contrib/command-not-found/pk-command-not-found.c:375
 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:444
+#: ../contrib/command-not-found/pk-command-not-found.c:439
 msgid "Failed to search for file"
 msgstr "फाइल के लिए खोजने में विफल"
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
-#: ../contrib/command-not-found/pk-command-not-found.c:456
+#: ../contrib/command-not-found/pk-command-not-found.c:451
 msgid "Getting the list of files failed"
 msgstr ""
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:602
+#: ../contrib/command-not-found/pk-command-not-found.c:597
 msgid "Failed to launch:"
 msgstr "लॉन्च करने में विफल:"
 
 #. TRANSLATORS: we failed to install the package
-#: ../contrib/command-not-found/pk-command-not-found.c:630
+#: ../contrib/command-not-found/pk-command-not-found.c:625
 msgid "Failed to install packages"
 msgstr "संकुलों को संस्थापित नहीं करने में विफल"
 
-#. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/command-not-found/pk-command-not-found.c:706
-msgid "PackageKit Command Not Found"
-msgstr "PackageKit कमांड नहीं मिला"
-
 #. TRANSLATORS: the prefix of all the output telling the user
 #. * why it's not executing. NOTE: this is lowercase to mimic
 #. * the style of bash itself -- apologies
-#: ../contrib/command-not-found/pk-command-not-found.c:741
+#: ../contrib/command-not-found/pk-command-not-found.c:723
 msgid "command not found"
 msgstr ""
 
 #. TRANSLATORS: tell the user what we think the command is
-#: ../contrib/command-not-found/pk-command-not-found.c:759
+#: ../contrib/command-not-found/pk-command-not-found.c:741
 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:773
+#: ../contrib/command-not-found/pk-command-not-found.c:755
 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:787
-#: ../contrib/command-not-found/pk-command-not-found.c:796
+#: ../contrib/command-not-found/pk-command-not-found.c:769
+#: ../contrib/command-not-found/pk-command-not-found.c:778
 msgid "Similar commands are:"
 msgstr "समान कमांड हैं:"
 
 #. TRANSLATORS: ask the user to choose a file to run
-#: ../contrib/command-not-found/pk-command-not-found.c:803
+#: ../contrib/command-not-found/pk-command-not-found.c:785
 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:821
+#: ../contrib/command-not-found/pk-command-not-found.c:803
 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:828
+#: ../contrib/command-not-found/pk-command-not-found.c:810
 #, 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:855
+#: ../contrib/command-not-found/pk-command-not-found.c:837
 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:865
+#: ../contrib/command-not-found/pk-command-not-found.c:847
 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:874
+#: ../contrib/command-not-found/pk-command-not-found.c:856
 msgid "Please choose a package to install"
 msgstr "संस्थापित करने के लिए कोई संकुल चुनें"
 
@@ -1049,7 +1046,7 @@ msgstr "अनुकरण मोड में कोई संस्थाप
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
 #. TRANSLATORS: transaction state, installing packages
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:860
-#: ../lib/packagekit-glib2/pk-console-shared.c:296
+#: ../lib/packagekit-glib2/pk-console-shared.c:331
 #, c-format
 msgid "Installing packages"
 msgstr "संकुल अधिष्ठापित कर रहा है"
@@ -1183,474 +1180,474 @@ msgstr "PackageKit संकुल सूची"
 msgid "PackageKit Service Pack"
 msgstr "PackageKit सेवा पैक"
 
-#: ../lib/packagekit-glib2/pk-console-shared.c:64
+#: ../lib/packagekit-glib2/pk-console-shared.c:65
 #, c-format
 msgid "Please enter a number from 1 to %i: "
 msgstr "1 से %i तक की संख्या कृपया दाखिल करें: "
 
 #. TRANSLATORS: more than one package could be found that matched, to follow
 #. is a list of possible packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:198
+#: ../lib/packagekit-glib2/pk-console-shared.c:233
 msgid "More than one package matches:"
 msgstr "एक से अधिक संकुल मेल खाता है:"
 
 #. TRANSLATORS: This finds out which package in the list to use
-#: ../lib/packagekit-glib2/pk-console-shared.c:209
+#: ../lib/packagekit-glib2/pk-console-shared.c:244
 msgid "Please choose the correct package: "
 msgstr "कृपया सही संकुल चुनें: "
 
 #. TRANSLATORS: This is when the transaction status is not known
-#: ../lib/packagekit-glib2/pk-console-shared.c:264
+#: ../lib/packagekit-glib2/pk-console-shared.c:299
 msgid "Unknown state"
 msgstr "अज्ञात स्थिति"
 
 #. TRANSLATORS: transaction state, the daemon is in the process of starting
-#: ../lib/packagekit-glib2/pk-console-shared.c:268
+#: ../lib/packagekit-glib2/pk-console-shared.c:303
 msgid "Starting"
 msgstr "आरंभ कर रहा है"
 
 #. TRANSLATORS: transaction state, the transaction is waiting for another to
 #. complete
-#: ../lib/packagekit-glib2/pk-console-shared.c:272
+#: ../lib/packagekit-glib2/pk-console-shared.c:307
 msgid "Waiting in queue"
 msgstr "कतार में प्रतीक्षा"
 
 #. TRANSLATORS: transaction state, just started
-#: ../lib/packagekit-glib2/pk-console-shared.c:276
+#: ../lib/packagekit-glib2/pk-console-shared.c:311
 msgid "Running"
 msgstr "चल रहा है"
 
 #. TRANSLATORS: transaction state, is querying data
-#: ../lib/packagekit-glib2/pk-console-shared.c:280
+#: ../lib/packagekit-glib2/pk-console-shared.c:315
 msgid "Querying"
 msgstr "प्रश्न कर रहा है"
 
 #. TRANSLATORS: transaction state, getting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:284
+#: ../lib/packagekit-glib2/pk-console-shared.c:319
 msgid "Getting information"
 msgstr "सूचना पा रहा है"
 
 #. TRANSLATORS: transaction state, removing packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:288
+#: ../lib/packagekit-glib2/pk-console-shared.c:323
 msgid "Removing packages"
 msgstr "संकुल हटा रहा है"
 
 #. TRANSLATORS: transaction state, downloading package files
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:292
-#: ../lib/packagekit-glib2/pk-console-shared.c:670
+#: ../lib/packagekit-glib2/pk-console-shared.c:327
+#: ../lib/packagekit-glib2/pk-console-shared.c:705
 msgid "Downloading packages"
 msgstr "संकुल डाउनलोड कर रहा है"
 
 #. TRANSLATORS: transaction state, refreshing internal lists
-#: ../lib/packagekit-glib2/pk-console-shared.c:300
+#: ../lib/packagekit-glib2/pk-console-shared.c:335
 msgid "Refreshing software list"
 msgstr "सॉफ़्टवेयर सूची ताज़ा कर रहा है"
 
 #. TRANSLATORS: transaction state, installing updates
-#: ../lib/packagekit-glib2/pk-console-shared.c:304
+#: ../lib/packagekit-glib2/pk-console-shared.c:339
 msgid "Installing updates"
 msgstr "अद्यतन संस्थापित कर रहा है"
 
 #. TRANSLATORS: transaction state, removing old packages, and cleaning config
 #. files
-#: ../lib/packagekit-glib2/pk-console-shared.c:308
+#: ../lib/packagekit-glib2/pk-console-shared.c:343
 msgid "Cleaning up packages"
 msgstr "संकुल साफ कर रहा है"
 
 #. TRANSLATORS: transaction state, obsoleting old packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:312
+#: ../lib/packagekit-glib2/pk-console-shared.c:347
 msgid "Obsoleting packages"
 msgstr "संकुल को पुराना कर रहा है"
 
 #. TRANSLATORS: transaction state, checking the transaction before we do it
-#: ../lib/packagekit-glib2/pk-console-shared.c:316
+#: ../lib/packagekit-glib2/pk-console-shared.c:351
 msgid "Resolving dependencies"
 msgstr "निर्भरता हल कर रहा है"
 
 #. TRANSLATORS: transaction state, checking if we have all the security keys
 #. for the operation
-#: ../lib/packagekit-glib2/pk-console-shared.c:320
+#: ../lib/packagekit-glib2/pk-console-shared.c:355
 msgid "Checking signatures"
 msgstr "हस्ताक्षर जाँच रहा है"
 
 #. TRANSLATORS: transaction state, when we return to a previous system state
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:324
-#: ../lib/packagekit-glib2/pk-console-shared.c:630
+#: ../lib/packagekit-glib2/pk-console-shared.c:359
+#: ../lib/packagekit-glib2/pk-console-shared.c:665
 msgid "Rolling back"
 msgstr "रोलिंग बैक"
 
 #. TRANSLATORS: transaction state, when we're doing a test transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:328
+#: ../lib/packagekit-glib2/pk-console-shared.c:363
 msgid "Testing changes"
 msgstr "परिवर्तन जाँच रहा है"
 
 #. TRANSLATORS: transaction state, when we're writing to the system package
 #. database
-#: ../lib/packagekit-glib2/pk-console-shared.c:332
+#: ../lib/packagekit-glib2/pk-console-shared.c:367
 msgid "Committing changes"
 msgstr "परिवर्तन सौंप रहा है"
 
 #. TRANSLATORS: transaction state, requesting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:336
+#: ../lib/packagekit-glib2/pk-console-shared.c:371
 msgid "Requesting data"
 msgstr "आंकड़ा के लिए निवेदन कर रहा है"
 
 #. TRANSLATORS: transaction state, all done!
-#: ../lib/packagekit-glib2/pk-console-shared.c:340
+#: ../lib/packagekit-glib2/pk-console-shared.c:375
 msgid "Finished"
 msgstr "समाप्त"
 
 #. TRANSLATORS: transaction state, in the process of cancelling
-#: ../lib/packagekit-glib2/pk-console-shared.c:344
+#: ../lib/packagekit-glib2/pk-console-shared.c:379
 msgid "Cancelling"
 msgstr "रद्द कर रहा है"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:348
+#: ../lib/packagekit-glib2/pk-console-shared.c:383
 msgid "Downloading repository information"
 msgstr "रिपोजिटरी सूचना डाउनलोड कर रहा है"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:352
+#: ../lib/packagekit-glib2/pk-console-shared.c:387
 msgid "Downloading list of packages"
 msgstr "संकुल सूची डाउनलोड कर रहा है"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:356
+#: ../lib/packagekit-glib2/pk-console-shared.c:391
 msgid "Downloading file lists"
 msgstr "फ़ाइल सूची डाउनलोड कर रहा है"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:360
+#: ../lib/packagekit-glib2/pk-console-shared.c:395
 msgid "Downloading lists of changes"
 msgstr "परिवर्तन सूची डाउनलोड कर रहा है"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:364
+#: ../lib/packagekit-glib2/pk-console-shared.c:399
 msgid "Downloading groups"
 msgstr "समूह डाउनलोड किया जा रहा है"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:368
+#: ../lib/packagekit-glib2/pk-console-shared.c:403
 msgid "Downloading update information"
 msgstr "अद्यतन सूचना डाउनलोड कर रहा है"
 
 #. TRANSLATORS: transaction state, repackaging delta files
-#: ../lib/packagekit-glib2/pk-console-shared.c:372
+#: ../lib/packagekit-glib2/pk-console-shared.c:407
 msgid "Repackaging files"
 msgstr "फ़ाइल पुनर्संकुलित कर रहा है"
 
 #. TRANSLATORS: transaction state, loading databases
-#: ../lib/packagekit-glib2/pk-console-shared.c:376
+#: ../lib/packagekit-glib2/pk-console-shared.c:411
 msgid "Loading cache"
 msgstr "कैशे लोड कर रहा है"
 
 #. TRANSLATORS: transaction state, scanning for running processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:380
+#: ../lib/packagekit-glib2/pk-console-shared.c:415
 msgid "Scanning applications"
 msgstr "अनुप्रयोग स्कैन कर रहा है"
 
 #. TRANSLATORS: transaction state, generating a list of packages installed on
 #. the system
-#: ../lib/packagekit-glib2/pk-console-shared.c:384
+#: ../lib/packagekit-glib2/pk-console-shared.c:419
 msgid "Generating package lists"
 msgstr "संकुल सूची बना रहा है"
 
 #. TRANSLATORS: transaction state, when we're waiting for the native tools to
 #. exit
-#: ../lib/packagekit-glib2/pk-console-shared.c:388
+#: ../lib/packagekit-glib2/pk-console-shared.c:423
 msgid "Waiting for package manager lock"
 msgstr "संकुल प्रबंधक लॉक के लिए प्रतीक्षारत"
 
 #. TRANSLATORS: transaction state, waiting for user to type in a password
-#: ../lib/packagekit-glib2/pk-console-shared.c:392
+#: ../lib/packagekit-glib2/pk-console-shared.c:427
 msgid "Waiting for authentication"
 msgstr "सत्यापन के लिए प्रतीक्षारत"
 
 #. TRANSLATORS: transaction state, we are updating the list of processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:396
+#: ../lib/packagekit-glib2/pk-console-shared.c:431
 msgid "Updating running applications"
 msgstr "कार्यशील अनुप्रयोग अद्यतन रहा है"
 
 #. TRANSLATORS: transaction state, we are checking executable files currently
 #. in use
-#: ../lib/packagekit-glib2/pk-console-shared.c:400
+#: ../lib/packagekit-glib2/pk-console-shared.c:435
 msgid "Checking applications in use"
 msgstr "प्रयोग में अनुप्रयोगों को जाँच रहा है"
 
 #. TRANSLATORS: transaction state, we are checking for libraries currently in
 #. use
-#: ../lib/packagekit-glib2/pk-console-shared.c:404
+#: ../lib/packagekit-glib2/pk-console-shared.c:439
 msgid "Checking libraries in use"
 msgstr "प्रयोग में लाइब्रेरी जाँच रहा है"
 
 #. TRANSLATORS: transaction state, we are copying package files before or
 #. after the transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:408
+#: ../lib/packagekit-glib2/pk-console-shared.c:443
 msgid "Copying files"
 msgstr "फ़ाइल की नक़ल ले रहा है"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:426
+#: ../lib/packagekit-glib2/pk-console-shared.c:461
 msgid "Trivial"
 msgstr "बेकार"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:430
+#: ../lib/packagekit-glib2/pk-console-shared.c:465
 msgid "Normal"
 msgstr "सामान्य"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:434
+#: ../lib/packagekit-glib2/pk-console-shared.c:469
 msgid "Important"
 msgstr "महत्वपूर्ण"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:438
+#: ../lib/packagekit-glib2/pk-console-shared.c:473
 msgid "Security"
 msgstr "सुरक्षा"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:442
+#: ../lib/packagekit-glib2/pk-console-shared.c:477
 msgid "Bug fix "
 msgstr "बग फिक्स"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:446
+#: ../lib/packagekit-glib2/pk-console-shared.c:481
 msgid "Enhancement"
 msgstr "संवर्द्धन"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:450
+#: ../lib/packagekit-glib2/pk-console-shared.c:485
 msgid "Blocked"
 msgstr "रोका गया"
 
 #. TRANSLATORS: The state of a package
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:455
-#: ../lib/packagekit-glib2/pk-console-shared.c:528
+#: ../lib/packagekit-glib2/pk-console-shared.c:490
+#: ../lib/packagekit-glib2/pk-console-shared.c:563
 msgid "Installed"
 msgstr "संस्थापित"
 
 #. TRANSLATORS: The state of a package, i.e. not installed
-#: ../lib/packagekit-glib2/pk-console-shared.c:460
+#: ../lib/packagekit-glib2/pk-console-shared.c:495
 msgid "Available"
 msgstr "उपलब्ध"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:478
+#: ../lib/packagekit-glib2/pk-console-shared.c:513
 msgid "Downloading"
 msgstr "डाउनलोड किया जा रहा है"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:482
+#: ../lib/packagekit-glib2/pk-console-shared.c:517
 msgid "Updating"
 msgstr "अद्यतन कर रहा है"
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:486
-#: ../lib/packagekit-glib2/pk-console-shared.c:606
+#: ../lib/packagekit-glib2/pk-console-shared.c:521
+#: ../lib/packagekit-glib2/pk-console-shared.c:641
 msgid "Installing"
 msgstr "संस्थापित किया जा रहा है"
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:490
-#: ../lib/packagekit-glib2/pk-console-shared.c:602
+#: ../lib/packagekit-glib2/pk-console-shared.c:525
+#: ../lib/packagekit-glib2/pk-console-shared.c:637
 msgid "Removing"
 msgstr "संकुल हटा रहा है"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:494
+#: ../lib/packagekit-glib2/pk-console-shared.c:529
 msgid "Cleaning up"
 msgstr "साफ कर रहा है"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:498
+#: ../lib/packagekit-glib2/pk-console-shared.c:533
 msgid "Obsoleting"
 msgstr "पुराना"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:502
+#: ../lib/packagekit-glib2/pk-console-shared.c:537
 msgid "Reinstalling"
 msgstr "फिर संस्थापित कर रहा है..."
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:520
+#: ../lib/packagekit-glib2/pk-console-shared.c:555
 msgid "Downloaded"
 msgstr "डाउनलोडेड"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:532
+#: ../lib/packagekit-glib2/pk-console-shared.c:567
 msgid "Removed"
 msgstr "मिटाया"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:536
+#: ../lib/packagekit-glib2/pk-console-shared.c:571
 msgid "Cleaned up"
 msgstr "साफ किया गया"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:540
+#: ../lib/packagekit-glib2/pk-console-shared.c:575
 msgid "Obsoleted"
 msgstr "पुराना"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:544
+#: ../lib/packagekit-glib2/pk-console-shared.c:579
 msgid "Reinstalled"
 msgstr "फिर संस्थापित"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:562
+#: ../lib/packagekit-glib2/pk-console-shared.c:597
 msgid "Unknown role type"
 msgstr "अज्ञात भूमिका प्रकार"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:566
+#: ../lib/packagekit-glib2/pk-console-shared.c:601
 msgid "Getting dependencies"
 msgstr "निर्भरता पा रहा है"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:570
+#: ../lib/packagekit-glib2/pk-console-shared.c:605
 msgid "Getting update details"
 msgstr "अद्यतन विवरण पा रहा है"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:574
+#: ../lib/packagekit-glib2/pk-console-shared.c:609
 msgid "Getting details"
 msgstr "विवरण पा रहा है"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:578
+#: ../lib/packagekit-glib2/pk-console-shared.c:613
 msgid "Getting requires"
 msgstr "जरूरी सूची पा रहा है"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:582
+#: ../lib/packagekit-glib2/pk-console-shared.c:617
 msgid "Getting updates"
 msgstr "अद्यतन पा रहा है"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:586
+#: ../lib/packagekit-glib2/pk-console-shared.c:621
 msgid "Searching by details"
 msgstr "विवरण से खोजें"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:590
+#: ../lib/packagekit-glib2/pk-console-shared.c:625
 msgid "Searching by file"
 msgstr "फ़ाइल खोज रहा है"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:594
+#: ../lib/packagekit-glib2/pk-console-shared.c:629
 msgid "Searching groups"
 msgstr "समूह खोज रहा है"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:598
+#: ../lib/packagekit-glib2/pk-console-shared.c:633
 msgid "Searching by name"
 msgstr "नाम से खोजें"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:610
+#: ../lib/packagekit-glib2/pk-console-shared.c:645
 msgid "Installing files"
 msgstr "फ़ाइल संस्थापित कर रहा है"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:614
+#: ../lib/packagekit-glib2/pk-console-shared.c:649
 msgid "Refreshing cache"
 msgstr "कैश ताज़ा कर रहा है"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:618
+#: ../lib/packagekit-glib2/pk-console-shared.c:653
 msgid "Updating packages"
 msgstr "संकुल अद्यतन कर रहा है"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:622
+#: ../lib/packagekit-glib2/pk-console-shared.c:657
 msgid "Updating system"
 msgstr "तंत्र अद्यतन कर रहा है"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:626
+#: ../lib/packagekit-glib2/pk-console-shared.c:661
 msgid "Canceling"
 msgstr "रद्द कर रहा है"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:634
+#: ../lib/packagekit-glib2/pk-console-shared.c:669
 msgid "Getting repositories"
 msgstr "रिपोजिटरी पा रहा है"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:638
+#: ../lib/packagekit-glib2/pk-console-shared.c:673
 msgid "Enabling repository"
 msgstr "रिपोजिटरी सक्रिय कर रहा है"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:642
+#: ../lib/packagekit-glib2/pk-console-shared.c:677
 msgid "Setting data"
 msgstr "आंकड़ा सेट कर रहा है"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:646
+#: ../lib/packagekit-glib2/pk-console-shared.c:681
 msgid "Resolving"
 msgstr "हल कर रहा है"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:650
+#: ../lib/packagekit-glib2/pk-console-shared.c:685
 msgid "Getting file list"
 msgstr "फ़ाइल सूची पा रहा है"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:654
+#: ../lib/packagekit-glib2/pk-console-shared.c:689
 msgid "Getting provides"
 msgstr "प्रदान पा रहा है"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:658
+#: ../lib/packagekit-glib2/pk-console-shared.c:693
 msgid "Installing signature"
 msgstr "हस्ताक्षर संस्थापित कर रहा है"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:662
+#: ../lib/packagekit-glib2/pk-console-shared.c:697
 msgid "Getting packages"
 msgstr "संकुल पा रहा है"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:666
+#: ../lib/packagekit-glib2/pk-console-shared.c:701
 msgid "Accepting EULA"
 msgstr "EULA स्वीकार कर रहा है"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:674
+#: ../lib/packagekit-glib2/pk-console-shared.c:709
 msgid "Getting upgrades"
 msgstr "उन्नयन पा रहा है"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:678
+#: ../lib/packagekit-glib2/pk-console-shared.c:713
 msgid "Getting categories"
 msgstr "श्रेणियाँ पा रहा है"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:682
+#: ../lib/packagekit-glib2/pk-console-shared.c:717
 msgid "Getting transactions"
 msgstr "लेनदेन पा रहा है"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:686
-#: ../lib/packagekit-glib2/pk-console-shared.c:690
+#: ../lib/packagekit-glib2/pk-console-shared.c:721
+#: ../lib/packagekit-glib2/pk-console-shared.c:725
 msgid "Simulating install"
 msgstr "संस्थापन अनुकरण कर रहा है"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:694
+#: ../lib/packagekit-glib2/pk-console-shared.c:729
 msgid "Simulating remove"
 msgstr "हटाना अनुकरण कर रहा है"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:698
+#: ../lib/packagekit-glib2/pk-console-shared.c:733
 msgid "Simulating update"
 msgstr "अद्यतन अनुकरण कर रहा है"
 
@@ -1800,13 +1797,19 @@ msgstr "निम्नलिखित संकुल को फिर सं
 msgid "The following packages have to be downgraded:"
 msgstr "निम्नलिखित संकुल को फिर पदावनत किया जाने वाला है:"
 
+#. TRANSLATORS: When processing, untrusted and non-verified packages may be
+#. encountered
+#: ../lib/packagekit-glib2/pk-task-text.c:325
+msgid "The following packages are untrusted:"
+msgstr ""
+
 #. TRANSLATORS: ask the user if the proposed changes are okay
-#: ../lib/packagekit-glib2/pk-task-text.c:380
+#: ../lib/packagekit-glib2/pk-task-text.c:385
 msgid "Proceed with changes?"
 msgstr "परिवर्तन के साथ आगे बढ़ें?"
 
 #. TRANSLATORS: tell the user we didn't do anything
-#: ../lib/packagekit-glib2/pk-task-text.c:385
+#: ../lib/packagekit-glib2/pk-task-text.c:390
 msgid "The transaction did not proceed."
 msgstr "लेनदेन नहीं आगे बढ़ा."
 
@@ -2016,98 +2019,68 @@ msgstr "संकुल अद्यतन करें"
 msgid "Upgrade System"
 msgstr ""
 
-#. TRANSLATORS: failed due to DBus security
-#: ../src/pk-main.c:91
-msgid "Startup failed due to security policies on this machine."
-msgstr "इस मशीन पर सुरक्षा नीति के कारण आरंभन विफल."
-
-#. TRANSLATORS: only two ways this can fail...
-#: ../src/pk-main.c:93
-msgid "This can happen for two reasons:"
-msgstr "यह दो कारणों से हो सकता है:"
-
-#. TRANSLATORS: only allowed to be owned by root
-#: ../src/pk-main.c:95
-msgid "The correct user is not launching the executable (usually root)"
-msgstr "सही उपयोक्ता निष्पादनीय को लॉन्च नहीं कर रहा है (प्रायः रूट)"
-
-#. TRANSLATORS: or we are installed in a prefix
-#: ../src/pk-main.c:97
-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:223
+#: ../src/pk-main.c:149
 msgid "Packaging backend to use, e.g. dummy"
 msgstr "प्रयोग के लिए बैकेंड को पैकेजिंग, उदा. dummy"
 
 #. TRANSLATORS: if we should run in the background
-#: ../src/pk-main.c:226
+#: ../src/pk-main.c:152
 msgid "Daemonize and detach from the terminal"
 msgstr "टर्मिनल से डेमानीकरण व विलग करें"
 
 #. TRANSLATORS: if we should not monitor how long we are inactive for
-#: ../src/pk-main.c:229
+#: ../src/pk-main.c:155
 msgid "Disable the idle timer"
 msgstr "निष्क्रिय टाइमर निष्क्रिय करें"
 
 #. TRANSLATORS: show version
-#: ../src/pk-main.c:232
+#: ../src/pk-main.c:158
 msgid "Show version and exit"
 msgstr "संस्करण दिखाएँ और बाहर निकलें"
 
 #. TRANSLATORS: exit after we've started up, used for user profiling
-#: ../src/pk-main.c:235
+#: ../src/pk-main.c:161
 msgid "Exit after a small delay"
 msgstr "कुछ देर के बाद बाहर निकलें"
 
 #. TRANSLATORS: exit straight away, used for automatic profiling
-#: ../src/pk-main.c:238
+#: ../src/pk-main.c:164
 msgid "Exit after the engine has loaded"
 msgstr "इंजन लोड होने के बाद बाहर निकलें"
 
+#. TRANSLATORS: don't unset environment variables, used for debugging
+#: ../src/pk-main.c:167
+msgid "Don't clear environment on startup"
+msgstr ""
+
 #. TRANSLATORS: describing the service that is running
-#: ../src/pk-main.c:253
+#: ../src/pk-main.c:179
 msgid "PackageKit service"
 msgstr "PackageKit सेवा"
 
-#. TRANSLATORS: fatal error, dbus is not running
-#: ../src/pk-main.c:298
-msgid "Cannot connect to the system bus"
-msgstr "सिस्टम बस में कनेक्ट नहीं हो सकता है"
-
-#: ../src/pk-main.c:344
+#: ../src/pk-main.c:253
 msgid "Failed to load any of the specified backends:"
 msgstr ""
 
-#. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error
-#. follows
-#: ../src/pk-main.c:358
-msgid "Error trying to start:"
-msgstr "आरंभ होने की कोशिश में त्रुटि:"
-
 #. TRANSLATORS: is not GPG signed
-#: ../src/pk-transaction.c:2611 ../src/pk-transaction.c:2618
+#: ../src/pk-transaction.c:2696
 msgid "The software is not from a trusted source."
 msgstr "यह सॉफ्टवेयर भरोसेमंद स्रोत से नहीं है."
 
-#: ../src/pk-transaction.c:2623
+#: ../src/pk-transaction.c:2704
 msgid "Do not update this package unless you are sure it is safe to do so."
 msgstr "इस संकुल को अद्यतन मत करें जब तक वाकई ऐसा करने के लिए सुरक्षित है."
 
-#: ../src/pk-transaction.c:2624
+#: ../src/pk-transaction.c:2705
 msgid "Do not update these packages unless you are sure it is safe to do so."
 msgstr "इस संकुलों को अद्यतन मत करें जब तक वाकई ऐसा करने के लिए सुरक्षित है."
 
-#: ../src/pk-transaction.c:2634
+#: ../src/pk-transaction.c:2715
 msgid "Do not install this package unless you are sure it is safe to do so."
 msgstr "इस संकुल संस्थापित मत करें जब तक वाकई ऐसा करने के लिए सुरक्षित है."
 
-#: ../src/pk-transaction.c:2635
+#: ../src/pk-transaction.c:2716
 msgid "Do not install these packages unless you are sure it is safe to do so."
 msgstr "इन संकुलों को अद्यतन मत करें जब तक वाकई ऐसा करने के लिए सुरक्षित है."
 
diff --git a/po/hu.po b/po/hu.po
index bd49705..4ed689b 100644
--- a/po/hu.po
+++ b/po/hu.po
@@ -2,14 +2,16 @@
 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
 # This file is distributed under the same license as the PACKAGE package.
 # 
-# Richard Hughes <richard at hughsie.com>, 2011
+# Translators:
+# Gabor Kelemen <kelemeng at gnome dot hu>, 2009.
+# Richard Hughes <richard at hughsie.com>, 2011.
 msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-04 10:50+0100\n"
-"PO-Revision-Date: 2011-05-04 09:56+0000\n"
-"Last-Translator: hughsie <richard at hughsie.com>\n"
+"POT-Creation-Date: 2011-11-10 19:50+0000\n"
+"PO-Revision-Date: 2011-11-10 19:50+0000\n"
+"Last-Translator: Richard Hughes <richard at hughsie.com>\n"
 "Language-Team: Hungarian <openscope at googlegroups.com>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -195,7 +197,7 @@ msgstr "Kiadva"
 
 #. TRANSLATORS: details about the update, date the update was updated
 #. TRANSLATORS: The action of the package, in past tense
-#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:524
+#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:559
 msgid "Updated"
 msgstr "Frissítve"
 
@@ -285,7 +287,7 @@ msgstr ""
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
 #: ../client/pk-console.c:704
-#: ../contrib/command-not-found/pk-command-not-found.c:639
+#: ../contrib/command-not-found/pk-command-not-found.c:634
 msgid "The transaction failed"
 msgstr "A tranzakció meghiúsult"
 
@@ -337,21 +339,21 @@ msgstr ""
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:866
+#: ../client/pk-console.c:871
 #, c-format
 msgid "This tool could not find any available package: %s"
 msgstr "Az eszköz nem talál elérhető csomagokat: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:894
+#: ../client/pk-console.c:899
 #, c-format
 msgid "This tool could not find the installed package: %s"
 msgstr "Az eszköz nem találja a telepített csomagot: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:922 ../client/pk-console.c:950
+#: ../client/pk-console.c:927 ../client/pk-console.c:955
 #, c-format
 msgid "This tool could not find the package: %s"
 msgstr "Az eszköz nem találja a csomagot: %s"
@@ -364,70 +366,70 @@ msgstr "Az eszköz nem találja a csomagot: %s"
 #. detailed error follows
 #. TRANSLATORS: The package name was not found in any software sources. The
 #. detailed error follows
-#: ../client/pk-console.c:978 ../client/pk-console.c:1006
-#: ../client/pk-console.c:1034 ../client/pk-console.c:1062
-#: ../client/pk-console.c:1090
+#: ../client/pk-console.c:983 ../client/pk-console.c:1011
+#: ../client/pk-console.c:1039 ../client/pk-console.c:1067
+#: ../client/pk-console.c:1095
 #, c-format
 msgid "This tool could not find all the packages: %s"
 msgstr "Az eszköz nem találja az összes csomagot: %s"
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek
 #. without a paddle
-#: ../client/pk-console.c:1119
+#: ../client/pk-console.c:1124
 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:1153
+#: ../client/pk-console.c:1158
 msgid "PackageKit Console Interface"
 msgstr "PackageKit parancssori felület"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1155
+#: ../client/pk-console.c:1160
 msgid "Subcommands:"
 msgstr "Részparancsok:"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was
 #. last executed
-#: ../client/pk-console.c:1235
+#: ../client/pk-console.c:1240
 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: command line argument, just show the version string
-#: ../client/pk-console.c:1277 ../client/pk-monitor.c:371
+#: ../client/pk-console.c:1282 ../client/pk-monitor.c:371
 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:1280
+#: ../client/pk-console.c:1285
 msgid "Set the filter, e.g. installed"
 msgstr "Szűrő beállítása, például: installed"
 
 #. TRANSLATORS: command line argument, use a non-standard install prefix
-#: ../client/pk-console.c:1283
+#: ../client/pk-console.c:1288
 msgid "Set the install root, e.g. '/' or '/mnt/ltsp'"
 msgstr ""
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1286
+#: ../client/pk-console.c:1291
 msgid "Exit without waiting for actions to complete"
 msgstr "Kilépés a műveletek befejezésének megvárása nélkül"
 
 #. command line argument, do we ask questions
-#: ../client/pk-console.c:1289
+#: ../client/pk-console.c:1294
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:525
 msgid "Install the packages without asking for confirmation"
 msgstr "Telepíti a csomagokat megerősítés kérése nélkül"
 
 #. TRANSLATORS: command line argument, this command is not a priority
-#: ../client/pk-console.c:1292
+#: ../client/pk-console.c:1297
 msgid "Run the command using idle network bandwidth and also using less power"
 msgstr ""
 "Parancsot használva kihasználatlan hálózati sávszélességet és kevesebb "
 "energiát is használ"
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1295
+#: ../client/pk-console.c:1300
 msgid ""
 "Print to screen a machine readable output, rather than using animated "
 "widgets"
@@ -435,155 +437,155 @@ msgstr ""
 "Gép által ovasható kimenetre írás, mint hogy az animált widgetek használata"
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1298
+#: ../client/pk-console.c:1303
 msgid "The maximum metadata cache age. Use -1 for 'never'."
 msgstr ""
 
 #. TRANSLATORS: command line argument, --help
-#: ../client/pk-console.c:1301
+#: ../client/pk-console.c:1306
 msgid "Show help options."
 msgstr ""
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1331
+#: ../client/pk-console.c:1336
 msgid "Failed to parse command line"
 msgstr ""
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1341
+#: ../client/pk-console.c:1346
 msgid "Failed to contact PackageKit"
 msgstr "A kapcsolatfelvétel a PackageKit démonnal meghiúsult."
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1394
+#: ../client/pk-console.c:1399
 msgid "The proxy could not be set"
 msgstr ""
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1406
+#: ../client/pk-console.c:1411
 msgid "The install root could not be set"
 msgstr ""
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1418
+#: ../client/pk-console.c:1423
 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:1437
+#: ../client/pk-console.c:1442
 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:1444 ../client/pk-console.c:1456
-#: ../client/pk-console.c:1468 ../client/pk-console.c:1480
+#: ../client/pk-console.c:1449 ../client/pk-console.c:1461
+#: ../client/pk-console.c:1473 ../client/pk-console.c:1485
 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:1490
+#: ../client/pk-console.c:1495
 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:1496
+#: ../client/pk-console.c:1501
 msgid "A package name to install is required"
 msgstr "A telepítendő csomag neve szükséges"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1505
+#: ../client/pk-console.c:1510
 msgid "A filename to install is required"
 msgstr "A telepítendő fájl neve szükséges"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1516
+#: ../client/pk-console.c:1521
 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:1527
+#: ../client/pk-console.c:1532
 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:1536
+#: ../client/pk-console.c:1541
 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:1543
+#: ../client/pk-console.c:1548
 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:1552
+#: ../client/pk-console.c:1557
 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:1563
+#: ../client/pk-console.c:1568
 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:1584
+#: ../client/pk-console.c:1589
 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:1595 ../client/pk-console.c:1606
+#: ../client/pk-console.c:1600 ../client/pk-console.c:1611
 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:1617
+#: ../client/pk-console.c:1622
 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:1634
+#: ../client/pk-console.c:1639
 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:1641
+#: ../client/pk-console.c:1646
 msgid "A correct role is required"
 msgstr "Megfelelő szerep szükséges"
 
 #. 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:1651 ../client/pk-console.c:1665
-#: ../client/pk-console.c:1674 ../client/pk-console.c:1694
-#: ../client/pk-console.c:1703 ../client/pk-generate-pack.c:314
+#: ../client/pk-console.c:1656 ../client/pk-console.c:1670
+#: ../client/pk-console.c:1679 ../client/pk-console.c:1699
+#: ../client/pk-console.c:1708 ../client/pk-generate-pack.c:314
 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:1683
+#: ../client/pk-console.c:1688
 msgid "A package provide string is required"
 msgstr "A csomag által biztosított elemeket jelző karakterlánc szükséges"
 
 #. TRANSLATORS: The user did not provide a distro name
-#: ../client/pk-console.c:1727
+#: ../client/pk-console.c:1732
 msgid "A distribution name is required"
 msgstr ""
 
 #. TRANSLATORS: The user did not provide an upgrade type
-#: ../client/pk-console.c:1733
+#: ../client/pk-console.c:1738
 msgid "An upgrade type is required, e.g. 'minimal', 'default' or 'complete'"
 msgstr ""
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command
 #. line
-#: ../client/pk-console.c:1783
+#: ../client/pk-console.c:1788
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "„%s” nevű kapcsoló nem támogatott"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:1793
+#: ../client/pk-console.c:1798
 msgid "Command failed"
 msgstr "A parancs meghiúsult"
 
@@ -721,160 +723,155 @@ msgid "PackageKit Monitor"
 msgstr "PackageKit-figyelő"
 
 #. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/pk-plugin-install.c:499
+#: ../contrib/browser-plugin/pk-plugin-install.c:503
 msgid "Getting package information..."
 msgstr "Csomaginformációk lekérése…"
 
 #. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/pk-plugin-install.c:505
+#: ../contrib/browser-plugin/pk-plugin-install.c:509
 #, c-format
 msgid "Run %s"
 msgstr "%s futtatása"
 
 #. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:511
+#: ../contrib/browser-plugin/pk-plugin-install.c:515
 msgid "Installed version"
 msgstr "Telepített verzió"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:519
+#: ../contrib/browser-plugin/pk-plugin-install.c:523
 #, 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:525
+#: ../contrib/browser-plugin/pk-plugin-install.c:529
 msgid "Run now"
 msgstr "Futtatás most"
 
 #. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:531
+#: ../contrib/browser-plugin/pk-plugin-install.c:535
 #, 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:537
+#: ../contrib/browser-plugin/pk-plugin-install.c:541
 #, 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:540
+#: ../contrib/browser-plugin/pk-plugin-install.c:544
 msgid "Version"
 msgstr "Verzió"
 
 #. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/pk-plugin-install.c:545
+#: ../contrib/browser-plugin/pk-plugin-install.c:549
 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:550
+#: ../contrib/browser-plugin/pk-plugin-install.c:554
 msgid "Installing..."
 msgstr "Telepítés…"
 
 #. TRANSLATORS: downloading repo data so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:366
+#: ../contrib/command-not-found/pk-command-not-found.c:363
 msgid "Downloading details about the software sources."
 msgstr "A szoftverforrásokkal kapcsolatos részletek letöltése."
 
 #. TRANSLATORS: downloading file lists so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:370
+#: ../contrib/command-not-found/pk-command-not-found.c:367
 msgid "Downloading filelists (this may take some time to complete)."
 msgstr "Fájllisták letöltése (ez eltarthat egy ideig)."
 
 #. TRANSLATORS: waiting for native lock
-#: ../contrib/command-not-found/pk-command-not-found.c:374
+#: ../contrib/command-not-found/pk-command-not-found.c:371
 msgid "Waiting for package manager lock."
 msgstr "Várakozás csomagkezelői zárra."
 
 #. TRANSLATORS: loading package cache so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:378
+#: ../contrib/command-not-found/pk-command-not-found.c:375
 msgid "Loading list of packages."
 msgstr "Csomaglista betöltése."
 
 #. TRANSLATORS: we failed to find the package, this shouldn't happen
-#: ../contrib/command-not-found/pk-command-not-found.c:444
+#: ../contrib/command-not-found/pk-command-not-found.c:439
 msgid "Failed to search for file"
 msgstr "A fájl keresése meghiúsult"
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
-#: ../contrib/command-not-found/pk-command-not-found.c:456
+#: ../contrib/command-not-found/pk-command-not-found.c:451
 msgid "Getting the list of files failed"
 msgstr ""
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:602
+#: ../contrib/command-not-found/pk-command-not-found.c:597
 msgid "Failed to launch:"
 msgstr "Az indítás meghiúsult:"
 
 #. TRANSLATORS: we failed to install the package
-#: ../contrib/command-not-found/pk-command-not-found.c:630
+#: ../contrib/command-not-found/pk-command-not-found.c:625
 msgid "Failed to install packages"
 msgstr "Nem sikerült a csomagok telepítése"
 
-#. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/command-not-found/pk-command-not-found.c:706
-msgid "PackageKit Command Not Found"
-msgstr "PackageKit parancskereső"
-
 #. TRANSLATORS: the prefix of all the output telling the user
 #. * why it's not executing. NOTE: this is lowercase to mimic
 #. * the style of bash itself -- apologies
-#: ../contrib/command-not-found/pk-command-not-found.c:741
+#: ../contrib/command-not-found/pk-command-not-found.c:723
 msgid "command not found"
 msgstr ""
 
 #. TRANSLATORS: tell the user what we think the command is
-#: ../contrib/command-not-found/pk-command-not-found.c:759
+#: ../contrib/command-not-found/pk-command-not-found.c:741
 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:773
+#: ../contrib/command-not-found/pk-command-not-found.c:755
 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:787
-#: ../contrib/command-not-found/pk-command-not-found.c:796
+#: ../contrib/command-not-found/pk-command-not-found.c:769
+#: ../contrib/command-not-found/pk-command-not-found.c:778
 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:803
+#: ../contrib/command-not-found/pk-command-not-found.c:785
 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:821
+#: ../contrib/command-not-found/pk-command-not-found.c:803
 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:828
+#: ../contrib/command-not-found/pk-command-not-found.c:810
 #, 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”?"
 
 #. TRANSLATORS: Show the user a list of packages that provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:855
+#: ../contrib/command-not-found/pk-command-not-found.c:837
 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:865
+#: ../contrib/command-not-found/pk-command-not-found.c:847
 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:874
+#: ../contrib/command-not-found/pk-command-not-found.c:856
 msgid "Please choose a package to install"
 msgstr "Válasszon egy telepítendő csomagot"
 
@@ -1048,7 +1045,7 @@ msgstr "Nem telepít csomagokat szimulációs módban"
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
 #. TRANSLATORS: transaction state, installing packages
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:860
-#: ../lib/packagekit-glib2/pk-console-shared.c:296
+#: ../lib/packagekit-glib2/pk-console-shared.c:331
 #, c-format
 msgid "Installing packages"
 msgstr "Csomagok telepítése"
@@ -1182,474 +1179,474 @@ msgstr "PackageKit csomaglista"
 msgid "PackageKit Service Pack"
 msgstr "PackageKit szervizcsomag"
 
-#: ../lib/packagekit-glib2/pk-console-shared.c:64
+#: ../lib/packagekit-glib2/pk-console-shared.c:65
 #, c-format
 msgid "Please enter a number from 1 to %i: "
 msgstr "Adjon meg egy számot 1-től %i-ig: "
 
 #. TRANSLATORS: more than one package could be found that matched, to follow
 #. is a list of possible packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:198
+#: ../lib/packagekit-glib2/pk-console-shared.c:233
 msgid "More than one package matches:"
 msgstr "Több csomag illeszkedik:"
 
 #. TRANSLATORS: This finds out which package in the list to use
-#: ../lib/packagekit-glib2/pk-console-shared.c:209
+#: ../lib/packagekit-glib2/pk-console-shared.c:244
 msgid "Please choose the correct package: "
 msgstr "Válassza ki a megfelelő csomagot: "
 
 #. TRANSLATORS: This is when the transaction status is not known
-#: ../lib/packagekit-glib2/pk-console-shared.c:264
+#: ../lib/packagekit-glib2/pk-console-shared.c:299
 msgid "Unknown state"
 msgstr "Ismeretlen állapot"
 
 #. TRANSLATORS: transaction state, the daemon is in the process of starting
-#: ../lib/packagekit-glib2/pk-console-shared.c:268
+#: ../lib/packagekit-glib2/pk-console-shared.c:303
 msgid "Starting"
 msgstr "Indul"
 
 #. TRANSLATORS: transaction state, the transaction is waiting for another to
 #. complete
-#: ../lib/packagekit-glib2/pk-console-shared.c:272
+#: ../lib/packagekit-glib2/pk-console-shared.c:307
 msgid "Waiting in queue"
 msgstr "Várakozik a sorban"
 
 #. TRANSLATORS: transaction state, just started
-#: ../lib/packagekit-glib2/pk-console-shared.c:276
+#: ../lib/packagekit-glib2/pk-console-shared.c:311
 msgid "Running"
 msgstr "Fut"
 
 #. TRANSLATORS: transaction state, is querying data
-#: ../lib/packagekit-glib2/pk-console-shared.c:280
+#: ../lib/packagekit-glib2/pk-console-shared.c:315
 msgid "Querying"
 msgstr "Lekérdezés"
 
 #. TRANSLATORS: transaction state, getting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:284
+#: ../lib/packagekit-glib2/pk-console-shared.c:319
 msgid "Getting information"
 msgstr "Információk lekérése"
 
 #. TRANSLATORS: transaction state, removing packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:288
+#: ../lib/packagekit-glib2/pk-console-shared.c:323
 msgid "Removing packages"
 msgstr "Csomagok eltávolítása"
 
 #. TRANSLATORS: transaction state, downloading package files
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:292
-#: ../lib/packagekit-glib2/pk-console-shared.c:670
+#: ../lib/packagekit-glib2/pk-console-shared.c:327
+#: ../lib/packagekit-glib2/pk-console-shared.c:705
 msgid "Downloading packages"
 msgstr "Csomagok letöltése"
 
 #. TRANSLATORS: transaction state, refreshing internal lists
-#: ../lib/packagekit-glib2/pk-console-shared.c:300
+#: ../lib/packagekit-glib2/pk-console-shared.c:335
 msgid "Refreshing software list"
 msgstr "Szoftverlista frissítése"
 
 #. TRANSLATORS: transaction state, installing updates
-#: ../lib/packagekit-glib2/pk-console-shared.c:304
+#: ../lib/packagekit-glib2/pk-console-shared.c:339
 msgid "Installing updates"
 msgstr "Frissítések telepítése"
 
 #. TRANSLATORS: transaction state, removing old packages, and cleaning config
 #. files
-#: ../lib/packagekit-glib2/pk-console-shared.c:308
+#: ../lib/packagekit-glib2/pk-console-shared.c:343
 msgid "Cleaning up packages"
 msgstr "Csomagok tisztítása"
 
 #. TRANSLATORS: transaction state, obsoleting old packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:312
+#: ../lib/packagekit-glib2/pk-console-shared.c:347
 msgid "Obsoleting packages"
 msgstr "Csomagok elavulttá tétele"
 
 #. TRANSLATORS: transaction state, checking the transaction before we do it
-#: ../lib/packagekit-glib2/pk-console-shared.c:316
+#: ../lib/packagekit-glib2/pk-console-shared.c:351
 msgid "Resolving dependencies"
 msgstr "Függőségek feloldása"
 
 #. TRANSLATORS: transaction state, checking if we have all the security keys
 #. for the operation
-#: ../lib/packagekit-glib2/pk-console-shared.c:320
+#: ../lib/packagekit-glib2/pk-console-shared.c:355
 msgid "Checking signatures"
 msgstr "Aláírások ellenőrzése"
 
 #. TRANSLATORS: transaction state, when we return to a previous system state
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:324
-#: ../lib/packagekit-glib2/pk-console-shared.c:630
+#: ../lib/packagekit-glib2/pk-console-shared.c:359
+#: ../lib/packagekit-glib2/pk-console-shared.c:665
 msgid "Rolling back"
 msgstr "Visszagörgetés"
 
 #. TRANSLATORS: transaction state, when we're doing a test transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:328
+#: ../lib/packagekit-glib2/pk-console-shared.c:363
 msgid "Testing changes"
 msgstr "Módosítások tesztelése"
 
 #. TRANSLATORS: transaction state, when we're writing to the system package
 #. database
-#: ../lib/packagekit-glib2/pk-console-shared.c:332
+#: ../lib/packagekit-glib2/pk-console-shared.c:367
 msgid "Committing changes"
 msgstr "Módosítások véglegesítése"
 
 #. TRANSLATORS: transaction state, requesting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:336
+#: ../lib/packagekit-glib2/pk-console-shared.c:371
 msgid "Requesting data"
 msgstr "Adatok lekérése"
 
 #. TRANSLATORS: transaction state, all done!
-#: ../lib/packagekit-glib2/pk-console-shared.c:340
+#: ../lib/packagekit-glib2/pk-console-shared.c:375
 msgid "Finished"
 msgstr "Befejeződött"
 
 #. TRANSLATORS: transaction state, in the process of cancelling
-#: ../lib/packagekit-glib2/pk-console-shared.c:344
+#: ../lib/packagekit-glib2/pk-console-shared.c:379
 msgid "Cancelling"
 msgstr "Megszakítás"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:348
+#: ../lib/packagekit-glib2/pk-console-shared.c:383
 msgid "Downloading repository information"
 msgstr "Tárolóinformációk letöltése"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:352
+#: ../lib/packagekit-glib2/pk-console-shared.c:387
 msgid "Downloading list of packages"
 msgstr "Csomaglista letöltése"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:356
+#: ../lib/packagekit-glib2/pk-console-shared.c:391
 msgid "Downloading file lists"
 msgstr "Fájllisták letöltése"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:360
+#: ../lib/packagekit-glib2/pk-console-shared.c:395
 msgid "Downloading lists of changes"
 msgstr "Változáslisták letöltése"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:364
+#: ../lib/packagekit-glib2/pk-console-shared.c:399
 msgid "Downloading groups"
 msgstr "Csoportok letöltése"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:368
+#: ../lib/packagekit-glib2/pk-console-shared.c:403
 msgid "Downloading update information"
 msgstr "Frissítési információk letöltése"
 
 #. TRANSLATORS: transaction state, repackaging delta files
-#: ../lib/packagekit-glib2/pk-console-shared.c:372
+#: ../lib/packagekit-glib2/pk-console-shared.c:407
 msgid "Repackaging files"
 msgstr "Fájlok újracsomagolása"
 
 #. TRANSLATORS: transaction state, loading databases
-#: ../lib/packagekit-glib2/pk-console-shared.c:376
+#: ../lib/packagekit-glib2/pk-console-shared.c:411
 msgid "Loading cache"
 msgstr "Gyorsítótár betöltése"
 
 #. TRANSLATORS: transaction state, scanning for running processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:380
+#: ../lib/packagekit-glib2/pk-console-shared.c:415
 msgid "Scanning applications"
 msgstr "Alkalmazások vizsgálata"
 
 #. TRANSLATORS: transaction state, generating a list of packages installed on
 #. the system
-#: ../lib/packagekit-glib2/pk-console-shared.c:384
+#: ../lib/packagekit-glib2/pk-console-shared.c:419
 msgid "Generating package lists"
 msgstr "Csomaglisták előállítása"
 
 #. TRANSLATORS: transaction state, when we're waiting for the native tools to
 #. exit
-#: ../lib/packagekit-glib2/pk-console-shared.c:388
+#: ../lib/packagekit-glib2/pk-console-shared.c:423
 msgid "Waiting for package manager lock"
 msgstr "Várakozás a csomagkezelő zárolására"
 
 #. TRANSLATORS: transaction state, waiting for user to type in a password
-#: ../lib/packagekit-glib2/pk-console-shared.c:392
+#: ../lib/packagekit-glib2/pk-console-shared.c:427
 msgid "Waiting for authentication"
 msgstr "Várakozás hitelesítésre"
 
 #. TRANSLATORS: transaction state, we are updating the list of processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:396
+#: ../lib/packagekit-glib2/pk-console-shared.c:431
 msgid "Updating running applications"
 msgstr "Futó alkalmazások frissítése"
 
 #. TRANSLATORS: transaction state, we are checking executable files currently
 #. in use
-#: ../lib/packagekit-glib2/pk-console-shared.c:400
+#: ../lib/packagekit-glib2/pk-console-shared.c:435
 msgid "Checking applications in use"
 msgstr "Használatban lévő alkalmazások keresése"
 
 #. TRANSLATORS: transaction state, we are checking for libraries currently in
 #. use
-#: ../lib/packagekit-glib2/pk-console-shared.c:404
+#: ../lib/packagekit-glib2/pk-console-shared.c:439
 msgid "Checking libraries in use"
 msgstr "Használatban lévő programkönyvtárak keresése"
 
 #. TRANSLATORS: transaction state, we are copying package files before or
 #. after the transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:408
+#: ../lib/packagekit-glib2/pk-console-shared.c:443
 msgid "Copying files"
 msgstr "Fájlok másolása"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:426
+#: ../lib/packagekit-glib2/pk-console-shared.c:461
 msgid "Trivial"
 msgstr "Triviális"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:430
+#: ../lib/packagekit-glib2/pk-console-shared.c:465
 msgid "Normal"
 msgstr "Normál"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:434
+#: ../lib/packagekit-glib2/pk-console-shared.c:469
 msgid "Important"
 msgstr "Fontos"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:438
+#: ../lib/packagekit-glib2/pk-console-shared.c:473
 msgid "Security"
 msgstr "Biztonsági"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:442
+#: ../lib/packagekit-glib2/pk-console-shared.c:477
 msgid "Bug fix "
 msgstr "Hibajavítás"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:446
+#: ../lib/packagekit-glib2/pk-console-shared.c:481
 msgid "Enhancement"
 msgstr "Bővítés"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:450
+#: ../lib/packagekit-glib2/pk-console-shared.c:485
 msgid "Blocked"
 msgstr "Blokkolt"
 
 #. TRANSLATORS: The state of a package
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:455
-#: ../lib/packagekit-glib2/pk-console-shared.c:528
+#: ../lib/packagekit-glib2/pk-console-shared.c:490
+#: ../lib/packagekit-glib2/pk-console-shared.c:563
 msgid "Installed"
 msgstr "Telepítve"
 
 #. TRANSLATORS: The state of a package, i.e. not installed
-#: ../lib/packagekit-glib2/pk-console-shared.c:460
+#: ../lib/packagekit-glib2/pk-console-shared.c:495
 msgid "Available"
 msgstr "Elérhető"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:478
+#: ../lib/packagekit-glib2/pk-console-shared.c:513
 msgid "Downloading"
 msgstr "Letöltés"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:482
+#: ../lib/packagekit-glib2/pk-console-shared.c:517
 msgid "Updating"
 msgstr "Frissítés"
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:486
-#: ../lib/packagekit-glib2/pk-console-shared.c:606
+#: ../lib/packagekit-glib2/pk-console-shared.c:521
+#: ../lib/packagekit-glib2/pk-console-shared.c:641
 msgid "Installing"
 msgstr "Telepítés"
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:490
-#: ../lib/packagekit-glib2/pk-console-shared.c:602
+#: ../lib/packagekit-glib2/pk-console-shared.c:525
+#: ../lib/packagekit-glib2/pk-console-shared.c:637
 msgid "Removing"
 msgstr "Eltávolítás"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:494
+#: ../lib/packagekit-glib2/pk-console-shared.c:529
 msgid "Cleaning up"
 msgstr "Tisztítás"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:498
+#: ../lib/packagekit-glib2/pk-console-shared.c:533
 msgid "Obsoleting"
 msgstr "Elavulttá tétel"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:502
+#: ../lib/packagekit-glib2/pk-console-shared.c:537
 msgid "Reinstalling"
 msgstr "Újratelepítés"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:520
+#: ../lib/packagekit-glib2/pk-console-shared.c:555
 msgid "Downloaded"
 msgstr "Letöltve"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:532
+#: ../lib/packagekit-glib2/pk-console-shared.c:567
 msgid "Removed"
 msgstr "Eltávolítva"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:536
+#: ../lib/packagekit-glib2/pk-console-shared.c:571
 msgid "Cleaned up"
 msgstr "Megtisztítva"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:540
+#: ../lib/packagekit-glib2/pk-console-shared.c:575
 msgid "Obsoleted"
 msgstr "Elavulttá téve"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:544
+#: ../lib/packagekit-glib2/pk-console-shared.c:579
 msgid "Reinstalled"
 msgstr "Újratelepítve"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:562
+#: ../lib/packagekit-glib2/pk-console-shared.c:597
 msgid "Unknown role type"
 msgstr "Ismeretlen szereptípus"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:566
+#: ../lib/packagekit-glib2/pk-console-shared.c:601
 msgid "Getting dependencies"
 msgstr "Függőségek lekérése"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:570
+#: ../lib/packagekit-glib2/pk-console-shared.c:605
 msgid "Getting update details"
 msgstr "Frissítés részleteinek lekérése"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:574
+#: ../lib/packagekit-glib2/pk-console-shared.c:609
 msgid "Getting details"
 msgstr "Részletek lekérése"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:578
+#: ../lib/packagekit-glib2/pk-console-shared.c:613
 msgid "Getting requires"
 msgstr "Követelmények lekérése"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:582
+#: ../lib/packagekit-glib2/pk-console-shared.c:617
 msgid "Getting updates"
 msgstr "Frissítések lekérése"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:586
+#: ../lib/packagekit-glib2/pk-console-shared.c:621
 msgid "Searching by details"
 msgstr "Keresés részletek szerint"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:590
+#: ../lib/packagekit-glib2/pk-console-shared.c:625
 msgid "Searching by file"
 msgstr "Keresés fájl szerint"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:594
+#: ../lib/packagekit-glib2/pk-console-shared.c:629
 msgid "Searching groups"
 msgstr "Csoportok keresése"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:598
+#: ../lib/packagekit-glib2/pk-console-shared.c:633
 msgid "Searching by name"
 msgstr "Keresés név szerint"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:610
+#: ../lib/packagekit-glib2/pk-console-shared.c:645
 msgid "Installing files"
 msgstr "Fájlok telepítése"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:614
+#: ../lib/packagekit-glib2/pk-console-shared.c:649
 msgid "Refreshing cache"
 msgstr "Gyorsítótár frissítése"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:618
+#: ../lib/packagekit-glib2/pk-console-shared.c:653
 msgid "Updating packages"
 msgstr "Csomagok frissítése"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:622
+#: ../lib/packagekit-glib2/pk-console-shared.c:657
 msgid "Updating system"
 msgstr "Rendszer frissítése"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:626
+#: ../lib/packagekit-glib2/pk-console-shared.c:661
 msgid "Canceling"
 msgstr "Megszakítás"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:634
+#: ../lib/packagekit-glib2/pk-console-shared.c:669
 msgid "Getting repositories"
 msgstr "Tárolók lekérése"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:638
+#: ../lib/packagekit-glib2/pk-console-shared.c:673
 msgid "Enabling repository"
 msgstr "Tároló engedélyezése"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:642
+#: ../lib/packagekit-glib2/pk-console-shared.c:677
 msgid "Setting data"
 msgstr "Adatok beállítása"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:646
+#: ../lib/packagekit-glib2/pk-console-shared.c:681
 msgid "Resolving"
 msgstr "Feloldás"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:650
+#: ../lib/packagekit-glib2/pk-console-shared.c:685
 msgid "Getting file list"
 msgstr "Fájllista lekérése"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:654
+#: ../lib/packagekit-glib2/pk-console-shared.c:689
 msgid "Getting provides"
 msgstr "Biztosító csomagok lekérése"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:658
+#: ../lib/packagekit-glib2/pk-console-shared.c:693
 msgid "Installing signature"
 msgstr "Aláírás telepítése"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:662
+#: ../lib/packagekit-glib2/pk-console-shared.c:697
 msgid "Getting packages"
 msgstr "Csomaglista lekérése"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:666
+#: ../lib/packagekit-glib2/pk-console-shared.c:701
 msgid "Accepting EULA"
 msgstr "EULA elfogadása"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:674
+#: ../lib/packagekit-glib2/pk-console-shared.c:709
 msgid "Getting upgrades"
 msgstr "Frissítések lekérése"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:678
+#: ../lib/packagekit-glib2/pk-console-shared.c:713
 msgid "Getting categories"
 msgstr "Kategóriák lekérése"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:682
+#: ../lib/packagekit-glib2/pk-console-shared.c:717
 msgid "Getting transactions"
 msgstr "Tranzakciók lekérése"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:686
-#: ../lib/packagekit-glib2/pk-console-shared.c:690
+#: ../lib/packagekit-glib2/pk-console-shared.c:721
+#: ../lib/packagekit-glib2/pk-console-shared.c:725
 msgid "Simulating install"
 msgstr "Telepítés szimulálása"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:694
+#: ../lib/packagekit-glib2/pk-console-shared.c:729
 msgid "Simulating remove"
 msgstr "Eltávolítás szimulálása"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:698
+#: ../lib/packagekit-glib2/pk-console-shared.c:733
 msgid "Simulating update"
 msgstr "Frissítés szimulálása"
 
@@ -1799,13 +1796,19 @@ msgstr "A következő csomagokat újra kell telepíteni:"
 msgid "The following packages have to be downgraded:"
 msgstr "A következő csomagokat vissza kell fejleszteni:"
 
+#. TRANSLATORS: When processing, untrusted and non-verified packages may be
+#. encountered
+#: ../lib/packagekit-glib2/pk-task-text.c:325
+msgid "The following packages are untrusted:"
+msgstr ""
+
 #. TRANSLATORS: ask the user if the proposed changes are okay
-#: ../lib/packagekit-glib2/pk-task-text.c:380
+#: ../lib/packagekit-glib2/pk-task-text.c:385
 msgid "Proceed with changes?"
 msgstr "Végrehajtja a módosításokat?"
 
 #. TRANSLATORS: tell the user we didn't do anything
-#: ../lib/packagekit-glib2/pk-task-text.c:385
+#: ../lib/packagekit-glib2/pk-task-text.c:390
 msgid "The transaction did not proceed."
 msgstr "A tranzakciót nem folytatta."
 
@@ -2013,103 +2016,71 @@ msgstr "Csomagok frissítése"
 msgid "Upgrade System"
 msgstr ""
 
-#. TRANSLATORS: failed due to DBus security
-#: ../src/pk-main.c:91
-msgid "Startup failed due to security policies on this machine."
-msgstr "Az indulás meghiúsult a gép biztonsági irányelvei miatt."
-
-#. TRANSLATORS: only two ways this can fail...
-#: ../src/pk-main.c:93
-msgid "This can happen for two reasons:"
-msgstr "Ennek két oka lehet:"
-
-#. TRANSLATORS: only allowed to be owned by root
-#: ../src/pk-main.c:95
-msgid "The correct user is not launching the executable (usually root)"
-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:97
-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:223
+#: ../src/pk-main.c:149
 msgid "Packaging backend to use, e.g. dummy"
 msgstr "Használandó csomagkezelő háttérprogram, például: dummy"
 
 #. TRANSLATORS: if we should run in the background
-#: ../src/pk-main.c:226
+#: ../src/pk-main.c:152
 msgid "Daemonize and detach from the terminal"
 msgstr "Démon módba váltás és leválasztás a terminálról"
 
 #. TRANSLATORS: if we should not monitor how long we are inactive for
-#: ../src/pk-main.c:229
+#: ../src/pk-main.c:155
 msgid "Disable the idle timer"
 msgstr "Üresjárati időzítő kikapcsolása"
 
 #. TRANSLATORS: show version
-#: ../src/pk-main.c:232
+#: ../src/pk-main.c:158
 msgid "Show version and exit"
 msgstr "Verziószám kiírása és kilépés"
 
 #. TRANSLATORS: exit after we've started up, used for user profiling
-#: ../src/pk-main.c:235
+#: ../src/pk-main.c:161
 msgid "Exit after a small delay"
 msgstr "Kilépés rövid késleltetés után"
 
 #. TRANSLATORS: exit straight away, used for automatic profiling
-#: ../src/pk-main.c:238
+#: ../src/pk-main.c:164
 msgid "Exit after the engine has loaded"
 msgstr "Kilépés az alrendszer betöltése után"
 
+#. TRANSLATORS: don't unset environment variables, used for debugging
+#: ../src/pk-main.c:167
+msgid "Don't clear environment on startup"
+msgstr ""
+
 #. TRANSLATORS: describing the service that is running
-#: ../src/pk-main.c:253
+#: ../src/pk-main.c:179
 msgid "PackageKit service"
 msgstr "PackageKit szolgáltatás"
 
-#. TRANSLATORS: fatal error, dbus is not running
-#: ../src/pk-main.c:298
-msgid "Cannot connect to the system bus"
-msgstr "Nem lehet csatlakozni a rendszerbuszhoz"
-
-#: ../src/pk-main.c:344
+#: ../src/pk-main.c:253
 msgid "Failed to load any of the specified backends:"
 msgstr ""
 
-#. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error
-#. follows
-#: ../src/pk-main.c:358
-msgid "Error trying to start:"
-msgstr "Hiba az indításkor:"
-
 #. TRANSLATORS: is not GPG signed
-#: ../src/pk-transaction.c:2611 ../src/pk-transaction.c:2618
+#: ../src/pk-transaction.c:2696
 msgid "The software is not from a trusted source."
 msgstr "A szoftver nem hiteles forrásból származik."
 
-#: ../src/pk-transaction.c:2623
+#: ../src/pk-transaction.c:2704
 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."
 
-#: ../src/pk-transaction.c:2624
+#: ../src/pk-transaction.c:2705
 msgid "Do not update these packages unless you are sure it is safe to do so."
 msgstr ""
 "Ne frissítse ezeket a csomagokat, ha nem biztos benne, hogy ez biztonságos."
 
-#: ../src/pk-transaction.c:2634
+#: ../src/pk-transaction.c:2715
 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-transaction.c:2635
+#: ../src/pk-transaction.c:2716
 msgid "Do not install these packages unless you are sure it is safe to do so."
 msgstr ""
 "Ne telepítse ezeket a csomagokat, ha nem biztos benne, hogy ez biztonságos."
diff --git a/po/it.po b/po/it.po
index 0cf3a45..d40c856 100644
--- a/po/it.po
+++ b/po/it.po
@@ -2,14 +2,21 @@
 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
 # This file is distributed under the same license as the PACKAGE package.
 # 
-# Richard Hughes <richard at hughsie.com>, 2011
+# Translators:
+# Daniele Costarella <daniele.costarella at gmail.com>, 2008.
+# Francesco Tombolini <tombo at adamantio.net>, 2008.
+# Francesco Valente <fvalen at redhat.com>, 2008.
+# Luca Ferretti <elle.uca at libero.it>, 2011.
+# mario_santagiuliana <mario at marionline.it>, 2009.
+# Milo Casagrande <milo at ubuntu.com>, 2009.
+# Richard Hughes <richard at hughsie.com>, 2011.
 msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-04 10:50+0100\n"
-"PO-Revision-Date: 2011-05-04 09:56+0000\n"
-"Last-Translator: hughsie <richard at hughsie.com>\n"
+"POT-Creation-Date: 2011-11-10 19:50+0000\n"
+"PO-Revision-Date: 2011-11-10 19:50+0000\n"
+"Last-Translator: Richard Hughes <richard at hughsie.com>\n"
 "Language-Team: Italian (http://www.transifex.net/projects/p/freedesktop/team/it/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -195,7 +202,7 @@ msgstr "Pubblicato"
 
 #. TRANSLATORS: details about the update, date the update was updated
 #. TRANSLATORS: The action of the package, in past tense
-#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:524
+#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:559
 msgid "Updated"
 msgstr "Aggiornato"
 
@@ -281,22 +288,22 @@ msgstr "Errore irreversibile"
 #. can be updated
 #: ../client/pk-console.c:701
 msgid "There are no packages to update."
-msgstr ""
+msgstr "Non ci sono pacchetti da aggiornare"
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
 #: ../client/pk-console.c:704
-#: ../contrib/command-not-found/pk-command-not-found.c:639
+#: ../contrib/command-not-found/pk-command-not-found.c:634
 msgid "The transaction failed"
 msgstr "La transazione non è riuscita"
 
 #. TRANSLATORS: print a message when there are no updates
 #: ../client/pk-console.c:733
 msgid "There are no updates available at this time."
-msgstr "Non ci sono aggiornamenti disponibili."
+msgstr "Al momento non è disponiibile alcun aggiornamento."
 
 #: ../client/pk-console.c:756
 msgid "There are no upgrades available at this time."
-msgstr ""
+msgstr "Al momento non è disponiibile alcun avanzamento di versione."
 
 #. TRANSLATORS: a package needs to restart their system
 #: ../client/pk-console.c:823
@@ -335,24 +342,26 @@ msgid ""
 "Expected package name, actually got file. Try using 'pkcon install-local %s'"
 " instead."
 msgstr ""
+"Atteso nome di pacchetto, ricevuto invece un file. Provare a usare invece "
+"\"pkcon install-local %s\"."
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:866
+#: ../client/pk-console.c:871
 #, c-format
 msgid "This tool could not find any available package: %s"
 msgstr "Questo strumento non può trovare alcun pacchetto disponibile: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:894
+#: ../client/pk-console.c:899
 #, c-format
 msgid "This tool could not find the installed package: %s"
 msgstr "Questo strumento non può trovare il pacchetto installato: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:922 ../client/pk-console.c:950
+#: ../client/pk-console.c:927 ../client/pk-console.c:955
 #, c-format
 msgid "This tool could not find the package: %s"
 msgstr "Questo strumento non può trovare il pacchetto: %s"
@@ -365,70 +374,70 @@ msgstr "Questo strumento non può trovare il pacchetto: %s"
 #. detailed error follows
 #. TRANSLATORS: The package name was not found in any software sources. The
 #. detailed error follows
-#: ../client/pk-console.c:978 ../client/pk-console.c:1006
-#: ../client/pk-console.c:1034 ../client/pk-console.c:1062
-#: ../client/pk-console.c:1090
+#: ../client/pk-console.c:983 ../client/pk-console.c:1011
+#: ../client/pk-console.c:1039 ../client/pk-console.c:1067
+#: ../client/pk-console.c:1095
 #, c-format
 msgid "This tool could not find all the packages: %s"
 msgstr "Questo strumento non può trovare tutti i pacchetti: %s"
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek
 #. without a paddle
-#: ../client/pk-console.c:1119
+#: ../client/pk-console.c:1124
 msgid "The daemon crashed mid-transaction!"
 msgstr "Il demone è andato in crash nel mezzo di una transazione."
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1153
+#: ../client/pk-console.c:1158
 msgid "PackageKit Console Interface"
 msgstr "PackageKit Console Interface"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1155
+#: ../client/pk-console.c:1160
 msgid "Subcommands:"
 msgstr "Sottocomandi:"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was
 #. last executed
-#: ../client/pk-console.c:1235
+#: ../client/pk-console.c:1240
 msgid "Failed to get the time since this action was last completed"
 msgstr "Determinazione dell'ora dell'ultima azione completata non riuscita"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1277 ../client/pk-monitor.c:371
+#: ../client/pk-console.c:1282 ../client/pk-monitor.c:371
 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:1280
+#: ../client/pk-console.c:1285
 msgid "Set the filter, e.g. installed"
 msgstr "Imposta il filtro, es. «installed»"
 
 #. TRANSLATORS: command line argument, use a non-standard install prefix
-#: ../client/pk-console.c:1283
+#: ../client/pk-console.c:1288
 msgid "Set the install root, e.g. '/' or '/mnt/ltsp'"
-msgstr ""
+msgstr "Imposta la radice di installazione, es. «/» o «/mnt/ltsp»"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1286
+#: ../client/pk-console.c:1291
 msgid "Exit without waiting for actions to complete"
 msgstr "Esce senza attendere il completamento delle azioni"
 
 #. command line argument, do we ask questions
-#: ../client/pk-console.c:1289
+#: ../client/pk-console.c:1294
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:525
 msgid "Install the packages without asking for confirmation"
 msgstr "Installa i pacchetti senza chiedere conferma"
 
 #. TRANSLATORS: command line argument, this command is not a priority
-#: ../client/pk-console.c:1292
+#: ../client/pk-console.c:1297
 msgid "Run the command using idle network bandwidth and also using less power"
 msgstr ""
 "Esegue il comando sfruttando i momenti di inattività della rete e consumando"
 " meno energia elettrica"
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1295
+#: ../client/pk-console.c:1300
 msgid ""
 "Print to screen a machine readable output, rather than using animated "
 "widgets"
@@ -437,158 +446,160 @@ msgstr ""
 " animati"
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1298
+#: ../client/pk-console.c:1303
 msgid "The maximum metadata cache age. Use -1 for 'never'."
-msgstr ""
+msgstr "L'età massima della cache dei metadati. Usare -1 per \"never\"."
 
 #. TRANSLATORS: command line argument, --help
-#: ../client/pk-console.c:1301
+#: ../client/pk-console.c:1306
 msgid "Show help options."
-msgstr ""
+msgstr "Mostra le opzioni di aiuto."
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1331
+#: ../client/pk-console.c:1336
 msgid "Failed to parse command line"
-msgstr ""
+msgstr "Analisi della riga di comando non riuscita"
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1341
+#: ../client/pk-console.c:1346
 msgid "Failed to contact PackageKit"
-msgstr "Contatto di PackageKit non riuscito"
+msgstr "Non è stato possibile contattare PackageKit"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1394
+#: ../client/pk-console.c:1399
 msgid "The proxy could not be set"
-msgstr ""
+msgstr "Il proxy potrebbe non essere impostato"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1406
+#: ../client/pk-console.c:1411
 msgid "The install root could not be set"
-msgstr ""
+msgstr "La radice di installazione potrebbe non essere impostata"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1418
+#: ../client/pk-console.c:1423
 msgid "The filter specified was invalid"
 msgstr "Il filtro specificato non era valido"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1437
+#: ../client/pk-console.c:1442
 msgid "A search type is required, e.g. name"
 msgstr "È necessario specificare un tipo di ricerca, es. «name»"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1444 ../client/pk-console.c:1456
-#: ../client/pk-console.c:1468 ../client/pk-console.c:1480
+#: ../client/pk-console.c:1449 ../client/pk-console.c:1461
+#: ../client/pk-console.c:1473 ../client/pk-console.c:1485
 msgid "A search term is required"
 msgstr "È necessario specificare un termine di ricerca"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1490
+#: ../client/pk-console.c:1495
 msgid "Invalid search type"
 msgstr "Tipo di ricerca non valido"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1496
+#: ../client/pk-console.c:1501
 msgid "A package name to install is required"
 msgstr "È necessario specificare un nome di pacchetto da installare"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1505
+#: ../client/pk-console.c:1510
 msgid "A filename to install is required"
 msgstr "È necessario specificare un nome di file da installare"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1516
+#: ../client/pk-console.c:1521
 msgid "A type, key_id and package_id are required"
 msgstr "È necessario specificare un tipo, un key_id e un package_id"
 
 #. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:1527
+#: ../client/pk-console.c:1532
 msgid "A package name to remove is required"
 msgstr "È necessario specificare un nome di un pacchetto da rimuovere"
 
 #. TRANSLATORS: the user did not specify anything about what to download or
 #. where
-#: ../client/pk-console.c:1536
+#: ../client/pk-console.c:1541
 msgid "A destination directory and the package names to download are required"
 msgstr ""
 "È necessario specificare una directory di destinazione e il nome dei "
 "pacchetti da scaricare"
 
 #. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:1543
+#: ../client/pk-console.c:1548
 msgid "Directory not found"
 msgstr "Directory non trovata"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1552
+#: ../client/pk-console.c:1557
 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:1563
+#: ../client/pk-console.c:1568
 msgid "A transaction identifier (tid) is required"
 msgstr "È necessario specificare un identificatore di transazione (tid)"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:1584
+#: ../client/pk-console.c:1589
 msgid "A package name to resolve is required"
 msgstr "È necessario specificare un nome di pacchetto da risolvere"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:1595 ../client/pk-console.c:1606
+#: ../client/pk-console.c:1600 ../client/pk-console.c:1611
 msgid "A repository name is required"
 msgstr "È necessario specificare un nome di repository"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:1617
+#: ../client/pk-console.c:1622
 msgid "A repo name, parameter and value are required"
 msgstr ""
 "È necessario specificare un nome di repository, un parametro e un valore"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:1634
+#: ../client/pk-console.c:1639
 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:1641
+#: ../client/pk-console.c:1646
 msgid "A correct role is required"
 msgstr "È necessario specificare un'azione corretta"
 
 #. 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:1651 ../client/pk-console.c:1665
-#: ../client/pk-console.c:1674 ../client/pk-console.c:1694
-#: ../client/pk-console.c:1703 ../client/pk-generate-pack.c:314
+#: ../client/pk-console.c:1656 ../client/pk-console.c:1670
+#: ../client/pk-console.c:1679 ../client/pk-console.c:1699
+#: ../client/pk-console.c:1708 ../client/pk-generate-pack.c:314
 msgid "A package name is required"
 msgstr "È necessario specificare un nome di pacchetto"
 
 #. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-
 #. decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:1683
+#: ../client/pk-console.c:1688
 msgid "A package provide string is required"
 msgstr "È necessario specificare la stringa dei pacchetti forniti"
 
 #. TRANSLATORS: The user did not provide a distro name
-#: ../client/pk-console.c:1727
+#: ../client/pk-console.c:1732
 msgid "A distribution name is required"
-msgstr ""
+msgstr "È necessario specificare un nome di distribuzione"
 
 #. TRANSLATORS: The user did not provide an upgrade type
-#: ../client/pk-console.c:1733
+#: ../client/pk-console.c:1738
 msgid "An upgrade type is required, e.g. 'minimal', 'default' or 'complete'"
 msgstr ""
+"È necessario specificare un tipo di avanzamento, es. «minimal», «default» o "
+"«complete»."
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command
 #. line
-#: ../client/pk-console.c:1783
+#: ../client/pk-console.c:1788
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "L'opzione «%s» non è supportata"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:1793
+#: ../client/pk-console.c:1798
 msgid "Command failed"
 msgstr "Comando non riuscito"
 
@@ -603,6 +614,8 @@ msgstr "Imposta il nome del file delle dipendenze da escludere"
 msgid ""
 "The output file or directory (the current directory is used if omitted)"
 msgstr ""
+"Il file o la directory di output (se non specificato è usata la directory "
+"corrente)"
 
 #. TRANSLATORS: put a list of packages in the pack
 #: ../client/pk-generate-pack.c:259
@@ -633,7 +646,7 @@ msgstr "È necessario specificare una directory di output o un nome di file"
 #. startup
 #: ../client/pk-generate-pack.c:340
 msgid "The daemon failed to startup"
-msgstr ""
+msgstr "Avvio del demone non riuscito"
 
 #. TRANSLATORS: This is when the backend doesn't have the capability to get-
 #. depends
@@ -717,7 +730,7 @@ msgstr "Recupero dello stato del demone non riuscito"
 
 #: ../client/pk-monitor.c:349
 msgid "Failed to get properties"
-msgstr ""
+msgstr "Recupero delle proprietà non riuscito"
 
 #. TRANSLATORS: this is a program that monitors PackageKit
 #: ../client/pk-monitor.c:387
@@ -725,159 +738,154 @@ msgid "PackageKit Monitor"
 msgstr "PackageKit Monitor"
 
 #. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/pk-plugin-install.c:499
+#: ../contrib/browser-plugin/pk-plugin-install.c:503
 msgid "Getting package information..."
 msgstr "Recupero informazioni sul pacchetto..."
 
 #. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/pk-plugin-install.c:505
+#: ../contrib/browser-plugin/pk-plugin-install.c:509
 #, c-format
 msgid "Run %s"
 msgstr "Eseguire %s"
 
 #. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:511
+#: ../contrib/browser-plugin/pk-plugin-install.c:515
 msgid "Installed version"
 msgstr "Versione installata"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:519
+#: ../contrib/browser-plugin/pk-plugin-install.c:523
 #, c-format
 msgid "Run version %s now"
 msgstr "Eseguire la versione %s ora"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:525
+#: ../contrib/browser-plugin/pk-plugin-install.c:529
 msgid "Run now"
 msgstr "Eseguire ora"
 
 #. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:531
+#: ../contrib/browser-plugin/pk-plugin-install.c:535
 #, c-format
 msgid "Update to version %s"
 msgstr "Aggiornare alla versione %s"
 
 #. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:537
+#: ../contrib/browser-plugin/pk-plugin-install.c:541
 #, c-format
 msgid "Install %s now"
 msgstr "Installare %s ora"
 
 #. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:540
+#: ../contrib/browser-plugin/pk-plugin-install.c:544
 msgid "Version"
 msgstr "Versione"
 
 #. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/pk-plugin-install.c:545
+#: ../contrib/browser-plugin/pk-plugin-install.c:549
 msgid "No packages found for your system"
 msgstr "Non è stato trovato alcun pacchetto per il sistema in uso"
 
 #. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/pk-plugin-install.c:550
+#: ../contrib/browser-plugin/pk-plugin-install.c:554
 msgid "Installing..."
 msgstr "Installazione..."
 
 #. TRANSLATORS: downloading repo data so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:366
+#: ../contrib/command-not-found/pk-command-not-found.c:363
 msgid "Downloading details about the software sources."
 msgstr "Scaricamento dettagli riguardo le sorgenti software."
 
 #. TRANSLATORS: downloading file lists so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:370
+#: ../contrib/command-not-found/pk-command-not-found.c:367
 msgid "Downloading filelists (this may take some time to complete)."
 msgstr "Scaricamento elenco dei file (potrebbe impiegare del tempo)."
 
 #. TRANSLATORS: waiting for native lock
-#: ../contrib/command-not-found/pk-command-not-found.c:374
+#: ../contrib/command-not-found/pk-command-not-found.c:371
 msgid "Waiting for package manager lock."
 msgstr "Attesa del blocco del gestore di pacchetti."
 
 #. TRANSLATORS: loading package cache so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:378
+#: ../contrib/command-not-found/pk-command-not-found.c:375
 msgid "Loading list of packages."
 msgstr "Caricamento elenco dei pacchetti."
 
 #. TRANSLATORS: we failed to find the package, this shouldn't happen
-#: ../contrib/command-not-found/pk-command-not-found.c:444
+#: ../contrib/command-not-found/pk-command-not-found.c:439
 msgid "Failed to search for file"
 msgstr "Ricerca del file non riuscita"
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
-#: ../contrib/command-not-found/pk-command-not-found.c:456
+#: ../contrib/command-not-found/pk-command-not-found.c:451
 msgid "Getting the list of files failed"
-msgstr ""
+msgstr "Recupero dell'elenco dei file non riuscito"
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:602
+#: ../contrib/command-not-found/pk-command-not-found.c:597
 msgid "Failed to launch:"
 msgstr "Esecuzione non riuscita:"
 
 #. TRANSLATORS: we failed to install the package
-#: ../contrib/command-not-found/pk-command-not-found.c:630
+#: ../contrib/command-not-found/pk-command-not-found.c:625
 msgid "Failed to install packages"
 msgstr "Installazione dei pacchetti non riuscita"
 
-#. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/command-not-found/pk-command-not-found.c:706
-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. NOTE: this is lowercase to mimic
 #. * the style of bash itself -- apologies
-#: ../contrib/command-not-found/pk-command-not-found.c:741
+#: ../contrib/command-not-found/pk-command-not-found.c:723
 msgid "command not found"
-msgstr ""
+msgstr "comando non trovato"
 
 #. TRANSLATORS: tell the user what we think the command is
-#: ../contrib/command-not-found/pk-command-not-found.c:759
+#: ../contrib/command-not-found/pk-command-not-found.c:741
 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:773
+#: ../contrib/command-not-found/pk-command-not-found.c:755
 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:787
-#: ../contrib/command-not-found/pk-command-not-found.c:796
+#: ../contrib/command-not-found/pk-command-not-found.c:769
+#: ../contrib/command-not-found/pk-command-not-found.c:778
 msgid "Similar commands are:"
 msgstr "Comandi simili sono:"
 
 #. TRANSLATORS: ask the user to choose a file to run
-#: ../contrib/command-not-found/pk-command-not-found.c:803
+#: ../contrib/command-not-found/pk-command-not-found.c:785
 msgid "Please choose a command to run"
 msgstr "Scegliere un comando da eseguire"
 
 #. TRANSLATORS: tell the user what package provides the command
-#: ../contrib/command-not-found/pk-command-not-found.c:821
+#: ../contrib/command-not-found/pk-command-not-found.c:803
 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:828
+#: ../contrib/command-not-found/pk-command-not-found.c:810
 #, 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:855
+#: ../contrib/command-not-found/pk-command-not-found.c:837
 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:865
+#: ../contrib/command-not-found/pk-command-not-found.c:847
 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:874
+#: ../contrib/command-not-found/pk-command-not-found.c:856
 msgid "Please choose a package to install"
 msgstr "Scegliere un pacchetto da installare"
 
@@ -1051,7 +1059,7 @@ msgstr "I pacchetti non vengono installati nella modalità di simulazione"
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
 #. TRANSLATORS: transaction state, installing packages
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:860
-#: ../lib/packagekit-glib2/pk-console-shared.c:296
+#: ../lib/packagekit-glib2/pk-console-shared.c:331
 #, c-format
 msgid "Installing packages"
 msgstr "Installazione pacchetti"
@@ -1185,474 +1193,474 @@ msgstr "Elenco pacchetti PackageKit"
 msgid "PackageKit Service Pack"
 msgstr "Service pack PackageKit"
 
-#: ../lib/packagekit-glib2/pk-console-shared.c:64
+#: ../lib/packagekit-glib2/pk-console-shared.c:65
 #, c-format
 msgid "Please enter a number from 1 to %i: "
 msgstr "Inserire un numero compreso tra 1 e %i: "
 
 #. TRANSLATORS: more than one package could be found that matched, to follow
 #. is a list of possible packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:198
+#: ../lib/packagekit-glib2/pk-console-shared.c:233
 msgid "More than one package matches:"
 msgstr "Corrisponde più di un pacchetto:"
 
 #. TRANSLATORS: This finds out which package in the list to use
-#: ../lib/packagekit-glib2/pk-console-shared.c:209
+#: ../lib/packagekit-glib2/pk-console-shared.c:244
 msgid "Please choose the correct package: "
 msgstr "Scegliere il pacchetto corretto: "
 
 #. TRANSLATORS: This is when the transaction status is not known
-#: ../lib/packagekit-glib2/pk-console-shared.c:264
+#: ../lib/packagekit-glib2/pk-console-shared.c:299
 msgid "Unknown state"
 msgstr "Stato sconosciuto"
 
 #. TRANSLATORS: transaction state, the daemon is in the process of starting
-#: ../lib/packagekit-glib2/pk-console-shared.c:268
+#: ../lib/packagekit-glib2/pk-console-shared.c:303
 msgid "Starting"
 msgstr "Avvio"
 
 #. TRANSLATORS: transaction state, the transaction is waiting for another to
 #. complete
-#: ../lib/packagekit-glib2/pk-console-shared.c:272
+#: ../lib/packagekit-glib2/pk-console-shared.c:307
 msgid "Waiting in queue"
 msgstr "In attesa nella coda"
 
 #. TRANSLATORS: transaction state, just started
-#: ../lib/packagekit-glib2/pk-console-shared.c:276
+#: ../lib/packagekit-glib2/pk-console-shared.c:311
 msgid "Running"
 msgstr "In esecuzione"
 
 #. TRANSLATORS: transaction state, is querying data
-#: ../lib/packagekit-glib2/pk-console-shared.c:280
+#: ../lib/packagekit-glib2/pk-console-shared.c:315
 msgid "Querying"
 msgstr "Interrogazione"
 
 #. TRANSLATORS: transaction state, getting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:284
+#: ../lib/packagekit-glib2/pk-console-shared.c:319
 msgid "Getting information"
 msgstr "Recupero delle informazioni"
 
 #. TRANSLATORS: transaction state, removing packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:288
+#: ../lib/packagekit-glib2/pk-console-shared.c:323
 msgid "Removing packages"
 msgstr "Rimozione dei pacchetti"
 
 #. TRANSLATORS: transaction state, downloading package files
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:292
-#: ../lib/packagekit-glib2/pk-console-shared.c:670
+#: ../lib/packagekit-glib2/pk-console-shared.c:327
+#: ../lib/packagekit-glib2/pk-console-shared.c:705
 msgid "Downloading packages"
 msgstr "Scaricamento dei pacchetti"
 
 #. TRANSLATORS: transaction state, refreshing internal lists
-#: ../lib/packagekit-glib2/pk-console-shared.c:300
+#: ../lib/packagekit-glib2/pk-console-shared.c:335
 msgid "Refreshing software list"
 msgstr "Aggiornamento dell'elenco software"
 
 #. TRANSLATORS: transaction state, installing updates
-#: ../lib/packagekit-glib2/pk-console-shared.c:304
+#: ../lib/packagekit-glib2/pk-console-shared.c:339
 msgid "Installing updates"
 msgstr "Installazione degli aggiornamenti"
 
 #. TRANSLATORS: transaction state, removing old packages, and cleaning config
 #. files
-#: ../lib/packagekit-glib2/pk-console-shared.c:308
+#: ../lib/packagekit-glib2/pk-console-shared.c:343
 msgid "Cleaning up packages"
 msgstr "Pulizia dei pacchetti"
 
 #. TRANSLATORS: transaction state, obsoleting old packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:312
+#: ../lib/packagekit-glib2/pk-console-shared.c:347
 msgid "Obsoleting packages"
 msgstr "Impostazione dei pacchetti come obsoleti"
 
 #. TRANSLATORS: transaction state, checking the transaction before we do it
-#: ../lib/packagekit-glib2/pk-console-shared.c:316
+#: ../lib/packagekit-glib2/pk-console-shared.c:351
 msgid "Resolving dependencies"
 msgstr "Risoluzione delle dipendenze"
 
 #. TRANSLATORS: transaction state, checking if we have all the security keys
 #. for the operation
-#: ../lib/packagekit-glib2/pk-console-shared.c:320
+#: ../lib/packagekit-glib2/pk-console-shared.c:355
 msgid "Checking signatures"
 msgstr "Controllo delle firme"
 
 #. TRANSLATORS: transaction state, when we return to a previous system state
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:324
-#: ../lib/packagekit-glib2/pk-console-shared.c:630
+#: ../lib/packagekit-glib2/pk-console-shared.c:359
+#: ../lib/packagekit-glib2/pk-console-shared.c:665
 msgid "Rolling back"
 msgstr "Ripristino stato precedente"
 
 #. TRANSLATORS: transaction state, when we're doing a test transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:328
+#: ../lib/packagekit-glib2/pk-console-shared.c:363
 msgid "Testing changes"
 msgstr "Verifica delle modifiche"
 
 #. TRANSLATORS: transaction state, when we're writing to the system package
 #. database
-#: ../lib/packagekit-glib2/pk-console-shared.c:332
+#: ../lib/packagekit-glib2/pk-console-shared.c:367
 msgid "Committing changes"
 msgstr "Invio delle modifiche"
 
 #. TRANSLATORS: transaction state, requesting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:336
+#: ../lib/packagekit-glib2/pk-console-shared.c:371
 msgid "Requesting data"
 msgstr "Richiesta dei dati"
 
 #. TRANSLATORS: transaction state, all done!
-#: ../lib/packagekit-glib2/pk-console-shared.c:340
+#: ../lib/packagekit-glib2/pk-console-shared.c:375
 msgid "Finished"
 msgstr "Completato"
 
 #. TRANSLATORS: transaction state, in the process of cancelling
-#: ../lib/packagekit-glib2/pk-console-shared.c:344
+#: ../lib/packagekit-glib2/pk-console-shared.c:379
 msgid "Cancelling"
 msgstr "Annullamento"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:348
+#: ../lib/packagekit-glib2/pk-console-shared.c:383
 msgid "Downloading repository information"
 msgstr "Scaricamento informazioni sul repository"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:352
+#: ../lib/packagekit-glib2/pk-console-shared.c:387
 msgid "Downloading list of packages"
 msgstr "Scaricamento elenco dei pacchetti"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:356
+#: ../lib/packagekit-glib2/pk-console-shared.c:391
 msgid "Downloading file lists"
 msgstr "Scaricamento elenco dei file"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:360
+#: ../lib/packagekit-glib2/pk-console-shared.c:395
 msgid "Downloading lists of changes"
 msgstr "Scaricamento elenco delle modifiche"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:364
+#: ../lib/packagekit-glib2/pk-console-shared.c:399
 msgid "Downloading groups"
 msgstr "Scaricamento gruppi"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:368
+#: ../lib/packagekit-glib2/pk-console-shared.c:403
 msgid "Downloading update information"
 msgstr "Scaricamento informazioni di aggiornamento"
 
 #. TRANSLATORS: transaction state, repackaging delta files
-#: ../lib/packagekit-glib2/pk-console-shared.c:372
+#: ../lib/packagekit-glib2/pk-console-shared.c:407
 msgid "Repackaging files"
 msgstr "Ricreazione dei file"
 
 #. TRANSLATORS: transaction state, loading databases
-#: ../lib/packagekit-glib2/pk-console-shared.c:376
+#: ../lib/packagekit-glib2/pk-console-shared.c:411
 msgid "Loading cache"
 msgstr "Caricamento della cache"
 
 #. TRANSLATORS: transaction state, scanning for running processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:380
+#: ../lib/packagekit-glib2/pk-console-shared.c:415
 msgid "Scanning applications"
 msgstr "Analisi delle applicazioni"
 
 #. TRANSLATORS: transaction state, generating a list of packages installed on
 #. the system
-#: ../lib/packagekit-glib2/pk-console-shared.c:384
+#: ../lib/packagekit-glib2/pk-console-shared.c:419
 msgid "Generating package lists"
 msgstr "Generazione elenchi dei pacchetti"
 
 #. TRANSLATORS: transaction state, when we're waiting for the native tools to
 #. exit
-#: ../lib/packagekit-glib2/pk-console-shared.c:388
+#: ../lib/packagekit-glib2/pk-console-shared.c:423
 msgid "Waiting for package manager lock"
 msgstr "Attesa del blocco del gestore di pacchetti"
 
 #. TRANSLATORS: transaction state, waiting for user to type in a password
-#: ../lib/packagekit-glib2/pk-console-shared.c:392
+#: ../lib/packagekit-glib2/pk-console-shared.c:427
 msgid "Waiting for authentication"
 msgstr "Attesa dell'autenticazione"
 
 #. TRANSLATORS: transaction state, we are updating the list of processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:396
+#: ../lib/packagekit-glib2/pk-console-shared.c:431
 msgid "Updating running applications"
 msgstr "Aggiornamento applicazioni in esecuzione"
 
 #. TRANSLATORS: transaction state, we are checking executable files currently
 #. in use
-#: ../lib/packagekit-glib2/pk-console-shared.c:400
+#: ../lib/packagekit-glib2/pk-console-shared.c:435
 msgid "Checking applications in use"
 msgstr "Controllo applicazioni in uso"
 
 #. TRANSLATORS: transaction state, we are checking for libraries currently in
 #. use
-#: ../lib/packagekit-glib2/pk-console-shared.c:404
+#: ../lib/packagekit-glib2/pk-console-shared.c:439
 msgid "Checking libraries in use"
 msgstr "Controllo librerie in uso"
 
 #. TRANSLATORS: transaction state, we are copying package files before or
 #. after the transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:408
+#: ../lib/packagekit-glib2/pk-console-shared.c:443
 msgid "Copying files"
 msgstr "Copia dei file"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:426
+#: ../lib/packagekit-glib2/pk-console-shared.c:461
 msgid "Trivial"
 msgstr "Banale"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:430
+#: ../lib/packagekit-glib2/pk-console-shared.c:465
 msgid "Normal"
 msgstr "Normale"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:434
+#: ../lib/packagekit-glib2/pk-console-shared.c:469
 msgid "Important"
 msgstr "Importante"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:438
+#: ../lib/packagekit-glib2/pk-console-shared.c:473
 msgid "Security"
 msgstr "Sicurezza"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:442
+#: ../lib/packagekit-glib2/pk-console-shared.c:477
 msgid "Bug fix "
 msgstr "Correzione bug"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:446
+#: ../lib/packagekit-glib2/pk-console-shared.c:481
 msgid "Enhancement"
 msgstr "Miglioramento"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:450
+#: ../lib/packagekit-glib2/pk-console-shared.c:485
 msgid "Blocked"
 msgstr "Bloccato"
 
 #. TRANSLATORS: The state of a package
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:455
-#: ../lib/packagekit-glib2/pk-console-shared.c:528
+#: ../lib/packagekit-glib2/pk-console-shared.c:490
+#: ../lib/packagekit-glib2/pk-console-shared.c:563
 msgid "Installed"
 msgstr "Installato"
 
 #. TRANSLATORS: The state of a package, i.e. not installed
-#: ../lib/packagekit-glib2/pk-console-shared.c:460
+#: ../lib/packagekit-glib2/pk-console-shared.c:495
 msgid "Available"
 msgstr "Disponibile"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:478
+#: ../lib/packagekit-glib2/pk-console-shared.c:513
 msgid "Downloading"
 msgstr "Scaricamento"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:482
+#: ../lib/packagekit-glib2/pk-console-shared.c:517
 msgid "Updating"
 msgstr "Aggiornamento"
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:486
-#: ../lib/packagekit-glib2/pk-console-shared.c:606
+#: ../lib/packagekit-glib2/pk-console-shared.c:521
+#: ../lib/packagekit-glib2/pk-console-shared.c:641
 msgid "Installing"
 msgstr "Installazione"
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:490
-#: ../lib/packagekit-glib2/pk-console-shared.c:602
+#: ../lib/packagekit-glib2/pk-console-shared.c:525
+#: ../lib/packagekit-glib2/pk-console-shared.c:637
 msgid "Removing"
 msgstr "Rimozione"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:494
+#: ../lib/packagekit-glib2/pk-console-shared.c:529
 msgid "Cleaning up"
 msgstr "Pulizia"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:498
+#: ../lib/packagekit-glib2/pk-console-shared.c:533
 msgid "Obsoleting"
 msgstr "Impostazione come obsoleto"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:502
+#: ../lib/packagekit-glib2/pk-console-shared.c:537
 msgid "Reinstalling"
 msgstr "Reinstallazione"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:520
+#: ../lib/packagekit-glib2/pk-console-shared.c:555
 msgid "Downloaded"
 msgstr "Scaricato"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:532
+#: ../lib/packagekit-glib2/pk-console-shared.c:567
 msgid "Removed"
 msgstr "Rimosso"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:536
+#: ../lib/packagekit-glib2/pk-console-shared.c:571
 msgid "Cleaned up"
 msgstr "Pulito"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:540
+#: ../lib/packagekit-glib2/pk-console-shared.c:575
 msgid "Obsoleted"
 msgstr "Obsoleto"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:544
+#: ../lib/packagekit-glib2/pk-console-shared.c:579
 msgid "Reinstalled"
 msgstr "Reinstallato"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:562
+#: ../lib/packagekit-glib2/pk-console-shared.c:597
 msgid "Unknown role type"
 msgstr "Tipo di azione sconosciuta"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:566
+#: ../lib/packagekit-glib2/pk-console-shared.c:601
 msgid "Getting dependencies"
 msgstr "Recupero delle dipendenze"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:570
+#: ../lib/packagekit-glib2/pk-console-shared.c:605
 msgid "Getting update details"
 msgstr "Recupero dei dettagli di aggiornamento"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:574
+#: ../lib/packagekit-glib2/pk-console-shared.c:609
 msgid "Getting details"
 msgstr "Recupero dei dettagli"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:578
+#: ../lib/packagekit-glib2/pk-console-shared.c:613
 msgid "Getting requires"
 msgstr "Recupero dei pacchetti necessari"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:582
+#: ../lib/packagekit-glib2/pk-console-shared.c:617
 msgid "Getting updates"
 msgstr "Recupero aggiornamenti"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:586
+#: ../lib/packagekit-glib2/pk-console-shared.c:621
 msgid "Searching by details"
 msgstr "Ricerca per dettagli"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:590
+#: ../lib/packagekit-glib2/pk-console-shared.c:625
 msgid "Searching by file"
 msgstr "Ricerca per file"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:594
+#: ../lib/packagekit-glib2/pk-console-shared.c:629
 msgid "Searching groups"
 msgstr "Ricerca dei gruppi"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:598
+#: ../lib/packagekit-glib2/pk-console-shared.c:633
 msgid "Searching by name"
 msgstr "Ricerca per nome"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:610
+#: ../lib/packagekit-glib2/pk-console-shared.c:645
 msgid "Installing files"
 msgstr "Installazione dei file"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:614
+#: ../lib/packagekit-glib2/pk-console-shared.c:649
 msgid "Refreshing cache"
 msgstr "Aggiornamento della cache"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:618
+#: ../lib/packagekit-glib2/pk-console-shared.c:653
 msgid "Updating packages"
 msgstr "Aggiornamento dei pacchetti"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:622
+#: ../lib/packagekit-glib2/pk-console-shared.c:657
 msgid "Updating system"
 msgstr "Aggiornamento del sistema"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:626
+#: ../lib/packagekit-glib2/pk-console-shared.c:661
 msgid "Canceling"
 msgstr "Annullamento"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:634
+#: ../lib/packagekit-glib2/pk-console-shared.c:669
 msgid "Getting repositories"
 msgstr "Recupero dei repository"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:638
+#: ../lib/packagekit-glib2/pk-console-shared.c:673
 msgid "Enabling repository"
 msgstr "Abilitazione dei repository"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:642
+#: ../lib/packagekit-glib2/pk-console-shared.c:677
 msgid "Setting data"
 msgstr "Impostazione dei dati"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:646
+#: ../lib/packagekit-glib2/pk-console-shared.c:681
 msgid "Resolving"
 msgstr "Risoluzione"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:650
+#: ../lib/packagekit-glib2/pk-console-shared.c:685
 msgid "Getting file list"
 msgstr "Recupero elenco dei file"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:654
+#: ../lib/packagekit-glib2/pk-console-shared.c:689
 msgid "Getting provides"
 msgstr "Recupero dei pacchetti forniti"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:658
+#: ../lib/packagekit-glib2/pk-console-shared.c:693
 msgid "Installing signature"
 msgstr "Installazione delle firme"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:662
+#: ../lib/packagekit-glib2/pk-console-shared.c:697
 msgid "Getting packages"
 msgstr "Recupero dei pacchetti"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:666
+#: ../lib/packagekit-glib2/pk-console-shared.c:701
 msgid "Accepting EULA"
 msgstr "Accettazione dell'EULA"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:674
+#: ../lib/packagekit-glib2/pk-console-shared.c:709
 msgid "Getting upgrades"
 msgstr "Recupero degli aggiornamenti"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:678
+#: ../lib/packagekit-glib2/pk-console-shared.c:713
 msgid "Getting categories"
 msgstr "Recupero delle categorie"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:682
+#: ../lib/packagekit-glib2/pk-console-shared.c:717
 msgid "Getting transactions"
 msgstr "Recupero delle transazioni"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:686
-#: ../lib/packagekit-glib2/pk-console-shared.c:690
+#: ../lib/packagekit-glib2/pk-console-shared.c:721
+#: ../lib/packagekit-glib2/pk-console-shared.c:725
 msgid "Simulating install"
 msgstr "Simulazione dell'installazione"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:694
+#: ../lib/packagekit-glib2/pk-console-shared.c:729
 msgid "Simulating remove"
 msgstr "Simulazione della rimozione"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:698
+#: ../lib/packagekit-glib2/pk-console-shared.c:733
 msgid "Simulating update"
 msgstr "Simulazione dell'aggiornamento"
 
@@ -1802,13 +1810,19 @@ msgstr "I seguenti pacchetti devono essere reinstallati:"
 msgid "The following packages have to be downgraded:"
 msgstr "I seguenti pacchetti devono essere portati a una vecchia versione:"
 
+#. TRANSLATORS: When processing, untrusted and non-verified packages may be
+#. encountered
+#: ../lib/packagekit-glib2/pk-task-text.c:325
+msgid "The following packages are untrusted:"
+msgstr "I seguenti pacchetti non sono fidati:"
+
 #. TRANSLATORS: ask the user if the proposed changes are okay
-#: ../lib/packagekit-glib2/pk-task-text.c:380
+#: ../lib/packagekit-glib2/pk-task-text.c:385
 msgid "Proceed with changes?"
 msgstr "Procedere con le modifiche?"
 
 #. TRANSLATORS: tell the user we didn't do anything
-#: ../lib/packagekit-glib2/pk-task-text.c:385
+#: ../lib/packagekit-glib2/pk-task-text.c:390
 msgid "The transaction did not proceed."
 msgstr "La transazione non è stata eseguita."
 
@@ -1843,6 +1857,8 @@ msgid ""
 "Authentication is required to change the location used to decompress "
 "packages"
 msgstr ""
+"Per cambiare la posizione usata per decomprimere i pacchetti è necessaria "
+"l'autenticazione"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:12
 msgid ""
@@ -1893,6 +1909,8 @@ msgstr "Per aggiornare i pacchetti è necessaria l'autenticazione"
 #: ../policy/org.freedesktop.packagekit.policy.in.h:21
 msgid "Authentication is required to upgrade the operating system"
 msgstr ""
+"Per eseguire l'avanzamento del sistema operativo è necessaria "
+"l'autenticazione."
 
 #. SECURITY:
 #. - Normal users are allowed to cancel their own task without
@@ -1911,7 +1929,7 @@ msgstr "Attività esterna da annullare"
 #. 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:34
 msgid "Change location that packages are installed"
-msgstr ""
+msgstr "Cambia la posizione in cui sono installati i pacchetti"
 
 #. SECURITY:
 #. - Normal users require admin authentication to enable or disable
@@ -2010,7 +2028,7 @@ msgstr "Dare fiducia a una chiave usata per firmare pacchetti"
 #. 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:103
 msgid "Update packages"
-msgstr "Pacchetti da aggiornare"
+msgstr "Aggiornamento dei pacchetti"
 
 #. SECURITY:
 #. - Normal users require admin authentication to upgrade the disto as
@@ -2019,108 +2037,76 @@ msgstr "Pacchetti da aggiornare"
 #. 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:109
 msgid "Upgrade System"
-msgstr ""
-
-#. TRANSLATORS: failed due to DBus security
-#: ../src/pk-main.c:91
-msgid "Startup failed due to security policies on this machine."
-msgstr ""
-"Avvio non riuscito a causa delle politiche di sicurezza presenti su questo "
-"computer."
-
-#. TRANSLATORS: only two ways this can fail...
-#: ../src/pk-main.c:93
-msgid "This can happen for two reasons:"
-msgstr "Ciò può accadere per due motivi:"
-
-#. TRANSLATORS: only allowed to be owned by root
-#: ../src/pk-main.c:95
-msgid "The correct user is not launching the executable (usually root)"
-msgstr "L'eseguibile non è lanciato dall'utente corretto (di solito root)"
-
-#. TRANSLATORS: or we are installed in a prefix
-#: ../src/pk-main.c:97
-msgid ""
-"The org.freedesktop.PackageKit.conf file is not installed in the system "
-"directory:"
-msgstr ""
-"Il file org.freedesktop.PackageKit.conf non è installato nella directory di "
-"sistema:"
+msgstr "Avanzamento del sistema"
 
 #. TRANSLATORS: a backend is the system package tool, e.g. yum, apt
-#: ../src/pk-main.c:223
+#: ../src/pk-main.c:149
 msgid "Packaging backend to use, e.g. dummy"
 msgstr "Backend per la gestione dei pacchetti da utilizzare, es. dummy"
 
 #. TRANSLATORS: if we should run in the background
-#: ../src/pk-main.c:226
+#: ../src/pk-main.c:152
 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:229
+#: ../src/pk-main.c:155
 msgid "Disable the idle timer"
 msgstr "Disattiva il timer di inattività"
 
 #. TRANSLATORS: show version
-#: ../src/pk-main.c:232
+#: ../src/pk-main.c:158
 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:235
+#: ../src/pk-main.c:161
 msgid "Exit after a small delay"
 msgstr "Esce dopo un piccolo ritardo"
 
 #. TRANSLATORS: exit straight away, used for automatic profiling
-#: ../src/pk-main.c:238
+#: ../src/pk-main.c:164
 msgid "Exit after the engine has loaded"
 msgstr "Esce dopo il caricamento del motore"
 
+#. TRANSLATORS: don't unset environment variables, used for debugging
+#: ../src/pk-main.c:167
+msgid "Don't clear environment on startup"
+msgstr ""
+
 #. TRANSLATORS: describing the service that is running
-#: ../src/pk-main.c:253
+#: ../src/pk-main.c:179
 msgid "PackageKit service"
 msgstr "Servizio PackageKit"
 
-#. TRANSLATORS: fatal error, dbus is not running
-#: ../src/pk-main.c:298
-msgid "Cannot connect to the system bus"
-msgstr "Impossibile connettersi al bus di sistema"
-
-#: ../src/pk-main.c:344
+#: ../src/pk-main.c:253
 msgid "Failed to load any of the specified backends:"
-msgstr ""
-
-#. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error
-#. follows
-#: ../src/pk-main.c:358
-msgid "Error trying to start:"
-msgstr "Errore di avvio:"
+msgstr "Caricamento non riuscito di ciascuno dei backend specificati:"
 
 #. TRANSLATORS: is not GPG signed
-#: ../src/pk-transaction.c:2611 ../src/pk-transaction.c:2618
+#: ../src/pk-transaction.c:2696
 msgid "The software is not from a trusted source."
 msgstr "Il software non proviene da una sorgente fidata."
 
-#: ../src/pk-transaction.c:2623
+#: ../src/pk-transaction.c:2704
 msgid "Do not update this package unless you are sure it is safe to do so."
 msgstr ""
 "È consigliabile non aggiornare questo pacchetto se non si è sicuri che sia "
 "affidabile."
 
-#: ../src/pk-transaction.c:2624
+#: ../src/pk-transaction.c:2705
 msgid "Do not update these packages unless you are sure it is safe to do so."
 msgstr ""
 "È consigliabile non aggiornare questi pacchetti se non si è sicuri che siano"
 " affidabili."
 
-#: ../src/pk-transaction.c:2634
+#: ../src/pk-transaction.c:2715
 msgid "Do not install this package unless you are sure it is safe to do so."
 msgstr ""
 "È consigliabile non installare questo pacchetto se non si è sicuri che sia "
 "affidabile."
 
-#: ../src/pk-transaction.c:2635
+#: ../src/pk-transaction.c:2716
 msgid "Do not install these packages unless you are sure it is safe to do so."
 msgstr ""
 "È consigliabile non installare questi pacchetti se non si è sicuri che siano"
diff --git a/po/it_IT.po b/po/it_IT.po
index b271c9c..8dc76e9 100644
--- a/po/it_IT.po
+++ b/po/it_IT.po
@@ -2,14 +2,15 @@
 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
 # This file is distributed under the same license as the PACKAGE package.
 # 
-# Luca Ferretti <elle.uca at libero.it>, 2011
+# Translators:
+# Luca Ferretti <elle.uca at libero.it>, 2011.
 msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-04 10:50+0100\n"
-"PO-Revision-Date: 2011-05-04 09:56+0000\n"
-"Last-Translator: hughsie <richard at hughsie.com>\n"
+"POT-Creation-Date: 2011-11-10 19:50+0000\n"
+"PO-Revision-Date: 2011-11-10 19:50+0000\n"
+"Last-Translator: Richard Hughes <richard at hughsie.com>\n"
 "Language-Team: LANGUAGE <LL at li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -195,7 +196,7 @@ msgstr ""
 
 #. TRANSLATORS: details about the update, date the update was updated
 #. TRANSLATORS: The action of the package, in past tense
-#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:524
+#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:559
 msgid "Updated"
 msgstr "Aggiornato"
 
@@ -285,7 +286,7 @@ msgstr "Non c'è alcun pacchetto da aggiornare."
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
 #: ../client/pk-console.c:704
-#: ../contrib/command-not-found/pk-command-not-found.c:639
+#: ../contrib/command-not-found/pk-command-not-found.c:634
 msgid "The transaction failed"
 msgstr "La transazione non è riuscita"
 
@@ -339,7 +340,7 @@ msgstr ""
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:866
+#: ../client/pk-console.c:871
 #, c-format
 msgid "This tool could not find any available package: %s"
 msgstr ""
@@ -347,14 +348,14 @@ msgstr ""
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:894
+#: ../client/pk-console.c:899
 #, c-format
 msgid "This tool could not find the installed package: %s"
 msgstr ""
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:922 ../client/pk-console.c:950
+#: ../client/pk-console.c:927 ../client/pk-console.c:955
 #, c-format
 msgid "This tool could not find the package: %s"
 msgstr ""
@@ -367,223 +368,223 @@ msgstr ""
 #. detailed error follows
 #. TRANSLATORS: The package name was not found in any software sources. The
 #. detailed error follows
-#: ../client/pk-console.c:978 ../client/pk-console.c:1006
-#: ../client/pk-console.c:1034 ../client/pk-console.c:1062
-#: ../client/pk-console.c:1090
+#: ../client/pk-console.c:983 ../client/pk-console.c:1011
+#: ../client/pk-console.c:1039 ../client/pk-console.c:1067
+#: ../client/pk-console.c:1095
 #, c-format
 msgid "This tool could not find all the packages: %s"
 msgstr ""
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek
 #. without a paddle
-#: ../client/pk-console.c:1119
+#: ../client/pk-console.c:1124
 msgid "The daemon crashed mid-transaction!"
 msgstr ""
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1153
+#: ../client/pk-console.c:1158
 msgid "PackageKit Console Interface"
 msgstr ""
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1155
+#: ../client/pk-console.c:1160
 msgid "Subcommands:"
 msgstr ""
 
 #. TRANSLATORS: we keep a database updated with the time that an action was
 #. last executed
-#: ../client/pk-console.c:1235
+#: ../client/pk-console.c:1240
 msgid "Failed to get the time since this action was last completed"
 msgstr ""
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1277 ../client/pk-monitor.c:371
+#: ../client/pk-console.c:1282 ../client/pk-monitor.c:371
 msgid "Show the program version and exit"
 msgstr ""
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1280
+#: ../client/pk-console.c:1285
 msgid "Set the filter, e.g. installed"
 msgstr ""
 
 #. TRANSLATORS: command line argument, use a non-standard install prefix
-#: ../client/pk-console.c:1283
+#: ../client/pk-console.c:1288
 msgid "Set the install root, e.g. '/' or '/mnt/ltsp'"
 msgstr ""
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1286
+#: ../client/pk-console.c:1291
 msgid "Exit without waiting for actions to complete"
 msgstr ""
 
 #. command line argument, do we ask questions
-#: ../client/pk-console.c:1289
+#: ../client/pk-console.c:1294
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:525
 msgid "Install the packages without asking for confirmation"
 msgstr ""
 
 #. TRANSLATORS: command line argument, this command is not a priority
-#: ../client/pk-console.c:1292
+#: ../client/pk-console.c:1297
 msgid "Run the command using idle network bandwidth and also using less power"
 msgstr ""
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1295
+#: ../client/pk-console.c:1300
 msgid ""
 "Print to screen a machine readable output, rather than using animated "
 "widgets"
 msgstr ""
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1298
+#: ../client/pk-console.c:1303
 msgid "The maximum metadata cache age. Use -1 for 'never'."
 msgstr ""
 
 #. TRANSLATORS: command line argument, --help
-#: ../client/pk-console.c:1301
+#: ../client/pk-console.c:1306
 msgid "Show help options."
 msgstr ""
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1331
+#: ../client/pk-console.c:1336
 msgid "Failed to parse command line"
 msgstr ""
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1341
+#: ../client/pk-console.c:1346
 msgid "Failed to contact PackageKit"
 msgstr ""
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1394
+#: ../client/pk-console.c:1399
 msgid "The proxy could not be set"
 msgstr ""
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1406
+#: ../client/pk-console.c:1411
 msgid "The install root could not be set"
 msgstr ""
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1418
+#: ../client/pk-console.c:1423
 msgid "The filter specified was invalid"
 msgstr ""
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1437
+#: ../client/pk-console.c:1442
 msgid "A search type is required, e.g. name"
 msgstr ""
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1444 ../client/pk-console.c:1456
-#: ../client/pk-console.c:1468 ../client/pk-console.c:1480
+#: ../client/pk-console.c:1449 ../client/pk-console.c:1461
+#: ../client/pk-console.c:1473 ../client/pk-console.c:1485
 msgid "A search term is required"
 msgstr ""
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1490
+#: ../client/pk-console.c:1495
 msgid "Invalid search type"
 msgstr ""
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1496
+#: ../client/pk-console.c:1501
 msgid "A package name to install is required"
 msgstr ""
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1505
+#: ../client/pk-console.c:1510
 msgid "A filename to install is required"
 msgstr ""
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1516
+#: ../client/pk-console.c:1521
 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:1527
+#: ../client/pk-console.c:1532
 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:1536
+#: ../client/pk-console.c:1541
 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:1543
+#: ../client/pk-console.c:1548
 msgid "Directory not found"
 msgstr ""
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1552
+#: ../client/pk-console.c:1557
 msgid "A licence identifier (eula-id) is required"
 msgstr ""
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1563
+#: ../client/pk-console.c:1568
 msgid "A transaction identifier (tid) is required"
 msgstr ""
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:1584
+#: ../client/pk-console.c:1589
 msgid "A package name to resolve is required"
 msgstr ""
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:1595 ../client/pk-console.c:1606
+#: ../client/pk-console.c:1600 ../client/pk-console.c:1611
 msgid "A repository name is required"
 msgstr ""
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:1617
+#: ../client/pk-console.c:1622
 msgid "A repo name, parameter and value are required"
 msgstr ""
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:1634
+#: ../client/pk-console.c:1639
 msgid "An action, e.g. 'update-system' is required"
 msgstr ""
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:1641
+#: ../client/pk-console.c:1646
 msgid "A correct role is required"
 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:1651 ../client/pk-console.c:1665
-#: ../client/pk-console.c:1674 ../client/pk-console.c:1694
-#: ../client/pk-console.c:1703 ../client/pk-generate-pack.c:314
+#: ../client/pk-console.c:1656 ../client/pk-console.c:1670
+#: ../client/pk-console.c:1679 ../client/pk-console.c:1699
+#: ../client/pk-console.c:1708 ../client/pk-generate-pack.c:314
 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:1683
+#: ../client/pk-console.c:1688
 msgid "A package provide string is required"
 msgstr ""
 
 #. TRANSLATORS: The user did not provide a distro name
-#: ../client/pk-console.c:1727
+#: ../client/pk-console.c:1732
 msgid "A distribution name is required"
 msgstr ""
 
 #. TRANSLATORS: The user did not provide an upgrade type
-#: ../client/pk-console.c:1733
+#: ../client/pk-console.c:1738
 msgid "An upgrade type is required, e.g. 'minimal', 'default' or 'complete'"
 msgstr ""
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command
 #. line
-#: ../client/pk-console.c:1783
+#: ../client/pk-console.c:1788
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr ""
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:1793
+#: ../client/pk-console.c:1798
 msgid "Command failed"
 msgstr ""
 
@@ -718,159 +719,154 @@ msgid "PackageKit Monitor"
 msgstr ""
 
 #. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/pk-plugin-install.c:499
+#: ../contrib/browser-plugin/pk-plugin-install.c:503
 msgid "Getting package information..."
 msgstr ""
 
 #. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/pk-plugin-install.c:505
+#: ../contrib/browser-plugin/pk-plugin-install.c:509
 #, c-format
 msgid "Run %s"
 msgstr ""
 
 #. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:511
+#: ../contrib/browser-plugin/pk-plugin-install.c:515
 msgid "Installed version"
 msgstr ""
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:519
+#: ../contrib/browser-plugin/pk-plugin-install.c:523
 #, c-format
 msgid "Run version %s now"
 msgstr ""
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:525
+#: ../contrib/browser-plugin/pk-plugin-install.c:529
 msgid "Run now"
 msgstr ""
 
 #. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:531
+#: ../contrib/browser-plugin/pk-plugin-install.c:535
 #, c-format
 msgid "Update to version %s"
 msgstr ""
 
 #. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:537
+#: ../contrib/browser-plugin/pk-plugin-install.c:541
 #, c-format
 msgid "Install %s now"
 msgstr ""
 
 #. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:540
+#: ../contrib/browser-plugin/pk-plugin-install.c:544
 msgid "Version"
 msgstr ""
 
 #. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/pk-plugin-install.c:545
+#: ../contrib/browser-plugin/pk-plugin-install.c:549
 msgid "No packages found for your system"
 msgstr ""
 
 #. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/pk-plugin-install.c:550
+#: ../contrib/browser-plugin/pk-plugin-install.c:554
 msgid "Installing..."
 msgstr ""
 
 #. TRANSLATORS: downloading repo data so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:366
+#: ../contrib/command-not-found/pk-command-not-found.c:363
 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:370
+#: ../contrib/command-not-found/pk-command-not-found.c:367
 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:374
+#: ../contrib/command-not-found/pk-command-not-found.c:371
 msgid "Waiting for package manager lock."
 msgstr ""
 
 #. TRANSLATORS: loading package cache so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:378
+#: ../contrib/command-not-found/pk-command-not-found.c:375
 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:444
+#: ../contrib/command-not-found/pk-command-not-found.c:439
 msgid "Failed to search for file"
 msgstr ""
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
-#: ../contrib/command-not-found/pk-command-not-found.c:456
+#: ../contrib/command-not-found/pk-command-not-found.c:451
 msgid "Getting the list of files failed"
 msgstr ""
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:602
+#: ../contrib/command-not-found/pk-command-not-found.c:597
 msgid "Failed to launch:"
 msgstr ""
 
 #. TRANSLATORS: we failed to install the package
-#: ../contrib/command-not-found/pk-command-not-found.c:630
+#: ../contrib/command-not-found/pk-command-not-found.c:625
 msgid "Failed to install packages"
 msgstr ""
 
-#. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/command-not-found/pk-command-not-found.c:706
-msgid "PackageKit Command Not Found"
-msgstr ""
-
 #. TRANSLATORS: the prefix of all the output telling the user
 #. * why it's not executing. NOTE: this is lowercase to mimic
 #. * the style of bash itself -- apologies
-#: ../contrib/command-not-found/pk-command-not-found.c:741
+#: ../contrib/command-not-found/pk-command-not-found.c:723
 msgid "command not found"
 msgstr ""
 
 #. TRANSLATORS: tell the user what we think the command is
-#: ../contrib/command-not-found/pk-command-not-found.c:759
+#: ../contrib/command-not-found/pk-command-not-found.c:741
 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:773
+#: ../contrib/command-not-found/pk-command-not-found.c:755
 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:787
-#: ../contrib/command-not-found/pk-command-not-found.c:796
+#: ../contrib/command-not-found/pk-command-not-found.c:769
+#: ../contrib/command-not-found/pk-command-not-found.c:778
 msgid "Similar commands are:"
 msgstr ""
 
 #. TRANSLATORS: ask the user to choose a file to run
-#: ../contrib/command-not-found/pk-command-not-found.c:803
+#: ../contrib/command-not-found/pk-command-not-found.c:785
 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:821
+#: ../contrib/command-not-found/pk-command-not-found.c:803
 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:828
+#: ../contrib/command-not-found/pk-command-not-found.c:810
 #, 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:855
+#: ../contrib/command-not-found/pk-command-not-found.c:837
 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:865
+#: ../contrib/command-not-found/pk-command-not-found.c:847
 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:874
+#: ../contrib/command-not-found/pk-command-not-found.c:856
 msgid "Please choose a package to install"
 msgstr ""
 
@@ -1044,7 +1040,7 @@ msgstr ""
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
 #. TRANSLATORS: transaction state, installing packages
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:860
-#: ../lib/packagekit-glib2/pk-console-shared.c:296
+#: ../lib/packagekit-glib2/pk-console-shared.c:331
 #, c-format
 msgid "Installing packages"
 msgstr ""
@@ -1178,474 +1174,474 @@ msgstr ""
 msgid "PackageKit Service Pack"
 msgstr ""
 
-#: ../lib/packagekit-glib2/pk-console-shared.c:64
+#: ../lib/packagekit-glib2/pk-console-shared.c:65
 #, c-format
 msgid "Please enter a number from 1 to %i: "
 msgstr ""
 
 #. TRANSLATORS: more than one package could be found that matched, to follow
 #. is a list of possible packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:198
+#: ../lib/packagekit-glib2/pk-console-shared.c:233
 msgid "More than one package matches:"
 msgstr ""
 
 #. TRANSLATORS: This finds out which package in the list to use
-#: ../lib/packagekit-glib2/pk-console-shared.c:209
+#: ../lib/packagekit-glib2/pk-console-shared.c:244
 msgid "Please choose the correct package: "
 msgstr ""
 
 #. TRANSLATORS: This is when the transaction status is not known
-#: ../lib/packagekit-glib2/pk-console-shared.c:264
+#: ../lib/packagekit-glib2/pk-console-shared.c:299
 msgid "Unknown state"
 msgstr ""
 
 #. TRANSLATORS: transaction state, the daemon is in the process of starting
-#: ../lib/packagekit-glib2/pk-console-shared.c:268
+#: ../lib/packagekit-glib2/pk-console-shared.c:303
 msgid "Starting"
 msgstr ""
 
 #. TRANSLATORS: transaction state, the transaction is waiting for another to
 #. complete
-#: ../lib/packagekit-glib2/pk-console-shared.c:272
+#: ../lib/packagekit-glib2/pk-console-shared.c:307
 msgid "Waiting in queue"
 msgstr ""
 
 #. TRANSLATORS: transaction state, just started
-#: ../lib/packagekit-glib2/pk-console-shared.c:276
+#: ../lib/packagekit-glib2/pk-console-shared.c:311
 msgid "Running"
 msgstr ""
 
 #. TRANSLATORS: transaction state, is querying data
-#: ../lib/packagekit-glib2/pk-console-shared.c:280
+#: ../lib/packagekit-glib2/pk-console-shared.c:315
 msgid "Querying"
 msgstr ""
 
 #. TRANSLATORS: transaction state, getting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:284
+#: ../lib/packagekit-glib2/pk-console-shared.c:319
 msgid "Getting information"
 msgstr ""
 
 #. TRANSLATORS: transaction state, removing packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:288
+#: ../lib/packagekit-glib2/pk-console-shared.c:323
 msgid "Removing packages"
 msgstr ""
 
 #. TRANSLATORS: transaction state, downloading package files
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:292
-#: ../lib/packagekit-glib2/pk-console-shared.c:670
+#: ../lib/packagekit-glib2/pk-console-shared.c:327
+#: ../lib/packagekit-glib2/pk-console-shared.c:705
 msgid "Downloading packages"
 msgstr ""
 
 #. TRANSLATORS: transaction state, refreshing internal lists
-#: ../lib/packagekit-glib2/pk-console-shared.c:300
+#: ../lib/packagekit-glib2/pk-console-shared.c:335
 msgid "Refreshing software list"
 msgstr ""
 
 #. TRANSLATORS: transaction state, installing updates
-#: ../lib/packagekit-glib2/pk-console-shared.c:304
+#: ../lib/packagekit-glib2/pk-console-shared.c:339
 msgid "Installing updates"
 msgstr ""
 
 #. TRANSLATORS: transaction state, removing old packages, and cleaning config
 #. files
-#: ../lib/packagekit-glib2/pk-console-shared.c:308
+#: ../lib/packagekit-glib2/pk-console-shared.c:343
 msgid "Cleaning up packages"
 msgstr ""
 
 #. TRANSLATORS: transaction state, obsoleting old packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:312
+#: ../lib/packagekit-glib2/pk-console-shared.c:347
 msgid "Obsoleting packages"
 msgstr ""
 
 #. TRANSLATORS: transaction state, checking the transaction before we do it
-#: ../lib/packagekit-glib2/pk-console-shared.c:316
+#: ../lib/packagekit-glib2/pk-console-shared.c:351
 msgid "Resolving dependencies"
 msgstr ""
 
 #. TRANSLATORS: transaction state, checking if we have all the security keys
 #. for the operation
-#: ../lib/packagekit-glib2/pk-console-shared.c:320
+#: ../lib/packagekit-glib2/pk-console-shared.c:355
 msgid "Checking signatures"
 msgstr ""
 
 #. TRANSLATORS: transaction state, when we return to a previous system state
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:324
-#: ../lib/packagekit-glib2/pk-console-shared.c:630
+#: ../lib/packagekit-glib2/pk-console-shared.c:359
+#: ../lib/packagekit-glib2/pk-console-shared.c:665
 msgid "Rolling back"
 msgstr ""
 
 #. TRANSLATORS: transaction state, when we're doing a test transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:328
+#: ../lib/packagekit-glib2/pk-console-shared.c:363
 msgid "Testing changes"
 msgstr ""
 
 #. TRANSLATORS: transaction state, when we're writing to the system package
 #. database
-#: ../lib/packagekit-glib2/pk-console-shared.c:332
+#: ../lib/packagekit-glib2/pk-console-shared.c:367
 msgid "Committing changes"
 msgstr ""
 
 #. TRANSLATORS: transaction state, requesting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:336
+#: ../lib/packagekit-glib2/pk-console-shared.c:371
 msgid "Requesting data"
 msgstr ""
 
 #. TRANSLATORS: transaction state, all done!
-#: ../lib/packagekit-glib2/pk-console-shared.c:340
+#: ../lib/packagekit-glib2/pk-console-shared.c:375
 msgid "Finished"
 msgstr ""
 
 #. TRANSLATORS: transaction state, in the process of cancelling
-#: ../lib/packagekit-glib2/pk-console-shared.c:344
+#: ../lib/packagekit-glib2/pk-console-shared.c:379
 msgid "Cancelling"
 msgstr ""
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:348
+#: ../lib/packagekit-glib2/pk-console-shared.c:383
 msgid "Downloading repository information"
 msgstr ""
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:352
+#: ../lib/packagekit-glib2/pk-console-shared.c:387
 msgid "Downloading list of packages"
 msgstr ""
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:356
+#: ../lib/packagekit-glib2/pk-console-shared.c:391
 msgid "Downloading file lists"
 msgstr ""
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:360
+#: ../lib/packagekit-glib2/pk-console-shared.c:395
 msgid "Downloading lists of changes"
 msgstr ""
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:364
+#: ../lib/packagekit-glib2/pk-console-shared.c:399
 msgid "Downloading groups"
 msgstr ""
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:368
+#: ../lib/packagekit-glib2/pk-console-shared.c:403
 msgid "Downloading update information"
 msgstr ""
 
 #. TRANSLATORS: transaction state, repackaging delta files
-#: ../lib/packagekit-glib2/pk-console-shared.c:372
+#: ../lib/packagekit-glib2/pk-console-shared.c:407
 msgid "Repackaging files"
 msgstr ""
 
 #. TRANSLATORS: transaction state, loading databases
-#: ../lib/packagekit-glib2/pk-console-shared.c:376
+#: ../lib/packagekit-glib2/pk-console-shared.c:411
 msgid "Loading cache"
 msgstr ""
 
 #. TRANSLATORS: transaction state, scanning for running processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:380
+#: ../lib/packagekit-glib2/pk-console-shared.c:415
 msgid "Scanning applications"
 msgstr ""
 
 #. TRANSLATORS: transaction state, generating a list of packages installed on
 #. the system
-#: ../lib/packagekit-glib2/pk-console-shared.c:384
+#: ../lib/packagekit-glib2/pk-console-shared.c:419
 msgid "Generating package lists"
 msgstr ""
 
 #. TRANSLATORS: transaction state, when we're waiting for the native tools to
 #. exit
-#: ../lib/packagekit-glib2/pk-console-shared.c:388
+#: ../lib/packagekit-glib2/pk-console-shared.c:423
 msgid "Waiting for package manager lock"
 msgstr ""
 
 #. TRANSLATORS: transaction state, waiting for user to type in a password
-#: ../lib/packagekit-glib2/pk-console-shared.c:392
+#: ../lib/packagekit-glib2/pk-console-shared.c:427
 msgid "Waiting for authentication"
 msgstr ""
 
 #. TRANSLATORS: transaction state, we are updating the list of processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:396
+#: ../lib/packagekit-glib2/pk-console-shared.c:431
 msgid "Updating running applications"
 msgstr ""
 
 #. TRANSLATORS: transaction state, we are checking executable files currently
 #. in use
-#: ../lib/packagekit-glib2/pk-console-shared.c:400
+#: ../lib/packagekit-glib2/pk-console-shared.c:435
 msgid "Checking applications in use"
 msgstr ""
 
 #. TRANSLATORS: transaction state, we are checking for libraries currently in
 #. use
-#: ../lib/packagekit-glib2/pk-console-shared.c:404
+#: ../lib/packagekit-glib2/pk-console-shared.c:439
 msgid "Checking libraries in use"
 msgstr ""
 
 #. TRANSLATORS: transaction state, we are copying package files before or
 #. after the transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:408
+#: ../lib/packagekit-glib2/pk-console-shared.c:443
 msgid "Copying files"
 msgstr ""
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:426
+#: ../lib/packagekit-glib2/pk-console-shared.c:461
 msgid "Trivial"
 msgstr ""
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:430
+#: ../lib/packagekit-glib2/pk-console-shared.c:465
 msgid "Normal"
 msgstr ""
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:434
+#: ../lib/packagekit-glib2/pk-console-shared.c:469
 msgid "Important"
 msgstr ""
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:438
+#: ../lib/packagekit-glib2/pk-console-shared.c:473
 msgid "Security"
 msgstr ""
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:442
+#: ../lib/packagekit-glib2/pk-console-shared.c:477
 msgid "Bug fix "
 msgstr ""
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:446
+#: ../lib/packagekit-glib2/pk-console-shared.c:481
 msgid "Enhancement"
 msgstr ""
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:450
+#: ../lib/packagekit-glib2/pk-console-shared.c:485
 msgid "Blocked"
 msgstr ""
 
 #. TRANSLATORS: The state of a package
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:455
-#: ../lib/packagekit-glib2/pk-console-shared.c:528
+#: ../lib/packagekit-glib2/pk-console-shared.c:490
+#: ../lib/packagekit-glib2/pk-console-shared.c:563
 msgid "Installed"
 msgstr ""
 
 #. TRANSLATORS: The state of a package, i.e. not installed
-#: ../lib/packagekit-glib2/pk-console-shared.c:460
+#: ../lib/packagekit-glib2/pk-console-shared.c:495
 msgid "Available"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:478
+#: ../lib/packagekit-glib2/pk-console-shared.c:513
 msgid "Downloading"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:482
+#: ../lib/packagekit-glib2/pk-console-shared.c:517
 msgid "Updating"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:486
-#: ../lib/packagekit-glib2/pk-console-shared.c:606
+#: ../lib/packagekit-glib2/pk-console-shared.c:521
+#: ../lib/packagekit-glib2/pk-console-shared.c:641
 msgid "Installing"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:490
-#: ../lib/packagekit-glib2/pk-console-shared.c:602
+#: ../lib/packagekit-glib2/pk-console-shared.c:525
+#: ../lib/packagekit-glib2/pk-console-shared.c:637
 msgid "Removing"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:494
+#: ../lib/packagekit-glib2/pk-console-shared.c:529
 msgid "Cleaning up"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:498
+#: ../lib/packagekit-glib2/pk-console-shared.c:533
 msgid "Obsoleting"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:502
+#: ../lib/packagekit-glib2/pk-console-shared.c:537
 msgid "Reinstalling"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:520
+#: ../lib/packagekit-glib2/pk-console-shared.c:555
 msgid "Downloaded"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:532
+#: ../lib/packagekit-glib2/pk-console-shared.c:567
 msgid "Removed"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:536
+#: ../lib/packagekit-glib2/pk-console-shared.c:571
 msgid "Cleaned up"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:540
+#: ../lib/packagekit-glib2/pk-console-shared.c:575
 msgid "Obsoleted"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:544
+#: ../lib/packagekit-glib2/pk-console-shared.c:579
 msgid "Reinstalled"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:562
+#: ../lib/packagekit-glib2/pk-console-shared.c:597
 msgid "Unknown role type"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:566
+#: ../lib/packagekit-glib2/pk-console-shared.c:601
 msgid "Getting dependencies"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:570
+#: ../lib/packagekit-glib2/pk-console-shared.c:605
 msgid "Getting update details"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:574
+#: ../lib/packagekit-glib2/pk-console-shared.c:609
 msgid "Getting details"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:578
+#: ../lib/packagekit-glib2/pk-console-shared.c:613
 msgid "Getting requires"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:582
+#: ../lib/packagekit-glib2/pk-console-shared.c:617
 msgid "Getting updates"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:586
+#: ../lib/packagekit-glib2/pk-console-shared.c:621
 msgid "Searching by details"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:590
+#: ../lib/packagekit-glib2/pk-console-shared.c:625
 msgid "Searching by file"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:594
+#: ../lib/packagekit-glib2/pk-console-shared.c:629
 msgid "Searching groups"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:598
+#: ../lib/packagekit-glib2/pk-console-shared.c:633
 msgid "Searching by name"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:610
+#: ../lib/packagekit-glib2/pk-console-shared.c:645
 msgid "Installing files"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:614
+#: ../lib/packagekit-glib2/pk-console-shared.c:649
 msgid "Refreshing cache"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:618
+#: ../lib/packagekit-glib2/pk-console-shared.c:653
 msgid "Updating packages"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:622
+#: ../lib/packagekit-glib2/pk-console-shared.c:657
 msgid "Updating system"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:626
+#: ../lib/packagekit-glib2/pk-console-shared.c:661
 msgid "Canceling"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:634
+#: ../lib/packagekit-glib2/pk-console-shared.c:669
 msgid "Getting repositories"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:638
+#: ../lib/packagekit-glib2/pk-console-shared.c:673
 msgid "Enabling repository"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:642
+#: ../lib/packagekit-glib2/pk-console-shared.c:677
 msgid "Setting data"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:646
+#: ../lib/packagekit-glib2/pk-console-shared.c:681
 msgid "Resolving"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:650
+#: ../lib/packagekit-glib2/pk-console-shared.c:685
 msgid "Getting file list"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:654
+#: ../lib/packagekit-glib2/pk-console-shared.c:689
 msgid "Getting provides"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:658
+#: ../lib/packagekit-glib2/pk-console-shared.c:693
 msgid "Installing signature"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:662
+#: ../lib/packagekit-glib2/pk-console-shared.c:697
 msgid "Getting packages"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:666
+#: ../lib/packagekit-glib2/pk-console-shared.c:701
 msgid "Accepting EULA"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:674
+#: ../lib/packagekit-glib2/pk-console-shared.c:709
 msgid "Getting upgrades"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:678
+#: ../lib/packagekit-glib2/pk-console-shared.c:713
 msgid "Getting categories"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:682
+#: ../lib/packagekit-glib2/pk-console-shared.c:717
 msgid "Getting transactions"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:686
-#: ../lib/packagekit-glib2/pk-console-shared.c:690
+#: ../lib/packagekit-glib2/pk-console-shared.c:721
+#: ../lib/packagekit-glib2/pk-console-shared.c:725
 msgid "Simulating install"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:694
+#: ../lib/packagekit-glib2/pk-console-shared.c:729
 msgid "Simulating remove"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:698
+#: ../lib/packagekit-glib2/pk-console-shared.c:733
 msgid "Simulating update"
 msgstr ""
 
@@ -1795,13 +1791,19 @@ msgstr ""
 msgid "The following packages have to be downgraded:"
 msgstr ""
 
+#. TRANSLATORS: When processing, untrusted and non-verified packages may be
+#. encountered
+#: ../lib/packagekit-glib2/pk-task-text.c:325
+msgid "The following packages are untrusted:"
+msgstr ""
+
 #. TRANSLATORS: ask the user if the proposed changes are okay
-#: ../lib/packagekit-glib2/pk-task-text.c:380
+#: ../lib/packagekit-glib2/pk-task-text.c:385
 msgid "Proceed with changes?"
 msgstr ""
 
 #. TRANSLATORS: tell the user we didn't do anything
-#: ../lib/packagekit-glib2/pk-task-text.c:385
+#: ../lib/packagekit-glib2/pk-task-text.c:390
 msgid "The transaction did not proceed."
 msgstr ""
 
@@ -2005,96 +2007,68 @@ msgstr ""
 msgid "Upgrade System"
 msgstr ""
 
-#. TRANSLATORS: failed due to DBus security
-#: ../src/pk-main.c:91
-msgid "Startup failed due to security policies on this machine."
-msgstr ""
-
-#. TRANSLATORS: only two ways this can fail...
-#: ../src/pk-main.c:93
-msgid "This can happen for two reasons:"
-msgstr ""
-
-#. TRANSLATORS: only allowed to be owned by root
-#: ../src/pk-main.c:95
-msgid "The correct user is not launching the executable (usually root)"
-msgstr ""
-
-#. TRANSLATORS: or we are installed in a prefix
-#: ../src/pk-main.c:97
-msgid ""
-"The org.freedesktop.PackageKit.conf file is not installed in the system "
-"directory:"
-msgstr ""
-
 #. TRANSLATORS: a backend is the system package tool, e.g. yum, apt
-#: ../src/pk-main.c:223
+#: ../src/pk-main.c:149
 msgid "Packaging backend to use, e.g. dummy"
 msgstr ""
 
 #. TRANSLATORS: if we should run in the background
-#: ../src/pk-main.c:226
+#: ../src/pk-main.c:152
 msgid "Daemonize and detach from the terminal"
 msgstr ""
 
 #. TRANSLATORS: if we should not monitor how long we are inactive for
-#: ../src/pk-main.c:229
+#: ../src/pk-main.c:155
 msgid "Disable the idle timer"
 msgstr ""
 
 #. TRANSLATORS: show version
-#: ../src/pk-main.c:232
+#: ../src/pk-main.c:158
 msgid "Show version and exit"
 msgstr ""
 
 #. TRANSLATORS: exit after we've started up, used for user profiling
-#: ../src/pk-main.c:235
+#: ../src/pk-main.c:161
 msgid "Exit after a small delay"
 msgstr ""
 
 #. TRANSLATORS: exit straight away, used for automatic profiling
-#: ../src/pk-main.c:238
+#: ../src/pk-main.c:164
 msgid "Exit after the engine has loaded"
 msgstr ""
 
-#. TRANSLATORS: describing the service that is running
-#: ../src/pk-main.c:253
-msgid "PackageKit service"
+#. TRANSLATORS: don't unset environment variables, used for debugging
+#: ../src/pk-main.c:167
+msgid "Don't clear environment on startup"
 msgstr ""
 
-#. TRANSLATORS: fatal error, dbus is not running
-#: ../src/pk-main.c:298
-msgid "Cannot connect to the system bus"
+#. TRANSLATORS: describing the service that is running
+#: ../src/pk-main.c:179
+msgid "PackageKit service"
 msgstr ""
 
-#: ../src/pk-main.c:344
+#: ../src/pk-main.c:253
 msgid "Failed to load any of the specified backends:"
 msgstr ""
 
-#. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error
-#. follows
-#: ../src/pk-main.c:358
-msgid "Error trying to start:"
-msgstr ""
-
 #. TRANSLATORS: is not GPG signed
-#: ../src/pk-transaction.c:2611 ../src/pk-transaction.c:2618
+#: ../src/pk-transaction.c:2696
 msgid "The software is not from a trusted source."
 msgstr ""
 
-#: ../src/pk-transaction.c:2623
+#: ../src/pk-transaction.c:2704
 msgid "Do not update this package unless you are sure it is safe to do so."
 msgstr ""
 
-#: ../src/pk-transaction.c:2624
+#: ../src/pk-transaction.c:2705
 msgid "Do not update these packages unless you are sure it is safe to do so."
 msgstr ""
 
-#: ../src/pk-transaction.c:2634
+#: ../src/pk-transaction.c:2715
 msgid "Do not install this package unless you are sure it is safe to do so."
 msgstr ""
 
-#: ../src/pk-transaction.c:2635
+#: ../src/pk-transaction.c:2716
 msgid "Do not install these packages unless you are sure it is safe to do so."
 msgstr ""
 
diff --git a/po/ja.po b/po/ja.po
index 500752c..08418ef 100644
--- a/po/ja.po
+++ b/po/ja.po
@@ -2,15 +2,19 @@
 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
 # This file is distributed under the same license as the PACKAGE package.
 # 
-# Richard Hughes <richard at hughsie.com>, 2011
+# Translators:
+# Hyu_gabaru Ryu_ichi <hyu_gabaru at yahoo.co.jp>, 2009.
+# Kiyoto Hashida <khashida at redhat.com>, 2009.
+# Richard Hughes <richard at hughsie.com>, 2011.
+# Tomoyuki KATO <tomo at dream.daynight.jp>, 2011.
 msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-04 10:50+0100\n"
-"PO-Revision-Date: 2011-05-04 09:56+0000\n"
-"Last-Translator: hughsie <richard at hughsie.com>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
+"POT-Creation-Date: 2011-11-10 19:50+0000\n"
+"PO-Revision-Date: 2011-11-19 09:39+0000\n"
+"Last-Translator: Tomoyuki KATO <tomo at dream.daynight.jp>\n"
+"Language-Team: Japanese (http://www.transifex.net/projects/p/freedesktop/team/ja/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -69,12 +73,12 @@ msgstr "利用者 ID"
 #. TRANSLATORS: this is the username, e.g. hughsie
 #: ../client/pk-console.c:198
 msgid "Username"
-msgstr "利用者名"
+msgstr "ユーザー名"
 
 #. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
 #: ../client/pk-console.c:202
 msgid "Real name"
-msgstr "実名"
+msgstr "本名"
 
 #: ../client/pk-console.c:210
 msgid "Affected packages:"
@@ -87,7 +91,7 @@ msgstr "影響されたパッケージ: なし"
 #. TRANSLATORS: this is the distro, e.g. Fedora 10
 #: ../client/pk-console.c:247
 msgid "Distribution"
-msgstr "配布物"
+msgstr "ディストリビューション"
 
 #. TRANSLATORS: this is type of update, stable or testing
 #: ../client/pk-console.c:249
@@ -138,7 +142,7 @@ msgstr "更新の詳細:"
 #: ../lib/packagekit-glib2/pk-task-text.c:124
 #: ../lib/packagekit-glib2/pk-task-text.c:206
 msgid "Package"
-msgstr ""
+msgstr "パッケージ"
 
 #. TRANSLATORS: details about the update, any packages that this update
 #. updates
@@ -195,7 +199,7 @@ msgstr "発行済"
 
 #. TRANSLATORS: details about the update, date the update was updated
 #. TRANSLATORS: The action of the package, in past tense
-#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:524
+#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:559
 msgid "Updated"
 msgstr "更新済"
 
@@ -281,13 +285,13 @@ msgstr "重大なエラー"
 #. can be updated
 #: ../client/pk-console.c:701
 msgid "There are no packages to update."
-msgstr ""
+msgstr "更新が必要なパッケージはありません。"
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
 #: ../client/pk-console.c:704
-#: ../contrib/command-not-found/pk-command-not-found.c:639
+#: ../contrib/command-not-found/pk-command-not-found.c:634
 msgid "The transaction failed"
-msgstr "トランザクションが失敗"
+msgstr "トランザクションが失敗しました"
 
 #. TRANSLATORS: print a message when there are no updates
 #: ../client/pk-console.c:733
@@ -333,21 +337,21 @@ msgstr "予期されるパッケージ名は実際にはファイルを持ちま
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:866
+#: ../client/pk-console.c:871
 #, c-format
 msgid "This tool could not find any available package: %s"
 msgstr "このツールでは取り扱えるパッケージを見つけられません: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:894
+#: ../client/pk-console.c:899
 #, c-format
 msgid "This tool could not find the installed package: %s"
 msgstr "このツールではインストールされたパッケージを見つけられません: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:922 ../client/pk-console.c:950
+#: ../client/pk-console.c:927 ../client/pk-console.c:955
 #, c-format
 msgid "This tool could not find the package: %s"
 msgstr "このツールではパッケージを見つけられません: %s"
@@ -360,223 +364,223 @@ msgstr "このツールではパッケージを見つけられません: %s"
 #. detailed error follows
 #. TRANSLATORS: The package name was not found in any software sources. The
 #. detailed error follows
-#: ../client/pk-console.c:978 ../client/pk-console.c:1006
-#: ../client/pk-console.c:1034 ../client/pk-console.c:1062
-#: ../client/pk-console.c:1090
+#: ../client/pk-console.c:983 ../client/pk-console.c:1011
+#: ../client/pk-console.c:1039 ../client/pk-console.c:1067
+#: ../client/pk-console.c:1095
 #, c-format
 msgid "This tool could not find all the packages: %s"
 msgstr "このツールでは全パッケージを見つけられません: %s"
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek
 #. without a paddle
-#: ../client/pk-console.c:1119
+#: ../client/pk-console.c:1124
 msgid "The daemon crashed mid-transaction!"
 msgstr "トランザクション中にデーモンがクラッシュしました!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1153
+#: ../client/pk-console.c:1158
 msgid "PackageKit Console Interface"
 msgstr "PackageKit コンソールインターフェース"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1155
+#: ../client/pk-console.c:1160
 msgid "Subcommands:"
 msgstr "サブコマンド:"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was
 #. last executed
-#: ../client/pk-console.c:1235
+#: ../client/pk-console.c:1240
 msgid "Failed to get the time since this action was last completed"
 msgstr "このアクションは直前に完了したものだったので、時刻を得るのに失敗しました"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1277 ../client/pk-monitor.c:371
+#: ../client/pk-console.c:1282 ../client/pk-monitor.c:371
 msgid "Show the program version and exit"
 msgstr "プログラムのバージョンを表示して終了"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1280
+#: ../client/pk-console.c:1285
 msgid "Set the filter, e.g. installed"
 msgstr "インストール済などのフィルターを設定"
 
 #. TRANSLATORS: command line argument, use a non-standard install prefix
-#: ../client/pk-console.c:1283
+#: ../client/pk-console.c:1288
 msgid "Set the install root, e.g. '/' or '/mnt/ltsp'"
 msgstr "インストール root をセットします。例、'/' 又は '/mnt/ltsp'"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1286
+#: ../client/pk-console.c:1291
 msgid "Exit without waiting for actions to complete"
 msgstr "アクションが完了するのを待たずに終了"
 
 #. command line argument, do we ask questions
-#: ../client/pk-console.c:1289
+#: ../client/pk-console.c:1294
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:525
 msgid "Install the packages without asking for confirmation"
 msgstr "確認を要求せずにパッケージをインストール"
 
 #. TRANSLATORS: command line argument, this command is not a priority
-#: ../client/pk-console.c:1292
+#: ../client/pk-console.c:1297
 msgid "Run the command using idle network bandwidth and also using less power"
 msgstr "遊休のネットワークバンド幅とより少ない電力を使用してコマンドを実行"
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1295
+#: ../client/pk-console.c:1300
 msgid ""
 "Print to screen a machine readable output, rather than using animated "
 "widgets"
 msgstr "動画のウィジェットの使用ではなく、マシン可読の出力を画面に表示"
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1298
+#: ../client/pk-console.c:1303
 msgid "The maximum metadata cache age. Use -1 for 'never'."
-msgstr ""
+msgstr "メタデータの最大キャッシュ世代です。「なし」にするには 1 を使用します。"
 
 #. TRANSLATORS: command line argument, --help
-#: ../client/pk-console.c:1301
+#: ../client/pk-console.c:1306
 msgid "Show help options."
-msgstr ""
+msgstr "ヘルプのオプションを表示します。"
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1331
+#: ../client/pk-console.c:1336
 msgid "Failed to parse command line"
-msgstr ""
+msgstr "コマンドラインの構文解析に"
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1341
+#: ../client/pk-console.c:1346
 msgid "Failed to contact PackageKit"
 msgstr "PackageKit への接触に失敗"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1394
+#: ../client/pk-console.c:1399
 msgid "The proxy could not be set"
 msgstr "プロキシをセット出来ませんでした"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1406
+#: ../client/pk-console.c:1411
 msgid "The install root could not be set"
 msgstr "インストール root をセット出来ませんでした"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1418
+#: ../client/pk-console.c:1423
 msgid "The filter specified was invalid"
 msgstr "指定されたフィルターは無効です"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1437
+#: ../client/pk-console.c:1442
 msgid "A search type is required, e.g. name"
 msgstr "名前のような、検索タイプが必要です"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1444 ../client/pk-console.c:1456
-#: ../client/pk-console.c:1468 ../client/pk-console.c:1480
+#: ../client/pk-console.c:1449 ../client/pk-console.c:1461
+#: ../client/pk-console.c:1473 ../client/pk-console.c:1485
 msgid "A search term is required"
 msgstr "検索語が必要です"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1490
+#: ../client/pk-console.c:1495
 msgid "Invalid search type"
 msgstr "不当な検索タイプ"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1496
+#: ../client/pk-console.c:1501
 msgid "A package name to install is required"
 msgstr "インストールするパッケージ名が必要です"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1505
+#: ../client/pk-console.c:1510
 msgid "A filename to install is required"
 msgstr "インストールするファイル名が必要です"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1516
+#: ../client/pk-console.c:1521
 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:1527
+#: ../client/pk-console.c:1532
 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:1536
+#: ../client/pk-console.c:1541
 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:1543
+#: ../client/pk-console.c:1548
 msgid "Directory not found"
 msgstr "ディレクトリーが見つかりません"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1552
+#: ../client/pk-console.c:1557
 msgid "A licence identifier (eula-id) is required"
 msgstr "ライセンス ID (eula-id) が必要です"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1563
+#: ../client/pk-console.c:1568
 msgid "A transaction identifier (tid) is required"
 msgstr "トランザクション ID (tid) が必要です "
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:1584
+#: ../client/pk-console.c:1589
 msgid "A package name to resolve is required"
 msgstr "削除するパッケージ名が必要です"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:1595 ../client/pk-console.c:1606
+#: ../client/pk-console.c:1600 ../client/pk-console.c:1611
 msgid "A repository name is required"
 msgstr "リポジトリー名が必要です"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:1617
+#: ../client/pk-console.c:1622
 msgid "A repo name, parameter and value are required"
 msgstr "リポジトリー名と、パラメーター、値が必要です"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:1634
+#: ../client/pk-console.c:1639
 msgid "An action, e.g. 'update-system' is required"
 msgstr "'update-system' のようなアクションが必要です"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:1641
+#: ../client/pk-console.c:1646
 msgid "A correct role is required"
 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:1651 ../client/pk-console.c:1665
-#: ../client/pk-console.c:1674 ../client/pk-console.c:1694
-#: ../client/pk-console.c:1703 ../client/pk-generate-pack.c:314
+#: ../client/pk-console.c:1656 ../client/pk-console.c:1670
+#: ../client/pk-console.c:1679 ../client/pk-console.c:1699
+#: ../client/pk-console.c:1708 ../client/pk-generate-pack.c:314
 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:1683
+#: ../client/pk-console.c:1688
 msgid "A package provide string is required"
 msgstr "パッケージの提供する文字列が必要です"
 
 #. TRANSLATORS: The user did not provide a distro name
-#: ../client/pk-console.c:1727
+#: ../client/pk-console.c:1732
 msgid "A distribution name is required"
-msgstr ""
+msgstr "ディストリビューション名が必要です"
 
 #. TRANSLATORS: The user did not provide an upgrade type
-#: ../client/pk-console.c:1733
+#: ../client/pk-console.c:1738
 msgid "An upgrade type is required, e.g. 'minimal', 'default' or 'complete'"
-msgstr ""
+msgstr "更新の形式が必要です、たとえば、「最小」、「デフォルト」や「完全」です"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command
 #. line
-#: ../client/pk-console.c:1783
+#: ../client/pk-console.c:1788
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "オプション '%s' はサポートされていません"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:1793
+#: ../client/pk-console.c:1798
 msgid "Command failed"
 msgstr "コマンド失敗"
 
@@ -711,159 +715,154 @@ msgid "PackageKit Monitor"
 msgstr "PackageKit モニター"
 
 #. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/pk-plugin-install.c:499
+#: ../contrib/browser-plugin/pk-plugin-install.c:503
 msgid "Getting package information..."
 msgstr "パッケージの情報を獲得中..."
 
 #. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/pk-plugin-install.c:505
+#: ../contrib/browser-plugin/pk-plugin-install.c:509
 #, c-format
 msgid "Run %s"
 msgstr "%s 実行"
 
 #. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:511
+#: ../contrib/browser-plugin/pk-plugin-install.c:515
 msgid "Installed version"
 msgstr "インストールされたバージョン"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:519
+#: ../contrib/browser-plugin/pk-plugin-install.c:523
 #, c-format
 msgid "Run version %s now"
 msgstr "バージョン %s をすぐに実行"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:525
+#: ../contrib/browser-plugin/pk-plugin-install.c:529
 msgid "Run now"
 msgstr "すぐに実行"
 
 #. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:531
+#: ../contrib/browser-plugin/pk-plugin-install.c:535
 #, c-format
 msgid "Update to version %s"
 msgstr "バージョン %s に更新"
 
 #. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:537
+#: ../contrib/browser-plugin/pk-plugin-install.c:541
 #, c-format
 msgid "Install %s now"
 msgstr "%s をすぐにインストール"
 
 #. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:540
+#: ../contrib/browser-plugin/pk-plugin-install.c:544
 msgid "Version"
 msgstr "バージョン"
 
 #. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/pk-plugin-install.c:545
+#: ../contrib/browser-plugin/pk-plugin-install.c:549
 msgid "No packages found for your system"
 msgstr "ユーザーのシステム用のパッケージが見つかりません"
 
 #. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/pk-plugin-install.c:550
+#: ../contrib/browser-plugin/pk-plugin-install.c:554
 msgid "Installing..."
 msgstr "インストール中..."
 
 #. TRANSLATORS: downloading repo data so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:366
+#: ../contrib/command-not-found/pk-command-not-found.c:363
 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:370
+#: ../contrib/command-not-found/pk-command-not-found.c:367
 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:374
+#: ../contrib/command-not-found/pk-command-not-found.c:371
 msgid "Waiting for package manager lock."
 msgstr "パッケージマネージャーのロックを待っています。"
 
 #. TRANSLATORS: loading package cache so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:378
+#: ../contrib/command-not-found/pk-command-not-found.c:375
 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:444
+#: ../contrib/command-not-found/pk-command-not-found.c:439
 msgid "Failed to search for file"
 msgstr "ファイルの探索に失敗しました"
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
-#: ../contrib/command-not-found/pk-command-not-found.c:456
+#: ../contrib/command-not-found/pk-command-not-found.c:451
 msgid "Getting the list of files failed"
-msgstr ""
+msgstr "ファイルの一覧の取得に失敗しました"
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:602
+#: ../contrib/command-not-found/pk-command-not-found.c:597
 msgid "Failed to launch:"
 msgstr "起動に失敗:"
 
 #. TRANSLATORS: we failed to install the package
-#: ../contrib/command-not-found/pk-command-not-found.c:630
+#: ../contrib/command-not-found/pk-command-not-found.c:625
 msgid "Failed to install packages"
 msgstr "パッケージをインストールできません"
 
-#. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/command-not-found/pk-command-not-found.c:706
-msgid "PackageKit Command Not Found"
-msgstr "PackageKit コマンドが見つかりません"
-
 #. TRANSLATORS: the prefix of all the output telling the user
 #. * why it's not executing. NOTE: this is lowercase to mimic
 #. * the style of bash itself -- apologies
-#: ../contrib/command-not-found/pk-command-not-found.c:741
+#: ../contrib/command-not-found/pk-command-not-found.c:723
 msgid "command not found"
-msgstr ""
+msgstr "コマンドが見つかりませんでした"
 
 #. TRANSLATORS: tell the user what we think the command is
-#: ../contrib/command-not-found/pk-command-not-found.c:759
+#: ../contrib/command-not-found/pk-command-not-found.c:741
 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:773
+#: ../contrib/command-not-found/pk-command-not-found.c:755
 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:787
-#: ../contrib/command-not-found/pk-command-not-found.c:796
+#: ../contrib/command-not-found/pk-command-not-found.c:769
+#: ../contrib/command-not-found/pk-command-not-found.c:778
 msgid "Similar commands are:"
 msgstr "よく似たコマンドは:"
 
 #. TRANSLATORS: ask the user to choose a file to run
-#: ../contrib/command-not-found/pk-command-not-found.c:803
+#: ../contrib/command-not-found/pk-command-not-found.c:785
 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:821
+#: ../contrib/command-not-found/pk-command-not-found.c:803
 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:828
+#: ../contrib/command-not-found/pk-command-not-found.c:810
 #, 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:855
+#: ../contrib/command-not-found/pk-command-not-found.c:837
 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:865
+#: ../contrib/command-not-found/pk-command-not-found.c:847
 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:874
+#: ../contrib/command-not-found/pk-command-not-found.c:856
 msgid "Please choose a package to install"
 msgstr "インストールするパッケージを選んでください"
 
@@ -934,7 +933,7 @@ msgstr "失敗"
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:929
 #, c-format
 msgid "OK."
-msgstr "OK"
+msgstr "成功"
 
 #. TRANSLATORS: tell the user what we found
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:618
@@ -1037,7 +1036,7 @@ msgstr "シミュレートモードではパッケージをインストールし
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
 #. TRANSLATORS: transaction state, installing packages
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:860
-#: ../lib/packagekit-glib2/pk-console-shared.c:296
+#: ../lib/packagekit-glib2/pk-console-shared.c:331
 #, c-format
 msgid "Installing packages"
 msgstr "パッケージのインストール中"
@@ -1171,474 +1170,474 @@ msgstr "PackageKit パッケージリスト"
 msgid "PackageKit Service Pack"
 msgstr "PackageKit サービスパック"
 
-#: ../lib/packagekit-glib2/pk-console-shared.c:64
+#: ../lib/packagekit-glib2/pk-console-shared.c:65
 #, c-format
 msgid "Please enter a number from 1 to %i: "
 msgstr "1 から %i までの数字を1つ入力して下さい: "
 
 #. TRANSLATORS: more than one package could be found that matched, to follow
 #. is a list of possible packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:198
+#: ../lib/packagekit-glib2/pk-console-shared.c:233
 msgid "More than one package matches:"
 msgstr "複数のパッケージが一致しています:"
 
 #. TRANSLATORS: This finds out which package in the list to use
-#: ../lib/packagekit-glib2/pk-console-shared.c:209
+#: ../lib/packagekit-glib2/pk-console-shared.c:244
 msgid "Please choose the correct package: "
 msgstr "現在のパッケージを選択して下さい: "
 
 #. TRANSLATORS: This is when the transaction status is not known
-#: ../lib/packagekit-glib2/pk-console-shared.c:264
+#: ../lib/packagekit-glib2/pk-console-shared.c:299
 msgid "Unknown state"
 msgstr "不明な状態"
 
 #. TRANSLATORS: transaction state, the daemon is in the process of starting
-#: ../lib/packagekit-glib2/pk-console-shared.c:268
+#: ../lib/packagekit-glib2/pk-console-shared.c:303
 msgid "Starting"
 msgstr "開始中"
 
 #. TRANSLATORS: transaction state, the transaction is waiting for another to
 #. complete
-#: ../lib/packagekit-glib2/pk-console-shared.c:272
+#: ../lib/packagekit-glib2/pk-console-shared.c:307
 msgid "Waiting in queue"
 msgstr "キューで待機中"
 
 #. TRANSLATORS: transaction state, just started
-#: ../lib/packagekit-glib2/pk-console-shared.c:276
+#: ../lib/packagekit-glib2/pk-console-shared.c:311
 msgid "Running"
 msgstr "実行中"
 
 #. TRANSLATORS: transaction state, is querying data
-#: ../lib/packagekit-glib2/pk-console-shared.c:280
+#: ../lib/packagekit-glib2/pk-console-shared.c:315
 msgid "Querying"
 msgstr "クエリ中"
 
 #. TRANSLATORS: transaction state, getting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:284
+#: ../lib/packagekit-glib2/pk-console-shared.c:319
 msgid "Getting information"
 msgstr "情報を取得中"
 
 #. TRANSLATORS: transaction state, removing packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:288
+#: ../lib/packagekit-glib2/pk-console-shared.c:323
 msgid "Removing packages"
 msgstr "パッケージを削除中"
 
 #. TRANSLATORS: transaction state, downloading package files
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:292
-#: ../lib/packagekit-glib2/pk-console-shared.c:670
+#: ../lib/packagekit-glib2/pk-console-shared.c:327
+#: ../lib/packagekit-glib2/pk-console-shared.c:705
 msgid "Downloading packages"
 msgstr "パッケージをダウンロード中"
 
 #. TRANSLATORS: transaction state, refreshing internal lists
-#: ../lib/packagekit-glib2/pk-console-shared.c:300
+#: ../lib/packagekit-glib2/pk-console-shared.c:335
 msgid "Refreshing software list"
 msgstr "ソフトウェアリストをリフレッシュ中"
 
 #. TRANSLATORS: transaction state, installing updates
-#: ../lib/packagekit-glib2/pk-console-shared.c:304
+#: ../lib/packagekit-glib2/pk-console-shared.c:339
 msgid "Installing updates"
 msgstr "更新をインストール中"
 
 #. TRANSLATORS: transaction state, removing old packages, and cleaning config
 #. files
-#: ../lib/packagekit-glib2/pk-console-shared.c:308
+#: ../lib/packagekit-glib2/pk-console-shared.c:343
 msgid "Cleaning up packages"
 msgstr "パッケージをクリーンアップ中"
 
 #. TRANSLATORS: transaction state, obsoleting old packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:312
+#: ../lib/packagekit-glib2/pk-console-shared.c:347
 msgid "Obsoleting packages"
 msgstr "旧パッケージを区分中"
 
 #. TRANSLATORS: transaction state, checking the transaction before we do it
-#: ../lib/packagekit-glib2/pk-console-shared.c:316
+#: ../lib/packagekit-glib2/pk-console-shared.c:351
 msgid "Resolving dependencies"
 msgstr "依存関係を解決中"
 
 #. TRANSLATORS: transaction state, checking if we have all the security keys
 #. for the operation
-#: ../lib/packagekit-glib2/pk-console-shared.c:320
+#: ../lib/packagekit-glib2/pk-console-shared.c:355
 msgid "Checking signatures"
 msgstr "署名をチェック中"
 
 #. TRANSLATORS: transaction state, when we return to a previous system state
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:324
-#: ../lib/packagekit-glib2/pk-console-shared.c:630
+#: ../lib/packagekit-glib2/pk-console-shared.c:359
+#: ../lib/packagekit-glib2/pk-console-shared.c:665
 msgid "Rolling back"
 msgstr "元に戻り中"
 
 #. TRANSLATORS: transaction state, when we're doing a test transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:328
+#: ../lib/packagekit-glib2/pk-console-shared.c:363
 msgid "Testing changes"
 msgstr "変更をテスト中"
 
 #. TRANSLATORS: transaction state, when we're writing to the system package
 #. database
-#: ../lib/packagekit-glib2/pk-console-shared.c:332
+#: ../lib/packagekit-glib2/pk-console-shared.c:367
 msgid "Committing changes"
 msgstr "変更をコミット中"
 
 #. TRANSLATORS: transaction state, requesting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:336
+#: ../lib/packagekit-glib2/pk-console-shared.c:371
 msgid "Requesting data"
 msgstr "データを要求中"
 
 #. TRANSLATORS: transaction state, all done!
-#: ../lib/packagekit-glib2/pk-console-shared.c:340
+#: ../lib/packagekit-glib2/pk-console-shared.c:375
 msgid "Finished"
 msgstr "終了"
 
 #. TRANSLATORS: transaction state, in the process of cancelling
-#: ../lib/packagekit-glib2/pk-console-shared.c:344
+#: ../lib/packagekit-glib2/pk-console-shared.c:379
 msgid "Cancelling"
 msgstr "キャンセル中"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:348
+#: ../lib/packagekit-glib2/pk-console-shared.c:383
 msgid "Downloading repository information"
 msgstr "レポジトリ情報をダウンロード中"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:352
+#: ../lib/packagekit-glib2/pk-console-shared.c:387
 msgid "Downloading list of packages"
 msgstr "パッケージリストをダウンロード中"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:356
+#: ../lib/packagekit-glib2/pk-console-shared.c:391
 msgid "Downloading file lists"
 msgstr "ファイルリストをダウンロード中"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:360
+#: ../lib/packagekit-glib2/pk-console-shared.c:395
 msgid "Downloading lists of changes"
 msgstr "変更のリストをダウンロード中"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:364
+#: ../lib/packagekit-glib2/pk-console-shared.c:399
 msgid "Downloading groups"
 msgstr "グループをダウンロード中"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:368
+#: ../lib/packagekit-glib2/pk-console-shared.c:403
 msgid "Downloading update information"
 msgstr "更新情報をダウンロード中"
 
 #. TRANSLATORS: transaction state, repackaging delta files
-#: ../lib/packagekit-glib2/pk-console-shared.c:372
+#: ../lib/packagekit-glib2/pk-console-shared.c:407
 msgid "Repackaging files"
 msgstr "ファイルを再パッケージ中"
 
 #. TRANSLATORS: transaction state, loading databases
-#: ../lib/packagekit-glib2/pk-console-shared.c:376
+#: ../lib/packagekit-glib2/pk-console-shared.c:411
 msgid "Loading cache"
 msgstr "キャッシュをロード中"
 
 #. TRANSLATORS: transaction state, scanning for running processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:380
+#: ../lib/packagekit-glib2/pk-console-shared.c:415
 msgid "Scanning applications"
 msgstr "アプリケーションをスキャン中"
 
 #. TRANSLATORS: transaction state, generating a list of packages installed on
 #. the system
-#: ../lib/packagekit-glib2/pk-console-shared.c:384
+#: ../lib/packagekit-glib2/pk-console-shared.c:419
 msgid "Generating package lists"
 msgstr "パッケージリストを生成中"
 
 #. TRANSLATORS: transaction state, when we're waiting for the native tools to
 #. exit
-#: ../lib/packagekit-glib2/pk-console-shared.c:388
+#: ../lib/packagekit-glib2/pk-console-shared.c:423
 msgid "Waiting for package manager lock"
 msgstr "パッケージマネージャロックを待ち受け中"
 
 #. TRANSLATORS: transaction state, waiting for user to type in a password
-#: ../lib/packagekit-glib2/pk-console-shared.c:392
+#: ../lib/packagekit-glib2/pk-console-shared.c:427
 msgid "Waiting for authentication"
 msgstr "認証を待ち受け中"
 
 #. TRANSLATORS: transaction state, we are updating the list of processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:396
+#: ../lib/packagekit-glib2/pk-console-shared.c:431
 msgid "Updating running applications"
 msgstr "実行アプリケーションの更新中"
 
 #. TRANSLATORS: transaction state, we are checking executable files currently
 #. in use
-#: ../lib/packagekit-glib2/pk-console-shared.c:400
+#: ../lib/packagekit-glib2/pk-console-shared.c:435
 msgid "Checking applications in use"
 msgstr "使用中アプリケーションをチェック中"
 
 #. TRANSLATORS: transaction state, we are checking for libraries currently in
 #. use
-#: ../lib/packagekit-glib2/pk-console-shared.c:404
+#: ../lib/packagekit-glib2/pk-console-shared.c:439
 msgid "Checking libraries in use"
 msgstr "使用中ライブラリをチェック中"
 
 #. TRANSLATORS: transaction state, we are copying package files before or
 #. after the transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:408
+#: ../lib/packagekit-glib2/pk-console-shared.c:443
 msgid "Copying files"
 msgstr "ファイル複写中"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:426
+#: ../lib/packagekit-glib2/pk-console-shared.c:461
 msgid "Trivial"
 msgstr "些細な"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:430
+#: ../lib/packagekit-glib2/pk-console-shared.c:465
 msgid "Normal"
 msgstr "通常"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:434
+#: ../lib/packagekit-glib2/pk-console-shared.c:469
 msgid "Important"
 msgstr "重要"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:438
+#: ../lib/packagekit-glib2/pk-console-shared.c:473
 msgid "Security"
 msgstr "セキュリティー"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:442
+#: ../lib/packagekit-glib2/pk-console-shared.c:477
 msgid "Bug fix "
 msgstr "バグ修正"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:446
+#: ../lib/packagekit-glib2/pk-console-shared.c:481
 msgid "Enhancement"
 msgstr "機能追加"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:450
+#: ../lib/packagekit-glib2/pk-console-shared.c:485
 msgid "Blocked"
 msgstr "ブロックされています"
 
 #. TRANSLATORS: The state of a package
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:455
-#: ../lib/packagekit-glib2/pk-console-shared.c:528
+#: ../lib/packagekit-glib2/pk-console-shared.c:490
+#: ../lib/packagekit-glib2/pk-console-shared.c:563
 msgid "Installed"
 msgstr "インストール済み"
 
 #. TRANSLATORS: The state of a package, i.e. not installed
-#: ../lib/packagekit-glib2/pk-console-shared.c:460
+#: ../lib/packagekit-glib2/pk-console-shared.c:495
 msgid "Available"
 msgstr "利用可能"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:478
+#: ../lib/packagekit-glib2/pk-console-shared.c:513
 msgid "Downloading"
 msgstr "ダウンロード中"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:482
+#: ../lib/packagekit-glib2/pk-console-shared.c:517
 msgid "Updating"
 msgstr "更新中"
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:486
-#: ../lib/packagekit-glib2/pk-console-shared.c:606
+#: ../lib/packagekit-glib2/pk-console-shared.c:521
+#: ../lib/packagekit-glib2/pk-console-shared.c:641
 msgid "Installing"
 msgstr "インストール中"
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:490
-#: ../lib/packagekit-glib2/pk-console-shared.c:602
+#: ../lib/packagekit-glib2/pk-console-shared.c:525
+#: ../lib/packagekit-glib2/pk-console-shared.c:637
 msgid "Removing"
 msgstr "削除中"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:494
+#: ../lib/packagekit-glib2/pk-console-shared.c:529
 msgid "Cleaning up"
 msgstr "クリーンアップ中"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:498
+#: ../lib/packagekit-glib2/pk-console-shared.c:533
 msgid "Obsoleting"
 msgstr "旧ファイル区分中"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:502
+#: ../lib/packagekit-glib2/pk-console-shared.c:537
 msgid "Reinstalling"
 msgstr "再インストール中"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:520
+#: ../lib/packagekit-glib2/pk-console-shared.c:555
 msgid "Downloaded"
 msgstr "ダウンロード済み"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:532
+#: ../lib/packagekit-glib2/pk-console-shared.c:567
 msgid "Removed"
 msgstr "削除済み"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:536
+#: ../lib/packagekit-glib2/pk-console-shared.c:571
 msgid "Cleaned up"
 msgstr "クリーンアップ済み"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:540
+#: ../lib/packagekit-glib2/pk-console-shared.c:575
 msgid "Obsoleted"
 msgstr "旧ファイル分類済み"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:544
+#: ../lib/packagekit-glib2/pk-console-shared.c:579
 msgid "Reinstalled"
 msgstr "再インストール済み"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:562
+#: ../lib/packagekit-glib2/pk-console-shared.c:597
 msgid "Unknown role type"
 msgstr "不明なロールタイプ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:566
+#: ../lib/packagekit-glib2/pk-console-shared.c:601
 msgid "Getting dependencies"
 msgstr "依存関係を取得中"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:570
+#: ../lib/packagekit-glib2/pk-console-shared.c:605
 msgid "Getting update details"
 msgstr "更新の詳細を取得中"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:574
+#: ../lib/packagekit-glib2/pk-console-shared.c:609
 msgid "Getting details"
 msgstr "詳細を取得中"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:578
+#: ../lib/packagekit-glib2/pk-console-shared.c:613
 msgid "Getting requires"
 msgstr "要求を取得中"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:582
+#: ../lib/packagekit-glib2/pk-console-shared.c:617
 msgid "Getting updates"
 msgstr "更新を取得中"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:586
+#: ../lib/packagekit-glib2/pk-console-shared.c:621
 msgid "Searching by details"
 msgstr "詳細で検索中"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:590
+#: ../lib/packagekit-glib2/pk-console-shared.c:625
 msgid "Searching by file"
 msgstr "ファイルで検索中"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:594
+#: ../lib/packagekit-glib2/pk-console-shared.c:629
 msgid "Searching groups"
 msgstr "グループ検索中"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:598
+#: ../lib/packagekit-glib2/pk-console-shared.c:633
 msgid "Searching by name"
 msgstr "名前で検索中"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:610
+#: ../lib/packagekit-glib2/pk-console-shared.c:645
 msgid "Installing files"
 msgstr "ファイルをインストール中"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:614
+#: ../lib/packagekit-glib2/pk-console-shared.c:649
 msgid "Refreshing cache"
 msgstr "キャッシュをリフレッシュ中"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:618
+#: ../lib/packagekit-glib2/pk-console-shared.c:653
 msgid "Updating packages"
 msgstr "パッケージを更新中"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:622
+#: ../lib/packagekit-glib2/pk-console-shared.c:657
 msgid "Updating system"
 msgstr "システムを更新中"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:626
+#: ../lib/packagekit-glib2/pk-console-shared.c:661
 msgid "Canceling"
 msgstr "キャンセル中"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:634
+#: ../lib/packagekit-glib2/pk-console-shared.c:669
 msgid "Getting repositories"
 msgstr "レポジトリを取得中"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:638
+#: ../lib/packagekit-glib2/pk-console-shared.c:673
 msgid "Enabling repository"
 msgstr "レポジトリを有効化中"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:642
+#: ../lib/packagekit-glib2/pk-console-shared.c:677
 msgid "Setting data"
 msgstr "データを設定中"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:646
+#: ../lib/packagekit-glib2/pk-console-shared.c:681
 msgid "Resolving"
 msgstr "解除中"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:650
+#: ../lib/packagekit-glib2/pk-console-shared.c:685
 msgid "Getting file list"
 msgstr "ファイルリストを取得中"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:654
+#: ../lib/packagekit-glib2/pk-console-shared.c:689
 msgid "Getting provides"
 msgstr "provide を取得中"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:658
+#: ../lib/packagekit-glib2/pk-console-shared.c:693
 msgid "Installing signature"
 msgstr "署名をインストール中"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:662
+#: ../lib/packagekit-glib2/pk-console-shared.c:697
 msgid "Getting packages"
 msgstr "パッケージを獲得中"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:666
+#: ../lib/packagekit-glib2/pk-console-shared.c:701
 msgid "Accepting EULA"
 msgstr "EULA を受入れ中"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:674
+#: ../lib/packagekit-glib2/pk-console-shared.c:709
 msgid "Getting upgrades"
 msgstr "更新を獲得中"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:678
+#: ../lib/packagekit-glib2/pk-console-shared.c:713
 msgid "Getting categories"
 msgstr "区分を獲得中"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:682
+#: ../lib/packagekit-glib2/pk-console-shared.c:717
 msgid "Getting transactions"
 msgstr "トランザクションを獲得中"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:686
-#: ../lib/packagekit-glib2/pk-console-shared.c:690
+#: ../lib/packagekit-glib2/pk-console-shared.c:721
+#: ../lib/packagekit-glib2/pk-console-shared.c:725
 msgid "Simulating install"
 msgstr "インストールをシミュレート中"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:694
+#: ../lib/packagekit-glib2/pk-console-shared.c:729
 msgid "Simulating remove"
 msgstr "削除をシミュレート中"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:698
+#: ../lib/packagekit-glib2/pk-console-shared.c:733
 msgid "Simulating update"
 msgstr "更新をシミュレート中"
 
@@ -1788,13 +1787,19 @@ msgstr "以下のパッケージは再インストールされるべきもので
 msgid "The following packages have to be downgraded:"
 msgstr "以下のパッケージはダウングレードされるべきものです:"
 
+#. TRANSLATORS: When processing, untrusted and non-verified packages may be
+#. encountered
+#: ../lib/packagekit-glib2/pk-task-text.c:325
+msgid "The following packages are untrusted:"
+msgstr "以下のパッケージは信頼できません:"
+
 #. TRANSLATORS: ask the user if the proposed changes are okay
-#: ../lib/packagekit-glib2/pk-task-text.c:380
+#: ../lib/packagekit-glib2/pk-task-text.c:385
 msgid "Proceed with changes?"
 msgstr "変更したまま継続しますか?"
 
 #. TRANSLATORS: tell the user we didn't do anything
-#: ../lib/packagekit-glib2/pk-task-text.c:385
+#: ../lib/packagekit-glib2/pk-task-text.c:390
 msgid "The transaction did not proceed."
 msgstr "トランザクションは進展しませんでした。"
 
@@ -1869,7 +1874,7 @@ msgstr "パッケージを更新するには認証が必要です"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:21
 msgid "Authentication is required to upgrade the operating system"
-msgstr ""
+msgstr "オペレーティングシステムを更新するには認証が必要です"
 
 #. SECURITY:
 #. - Normal users are allowed to cancel their own task without
@@ -1996,98 +2001,70 @@ msgstr "パッケージを更新"
 #. 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:109
 msgid "Upgrade System"
-msgstr ""
-
-#. TRANSLATORS: failed due to DBus security
-#: ../src/pk-main.c:91
-msgid "Startup failed due to security policies on this machine."
-msgstr "このマシン上のセキュリティポリシーのため、スタートアップが失敗"
-
-#. TRANSLATORS: only two ways this can fail...
-#: ../src/pk-main.c:93
-msgid "This can happen for two reasons:"
-msgstr "これは2つの理由で発生します:"
-
-#. TRANSLATORS: only allowed to be owned by root
-#: ../src/pk-main.c:95
-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:97
-msgid ""
-"The org.freedesktop.PackageKit.conf file is not installed in the system "
-"directory:"
-msgstr "org.freedesktop.PackageKit.conf ファイルがシステムディレクトリにインストールされていない:"
+msgstr "システムを更新"
 
 #. TRANSLATORS: a backend is the system package tool, e.g. yum, apt
-#: ../src/pk-main.c:223
+#: ../src/pk-main.c:149
 msgid "Packaging backend to use, e.g. dummy"
 msgstr "使用するパッケージバックエンド、例、ダミー"
 
 #. TRANSLATORS: if we should run in the background
-#: ../src/pk-main.c:226
+#: ../src/pk-main.c:152
 msgid "Daemonize and detach from the terminal"
 msgstr "ターミナルからデーモン化して隔離"
 
 #. TRANSLATORS: if we should not monitor how long we are inactive for
-#: ../src/pk-main.c:229
+#: ../src/pk-main.c:155
 msgid "Disable the idle timer"
 msgstr "遊休タイマーを無効にする"
 
 #. TRANSLATORS: show version
-#: ../src/pk-main.c:232
+#: ../src/pk-main.c:158
 msgid "Show version and exit"
 msgstr "バージョンを表示して終了"
 
 #. TRANSLATORS: exit after we've started up, used for user profiling
-#: ../src/pk-main.c:235
+#: ../src/pk-main.c:161
 msgid "Exit after a small delay"
 msgstr "少し遅れて終了"
 
 #. TRANSLATORS: exit straight away, used for automatic profiling
-#: ../src/pk-main.c:238
+#: ../src/pk-main.c:164
 msgid "Exit after the engine has loaded"
 msgstr "エンジンがロードされてから終了"
 
+#. TRANSLATORS: don't unset environment variables, used for debugging
+#: ../src/pk-main.c:167
+msgid "Don't clear environment on startup"
+msgstr "起動時に環境を消去しません"
+
 #. TRANSLATORS: describing the service that is running
-#: ../src/pk-main.c:253
+#: ../src/pk-main.c:179
 msgid "PackageKit service"
 msgstr "PackageKit サービス"
 
-#. TRANSLATORS: fatal error, dbus is not running
-#: ../src/pk-main.c:298
-msgid "Cannot connect to the system bus"
-msgstr "システムバスに接続できません"
-
-#: ../src/pk-main.c:344
+#: ../src/pk-main.c:253
 msgid "Failed to load any of the specified backends:"
-msgstr ""
-
-#. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error
-#. follows
-#: ../src/pk-main.c:358
-msgid "Error trying to start:"
-msgstr "スタートの試行でエラー:"
+msgstr "すべての指定されたバックエンドの読み込みに失敗しました:"
 
 #. TRANSLATORS: is not GPG signed
-#: ../src/pk-transaction.c:2611 ../src/pk-transaction.c:2618
+#: ../src/pk-transaction.c:2696
 msgid "The software is not from a trusted source."
 msgstr "ソフトウェアは信頼できるソースのものではありません。"
 
-#: ../src/pk-transaction.c:2623
+#: ../src/pk-transaction.c:2704
 msgid "Do not update this package unless you are sure it is safe to do so."
 msgstr "実行が安全なことを確信できない限りはこのパッケージを更新しないで下さい。"
 
-#: ../src/pk-transaction.c:2624
+#: ../src/pk-transaction.c:2705
 msgid "Do not update these packages unless you are sure it is safe to do so."
 msgstr "実行が安全なことを確信できない限りはこれらのパッケージ群を更新しないで下さい。"
 
-#: ../src/pk-transaction.c:2634
+#: ../src/pk-transaction.c:2715
 msgid "Do not install this package unless you are sure it is safe to do so."
 msgstr "実行が安全なことを確信できない限りはこのパッケージをインストールしないで下さい。"
 
-#: ../src/pk-transaction.c:2635
+#: ../src/pk-transaction.c:2716
 msgid "Do not install these packages unless you are sure it is safe to do so."
 msgstr "実行が安全なことを確信できない限りはこれらのパッケージ群をインストールしないで下さい。"
 
diff --git a/po/kn.po b/po/kn.po
index 3d3f320..b021ab6 100644
--- a/po/kn.po
+++ b/po/kn.po
@@ -2,14 +2,16 @@
 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
 # This file is distributed under the same license as the PACKAGE package.
 # 
-# Richard Hughes <richard at hughsie.com>, 2011
+# Translators:
+# Richard Hughes <richard at hughsie.com>, 2011.
+# Shankar Prasad <svenkate at redhat.com>, 2009.
 msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-04 10:50+0100\n"
-"PO-Revision-Date: 2011-05-04 09:56+0000\n"
-"Last-Translator: hughsie <richard at hughsie.com>\n"
+"POT-Creation-Date: 2011-11-10 19:50+0000\n"
+"PO-Revision-Date: 2011-11-10 19:50+0000\n"
+"Last-Translator: Richard Hughes <richard at hughsie.com>\n"
 "Language-Team: LANGUAGE <LL at li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -195,7 +197,7 @@ msgstr "ಒದಗಿಸಲಾದವರು"
 
 #. TRANSLATORS: details about the update, date the update was updated
 #. TRANSLATORS: The action of the package, in past tense
-#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:524
+#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:559
 msgid "Updated"
 msgstr "ಅಪ್‌ಡೇಟ್‌ ಮಾಡಲಾಗಿದ್ದು"
 
@@ -285,7 +287,7 @@ msgstr ""
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
 #: ../client/pk-console.c:704
-#: ../contrib/command-not-found/pk-command-not-found.c:639
+#: ../contrib/command-not-found/pk-command-not-found.c:634
 msgid "The transaction failed"
 msgstr "ವ್ಯವಹಾರವು ವಿಫಲಗೊಂಡಿದೆ"
 
@@ -337,21 +339,21 @@ msgstr ""
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:866
+#: ../client/pk-console.c:871
 #, c-format
 msgid "This tool could not find any available package: %s"
 msgstr "ಲಭ್ಯವಿರುವ ಪ್ಯಾಕೇಜುಗಳನ್ನು ಉಪಕರಣವು ಪತ್ತೆ ಮಾಡಿಲ್ಲ: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:894
+#: ../client/pk-console.c:899
 #, c-format
 msgid "This tool could not find the installed package: %s"
 msgstr "ಅನುಸ್ಥಾಪಿಸಲಾದ ಪ್ಯಾಕೇಜುಗಳನ್ನು ಈ ಉಪಕರಣದಿಂದ ಪತ್ತೆ ಮಾಡಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:922 ../client/pk-console.c:950
+#: ../client/pk-console.c:927 ../client/pk-console.c:955
 #, c-format
 msgid "This tool could not find the package: %s"
 msgstr "ಈ ಉಪಕರಣದಿಂದ ಪ್ಯಾಕೇಜನ್ನು ಪತ್ತೆ ಮಾಡಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ: %s"
@@ -364,72 +366,72 @@ msgstr "ಈ ಉಪಕರಣದಿಂದ ಪ್ಯಾಕೇಜನ್ನು ಪತ
 #. detailed error follows
 #. TRANSLATORS: The package name was not found in any software sources. The
 #. detailed error follows
-#: ../client/pk-console.c:978 ../client/pk-console.c:1006
-#: ../client/pk-console.c:1034 ../client/pk-console.c:1062
-#: ../client/pk-console.c:1090
+#: ../client/pk-console.c:983 ../client/pk-console.c:1011
+#: ../client/pk-console.c:1039 ../client/pk-console.c:1067
+#: ../client/pk-console.c:1095
 #, c-format
 msgid "This tool could not find all the packages: %s"
 msgstr "ಈ ಉಪಕರಣದಿಂದ ಎಲ್ಲಾ ಪ್ಯಾಕೇಜುಗಳನ್ನು ಪತ್ತೆ ಮಾಡಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ: %s"
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek
 #. without a paddle
-#: ../client/pk-console.c:1119
+#: ../client/pk-console.c:1124
 msgid "The daemon crashed mid-transaction!"
 msgstr "ವ್ಯವಹಾರದ ಮಧ್ಯದಲ್ಲಿ ಡೀಮನ್ ಕುಸಿದು ಹೋಗಿದೆ!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1153
+#: ../client/pk-console.c:1158
 msgid "PackageKit Console Interface"
 msgstr "PackageKit ಕನ್ಸೋಲ್ ಸಂಪರ್ಕಸಾಧನ"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1155
+#: ../client/pk-console.c:1160
 msgid "Subcommands:"
 msgstr "ಉಪಆಜ್ಞೆಗಳು:"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was
 #. last executed
-#: ../client/pk-console.c:1235
+#: ../client/pk-console.c:1240
 msgid "Failed to get the time since this action was last completed"
 msgstr ""
 "ಈ ಕಾರ್ಯವನ್ನು ಕೊನೆಯ ಬಾರಿಗೆ ಪೂರ್ಣಗೊಳಿಸದ ನಂತರ ಸಮಯವನ್ನು ಪಡೆದುಕೊಳ್ಳುವಲ್ಲಿ "
 "ವಿಫಲಗೊಂಡಿದೆ"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1277 ../client/pk-monitor.c:371
+#: ../client/pk-console.c:1282 ../client/pk-monitor.c:371
 msgid "Show the program version and exit"
 msgstr "ಪ್ರೊಗ್ರಾಂ ಆವೃತ್ತಿಯನ್ನು ತೋರಿಸಿ ನಿರ್ಗಮಿಸು"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1280
+#: ../client/pk-console.c:1285
 msgid "Set the filter, e.g. installed"
 msgstr "ಫಿಲ್ಟರನ್ನು ಸಿದ್ಧಗೊಳಿಸಿ, ಉದಾ. ಅನುಸ್ಥಾಪಿಸಲಾದ"
 
 #. TRANSLATORS: command line argument, use a non-standard install prefix
-#: ../client/pk-console.c:1283
+#: ../client/pk-console.c:1288
 msgid "Set the install root, e.g. '/' or '/mnt/ltsp'"
 msgstr ""
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1286
+#: ../client/pk-console.c:1291
 msgid "Exit without waiting for actions to complete"
 msgstr "ಕ್ರಿಯೆಗಳು ಪೂರ್ಣಗೊಳ್ಳುವವರೆಗೆ ಕಾಯದೆ ನಿರ್ಗಮಿಸು"
 
 #. command line argument, do we ask questions
-#: ../client/pk-console.c:1289
+#: ../client/pk-console.c:1294
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:525
 msgid "Install the packages without asking for confirmation"
 msgstr "ಖಚಿತಪಡಿಸಲು ಕೇಳದೆ ಪ್ಯಾಕೇಜುಗಳನ್ನು ಅನುಸ್ಥಾಪಿಸು"
 
 #. TRANSLATORS: command line argument, this command is not a priority
-#: ../client/pk-console.c:1292
+#: ../client/pk-console.c:1297
 msgid "Run the command using idle network bandwidth and also using less power"
 msgstr ""
 "ಆಜ್ಞೆಯನ್ನು ಒಂದು ಜಡವಾದಂತಹ ಜಾಲಬಂಧ ಬ್ಯಾಂಡ್‌ವಿಡ್ತನ್ನು ಬಳಸಿಕೊಂಡು ಹಾಗು ಕಡಿಮೆ "
 "ವಿದ್ಯುಚ್ಛಕ್ತಿಯನ್ನು ಉಪಯೋಗಿಸಿಕೊಂಡು ಚಲಾಯಿಸು"
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1295
+#: ../client/pk-console.c:1300
 msgid ""
 "Print to screen a machine readable output, rather than using animated "
 "widgets"
@@ -438,155 +440,155 @@ msgstr ""
 "ಮುದ್ರಿಸು"
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1298
+#: ../client/pk-console.c:1303
 msgid "The maximum metadata cache age. Use -1 for 'never'."
 msgstr ""
 
 #. TRANSLATORS: command line argument, --help
-#: ../client/pk-console.c:1301
+#: ../client/pk-console.c:1306
 msgid "Show help options."
 msgstr ""
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1331
+#: ../client/pk-console.c:1336
 msgid "Failed to parse command line"
 msgstr ""
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1341
+#: ../client/pk-console.c:1346
 msgid "Failed to contact PackageKit"
 msgstr "PackageKit ಅನ್ನು ಸಂಪರ್ಕಿಸುವಲ್ಲಿ ವಿಫಲಗೊಂಡಿದೆ"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1394
+#: ../client/pk-console.c:1399
 msgid "The proxy could not be set"
 msgstr ""
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1406
+#: ../client/pk-console.c:1411
 msgid "The install root could not be set"
 msgstr ""
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1418
+#: ../client/pk-console.c:1423
 msgid "The filter specified was invalid"
 msgstr "ಸೂಚಿಸಲಾದ ಫಿಲ್ಟರ್ ಅಮಾನ್ಯವಾಗಿದೆ"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1437
+#: ../client/pk-console.c:1442
 msgid "A search type is required, e.g. name"
 msgstr "ಒಂದು ಹುಡುಕು ಬಗೆಯ ಅಗತ್ಯವಿದೆ, ಉದಾ. ಹೆಸರು"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1444 ../client/pk-console.c:1456
-#: ../client/pk-console.c:1468 ../client/pk-console.c:1480
+#: ../client/pk-console.c:1449 ../client/pk-console.c:1461
+#: ../client/pk-console.c:1473 ../client/pk-console.c:1485
 msgid "A search term is required"
 msgstr "ಒಂದು ಹುಡುಕು ಪದದ ಅಗತ್ಯವಿದೆ"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1490
+#: ../client/pk-console.c:1495
 msgid "Invalid search type"
 msgstr "ಅಮಾನ್ಯವಾದ ಹುಡುಕು ಬಗೆ"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1496
+#: ../client/pk-console.c:1501
 msgid "A package name to install is required"
 msgstr "ಅನುಸ್ಥಾಪಿಸಲು ಒಂದು ಪ್ಯಾಕೇಜಿನ ಹೆಸರಿನ ಅಗತ್ಯವಿದೆ"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1505
+#: ../client/pk-console.c:1510
 msgid "A filename to install is required"
 msgstr "ಅನುಸ್ಥಾಪಿಸಲು ಒಂದು ಕಡತದ ಹೆಸರಿನ ಅಗತ್ಯವಿದೆ"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1516
+#: ../client/pk-console.c:1521
 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:1527
+#: ../client/pk-console.c:1532
 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:1536
+#: ../client/pk-console.c:1541
 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:1543
+#: ../client/pk-console.c:1548
 msgid "Directory not found"
 msgstr "ಕೋಶವು ಕಂಡುಬಂದಿಲ್ಲ"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1552
+#: ../client/pk-console.c:1557
 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:1563
+#: ../client/pk-console.c:1568
 msgid "A transaction identifier (tid) is required"
 msgstr "ವ್ಯವಹಾರ ಪತ್ತೆಗಾರನ (tid) ಅಗತ್ಯವಿದೆ"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:1584
+#: ../client/pk-console.c:1589
 msgid "A package name to resolve is required"
 msgstr "ಪರಿಹರಿಸಬೇಕಿರುವ ಪ್ಯಾಕೇಜಿನ ಹೆಸರಿನ ಅಗತ್ಯವಿದೆ"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:1595 ../client/pk-console.c:1606
+#: ../client/pk-console.c:1600 ../client/pk-console.c:1611
 msgid "A repository name is required"
 msgstr "ಒಂದು ರೆಪೋಸಿಟರಿ ಹೆಸರಿನ ಅಗತ್ಯವಿದೆ"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:1617
+#: ../client/pk-console.c:1622
 msgid "A repo name, parameter and value are required"
 msgstr "ಒಂದು ರೆಪೊ ಹೆಸರು, ನಿಯತಾಂಕ ಹಾಗು ಮೌಲ್ಯದ ಅಗತ್ಯವಿದೆ"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:1634
+#: ../client/pk-console.c:1639
 msgid "An action, e.g. 'update-system' is required"
 msgstr "ಒಂದು ಕ್ರಿಯೆಯ, ಉದಾ. 'update-system' ಅಗತ್ಯವಿದೆ"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:1641
+#: ../client/pk-console.c:1646
 msgid "A correct role is required"
 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:1651 ../client/pk-console.c:1665
-#: ../client/pk-console.c:1674 ../client/pk-console.c:1694
-#: ../client/pk-console.c:1703 ../client/pk-generate-pack.c:314
+#: ../client/pk-console.c:1656 ../client/pk-console.c:1670
+#: ../client/pk-console.c:1679 ../client/pk-console.c:1699
+#: ../client/pk-console.c:1708 ../client/pk-generate-pack.c:314
 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:1683
+#: ../client/pk-console.c:1688
 msgid "A package provide string is required"
 msgstr "ಪ್ಯಾಕೇಜನ್ನು ಒದಗಿಸುವ ವಾಕ್ಯದ ಅಗತ್ಯವಿದೆ"
 
 #. TRANSLATORS: The user did not provide a distro name
-#: ../client/pk-console.c:1727
+#: ../client/pk-console.c:1732
 msgid "A distribution name is required"
 msgstr ""
 
 #. TRANSLATORS: The user did not provide an upgrade type
-#: ../client/pk-console.c:1733
+#: ../client/pk-console.c:1738
 msgid "An upgrade type is required, e.g. 'minimal', 'default' or 'complete'"
 msgstr ""
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command
 #. line
-#: ../client/pk-console.c:1783
+#: ../client/pk-console.c:1788
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "ಆಯ್ಕೆ '%s' ಯು ಬೆಂಬಲಿತವಾಗಿಲ್ಲ"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:1793
+#: ../client/pk-console.c:1798
 msgid "Command failed"
 msgstr "ಆಜ್ಞೆಯು ವಿಫಲಗೊಂಡಿದೆ"
 
@@ -726,159 +728,154 @@ msgid "PackageKit Monitor"
 msgstr "PackageKit ಮೇಲ್ವಿಚಾರಕ"
 
 #. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/pk-plugin-install.c:499
+#: ../contrib/browser-plugin/pk-plugin-install.c:503
 msgid "Getting package information..."
 msgstr "ಪ್ಯಾಕೇಜಿನ ಮಾಹಿತಿಯನ್ನು ಪಡೆಯಲಾಗುತ್ತಿದೆ..."
 
 #. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/pk-plugin-install.c:505
+#: ../contrib/browser-plugin/pk-plugin-install.c:509
 #, c-format
 msgid "Run %s"
 msgstr "%s ಅನ್ನು ಚಲಾಯಿಸು"
 
 #. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:511
+#: ../contrib/browser-plugin/pk-plugin-install.c:515
 msgid "Installed version"
 msgstr "ಅನುಸ್ಥಾಪಿತಗೊಂಡ ಆವೃತ್ತಿ"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:519
+#: ../contrib/browser-plugin/pk-plugin-install.c:523
 #, c-format
 msgid "Run version %s now"
 msgstr "ಆವೃತ್ತಿ %s ಅನ್ನು ಈಗಲೆ ಚಲಾಯಿಸು"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:525
+#: ../contrib/browser-plugin/pk-plugin-install.c:529
 msgid "Run now"
 msgstr "ಈಗಲೆ ಚಲಾಯಿಸು"
 
 #. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:531
+#: ../contrib/browser-plugin/pk-plugin-install.c:535
 #, c-format
 msgid "Update to version %s"
 msgstr "ಆವೃತ್ತಿ %s ಗೆ ಅಪ್‌ಡೇಟ್‌ ಮಾಡಿ"
 
 #. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:537
+#: ../contrib/browser-plugin/pk-plugin-install.c:541
 #, c-format
 msgid "Install %s now"
 msgstr "%s ಅನ್ನು ಈಗಲೆ ಅನುಸ್ಥಾಪಿಸು"
 
 #. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:540
+#: ../contrib/browser-plugin/pk-plugin-install.c:544
 msgid "Version"
 msgstr "ಆವೃತ್ತಿ"
 
 #. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/pk-plugin-install.c:545
+#: ../contrib/browser-plugin/pk-plugin-install.c:549
 msgid "No packages found for your system"
 msgstr "ನಿಮ್ಮ ಗಣಕದಲ್ಲಿ ಯಾವುದೆ ಪ್ಯಾಕೇಜು ಕಂಡಬಂದಿಲ್ಲ"
 
 #. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/pk-plugin-install.c:550
+#: ../contrib/browser-plugin/pk-plugin-install.c:554
 msgid "Installing..."
 msgstr "ಅನುಸ್ಥಾಪಿಸಲಾಗುತ್ತಿದೆ..."
 
 #. TRANSLATORS: downloading repo data so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:366
+#: ../contrib/command-not-found/pk-command-not-found.c:363
 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:370
+#: ../contrib/command-not-found/pk-command-not-found.c:367
 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:374
+#: ../contrib/command-not-found/pk-command-not-found.c:371
 msgid "Waiting for package manager lock."
 msgstr "ಪ್ಯಾಕೇಜ್ ವ್ಯವಸ್ತಾಪಕವು ಲಾಕ್ ಆಗಲು ಕಾಯಲಾಗುತ್ತಿದೆ."
 
 #. TRANSLATORS: loading package cache so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:378
+#: ../contrib/command-not-found/pk-command-not-found.c:375
 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:444
+#: ../contrib/command-not-found/pk-command-not-found.c:439
 msgid "Failed to search for file"
 msgstr "ಕಡತಕ್ಕಾಗಿ ಹುಡುಕುವಲ್ಲಿ ವಿಫಲಗೊಂಡಿದೆ"
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
-#: ../contrib/command-not-found/pk-command-not-found.c:456
+#: ../contrib/command-not-found/pk-command-not-found.c:451
 msgid "Getting the list of files failed"
 msgstr ""
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:602
+#: ../contrib/command-not-found/pk-command-not-found.c:597
 msgid "Failed to launch:"
 msgstr "ಆರಂಭಿಸುವಲ್ಲಿ ವಿಫಲಗೊಂಡಿದೆ:"
 
 #. TRANSLATORS: we failed to install the package
-#: ../contrib/command-not-found/pk-command-not-found.c:630
+#: ../contrib/command-not-found/pk-command-not-found.c:625
 msgid "Failed to install packages"
 msgstr "ಪ್ಯಾಕೇಜುಗಳನ್ನು ಅನುಸ್ಥಾಪಿಸಲು ವಿಫಲಗೊಂಡಿದೆ"
 
-#. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/command-not-found/pk-command-not-found.c:706
-msgid "PackageKit Command Not Found"
-msgstr "PackageKit ಆಜ್ಞೆಯು ಕಂಡುಬಂದಿಲ್ಲ"
-
 #. TRANSLATORS: the prefix of all the output telling the user
 #. * why it's not executing. NOTE: this is lowercase to mimic
 #. * the style of bash itself -- apologies
-#: ../contrib/command-not-found/pk-command-not-found.c:741
+#: ../contrib/command-not-found/pk-command-not-found.c:723
 msgid "command not found"
 msgstr ""
 
 #. TRANSLATORS: tell the user what we think the command is
-#: ../contrib/command-not-found/pk-command-not-found.c:759
+#: ../contrib/command-not-found/pk-command-not-found.c:741
 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:773
+#: ../contrib/command-not-found/pk-command-not-found.c:755
 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:787
-#: ../contrib/command-not-found/pk-command-not-found.c:796
+#: ../contrib/command-not-found/pk-command-not-found.c:769
+#: ../contrib/command-not-found/pk-command-not-found.c:778
 msgid "Similar commands are:"
 msgstr "ಹೋಲುವ ಆಜ್ಞೆಗಳು:"
 
 #. TRANSLATORS: ask the user to choose a file to run
-#: ../contrib/command-not-found/pk-command-not-found.c:803
+#: ../contrib/command-not-found/pk-command-not-found.c:785
 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:821
+#: ../contrib/command-not-found/pk-command-not-found.c:803
 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:828
+#: ../contrib/command-not-found/pk-command-not-found.c:810
 #, 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:855
+#: ../contrib/command-not-found/pk-command-not-found.c:837
 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:865
+#: ../contrib/command-not-found/pk-command-not-found.c:847
 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:874
+#: ../contrib/command-not-found/pk-command-not-found.c:856
 msgid "Please choose a package to install"
 msgstr "ಅನುಸ್ಥಾಪಿಸಲು ದಯವಿಟ್ಟು ಒಂದು ಪ್ಯಾಕೇಜನ್ನು ಆರಿಸಿ"
 
@@ -1055,7 +1052,7 @@ msgstr "ಅನುಕರಣಾ ಕ್ರಮದಲ್ಲಿ ಪ್ಯಾಕೇಜ
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
 #. TRANSLATORS: transaction state, installing packages
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:860
-#: ../lib/packagekit-glib2/pk-console-shared.c:296
+#: ../lib/packagekit-glib2/pk-console-shared.c:331
 #, c-format
 msgid "Installing packages"
 msgstr "ಪ್ಯಾಕೇಜುಗಳನ್ನು ಅನುಸ್ಥಾಪಿಸಲಾಗುತ್ತಿದೆ"
@@ -1189,474 +1186,474 @@ msgstr "PackageKit ಪ್ಯಾಕೇಜ್ ಪಟ್ಟಿ"
 msgid "PackageKit Service Pack"
 msgstr "PackageKit ಸರ್ವಿಸ್‌ ಪ್ಯಾಕ್"
 
-#: ../lib/packagekit-glib2/pk-console-shared.c:64
+#: ../lib/packagekit-glib2/pk-console-shared.c:65
 #, c-format
 msgid "Please enter a number from 1 to %i: "
 msgstr "1 ರಿಂದ %i ಒಳಗಿನ ಒಂದು ಅಂಕೆಯನ್ನು ನಮೂದಿಸಿ: "
 
 #. TRANSLATORS: more than one package could be found that matched, to follow
 #. is a list of possible packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:198
+#: ../lib/packagekit-glib2/pk-console-shared.c:233
 msgid "More than one package matches:"
 msgstr "ಒಂದಕ್ಕಿಂತ ಹೆಚ್ಚಿನ ಪ್ಯಾಕೇಜುಗಳು ತಾಳೆಯಾಗುತ್ತವೆ:"
 
 #. TRANSLATORS: This finds out which package in the list to use
-#: ../lib/packagekit-glib2/pk-console-shared.c:209
+#: ../lib/packagekit-glib2/pk-console-shared.c:244
 msgid "Please choose the correct package: "
 msgstr "ದಯವಿಟ್ಟು ಸರಿಯಾದ ಪ್ಯಾಕೇಜನ್ನು ಆಯ್ಕೆ ಮಾಡಿ: "
 
 #. TRANSLATORS: This is when the transaction status is not known
-#: ../lib/packagekit-glib2/pk-console-shared.c:264
+#: ../lib/packagekit-glib2/pk-console-shared.c:299
 msgid "Unknown state"
 msgstr "ಅಜ್ಞಾತ ಸ್ಥಿತಿ"
 
 #. TRANSLATORS: transaction state, the daemon is in the process of starting
-#: ../lib/packagekit-glib2/pk-console-shared.c:268
+#: ../lib/packagekit-glib2/pk-console-shared.c:303
 msgid "Starting"
 msgstr "ಆರಂಭಿಸಲಾಗುತ್ತಿದೆ"
 
 #. TRANSLATORS: transaction state, the transaction is waiting for another to
 #. complete
-#: ../lib/packagekit-glib2/pk-console-shared.c:272
+#: ../lib/packagekit-glib2/pk-console-shared.c:307
 msgid "Waiting in queue"
 msgstr "ಸರತಿಯಲ್ಲಿ ಕಾಯಲಾಗುತ್ತಿದೆ"
 
 #. TRANSLATORS: transaction state, just started
-#: ../lib/packagekit-glib2/pk-console-shared.c:276
+#: ../lib/packagekit-glib2/pk-console-shared.c:311
 msgid "Running"
 msgstr "ಚಾಲನೆಯಲ್ಲಿರುವ"
 
 #. TRANSLATORS: transaction state, is querying data
-#: ../lib/packagekit-glib2/pk-console-shared.c:280
+#: ../lib/packagekit-glib2/pk-console-shared.c:315
 msgid "Querying"
 msgstr "ಮನವಿ ಮಾಡಲಾಗುತ್ತಿದೆ"
 
 #. TRANSLATORS: transaction state, getting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:284
+#: ../lib/packagekit-glib2/pk-console-shared.c:319
 msgid "Getting information"
 msgstr "ಮಾಹಿತಿಯನ್ನು ಪಡೆದುಕೊಳ್ಳಲಾಗುತ್ತಿದೆ"
 
 #. TRANSLATORS: transaction state, removing packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:288
+#: ../lib/packagekit-glib2/pk-console-shared.c:323
 msgid "Removing packages"
 msgstr "ಪ್ಯಾಕೇಜುಗಳನ್ನು ತೆಗೆದು ಹಾಕಲಾಗುತ್ತಿದೆ"
 
 #. TRANSLATORS: transaction state, downloading package files
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:292
-#: ../lib/packagekit-glib2/pk-console-shared.c:670
+#: ../lib/packagekit-glib2/pk-console-shared.c:327
+#: ../lib/packagekit-glib2/pk-console-shared.c:705
 msgid "Downloading packages"
 msgstr "ಪ್ಯಾಕೇಜುಗಳನ್ನು ಡೌನ್-ಲೋಡ್ ಮಾಡಲಾಗುತ್ತಿದೆ"
 
 #. TRANSLATORS: transaction state, refreshing internal lists
-#: ../lib/packagekit-glib2/pk-console-shared.c:300
+#: ../lib/packagekit-glib2/pk-console-shared.c:335
 msgid "Refreshing software list"
 msgstr "ತಂತ್ರಾಂಶದ ಪಟ್ಟಿಯನ್ನು ಪುನಶ್ಚೇತನಗೊಳಿಸಲಾಗುತ್ತಿದೆ"
 
 #. TRANSLATORS: transaction state, installing updates
-#: ../lib/packagekit-glib2/pk-console-shared.c:304
+#: ../lib/packagekit-glib2/pk-console-shared.c:339
 msgid "Installing updates"
 msgstr "ಅಪ್‌ಡೇಟ್‌ಗಳನ್ನು ಅನುಸ್ಥಾಪಿಸಲಾಗುತ್ತಿದೆ"
 
 #. TRANSLATORS: transaction state, removing old packages, and cleaning config
 #. files
-#: ../lib/packagekit-glib2/pk-console-shared.c:308
+#: ../lib/packagekit-glib2/pk-console-shared.c:343
 msgid "Cleaning up packages"
 msgstr "ಪ್ಯಾಕೇಜುಗಳನ್ನು ಸ್ವಚ್ಛಗೊಳಿಸಲಾಗುತ್ತಿದೆ"
 
 #. TRANSLATORS: transaction state, obsoleting old packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:312
+#: ../lib/packagekit-glib2/pk-console-shared.c:347
 msgid "Obsoleting packages"
 msgstr "ಪ್ಯಾಕೇಜುಗಳನ್ನು ಅಪ್ರಚಲಿತಗೊಳಿಸಲಾಗುತ್ತಿದೆ"
 
 #. TRANSLATORS: transaction state, checking the transaction before we do it
-#: ../lib/packagekit-glib2/pk-console-shared.c:316
+#: ../lib/packagekit-glib2/pk-console-shared.c:351
 msgid "Resolving dependencies"
 msgstr "ಅವಲಂಬನೆಗಳನ್ನು ಪರಿಹರಿಸಲಾಗುತ್ತಿದೆ"
 
 #. TRANSLATORS: transaction state, checking if we have all the security keys
 #. for the operation
-#: ../lib/packagekit-glib2/pk-console-shared.c:320
+#: ../lib/packagekit-glib2/pk-console-shared.c:355
 msgid "Checking signatures"
 msgstr "ಸಹಿಯನ್ನು ಪರಿಶೀಲಿಸಲಾಗುತ್ತಿದೆ"
 
 #. TRANSLATORS: transaction state, when we return to a previous system state
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:324
-#: ../lib/packagekit-glib2/pk-console-shared.c:630
+#: ../lib/packagekit-glib2/pk-console-shared.c:359
+#: ../lib/packagekit-glib2/pk-console-shared.c:665
 msgid "Rolling back"
 msgstr "ಹಿಂದಕ್ಕೆ ಮರಳಲಾಗುತ್ತಿದೆ"
 
 #. TRANSLATORS: transaction state, when we're doing a test transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:328
+#: ../lib/packagekit-glib2/pk-console-shared.c:363
 msgid "Testing changes"
 msgstr "ಬದಲಾವಣೆಗಳನ್ನು ಪರಿಶೀಲಿಸಲಾಗುತ್ತಿದೆ"
 
 #. TRANSLATORS: transaction state, when we're writing to the system package
 #. database
-#: ../lib/packagekit-glib2/pk-console-shared.c:332
+#: ../lib/packagekit-glib2/pk-console-shared.c:367
 msgid "Committing changes"
 msgstr "ಬದಲಾವಣೆಗಳನ್ನು ಸಲ್ಲಿಸಲಾಗುತ್ತಿದೆ"
 
 #. TRANSLATORS: transaction state, requesting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:336
+#: ../lib/packagekit-glib2/pk-console-shared.c:371
 msgid "Requesting data"
 msgstr "ದತ್ತಾಂಶಕ್ಕಾಗಿ ಮನವಿ ಸಲ್ಲಿಸಲಾಗುತ್ತಿದೆ"
 
 #. TRANSLATORS: transaction state, all done!
-#: ../lib/packagekit-glib2/pk-console-shared.c:340
+#: ../lib/packagekit-glib2/pk-console-shared.c:375
 msgid "Finished"
 msgstr "ಮುಗಿಸಲಾಗಿದೆ"
 
 #. TRANSLATORS: transaction state, in the process of cancelling
-#: ../lib/packagekit-glib2/pk-console-shared.c:344
+#: ../lib/packagekit-glib2/pk-console-shared.c:379
 msgid "Cancelling"
 msgstr "ರದ್ದುಗೊಳಿಸಲಾಗುತ್ತಿದೆ"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:348
+#: ../lib/packagekit-glib2/pk-console-shared.c:383
 msgid "Downloading repository information"
 msgstr "ರೆಪೊಸಿಟರಿ ಮಾಹಿತಿಯನ್ನು ಡೌನ್‌ಲೋಡ್ ಮಾಡಿಕೊಳ್ಳಲಾಗುತ್ತಿದೆ"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:352
+#: ../lib/packagekit-glib2/pk-console-shared.c:387
 msgid "Downloading list of packages"
 msgstr "ಪ್ಯಾಕೇಜುಗಳ ಪಟ್ಟಿಯನ್ನು ಡೌನ್‌ಲೋಡ್ ಮಾಡಿಕೊಳ್ಳಲಾಗುತ್ತಿದೆ"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:356
+#: ../lib/packagekit-glib2/pk-console-shared.c:391
 msgid "Downloading file lists"
 msgstr "ಕಡತದ ಪಟ್ಟಿಗಳನ್ನು ಡೌನ್‌ಲೋಡ್‌ ಮಾಡಿಕೊಳ್ಳಲಾಗುತ್ತಿದೆ"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:360
+#: ../lib/packagekit-glib2/pk-console-shared.c:395
 msgid "Downloading lists of changes"
 msgstr "ಬದಲಾವಣೆಗಳ ಪಟ್ಟಿಯನ್ನು ಡೌನ್‌ಲೋಡ್ ಮಾಡಿಕೊಳ್ಳಲಾಗುತ್ತಿದೆ"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:364
+#: ../lib/packagekit-glib2/pk-console-shared.c:399
 msgid "Downloading groups"
 msgstr "ಸಮೂಹಗಳನ್ನು ಡೌನ್‌ಲೋಡ್ ಮಾಡಿಕೊಳ್ಳಲಾಗುತ್ತಿದೆ"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:368
+#: ../lib/packagekit-glib2/pk-console-shared.c:403
 msgid "Downloading update information"
 msgstr "ಅಪ್‌ಡೇಟ್ ಮಾಹಿತಿಯನ್ನು ಡೌನ್‌ಲೋಡ್‌ ಮಾಡಲಾಗುತ್ತಿದೆ"
 
 #. TRANSLATORS: transaction state, repackaging delta files
-#: ../lib/packagekit-glib2/pk-console-shared.c:372
+#: ../lib/packagekit-glib2/pk-console-shared.c:407
 msgid "Repackaging files"
 msgstr "ಕಡತಗಳನ್ನು ಮರಳಿ ಪ್ಯಾಕೇಜು ಮಾಡಲಾಗುತ್ತಿದೆ"
 
 #. TRANSLATORS: transaction state, loading databases
-#: ../lib/packagekit-glib2/pk-console-shared.c:376
+#: ../lib/packagekit-glib2/pk-console-shared.c:411
 msgid "Loading cache"
 msgstr "ಕ್ಯಾಶೆಯನ್ನು ಲೋಡ್‌ ಮಾಡಲಾಗುತ್ತಿದೆ"
 
 #. TRANSLATORS: transaction state, scanning for running processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:380
+#: ../lib/packagekit-glib2/pk-console-shared.c:415
 msgid "Scanning applications"
 msgstr "ಅನ್ವಯಗಳನ್ನು ಸ್ಕ್ಯಾನ್ ಮಾಡಲಾಗುತ್ತಿದೆ"
 
 #. TRANSLATORS: transaction state, generating a list of packages installed on
 #. the system
-#: ../lib/packagekit-glib2/pk-console-shared.c:384
+#: ../lib/packagekit-glib2/pk-console-shared.c:419
 msgid "Generating package lists"
 msgstr "ಪ್ಯಾಕೇಜುಗಳ ಪಟ್ಟಿಯನ್ನು ಉತ್ಪಾದಿಸಲಾಗುತ್ತದೆ"
 
 #. TRANSLATORS: transaction state, when we're waiting for the native tools to
 #. exit
-#: ../lib/packagekit-glib2/pk-console-shared.c:388
+#: ../lib/packagekit-glib2/pk-console-shared.c:423
 msgid "Waiting for package manager lock"
 msgstr "ಪ್ಯಾಕೇಜ್ ವ್ಯವಸ್ಥಾಪಕನ ಲಾಕ್‌ಗಾಗಿ ಕಾಯಲಾಗುತ್ತಿದೆ"
 
 #. TRANSLATORS: transaction state, waiting for user to type in a password
-#: ../lib/packagekit-glib2/pk-console-shared.c:392
+#: ../lib/packagekit-glib2/pk-console-shared.c:427
 msgid "Waiting for authentication"
 msgstr "ದೃಢೀಕರಣಕ್ಕಾಗಿ ಕಾಯಲಾಗುತ್ತಿದೆ"
 
 #. TRANSLATORS: transaction state, we are updating the list of processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:396
+#: ../lib/packagekit-glib2/pk-console-shared.c:431
 msgid "Updating running applications"
 msgstr "ಚಾಲನೆಯಲ್ಲಿರುವ ಅನ್ವಯಗಳನ್ನು ಅಪ್‌ಡೇಟ್ ಮಾಡಲಾಗುತ್ತಿದೆ"
 
 #. TRANSLATORS: transaction state, we are checking executable files currently
 #. in use
-#: ../lib/packagekit-glib2/pk-console-shared.c:400
+#: ../lib/packagekit-glib2/pk-console-shared.c:435
 msgid "Checking applications in use"
 msgstr "ಬಳಕೆಯಲ್ಲಿರುವ ಅನ್ವಯಗಳನ್ನು ಪರಿಶೀಲಿಸಲಾಗುತ್ತಿದೆ"
 
 #. TRANSLATORS: transaction state, we are checking for libraries currently in
 #. use
-#: ../lib/packagekit-glib2/pk-console-shared.c:404
+#: ../lib/packagekit-glib2/pk-console-shared.c:439
 msgid "Checking libraries in use"
 msgstr "ಬಳಕೆಯಲ್ಲಿರುವ ಲೈಬ್ರರಿಗಳನ್ನು ಪರಿಶೀಲಿಸಲಾಗುತ್ತಿದೆ"
 
 #. TRANSLATORS: transaction state, we are copying package files before or
 #. after the transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:408
+#: ../lib/packagekit-glib2/pk-console-shared.c:443
 msgid "Copying files"
 msgstr "ಕಡತಗಳನ್ನು ಕಾಪಿ ಮಾಡಲಾಗುತ್ತಿದೆ"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:426
+#: ../lib/packagekit-glib2/pk-console-shared.c:461
 msgid "Trivial"
 msgstr "ಪ್ರಮುಖವಲ್ಲದ"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:430
+#: ../lib/packagekit-glib2/pk-console-shared.c:465
 msgid "Normal"
 msgstr "ಸಾಮಾನ್ಯ"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:434
+#: ../lib/packagekit-glib2/pk-console-shared.c:469
 msgid "Important"
 msgstr "ಪ್ರಮುಖ"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:438
+#: ../lib/packagekit-glib2/pk-console-shared.c:473
 msgid "Security"
 msgstr "ಸುರಕ್ಷತೆ"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:442
+#: ../lib/packagekit-glib2/pk-console-shared.c:477
 msgid "Bug fix "
 msgstr "ದೋಷ ನಿವಾರಣೆ "
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:446
+#: ../lib/packagekit-glib2/pk-console-shared.c:481
 msgid "Enhancement"
 msgstr "ವರ್ಧನೆ"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:450
+#: ../lib/packagekit-glib2/pk-console-shared.c:485
 msgid "Blocked"
 msgstr "ನಿರ್ಬಂಧಿಸಲಾದ"
 
 #. TRANSLATORS: The state of a package
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:455
-#: ../lib/packagekit-glib2/pk-console-shared.c:528
+#: ../lib/packagekit-glib2/pk-console-shared.c:490
+#: ../lib/packagekit-glib2/pk-console-shared.c:563
 msgid "Installed"
 msgstr "ಅನುಸ್ಥಾಪಿಸಲಾದ"
 
 #. TRANSLATORS: The state of a package, i.e. not installed
-#: ../lib/packagekit-glib2/pk-console-shared.c:460
+#: ../lib/packagekit-glib2/pk-console-shared.c:495
 msgid "Available"
 msgstr "ಲಭ್ಯ"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:478
+#: ../lib/packagekit-glib2/pk-console-shared.c:513
 msgid "Downloading"
 msgstr "ಡೌನ್‌ಲೋಡ್ ಮಾಡಲಾಗುತ್ತಿದೆ"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:482
+#: ../lib/packagekit-glib2/pk-console-shared.c:517
 msgid "Updating"
 msgstr "ಅಪ್‌ಡೇಟ್‌ ಮಾಡಲಾಗುತ್ತಿದೆ"
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:486
-#: ../lib/packagekit-glib2/pk-console-shared.c:606
+#: ../lib/packagekit-glib2/pk-console-shared.c:521
+#: ../lib/packagekit-glib2/pk-console-shared.c:641
 msgid "Installing"
 msgstr "ಅನುಸ್ಥಾಪಿಸಲಾಗುತ್ತಿದೆ"
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:490
-#: ../lib/packagekit-glib2/pk-console-shared.c:602
+#: ../lib/packagekit-glib2/pk-console-shared.c:525
+#: ../lib/packagekit-glib2/pk-console-shared.c:637
 msgid "Removing"
 msgstr "ತೆಗೆದು ಹಾಕಲಾಗುತ್ತಿದೆ"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:494
+#: ../lib/packagekit-glib2/pk-console-shared.c:529
 msgid "Cleaning up"
 msgstr "ಸ್ವಚ್ಛ್ಗಗೊಳಿಸಲಾಗುತ್ತಿದೆ"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:498
+#: ../lib/packagekit-glib2/pk-console-shared.c:533
 msgid "Obsoleting"
 msgstr "ಅಪ್ರಚಲಿತಗೊಳಿಸಲಾಗುತ್ತಿದೆ"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:502
+#: ../lib/packagekit-glib2/pk-console-shared.c:537
 msgid "Reinstalling"
 msgstr "ಮರಳಿ ಅನುಸ್ಥಾಪಿಸಲಾಗುತ್ತಿದೆ"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:520
+#: ../lib/packagekit-glib2/pk-console-shared.c:555
 msgid "Downloaded"
 msgstr "ಡೌನ್‌ಲೋಡ್‌ ಮಾಡಲಾಗಿದೆ"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:532
+#: ../lib/packagekit-glib2/pk-console-shared.c:567
 msgid "Removed"
 msgstr "ತೆಗೆದು ಹಾಕಲಾಗಿದೆ"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:536
+#: ../lib/packagekit-glib2/pk-console-shared.c:571
 msgid "Cleaned up"
 msgstr "ಸ್ವಚ್ಛಗೊಳಿಸಲಾಗಿದೆ"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:540
+#: ../lib/packagekit-glib2/pk-console-shared.c:575
 msgid "Obsoleted"
 msgstr "ಅಪ್ರಚಲಿತಗೊಂಡಿದೆ"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:544
+#: ../lib/packagekit-glib2/pk-console-shared.c:579
 msgid "Reinstalled"
 msgstr "ಮರಳಿ ಅನುಸ್ಥಾಪಿಸಲಾಗಿದೆ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:562
+#: ../lib/packagekit-glib2/pk-console-shared.c:597
 msgid "Unknown role type"
 msgstr "ಗೊತ್ತಿರದ ಪಾತ್ರದ ಬಗೆ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:566
+#: ../lib/packagekit-glib2/pk-console-shared.c:601
 msgid "Getting dependencies"
 msgstr "ಅವಲಂಬನೆಗಳನ್ನು ಪಡೆದುಕೊಳ್ಳಲಾಗುತ್ತಿದೆ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:570
+#: ../lib/packagekit-glib2/pk-console-shared.c:605
 msgid "Getting update details"
 msgstr "ಪ್ಯಾಕೇಜಿನ ವಿವರಗಳನ್ನು ಪಡೆಯಲಾಗುತ್ತಿದೆ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:574
+#: ../lib/packagekit-glib2/pk-console-shared.c:609
 msgid "Getting details"
 msgstr "ವಿವರಗಳನ್ನು ಪಡೆದುಕೊಳ್ಳಲಾಗುತ್ತಿದೆ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:578
+#: ../lib/packagekit-glib2/pk-console-shared.c:613
 msgid "Getting requires"
 msgstr "ಅಗತ್ಯವಿರುವುದನ್ನು ಪಡೆಯಲಾಗುತ್ತಿದೆ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:582
+#: ../lib/packagekit-glib2/pk-console-shared.c:617
 msgid "Getting updates"
 msgstr "ಅಪ್‌ಡೇಟ್‌ಗಳನ್ನು ಪಡೆದುಕೊಳ್ಳಲಾಗುತ್ತಿದೆ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:586
+#: ../lib/packagekit-glib2/pk-console-shared.c:621
 msgid "Searching by details"
 msgstr "ವಿವರಗಳಿಗಾಗಿ ಹುಡುಕಲಾಗುತ್ತಿದೆ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:590
+#: ../lib/packagekit-glib2/pk-console-shared.c:625
 msgid "Searching by file"
 msgstr "ಕಡತದ ಆಧಾರದ ಮೇಲೆ ಹುಡುಕಲಾಗುತ್ತಿದೆ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:594
+#: ../lib/packagekit-glib2/pk-console-shared.c:629
 msgid "Searching groups"
 msgstr "ಸಮೂಹಗಳನ್ನು ಹುಡುಕಲಾಗುತ್ತಿದೆ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:598
+#: ../lib/packagekit-glib2/pk-console-shared.c:633
 msgid "Searching by name"
 msgstr "ಹೆಸರಿನ ಆಧಾರದ ಮೇಲೆ ಹುಡುಕಲಾಗುತ್ತಿದೆ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:610
+#: ../lib/packagekit-glib2/pk-console-shared.c:645
 msgid "Installing files"
 msgstr "ಕಡತಗಳನ್ನು ಅನುಸ್ಥಾಪಿಸಲಾಗುತ್ತಿದೆ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:614
+#: ../lib/packagekit-glib2/pk-console-shared.c:649
 msgid "Refreshing cache"
 msgstr "ಕ್ಯಾಶೆಯನ್ನು ಪುನಶ್ಚೇತನಗೊಳಿಸಲಾಗುತ್ತಿದೆ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:618
+#: ../lib/packagekit-glib2/pk-console-shared.c:653
 msgid "Updating packages"
 msgstr "ಪ್ಯಾಕೇಜುಗಳನ್ನು ಅಪ್ಡೇಟ್ ಮಾಡಲಾಗುತ್ತಿದೆ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:622
+#: ../lib/packagekit-glib2/pk-console-shared.c:657
 msgid "Updating system"
 msgstr "ಗಣಕವನ್ನು ಅಪ್‌ಡೇಟ್‌ ಮಾಡಲಾಗುತ್ತಿದೆ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:626
+#: ../lib/packagekit-glib2/pk-console-shared.c:661
 msgid "Canceling"
 msgstr "ರದ್ದುಗೊಳಿಸಲಾಗುತ್ತಿದೆ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:634
+#: ../lib/packagekit-glib2/pk-console-shared.c:669
 msgid "Getting repositories"
 msgstr "ರೆಪೊಸಿಟರಿಗಳನ್ನು ಪಡೆಯಲಾಗುತ್ತಿದೆ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:638
+#: ../lib/packagekit-glib2/pk-console-shared.c:673
 msgid "Enabling repository"
 msgstr "ರೆಪೊಸಿಟರಿಯನ್ನು ಶಕ್ತಗೊಳಿಸಲಾಗುತ್ತಿದೆ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:642
+#: ../lib/packagekit-glib2/pk-console-shared.c:677
 msgid "Setting data"
 msgstr "ದತ್ತಾಂಶವನ್ನು ಸಿದ್ಧಗೊಳಿಸಲಾಗುತ್ತಿದೆ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:646
+#: ../lib/packagekit-glib2/pk-console-shared.c:681
 msgid "Resolving"
 msgstr "ಪರಿಹರಿಸಲಾಗುತ್ತಿದೆ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:650
+#: ../lib/packagekit-glib2/pk-console-shared.c:685
 msgid "Getting file list"
 msgstr "ಕಡತದ ಪಟ್ಟಿಯನ್ನು ಪಡೆದುಕೊಳ್ಳಲಾಗುತ್ತಿದೆ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:654
+#: ../lib/packagekit-glib2/pk-console-shared.c:689
 msgid "Getting provides"
 msgstr "ಒದಗಿಸುವುದನ್ನು ಪಡೆಯಲಾಗುತ್ತಿದೆ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:658
+#: ../lib/packagekit-glib2/pk-console-shared.c:693
 msgid "Installing signature"
 msgstr "ಸಹಿಯನ್ನು ಅನುಸ್ಥಾಪಿಸಲಾಗುತ್ತಿದೆ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:662
+#: ../lib/packagekit-glib2/pk-console-shared.c:697
 msgid "Getting packages"
 msgstr "ಪ್ಯಾಕೇಜುಗಳನ್ನು ಪಡೆಯಲಾಗುತ್ತಿದೆ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:666
+#: ../lib/packagekit-glib2/pk-console-shared.c:701
 msgid "Accepting EULA"
 msgstr "EULA ಅನ್ನು ಅಂಗೀಕರಿಸಲಾಗುತ್ತಿದೆ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:674
+#: ../lib/packagekit-glib2/pk-console-shared.c:709
 msgid "Getting upgrades"
 msgstr "ನವೀಕರಣಗಳನ್ನು ಪಡೆಯಲಾಗುತ್ತಿದೆ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:678
+#: ../lib/packagekit-glib2/pk-console-shared.c:713
 msgid "Getting categories"
 msgstr "ವರ್ಗಗಳನ್ನು ಪಡೆದುಕೊಳ್ಳಲಾಗುತ್ತಿದೆ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:682
+#: ../lib/packagekit-glib2/pk-console-shared.c:717
 msgid "Getting transactions"
 msgstr "ವ್ಯವಹಾರಗಳನ್ನು ಪಡೆದುಕೊಳ್ಳಲಾಗುತ್ತಿದೆ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:686
-#: ../lib/packagekit-glib2/pk-console-shared.c:690
+#: ../lib/packagekit-glib2/pk-console-shared.c:721
+#: ../lib/packagekit-glib2/pk-console-shared.c:725
 msgid "Simulating install"
 msgstr "ಅನುಸ್ಥಾಪಿಸಿದಂತೆ ತೋರಿಸಲಾಗುತ್ತಿದೆ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:694
+#: ../lib/packagekit-glib2/pk-console-shared.c:729
 msgid "Simulating remove"
 msgstr "ತೆಗೆದು ಹಾಕಿದಂತೆ ತೋರಿಸಲಾಗುತ್ತಿದೆ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:698
+#: ../lib/packagekit-glib2/pk-console-shared.c:733
 msgid "Simulating update"
 msgstr "ಅಪ್‌ಡೇಟ್ ಮಾಡಿದಂತೆ ತೋರಿಸಲಾಗುತ್ತಿದೆ"
 
@@ -1806,13 +1803,19 @@ msgstr "ಈ ಕೆಳಗಿನ ಪ್ಯಾಕೇಜುಗಳನ್ನು ಮರ
 msgid "The following packages have to be downgraded:"
 msgstr "ಈ ಕೆಳಗಿನ ಪ್ಯಾಕೇಜುಗಳ ಆವೃತ್ತಿಯನ್ನು ಕೆಳಕ್ಕೆ ಇಳಿಸಲಾಗುತ್ತದೆ:"
 
+#. TRANSLATORS: When processing, untrusted and non-verified packages may be
+#. encountered
+#: ../lib/packagekit-glib2/pk-task-text.c:325
+msgid "The following packages are untrusted:"
+msgstr ""
+
 #. TRANSLATORS: ask the user if the proposed changes are okay
-#: ../lib/packagekit-glib2/pk-task-text.c:380
+#: ../lib/packagekit-glib2/pk-task-text.c:385
 msgid "Proceed with changes?"
 msgstr "ಬದಲಾವಣೆಗಳೊಂದಿಗೆ ಮುಂದುವರೆಯಬೇಕೆ?"
 
 #. TRANSLATORS: tell the user we didn't do anything
-#: ../lib/packagekit-glib2/pk-task-text.c:385
+#: ../lib/packagekit-glib2/pk-task-text.c:390
 msgid "The transaction did not proceed."
 msgstr "ವ್ಯವಹಾರವು ಮುಂದುವರೆಯಲಿಲ್ಲ."
 
@@ -2020,106 +2023,74 @@ msgstr "ಪ್ಯಾಕೇಜುಗಳನ್ನು ಅಪ್‌ಡೇಟ್ ಮ
 msgid "Upgrade System"
 msgstr ""
 
-#. TRANSLATORS: failed due to DBus security
-#: ../src/pk-main.c:91
-msgid "Startup failed due to security policies on this machine."
-msgstr "ಈ ಗಣಕದಲ್ಲಿನ ಸುರಕ್ಷತಾ ಪಾಲಿಸಿಗಳ ಕಾರಣದಿಂದಾಗಿ ಆರಂಭಗೊಳಿಕೆಯು ವಿಫಲಗೊಂಡಿದೆ."
-
-#. TRANSLATORS: only two ways this can fail...
-#: ../src/pk-main.c:93
-msgid "This can happen for two reasons:"
-msgstr "ಇದಕ್ಕೆ ಎರಡು ಕಾರಣಗಳಿರುತ್ತದೆ:"
-
-#. TRANSLATORS: only allowed to be owned by root
-#: ../src/pk-main.c:95
-msgid "The correct user is not launching the executable (usually root)"
-msgstr ""
-"ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದುದನ್ನು ಸೂಕ್ತವಾದ ಬಳಕೆದಾರರು ಚಲಾಯಿಸುತ್ತಿಲ್ಲ (ಸಾಮಾನ್ಯವಾಗಿ "
-"ರೂಟ್)"
-
-#. TRANSLATORS: or we are installed in a prefix
-#: ../src/pk-main.c:97
-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:223
+#: ../src/pk-main.c:149
 msgid "Packaging backend to use, e.g. dummy"
 msgstr "ಬಳಸಬೇಕಿರುವ ಪ್ಯಾಕೇಜಿಂಗ್ ಬ್ಯಾಕೇಂಡ್, ಉದಾ. dummy"
 
 #. TRANSLATORS: if we should run in the background
-#: ../src/pk-main.c:226
+#: ../src/pk-main.c:152
 msgid "Daemonize and detach from the terminal"
 msgstr "ಡೀಮನ್ ಆಗಿ ಮಾಡು ಹಾಗು ಟರ್ಮಿನಲ್‌ನಿಂದ ಕಳಚು"
 
 #. TRANSLATORS: if we should not monitor how long we are inactive for
-#: ../src/pk-main.c:229
+#: ../src/pk-main.c:155
 msgid "Disable the idle timer"
 msgstr "ಜಡ ಟೈಮರಿನಿಂದ ಅಶಕ್ತಗೊಳಿಸು"
 
 #. TRANSLATORS: show version
-#: ../src/pk-main.c:232
+#: ../src/pk-main.c:158
 msgid "Show version and exit"
 msgstr "ಆವೃತ್ತಿಯನ್ನು ತೋರಿಸಿ ನಿರ್ಗಮಿಸು"
 
 #. TRANSLATORS: exit after we've started up, used for user profiling
-#: ../src/pk-main.c:235
+#: ../src/pk-main.c:161
 msgid "Exit after a small delay"
 msgstr "ಚಿಕ್ಕ ವಿಳಂಬದ ನಂತರ ನಿರ್ಗಮಿಸು"
 
 #. TRANSLATORS: exit straight away, used for automatic profiling
-#: ../src/pk-main.c:238
+#: ../src/pk-main.c:164
 msgid "Exit after the engine has loaded"
 msgstr "ಎಂಜಿನ್ ಲೋಡ್ ಆದ ನಂತರ ನಿರ್ಗಮಿಸು"
 
+#. TRANSLATORS: don't unset environment variables, used for debugging
+#: ../src/pk-main.c:167
+msgid "Don't clear environment on startup"
+msgstr ""
+
 #. TRANSLATORS: describing the service that is running
-#: ../src/pk-main.c:253
+#: ../src/pk-main.c:179
 msgid "PackageKit service"
 msgstr "PackageKit ಸೇವೆ"
 
-#. TRANSLATORS: fatal error, dbus is not running
-#: ../src/pk-main.c:298
-msgid "Cannot connect to the system bus"
-msgstr "ವ್ಯವಸ್ಥೆಯ ಬಸ್‌ನೊಂದಿಗೆ ಸಂಪರ್ಕಹೊಂದಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ"
-
-#: ../src/pk-main.c:344
+#: ../src/pk-main.c:253
 msgid "Failed to load any of the specified backends:"
 msgstr ""
 
-#. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error
-#. follows
-#: ../src/pk-main.c:358
-msgid "Error trying to start:"
-msgstr "ಆರಂಭಿಸಲು ಪ್ರಯತ್ನಿಸಿದಾಗ ದೋಷ:"
-
 #. TRANSLATORS: is not GPG signed
-#: ../src/pk-transaction.c:2611 ../src/pk-transaction.c:2618
+#: ../src/pk-transaction.c:2696
 msgid "The software is not from a trusted source."
 msgstr "ತಂತ್ರಾಂಶವು ನಂಬಲು ಯೋಗ್ಯವಾದ ಮೂಲದಿಂದ ಬಂದಿಲ್ಲ."
 
-#: ../src/pk-transaction.c:2623
+#: ../src/pk-transaction.c:2704
 msgid "Do not update this package unless you are sure it is safe to do so."
 msgstr ""
 "ಈ ಪ್ಯಾಕೇಜನ್ನು ಅಪ್‌ಡೇಟ್ ಮಾಡುವುದು ಸುರಕ್ಷಿತ ಎಂದು ನಿಮಗೆ ಖಚಿತವಿರದ ಹೊರತು "
 "ಅನುಸ್ಥಾಪಿಸಬೇಡಿ."
 
-#: ../src/pk-transaction.c:2624
+#: ../src/pk-transaction.c:2705
 msgid "Do not update these packages unless you are sure it is safe to do so."
 msgstr ""
 "ಈ ಪ್ಯಾಕೇಜುಗಳನ್ನು ಅಪ್‌ಡೇಟ್ ಮಾಡುವುದು ಸುರಕ್ಷಿತ ಎಂದು ನಿಮಗೆ ಖಚಿತವಿರದ ಹೊರತು "
 "ಅನುಸ್ಥಾಪಿಸಬೇಡಿ."
 
-#: ../src/pk-transaction.c:2634
+#: ../src/pk-transaction.c:2715
 msgid "Do not install this package unless you are sure it is safe to do so."
 msgstr ""
 "ಸುರಕ್ಷಿತವಾಗಿದೆ ಎಂದು ನಿಮಗೆ ಖಚಿತವಾಗಿರದ ಹೊರತು ಈ ಪ್ಯಾಕೇಜನ್ನು ನೀವು "
 "ಅನುಸ್ಥಾಪಿಸಬೇಡಿ."
 
-#: ../src/pk-transaction.c:2635
+#: ../src/pk-transaction.c:2716
 msgid "Do not install these packages unless you are sure it is safe to do so."
 msgstr ""
 "ಈ ಪ್ಯಾಕೇಜುಗಳನ್ನು ಅನುಸ್ಥಾಪಿಸುವುದು ಸುರಕ್ಷಿತ ಎಂದು ನಿಮಗೆ ಖಚಿತವಿರದ ಹೊರತು "
diff --git a/po/ko.po b/po/ko.po
index 605cc3e..31f4999 100644
--- a/po/ko.po
+++ b/po/ko.po
@@ -2,13 +2,15 @@
 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
 # This file is distributed under the same license as the PACKAGE package.
 # 
+# Translators:
+#   <darkcircle.0426 at gmail.com>, 2011.
 msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-04 10:50+0100\n"
-"PO-Revision-Date: 2011-07-04 15:31+0000\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"POT-Creation-Date: 2011-11-10 19:50+0000\n"
+"PO-Revision-Date: 2011-11-10 19:50+0000\n"
+"Last-Translator: Richard Hughes <richard at hughsie.com>\n"
 "Language-Team: Korean (http://www.transifex.net/projects/p/freedesktop/team/ko/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -20,114 +22,114 @@ msgstr ""
 #. TRANSLATORS: the role is the point of the transaction, e.g. update-system
 #: ../client/pk-console.c:174 ../client/pk-console.c:596
 msgid "Transaction"
-msgstr ""
+msgstr "트랜잭션"
 
 #. TRANSLATORS: this is the time the transaction was started in system
 #. timezone
 #: ../client/pk-console.c:176
 msgid "System time"
-msgstr ""
+msgstr "시스템 시간"
 
 #. TRANSLATORS: this is if the transaction succeeded or not
 #: ../client/pk-console.c:178
 msgid "Succeeded"
-msgstr ""
+msgstr "성공"
 
 #: ../client/pk-console.c:178
 msgid "True"
-msgstr ""
+msgstr "ì°¸"
 
 #: ../client/pk-console.c:178
 msgid "False"
-msgstr ""
+msgstr "거짓"
 
 #. TRANSLATORS: this is the transactions role, e.g. "update-system"
 #: ../client/pk-console.c:180
 msgid "Role"
-msgstr ""
+msgstr "ì—­í• "
 
 #. TRANSLATORS: this is The duration of the transaction
 #: ../client/pk-console.c:185
 msgid "Duration"
-msgstr ""
+msgstr "존속기간"
 
 #: ../client/pk-console.c:185
 msgid "(seconds)"
-msgstr ""
+msgstr "(ì´ˆ)"
 
 #. TRANSLATORS: this is The command line used to do the action
 #: ../client/pk-console.c:189
 msgid "Command line"
-msgstr ""
+msgstr "명령 줄"
 
 #. TRANSLATORS: this is the user ID of the user that started the action
 #: ../client/pk-console.c:191
 msgid "User ID"
-msgstr ""
+msgstr "사용자 ID"
 
 #. TRANSLATORS: this is the username, e.g. hughsie
 #: ../client/pk-console.c:198
 msgid "Username"
-msgstr ""
+msgstr "사용자 이름"
 
 #. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
 #: ../client/pk-console.c:202
 msgid "Real name"
-msgstr ""
+msgstr "실제 이름"
 
 #: ../client/pk-console.c:210
 msgid "Affected packages:"
-msgstr ""
+msgstr "반영된 패키지:"
 
 #: ../client/pk-console.c:212
 msgid "Affected packages: None"
-msgstr ""
+msgstr "반영된 패키지: "
 
 #. TRANSLATORS: this is the distro, e.g. Fedora 10
 #: ../client/pk-console.c:247
 msgid "Distribution"
-msgstr ""
+msgstr "배포판"
 
 #. TRANSLATORS: this is type of update, stable or testing
 #: ../client/pk-console.c:249
 msgid "Type"
-msgstr ""
+msgstr "유형"
 
 #. TRANSLATORS: this is any summary text describing the upgrade
 #. TRANSLATORS: this is the summary of the group
 #: ../client/pk-console.c:251 ../client/pk-console.c:290
 msgid "Summary"
-msgstr ""
+msgstr "요약"
 
 #. TRANSLATORS: this is the group category name
 #: ../client/pk-console.c:279
 msgid "Category"
-msgstr ""
+msgstr "분류"
 
 #. TRANSLATORS: this is group identifier
 #: ../client/pk-console.c:281
 msgid "ID"
-msgstr ""
+msgstr "ID"
 
 #. TRANSLATORS: this is the parent group
 #: ../client/pk-console.c:284
 msgid "Parent"
-msgstr ""
+msgstr "부모"
 
 #. TRANSLATORS: this is the name of the parent group
 #: ../client/pk-console.c:287
 msgid "Name"
-msgstr ""
+msgstr "이름"
 
 #. TRANSLATORS: this is preferred icon for the group
 #: ../client/pk-console.c:293
 msgid "Icon"
-msgstr ""
+msgstr "아이콘"
 
 #. TRANSLATORS: this is a header for the package that can be updated
 #: ../client/pk-console.c:339
 msgid "Details about the update:"
-msgstr ""
+msgstr "업데이트 세부사항:"
 
 #. TRANSLATORS: details about the update, package name and version
 #. TRANSLATORS: the package that is being processed
@@ -137,189 +139,189 @@ msgstr ""
 #: ../lib/packagekit-glib2/pk-task-text.c:124
 #: ../lib/packagekit-glib2/pk-task-text.c:206
 msgid "Package"
-msgstr ""
+msgstr "패키지"
 
 #. TRANSLATORS: details about the update, any packages that this update
 #. updates
 #: ../client/pk-console.c:348
 msgid "Updates"
-msgstr ""
+msgstr "갱신"
 
 #. TRANSLATORS: details about the update, any packages that this update
 #. obsoletes
 #: ../client/pk-console.c:352
 msgid "Obsoletes"
-msgstr ""
+msgstr "오래된 항목"
 
 #. TRANSLATORS: details about the update, the vendor URLs
 #. TRANSLATORS: the vendor (e.g. vmware) that is providing the EULA
 #: ../client/pk-console.c:356 ../lib/packagekit-glib2/pk-task-text.c:209
 msgid "Vendor"
-msgstr ""
+msgstr "제조자"
 
 #. TRANSLATORS: details about the update, the bugzilla URLs
 #: ../client/pk-console.c:360
 msgid "Bugzilla"
-msgstr ""
+msgstr "버그질라"
 
 #. TRANSLATORS: details about the update, the CVE URLs
 #: ../client/pk-console.c:364
 msgid "CVE"
-msgstr ""
+msgstr "CVE"
 
 #. TRANSLATORS: details about the update, if the package requires a restart
 #: ../client/pk-console.c:368
 msgid "Restart"
-msgstr ""
+msgstr "재시작"
 
 #. TRANSLATORS: details about the update, any description of the update
 #: ../client/pk-console.c:372
 msgid "Update text"
-msgstr ""
+msgstr "텍스트"
 
 #. TRANSLATORS: details about the update, the changelog for the package
 #: ../client/pk-console.c:376
 msgid "Changes"
-msgstr ""
+msgstr "변경"
 
 #. TRANSLATORS: details about the update, the ongoing state of the update
 #: ../client/pk-console.c:380
 msgid "State"
-msgstr ""
+msgstr "상태"
 
 #. TRANSLATORS: details about the update, date the update was issued
 #: ../client/pk-console.c:384
 msgid "Issued"
-msgstr ""
+msgstr "등록됨"
 
 #. TRANSLATORS: details about the update, date the update was updated
 #. TRANSLATORS: The action of the package, in past tense
-#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:524
+#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:559
 msgid "Updated"
-msgstr ""
+msgstr "갱신됨"
 
 #. TRANSLATORS: if the repo is enabled
 #: ../client/pk-console.c:424
 msgid "Enabled"
-msgstr ""
+msgstr "활성화됨"
 
 #. TRANSLATORS: if the repo is disabled
 #: ../client/pk-console.c:427
 msgid "Disabled"
-msgstr ""
+msgstr "비활성화됨"
 
 #. TRANSLATORS: a package requires the system to be restarted
 #: ../client/pk-console.c:459
 msgid "System restart required by:"
-msgstr ""
+msgstr "다음에 의해 시스템 재시작이 요구됨:"
 
 #. TRANSLATORS: a package requires the session to be restarted
 #: ../client/pk-console.c:462
 msgid "Session restart required:"
-msgstr ""
+msgstr "세션 재시작이 요구하는 것들:"
 
 #. TRANSLATORS: a package requires the system to be restarted due to a
 #. security update
 #: ../client/pk-console.c:465
 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:468
 msgid "Session restart (security) required:"
-msgstr ""
+msgstr "(보안성) 세션 재시작이 요구하는 것들:"
 
 #. TRANSLATORS: a package requires the application to be restarted
 #: ../client/pk-console.c:471
 msgid "Application restart required by:"
-msgstr ""
+msgstr "다음에 의해 프로그램 재시작이 요구됨:"
 
 #. TRANSLATORS: This a list of details about the package
 #: ../client/pk-console.c:506
 msgid "Package description"
-msgstr ""
+msgstr "패키지 설명"
 
 #. TRANSLATORS: This a message (like a little note that may be of interest)
 #. from the transaction
 #: ../client/pk-console.c:537
 msgid "Message:"
-msgstr ""
+msgstr "메세지:"
 
 #. TRANSLATORS: This where the package has no files
 #: ../client/pk-console.c:558
 msgid "No files"
-msgstr ""
+msgstr "파일이 없음"
 
 #. TRANSLATORS: This a list files contained in the package
 #: ../client/pk-console.c:563
 msgid "Package files"
-msgstr ""
+msgstr "패키지 파일"
 
 #. TRANSLATORS: the percentage complete of the transaction
 #: ../client/pk-console.c:631
 msgid "Percentage"
-msgstr ""
+msgstr "백분율"
 
 #. TRANSLATORS: the status of the transaction (e.g. downloading)
 #: ../client/pk-console.c:649
 msgid "Status"
-msgstr ""
+msgstr "상태"
 
 #. TRANSLATORS: the results from the transaction
 #: ../client/pk-console.c:678
 msgid "Results:"
-msgstr ""
+msgstr "ê²°ê³¼:"
 
 #. TRANSLATORS: we failed to get any results, which is pretty fatal in my book
 #: ../client/pk-console.c:685
 msgid "Fatal error"
-msgstr ""
+msgstr "치명적 오류"
 
 #. TRANSLATORS: the user asked to update everything, but there is nothing that
 #. can be updated
 #: ../client/pk-console.c:701
 msgid "There are no packages to update."
-msgstr ""
+msgstr "업데이트할 패키지가 없습니다."
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
 #: ../client/pk-console.c:704
-#: ../contrib/command-not-found/pk-command-not-found.c:639
+#: ../contrib/command-not-found/pk-command-not-found.c:634
 msgid "The transaction failed"
-msgstr ""
+msgstr "트랜잭션에 실패했습니다."
 
 #. TRANSLATORS: print a message when there are no updates
 #: ../client/pk-console.c:733
 msgid "There are no updates available at this time."
-msgstr ""
+msgstr "지금 가능한 갱신 내용이 없습니다."
 
 #: ../client/pk-console.c:756
 msgid "There are no upgrades available at this time."
-msgstr ""
+msgstr "지금 가능한 업그레이드가 없습니다."
 
 #. TRANSLATORS: a package needs to restart their system
 #: ../client/pk-console.c:823
 msgid "Please restart the computer to complete the update."
-msgstr ""
+msgstr "갱신을 완료하려면 컴퓨터를 재시작하여 주시기 바랍니다."
 
 #. TRANSLATORS: a package needs to restart the session
 #: ../client/pk-console.c:826
 msgid "Please logout and login to complete the update."
-msgstr ""
+msgstr "갱신을 완료하려면 로그아웃후 로그인하여 주시기 바랍니다."
 
 #. TRANSLATORS: a package needs to restart their system (due to security)
 #: ../client/pk-console.c:829
 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:832
 msgid ""
 "Please logout and login to complete the update as important security updates"
 " have been installed."
-msgstr ""
+msgstr "설치된 중요한 보안 갱신을 완료하려면 로그아웃후 로그인하여 주시기 바랍니다."
 
 #. TRANSLATORS: The user used 'pkcon install dave.rpm' rather than 'pkcon
 #. install-local dave.rpm'
@@ -328,28 +330,28 @@ msgstr ""
 msgid ""
 "Expected package name, actually got file. Try using 'pkcon install-local %s'"
 " instead."
-msgstr ""
+msgstr "예상된 패키지 이름을 실제로 파일로 얻었습니다. 'pkcon install-local %s' 명령을 대신 시도해 보십시오."
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:866
+#: ../client/pk-console.c:871
 #, c-format
 msgid "This tool could not find any available package: %s"
-msgstr ""
+msgstr "이 도구 어떤 사용가능한 패키지도 찾을 수 없습니다: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:894
+#: ../client/pk-console.c:899
 #, c-format
 msgid "This tool could not find the installed package: %s"
-msgstr ""
+msgstr "이 도구는 어떤 설치된 패키지도 찾을 수 없습니다: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:922 ../client/pk-console.c:950
+#: ../client/pk-console.c:927 ../client/pk-console.c:955
 #, c-format
 msgid "This tool could not find the package: %s"
-msgstr ""
+msgstr "이 도구는 패키지를 찾을 수 없습니다: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
@@ -359,268 +361,268 @@ msgstr ""
 #. detailed error follows
 #. TRANSLATORS: The package name was not found in any software sources. The
 #. detailed error follows
-#: ../client/pk-console.c:978 ../client/pk-console.c:1006
-#: ../client/pk-console.c:1034 ../client/pk-console.c:1062
-#: ../client/pk-console.c:1090
+#: ../client/pk-console.c:983 ../client/pk-console.c:1011
+#: ../client/pk-console.c:1039 ../client/pk-console.c:1067
+#: ../client/pk-console.c:1095
 #, c-format
 msgid "This tool could not find all the packages: %s"
-msgstr ""
+msgstr "이 도구는 모든 패키지를 찾을 수 없습니다: %s"
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek
 #. without a paddle
-#: ../client/pk-console.c:1119
+#: ../client/pk-console.c:1124
 msgid "The daemon crashed mid-transaction!"
-msgstr ""
+msgstr "트랜잭션 도중 데몬이 충돌하였습니다!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1153
+#: ../client/pk-console.c:1158
 msgid "PackageKit Console Interface"
-msgstr ""
+msgstr "PackageKit 콘솔 인터페이스"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1155
+#: ../client/pk-console.c:1160
 msgid "Subcommands:"
-msgstr ""
+msgstr "하위명령:"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was
 #. last executed
-#: ../client/pk-console.c:1235
+#: ../client/pk-console.c:1240
 msgid "Failed to get the time since this action was last completed"
-msgstr ""
+msgstr "최근 갱신된 이 동작의 시점을 얻는데 실패했습니다."
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1277 ../client/pk-monitor.c:371
+#: ../client/pk-console.c:1282 ../client/pk-monitor.c:371
 msgid "Show the program version and exit"
-msgstr ""
+msgstr "프로그램 버전을 보여주고 종료"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1280
+#: ../client/pk-console.c:1285
 msgid "Set the filter, e.g. installed"
-msgstr ""
+msgstr "필터 설정, 예: 설치됨"
 
 #. TRANSLATORS: command line argument, use a non-standard install prefix
-#: ../client/pk-console.c:1283
+#: ../client/pk-console.c:1288
 msgid "Set the install root, e.g. '/' or '/mnt/ltsp'"
-msgstr ""
+msgstr "설치 루트 지정, 예: '/' 혹은 '/mnt/ltsp'"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1286
+#: ../client/pk-console.c:1291
 msgid "Exit without waiting for actions to complete"
-msgstr ""
+msgstr "동작이 완료될 때까지 기다리지 않고 종료"
 
 #. command line argument, do we ask questions
-#: ../client/pk-console.c:1289
+#: ../client/pk-console.c:1294
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:525
 msgid "Install the packages without asking for confirmation"
-msgstr ""
+msgstr "확인 사항을 묻지 않고 패키지를 설치"
 
 #. TRANSLATORS: command line argument, this command is not a priority
-#: ../client/pk-console.c:1292
+#: ../client/pk-console.c:1297
 msgid "Run the command using idle network bandwidth and also using less power"
-msgstr ""
+msgstr "유휴 네트워크 대역폭과 적은 전원을 사용하여 명령 실행"
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1295
+#: ../client/pk-console.c:1300
 msgid ""
 "Print to screen a machine readable output, rather than using animated "
 "widgets"
-msgstr ""
+msgstr "움직이는 위젯을 사용하기보다, 머신이 판독할 수 있는 출력을 화면에 출력"
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1298
+#: ../client/pk-console.c:1303
 msgid "The maximum metadata cache age. Use -1 for 'never'."
-msgstr ""
+msgstr "메타데이터 캐시 최대 기간. -1을 사용하면 '설정하지 않음'."
 
 #. TRANSLATORS: command line argument, --help
-#: ../client/pk-console.c:1301
+#: ../client/pk-console.c:1306
 msgid "Show help options."
-msgstr ""
+msgstr "도움말 옵션 보이기"
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1331
+#: ../client/pk-console.c:1336
 msgid "Failed to parse command line"
-msgstr ""
+msgstr "명령 줄 해석에 실패했습니다"
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1341
+#: ../client/pk-console.c:1346
 msgid "Failed to contact PackageKit"
-msgstr ""
+msgstr "PackageKit과 연결하는데 실패했습니다."
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1394
+#: ../client/pk-console.c:1399
 msgid "The proxy could not be set"
-msgstr ""
+msgstr "프록시를 설정할 수 없습니다"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1406
+#: ../client/pk-console.c:1411
 msgid "The install root could not be set"
-msgstr ""
+msgstr "설치 루트를 설정할 수 없습니다"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1418
+#: ../client/pk-console.c:1423
 msgid "The filter specified was invalid"
-msgstr ""
+msgstr "정의된 필터가 올바르지 않습니다"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1437
+#: ../client/pk-console.c:1442
 msgid "A search type is required, e.g. name"
-msgstr ""
+msgstr "검색 유형이 필요합니다. 예: 이름"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1444 ../client/pk-console.c:1456
-#: ../client/pk-console.c:1468 ../client/pk-console.c:1480
+#: ../client/pk-console.c:1449 ../client/pk-console.c:1461
+#: ../client/pk-console.c:1473 ../client/pk-console.c:1485
 msgid "A search term is required"
-msgstr ""
+msgstr "검색 단어가 필요합니다"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1490
+#: ../client/pk-console.c:1495
 msgid "Invalid search type"
-msgstr ""
+msgstr "잘못된 검색 유형"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1496
+#: ../client/pk-console.c:1501
 msgid "A package name to install is required"
-msgstr ""
+msgstr "설치할 패키지 이름이 필요합니다"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1505
+#: ../client/pk-console.c:1510
 msgid "A filename to install is required"
-msgstr ""
+msgstr "설치할 파일이름이 필요합니다"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1516
+#: ../client/pk-console.c:1521
 msgid "A type, key_id and package_id are required"
-msgstr ""
+msgstr "유형, key_id, package_id가 필요합니다"
 
 #. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:1527
+#: ../client/pk-console.c:1532
 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:1536
+#: ../client/pk-console.c:1541
 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:1543
+#: ../client/pk-console.c:1548
 msgid "Directory not found"
-msgstr ""
+msgstr "디렉토리를 찾을 수 없습니다"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1552
+#: ../client/pk-console.c:1557
 msgid "A licence identifier (eula-id) is required"
-msgstr ""
+msgstr "라이센스 식별자(eula-id)가 필요합니다"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1563
+#: ../client/pk-console.c:1568
 msgid "A transaction identifier (tid) is required"
-msgstr ""
+msgstr "트랜잭션 식별자 (tid)가 필요합니다"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:1584
+#: ../client/pk-console.c:1589
 msgid "A package name to resolve is required"
-msgstr ""
+msgstr "해석할 패키지 이름이 필요합니다"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:1595 ../client/pk-console.c:1606
+#: ../client/pk-console.c:1600 ../client/pk-console.c:1611
 msgid "A repository name is required"
-msgstr ""
+msgstr "저장소 이름이 필요합니다"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:1617
+#: ../client/pk-console.c:1622
 msgid "A repo name, parameter and value are required"
-msgstr ""
+msgstr "저장소 이름, 인자, 값이 필요합니다"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:1634
+#: ../client/pk-console.c:1639
 msgid "An action, e.g. 'update-system' is required"
-msgstr ""
+msgstr " 'update-system' 과 같은 동작이  필요합니다"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:1641
+#: ../client/pk-console.c:1646
 msgid "A correct role is required"
-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:1651 ../client/pk-console.c:1665
-#: ../client/pk-console.c:1674 ../client/pk-console.c:1694
-#: ../client/pk-console.c:1703 ../client/pk-generate-pack.c:314
+#: ../client/pk-console.c:1656 ../client/pk-console.c:1670
+#: ../client/pk-console.c:1679 ../client/pk-console.c:1699
+#: ../client/pk-console.c:1708 ../client/pk-generate-pack.c:314
 msgid "A package name is required"
-msgstr ""
+msgstr "패키지 이름이 필요합니다"
 
 #. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-
 #. decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:1683
+#: ../client/pk-console.c:1688
 msgid "A package provide string is required"
-msgstr ""
+msgstr "패키지 제공 문자열이 필요합니다"
 
 #. TRANSLATORS: The user did not provide a distro name
-#: ../client/pk-console.c:1727
+#: ../client/pk-console.c:1732
 msgid "A distribution name is required"
-msgstr ""
+msgstr "배포판 이름이 필요합니다"
 
 #. TRANSLATORS: The user did not provide an upgrade type
-#: ../client/pk-console.c:1733
+#: ../client/pk-console.c:1738
 msgid "An upgrade type is required, e.g. 'minimal', 'default' or 'complete'"
-msgstr ""
+msgstr "업그레이드 유형이 필요합니다. 예: '최소', '기본' 혹은 '전체'"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command
 #. line
-#: ../client/pk-console.c:1783
+#: ../client/pk-console.c:1788
 #, c-format
 msgid "Option '%s' is not supported"
-msgstr ""
+msgstr "옵션 '%s'이(가) 지원되지 않습니다"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:1793
+#: ../client/pk-console.c:1798
 msgid "Command failed"
-msgstr ""
+msgstr "명령에 실패했습니다"
 
 #. TRANSLATORS: we can exclude certain packages (glibc) when we know they'll
 #. exist on the target
 #: ../client/pk-generate-pack.c:253
 msgid "Set the file name of dependencies to be excluded"
-msgstr ""
+msgstr "의존적인 파일 이름 설정이 제외됩니다"
 
 #. TRANSLATORS: the output location
 #: ../client/pk-generate-pack.c:256
 msgid ""
 "The output file or directory (the current directory is used if omitted)"
-msgstr ""
+msgstr "출력 파일 혹은 디렉토리 (생략되면 현재 디렉토리가 사용됩니다)"
 
 #. TRANSLATORS: put a list of packages in the pack
 #: ../client/pk-generate-pack.c:259
 msgid "The package to be put into the service pack"
-msgstr ""
+msgstr "패키지가 서비스 팩에 놓였습니다"
 
 #. TRANSLATORS: put all pending updates in the pack
 #: ../client/pk-generate-pack.c:262
 msgid "Put all updates available in the service pack"
-msgstr ""
+msgstr "사용 가능한 갱신이 서비스 팩에 놓였습니다"
 
 #. TRANSLATORS: This is when the user fails to supply the correct arguments
 #: ../client/pk-generate-pack.c:298
 msgid "Neither --package or --updates option selected."
-msgstr ""
+msgstr "--package나 --updates 옵션 둘 중 어느 것도 선택되지 않았습니다."
 
 #. TRANSLATORS: This is when the user fails to supply just one argument
 #: ../client/pk-generate-pack.c:306
 msgid "Both options selected."
-msgstr ""
+msgstr "두 옵션이 모두 선택되었습니다."
 
 #. TRANSLATORS: This is when the user fails to supply the output
 #: ../client/pk-generate-pack.c:322
 msgid "A output directory or file name is required"
-msgstr ""
+msgstr "출력 디렉토리 혹은 파일 이름이 필요합니다"
 
 #. TRANSLATORS: This is when the daemon is not-installed/broken and fails to
 #. startup
 #: ../client/pk-generate-pack.c:340
 msgid "The daemon failed to startup"
-msgstr ""
+msgstr "데몬을 시작하는데 실패했습니다"
 
 #. TRANSLATORS: This is when the backend doesn't have the capability to get-
 #. depends
@@ -628,7 +630,7 @@ msgstr ""
 #. download
 #: ../client/pk-generate-pack.c:351 ../client/pk-generate-pack.c:357
 msgid "The package manager cannot perform this type of operation."
-msgstr ""
+msgstr "패키지 관리자가 이러한 유형의 처리를 수행할 수 없습니다."
 
 #. TRANSLATORS: This is when the distro didn't include libarchive support into
 #. PK
@@ -636,282 +638,277 @@ msgstr ""
 msgid ""
 "Service packs cannot be created as PackageKit was not built with libarchive "
 "support."
-msgstr ""
+msgstr "libarchive를 지원하지 않도록 빌드된 PackageKit 이므로 서비스 팩을 생성할 수 없습니다"
 
 #. TRANSLATORS: the user specified an absolute path, but didn't get the
 #. extension correct
 #: ../client/pk-generate-pack.c:375
 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:391
 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:394
 msgid "The pack was not overwritten."
-msgstr ""
+msgstr "팩이 덮어쓰기 될 수 없었습니다."
 
 #. TRANSLATORS: This is when the temporary directory cannot be created, the
 #. directory name follows
 #: ../client/pk-generate-pack.c:407
 msgid "Failed to create directory:"
-msgstr ""
+msgstr "디렉토리 생성에 실패했습니다:"
 
 #. TRANSLATORS: This is when the list of packages from the remote computer
 #. cannot be opened
 #: ../client/pk-generate-pack.c:419
 msgid "Failed to open package list."
-msgstr ""
+msgstr "패키지 목록을 여는데 실패했습니다."
 
 #. TRANSLATORS: The package name is being matched up to available packages
 #: ../client/pk-generate-pack.c:428
 msgid "Finding package name."
-msgstr ""
+msgstr "패키지 이름을 찾기."
 
 #. TRANSLATORS: This is when the package cannot be found in any software
 #. source. The detailed error follows
 #: ../client/pk-generate-pack.c:432
 #, c-format
 msgid "Failed to find package '%s': %s"
-msgstr ""
+msgstr "패키지 '%s'를 찾는데 실패했습니다: %s"
 
 #. TRANSLATORS: This is telling the user we are in the process of making the
 #. pack
 #: ../client/pk-generate-pack.c:440
 msgid "Creating service pack..."
-msgstr ""
+msgstr "서비스 팩 생성중..."
 
 #. TRANSLATORS: we succeeded in making the file
 #: ../client/pk-generate-pack.c:455
 #, c-format
 msgid "Service pack created '%s'"
-msgstr ""
+msgstr "서비스 팩이 '%s'을(를) 생성했습니다"
 
 #. TRANSLATORS: we failed to make te file
 #: ../client/pk-generate-pack.c:460
 #, c-format
 msgid "Failed to create '%s': %s"
-msgstr ""
+msgstr "'%s'을(를) 생성하는데 실패했습니다: %s"
 
 #: ../client/pk-monitor.c:284
 msgid "Failed to get daemon state"
-msgstr ""
+msgstr "데몬 상태를 가져오는데 실패했습니다"
 
 #: ../client/pk-monitor.c:349
 msgid "Failed to get properties"
-msgstr ""
+msgstr "프로퍼티를 가져오는데 실패했습니다"
 
 #. TRANSLATORS: this is a program that monitors PackageKit
 #: ../client/pk-monitor.c:387
 msgid "PackageKit Monitor"
-msgstr ""
+msgstr "PackageKit 감시자"
 
 #. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/pk-plugin-install.c:499
+#: ../contrib/browser-plugin/pk-plugin-install.c:503
 msgid "Getting package information..."
-msgstr ""
+msgstr "패키지 정보 가져오는중..."
 
 #. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/pk-plugin-install.c:505
+#: ../contrib/browser-plugin/pk-plugin-install.c:509
 #, c-format
 msgid "Run %s"
-msgstr ""
+msgstr "%s 실행"
 
 #. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:511
+#: ../contrib/browser-plugin/pk-plugin-install.c:515
 msgid "Installed version"
-msgstr ""
+msgstr "설치된 버전"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:519
+#: ../contrib/browser-plugin/pk-plugin-install.c:523
 #, c-format
 msgid "Run version %s now"
-msgstr ""
+msgstr "버전 %s 지금 실행"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:525
+#: ../contrib/browser-plugin/pk-plugin-install.c:529
 msgid "Run now"
-msgstr ""
+msgstr "지금 실행"
 
 #. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:531
+#: ../contrib/browser-plugin/pk-plugin-install.c:535
 #, c-format
 msgid "Update to version %s"
-msgstr ""
+msgstr "버전 %s로 갱신"
 
 #. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:537
+#: ../contrib/browser-plugin/pk-plugin-install.c:541
 #, c-format
 msgid "Install %s now"
-msgstr ""
+msgstr "%s "
 
 #. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:540
+#: ../contrib/browser-plugin/pk-plugin-install.c:544
 msgid "Version"
-msgstr ""
+msgstr "버전"
 
 #. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/pk-plugin-install.c:545
+#: ../contrib/browser-plugin/pk-plugin-install.c:549
 msgid "No packages found for your system"
-msgstr ""
+msgstr "시스템에서 찾은 패키지가 없습니다"
 
 #. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/pk-plugin-install.c:550
+#: ../contrib/browser-plugin/pk-plugin-install.c:554
 msgid "Installing..."
-msgstr ""
+msgstr "설치 중..."
 
 #. TRANSLATORS: downloading repo data so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:366
+#: ../contrib/command-not-found/pk-command-not-found.c:363
 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:370
+#: ../contrib/command-not-found/pk-command-not-found.c:367
 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:374
+#: ../contrib/command-not-found/pk-command-not-found.c:371
 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:378
+#: ../contrib/command-not-found/pk-command-not-found.c:375
 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:444
+#: ../contrib/command-not-found/pk-command-not-found.c:439
 msgid "Failed to search for file"
-msgstr ""
+msgstr "파일 검색에 실패했습니다"
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
-#: ../contrib/command-not-found/pk-command-not-found.c:456
+#: ../contrib/command-not-found/pk-command-not-found.c:451
 msgid "Getting the list of files failed"
-msgstr ""
+msgstr "실패한 파일 목록 가져오는중"
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:602
+#: ../contrib/command-not-found/pk-command-not-found.c:597
 msgid "Failed to launch:"
-msgstr ""
+msgstr "실행에 실패했습니다:"
 
 #. TRANSLATORS: we failed to install the package
-#: ../contrib/command-not-found/pk-command-not-found.c:630
+#: ../contrib/command-not-found/pk-command-not-found.c:625
 msgid "Failed to install packages"
-msgstr ""
-
-#. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/command-not-found/pk-command-not-found.c:706
-msgid "PackageKit Command Not Found"
-msgstr ""
+msgstr "패키지 설치에 실패했습니다"
 
 #. TRANSLATORS: the prefix of all the output telling the user
 #. * why it's not executing. NOTE: this is lowercase to mimic
 #. * the style of bash itself -- apologies
-#: ../contrib/command-not-found/pk-command-not-found.c:741
+#: ../contrib/command-not-found/pk-command-not-found.c:723
 msgid "command not found"
-msgstr ""
+msgstr "명령을 찾을 수 없습니다"
 
 #. TRANSLATORS: tell the user what we think the command is
-#: ../contrib/command-not-found/pk-command-not-found.c:759
+#: ../contrib/command-not-found/pk-command-not-found.c:741
 msgid "Similar command is:"
-msgstr ""
+msgstr "유사한 명령:"
 
 #. TRANSLATORS: Ask the user if we should run the similar command
-#: ../contrib/command-not-found/pk-command-not-found.c:773
+#: ../contrib/command-not-found/pk-command-not-found.c:755
 msgid "Run similar command:"
-msgstr ""
+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:787
-#: ../contrib/command-not-found/pk-command-not-found.c:796
+#: ../contrib/command-not-found/pk-command-not-found.c:769
+#: ../contrib/command-not-found/pk-command-not-found.c:778
 msgid "Similar commands are:"
-msgstr ""
+msgstr "유사한 명령들:"
 
 #. TRANSLATORS: ask the user to choose a file to run
-#: ../contrib/command-not-found/pk-command-not-found.c:803
+#: ../contrib/command-not-found/pk-command-not-found.c:785
 msgid "Please choose a command to run"
-msgstr ""
+msgstr "실행할 명령을 선택하여 주시기 바랍니다"
 
 #. TRANSLATORS: tell the user what package provides the command
-#: ../contrib/command-not-found/pk-command-not-found.c:821
+#: ../contrib/command-not-found/pk-command-not-found.c:803
 msgid "The package providing this file is:"
-msgstr ""
+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:828
+#: ../contrib/command-not-found/pk-command-not-found.c:810
 #, c-format
 msgid "Install package '%s' to provide command '%s'?"
-msgstr ""
+msgstr "패키지 '%s'을(를) 명령 '%s'을(를) 제공하기 위해 설치합니까?"
 
 #. TRANSLATORS: Show the user a list of packages that provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:855
+#: ../contrib/command-not-found/pk-command-not-found.c:837
 msgid "Packages providing this file are:"
-msgstr ""
+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:865
+#: ../contrib/command-not-found/pk-command-not-found.c:847
 msgid "Suitable packages are:"
-msgstr ""
+msgstr "알맞은 패키지들:"
 
 #. get selection
 #. TRANSLATORS: ask the user to choose a file to install
-#: ../contrib/command-not-found/pk-command-not-found.c:874
+#: ../contrib/command-not-found/pk-command-not-found.c:856
 msgid "Please choose a package to install"
-msgstr ""
+msgstr "설치하기 위한 패키지를 선택하여 주시기 바랍니다"
 
 #. TRANSLATORS: we are starting to install the packages
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:195
 msgid "Starting install"
-msgstr ""
+msgstr "설치 시작 중"
 
 #. TRANSLATORS: we couldn't find the package name, non-fatal
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:407
 #, c-format
 msgid "Failed to find the package %s, or already installed: %s"
-msgstr ""
+msgstr "패키지 %s를 찾는데 실패했거나, 이미 설치되었습니다: %s"
 
 #. command line argument, simulate what would be done, but don't actually do
 #. it
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:516
 msgid ""
 "Don't actually install any packages, only simulate what would be installed"
-msgstr ""
+msgstr "실제로 어떤 패키지도 설치하지 말고, 어떤 것들이 설치되는지 시연하기만 합니다"
 
 #. command line argument, do we skip packages that depend on the ones
 #. specified
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:519
 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:522
 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:540
 msgid "PackageKit Debuginfo Installer"
-msgstr ""
+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:554
 #, 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:590
 #, c-format
 msgid "Getting sources list"
-msgstr ""
+msgstr "원본 목록 가져오는 중"
 
 #. TRANSLATORS: operation was not successful
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:600
@@ -921,7 +918,7 @@ msgstr ""
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:870
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:914
 msgid "FAILED."
-msgstr ""
+msgstr "실패."
 
 #. TRANSLATORS: all completed 100%
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:615
@@ -933,869 +930,875 @@ msgstr ""
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:929
 #, c-format
 msgid "OK."
-msgstr ""
+msgstr "완료."
 
 #. TRANSLATORS: tell the user what we found
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:618
 #, 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:625
 #, c-format
 msgid "Finding debugging sources"
-msgstr ""
+msgstr "디버깅 원본 찾는 중"
 
 #. TRANSLATORS: tell the user what we found
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:658
 #, c-format
 msgid "Found %i disabled debuginfo repos."
-msgstr ""
+msgstr "%i 개의 비활성화된 디버그 정보 저장소를 찾았습니다."
 
 #. TRANSLATORS: we're now enabling all the debug sources we found
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:665
 #, c-format
 msgid "Enabling debugging sources"
-msgstr ""
+msgstr "디버깅 원본 활성화 중"
 
 #. TRANSLATORS: tell the user how many we enabled
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:693
 #, 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:700
 #, 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:712
 #, c-format
 msgid "Failed to find the package %s: %s"
-msgstr ""
+msgstr "패키지 %s을(를)찾는데 실패했습니다: %s"
 
 #. TRANSLATORS: we couldn't find the debuginfo package name, non-fatal
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:735
 #, c-format
 msgid "Failed to find the debuginfo package %s: %s"
-msgstr ""
+msgstr "디버그 정보 패키지 %s을(를) 찾는데 실패했습니다: %s"
 
 #. TRANSLATORS: no debuginfo packages could be found to be installed
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:763
 #, 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:777
 #, 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:793
 #, 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:806
 #, c-format
 msgid "Could not find dependant packages: %s"
-msgstr ""
+msgstr "의존성 패키지를 찾을 수 없습니다: %s"
 
 #. TRANSLATORS: tell the user we found some more packages
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:822
 #, 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:826
 #, 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:835
 #, 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:848
 #, c-format
 msgid "Not installing packages in simulate mode"
-msgstr ""
+msgstr "시연 모드에서 설치하는 패키지가 없습니다"
 
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
 #. TRANSLATORS: transaction state, installing packages
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:860
-#: ../lib/packagekit-glib2/pk-console-shared.c:296
+#: ../lib/packagekit-glib2/pk-console-shared.c:331
 #, c-format
 msgid "Installing packages"
-msgstr ""
+msgstr "패키지 설치 중"
 
 #. TRANSLATORS: could not install, detailed error follows
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:873
 #, c-format
 msgid "Could not install packages: %s"
-msgstr ""
+msgstr "패키지를 설치할 수 없습니다: %s"
 
 #. TRANSLATORS: we are now disabling all debuginfo repos we previously enabled
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:905
 #, 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:917
 #, 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:932
 #, c-format
 msgid "Disabled %i debugging sources."
-msgstr ""
+msgstr "%i 개의 디버깅 원본을 비활성화 하였습니다."
 
 #. TRANSLATORS: couldn't open device to write
 #: ../contrib/device-rebind/pk-device-rebind.c:62
 msgid "Failed to open file"
-msgstr ""
+msgstr "파일을 여는데 실패했습니다"
 
 #. TRANSLATORS: could not write to the device
 #: ../contrib/device-rebind/pk-device-rebind.c:71
 msgid "Failed to write to the file"
-msgstr ""
+msgstr "파일에 기록하는데 실패했습니다"
 
 #. TRANSLATORS: we failed to release the current driver
 #: ../contrib/device-rebind/pk-device-rebind.c:111
 #: ../contrib/device-rebind/pk-device-rebind.c:148
 msgid "Failed to write to device"
-msgstr ""
+msgstr "장치에 기록하는데 실패했습니다"
 
 #. TRANSLATORS: the device could not be found in sysfs
 #: ../contrib/device-rebind/pk-device-rebind.c:176
 msgid "Device could not be found"
-msgstr ""
+msgstr "장치를 찾을 수 없습니다"
 
 #. TRANSLATORS: we failed to release the current driver
 #: ../contrib/device-rebind/pk-device-rebind.c:203
 msgid "Failed to unregister driver"
-msgstr ""
+msgstr "장치를 등록해제하는데 실패했습니다"
 
 #. TRANSLATORS: we failed to bind the old driver
 #: ../contrib/device-rebind/pk-device-rebind.c:212
 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:261
 msgid "Device path not found"
-msgstr ""
+msgstr "장치 경로를 찾을 수 없습니다"
 
 #. TRANSLATORS: user did not specify a valid device sysfs path
 #: ../contrib/device-rebind/pk-device-rebind.c:269
 msgid "Incorrect device path specified"
-msgstr ""
+msgstr "지정된 장치 경로가 올바르지 않습니다"
 
 #: ../contrib/device-rebind/pk-device-rebind.c:294
 msgid "Show extra debugging information"
-msgstr ""
+msgstr "추가 디버깅 정보 보이기"
 
 #. command line argument, simulate what would be done, but don't actually do
 #. it
 #: ../contrib/device-rebind/pk-device-rebind.c:297
 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:300
 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:315
 msgid "PackageKit Device Reloader"
-msgstr ""
+msgstr "PackageKit 장치 리로더"
 
 #. TRANSLATORS: user did not specify a valid device sysfs path
 #: ../contrib/device-rebind/pk-device-rebind.c:323
 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:333
 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:342
 msgid "Verifying device path"
-msgstr ""
+msgstr "장치 경로 검증 중"
 
 #. TRANSLATORS: user did not specify a device sysfs path that exists
 #: ../contrib/device-rebind/pk-device-rebind.c:347
 msgid "Failed to verify device path"
-msgstr ""
+msgstr "장치 경로 검증에 실패했습니다"
 
 #. TRANSLATORS: we're going to try
 #: ../contrib/device-rebind/pk-device-rebind.c:361
 msgid "Attempting to rebind device"
-msgstr ""
+msgstr "장치 재연결 시도 중"
 
 #. TRANSLATORS: we failed to release the current driver
 #: ../contrib/device-rebind/pk-device-rebind.c:366
 msgid "Failed to rebind device"
-msgstr ""
+msgstr "장치 재연결에 실패했습니다"
 
 #: ../data/packagekit-catalog.xml.in.h:1
 msgid "PackageKit Catalog"
-msgstr ""
+msgstr "PackageKit 카탈로그"
 
 #: ../data/packagekit-package-list.xml.in.h:1
 msgid "PackageKit Package List"
-msgstr ""
+msgstr "PackageKit 패키지 목록"
 
 #: ../data/packagekit-servicepack.xml.in.h:1
 msgid "PackageKit Service Pack"
-msgstr ""
+msgstr "PackageKit 서비스 팩"
 
-#: ../lib/packagekit-glib2/pk-console-shared.c:64
+#: ../lib/packagekit-glib2/pk-console-shared.c:65
 #, c-format
 msgid "Please enter a number from 1 to %i: "
-msgstr ""
+msgstr "1부터 %i  중의 숫자를 입력하여 주십시오:"
 
 #. TRANSLATORS: more than one package could be found that matched, to follow
 #. is a list of possible packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:198
+#: ../lib/packagekit-glib2/pk-console-shared.c:233
 msgid "More than one package matches:"
-msgstr ""
+msgstr "하나 이상의 일치하는 패키지:"
 
 #. TRANSLATORS: This finds out which package in the list to use
-#: ../lib/packagekit-glib2/pk-console-shared.c:209
+#: ../lib/packagekit-glib2/pk-console-shared.c:244
 msgid "Please choose the correct package: "
-msgstr ""
+msgstr "올바른 패키지를 선택하여 주십시오:"
 
 #. TRANSLATORS: This is when the transaction status is not known
-#: ../lib/packagekit-glib2/pk-console-shared.c:264
+#: ../lib/packagekit-glib2/pk-console-shared.c:299
 msgid "Unknown state"
-msgstr ""
+msgstr "알 수 없는 상태"
 
 #. TRANSLATORS: transaction state, the daemon is in the process of starting
-#: ../lib/packagekit-glib2/pk-console-shared.c:268
+#: ../lib/packagekit-glib2/pk-console-shared.c:303
 msgid "Starting"
-msgstr ""
+msgstr "시작 중"
 
 #. TRANSLATORS: transaction state, the transaction is waiting for another to
 #. complete
-#: ../lib/packagekit-glib2/pk-console-shared.c:272
+#: ../lib/packagekit-glib2/pk-console-shared.c:307
 msgid "Waiting in queue"
-msgstr ""
+msgstr "큐 대기 중"
 
 #. TRANSLATORS: transaction state, just started
-#: ../lib/packagekit-glib2/pk-console-shared.c:276
+#: ../lib/packagekit-glib2/pk-console-shared.c:311
 msgid "Running"
-msgstr ""
+msgstr "실행 중"
 
 #. TRANSLATORS: transaction state, is querying data
-#: ../lib/packagekit-glib2/pk-console-shared.c:280
+#: ../lib/packagekit-glib2/pk-console-shared.c:315
 msgid "Querying"
-msgstr ""
+msgstr "요청 중"
 
 #. TRANSLATORS: transaction state, getting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:284
+#: ../lib/packagekit-glib2/pk-console-shared.c:319
 msgid "Getting information"
-msgstr ""
+msgstr "정보 가져오는 중"
 
 #. TRANSLATORS: transaction state, removing packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:288
+#: ../lib/packagekit-glib2/pk-console-shared.c:323
 msgid "Removing packages"
-msgstr ""
+msgstr "패키지 제거 중"
 
 #. TRANSLATORS: transaction state, downloading package files
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:292
-#: ../lib/packagekit-glib2/pk-console-shared.c:670
+#: ../lib/packagekit-glib2/pk-console-shared.c:327
+#: ../lib/packagekit-glib2/pk-console-shared.c:705
 msgid "Downloading packages"
-msgstr ""
+msgstr "패키지 다운로드 중"
 
 #. TRANSLATORS: transaction state, refreshing internal lists
-#: ../lib/packagekit-glib2/pk-console-shared.c:300
+#: ../lib/packagekit-glib2/pk-console-shared.c:335
 msgid "Refreshing software list"
-msgstr ""
+msgstr "소프트웨어 목록 새로 고치는 중"
 
 #. TRANSLATORS: transaction state, installing updates
-#: ../lib/packagekit-glib2/pk-console-shared.c:304
+#: ../lib/packagekit-glib2/pk-console-shared.c:339
 msgid "Installing updates"
-msgstr ""
+msgstr "갱신 설치 중"
 
 #. TRANSLATORS: transaction state, removing old packages, and cleaning config
 #. files
-#: ../lib/packagekit-glib2/pk-console-shared.c:308
+#: ../lib/packagekit-glib2/pk-console-shared.c:343
 msgid "Cleaning up packages"
-msgstr ""
+msgstr "패키지 청소 중"
 
 #. TRANSLATORS: transaction state, obsoleting old packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:312
+#: ../lib/packagekit-glib2/pk-console-shared.c:347
 msgid "Obsoleting packages"
-msgstr ""
+msgstr "패키지 무효화 중"
 
 #. TRANSLATORS: transaction state, checking the transaction before we do it
-#: ../lib/packagekit-glib2/pk-console-shared.c:316
+#: ../lib/packagekit-glib2/pk-console-shared.c:351
 msgid "Resolving dependencies"
-msgstr ""
+msgstr "의존성 확인 중"
 
 #. TRANSLATORS: transaction state, checking if we have all the security keys
 #. for the operation
-#: ../lib/packagekit-glib2/pk-console-shared.c:320
+#: ../lib/packagekit-glib2/pk-console-shared.c:355
 msgid "Checking signatures"
-msgstr ""
+msgstr "서명 확인 중"
 
 #. TRANSLATORS: transaction state, when we return to a previous system state
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:324
-#: ../lib/packagekit-glib2/pk-console-shared.c:630
+#: ../lib/packagekit-glib2/pk-console-shared.c:359
+#: ../lib/packagekit-glib2/pk-console-shared.c:665
 msgid "Rolling back"
-msgstr ""
+msgstr "되돌리는 중"
 
 #. TRANSLATORS: transaction state, when we're doing a test transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:328
+#: ../lib/packagekit-glib2/pk-console-shared.c:363
 msgid "Testing changes"
-msgstr ""
+msgstr "변경 사항 시험 중"
 
 #. TRANSLATORS: transaction state, when we're writing to the system package
 #. database
-#: ../lib/packagekit-glib2/pk-console-shared.c:332
+#: ../lib/packagekit-glib2/pk-console-shared.c:367
 msgid "Committing changes"
-msgstr ""
+msgstr "변경 사항 등록 중"
 
 #. TRANSLATORS: transaction state, requesting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:336
+#: ../lib/packagekit-glib2/pk-console-shared.c:371
 msgid "Requesting data"
-msgstr ""
+msgstr "데이터 요청 중"
 
 #. TRANSLATORS: transaction state, all done!
-#: ../lib/packagekit-glib2/pk-console-shared.c:340
+#: ../lib/packagekit-glib2/pk-console-shared.c:375
 msgid "Finished"
-msgstr ""
+msgstr "완료됨"
 
 #. TRANSLATORS: transaction state, in the process of cancelling
-#: ../lib/packagekit-glib2/pk-console-shared.c:344
+#: ../lib/packagekit-glib2/pk-console-shared.c:379
 msgid "Cancelling"
-msgstr ""
+msgstr "취소 중"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:348
+#: ../lib/packagekit-glib2/pk-console-shared.c:383
 msgid "Downloading repository information"
-msgstr ""
+msgstr "저장소 정보 다운로드 중"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:352
+#: ../lib/packagekit-glib2/pk-console-shared.c:387
 msgid "Downloading list of packages"
-msgstr ""
+msgstr "패키지 목록 다운로드 중"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:356
+#: ../lib/packagekit-glib2/pk-console-shared.c:391
 msgid "Downloading file lists"
-msgstr ""
+msgstr "파일 목록 다운로드 중"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:360
+#: ../lib/packagekit-glib2/pk-console-shared.c:395
 msgid "Downloading lists of changes"
-msgstr ""
+msgstr "변경 목록 다운로드 중"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:364
+#: ../lib/packagekit-glib2/pk-console-shared.c:399
 msgid "Downloading groups"
-msgstr ""
+msgstr "그룹 다운로드 중"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:368
+#: ../lib/packagekit-glib2/pk-console-shared.c:403
 msgid "Downloading update information"
-msgstr ""
+msgstr "갱신 정보 다운로드 중"
 
 #. TRANSLATORS: transaction state, repackaging delta files
-#: ../lib/packagekit-glib2/pk-console-shared.c:372
+#: ../lib/packagekit-glib2/pk-console-shared.c:407
 msgid "Repackaging files"
-msgstr ""
+msgstr "파일을 패키지로 되돌리는 중"
 
 #. TRANSLATORS: transaction state, loading databases
-#: ../lib/packagekit-glib2/pk-console-shared.c:376
+#: ../lib/packagekit-glib2/pk-console-shared.c:411
 msgid "Loading cache"
-msgstr ""
+msgstr "캐시 적재 중"
 
 #. TRANSLATORS: transaction state, scanning for running processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:380
+#: ../lib/packagekit-glib2/pk-console-shared.c:415
 msgid "Scanning applications"
-msgstr ""
+msgstr "프로그램 조사 중"
 
 #. TRANSLATORS: transaction state, generating a list of packages installed on
 #. the system
-#: ../lib/packagekit-glib2/pk-console-shared.c:384
+#: ../lib/packagekit-glib2/pk-console-shared.c:419
 msgid "Generating package lists"
-msgstr ""
+msgstr "패키지 목록 생성 중"
 
 #. TRANSLATORS: transaction state, when we're waiting for the native tools to
 #. exit
-#: ../lib/packagekit-glib2/pk-console-shared.c:388
+#: ../lib/packagekit-glib2/pk-console-shared.c:423
 msgid "Waiting for package manager lock"
-msgstr ""
+msgstr "패키지 관리자 잠금 해제 대기 중"
 
 #. TRANSLATORS: transaction state, waiting for user to type in a password
-#: ../lib/packagekit-glib2/pk-console-shared.c:392
+#: ../lib/packagekit-glib2/pk-console-shared.c:427
 msgid "Waiting for authentication"
-msgstr ""
+msgstr "인증 대기 중"
 
 #. TRANSLATORS: transaction state, we are updating the list of processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:396
+#: ../lib/packagekit-glib2/pk-console-shared.c:431
 msgid "Updating running applications"
-msgstr ""
+msgstr "사용 중인 프로그램 갱신 중"
 
 #. TRANSLATORS: transaction state, we are checking executable files currently
 #. in use
-#: ../lib/packagekit-glib2/pk-console-shared.c:400
+#: ../lib/packagekit-glib2/pk-console-shared.c:435
 msgid "Checking applications in use"
-msgstr ""
+msgstr "사용 중인 프로그램 점검 중"
 
 #. TRANSLATORS: transaction state, we are checking for libraries currently in
 #. use
-#: ../lib/packagekit-glib2/pk-console-shared.c:404
+#: ../lib/packagekit-glib2/pk-console-shared.c:439
 msgid "Checking libraries in use"
-msgstr ""
+msgstr "사용 중인 라이브러리 점검 중"
 
 #. TRANSLATORS: transaction state, we are copying package files before or
 #. after the transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:408
+#: ../lib/packagekit-glib2/pk-console-shared.c:443
 msgid "Copying files"
-msgstr ""
+msgstr "파일 복사 중"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:426
+#: ../lib/packagekit-glib2/pk-console-shared.c:461
 msgid "Trivial"
-msgstr ""
+msgstr "필수"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:430
+#: ../lib/packagekit-glib2/pk-console-shared.c:465
 msgid "Normal"
-msgstr ""
+msgstr "일반"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:434
+#: ../lib/packagekit-glib2/pk-console-shared.c:469
 msgid "Important"
-msgstr ""
+msgstr "중요"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:438
+#: ../lib/packagekit-glib2/pk-console-shared.c:473
 msgid "Security"
-msgstr ""
+msgstr "보안"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:442
+#: ../lib/packagekit-glib2/pk-console-shared.c:477
 msgid "Bug fix "
-msgstr ""
+msgstr "버그 수정"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:446
+#: ../lib/packagekit-glib2/pk-console-shared.c:481
 msgid "Enhancement"
-msgstr ""
+msgstr "향상"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:450
+#: ../lib/packagekit-glib2/pk-console-shared.c:485
 msgid "Blocked"
-msgstr ""
+msgstr "차단됨"
 
 #. TRANSLATORS: The state of a package
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:455
-#: ../lib/packagekit-glib2/pk-console-shared.c:528
+#: ../lib/packagekit-glib2/pk-console-shared.c:490
+#: ../lib/packagekit-glib2/pk-console-shared.c:563
 msgid "Installed"
-msgstr ""
+msgstr "설치됨"
 
 #. TRANSLATORS: The state of a package, i.e. not installed
-#: ../lib/packagekit-glib2/pk-console-shared.c:460
+#: ../lib/packagekit-glib2/pk-console-shared.c:495
 msgid "Available"
-msgstr ""
+msgstr "사용가능"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:478
+#: ../lib/packagekit-glib2/pk-console-shared.c:513
 msgid "Downloading"
-msgstr ""
+msgstr "다운로드 중"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:482
+#: ../lib/packagekit-glib2/pk-console-shared.c:517
 msgid "Updating"
-msgstr ""
+msgstr "갱신 중"
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:486
-#: ../lib/packagekit-glib2/pk-console-shared.c:606
+#: ../lib/packagekit-glib2/pk-console-shared.c:521
+#: ../lib/packagekit-glib2/pk-console-shared.c:641
 msgid "Installing"
-msgstr ""
+msgstr "설치 중"
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:490
-#: ../lib/packagekit-glib2/pk-console-shared.c:602
+#: ../lib/packagekit-glib2/pk-console-shared.c:525
+#: ../lib/packagekit-glib2/pk-console-shared.c:637
 msgid "Removing"
-msgstr ""
+msgstr "제거 중"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:494
+#: ../lib/packagekit-glib2/pk-console-shared.c:529
 msgid "Cleaning up"
-msgstr ""
+msgstr "청소 중"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:498
+#: ../lib/packagekit-glib2/pk-console-shared.c:533
 msgid "Obsoleting"
-msgstr ""
+msgstr "무효화 중"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:502
+#: ../lib/packagekit-glib2/pk-console-shared.c:537
 msgid "Reinstalling"
-msgstr ""
+msgstr "재설치 중"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:520
+#: ../lib/packagekit-glib2/pk-console-shared.c:555
 msgid "Downloaded"
-msgstr ""
+msgstr "다운로드 됨"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:532
+#: ../lib/packagekit-glib2/pk-console-shared.c:567
 msgid "Removed"
-msgstr ""
+msgstr "제거 됨"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:536
+#: ../lib/packagekit-glib2/pk-console-shared.c:571
 msgid "Cleaned up"
-msgstr ""
+msgstr "청소 됨"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:540
+#: ../lib/packagekit-glib2/pk-console-shared.c:575
 msgid "Obsoleted"
-msgstr ""
+msgstr "무효화 됨"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:544
+#: ../lib/packagekit-glib2/pk-console-shared.c:579
 msgid "Reinstalled"
-msgstr ""
+msgstr "재설치 됨"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:562
+#: ../lib/packagekit-glib2/pk-console-shared.c:597
 msgid "Unknown role type"
-msgstr ""
+msgstr "알 수 없는 규칙 유형"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:566
+#: ../lib/packagekit-glib2/pk-console-shared.c:601
 msgid "Getting dependencies"
-msgstr ""
+msgstr "의존성 가져오는 중"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:570
+#: ../lib/packagekit-glib2/pk-console-shared.c:605
 msgid "Getting update details"
-msgstr ""
+msgstr "갱신 세부사항 가져오는 중"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:574
+#: ../lib/packagekit-glib2/pk-console-shared.c:609
 msgid "Getting details"
-msgstr ""
+msgstr "세부사항 가져오는 중"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:578
+#: ../lib/packagekit-glib2/pk-console-shared.c:613
 msgid "Getting requires"
-msgstr ""
+msgstr "필수요소 가져오는 중"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:582
+#: ../lib/packagekit-glib2/pk-console-shared.c:617
 msgid "Getting updates"
-msgstr ""
+msgstr "갱신 가져오는 중"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:586
+#: ../lib/packagekit-glib2/pk-console-shared.c:621
 msgid "Searching by details"
-msgstr ""
+msgstr "세부 사항 검색 중"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:590
+#: ../lib/packagekit-glib2/pk-console-shared.c:625
 msgid "Searching by file"
-msgstr ""
+msgstr "파일 검색 중"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:594
+#: ../lib/packagekit-glib2/pk-console-shared.c:629
 msgid "Searching groups"
-msgstr ""
+msgstr "그룹 검색 중"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:598
+#: ../lib/packagekit-glib2/pk-console-shared.c:633
 msgid "Searching by name"
-msgstr ""
+msgstr "이름 검색 중"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:610
+#: ../lib/packagekit-glib2/pk-console-shared.c:645
 msgid "Installing files"
-msgstr ""
+msgstr "파일 설치 중"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:614
+#: ../lib/packagekit-glib2/pk-console-shared.c:649
 msgid "Refreshing cache"
-msgstr ""
+msgstr "캐시 새로 고치는 "
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:618
+#: ../lib/packagekit-glib2/pk-console-shared.c:653
 msgid "Updating packages"
-msgstr ""
+msgstr "패키지 "
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:622
+#: ../lib/packagekit-glib2/pk-console-shared.c:657
 msgid "Updating system"
-msgstr ""
+msgstr "시스템 갱신 "
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:626
+#: ../lib/packagekit-glib2/pk-console-shared.c:661
 msgid "Canceling"
-msgstr ""
+msgstr "취소 "
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:634
+#: ../lib/packagekit-glib2/pk-console-shared.c:669
 msgid "Getting repositories"
-msgstr ""
+msgstr "저장소 가져오는 중"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:638
+#: ../lib/packagekit-glib2/pk-console-shared.c:673
 msgid "Enabling repository"
-msgstr ""
+msgstr "저장소 활성화 중"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:642
+#: ../lib/packagekit-glib2/pk-console-shared.c:677
 msgid "Setting data"
-msgstr ""
+msgstr "데이터 "
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:646
+#: ../lib/packagekit-glib2/pk-console-shared.c:681
 msgid "Resolving"
-msgstr ""
+msgstr "분석 중"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:650
+#: ../lib/packagekit-glib2/pk-console-shared.c:685
 msgid "Getting file list"
-msgstr ""
+msgstr "파일 목록 가져오는 중"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:654
+#: ../lib/packagekit-glib2/pk-console-shared.c:689
 msgid "Getting provides"
-msgstr ""
+msgstr "제공자 가져오는 중"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:658
+#: ../lib/packagekit-glib2/pk-console-shared.c:693
 msgid "Installing signature"
-msgstr ""
+msgstr "서명 설치 중"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:662
+#: ../lib/packagekit-glib2/pk-console-shared.c:697
 msgid "Getting packages"
-msgstr ""
+msgstr "패키지 가져오는 중"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:666
+#: ../lib/packagekit-glib2/pk-console-shared.c:701
 msgid "Accepting EULA"
-msgstr ""
+msgstr "EULA 수락 중"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:674
+#: ../lib/packagekit-glib2/pk-console-shared.c:709
 msgid "Getting upgrades"
-msgstr ""
+msgstr "갱신 가져오는 중"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:678
+#: ../lib/packagekit-glib2/pk-console-shared.c:713
 msgid "Getting categories"
-msgstr ""
+msgstr "목록 가져오는 중"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:682
+#: ../lib/packagekit-glib2/pk-console-shared.c:717
 msgid "Getting transactions"
-msgstr ""
+msgstr "트랜잭션 가져오는 중"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:686
-#: ../lib/packagekit-glib2/pk-console-shared.c:690
+#: ../lib/packagekit-glib2/pk-console-shared.c:721
+#: ../lib/packagekit-glib2/pk-console-shared.c:725
 msgid "Simulating install"
-msgstr ""
+msgstr "설치 시연 중"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:694
+#: ../lib/packagekit-glib2/pk-console-shared.c:729
 msgid "Simulating remove"
-msgstr ""
+msgstr "제거 시연 중"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:698
+#: ../lib/packagekit-glib2/pk-console-shared.c:733
 msgid "Simulating update"
-msgstr ""
+msgstr "갱신 시연 중"
 
 #. TRANSLATORS: turn on all debugging
 #: ../lib/packagekit-glib2/pk-debug.c:133
 msgid "Show debugging information for all files"
-msgstr ""
+msgstr "모든 파일에 대한 디버깅 정보 보이기"
 
 #: ../lib/packagekit-glib2/pk-debug.c:201
 msgid "Debugging Options"
-msgstr ""
+msgstr "디버깅 옵션"
 
 #: ../lib/packagekit-glib2/pk-debug.c:201
 msgid "Show debugging options"
-msgstr ""
+msgstr "디버깅 옵션 보이기"
 
 #. TRANSLATORS: ask the user if they are comfortable installing insecure
 #. packages
 #: ../lib/packagekit-glib2/pk-task-text.c:67
 msgid "Do you want to allow installing of unsigned software?"
-msgstr ""
+msgstr "서명되지 않은 소프트웨어의 설치를 허용합니까?"
 
 #. TRANSLATORS: tell the user we've not done anything
 #: ../lib/packagekit-glib2/pk-task-text.c:72
 msgid "The unsigned software will not be installed."
-msgstr ""
+msgstr "서명되지 않은 소프트웨어는 설치되지 않을 것입니다."
 
 #. TRANSLATORS: the package repository is signed by a key that is not
 #. recognised
 #: ../lib/packagekit-glib2/pk-task-text.c:121
 msgid "Software source signature required"
-msgstr ""
+msgstr "소프트웨어 원본 서명이 필요합니다"
 
 #. TRANSLATORS: the package repository name
 #: ../lib/packagekit-glib2/pk-task-text.c:127
 msgid "Software source name"
-msgstr ""
+msgstr "소프트웨어 원본 이름"
 
 #. TRANSLATORS: the key URL
 #: ../lib/packagekit-glib2/pk-task-text.c:130
 msgid "Key URL"
-msgstr ""
+msgstr "키 URL"
 
 #. TRANSLATORS: the username of the key
 #: ../lib/packagekit-glib2/pk-task-text.c:133
 msgid "Key user"
-msgstr ""
+msgstr "키 사용자"
 
 #. TRANSLATORS: the key ID, usually a few hex digits
 #: ../lib/packagekit-glib2/pk-task-text.c:136
 msgid "Key ID"
-msgstr ""
+msgstr "키 ID"
 
 #. TRANSLATORS: the key fingerprint, again, yet more hex
 #: ../lib/packagekit-glib2/pk-task-text.c:139
 msgid "Key fingerprint"
-msgstr ""
+msgstr "키 지문"
 
 #. TRANSLATORS: the timestamp (a bit like a machine readable time)
 #: ../lib/packagekit-glib2/pk-task-text.c:142
 msgid "Key Timestamp"
-msgstr ""
+msgstr "키 타임스탬프"
 
 #. TRANSLATORS: ask the user if they want to import
 #: ../lib/packagekit-glib2/pk-task-text.c:155
 msgid "Do you accept this signature?"
-msgstr ""
+msgstr "이 서명을 수락하시겠습니까?"
 
 #. TRANSLATORS: tell the user we've not done anything
 #: ../lib/packagekit-glib2/pk-task-text.c:160
 msgid "The signature was not accepted."
-msgstr ""
+msgstr "서명이 수락되지 않았습니다."
 
 #. TRANSLATORS: this is another name for a software licence that has to be
 #. read before installing
 #: ../lib/packagekit-glib2/pk-task-text.c:203
 msgid "End user licence agreement required"
-msgstr ""
+msgstr "최종 사용자 라이센스 동의서가 필요합니다"
 
 #. TRANSLATORS: the EULA text itself (long and boring)
 #: ../lib/packagekit-glib2/pk-task-text.c:212
 msgid "Agreement"
-msgstr ""
+msgstr "동의서"
 
 #. TRANSLATORS: ask the user if they've read and accepted the EULA
 #: ../lib/packagekit-glib2/pk-task-text.c:221
 msgid "Do you accept this agreement?"
-msgstr ""
+msgstr "이 동의서를 수락하시겠습니까?"
 
 #. TRANSLATORS: tell the user we've not done anything
 #: ../lib/packagekit-glib2/pk-task-text.c:226
 msgid "The agreement was not accepted."
-msgstr ""
+msgstr "이 동의서는 수락되지 않았습니다"
 
 #. TRANSLATORS: the user needs to change media inserted into the computer
 #: ../lib/packagekit-glib2/pk-task-text.c:265
 msgid "Media change required"
-msgstr ""
+msgstr "미디어 변경이 필요합니다"
 
 #. TRANSLATORS: the type, e.g. DVD, CD, etc
 #: ../lib/packagekit-glib2/pk-task-text.c:268
 msgid "Media type"
-msgstr ""
+msgstr "미디어 유형"
 
 #. TRANSLATORS: the media label, usually like 'disk-1of3'
 #: ../lib/packagekit-glib2/pk-task-text.c:271
 msgid "Media label"
-msgstr ""
+msgstr "미디어 라벨"
 
 #. TRANSLATORS: the media description, usually like 'Fedora 12 disk 5'
 #: ../lib/packagekit-glib2/pk-task-text.c:274
 msgid "Text"
-msgstr ""
+msgstr "텍스트"
 
 #. TRANSLATORS: ask the user to insert the media
 #: ../lib/packagekit-glib2/pk-task-text.c:280
 msgid "Please insert the correct media"
-msgstr ""
+msgstr "올바른 미디어를 삽입하여 주십시오"
 
 #. TRANSLATORS: tell the user we've not done anything as they are lazy
 #: ../lib/packagekit-glib2/pk-task-text.c:285
 msgid "The correct media was not inserted."
-msgstr ""
+msgstr "올바른 미디어가 삽입되지 않았습니다."
 
 #. TRANSLATORS: When processing, we might have to remove other dependencies
 #: ../lib/packagekit-glib2/pk-task-text.c:300
 msgid "The following packages have to be removed:"
-msgstr ""
+msgstr "다음 패키지가 제거되어야 합니다:"
 
 #. TRANSLATORS: When processing, we might have to install other dependencies
 #: ../lib/packagekit-glib2/pk-task-text.c:305
 msgid "The following packages have to be installed:"
-msgstr ""
+msgstr "다음 패키지가 설치되어야 합니다:"
 
 #. TRANSLATORS: When processing, we might have to update other dependencies
 #: ../lib/packagekit-glib2/pk-task-text.c:310
 msgid "The following packages have to be updated:"
-msgstr ""
+msgstr "다음 패키지가 갱신되어야 합니다:"
 
 #. TRANSLATORS: When processing, we might have to reinstall other dependencies
 #: ../lib/packagekit-glib2/pk-task-text.c:315
 msgid "The following packages have to be reinstalled:"
-msgstr ""
+msgstr "다음 패키지가 재설치되어야 합니다:"
 
 #. TRANSLATORS: When processing, we might have to downgrade other dependencies
 #: ../lib/packagekit-glib2/pk-task-text.c:320
 msgid "The following packages have to be downgraded:"
+msgstr "다음 패키지가 다운그레이드되어야 합니다:"
+
+#. TRANSLATORS: When processing, untrusted and non-verified packages may be
+#. encountered
+#: ../lib/packagekit-glib2/pk-task-text.c:325
+msgid "The following packages are untrusted:"
 msgstr ""
 
 #. TRANSLATORS: ask the user if the proposed changes are okay
-#: ../lib/packagekit-glib2/pk-task-text.c:380
+#: ../lib/packagekit-glib2/pk-task-text.c:385
 msgid "Proceed with changes?"
-msgstr ""
+msgstr "변경 사항을 수행하시겠습니까?"
 
 #. TRANSLATORS: tell the user we didn't do anything
-#: ../lib/packagekit-glib2/pk-task-text.c:385
+#: ../lib/packagekit-glib2/pk-task-text.c:390
 msgid "The transaction did not proceed."
-msgstr ""
+msgstr "트랜잭션이 수행되지 않았습니다."
 
 #. SECURITY:
 #. - Normal users do not require admin authentication to accept new
@@ -1805,70 +1808,70 @@ msgstr ""
 #. 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:7
 msgid "Accept EULA"
-msgstr ""
+msgstr "EULA 수락"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:8
 msgid "Authentication is required to accept a EULA"
-msgstr ""
+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 ""
+msgstr "직접 시작하지 않은 작업을 취소하려면 인증이 필요합니다."
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:10
 msgid "Authentication is required to change software source parameters"
-msgstr ""
+msgstr "소프트웨어 원본 인자를 변경하려면 인증이 필요합니다"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:11
 msgid ""
 "Authentication is required to change the location used to decompress "
 "packages"
-msgstr ""
+msgstr "패키지의 압축을 해제할 경로를 변경하려면 인증이 필요합니다"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:12
 msgid ""
 "Authentication is required to consider a key used for signing packages as "
 "trusted"
-msgstr ""
+msgstr "신뢰할 수 있는 패키지 서명에 사용될 키를 고려대상에 넣으려면 인증이 필요합니다"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:13
 msgid "Authentication is required to install a signed package"
-msgstr ""
+msgstr "서명된 패키지를 설치하려면 인증이 필요합니다"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:14
 msgid "Authentication is required to install an untrusted package"
-msgstr ""
+msgstr "신뢰할 수 없는 패키지를 설치하려면 인증이 필요합니다"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:15
 msgid "Authentication is required to refresh the system sources"
-msgstr ""
+msgstr "시스템 원본을 새로 고치려면 인증이 필요합니다"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:16
 msgid "Authentication is required to reload the device with a new driver"
-msgstr ""
+msgstr "새로운 드라이버로 장치를 다시 로드하려면 인증이 필요합니다"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:17
 msgid "Authentication is required to remove packages"
-msgstr ""
+msgstr "패키지를 제거하려면 인증이 필요합니다"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:18
 msgid "Authentication is required to rollback a transaction"
-msgstr ""
+msgstr "트랜잭션을 되돌리려면 인증이 "
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:19
 msgid ""
 "Authentication is required to set the network proxy used for downloading "
 "packages"
-msgstr ""
+msgstr "다운로드 중인 패키지에 의해 사용될 네트워크 프록시를 설정하려면 인증이 필요합니다"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:20
 msgid "Authentication is required to update packages"
-msgstr ""
+msgstr "패키지를 갱신하려면 인증이 필요합니다"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:21
 msgid "Authentication is required to upgrade the operating system"
-msgstr ""
+msgstr "운영체제를 업그레이드 하려면 인증이 필요합니다"
 
 #. SECURITY:
 #. - Normal users are allowed to cancel their own task without
@@ -1877,7 +1880,7 @@ msgstr ""
 #. 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:27
 msgid "Cancel foreign task"
-msgstr ""
+msgstr "외부 작업 취소"
 
 #. SECURITY:
 #. - This is used when users want to install to a different prefix, for
@@ -1887,7 +1890,7 @@ msgstr ""
 #. 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:34
 msgid "Change location that packages are installed"
-msgstr ""
+msgstr "설치된 패키지의 위치 변경"
 
 #. SECURITY:
 #. - Normal users require admin authentication to enable or disable
@@ -1896,7 +1899,7 @@ msgstr ""
 #. 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:40
 msgid "Change software source parameters"
-msgstr ""
+msgstr "소프트웨어 원본 인자 변경"
 
 #. SECURITY:
 #. - Normal users do not need authentication to install signed packages
@@ -1906,7 +1909,7 @@ msgstr ""
 #. 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:47
 msgid "Install signed package"
-msgstr ""
+msgstr "서명된 패키지 설치"
 
 #. SECURITY:
 #. - Normal users require admin authentication to install untrusted or
@@ -1916,7 +1919,7 @@ msgstr ""
 #. 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:54
 msgid "Install untrusted local file"
-msgstr ""
+msgstr "신뢰할 수 없는 로컬 파일 설치"
 
 #. SECURITY:
 #. - Normal users do not require admin authentication to refresh the
@@ -1924,7 +1927,7 @@ msgstr ""
 #. 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:59
 msgid "Refresh system sources"
-msgstr ""
+msgstr "시스템 원본 새로 고침"
 
 #. SECURITY:
 #. - Normal users require admin authentication to rebind a driver
@@ -1935,7 +1938,7 @@ msgstr ""
 #. 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:67
 msgid "Reload a device"
-msgstr ""
+msgstr "장치 다시 로드"
 
 #. SECURITY:
 #. - Normal users require admin authentication to remove packages as
@@ -1948,7 +1951,7 @@ msgstr ""
 #. 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:77
 msgid "Remove package"
-msgstr ""
+msgstr "패키지 제거"
 
 #. SECURITY:
 #. - Normal users require admin authentication to rollback system state
@@ -1957,7 +1960,7 @@ msgstr ""
 #. 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:83
 msgid "Rollback to a previous transaction"
-msgstr ""
+msgstr "이전 트랜잭션 되돌리기"
 
 #. SECURITY:
 #. - Normal users do not require admin authentication to set the proxy
@@ -1965,7 +1968,7 @@ msgstr ""
 #. 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:88
 msgid "Set network proxy"
-msgstr ""
+msgstr "네트워크 프록시 설정"
 
 #. SECURITY:
 #. - Normal users require admin authentication to add signing keys.
@@ -1975,7 +1978,7 @@ msgstr ""
 #. 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:95
 msgid "Trust a key used for signing packages"
-msgstr ""
+msgstr "패키지 서명을 위해 사용되는 키 신뢰"
 
 #. SECURITY:
 #. - Normal users do not require admin authentication to update the
@@ -1986,7 +1989,7 @@ msgstr ""
 #. 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:103
 msgid "Update packages"
-msgstr ""
+msgstr "패키지 갱신"
 
 #. SECURITY:
 #. - Normal users require admin authentication to upgrade the disto as
@@ -1995,99 +1998,71 @@ msgstr ""
 #. 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:109
 msgid "Upgrade System"
-msgstr ""
-
-#. TRANSLATORS: failed due to DBus security
-#: ../src/pk-main.c:91
-msgid "Startup failed due to security policies on this machine."
-msgstr ""
-
-#. TRANSLATORS: only two ways this can fail...
-#: ../src/pk-main.c:93
-msgid "This can happen for two reasons:"
-msgstr ""
-
-#. TRANSLATORS: only allowed to be owned by root
-#: ../src/pk-main.c:95
-msgid "The correct user is not launching the executable (usually root)"
-msgstr ""
-
-#. TRANSLATORS: or we are installed in a prefix
-#: ../src/pk-main.c:97
-msgid ""
-"The org.freedesktop.PackageKit.conf file is not installed in the system "
-"directory:"
-msgstr ""
+msgstr "시스템 업그레이드"
 
 #. TRANSLATORS: a backend is the system package tool, e.g. yum, apt
-#: ../src/pk-main.c:223
+#: ../src/pk-main.c:149
 msgid "Packaging backend to use, e.g. dummy"
-msgstr ""
+msgstr "사용하기 위한 백엔드 (예: dummy) 패키지로 만드는 중"
 
 #. TRANSLATORS: if we should run in the background
-#: ../src/pk-main.c:226
+#: ../src/pk-main.c:152
 msgid "Daemonize and detach from the terminal"
-msgstr ""
+msgstr "터미널로부터 떨어뜨리고 데몬화 함"
 
 #. TRANSLATORS: if we should not monitor how long we are inactive for
-#: ../src/pk-main.c:229
+#: ../src/pk-main.c:155
 msgid "Disable the idle timer"
-msgstr ""
+msgstr "대기 타이머 비활성화"
 
 #. TRANSLATORS: show version
-#: ../src/pk-main.c:232
+#: ../src/pk-main.c:158
 msgid "Show version and exit"
-msgstr ""
+msgstr "버전을 보여주고 종료"
 
 #. TRANSLATORS: exit after we've started up, used for user profiling
-#: ../src/pk-main.c:235
+#: ../src/pk-main.c:161
 msgid "Exit after a small delay"
-msgstr ""
+msgstr "약간의 지연시간 이후 종료"
 
 #. TRANSLATORS: exit straight away, used for automatic profiling
-#: ../src/pk-main.c:238
+#: ../src/pk-main.c:164
 msgid "Exit after the engine has loaded"
+msgstr "엔진이 로드 되고 나면 종료"
+
+#. TRANSLATORS: don't unset environment variables, used for debugging
+#: ../src/pk-main.c:167
+msgid "Don't clear environment on startup"
 msgstr ""
 
 #. TRANSLATORS: describing the service that is running
-#: ../src/pk-main.c:253
+#: ../src/pk-main.c:179
 msgid "PackageKit service"
-msgstr ""
-
-#. TRANSLATORS: fatal error, dbus is not running
-#: ../src/pk-main.c:298
-msgid "Cannot connect to the system bus"
-msgstr ""
+msgstr "PackageKit 서비스"
 
-#: ../src/pk-main.c:344
+#: ../src/pk-main.c:253
 msgid "Failed to load any of the specified backends:"
-msgstr ""
-
-#. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error
-#. follows
-#: ../src/pk-main.c:358
-msgid "Error trying to start:"
-msgstr ""
+msgstr "어떤 지정된 백엔드를 로드하는데 실패했습니다"
 
 #. TRANSLATORS: is not GPG signed
-#: ../src/pk-transaction.c:2611 ../src/pk-transaction.c:2618
+#: ../src/pk-transaction.c:2696
 msgid "The software is not from a trusted source."
-msgstr ""
+msgstr "소프트웨어가 신뢰할 수 있는 원본으로부터 온 것이 아닙니다"
 
-#: ../src/pk-transaction.c:2623
+#: ../src/pk-transaction.c:2704
 msgid "Do not update this package unless you are sure it is safe to do so."
-msgstr ""
+msgstr "안전하다고 판단되기 전에는 이 패키지를 갱신하지 마십시오"
 
-#: ../src/pk-transaction.c:2624
+#: ../src/pk-transaction.c:2705
 msgid "Do not update these packages unless you are sure it is safe to do so."
-msgstr ""
+msgstr "안전하다고 판단되기 전에는 이 패키지들을 갱신하지 마십시오"
 
-#: ../src/pk-transaction.c:2634
+#: ../src/pk-transaction.c:2715
 msgid "Do not install this package unless you are sure it is safe to do so."
-msgstr ""
+msgstr "안전하다고 판단되기 전에는 이 패키지를 설치하지 "
 
-#: ../src/pk-transaction.c:2635
+#: ../src/pk-transaction.c:2716
 msgid "Do not install these packages unless you are sure it is safe to do so."
-msgstr ""
+msgstr "안던하다고 판단되기 전에는 이 패키지들을 설치하지 마십시오"
 
 
diff --git a/po/lt.po b/po/lt.po
index 2fb0d47..b99f207 100644
--- a/po/lt.po
+++ b/po/lt.po
@@ -2,15 +2,17 @@
 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
 # This file is distributed under the same license as the PACKAGE package.
 # 
-# Richard Hughes <richard at hughsie.com>, 2011
+# Translators:
+# Mantas Kriaučiūnas <mantas at akl.lt>, 2011.
+# Richard Hughes <richard at hughsie.com>, 2011.
 msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-04 10:50+0100\n"
-"PO-Revision-Date: 2011-05-04 09:56+0000\n"
-"Last-Translator: hughsie <richard at hughsie.com>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
+"POT-Creation-Date: 2011-11-10 19:50+0000\n"
+"PO-Revision-Date: 2011-12-08 14:56+0000\n"
+"Last-Translator: Mantas Kriaučiūnas <mantas at akl.lt>\n"
+"Language-Team: Lithuanian (http://www.transifex.net/projects/p/freedesktop/team/lt/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -87,7 +89,7 @@ msgstr "Paveikti paketai: nÄ—ra"
 #. TRANSLATORS: this is the distro, e.g. Fedora 10
 #: ../client/pk-console.c:247
 msgid "Distribution"
-msgstr "Distribucija"
+msgstr "Distributyvas"
 
 #. TRANSLATORS: this is type of update, stable or testing
 #: ../client/pk-console.c:249
@@ -195,7 +197,7 @@ msgstr "IÅ¡leistas"
 
 #. TRANSLATORS: details about the update, date the update was updated
 #. TRANSLATORS: The action of the package, in past tense
-#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:524
+#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:559
 msgid "Updated"
 msgstr "Atnaujintas"
 
@@ -281,11 +283,11 @@ msgstr "Lemtinga klaida"
 #. can be updated
 #: ../client/pk-console.c:701
 msgid "There are no packages to update."
-msgstr ""
+msgstr "Nėra atnaujinamų paketų."
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
 #: ../client/pk-console.c:704
-#: ../contrib/command-not-found/pk-command-not-found.c:639
+#: ../contrib/command-not-found/pk-command-not-found.c:634
 msgid "The transaction failed"
 msgstr "Operacija nepavyko"
 
@@ -314,8 +316,8 @@ msgid ""
 "Please restart the computer to complete the update as important security "
 "updates have been installed."
 msgstr ""
-"Atnaujinimui užbaigti, paleiskite sistemą iš naujo, kadangi buvo įdiegta "
-"svarbių saugumo atnaujinimų."
+"Atnaujinimui užbaigti, paleiskite sistemą iš naujo - buvo įdiegta svarbių "
+"saugumo atnaujinimų."
 
 #. TRANSLATORS: a package needs to restart the session (due to security)
 #: ../client/pk-console.c:832
@@ -323,8 +325,8 @@ msgid ""
 "Please logout and login to complete the update as important security updates"
 " have been installed."
 msgstr ""
-"Atnaujinimui užbaigti, atsijunkite ir vėl prisijunkite, kadangi buvo įdiegta"
-" svarbių saugumo atnaujinimų."
+"Atnaujinimui užbaigti, atsijunkite ir vėl prisijunkite - buvo įdiegta "
+"svarbių saugumo atnaujinimų."
 
 #. TRANSLATORS: The user used 'pkcon install dave.rpm' rather than 'pkcon
 #. install-local dave.rpm'
@@ -339,21 +341,21 @@ msgstr ""
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:866
+#: ../client/pk-console.c:871
 #, c-format
 msgid "This tool could not find any available package: %s"
 msgstr "Šiai priemonei nepavyko rasti jokių prieinamų paketų: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:894
+#: ../client/pk-console.c:899
 #, c-format
 msgid "This tool could not find the installed package: %s"
 msgstr "Šiai priemonei nepavyko rasti įdiegto paketo: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:922 ../client/pk-console.c:950
+#: ../client/pk-console.c:927 ../client/pk-console.c:955
 #, c-format
 msgid "This tool could not find the package: %s"
 msgstr "Å iai priemonei nepavyko rasti paketo: %s"
@@ -366,69 +368,69 @@ msgstr "Å iai priemonei nepavyko rasti paketo: %s"
 #. detailed error follows
 #. TRANSLATORS: The package name was not found in any software sources. The
 #. detailed error follows
-#: ../client/pk-console.c:978 ../client/pk-console.c:1006
-#: ../client/pk-console.c:1034 ../client/pk-console.c:1062
-#: ../client/pk-console.c:1090
+#: ../client/pk-console.c:983 ../client/pk-console.c:1011
+#: ../client/pk-console.c:1039 ../client/pk-console.c:1067
+#: ../client/pk-console.c:1095
 #, c-format
 msgid "This tool could not find all the packages: %s"
 msgstr "Šiai priemonei nepavyko rasti visų paketų: %s"
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek
 #. without a paddle
-#: ../client/pk-console.c:1119
+#: ../client/pk-console.c:1124
 msgid "The daemon crashed mid-transaction!"
 msgstr "Tarnyba nulūžo atliekant operaciją!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1153
+#: ../client/pk-console.c:1158
 msgid "PackageKit Console Interface"
 msgstr "PackageKit pulto sÄ…saja"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1155
+#: ../client/pk-console.c:1160
 msgid "Subcommands:"
 msgstr "PakomandÄ—s:"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was
 #. last executed
-#: ../client/pk-console.c:1235
+#: ../client/pk-console.c:1240
 msgid "Failed to get the time since this action was last completed"
 msgstr "Nepavyko gauti laiko, kada šis veiksmas paskutinį kartą baigtas"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1277 ../client/pk-monitor.c:371
+#: ../client/pk-console.c:1282 ../client/pk-monitor.c:371
 msgid "Show the program version and exit"
 msgstr "Parodyti programos versiją ir išeiti"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1280
+#: ../client/pk-console.c:1285
 msgid "Set the filter, e.g. installed"
 msgstr "Nustatyti filtrą, pvz., įdiegta"
 
 #. TRANSLATORS: command line argument, use a non-standard install prefix
-#: ../client/pk-console.c:1283
+#: ../client/pk-console.c:1288
 msgid "Set the install root, e.g. '/' or '/mnt/ltsp'"
 msgstr "Nustatyti šakninį diegimo katalogą, pvz., „/“ arba „/mnt/ltsp“"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1286
+#: ../client/pk-console.c:1291
 msgid "Exit without waiting for actions to complete"
 msgstr "Išeiti nelaukiant veiksmų pabaigos"
 
 #. command line argument, do we ask questions
-#: ../client/pk-console.c:1289
+#: ../client/pk-console.c:1294
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:525
 msgid "Install the packages without asking for confirmation"
 msgstr "Įdiegti paketus neklausiant patvirtinimo"
 
 #. TRANSLATORS: command line argument, this command is not a priority
-#: ../client/pk-console.c:1292
+#: ../client/pk-console.c:1297
 msgid "Run the command using idle network bandwidth and also using less power"
 msgstr ""
 "Paleisti komandą naudojant laisvą tinklo ryšį ir naudojant mažiau energijos"
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1295
+#: ../client/pk-console.c:1300
 msgid ""
 "Print to screen a machine readable output, rather than using animated "
 "widgets"
@@ -437,155 +439,157 @@ msgstr ""
 "valdymo elementus"
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1298
+#: ../client/pk-console.c:1303
 msgid "The maximum metadata cache age. Use -1 for 'never'."
 msgstr ""
+"Maksimalus podėlyje esančių metaduomenų senumas. Naudokite -1 neribotam."
 
 #. TRANSLATORS: command line argument, --help
-#: ../client/pk-console.c:1301
+#: ../client/pk-console.c:1306
 msgid "Show help options."
-msgstr ""
+msgstr "Rodyti pagalbos pasirinkimus."
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1331
+#: ../client/pk-console.c:1336
 msgid "Failed to parse command line"
 msgstr ""
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1341
+#: ../client/pk-console.c:1346
 msgid "Failed to contact PackageKit"
 msgstr "Nepavyko susisiekti su PackageKit"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1394
+#: ../client/pk-console.c:1399
 msgid "The proxy could not be set"
 msgstr "Nepavyko nustatyti įgaliotosios programos"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1406
+#: ../client/pk-console.c:1411
 msgid "The install root could not be set"
 msgstr "Nepavyko nustatyti diegimo Å¡akninio katalogo"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1418
+#: ../client/pk-console.c:1423
 msgid "The filter specified was invalid"
 msgstr "Nurodytas filtras buvo netinkamas"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1437
+#: ../client/pk-console.c:1442
 msgid "A search type is required, e.g. name"
 msgstr "Reikia nurodyti paieškos tipą, pvz., pavadinimas"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1444 ../client/pk-console.c:1456
-#: ../client/pk-console.c:1468 ../client/pk-console.c:1480
+#: ../client/pk-console.c:1449 ../client/pk-console.c:1461
+#: ../client/pk-console.c:1473 ../client/pk-console.c:1485
 msgid "A search term is required"
 msgstr "Reikia nurodyti ieškomą terminą"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1490
+#: ../client/pk-console.c:1495
 msgid "Invalid search type"
 msgstr "Netinkamas paieškos tipas"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1496
+#: ../client/pk-console.c:1501
 msgid "A package name to install is required"
 msgstr "Reikia nurodyti diegtino paketo pavadinimÄ…"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1505
+#: ../client/pk-console.c:1510
 msgid "A filename to install is required"
 msgstr "Reikia nurodyti diegtino failo pavadinimÄ…"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1516
+#: ../client/pk-console.c:1521
 msgid "A type, key_id and package_id are required"
 msgstr "Reikia nurodyti tipÄ…, key_id ir package_id"
 
 #. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:1527
+#: ../client/pk-console.c:1532
 msgid "A package name to remove is required"
 msgstr "Reikia nurodyti Å¡alintino paketo pavadinimÄ…"
 
 #. TRANSLATORS: the user did not specify anything about what to download or
 #. where
-#: ../client/pk-console.c:1536
+#: ../client/pk-console.c:1541
 msgid "A destination directory and the package names to download are required"
 msgstr "Reikia nurodyti paskirties katalogą ir atsiųstinų paketų pavadinimus"
 
 #. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:1543
+#: ../client/pk-console.c:1548
 msgid "Directory not found"
 msgstr "Katalogas nerastas"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1552
+#: ../client/pk-console.c:1557
 msgid "A licence identifier (eula-id) is required"
 msgstr "Reikia nurodyti licencijos identifikatorių (eula-id)"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1563
+#: ../client/pk-console.c:1568
 msgid "A transaction identifier (tid) is required"
 msgstr "Reikia nurodyti operacijos identifikatorių (tid)"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:1584
+#: ../client/pk-console.c:1589
 msgid "A package name to resolve is required"
 msgstr "Reikia nurodyti ieškomo paketo pavadinimą"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:1595 ../client/pk-console.c:1606
+#: ../client/pk-console.c:1600 ../client/pk-console.c:1611
 msgid "A repository name is required"
 msgstr "Reikia nurodyti saugyklos pavadinimÄ…"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:1617
+#: ../client/pk-console.c:1622
 msgid "A repo name, parameter and value are required"
 msgstr "Reikia nurodyti saugyklos pavadinimą, parametrą ir reikšmę"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:1634
+#: ../client/pk-console.c:1639
 msgid "An action, e.g. 'update-system' is required"
 msgstr "Reikia nurodyti veiksmą, pvz., „update-system“"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:1641
+#: ../client/pk-console.c:1646
 msgid "A correct role is required"
 msgstr "Reikia nurodyti teisingą vaidmenį"
 
 #. 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:1651 ../client/pk-console.c:1665
-#: ../client/pk-console.c:1674 ../client/pk-console.c:1694
-#: ../client/pk-console.c:1703 ../client/pk-generate-pack.c:314
+#: ../client/pk-console.c:1656 ../client/pk-console.c:1670
+#: ../client/pk-console.c:1679 ../client/pk-console.c:1699
+#: ../client/pk-console.c:1708 ../client/pk-generate-pack.c:314
 msgid "A package name is required"
 msgstr "Reikia nurodyti paketo pavadinimÄ…"
 
 #. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-
 #. decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:1683
+#: ../client/pk-console.c:1688
 msgid "A package provide string is required"
 msgstr "Reikia nurodyti paketo suteikiamÄ… eilutÄ™"
 
 #. TRANSLATORS: The user did not provide a distro name
-#: ../client/pk-console.c:1727
+#: ../client/pk-console.c:1732
 msgid "A distribution name is required"
-msgstr ""
+msgstr "Reikia pateikti distributyvo pavadinimÄ…"
 
 #. TRANSLATORS: The user did not provide an upgrade type
-#: ../client/pk-console.c:1733
+#: ../client/pk-console.c:1738
 msgid "An upgrade type is required, e.g. 'minimal', 'default' or 'complete'"
 msgstr ""
+"Reikia nurodyti naujovinimo būdą, t.y. „minimalus“, „įprastas“ arba „pilnas“"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command
 #. line
-#: ../client/pk-console.c:1783
+#: ../client/pk-console.c:1788
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "Parinktis „%s“ nepalaikoma"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:1793
+#: ../client/pk-console.c:1798
 msgid "Command failed"
 msgstr "Komandos įvykdyti nepavyko"
 
@@ -716,7 +720,7 @@ msgstr "Nepavyko gauti tarnybos būsenos"
 
 #: ../client/pk-monitor.c:349
 msgid "Failed to get properties"
-msgstr ""
+msgstr "Nepavyko gauti savybių"
 
 #. TRANSLATORS: this is a program that monitors PackageKit
 #: ../client/pk-monitor.c:387
@@ -724,159 +728,154 @@ msgid "PackageKit Monitor"
 msgstr "PackageKit stebyklÄ—"
 
 #. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/pk-plugin-install.c:499
+#: ../contrib/browser-plugin/pk-plugin-install.c:503
 msgid "Getting package information..."
 msgstr "Gaunami paketo duomenys..."
 
 #. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/pk-plugin-install.c:505
+#: ../contrib/browser-plugin/pk-plugin-install.c:509
 #, c-format
 msgid "Run %s"
 msgstr "Paleisti %s"
 
 #. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:511
+#: ../contrib/browser-plugin/pk-plugin-install.c:515
 msgid "Installed version"
 msgstr "Įdiegta versija"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:519
+#: ../contrib/browser-plugin/pk-plugin-install.c:523
 #, c-format
 msgid "Run version %s now"
 msgstr "Paleisti versijÄ… %s dabar"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:525
+#: ../contrib/browser-plugin/pk-plugin-install.c:529
 msgid "Run now"
 msgstr "Paleisti dabar"
 
 #. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:531
+#: ../contrib/browser-plugin/pk-plugin-install.c:535
 #, c-format
 msgid "Update to version %s"
 msgstr "Atnaujinti į versiją %s"
 
 #. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:537
+#: ../contrib/browser-plugin/pk-plugin-install.c:541
 #, c-format
 msgid "Install %s now"
 msgstr "Įdiegti %s dabar"
 
 #. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:540
+#: ../contrib/browser-plugin/pk-plugin-install.c:544
 msgid "Version"
 msgstr "Versija"
 
 #. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/pk-plugin-install.c:545
+#: ../contrib/browser-plugin/pk-plugin-install.c:549
 msgid "No packages found for your system"
 msgstr "Jūsų sistemoje nerasta paketų"
 
 #. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/pk-plugin-install.c:550
+#: ../contrib/browser-plugin/pk-plugin-install.c:554
 msgid "Installing..."
 msgstr "Diegiama..."
 
 #. TRANSLATORS: downloading repo data so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:366
+#: ../contrib/command-not-found/pk-command-not-found.c:363
 msgid "Downloading details about the software sources."
-msgstr "Atsiunčiama informacija apie programinės įrangos šaltinius."
+msgstr "Atsiunčiama informacija apie programinės įrangos saugyklas."
 
 #. TRANSLATORS: downloading file lists so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:370
+#: ../contrib/command-not-found/pk-command-not-found.c:367
 msgid "Downloading filelists (this may take some time to complete)."
 msgstr "Atsiunčiami failų sąrašai (tai gali šiek tiek užtrukti)."
 
 #. TRANSLATORS: waiting for native lock
-#: ../contrib/command-not-found/pk-command-not-found.c:374
+#: ../contrib/command-not-found/pk-command-not-found.c:371
 msgid "Waiting for package manager lock."
 msgstr "Laukiama paketų tvarkyklės užrakto."
 
 #. TRANSLATORS: loading package cache so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:378
+#: ../contrib/command-not-found/pk-command-not-found.c:375
 msgid "Loading list of packages."
 msgstr "Įkeliamas paketų sąrašas."
 
 #. TRANSLATORS: we failed to find the package, this shouldn't happen
-#: ../contrib/command-not-found/pk-command-not-found.c:444
+#: ../contrib/command-not-found/pk-command-not-found.c:439
 msgid "Failed to search for file"
 msgstr "Nepavyko rasti failo"
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
-#: ../contrib/command-not-found/pk-command-not-found.c:456
+#: ../contrib/command-not-found/pk-command-not-found.c:451
 msgid "Getting the list of files failed"
-msgstr ""
+msgstr "Nepavyko gauti failų sąrašo"
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:602
+#: ../contrib/command-not-found/pk-command-not-found.c:597
 msgid "Failed to launch:"
 msgstr "Nepavyko paleisti:"
 
 #. TRANSLATORS: we failed to install the package
-#: ../contrib/command-not-found/pk-command-not-found.c:630
+#: ../contrib/command-not-found/pk-command-not-found.c:625
 msgid "Failed to install packages"
 msgstr "Nepavyko įdiegti paketų"
 
-#. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/command-not-found/pk-command-not-found.c:706
-msgid "PackageKit Command Not Found"
-msgstr "PackageKit komanda nerasta"
-
 #. TRANSLATORS: the prefix of all the output telling the user
 #. * why it's not executing. NOTE: this is lowercase to mimic
 #. * the style of bash itself -- apologies
-#: ../contrib/command-not-found/pk-command-not-found.c:741
+#: ../contrib/command-not-found/pk-command-not-found.c:723
 msgid "command not found"
-msgstr ""
+msgstr "komanda nerasta"
 
 #. TRANSLATORS: tell the user what we think the command is
-#: ../contrib/command-not-found/pk-command-not-found.c:759
+#: ../contrib/command-not-found/pk-command-not-found.c:741
 msgid "Similar command is:"
 msgstr "Panaši komanda yra:"
 
 #. TRANSLATORS: Ask the user if we should run the similar command
-#: ../contrib/command-not-found/pk-command-not-found.c:773
+#: ../contrib/command-not-found/pk-command-not-found.c:755
 msgid "Run similar command:"
 msgstr "Paleisti panašią komanda:"
 
 #. 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:787
-#: ../contrib/command-not-found/pk-command-not-found.c:796
+#: ../contrib/command-not-found/pk-command-not-found.c:769
+#: ../contrib/command-not-found/pk-command-not-found.c:778
 msgid "Similar commands are:"
 msgstr "Panašios komandos yra:"
 
 #. TRANSLATORS: ask the user to choose a file to run
-#: ../contrib/command-not-found/pk-command-not-found.c:803
+#: ../contrib/command-not-found/pk-command-not-found.c:785
 msgid "Please choose a command to run"
 msgstr "Pasirinkite paleistinÄ… komandÄ…"
 
 #. TRANSLATORS: tell the user what package provides the command
-#: ../contrib/command-not-found/pk-command-not-found.c:821
+#: ../contrib/command-not-found/pk-command-not-found.c:803
 msgid "The package providing this file is:"
 msgstr "Paketas, suteikiantis šį failą yra:"
 
 #. TRANSLATORS: as the user if we want to install a package to provide the
 #. command
-#: ../contrib/command-not-found/pk-command-not-found.c:828
+#: ../contrib/command-not-found/pk-command-not-found.c:810
 #, c-format
 msgid "Install package '%s' to provide command '%s'?"
 msgstr "Įdiegti paketą „%s“, suteikiantį komandą „%s“?"
 
 #. TRANSLATORS: Show the user a list of packages that provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:855
+#: ../contrib/command-not-found/pk-command-not-found.c:837
 msgid "Packages providing this file are:"
 msgstr "Paketai, suteikiantys šį failą yra:"
 
 #. 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:865
+#: ../contrib/command-not-found/pk-command-not-found.c:847
 msgid "Suitable packages are:"
 msgstr "Tinkami paketai yra:"
 
 #. get selection
 #. TRANSLATORS: ask the user to choose a file to install
-#: ../contrib/command-not-found/pk-command-not-found.c:874
+#: ../contrib/command-not-found/pk-command-not-found.c:856
 msgid "Please choose a package to install"
 msgstr "Pasirinkite diegtinÄ… paketÄ…"
 
@@ -925,7 +924,7 @@ msgstr "KLAIDA: nurodykite diegtinų paketų pavadinimus."
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:590
 #, c-format
 msgid "Getting sources list"
-msgstr "Gaunamas šaltinių sąrašas"
+msgstr "Gaunamas saugyklų sąrašas"
 
 #. TRANSLATORS: operation was not successful
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:600
@@ -953,13 +952,13 @@ msgstr "SÄ–KMINGA."
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:618
 #, c-format
 msgid "Found %i enabled and %i disabled sources."
-msgstr "Rasta %i įjungtų ir %i išjungtų šaltinių."
+msgstr "Rasta %i įjungtų ir %i išjungtų saugyklų."
 
 #. TRANSLATORS: we're finding repositories that match out pattern
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:625
 #, c-format
 msgid "Finding debugging sources"
-msgstr "Ieškoma derinimo šaltinių"
+msgstr "Ieškoma programų derinimo saugyklų"
 
 #. TRANSLATORS: tell the user what we found
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:658
@@ -971,13 +970,13 @@ msgstr "Rasta %i išjungtų debuginfo saugyklų."
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:665
 #, c-format
 msgid "Enabling debugging sources"
-msgstr "Įjungiami derinimo šaltiniai"
+msgstr "Įjungiamos programų derinimo saugyklos"
 
 #. TRANSLATORS: tell the user how many we enabled
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:693
 #, c-format
 msgid "Enabled %i debugging sources."
-msgstr "Įjungta %i derinimo šaltinių."
+msgstr "Įjungtos %i derinimo saugyklos."
 
 #. TRANSLATORS: we're now finding packages that match in all the repos
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:700
@@ -1050,7 +1049,7 @@ msgstr "Imitavimo veiksenoje paketai nediegiami"
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
 #. TRANSLATORS: transaction state, installing packages
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:860
-#: ../lib/packagekit-glib2/pk-console-shared.c:296
+#: ../lib/packagekit-glib2/pk-console-shared.c:331
 #, c-format
 msgid "Installing packages"
 msgstr "Diegiami paketai"
@@ -1065,20 +1064,20 @@ msgstr "Nepavyko įdiegti paketų: %s"
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:905
 #, c-format
 msgid "Disabling sources previously enabled"
-msgstr "Išjungiami anksčiau įjungti šaltiniai"
+msgstr "Išjungiamos anksčiau įjungtos saugyklos"
 
 #. TRANSLATORS: no debuginfo packages could be found to be installed, detailed
 #. error follows
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:917
 #, c-format
 msgid "Could not disable the debugging sources: %s"
-msgstr "Nepavyko išjungti derinimo šaltinių: %s"
+msgstr "Nepavyko išjungti derinimo saugyklų: %s"
 
 #. TRANSLATORS: we disabled all the debugging repos that we enabled before
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:932
 #, c-format
 msgid "Disabled %i debugging sources."
-msgstr "Išjungta %i derinimo šaltinių."
+msgstr "IÅ¡jungtos %i derinimo saugyklos."
 
 #. TRANSLATORS: couldn't open device to write
 #: ../contrib/device-rebind/pk-device-rebind.c:62
@@ -1184,474 +1183,474 @@ msgstr "PackageKit paketų sąrašas"
 msgid "PackageKit Service Pack"
 msgstr "PackageKit atnaujinimų rinkinys"
 
-#: ../lib/packagekit-glib2/pk-console-shared.c:64
+#: ../lib/packagekit-glib2/pk-console-shared.c:65
 #, c-format
 msgid "Please enter a number from 1 to %i: "
 msgstr "Įveskite numerį nuo 1 iki %i: "
 
 #. TRANSLATORS: more than one package could be found that matched, to follow
 #. is a list of possible packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:198
+#: ../lib/packagekit-glib2/pk-console-shared.c:233
 msgid "More than one package matches:"
 msgstr "Atitinka daugiau nei vienas paketas:"
 
 #. TRANSLATORS: This finds out which package in the list to use
-#: ../lib/packagekit-glib2/pk-console-shared.c:209
+#: ../lib/packagekit-glib2/pk-console-shared.c:244
 msgid "Please choose the correct package: "
 msgstr "Pasirinkite teisingÄ… paketÄ…: "
 
 #. TRANSLATORS: This is when the transaction status is not known
-#: ../lib/packagekit-glib2/pk-console-shared.c:264
+#: ../lib/packagekit-glib2/pk-console-shared.c:299
 msgid "Unknown state"
 msgstr "Nežinoma būsena"
 
 #. TRANSLATORS: transaction state, the daemon is in the process of starting
-#: ../lib/packagekit-glib2/pk-console-shared.c:268
+#: ../lib/packagekit-glib2/pk-console-shared.c:303
 msgid "Starting"
 msgstr "Paleidžiama"
 
 #. TRANSLATORS: transaction state, the transaction is waiting for another to
 #. complete
-#: ../lib/packagekit-glib2/pk-console-shared.c:272
+#: ../lib/packagekit-glib2/pk-console-shared.c:307
 msgid "Waiting in queue"
 msgstr "Laukiama eilÄ—je"
 
 #. TRANSLATORS: transaction state, just started
-#: ../lib/packagekit-glib2/pk-console-shared.c:276
+#: ../lib/packagekit-glib2/pk-console-shared.c:311
 msgid "Running"
 msgstr "Vykdoma"
 
 #. TRANSLATORS: transaction state, is querying data
-#: ../lib/packagekit-glib2/pk-console-shared.c:280
+#: ../lib/packagekit-glib2/pk-console-shared.c:315
 msgid "Querying"
 msgstr "Užklausiama"
 
 #. TRANSLATORS: transaction state, getting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:284
+#: ../lib/packagekit-glib2/pk-console-shared.c:319
 msgid "Getting information"
 msgstr "Gaunama informacija"
 
 #. TRANSLATORS: transaction state, removing packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:288
+#: ../lib/packagekit-glib2/pk-console-shared.c:323
 msgid "Removing packages"
 msgstr "Å alinami paketai"
 
 #. TRANSLATORS: transaction state, downloading package files
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:292
-#: ../lib/packagekit-glib2/pk-console-shared.c:670
+#: ../lib/packagekit-glib2/pk-console-shared.c:327
+#: ../lib/packagekit-glib2/pk-console-shared.c:705
 msgid "Downloading packages"
 msgstr "Atsiunčiami paketai"
 
 #. TRANSLATORS: transaction state, refreshing internal lists
-#: ../lib/packagekit-glib2/pk-console-shared.c:300
+#: ../lib/packagekit-glib2/pk-console-shared.c:335
 msgid "Refreshing software list"
 msgstr "Atnaujinamas programinės įrangos sąrašas"
 
 #. TRANSLATORS: transaction state, installing updates
-#: ../lib/packagekit-glib2/pk-console-shared.c:304
+#: ../lib/packagekit-glib2/pk-console-shared.c:339
 msgid "Installing updates"
 msgstr "Diegiami atnaujinimai"
 
 #. TRANSLATORS: transaction state, removing old packages, and cleaning config
 #. files
-#: ../lib/packagekit-glib2/pk-console-shared.c:308
+#: ../lib/packagekit-glib2/pk-console-shared.c:343
 msgid "Cleaning up packages"
 msgstr "IÅ¡valomi paketai"
 
 #. TRANSLATORS: transaction state, obsoleting old packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:312
+#: ../lib/packagekit-glib2/pk-console-shared.c:347
 msgid "Obsoleting packages"
 msgstr "Žymimo pasenę paketai"
 
 #. TRANSLATORS: transaction state, checking the transaction before we do it
-#: ../lib/packagekit-glib2/pk-console-shared.c:316
+#: ../lib/packagekit-glib2/pk-console-shared.c:351
 msgid "Resolving dependencies"
 msgstr "Tikrinamos priklausomybÄ—s"
 
 #. TRANSLATORS: transaction state, checking if we have all the security keys
 #. for the operation
-#: ../lib/packagekit-glib2/pk-console-shared.c:320
+#: ../lib/packagekit-glib2/pk-console-shared.c:355
 msgid "Checking signatures"
 msgstr "Tikrinami parašai"
 
 #. TRANSLATORS: transaction state, when we return to a previous system state
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:324
-#: ../lib/packagekit-glib2/pk-console-shared.c:630
+#: ../lib/packagekit-glib2/pk-console-shared.c:359
+#: ../lib/packagekit-glib2/pk-console-shared.c:665
 msgid "Rolling back"
 msgstr "Grįžtama"
 
 #. TRANSLATORS: transaction state, when we're doing a test transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:328
+#: ../lib/packagekit-glib2/pk-console-shared.c:363
 msgid "Testing changes"
 msgstr "Tikrinami pakeitimai"
 
 #. TRANSLATORS: transaction state, when we're writing to the system package
 #. database
-#: ../lib/packagekit-glib2/pk-console-shared.c:332
+#: ../lib/packagekit-glib2/pk-console-shared.c:367
 msgid "Committing changes"
 msgstr "IÅ¡saugomi pakeitimai"
 
 #. TRANSLATORS: transaction state, requesting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:336
+#: ../lib/packagekit-glib2/pk-console-shared.c:371
 msgid "Requesting data"
 msgstr "Užklausiama duomenų"
 
 #. TRANSLATORS: transaction state, all done!
-#: ../lib/packagekit-glib2/pk-console-shared.c:340
+#: ../lib/packagekit-glib2/pk-console-shared.c:375
 msgid "Finished"
 msgstr "Baigta"
 
 #. TRANSLATORS: transaction state, in the process of cancelling
-#: ../lib/packagekit-glib2/pk-console-shared.c:344
+#: ../lib/packagekit-glib2/pk-console-shared.c:379
 msgid "Cancelling"
 msgstr "Atšaukiama"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:348
+#: ../lib/packagekit-glib2/pk-console-shared.c:383
 msgid "Downloading repository information"
 msgstr "Atsiunčiama saugyklų informacija"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:352
+#: ../lib/packagekit-glib2/pk-console-shared.c:387
 msgid "Downloading list of packages"
 msgstr "Atsiunčiamas paketų sąrašas"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:356
+#: ../lib/packagekit-glib2/pk-console-shared.c:391
 msgid "Downloading file lists"
 msgstr "Atsiunčiami failų sąrašai"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:360
+#: ../lib/packagekit-glib2/pk-console-shared.c:395
 msgid "Downloading lists of changes"
 msgstr "Atsiunčiami pakeitimų sąrašai"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:364
+#: ../lib/packagekit-glib2/pk-console-shared.c:399
 msgid "Downloading groups"
 msgstr "Atsiunčiamos grupės"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:368
+#: ../lib/packagekit-glib2/pk-console-shared.c:403
 msgid "Downloading update information"
 msgstr "Atsiunčiama atnaujinimo informacija"
 
 #. TRANSLATORS: transaction state, repackaging delta files
-#: ../lib/packagekit-glib2/pk-console-shared.c:372
+#: ../lib/packagekit-glib2/pk-console-shared.c:407
 msgid "Repackaging files"
 msgstr "Perpakuojami failai"
 
 #. TRANSLATORS: transaction state, loading databases
-#: ../lib/packagekit-glib2/pk-console-shared.c:376
+#: ../lib/packagekit-glib2/pk-console-shared.c:411
 msgid "Loading cache"
 msgstr "Įkeliamas podėlis"
 
 #. TRANSLATORS: transaction state, scanning for running processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:380
+#: ../lib/packagekit-glib2/pk-console-shared.c:415
 msgid "Scanning applications"
 msgstr "Apžvelgiamos programos"
 
 #. TRANSLATORS: transaction state, generating a list of packages installed on
 #. the system
-#: ../lib/packagekit-glib2/pk-console-shared.c:384
+#: ../lib/packagekit-glib2/pk-console-shared.c:419
 msgid "Generating package lists"
 msgstr "Kuriami paketų sąrašai"
 
 #. TRANSLATORS: transaction state, when we're waiting for the native tools to
 #. exit
-#: ../lib/packagekit-glib2/pk-console-shared.c:388
+#: ../lib/packagekit-glib2/pk-console-shared.c:423
 msgid "Waiting for package manager lock"
 msgstr "Laukiama paketų tvarkyklės užrakto"
 
 #. TRANSLATORS: transaction state, waiting for user to type in a password
-#: ../lib/packagekit-glib2/pk-console-shared.c:392
+#: ../lib/packagekit-glib2/pk-console-shared.c:427
 msgid "Waiting for authentication"
 msgstr "Laukiama tapatybÄ—s patvirtinimo"
 
 #. TRANSLATORS: transaction state, we are updating the list of processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:396
+#: ../lib/packagekit-glib2/pk-console-shared.c:431
 msgid "Updating running applications"
 msgstr "Atnaujinamos veikiančios programos"
 
 #. TRANSLATORS: transaction state, we are checking executable files currently
 #. in use
-#: ../lib/packagekit-glib2/pk-console-shared.c:400
+#: ../lib/packagekit-glib2/pk-console-shared.c:435
 msgid "Checking applications in use"
 msgstr "Tikrinamos naudojamos programos"
 
 #. TRANSLATORS: transaction state, we are checking for libraries currently in
 #. use
-#: ../lib/packagekit-glib2/pk-console-shared.c:404
+#: ../lib/packagekit-glib2/pk-console-shared.c:439
 msgid "Checking libraries in use"
 msgstr "Tikrinamos naudojamos bibliotekos"
 
 #. TRANSLATORS: transaction state, we are copying package files before or
 #. after the transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:408
+#: ../lib/packagekit-glib2/pk-console-shared.c:443
 msgid "Copying files"
 msgstr "Kopijuojami failai"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:426
+#: ../lib/packagekit-glib2/pk-console-shared.c:461
 msgid "Trivial"
 msgstr "Kasdienis"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:430
+#: ../lib/packagekit-glib2/pk-console-shared.c:465
 msgid "Normal"
 msgstr "Normalus"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:434
+#: ../lib/packagekit-glib2/pk-console-shared.c:469
 msgid "Important"
 msgstr "Svarbus"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:438
+#: ../lib/packagekit-glib2/pk-console-shared.c:473
 msgid "Security"
 msgstr "Saugumo"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:442
+#: ../lib/packagekit-glib2/pk-console-shared.c:477
 msgid "Bug fix "
 msgstr "Klaidos pataisymas"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:446
+#: ../lib/packagekit-glib2/pk-console-shared.c:481
 msgid "Enhancement"
 msgstr "Patobulinimas"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:450
+#: ../lib/packagekit-glib2/pk-console-shared.c:485
 msgid "Blocked"
 msgstr "Blokuotas"
 
 #. TRANSLATORS: The state of a package
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:455
-#: ../lib/packagekit-glib2/pk-console-shared.c:528
+#: ../lib/packagekit-glib2/pk-console-shared.c:490
+#: ../lib/packagekit-glib2/pk-console-shared.c:563
 msgid "Installed"
 msgstr "Įdiegtas"
 
 #. TRANSLATORS: The state of a package, i.e. not installed
-#: ../lib/packagekit-glib2/pk-console-shared.c:460
+#: ../lib/packagekit-glib2/pk-console-shared.c:495
 msgid "Available"
 msgstr "Prieinamas"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:478
+#: ../lib/packagekit-glib2/pk-console-shared.c:513
 msgid "Downloading"
 msgstr "Atsiunčiamas"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:482
+#: ../lib/packagekit-glib2/pk-console-shared.c:517
 msgid "Updating"
 msgstr "Atnaujinamas"
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:486
-#: ../lib/packagekit-glib2/pk-console-shared.c:606
+#: ../lib/packagekit-glib2/pk-console-shared.c:521
+#: ../lib/packagekit-glib2/pk-console-shared.c:641
 msgid "Installing"
 msgstr "Diegiamas"
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:490
-#: ../lib/packagekit-glib2/pk-console-shared.c:602
+#: ../lib/packagekit-glib2/pk-console-shared.c:525
+#: ../lib/packagekit-glib2/pk-console-shared.c:637
 msgid "Removing"
 msgstr "Å alinamas"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:494
+#: ../lib/packagekit-glib2/pk-console-shared.c:529
 msgid "Cleaning up"
 msgstr "IÅ¡valomas"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:498
+#: ../lib/packagekit-glib2/pk-console-shared.c:533
 msgid "Obsoleting"
 msgstr "Žymimas pasenusiu"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:502
+#: ../lib/packagekit-glib2/pk-console-shared.c:537
 msgid "Reinstalling"
 msgstr "Diegiamas iš naujo"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:520
+#: ../lib/packagekit-glib2/pk-console-shared.c:555
 msgid "Downloaded"
 msgstr "Atsiųstas"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:532
+#: ../lib/packagekit-glib2/pk-console-shared.c:567
 msgid "Removed"
 msgstr "Pašalintas"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:536
+#: ../lib/packagekit-glib2/pk-console-shared.c:571
 msgid "Cleaned up"
 msgstr "IÅ¡valytas"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:540
+#: ../lib/packagekit-glib2/pk-console-shared.c:575
 msgid "Obsoleted"
 msgstr "Pasenęs"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:544
+#: ../lib/packagekit-glib2/pk-console-shared.c:579
 msgid "Reinstalled"
 msgstr "Įdiegtas iš naujo"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:562
+#: ../lib/packagekit-glib2/pk-console-shared.c:597
 msgid "Unknown role type"
 msgstr "Nežinomas vaidmens tipas"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:566
+#: ../lib/packagekit-glib2/pk-console-shared.c:601
 msgid "Getting dependencies"
 msgstr "Gaunamos priklausomybÄ—s"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:570
+#: ../lib/packagekit-glib2/pk-console-shared.c:605
 msgid "Getting update details"
 msgstr "Gaunama atnaujinimo informacija"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:574
+#: ../lib/packagekit-glib2/pk-console-shared.c:609
 msgid "Getting details"
 msgstr "Gaunama informacija"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:578
+#: ../lib/packagekit-glib2/pk-console-shared.c:613
 msgid "Getting requires"
 msgstr "Gaunami reikalavimai"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:582
+#: ../lib/packagekit-glib2/pk-console-shared.c:617
 msgid "Getting updates"
 msgstr "Gaunami atnaujinimai"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:586
+#: ../lib/packagekit-glib2/pk-console-shared.c:621
 msgid "Searching by details"
 msgstr "Ieškoma pagal informaciją"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:590
+#: ../lib/packagekit-glib2/pk-console-shared.c:625
 msgid "Searching by file"
 msgstr "Ieškoma pagal failą"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:594
+#: ../lib/packagekit-glib2/pk-console-shared.c:629
 msgid "Searching groups"
 msgstr "Ieškoma grupių"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:598
+#: ../lib/packagekit-glib2/pk-console-shared.c:633
 msgid "Searching by name"
 msgstr "Ieškoma pagal pavadinimą"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:610
+#: ../lib/packagekit-glib2/pk-console-shared.c:645
 msgid "Installing files"
 msgstr "Diegiami failai"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:614
+#: ../lib/packagekit-glib2/pk-console-shared.c:649
 msgid "Refreshing cache"
 msgstr "Atnaujinamas podÄ—lis"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:618
+#: ../lib/packagekit-glib2/pk-console-shared.c:653
 msgid "Updating packages"
 msgstr "Atnaujinami paketai"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:622
+#: ../lib/packagekit-glib2/pk-console-shared.c:657
 msgid "Updating system"
 msgstr "Atnaujinama sistema"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:626
+#: ../lib/packagekit-glib2/pk-console-shared.c:661
 msgid "Canceling"
 msgstr "Atšaukiama"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:634
+#: ../lib/packagekit-glib2/pk-console-shared.c:669
 msgid "Getting repositories"
 msgstr "Gaunamos saugyklos"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:638
+#: ../lib/packagekit-glib2/pk-console-shared.c:673
 msgid "Enabling repository"
 msgstr "Įjungiamos saugyklos"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:642
+#: ../lib/packagekit-glib2/pk-console-shared.c:677
 msgid "Setting data"
 msgstr "Nustatomi duomenys"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:646
+#: ../lib/packagekit-glib2/pk-console-shared.c:681
 msgid "Resolving"
 msgstr "Nustatoma"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:650
+#: ../lib/packagekit-glib2/pk-console-shared.c:685
 msgid "Getting file list"
 msgstr "Gaunamas failų sąrašas"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:654
+#: ../lib/packagekit-glib2/pk-console-shared.c:689
 msgid "Getting provides"
 msgstr "Gaunami suteikiami paketai"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:658
+#: ../lib/packagekit-glib2/pk-console-shared.c:693
 msgid "Installing signature"
 msgstr "Diegiamas parašas"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:662
+#: ../lib/packagekit-glib2/pk-console-shared.c:697
 msgid "Getting packages"
 msgstr "Gaunami paketai"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:666
+#: ../lib/packagekit-glib2/pk-console-shared.c:701
 msgid "Accepting EULA"
 msgstr "Sutinkama su licencija"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:674
+#: ../lib/packagekit-glib2/pk-console-shared.c:709
 msgid "Getting upgrades"
 msgstr "Gaunami atnaujinimai"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:678
+#: ../lib/packagekit-glib2/pk-console-shared.c:713
 msgid "Getting categories"
 msgstr "Gaunamos kategorijos"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:682
+#: ../lib/packagekit-glib2/pk-console-shared.c:717
 msgid "Getting transactions"
 msgstr "Gaunamos operacijos"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:686
-#: ../lib/packagekit-glib2/pk-console-shared.c:690
+#: ../lib/packagekit-glib2/pk-console-shared.c:721
+#: ../lib/packagekit-glib2/pk-console-shared.c:725
 msgid "Simulating install"
 msgstr "Imituojamas diegimas"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:694
+#: ../lib/packagekit-glib2/pk-console-shared.c:729
 msgid "Simulating remove"
 msgstr "Imituojamas Å¡alinimas"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:698
+#: ../lib/packagekit-glib2/pk-console-shared.c:733
 msgid "Simulating update"
 msgstr "Imituojamas atnaujinimas"
 
@@ -1683,12 +1682,12 @@ msgstr "Nepasirašyta programinė įranga nebus diegiama."
 #. recognised
 #: ../lib/packagekit-glib2/pk-task-text.c:121
 msgid "Software source signature required"
-msgstr "Reikia programinės įrangos šaltinio parašo"
+msgstr "Reikia programinės įrangos saugyklos parašo"
 
 #. TRANSLATORS: the package repository name
 #: ../lib/packagekit-glib2/pk-task-text.c:127
 msgid "Software source name"
-msgstr "Programinės įrangos šaltinio pavadinimas"
+msgstr "Programinės įrangos saugyklos pavadinimas"
 
 #. TRANSLATORS: the key URL
 #: ../lib/packagekit-glib2/pk-task-text.c:130
@@ -1799,15 +1798,21 @@ msgstr "Šie paketai turi būti įdiegti iš naujo:"
 #. TRANSLATORS: When processing, we might have to downgrade other dependencies
 #: ../lib/packagekit-glib2/pk-task-text.c:320
 msgid "The following packages have to be downgraded:"
-msgstr "Šių paketų turi būti grąžintos senesnės versijos:"
+msgstr "Šie paketai turi būti pasendinti į senesnes versijas:"
+
+#. TRANSLATORS: When processing, untrusted and non-verified packages may be
+#. encountered
+#: ../lib/packagekit-glib2/pk-task-text.c:325
+msgid "The following packages are untrusted:"
+msgstr "Å ie paketai nÄ—ra patikimi:"
 
 #. TRANSLATORS: ask the user if the proposed changes are okay
-#: ../lib/packagekit-glib2/pk-task-text.c:380
+#: ../lib/packagekit-glib2/pk-task-text.c:385
 msgid "Proceed with changes?"
 msgstr "Atlikti pakeitimus?"
 
 #. TRANSLATORS: tell the user we didn't do anything
-#: ../lib/packagekit-glib2/pk-task-text.c:385
+#: ../lib/packagekit-glib2/pk-task-text.c:390
 msgid "The transaction did not proceed."
 msgstr "Operacija neprasidÄ—jo."
 
@@ -1834,7 +1839,7 @@ msgstr ""
 #: ../policy/org.freedesktop.packagekit.policy.in.h:10
 msgid "Authentication is required to change software source parameters"
 msgstr ""
-"Reikia patvirtinti tapatybę, norint pakeisti programinės įrangos šaltinių "
+"Reikia patvirtinti tapatybę, norint pakeisti programinės įrangos saugyklų "
 "parametrus"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:11
@@ -1863,7 +1868,7 @@ msgstr "Reikia patvirtinti tapatybę, norint įdiegti nepatikimą paketą"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:15
 msgid "Authentication is required to refresh the system sources"
-msgstr "Reikia patvirtinti tapatybÄ™, norint atnaujinti sistemos Å¡altinius"
+msgstr "Reikia patvirtinti tapatybÄ™, norint atnaujinti sistemos saugyklas"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:16
 msgid "Authentication is required to reload the device with a new driver"
@@ -1893,7 +1898,7 @@ msgstr "Reikia patvirtinti tapatybÄ™, norint atnaujinti paketus"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:21
 msgid "Authentication is required to upgrade the operating system"
-msgstr ""
+msgstr "OperacinÄ—s sistemos atnaujinimui reikia patvirtinti tapatybÄ™"
 
 #. SECURITY:
 #. - Normal users are allowed to cancel their own task without
@@ -1921,7 +1926,7 @@ msgstr "Pakeisti paketų diegimo vietą"
 #. 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:40
 msgid "Change software source parameters"
-msgstr "Pakeisti programinės įrangos šaltinių parametrus"
+msgstr "Pakeisti programinės įrangos saugyklų parametrus"
 
 #. SECURITY:
 #. - Normal users do not need authentication to install signed packages
@@ -1949,7 +1954,7 @@ msgstr "Įdiegti nepatikimą vietinį failą"
 #. 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:59
 msgid "Refresh system sources"
-msgstr "Atnaujinti sistemos Å¡altinius"
+msgstr "Atnaujinti sistemos saugyklas"
 
 #. SECURITY:
 #. - Normal users require admin authentication to rebind a driver
@@ -2020,98 +2025,70 @@ msgstr "Atnaujinti paketus"
 #. 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:109
 msgid "Upgrade System"
-msgstr ""
-
-#. TRANSLATORS: failed due to DBus security
-#: ../src/pk-main.c:91
-msgid "Startup failed due to security policies on this machine."
-msgstr "Nepavyko paleisti dÄ—l Å¡io kompiuterio sistemos saugumo politikos."
-
-#. TRANSLATORS: only two ways this can fail...
-#: ../src/pk-main.c:93
-msgid "This can happen for two reasons:"
-msgstr "Taip gali nutikti dėl dviejų priežasčių:"
-
-#. TRANSLATORS: only allowed to be owned by root
-#: ../src/pk-main.c:95
-msgid "The correct user is not launching the executable (usually root)"
-msgstr "Programą paleidžia ne tinkamas naudotojas (paprastai – root)"
-
-#. TRANSLATORS: or we are installed in a prefix
-#: ../src/pk-main.c:97
-msgid ""
-"The org.freedesktop.PackageKit.conf file is not installed in the system "
-"directory:"
-msgstr "Failas org.freedesktop.PackageKit.conf neįdiegtas sistemos kataloge:"
+msgstr "Naujovinti sistemÄ…"
 
 #. TRANSLATORS: a backend is the system package tool, e.g. yum, apt
-#: ../src/pk-main.c:223
+#: ../src/pk-main.c:149
 msgid "Packaging backend to use, e.g. dummy"
 msgstr "Naudotina pakavimo posistemÄ—, pvz., fiktyvi"
 
 #. TRANSLATORS: if we should run in the background
-#: ../src/pk-main.c:226
+#: ../src/pk-main.c:152
 msgid "Daemonize and detach from the terminal"
 msgstr "Paversti tarnyba ir atsisieti nuo terminalo"
 
 #. TRANSLATORS: if we should not monitor how long we are inactive for
-#: ../src/pk-main.c:229
+#: ../src/pk-main.c:155
 msgid "Disable the idle timer"
 msgstr "Išjungti laisvo laiko matuoklį"
 
 #. TRANSLATORS: show version
-#: ../src/pk-main.c:232
+#: ../src/pk-main.c:158
 msgid "Show version and exit"
 msgstr "Parodyti versiją ir išeiti"
 
 #. TRANSLATORS: exit after we've started up, used for user profiling
-#: ../src/pk-main.c:235
+#: ../src/pk-main.c:161
 msgid "Exit after a small delay"
 msgstr "IÅ¡eiti Å¡iek tiek palaukus"
 
 #. TRANSLATORS: exit straight away, used for automatic profiling
-#: ../src/pk-main.c:238
+#: ../src/pk-main.c:164
 msgid "Exit after the engine has loaded"
 msgstr "Išeiti įkėlus modulį"
 
+#. TRANSLATORS: don't unset environment variables, used for debugging
+#: ../src/pk-main.c:167
+msgid "Don't clear environment on startup"
+msgstr ""
+
 #. TRANSLATORS: describing the service that is running
-#: ../src/pk-main.c:253
+#: ../src/pk-main.c:179
 msgid "PackageKit service"
 msgstr "PackageKit tarnyba"
 
-#. TRANSLATORS: fatal error, dbus is not running
-#: ../src/pk-main.c:298
-msgid "Cannot connect to the system bus"
-msgstr "Nepavyko prisijungti prie sistemos magistralÄ—s"
-
-#: ../src/pk-main.c:344
+#: ../src/pk-main.c:253
 msgid "Failed to load any of the specified backends:"
 msgstr ""
 
-#. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error
-#. follows
-#: ../src/pk-main.c:358
-msgid "Error trying to start:"
-msgstr "Klaida bandant paleisti:"
-
 #. TRANSLATORS: is not GPG signed
-#: ../src/pk-transaction.c:2611 ../src/pk-transaction.c:2618
+#: ../src/pk-transaction.c:2696
 msgid "The software is not from a trusted source."
-msgstr "Ši programinė įranga nėra iš patikimo šaltinio."
+msgstr "Ši programinė įranga nėra iš patikimos saugyklos."
 
-#: ../src/pk-transaction.c:2623
+#: ../src/pk-transaction.c:2704
 msgid "Do not update this package unless you are sure it is safe to do so."
 msgstr "Neatnaujinkite Å¡io paketo, nebent esate tikri, kad tai saugu."
 
-#: ../src/pk-transaction.c:2624
+#: ../src/pk-transaction.c:2705
 msgid "Do not update these packages unless you are sure it is safe to do so."
 msgstr "Neatnaujinkite šių paketo, nebent esate tikri, kad tai saugu."
 
-#: ../src/pk-transaction.c:2634
+#: ../src/pk-transaction.c:2715
 msgid "Do not install this package unless you are sure it is safe to do so."
 msgstr "Neįdiekite šio paketo, nebent esate tikri, kad tai saugu."
 
-#: ../src/pk-transaction.c:2635
+#: ../src/pk-transaction.c:2716
 msgid "Do not install these packages unless you are sure it is safe to do so."
 msgstr "Neįdiekite šių paketų, nebent esate tikri, kad tai saugu."
 
diff --git a/po/lv.po b/po/lv.po
new file mode 100644
index 0000000..58d1bce
--- /dev/null
+++ b/po/lv.po
@@ -0,0 +1,2092 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+# RÅ«dofls Mazurs <rudolfs.mazurs at gmail.com>, 2011.
+#   <rudolfs.mazurs at gmail.com>, 2011.
+msgid ""
+msgstr ""
+"Project-Id-Version: PackageKit\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-11-10 19:50+0000\n"
+"PO-Revision-Date: 2011-11-10 19:50+0000\n"
+"Last-Translator: Richard Hughes <richard at hughsie.com>\n"
+"Language-Team: Latvian (http://www.transifex.net/projects/p/freedesktop/team/lv/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: lv\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2)\n"
+
+#. TRANSLATORS: this is an atomic transaction
+#. TRANSLATORS: the role is the point of the transaction, e.g. update-system
+#: ../client/pk-console.c:174 ../client/pk-console.c:596
+msgid "Transaction"
+msgstr "Transakcija"
+
+#. TRANSLATORS: this is the time the transaction was started in system
+#. timezone
+#: ../client/pk-console.c:176
+msgid "System time"
+msgstr "Sistēmas laiks"
+
+#. TRANSLATORS: this is if the transaction succeeded or not
+#: ../client/pk-console.c:178
+msgid "Succeeded"
+msgstr "Izdevās"
+
+#: ../client/pk-console.c:178
+msgid "True"
+msgstr "Patiess"
+
+#: ../client/pk-console.c:178
+msgid "False"
+msgstr "Aplams"
+
+#. TRANSLATORS: this is the transactions role, e.g. "update-system"
+#: ../client/pk-console.c:180
+msgid "Role"
+msgstr "Loma"
+
+#. TRANSLATORS: this is The duration of the transaction
+#: ../client/pk-console.c:185
+msgid "Duration"
+msgstr "Ilgums"
+
+#: ../client/pk-console.c:185
+msgid "(seconds)"
+msgstr "(sekundes)"
+
+#. TRANSLATORS: this is The command line used to do the action
+#: ../client/pk-console.c:189
+msgid "Command line"
+msgstr "Komandrinda"
+
+#. TRANSLATORS: this is the user ID of the user that started the action
+#: ../client/pk-console.c:191
+msgid "User ID"
+msgstr "Lietotāja ID"
+
+#. TRANSLATORS: this is the username, e.g. hughsie
+#: ../client/pk-console.c:198
+msgid "Username"
+msgstr "Lietotājvārds"
+
+#. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
+#: ../client/pk-console.c:202
+msgid "Real name"
+msgstr "Īstais vārds"
+
+#: ../client/pk-console.c:210
+msgid "Affected packages:"
+msgstr "Ietekmētās pakotnes:"
+
+#: ../client/pk-console.c:212
+msgid "Affected packages: None"
+msgstr "Ietekmētās pakotnes: neviena"
+
+#. TRANSLATORS: this is the distro, e.g. Fedora 10
+#: ../client/pk-console.c:247
+msgid "Distribution"
+msgstr "Distribūcija"
+
+#. TRANSLATORS: this is type of update, stable or testing
+#: ../client/pk-console.c:249
+msgid "Type"
+msgstr "Tips"
+
+#. TRANSLATORS: this is any summary text describing the upgrade
+#. TRANSLATORS: this is the summary of the group
+#: ../client/pk-console.c:251 ../client/pk-console.c:290
+msgid "Summary"
+msgstr "Kopsavilkums"
+
+#. TRANSLATORS: this is the group category name
+#: ../client/pk-console.c:279
+msgid "Category"
+msgstr "Kategorija"
+
+#. TRANSLATORS: this is group identifier
+#: ../client/pk-console.c:281
+msgid "ID"
+msgstr "ID"
+
+#. TRANSLATORS: this is the parent group
+#: ../client/pk-console.c:284
+msgid "Parent"
+msgstr "Vecāks"
+
+#. TRANSLATORS: this is the name of the parent group
+#: ../client/pk-console.c:287
+msgid "Name"
+msgstr "Nosaukums"
+
+#. TRANSLATORS: this is preferred icon for the group
+#: ../client/pk-console.c:293
+msgid "Icon"
+msgstr "Ikona"
+
+#. TRANSLATORS: this is a header for the package that can be updated
+#: ../client/pk-console.c:339
+msgid "Details about the update:"
+msgstr "Sīkāka informācija par atjauninājumiem:"
+
+#. TRANSLATORS: details about the update, package name and version
+#. TRANSLATORS: the package that is being processed
+#. TRANSLATORS: the package that is not signed by a known key
+#. TRANSLATORS: the package name that was trying to be installed
+#: ../client/pk-console.c:345 ../client/pk-console.c:615
+#: ../lib/packagekit-glib2/pk-task-text.c:124
+#: ../lib/packagekit-glib2/pk-task-text.c:206
+msgid "Package"
+msgstr "Pakotne"
+
+#. TRANSLATORS: details about the update, any packages that this update
+#. updates
+#: ../client/pk-console.c:348
+msgid "Updates"
+msgstr "Atjauninājumi"
+
+#. TRANSLATORS: details about the update, any packages that this update
+#. obsoletes
+#: ../client/pk-console.c:352
+msgid "Obsoletes"
+msgstr "Novecojušie"
+
+#. TRANSLATORS: details about the update, the vendor URLs
+#. TRANSLATORS: the vendor (e.g. vmware) that is providing the EULA
+#: ../client/pk-console.c:356 ../lib/packagekit-glib2/pk-task-text.c:209
+msgid "Vendor"
+msgstr "Ražotājs"
+
+#. TRANSLATORS: details about the update, the bugzilla URLs
+#: ../client/pk-console.c:360
+msgid "Bugzilla"
+msgstr "Bugzilla"
+
+#. TRANSLATORS: details about the update, the CVE URLs
+#: ../client/pk-console.c:364
+msgid "CVE"
+msgstr "CVE"
+
+#. TRANSLATORS: details about the update, if the package requires a restart
+#: ../client/pk-console.c:368
+msgid "Restart"
+msgstr "Pārstartēt"
+
+#. TRANSLATORS: details about the update, any description of the update
+#: ../client/pk-console.c:372
+msgid "Update text"
+msgstr "Atjaunināt nākošo"
+
+#. TRANSLATORS: details about the update, the changelog for the package
+#: ../client/pk-console.c:376
+msgid "Changes"
+msgstr "Izmaiņas"
+
+#. TRANSLATORS: details about the update, the ongoing state of the update
+#: ../client/pk-console.c:380
+msgid "State"
+msgstr "Stāvoklis"
+
+#. TRANSLATORS: details about the update, date the update was issued
+#: ../client/pk-console.c:384
+msgid "Issued"
+msgstr "Izdots"
+
+#. TRANSLATORS: details about the update, date the update was updated
+#. TRANSLATORS: The action of the package, in past tense
+#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:559
+msgid "Updated"
+msgstr "Atjaunināts"
+
+#. TRANSLATORS: if the repo is enabled
+#: ../client/pk-console.c:424
+msgid "Enabled"
+msgstr "Aktivēts"
+
+#. TRANSLATORS: if the repo is disabled
+#: ../client/pk-console.c:427
+msgid "Disabled"
+msgstr "Deaktivēts"
+
+#. TRANSLATORS: a package requires the system to be restarted
+#: ../client/pk-console.c:459
+msgid "System restart required by:"
+msgstr "Sistēmas pārstartēšanu pieprasa:"
+
+#. TRANSLATORS: a package requires the session to be restarted
+#: ../client/pk-console.c:462
+msgid "Session restart required:"
+msgstr "Sesijas pārstartēšanu pieprasa:"
+
+#. TRANSLATORS: a package requires the system to be restarted due to a
+#. security update
+#: ../client/pk-console.c:465
+msgid "System restart (security) required by:"
+msgstr "Sistēmas pārstartēšanu (drošības dēļ) pieprasa:"
+
+#. TRANSLATORS: a package requires the session to be restarted due to a
+#. security update
+#: ../client/pk-console.c:468
+msgid "Session restart (security) required:"
+msgstr "Sesijas pārstartēšanu (drošības dēļ) pieprasa:"
+
+#. TRANSLATORS: a package requires the application to be restarted
+#: ../client/pk-console.c:471
+msgid "Application restart required by:"
+msgstr "Lietotnes pārstartēšanu pieprasa:"
+
+#. TRANSLATORS: This a list of details about the package
+#: ../client/pk-console.c:506
+msgid "Package description"
+msgstr "Pakotnes apraksts"
+
+#. TRANSLATORS: This a message (like a little note that may be of interest)
+#. from the transaction
+#: ../client/pk-console.c:537
+msgid "Message:"
+msgstr "Ziņojums:"
+
+#. TRANSLATORS: This where the package has no files
+#: ../client/pk-console.c:558
+msgid "No files"
+msgstr "Nav failu"
+
+#. TRANSLATORS: This a list files contained in the package
+#: ../client/pk-console.c:563
+msgid "Package files"
+msgstr "Pakotnes faili"
+
+#. TRANSLATORS: the percentage complete of the transaction
+#: ../client/pk-console.c:631
+msgid "Percentage"
+msgstr "Procenti"
+
+#. TRANSLATORS: the status of the transaction (e.g. downloading)
+#: ../client/pk-console.c:649
+msgid "Status"
+msgstr "Statuss"
+
+#. TRANSLATORS: the results from the transaction
+#: ../client/pk-console.c:678
+msgid "Results:"
+msgstr "Rezultāts:"
+
+#. TRANSLATORS: we failed to get any results, which is pretty fatal in my book
+#: ../client/pk-console.c:685
+msgid "Fatal error"
+msgstr "Fatāla kļūda"
+
+#. TRANSLATORS: the user asked to update everything, but there is nothing that
+#. can be updated
+#: ../client/pk-console.c:701
+msgid "There are no packages to update."
+msgstr "Nav pakotņu, ko atjaunināt."
+
+#. TRANSLATORS: the transaction failed in a way we could not expect
+#: ../client/pk-console.c:704
+#: ../contrib/command-not-found/pk-command-not-found.c:634
+msgid "The transaction failed"
+msgstr "Transakcija neizdevās"
+
+#. TRANSLATORS: print a message when there are no updates
+#: ../client/pk-console.c:733
+msgid "There are no updates available at this time."
+msgstr "Šobrīd nav pieejamu atjauninājumu."
+
+#: ../client/pk-console.c:756
+msgid "There are no upgrades available at this time."
+msgstr "Šobrīd nav pieejamu uzlabojumu."
+
+#. TRANSLATORS: a package needs to restart their system
+#: ../client/pk-console.c:823
+msgid "Please restart the computer to complete the update."
+msgstr "Lūdzu, pārstartējiet datoru, lai pabeigtu atjaunināšanu."
+
+#. TRANSLATORS: a package needs to restart the session
+#: ../client/pk-console.c:826
+msgid "Please logout and login to complete the update."
+msgstr "Lūdzu, izrakstieties, lai pabeigtu atjaunināšanu."
+
+#. TRANSLATORS: a package needs to restart their system (due to security)
+#: ../client/pk-console.c:829
+msgid ""
+"Please restart the computer to complete the update as important security "
+"updates have been installed."
+msgstr ""
+"Lūdzu, pārstartējiet datoru, lai pabeigtu atjaunināšanu, jo ir uzinstalēti "
+"svarīgi drošības atjauninājumi."
+
+#. TRANSLATORS: a package needs to restart the session (due to security)
+#: ../client/pk-console.c:832
+msgid ""
+"Please logout and login to complete the update as important security updates"
+" have been installed."
+msgstr ""
+"Lūdzu, izrakstieties, lai pabeigtu atjaunināšanu, jo ir uzinstalēti svarīgi "
+"drošības atjauninājumi."
+
+#. TRANSLATORS: The user used 'pkcon install dave.rpm' rather than 'pkcon
+#. install-local dave.rpm'
+#: ../client/pk-console.c:858
+#, c-format
+msgid ""
+"Expected package name, actually got file. Try using 'pkcon install-local %s'"
+" instead."
+msgstr ""
+"Gaidīja pakotnes nosaukumu, faktiski saņēma failu. Mēģiniet tā vietā "
+"izmantot 'pkcon install-local %s'."
+
+#. TRANSLATORS: There was an error getting the list of files for the package.
+#. The detailed error follows
+#: ../client/pk-console.c:871
+#, c-format
+msgid "This tool could not find any available package: %s"
+msgstr "Šis rīks nevarēju atrast nevienu pieejamu pakotni: %s"
+
+#. TRANSLATORS: There was an error getting the list of files for the package.
+#. The detailed error follows
+#: ../client/pk-console.c:899
+#, c-format
+msgid "This tool could not find the installed package: %s"
+msgstr "Šis rīks nevarēju atrast nevienu uzinstalētu pakotni: %s"
+
+#. TRANSLATORS: There was an error getting the list of files for the package.
+#. The detailed error follows
+#: ../client/pk-console.c:927 ../client/pk-console.c:955
+#, c-format
+msgid "This tool could not find the package: %s"
+msgstr "Šis rīks nevarēju atrast nevienu pakotni: %s"
+
+#. TRANSLATORS: There was an error getting the list of files for the package.
+#. The detailed error follows
+#. TRANSLATORS: There was an error getting the dependencies for the package.
+#. The detailed error follows
+#. TRANSLATORS: There was an error getting the details about the package. The
+#. detailed error follows
+#. TRANSLATORS: The package name was not found in any software sources. The
+#. detailed error follows
+#: ../client/pk-console.c:983 ../client/pk-console.c:1011
+#: ../client/pk-console.c:1039 ../client/pk-console.c:1067
+#: ../client/pk-console.c:1095
+#, c-format
+msgid "This tool could not find all the packages: %s"
+msgstr "Šis rīks nevarēja atrast visas pakotnes: %s"
+
+#. TRANSLATORS: This is when the daemon crashed, and we are up shit creek
+#. without a paddle
+#: ../client/pk-console.c:1124
+msgid "The daemon crashed mid-transaction!"
+msgstr "Dēmons avarēja transakcijas laikā!"
+
+#. TRANSLATORS: This is the header to the --help menu
+#: ../client/pk-console.c:1158
+msgid "PackageKit Console Interface"
+msgstr "PackageKit konsoles saskarne"
+
+#. these are commands we can use with pkcon
+#: ../client/pk-console.c:1160
+msgid "Subcommands:"
+msgstr "Apakškomandas:"
+
+#. TRANSLATORS: we keep a database updated with the time that an action was
+#. last executed
+#: ../client/pk-console.c:1240
+msgid "Failed to get the time since this action was last completed"
+msgstr "Neizdevās iegūt laiku, kopš šī darbība tika pēdējo reizi izpildīta"
+
+#. TRANSLATORS: command line argument, just show the version string
+#: ../client/pk-console.c:1282 ../client/pk-monitor.c:371
+msgid "Show the program version and exit"
+msgstr "Rādīt programmas versiju un iziet"
+
+#. TRANSLATORS: command line argument, use a filter to narrow down results
+#: ../client/pk-console.c:1285
+msgid "Set the filter, e.g. installed"
+msgstr "Iestatīt filtru, piemēram, 'uzinstalēts'"
+
+#. TRANSLATORS: command line argument, use a non-standard install prefix
+#: ../client/pk-console.c:1288
+msgid "Set the install root, e.g. '/' or '/mnt/ltsp'"
+msgstr "Iestatiet instalēšanas sakni, piem. '/' vai '/mnt/ltsp'"
+
+#. TRANSLATORS: command line argument, work asynchronously
+#: ../client/pk-console.c:1291
+msgid "Exit without waiting for actions to complete"
+msgstr "Iziet negaidot darbību pabeigšanu"
+
+#. command line argument, do we ask questions
+#: ../client/pk-console.c:1294
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:525
+msgid "Install the packages without asking for confirmation"
+msgstr "Instalējiet pakotnes, neprasot apstiprināšanu"
+
+#. TRANSLATORS: command line argument, this command is not a priority
+#: ../client/pk-console.c:1297
+msgid "Run the command using idle network bandwidth and also using less power"
+msgstr ""
+"Izpildīt komandu, izmantojot dīkstāves tīkla platjoslu, kā arī izmantojot "
+"mazāk enerģijas"
+
+#. TRANSLATORS: command line argument, just output without fancy formatting
+#: ../client/pk-console.c:1300
+msgid ""
+"Print to screen a machine readable output, rather than using animated "
+"widgets"
+msgstr "Uz ekrāna drukā mašīnlasāmu izvad, nevis izmanto animētas logdaļas"
+
+#. TRANSLATORS: command line argument, just output without fancy formatting
+#: ../client/pk-console.c:1303
+msgid "The maximum metadata cache age. Use -1 for 'never'."
+msgstr ""
+"Maksimālais metadatu pieglabāšanas laiks. Lietojiet -1 opcijai 'never' "
+"(nekad)."
+
+#. TRANSLATORS: command line argument, --help
+#: ../client/pk-console.c:1306
+msgid "Show help options."
+msgstr "Rādīt palīdzības opcijas."
+
+#. TRANSLATORS: we failed to contact the daemon
+#: ../client/pk-console.c:1336
+msgid "Failed to parse command line"
+msgstr "Neizdevās apstrādāt komandrindu"
+
+#. TRANSLATORS: we failed to contact the daemon
+#: ../client/pk-console.c:1346
+msgid "Failed to contact PackageKit"
+msgstr "Neizdevās sazināties ar PackageKit"
+
+#. TRANSLATORS: The user specified an incorrect filter
+#: ../client/pk-console.c:1399
+msgid "The proxy could not be set"
+msgstr "Nevarēja iestatīt starpnieku"
+
+#. TRANSLATORS: The user specified an incorrect filter
+#: ../client/pk-console.c:1411
+msgid "The install root could not be set"
+msgstr "Nevarēja iestatīt instalēšanas sakni"
+
+#. TRANSLATORS: The user specified an incorrect filter
+#: ../client/pk-console.c:1423
+msgid "The filter specified was invalid"
+msgstr "Norādītais filtrs nav derīgs"
+
+#. TRANSLATORS: a search type can be name, details, file, etc
+#: ../client/pk-console.c:1442
+msgid "A search type is required, e.g. name"
+msgstr "Trūkst meklēšanas tips, piemēram, nosaukums"
+
+#. TRANSLATORS: the user needs to provide a search term
+#: ../client/pk-console.c:1449 ../client/pk-console.c:1461
+#: ../client/pk-console.c:1473 ../client/pk-console.c:1485
+msgid "A search term is required"
+msgstr "Vajadzīga meklēšanas frāze"
+
+#. TRANSLATORS: the search type was provided, but invalid
+#: ../client/pk-console.c:1495
+msgid "Invalid search type"
+msgstr "Nederīgs meklēšanas tips"
+
+#. TRANSLATORS: the user did not specify what they wanted to install
+#: ../client/pk-console.c:1501
+msgid "A package name to install is required"
+msgstr "Jānorāda instalējamās pakotnes nosaukums"
+
+#. TRANSLATORS: the user did not specify what they wanted to install
+#: ../client/pk-console.c:1510
+msgid "A filename to install is required"
+msgstr "Jānorāda instalējamā faila nosaukums"
+
+#. TRANSLATORS: geeky error, 99.9999% of users won't see this
+#: ../client/pk-console.c:1521
+msgid "A type, key_id and package_id are required"
+msgstr "Nepieciešams tips, key_id un package_id"
+
+#. TRANSLATORS: the user did not specify what they wanted to remove
+#: ../client/pk-console.c:1532
+msgid "A package name to remove is required"
+msgstr "Jānorāda noņemamās pakotnes nosaukums"
+
+#. TRANSLATORS: the user did not specify anything about what to download or
+#. where
+#: ../client/pk-console.c:1541
+msgid "A destination directory and the package names to download are required"
+msgstr "Jānorāda mērķa mape un lejupielādējamo pakotņu nosaukumi"
+
+#. TRANSLATORS: the directory does not exist, so we can't continue
+#: ../client/pk-console.c:1548
+msgid "Directory not found"
+msgstr "Mape nav atrasta"
+
+#. TRANSLATORS: geeky error, 99.9999% of users won't see this
+#: ../client/pk-console.c:1557
+msgid "A licence identifier (eula-id) is required"
+msgstr "Nepieciešams licences identifikators (eula-id)"
+
+#. TRANSLATORS: geeky error, 99.9999% of users won't see this
+#: ../client/pk-console.c:1568
+msgid "A transaction identifier (tid) is required"
+msgstr "Nepieciešams transakcijas identifikators (tid)"
+
+#. TRANSLATORS: The user did not specify a package name
+#: ../client/pk-console.c:1589
+msgid "A package name to resolve is required"
+msgstr "Jānorāda atrodamās pakotnes nosaukums"
+
+#. TRANSLATORS: The user did not specify a repository (software source) name
+#: ../client/pk-console.c:1600 ../client/pk-console.c:1611
+msgid "A repository name is required"
+msgstr "Jānorāda krātuves nosaukums"
+
+#. TRANSLATORS: The user didn't provide any data
+#: ../client/pk-console.c:1622
+msgid "A repo name, parameter and value are required"
+msgstr "Nepieciešams krātuves nosaukums, parametri un vērtības"
+
+#. TRANSLATORS: The user didn't specify what action to use
+#: ../client/pk-console.c:1639
+msgid "An action, e.g. 'update-system' is required"
+msgstr "Nepieciešama darbība, piemēram, 'update-system'"
+
+#. TRANSLATORS: The user specified an invalid action
+#: ../client/pk-console.c:1646
+msgid "A correct role is required"
+msgstr "Nepieciešama pareiza loma"
+
+#. 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:1656 ../client/pk-console.c:1670
+#: ../client/pk-console.c:1679 ../client/pk-console.c:1699
+#: ../client/pk-console.c:1708 ../client/pk-generate-pack.c:314
+msgid "A package name is required"
+msgstr "Nepieciešams pakotnes nosaukums"
+
+#. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-
+#. decoder-mp3), the user didn't specify it
+#: ../client/pk-console.c:1688
+msgid "A package provide string is required"
+msgstr "Nepieciešama pakotnes nodrošinājuma virkne"
+
+#. TRANSLATORS: The user did not provide a distro name
+#: ../client/pk-console.c:1732
+msgid "A distribution name is required"
+msgstr "Jānorāda distribūcijas nosaukums"
+
+#. TRANSLATORS: The user did not provide an upgrade type
+#: ../client/pk-console.c:1738
+msgid "An upgrade type is required, e.g. 'minimal', 'default' or 'complete'"
+msgstr ""
+"Jānorāda uzlabošanas tips, piemēram, 'minimal', 'default' vai 'complete'"
+
+#. TRANSLATORS: The user tried to use an unsupported option on the command
+#. line
+#: ../client/pk-console.c:1788
+#, c-format
+msgid "Option '%s' is not supported"
+msgstr "Opcija '%s' nav norādīta"
+
+#. TRANSLATORS: Generic failure of what they asked to do
+#: ../client/pk-console.c:1798
+msgid "Command failed"
+msgstr "Komanda neizdevās"
+
+#. TRANSLATORS: we can exclude certain packages (glibc) when we know they'll
+#. exist on the target
+#: ../client/pk-generate-pack.c:253
+msgid "Set the file name of dependencies to be excluded"
+msgstr "Iestatiet izslēdzamo atkarību failu nosaukumus"
+
+#. TRANSLATORS: the output location
+#: ../client/pk-generate-pack.c:256
+msgid ""
+"The output file or directory (the current directory is used if omitted)"
+msgstr ""
+"Izvades fails vai mape (ja nav norādīts, tiks izmantota pašreizējā mape)"
+
+#. TRANSLATORS: put a list of packages in the pack
+#: ../client/pk-generate-pack.c:259
+msgid "The package to be put into the service pack"
+msgstr "Pakotnes, ko iekļaut servisa pakā"
+
+#. TRANSLATORS: put all pending updates in the pack
+#: ../client/pk-generate-pack.c:262
+msgid "Put all updates available in the service pack"
+msgstr "Ielikt visus pieejamos atjauninājumus servisa pakā"
+
+#. TRANSLATORS: This is when the user fails to supply the correct arguments
+#: ../client/pk-generate-pack.c:298
+msgid "Neither --package or --updates option selected."
+msgstr "Nav izvēlēta ne --package nedz --updates opcija."
+
+#. TRANSLATORS: This is when the user fails to supply just one argument
+#: ../client/pk-generate-pack.c:306
+msgid "Both options selected."
+msgstr "Abas opcijas ir izvēlētas."
+
+#. TRANSLATORS: This is when the user fails to supply the output
+#: ../client/pk-generate-pack.c:322
+msgid "A output directory or file name is required"
+msgstr "Jānorāda izvades mape vai faila nosaukums"
+
+#. TRANSLATORS: This is when the daemon is not-installed/broken and fails to
+#. startup
+#: ../client/pk-generate-pack.c:340
+msgid "The daemon failed to startup"
+msgstr "Dēmonam neizdevās startēties"
+
+#. 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:351 ../client/pk-generate-pack.c:357
+msgid "The package manager cannot perform this type of operation."
+msgstr "Pakotņu pārvaldnieks nevar veikt šāda veida darbību."
+
+#. TRANSLATORS: This is when the distro didn't include libarchive support into
+#. PK
+#: ../client/pk-generate-pack.c:364
+msgid ""
+"Service packs cannot be created as PackageKit was not built with libarchive "
+"support."
+msgstr ""
+"Nevar izveidot servisa pakas, jo PackageKit netika uzbūvēts ar libarchive "
+"atbalstu."
+
+#. TRANSLATORS: the user specified an absolute path, but didn't get the
+#. extension correct
+#: ../client/pk-generate-pack.c:375
+msgid "If specifying a file, the service pack name must end with"
+msgstr "Ja norāda failu, pakotnes nosaukumam jābeidzas ar"
+
+#. TRANSLATORS: This is when file already exists
+#: ../client/pk-generate-pack.c:391
+msgid "A pack with the same name already exists, do you want to overwrite it?"
+msgstr "Pakotne ar tādu nosaukumu jau eksistē, vai vēlaties to pārrakstīt?"
+
+#. TRANSLATORS: This is when the pack was not overwritten
+#: ../client/pk-generate-pack.c:394
+msgid "The pack was not overwritten."
+msgstr "Paka netika pārrakstīta."
+
+#. TRANSLATORS: This is when the temporary directory cannot be created, the
+#. directory name follows
+#: ../client/pk-generate-pack.c:407
+msgid "Failed to create directory:"
+msgstr "Neizdevās izveidot direktoriju:"
+
+#. TRANSLATORS: This is when the list of packages from the remote computer
+#. cannot be opened
+#: ../client/pk-generate-pack.c:419
+msgid "Failed to open package list."
+msgstr "Neizdevās atvērt pakotņu sarakstu."
+
+#. TRANSLATORS: The package name is being matched up to available packages
+#: ../client/pk-generate-pack.c:428
+msgid "Finding package name."
+msgstr "Meklē pakotnes nosaukumu."
+
+#. TRANSLATORS: This is when the package cannot be found in any software
+#. source. The detailed error follows
+#: ../client/pk-generate-pack.c:432
+#, c-format
+msgid "Failed to find package '%s': %s"
+msgstr "Neizdevās atrast pakotni '%s': %s"
+
+#. TRANSLATORS: This is telling the user we are in the process of making the
+#. pack
+#: ../client/pk-generate-pack.c:440
+msgid "Creating service pack..."
+msgstr "Izveido servisa paku..."
+
+#. TRANSLATORS: we succeeded in making the file
+#: ../client/pk-generate-pack.c:455
+#, c-format
+msgid "Service pack created '%s'"
+msgstr "Servisa paka izveidota '%s'"
+
+#. TRANSLATORS: we failed to make te file
+#: ../client/pk-generate-pack.c:460
+#, c-format
+msgid "Failed to create '%s': %s"
+msgstr "Neizdevās izveidot '%s': %s"
+
+#: ../client/pk-monitor.c:284
+msgid "Failed to get daemon state"
+msgstr "Neizdevās saņemt dēmona stāvokli"
+
+#: ../client/pk-monitor.c:349
+msgid "Failed to get properties"
+msgstr "Neizdevās saņemt īpašības"
+
+#. TRANSLATORS: this is a program that monitors PackageKit
+#: ../client/pk-monitor.c:387
+msgid "PackageKit Monitor"
+msgstr "PackageKit pārraugs"
+
+#. TRANSLATORS: when we are getting data from the daemon
+#: ../contrib/browser-plugin/pk-plugin-install.c:503
+msgid "Getting package information..."
+msgstr "Iegūst informāciju par pakotnēm..."
+
+#. TRANSLATORS: run an applicaiton
+#: ../contrib/browser-plugin/pk-plugin-install.c:509
+#, c-format
+msgid "Run %s"
+msgstr "Palaist %s"
+
+#. TRANSLATORS: show the installed version of a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:515
+msgid "Installed version"
+msgstr "Instalētā versija"
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:523
+#, c-format
+msgid "Run version %s now"
+msgstr "Palaist versiju %s tagad"
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:529
+msgid "Run now"
+msgstr "Palaist tagad"
+
+#. TRANSLATORS: update to a new version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:535
+#, c-format
+msgid "Update to version %s"
+msgstr "Uzlabot uz versiju %s"
+
+#. TRANSLATORS: To install a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:541
+#, c-format
+msgid "Install %s now"
+msgstr "Instalēt %s tagad"
+
+#. TRANSLATORS: the version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:544
+msgid "Version"
+msgstr "Versija"
+
+#. TRANSLATORS: noting found, so can't install
+#: ../contrib/browser-plugin/pk-plugin-install.c:549
+msgid "No packages found for your system"
+msgstr "Šajā sistēma nav atrastu pakotņu"
+
+#. TRANSLATORS: package is being installed
+#: ../contrib/browser-plugin/pk-plugin-install.c:554
+msgid "Installing..."
+msgstr "Instalē..."
+
+#. TRANSLATORS: downloading repo data so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:363
+msgid "Downloading details about the software sources."
+msgstr "Lejupielādē informāciju par programmatūras avotiem."
+
+#. TRANSLATORS: downloading file lists so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:367
+msgid "Downloading filelists (this may take some time to complete)."
+msgstr ""
+"Lejupielādē failu sarakstus (līdz tā pabeigšanai var paiet kāds laiciņš)."
+
+#. TRANSLATORS: waiting for native lock
+#: ../contrib/command-not-found/pk-command-not-found.c:371
+msgid "Waiting for package manager lock."
+msgstr "Gaida pakotņu pārvaldnieka slēgumu."
+
+#. TRANSLATORS: loading package cache so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:375
+msgid "Loading list of packages."
+msgstr "Ielādēt pakotņu sarakstu."
+
+#. TRANSLATORS: we failed to find the package, this shouldn't happen
+#: ../contrib/command-not-found/pk-command-not-found.c:439
+msgid "Failed to search for file"
+msgstr "Neizdevās meklēt failu"
+
+#. TRANSLATORS: the transaction failed in a way we could not expect
+#: ../contrib/command-not-found/pk-command-not-found.c:451
+msgid "Getting the list of files failed"
+msgstr "Neizdevās iegūt failu sarakstu"
+
+#. TRANSLATORS: we failed to launch the executable, the error follows
+#: ../contrib/command-not-found/pk-command-not-found.c:597
+msgid "Failed to launch:"
+msgstr "Neizdevās palaist:"
+
+#. TRANSLATORS: we failed to install the package
+#: ../contrib/command-not-found/pk-command-not-found.c:625
+msgid "Failed to install packages"
+msgstr "Neizdevās instalēt pakotnes"
+
+#. TRANSLATORS: the prefix of all the output telling the user
+#. * why it's not executing. NOTE: this is lowercase to mimic
+#. * the style of bash itself -- apologies
+#: ../contrib/command-not-found/pk-command-not-found.c:723
+msgid "command not found"
+msgstr "komanda nav atrasta"
+
+#. TRANSLATORS: tell the user what we think the command is
+#: ../contrib/command-not-found/pk-command-not-found.c:741
+msgid "Similar command is:"
+msgstr "Līdzīga komanda ir:"
+
+#. TRANSLATORS: Ask the user if we should run the similar command
+#: ../contrib/command-not-found/pk-command-not-found.c:755
+msgid "Run similar command:"
+msgstr "Palaist līdzīgu komandu:"
+
+#. 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:769
+#: ../contrib/command-not-found/pk-command-not-found.c:778
+msgid "Similar commands are:"
+msgstr "Līdzīgas komandas ir:"
+
+#. TRANSLATORS: ask the user to choose a file to run
+#: ../contrib/command-not-found/pk-command-not-found.c:785
+msgid "Please choose a command to run"
+msgstr "Lūdzu, izvēlieties palaižamo komandu"
+
+#. TRANSLATORS: tell the user what package provides the command
+#: ../contrib/command-not-found/pk-command-not-found.c:803
+msgid "The package providing this file is:"
+msgstr "Pakotne, kura nodrošina šo failu:"
+
+#. TRANSLATORS: as the user if we want to install a package to provide the
+#. command
+#: ../contrib/command-not-found/pk-command-not-found.c:810
+#, c-format
+msgid "Install package '%s' to provide command '%s'?"
+msgstr "Instalēt pakotni '%s', lai nodrošinātu komandu '%s'?"
+
+#. TRANSLATORS: Show the user a list of packages that provide this command
+#: ../contrib/command-not-found/pk-command-not-found.c:837
+msgid "Packages providing this file are:"
+msgstr "Pakotnes, kas nodrošina šo failu ir:"
+
+#. 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:847
+msgid "Suitable packages are:"
+msgstr "Piemērotas pakotnes ir:"
+
+#. get selection
+#. TRANSLATORS: ask the user to choose a file to install
+#: ../contrib/command-not-found/pk-command-not-found.c:856
+msgid "Please choose a package to install"
+msgstr "Lūdzu, izvēlieties instalējamo pakotni"
+
+#. TRANSLATORS: we are starting to install the packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:195
+msgid "Starting install"
+msgstr "Sāk instalēšanu"
+
+#. TRANSLATORS: we couldn't find the package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:407
+#, c-format
+msgid "Failed to find the package %s, or already installed: %s"
+msgstr "Neizdevās atrast pakotni %s, vai tā jau ir uzinstalēta: %s"
+
+#. command line argument, simulate what would be done, but don't actually do
+#. it
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:516
+msgid ""
+"Don't actually install any packages, only simulate what would be installed"
+msgstr "Īstenībā neinstalēt nekādas pakotnes, tikai imitēto to instalēšanu"
+
+#. command line argument, do we skip packages that depend on the ones
+#. specified
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:519
+msgid "Do not install dependencies of the core packages"
+msgstr "Neinstalēt pamata pakotņu atkarības"
+
+#. command line argument, do we operate quietly
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:522
+msgid "Do not display information or progress"
+msgstr "Nerādīt informāciju par progresu"
+
+#. TRANSLATORS: tool that gets called when the command is not found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:540
+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:554
+#, c-format
+msgid "ERROR: Specify package names to install."
+msgstr "KĻŪDA: Norādiet instalējamās pakotnes."
+
+#. TRANSLATORS: we are getting the list of repositories
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:590
+#, c-format
+msgid "Getting sources list"
+msgstr "Iegūst avotu sarakstu"
+
+#. TRANSLATORS: operation was not successful
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:600
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:675
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:759
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:803
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:870
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:914
+msgid "FAILED."
+msgstr "NEIZDEVÄ€S."
+
+#. TRANSLATORS: all completed 100%
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:615
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:655
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:690
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:774
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:818
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:885
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:929
+#, c-format
+msgid "OK."
+msgstr "LABI."
+
+#. TRANSLATORS: tell the user what we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:618
+#, c-format
+msgid "Found %i enabled and %i disabled sources."
+msgstr "Atrada %i aktivētu un %i deaktivētu avotu."
+
+#. TRANSLATORS: we're finding repositories that match out pattern
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:625
+#, c-format
+msgid "Finding debugging sources"
+msgstr "Meklē atkļūdošanas avotus"
+
+#. TRANSLATORS: tell the user what we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:658
+#, c-format
+msgid "Found %i disabled debuginfo repos."
+msgstr "Atrada %i deaktivētu atkļūdošanas krātuvju."
+
+#. TRANSLATORS: we're now enabling all the debug sources we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:665
+#, c-format
+msgid "Enabling debugging sources"
+msgstr "Aktivē atkļūdošanas krātuves"
+
+#. TRANSLATORS: tell the user how many we enabled
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:693
+#, c-format
+msgid "Enabled %i debugging sources."
+msgstr "Aktivēja %i atkļūdošanas krātuves."
+
+#. TRANSLATORS: we're now finding packages that match in all the repos
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:700
+#, c-format
+msgid "Finding debugging packages"
+msgstr "Meklē atkļūdošanas pakotnes"
+
+#. TRANSLATORS: we couldn't find the package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:712
+#, c-format
+msgid "Failed to find the package %s: %s"
+msgstr "Neizdevās atrast pakotni '%s': %s"
+
+#. TRANSLATORS: we couldn't find the debuginfo package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:735
+#, c-format
+msgid "Failed to find the debuginfo package %s: %s"
+msgstr "Neizdevās atrast atkļūdošanas informācijas pakotni '%s': %s"
+
+#. TRANSLATORS: no debuginfo packages could be found to be installed
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:763
+#, c-format
+msgid "Found no packages to install."
+msgstr "Neatrada pakotnes, ko instalēt."
+
+#. TRANSLATORS: tell the user we found some packages, and then list them
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:777
+#, c-format
+msgid "Found %i packages:"
+msgstr "Atrada %i pakotnes:"
+
+#. TRANSLATORS: tell the user we are searching for deps
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:793
+#, c-format
+msgid "Finding packages that depend on these packages"
+msgstr "Meklē pakotnes, kas ir atkarīgas no šīm pakotnēm"
+
+#. TRANSLATORS: could not install, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:806
+#, c-format
+msgid "Could not find dependant packages: %s"
+msgstr "Neizdevās atrast atkarīgās pakotnes: %s"
+
+#. TRANSLATORS: tell the user we found some more packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:822
+#, c-format
+msgid "Found %i extra packages."
+msgstr "Atrada %i papildu pakotnes."
+
+#. TRANSLATORS: tell the user we found some more packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:826
+#, c-format
+msgid "No extra packages required."
+msgstr "Nav nepieciešamas papildu pakotņu."
+
+#. TRANSLATORS: tell the user we found some packages (and deps), and then list
+#. them
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:835
+#, c-format
+msgid "Found %i packages to install:"
+msgstr "Neatrada %i pakotnes, ko instalēt:"
+
+#. TRANSLATORS: simulate mode is a testing mode where we quit before the
+#. action
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:848
+#, c-format
+msgid "Not installing packages in simulate mode"
+msgstr "Neinstalē pakotnes imitēšanas režīmā"
+
+#. TRANSLATORS: we are now installing the debuginfo packages we found earlier
+#. TRANSLATORS: transaction state, installing packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:860
+#: ../lib/packagekit-glib2/pk-console-shared.c:331
+#, c-format
+msgid "Installing packages"
+msgstr "Instalē pakotnes"
+
+#. TRANSLATORS: could not install, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:873
+#, c-format
+msgid "Could not install packages: %s"
+msgstr "Neizdevās instalēt pakotnes: %s"
+
+#. TRANSLATORS: we are now disabling all debuginfo repos we previously enabled
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:905
+#, c-format
+msgid "Disabling sources previously enabled"
+msgstr "Deaktivē pirmīt aktivētos avotus"
+
+#. TRANSLATORS: no debuginfo packages could be found to be installed, detailed
+#. error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:917
+#, c-format
+msgid "Could not disable the debugging sources: %s"
+msgstr "Neizdevās deaktivēt atkļūdošanas avotus: %s"
+
+#. TRANSLATORS: we disabled all the debugging repos that we enabled before
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:932
+#, c-format
+msgid "Disabled %i debugging sources."
+msgstr "Deaktivēja %i atkļūdošanas avotus."
+
+#. TRANSLATORS: couldn't open device to write
+#: ../contrib/device-rebind/pk-device-rebind.c:62
+msgid "Failed to open file"
+msgstr "Neizdevās atvērt failu"
+
+#. TRANSLATORS: could not write to the device
+#: ../contrib/device-rebind/pk-device-rebind.c:71
+msgid "Failed to write to the file"
+msgstr "Neizdevās rakstīt failā"
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:111
+#: ../contrib/device-rebind/pk-device-rebind.c:148
+msgid "Failed to write to device"
+msgstr "Neizdevās ierakstīt ierīcē"
+
+#. TRANSLATORS: the device could not be found in sysfs
+#: ../contrib/device-rebind/pk-device-rebind.c:176
+msgid "Device could not be found"
+msgstr "Nevarēja atrast ierīci"
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:203
+msgid "Failed to unregister driver"
+msgstr "Neizdevās atreģistrēt draiveri"
+
+#. TRANSLATORS: we failed to bind the old driver
+#: ../contrib/device-rebind/pk-device-rebind.c:212
+msgid "Failed to register driver"
+msgstr "Neizdevās reģistrēt draiveri"
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:261
+msgid "Device path not found"
+msgstr "Ierīces ceļš nav atrasts"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:269
+msgid "Incorrect device path specified"
+msgstr "Norādīts nepareizs ierīces ceļš"
+
+#: ../contrib/device-rebind/pk-device-rebind.c:294
+msgid "Show extra debugging information"
+msgstr "Rādīt papildu atkļūdošanas informāciju"
+
+#. command line argument, simulate what would be done, but don't actually do
+#. it
+#: ../contrib/device-rebind/pk-device-rebind.c:297
+msgid "Don't actually touch the hardware, only simulate what would be done"
+msgstr "Īstenībā neaiztikt aparatūru, tikai imitēt to, kas tiktu darīts"
+
+#. TRANSLATORS: command line option: a list of files to install
+#: ../contrib/device-rebind/pk-device-rebind.c:300
+msgid "Device paths"
+msgstr "Ierīces ceļi"
+
+#. TRANSLATORS: tool that gets called when the device needs reloading after
+#. installing firmware
+#: ../contrib/device-rebind/pk-device-rebind.c:315
+msgid "PackageKit Device Reloader"
+msgstr "PackageKit ierīču pārlādētājs"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:323
+msgid "You need to specify at least one valid device path"
+msgstr "Jānorāda vismaz viens derīgs ierīces ceļš"
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:333
+msgid "This script can only be used by the root user"
+msgstr "Šo skriptu var izmantot tikai root lietotājs"
+
+#. TRANSLATORS: we're going to verify the path first
+#: ../contrib/device-rebind/pk-device-rebind.c:342
+msgid "Verifying device path"
+msgstr "Pārbauda ierīces ceļu"
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:347
+msgid "Failed to verify device path"
+msgstr "Neizdevās pārbaudīt ierīces ceļu"
+
+#. TRANSLATORS: we're going to try
+#: ../contrib/device-rebind/pk-device-rebind.c:361
+msgid "Attempting to rebind device"
+msgstr "Mēģina atkārtoti sasaistīt ierīci"
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:366
+msgid "Failed to rebind device"
+msgstr "Neizdevās atkārtoti sasaistīt ierīci"
+
+#: ../data/packagekit-catalog.xml.in.h:1
+msgid "PackageKit Catalog"
+msgstr "PackageKit katalogs"
+
+#: ../data/packagekit-package-list.xml.in.h:1
+msgid "PackageKit Package List"
+msgstr "PackageKit pakotņu saraksts"
+
+#: ../data/packagekit-servicepack.xml.in.h:1
+msgid "PackageKit Service Pack"
+msgstr "PackageKit servisa paka"
+
+#: ../lib/packagekit-glib2/pk-console-shared.c:65
+#, c-format
+msgid "Please enter a number from 1 to %i: "
+msgstr "Ievadiet skaitli no 1 līdz %i: "
+
+#. TRANSLATORS: more than one package could be found that matched, to follow
+#. is a list of possible packages
+#: ../lib/packagekit-glib2/pk-console-shared.c:233
+msgid "More than one package matches:"
+msgstr "Atbilst vairāk kā viena pakotne:"
+
+#. TRANSLATORS: This finds out which package in the list to use
+#: ../lib/packagekit-glib2/pk-console-shared.c:244
+msgid "Please choose the correct package: "
+msgstr "Izvēlieties pareizo pakotni:"
+
+#. TRANSLATORS: This is when the transaction status is not known
+#: ../lib/packagekit-glib2/pk-console-shared.c:299
+msgid "Unknown state"
+msgstr "Nezināms stāvoklis"
+
+#. TRANSLATORS: transaction state, the daemon is in the process of starting
+#: ../lib/packagekit-glib2/pk-console-shared.c:303
+msgid "Starting"
+msgstr "Startējas"
+
+#. TRANSLATORS: transaction state, the transaction is waiting for another to
+#. complete
+#: ../lib/packagekit-glib2/pk-console-shared.c:307
+msgid "Waiting in queue"
+msgstr "Gaida rindā"
+
+#. TRANSLATORS: transaction state, just started
+#: ../lib/packagekit-glib2/pk-console-shared.c:311
+msgid "Running"
+msgstr "Darbojas"
+
+#. TRANSLATORS: transaction state, is querying data
+#: ../lib/packagekit-glib2/pk-console-shared.c:315
+msgid "Querying"
+msgstr "Vaicā"
+
+#. TRANSLATORS: transaction state, getting data from a server
+#: ../lib/packagekit-glib2/pk-console-shared.c:319
+msgid "Getting information"
+msgstr "Iegūst informāciju"
+
+#. TRANSLATORS: transaction state, removing packages
+#: ../lib/packagekit-glib2/pk-console-shared.c:323
+msgid "Removing packages"
+msgstr "Izņem pakotnes"
+
+#. TRANSLATORS: transaction state, downloading package files
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:327
+#: ../lib/packagekit-glib2/pk-console-shared.c:705
+msgid "Downloading packages"
+msgstr "Lejupielādē pakotnes"
+
+#. TRANSLATORS: transaction state, refreshing internal lists
+#: ../lib/packagekit-glib2/pk-console-shared.c:335
+msgid "Refreshing software list"
+msgstr "Atsvaidzina programmatūras sarakstu"
+
+#. TRANSLATORS: transaction state, installing updates
+#: ../lib/packagekit-glib2/pk-console-shared.c:339
+msgid "Installing updates"
+msgstr "Instalē atjauninājumus"
+
+#. TRANSLATORS: transaction state, removing old packages, and cleaning config
+#. files
+#: ../lib/packagekit-glib2/pk-console-shared.c:343
+msgid "Cleaning up packages"
+msgstr "Sattīra pakotnes"
+
+#. TRANSLATORS: transaction state, obsoleting old packages
+#: ../lib/packagekit-glib2/pk-console-shared.c:347
+msgid "Obsoleting packages"
+msgstr "Atzīmē pakotnes kā novecojušas"
+
+#. TRANSLATORS: transaction state, checking the transaction before we do it
+#: ../lib/packagekit-glib2/pk-console-shared.c:351
+msgid "Resolving dependencies"
+msgstr "Atrisina atkarības"
+
+#. TRANSLATORS: transaction state, checking if we have all the security keys
+#. for the operation
+#: ../lib/packagekit-glib2/pk-console-shared.c:355
+msgid "Checking signatures"
+msgstr "Pārbauda parakstus"
+
+#. TRANSLATORS: transaction state, when we return to a previous system state
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:359
+#: ../lib/packagekit-glib2/pk-console-shared.c:665
+msgid "Rolling back"
+msgstr "Atgriež atpakaļ"
+
+#. TRANSLATORS: transaction state, when we're doing a test transaction
+#: ../lib/packagekit-glib2/pk-console-shared.c:363
+msgid "Testing changes"
+msgstr "Testē izmaiņas"
+
+#. TRANSLATORS: transaction state, when we're writing to the system package
+#. database
+#: ../lib/packagekit-glib2/pk-console-shared.c:367
+msgid "Committing changes"
+msgstr "Nosūta izmaiņas"
+
+#. TRANSLATORS: transaction state, requesting data from a server
+#: ../lib/packagekit-glib2/pk-console-shared.c:371
+msgid "Requesting data"
+msgstr "Pieprasa datus"
+
+#. TRANSLATORS: transaction state, all done!
+#: ../lib/packagekit-glib2/pk-console-shared.c:375
+msgid "Finished"
+msgstr "Pabeigts"
+
+#. TRANSLATORS: transaction state, in the process of cancelling
+#: ../lib/packagekit-glib2/pk-console-shared.c:379
+msgid "Cancelling"
+msgstr "Atceļ"
+
+#. TRANSLATORS: transaction state, downloading metadata
+#: ../lib/packagekit-glib2/pk-console-shared.c:383
+msgid "Downloading repository information"
+msgstr "Lejupielādē informāciju par krātuvēm"
+
+#. TRANSLATORS: transaction state, downloading metadata
+#: ../lib/packagekit-glib2/pk-console-shared.c:387
+msgid "Downloading list of packages"
+msgstr "Lejupielādē pakotņu sarakstus"
+
+#. TRANSLATORS: transaction state, downloading metadata
+#: ../lib/packagekit-glib2/pk-console-shared.c:391
+msgid "Downloading file lists"
+msgstr "Lejupielādē failu sarakstus"
+
+#. TRANSLATORS: transaction state, downloading metadata
+#: ../lib/packagekit-glib2/pk-console-shared.c:395
+msgid "Downloading lists of changes"
+msgstr "Lejupielādē izmaiņu sarakstus"
+
+#. TRANSLATORS: transaction state, downloading metadata
+#: ../lib/packagekit-glib2/pk-console-shared.c:399
+msgid "Downloading groups"
+msgstr "Lejupielādē grupas"
+
+#. TRANSLATORS: transaction state, downloading metadata
+#: ../lib/packagekit-glib2/pk-console-shared.c:403
+msgid "Downloading update information"
+msgstr "Lejupielādē informāciju par atjauninājumu"
+
+#. TRANSLATORS: transaction state, repackaging delta files
+#: ../lib/packagekit-glib2/pk-console-shared.c:407
+msgid "Repackaging files"
+msgstr "Pārpako failus"
+
+#. TRANSLATORS: transaction state, loading databases
+#: ../lib/packagekit-glib2/pk-console-shared.c:411
+msgid "Loading cache"
+msgstr "Ielādē kešu"
+
+#. TRANSLATORS: transaction state, scanning for running processes
+#: ../lib/packagekit-glib2/pk-console-shared.c:415
+msgid "Scanning applications"
+msgstr "Skenē lietotnes"
+
+#. TRANSLATORS: transaction state, generating a list of packages installed on
+#. the system
+#: ../lib/packagekit-glib2/pk-console-shared.c:419
+msgid "Generating package lists"
+msgstr "Ģenerē pakotņu sarakstus"
+
+#. TRANSLATORS: transaction state, when we're waiting for the native tools to
+#. exit
+#: ../lib/packagekit-glib2/pk-console-shared.c:423
+msgid "Waiting for package manager lock"
+msgstr "Gaida pakotņu pārvaldnieka slēgumu"
+
+#. TRANSLATORS: transaction state, waiting for user to type in a password
+#: ../lib/packagekit-glib2/pk-console-shared.c:427
+msgid "Waiting for authentication"
+msgstr "Gaida lietotāja autentifikāciju"
+
+#. TRANSLATORS: transaction state, we are updating the list of processes
+#: ../lib/packagekit-glib2/pk-console-shared.c:431
+msgid "Updating running applications"
+msgstr "Atjaunina šobrīd palaistās lietotnes"
+
+#. TRANSLATORS: transaction state, we are checking executable files currently
+#. in use
+#: ../lib/packagekit-glib2/pk-console-shared.c:435
+msgid "Checking applications in use"
+msgstr "Pārbauda izmantotās lietotnes"
+
+#. TRANSLATORS: transaction state, we are checking for libraries currently in
+#. use
+#: ../lib/packagekit-glib2/pk-console-shared.c:439
+msgid "Checking libraries in use"
+msgstr "Pārbauda izmantotās bibliotēkas"
+
+#. TRANSLATORS: transaction state, we are copying package files before or
+#. after the transaction
+#: ../lib/packagekit-glib2/pk-console-shared.c:443
+msgid "Copying files"
+msgstr "Kopē failus"
+
+#. TRANSLATORS: The type of update
+#: ../lib/packagekit-glib2/pk-console-shared.c:461
+msgid "Trivial"
+msgstr "Triviāls"
+
+#. TRANSLATORS: The type of update
+#: ../lib/packagekit-glib2/pk-console-shared.c:465
+msgid "Normal"
+msgstr "Normāls"
+
+#. TRANSLATORS: The type of update
+#: ../lib/packagekit-glib2/pk-console-shared.c:469
+msgid "Important"
+msgstr "Svarīgs"
+
+#. TRANSLATORS: The type of update
+#: ../lib/packagekit-glib2/pk-console-shared.c:473
+msgid "Security"
+msgstr "Drošības"
+
+#. TRANSLATORS: The type of update
+#: ../lib/packagekit-glib2/pk-console-shared.c:477
+msgid "Bug fix "
+msgstr "Kļūdas labojums "
+
+#. TRANSLATORS: The type of update
+#: ../lib/packagekit-glib2/pk-console-shared.c:481
+msgid "Enhancement"
+msgstr "Uzlabojums"
+
+#. TRANSLATORS: The type of update
+#: ../lib/packagekit-glib2/pk-console-shared.c:485
+msgid "Blocked"
+msgstr "BloÄ·Ä“ta"
+
+#. TRANSLATORS: The state of a package
+#. TRANSLATORS: The action of the package, in past tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:490
+#: ../lib/packagekit-glib2/pk-console-shared.c:563
+msgid "Installed"
+msgstr "Instalēta"
+
+#. TRANSLATORS: The state of a package, i.e. not installed
+#: ../lib/packagekit-glib2/pk-console-shared.c:495
+msgid "Available"
+msgstr "Pieejama"
+
+#. TRANSLATORS: The action of the package, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:513
+msgid "Downloading"
+msgstr "Lejupielādē"
+
+#. TRANSLATORS: The action of the package, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:517
+msgid "Updating"
+msgstr "Atjaunina"
+
+#. TRANSLATORS: The action of the package, in present tense
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:521
+#: ../lib/packagekit-glib2/pk-console-shared.c:641
+msgid "Installing"
+msgstr "Instalē"
+
+#. TRANSLATORS: The action of the package, in present tense
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:525
+#: ../lib/packagekit-glib2/pk-console-shared.c:637
+msgid "Removing"
+msgstr "Izņem"
+
+#. TRANSLATORS: The action of the package, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:529
+msgid "Cleaning up"
+msgstr "Uzkopj"
+
+#. TRANSLATORS: The action of the package, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:533
+msgid "Obsoleting"
+msgstr "Atzīmē kā novecojušas"
+
+#. TRANSLATORS: The action of the package, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:537
+msgid "Reinstalling"
+msgstr "Pārinstalē"
+
+#. TRANSLATORS: The action of the package, in past tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:555
+msgid "Downloaded"
+msgstr "Lejupielādēta"
+
+#. TRANSLATORS: The action of the package, in past tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:567
+msgid "Removed"
+msgstr "Izņēmta"
+
+#. TRANSLATORS: The action of the package, in past tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:571
+msgid "Cleaned up"
+msgstr "Satirīta"
+
+#. TRANSLATORS: The action of the package, in past tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:575
+msgid "Obsoleted"
+msgstr "Atzīmēta kā novecojuša"
+
+#. TRANSLATORS: The action of the package, in past tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:579
+msgid "Reinstalled"
+msgstr "Pārinstalēta"
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:597
+msgid "Unknown role type"
+msgstr "Nezināms lomas tips"
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:601
+msgid "Getting dependencies"
+msgstr "Iegūst atkarības"
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:605
+msgid "Getting update details"
+msgstr "Iegūst sīkāku informāciju par atjauninājumu"
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:609
+msgid "Getting details"
+msgstr "Iegūst sīkāku informāciju par pakotni"
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:613
+msgid "Getting requires"
+msgstr "Iegūst pieprasītās pakotnes"
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:617
+msgid "Getting updates"
+msgstr "Iegūst atjauninājumus"
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:621
+msgid "Searching by details"
+msgstr "Meklē pēc sīkākas informācijas"
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:625
+msgid "Searching by file"
+msgstr "Meklē pēc faila"
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:629
+msgid "Searching groups"
+msgstr "Meklē grupās"
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:633
+msgid "Searching by name"
+msgstr "Meklē pēc nosaukuma"
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:645
+msgid "Installing files"
+msgstr "Instalē failus"
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:649
+msgid "Refreshing cache"
+msgstr "Atsvaidzina kešu"
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:653
+msgid "Updating packages"
+msgstr "Atjaunina pakotnes"
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:657
+msgid "Updating system"
+msgstr "Atjaunina sistēmu"
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:661
+msgid "Canceling"
+msgstr "Atceļ"
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:669
+msgid "Getting repositories"
+msgstr "Iegūst krātuves"
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:673
+msgid "Enabling repository"
+msgstr "Aktivē krātuvi"
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:677
+msgid "Setting data"
+msgstr "Iestata datus"
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:681
+msgid "Resolving"
+msgstr "Atrisina"
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:685
+msgid "Getting file list"
+msgstr "Iegūst failu sarakstu"
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:689
+msgid "Getting provides"
+msgstr "Iegūst nodrošinājumus"
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:693
+msgid "Installing signature"
+msgstr "Instalē parakstu"
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:697
+msgid "Getting packages"
+msgstr "Iegūst pakotnes"
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:701
+msgid "Accepting EULA"
+msgstr "Apstiprina EULA"
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:709
+msgid "Getting upgrades"
+msgstr "Iegūst uzlabojumus"
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:713
+msgid "Getting categories"
+msgstr "Iegūst kategorijas"
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:717
+msgid "Getting transactions"
+msgstr "Iegūst transakcijas"
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:721
+#: ../lib/packagekit-glib2/pk-console-shared.c:725
+msgid "Simulating install"
+msgstr "Imitē instalēšanu"
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:729
+msgid "Simulating remove"
+msgstr "Imitē izņemšanu"
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:733
+msgid "Simulating update"
+msgstr "Imitē atjaunināšanu"
+
+#. TRANSLATORS: turn on all debugging
+#: ../lib/packagekit-glib2/pk-debug.c:133
+msgid "Show debugging information for all files"
+msgstr "Rādīt informāciju par atkļūdošanu visiem failiem"
+
+#: ../lib/packagekit-glib2/pk-debug.c:201
+msgid "Debugging Options"
+msgstr "Atkļūdošanas opcijas"
+
+#: ../lib/packagekit-glib2/pk-debug.c:201
+msgid "Show debugging options"
+msgstr "Rādīt atkļūdošanas opcijas"
+
+#. TRANSLATORS: ask the user if they are comfortable installing insecure
+#. packages
+#: ../lib/packagekit-glib2/pk-task-text.c:67
+msgid "Do you want to allow installing of unsigned software?"
+msgstr "Vai vēlaties atļaut neparakstītas programmatūras instalēšanu?"
+
+#. TRANSLATORS: tell the user we've not done anything
+#: ../lib/packagekit-glib2/pk-task-text.c:72
+msgid "The unsigned software will not be installed."
+msgstr "Neparakstīta programmatūra netiks instalēta."
+
+#. TRANSLATORS: the package repository is signed by a key that is not
+#. recognised
+#: ../lib/packagekit-glib2/pk-task-text.c:121
+msgid "Software source signature required"
+msgstr "Nepieciešams programmatūras avota paraksts"
+
+#. TRANSLATORS: the package repository name
+#: ../lib/packagekit-glib2/pk-task-text.c:127
+msgid "Software source name"
+msgstr "Programmatūras avota nosaukums"
+
+#. TRANSLATORS: the key URL
+#: ../lib/packagekit-glib2/pk-task-text.c:130
+msgid "Key URL"
+msgstr "Atslēgas URL"
+
+#. TRANSLATORS: the username of the key
+#: ../lib/packagekit-glib2/pk-task-text.c:133
+msgid "Key user"
+msgstr "Atslēgas lietotājs"
+
+#. TRANSLATORS: the key ID, usually a few hex digits
+#: ../lib/packagekit-glib2/pk-task-text.c:136
+msgid "Key ID"
+msgstr "Atslēgas ID"
+
+#. TRANSLATORS: the key fingerprint, again, yet more hex
+#: ../lib/packagekit-glib2/pk-task-text.c:139
+msgid "Key fingerprint"
+msgstr "Atslēgas nospiedums"
+
+#. TRANSLATORS: the timestamp (a bit like a machine readable time)
+#: ../lib/packagekit-glib2/pk-task-text.c:142
+msgid "Key Timestamp"
+msgstr "Atslēgas laika spiedogs"
+
+#. TRANSLATORS: ask the user if they want to import
+#: ../lib/packagekit-glib2/pk-task-text.c:155
+msgid "Do you accept this signature?"
+msgstr "Vai vēlaties pieņemt šo parakstu?"
+
+#. TRANSLATORS: tell the user we've not done anything
+#: ../lib/packagekit-glib2/pk-task-text.c:160
+msgid "The signature was not accepted."
+msgstr "Paraksts nav apstiprināts."
+
+#. TRANSLATORS: this is another name for a software licence that has to be
+#. read before installing
+#: ../lib/packagekit-glib2/pk-task-text.c:203
+msgid "End user licence agreement required"
+msgstr "Nepieciešams lietotāja licences līgums"
+
+#. TRANSLATORS: the EULA text itself (long and boring)
+#: ../lib/packagekit-glib2/pk-task-text.c:212
+msgid "Agreement"
+msgstr "Vienošanās"
+
+#. TRANSLATORS: ask the user if they've read and accepted the EULA
+#: ../lib/packagekit-glib2/pk-task-text.c:221
+msgid "Do you accept this agreement?"
+msgstr "Vai jūs pieņemat šo vienošanos?"
+
+#. TRANSLATORS: tell the user we've not done anything
+#: ../lib/packagekit-glib2/pk-task-text.c:226
+msgid "The agreement was not accepted."
+msgstr "Vienošanās nav pieņemta."
+
+#. TRANSLATORS: the user needs to change media inserted into the computer
+#: ../lib/packagekit-glib2/pk-task-text.c:265
+msgid "Media change required"
+msgstr "Nepieciešams nomainīt datu nesēju"
+
+#. TRANSLATORS: the type, e.g. DVD, CD, etc
+#: ../lib/packagekit-glib2/pk-task-text.c:268
+msgid "Media type"
+msgstr "Datu nesēja veids"
+
+#. TRANSLATORS: the media label, usually like 'disk-1of3'
+#: ../lib/packagekit-glib2/pk-task-text.c:271
+msgid "Media label"
+msgstr "Datu nesēja etiķete"
+
+#. TRANSLATORS: the media description, usually like 'Fedora 12 disk 5'
+#: ../lib/packagekit-glib2/pk-task-text.c:274
+msgid "Text"
+msgstr "Teksts"
+
+#. TRANSLATORS: ask the user to insert the media
+#: ../lib/packagekit-glib2/pk-task-text.c:280
+msgid "Please insert the correct media"
+msgstr "Ievietojiet pareizo datu nesēju"
+
+#. TRANSLATORS: tell the user we've not done anything as they are lazy
+#: ../lib/packagekit-glib2/pk-task-text.c:285
+msgid "The correct media was not inserted."
+msgstr "Netika ievietots pareizais datu nesējs."
+
+#. TRANSLATORS: When processing, we might have to remove other dependencies
+#: ../lib/packagekit-glib2/pk-task-text.c:300
+msgid "The following packages have to be removed:"
+msgstr "Jāizņem sekojošās pakotnes:"
+
+#. TRANSLATORS: When processing, we might have to install other dependencies
+#: ../lib/packagekit-glib2/pk-task-text.c:305
+msgid "The following packages have to be installed:"
+msgstr "Jāinstalē sekojošās pakotnes:"
+
+#. TRANSLATORS: When processing, we might have to update other dependencies
+#: ../lib/packagekit-glib2/pk-task-text.c:310
+msgid "The following packages have to be updated:"
+msgstr "Jāuzlabo sekojošās pakotnes:"
+
+#. TRANSLATORS: When processing, we might have to reinstall other dependencies
+#: ../lib/packagekit-glib2/pk-task-text.c:315
+msgid "The following packages have to be reinstalled:"
+msgstr "Jāpārinstalē sekojošās pakotnes:"
+
+#. TRANSLATORS: When processing, we might have to downgrade other dependencies
+#: ../lib/packagekit-glib2/pk-task-text.c:320
+msgid "The following packages have to be downgraded:"
+msgstr "Jāpazemina sekojošās pakotnes:"
+
+#. TRANSLATORS: When processing, untrusted and non-verified packages may be
+#. encountered
+#: ../lib/packagekit-glib2/pk-task-text.c:325
+msgid "The following packages are untrusted:"
+msgstr "Sekojošās pakotnes nav uzticamas:"
+
+#. TRANSLATORS: ask the user if the proposed changes are okay
+#: ../lib/packagekit-glib2/pk-task-text.c:385
+msgid "Proceed with changes?"
+msgstr "Turpināt veikt izmaiņas?"
+
+#. TRANSLATORS: tell the user we didn't do anything
+#: ../lib/packagekit-glib2/pk-task-text.c:390
+msgid "The transaction did not proceed."
+msgstr "Transakcija nenoritēja."
+
+#. 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 "Pieņemt licences līgumu"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:8
+msgid "Authentication is required to accept a EULA"
+msgstr "Nepieciešama autentifikācija, lai pieņemtu licences līgumu"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:9
+msgid ""
+"Authentication is required to cancel a task that was not started by yourself"
+msgstr ""
+"Nepieciešama autentifikācija, lai apturētu uzdevumu, kuru jūs neesat uzdevis"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:10
+msgid "Authentication is required to change software source parameters"
+msgstr ""
+"Nepieciešama autentifikācija, lai mainītu programmatūras avotu parametrus"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:11
+msgid ""
+"Authentication is required to change the location used to decompress "
+"packages"
+msgstr "Nepieciešama autentifikācija, lai mainītu vietu, kur atspiež pakotnes"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:12
+msgid ""
+"Authentication is required to consider a key used for signing packages as "
+"trusted"
+msgstr ""
+"Nepieciešama autentifikācija, lai atslēgu uzskatītu par derīgu pakotņu "
+"parakstīšanai ka derīgām"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:13
+msgid "Authentication is required to install a signed package"
+msgstr "Nepieciešama autentifikācija, lai instalētu parakstītas pakotnes"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:14
+msgid "Authentication is required to install an untrusted package"
+msgstr "Nepieciešama autentifikācija, lai instalētu neuzticamas pakotnes"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:15
+msgid "Authentication is required to refresh the system sources"
+msgstr "Nepieciešama autentifikācija, lai atsvaidzinātu sistēmas resursus"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:16
+msgid "Authentication is required to reload the device with a new driver"
+msgstr "Nepieciešama autentifikācija, lai pārlādētu ierīci ar jaunu draiveri"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:17
+msgid "Authentication is required to remove packages"
+msgstr "Nepieciešama autentifikācija, lai izņemtu pakotnes"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:18
+msgid "Authentication is required to rollback a transaction"
+msgstr "Nepieciešama autentifikācija, lai atritinātu transakciju"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:19
+msgid ""
+"Authentication is required to set the network proxy used for downloading "
+"packages"
+msgstr ""
+"Nepieciešama autentifikācija, lai iestatītu tīkla starpnieku, ko izmantot "
+"pakotņu lejupielādēšanai"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:20
+msgid "Authentication is required to update packages"
+msgstr "Nepieciešama autentifikācija, lai uzlabotu pakotnes"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:21
+msgid "Authentication is required to upgrade the operating system"
+msgstr "Nepieciešama autentifikācija, lai uzlabotu operētājsistēmu"
+
+#. 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:27
+msgid "Cancel foreign task"
+msgstr "Atcelt ārējo uzdevumu"
+
+#. SECURITY:
+#. - This is used when users want to install to a different prefix, for
+#. instance to a LTSP image or a virtual machine.
+#. - This could be used to overwrite files not owned by the user using
+#. a carefully created package file.
+#. 
+#: ../policy/org.freedesktop.packagekit.policy.in.h:34
+msgid "Change location that packages are installed"
+msgstr "Mainīt vietu, kur instalēt pakotnes"
+
+#. 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:40
+msgid "Change software source parameters"
+msgstr "Mainītu programmatūras avotu parametrus"
+
+#. 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:47
+msgid "Install signed package"
+msgstr "Instalēt parakstītu pakotni"
+
+#. 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:54
+msgid "Install untrusted local file"
+msgstr "Instalēt neuzticamu vietējo failu"
+
+#. 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:59
+msgid "Refresh system sources"
+msgstr "Atsvaidzināt sistēmas avotus"
+
+#. 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:67
+msgid "Reload a device"
+msgstr "Pārlādēt ierīci"
+
+#. 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:77
+msgid "Remove package"
+msgstr "Izņemt pakotni"
+
+#. 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:83
+msgid "Rollback to a previous transaction"
+msgstr "Atritināt uz iepriekšējo transakciju"
+
+#. SECURITY:
+#. - Normal users do not require admin authentication to set the proxy
+#. used for downloading packages.
+#. 
+#: ../policy/org.freedesktop.packagekit.policy.in.h:88
+msgid "Set network proxy"
+msgstr "Iestatīt tīkla starpniekserveri"
+
+#. 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:95
+msgid "Trust a key used for signing packages"
+msgstr "Atslēga, ko izmantot pakotņu parakstīšanai"
+
+#. 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:103
+msgid "Update packages"
+msgstr "Atjaunināt pakotnes"
+
+#. SECURITY:
+#. - Normal users require admin authentication to upgrade the disto as
+#. this can make the system unbootable or stop other applications from
+#. working.
+#. 
+#: ../policy/org.freedesktop.packagekit.policy.in.h:109
+msgid "Upgrade System"
+msgstr "Uzlabot pakotnes"
+
+#. TRANSLATORS: a backend is the system package tool, e.g. yum, apt
+#: ../src/pk-main.c:149
+msgid "Packaging backend to use, e.g. dummy"
+msgstr "Izmantojamā pakošanas aizmugure, piemēram, dummy"
+
+#. TRANSLATORS: if we should run in the background
+#: ../src/pk-main.c:152
+msgid "Daemonize and detach from the terminal"
+msgstr "Dēmonizēt un atvienot no termināļa"
+
+#. TRANSLATORS: if we should not monitor how long we are inactive for
+#: ../src/pk-main.c:155
+msgid "Disable the idle timer"
+msgstr "Deaktivēt brīvo taimeri"
+
+#. TRANSLATORS: show version
+#: ../src/pk-main.c:158
+msgid "Show version and exit"
+msgstr "Rādīt versiju un iziet"
+
+#. TRANSLATORS: exit after we've started up, used for user profiling
+#: ../src/pk-main.c:161
+msgid "Exit after a small delay"
+msgstr "Iziet pēc neilgas pauzes"
+
+#. TRANSLATORS: exit straight away, used for automatic profiling
+#: ../src/pk-main.c:164
+msgid "Exit after the engine has loaded"
+msgstr "Iziet pēc dziņa ielādes"
+
+#. TRANSLATORS: don't unset environment variables, used for debugging
+#: ../src/pk-main.c:167
+msgid "Don't clear environment on startup"
+msgstr ""
+
+#. TRANSLATORS: describing the service that is running
+#: ../src/pk-main.c:179
+msgid "PackageKit service"
+msgstr "PackageKit serviss"
+
+#: ../src/pk-main.c:253
+msgid "Failed to load any of the specified backends:"
+msgstr "Neizdevās ielādēt nevienu no norādītajām aizmugurēm:"
+
+#. TRANSLATORS: is not GPG signed
+#: ../src/pk-transaction.c:2696
+msgid "The software is not from a trusted source."
+msgstr "Programma nav no uzticama avota."
+
+#: ../src/pk-transaction.c:2704
+msgid "Do not update this package unless you are sure it is safe to do so."
+msgstr "Neatjauniniet šo pakotni, ja vien jūs esat droši, ka to var darīt."
+
+#: ../src/pk-transaction.c:2705
+msgid "Do not update these packages unless you are sure it is safe to do so."
+msgstr ""
+"Neatjauniniet šīs pakotnes, ja vien esat droši, ka to var droši darīt."
+
+#: ../src/pk-transaction.c:2715
+msgid "Do not install this package unless you are sure it is safe to do so."
+msgstr "Neinstalējiet šo pakotni, ja vien jūs esat droši, ka to var darīt."
+
+#: ../src/pk-transaction.c:2716
+msgid "Do not install these packages unless you are sure it is safe to do so."
+msgstr ""
+"Neinstalējiet šīs pakotnes, ja vien esat droši, ka to var droši darīt."
+
+
diff --git a/po/ml.po b/po/ml.po
index f8416ff..c545d7f 100644
--- a/po/ml.po
+++ b/po/ml.po
@@ -2,14 +2,15 @@
 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
 # This file is distributed under the same license as the PACKAGE package.
 # 
-# Richard Hughes <richard at hughsie.com>, 2011
+# Translators:
+# Richard Hughes <richard at hughsie.com>, 2011.
 msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-04 10:50+0100\n"
-"PO-Revision-Date: 2011-05-04 09:56+0000\n"
-"Last-Translator: hughsie <richard at hughsie.com>\n"
+"POT-Creation-Date: 2011-11-10 19:50+0000\n"
+"PO-Revision-Date: 2011-11-10 19:50+0000\n"
+"Last-Translator: Richard Hughes <richard at hughsie.com>\n"
 "Language-Team: LANGUAGE <LL at li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -195,7 +196,7 @@ msgstr "നല്‍കിയതു്"
 
 #. TRANSLATORS: details about the update, date the update was updated
 #. TRANSLATORS: The action of the package, in past tense
-#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:524
+#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:559
 msgid "Updated"
 msgstr "പരിഷ്കരിച്ചിരിക്കുന്നു"
 
@@ -285,7 +286,7 @@ msgstr ""
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
 #: ../client/pk-console.c:704
-#: ../contrib/command-not-found/pk-command-not-found.c:639
+#: ../contrib/command-not-found/pk-command-not-found.c:634
 msgid "The transaction failed"
 msgstr "ഇടപാടു് പരാജയപ്പെട്ടു"
 
@@ -341,14 +342,14 @@ msgstr ""
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:866
+#: ../client/pk-console.c:871
 #, c-format
 msgid "This tool could not find any available package: %s"
 msgstr "ലഭ്യമായ പാക്കേജ് കണ്ടുപിടിക്കുവാന്‍ ഈ പ്രയോഗത്തിനു് സാധ്യമായില്ല: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:894
+#: ../client/pk-console.c:899
 #, c-format
 msgid "This tool could not find the installed package: %s"
 msgstr ""
@@ -357,7 +358,7 @@ msgstr ""
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:922 ../client/pk-console.c:950
+#: ../client/pk-console.c:927 ../client/pk-console.c:955
 #, c-format
 msgid "This tool could not find the package: %s"
 msgstr "പാക്കേജ് കണ്ടുപിടിക്കുവാന്‍ ഈ പ്രയോഗത്തിനു് സാധ്യമായില്ല: %s"
@@ -370,9 +371,9 @@ msgstr "പാക്കേജ് കണ്ടുപിടിക്കുവാ
 #. detailed error follows
 #. TRANSLATORS: The package name was not found in any software sources. The
 #. detailed error follows
-#: ../client/pk-console.c:978 ../client/pk-console.c:1006
-#: ../client/pk-console.c:1034 ../client/pk-console.c:1062
-#: ../client/pk-console.c:1090
+#: ../client/pk-console.c:983 ../client/pk-console.c:1011
+#: ../client/pk-console.c:1039 ../client/pk-console.c:1067
+#: ../client/pk-console.c:1095
 #, c-format
 msgid "This tool could not find all the packages: %s"
 msgstr ""
@@ -380,62 +381,62 @@ msgstr ""
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek
 #. without a paddle
-#: ../client/pk-console.c:1119
+#: ../client/pk-console.c:1124
 msgid "The daemon crashed mid-transaction!"
 msgstr "ഡെമണ്‍ തകര്‍ന്നിരിക്കുന്നു!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1153
+#: ../client/pk-console.c:1158
 msgid "PackageKit Console Interface"
 msgstr "പാക്കേജ്കിറ്റ് കണ്‍സോള്‍ ഇന്റര്‍ഫെയിസ്"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1155
+#: ../client/pk-console.c:1160
 msgid "Subcommands:"
 msgstr "സബ്കമാന്‍ഡുകള്‍:"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was
 #. last executed
-#: ../client/pk-console.c:1235
+#: ../client/pk-console.c:1240
 msgid "Failed to get the time since this action was last completed"
 msgstr "ഈ പ്രവര്‍ത്തി അവസാനമായി പൂര്‍ത്തിയാക്കിയ സമയം ലഭ്യമായില്ല"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1277 ../client/pk-monitor.c:371
+#: ../client/pk-console.c:1282 ../client/pk-monitor.c:371
 msgid "Show the program version and exit"
 msgstr "പ്രോഗ്രാമിന്റെ പതിപ്പ് കാണിച്ചശേഷം പുറത്ത് കടക്കുക"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1280
+#: ../client/pk-console.c:1285
 msgid "Set the filter, e.g. installed"
 msgstr "ഫില്‍‌റ്റര്‍ ക്രമികരിക്കുക, e.g. ഇന്‍സ്റ്റോള്‍ ചെയ്തിരിക്കുന്നു"
 
 #. TRANSLATORS: command line argument, use a non-standard install prefix
-#: ../client/pk-console.c:1283
+#: ../client/pk-console.c:1288
 msgid "Set the install root, e.g. '/' or '/mnt/ltsp'"
 msgstr ""
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1286
+#: ../client/pk-console.c:1291
 msgid "Exit without waiting for actions to complete"
 msgstr ""
 "പൂര്‍ത്തിയാകുന്നതിനുള്ള പ്രവര്‍ത്തികള്‍ക്കായി കാത്തിരിക്കാതെ പുറത്ത് കടക്കുക"
 
 #. command line argument, do we ask questions
-#: ../client/pk-console.c:1289
+#: ../client/pk-console.c:1294
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:525
 msgid "Install the packages without asking for confirmation"
 msgstr "രണ്ടാമതുറപ്പിക്കാതെ പാക്കേജുകള്‍ ഇന്‍സ്റ്റോള്‍ ചെയ്യുക"
 
 #. TRANSLATORS: command line argument, this command is not a priority
-#: ../client/pk-console.c:1292
+#: ../client/pk-console.c:1297
 msgid "Run the command using idle network bandwidth and also using less power"
 msgstr ""
 "സ്ഥിരമായ നെറ്റ്‌വര്‍ക്ക് ബാന്‍ഡ്‌വിഡ്തും കുറഞ്ഞ പവറും ഉപയോഗിച്ചു് കമാന്‍ഡ് "
 "പ്രവര്‍ത്തിപ്പുക്കുക"
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1295
+#: ../client/pk-console.c:1300
 msgid ""
 "Print to screen a machine readable output, rather than using animated "
 "widgets"
@@ -444,156 +445,156 @@ msgstr ""
 "ഔട്ട്പുട്ട് സ്ക്രീനിലേക്ക് പ്രിന്റ് ചെയ്യുക"
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1298
+#: ../client/pk-console.c:1303
 msgid "The maximum metadata cache age. Use -1 for 'never'."
 msgstr ""
 
 #. TRANSLATORS: command line argument, --help
-#: ../client/pk-console.c:1301
+#: ../client/pk-console.c:1306
 msgid "Show help options."
 msgstr ""
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1331
+#: ../client/pk-console.c:1336
 msgid "Failed to parse command line"
 msgstr ""
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1341
+#: ../client/pk-console.c:1346
 msgid "Failed to contact PackageKit"
 msgstr "PackageKit-മായി ബന്ധപ്പെടുവാന്‍ സാധിച്ചില്ല"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1394
+#: ../client/pk-console.c:1399
 msgid "The proxy could not be set"
 msgstr ""
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1406
+#: ../client/pk-console.c:1411
 msgid "The install root could not be set"
 msgstr ""
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1418
+#: ../client/pk-console.c:1423
 msgid "The filter specified was invalid"
 msgstr "നല്‍കിയ ഫില്‍‌റ്റര്‍ തെറ്റാണു്"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1437
+#: ../client/pk-console.c:1442
 msgid "A search type is required, e.g. name"
 msgstr "തെരയുന്നതിനുള്ള തരം ആവശ്യമുണ്ടു്, ഉദാ. പേരു്"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1444 ../client/pk-console.c:1456
-#: ../client/pk-console.c:1468 ../client/pk-console.c:1480
+#: ../client/pk-console.c:1449 ../client/pk-console.c:1461
+#: ../client/pk-console.c:1473 ../client/pk-console.c:1485
 msgid "A search term is required"
 msgstr "തെരയുന്നതിനുള്ള വാചകം ആവശ്യമുണ്ടു്"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1490
+#: ../client/pk-console.c:1495
 msgid "Invalid search type"
 msgstr "തെറ്റായ തരത്തിലുള്ള തെരച്ചില്‍"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1496
+#: ../client/pk-console.c:1501
 msgid "A package name to install is required"
 msgstr "ഇന്‍സ്റ്റോള്‍ ചെയ്യുവാനുള്ള പാക്കേജിന്റെ പേരു് ആവശ്യമുണ്ടു്"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1505
+#: ../client/pk-console.c:1510
 msgid "A filename to install is required"
 msgstr "ഇന്‍സ്റ്റോള്‍ ചെയ്യുവാനുള്ള ഫയലിന്റെ പേരു് ആവശ്യമുണ്ടു്"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1516
+#: ../client/pk-console.c:1521
 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:1527
+#: ../client/pk-console.c:1532
 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:1536
+#: ../client/pk-console.c:1541
 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:1543
+#: ../client/pk-console.c:1548
 msgid "Directory not found"
 msgstr "ഡയറക്ടറി ലഭ്യമല്ല"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1552
+#: ../client/pk-console.c:1557
 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:1563
+#: ../client/pk-console.c:1568
 msgid "A transaction identifier (tid) is required"
 msgstr "ഒരു ട്രാന്‍സാക്ഷന്‍ ഐഡന്റിഫയര്‍ (tid) ആവശ്യമുണ്ടു്"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:1584
+#: ../client/pk-console.c:1589
 msgid "A package name to resolve is required"
 msgstr "റിസോള്‍വ് ചെയ്യുവാനുള്ള പാക്കേജിന്റെ പേരു് ആവശ്യമുണ്ടു്"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:1595 ../client/pk-console.c:1606
+#: ../client/pk-console.c:1600 ../client/pk-console.c:1611
 msgid "A repository name is required"
 msgstr "സംഭരണിയ്ക്കുള്ള പേരു് ആവശ്യമുണ്ടു്"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:1617
+#: ../client/pk-console.c:1622
 msgid "A repo name, parameter and value are required"
 msgstr "ഒരു റിപ്പോയുടെ പേരും പരാമീറ്റരും മൂല്ല്യവും ആവശ്യമുണ്ടു്"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:1634
+#: ../client/pk-console.c:1639
 msgid "An action, e.g. 'update-system' is required"
 msgstr "ഒരു പ്രവര്‍ത്തി ആവശ്യമുണ്ടു്, ഉദാ. 'update-system'"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:1641
+#: ../client/pk-console.c:1646
 msgid "A correct role is required"
 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:1651 ../client/pk-console.c:1665
-#: ../client/pk-console.c:1674 ../client/pk-console.c:1694
-#: ../client/pk-console.c:1703 ../client/pk-generate-pack.c:314
+#: ../client/pk-console.c:1656 ../client/pk-console.c:1670
+#: ../client/pk-console.c:1679 ../client/pk-console.c:1699
+#: ../client/pk-console.c:1708 ../client/pk-generate-pack.c:314
 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:1683
+#: ../client/pk-console.c:1688
 msgid "A package provide string is required"
 msgstr "പാക്കേജ് ലഭ്യമാക്കുന്ന സ്ട്രിങ് ആവശ്യമുണ്ടു്"
 
 #. TRANSLATORS: The user did not provide a distro name
-#: ../client/pk-console.c:1727
+#: ../client/pk-console.c:1732
 msgid "A distribution name is required"
 msgstr ""
 
 #. TRANSLATORS: The user did not provide an upgrade type
-#: ../client/pk-console.c:1733
+#: ../client/pk-console.c:1738
 msgid "An upgrade type is required, e.g. 'minimal', 'default' or 'complete'"
 msgstr ""
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command
 #. line
-#: ../client/pk-console.c:1783
+#: ../client/pk-console.c:1788
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "'%s' എന്ന ഐച്ഛികത്തിനുള്ള പിന്തുണ ലഭ്യമല്ല"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:1793
+#: ../client/pk-console.c:1798
 msgid "Command failed"
 msgstr "നിര്‍ദ്ദേശം പരാജയപ്പെട്ടു"
 
@@ -730,162 +731,157 @@ msgid "PackageKit Monitor"
 msgstr "പാക്കേജ്കിറ്റ് നിരീക്ഷകന്‍"
 
 #. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/pk-plugin-install.c:499
+#: ../contrib/browser-plugin/pk-plugin-install.c:503
 msgid "Getting package information..."
 msgstr "പാക്കേജ് സംബന്ധിച്ചുള്ള വിവരം ലഭ്യമാകുന്നു..."
 
 #. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/pk-plugin-install.c:505
+#: ../contrib/browser-plugin/pk-plugin-install.c:509
 #, c-format
 msgid "Run %s"
 msgstr "%s പ്രവര്‍ത്തിപ്പിക്കുക"
 
 #. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:511
+#: ../contrib/browser-plugin/pk-plugin-install.c:515
 msgid "Installed version"
 msgstr "ഇന്‍സ്റ്റോള്‍ ചെയ്തിരിക്കുന്ന പതിപ്പ്"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:519
+#: ../contrib/browser-plugin/pk-plugin-install.c:523
 #, c-format
 msgid "Run version %s now"
 msgstr "%s എന്ന പതിപ്പ് ഉടന്‍ പ്രവര്‍ത്തിപ്പിക്കുക"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:525
+#: ../contrib/browser-plugin/pk-plugin-install.c:529
 msgid "Run now"
 msgstr "ഉടന്‍ പ്രവര്‍ത്തിപ്പിക്കുക"
 
 #. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:531
+#: ../contrib/browser-plugin/pk-plugin-install.c:535
 #, c-format
 msgid "Update to version %s"
 msgstr "%s എന്ന പതിപ്പിലേക്ക് പരിഷ്കരിക്കുക"
 
 #. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:537
+#: ../contrib/browser-plugin/pk-plugin-install.c:541
 #, c-format
 msgid "Install %s now"
 msgstr "%s ഉടന്‍ ഇന്‍സ്റ്റോള്‍ ചെയ്യുക"
 
 #. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:540
+#: ../contrib/browser-plugin/pk-plugin-install.c:544
 msgid "Version"
 msgstr "പതിപ്പ്"
 
 #. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/pk-plugin-install.c:545
+#: ../contrib/browser-plugin/pk-plugin-install.c:549
 msgid "No packages found for your system"
 msgstr ""
 "നിങ്ങളുടെ സിസ്റ്റമില്‍ ഇന്‍സ്റ്റോള്‍ ചെയ്യുന്നതിനുള്ള പാക്കേജുകള്‍ ലഭ്യമല്ല"
 
 #. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/pk-plugin-install.c:550
+#: ../contrib/browser-plugin/pk-plugin-install.c:554
 msgid "Installing..."
 msgstr "ഇന്‍സ്റ്റോള്‍ ചെയ്യുന്നു..."
 
 #. TRANSLATORS: downloading repo data so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:366
+#: ../contrib/command-not-found/pk-command-not-found.c:363
 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:370
+#: ../contrib/command-not-found/pk-command-not-found.c:367
 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:374
+#: ../contrib/command-not-found/pk-command-not-found.c:371
 msgid "Waiting for package manager lock."
 msgstr "പാക്കേജ് മാനേജര്‍ ലോക്കിനായി കാത്തിരിക്കുന്നു."
 
 #. TRANSLATORS: loading package cache so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:378
+#: ../contrib/command-not-found/pk-command-not-found.c:375
 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:444
+#: ../contrib/command-not-found/pk-command-not-found.c:439
 msgid "Failed to search for file"
 msgstr "ഫയല്‍ കണ്ടുപിടിക്കുന്നതില്‍ പരാജയപ്പെട്ടു"
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
-#: ../contrib/command-not-found/pk-command-not-found.c:456
+#: ../contrib/command-not-found/pk-command-not-found.c:451
 msgid "Getting the list of files failed"
 msgstr ""
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:602
+#: ../contrib/command-not-found/pk-command-not-found.c:597
 msgid "Failed to launch:"
 msgstr "ലഭ്യമാക്കുന്നതില്‍ പരാജയം:"
 
 #. TRANSLATORS: we failed to install the package
-#: ../contrib/command-not-found/pk-command-not-found.c:630
+#: ../contrib/command-not-found/pk-command-not-found.c:625
 msgid "Failed to install packages"
 msgstr "പാക്കേജുകള്‍ ഇന്‍സ്റ്റോള്‍ ചെയ്യുന്നതില്‍ പരാജയം"
 
-#. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/command-not-found/pk-command-not-found.c:706
-msgid "PackageKit Command Not Found"
-msgstr "പാക്കേജ്കിറ്റ് കമാന്‍ഡ് ലഭ്യമായില്ല"
-
 #. TRANSLATORS: the prefix of all the output telling the user
 #. * why it's not executing. NOTE: this is lowercase to mimic
 #. * the style of bash itself -- apologies
-#: ../contrib/command-not-found/pk-command-not-found.c:741
+#: ../contrib/command-not-found/pk-command-not-found.c:723
 msgid "command not found"
 msgstr ""
 
 #. TRANSLATORS: tell the user what we think the command is
-#: ../contrib/command-not-found/pk-command-not-found.c:759
+#: ../contrib/command-not-found/pk-command-not-found.c:741
 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:773
+#: ../contrib/command-not-found/pk-command-not-found.c:755
 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:787
-#: ../contrib/command-not-found/pk-command-not-found.c:796
+#: ../contrib/command-not-found/pk-command-not-found.c:769
+#: ../contrib/command-not-found/pk-command-not-found.c:778
 msgid "Similar commands are:"
 msgstr "ഇതു് പോലുള്ള കമാന്‍ഡുകള്‍:"
 
 #. TRANSLATORS: ask the user to choose a file to run
-#: ../contrib/command-not-found/pk-command-not-found.c:803
+#: ../contrib/command-not-found/pk-command-not-found.c:785
 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:821
+#: ../contrib/command-not-found/pk-command-not-found.c:803
 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:828
+#: ../contrib/command-not-found/pk-command-not-found.c:810
 #, 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:855
+#: ../contrib/command-not-found/pk-command-not-found.c:837
 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:865
+#: ../contrib/command-not-found/pk-command-not-found.c:847
 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:874
+#: ../contrib/command-not-found/pk-command-not-found.c:856
 msgid "Please choose a package to install"
 msgstr "ദയവായി ഇന്‍സ്റ്റോള്‍ ചെയ്യുന്നതിനായി ഒരു പാക്കേജ് തെരഞ്ഞെടുക്കുക"
 
@@ -1063,7 +1059,7 @@ msgstr "സിമുലേറ്റ് മോഡില്‍ പാക്കേ
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
 #. TRANSLATORS: transaction state, installing packages
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:860
-#: ../lib/packagekit-glib2/pk-console-shared.c:296
+#: ../lib/packagekit-glib2/pk-console-shared.c:331
 #, c-format
 msgid "Installing packages"
 msgstr "പാക്കേജുകള്‍ ഇന്‍സ്റ്റോള്‍ ചെയ്യുന്നു"
@@ -1197,474 +1193,474 @@ msgstr "പാക്കേജ്കിറ്റിനുള്ള പാക്
 msgid "PackageKit Service Pack"
 msgstr "പാക്കേജ്കിറ്റിനുള്ള സര്‍വീസ് പാക്ക്"
 
-#: ../lib/packagekit-glib2/pk-console-shared.c:64
+#: ../lib/packagekit-glib2/pk-console-shared.c:65
 #, c-format
 msgid "Please enter a number from 1 to %i: "
 msgstr "ദയവായി 1 മുതല്‍ %i വരെയുള്ള ഒരു അക്കം നല്‍കുക: "
 
 #. TRANSLATORS: more than one package could be found that matched, to follow
 #. is a list of possible packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:198
+#: ../lib/packagekit-glib2/pk-console-shared.c:233
 msgid "More than one package matches:"
 msgstr "ഒന്നില്‍ കൂടുതല്‍ ചേരുന്ന പാക്കേജുകള്‍:"
 
 #. TRANSLATORS: This finds out which package in the list to use
-#: ../lib/packagekit-glib2/pk-console-shared.c:209
+#: ../lib/packagekit-glib2/pk-console-shared.c:244
 msgid "Please choose the correct package: "
 msgstr "ദയവായി ശരിയായ പാക്കേജ് തെരഞ്ഞെടുക്കുക: "
 
 #. TRANSLATORS: This is when the transaction status is not known
-#: ../lib/packagekit-glib2/pk-console-shared.c:264
+#: ../lib/packagekit-glib2/pk-console-shared.c:299
 msgid "Unknown state"
 msgstr "അപരിചിതമായ അവസ്ഥ"
 
 #. TRANSLATORS: transaction state, the daemon is in the process of starting
-#: ../lib/packagekit-glib2/pk-console-shared.c:268
+#: ../lib/packagekit-glib2/pk-console-shared.c:303
 msgid "Starting"
 msgstr "ആരംഭിക്കുന്നു"
 
 #. TRANSLATORS: transaction state, the transaction is waiting for another to
 #. complete
-#: ../lib/packagekit-glib2/pk-console-shared.c:272
+#: ../lib/packagekit-glib2/pk-console-shared.c:307
 msgid "Waiting in queue"
 msgstr "ക്യൂവില്‍ കാത്തിരിക്കുന്നു"
 
 #. TRANSLATORS: transaction state, just started
-#: ../lib/packagekit-glib2/pk-console-shared.c:276
+#: ../lib/packagekit-glib2/pk-console-shared.c:311
 msgid "Running"
 msgstr "പ്രവര്‍ത്തിക്കുന്നു"
 
 #. TRANSLATORS: transaction state, is querying data
-#: ../lib/packagekit-glib2/pk-console-shared.c:280
+#: ../lib/packagekit-glib2/pk-console-shared.c:315
 msgid "Querying"
 msgstr "ക്വറി ചെയ്യുന്നു"
 
 #. TRANSLATORS: transaction state, getting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:284
+#: ../lib/packagekit-glib2/pk-console-shared.c:319
 msgid "Getting information"
 msgstr "വിവരം ലഭ്യമാകുന്നു"
 
 #. TRANSLATORS: transaction state, removing packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:288
+#: ../lib/packagekit-glib2/pk-console-shared.c:323
 msgid "Removing packages"
 msgstr "പാക്കേജുകള്‍ നീക്കം ചെയ്യുന്നു"
 
 #. TRANSLATORS: transaction state, downloading package files
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:292
-#: ../lib/packagekit-glib2/pk-console-shared.c:670
+#: ../lib/packagekit-glib2/pk-console-shared.c:327
+#: ../lib/packagekit-glib2/pk-console-shared.c:705
 msgid "Downloading packages"
 msgstr "പാക്കേജുകള്‍ ഡൌണ്‍ലോട് ചെയ്യുന്നു"
 
 #. TRANSLATORS: transaction state, refreshing internal lists
-#: ../lib/packagekit-glib2/pk-console-shared.c:300
+#: ../lib/packagekit-glib2/pk-console-shared.c:335
 msgid "Refreshing software list"
 msgstr "സോഫ്റ്റ്‌വെയര്‍ പട്ടി പുതുക്കുന്നുു"
 
 #. TRANSLATORS: transaction state, installing updates
-#: ../lib/packagekit-glib2/pk-console-shared.c:304
+#: ../lib/packagekit-glib2/pk-console-shared.c:339
 msgid "Installing updates"
 msgstr "പരിഷ്കാരങ്ങള്‍ ഇന്‍സ്റ്റോള്‍ ചെയ്യുന്നു"
 
 #. TRANSLATORS: transaction state, removing old packages, and cleaning config
 #. files
-#: ../lib/packagekit-glib2/pk-console-shared.c:308
+#: ../lib/packagekit-glib2/pk-console-shared.c:343
 msgid "Cleaning up packages"
 msgstr "പാക്കേജുകള്‍ വെടിപ്പാക്കുന്നു"
 
 #. TRANSLATORS: transaction state, obsoleting old packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:312
+#: ../lib/packagekit-glib2/pk-console-shared.c:347
 msgid "Obsoleting packages"
 msgstr "പാക്കേജുകള്‍ ഇല്ലാതാക്കുന്നു"
 
 #. TRANSLATORS: transaction state, checking the transaction before we do it
-#: ../lib/packagekit-glib2/pk-console-shared.c:316
+#: ../lib/packagekit-glib2/pk-console-shared.c:351
 msgid "Resolving dependencies"
 msgstr "ഡിപെന്‍ഡന്‍സികള്‍ റിസോള്‍വ് ചെയ്യുന്നു"
 
 #. TRANSLATORS: transaction state, checking if we have all the security keys
 #. for the operation
-#: ../lib/packagekit-glib2/pk-console-shared.c:320
+#: ../lib/packagekit-glib2/pk-console-shared.c:355
 msgid "Checking signatures"
 msgstr "ഒപ്പുകള്‍ പരിശോധിക്കുന്നു"
 
 #. TRANSLATORS: transaction state, when we return to a previous system state
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:324
-#: ../lib/packagekit-glib2/pk-console-shared.c:630
+#: ../lib/packagekit-glib2/pk-console-shared.c:359
+#: ../lib/packagekit-glib2/pk-console-shared.c:665
 msgid "Rolling back"
 msgstr "റോളിങ് ബാക്ക്"
 
 #. TRANSLATORS: transaction state, when we're doing a test transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:328
+#: ../lib/packagekit-glib2/pk-console-shared.c:363
 msgid "Testing changes"
 msgstr "മാറ്റങ്ങള്‍ പരീക്ഷിക്കുന്നു"
 
 #. TRANSLATORS: transaction state, when we're writing to the system package
 #. database
-#: ../lib/packagekit-glib2/pk-console-shared.c:332
+#: ../lib/packagekit-glib2/pk-console-shared.c:367
 msgid "Committing changes"
 msgstr "മാറ്റങ്ങള്‍ സമര്‍പ്പിക്കുന്നു"
 
 #. TRANSLATORS: transaction state, requesting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:336
+#: ../lib/packagekit-glib2/pk-console-shared.c:371
 msgid "Requesting data"
 msgstr "ഡേറ്റാ ആവശ്യപ്പെടുന്നു"
 
 #. TRANSLATORS: transaction state, all done!
-#: ../lib/packagekit-glib2/pk-console-shared.c:340
+#: ../lib/packagekit-glib2/pk-console-shared.c:375
 msgid "Finished"
 msgstr "പൂര്‍ത്തിയാക്കി"
 
 #. TRANSLATORS: transaction state, in the process of cancelling
-#: ../lib/packagekit-glib2/pk-console-shared.c:344
+#: ../lib/packagekit-glib2/pk-console-shared.c:379
 msgid "Cancelling"
 msgstr "റദ്ദാക്കുന്നു"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:348
+#: ../lib/packagekit-glib2/pk-console-shared.c:383
 msgid "Downloading repository information"
 msgstr "റിപ്പോസിറ്ററി വിവരം ഡൌണ്‍ലോട് ചെയ്യുന്നു"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:352
+#: ../lib/packagekit-glib2/pk-console-shared.c:387
 msgid "Downloading list of packages"
 msgstr "പാക്കേജുകളുടെ പട്ടിക ഡൌണ്‍ലോട് ചെയ്യുന്നു"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:356
+#: ../lib/packagekit-glib2/pk-console-shared.c:391
 msgid "Downloading file lists"
 msgstr "ഫയല്‍ പട്ടികകള്‍‌ ഡൌണ്‍ലോട് ചെയ്യുന്നു"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:360
+#: ../lib/packagekit-glib2/pk-console-shared.c:395
 msgid "Downloading lists of changes"
 msgstr "മാറ്റങ്ങളുടെ പട്ടിക ഡൌണ്‍ലോട് ചെയ്യുന്നു"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:364
+#: ../lib/packagekit-glib2/pk-console-shared.c:399
 msgid "Downloading groups"
 msgstr "ഗ്രൂപ്പുകള്‍ ഡൌണ്‍ലോട് ചെയ്യുന്നു"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:368
+#: ../lib/packagekit-glib2/pk-console-shared.c:403
 msgid "Downloading update information"
 msgstr "പരിഷ്കരണ വിവരം ഡൌണ്‍ലോട് ചെയ്യുന്നു"
 
 #. TRANSLATORS: transaction state, repackaging delta files
-#: ../lib/packagekit-glib2/pk-console-shared.c:372
+#: ../lib/packagekit-glib2/pk-console-shared.c:407
 msgid "Repackaging files"
 msgstr "ഫയലുകള്‍ വീണ്ടും പാക്കേജ് ചെയ്യുന്നു"
 
 #. TRANSLATORS: transaction state, loading databases
-#: ../lib/packagekit-glib2/pk-console-shared.c:376
+#: ../lib/packagekit-glib2/pk-console-shared.c:411
 msgid "Loading cache"
 msgstr "കാഷ് ലഭ്യമാക്കുന്നു"
 
 #. TRANSLATORS: transaction state, scanning for running processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:380
+#: ../lib/packagekit-glib2/pk-console-shared.c:415
 msgid "Scanning applications"
 msgstr "പ്രയോഗങ്ങള്‍ പരിശോധിക്കുന്നു"
 
 #. TRANSLATORS: transaction state, generating a list of packages installed on
 #. the system
-#: ../lib/packagekit-glib2/pk-console-shared.c:384
+#: ../lib/packagekit-glib2/pk-console-shared.c:419
 msgid "Generating package lists"
 msgstr "പാക്കേജ് പട്ടികകള്‍ ലഭ്യമാകുന്നു"
 
 #. TRANSLATORS: transaction state, when we're waiting for the native tools to
 #. exit
-#: ../lib/packagekit-glib2/pk-console-shared.c:388
+#: ../lib/packagekit-glib2/pk-console-shared.c:423
 msgid "Waiting for package manager lock"
 msgstr "പാക്കേജ് മാനേജര്‍ ലോക്കിനായി കാത്തിരിക്കുന്നു"
 
 #. TRANSLATORS: transaction state, waiting for user to type in a password
-#: ../lib/packagekit-glib2/pk-console-shared.c:392
+#: ../lib/packagekit-glib2/pk-console-shared.c:427
 msgid "Waiting for authentication"
 msgstr "ആധികാരികതയ്ക്കായി കാത്തിരിക്കുന്നു"
 
 #. TRANSLATORS: transaction state, we are updating the list of processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:396
+#: ../lib/packagekit-glib2/pk-console-shared.c:431
 msgid "Updating running applications"
 msgstr "പ്രവര്‍ത്തിക്കുന്ന പ്രയോഗങ്ങള്‍ പരിഷ്കരിക്കുന്നു"
 
 #. TRANSLATORS: transaction state, we are checking executable files currently
 #. in use
-#: ../lib/packagekit-glib2/pk-console-shared.c:400
+#: ../lib/packagekit-glib2/pk-console-shared.c:435
 msgid "Checking applications in use"
 msgstr "ഉപയോഗിത്തിലുള്ള പ്രയോഗങ്ങള്‍ പരിശോധിക്കുന്നു"
 
 #. TRANSLATORS: transaction state, we are checking for libraries currently in
 #. use
-#: ../lib/packagekit-glib2/pk-console-shared.c:404
+#: ../lib/packagekit-glib2/pk-console-shared.c:439
 msgid "Checking libraries in use"
 msgstr "ഉപയോഗത്തിലുള്ള ലൈബ്രറികള്‍ പരിശോധിക്കുന്നു"
 
 #. TRANSLATORS: transaction state, we are copying package files before or
 #. after the transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:408
+#: ../lib/packagekit-glib2/pk-console-shared.c:443
 msgid "Copying files"
 msgstr "ഫയലുകള്‍ പകര്‍ത്തുന്നു"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:426
+#: ../lib/packagekit-glib2/pk-console-shared.c:461
 msgid "Trivial"
 msgstr "ഏറ്റവും പ്രധാനപ്പെട്ട"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:430
+#: ../lib/packagekit-glib2/pk-console-shared.c:465
 msgid "Normal"
 msgstr "സാധാരണ"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:434
+#: ../lib/packagekit-glib2/pk-console-shared.c:469
 msgid "Important"
 msgstr "പ്രധാനം"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:438
+#: ../lib/packagekit-glib2/pk-console-shared.c:473
 msgid "Security"
 msgstr "സുരക്ഷാ"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:442
+#: ../lib/packagekit-glib2/pk-console-shared.c:477
 msgid "Bug fix "
 msgstr "ബഗിനുള്ള പരിഹാരം"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:446
+#: ../lib/packagekit-glib2/pk-console-shared.c:481
 msgid "Enhancement"
 msgstr "പുരോഗമിച്ചതു്"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:450
+#: ../lib/packagekit-glib2/pk-console-shared.c:485
 msgid "Blocked"
 msgstr "തടസ്സപ്പെട്ടതു്"
 
 #. TRANSLATORS: The state of a package
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:455
-#: ../lib/packagekit-glib2/pk-console-shared.c:528
+#: ../lib/packagekit-glib2/pk-console-shared.c:490
+#: ../lib/packagekit-glib2/pk-console-shared.c:563
 msgid "Installed"
 msgstr "ഇന്‍സ്റ്റോള്‍ ചെയ്തിരിക്കുന്ന"
 
 #. TRANSLATORS: The state of a package, i.e. not installed
-#: ../lib/packagekit-glib2/pk-console-shared.c:460
+#: ../lib/packagekit-glib2/pk-console-shared.c:495
 msgid "Available"
 msgstr "ലഭ്യം"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:478
+#: ../lib/packagekit-glib2/pk-console-shared.c:513
 msgid "Downloading"
 msgstr "ഡൌണ്‍ലോട് ചെയ്യുന്നു"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:482
+#: ../lib/packagekit-glib2/pk-console-shared.c:517
 msgid "Updating"
 msgstr "പരിഷ്കരിക്കുന്നു"
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:486
-#: ../lib/packagekit-glib2/pk-console-shared.c:606
+#: ../lib/packagekit-glib2/pk-console-shared.c:521
+#: ../lib/packagekit-glib2/pk-console-shared.c:641
 msgid "Installing"
 msgstr "ഇന്‍സ്റ്റോള്‍ ചെയ്യുന്നു"
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:490
-#: ../lib/packagekit-glib2/pk-console-shared.c:602
+#: ../lib/packagekit-glib2/pk-console-shared.c:525
+#: ../lib/packagekit-glib2/pk-console-shared.c:637
 msgid "Removing"
 msgstr "നീക്കം ചെയ്യുന്നു"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:494
+#: ../lib/packagekit-glib2/pk-console-shared.c:529
 msgid "Cleaning up"
 msgstr "വെടിപ്പാക്കുന്നു"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:498
+#: ../lib/packagekit-glib2/pk-console-shared.c:533
 msgid "Obsoleting"
 msgstr "വേണ്ടെന്നുവയ്ക്കുന്നു"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:502
+#: ../lib/packagekit-glib2/pk-console-shared.c:537
 msgid "Reinstalling"
 msgstr "വീണ്ടും ഇന്‍സ്റ്റോള്‍ ചെയ്യുന്നു"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:520
+#: ../lib/packagekit-glib2/pk-console-shared.c:555
 msgid "Downloaded"
 msgstr "ഡൌണ്‍ലോട് ചെയ്തിരിക്കുന്നു"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:532
+#: ../lib/packagekit-glib2/pk-console-shared.c:567
 msgid "Removed"
 msgstr "നീക്കം ചെയ്തിരിക്കുന്നു"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:536
+#: ../lib/packagekit-glib2/pk-console-shared.c:571
 msgid "Cleaned up"
 msgstr "വെടിപ്പാക്കിരിക്കുന്നു"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:540
+#: ../lib/packagekit-glib2/pk-console-shared.c:575
 msgid "Obsoleted"
 msgstr "വേണ്ടെന്നുവച്ചിരിക്കുന്നു"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:544
+#: ../lib/packagekit-glib2/pk-console-shared.c:579
 msgid "Reinstalled"
 msgstr "വീണ്ടും ഇന്‍സ്റ്റോള്‍ ചെയ്തിരിക്കുന്നു"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:562
+#: ../lib/packagekit-glib2/pk-console-shared.c:597
 msgid "Unknown role type"
 msgstr "അപരിചിതമായ റോള്‍ രീതി"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:566
+#: ../lib/packagekit-glib2/pk-console-shared.c:601
 msgid "Getting dependencies"
 msgstr "ഡിപെന്‍ഡന്‍സികള്‍ ലഭ്യമാകുന്നു"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:570
+#: ../lib/packagekit-glib2/pk-console-shared.c:605
 msgid "Getting update details"
 msgstr "പരിഷ്കരണങ്ങളുടെ വിശദാംശം ലഭ്യമാകുന്നു"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:574
+#: ../lib/packagekit-glib2/pk-console-shared.c:609
 msgid "Getting details"
 msgstr "വിശദാംശങ്ങള്‍ ലഭ്യമാകുന്നു"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:578
+#: ../lib/packagekit-glib2/pk-console-shared.c:613
 msgid "Getting requires"
 msgstr "ലഭ്യമാകുന്നതിനു് ആവശ്യമുള്ളതു്"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:582
+#: ../lib/packagekit-glib2/pk-console-shared.c:617
 msgid "Getting updates"
 msgstr "പരിഷ്കാരങ്ങള്‍ ലഭ്യമാകുന്നു"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:586
+#: ../lib/packagekit-glib2/pk-console-shared.c:621
 msgid "Searching by details"
 msgstr "വിശദാംശങ്ങള്‍ അനുസരിച്ചു് തെരയുന്നു"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:590
+#: ../lib/packagekit-glib2/pk-console-shared.c:625
 msgid "Searching by file"
 msgstr "ഫയലുകള്‍ അനുസരിച്ചു് തെരയുന്നു"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:594
+#: ../lib/packagekit-glib2/pk-console-shared.c:629
 msgid "Searching groups"
 msgstr "ഗ്രൂപ്പുകള്‍ അനുസരിച്ചു് തെരയുന്നു"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:598
+#: ../lib/packagekit-glib2/pk-console-shared.c:633
 msgid "Searching by name"
 msgstr "പേരനുസരിച്ചു് തെരയുന്നു"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:610
+#: ../lib/packagekit-glib2/pk-console-shared.c:645
 msgid "Installing files"
 msgstr "ഫയലുകള്‍ ഇന്‍സ്റ്റോള്‍ ചെയ്യുന്നു"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:614
+#: ../lib/packagekit-glib2/pk-console-shared.c:649
 msgid "Refreshing cache"
 msgstr "കാഷ് പുതുക്കുന്നു"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:618
+#: ../lib/packagekit-glib2/pk-console-shared.c:653
 msgid "Updating packages"
 msgstr "പാക്കേജുകള്‍ പരിഷ്കരിക്കുന്നു"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:622
+#: ../lib/packagekit-glib2/pk-console-shared.c:657
 msgid "Updating system"
 msgstr "സിസ്റ്റം പരിഷ്കരിക്കുന്നു"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:626
+#: ../lib/packagekit-glib2/pk-console-shared.c:661
 msgid "Canceling"
 msgstr "റദ്ദാക്കുന്നു"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:634
+#: ../lib/packagekit-glib2/pk-console-shared.c:669
 msgid "Getting repositories"
 msgstr "റിപ്പോസിറ്ററികള്‍ ലഭ്യമാകുന്നു"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:638
+#: ../lib/packagekit-glib2/pk-console-shared.c:673
 msgid "Enabling repository"
 msgstr "റിപ്പോസിറ്ററി പ്രവര്‍ത്തന സജ്ജമാക്കുന്നു"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:642
+#: ../lib/packagekit-glib2/pk-console-shared.c:677
 msgid "Setting data"
 msgstr "ഡേറ്റാ സജ്ജമാക്കുന്നു"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:646
+#: ../lib/packagekit-glib2/pk-console-shared.c:681
 msgid "Resolving"
 msgstr "പരിഹരിക്കുന്നു"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:650
+#: ../lib/packagekit-glib2/pk-console-shared.c:685
 msgid "Getting file list"
 msgstr "ഫയലുകളുടെ പട്ടിക ലഭ്യമാകുന്നു"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:654
+#: ../lib/packagekit-glib2/pk-console-shared.c:689
 msgid "Getting provides"
 msgstr "ലഭ്യമാകുന്നവ നല്‍കുന്നതു്"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:658
+#: ../lib/packagekit-glib2/pk-console-shared.c:693
 msgid "Installing signature"
 msgstr "ഒപ്പു് ഇന്‍സ്റ്റോള്‍ ചെയ്യുന്നു"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:662
+#: ../lib/packagekit-glib2/pk-console-shared.c:697
 msgid "Getting packages"
 msgstr "പാക്കേജുകള്‍ ലഭ്യമാകുന്നു"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:666
+#: ../lib/packagekit-glib2/pk-console-shared.c:701
 msgid "Accepting EULA"
 msgstr "EULA സ്വീകരിക്കുന്നു"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:674
+#: ../lib/packagekit-glib2/pk-console-shared.c:709
 msgid "Getting upgrades"
 msgstr "പരിഷ്കരണങ്ങള്‍ ലഭ്യമാകുന്നു"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:678
+#: ../lib/packagekit-glib2/pk-console-shared.c:713
 msgid "Getting categories"
 msgstr "വിഭാഗങ്ങള്‍ ലഭ്യമാകുന്നു"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:682
+#: ../lib/packagekit-glib2/pk-console-shared.c:717
 msgid "Getting transactions"
 msgstr "ഇടപാടുകള്‍ ലഭ്യമാകുന്നു"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:686
-#: ../lib/packagekit-glib2/pk-console-shared.c:690
+#: ../lib/packagekit-glib2/pk-console-shared.c:721
+#: ../lib/packagekit-glib2/pk-console-shared.c:725
 msgid "Simulating install"
 msgstr "ഇന്‍സ്റ്റോള്‍ സിമുലേറ്റ് ചെയ്യുന്നു"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:694
+#: ../lib/packagekit-glib2/pk-console-shared.c:729
 msgid "Simulating remove"
 msgstr "നീക്കം ചെയ്യുന്നതു് സിമുലേറ്റ് ചെയ്യുന്നു"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:698
+#: ../lib/packagekit-glib2/pk-console-shared.c:733
 msgid "Simulating update"
 msgstr "പരിഷ്കാരങ്ങള്‍ സിമുലേറ്റ് ചെയ്യുന്നു"
 
@@ -1814,13 +1810,19 @@ msgstr "താഴെ പറയുന്ന പാക്കേജുകള്‍
 msgid "The following packages have to be downgraded:"
 msgstr "താഴെ പറയുന്ന പാക്കേജുകള്‍ ഡൌണ്‍ഗ്രേഡ് ചെയ്യേണ്ടതുണ്ടു്:"
 
+#. TRANSLATORS: When processing, untrusted and non-verified packages may be
+#. encountered
+#: ../lib/packagekit-glib2/pk-task-text.c:325
+msgid "The following packages are untrusted:"
+msgstr ""
+
 #. TRANSLATORS: ask the user if the proposed changes are okay
-#: ../lib/packagekit-glib2/pk-task-text.c:380
+#: ../lib/packagekit-glib2/pk-task-text.c:385
 msgid "Proceed with changes?"
 msgstr "മാറ്റങ്ങളുമായി മുമ്പോട്ട് പോകണമോ?"
 
 #. TRANSLATORS: tell the user we didn't do anything
-#: ../lib/packagekit-glib2/pk-task-text.c:385
+#: ../lib/packagekit-glib2/pk-task-text.c:390
 msgid "The transaction did not proceed."
 msgstr "ഇടപാടു് തുടര്‍ന്നില്ല."
 
@@ -2035,102 +2037,70 @@ msgstr "പാക്കേജുകള്‍ പരിഷ്കരിക്ക
 msgid "Upgrade System"
 msgstr ""
 
-#. TRANSLATORS: failed due to DBus security
-#: ../src/pk-main.c:91
-msgid "Startup failed due to security policies on this machine."
-msgstr "ഈ സിസ്റ്റമിലുള്ള സുരക്ഷ പോളിസികള്‍ കാരണം തുടക്കം പരാജയപ്പെട്ടു."
-
-#. TRANSLATORS: only two ways this can fail...
-#: ../src/pk-main.c:93
-msgid "This can happen for two reasons:"
-msgstr "ഇതിനു് കാരണം താഴെ പറയുന്ന രണ്ടു് കാരണങ്ങളാവാം:"
-
-#. TRANSLATORS: only allowed to be owned by root
-#: ../src/pk-main.c:95
-msgid "The correct user is not launching the executable (usually root)"
-msgstr ""
-"ശരിയായ ഉപയോക്താവല്ല എക്സിക്യൂട്ടബിള്‍ പ്രവര്‍ത്തിപ്പിക്കുന്നതു് (സാധാരണ "
-"റൂട്ടാകുന്നു)"
-
-#. TRANSLATORS: or we are installed in a prefix
-#: ../src/pk-main.c:97
-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:223
+#: ../src/pk-main.c:149
 msgid "Packaging backend to use, e.g. dummy"
 msgstr "ഉപയോഗിക്കുന്നതിനായി ബാക്കെന്‍ഡ് പാക്കേജ് ചെയ്യുന്നു, ഉദാ. dummy"
 
 #. TRANSLATORS: if we should run in the background
-#: ../src/pk-main.c:226
+#: ../src/pk-main.c:152
 msgid "Daemonize and detach from the terminal"
 msgstr "ഡെമണൈസ് ചെയ്ത് ടെര്‍മിനലില്‍ നിന്നും വേര്‍പെടുത്തുക"
 
 #. TRANSLATORS: if we should not monitor how long we are inactive for
-#: ../src/pk-main.c:229
+#: ../src/pk-main.c:155
 msgid "Disable the idle timer"
 msgstr "ഐഡില്‍ ടൈമര്‍ പ്രവര്‍ത്തന രഹിതമാക്കുക"
 
 #. TRANSLATORS: show version
-#: ../src/pk-main.c:232
+#: ../src/pk-main.c:158
 msgid "Show version and exit"
 msgstr "പതിപ്പ് കാണിച്ചശേഷം പുറത്ത് കടക്കുക"
 
 #. TRANSLATORS: exit after we've started up, used for user profiling
-#: ../src/pk-main.c:235
+#: ../src/pk-main.c:161
 msgid "Exit after a small delay"
 msgstr "ഒരു ചെറിയ താമസത്തിനു് ശേഷം പുറത്ത് കടക്കുക"
 
 #. TRANSLATORS: exit straight away, used for automatic profiling
-#: ../src/pk-main.c:238
+#: ../src/pk-main.c:164
 msgid "Exit after the engine has loaded"
 msgstr "എഞ്ചിന്‍ ലഭ്യമാക്കിയ ശേഷം പുറത്ത് കടക്കുക"
 
+#. TRANSLATORS: don't unset environment variables, used for debugging
+#: ../src/pk-main.c:167
+msgid "Don't clear environment on startup"
+msgstr ""
+
 #. TRANSLATORS: describing the service that is running
-#: ../src/pk-main.c:253
+#: ../src/pk-main.c:179
 msgid "PackageKit service"
 msgstr "പാക്കേജ്കിറ്റ് സര്‍വീസ്"
 
-#. TRANSLATORS: fatal error, dbus is not running
-#: ../src/pk-main.c:298
-msgid "Cannot connect to the system bus"
-msgstr "സിസ്റ്റം ബസിലേക്ക് കണക്ട് ചെയ്യുവാന്‍ സാധ്യമായില്ല"
-
-#: ../src/pk-main.c:344
+#: ../src/pk-main.c:253
 msgid "Failed to load any of the specified backends:"
 msgstr ""
 
-#. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error
-#. follows
-#: ../src/pk-main.c:358
-msgid "Error trying to start:"
-msgstr "ആരംഭിക്കുന്നതിനിടെ പിശക് സംഭവിച്ചിരിക്കുന്നു:"
-
 #. TRANSLATORS: is not GPG signed
-#: ../src/pk-transaction.c:2611 ../src/pk-transaction.c:2618
+#: ../src/pk-transaction.c:2696
 msgid "The software is not from a trusted source."
 msgstr "സോഫ്റ്റ്‌വെയര്‍ ഒരു ട്രസ്റ്റഡ് സോഴ്സില്‍ നിന്നുമല്ല."
 
-#: ../src/pk-transaction.c:2623
+#: ../src/pk-transaction.c:2704
 msgid "Do not update this package unless you are sure it is safe to do so."
 msgstr "ഈ പാക്കേജ് സുരക്ഷിതമാണു് എന്നുറപ്പു് വരുത്താതെ ഇതു് പരിഷ്കരിക്കരുത്."
 
-#: ../src/pk-transaction.c:2624
+#: ../src/pk-transaction.c:2705
 msgid "Do not update these packages unless you are sure it is safe to do so."
 msgstr "ഈ പാക്കേജ് സുരക്ഷിതമാണു് എന്നുറപ്പു് വരുത്താതെ ഇതു് പരിഷ്കരിക്കരുത്."
 
-#: ../src/pk-transaction.c:2634
+#: ../src/pk-transaction.c:2715
 msgid "Do not install this package unless you are sure it is safe to do so."
 msgstr ""
 "ഈ പാക്കേജ് സുരക്ഷിതമാണു് എന്നുറപ്പു് വരുത്താതെ ഇതു് ഇന്‍സ്റ്റോള്‍ "
 "ചെയ്യരുതു്."
 
-#: ../src/pk-transaction.c:2635
+#: ../src/pk-transaction.c:2716
 msgid "Do not install these packages unless you are sure it is safe to do so."
 msgstr ""
 "ഈ പാക്കേജ് സുരക്ഷിതമാണു് എന്നുറപ്പു് വരുത്താതെ ഇതു് ഇന്‍സ്റ്റോള്‍ "
diff --git a/po/mr.po b/po/mr.po
index cf1c9a5..92ef5d5 100644
--- a/po/mr.po
+++ b/po/mr.po
@@ -2,14 +2,17 @@
 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
 # This file is distributed under the same license as the PACKAGE package.
 # 
-# Richard Hughes <richard at hughsie.com>, 2011
+# Translators:
+# Richard Hughes <richard at hughsie.com>, 2011.
+# Sandeep Shedmake <sandeep.shedmake at gmail.com>, 2009.
+# Sandeep Shedmake <sshedmak at redhat.com>, 2009.
 msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-04 10:50+0100\n"
-"PO-Revision-Date: 2011-05-04 09:56+0000\n"
-"Last-Translator: hughsie <richard at hughsie.com>\n"
+"POT-Creation-Date: 2011-11-10 19:50+0000\n"
+"PO-Revision-Date: 2011-11-10 19:50+0000\n"
+"Last-Translator: Richard Hughes <richard at hughsie.com>\n"
 "Language-Team: LANGUAGE <LL at li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -195,7 +198,7 @@ msgstr "वितरण दिनांक"
 
 #. TRANSLATORS: details about the update, date the update was updated
 #. TRANSLATORS: The action of the package, in past tense
-#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:524
+#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:559
 msgid "Updated"
 msgstr "अद्ययावतीत"
 
@@ -285,7 +288,7 @@ msgstr ""
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
 #: ../client/pk-console.c:704
-#: ../contrib/command-not-found/pk-command-not-found.c:639
+#: ../contrib/command-not-found/pk-command-not-found.c:634
 msgid "The transaction failed"
 msgstr "व्यवहार अपयशी"
 
@@ -337,21 +340,21 @@ msgstr ""
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:866
+#: ../client/pk-console.c:871
 #, c-format
 msgid "This tool could not find any available package: %s"
 msgstr "हे साधन कुठलेही उपलब्ध संकुल शोधू शकते नाही: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:894
+#: ../client/pk-console.c:899
 #, c-format
 msgid "This tool could not find the installed package: %s"
 msgstr "हे साधन प्रतिष्ठापीत संकुल शोधू शकले नाही: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:922 ../client/pk-console.c:950
+#: ../client/pk-console.c:927 ../client/pk-console.c:955
 #, c-format
 msgid "This tool could not find the package: %s"
 msgstr "हे साधन संकुल शोधू शकले नाही: %s"
@@ -364,68 +367,68 @@ msgstr "हे साधन संकुल शोधू शकले नाह
 #. detailed error follows
 #. TRANSLATORS: The package name was not found in any software sources. The
 #. detailed error follows
-#: ../client/pk-console.c:978 ../client/pk-console.c:1006
-#: ../client/pk-console.c:1034 ../client/pk-console.c:1062
-#: ../client/pk-console.c:1090
+#: ../client/pk-console.c:983 ../client/pk-console.c:1011
+#: ../client/pk-console.c:1039 ../client/pk-console.c:1067
+#: ../client/pk-console.c:1095
 #, c-format
 msgid "This tool could not find all the packages: %s"
 msgstr "हे साधन सर्व संकुल शोधू शकले नाही: %s"
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek
 #. without a paddle
-#: ../client/pk-console.c:1119
+#: ../client/pk-console.c:1124
 msgid "The daemon crashed mid-transaction!"
 msgstr "डिमन व्यवहारच्या मधोमध क्रॅश झाले!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1153
+#: ../client/pk-console.c:1158
 msgid "PackageKit Console Interface"
 msgstr "PackageKit कन्सोल संवाद"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1155
+#: ../client/pk-console.c:1160
 msgid "Subcommands:"
 msgstr "उपआदेश:"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was
 #. last executed
-#: ../client/pk-console.c:1235
+#: ../client/pk-console.c:1240
 msgid "Failed to get the time since this action was last completed"
 msgstr "शेवटच्यावेळी पूर्ण केलेली कृतीचे वेळ प्राप्त करण्यास अपयशी"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1277 ../client/pk-monitor.c:371
+#: ../client/pk-console.c:1282 ../client/pk-monitor.c:371
 msgid "Show the program version and exit"
 msgstr "कार्यक्रम आवृत्ती दाखवा व बाहेर पडा"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1280
+#: ../client/pk-console.c:1285
 msgid "Set the filter, e.g. installed"
 msgstr "चाळणी निश्चित करा, उ.दा. प्रतिष्ठापीत"
 
 #. TRANSLATORS: command line argument, use a non-standard install prefix
-#: ../client/pk-console.c:1283
+#: ../client/pk-console.c:1288
 msgid "Set the install root, e.g. '/' or '/mnt/ltsp'"
 msgstr ""
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1286
+#: ../client/pk-console.c:1291
 msgid "Exit without waiting for actions to complete"
 msgstr "कृती पूर्ण केल्याविना बाहेर पडा"
 
 #. command line argument, do we ask questions
-#: ../client/pk-console.c:1289
+#: ../client/pk-console.c:1294
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:525
 msgid "Install the packages without asking for confirmation"
 msgstr "खात्री न करता संकुल प्रतिष्ठापीत करा"
 
 #. TRANSLATORS: command line argument, this command is not a priority
-#: ../client/pk-console.c:1292
+#: ../client/pk-console.c:1297
 msgid "Run the command using idle network bandwidth and also using less power"
 msgstr "योग्य नेटवर्क बँडविड्थ व कमी पावरचा वापर करून आदेश चालवा"
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1295
+#: ../client/pk-console.c:1300
 msgid ""
 "Print to screen a machine readable output, rather than using animated "
 "widgets"
@@ -434,155 +437,155 @@ msgstr ""
 " करा"
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1298
+#: ../client/pk-console.c:1303
 msgid "The maximum metadata cache age. Use -1 for 'never'."
 msgstr ""
 
 #. TRANSLATORS: command line argument, --help
-#: ../client/pk-console.c:1301
+#: ../client/pk-console.c:1306
 msgid "Show help options."
 msgstr ""
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1331
+#: ../client/pk-console.c:1336
 msgid "Failed to parse command line"
 msgstr ""
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1341
+#: ../client/pk-console.c:1346
 msgid "Failed to contact PackageKit"
 msgstr "PackageKit सह संपर्क साधण्यास अपयशी"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1394
+#: ../client/pk-console.c:1399
 msgid "The proxy could not be set"
 msgstr ""
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1406
+#: ../client/pk-console.c:1411
 msgid "The install root could not be set"
 msgstr ""
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1418
+#: ../client/pk-console.c:1423
 msgid "The filter specified was invalid"
 msgstr "निश्चित चाळणी अवैध नुरूप आढळली"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1437
+#: ../client/pk-console.c:1442
 msgid "A search type is required, e.g. name"
 msgstr "शोध प्रकार आवश्यक, उ.दा. नाव"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1444 ../client/pk-console.c:1456
-#: ../client/pk-console.c:1468 ../client/pk-console.c:1480
+#: ../client/pk-console.c:1449 ../client/pk-console.c:1461
+#: ../client/pk-console.c:1473 ../client/pk-console.c:1485
 msgid "A search term is required"
 msgstr "शोध संज्ञा आवश्यक"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1490
+#: ../client/pk-console.c:1495
 msgid "Invalid search type"
 msgstr "अवैध शोध प्रकार"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1496
+#: ../client/pk-console.c:1501
 msgid "A package name to install is required"
 msgstr "प्रतिष्ठापनकरीता संकुलचे नाव आवश्यक आहे"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1505
+#: ../client/pk-console.c:1510
 msgid "A filename to install is required"
 msgstr "प्रतिष्ठपन करीता फाइलचेनाव आवश्यक आहे"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1516
+#: ../client/pk-console.c:1521
 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:1527
+#: ../client/pk-console.c:1532
 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:1536
+#: ../client/pk-console.c:1541
 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:1543
+#: ../client/pk-console.c:1548
 msgid "Directory not found"
 msgstr "डिरेक्ट्री आढळली नाही"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1552
+#: ../client/pk-console.c:1557
 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:1563
+#: ../client/pk-console.c:1568
 msgid "A transaction identifier (tid) is required"
 msgstr "transaction identifier (tid) आवश्यक आहे"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:1584
+#: ../client/pk-console.c:1589
 msgid "A package name to resolve is required"
 msgstr "निर्धारण करीता संकुल नाव आवश्यक आहे"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:1595 ../client/pk-console.c:1606
+#: ../client/pk-console.c:1600 ../client/pk-console.c:1611
 msgid "A repository name is required"
 msgstr "रेपॉजिटरी नाव आवश्यक आहे"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:1617
+#: ../client/pk-console.c:1622
 msgid "A repo name, parameter and value are required"
 msgstr "रेपो नाव, बाब व मूल्य आवश्यक आहे"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:1634
+#: ../client/pk-console.c:1639
 msgid "An action, e.g. 'update-system' is required"
 msgstr "कृती, उ.दा. 'update-system' आवश्यक आहे"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:1641
+#: ../client/pk-console.c:1646
 msgid "A correct role is required"
 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:1651 ../client/pk-console.c:1665
-#: ../client/pk-console.c:1674 ../client/pk-console.c:1694
-#: ../client/pk-console.c:1703 ../client/pk-generate-pack.c:314
+#: ../client/pk-console.c:1656 ../client/pk-console.c:1670
+#: ../client/pk-console.c:1679 ../client/pk-console.c:1699
+#: ../client/pk-console.c:1708 ../client/pk-generate-pack.c:314
 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:1683
+#: ../client/pk-console.c:1688
 msgid "A package provide string is required"
 msgstr "संकुल द्वारे पुरविलेली अक्षरमाळा आवश्यक आहे"
 
 #. TRANSLATORS: The user did not provide a distro name
-#: ../client/pk-console.c:1727
+#: ../client/pk-console.c:1732
 msgid "A distribution name is required"
 msgstr ""
 
 #. TRANSLATORS: The user did not provide an upgrade type
-#: ../client/pk-console.c:1733
+#: ../client/pk-console.c:1738
 msgid "An upgrade type is required, e.g. 'minimal', 'default' or 'complete'"
 msgstr ""
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command
 #. line
-#: ../client/pk-console.c:1783
+#: ../client/pk-console.c:1788
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "पर्याय '%s' समर्थीत नाही"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:1793
+#: ../client/pk-console.c:1798
 msgid "Command failed"
 msgstr "आदेश अपयशी"
 
@@ -720,159 +723,154 @@ msgid "PackageKit Monitor"
 msgstr "पॅकेजकिट मॉनिटर"
 
 #. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/pk-plugin-install.c:499
+#: ../contrib/browser-plugin/pk-plugin-install.c:503
 msgid "Getting package information..."
 msgstr "संकुल माहिती प्राप्त करत आहे..."
 
 #. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/pk-plugin-install.c:505
+#: ../contrib/browser-plugin/pk-plugin-install.c:509
 #, c-format
 msgid "Run %s"
 msgstr "%s चालवा"
 
 #. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:511
+#: ../contrib/browser-plugin/pk-plugin-install.c:515
 msgid "Installed version"
 msgstr "प्रतिष्ठापीत आवृत्ती"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:519
+#: ../contrib/browser-plugin/pk-plugin-install.c:523
 #, c-format
 msgid "Run version %s now"
 msgstr "आता आवृत्ती %s चालवा"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:525
+#: ../contrib/browser-plugin/pk-plugin-install.c:529
 msgid "Run now"
 msgstr "आता चालवा"
 
 #. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:531
+#: ../contrib/browser-plugin/pk-plugin-install.c:535
 #, c-format
 msgid "Update to version %s"
 msgstr "आवृत्ती %s करीता अद्ययावत करा"
 
 #. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:537
+#: ../contrib/browser-plugin/pk-plugin-install.c:541
 #, c-format
 msgid "Install %s now"
 msgstr "%s आता प्रतिष्ठापीत करा"
 
 #. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:540
+#: ../contrib/browser-plugin/pk-plugin-install.c:544
 msgid "Version"
 msgstr "आवृत्ती"
 
 #. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/pk-plugin-install.c:545
+#: ../contrib/browser-plugin/pk-plugin-install.c:549
 msgid "No packages found for your system"
 msgstr "तुमच्या प्रणाली करीता संकुल आढळले नाही"
 
 #. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/pk-plugin-install.c:550
+#: ../contrib/browser-plugin/pk-plugin-install.c:554
 msgid "Installing..."
 msgstr "प्रतिष्ठापन करत आहे..."
 
 #. TRANSLATORS: downloading repo data so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:366
+#: ../contrib/command-not-found/pk-command-not-found.c:363
 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:370
+#: ../contrib/command-not-found/pk-command-not-found.c:367
 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:374
+#: ../contrib/command-not-found/pk-command-not-found.c:371
 msgid "Waiting for package manager lock."
 msgstr "संकुल व्यवस्थापक कुलूपबंदकरीता प्रतिक्षेत."
 
 #. TRANSLATORS: loading package cache so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:378
+#: ../contrib/command-not-found/pk-command-not-found.c:375
 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:444
+#: ../contrib/command-not-found/pk-command-not-found.c:439
 msgid "Failed to search for file"
 msgstr "फाइल करीता शोध करण्यास अपयशी"
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
-#: ../contrib/command-not-found/pk-command-not-found.c:456
+#: ../contrib/command-not-found/pk-command-not-found.c:451
 msgid "Getting the list of files failed"
 msgstr ""
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:602
+#: ../contrib/command-not-found/pk-command-not-found.c:597
 msgid "Failed to launch:"
 msgstr "सुरू करण्यास अपयशी:"
 
 #. TRANSLATORS: we failed to install the package
-#: ../contrib/command-not-found/pk-command-not-found.c:630
+#: ../contrib/command-not-found/pk-command-not-found.c:625
 msgid "Failed to install packages"
 msgstr "संकुल प्रतिष्ठापीत करणे अशक्य"
 
-#. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/command-not-found/pk-command-not-found.c:706
-msgid "PackageKit Command Not Found"
-msgstr "PackageKit आदेश आढळले नाही"
-
 #. TRANSLATORS: the prefix of all the output telling the user
 #. * why it's not executing. NOTE: this is lowercase to mimic
 #. * the style of bash itself -- apologies
-#: ../contrib/command-not-found/pk-command-not-found.c:741
+#: ../contrib/command-not-found/pk-command-not-found.c:723
 msgid "command not found"
 msgstr ""
 
 #. TRANSLATORS: tell the user what we think the command is
-#: ../contrib/command-not-found/pk-command-not-found.c:759
+#: ../contrib/command-not-found/pk-command-not-found.c:741
 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:773
+#: ../contrib/command-not-found/pk-command-not-found.c:755
 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:787
-#: ../contrib/command-not-found/pk-command-not-found.c:796
+#: ../contrib/command-not-found/pk-command-not-found.c:769
+#: ../contrib/command-not-found/pk-command-not-found.c:778
 msgid "Similar commands are:"
 msgstr "समान आदेश यानुरूप आहे:"
 
 #. TRANSLATORS: ask the user to choose a file to run
-#: ../contrib/command-not-found/pk-command-not-found.c:803
+#: ../contrib/command-not-found/pk-command-not-found.c:785
 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:821
+#: ../contrib/command-not-found/pk-command-not-found.c:803
 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:828
+#: ../contrib/command-not-found/pk-command-not-found.c:810
 #, 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:855
+#: ../contrib/command-not-found/pk-command-not-found.c:837
 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:865
+#: ../contrib/command-not-found/pk-command-not-found.c:847
 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:874
+#: ../contrib/command-not-found/pk-command-not-found.c:856
 msgid "Please choose a package to install"
 msgstr "प्रतिष्ठापन करीता कृपया संकुल निवडा"
 
@@ -1048,7 +1046,7 @@ msgstr "सिम्यूलेट पद्धती नुरूप संक
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
 #. TRANSLATORS: transaction state, installing packages
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:860
-#: ../lib/packagekit-glib2/pk-console-shared.c:296
+#: ../lib/packagekit-glib2/pk-console-shared.c:331
 #, c-format
 msgid "Installing packages"
 msgstr "संकुल प्रतिष्ठापीत करत आहे"
@@ -1183,474 +1181,474 @@ msgstr "PackageKit संकुल सूची"
 msgid "PackageKit Service Pack"
 msgstr "PackageKit सेवा पॅक"
 
-#: ../lib/packagekit-glib2/pk-console-shared.c:64
+#: ../lib/packagekit-glib2/pk-console-shared.c:65
 #, c-format
 msgid "Please enter a number from 1 to %i: "
 msgstr "कृपया 1 ते %i क्रमांक निवडा: "
 
 #. TRANSLATORS: more than one package could be found that matched, to follow
 #. is a list of possible packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:198
+#: ../lib/packagekit-glib2/pk-console-shared.c:233
 msgid "More than one package matches:"
 msgstr "एकापेक्षा जास्त संकुल जुळवणी:"
 
 #. TRANSLATORS: This finds out which package in the list to use
-#: ../lib/packagekit-glib2/pk-console-shared.c:209
+#: ../lib/packagekit-glib2/pk-console-shared.c:244
 msgid "Please choose the correct package: "
 msgstr "कृपया योग्य संकुल निवडा: "
 
 #. TRANSLATORS: This is when the transaction status is not known
-#: ../lib/packagekit-glib2/pk-console-shared.c:264
+#: ../lib/packagekit-glib2/pk-console-shared.c:299
 msgid "Unknown state"
 msgstr "अपरिचीत स्तर"
 
 #. TRANSLATORS: transaction state, the daemon is in the process of starting
-#: ../lib/packagekit-glib2/pk-console-shared.c:268
+#: ../lib/packagekit-glib2/pk-console-shared.c:303
 msgid "Starting"
 msgstr "सुरू करत आहे"
 
 #. TRANSLATORS: transaction state, the transaction is waiting for another to
 #. complete
-#: ../lib/packagekit-glib2/pk-console-shared.c:272
+#: ../lib/packagekit-glib2/pk-console-shared.c:307
 msgid "Waiting in queue"
 msgstr "queue मध्ये प्रतीक्षा करत आहे"
 
 #. TRANSLATORS: transaction state, just started
-#: ../lib/packagekit-glib2/pk-console-shared.c:276
+#: ../lib/packagekit-glib2/pk-console-shared.c:311
 msgid "Running"
 msgstr "चालवत आहे"
 
 #. TRANSLATORS: transaction state, is querying data
-#: ../lib/packagekit-glib2/pk-console-shared.c:280
+#: ../lib/packagekit-glib2/pk-console-shared.c:315
 msgid "Querying"
 msgstr "चौकशी करत आहे"
 
 #. TRANSLATORS: transaction state, getting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:284
+#: ../lib/packagekit-glib2/pk-console-shared.c:319
 msgid "Getting information"
 msgstr "माहिती प्राप्त करत आहे"
 
 #. TRANSLATORS: transaction state, removing packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:288
+#: ../lib/packagekit-glib2/pk-console-shared.c:323
 msgid "Removing packages"
 msgstr "संकुल काढून टाकत आहे"
 
 #. TRANSLATORS: transaction state, downloading package files
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:292
-#: ../lib/packagekit-glib2/pk-console-shared.c:670
+#: ../lib/packagekit-glib2/pk-console-shared.c:327
+#: ../lib/packagekit-glib2/pk-console-shared.c:705
 msgid "Downloading packages"
 msgstr "संकुल डाऊनलोड करत आहे"
 
 #. TRANSLATORS: transaction state, refreshing internal lists
-#: ../lib/packagekit-glib2/pk-console-shared.c:300
+#: ../lib/packagekit-glib2/pk-console-shared.c:335
 msgid "Refreshing software list"
 msgstr "सॉफ्टवेअर सूची ताजी करत आहे"
 
 #. TRANSLATORS: transaction state, installing updates
-#: ../lib/packagekit-glib2/pk-console-shared.c:304
+#: ../lib/packagekit-glib2/pk-console-shared.c:339
 msgid "Installing updates"
 msgstr "सुधारणा प्रतिष्ठापीत करत आहे"
 
 #. TRANSLATORS: transaction state, removing old packages, and cleaning config
 #. files
-#: ../lib/packagekit-glib2/pk-console-shared.c:308
+#: ../lib/packagekit-glib2/pk-console-shared.c:343
 msgid "Cleaning up packages"
 msgstr "संकुल नष्ट करत आहे"
 
 #. TRANSLATORS: transaction state, obsoleting old packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:312
+#: ../lib/packagekit-glib2/pk-console-shared.c:347
 msgid "Obsoleting packages"
 msgstr "संकुल जुणे करत आहे"
 
 #. TRANSLATORS: transaction state, checking the transaction before we do it
-#: ../lib/packagekit-glib2/pk-console-shared.c:316
+#: ../lib/packagekit-glib2/pk-console-shared.c:351
 msgid "Resolving dependencies"
 msgstr "अवलंबनचे निवारण करत आहे"
 
 #. TRANSLATORS: transaction state, checking if we have all the security keys
 #. for the operation
-#: ../lib/packagekit-glib2/pk-console-shared.c:320
+#: ../lib/packagekit-glib2/pk-console-shared.c:355
 msgid "Checking signatures"
 msgstr "स्वाक्षरी तपासत आहे"
 
 #. TRANSLATORS: transaction state, when we return to a previous system state
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:324
-#: ../lib/packagekit-glib2/pk-console-shared.c:630
+#: ../lib/packagekit-glib2/pk-console-shared.c:359
+#: ../lib/packagekit-glib2/pk-console-shared.c:665
 msgid "Rolling back"
 msgstr "रोलबॅक करत आहे"
 
 #. TRANSLATORS: transaction state, when we're doing a test transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:328
+#: ../lib/packagekit-glib2/pk-console-shared.c:363
 msgid "Testing changes"
 msgstr "बदलावांची चाचणी करत आहे"
 
 #. TRANSLATORS: transaction state, when we're writing to the system package
 #. database
-#: ../lib/packagekit-glib2/pk-console-shared.c:332
+#: ../lib/packagekit-glib2/pk-console-shared.c:367
 msgid "Committing changes"
 msgstr "बदलाव कमीट करत आहे"
 
 #. TRANSLATORS: transaction state, requesting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:336
+#: ../lib/packagekit-glib2/pk-console-shared.c:371
 msgid "Requesting data"
 msgstr "डाटाकरीता विनंती करत आहे"
 
 #. TRANSLATORS: transaction state, all done!
-#: ../lib/packagekit-glib2/pk-console-shared.c:340
+#: ../lib/packagekit-glib2/pk-console-shared.c:375
 msgid "Finished"
 msgstr "पूर्ण झाले"
 
 #. TRANSLATORS: transaction state, in the process of cancelling
-#: ../lib/packagekit-glib2/pk-console-shared.c:344
+#: ../lib/packagekit-glib2/pk-console-shared.c:379
 msgid "Cancelling"
 msgstr "रद्द करत आहे"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:348
+#: ../lib/packagekit-glib2/pk-console-shared.c:383
 msgid "Downloading repository information"
 msgstr "रेपॉजिटरी माहिती डाऊनलोड करत आहे"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:352
+#: ../lib/packagekit-glib2/pk-console-shared.c:387
 msgid "Downloading list of packages"
 msgstr "संकुलांची सूची डाऊनलोड करत आहे"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:356
+#: ../lib/packagekit-glib2/pk-console-shared.c:391
 msgid "Downloading file lists"
 msgstr "फाइल सूची डाऊनलोड करत आहे"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:360
+#: ../lib/packagekit-glib2/pk-console-shared.c:395
 msgid "Downloading lists of changes"
 msgstr "बदलावांची सूची डाऊनलोड करत आहे"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:364
+#: ../lib/packagekit-glib2/pk-console-shared.c:399
 msgid "Downloading groups"
 msgstr "गट डाऊनलोड करत आहे"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:368
+#: ../lib/packagekit-glib2/pk-console-shared.c:403
 msgid "Downloading update information"
 msgstr "सुधारणा माहिती डाऊनलोड करत आहे"
 
 #. TRANSLATORS: transaction state, repackaging delta files
-#: ../lib/packagekit-glib2/pk-console-shared.c:372
+#: ../lib/packagekit-glib2/pk-console-shared.c:407
 msgid "Repackaging files"
 msgstr "फाइल्स्ला पुनःपॅकेज करत आहे"
 
 #. TRANSLATORS: transaction state, loading databases
-#: ../lib/packagekit-glib2/pk-console-shared.c:376
+#: ../lib/packagekit-glib2/pk-console-shared.c:411
 msgid "Loading cache"
 msgstr "कॅशे लोड करत आहे"
 
 #. TRANSLATORS: transaction state, scanning for running processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:380
+#: ../lib/packagekit-glib2/pk-console-shared.c:415
 msgid "Scanning applications"
 msgstr "ऍप्लिकेशन्स् स्कॅन करत आहे"
 
 #. TRANSLATORS: transaction state, generating a list of packages installed on
 #. the system
-#: ../lib/packagekit-glib2/pk-console-shared.c:384
+#: ../lib/packagekit-glib2/pk-console-shared.c:419
 msgid "Generating package lists"
 msgstr "संकुल सूची निर्माण करत आहे"
 
 #. TRANSLATORS: transaction state, when we're waiting for the native tools to
 #. exit
-#: ../lib/packagekit-glib2/pk-console-shared.c:388
+#: ../lib/packagekit-glib2/pk-console-shared.c:423
 msgid "Waiting for package manager lock"
 msgstr "संकुल व्यवस्थापक लॉकसाठी प्रतीक्षा करत आहे"
 
 #. TRANSLATORS: transaction state, waiting for user to type in a password
-#: ../lib/packagekit-glib2/pk-console-shared.c:392
+#: ../lib/packagekit-glib2/pk-console-shared.c:427
 msgid "Waiting for authentication"
 msgstr "ओळख पटवण्यासाठी प्रतीक्षा करत आहे"
 
 #. TRANSLATORS: transaction state, we are updating the list of processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:396
+#: ../lib/packagekit-glib2/pk-console-shared.c:431
 msgid "Updating running applications"
 msgstr "कार्यरत ऍप्लिकेशन्स्ची सुधारणा करत आहे"
 
 #. TRANSLATORS: transaction state, we are checking executable files currently
 #. in use
-#: ../lib/packagekit-glib2/pk-console-shared.c:400
+#: ../lib/packagekit-glib2/pk-console-shared.c:435
 msgid "Checking applications in use"
 msgstr "वापरणीतील ऍप्लिकेशन्स् तपासत आहे"
 
 #. TRANSLATORS: transaction state, we are checking for libraries currently in
 #. use
-#: ../lib/packagekit-glib2/pk-console-shared.c:404
+#: ../lib/packagekit-glib2/pk-console-shared.c:439
 msgid "Checking libraries in use"
 msgstr "वापरणीतील लायब्ररीज् तपासत आहे"
 
 #. TRANSLATORS: transaction state, we are copying package files before or
 #. after the transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:408
+#: ../lib/packagekit-glib2/pk-console-shared.c:443
 msgid "Copying files"
 msgstr "फाइल्चे प्रत बनवत आहे"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:426
+#: ../lib/packagekit-glib2/pk-console-shared.c:461
 msgid "Trivial"
 msgstr "सामान्य"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:430
+#: ../lib/packagekit-glib2/pk-console-shared.c:465
 msgid "Normal"
 msgstr "सामान्य"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:434
+#: ../lib/packagekit-glib2/pk-console-shared.c:469
 msgid "Important"
 msgstr "महत्वाचे"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:438
+#: ../lib/packagekit-glib2/pk-console-shared.c:473
 msgid "Security"
 msgstr "सुरक्षा"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:442
+#: ../lib/packagekit-glib2/pk-console-shared.c:477
 msgid "Bug fix "
 msgstr "बगचे निवारन"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:446
+#: ../lib/packagekit-glib2/pk-console-shared.c:481
 msgid "Enhancement"
 msgstr "सुधारणा"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:450
+#: ../lib/packagekit-glib2/pk-console-shared.c:485
 msgid "Blocked"
 msgstr "ब्लॉक्ड्"
 
 #. TRANSLATORS: The state of a package
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:455
-#: ../lib/packagekit-glib2/pk-console-shared.c:528
+#: ../lib/packagekit-glib2/pk-console-shared.c:490
+#: ../lib/packagekit-glib2/pk-console-shared.c:563
 msgid "Installed"
 msgstr "प्रतिष्ठापीत"
 
 #. TRANSLATORS: The state of a package, i.e. not installed
-#: ../lib/packagekit-glib2/pk-console-shared.c:460
+#: ../lib/packagekit-glib2/pk-console-shared.c:495
 msgid "Available"
 msgstr "उपलब्ध"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:478
+#: ../lib/packagekit-glib2/pk-console-shared.c:513
 msgid "Downloading"
 msgstr "डाऊनलोड करत आहे"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:482
+#: ../lib/packagekit-glib2/pk-console-shared.c:517
 msgid "Updating"
 msgstr "सुधारीत करत आहे"
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:486
-#: ../lib/packagekit-glib2/pk-console-shared.c:606
+#: ../lib/packagekit-glib2/pk-console-shared.c:521
+#: ../lib/packagekit-glib2/pk-console-shared.c:641
 msgid "Installing"
 msgstr "प्रतिष्ठापन करत आहे"
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:490
-#: ../lib/packagekit-glib2/pk-console-shared.c:602
+#: ../lib/packagekit-glib2/pk-console-shared.c:525
+#: ../lib/packagekit-glib2/pk-console-shared.c:637
 msgid "Removing"
 msgstr "काढून टाकत आहे"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:494
+#: ../lib/packagekit-glib2/pk-console-shared.c:529
 msgid "Cleaning up"
 msgstr "सुस्थीत करत आहे"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:498
+#: ../lib/packagekit-glib2/pk-console-shared.c:533
 msgid "Obsoleting"
 msgstr "जुणे करत आहे"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:502
+#: ../lib/packagekit-glib2/pk-console-shared.c:537
 msgid "Reinstalling"
 msgstr "पुनःप्रतिष्ठापीत करत आहे"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:520
+#: ../lib/packagekit-glib2/pk-console-shared.c:555
 msgid "Downloaded"
 msgstr "डाऊनलोड केले"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:532
+#: ../lib/packagekit-glib2/pk-console-shared.c:567
 msgid "Removed"
 msgstr "काढून टाकले"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:536
+#: ../lib/packagekit-glib2/pk-console-shared.c:571
 msgid "Cleaned up"
 msgstr "सुस्थीत केले"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:540
+#: ../lib/packagekit-glib2/pk-console-shared.c:575
 msgid "Obsoleted"
 msgstr "जुणे केले"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:544
+#: ../lib/packagekit-glib2/pk-console-shared.c:579
 msgid "Reinstalled"
 msgstr "पुनःप्रतिष्ठापीत केले"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:562
+#: ../lib/packagekit-glib2/pk-console-shared.c:597
 msgid "Unknown role type"
 msgstr "अपरिचीत भूमीका प्रकार"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:566
+#: ../lib/packagekit-glib2/pk-console-shared.c:601
 msgid "Getting dependencies"
 msgstr "अवलंबन प्राप्त करत आहे"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:570
+#: ../lib/packagekit-glib2/pk-console-shared.c:605
 msgid "Getting update details"
 msgstr "सुधारणा तपशील प्राप्त करत आहे"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:574
+#: ../lib/packagekit-glib2/pk-console-shared.c:609
 msgid "Getting details"
 msgstr "तपशील प्राप्त करत आहे"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:578
+#: ../lib/packagekit-glib2/pk-console-shared.c:613
 msgid "Getting requires"
 msgstr "requires प्राप्त करत आहे"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:582
+#: ../lib/packagekit-glib2/pk-console-shared.c:617
 msgid "Getting updates"
 msgstr "सुधारणा प्राप्त करत आहे"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:586
+#: ../lib/packagekit-glib2/pk-console-shared.c:621
 msgid "Searching by details"
 msgstr "तपशीलप्रमाणे शोधत आहे"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:590
+#: ../lib/packagekit-glib2/pk-console-shared.c:625
 msgid "Searching by file"
 msgstr "फाइलप्रमाणे शोधत आहे"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:594
+#: ../lib/packagekit-glib2/pk-console-shared.c:629
 msgid "Searching groups"
 msgstr "गट शोधत आहे"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:598
+#: ../lib/packagekit-glib2/pk-console-shared.c:633
 msgid "Searching by name"
 msgstr "नावाप्रमाणे शोधत आहे"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:610
+#: ../lib/packagekit-glib2/pk-console-shared.c:645
 msgid "Installing files"
 msgstr "फाइल्स् प्रतिष्ठापीत करत आहे"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:614
+#: ../lib/packagekit-glib2/pk-console-shared.c:649
 msgid "Refreshing cache"
 msgstr "कॅशे ताजे करत आहे"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:618
+#: ../lib/packagekit-glib2/pk-console-shared.c:653
 msgid "Updating packages"
 msgstr "संकुल सुधारीत करत आहे"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:622
+#: ../lib/packagekit-glib2/pk-console-shared.c:657
 msgid "Updating system"
 msgstr "प्रणाली सुधारीत करत आहे"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:626
+#: ../lib/packagekit-glib2/pk-console-shared.c:661
 msgid "Canceling"
 msgstr "रद्द करत आहे"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:634
+#: ../lib/packagekit-glib2/pk-console-shared.c:669
 msgid "Getting repositories"
 msgstr "रेपॉजिटरी प्राप्त करत आहे"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:638
+#: ../lib/packagekit-glib2/pk-console-shared.c:673
 msgid "Enabling repository"
 msgstr "रेपॉजिटरी कार्यक्षम करत आहे"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:642
+#: ../lib/packagekit-glib2/pk-console-shared.c:677
 msgid "Setting data"
 msgstr "डाटा सेट करत आहे"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:646
+#: ../lib/packagekit-glib2/pk-console-shared.c:681
 msgid "Resolving"
 msgstr "नीवारन करत आहे"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:650
+#: ../lib/packagekit-glib2/pk-console-shared.c:685
 msgid "Getting file list"
 msgstr "फाइल सूची प्राप्त करत आहे"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:654
+#: ../lib/packagekit-glib2/pk-console-shared.c:689
 msgid "Getting provides"
 msgstr "provides प्राप्त करत आहे"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:658
+#: ../lib/packagekit-glib2/pk-console-shared.c:693
 msgid "Installing signature"
 msgstr "मुद्रा प्रतिष्ठापीत करत आहे"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:662
+#: ../lib/packagekit-glib2/pk-console-shared.c:697
 msgid "Getting packages"
 msgstr "संकुल प्राप्त करत आहे"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:666
+#: ../lib/packagekit-glib2/pk-console-shared.c:701
 msgid "Accepting EULA"
 msgstr "EULA स्वीकारत आहे"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:674
+#: ../lib/packagekit-glib2/pk-console-shared.c:709
 msgid "Getting upgrades"
 msgstr "सुधारणा प्राप्त करत आहे"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:678
+#: ../lib/packagekit-glib2/pk-console-shared.c:713
 msgid "Getting categories"
 msgstr "क्षेत्र प्राप्त करत आहे"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:682
+#: ../lib/packagekit-glib2/pk-console-shared.c:717
 msgid "Getting transactions"
 msgstr "व्यवहार प्राप्त करत आहे"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:686
-#: ../lib/packagekit-glib2/pk-console-shared.c:690
+#: ../lib/packagekit-glib2/pk-console-shared.c:721
+#: ../lib/packagekit-glib2/pk-console-shared.c:725
 msgid "Simulating install"
 msgstr "प्रतिष्ठापन सिम्यूलेट करत आहे"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:694
+#: ../lib/packagekit-glib2/pk-console-shared.c:729
 msgid "Simulating remove"
 msgstr "काढून टाकणे सिम्यूलेट करत आहे"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:698
+#: ../lib/packagekit-glib2/pk-console-shared.c:733
 msgid "Simulating update"
 msgstr "सुधारणा सिम्यूलेट करत आहे"
 
@@ -1800,13 +1798,19 @@ msgstr "खालील संकुलांचे पुनःप्रति
 msgid "The following packages have to be downgraded:"
 msgstr "खालील संकुलांची एक आवृत्ती कमी करणे आवश्यक आहे:"
 
+#. TRANSLATORS: When processing, untrusted and non-verified packages may be
+#. encountered
+#: ../lib/packagekit-glib2/pk-task-text.c:325
+msgid "The following packages are untrusted:"
+msgstr ""
+
 #. TRANSLATORS: ask the user if the proposed changes are okay
-#: ../lib/packagekit-glib2/pk-task-text.c:380
+#: ../lib/packagekit-glib2/pk-task-text.c:385
 msgid "Proceed with changes?"
 msgstr "बदलांशी पुढे जायचे?"
 
 #. TRANSLATORS: tell the user we didn't do anything
-#: ../lib/packagekit-glib2/pk-task-text.c:385
+#: ../lib/packagekit-glib2/pk-task-text.c:390
 msgid "The transaction did not proceed."
 msgstr "व्यवहार पुढे कार्यान्वीत झाले नाही."
 
@@ -2014,98 +2018,68 @@ msgstr "संकुल अद्ययावत करा"
 msgid "Upgrade System"
 msgstr ""
 
-#. TRANSLATORS: failed due to DBus security
-#: ../src/pk-main.c:91
-msgid "Startup failed due to security policies on this machine."
-msgstr "या मशीन वरील सुरक्षा करारमुळे स्टार्टअप अपयशी ठरले."
-
-#. TRANSLATORS: only two ways this can fail...
-#: ../src/pk-main.c:93
-msgid "This can happen for two reasons:"
-msgstr "हे दोन कारणास्तव होऊ शकते:"
-
-#. TRANSLATORS: only allowed to be owned by root
-#: ../src/pk-main.c:95
-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:97
-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:223
+#: ../src/pk-main.c:149
 msgid "Packaging backend to use, e.g. dummy"
 msgstr "वापरण्याजोगी संकुल बॅकएन्ड, उ.दा. dummy"
 
 #. TRANSLATORS: if we should run in the background
-#: ../src/pk-main.c:226
+#: ../src/pk-main.c:152
 msgid "Daemonize and detach from the terminal"
 msgstr "डिमन बनवा व टर्मिनल पासून वेगळे करा"
 
 #. TRANSLATORS: if we should not monitor how long we are inactive for
-#: ../src/pk-main.c:229
+#: ../src/pk-main.c:155
 msgid "Disable the idle timer"
 msgstr "idle timer अकार्यान्वीत करा"
 
 #. TRANSLATORS: show version
-#: ../src/pk-main.c:232
+#: ../src/pk-main.c:158
 msgid "Show version and exit"
 msgstr "आवृत्ती दाखवा व बाहेर पडा"
 
 #. TRANSLATORS: exit after we've started up, used for user profiling
-#: ../src/pk-main.c:235
+#: ../src/pk-main.c:161
 msgid "Exit after a small delay"
 msgstr "लहान विलंब नंतर बाहेर पडा"
 
 #. TRANSLATORS: exit straight away, used for automatic profiling
-#: ../src/pk-main.c:238
+#: ../src/pk-main.c:164
 msgid "Exit after the engine has loaded"
 msgstr "इंजीन दाखल केल्यावर बाहेर पडा"
 
+#. TRANSLATORS: don't unset environment variables, used for debugging
+#: ../src/pk-main.c:167
+msgid "Don't clear environment on startup"
+msgstr ""
+
 #. TRANSLATORS: describing the service that is running
-#: ../src/pk-main.c:253
+#: ../src/pk-main.c:179
 msgid "PackageKit service"
 msgstr "PackageKit सेवा"
 
-#. TRANSLATORS: fatal error, dbus is not running
-#: ../src/pk-main.c:298
-msgid "Cannot connect to the system bus"
-msgstr "प्रणाली बस सह जुळवणी स्थपीत करण्यास अशक्य"
-
-#: ../src/pk-main.c:344
+#: ../src/pk-main.c:253
 msgid "Failed to load any of the specified backends:"
 msgstr ""
 
-#. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error
-#. follows
-#: ../src/pk-main.c:358
-msgid "Error trying to start:"
-msgstr "सुरू करतेवेळी त्रुटी आढळली:"
-
 #. TRANSLATORS: is not GPG signed
-#: ../src/pk-transaction.c:2611 ../src/pk-transaction.c:2618
+#: ../src/pk-transaction.c:2696
 msgid "The software is not from a trusted source."
 msgstr "सॉफ्टवेअरचे स्रोत विश्वासर्ह नाही."
 
-#: ../src/pk-transaction.c:2623
+#: ../src/pk-transaction.c:2704
 msgid "Do not update this package unless you are sure it is safe to do so."
 msgstr "सुरक्षेतेची खात्री असल्याशिवाय या संकुलांना सुधारीत करू नका."
 
-#: ../src/pk-transaction.c:2624
+#: ../src/pk-transaction.c:2705
 msgid "Do not update these packages unless you are sure it is safe to do so."
 msgstr "सुरक्षेतेची खात्री असल्याशिवाय हे संकुल सुधारीत करू नका."
 
-#: ../src/pk-transaction.c:2634
+#: ../src/pk-transaction.c:2715
 msgid "Do not install this package unless you are sure it is safe to do so."
 msgstr "सुरक्षेतेची खात्री असल्याशिवाय हे संकुल प्रतिष्ठापीत करू नका."
 
-#: ../src/pk-transaction.c:2635
+#: ../src/pk-transaction.c:2716
 msgid "Do not install these packages unless you are sure it is safe to do so."
 msgstr "सुरक्षेतेची खात्री असल्याशिवाय या संकुलांना प्रतिष्ठापीत करू नका."
 
diff --git a/po/ms.po b/po/ms.po
index 61ce07a..e01c810 100644
--- a/po/ms.po
+++ b/po/ms.po
@@ -2,14 +2,16 @@
 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
 # This file is distributed under the same license as the PACKAGE package.
 # 
-# Richard Hughes <richard at hughsie.com>, 2011
+# Translators:
+# Richard Hughes <richard at hughsie.com>, 2011.
+# Sharuzzaman Ahmat Raslan <sharuzzaman at myrealbox.com>, 2008.
 msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-04 10:50+0100\n"
-"PO-Revision-Date: 2011-05-04 09:56+0000\n"
-"Last-Translator: hughsie <richard at hughsie.com>\n"
+"POT-Creation-Date: 2011-11-10 19:50+0000\n"
+"PO-Revision-Date: 2011-11-10 19:50+0000\n"
+"Last-Translator: Richard Hughes <richard at hughsie.com>\n"
 "Language-Team: LANGUAGE <LL at li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -195,7 +197,7 @@ msgstr ""
 
 #. TRANSLATORS: details about the update, date the update was updated
 #. TRANSLATORS: The action of the package, in past tense
-#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:524
+#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:559
 msgid "Updated"
 msgstr ""
 
@@ -285,7 +287,7 @@ msgstr ""
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
 #: ../client/pk-console.c:704
-#: ../contrib/command-not-found/pk-command-not-found.c:639
+#: ../contrib/command-not-found/pk-command-not-found.c:634
 msgid "The transaction failed"
 msgstr ""
 
@@ -333,21 +335,21 @@ msgstr ""
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:866
+#: ../client/pk-console.c:871
 #, c-format
 msgid "This tool could not find any available package: %s"
 msgstr ""
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:894
+#: ../client/pk-console.c:899
 #, c-format
 msgid "This tool could not find the installed package: %s"
 msgstr ""
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:922 ../client/pk-console.c:950
+#: ../client/pk-console.c:927 ../client/pk-console.c:955
 #, c-format
 msgid "This tool could not find the package: %s"
 msgstr ""
@@ -360,223 +362,223 @@ msgstr ""
 #. detailed error follows
 #. TRANSLATORS: The package name was not found in any software sources. The
 #. detailed error follows
-#: ../client/pk-console.c:978 ../client/pk-console.c:1006
-#: ../client/pk-console.c:1034 ../client/pk-console.c:1062
-#: ../client/pk-console.c:1090
+#: ../client/pk-console.c:983 ../client/pk-console.c:1011
+#: ../client/pk-console.c:1039 ../client/pk-console.c:1067
+#: ../client/pk-console.c:1095
 #, c-format
 msgid "This tool could not find all the packages: %s"
 msgstr ""
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek
 #. without a paddle
-#: ../client/pk-console.c:1119
+#: ../client/pk-console.c:1124
 msgid "The daemon crashed mid-transaction!"
 msgstr ""
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1153
+#: ../client/pk-console.c:1158
 msgid "PackageKit Console Interface"
 msgstr ""
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1155
+#: ../client/pk-console.c:1160
 msgid "Subcommands:"
 msgstr ""
 
 #. TRANSLATORS: we keep a database updated with the time that an action was
 #. last executed
-#: ../client/pk-console.c:1235
+#: ../client/pk-console.c:1240
 msgid "Failed to get the time since this action was last completed"
 msgstr ""
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1277 ../client/pk-monitor.c:371
+#: ../client/pk-console.c:1282 ../client/pk-monitor.c:371
 msgid "Show the program version and exit"
 msgstr ""
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1280
+#: ../client/pk-console.c:1285
 msgid "Set the filter, e.g. installed"
 msgstr ""
 
 #. TRANSLATORS: command line argument, use a non-standard install prefix
-#: ../client/pk-console.c:1283
+#: ../client/pk-console.c:1288
 msgid "Set the install root, e.g. '/' or '/mnt/ltsp'"
 msgstr ""
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1286
+#: ../client/pk-console.c:1291
 msgid "Exit without waiting for actions to complete"
 msgstr ""
 
 #. command line argument, do we ask questions
-#: ../client/pk-console.c:1289
+#: ../client/pk-console.c:1294
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:525
 msgid "Install the packages without asking for confirmation"
 msgstr ""
 
 #. TRANSLATORS: command line argument, this command is not a priority
-#: ../client/pk-console.c:1292
+#: ../client/pk-console.c:1297
 msgid "Run the command using idle network bandwidth and also using less power"
 msgstr ""
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1295
+#: ../client/pk-console.c:1300
 msgid ""
 "Print to screen a machine readable output, rather than using animated "
 "widgets"
 msgstr ""
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1298
+#: ../client/pk-console.c:1303
 msgid "The maximum metadata cache age. Use -1 for 'never'."
 msgstr ""
 
 #. TRANSLATORS: command line argument, --help
-#: ../client/pk-console.c:1301
+#: ../client/pk-console.c:1306
 msgid "Show help options."
 msgstr ""
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1331
+#: ../client/pk-console.c:1336
 msgid "Failed to parse command line"
 msgstr ""
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1341
+#: ../client/pk-console.c:1346
 msgid "Failed to contact PackageKit"
 msgstr ""
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1394
+#: ../client/pk-console.c:1399
 msgid "The proxy could not be set"
 msgstr ""
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1406
+#: ../client/pk-console.c:1411
 msgid "The install root could not be set"
 msgstr ""
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1418
+#: ../client/pk-console.c:1423
 msgid "The filter specified was invalid"
 msgstr ""
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1437
+#: ../client/pk-console.c:1442
 msgid "A search type is required, e.g. name"
 msgstr ""
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1444 ../client/pk-console.c:1456
-#: ../client/pk-console.c:1468 ../client/pk-console.c:1480
+#: ../client/pk-console.c:1449 ../client/pk-console.c:1461
+#: ../client/pk-console.c:1473 ../client/pk-console.c:1485
 msgid "A search term is required"
 msgstr ""
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1490
+#: ../client/pk-console.c:1495
 msgid "Invalid search type"
 msgstr ""
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1496
+#: ../client/pk-console.c:1501
 msgid "A package name to install is required"
 msgstr ""
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1505
+#: ../client/pk-console.c:1510
 msgid "A filename to install is required"
 msgstr ""
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1516
+#: ../client/pk-console.c:1521
 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:1527
+#: ../client/pk-console.c:1532
 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:1536
+#: ../client/pk-console.c:1541
 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:1543
+#: ../client/pk-console.c:1548
 msgid "Directory not found"
 msgstr ""
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1552
+#: ../client/pk-console.c:1557
 msgid "A licence identifier (eula-id) is required"
 msgstr ""
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1563
+#: ../client/pk-console.c:1568
 msgid "A transaction identifier (tid) is required"
 msgstr ""
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:1584
+#: ../client/pk-console.c:1589
 msgid "A package name to resolve is required"
 msgstr ""
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:1595 ../client/pk-console.c:1606
+#: ../client/pk-console.c:1600 ../client/pk-console.c:1611
 msgid "A repository name is required"
 msgstr ""
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:1617
+#: ../client/pk-console.c:1622
 msgid "A repo name, parameter and value are required"
 msgstr ""
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:1634
+#: ../client/pk-console.c:1639
 msgid "An action, e.g. 'update-system' is required"
 msgstr ""
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:1641
+#: ../client/pk-console.c:1646
 msgid "A correct role is required"
 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:1651 ../client/pk-console.c:1665
-#: ../client/pk-console.c:1674 ../client/pk-console.c:1694
-#: ../client/pk-console.c:1703 ../client/pk-generate-pack.c:314
+#: ../client/pk-console.c:1656 ../client/pk-console.c:1670
+#: ../client/pk-console.c:1679 ../client/pk-console.c:1699
+#: ../client/pk-console.c:1708 ../client/pk-generate-pack.c:314
 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:1683
+#: ../client/pk-console.c:1688
 msgid "A package provide string is required"
 msgstr ""
 
 #. TRANSLATORS: The user did not provide a distro name
-#: ../client/pk-console.c:1727
+#: ../client/pk-console.c:1732
 msgid "A distribution name is required"
 msgstr ""
 
 #. TRANSLATORS: The user did not provide an upgrade type
-#: ../client/pk-console.c:1733
+#: ../client/pk-console.c:1738
 msgid "An upgrade type is required, e.g. 'minimal', 'default' or 'complete'"
 msgstr ""
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command
 #. line
-#: ../client/pk-console.c:1783
+#: ../client/pk-console.c:1788
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr ""
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:1793
+#: ../client/pk-console.c:1798
 msgid "Command failed"
 msgstr ""
 
@@ -711,159 +713,154 @@ msgid "PackageKit Monitor"
 msgstr ""
 
 #. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/pk-plugin-install.c:499
+#: ../contrib/browser-plugin/pk-plugin-install.c:503
 msgid "Getting package information..."
 msgstr ""
 
 #. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/pk-plugin-install.c:505
+#: ../contrib/browser-plugin/pk-plugin-install.c:509
 #, c-format
 msgid "Run %s"
 msgstr ""
 
 #. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:511
+#: ../contrib/browser-plugin/pk-plugin-install.c:515
 msgid "Installed version"
 msgstr ""
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:519
+#: ../contrib/browser-plugin/pk-plugin-install.c:523
 #, c-format
 msgid "Run version %s now"
 msgstr ""
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:525
+#: ../contrib/browser-plugin/pk-plugin-install.c:529
 msgid "Run now"
 msgstr ""
 
 #. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:531
+#: ../contrib/browser-plugin/pk-plugin-install.c:535
 #, c-format
 msgid "Update to version %s"
 msgstr ""
 
 #. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:537
+#: ../contrib/browser-plugin/pk-plugin-install.c:541
 #, c-format
 msgid "Install %s now"
 msgstr ""
 
 #. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:540
+#: ../contrib/browser-plugin/pk-plugin-install.c:544
 msgid "Version"
 msgstr ""
 
 #. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/pk-plugin-install.c:545
+#: ../contrib/browser-plugin/pk-plugin-install.c:549
 msgid "No packages found for your system"
 msgstr ""
 
 #. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/pk-plugin-install.c:550
+#: ../contrib/browser-plugin/pk-plugin-install.c:554
 msgid "Installing..."
 msgstr ""
 
 #. TRANSLATORS: downloading repo data so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:366
+#: ../contrib/command-not-found/pk-command-not-found.c:363
 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:370
+#: ../contrib/command-not-found/pk-command-not-found.c:367
 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:374
+#: ../contrib/command-not-found/pk-command-not-found.c:371
 msgid "Waiting for package manager lock."
 msgstr ""
 
 #. TRANSLATORS: loading package cache so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:378
+#: ../contrib/command-not-found/pk-command-not-found.c:375
 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:444
+#: ../contrib/command-not-found/pk-command-not-found.c:439
 msgid "Failed to search for file"
 msgstr ""
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
-#: ../contrib/command-not-found/pk-command-not-found.c:456
+#: ../contrib/command-not-found/pk-command-not-found.c:451
 msgid "Getting the list of files failed"
 msgstr ""
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:602
+#: ../contrib/command-not-found/pk-command-not-found.c:597
 msgid "Failed to launch:"
 msgstr ""
 
 #. TRANSLATORS: we failed to install the package
-#: ../contrib/command-not-found/pk-command-not-found.c:630
+#: ../contrib/command-not-found/pk-command-not-found.c:625
 msgid "Failed to install packages"
 msgstr ""
 
-#. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/command-not-found/pk-command-not-found.c:706
-msgid "PackageKit Command Not Found"
-msgstr ""
-
 #. TRANSLATORS: the prefix of all the output telling the user
 #. * why it's not executing. NOTE: this is lowercase to mimic
 #. * the style of bash itself -- apologies
-#: ../contrib/command-not-found/pk-command-not-found.c:741
+#: ../contrib/command-not-found/pk-command-not-found.c:723
 msgid "command not found"
 msgstr ""
 
 #. TRANSLATORS: tell the user what we think the command is
-#: ../contrib/command-not-found/pk-command-not-found.c:759
+#: ../contrib/command-not-found/pk-command-not-found.c:741
 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:773
+#: ../contrib/command-not-found/pk-command-not-found.c:755
 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:787
-#: ../contrib/command-not-found/pk-command-not-found.c:796
+#: ../contrib/command-not-found/pk-command-not-found.c:769
+#: ../contrib/command-not-found/pk-command-not-found.c:778
 msgid "Similar commands are:"
 msgstr ""
 
 #. TRANSLATORS: ask the user to choose a file to run
-#: ../contrib/command-not-found/pk-command-not-found.c:803
+#: ../contrib/command-not-found/pk-command-not-found.c:785
 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:821
+#: ../contrib/command-not-found/pk-command-not-found.c:803
 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:828
+#: ../contrib/command-not-found/pk-command-not-found.c:810
 #, 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:855
+#: ../contrib/command-not-found/pk-command-not-found.c:837
 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:865
+#: ../contrib/command-not-found/pk-command-not-found.c:847
 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:874
+#: ../contrib/command-not-found/pk-command-not-found.c:856
 msgid "Please choose a package to install"
 msgstr ""
 
@@ -1037,7 +1034,7 @@ msgstr ""
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
 #. TRANSLATORS: transaction state, installing packages
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:860
-#: ../lib/packagekit-glib2/pk-console-shared.c:296
+#: ../lib/packagekit-glib2/pk-console-shared.c:331
 #, c-format
 msgid "Installing packages"
 msgstr ""
@@ -1171,474 +1168,474 @@ msgstr ""
 msgid "PackageKit Service Pack"
 msgstr ""
 
-#: ../lib/packagekit-glib2/pk-console-shared.c:64
+#: ../lib/packagekit-glib2/pk-console-shared.c:65
 #, c-format
 msgid "Please enter a number from 1 to %i: "
 msgstr ""
 
 #. TRANSLATORS: more than one package could be found that matched, to follow
 #. is a list of possible packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:198
+#: ../lib/packagekit-glib2/pk-console-shared.c:233
 msgid "More than one package matches:"
 msgstr ""
 
 #. TRANSLATORS: This finds out which package in the list to use
-#: ../lib/packagekit-glib2/pk-console-shared.c:209
+#: ../lib/packagekit-glib2/pk-console-shared.c:244
 msgid "Please choose the correct package: "
 msgstr ""
 
 #. TRANSLATORS: This is when the transaction status is not known
-#: ../lib/packagekit-glib2/pk-console-shared.c:264
+#: ../lib/packagekit-glib2/pk-console-shared.c:299
 msgid "Unknown state"
 msgstr ""
 
 #. TRANSLATORS: transaction state, the daemon is in the process of starting
-#: ../lib/packagekit-glib2/pk-console-shared.c:268
+#: ../lib/packagekit-glib2/pk-console-shared.c:303
 msgid "Starting"
 msgstr ""
 
 #. TRANSLATORS: transaction state, the transaction is waiting for another to
 #. complete
-#: ../lib/packagekit-glib2/pk-console-shared.c:272
+#: ../lib/packagekit-glib2/pk-console-shared.c:307
 msgid "Waiting in queue"
 msgstr ""
 
 #. TRANSLATORS: transaction state, just started
-#: ../lib/packagekit-glib2/pk-console-shared.c:276
+#: ../lib/packagekit-glib2/pk-console-shared.c:311
 msgid "Running"
 msgstr ""
 
 #. TRANSLATORS: transaction state, is querying data
-#: ../lib/packagekit-glib2/pk-console-shared.c:280
+#: ../lib/packagekit-glib2/pk-console-shared.c:315
 msgid "Querying"
 msgstr ""
 
 #. TRANSLATORS: transaction state, getting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:284
+#: ../lib/packagekit-glib2/pk-console-shared.c:319
 msgid "Getting information"
 msgstr ""
 
 #. TRANSLATORS: transaction state, removing packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:288
+#: ../lib/packagekit-glib2/pk-console-shared.c:323
 msgid "Removing packages"
 msgstr ""
 
 #. TRANSLATORS: transaction state, downloading package files
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:292
-#: ../lib/packagekit-glib2/pk-console-shared.c:670
+#: ../lib/packagekit-glib2/pk-console-shared.c:327
+#: ../lib/packagekit-glib2/pk-console-shared.c:705
 msgid "Downloading packages"
 msgstr ""
 
 #. TRANSLATORS: transaction state, refreshing internal lists
-#: ../lib/packagekit-glib2/pk-console-shared.c:300
+#: ../lib/packagekit-glib2/pk-console-shared.c:335
 msgid "Refreshing software list"
 msgstr ""
 
 #. TRANSLATORS: transaction state, installing updates
-#: ../lib/packagekit-glib2/pk-console-shared.c:304
+#: ../lib/packagekit-glib2/pk-console-shared.c:339
 msgid "Installing updates"
 msgstr ""
 
 #. TRANSLATORS: transaction state, removing old packages, and cleaning config
 #. files
-#: ../lib/packagekit-glib2/pk-console-shared.c:308
+#: ../lib/packagekit-glib2/pk-console-shared.c:343
 msgid "Cleaning up packages"
 msgstr ""
 
 #. TRANSLATORS: transaction state, obsoleting old packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:312
+#: ../lib/packagekit-glib2/pk-console-shared.c:347
 msgid "Obsoleting packages"
 msgstr ""
 
 #. TRANSLATORS: transaction state, checking the transaction before we do it
-#: ../lib/packagekit-glib2/pk-console-shared.c:316
+#: ../lib/packagekit-glib2/pk-console-shared.c:351
 msgid "Resolving dependencies"
 msgstr ""
 
 #. TRANSLATORS: transaction state, checking if we have all the security keys
 #. for the operation
-#: ../lib/packagekit-glib2/pk-console-shared.c:320
+#: ../lib/packagekit-glib2/pk-console-shared.c:355
 msgid "Checking signatures"
 msgstr ""
 
 #. TRANSLATORS: transaction state, when we return to a previous system state
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:324
-#: ../lib/packagekit-glib2/pk-console-shared.c:630
+#: ../lib/packagekit-glib2/pk-console-shared.c:359
+#: ../lib/packagekit-glib2/pk-console-shared.c:665
 msgid "Rolling back"
 msgstr ""
 
 #. TRANSLATORS: transaction state, when we're doing a test transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:328
+#: ../lib/packagekit-glib2/pk-console-shared.c:363
 msgid "Testing changes"
 msgstr ""
 
 #. TRANSLATORS: transaction state, when we're writing to the system package
 #. database
-#: ../lib/packagekit-glib2/pk-console-shared.c:332
+#: ../lib/packagekit-glib2/pk-console-shared.c:367
 msgid "Committing changes"
 msgstr ""
 
 #. TRANSLATORS: transaction state, requesting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:336
+#: ../lib/packagekit-glib2/pk-console-shared.c:371
 msgid "Requesting data"
 msgstr ""
 
 #. TRANSLATORS: transaction state, all done!
-#: ../lib/packagekit-glib2/pk-console-shared.c:340
+#: ../lib/packagekit-glib2/pk-console-shared.c:375
 msgid "Finished"
 msgstr ""
 
 #. TRANSLATORS: transaction state, in the process of cancelling
-#: ../lib/packagekit-glib2/pk-console-shared.c:344
+#: ../lib/packagekit-glib2/pk-console-shared.c:379
 msgid "Cancelling"
 msgstr ""
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:348
+#: ../lib/packagekit-glib2/pk-console-shared.c:383
 msgid "Downloading repository information"
 msgstr ""
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:352
+#: ../lib/packagekit-glib2/pk-console-shared.c:387
 msgid "Downloading list of packages"
 msgstr ""
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:356
+#: ../lib/packagekit-glib2/pk-console-shared.c:391
 msgid "Downloading file lists"
 msgstr ""
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:360
+#: ../lib/packagekit-glib2/pk-console-shared.c:395
 msgid "Downloading lists of changes"
 msgstr ""
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:364
+#: ../lib/packagekit-glib2/pk-console-shared.c:399
 msgid "Downloading groups"
 msgstr ""
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:368
+#: ../lib/packagekit-glib2/pk-console-shared.c:403
 msgid "Downloading update information"
 msgstr ""
 
 #. TRANSLATORS: transaction state, repackaging delta files
-#: ../lib/packagekit-glib2/pk-console-shared.c:372
+#: ../lib/packagekit-glib2/pk-console-shared.c:407
 msgid "Repackaging files"
 msgstr ""
 
 #. TRANSLATORS: transaction state, loading databases
-#: ../lib/packagekit-glib2/pk-console-shared.c:376
+#: ../lib/packagekit-glib2/pk-console-shared.c:411
 msgid "Loading cache"
 msgstr ""
 
 #. TRANSLATORS: transaction state, scanning for running processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:380
+#: ../lib/packagekit-glib2/pk-console-shared.c:415
 msgid "Scanning applications"
 msgstr ""
 
 #. TRANSLATORS: transaction state, generating a list of packages installed on
 #. the system
-#: ../lib/packagekit-glib2/pk-console-shared.c:384
+#: ../lib/packagekit-glib2/pk-console-shared.c:419
 msgid "Generating package lists"
 msgstr ""
 
 #. TRANSLATORS: transaction state, when we're waiting for the native tools to
 #. exit
-#: ../lib/packagekit-glib2/pk-console-shared.c:388
+#: ../lib/packagekit-glib2/pk-console-shared.c:423
 msgid "Waiting for package manager lock"
 msgstr ""
 
 #. TRANSLATORS: transaction state, waiting for user to type in a password
-#: ../lib/packagekit-glib2/pk-console-shared.c:392
+#: ../lib/packagekit-glib2/pk-console-shared.c:427
 msgid "Waiting for authentication"
 msgstr ""
 
 #. TRANSLATORS: transaction state, we are updating the list of processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:396
+#: ../lib/packagekit-glib2/pk-console-shared.c:431
 msgid "Updating running applications"
 msgstr ""
 
 #. TRANSLATORS: transaction state, we are checking executable files currently
 #. in use
-#: ../lib/packagekit-glib2/pk-console-shared.c:400
+#: ../lib/packagekit-glib2/pk-console-shared.c:435
 msgid "Checking applications in use"
 msgstr ""
 
 #. TRANSLATORS: transaction state, we are checking for libraries currently in
 #. use
-#: ../lib/packagekit-glib2/pk-console-shared.c:404
+#: ../lib/packagekit-glib2/pk-console-shared.c:439
 msgid "Checking libraries in use"
 msgstr ""
 
 #. TRANSLATORS: transaction state, we are copying package files before or
 #. after the transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:408
+#: ../lib/packagekit-glib2/pk-console-shared.c:443
 msgid "Copying files"
 msgstr ""
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:426
+#: ../lib/packagekit-glib2/pk-console-shared.c:461
 msgid "Trivial"
 msgstr ""
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:430
+#: ../lib/packagekit-glib2/pk-console-shared.c:465
 msgid "Normal"
 msgstr ""
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:434
+#: ../lib/packagekit-glib2/pk-console-shared.c:469
 msgid "Important"
 msgstr ""
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:438
+#: ../lib/packagekit-glib2/pk-console-shared.c:473
 msgid "Security"
 msgstr ""
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:442
+#: ../lib/packagekit-glib2/pk-console-shared.c:477
 msgid "Bug fix "
 msgstr ""
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:446
+#: ../lib/packagekit-glib2/pk-console-shared.c:481
 msgid "Enhancement"
 msgstr ""
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:450
+#: ../lib/packagekit-glib2/pk-console-shared.c:485
 msgid "Blocked"
 msgstr ""
 
 #. TRANSLATORS: The state of a package
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:455
-#: ../lib/packagekit-glib2/pk-console-shared.c:528
+#: ../lib/packagekit-glib2/pk-console-shared.c:490
+#: ../lib/packagekit-glib2/pk-console-shared.c:563
 msgid "Installed"
 msgstr ""
 
 #. TRANSLATORS: The state of a package, i.e. not installed
-#: ../lib/packagekit-glib2/pk-console-shared.c:460
+#: ../lib/packagekit-glib2/pk-console-shared.c:495
 msgid "Available"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:478
+#: ../lib/packagekit-glib2/pk-console-shared.c:513
 msgid "Downloading"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:482
+#: ../lib/packagekit-glib2/pk-console-shared.c:517
 msgid "Updating"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:486
-#: ../lib/packagekit-glib2/pk-console-shared.c:606
+#: ../lib/packagekit-glib2/pk-console-shared.c:521
+#: ../lib/packagekit-glib2/pk-console-shared.c:641
 msgid "Installing"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:490
-#: ../lib/packagekit-glib2/pk-console-shared.c:602
+#: ../lib/packagekit-glib2/pk-console-shared.c:525
+#: ../lib/packagekit-glib2/pk-console-shared.c:637
 msgid "Removing"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:494
+#: ../lib/packagekit-glib2/pk-console-shared.c:529
 msgid "Cleaning up"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:498
+#: ../lib/packagekit-glib2/pk-console-shared.c:533
 msgid "Obsoleting"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:502
+#: ../lib/packagekit-glib2/pk-console-shared.c:537
 msgid "Reinstalling"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:520
+#: ../lib/packagekit-glib2/pk-console-shared.c:555
 msgid "Downloaded"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:532
+#: ../lib/packagekit-glib2/pk-console-shared.c:567
 msgid "Removed"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:536
+#: ../lib/packagekit-glib2/pk-console-shared.c:571
 msgid "Cleaned up"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:540
+#: ../lib/packagekit-glib2/pk-console-shared.c:575
 msgid "Obsoleted"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:544
+#: ../lib/packagekit-glib2/pk-console-shared.c:579
 msgid "Reinstalled"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:562
+#: ../lib/packagekit-glib2/pk-console-shared.c:597
 msgid "Unknown role type"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:566
+#: ../lib/packagekit-glib2/pk-console-shared.c:601
 msgid "Getting dependencies"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:570
+#: ../lib/packagekit-glib2/pk-console-shared.c:605
 msgid "Getting update details"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:574
+#: ../lib/packagekit-glib2/pk-console-shared.c:609
 msgid "Getting details"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:578
+#: ../lib/packagekit-glib2/pk-console-shared.c:613
 msgid "Getting requires"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:582
+#: ../lib/packagekit-glib2/pk-console-shared.c:617
 msgid "Getting updates"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:586
+#: ../lib/packagekit-glib2/pk-console-shared.c:621
 msgid "Searching by details"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:590
+#: ../lib/packagekit-glib2/pk-console-shared.c:625
 msgid "Searching by file"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:594
+#: ../lib/packagekit-glib2/pk-console-shared.c:629
 msgid "Searching groups"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:598
+#: ../lib/packagekit-glib2/pk-console-shared.c:633
 msgid "Searching by name"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:610
+#: ../lib/packagekit-glib2/pk-console-shared.c:645
 msgid "Installing files"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:614
+#: ../lib/packagekit-glib2/pk-console-shared.c:649
 msgid "Refreshing cache"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:618
+#: ../lib/packagekit-glib2/pk-console-shared.c:653
 msgid "Updating packages"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:622
+#: ../lib/packagekit-glib2/pk-console-shared.c:657
 msgid "Updating system"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:626
+#: ../lib/packagekit-glib2/pk-console-shared.c:661
 msgid "Canceling"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:634
+#: ../lib/packagekit-glib2/pk-console-shared.c:669
 msgid "Getting repositories"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:638
+#: ../lib/packagekit-glib2/pk-console-shared.c:673
 msgid "Enabling repository"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:642
+#: ../lib/packagekit-glib2/pk-console-shared.c:677
 msgid "Setting data"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:646
+#: ../lib/packagekit-glib2/pk-console-shared.c:681
 msgid "Resolving"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:650
+#: ../lib/packagekit-glib2/pk-console-shared.c:685
 msgid "Getting file list"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:654
+#: ../lib/packagekit-glib2/pk-console-shared.c:689
 msgid "Getting provides"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:658
+#: ../lib/packagekit-glib2/pk-console-shared.c:693
 msgid "Installing signature"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:662
+#: ../lib/packagekit-glib2/pk-console-shared.c:697
 msgid "Getting packages"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:666
+#: ../lib/packagekit-glib2/pk-console-shared.c:701
 msgid "Accepting EULA"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:674
+#: ../lib/packagekit-glib2/pk-console-shared.c:709
 msgid "Getting upgrades"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:678
+#: ../lib/packagekit-glib2/pk-console-shared.c:713
 msgid "Getting categories"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:682
+#: ../lib/packagekit-glib2/pk-console-shared.c:717
 msgid "Getting transactions"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:686
-#: ../lib/packagekit-glib2/pk-console-shared.c:690
+#: ../lib/packagekit-glib2/pk-console-shared.c:721
+#: ../lib/packagekit-glib2/pk-console-shared.c:725
 msgid "Simulating install"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:694
+#: ../lib/packagekit-glib2/pk-console-shared.c:729
 msgid "Simulating remove"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:698
+#: ../lib/packagekit-glib2/pk-console-shared.c:733
 msgid "Simulating update"
 msgstr ""
 
@@ -1788,13 +1785,19 @@ msgstr ""
 msgid "The following packages have to be downgraded:"
 msgstr ""
 
+#. TRANSLATORS: When processing, untrusted and non-verified packages may be
+#. encountered
+#: ../lib/packagekit-glib2/pk-task-text.c:325
+msgid "The following packages are untrusted:"
+msgstr ""
+
 #. TRANSLATORS: ask the user if the proposed changes are okay
-#: ../lib/packagekit-glib2/pk-task-text.c:380
+#: ../lib/packagekit-glib2/pk-task-text.c:385
 msgid "Proceed with changes?"
 msgstr ""
 
 #. TRANSLATORS: tell the user we didn't do anything
-#: ../lib/packagekit-glib2/pk-task-text.c:385
+#: ../lib/packagekit-glib2/pk-task-text.c:390
 msgid "The transaction did not proceed."
 msgstr ""
 
@@ -1998,96 +2001,68 @@ msgstr ""
 msgid "Upgrade System"
 msgstr ""
 
-#. TRANSLATORS: failed due to DBus security
-#: ../src/pk-main.c:91
-msgid "Startup failed due to security policies on this machine."
-msgstr ""
-
-#. TRANSLATORS: only two ways this can fail...
-#: ../src/pk-main.c:93
-msgid "This can happen for two reasons:"
-msgstr ""
-
-#. TRANSLATORS: only allowed to be owned by root
-#: ../src/pk-main.c:95
-msgid "The correct user is not launching the executable (usually root)"
-msgstr ""
-
-#. TRANSLATORS: or we are installed in a prefix
-#: ../src/pk-main.c:97
-msgid ""
-"The org.freedesktop.PackageKit.conf file is not installed in the system "
-"directory:"
-msgstr ""
-
 #. TRANSLATORS: a backend is the system package tool, e.g. yum, apt
-#: ../src/pk-main.c:223
+#: ../src/pk-main.c:149
 msgid "Packaging backend to use, e.g. dummy"
 msgstr ""
 
 #. TRANSLATORS: if we should run in the background
-#: ../src/pk-main.c:226
+#: ../src/pk-main.c:152
 msgid "Daemonize and detach from the terminal"
 msgstr ""
 
 #. TRANSLATORS: if we should not monitor how long we are inactive for
-#: ../src/pk-main.c:229
+#: ../src/pk-main.c:155
 msgid "Disable the idle timer"
 msgstr ""
 
 #. TRANSLATORS: show version
-#: ../src/pk-main.c:232
+#: ../src/pk-main.c:158
 msgid "Show version and exit"
 msgstr "Papar versi dan keluar"
 
 #. TRANSLATORS: exit after we've started up, used for user profiling
-#: ../src/pk-main.c:235
+#: ../src/pk-main.c:161
 msgid "Exit after a small delay"
 msgstr ""
 
 #. TRANSLATORS: exit straight away, used for automatic profiling
-#: ../src/pk-main.c:238
+#: ../src/pk-main.c:164
 msgid "Exit after the engine has loaded"
 msgstr ""
 
+#. TRANSLATORS: don't unset environment variables, used for debugging
+#: ../src/pk-main.c:167
+msgid "Don't clear environment on startup"
+msgstr ""
+
 #. TRANSLATORS: describing the service that is running
-#: ../src/pk-main.c:253
+#: ../src/pk-main.c:179
 msgid "PackageKit service"
 msgstr "Servis PackageKit"
 
-#. TRANSLATORS: fatal error, dbus is not running
-#: ../src/pk-main.c:298
-msgid "Cannot connect to the system bus"
-msgstr ""
-
-#: ../src/pk-main.c:344
+#: ../src/pk-main.c:253
 msgid "Failed to load any of the specified backends:"
 msgstr ""
 
-#. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error
-#. follows
-#: ../src/pk-main.c:358
-msgid "Error trying to start:"
-msgstr "Ralat cuba untuk memulakan:"
-
 #. TRANSLATORS: is not GPG signed
-#: ../src/pk-transaction.c:2611 ../src/pk-transaction.c:2618
+#: ../src/pk-transaction.c:2696
 msgid "The software is not from a trusted source."
 msgstr ""
 
-#: ../src/pk-transaction.c:2623
+#: ../src/pk-transaction.c:2704
 msgid "Do not update this package unless you are sure it is safe to do so."
 msgstr ""
 
-#: ../src/pk-transaction.c:2624
+#: ../src/pk-transaction.c:2705
 msgid "Do not update these packages unless you are sure it is safe to do so."
 msgstr ""
 
-#: ../src/pk-transaction.c:2634
+#: ../src/pk-transaction.c:2715
 msgid "Do not install this package unless you are sure it is safe to do so."
 msgstr ""
 
-#: ../src/pk-transaction.c:2635
+#: ../src/pk-transaction.c:2716
 msgid "Do not install these packages unless you are sure it is safe to do so."
 msgstr ""
 
diff --git a/po/nb.po b/po/nb.po
index 4faf313..ba42d26 100644
--- a/po/nb.po
+++ b/po/nb.po
@@ -2,14 +2,16 @@
 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
 # This file is distributed under the same license as the PACKAGE package.
 # 
-# Richard Hughes <richard at hughsie.com>, 2011
+# Translators:
+# Mats Taraldsvik <mats.taraldsvik at gmail.com>, 2008.
+# Richard Hughes <richard at hughsie.com>, 2011.
 msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-04 10:50+0100\n"
-"PO-Revision-Date: 2011-05-04 09:56+0000\n"
-"Last-Translator: hughsie <richard at hughsie.com>\n"
+"POT-Creation-Date: 2011-11-10 19:50+0000\n"
+"PO-Revision-Date: 2011-11-10 19:50+0000\n"
+"Last-Translator: Richard Hughes <richard at hughsie.com>\n"
 "Language-Team: LANGUAGE <LL at li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -195,7 +197,7 @@ msgstr ""
 
 #. TRANSLATORS: details about the update, date the update was updated
 #. TRANSLATORS: The action of the package, in past tense
-#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:524
+#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:559
 msgid "Updated"
 msgstr ""
 
@@ -285,7 +287,7 @@ msgstr ""
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
 #: ../client/pk-console.c:704
-#: ../contrib/command-not-found/pk-command-not-found.c:639
+#: ../contrib/command-not-found/pk-command-not-found.c:634
 msgid "The transaction failed"
 msgstr ""
 
@@ -333,21 +335,21 @@ msgstr ""
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:866
+#: ../client/pk-console.c:871
 #, c-format
 msgid "This tool could not find any available package: %s"
 msgstr ""
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:894
+#: ../client/pk-console.c:899
 #, c-format
 msgid "This tool could not find the installed package: %s"
 msgstr ""
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:922 ../client/pk-console.c:950
+#: ../client/pk-console.c:927 ../client/pk-console.c:955
 #, c-format
 msgid "This tool could not find the package: %s"
 msgstr ""
@@ -360,223 +362,223 @@ msgstr ""
 #. detailed error follows
 #. TRANSLATORS: The package name was not found in any software sources. The
 #. detailed error follows
-#: ../client/pk-console.c:978 ../client/pk-console.c:1006
-#: ../client/pk-console.c:1034 ../client/pk-console.c:1062
-#: ../client/pk-console.c:1090
+#: ../client/pk-console.c:983 ../client/pk-console.c:1011
+#: ../client/pk-console.c:1039 ../client/pk-console.c:1067
+#: ../client/pk-console.c:1095
 #, c-format
 msgid "This tool could not find all the packages: %s"
 msgstr ""
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek
 #. without a paddle
-#: ../client/pk-console.c:1119
+#: ../client/pk-console.c:1124
 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:1153
+#: ../client/pk-console.c:1158
 msgid "PackageKit Console Interface"
 msgstr "PackageKit Konsollgrensesnitt"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1155
+#: ../client/pk-console.c:1160
 msgid "Subcommands:"
 msgstr "Underkommandoer:"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was
 #. last executed
-#: ../client/pk-console.c:1235
+#: ../client/pk-console.c:1240
 msgid "Failed to get the time since this action was last completed"
 msgstr ""
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1277 ../client/pk-monitor.c:371
+#: ../client/pk-console.c:1282 ../client/pk-monitor.c:371
 msgid "Show the program version and exit"
 msgstr "Vis versjonsnummer og avslutt"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1280
+#: ../client/pk-console.c:1285
 msgid "Set the filter, e.g. installed"
 msgstr "Bruk filteret, f.eks installerte (programpakker)"
 
 #. TRANSLATORS: command line argument, use a non-standard install prefix
-#: ../client/pk-console.c:1283
+#: ../client/pk-console.c:1288
 msgid "Set the install root, e.g. '/' or '/mnt/ltsp'"
 msgstr ""
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1286
+#: ../client/pk-console.c:1291
 msgid "Exit without waiting for actions to complete"
 msgstr "Avslutt uten å vente til alle operasjoner har gjort seg ferdige"
 
 #. command line argument, do we ask questions
-#: ../client/pk-console.c:1289
+#: ../client/pk-console.c:1294
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:525
 msgid "Install the packages without asking for confirmation"
 msgstr ""
 
 #. TRANSLATORS: command line argument, this command is not a priority
-#: ../client/pk-console.c:1292
+#: ../client/pk-console.c:1297
 msgid "Run the command using idle network bandwidth and also using less power"
 msgstr ""
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1295
+#: ../client/pk-console.c:1300
 msgid ""
 "Print to screen a machine readable output, rather than using animated "
 "widgets"
 msgstr ""
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1298
+#: ../client/pk-console.c:1303
 msgid "The maximum metadata cache age. Use -1 for 'never'."
 msgstr ""
 
 #. TRANSLATORS: command line argument, --help
-#: ../client/pk-console.c:1301
+#: ../client/pk-console.c:1306
 msgid "Show help options."
 msgstr ""
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1331
+#: ../client/pk-console.c:1336
 msgid "Failed to parse command line"
 msgstr ""
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1341
+#: ../client/pk-console.c:1346
 msgid "Failed to contact PackageKit"
 msgstr ""
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1394
+#: ../client/pk-console.c:1399
 msgid "The proxy could not be set"
 msgstr ""
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1406
+#: ../client/pk-console.c:1411
 msgid "The install root could not be set"
 msgstr ""
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1418
+#: ../client/pk-console.c:1423
 msgid "The filter specified was invalid"
 msgstr ""
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1437
+#: ../client/pk-console.c:1442
 msgid "A search type is required, e.g. name"
 msgstr ""
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1444 ../client/pk-console.c:1456
-#: ../client/pk-console.c:1468 ../client/pk-console.c:1480
+#: ../client/pk-console.c:1449 ../client/pk-console.c:1461
+#: ../client/pk-console.c:1473 ../client/pk-console.c:1485
 msgid "A search term is required"
 msgstr ""
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1490
+#: ../client/pk-console.c:1495
 msgid "Invalid search type"
 msgstr "Søketypen ble ikke gjenkjent"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1496
+#: ../client/pk-console.c:1501
 msgid "A package name to install is required"
 msgstr ""
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1505
+#: ../client/pk-console.c:1510
 msgid "A filename to install is required"
 msgstr ""
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1516
+#: ../client/pk-console.c:1521
 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:1527
+#: ../client/pk-console.c:1532
 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:1536
+#: ../client/pk-console.c:1541
 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:1543
+#: ../client/pk-console.c:1548
 msgid "Directory not found"
 msgstr ""
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1552
+#: ../client/pk-console.c:1557
 msgid "A licence identifier (eula-id) is required"
 msgstr ""
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1563
+#: ../client/pk-console.c:1568
 msgid "A transaction identifier (tid) is required"
 msgstr ""
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:1584
+#: ../client/pk-console.c:1589
 msgid "A package name to resolve is required"
 msgstr ""
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:1595 ../client/pk-console.c:1606
+#: ../client/pk-console.c:1600 ../client/pk-console.c:1611
 msgid "A repository name is required"
 msgstr ""
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:1617
+#: ../client/pk-console.c:1622
 msgid "A repo name, parameter and value are required"
 msgstr ""
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:1634
+#: ../client/pk-console.c:1639
 msgid "An action, e.g. 'update-system' is required"
 msgstr ""
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:1641
+#: ../client/pk-console.c:1646
 msgid "A correct role is required"
 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:1651 ../client/pk-console.c:1665
-#: ../client/pk-console.c:1674 ../client/pk-console.c:1694
-#: ../client/pk-console.c:1703 ../client/pk-generate-pack.c:314
+#: ../client/pk-console.c:1656 ../client/pk-console.c:1670
+#: ../client/pk-console.c:1679 ../client/pk-console.c:1699
+#: ../client/pk-console.c:1708 ../client/pk-generate-pack.c:314
 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:1683
+#: ../client/pk-console.c:1688
 msgid "A package provide string is required"
 msgstr ""
 
 #. TRANSLATORS: The user did not provide a distro name
-#: ../client/pk-console.c:1727
+#: ../client/pk-console.c:1732
 msgid "A distribution name is required"
 msgstr ""
 
 #. TRANSLATORS: The user did not provide an upgrade type
-#: ../client/pk-console.c:1733
+#: ../client/pk-console.c:1738
 msgid "An upgrade type is required, e.g. 'minimal', 'default' or 'complete'"
 msgstr ""
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command
 #. line
-#: ../client/pk-console.c:1783
+#: ../client/pk-console.c:1788
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr ""
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:1793
+#: ../client/pk-console.c:1798
 msgid "Command failed"
 msgstr "Klarte ikke å kjøre kommandoen"
 
@@ -711,159 +713,154 @@ msgid "PackageKit Monitor"
 msgstr "PackageKit Monitor"
 
 #. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/pk-plugin-install.c:499
+#: ../contrib/browser-plugin/pk-plugin-install.c:503
 msgid "Getting package information..."
 msgstr ""
 
 #. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/pk-plugin-install.c:505
+#: ../contrib/browser-plugin/pk-plugin-install.c:509
 #, c-format
 msgid "Run %s"
 msgstr ""
 
 #. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:511
+#: ../contrib/browser-plugin/pk-plugin-install.c:515
 msgid "Installed version"
 msgstr ""
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:519
+#: ../contrib/browser-plugin/pk-plugin-install.c:523
 #, c-format
 msgid "Run version %s now"
 msgstr ""
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:525
+#: ../contrib/browser-plugin/pk-plugin-install.c:529
 msgid "Run now"
 msgstr ""
 
 #. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:531
+#: ../contrib/browser-plugin/pk-plugin-install.c:535
 #, c-format
 msgid "Update to version %s"
 msgstr ""
 
 #. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:537
+#: ../contrib/browser-plugin/pk-plugin-install.c:541
 #, c-format
 msgid "Install %s now"
 msgstr ""
 
 #. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:540
+#: ../contrib/browser-plugin/pk-plugin-install.c:544
 msgid "Version"
 msgstr ""
 
 #. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/pk-plugin-install.c:545
+#: ../contrib/browser-plugin/pk-plugin-install.c:549
 msgid "No packages found for your system"
 msgstr ""
 
 #. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/pk-plugin-install.c:550
+#: ../contrib/browser-plugin/pk-plugin-install.c:554
 msgid "Installing..."
 msgstr ""
 
 #. TRANSLATORS: downloading repo data so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:366
+#: ../contrib/command-not-found/pk-command-not-found.c:363
 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:370
+#: ../contrib/command-not-found/pk-command-not-found.c:367
 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:374
+#: ../contrib/command-not-found/pk-command-not-found.c:371
 msgid "Waiting for package manager lock."
 msgstr ""
 
 #. TRANSLATORS: loading package cache so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:378
+#: ../contrib/command-not-found/pk-command-not-found.c:375
 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:444
+#: ../contrib/command-not-found/pk-command-not-found.c:439
 msgid "Failed to search for file"
 msgstr ""
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
-#: ../contrib/command-not-found/pk-command-not-found.c:456
+#: ../contrib/command-not-found/pk-command-not-found.c:451
 msgid "Getting the list of files failed"
 msgstr ""
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:602
+#: ../contrib/command-not-found/pk-command-not-found.c:597
 msgid "Failed to launch:"
 msgstr ""
 
 #. TRANSLATORS: we failed to install the package
-#: ../contrib/command-not-found/pk-command-not-found.c:630
+#: ../contrib/command-not-found/pk-command-not-found.c:625
 msgid "Failed to install packages"
 msgstr ""
 
-#. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/command-not-found/pk-command-not-found.c:706
-msgid "PackageKit Command Not Found"
-msgstr ""
-
 #. TRANSLATORS: the prefix of all the output telling the user
 #. * why it's not executing. NOTE: this is lowercase to mimic
 #. * the style of bash itself -- apologies
-#: ../contrib/command-not-found/pk-command-not-found.c:741
+#: ../contrib/command-not-found/pk-command-not-found.c:723
 msgid "command not found"
 msgstr ""
 
 #. TRANSLATORS: tell the user what we think the command is
-#: ../contrib/command-not-found/pk-command-not-found.c:759
+#: ../contrib/command-not-found/pk-command-not-found.c:741
 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:773
+#: ../contrib/command-not-found/pk-command-not-found.c:755
 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:787
-#: ../contrib/command-not-found/pk-command-not-found.c:796
+#: ../contrib/command-not-found/pk-command-not-found.c:769
+#: ../contrib/command-not-found/pk-command-not-found.c:778
 msgid "Similar commands are:"
 msgstr ""
 
 #. TRANSLATORS: ask the user to choose a file to run
-#: ../contrib/command-not-found/pk-command-not-found.c:803
+#: ../contrib/command-not-found/pk-command-not-found.c:785
 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:821
+#: ../contrib/command-not-found/pk-command-not-found.c:803
 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:828
+#: ../contrib/command-not-found/pk-command-not-found.c:810
 #, 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:855
+#: ../contrib/command-not-found/pk-command-not-found.c:837
 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:865
+#: ../contrib/command-not-found/pk-command-not-found.c:847
 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:874
+#: ../contrib/command-not-found/pk-command-not-found.c:856
 msgid "Please choose a package to install"
 msgstr ""
 
@@ -1037,7 +1034,7 @@ msgstr ""
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
 #. TRANSLATORS: transaction state, installing packages
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:860
-#: ../lib/packagekit-glib2/pk-console-shared.c:296
+#: ../lib/packagekit-glib2/pk-console-shared.c:331
 #, c-format
 msgid "Installing packages"
 msgstr ""
@@ -1171,474 +1168,474 @@ msgstr ""
 msgid "PackageKit Service Pack"
 msgstr ""
 
-#: ../lib/packagekit-glib2/pk-console-shared.c:64
+#: ../lib/packagekit-glib2/pk-console-shared.c:65
 #, c-format
 msgid "Please enter a number from 1 to %i: "
 msgstr "Skriv inn ett tall fra 1 til %i: "
 
 #. TRANSLATORS: more than one package could be found that matched, to follow
 #. is a list of possible packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:198
+#: ../lib/packagekit-glib2/pk-console-shared.c:233
 msgid "More than one package matches:"
 msgstr ""
 
 #. TRANSLATORS: This finds out which package in the list to use
-#: ../lib/packagekit-glib2/pk-console-shared.c:209
+#: ../lib/packagekit-glib2/pk-console-shared.c:244
 msgid "Please choose the correct package: "
 msgstr ""
 
 #. TRANSLATORS: This is when the transaction status is not known
-#: ../lib/packagekit-glib2/pk-console-shared.c:264
+#: ../lib/packagekit-glib2/pk-console-shared.c:299
 msgid "Unknown state"
 msgstr ""
 
 #. TRANSLATORS: transaction state, the daemon is in the process of starting
-#: ../lib/packagekit-glib2/pk-console-shared.c:268
+#: ../lib/packagekit-glib2/pk-console-shared.c:303
 msgid "Starting"
 msgstr ""
 
 #. TRANSLATORS: transaction state, the transaction is waiting for another to
 #. complete
-#: ../lib/packagekit-glib2/pk-console-shared.c:272
+#: ../lib/packagekit-glib2/pk-console-shared.c:307
 msgid "Waiting in queue"
 msgstr ""
 
 #. TRANSLATORS: transaction state, just started
-#: ../lib/packagekit-glib2/pk-console-shared.c:276
+#: ../lib/packagekit-glib2/pk-console-shared.c:311
 msgid "Running"
 msgstr ""
 
 #. TRANSLATORS: transaction state, is querying data
-#: ../lib/packagekit-glib2/pk-console-shared.c:280
+#: ../lib/packagekit-glib2/pk-console-shared.c:315
 msgid "Querying"
 msgstr ""
 
 #. TRANSLATORS: transaction state, getting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:284
+#: ../lib/packagekit-glib2/pk-console-shared.c:319
 msgid "Getting information"
 msgstr ""
 
 #. TRANSLATORS: transaction state, removing packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:288
+#: ../lib/packagekit-glib2/pk-console-shared.c:323
 msgid "Removing packages"
 msgstr ""
 
 #. TRANSLATORS: transaction state, downloading package files
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:292
-#: ../lib/packagekit-glib2/pk-console-shared.c:670
+#: ../lib/packagekit-glib2/pk-console-shared.c:327
+#: ../lib/packagekit-glib2/pk-console-shared.c:705
 msgid "Downloading packages"
 msgstr ""
 
 #. TRANSLATORS: transaction state, refreshing internal lists
-#: ../lib/packagekit-glib2/pk-console-shared.c:300
+#: ../lib/packagekit-glib2/pk-console-shared.c:335
 msgid "Refreshing software list"
 msgstr ""
 
 #. TRANSLATORS: transaction state, installing updates
-#: ../lib/packagekit-glib2/pk-console-shared.c:304
+#: ../lib/packagekit-glib2/pk-console-shared.c:339
 msgid "Installing updates"
 msgstr ""
 
 #. TRANSLATORS: transaction state, removing old packages, and cleaning config
 #. files
-#: ../lib/packagekit-glib2/pk-console-shared.c:308
+#: ../lib/packagekit-glib2/pk-console-shared.c:343
 msgid "Cleaning up packages"
 msgstr ""
 
 #. TRANSLATORS: transaction state, obsoleting old packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:312
+#: ../lib/packagekit-glib2/pk-console-shared.c:347
 msgid "Obsoleting packages"
 msgstr ""
 
 #. TRANSLATORS: transaction state, checking the transaction before we do it
-#: ../lib/packagekit-glib2/pk-console-shared.c:316
+#: ../lib/packagekit-glib2/pk-console-shared.c:351
 msgid "Resolving dependencies"
 msgstr ""
 
 #. TRANSLATORS: transaction state, checking if we have all the security keys
 #. for the operation
-#: ../lib/packagekit-glib2/pk-console-shared.c:320
+#: ../lib/packagekit-glib2/pk-console-shared.c:355
 msgid "Checking signatures"
 msgstr ""
 
 #. TRANSLATORS: transaction state, when we return to a previous system state
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:324
-#: ../lib/packagekit-glib2/pk-console-shared.c:630
+#: ../lib/packagekit-glib2/pk-console-shared.c:359
+#: ../lib/packagekit-glib2/pk-console-shared.c:665
 msgid "Rolling back"
 msgstr ""
 
 #. TRANSLATORS: transaction state, when we're doing a test transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:328
+#: ../lib/packagekit-glib2/pk-console-shared.c:363
 msgid "Testing changes"
 msgstr ""
 
 #. TRANSLATORS: transaction state, when we're writing to the system package
 #. database
-#: ../lib/packagekit-glib2/pk-console-shared.c:332
+#: ../lib/packagekit-glib2/pk-console-shared.c:367
 msgid "Committing changes"
 msgstr ""
 
 #. TRANSLATORS: transaction state, requesting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:336
+#: ../lib/packagekit-glib2/pk-console-shared.c:371
 msgid "Requesting data"
 msgstr ""
 
 #. TRANSLATORS: transaction state, all done!
-#: ../lib/packagekit-glib2/pk-console-shared.c:340
+#: ../lib/packagekit-glib2/pk-console-shared.c:375
 msgid "Finished"
 msgstr ""
 
 #. TRANSLATORS: transaction state, in the process of cancelling
-#: ../lib/packagekit-glib2/pk-console-shared.c:344
+#: ../lib/packagekit-glib2/pk-console-shared.c:379
 msgid "Cancelling"
 msgstr ""
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:348
+#: ../lib/packagekit-glib2/pk-console-shared.c:383
 msgid "Downloading repository information"
 msgstr ""
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:352
+#: ../lib/packagekit-glib2/pk-console-shared.c:387
 msgid "Downloading list of packages"
 msgstr ""
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:356
+#: ../lib/packagekit-glib2/pk-console-shared.c:391
 msgid "Downloading file lists"
 msgstr ""
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:360
+#: ../lib/packagekit-glib2/pk-console-shared.c:395
 msgid "Downloading lists of changes"
 msgstr ""
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:364
+#: ../lib/packagekit-glib2/pk-console-shared.c:399
 msgid "Downloading groups"
 msgstr ""
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:368
+#: ../lib/packagekit-glib2/pk-console-shared.c:403
 msgid "Downloading update information"
 msgstr ""
 
 #. TRANSLATORS: transaction state, repackaging delta files
-#: ../lib/packagekit-glib2/pk-console-shared.c:372
+#: ../lib/packagekit-glib2/pk-console-shared.c:407
 msgid "Repackaging files"
 msgstr ""
 
 #. TRANSLATORS: transaction state, loading databases
-#: ../lib/packagekit-glib2/pk-console-shared.c:376
+#: ../lib/packagekit-glib2/pk-console-shared.c:411
 msgid "Loading cache"
 msgstr ""
 
 #. TRANSLATORS: transaction state, scanning for running processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:380
+#: ../lib/packagekit-glib2/pk-console-shared.c:415
 msgid "Scanning applications"
 msgstr ""
 
 #. TRANSLATORS: transaction state, generating a list of packages installed on
 #. the system
-#: ../lib/packagekit-glib2/pk-console-shared.c:384
+#: ../lib/packagekit-glib2/pk-console-shared.c:419
 msgid "Generating package lists"
 msgstr ""
 
 #. TRANSLATORS: transaction state, when we're waiting for the native tools to
 #. exit
-#: ../lib/packagekit-glib2/pk-console-shared.c:388
+#: ../lib/packagekit-glib2/pk-console-shared.c:423
 msgid "Waiting for package manager lock"
 msgstr ""
 
 #. TRANSLATORS: transaction state, waiting for user to type in a password
-#: ../lib/packagekit-glib2/pk-console-shared.c:392
+#: ../lib/packagekit-glib2/pk-console-shared.c:427
 msgid "Waiting for authentication"
 msgstr ""
 
 #. TRANSLATORS: transaction state, we are updating the list of processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:396
+#: ../lib/packagekit-glib2/pk-console-shared.c:431
 msgid "Updating running applications"
 msgstr ""
 
 #. TRANSLATORS: transaction state, we are checking executable files currently
 #. in use
-#: ../lib/packagekit-glib2/pk-console-shared.c:400
+#: ../lib/packagekit-glib2/pk-console-shared.c:435
 msgid "Checking applications in use"
 msgstr ""
 
 #. TRANSLATORS: transaction state, we are checking for libraries currently in
 #. use
-#: ../lib/packagekit-glib2/pk-console-shared.c:404
+#: ../lib/packagekit-glib2/pk-console-shared.c:439
 msgid "Checking libraries in use"
 msgstr ""
 
 #. TRANSLATORS: transaction state, we are copying package files before or
 #. after the transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:408
+#: ../lib/packagekit-glib2/pk-console-shared.c:443
 msgid "Copying files"
 msgstr ""
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:426
+#: ../lib/packagekit-glib2/pk-console-shared.c:461
 msgid "Trivial"
 msgstr ""
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:430
+#: ../lib/packagekit-glib2/pk-console-shared.c:465
 msgid "Normal"
 msgstr ""
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:434
+#: ../lib/packagekit-glib2/pk-console-shared.c:469
 msgid "Important"
 msgstr ""
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:438
+#: ../lib/packagekit-glib2/pk-console-shared.c:473
 msgid "Security"
 msgstr ""
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:442
+#: ../lib/packagekit-glib2/pk-console-shared.c:477
 msgid "Bug fix "
 msgstr ""
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:446
+#: ../lib/packagekit-glib2/pk-console-shared.c:481
 msgid "Enhancement"
 msgstr ""
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:450
+#: ../lib/packagekit-glib2/pk-console-shared.c:485
 msgid "Blocked"
 msgstr ""
 
 #. TRANSLATORS: The state of a package
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:455
-#: ../lib/packagekit-glib2/pk-console-shared.c:528
+#: ../lib/packagekit-glib2/pk-console-shared.c:490
+#: ../lib/packagekit-glib2/pk-console-shared.c:563
 msgid "Installed"
 msgstr ""
 
 #. TRANSLATORS: The state of a package, i.e. not installed
-#: ../lib/packagekit-glib2/pk-console-shared.c:460
+#: ../lib/packagekit-glib2/pk-console-shared.c:495
 msgid "Available"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:478
+#: ../lib/packagekit-glib2/pk-console-shared.c:513
 msgid "Downloading"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:482
+#: ../lib/packagekit-glib2/pk-console-shared.c:517
 msgid "Updating"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:486
-#: ../lib/packagekit-glib2/pk-console-shared.c:606
+#: ../lib/packagekit-glib2/pk-console-shared.c:521
+#: ../lib/packagekit-glib2/pk-console-shared.c:641
 msgid "Installing"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:490
-#: ../lib/packagekit-glib2/pk-console-shared.c:602
+#: ../lib/packagekit-glib2/pk-console-shared.c:525
+#: ../lib/packagekit-glib2/pk-console-shared.c:637
 msgid "Removing"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:494
+#: ../lib/packagekit-glib2/pk-console-shared.c:529
 msgid "Cleaning up"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:498
+#: ../lib/packagekit-glib2/pk-console-shared.c:533
 msgid "Obsoleting"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:502
+#: ../lib/packagekit-glib2/pk-console-shared.c:537
 msgid "Reinstalling"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:520
+#: ../lib/packagekit-glib2/pk-console-shared.c:555
 msgid "Downloaded"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:532
+#: ../lib/packagekit-glib2/pk-console-shared.c:567
 msgid "Removed"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:536
+#: ../lib/packagekit-glib2/pk-console-shared.c:571
 msgid "Cleaned up"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:540
+#: ../lib/packagekit-glib2/pk-console-shared.c:575
 msgid "Obsoleted"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:544
+#: ../lib/packagekit-glib2/pk-console-shared.c:579
 msgid "Reinstalled"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:562
+#: ../lib/packagekit-glib2/pk-console-shared.c:597
 msgid "Unknown role type"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:566
+#: ../lib/packagekit-glib2/pk-console-shared.c:601
 msgid "Getting dependencies"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:570
+#: ../lib/packagekit-glib2/pk-console-shared.c:605
 msgid "Getting update details"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:574
+#: ../lib/packagekit-glib2/pk-console-shared.c:609
 msgid "Getting details"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:578
+#: ../lib/packagekit-glib2/pk-console-shared.c:613
 msgid "Getting requires"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:582
+#: ../lib/packagekit-glib2/pk-console-shared.c:617
 msgid "Getting updates"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:586
+#: ../lib/packagekit-glib2/pk-console-shared.c:621
 msgid "Searching by details"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:590
+#: ../lib/packagekit-glib2/pk-console-shared.c:625
 msgid "Searching by file"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:594
+#: ../lib/packagekit-glib2/pk-console-shared.c:629
 msgid "Searching groups"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:598
+#: ../lib/packagekit-glib2/pk-console-shared.c:633
 msgid "Searching by name"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:610
+#: ../lib/packagekit-glib2/pk-console-shared.c:645
 msgid "Installing files"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:614
+#: ../lib/packagekit-glib2/pk-console-shared.c:649
 msgid "Refreshing cache"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:618
+#: ../lib/packagekit-glib2/pk-console-shared.c:653
 msgid "Updating packages"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:622
+#: ../lib/packagekit-glib2/pk-console-shared.c:657
 msgid "Updating system"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:626
+#: ../lib/packagekit-glib2/pk-console-shared.c:661
 msgid "Canceling"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:634
+#: ../lib/packagekit-glib2/pk-console-shared.c:669
 msgid "Getting repositories"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:638
+#: ../lib/packagekit-glib2/pk-console-shared.c:673
 msgid "Enabling repository"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:642
+#: ../lib/packagekit-glib2/pk-console-shared.c:677
 msgid "Setting data"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:646
+#: ../lib/packagekit-glib2/pk-console-shared.c:681
 msgid "Resolving"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:650
+#: ../lib/packagekit-glib2/pk-console-shared.c:685
 msgid "Getting file list"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:654
+#: ../lib/packagekit-glib2/pk-console-shared.c:689
 msgid "Getting provides"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:658
+#: ../lib/packagekit-glib2/pk-console-shared.c:693
 msgid "Installing signature"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:662
+#: ../lib/packagekit-glib2/pk-console-shared.c:697
 msgid "Getting packages"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:666
+#: ../lib/packagekit-glib2/pk-console-shared.c:701
 msgid "Accepting EULA"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:674
+#: ../lib/packagekit-glib2/pk-console-shared.c:709
 msgid "Getting upgrades"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:678
+#: ../lib/packagekit-glib2/pk-console-shared.c:713
 msgid "Getting categories"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:682
+#: ../lib/packagekit-glib2/pk-console-shared.c:717
 msgid "Getting transactions"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:686
-#: ../lib/packagekit-glib2/pk-console-shared.c:690
+#: ../lib/packagekit-glib2/pk-console-shared.c:721
+#: ../lib/packagekit-glib2/pk-console-shared.c:725
 msgid "Simulating install"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:694
+#: ../lib/packagekit-glib2/pk-console-shared.c:729
 msgid "Simulating remove"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:698
+#: ../lib/packagekit-glib2/pk-console-shared.c:733
 msgid "Simulating update"
 msgstr ""
 
@@ -1788,13 +1785,19 @@ msgstr ""
 msgid "The following packages have to be downgraded:"
 msgstr ""
 
+#. TRANSLATORS: When processing, untrusted and non-verified packages may be
+#. encountered
+#: ../lib/packagekit-glib2/pk-task-text.c:325
+msgid "The following packages are untrusted:"
+msgstr ""
+
 #. TRANSLATORS: ask the user if the proposed changes are okay
-#: ../lib/packagekit-glib2/pk-task-text.c:380
+#: ../lib/packagekit-glib2/pk-task-text.c:385
 msgid "Proceed with changes?"
 msgstr ""
 
 #. TRANSLATORS: tell the user we didn't do anything
-#: ../lib/packagekit-glib2/pk-task-text.c:385
+#: ../lib/packagekit-glib2/pk-task-text.c:390
 msgid "The transaction did not proceed."
 msgstr ""
 
@@ -1999,98 +2002,68 @@ msgstr ""
 msgid "Upgrade System"
 msgstr ""
 
-#. TRANSLATORS: failed due to DBus security
-#: ../src/pk-main.c:91
-msgid "Startup failed due to security policies on this machine."
-msgstr "Sikkerhetspolitikk på denne maskinen hindret oppstart"
-
-#. TRANSLATORS: only two ways this can fail...
-#: ../src/pk-main.c:93
-msgid "This can happen for two reasons:"
-msgstr "Dette kan skje av to grunner: "
-
-#. TRANSLATORS: only allowed to be owned by root
-#: ../src/pk-main.c:95
-msgid "The correct user is not launching the executable (usually root)"
-msgstr ""
-"Programfilen ble ikke kjørt av forventet bruker (vanligvis superbruker "
-"(root) )"
-
-#. TRANSLATORS: or we are installed in a prefix
-#: ../src/pk-main.c:97
-msgid ""
-"The org.freedesktop.PackageKit.conf file is not installed in the system "
-"directory:"
-msgstr ""
-
 #. TRANSLATORS: a backend is the system package tool, e.g. yum, apt
-#: ../src/pk-main.c:223
+#: ../src/pk-main.c:149
 msgid "Packaging backend to use, e.g. dummy"
 msgstr "Velg backend for programpakkene, f.eks foobar"
 
 #. TRANSLATORS: if we should run in the background
-#: ../src/pk-main.c:226
+#: ../src/pk-main.c:152
 msgid "Daemonize and detach from the terminal"
 msgstr "Gjør nissen (daemon) selvstendig, og uavhengig av terminalen"
 
 #. TRANSLATORS: if we should not monitor how long we are inactive for
-#: ../src/pk-main.c:229
+#: ../src/pk-main.c:155
 msgid "Disable the idle timer"
 msgstr "Deaktiver inaktivitetskontrollen"
 
 #. TRANSLATORS: show version
-#: ../src/pk-main.c:232
+#: ../src/pk-main.c:158
 msgid "Show version and exit"
 msgstr "Vis versjonsnummer og avslutt"
 
 #. TRANSLATORS: exit after we've started up, used for user profiling
-#: ../src/pk-main.c:235
+#: ../src/pk-main.c:161
 msgid "Exit after a small delay"
 msgstr "Avslutt etter en liten forsinkelse"
 
 #. TRANSLATORS: exit straight away, used for automatic profiling
-#: ../src/pk-main.c:238
+#: ../src/pk-main.c:164
 msgid "Exit after the engine has loaded"
 msgstr "Avslutt etter maskinen har lastet"
 
+#. TRANSLATORS: don't unset environment variables, used for debugging
+#: ../src/pk-main.c:167
+msgid "Don't clear environment on startup"
+msgstr ""
+
 #. TRANSLATORS: describing the service that is running
-#: ../src/pk-main.c:253
+#: ../src/pk-main.c:179
 msgid "PackageKit service"
 msgstr "PackageKit-tjeneste"
 
-#. TRANSLATORS: fatal error, dbus is not running
-#: ../src/pk-main.c:298
-msgid "Cannot connect to the system bus"
-msgstr "Fikk ikke kontakt med systembussen"
-
-#: ../src/pk-main.c:344
+#: ../src/pk-main.c:253
 msgid "Failed to load any of the specified backends:"
 msgstr ""
 
-#. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error
-#. follows
-#: ../src/pk-main.c:358
-msgid "Error trying to start:"
-msgstr "Det skjedde en feil under oppstart av:"
-
 #. TRANSLATORS: is not GPG signed
-#: ../src/pk-transaction.c:2611 ../src/pk-transaction.c:2618
+#: ../src/pk-transaction.c:2696
 msgid "The software is not from a trusted source."
 msgstr ""
 
-#: ../src/pk-transaction.c:2623
+#: ../src/pk-transaction.c:2704
 msgid "Do not update this package unless you are sure it is safe to do so."
 msgstr ""
 
-#: ../src/pk-transaction.c:2624
+#: ../src/pk-transaction.c:2705
 msgid "Do not update these packages unless you are sure it is safe to do so."
 msgstr ""
 
-#: ../src/pk-transaction.c:2634
+#: ../src/pk-transaction.c:2715
 msgid "Do not install this package unless you are sure it is safe to do so."
 msgstr ""
 
-#: ../src/pk-transaction.c:2635
+#: ../src/pk-transaction.c:2716
 msgid "Do not install these packages unless you are sure it is safe to do so."
 msgstr ""
 
diff --git a/po/nl.po b/po/nl.po
index 3e52acb..f623e21 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -2,15 +2,19 @@
 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
 # This file is distributed under the same license as the PACKAGE package.
 # 
-# Richard Hughes <richard at hughsie.com>, 2011
+# Translators:
+# Geert Warrink <geert.warrink at onsnet.nu>, 2009.
+# Richard E. van der Luit <nippur at fedoraproject.org>, 2011.
+# Richard Hughes <richard at hughsie.com>, 2011.
+# Richard van der Luit <nippur at fedoraproject.org>, 2009, 2010.
 msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-04 10:50+0100\n"
-"PO-Revision-Date: 2011-05-04 09:56+0000\n"
-"Last-Translator: hughsie <richard at hughsie.com>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
+"POT-Creation-Date: 2011-11-10 19:50+0000\n"
+"PO-Revision-Date: 2011-12-08 14:20+0000\n"
+"Last-Translator: Richard E. van der Luit <nippur at fedoraproject.org>\n"
+"Language-Team: Dutch (http://www.transifex.net/projects/p/freedesktop/team/nl/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -195,7 +199,7 @@ msgstr "Uitgegeven"
 
 #. TRANSLATORS: details about the update, date the update was updated
 #. TRANSLATORS: The action of the package, in past tense
-#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:524
+#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:559
 msgid "Updated"
 msgstr "Vernieuwd"
 
@@ -281,11 +285,11 @@ msgstr "Fatale fout"
 #. can be updated
 #: ../client/pk-console.c:701
 msgid "There are no packages to update."
-msgstr ""
+msgstr "Er zijn geen pakketten om te updaten"
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
 #: ../client/pk-console.c:704
-#: ../contrib/command-not-found/pk-command-not-found.c:639
+#: ../contrib/command-not-found/pk-command-not-found.c:634
 msgid "The transaction failed"
 msgstr "De transactie faalde"
 
@@ -339,21 +343,21 @@ msgstr ""
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:866
+#: ../client/pk-console.c:871
 #, c-format
 msgid "This tool could not find any available package: %s"
 msgstr "Dit programma kon geen enkel beschikbaar pakket %s vinden."
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:894
+#: ../client/pk-console.c:899
 #, c-format
 msgid "This tool could not find the installed package: %s"
 msgstr "Dit programma kon het geïnstalleerde pakket %s niet vinden."
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:922 ../client/pk-console.c:950
+#: ../client/pk-console.c:927 ../client/pk-console.c:955
 #, c-format
 msgid "This tool could not find the package: %s"
 msgstr "Dit programma kon het pakket %s niet vinden."
@@ -366,71 +370,71 @@ msgstr "Dit programma kon het pakket %s niet vinden."
 #. detailed error follows
 #. TRANSLATORS: The package name was not found in any software sources. The
 #. detailed error follows
-#: ../client/pk-console.c:978 ../client/pk-console.c:1006
-#: ../client/pk-console.c:1034 ../client/pk-console.c:1062
-#: ../client/pk-console.c:1090
+#: ../client/pk-console.c:983 ../client/pk-console.c:1011
+#: ../client/pk-console.c:1039 ../client/pk-console.c:1067
+#: ../client/pk-console.c:1095
 #, c-format
 msgid "This tool could not find all the packages: %s"
 msgstr "Dit programma kon niet alle pakketten vinden: %s"
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek
 #. without a paddle
-#: ../client/pk-console.c:1119
+#: ../client/pk-console.c:1124
 msgid "The daemon crashed mid-transaction!"
 msgstr "De daemon is midden in de transactie gecrasht!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1153
+#: ../client/pk-console.c:1158
 msgid "PackageKit Console Interface"
 msgstr "PackageKit console interface"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1155
+#: ../client/pk-console.c:1160
 msgid "Subcommands:"
 msgstr "Sub-opdrachten:"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was
 #. last executed
-#: ../client/pk-console.c:1235
+#: ../client/pk-console.c:1240
 msgid "Failed to get the time since this action was last completed"
 msgstr ""
 "Verkrijgen van de tijd sinds deze actie voor het laatst afgemaakt is faalde"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1277 ../client/pk-monitor.c:371
+#: ../client/pk-console.c:1282 ../client/pk-monitor.c:371
 msgid "Show the program version and exit"
 msgstr "Programma versie tonen en afsluiten"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1280
+#: ../client/pk-console.c:1285
 msgid "Set the filter, e.g. installed"
 msgstr "Filter instellen, bijvoorbeeld geïnstalleerd"
 
 #. TRANSLATORS: command line argument, use a non-standard install prefix
-#: ../client/pk-console.c:1283
+#: ../client/pk-console.c:1288
 msgid "Set the install root, e.g. '/' or '/mnt/ltsp'"
 msgstr "Stel de installeer root in, b.v.  '/' of '/mnt/ltsp'"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1286
+#: ../client/pk-console.c:1291
 msgid "Exit without waiting for actions to complete"
 msgstr "Afsluiten zonder te wachten tot transacties zijn afgerond"
 
 #. command line argument, do we ask questions
-#: ../client/pk-console.c:1289
+#: ../client/pk-console.c:1294
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:525
 msgid "Install the packages without asking for confirmation"
 msgstr "Installeer het pakket zonder goedkeuring te vragen"
 
 #. TRANSLATORS: command line argument, this command is not a priority
-#: ../client/pk-console.c:1292
+#: ../client/pk-console.c:1297
 msgid "Run the command using idle network bandwidth and also using less power"
 msgstr ""
 "Voer het commando uit met gebruik van onbenutte netwerk bandbreedte en ook "
 "om minder vermogen te gebruiken"
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1295
+#: ../client/pk-console.c:1300
 msgid ""
 "Print to screen a machine readable output, rather than using animated "
 "widgets"
@@ -439,155 +443,155 @@ msgstr ""
 "widgets te gebruiken"
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1298
+#: ../client/pk-console.c:1303
 msgid "The maximum metadata cache age. Use -1 for 'never'."
-msgstr ""
+msgstr "De maximum metadata cache leeftijd. Gebruik -1 voor 'nooit'."
 
 #. TRANSLATORS: command line argument, --help
-#: ../client/pk-console.c:1301
+#: ../client/pk-console.c:1306
 msgid "Show help options."
-msgstr ""
+msgstr "Toon help opties."
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1331
+#: ../client/pk-console.c:1336
 msgid "Failed to parse command line"
-msgstr ""
+msgstr "Parsen command line mislukt"
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1341
+#: ../client/pk-console.c:1346
 msgid "Failed to contact PackageKit"
 msgstr "Contact met PackageKit krijgen mislukte"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1394
+#: ../client/pk-console.c:1399
 msgid "The proxy could not be set"
 msgstr "De proxy kon niet ingesteld worden"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1406
+#: ../client/pk-console.c:1411
 msgid "The install root could not be set"
 msgstr "De installeer root kon niet ingesteld worden"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1418
+#: ../client/pk-console.c:1423
 msgid "The filter specified was invalid"
 msgstr "Het opgegeven filter was ongeldig"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1437
+#: ../client/pk-console.c:1442
 msgid "A search type is required, e.g. name"
 msgstr "Een zoek type is verplicht, b.v. naam"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1444 ../client/pk-console.c:1456
-#: ../client/pk-console.c:1468 ../client/pk-console.c:1480
+#: ../client/pk-console.c:1449 ../client/pk-console.c:1461
+#: ../client/pk-console.c:1473 ../client/pk-console.c:1485
 msgid "A search term is required"
 msgstr "Een zoekterm is vereist"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1490
+#: ../client/pk-console.c:1495
 msgid "Invalid search type"
 msgstr "Ongeldig zoek type"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1496
+#: ../client/pk-console.c:1501
 msgid "A package name to install is required"
 msgstr "Een pakket naam om te installeren is vereist"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1505
+#: ../client/pk-console.c:1510
 msgid "A filename to install is required"
 msgstr "Een bestandsnaam om te installeren is vereist"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1516
+#: ../client/pk-console.c:1521
 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:1527
+#: ../client/pk-console.c:1532
 msgid "A package name to remove is required"
 msgstr "Een te verwijderen pakket naam is vereist"
 
 #. TRANSLATORS: the user did not specify anything about what to download or
 #. where
-#: ../client/pk-console.c:1536
+#: ../client/pk-console.c:1541
 msgid "A destination directory and the package names to download are required"
 msgstr "Een doel map en de namen van te downloaden pakketten zijn vereist"
 
 #. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:1543
+#: ../client/pk-console.c:1548
 msgid "Directory not found"
 msgstr "Map niet gevonden"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1552
+#: ../client/pk-console.c:1557
 msgid "A licence identifier (eula-id) is required"
 msgstr "Een licentie identificatie (eula-id) is vereist"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1563
+#: ../client/pk-console.c:1568
 msgid "A transaction identifier (tid) is required"
 msgstr "Een transactie identificatie (tid) is vereist"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:1584
+#: ../client/pk-console.c:1589
 msgid "A package name to resolve is required"
 msgstr "Een pakket naam om op te lossen is vereist"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:1595 ../client/pk-console.c:1606
+#: ../client/pk-console.c:1600 ../client/pk-console.c:1611
 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:1617
+#: ../client/pk-console.c:1622
 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:1634
+#: ../client/pk-console.c:1639
 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:1641
+#: ../client/pk-console.c:1646
 msgid "A correct role is required"
 msgstr "Een correcte rol is vereist"
 
 #. 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:1651 ../client/pk-console.c:1665
-#: ../client/pk-console.c:1674 ../client/pk-console.c:1694
-#: ../client/pk-console.c:1703 ../client/pk-generate-pack.c:314
+#: ../client/pk-console.c:1656 ../client/pk-console.c:1670
+#: ../client/pk-console.c:1679 ../client/pk-console.c:1699
+#: ../client/pk-console.c:1708 ../client/pk-generate-pack.c:314
 msgid "A package name is required"
 msgstr "Een pakket naam is vereist"
 
 #. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-
 #. decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:1683
+#: ../client/pk-console.c:1688
 msgid "A package provide string is required"
 msgstr "Een pakket geleverd string is vereist"
 
 #. TRANSLATORS: The user did not provide a distro name
-#: ../client/pk-console.c:1727
+#: ../client/pk-console.c:1732
 msgid "A distribution name is required"
-msgstr ""
+msgstr "Een distributienaam is vereist"
 
 #. TRANSLATORS: The user did not provide an upgrade type
-#: ../client/pk-console.c:1733
+#: ../client/pk-console.c:1738
 msgid "An upgrade type is required, e.g. 'minimal', 'default' or 'complete'"
-msgstr ""
+msgstr "Een upgrade-type is vereist, b.v. 'minimal', 'default' of 'complete'"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command
 #. line
-#: ../client/pk-console.c:1783
+#: ../client/pk-console.c:1788
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "Optie '%s' wordt niet ondersteund"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:1793
+#: ../client/pk-console.c:1798
 msgid "Command failed"
 msgstr "Opdracht mislukt"
 
@@ -728,159 +732,154 @@ msgid "PackageKit Monitor"
 msgstr "PackageKit monitor"
 
 #. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/pk-plugin-install.c:499
+#: ../contrib/browser-plugin/pk-plugin-install.c:503
 msgid "Getting package information..."
 msgstr "Pakket informatie verkrijgen......"
 
 #. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/pk-plugin-install.c:505
+#: ../contrib/browser-plugin/pk-plugin-install.c:509
 #, c-format
 msgid "Run %s"
 msgstr "Draai %s"
 
 #. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:511
+#: ../contrib/browser-plugin/pk-plugin-install.c:515
 msgid "Installed version"
 msgstr "Geïnstalleerde versie"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:519
+#: ../contrib/browser-plugin/pk-plugin-install.c:523
 #, c-format
 msgid "Run version %s now"
 msgstr "Draai versie %s nu"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:525
+#: ../contrib/browser-plugin/pk-plugin-install.c:529
 msgid "Run now"
 msgstr "Draai nu"
 
 #. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:531
+#: ../contrib/browser-plugin/pk-plugin-install.c:535
 #, c-format
 msgid "Update to version %s"
 msgstr "Vernieuwen naar versie %s"
 
 #. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:537
+#: ../contrib/browser-plugin/pk-plugin-install.c:541
 #, c-format
 msgid "Install %s now"
 msgstr "Installeer %s nu"
 
 #. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:540
+#: ../contrib/browser-plugin/pk-plugin-install.c:544
 msgid "Version"
 msgstr "Versie"
 
 #. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/pk-plugin-install.c:545
+#: ../contrib/browser-plugin/pk-plugin-install.c:549
 msgid "No packages found for your system"
 msgstr "Geen pakketten voor jouw systeem gevonden"
 
 #. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/pk-plugin-install.c:550
+#: ../contrib/browser-plugin/pk-plugin-install.c:554
 msgid "Installing..."
 msgstr "Bezig met installeren..."
 
 #. TRANSLATORS: downloading repo data so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:366
+#: ../contrib/command-not-found/pk-command-not-found.c:363
 msgid "Downloading details about the software sources."
 msgstr "Download details over de software bronnen."
 
 #. TRANSLATORS: downloading file lists so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:370
+#: ../contrib/command-not-found/pk-command-not-found.c:367
 msgid "Downloading filelists (this may take some time to complete)."
 msgstr "Bestand lijsten downloaden (dit kan enige tijd duren)."
 
 #. TRANSLATORS: waiting for native lock
-#: ../contrib/command-not-found/pk-command-not-found.c:374
+#: ../contrib/command-not-found/pk-command-not-found.c:371
 msgid "Waiting for package manager lock."
 msgstr "Wachten op pakket beheerder blokkering."
 
 #. TRANSLATORS: loading package cache so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:378
+#: ../contrib/command-not-found/pk-command-not-found.c:375
 msgid "Loading list of packages."
 msgstr "Lijst van pakketten laden."
 
 #. TRANSLATORS: we failed to find the package, this shouldn't happen
-#: ../contrib/command-not-found/pk-command-not-found.c:444
+#: ../contrib/command-not-found/pk-command-not-found.c:439
 msgid "Failed to search for file"
 msgstr "Zoeken naar bestand mislukte"
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
-#: ../contrib/command-not-found/pk-command-not-found.c:456
+#: ../contrib/command-not-found/pk-command-not-found.c:451
 msgid "Getting the list of files failed"
-msgstr ""
+msgstr "Ophalen bestandenlijst niet gelukt"
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:602
+#: ../contrib/command-not-found/pk-command-not-found.c:597
 msgid "Failed to launch:"
 msgstr "Opstarten mislukte:"
 
 #. TRANSLATORS: we failed to install the package
-#: ../contrib/command-not-found/pk-command-not-found.c:630
+#: ../contrib/command-not-found/pk-command-not-found.c:625
 msgid "Failed to install packages"
 msgstr "Kon pakketten niet installeren"
 
-#. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/command-not-found/pk-command-not-found.c:706
-msgid "PackageKit Command Not Found"
-msgstr "PackageKit commando niet gevonden"
-
 #. TRANSLATORS: the prefix of all the output telling the user
 #. * why it's not executing. NOTE: this is lowercase to mimic
 #. * the style of bash itself -- apologies
-#: ../contrib/command-not-found/pk-command-not-found.c:741
+#: ../contrib/command-not-found/pk-command-not-found.c:723
 msgid "command not found"
-msgstr ""
+msgstr "commando niet gevonden"
 
 #. TRANSLATORS: tell the user what we think the command is
-#: ../contrib/command-not-found/pk-command-not-found.c:759
+#: ../contrib/command-not-found/pk-command-not-found.c:741
 msgid "Similar command is:"
 msgstr "Een vergelijkbaar commando is:"
 
 #. TRANSLATORS: Ask the user if we should run the similar command
-#: ../contrib/command-not-found/pk-command-not-found.c:773
+#: ../contrib/command-not-found/pk-command-not-found.c:755
 msgid "Run similar command:"
 msgstr "Draai vergelijkbaar 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:787
-#: ../contrib/command-not-found/pk-command-not-found.c:796
+#: ../contrib/command-not-found/pk-command-not-found.c:769
+#: ../contrib/command-not-found/pk-command-not-found.c:778
 msgid "Similar commands are:"
 msgstr "Vergelijkbare commando's zijn:"
 
 #. TRANSLATORS: ask the user to choose a file to run
-#: ../contrib/command-not-found/pk-command-not-found.c:803
+#: ../contrib/command-not-found/pk-command-not-found.c:785
 msgid "Please choose a command to run"
 msgstr "Kies een commando om te draaien"
 
 #. TRANSLATORS: tell the user what package provides the command
-#: ../contrib/command-not-found/pk-command-not-found.c:821
+#: ../contrib/command-not-found/pk-command-not-found.c:803
 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:828
+#: ../contrib/command-not-found/pk-command-not-found.c:810
 #, c-format
 msgid "Install package '%s' to provide command '%s'?"
 msgstr "Pakket '%s' installeren om commando '%s' te bieden?"
 
 #. TRANSLATORS: Show the user a list of packages that provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:855
+#: ../contrib/command-not-found/pk-command-not-found.c:837
 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:865
+#: ../contrib/command-not-found/pk-command-not-found.c:847
 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:874
+#: ../contrib/command-not-found/pk-command-not-found.c:856
 msgid "Please choose a package to install"
 msgstr "Kies een pakket om te installeren"
 
@@ -1056,7 +1055,7 @@ msgstr "Pakketten niet installeren in de simulatie mode"
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
 #. TRANSLATORS: transaction state, installing packages
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:860
-#: ../lib/packagekit-glib2/pk-console-shared.c:296
+#: ../lib/packagekit-glib2/pk-console-shared.c:331
 #, c-format
 msgid "Installing packages"
 msgstr "Pakketten installeren"
@@ -1192,474 +1191,474 @@ msgstr "PackageKit pakket lijst"
 msgid "PackageKit Service Pack"
 msgstr "PackageKit service pack"
 
-#: ../lib/packagekit-glib2/pk-console-shared.c:64
+#: ../lib/packagekit-glib2/pk-console-shared.c:65
 #, c-format
 msgid "Please enter a number from 1 to %i: "
 msgstr "Voer een nummer in van 1 tot %i: "
 
 #. TRANSLATORS: more than one package could be found that matched, to follow
 #. is a list of possible packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:198
+#: ../lib/packagekit-glib2/pk-console-shared.c:233
 msgid "More than one package matches:"
 msgstr "Er zijn meerdere pakketten die matchen:"
 
 #. TRANSLATORS: This finds out which package in the list to use
-#: ../lib/packagekit-glib2/pk-console-shared.c:209
+#: ../lib/packagekit-glib2/pk-console-shared.c:244
 msgid "Please choose the correct package: "
 msgstr "Kies het juiste pakket: "
 
 #. TRANSLATORS: This is when the transaction status is not known
-#: ../lib/packagekit-glib2/pk-console-shared.c:264
+#: ../lib/packagekit-glib2/pk-console-shared.c:299
 msgid "Unknown state"
 msgstr "Onbekende status"
 
 #. TRANSLATORS: transaction state, the daemon is in the process of starting
-#: ../lib/packagekit-glib2/pk-console-shared.c:268
+#: ../lib/packagekit-glib2/pk-console-shared.c:303
 msgid "Starting"
 msgstr "Opstarten"
 
 #. TRANSLATORS: transaction state, the transaction is waiting for another to
 #. complete
-#: ../lib/packagekit-glib2/pk-console-shared.c:272
+#: ../lib/packagekit-glib2/pk-console-shared.c:307
 msgid "Waiting in queue"
 msgstr "Wachten in wachtrij"
 
 #. TRANSLATORS: transaction state, just started
-#: ../lib/packagekit-glib2/pk-console-shared.c:276
+#: ../lib/packagekit-glib2/pk-console-shared.c:311
 msgid "Running"
 msgstr "Draaiend"
 
 #. TRANSLATORS: transaction state, is querying data
-#: ../lib/packagekit-glib2/pk-console-shared.c:280
+#: ../lib/packagekit-glib2/pk-console-shared.c:315
 msgid "Querying"
 msgstr "Informatie ophalen"
 
 #. TRANSLATORS: transaction state, getting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:284
+#: ../lib/packagekit-glib2/pk-console-shared.c:319
 msgid "Getting information"
 msgstr "Informatie verkrijgen"
 
 #. TRANSLATORS: transaction state, removing packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:288
+#: ../lib/packagekit-glib2/pk-console-shared.c:323
 msgid "Removing packages"
 msgstr "Pakketten verwijderen"
 
 #. TRANSLATORS: transaction state, downloading package files
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:292
-#: ../lib/packagekit-glib2/pk-console-shared.c:670
+#: ../lib/packagekit-glib2/pk-console-shared.c:327
+#: ../lib/packagekit-glib2/pk-console-shared.c:705
 msgid "Downloading packages"
 msgstr "Pakketten aan het downloaden"
 
 #. TRANSLATORS: transaction state, refreshing internal lists
-#: ../lib/packagekit-glib2/pk-console-shared.c:300
+#: ../lib/packagekit-glib2/pk-console-shared.c:335
 msgid "Refreshing software list"
 msgstr "Software lijst verversen"
 
 #. TRANSLATORS: transaction state, installing updates
-#: ../lib/packagekit-glib2/pk-console-shared.c:304
+#: ../lib/packagekit-glib2/pk-console-shared.c:339
 msgid "Installing updates"
 msgstr "Vernieuwingen installeren"
 
 #. TRANSLATORS: transaction state, removing old packages, and cleaning config
 #. files
-#: ../lib/packagekit-glib2/pk-console-shared.c:308
+#: ../lib/packagekit-glib2/pk-console-shared.c:343
 msgid "Cleaning up packages"
 msgstr "Pakketten opschonen"
 
 #. TRANSLATORS: transaction state, obsoleting old packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:312
+#: ../lib/packagekit-glib2/pk-console-shared.c:347
 msgid "Obsoleting packages"
 msgstr "Pakketten achterhaald maken"
 
 #. TRANSLATORS: transaction state, checking the transaction before we do it
-#: ../lib/packagekit-glib2/pk-console-shared.c:316
+#: ../lib/packagekit-glib2/pk-console-shared.c:351
 msgid "Resolving dependencies"
 msgstr "Afhankelijkheden oplossen"
 
 #. TRANSLATORS: transaction state, checking if we have all the security keys
 #. for the operation
-#: ../lib/packagekit-glib2/pk-console-shared.c:320
+#: ../lib/packagekit-glib2/pk-console-shared.c:355
 msgid "Checking signatures"
 msgstr "Ondertekeningen controleren"
 
 #. TRANSLATORS: transaction state, when we return to a previous system state
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:324
-#: ../lib/packagekit-glib2/pk-console-shared.c:630
+#: ../lib/packagekit-glib2/pk-console-shared.c:359
+#: ../lib/packagekit-glib2/pk-console-shared.c:665
 msgid "Rolling back"
 msgstr "Terug draaien"
 
 #. TRANSLATORS: transaction state, when we're doing a test transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:328
+#: ../lib/packagekit-glib2/pk-console-shared.c:363
 msgid "Testing changes"
 msgstr "Veranderingen testen"
 
 #. TRANSLATORS: transaction state, when we're writing to the system package
 #. database
-#: ../lib/packagekit-glib2/pk-console-shared.c:332
+#: ../lib/packagekit-glib2/pk-console-shared.c:367
 msgid "Committing changes"
 msgstr "Veranderingen beschikbaar maken"
 
 #. TRANSLATORS: transaction state, requesting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:336
+#: ../lib/packagekit-glib2/pk-console-shared.c:371
 msgid "Requesting data"
 msgstr "Data aanvragen"
 
 #. TRANSLATORS: transaction state, all done!
-#: ../lib/packagekit-glib2/pk-console-shared.c:340
+#: ../lib/packagekit-glib2/pk-console-shared.c:375
 msgid "Finished"
 msgstr "Klaar"
 
 #. TRANSLATORS: transaction state, in the process of cancelling
-#: ../lib/packagekit-glib2/pk-console-shared.c:344
+#: ../lib/packagekit-glib2/pk-console-shared.c:379
 msgid "Cancelling"
 msgstr "Afbreken"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:348
+#: ../lib/packagekit-glib2/pk-console-shared.c:383
 msgid "Downloading repository information"
 msgstr "Repository informatie downloaden"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:352
+#: ../lib/packagekit-glib2/pk-console-shared.c:387
 msgid "Downloading list of packages"
 msgstr "Lijst van pakketten downloaden"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:356
+#: ../lib/packagekit-glib2/pk-console-shared.c:391
 msgid "Downloading file lists"
 msgstr "Bestand lijsten downloaden"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:360
+#: ../lib/packagekit-glib2/pk-console-shared.c:395
 msgid "Downloading lists of changes"
 msgstr "Lijst van veranderingen downloaden."
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:364
+#: ../lib/packagekit-glib2/pk-console-shared.c:399
 msgid "Downloading groups"
 msgstr "Groepen downloaden"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:368
+#: ../lib/packagekit-glib2/pk-console-shared.c:403
 msgid "Downloading update information"
 msgstr "Pakket informatie downloaden"
 
 #. TRANSLATORS: transaction state, repackaging delta files
-#: ../lib/packagekit-glib2/pk-console-shared.c:372
+#: ../lib/packagekit-glib2/pk-console-shared.c:407
 msgid "Repackaging files"
 msgstr "Bestanden opnieuw inpakken"
 
 #. TRANSLATORS: transaction state, loading databases
-#: ../lib/packagekit-glib2/pk-console-shared.c:376
+#: ../lib/packagekit-glib2/pk-console-shared.c:411
 msgid "Loading cache"
 msgstr "Cache laden"
 
 #. TRANSLATORS: transaction state, scanning for running processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:380
+#: ../lib/packagekit-glib2/pk-console-shared.c:415
 msgid "Scanning applications"
 msgstr "Toepassingen doorzoeken"
 
 #. TRANSLATORS: transaction state, generating a list of packages installed on
 #. the system
-#: ../lib/packagekit-glib2/pk-console-shared.c:384
+#: ../lib/packagekit-glib2/pk-console-shared.c:419
 msgid "Generating package lists"
 msgstr "Pakket lijst aanmaken"
 
 #. TRANSLATORS: transaction state, when we're waiting for the native tools to
 #. exit
-#: ../lib/packagekit-glib2/pk-console-shared.c:388
+#: ../lib/packagekit-glib2/pk-console-shared.c:423
 msgid "Waiting for package manager lock"
 msgstr "Wachten op pakket beheerder blokkering"
 
 #. TRANSLATORS: transaction state, waiting for user to type in a password
-#: ../lib/packagekit-glib2/pk-console-shared.c:392
+#: ../lib/packagekit-glib2/pk-console-shared.c:427
 msgid "Waiting for authentication"
 msgstr "Wachten op authenticatie"
 
 #. TRANSLATORS: transaction state, we are updating the list of processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:396
+#: ../lib/packagekit-glib2/pk-console-shared.c:431
 msgid "Updating running applications"
 msgstr "Draaiende toepassingen vernieuwen"
 
 #. TRANSLATORS: transaction state, we are checking executable files currently
 #. in use
-#: ../lib/packagekit-glib2/pk-console-shared.c:400
+#: ../lib/packagekit-glib2/pk-console-shared.c:435
 msgid "Checking applications in use"
 msgstr "Controleren van toepassingen in gebruik"
 
 #. TRANSLATORS: transaction state, we are checking for libraries currently in
 #. use
-#: ../lib/packagekit-glib2/pk-console-shared.c:404
+#: ../lib/packagekit-glib2/pk-console-shared.c:439
 msgid "Checking libraries in use"
 msgstr "Controleren van bibliotheken in gebruik"
 
 #. TRANSLATORS: transaction state, we are copying package files before or
 #. after the transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:408
+#: ../lib/packagekit-glib2/pk-console-shared.c:443
 msgid "Copying files"
 msgstr "Bestanden kopiëren"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:426
+#: ../lib/packagekit-glib2/pk-console-shared.c:461
 msgid "Trivial"
 msgstr "Triviaal"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:430
+#: ../lib/packagekit-glib2/pk-console-shared.c:465
 msgid "Normal"
 msgstr "Normaal"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:434
+#: ../lib/packagekit-glib2/pk-console-shared.c:469
 msgid "Important"
 msgstr "Belangrijk"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:438
+#: ../lib/packagekit-glib2/pk-console-shared.c:473
 msgid "Security"
 msgstr "Beveiliging"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:442
+#: ../lib/packagekit-glib2/pk-console-shared.c:477
 msgid "Bug fix "
 msgstr "Fout reparatie"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:446
+#: ../lib/packagekit-glib2/pk-console-shared.c:481
 msgid "Enhancement"
 msgstr "Verbetering"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:450
+#: ../lib/packagekit-glib2/pk-console-shared.c:485
 msgid "Blocked"
 msgstr "Geblokkeerd"
 
 #. TRANSLATORS: The state of a package
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:455
-#: ../lib/packagekit-glib2/pk-console-shared.c:528
+#: ../lib/packagekit-glib2/pk-console-shared.c:490
+#: ../lib/packagekit-glib2/pk-console-shared.c:563
 msgid "Installed"
 msgstr "Geïnstalleerd"
 
 #. TRANSLATORS: The state of a package, i.e. not installed
-#: ../lib/packagekit-glib2/pk-console-shared.c:460
+#: ../lib/packagekit-glib2/pk-console-shared.c:495
 msgid "Available"
 msgstr "Beschikbaar"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:478
+#: ../lib/packagekit-glib2/pk-console-shared.c:513
 msgid "Downloading"
 msgstr "Downloaden"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:482
+#: ../lib/packagekit-glib2/pk-console-shared.c:517
 msgid "Updating"
 msgstr "Vernieuwen"
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:486
-#: ../lib/packagekit-glib2/pk-console-shared.c:606
+#: ../lib/packagekit-glib2/pk-console-shared.c:521
+#: ../lib/packagekit-glib2/pk-console-shared.c:641
 msgid "Installing"
 msgstr "Installeren"
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:490
-#: ../lib/packagekit-glib2/pk-console-shared.c:602
+#: ../lib/packagekit-glib2/pk-console-shared.c:525
+#: ../lib/packagekit-glib2/pk-console-shared.c:637
 msgid "Removing"
 msgstr "Verwijderen"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:494
+#: ../lib/packagekit-glib2/pk-console-shared.c:529
 msgid "Cleaning up"
 msgstr "Opschonen"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:498
+#: ../lib/packagekit-glib2/pk-console-shared.c:533
 msgid "Obsoleting"
 msgstr "Verouderd maken"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:502
+#: ../lib/packagekit-glib2/pk-console-shared.c:537
 msgid "Reinstalling"
 msgstr "Opnieuw installeren"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:520
+#: ../lib/packagekit-glib2/pk-console-shared.c:555
 msgid "Downloaded"
 msgstr "Gedownload "
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:532
+#: ../lib/packagekit-glib2/pk-console-shared.c:567
 msgid "Removed"
 msgstr "Verwijderd"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:536
+#: ../lib/packagekit-glib2/pk-console-shared.c:571
 msgid "Cleaned up"
 msgstr "Opgeschoond"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:540
+#: ../lib/packagekit-glib2/pk-console-shared.c:575
 msgid "Obsoleted"
 msgstr "Verouderd"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:544
+#: ../lib/packagekit-glib2/pk-console-shared.c:579
 msgid "Reinstalled"
 msgstr "Opnieuw geïnstalleerd"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:562
+#: ../lib/packagekit-glib2/pk-console-shared.c:597
 msgid "Unknown role type"
 msgstr "Onbekend rol type"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:566
+#: ../lib/packagekit-glib2/pk-console-shared.c:601
 msgid "Getting dependencies"
 msgstr "Afhankelijkheden ophalen"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:570
+#: ../lib/packagekit-glib2/pk-console-shared.c:605
 msgid "Getting update details"
 msgstr "Vernieuwing details ophalen"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:574
+#: ../lib/packagekit-glib2/pk-console-shared.c:609
 msgid "Getting details"
 msgstr "Details ophalen"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:578
+#: ../lib/packagekit-glib2/pk-console-shared.c:613
 msgid "Getting requires"
 msgstr "Vereisten ophalen"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:582
+#: ../lib/packagekit-glib2/pk-console-shared.c:617
 msgid "Getting updates"
 msgstr "Vernieuwingen ophalen"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:586
+#: ../lib/packagekit-glib2/pk-console-shared.c:621
 msgid "Searching by details"
 msgstr "Opzoeken volgens details"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:590
+#: ../lib/packagekit-glib2/pk-console-shared.c:625
 msgid "Searching by file"
 msgstr "Opzoeken volgens bestand"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:594
+#: ../lib/packagekit-glib2/pk-console-shared.c:629
 msgid "Searching groups"
 msgstr "Opzoeken volgens groepen"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:598
+#: ../lib/packagekit-glib2/pk-console-shared.c:633
 msgid "Searching by name"
 msgstr "Opzoeken volgens naam"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:610
+#: ../lib/packagekit-glib2/pk-console-shared.c:645
 msgid "Installing files"
 msgstr "Bestanden installeren"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:614
+#: ../lib/packagekit-glib2/pk-console-shared.c:649
 msgid "Refreshing cache"
 msgstr "Cache verversen"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:618
+#: ../lib/packagekit-glib2/pk-console-shared.c:653
 msgid "Updating packages"
 msgstr "Pakketten vernieuwen"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:622
+#: ../lib/packagekit-glib2/pk-console-shared.c:657
 msgid "Updating system"
 msgstr "Systeem vernieuwen"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:626
+#: ../lib/packagekit-glib2/pk-console-shared.c:661
 msgid "Canceling"
 msgstr "Afbreken"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:634
+#: ../lib/packagekit-glib2/pk-console-shared.c:669
 msgid "Getting repositories"
 msgstr "Repositories ophalen"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:638
+#: ../lib/packagekit-glib2/pk-console-shared.c:673
 msgid "Enabling repository"
 msgstr "Repository aanzetten"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:642
+#: ../lib/packagekit-glib2/pk-console-shared.c:677
 msgid "Setting data"
 msgstr "Data instellen"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:646
+#: ../lib/packagekit-glib2/pk-console-shared.c:681
 msgid "Resolving"
 msgstr "Oplossen"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:650
+#: ../lib/packagekit-glib2/pk-console-shared.c:685
 msgid "Getting file list"
 msgstr "Bestand lijst ophalen"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:654
+#: ../lib/packagekit-glib2/pk-console-shared.c:689
 msgid "Getting provides"
 msgstr "Voorzieningen ophalen"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:658
+#: ../lib/packagekit-glib2/pk-console-shared.c:693
 msgid "Installing signature"
 msgstr "Ondertekening installeren"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:662
+#: ../lib/packagekit-glib2/pk-console-shared.c:697
 msgid "Getting packages"
 msgstr "Pakketten ophalen"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:666
+#: ../lib/packagekit-glib2/pk-console-shared.c:701
 msgid "Accepting EULA"
 msgstr "EULA accepteren"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:674
+#: ../lib/packagekit-glib2/pk-console-shared.c:709
 msgid "Getting upgrades"
 msgstr "Vernieuwingen ophalen"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:678
+#: ../lib/packagekit-glib2/pk-console-shared.c:713
 msgid "Getting categories"
 msgstr "Categorieën ophalen"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:682
+#: ../lib/packagekit-glib2/pk-console-shared.c:717
 msgid "Getting transactions"
 msgstr "Transacties ophalen"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:686
-#: ../lib/packagekit-glib2/pk-console-shared.c:690
+#: ../lib/packagekit-glib2/pk-console-shared.c:721
+#: ../lib/packagekit-glib2/pk-console-shared.c:725
 msgid "Simulating install"
 msgstr "Installatie simuleren"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:694
+#: ../lib/packagekit-glib2/pk-console-shared.c:729
 msgid "Simulating remove"
 msgstr "Verwijdering simuleren"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:698
+#: ../lib/packagekit-glib2/pk-console-shared.c:733
 msgid "Simulating update"
 msgstr "Vernieuwing simuleren"
 
@@ -1809,13 +1808,19 @@ msgstr "De volgende pakketten moeten opnieuw geïnstalleerd worden:"
 msgid "The following packages have to be downgraded:"
 msgstr "De volgende pakketten moeten gedegradeerd worden:"
 
+#. TRANSLATORS: When processing, untrusted and non-verified packages may be
+#. encountered
+#: ../lib/packagekit-glib2/pk-task-text.c:325
+msgid "The following packages are untrusted:"
+msgstr "De volgende pakketten zijn untrusted:"
+
 #. TRANSLATORS: ask the user if the proposed changes are okay
-#: ../lib/packagekit-glib2/pk-task-text.c:380
+#: ../lib/packagekit-glib2/pk-task-text.c:385
 msgid "Proceed with changes?"
 msgstr "Doorgaan met veranderingen?"
 
 #. TRANSLATORS: tell the user we didn't do anything
-#: ../lib/packagekit-glib2/pk-task-text.c:385
+#: ../lib/packagekit-glib2/pk-task-text.c:390
 msgid "The transaction did not proceed."
 msgstr "De transactie ging niet verder."
 
@@ -1903,7 +1908,7 @@ msgstr "Authenticatie wordt vereist om pakketten te vernieuwen"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:21
 msgid "Authentication is required to upgrade the operating system"
-msgstr ""
+msgstr "Authenticatie is vereist  om het operating system te mogen upgraden"
 
 #. SECURITY:
 #. - Normal users are allowed to cancel their own task without
@@ -2031,107 +2036,76 @@ msgstr "Pakketten vernieuwen"
 #. 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:109
 msgid "Upgrade System"
-msgstr ""
-
-#. TRANSLATORS: failed due to DBus security
-#: ../src/pk-main.c:91
-msgid "Startup failed due to security policies on this machine."
-msgstr "Opstarten is mislukt door beveiliging tactieken op deze machine"
-
-#. TRANSLATORS: only two ways this can fail...
-#: ../src/pk-main.c:93
-msgid "This can happen for two reasons:"
-msgstr "Dit kan twee redenen hebben:"
-
-#. TRANSLATORS: only allowed to be owned by root
-#: ../src/pk-main.c:95
-msgid "The correct user is not launching the executable (usually root)"
-msgstr ""
-"Het programma wordt niet door de juiste gebruiker gestart (gewoonlijk root)"
-
-#. TRANSLATORS: or we are installed in a prefix
-#: ../src/pk-main.c:97
-msgid ""
-"The org.freedesktop.PackageKit.conf file is not installed in the system "
-"directory:"
-msgstr ""
-"Het org.freedesktop.PackageKit.conf bestand is niet geïnstalleerd in de "
-"systeem map:"
+msgstr "Upgrade Systeem"
 
 #. TRANSLATORS: a backend is the system package tool, e.g. yum, apt
-#: ../src/pk-main.c:223
+#: ../src/pk-main.c:149
 msgid "Packaging backend to use, e.g. dummy"
 msgstr "Te gebruiken pakket backend, b.v. dummy"
 
 #. TRANSLATORS: if we should run in the background
-#: ../src/pk-main.c:226
+#: ../src/pk-main.c:152
 msgid "Daemonize and detach from the terminal"
 msgstr "Als daemon starten en van de terminal loskoppelen"
 
 #. TRANSLATORS: if we should not monitor how long we are inactive for
-#: ../src/pk-main.c:229
+#: ../src/pk-main.c:155
 msgid "Disable the idle timer"
 msgstr "De idle timer uitschakelen"
 
 #. TRANSLATORS: show version
-#: ../src/pk-main.c:232
+#: ../src/pk-main.c:158
 msgid "Show version and exit"
 msgstr "Versie tonen en afsluiten"
 
 #. TRANSLATORS: exit after we've started up, used for user profiling
-#: ../src/pk-main.c:235
+#: ../src/pk-main.c:161
 msgid "Exit after a small delay"
 msgstr "Afsluiten na een kleine vertraging"
 
 #. TRANSLATORS: exit straight away, used for automatic profiling
-#: ../src/pk-main.c:238
+#: ../src/pk-main.c:164
 msgid "Exit after the engine has loaded"
 msgstr "Afsluiten nadat de verwerkingseenheid is geladen"
 
+#. TRANSLATORS: don't unset environment variables, used for debugging
+#: ../src/pk-main.c:167
+msgid "Don't clear environment on startup"
+msgstr "Schoon omgeving niet bij opstarten"
+
 #. TRANSLATORS: describing the service that is running
-#: ../src/pk-main.c:253
+#: ../src/pk-main.c:179
 msgid "PackageKit service"
 msgstr "PackageKit service"
 
-#. TRANSLATORS: fatal error, dbus is not running
-#: ../src/pk-main.c:298
-msgid "Cannot connect to the system bus"
-msgstr "Er kan geen verbinding gemaakt worden met de systeem bus"
-
-#: ../src/pk-main.c:344
+#: ../src/pk-main.c:253
 msgid "Failed to load any of the specified backends:"
-msgstr ""
-
-#. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error
-#. follows
-#: ../src/pk-main.c:358
-msgid "Error trying to start:"
-msgstr "Fout bij proberen te starten:"
+msgstr "Laden gespecifieerde backends, welke dan ook, mislukt:"
 
 #. TRANSLATORS: is not GPG signed
-#: ../src/pk-transaction.c:2611 ../src/pk-transaction.c:2618
+#: ../src/pk-transaction.c:2696
 msgid "The software is not from a trusted source."
 msgstr "De software is niet van een vertrouwde bron."
 
-#: ../src/pk-transaction.c:2623
+#: ../src/pk-transaction.c:2704
 msgid "Do not update this package unless you are sure it is safe to do so."
 msgstr ""
 "Vernieuw dit pakket niet behalve als je zeker weet dat het veilig is om te "
 "doen."
 
-#: ../src/pk-transaction.c:2624
+#: ../src/pk-transaction.c:2705
 msgid "Do not update these packages unless you are sure it is safe to do so."
 msgstr ""
 "Vernieuw deze pakketten niet behalve als je zeker weet dat het veilig is om "
 "te doen."
 
-#: ../src/pk-transaction.c:2634
+#: ../src/pk-transaction.c:2715
 msgid "Do not install this package unless you are sure it is safe to do so."
 msgstr ""
 "Installeer dit pakket niet behalve als je zeker weet dat het veilig is om te"
 " doen."
 
-#: ../src/pk-transaction.c:2635
+#: ../src/pk-transaction.c:2716
 msgid "Do not install these packages unless you are sure it is safe to do so."
 msgstr ""
 "Installeer deze pakketten niet behalve als je zeker weet dat het veilig is "
diff --git a/po/or.po b/po/or.po
index 8938c0a..d32d7d2 100644
--- a/po/or.po
+++ b/po/or.po
@@ -2,14 +2,16 @@
 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
 # This file is distributed under the same license as the PACKAGE package.
 # 
-# Richard Hughes <richard at hughsie.com>, 2011
+# Translators:
+# Manoj Kumar Giri <mgiri at redhat.com>, 2009.
+# Richard Hughes <richard at hughsie.com>, 2011.
 msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-04 10:50+0100\n"
-"PO-Revision-Date: 2011-05-04 09:56+0000\n"
-"Last-Translator: hughsie <richard at hughsie.com>\n"
+"POT-Creation-Date: 2011-11-10 19:50+0000\n"
+"PO-Revision-Date: 2011-11-10 19:50+0000\n"
+"Last-Translator: Richard Hughes <richard at hughsie.com>\n"
 "Language-Team: LANGUAGE <LL at li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -195,7 +197,7 @@ msgstr "ପ୍ରଦତ୍ତ"
 
 #. TRANSLATORS: details about the update, date the update was updated
 #. TRANSLATORS: The action of the package, in past tense
-#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:524
+#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:559
 msgid "Updated"
 msgstr "ଅଦ୍ୟତିତ"
 
@@ -285,7 +287,7 @@ msgstr ""
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
 #: ../client/pk-console.c:704
-#: ../contrib/command-not-found/pk-command-not-found.c:639
+#: ../contrib/command-not-found/pk-command-not-found.c:634
 msgid "The transaction failed"
 msgstr "କାରବାର ବିଫଳ ହୋଇଛି"
 
@@ -337,21 +339,21 @@ msgstr ""
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:866
+#: ../client/pk-console.c:871
 #, c-format
 msgid "This tool could not find any available package: %s"
 msgstr "ଏହି ସାଧନ କୌଣସି ଉପଲବ୍ଧ ପ୍ୟାକେଜଗୁଡ଼ିକୁ ପାଇ ପାରିଲା ନାହିଁ: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:894
+#: ../client/pk-console.c:899
 #, c-format
 msgid "This tool could not find the installed package: %s"
 msgstr "ଏହି ସାଧନ ସ୍ଥାପିତ ପ୍ୟାକେଜଗୁଡ଼ିକୁ ପାଇ ପାରିଲା ନାହିଁ: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:922 ../client/pk-console.c:950
+#: ../client/pk-console.c:927 ../client/pk-console.c:955
 #, c-format
 msgid "This tool could not find the package: %s"
 msgstr "ଏହି ସାଧନ ପ୍ୟାକେଜଗୁଡ଼ିକୁ ଖୋଜି ପାଇଲା ନାହିଁ: %s"
@@ -364,70 +366,70 @@ msgstr "ଏହି ସାଧନ ପ୍ୟାକେଜଗୁଡ଼ିକୁ ଖୋ
 #. detailed error follows
 #. TRANSLATORS: The package name was not found in any software sources. The
 #. detailed error follows
-#: ../client/pk-console.c:978 ../client/pk-console.c:1006
-#: ../client/pk-console.c:1034 ../client/pk-console.c:1062
-#: ../client/pk-console.c:1090
+#: ../client/pk-console.c:983 ../client/pk-console.c:1011
+#: ../client/pk-console.c:1039 ../client/pk-console.c:1067
+#: ../client/pk-console.c:1095
 #, c-format
 msgid "This tool could not find all the packages: %s"
 msgstr "ଏହି ସାଧନ ସମସ୍ତ ପ୍ୟାକେଜଗୁଡ଼ିକୁ ଖୋଜି ପାଇଲା ନାହିଁ: %s"
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek
 #. without a paddle
-#: ../client/pk-console.c:1119
+#: ../client/pk-console.c:1124
 msgid "The daemon crashed mid-transaction!"
 msgstr "ଡେମନ ମଧ୍ଯ-କାରବାରକୁ ନଷ୍ଟ କରିଛି!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1153
+#: ../client/pk-console.c:1158
 msgid "PackageKit Console Interface"
 msgstr "PackageKit କୋନସୋଲ ଅନ୍ତରାପୃଷ୍ଠ"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1155
+#: ../client/pk-console.c:1160
 msgid "Subcommands:"
 msgstr "ଉପ ନିର୍ଦ୍ଦେଶଗୁଡ଼ିକ:"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was
 #. last executed
-#: ../client/pk-console.c:1235
+#: ../client/pk-console.c:1240
 msgid "Failed to get the time since this action was last completed"
 msgstr "ଏହି କାର୍ଯ୍ୟଟି ଶେଷରେ ସମ୍ପୂର୍ଣ୍ଣ ହୋଇଥିବା ହେତୁ ସମୟ ପାଇବାରେ ବିଫଳ"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1277 ../client/pk-monitor.c:371
+#: ../client/pk-console.c:1282 ../client/pk-monitor.c:371
 msgid "Show the program version and exit"
 msgstr "ପ୍ରଗ୍ରାମ ସଂସ୍କରଣ ଦର୍ଶାନ୍ତୁ ଏବଂ ପ୍ରସ୍ଥାନ କରନ୍ତୁ"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1280
+#: ../client/pk-console.c:1285
 msgid "Set the filter, e.g. installed"
 msgstr "ଛାଣକ ସେଟ କରନ୍ତୁ, ଯେପରିକି ସ୍ଥାପିତ"
 
 #. TRANSLATORS: command line argument, use a non-standard install prefix
-#: ../client/pk-console.c:1283
+#: ../client/pk-console.c:1288
 msgid "Set the install root, e.g. '/' or '/mnt/ltsp'"
 msgstr ""
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1286
+#: ../client/pk-console.c:1291
 msgid "Exit without waiting for actions to complete"
 msgstr "କାର୍ଯ୍ୟ ସମ୍ପୂର୍ଣ୍ଣ ହେବା ପର୍ଯ୍ୟନ୍ତ ଅପେକ୍ଷା ନକରି ପ୍ରସ୍ଥାନ କରନ୍ତୁ"
 
 #. command line argument, do we ask questions
-#: ../client/pk-console.c:1289
+#: ../client/pk-console.c:1294
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:525
 msgid "Install the packages without asking for confirmation"
 msgstr "ନିଶ୍ଚିତକରଣ ବିନା ପ୍ୟାକେଟଗୁଡ଼ିକୁ ସ୍ଥାପନ କରନ୍ତୁ"
 
 #. TRANSLATORS: command line argument, this command is not a priority
-#: ../client/pk-console.c:1292
+#: ../client/pk-console.c:1297
 msgid "Run the command using idle network bandwidth and also using less power"
 msgstr ""
 "ସ୍ଥିର ନେଟୱର୍କ ବ୍ୟାଣ୍ଡୱିଡ଼ଥ ବ୍ୟବହାର କରି ନିର୍ଦ୍ଦେଶକୁ ଚଲାନ୍ତୁ ଏବଂ କମ ବିଦ୍ୟୁତ "
 "ଶକ୍ତି ବ୍ୟବହାର କରି"
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1295
+#: ../client/pk-console.c:1300
 msgid ""
 "Print to screen a machine readable output, rather than using animated "
 "widgets"
@@ -436,156 +438,156 @@ msgstr ""
 "ଫଳାଫଳକୁ ମୁଦ୍ରଣ କରନ୍ତୁ"
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1298
+#: ../client/pk-console.c:1303
 msgid "The maximum metadata cache age. Use -1 for 'never'."
 msgstr ""
 
 #. TRANSLATORS: command line argument, --help
-#: ../client/pk-console.c:1301
+#: ../client/pk-console.c:1306
 msgid "Show help options."
 msgstr ""
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1331
+#: ../client/pk-console.c:1336
 msgid "Failed to parse command line"
 msgstr ""
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1341
+#: ../client/pk-console.c:1346
 msgid "Failed to contact PackageKit"
 msgstr "PackageKit ସହିତ ଯୋଗାଯୋଗ କରିବାରେ ବିଫଳ"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1394
+#: ../client/pk-console.c:1399
 msgid "The proxy could not be set"
 msgstr ""
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1406
+#: ../client/pk-console.c:1411
 msgid "The install root could not be set"
 msgstr ""
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1418
+#: ../client/pk-console.c:1423
 msgid "The filter specified was invalid"
 msgstr "ଉଲ୍ଲିଖିତ ଛାଣକଟି ଅବୈଧ ଅଟେ"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1437
+#: ../client/pk-console.c:1442
 msgid "A search type is required, e.g. name"
 msgstr "ଗୋଟିଏ ସନ୍ଧାନ ପ୍ରକାର ଆବଶ୍ୟକ, ଯେପରିକି ନାମ"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1444 ../client/pk-console.c:1456
-#: ../client/pk-console.c:1468 ../client/pk-console.c:1480
+#: ../client/pk-console.c:1449 ../client/pk-console.c:1461
+#: ../client/pk-console.c:1473 ../client/pk-console.c:1485
 msgid "A search term is required"
 msgstr "ଗୋଟିଏ ସନ୍ଧାନ ନିତି ଆବଶ୍ୟକ"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1490
+#: ../client/pk-console.c:1495
 msgid "Invalid search type"
 msgstr "ଅବୈଧ ସନ୍ଧାନ ପ୍ରକାର"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1496
+#: ../client/pk-console.c:1501
 msgid "A package name to install is required"
 msgstr "ସ୍ଥାପନ କରିବା ପାଇଁ ଗୋଟିଏ ପ୍ୟାକେଜ ନାମ ଆବଶ୍ୟକ"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1505
+#: ../client/pk-console.c:1510
 msgid "A filename to install is required"
 msgstr "ସ୍ଥାପନ କରିବା ପାଇଁ ଗୋଟିଏ ଫାଇଲ ନାମ ଆବଶ୍ୟକ"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1516
+#: ../client/pk-console.c:1521
 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:1527
+#: ../client/pk-console.c:1532
 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:1536
+#: ../client/pk-console.c:1541
 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:1543
+#: ../client/pk-console.c:1548
 msgid "Directory not found"
 msgstr "ଡିରେକ୍ଟୋରୀ ମିଳୁନାହିଁ"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1552
+#: ../client/pk-console.c:1557
 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:1563
+#: ../client/pk-console.c:1568
 msgid "A transaction identifier (tid) is required"
 msgstr "ଗୋଟିଏ କାରବାର ପରିଚାୟକ (tid) ଆବଶ୍ୟକ"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:1584
+#: ../client/pk-console.c:1589
 msgid "A package name to resolve is required"
 msgstr "ସମାଧାନ କରିବା ପାଇଁ ଗୋଟିଏ ପ୍ୟାକେଜ ନାମ ଆବଶ୍ୟକ"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:1595 ../client/pk-console.c:1606
+#: ../client/pk-console.c:1600 ../client/pk-console.c:1611
 msgid "A repository name is required"
 msgstr "ଗୋଟିଏ ସଂଗ୍ରହାଳୟ ନାମ ଆବଶ୍ୟକ"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:1617
+#: ../client/pk-console.c:1622
 msgid "A repo name, parameter and value are required"
 msgstr "ଗୋଟିଏ ସଂଗ୍ରହାଳୟ, ପ୍ରାଚଳ ଏବଂ ମୂଲ୍ୟ ଆବଶ୍ୟକ"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:1634
+#: ../client/pk-console.c:1639
 msgid "An action, e.g. 'update-system' is required"
 msgstr "ଗୋଟିଏ କାର୍ଯ୍ୟ, ଉଦାହରଣ ସ୍ୱରୂପ 'update-system' ଆବଶ୍ୟକ"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:1641
+#: ../client/pk-console.c:1646
 msgid "A correct role is required"
 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:1651 ../client/pk-console.c:1665
-#: ../client/pk-console.c:1674 ../client/pk-console.c:1694
-#: ../client/pk-console.c:1703 ../client/pk-generate-pack.c:314
+#: ../client/pk-console.c:1656 ../client/pk-console.c:1670
+#: ../client/pk-console.c:1679 ../client/pk-console.c:1699
+#: ../client/pk-console.c:1708 ../client/pk-generate-pack.c:314
 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:1683
+#: ../client/pk-console.c:1688
 msgid "A package provide string is required"
 msgstr "ଗୋଟିଏ ପ୍ୟାକେଜ ପ୍ରଦତ୍ତ ବାକ୍ୟଖଣ୍ଡ ଆବଶ୍ୟକ"
 
 #. TRANSLATORS: The user did not provide a distro name
-#: ../client/pk-console.c:1727
+#: ../client/pk-console.c:1732
 msgid "A distribution name is required"
 msgstr ""
 
 #. TRANSLATORS: The user did not provide an upgrade type
-#: ../client/pk-console.c:1733
+#: ../client/pk-console.c:1738
 msgid "An upgrade type is required, e.g. 'minimal', 'default' or 'complete'"
 msgstr ""
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command
 #. line
-#: ../client/pk-console.c:1783
+#: ../client/pk-console.c:1788
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "ବିକଳ୍ପ '%s' ଟି ସମର୍ଥିତ ନୁହଁ"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:1793
+#: ../client/pk-console.c:1798
 msgid "Command failed"
 msgstr "ନିର୍ଦ୍ଦେଶ ବିଫଳ ହୋଇଛି"
 
@@ -725,160 +727,155 @@ msgid "PackageKit Monitor"
 msgstr "PackageKit ପ୍ରଦର୍ଶିକା"
 
 #. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/pk-plugin-install.c:499
+#: ../contrib/browser-plugin/pk-plugin-install.c:503
 msgid "Getting package information..."
 msgstr "ପ୍ୟାକେଜ ସୂଚନା ଗ୍ରହଣ କରୁଅଛି..."
 
 #. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/pk-plugin-install.c:505
+#: ../contrib/browser-plugin/pk-plugin-install.c:509
 #, c-format
 msgid "Run %s"
 msgstr "%s କୁ ଚଲାନ୍ତୁ"
 
 #. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:511
+#: ../contrib/browser-plugin/pk-plugin-install.c:515
 msgid "Installed version"
 msgstr "ସ୍ଥାପିତ ସଂସ୍କରଣ"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:519
+#: ../contrib/browser-plugin/pk-plugin-install.c:523
 #, c-format
 msgid "Run version %s now"
 msgstr "ସଂସ୍କରଣ %s କୁ ବର୍ତ୍ତମାନ ଚଲାନ୍ତୁ"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:525
+#: ../contrib/browser-plugin/pk-plugin-install.c:529
 msgid "Run now"
 msgstr "ବର୍ତ୍ତମାନ ଚଲାନ୍ତୁ"
 
 #. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:531
+#: ../contrib/browser-plugin/pk-plugin-install.c:535
 #, c-format
 msgid "Update to version %s"
 msgstr "ସଂସ୍କରଣ %sକୁ ଅଦ୍ୟତନ କରନ୍ତୁ"
 
 #. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:537
+#: ../contrib/browser-plugin/pk-plugin-install.c:541
 #, c-format
 msgid "Install %s now"
 msgstr "%s କୁ ବର୍ତ୍ତମାନ ସ୍ଥାପନ କରନ୍ତୁ"
 
 #. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:540
+#: ../contrib/browser-plugin/pk-plugin-install.c:544
 msgid "Version"
 msgstr "ସଂସ୍କରଣ"
 
 #. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/pk-plugin-install.c:545
+#: ../contrib/browser-plugin/pk-plugin-install.c:549
 msgid "No packages found for your system"
 msgstr "ଆପଣଙ୍କ ତନ୍ତ୍ର ପାଇଁ କୌଣସି ପ୍ୟାକେଜ ମିଳିଲା ନାହିଁ"
 
 #. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/pk-plugin-install.c:550
+#: ../contrib/browser-plugin/pk-plugin-install.c:554
 msgid "Installing..."
 msgstr "ସ୍ଥାପନ କରୁଅଛି..."
 
 #. TRANSLATORS: downloading repo data so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:366
+#: ../contrib/command-not-found/pk-command-not-found.c:363
 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:370
+#: ../contrib/command-not-found/pk-command-not-found.c:367
 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:374
+#: ../contrib/command-not-found/pk-command-not-found.c:371
 msgid "Waiting for package manager lock."
 msgstr "ପ୍ୟାକେଜ ପରିଚାଳକଙ୍କୁ ଅପେକ୍ଷା କରିଅଛି।"
 
 #. TRANSLATORS: loading package cache so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:378
+#: ../contrib/command-not-found/pk-command-not-found.c:375
 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:444
+#: ../contrib/command-not-found/pk-command-not-found.c:439
 msgid "Failed to search for file"
 msgstr "ଫାଇଲ ସନ୍ଧାନ କରିବାରେ ବିଫଳ"
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
-#: ../contrib/command-not-found/pk-command-not-found.c:456
+#: ../contrib/command-not-found/pk-command-not-found.c:451
 msgid "Getting the list of files failed"
 msgstr ""
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:602
+#: ../contrib/command-not-found/pk-command-not-found.c:597
 msgid "Failed to launch:"
 msgstr "ଆରମ୍ଭ କରିବାରେ ବିଫଳ:"
 
 #. TRANSLATORS: we failed to install the package
-#: ../contrib/command-not-found/pk-command-not-found.c:630
+#: ../contrib/command-not-found/pk-command-not-found.c:625
 msgid "Failed to install packages"
 msgstr "ପ୍ୟାକେଜଗୁଡ଼ିକୁ ସ୍ଥାପନ କରିବାରେ ବିଫଳ"
 
-#. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/command-not-found/pk-command-not-found.c:706
-msgid "PackageKit Command Not Found"
-msgstr "PackageKit ନିର୍ଦ୍ଦେଶ ମିଳିଲା ନାହିଁ"
-
 #. TRANSLATORS: the prefix of all the output telling the user
 #. * why it's not executing. NOTE: this is lowercase to mimic
 #. * the style of bash itself -- apologies
-#: ../contrib/command-not-found/pk-command-not-found.c:741
+#: ../contrib/command-not-found/pk-command-not-found.c:723
 msgid "command not found"
 msgstr ""
 
 #. TRANSLATORS: tell the user what we think the command is
-#: ../contrib/command-not-found/pk-command-not-found.c:759
+#: ../contrib/command-not-found/pk-command-not-found.c:741
 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:773
+#: ../contrib/command-not-found/pk-command-not-found.c:755
 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:787
-#: ../contrib/command-not-found/pk-command-not-found.c:796
+#: ../contrib/command-not-found/pk-command-not-found.c:769
+#: ../contrib/command-not-found/pk-command-not-found.c:778
 msgid "Similar commands are:"
 msgstr "ଏକା ପ୍ରକାର ନିର୍ଦ୍ଦେଶଗୁଡ଼ିକ ହେଉଛି:"
 
 #. TRANSLATORS: ask the user to choose a file to run
-#: ../contrib/command-not-found/pk-command-not-found.c:803
+#: ../contrib/command-not-found/pk-command-not-found.c:785
 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:821
+#: ../contrib/command-not-found/pk-command-not-found.c:803
 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:828
+#: ../contrib/command-not-found/pk-command-not-found.c:810
 #, 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:855
+#: ../contrib/command-not-found/pk-command-not-found.c:837
 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:865
+#: ../contrib/command-not-found/pk-command-not-found.c:847
 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:874
+#: ../contrib/command-not-found/pk-command-not-found.c:856
 msgid "Please choose a package to install"
 msgstr "ସ୍ଥାପନ କରିବା ପାଇଁ ଦୟାକରି ଗୋଟିଏ ପ୍ୟାକେଜ ବାଛନ୍ତୁ"
 
@@ -1054,7 +1051,7 @@ msgstr "ପ୍ୟାକେଜଗୁଡ଼ିକୁ ସକ୍ରିୟ ଅବସ
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
 #. TRANSLATORS: transaction state, installing packages
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:860
-#: ../lib/packagekit-glib2/pk-console-shared.c:296
+#: ../lib/packagekit-glib2/pk-console-shared.c:331
 #, c-format
 msgid "Installing packages"
 msgstr "ପ୍ୟାକେଜଗୁଡ଼ିକୁ ସ୍ଥାପନ କରୁଅଛି"
@@ -1189,474 +1186,474 @@ msgstr "PackageKit ପ୍ୟାକେଜ ତାଲିକା"
 msgid "PackageKit Service Pack"
 msgstr "PackageKit ସର୍ଭିସ ପ୍ୟାକ"
 
-#: ../lib/packagekit-glib2/pk-console-shared.c:64
+#: ../lib/packagekit-glib2/pk-console-shared.c:65
 #, c-format
 msgid "Please enter a number from 1 to %i: "
 msgstr "ଦୟାକରି 1 ରୁ %i ଭିତରେ ଥିବା ଗୋଟିଏ ସଂଖ୍ୟାକୁ ଭରଣ କରନ୍ତୁ: "
 
 #. TRANSLATORS: more than one package could be found that matched, to follow
 #. is a list of possible packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:198
+#: ../lib/packagekit-glib2/pk-console-shared.c:233
 msgid "More than one package matches:"
 msgstr "ଗୋଟିଏରୁ ଅଧିକ ପ୍ୟାକେଜ ମେଳ ଖାଉଛି:"
 
 #. TRANSLATORS: This finds out which package in the list to use
-#: ../lib/packagekit-glib2/pk-console-shared.c:209
+#: ../lib/packagekit-glib2/pk-console-shared.c:244
 msgid "Please choose the correct package: "
 msgstr "ଦୟାକରି ସଠିକ ପ୍ୟାକେଜ ବାଛନ୍ତୁ: "
 
 #. TRANSLATORS: This is when the transaction status is not known
-#: ../lib/packagekit-glib2/pk-console-shared.c:264
+#: ../lib/packagekit-glib2/pk-console-shared.c:299
 msgid "Unknown state"
 msgstr "ଅଜଣା ସ୍ଥିତି"
 
 #. TRANSLATORS: transaction state, the daemon is in the process of starting
-#: ../lib/packagekit-glib2/pk-console-shared.c:268
+#: ../lib/packagekit-glib2/pk-console-shared.c:303
 msgid "Starting"
 msgstr "ଆରମ୍ଭ କରୁଅଛି"
 
 #. TRANSLATORS: transaction state, the transaction is waiting for another to
 #. complete
-#: ../lib/packagekit-glib2/pk-console-shared.c:272
+#: ../lib/packagekit-glib2/pk-console-shared.c:307
 msgid "Waiting in queue"
 msgstr "ଧାଡ଼ିରେ ଅପେକ୍ଷା କରିଅଛି"
 
 #. TRANSLATORS: transaction state, just started
-#: ../lib/packagekit-glib2/pk-console-shared.c:276
+#: ../lib/packagekit-glib2/pk-console-shared.c:311
 msgid "Running"
 msgstr "ଚାଲୁଅଛି"
 
 #. TRANSLATORS: transaction state, is querying data
-#: ../lib/packagekit-glib2/pk-console-shared.c:280
+#: ../lib/packagekit-glib2/pk-console-shared.c:315
 msgid "Querying"
 msgstr "ଅନୁସନ୍ଧାନ କରୁଅଛି"
 
 #. TRANSLATORS: transaction state, getting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:284
+#: ../lib/packagekit-glib2/pk-console-shared.c:319
 msgid "Getting information"
 msgstr "ସୂଚନା ଗ୍ରହଣ କରୁଅଛି"
 
 #. TRANSLATORS: transaction state, removing packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:288
+#: ../lib/packagekit-glib2/pk-console-shared.c:323
 msgid "Removing packages"
 msgstr "ପ୍ୟାକେଜଗୁଡ଼ିକୁ କାଢ଼ୁଅଛି"
 
 #. TRANSLATORS: transaction state, downloading package files
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:292
-#: ../lib/packagekit-glib2/pk-console-shared.c:670
+#: ../lib/packagekit-glib2/pk-console-shared.c:327
+#: ../lib/packagekit-glib2/pk-console-shared.c:705
 msgid "Downloading packages"
 msgstr "ପ୍ୟାକେଜ ଆହରଣ କରୁଅଛି"
 
 #. TRANSLATORS: transaction state, refreshing internal lists
-#: ../lib/packagekit-glib2/pk-console-shared.c:300
+#: ../lib/packagekit-glib2/pk-console-shared.c:335
 msgid "Refreshing software list"
 msgstr "ସଫ୍ଟୱେର ତାଲିକାକୁ ସତେଜ କରୁଅଛି"
 
 #. TRANSLATORS: transaction state, installing updates
-#: ../lib/packagekit-glib2/pk-console-shared.c:304
+#: ../lib/packagekit-glib2/pk-console-shared.c:339
 msgid "Installing updates"
 msgstr "ଅଦ୍ୟତନଗୁଡ଼ିକୁ ସ୍ଥାପନ କରୁଅଛି"
 
 #. TRANSLATORS: transaction state, removing old packages, and cleaning config
 #. files
-#: ../lib/packagekit-glib2/pk-console-shared.c:308
+#: ../lib/packagekit-glib2/pk-console-shared.c:343
 msgid "Cleaning up packages"
 msgstr "ପ୍ୟାକେଜଗୁଡ଼ିକୁ ସଫା କରୁଅଛି"
 
 #. TRANSLATORS: transaction state, obsoleting old packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:312
+#: ../lib/packagekit-glib2/pk-console-shared.c:347
 msgid "Obsoleting packages"
 msgstr "ପ୍ୟାକେଜଗୁଡ଼ିକୁ ପ୍ରତ୍ୟାଖାନ କରୁଅଛି"
 
 #. TRANSLATORS: transaction state, checking the transaction before we do it
-#: ../lib/packagekit-glib2/pk-console-shared.c:316
+#: ../lib/packagekit-glib2/pk-console-shared.c:351
 msgid "Resolving dependencies"
 msgstr "ନିର୍ଭରତାଗୁଡ଼ିକୁ ସମାଧାନ କରୁଅଛି"
 
 #. TRANSLATORS: transaction state, checking if we have all the security keys
 #. for the operation
-#: ../lib/packagekit-glib2/pk-console-shared.c:320
+#: ../lib/packagekit-glib2/pk-console-shared.c:355
 msgid "Checking signatures"
 msgstr "ହସ୍ତାକ୍ଷରଗୁଡ଼ିକୁ ଯାଞ୍ଚକରୁଅଛି"
 
 #. TRANSLATORS: transaction state, when we return to a previous system state
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:324
-#: ../lib/packagekit-glib2/pk-console-shared.c:630
+#: ../lib/packagekit-glib2/pk-console-shared.c:359
+#: ../lib/packagekit-glib2/pk-console-shared.c:665
 msgid "Rolling back"
 msgstr "ପଛକୁ ଗଡ଼ୁଅଛି"
 
 #. TRANSLATORS: transaction state, when we're doing a test transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:328
+#: ../lib/packagekit-glib2/pk-console-shared.c:363
 msgid "Testing changes"
 msgstr "ପରିବର୍ତ୍ତନଗୁଡ଼ିକୁ ପରୀକ୍ଷଣ କରୁଅଛି"
 
 #. TRANSLATORS: transaction state, when we're writing to the system package
 #. database
-#: ../lib/packagekit-glib2/pk-console-shared.c:332
+#: ../lib/packagekit-glib2/pk-console-shared.c:367
 msgid "Committing changes"
 msgstr "ସମର୍ପଣ ପରିବର୍ତିତ"
 
 #. TRANSLATORS: transaction state, requesting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:336
+#: ../lib/packagekit-glib2/pk-console-shared.c:371
 msgid "Requesting data"
 msgstr "ତଥ୍ୟ ଅନୁରୋଧ କରୁଅଛି"
 
 #. TRANSLATORS: transaction state, all done!
-#: ../lib/packagekit-glib2/pk-console-shared.c:340
+#: ../lib/packagekit-glib2/pk-console-shared.c:375
 msgid "Finished"
 msgstr "ସମ୍ପନ୍ନ କରୁଅଛି"
 
 #. TRANSLATORS: transaction state, in the process of cancelling
-#: ../lib/packagekit-glib2/pk-console-shared.c:344
+#: ../lib/packagekit-glib2/pk-console-shared.c:379
 msgid "Cancelling"
 msgstr "ବାତିଲ କରୁଅଛି"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:348
+#: ../lib/packagekit-glib2/pk-console-shared.c:383
 msgid "Downloading repository information"
 msgstr "ସଂଗ୍ରହାଳୟ ସୂଚନା ଆହରଣ କରୁଅଛି"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:352
+#: ../lib/packagekit-glib2/pk-console-shared.c:387
 msgid "Downloading list of packages"
 msgstr "ପ୍ୟାକେଜ ତାଲିକାଗୁଡ଼ିକୁ ଆହରଣ କରୁଅଛି"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:356
+#: ../lib/packagekit-glib2/pk-console-shared.c:391
 msgid "Downloading file lists"
 msgstr "ଫାଇଲ ତାଲିକା ଆହରଣ କରୁଅଛି"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:360
+#: ../lib/packagekit-glib2/pk-console-shared.c:395
 msgid "Downloading lists of changes"
 msgstr "ପରିବର୍ତ୍ତନ ତାଲିକାଗୁଡ଼ିକୁ ଆହରଣ କରୁଅଛି"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:364
+#: ../lib/packagekit-glib2/pk-console-shared.c:399
 msgid "Downloading groups"
 msgstr "ସମୂହକୁ ଆହରଣ କରୁଅଛି"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:368
+#: ../lib/packagekit-glib2/pk-console-shared.c:403
 msgid "Downloading update information"
 msgstr "ଅଦ୍ୟତନ ସୂଚନା ଆହରଣ କରୁଅଛି"
 
 #. TRANSLATORS: transaction state, repackaging delta files
-#: ../lib/packagekit-glib2/pk-console-shared.c:372
+#: ../lib/packagekit-glib2/pk-console-shared.c:407
 msgid "Repackaging files"
 msgstr "ଫାଇଲଗୁଡ଼ିକ ପୁନଃପ୍ୟାକେଜ କରୁଅଛି"
 
 #. TRANSLATORS: transaction state, loading databases
-#: ../lib/packagekit-glib2/pk-console-shared.c:376
+#: ../lib/packagekit-glib2/pk-console-shared.c:411
 msgid "Loading cache"
 msgstr "କ୍ୟାଶେ ଧଆରଣ କରୁଅଛି"
 
 #. TRANSLATORS: transaction state, scanning for running processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:380
+#: ../lib/packagekit-glib2/pk-console-shared.c:415
 msgid "Scanning applications"
 msgstr "ପ୍ରୟୋଗଗୁଡ଼ିକୁ କ୍ରମବୀକ୍ଷଣ କରୁଅଛି"
 
 #. TRANSLATORS: transaction state, generating a list of packages installed on
 #. the system
-#: ../lib/packagekit-glib2/pk-console-shared.c:384
+#: ../lib/packagekit-glib2/pk-console-shared.c:419
 msgid "Generating package lists"
 msgstr "ପ୍ୟାକେଜ ତାଲିକା ସୃଷ୍ଟି କରୁଅଛି"
 
 #. TRANSLATORS: transaction state, when we're waiting for the native tools to
 #. exit
-#: ../lib/packagekit-glib2/pk-console-shared.c:388
+#: ../lib/packagekit-glib2/pk-console-shared.c:423
 msgid "Waiting for package manager lock"
 msgstr "ପ୍ୟାକେଜ ପରିଚାଳକଙ୍କୁ ଅପେକ୍ଷା କରିଅଛି।"
 
 #. TRANSLATORS: transaction state, waiting for user to type in a password
-#: ../lib/packagekit-glib2/pk-console-shared.c:392
+#: ../lib/packagekit-glib2/pk-console-shared.c:427
 msgid "Waiting for authentication"
 msgstr "ବୈଧିକରଣ ପାଇଁ ଅପେକ୍ଷା କରିଅଛି"
 
 #. TRANSLATORS: transaction state, we are updating the list of processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:396
+#: ../lib/packagekit-glib2/pk-console-shared.c:431
 msgid "Updating running applications"
 msgstr "ଚାଲୁଥିବା ପ୍ରୟୋଗଗୁଡ଼ିକୁ ଅଦ୍ୟତନ କରୁଅଛି"
 
 #. TRANSLATORS: transaction state, we are checking executable files currently
 #. in use
-#: ../lib/packagekit-glib2/pk-console-shared.c:400
+#: ../lib/packagekit-glib2/pk-console-shared.c:435
 msgid "Checking applications in use"
 msgstr "ବ୍ୟବହାରରେ ଥିବା ପ୍ରୟୋଗଗୁଡ଼ିକୁ ଯାଞ୍ଚକରୁଅଛି"
 
 #. TRANSLATORS: transaction state, we are checking for libraries currently in
 #. use
-#: ../lib/packagekit-glib2/pk-console-shared.c:404
+#: ../lib/packagekit-glib2/pk-console-shared.c:439
 msgid "Checking libraries in use"
 msgstr "ବ୍ୟବହାରରେ ଥିବା ଲାଇବ୍ରେରୀଗୁଡ଼ିକୁ ଯାଞ୍ଚକରୁଅଛି"
 
 #. TRANSLATORS: transaction state, we are copying package files before or
 #. after the transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:408
+#: ../lib/packagekit-glib2/pk-console-shared.c:443
 msgid "Copying files"
 msgstr "ଫାଇଲଗୁଡ଼ିକୁ ନକଲ କରୁଅଛି"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:426
+#: ../lib/packagekit-glib2/pk-console-shared.c:461
 msgid "Trivial"
 msgstr "ଅଧମ"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:430
+#: ../lib/packagekit-glib2/pk-console-shared.c:465
 msgid "Normal"
 msgstr "ସାଧାରଣ"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:434
+#: ../lib/packagekit-glib2/pk-console-shared.c:469
 msgid "Important"
 msgstr "ଗୁରୁତ୍ବପୂର୍ଣ୍ଣ"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:438
+#: ../lib/packagekit-glib2/pk-console-shared.c:473
 msgid "Security"
 msgstr "ସୁରକ୍ଷା"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:442
+#: ../lib/packagekit-glib2/pk-console-shared.c:477
 msgid "Bug fix "
 msgstr "ତ୍ରୁଟି ନିବାରଣ"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:446
+#: ../lib/packagekit-glib2/pk-console-shared.c:481
 msgid "Enhancement"
 msgstr "ବୃଦ୍ଧି"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:450
+#: ../lib/packagekit-glib2/pk-console-shared.c:485
 msgid "Blocked"
 msgstr "ଅବରୋଧିତ"
 
 #. TRANSLATORS: The state of a package
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:455
-#: ../lib/packagekit-glib2/pk-console-shared.c:528
+#: ../lib/packagekit-glib2/pk-console-shared.c:490
+#: ../lib/packagekit-glib2/pk-console-shared.c:563
 msgid "Installed"
 msgstr "ସ୍ଥାପିତ"
 
 #. TRANSLATORS: The state of a package, i.e. not installed
-#: ../lib/packagekit-glib2/pk-console-shared.c:460
+#: ../lib/packagekit-glib2/pk-console-shared.c:495
 msgid "Available"
 msgstr "ଉପଲବ୍ଧ"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:478
+#: ../lib/packagekit-glib2/pk-console-shared.c:513
 msgid "Downloading"
 msgstr "ଆହରଣ କରୁଅଛି"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:482
+#: ../lib/packagekit-glib2/pk-console-shared.c:517
 msgid "Updating"
 msgstr "ଅଦ୍ୟତନ କରୁଅଛି"
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:486
-#: ../lib/packagekit-glib2/pk-console-shared.c:606
+#: ../lib/packagekit-glib2/pk-console-shared.c:521
+#: ../lib/packagekit-glib2/pk-console-shared.c:641
 msgid "Installing"
 msgstr "ସ୍ଥାପନ କରୁଅଛି"
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:490
-#: ../lib/packagekit-glib2/pk-console-shared.c:602
+#: ../lib/packagekit-glib2/pk-console-shared.c:525
+#: ../lib/packagekit-glib2/pk-console-shared.c:637
 msgid "Removing"
 msgstr "କାଢ଼ୁଅଛି"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:494
+#: ../lib/packagekit-glib2/pk-console-shared.c:529
 msgid "Cleaning up"
 msgstr "ପରିଷ୍କାର କରା ହେଉଛି"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:498
+#: ../lib/packagekit-glib2/pk-console-shared.c:533
 msgid "Obsoleting"
 msgstr "ଅଚଳ କରୁଅଛି"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:502
+#: ../lib/packagekit-glib2/pk-console-shared.c:537
 msgid "Reinstalling"
 msgstr "ପୁନଃ ସ୍ଥାପନ କରୁଅଛି"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:520
+#: ../lib/packagekit-glib2/pk-console-shared.c:555
 msgid "Downloaded"
 msgstr "ଆହରଣ ହୋଇଛି"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:532
+#: ../lib/packagekit-glib2/pk-console-shared.c:567
 msgid "Removed"
 msgstr "କଢ଼ାଯାଇଛି"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:536
+#: ../lib/packagekit-glib2/pk-console-shared.c:571
 msgid "Cleaned up"
 msgstr "ସଫା ହୋଇଛି"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:540
+#: ../lib/packagekit-glib2/pk-console-shared.c:575
 msgid "Obsoleted"
 msgstr "ଅଚଳ ହୋଇଛି"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:544
+#: ../lib/packagekit-glib2/pk-console-shared.c:579
 msgid "Reinstalled"
 msgstr "ପୁନଃ ସ୍ଥାପିତ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:562
+#: ../lib/packagekit-glib2/pk-console-shared.c:597
 msgid "Unknown role type"
 msgstr "ଅଜଣା ଭୂମିକା ପ୍ରକାର"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:566
+#: ../lib/packagekit-glib2/pk-console-shared.c:601
 msgid "Getting dependencies"
 msgstr "ନିର୍ଭରତାଗୁଡ଼ିକୁ ଗ୍ରହଣ କରୁଅଛି"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:570
+#: ../lib/packagekit-glib2/pk-console-shared.c:605
 msgid "Getting update details"
 msgstr "ଅଦ୍ୟତନ ବିବରଣୀଗୁଡ଼ିକୁ ଗ୍ରହଣ କରୁଅଛି"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:574
+#: ../lib/packagekit-glib2/pk-console-shared.c:609
 msgid "Getting details"
 msgstr "ବିବରଣୀଗୁଡ଼ିକୁ ଗ୍ରହଣ କରୁଅଛି"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:578
+#: ../lib/packagekit-glib2/pk-console-shared.c:613
 msgid "Getting requires"
 msgstr "ଆବଶ୍ୟକତାଗୁଡ଼ିକୁ ଗ୍ରହଣ କରୁଅଛି"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:582
+#: ../lib/packagekit-glib2/pk-console-shared.c:617
 msgid "Getting updates"
 msgstr "ଅଦ୍ୟତନଗୁଡ଼ିକୁ ଗ୍ରହଣ କରୁଅଛି"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:586
+#: ../lib/packagekit-glib2/pk-console-shared.c:621
 msgid "Searching by details"
 msgstr "ବିବରଣୀ ଦ୍ୱାରା ସନ୍ଧାନ କରୁଅଛି"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:590
+#: ../lib/packagekit-glib2/pk-console-shared.c:625
 msgid "Searching by file"
 msgstr "ଫାଇଲ ଦ୍ୱାରା ସନ୍ଧାନ କରୁଅଛି"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:594
+#: ../lib/packagekit-glib2/pk-console-shared.c:629
 msgid "Searching groups"
 msgstr "ଶ୍ରେଣୀଗୁଡ଼ିକୁ ସନ୍ଧାନ କରୁଅଛି"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:598
+#: ../lib/packagekit-glib2/pk-console-shared.c:633
 msgid "Searching by name"
 msgstr "ନାମ ଦ୍ୱାରା ସନ୍ଧାନ କରୁଅଛି"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:610
+#: ../lib/packagekit-glib2/pk-console-shared.c:645
 msgid "Installing files"
 msgstr "ଫାଇଲଗୁଡ଼ିକୁ ସ୍ଥାପନ କରୁଅଛି"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:614
+#: ../lib/packagekit-glib2/pk-console-shared.c:649
 msgid "Refreshing cache"
 msgstr "କ୍ୟାଶେକୁ ସତେଜ କରୁଅଛି"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:618
+#: ../lib/packagekit-glib2/pk-console-shared.c:653
 msgid "Updating packages"
 msgstr "ପ୍ୟାକେଜଗୁଡ଼ିକୁ ଅଦ୍ୟତନ କରୁଅଛି"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:622
+#: ../lib/packagekit-glib2/pk-console-shared.c:657
 msgid "Updating system"
 msgstr "ତନ୍ତ୍ରକୁ ଅଦ୍ୟତନ କରୁଅଛି"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:626
+#: ../lib/packagekit-glib2/pk-console-shared.c:661
 msgid "Canceling"
 msgstr "ବାତିଲ କରୁଅଛି"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:634
+#: ../lib/packagekit-glib2/pk-console-shared.c:669
 msgid "Getting repositories"
 msgstr "ସଂଗ୍ରହାଳୟଗୁଡ଼ିକୁ ଗ୍ରହଣ କରୁଅଛି"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:638
+#: ../lib/packagekit-glib2/pk-console-shared.c:673
 msgid "Enabling repository"
 msgstr "ସଂଗ୍ରହାଳୟକୁ ସକ୍ରୟ କରୁଅଛି"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:642
+#: ../lib/packagekit-glib2/pk-console-shared.c:677
 msgid "Setting data"
 msgstr "ତଥ୍ୟ ବିନ୍ୟାସ କରୁଅଛି"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:646
+#: ../lib/packagekit-glib2/pk-console-shared.c:681
 msgid "Resolving"
 msgstr "ସମାଧାନ କରୁଅଛି"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:650
+#: ../lib/packagekit-glib2/pk-console-shared.c:685
 msgid "Getting file list"
 msgstr "ଫାଇଲ ତାଲିକା ଗ୍ରହଣ କରୁଅଛି"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:654
+#: ../lib/packagekit-glib2/pk-console-shared.c:689
 msgid "Getting provides"
 msgstr "ପ୍ରଦାତାମାନଙ୍କୁ ଗ୍ରହଣ କରୁଅଛି"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:658
+#: ../lib/packagekit-glib2/pk-console-shared.c:693
 msgid "Installing signature"
 msgstr "ହସ୍ତାକ୍ଷରଗୁଡ଼ିକୁ ସ୍ଥାପନ କରୁଅଛି"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:662
+#: ../lib/packagekit-glib2/pk-console-shared.c:697
 msgid "Getting packages"
 msgstr "ପ୍ୟାକେଜଗୁଡ଼ିକୁ ଗ୍ରହଣ କରୁଅଛି"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:666
+#: ../lib/packagekit-glib2/pk-console-shared.c:701
 msgid "Accepting EULA"
 msgstr "EULA କୁ ଗ୍ରହଣ କରୁଅଛି"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:674
+#: ../lib/packagekit-glib2/pk-console-shared.c:709
 msgid "Getting upgrades"
 msgstr "ଉନ୍ନୟନଗୁଡ଼ିକୁ ଗ୍ରହଣ କରୁଅଛି"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:678
+#: ../lib/packagekit-glib2/pk-console-shared.c:713
 msgid "Getting categories"
 msgstr "ବିଭାଗଗୁଡ଼ିକୁ ଗ୍ରହଣ କରୁଅଛି"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:682
+#: ../lib/packagekit-glib2/pk-console-shared.c:717
 msgid "Getting transactions"
 msgstr "କାରବାରଗୁଡ଼ିକୁ ଗ୍ରହଣ କରୁଅଛି"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:686
-#: ../lib/packagekit-glib2/pk-console-shared.c:690
+#: ../lib/packagekit-glib2/pk-console-shared.c:721
+#: ../lib/packagekit-glib2/pk-console-shared.c:725
 msgid "Simulating install"
 msgstr "ସ୍ଥାପନ କ୍ରିୟାକୁ ଆରମ୍ଭ କରୁଅଛି"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:694
+#: ../lib/packagekit-glib2/pk-console-shared.c:729
 msgid "Simulating remove"
 msgstr "କାଢ଼ିବା ଆରମ୍ଭ କରୁଅଛି"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:698
+#: ../lib/packagekit-glib2/pk-console-shared.c:733
 msgid "Simulating update"
 msgstr "ଅଦ୍ୟତନଗୁଡ଼ିକୁ ଆରମ୍ଭ କରୁଅଛି"
 
@@ -1807,13 +1804,19 @@ msgstr "ନିମ୍ନଲିଖିତ ପ୍ୟାକେଜଗୁଡ଼ିକ
 msgid "The following packages have to be downgraded:"
 msgstr "ନିମ୍ନଲିଖିତ ପ୍ୟାକେଜଗୁଡ଼ିକୁ ପଦ ଅବନତି କରିବାକୁ ହେବ:"
 
+#. TRANSLATORS: When processing, untrusted and non-verified packages may be
+#. encountered
+#: ../lib/packagekit-glib2/pk-task-text.c:325
+msgid "The following packages are untrusted:"
+msgstr ""
+
 #. TRANSLATORS: ask the user if the proposed changes are okay
-#: ../lib/packagekit-glib2/pk-task-text.c:380
+#: ../lib/packagekit-glib2/pk-task-text.c:385
 msgid "Proceed with changes?"
 msgstr "ପରିବର୍ତ୍ତନଗୁଡ଼ିକ ସହିତ ଅଗ୍ରସର ହେବେ କି?"
 
 #. TRANSLATORS: tell the user we didn't do anything
-#: ../lib/packagekit-glib2/pk-task-text.c:385
+#: ../lib/packagekit-glib2/pk-task-text.c:390
 msgid "The transaction did not proceed."
 msgstr "କାରବାର ଅଗ୍ରସର ହୋଇନଥିଲା।"
 
@@ -2022,103 +2025,74 @@ msgstr "ପ୍ୟାକେଜଗୁଡ଼ିକୁ ଅଦ୍ୟତନ କରନ
 msgid "Upgrade System"
 msgstr ""
 
-#. TRANSLATORS: failed due to DBus security
-#: ../src/pk-main.c:91
-msgid "Startup failed due to security policies on this machine."
-msgstr "ଏହି ଯନ୍ତ୍ରରେ ସୁରକ୍ଷା ନିତୀ ଯୋଗୁଁ ଆରମ୍ଭ କ୍ରିୟା ବିଫଳ ହୋଇଛି।"
-
-#. TRANSLATORS: only two ways this can fail...
-#: ../src/pk-main.c:93
-msgid "This can happen for two reasons:"
-msgstr "ଏହା ଦୁଇଟି କାରଣରୁ ଘଟିଥାଏ:"
-
-#. TRANSLATORS: only allowed to be owned by root
-#: ../src/pk-main.c:95
-msgid "The correct user is not launching the executable (usually root)"
-msgstr "ସଠିକ ଚାଳକ ନିଷ୍ପାଦ୍ୟକୁ ଆରମ୍ଭ କରୁନାହିଁ (ସାଧାରଣତଃ ମୂଖ୍ୟ ଚାଳକ)"
-
-#. TRANSLATORS: or we are installed in a prefix
-#: ../src/pk-main.c:97
-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:223
+#: ../src/pk-main.c:149
 msgid "Packaging backend to use, e.g. dummy"
 msgstr "ବ୍ୟବହାର କରିବା ପାଇଁ ପୃଷ୍ଠଭୂମିକୁ ପ୍ୟାକେଜ କରୁଅଛି, ଯେପରିକି ନକଲି"
 
 #. TRANSLATORS: if we should run in the background
-#: ../src/pk-main.c:226
+#: ../src/pk-main.c:152
 msgid "Daemonize and detach from the terminal"
 msgstr "ଟର୍ମିନାଲରୁ ପରିସରମୟ ଏବଂ ପୃଥକ କରନ୍ତୁ"
 
 #. TRANSLATORS: if we should not monitor how long we are inactive for
-#: ../src/pk-main.c:229
+#: ../src/pk-main.c:155
 msgid "Disable the idle timer"
 msgstr "ଅଚଳ ସମୟ ମାପକକୁ ନିଷ୍କ୍ରିୟ କରନ୍ତୁ"
 
 #. TRANSLATORS: show version
-#: ../src/pk-main.c:232
+#: ../src/pk-main.c:158
 msgid "Show version and exit"
 msgstr "ସଂସ୍କରଣ ଦର୍ଶାନ୍ତୁ ଏବଂ ପ୍ରସ୍ଥାନ କରନ୍ତୁ"
 
 #. TRANSLATORS: exit after we've started up, used for user profiling
-#: ../src/pk-main.c:235
+#: ../src/pk-main.c:161
 msgid "Exit after a small delay"
 msgstr "ଗୋଟିଏ ଛୋଟ ବିଳମ୍ବ ପରେ ପ୍ରସ୍ଥାନ କରନ୍ତୁ"
 
 #. TRANSLATORS: exit straight away, used for automatic profiling
-#: ../src/pk-main.c:238
+#: ../src/pk-main.c:164
 msgid "Exit after the engine has loaded"
 msgstr "ଯନ୍ତ୍ରଟି ଧାରଣ ହୋଇସାରିବା ପରେ ପ୍ରସ୍ଥାନ କରନ୍ତୁ"
 
+#. TRANSLATORS: don't unset environment variables, used for debugging
+#: ../src/pk-main.c:167
+msgid "Don't clear environment on startup"
+msgstr ""
+
 #. TRANSLATORS: describing the service that is running
-#: ../src/pk-main.c:253
+#: ../src/pk-main.c:179
 msgid "PackageKit service"
 msgstr "PackageKit ସର୍ଭିସ"
 
-#. TRANSLATORS: fatal error, dbus is not running
-#: ../src/pk-main.c:298
-msgid "Cannot connect to the system bus"
-msgstr "ତନ୍ତ୍ର ବସ ସହିତ ସଂଯୋଗ କରିପାରିବେ ନାହିଁ"
-
-#: ../src/pk-main.c:344
+#: ../src/pk-main.c:253
 msgid "Failed to load any of the specified backends:"
 msgstr ""
 
-#. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error
-#. follows
-#: ../src/pk-main.c:358
-msgid "Error trying to start:"
-msgstr "ଆରମ୍ଭ କରିବାକୁ ଚେଷ୍ଟା କରିବାରେ ତ୍ରୁଟି:"
-
 #. TRANSLATORS: is not GPG signed
-#: ../src/pk-transaction.c:2611 ../src/pk-transaction.c:2618
+#: ../src/pk-transaction.c:2696
 msgid "The software is not from a trusted source."
 msgstr "ଏହି ସଫ୍ଟୱେରଟି ବିଶ୍ୱସ୍ତ ଉତ୍ସରୁ ଆସିନାହିଁ।"
 
-#: ../src/pk-transaction.c:2623
+#: ../src/pk-transaction.c:2704
 msgid "Do not update this package unless you are sure it is safe to do so."
 msgstr ""
 "ଏହାକୁ କରିବା ସୁରକ୍ଷିତ କି ନାହିଁ, ତାହା ଯେ ପର୍ଯ୍ୟନ୍ତ ଆପଣ ନିଶ୍ଚିତ ହୋଇନାହାନ୍ତି, "
 "ସେପର୍ଯ୍ୟନ୍ତ ଏହି ପ୍ୟାକେଜକୁ ଅଦ୍ୟତନ କରନ୍ତୁ ନାହିଁ।"
 
-#: ../src/pk-transaction.c:2624
+#: ../src/pk-transaction.c:2705
 msgid "Do not update these packages unless you are sure it is safe to do so."
 msgstr ""
 "ଏହାକୁ କରିବା ସୁରକ୍ଷିତ କି ନାହିଁ, ତାହା ଯେ ପର୍ଯ୍ୟନ୍ତ ଆପଣ ନିଶ୍ଚିତ ହୋଇନାହାନ୍ତି, "
 "ସେପର୍ଯ୍ୟନ୍ତ ଏହି ପ୍ୟାକେଜକୁ ଅଦ୍ୟତନ କରନ୍ତୁ ନାହିଁ।"
 
-#: ../src/pk-transaction.c:2634
+#: ../src/pk-transaction.c:2715
 msgid "Do not install this package unless you are sure it is safe to do so."
 msgstr ""
 "ଏହାକୁ କରିବା ସୁରକ୍ଷିତ କି ନାହିଁ, ତାହା ଯେ ପର୍ଯ୍ୟନ୍ତ ଆପଣ ନିଶ୍ଚିତ ହୋଇନାହାନ୍ତି, "
 "ସେପର୍ଯ୍ୟନ୍ତ ଏହି ପ୍ୟାକେଜକୁ ଅଦ୍ୟତନ କରନ୍ତୁ ନାହିଁ।"
 
-#: ../src/pk-transaction.c:2635
+#: ../src/pk-transaction.c:2716
 msgid "Do not install these packages unless you are sure it is safe to do so."
 msgstr ""
 "ଏହାକୁ କରିବା ସୁରକ୍ଷିତ କି ନାହିଁ, ତାହା ଯେ ପର୍ଯ୍ୟନ୍ତ ଆପଣ ନିଶ୍ଚିତ ହୋଇନାହାନ୍ତି, "
diff --git a/po/pa.po b/po/pa.po
index f496174..21d5cec 100644
--- a/po/pa.po
+++ b/po/pa.po
@@ -2,18 +2,19 @@
 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
 # This file is distributed under the same license as the PACKAGE package.
 # 
-# A S Alam <aalam at users.sf.net>, 2009.
+# Translators:
 # Amanpreet Singh Alam <aalam at users.sf.net>, 2008, 2009.
-# Jaswinder Singh <jsingh at redhat.com>, 2009.
+# A S Alam <aalam at users.sf.net>, 2009.
 # A S Alam <apreet.alam at gmail.com>, 2011.
+# Jaswinder Singh <jsingh at redhat.com>, 2009.
 # Richard Hughes <richard at hughsie.com>, 2011.
 msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-08-01 10:58+0100\n"
-"PO-Revision-Date: 2011-08-18 01:32+0000\n"
-"Last-Translator: aalam <apreet.alam at gmail.com>\n"
+"POT-Creation-Date: 2011-11-10 19:50+0000\n"
+"PO-Revision-Date: 2011-12-24 03:10+0000\n"
+"Last-Translator: A S Alam <apreet.alam at gmail.com>\n"
 "Language-Team: Panjabi (Punjabi) (http://www.transifex.net/projects/p/freedesktop/team/pa/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -199,7 +200,7 @@ msgstr "ਜਾਰੀ ਕੀਤਾ"
 
 #. TRANSLATORS: details about the update, date the update was updated
 #. TRANSLATORS: The action of the package, in past tense
-#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:524
+#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:559
 msgid "Updated"
 msgstr "ਅੱਪਡੇਟ ਕੀਤੇ"
 
@@ -289,7 +290,7 @@ msgstr "ਅੱਪਡੇਟ ਕਰਨ ਲਈ ਕੋਈ ਪੈਕੇਜ ਨਹੀ
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
 #: ../client/pk-console.c:704
-#: ../contrib/command-not-found/pk-command-not-found.c:639
+#: ../contrib/command-not-found/pk-command-not-found.c:634
 msgid "The transaction failed"
 msgstr "ਟਰਾਂਸੈਕਸ਼ਨ ਫੇਲ੍ਹ ਹੋਈ"
 
@@ -342,21 +343,21 @@ msgstr ""
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:866
+#: ../client/pk-console.c:871
 #, c-format
 msgid "This tool could not find any available package: %s"
 msgstr "ਇਹ ਟੂਲ ਉਪਲੱਬਧ ਪੈਕੇਜ ਨਹੀਂ ਲੱਭ ਸਕਿਆ: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:894
+#: ../client/pk-console.c:899
 #, c-format
 msgid "This tool could not find the installed package: %s"
 msgstr "ਇਹ ਟੂਲ ਇੰਸਟਾਲ ਕੀਤੇ ਪੈਕੇਜ ਨਹੀਂ ਲੱਭ ਸਕਿਆ: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:922 ../client/pk-console.c:950
+#: ../client/pk-console.c:927 ../client/pk-console.c:955
 #, c-format
 msgid "This tool could not find the package: %s"
 msgstr "ਇਹ ਟੂਲ ਪੈਕੇਜ ਨਹੀਂ ਲੱਭ ਸਕਿਆ: %s"
@@ -369,69 +370,69 @@ msgstr "ਇਹ ਟੂਲ ਪੈਕੇਜ ਨਹੀਂ ਲੱਭ ਸਕਿਆ: %s
 #. detailed error follows
 #. TRANSLATORS: The package name was not found in any software sources. The
 #. detailed error follows
-#: ../client/pk-console.c:978 ../client/pk-console.c:1006
-#: ../client/pk-console.c:1034 ../client/pk-console.c:1062
-#: ../client/pk-console.c:1090
+#: ../client/pk-console.c:983 ../client/pk-console.c:1011
+#: ../client/pk-console.c:1039 ../client/pk-console.c:1067
+#: ../client/pk-console.c:1095
 #, c-format
 msgid "This tool could not find all the packages: %s"
 msgstr "ਇਹ ਟੂਲ ਸਭ ਪੈਕੇਜ ਨਹੀਂ ਲੱਭ ਸਕਿਆ: %s"
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek
 #. without a paddle
-#: ../client/pk-console.c:1119
+#: ../client/pk-console.c:1124
 msgid "The daemon crashed mid-transaction!"
 msgstr "ਡੈਮਨ ਅਧੂਰੀ ਟਰਾਂਸੈਕਸ਼ਨ ਕਰੈਸ਼ ਹੋ ਗਈ!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1153
+#: ../client/pk-console.c:1158
 msgid "PackageKit Console Interface"
 msgstr "ਪੈਕੇਜਕਿੱਟ ਕਨਸੋਲ ਇੰਟਰਫੇਸ"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1155
+#: ../client/pk-console.c:1160
 msgid "Subcommands:"
 msgstr "ਸਬ-ਕਮਾਂਡ:"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was
 #. last executed
-#: ../client/pk-console.c:1235
+#: ../client/pk-console.c:1240
 msgid "Failed to get the time since this action was last completed"
 msgstr "ਇਸ ਕਾਰਵਾਈ ਦੇ ਆਖਰੀ ਵਾਰ ਪੂਰੀ ਹੋਣ ਤੋਂ ਬਾਅਦ ਸਮਾਂ ਲੈਣ ਲਈ ਫੇਲ੍ਹ ਹੈ"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1277 ../client/pk-monitor.c:371
+#: ../client/pk-console.c:1282 ../client/pk-monitor.c:371
 msgid "Show the program version and exit"
 msgstr "ਪਰੋਗਰਾਮ ਵਰਜਨ ਵੇਖੋ ਅਤੇ ਬੰਦ ਕਰੋ"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1280
+#: ../client/pk-console.c:1285
 msgid "Set the filter, e.g. installed"
 msgstr "ਫਿਲਟਰ ਸੈੱਟ ਕਰੋ, ਜਿਵੇਂ ਕਿ ਇੰਸਟਾਲ"
 
 #. TRANSLATORS: command line argument, use a non-standard install prefix
-#: ../client/pk-console.c:1283
+#: ../client/pk-console.c:1288
 msgid "Set the install root, e.g. '/' or '/mnt/ltsp'"
 msgstr "ਇੰਸਟਾਲ ਰੂਟ ਸੈੱਟ ਕਰੋ, ਜਿਵੇਂ  '/' ਜਾਂ '/mnt/ltsp'"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1286
+#: ../client/pk-console.c:1291
 msgid "Exit without waiting for actions to complete"
 msgstr "ਪੂਰੇ ਹੋਣ ਵਾਲੇ ਐਕਸ਼ਨ ਦੀ ਉਡੀਕ ਕੀਤੇ ਬਿਨਾਂ ਬੰਦ ਕਰੋ"
 
 #. command line argument, do we ask questions
-#: ../client/pk-console.c:1289
+#: ../client/pk-console.c:1294
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:525
 msgid "Install the packages without asking for confirmation"
 msgstr "ਪੁਸ਼ਟੀ ਕੀਤੇ ਬਿਨਾਂ ਹੀ ਪੈਕੇਜ ਇੰਸਟਾਲ ਕਰੋ"
 
 #. TRANSLATORS: command line argument, this command is not a priority
-#: ../client/pk-console.c:1292
+#: ../client/pk-console.c:1297
 msgid "Run the command using idle network bandwidth and also using less power"
 msgstr ""
 "ਕਮਾਂਡ ਨੂੰ ਵੇਹਲੀ ਨੈੱਟਵਰਕ ਬੈਂਡਵਿਥ ਦੌਰਾਨ ਚਲਾਓ ਅਤੇ ਘੱਟ ਊਰਜਾ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਵੀ"
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1295
+#: ../client/pk-console.c:1300
 msgid ""
 "Print to screen a machine readable output, rather than using animated "
 "widgets"
@@ -439,155 +440,155 @@ msgstr ""
 "ਐਨੀਮੇਟਡ ਵਿਡਜੈੱਟ ਵਰਤਣ ਦੀ ਬਜਾਏ, ਮਸ਼ੀਨ ਦੇ ਪੜ੍ਹਨ ਯੋਗ ਜਾਣਕਾਰੀ ਸਕਰੀਨ ਤੇ ਪਰਿੰਟ ਕਰੋ"
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1298
+#: ../client/pk-console.c:1303
 msgid "The maximum metadata cache age. Use -1 for 'never'."
 msgstr "ਮੇਟਾਡਾਟਾ ਦੀ ਵੱਧ ਤੋਂ ਵੱਧ ਉਮਰ ਹੈ। 'ਕਦੇ ਨਹੀਂ never' ਲਈ -1 ਵਰਤੋਂ।"
 
 #. TRANSLATORS: command line argument, --help
-#: ../client/pk-console.c:1301
+#: ../client/pk-console.c:1306
 msgid "Show help options."
 msgstr "ਮੱਦਦ ਚੋਣਾਂ ਵੇਖਾਉ।"
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1331
+#: ../client/pk-console.c:1336
 msgid "Failed to parse command line"
 msgstr "ਕਮਾਂਡ ਲਾਈਨ ਪਾਰਸ ਕਰਨ ਲਈ ਫੇਲ੍ਹ ਹੈ"
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1341
+#: ../client/pk-console.c:1346
 msgid "Failed to contact PackageKit"
 msgstr "ਪੈਕੇਜਕਿੱਟ ਨਾਲ ਸੰਪਰਕ ਲਈ ਫੇਲ੍ਹ ਹੈ"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1394
+#: ../client/pk-console.c:1399
 msgid "The proxy could not be set"
 msgstr "ਪਰਾਕਸੀ ਸੈੱਟ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1406
+#: ../client/pk-console.c:1411
 msgid "The install root could not be set"
 msgstr "ਇੰਸਟਾਲ ਰੂਟ ਸੈੱਟ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1418
+#: ../client/pk-console.c:1423
 msgid "The filter specified was invalid"
 msgstr "ਦਿੱਤਾ ਫਿਲਟਰ ਅਢੁੱਕਵਾਂ ਹੈ।"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1437
+#: ../client/pk-console.c:1442
 msgid "A search type is required, e.g. name"
 msgstr "ਖੋਜ ਕਿਸਮ ਚਾਹੀਦੀ ਹੈ, ਜਿਵੇਂ ਨਾਂ"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1444 ../client/pk-console.c:1456
-#: ../client/pk-console.c:1468 ../client/pk-console.c:1480
+#: ../client/pk-console.c:1449 ../client/pk-console.c:1461
+#: ../client/pk-console.c:1473 ../client/pk-console.c:1485
 msgid "A search term is required"
 msgstr "ਖੋਜ ਸ਼ਬਦ ਦੀ ਲੋੜ ਹੈ"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1490
+#: ../client/pk-console.c:1495
 msgid "Invalid search type"
 msgstr "ਗਲਤ ਖੋਜ ਟਾਈਪ"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1496
+#: ../client/pk-console.c:1501
 msgid "A package name to install is required"
 msgstr "ਇੰਸਟਾਲ ਕਰਨ ਲਈ ਪੈਕੇਜ ਨਾਂ ਲਾਜ਼ਮੀ ਹੈ"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1505
+#: ../client/pk-console.c:1510
 msgid "A filename to install is required"
 msgstr "ਇੰਸਟਾਲ ਕਰਨ ਲਈ ਇੱਕ ਫਾਇਲ ਨਾਂ ਦੀ ਲੋੜ ਹੈ"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1516
+#: ../client/pk-console.c:1521
 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:1527
+#: ../client/pk-console.c:1532
 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:1536
+#: ../client/pk-console.c:1541
 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:1543
+#: ../client/pk-console.c:1548
 msgid "Directory not found"
 msgstr "ਡਾਇਰੈਕਟਰੀ ਨਹੀਂ ਲੱਭੀ"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1552
+#: ../client/pk-console.c:1557
 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:1563
+#: ../client/pk-console.c:1568
 msgid "A transaction identifier (tid) is required"
 msgstr "ਟਰਾਂਸੈਕਸ਼ਨ ਪਛਾਣ (tid) ਲੋੜੀਦਾ ਹੈ"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:1584
+#: ../client/pk-console.c:1589
 msgid "A package name to resolve is required"
 msgstr "ਹੱਲ ਕਰਨ ਲਈ ਪੈਕੇਜ ਨਾਂ ਲਾਜ਼ਮੀ ਹੈ"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:1595 ../client/pk-console.c:1606
+#: ../client/pk-console.c:1600 ../client/pk-console.c:1611
 msgid "A repository name is required"
 msgstr "ਰਿਪੋਜ਼ਟਰੀ ਨਾਂ ਲੋੜੀਦਾ ਹੈ"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:1617
+#: ../client/pk-console.c:1622
 msgid "A repo name, parameter and value are required"
 msgstr "ਰੈਪੋ ਨਾਂ, ਪੈਰਾਮੀਟਰ ਅਤੇ ਮੁੱਲ ਲੋੜੀਦਾ ਹੈ"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:1634
+#: ../client/pk-console.c:1639
 msgid "An action, e.g. 'update-system' is required"
 msgstr "ਕਾਰਵਾਈ, ਜਿਵੇਂ 'ਅੱਪਡੇਟ-ਸਿਸਟਮ' ਲੋੜੀਦਾ ਹੈ"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:1641
+#: ../client/pk-console.c:1646
 msgid "A correct role is required"
 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:1651 ../client/pk-console.c:1665
-#: ../client/pk-console.c:1674 ../client/pk-console.c:1694
-#: ../client/pk-console.c:1703 ../client/pk-generate-pack.c:314
+#: ../client/pk-console.c:1656 ../client/pk-console.c:1670
+#: ../client/pk-console.c:1679 ../client/pk-console.c:1699
+#: ../client/pk-console.c:1708 ../client/pk-generate-pack.c:314
 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:1683
+#: ../client/pk-console.c:1688
 msgid "A package provide string is required"
 msgstr "ਪੈਕੇਜ ਦੇਣ ਵਾਲੀ ਸਤਰ ਲੋੜੀਦੀ ਹੈ"
 
 #. TRANSLATORS: The user did not provide a distro name
-#: ../client/pk-console.c:1727
+#: ../client/pk-console.c:1732
 msgid "A distribution name is required"
 msgstr "ਡਿਸਟਰੀਬਿਊਸ਼ਨ ਨਾਂ ਚਾਹੀਦਾ ਹੈ"
 
 #. TRANSLATORS: The user did not provide an upgrade type
-#: ../client/pk-console.c:1733
+#: ../client/pk-console.c:1738
 msgid "An upgrade type is required, e.g. 'minimal', 'default' or 'complete'"
 msgstr "ਅੱਪਗਰੇਡ ਕਿਸਮ ਚਾਹੀਦੀ ਹੈ, ਜਿਵੇਂ 'ਘੱਟੋ-ਘੱਟ', 'ਡਿਫਾਲਟ', ਜਾਂ 'ਪੂਰਾ'"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command
 #. line
-#: ../client/pk-console.c:1783
+#: ../client/pk-console.c:1788
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "ਚੋਣ '%s' ਸਹਾਇਕ ਨਹੀਂ ਹੈ"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:1793
+#: ../client/pk-console.c:1798
 msgid "Command failed"
 msgstr "ਕਮਾਂਡ ਫੇਲ੍ਹ ਹੈ"
 
@@ -725,155 +726,155 @@ msgid "PackageKit Monitor"
 msgstr "ਪੈਕੇਜਕਿੱਟ ਮਾਨੀਟਰ"
 
 #. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/pk-plugin-install.c:499
+#: ../contrib/browser-plugin/pk-plugin-install.c:503
 msgid "Getting package information..."
 msgstr "ਪੈਕੇਜ ਜਾਣਕਾਰੀ ਲਈ ਜਾ ਰਹੀ ਹੈ..."
 
 #. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/pk-plugin-install.c:505
+#: ../contrib/browser-plugin/pk-plugin-install.c:509
 #, c-format
 msgid "Run %s"
 msgstr "%s ਚਲਾਓ"
 
 #. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:511
+#: ../contrib/browser-plugin/pk-plugin-install.c:515
 msgid "Installed version"
 msgstr "ਇੰਸਟਾਲ ਕੀਤੇ ਵਰਜਨ"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:519
+#: ../contrib/browser-plugin/pk-plugin-install.c:523
 #, c-format
 msgid "Run version %s now"
 msgstr "ਵਰਜਨ %s ਹੁਣੇ ਚਲਾਓ"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:525
+#: ../contrib/browser-plugin/pk-plugin-install.c:529
 msgid "Run now"
 msgstr "ਹੁਣੇ ਚਲਾਓ"
 
 #. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:531
+#: ../contrib/browser-plugin/pk-plugin-install.c:535
 #, c-format
 msgid "Update to version %s"
 msgstr "ਵਰਜਨ %s ਲਈ ਅੱਪਡੇਟ ਕਰੋ"
 
 #. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:537
+#: ../contrib/browser-plugin/pk-plugin-install.c:541
 #, c-format
 msgid "Install %s now"
 msgstr "%s ਹੁਣੇ ਇੰਸਟਾਲ ਕਰੋ"
 
 #. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:540
+#: ../contrib/browser-plugin/pk-plugin-install.c:544
 msgid "Version"
 msgstr "ਵਰਜਨ"
 
 #. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/pk-plugin-install.c:545
+#: ../contrib/browser-plugin/pk-plugin-install.c:549
 msgid "No packages found for your system"
 msgstr "ਤੁਹਾਡੇ ਸਿਸਟਮ ਉੱਤੇ ਕੋਈ ਪੈਕੇਜ ਨਹੀਂ ਲੱਭਿਆ"
 
 #. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/pk-plugin-install.c:550
+#: ../contrib/browser-plugin/pk-plugin-install.c:554
 msgid "Installing..."
 msgstr "ਇੰਸਟਾਲ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ..."
 
 #. TRANSLATORS: downloading repo data so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:366
+#: ../contrib/command-not-found/pk-command-not-found.c:363
 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:370
+#: ../contrib/command-not-found/pk-command-not-found.c:367
 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:374
+#: ../contrib/command-not-found/pk-command-not-found.c:371
 msgid "Waiting for package manager lock."
 msgstr "ਪੈਕੇਜ ਮੈਨੇਜਰ ਲਾਕ ਉਡੀਕਿਆ ਜਾ ਰਿਹਾ ਹੈ।"
 
 #. TRANSLATORS: loading package cache so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:378
+#: ../contrib/command-not-found/pk-command-not-found.c:375
 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:444
+#: ../contrib/command-not-found/pk-command-not-found.c:439
 msgid "Failed to search for file"
 msgstr "ਫਾਇਲ ਲਈ ਖੋਜ ਫੇਲ੍ਹ ਹੈ"
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
-#: ../contrib/command-not-found/pk-command-not-found.c:456
+#: ../contrib/command-not-found/pk-command-not-found.c:451
 msgid "Getting the list of files failed"
 msgstr "ਫਾਇਲਾਂ ਦੀ ਲਿਸਟ ਲੈਣ ਲਈ ਫੇਲ੍ਹ ਹੈ"
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:602
+#: ../contrib/command-not-found/pk-command-not-found.c:597
 msgid "Failed to launch:"
 msgstr "ਚਲਾਉਣ ਲਈ ਫੇਲ੍ਹ:"
 
 #. TRANSLATORS: we failed to install the package
-#: ../contrib/command-not-found/pk-command-not-found.c:630
+#: ../contrib/command-not-found/pk-command-not-found.c:625
 msgid "Failed to install packages"
 msgstr "ਪੈਕੇਜ ਇੰਸਟਾਲ ਕਰਨ ਲਈ ਫੇਲ੍ਹ"
 
 #. TRANSLATORS: the prefix of all the output telling the user
 #. * why it's not executing. NOTE: this is lowercase to mimic
 #. * the style of bash itself -- apologies
-#: ../contrib/command-not-found/pk-command-not-found.c:729
+#: ../contrib/command-not-found/pk-command-not-found.c:723
 msgid "command not found"
 msgstr "ਕਮਾਂਡ ਨਹੀਂ ਲੱਭੀ"
 
 #. TRANSLATORS: tell the user what we think the command is
-#: ../contrib/command-not-found/pk-command-not-found.c:747
+#: ../contrib/command-not-found/pk-command-not-found.c:741
 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:761
+#: ../contrib/command-not-found/pk-command-not-found.c:755
 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:775
-#: ../contrib/command-not-found/pk-command-not-found.c:784
+#: ../contrib/command-not-found/pk-command-not-found.c:769
+#: ../contrib/command-not-found/pk-command-not-found.c:778
 msgid "Similar commands are:"
 msgstr "ਰਲਦੀਆਂ ਕਮਾਂਡਾਂ ਹਨ:"
 
 #. TRANSLATORS: ask the user to choose a file to run
-#: ../contrib/command-not-found/pk-command-not-found.c:791
+#: ../contrib/command-not-found/pk-command-not-found.c:785
 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:809
+#: ../contrib/command-not-found/pk-command-not-found.c:803
 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:816
+#: ../contrib/command-not-found/pk-command-not-found.c:810
 #, 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:843
+#: ../contrib/command-not-found/pk-command-not-found.c:837
 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:853
+#: ../contrib/command-not-found/pk-command-not-found.c:847
 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:862
+#: ../contrib/command-not-found/pk-command-not-found.c:856
 msgid "Please choose a package to install"
 msgstr "ਇੰਸਟਾਲ ਕਰਨ ਲਈ ਪੈਕੇਜ ਚੁਣੋ ਜੀ"
 
@@ -1048,7 +1049,7 @@ msgstr "ਸਿਮੂਲੇਟ ਮੋਡ ਵਿੱਚ ਪੈਕੇਜ ਇੰਸ
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
 #. TRANSLATORS: transaction state, installing packages
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:860
-#: ../lib/packagekit-glib2/pk-console-shared.c:296
+#: ../lib/packagekit-glib2/pk-console-shared.c:331
 #, c-format
 msgid "Installing packages"
 msgstr "ਪੈਕੇਜ ਇੰਸਟਾਲ ਕੀਤੇ ਜਾ ਰਹੇ ਹਨ"
@@ -1182,474 +1183,474 @@ msgstr "ਪੈਕੇਜਕਿੱਟ ਪੈਕੇਜ ਲਿਸਟ"
 msgid "PackageKit Service Pack"
 msgstr "ਪੈਕੇਜਕਿੱਟ ਸਰਵਿਸ ਪੈਕ"
 
-#: ../lib/packagekit-glib2/pk-console-shared.c:64
+#: ../lib/packagekit-glib2/pk-console-shared.c:65
 #, c-format
 msgid "Please enter a number from 1 to %i: "
 msgstr "੧ ਤੋਂ %i ਤੱਕ ਨੰਬਰ ਦਿਓ ਜੀ:"
 
 #. TRANSLATORS: more than one package could be found that matched, to follow
 #. is a list of possible packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:198
+#: ../lib/packagekit-glib2/pk-console-shared.c:233
 msgid "More than one package matches:"
 msgstr "ਇੱਕ ਤੋਂ ਵੱਧ ਰਲਦੇ ਪੈਕੇਜ ਲੱਭੇ:"
 
 #. TRANSLATORS: This finds out which package in the list to use
-#: ../lib/packagekit-glib2/pk-console-shared.c:209
+#: ../lib/packagekit-glib2/pk-console-shared.c:244
 msgid "Please choose the correct package: "
 msgstr "ਠੀਕ ਪੈਕੇਜ ਚੁਣੋ ਜੀ:"
 
 #. TRANSLATORS: This is when the transaction status is not known
-#: ../lib/packagekit-glib2/pk-console-shared.c:264
+#: ../lib/packagekit-glib2/pk-console-shared.c:299
 msgid "Unknown state"
 msgstr "ਅਣਜਾਣ ਹਾਲਤ"
 
 #. TRANSLATORS: transaction state, the daemon is in the process of starting
-#: ../lib/packagekit-glib2/pk-console-shared.c:268
+#: ../lib/packagekit-glib2/pk-console-shared.c:303
 msgid "Starting"
 msgstr "ਸ਼ੁਰੂ ਹੋ ਰਿਹਾ ਹੈ"
 
 #. TRANSLATORS: transaction state, the transaction is waiting for another to
 #. complete
-#: ../lib/packagekit-glib2/pk-console-shared.c:272
+#: ../lib/packagekit-glib2/pk-console-shared.c:307
 msgid "Waiting in queue"
 msgstr "ਕਤਾਰ ਵਿੱਚ ਉਡੀਕ ਜਾਰੀ"
 
 #. TRANSLATORS: transaction state, just started
-#: ../lib/packagekit-glib2/pk-console-shared.c:276
+#: ../lib/packagekit-glib2/pk-console-shared.c:311
 msgid "Running"
 msgstr "ਚੱਲ ਰਿਹਾ ਹੈ"
 
 #. TRANSLATORS: transaction state, is querying data
-#: ../lib/packagekit-glib2/pk-console-shared.c:280
+#: ../lib/packagekit-glib2/pk-console-shared.c:315
 msgid "Querying"
 msgstr "ਕਿਊਰੀ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ"
 
 #. TRANSLATORS: transaction state, getting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:284
+#: ../lib/packagekit-glib2/pk-console-shared.c:319
 msgid "Getting information"
 msgstr "ਜਾਣਕਾਰੀ ਲਈ ਜਾ ਰਹੀ ਹੈ"
 
 #. TRANSLATORS: transaction state, removing packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:288
+#: ../lib/packagekit-glib2/pk-console-shared.c:323
 msgid "Removing packages"
 msgstr "ਪੈਕੇਜ ਹਟਾਏ ਜਾ ਰਹੇ ਹਨ"
 
 #. TRANSLATORS: transaction state, downloading package files
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:292
-#: ../lib/packagekit-glib2/pk-console-shared.c:670
+#: ../lib/packagekit-glib2/pk-console-shared.c:327
+#: ../lib/packagekit-glib2/pk-console-shared.c:705
 msgid "Downloading packages"
 msgstr "ਪੈਕੇਜ ਡਾਊਨਲੋਡ ਕੀਤੇ ਜਾ ਰਹੇ ਹਨ"
 
 #. TRANSLATORS: transaction state, refreshing internal lists
-#: ../lib/packagekit-glib2/pk-console-shared.c:300
+#: ../lib/packagekit-glib2/pk-console-shared.c:335
 msgid "Refreshing software list"
 msgstr "ਸਾਫਟਵੇਅਰ ਲਿਸਟ ਤਾਜ਼ਾ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ"
 
 #. TRANSLATORS: transaction state, installing updates
-#: ../lib/packagekit-glib2/pk-console-shared.c:304
+#: ../lib/packagekit-glib2/pk-console-shared.c:339
 msgid "Installing updates"
 msgstr "ਅੱਪਡੇਟ ਇੰਸਟਾਲ ਕੀਤੇ ਜਾ ਰਹੇ ਹਨ"
 
 #. TRANSLATORS: transaction state, removing old packages, and cleaning config
 #. files
-#: ../lib/packagekit-glib2/pk-console-shared.c:308
+#: ../lib/packagekit-glib2/pk-console-shared.c:343
 msgid "Cleaning up packages"
 msgstr "ਪੈਕੇਜ ਸਾਫ਼ ਕੀਤੇ ਜਾ ਰਹੇ ਹਨ"
 
 #. TRANSLATORS: transaction state, obsoleting old packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:312
+#: ../lib/packagekit-glib2/pk-console-shared.c:347
 msgid "Obsoleting packages"
 msgstr "ਪੈਕੇਜ ਬਰਤਰਫ਼ ਕੀਤੇ ਜਾ ਰਹੇ ਹਨ"
 
 #. TRANSLATORS: transaction state, checking the transaction before we do it
-#: ../lib/packagekit-glib2/pk-console-shared.c:316
+#: ../lib/packagekit-glib2/pk-console-shared.c:351
 msgid "Resolving dependencies"
 msgstr "ਨਿਰਭਰਤਾ ਹੱਲ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ"
 
 #. TRANSLATORS: transaction state, checking if we have all the security keys
 #. for the operation
-#: ../lib/packagekit-glib2/pk-console-shared.c:320
+#: ../lib/packagekit-glib2/pk-console-shared.c:355
 msgid "Checking signatures"
 msgstr "ਦਸਤਖਤ ਚੈੱਕ ਕੀਤੇ ਜਾ ਰਹੇ ਹਨ"
 
 #. TRANSLATORS: transaction state, when we return to a previous system state
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:324
-#: ../lib/packagekit-glib2/pk-console-shared.c:630
+#: ../lib/packagekit-glib2/pk-console-shared.c:359
+#: ../lib/packagekit-glib2/pk-console-shared.c:665
 msgid "Rolling back"
 msgstr "ਰੋਲ ਬੈਕ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ"
 
 #. TRANSLATORS: transaction state, when we're doing a test transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:328
+#: ../lib/packagekit-glib2/pk-console-shared.c:363
 msgid "Testing changes"
 msgstr "ਬਦਲਾਅ ਦੀ ਜਾਂਚ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ"
 
 #. TRANSLATORS: transaction state, when we're writing to the system package
 #. database
-#: ../lib/packagekit-glib2/pk-console-shared.c:332
+#: ../lib/packagekit-glib2/pk-console-shared.c:367
 msgid "Committing changes"
 msgstr "ਬਦਲਾਅ ਕਮਿਟ ਕੀਤੇ ਜਾ ਰਹੇ ਹਨ"
 
 #. TRANSLATORS: transaction state, requesting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:336
+#: ../lib/packagekit-glib2/pk-console-shared.c:371
 msgid "Requesting data"
 msgstr "ਡਾਟਾ ਮੰਗਿਆ ਜਾ ਰਿਹਾ ਹੈ"
 
 #. TRANSLATORS: transaction state, all done!
-#: ../lib/packagekit-glib2/pk-console-shared.c:340
+#: ../lib/packagekit-glib2/pk-console-shared.c:375
 msgid "Finished"
 msgstr "ਮੁਕੰਮਲ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ"
 
 #. TRANSLATORS: transaction state, in the process of cancelling
-#: ../lib/packagekit-glib2/pk-console-shared.c:344
+#: ../lib/packagekit-glib2/pk-console-shared.c:379
 msgid "Cancelling"
 msgstr "ਰੱਦ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:348
+#: ../lib/packagekit-glib2/pk-console-shared.c:383
 msgid "Downloading repository information"
 msgstr "ਰਿਪੋਜ਼ਟਰੀ ਜਾਣਕਾਰੀ ਡਾਊਨਲੋਡ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:352
+#: ../lib/packagekit-glib2/pk-console-shared.c:387
 msgid "Downloading list of packages"
 msgstr "ਪੈਕੇਜ ਲਿਸਟ ਡਾਊਨਲੋਡ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:356
+#: ../lib/packagekit-glib2/pk-console-shared.c:391
 msgid "Downloading file lists"
 msgstr "ਫਾਇਲ ਲਿਸਟਾਂ ਡਾਊਨਲੋਡ ਕੀਤੀਆਂ ਜਾ ਰਹੀਆਂ ਹਨ"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:360
+#: ../lib/packagekit-glib2/pk-console-shared.c:395
 msgid "Downloading lists of changes"
 msgstr "ਬਦਲਾਅ ਲਈ ਲਿਸਟ ਡਾਊਨਲੋਡ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:364
+#: ../lib/packagekit-glib2/pk-console-shared.c:399
 msgid "Downloading groups"
 msgstr "ਗਰੁੱਡ ਡਾਊਨਲੋਡ ਕੀਤੇ ਜਾ ਰਹੇ ਹਨ"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:368
+#: ../lib/packagekit-glib2/pk-console-shared.c:403
 msgid "Downloading update information"
 msgstr "ਅੱਪਡੇਟ ਜਾਣਕਾਰੀ ਡਾਊਨਲੋਡ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ"
 
 #. TRANSLATORS: transaction state, repackaging delta files
-#: ../lib/packagekit-glib2/pk-console-shared.c:372
+#: ../lib/packagekit-glib2/pk-console-shared.c:407
 msgid "Repackaging files"
 msgstr "ਫਾਇਲਾਂ ਮੁੜ-ਪੈਕ ਕੀਤੀਆਂ ਜਾ ਰਹੀਆਂ ਹਨ"
 
 #. TRANSLATORS: transaction state, loading databases
-#: ../lib/packagekit-glib2/pk-console-shared.c:376
+#: ../lib/packagekit-glib2/pk-console-shared.c:411
 msgid "Loading cache"
 msgstr "ਕੈਸ ਲੋਡ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ"
 
 #. TRANSLATORS: transaction state, scanning for running processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:380
+#: ../lib/packagekit-glib2/pk-console-shared.c:415
 msgid "Scanning applications"
 msgstr "ਐਪਲੀਕੇਸ਼ਨਾਂ ਸਕੈਨ ਕੀਤੀਆਂ ਜਾ ਰਹੀਆਂ ਹਨ"
 
 #. TRANSLATORS: transaction state, generating a list of packages installed on
 #. the system
-#: ../lib/packagekit-glib2/pk-console-shared.c:384
+#: ../lib/packagekit-glib2/pk-console-shared.c:419
 msgid "Generating package lists"
 msgstr "ਪੈਕੇਜ ਲਿਸਟ ਬਣਾਈ ਜਾ ਰਹੀ ਹੈ"
 
 #. TRANSLATORS: transaction state, when we're waiting for the native tools to
 #. exit
-#: ../lib/packagekit-glib2/pk-console-shared.c:388
+#: ../lib/packagekit-glib2/pk-console-shared.c:423
 msgid "Waiting for package manager lock"
 msgstr "ਪੈਕੇਜ ਮੈਨੇਜਰ ਲਾਕ ਦੀ ਉਡੀਕ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ"
 
 #. TRANSLATORS: transaction state, waiting for user to type in a password
-#: ../lib/packagekit-glib2/pk-console-shared.c:392
+#: ../lib/packagekit-glib2/pk-console-shared.c:427
 msgid "Waiting for authentication"
 msgstr "ਪ੍ਰਮਾਣਿਕਤਾ ਲਈ ਉਡੀਕ ਜਾਰੀ"
 
 #. TRANSLATORS: transaction state, we are updating the list of processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:396
+#: ../lib/packagekit-glib2/pk-console-shared.c:431
 msgid "Updating running applications"
 msgstr "ਚੱਲਦੀ ਐਪਲੀਕੇਸ਼ਨ ਅੱਪਡੇਟ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ"
 
 #. TRANSLATORS: transaction state, we are checking executable files currently
 #. in use
-#: ../lib/packagekit-glib2/pk-console-shared.c:400
+#: ../lib/packagekit-glib2/pk-console-shared.c:435
 msgid "Checking applications in use"
 msgstr "ਵਰਤੋਂ ਅਧੀਨ ਐਪਲੀਕੇਸ਼ਨਾਂ ਦੀ ਜਾਂਚ ਹੋ ਰਹੀ ਹੈ"
 
 #. TRANSLATORS: transaction state, we are checking for libraries currently in
 #. use
-#: ../lib/packagekit-glib2/pk-console-shared.c:404
+#: ../lib/packagekit-glib2/pk-console-shared.c:439
 msgid "Checking libraries in use"
 msgstr "ਵਰਤੋਂ ਅਧੀਨ ਲਾਇਬਰੇਰੀਆਂ ਦੀ ਜਾਂਚ ਹੋ ਰਹੀ ਹੈ"
 
 #. TRANSLATORS: transaction state, we are copying package files before or
 #. after the transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:408
+#: ../lib/packagekit-glib2/pk-console-shared.c:443
 msgid "Copying files"
 msgstr "ਫਾਇਲਾਂ ਕਾਪੀ ਕੀਤੀਆਂ ਜਾ ਰਹੀਆਂ ਹਨ"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:426
+#: ../lib/packagekit-glib2/pk-console-shared.c:461
 msgid "Trivial"
 msgstr "ਛੋਟਾ"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:430
+#: ../lib/packagekit-glib2/pk-console-shared.c:465
 msgid "Normal"
 msgstr "ਸਧਾਰਨ"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:434
+#: ../lib/packagekit-glib2/pk-console-shared.c:469
 msgid "Important"
 msgstr "ਜ਼ਰੂਰੀ"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:438
+#: ../lib/packagekit-glib2/pk-console-shared.c:473
 msgid "Security"
 msgstr "ਸੁਰੱਖਿਆ"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:442
+#: ../lib/packagekit-glib2/pk-console-shared.c:477
 msgid "Bug fix "
 msgstr "ਬੱਗ ਫਿਕਸ "
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:446
+#: ../lib/packagekit-glib2/pk-console-shared.c:481
 msgid "Enhancement"
 msgstr "ਸੋਧ"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:450
+#: ../lib/packagekit-glib2/pk-console-shared.c:485
 msgid "Blocked"
 msgstr "ਬਲਾਕ ਕੀਤੇ"
 
 #. TRANSLATORS: The state of a package
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:455
-#: ../lib/packagekit-glib2/pk-console-shared.c:528
+#: ../lib/packagekit-glib2/pk-console-shared.c:490
+#: ../lib/packagekit-glib2/pk-console-shared.c:563
 msgid "Installed"
 msgstr "ਇੰਸਟਾਲ ਕੀਤੇ"
 
 #. TRANSLATORS: The state of a package, i.e. not installed
-#: ../lib/packagekit-glib2/pk-console-shared.c:460
+#: ../lib/packagekit-glib2/pk-console-shared.c:495
 msgid "Available"
 msgstr "ਉਪਲੱਬਧ"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:478
+#: ../lib/packagekit-glib2/pk-console-shared.c:513
 msgid "Downloading"
 msgstr "ਡਾਊਨਲੋਡ ਜਾਰੀ"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:482
+#: ../lib/packagekit-glib2/pk-console-shared.c:517
 msgid "Updating"
 msgstr "ਅੱਪਡੇਟ ਜਾਰੀ"
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:486
-#: ../lib/packagekit-glib2/pk-console-shared.c:606
+#: ../lib/packagekit-glib2/pk-console-shared.c:521
+#: ../lib/packagekit-glib2/pk-console-shared.c:641
 msgid "Installing"
 msgstr "ਇੰਸਟਾਲ ਕਰਨਾ ਜਾਰੀ"
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:490
-#: ../lib/packagekit-glib2/pk-console-shared.c:602
+#: ../lib/packagekit-glib2/pk-console-shared.c:525
+#: ../lib/packagekit-glib2/pk-console-shared.c:637
 msgid "Removing"
 msgstr "ਹਟਾਇਆ ਜਾ ਰਿਹਾ ਹੈ"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:494
+#: ../lib/packagekit-glib2/pk-console-shared.c:529
 msgid "Cleaning up"
 msgstr "ਸਾਫ਼ ਕਰਨਾ ਜਾਰੀ"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:498
+#: ../lib/packagekit-glib2/pk-console-shared.c:533
 msgid "Obsoleting"
 msgstr "ਬਰਤਰ਼ਫ ਜਾਰੀ"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:502
+#: ../lib/packagekit-glib2/pk-console-shared.c:537
 msgid "Reinstalling"
 msgstr "ਮੁੜ-ਇੰਸਟਾਲ ਕਰਨਾ ਜਾਰੀ"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:520
+#: ../lib/packagekit-glib2/pk-console-shared.c:555
 msgid "Downloaded"
 msgstr "ਡਾਊਨਲੋਡ ਕੀਤੇ"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:532
+#: ../lib/packagekit-glib2/pk-console-shared.c:567
 msgid "Removed"
 msgstr "ਹਟਾਏ ਗਏ ਹਨ"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:536
+#: ../lib/packagekit-glib2/pk-console-shared.c:571
 msgid "Cleaned up"
 msgstr "ਸਾਫ਼ ਕੀਤੇ"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:540
+#: ../lib/packagekit-glib2/pk-console-shared.c:575
 msgid "Obsoleted"
 msgstr "ਬਰਤਰਫ਼ ਕੀਤੇ"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:544
+#: ../lib/packagekit-glib2/pk-console-shared.c:579
 msgid "Reinstalled"
 msgstr "ਮੁੜ-ਇੰਸਟਾਲ ਕੀਤੇ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:562
+#: ../lib/packagekit-glib2/pk-console-shared.c:597
 msgid "Unknown role type"
 msgstr "ਅਣਜਾਣ ਰੋਲ ਕਿਸਮ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:566
+#: ../lib/packagekit-glib2/pk-console-shared.c:601
 msgid "Getting dependencies"
 msgstr "ਨਿਰਭਰਤਾ ਲਈ ਜਾ ਰਹੀ ਹੈ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:570
+#: ../lib/packagekit-glib2/pk-console-shared.c:605
 msgid "Getting update details"
 msgstr "ਅੱਪਡੇਟ ਜਾਣਕਾਰੀ ਲਈ ਜਾ ਰਹੀ ਹੈ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:574
+#: ../lib/packagekit-glib2/pk-console-shared.c:609
 msgid "Getting details"
 msgstr "ਵੇਰਵਾ ਲਿਆ ਜਾ ਰਿਹਾ ਹੈ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:578
+#: ../lib/packagekit-glib2/pk-console-shared.c:613
 msgid "Getting requires"
 msgstr "ਲੋੜੀਦੇ ਪੈਕੇਜ ਲਏ ਜਾ ਰਹੇ ਹਨ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:582
+#: ../lib/packagekit-glib2/pk-console-shared.c:617
 msgid "Getting updates"
 msgstr "ਅੱਪਡੇਟ ਲਏ ਜਾ ਰਹੇ ਹਨ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:586
+#: ../lib/packagekit-glib2/pk-console-shared.c:621
 msgid "Searching by details"
 msgstr "ਵੇਰਵੇ ਮੁਤਾਬਕ ਖੋਜ ਜਾਰੀ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:590
+#: ../lib/packagekit-glib2/pk-console-shared.c:625
 msgid "Searching by file"
 msgstr "ਫਾਇਲ ਮੁਤਾਬਕ ਖੋਜ ਜਾਰੀ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:594
+#: ../lib/packagekit-glib2/pk-console-shared.c:629
 msgid "Searching groups"
 msgstr "ਗਰੁੱਪ ਮੁਤਾਬਕ ਖੋਜ ਜਾਰੀ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:598
+#: ../lib/packagekit-glib2/pk-console-shared.c:633
 msgid "Searching by name"
 msgstr "ਨਾਂ ਮੁਤਾਬਕ ਖੋਜ ਜਾਰੀ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:610
+#: ../lib/packagekit-glib2/pk-console-shared.c:645
 msgid "Installing files"
 msgstr "ਫਾਇਲਾਂ ਇੰਸਟਾਲ ਕੀਤੀਆਂ ਜਾ ਰਹੀਆਂ ਹਨ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:614
+#: ../lib/packagekit-glib2/pk-console-shared.c:649
 msgid "Refreshing cache"
 msgstr "ਕੈਸ਼ ਮੁੜ-ਤਾਜ਼ਾ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:618
+#: ../lib/packagekit-glib2/pk-console-shared.c:653
 msgid "Updating packages"
 msgstr "ਪੈਕੇਜ ਅੱਪਡੇਟ ਕੀਤੇ ਜਾ ਰਹੇ ਹਨ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:622
+#: ../lib/packagekit-glib2/pk-console-shared.c:657
 msgid "Updating system"
 msgstr "ਸਿਸਟਮ ਅੱਪਡੇਟ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:626
+#: ../lib/packagekit-glib2/pk-console-shared.c:661
 msgid "Canceling"
 msgstr "ਰੱਦ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:634
+#: ../lib/packagekit-glib2/pk-console-shared.c:669
 msgid "Getting repositories"
 msgstr "ਰਿਪੋਜ਼ਟਰੀ ਲਈ ਜਾ ਰਹੀ ਹੈ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:638
+#: ../lib/packagekit-glib2/pk-console-shared.c:673
 msgid "Enabling repository"
 msgstr "ਰਿਪੋਜ਼ਟਰੀ ਚਾਲੂ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:642
+#: ../lib/packagekit-glib2/pk-console-shared.c:677
 msgid "Setting data"
 msgstr "ਡਾਟਾ ਸੈੱਟ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:646
+#: ../lib/packagekit-glib2/pk-console-shared.c:681
 msgid "Resolving"
 msgstr "ਹੱਲ਼ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:650
+#: ../lib/packagekit-glib2/pk-console-shared.c:685
 msgid "Getting file list"
 msgstr "ਫਾਇਲ ਲਿਸਟ ਲਈ ਜਾ ਰਹੀ ਹੈ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:654
+#: ../lib/packagekit-glib2/pk-console-shared.c:689
 msgid "Getting provides"
 msgstr "ਦੇਣ ਵਾਲੇ ਪੈਕੇਜ ਲਏ ਜਾ ਰਹੇ ਹਨ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:658
+#: ../lib/packagekit-glib2/pk-console-shared.c:693
 msgid "Installing signature"
 msgstr "ਦਸਤਖਤ ਇੰਸਟਾਲ ਕੀਤੇ ਜਾ ਰਹੇ ਹਨ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:662
+#: ../lib/packagekit-glib2/pk-console-shared.c:697
 msgid "Getting packages"
 msgstr "ਪੈਕੇਜ ਲਏ ਜਾ ਰਹੇ ਹਨ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:666
+#: ../lib/packagekit-glib2/pk-console-shared.c:701
 msgid "Accepting EULA"
 msgstr "EULA ਮਨਜ਼ੂਰ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:674
+#: ../lib/packagekit-glib2/pk-console-shared.c:709
 msgid "Getting upgrades"
 msgstr "ਅੱਪਗਰੇਡ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:678
+#: ../lib/packagekit-glib2/pk-console-shared.c:713
 msgid "Getting categories"
 msgstr "ਕੈਟਾਗਰੀਆਂ ਲਈਆਂ ਜਾ ਰਹੀਆਂ ਹਨ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:682
+#: ../lib/packagekit-glib2/pk-console-shared.c:717
 msgid "Getting transactions"
 msgstr "ਟਰਾਂਸੈਕਸ਼ਨਾਂ ਲਈ ਜਾ ਰਹੀਆਂ ਹਨ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:686
-#: ../lib/packagekit-glib2/pk-console-shared.c:690
+#: ../lib/packagekit-glib2/pk-console-shared.c:721
+#: ../lib/packagekit-glib2/pk-console-shared.c:725
 msgid "Simulating install"
 msgstr "ਇੰਸਟਾਲ ਕਰਨ ਦੀ ਨਕਲ ਜਾਰੀ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:694
+#: ../lib/packagekit-glib2/pk-console-shared.c:729
 msgid "Simulating remove"
 msgstr "ਹਟਾਉਣ ਦੀ ਨਕਲ ਜਾਰੀ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:698
+#: ../lib/packagekit-glib2/pk-console-shared.c:733
 msgid "Simulating update"
 msgstr "ਅੱਪਡੇਟ ਦੀ ਨਕਲ ਜਾਰੀ"
 
@@ -2017,97 +2018,68 @@ msgstr "ਪੈਕੇਜ ਅੱਪਡੇਟ"
 msgid "Upgrade System"
 msgstr "ਸਿਸਟਮ ਅੱਪਗਰੇਡ ਕਰੋ"
 
-#. TRANSLATORS: failed due to DBus security
-#: ../src/pk-main.c:91
-msgid "Startup failed due to security policies on this machine."
-msgstr "ਇਸ ਮਸ਼ੀਨ ਉੱਤੇ ਸੁਰੱਖਿਆ ਪਾਲਸੀਆਂ ਕਰਕੇ ਸ਼ੁਰੂ ਕਰਨ ਲਈ ਫੇਲ੍ਹ"
-
-#. TRANSLATORS: only two ways this can fail...
-#: ../src/pk-main.c:93
-msgid "This can happen for two reasons:"
-msgstr "ਇਹ ਦੋ ਕਾਰਨਾਂ ਕਰਕੇ ਹੋ ਸਕਦਾ ਹੈ:"
-
-#. TRANSLATORS: only allowed to be owned by root
-#: ../src/pk-main.c:95
-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:97
-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:223
+#: ../src/pk-main.c:149
 msgid "Packaging backend to use, e.g. dummy"
 msgstr "ਵਰਤਣ ਲਈ ਪੈਕੇਜਿੰਗ ਬੈਕਐਂਡ, ਜਿਵੇਂ ਕਿ ਫ਼ਰਜ਼ੀ"
 
 #. TRANSLATORS: if we should run in the background
-#: ../src/pk-main.c:226
+#: ../src/pk-main.c:152
 msgid "Daemonize and detach from the terminal"
 msgstr "ਡੈਮੇਨਾਈਜ਼ ਅਤੇ ਟਰਮੀਨਲ ਤੋਂ ਵੱਖ"
 
 #. TRANSLATORS: if we should not monitor how long we are inactive for
-#: ../src/pk-main.c:229
+#: ../src/pk-main.c:155
 msgid "Disable the idle timer"
 msgstr "ਵੇਹਲਾ ਟਾਈਮਰ ਆਯੋਗ"
 
 #. TRANSLATORS: show version
-#: ../src/pk-main.c:232
+#: ../src/pk-main.c:158
 msgid "Show version and exit"
 msgstr "ਵਰਜਨ ਵੇਖਾ ਕੇ ਬੰਦ ਕਰੋ"
 
 #. TRANSLATORS: exit after we've started up, used for user profiling
-#: ../src/pk-main.c:235
+#: ../src/pk-main.c:161
 msgid "Exit after a small delay"
 msgstr "ਥੋੜ੍ਹੀ ਦੇਰ ਬਾਅਦ ਬੰਦ ਕਰੋ"
 
 #. TRANSLATORS: exit straight away, used for automatic profiling
-#: ../src/pk-main.c:238
+#: ../src/pk-main.c:164
 msgid "Exit after the engine has loaded"
 msgstr "ਇੰਜਣ ਲੋਡ ਕਰਨ ਦੇ ਬਾਅਦ ਬੰਦ ਕਰੋ"
 
+#. TRANSLATORS: don't unset environment variables, used for debugging
+#: ../src/pk-main.c:167
+msgid "Don't clear environment on startup"
+msgstr "ਸ਼ੁਰੂ ਸਮੇਂ ਇੰਵਾਇਰਨਮੈਂਟ ਸਾਫ਼ ਨਾ ਕਰੋ"
+
 #. TRANSLATORS: describing the service that is running
-#: ../src/pk-main.c:253
+#: ../src/pk-main.c:179
 msgid "PackageKit service"
 msgstr "ਪੈਕੇਜਕਿੱਟ ਸਰਵਿਸ"
 
-#. TRANSLATORS: fatal error, dbus is not running
-#: ../src/pk-main.c:298
-msgid "Cannot connect to the system bus"
-msgstr "ਸਿਸਟਮ ਬੱਸ ਨਾਲ ਕੁਨੈਕਟ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ"
-
-#: ../src/pk-main.c:344
+#: ../src/pk-main.c:253
 msgid "Failed to load any of the specified backends:"
 msgstr "ਕਿਸੇ ਵੀ ਦਿੱਤੇ ਬੈਕਐਂਡ ਨੂੰ ਲੋਡ ਕਰਨ ਲਈ ਫੇਲ੍ਹ ਹੈ:"
 
-#. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error
-#. follows
-#: ../src/pk-main.c:358
-msgid "Error trying to start:"
-msgstr "ਸ਼ੁਰੂ ਕਰਨ ਲਈ ਗਲਤੀ:"
-
 #. TRANSLATORS: is not GPG signed
-#: ../src/pk-transaction.c:2611 ../src/pk-transaction.c:2618
+#: ../src/pk-transaction.c:2696
 msgid "The software is not from a trusted source."
 msgstr "ਸਾਫਟਵੇਅਰ ਇੱਕ ਭਰੋਸੇਯੋਗ ਸਰੋਤ ਤੋਂ ਨਹੀਂ ਹੈ।"
 
-#: ../src/pk-transaction.c:2623
+#: ../src/pk-transaction.c:2704
 msgid "Do not update this package unless you are sure it is safe to do so."
 msgstr "ਇਸ ਪੈਕੇਜ ਨੂੰ ਅੱਪਡੇਟ ਨਾ ਕਰੋ, ਜਦੋਂ ਤੱਕ ਤੁਹਾਨੂੰ ਇਸ ਬਾਰੇ ਪਤਾ ਨਹੀਂ।"
 
-#: ../src/pk-transaction.c:2624
+#: ../src/pk-transaction.c:2705
 msgid "Do not update these packages unless you are sure it is safe to do so."
 msgstr "ਇਹਨਾਂ ਪੈਕੇਜਾਂ ਨੂੰ ਅੱਪਡੇਟ ਨਾ ਕਰੋ, ਜਦੋਂ ਤੱਕ ਤੁਹਾਨੂੰ ਇਸ ਬਾਰੇ ਪਤਾ ਨਹੀਂ।"
 
-#: ../src/pk-transaction.c:2634
+#: ../src/pk-transaction.c:2715
 msgid "Do not install this package unless you are sure it is safe to do so."
 msgstr "ਇਸ ਪੈਕੇਜ ਨੂੰ ਇੰਸਟਾਲ ਨਾ ਕਰੋ, ਜਦੋਂ ਤੱਕ ਤੁਹਾਨੂੰ ਇਸ ਬਾਰੇ ਪਤਾ ਨਹੀਂ।"
 
-#: ../src/pk-transaction.c:2635
+#: ../src/pk-transaction.c:2716
 msgid "Do not install these packages unless you are sure it is safe to do so."
 msgstr "ਇਹਨਾਂ ਪੈਕੇਜਾਂ ਨੂੰ ਇੰਸਟਾਲ ਨਾ ਕਰੋ, ਜਦੋਂ ਤੱਕ ਤੁਹਾਨੂੰ ਇਸ ਬਾਰੇ ਪਤਾ ਨਹੀਂ।"
 
diff --git a/po/pl.po b/po/pl.po
index 5a6d16b..fa152ea 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -2,15 +2,16 @@
 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
 # This file is distributed under the same license as the PACKAGE package.
 # 
-# Richard Hughes <richard at hughsie.com>, 2011
-# Piotr DrÄ…g <piotrdrag at gmail.com>, 2011
+# Translators:
+# Piotr DrÄ…g <piotrdrag at gmail.com>, 2011.
+# Richard Hughes <richard at hughsie.com>, 2011.
 msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-04 10:50+0100\n"
-"PO-Revision-Date: 2011-05-04 21:26+0000\n"
-"Last-Translator: raven <piotrdrag at gmail.com>\n"
+"POT-Creation-Date: 2011-11-10 19:50+0000\n"
+"PO-Revision-Date: 2011-11-10 19:59+0000\n"
+"Last-Translator: Piotr DrÄ…g <piotrdrag at gmail.com>\n"
 "Language-Team: Polish (http://www.transifex.net/projects/p/freedesktop/team/pl/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -196,7 +197,7 @@ msgstr "Wydano"
 
 #. TRANSLATORS: details about the update, date the update was updated
 #. TRANSLATORS: The action of the package, in past tense
-#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:524
+#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:559
 msgid "Updated"
 msgstr "Zaktualizowano"
 
@@ -286,7 +287,7 @@ msgstr "Brak pakietów do zaktualizowania."
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
 #: ../client/pk-console.c:704
-#: ../contrib/command-not-found/pk-command-not-found.c:639
+#: ../contrib/command-not-found/pk-command-not-found.c:634
 msgid "The transaction failed"
 msgstr "Transakcja nie powiodła się"
 
@@ -340,21 +341,21 @@ msgstr ""
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:866
+#: ../client/pk-console.c:871
 #, c-format
 msgid "This tool could not find any available package: %s"
 msgstr "Te narzędzie nie może odnaleźć dostępnych pakietów: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:894
+#: ../client/pk-console.c:899
 #, c-format
 msgid "This tool could not find the installed package: %s"
 msgstr "Te narzędzie nie może odnaleźć zainstalowanego pakietu: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:922 ../client/pk-console.c:950
+#: ../client/pk-console.c:927 ../client/pk-console.c:955
 #, c-format
 msgid "This tool could not find the package: %s"
 msgstr "Te narzędzie nie może odnaleźć pakietu: %s"
@@ -367,71 +368,71 @@ msgstr "Te narzędzie nie może odnaleźć pakietu: %s"
 #. detailed error follows
 #. TRANSLATORS: The package name was not found in any software sources. The
 #. detailed error follows
-#: ../client/pk-console.c:978 ../client/pk-console.c:1006
-#: ../client/pk-console.c:1034 ../client/pk-console.c:1062
-#: ../client/pk-console.c:1090
+#: ../client/pk-console.c:983 ../client/pk-console.c:1011
+#: ../client/pk-console.c:1039 ../client/pk-console.c:1067
+#: ../client/pk-console.c:1095
 #, c-format
 msgid "This tool could not find all the packages: %s"
 msgstr "Te narzędzie nie może odnaleźć wszystkich pakietów: %s"
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek
 #. without a paddle
-#: ../client/pk-console.c:1119
+#: ../client/pk-console.c:1124
 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:1153
+#: ../client/pk-console.c:1158
 msgid "PackageKit Console Interface"
 msgstr "Interfejs konsoli PackageKit"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1155
+#: ../client/pk-console.c:1160
 msgid "Subcommands:"
 msgstr "Podpolecenia:"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was
 #. last executed
-#: ../client/pk-console.c:1235
+#: ../client/pk-console.c:1240
 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: command line argument, just show the version string
-#: ../client/pk-console.c:1277 ../client/pk-monitor.c:371
+#: ../client/pk-console.c:1282 ../client/pk-monitor.c:371
 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:1280
+#: ../client/pk-console.c:1285
 msgid "Set the filter, e.g. installed"
 msgstr "Ustawia filtr, np. zainstalowane"
 
 #. TRANSLATORS: command line argument, use a non-standard install prefix
-#: ../client/pk-console.c:1283
+#: ../client/pk-console.c:1288
 msgid "Set the install root, e.g. '/' or '/mnt/ltsp'"
 msgstr "Ustawia główny katalog instalacji, np. \"/\" lub \"/mnt/ltsp\""
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1286
+#: ../client/pk-console.c:1291
 msgid "Exit without waiting for actions to complete"
 msgstr "Wyłącza bez oczekiwania na zakończenie działań"
 
 #. command line argument, do we ask questions
-#: ../client/pk-console.c:1289
+#: ../client/pk-console.c:1294
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:525
 msgid "Install the packages without asking for confirmation"
 msgstr "Instaluje pakiety bez prośby o potwierdzenie"
 
 #. TRANSLATORS: command line argument, this command is not a priority
-#: ../client/pk-console.c:1292
+#: ../client/pk-console.c:1297
 msgid "Run the command using idle network bandwidth and also using less power"
 msgstr ""
 "Wykonuje polecenie używając bezczynnego połączenia sieciowego, a także "
 "zużywając mniej energii"
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1295
+#: ../client/pk-console.c:1300
 msgid ""
 "Print to screen a machine readable output, rather than using animated "
 "widgets"
@@ -440,145 +441,145 @@ msgstr ""
 "widżetów"
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1298
+#: ../client/pk-console.c:1303
 msgid "The maximum metadata cache age. Use -1 for 'never'."
 msgstr ""
 "Maksymalny czas przechowywania metadanych w pamięci podręcznej. Wartość -1 "
 "oznacza \"never\" (nigdy)."
 
 #. TRANSLATORS: command line argument, --help
-#: ../client/pk-console.c:1301
+#: ../client/pk-console.c:1306
 msgid "Show help options."
 msgstr "Wyświetla opcje pomocy."
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1331
+#: ../client/pk-console.c:1336
 msgid "Failed to parse command line"
 msgstr "Przetworzenie wiersza poleceń nie powiodło się"
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1341
+#: ../client/pk-console.c:1346
 msgid "Failed to contact PackageKit"
 msgstr "Skontaktowanie się z usługą PackageKit nie powiodło się"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1394
+#: ../client/pk-console.c:1399
 msgid "The proxy could not be set"
 msgstr "Nie można ustawić pośrednika"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1406
+#: ../client/pk-console.c:1411
 msgid "The install root could not be set"
 msgstr "Nie można ustawić głównego katalogu instalacji"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1418
+#: ../client/pk-console.c:1423
 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:1437
+#: ../client/pk-console.c:1442
 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:1444 ../client/pk-console.c:1456
-#: ../client/pk-console.c:1468 ../client/pk-console.c:1480
+#: ../client/pk-console.c:1449 ../client/pk-console.c:1461
+#: ../client/pk-console.c:1473 ../client/pk-console.c:1485
 msgid "A search term is required"
 msgstr "Wymagany jest wyszukiwany termin"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1490
+#: ../client/pk-console.c:1495
 msgid "Invalid search type"
 msgstr "Nieprawidłowy typ wyszukiwania"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1496
+#: ../client/pk-console.c:1501
 msgid "A package name to install is required"
 msgstr "Wymagana jest nazwa pakietu do zainstalowania"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1505
+#: ../client/pk-console.c:1510
 msgid "A filename to install is required"
 msgstr "Wymagana jest nazwa pliku do zainstalowania"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1516
+#: ../client/pk-console.c:1521
 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:1527
+#: ../client/pk-console.c:1532
 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:1536
+#: ../client/pk-console.c:1541
 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:1543
+#: ../client/pk-console.c:1548
 msgid "Directory not found"
 msgstr "Nie odnaleziono katalogu"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1552
+#: ../client/pk-console.c:1557
 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:1563
+#: ../client/pk-console.c:1568
 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:1584
+#: ../client/pk-console.c:1589
 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:1595 ../client/pk-console.c:1606
+#: ../client/pk-console.c:1600 ../client/pk-console.c:1611
 msgid "A repository name is required"
 msgstr "Wymagana jest nazwa repozytorium"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:1617
+#: ../client/pk-console.c:1622
 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:1634
+#: ../client/pk-console.c:1639
 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:1641
+#: ../client/pk-console.c:1646
 msgid "A correct role is required"
 msgstr "Wymagana jest bieżąca rola"
 
 #. 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:1651 ../client/pk-console.c:1665
-#: ../client/pk-console.c:1674 ../client/pk-console.c:1694
-#: ../client/pk-console.c:1703 ../client/pk-generate-pack.c:314
+#: ../client/pk-console.c:1656 ../client/pk-console.c:1670
+#: ../client/pk-console.c:1679 ../client/pk-console.c:1699
+#: ../client/pk-console.c:1708 ../client/pk-generate-pack.c:314
 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:1683
+#: ../client/pk-console.c:1688
 msgid "A package provide string is required"
 msgstr "Wymagany jest łańcuch dostarczania pakietu"
 
 #. TRANSLATORS: The user did not provide a distro name
-#: ../client/pk-console.c:1727
+#: ../client/pk-console.c:1732
 msgid "A distribution name is required"
 msgstr "Wymagana jest nazwa dystrybucji"
 
 #. TRANSLATORS: The user did not provide an upgrade type
-#: ../client/pk-console.c:1733
+#: ../client/pk-console.c:1738
 msgid "An upgrade type is required, e.g. 'minimal', 'default' or 'complete'"
 msgstr ""
 "Wymagany jest typ aktualizacji, np. \"minimal\" (minimalna), \"default\" "
@@ -586,13 +587,13 @@ msgstr ""
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command
 #. line
-#: ../client/pk-console.c:1783
+#: ../client/pk-console.c:1788
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "Opcja \"%s\" nie jest obsługiwana"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:1793
+#: ../client/pk-console.c:1798
 msgid "Command failed"
 msgstr "Polecenie nie powiodło się"
 
@@ -731,159 +732,154 @@ msgid "PackageKit Monitor"
 msgstr "Monitor PackageKit"
 
 #. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/pk-plugin-install.c:499
+#: ../contrib/browser-plugin/pk-plugin-install.c:503
 msgid "Getting package information..."
 msgstr "Pobieranie informacji o pakiecie..."
 
 #. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/pk-plugin-install.c:505
+#: ../contrib/browser-plugin/pk-plugin-install.c:509
 #, c-format
 msgid "Run %s"
 msgstr "Uruchom %s"
 
 #. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:511
+#: ../contrib/browser-plugin/pk-plugin-install.c:515
 msgid "Installed version"
 msgstr "Zainstalowana wersja"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:519
+#: ../contrib/browser-plugin/pk-plugin-install.c:523
 #, c-format
 msgid "Run version %s now"
 msgstr "Uruchom wersjÄ™ %s"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:525
+#: ../contrib/browser-plugin/pk-plugin-install.c:529
 msgid "Run now"
 msgstr "Uruchom teraz"
 
 #. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:531
+#: ../contrib/browser-plugin/pk-plugin-install.c:535
 #, c-format
 msgid "Update to version %s"
 msgstr "Zaktualizuj do wersji %s"
 
 #. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:537
+#: ../contrib/browser-plugin/pk-plugin-install.c:541
 #, c-format
 msgid "Install %s now"
 msgstr "Zainstaluj %s"
 
 #. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:540
+#: ../contrib/browser-plugin/pk-plugin-install.c:544
 msgid "Version"
 msgstr "Wersja"
 
 #. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/pk-plugin-install.c:545
+#: ../contrib/browser-plugin/pk-plugin-install.c:549
 msgid "No packages found for your system"
 msgstr "Nie odnaleziono pakietów dla systemu"
 
 #. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/pk-plugin-install.c:550
+#: ../contrib/browser-plugin/pk-plugin-install.c:554
 msgid "Installing..."
 msgstr "Instalowanie..."
 
 #. TRANSLATORS: downloading repo data so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:366
+#: ../contrib/command-not-found/pk-command-not-found.c:363
 msgid "Downloading details about the software sources."
 msgstr "Pobieranie szczegółów o źródłach oprogramowania."
 
 #. TRANSLATORS: downloading file lists so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:370
+#: ../contrib/command-not-found/pk-command-not-found.c:367
 msgid "Downloading filelists (this may take some time to complete)."
 msgstr "Pobieranie list plików (może to zająć trochę czasu)."
 
 #. TRANSLATORS: waiting for native lock
-#: ../contrib/command-not-found/pk-command-not-found.c:374
+#: ../contrib/command-not-found/pk-command-not-found.c:371
 msgid "Waiting for package manager lock."
 msgstr "Oczekiwanie na blokadę menedżera pakietów."
 
 #. TRANSLATORS: loading package cache so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:378
+#: ../contrib/command-not-found/pk-command-not-found.c:375
 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:444
+#: ../contrib/command-not-found/pk-command-not-found.c:439
 msgid "Failed to search for file"
 msgstr "Odnalezienie pliku nie powiodło się"
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
-#: ../contrib/command-not-found/pk-command-not-found.c:456
+#: ../contrib/command-not-found/pk-command-not-found.c:451
 msgid "Getting the list of files failed"
 msgstr "Pobranie listy plików nie powiodło się"
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:602
+#: ../contrib/command-not-found/pk-command-not-found.c:597
 msgid "Failed to launch:"
 msgstr "Uruchomienie nie powiodło się:"
 
 #. TRANSLATORS: we failed to install the package
-#: ../contrib/command-not-found/pk-command-not-found.c:630
+#: ../contrib/command-not-found/pk-command-not-found.c:625
 msgid "Failed to install packages"
 msgstr "Zainstalowanie pakietów nie powiodło się"
 
-#. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/command-not-found/pk-command-not-found.c:706
-msgid "PackageKit Command Not Found"
-msgstr "Nie odnaleziono polecenia PackageKit"
-
 #. TRANSLATORS: the prefix of all the output telling the user
 #. * why it's not executing. NOTE: this is lowercase to mimic
 #. * the style of bash itself -- apologies
-#: ../contrib/command-not-found/pk-command-not-found.c:741
+#: ../contrib/command-not-found/pk-command-not-found.c:723
 msgid "command not found"
 msgstr "nie odnaleziono polecenia"
 
 #. TRANSLATORS: tell the user what we think the command is
-#: ../contrib/command-not-found/pk-command-not-found.c:759
+#: ../contrib/command-not-found/pk-command-not-found.c:741
 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:773
+#: ../contrib/command-not-found/pk-command-not-found.c:755
 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:787
-#: ../contrib/command-not-found/pk-command-not-found.c:796
+#: ../contrib/command-not-found/pk-command-not-found.c:769
+#: ../contrib/command-not-found/pk-command-not-found.c:778
 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:803
+#: ../contrib/command-not-found/pk-command-not-found.c:785
 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:821
+#: ../contrib/command-not-found/pk-command-not-found.c:803
 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:828
+#: ../contrib/command-not-found/pk-command-not-found.c:810
 #, 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:855
+#: ../contrib/command-not-found/pk-command-not-found.c:837
 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:865
+#: ../contrib/command-not-found/pk-command-not-found.c:847
 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:874
+#: ../contrib/command-not-found/pk-command-not-found.c:856
 msgid "Please choose a package to install"
 msgstr "Proszę wybrać pakiet do zainstalowania"
 
@@ -1058,7 +1054,7 @@ msgstr "Pakiety nie zostanÄ… zainstalowane w trybie symulacji"
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
 #. TRANSLATORS: transaction state, installing packages
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:860
-#: ../lib/packagekit-glib2/pk-console-shared.c:296
+#: ../lib/packagekit-glib2/pk-console-shared.c:331
 #, c-format
 msgid "Installing packages"
 msgstr "Instalowanie pakietów"
@@ -1192,474 +1188,474 @@ msgstr "Lista pakietów PackageKit"
 msgid "PackageKit Service Pack"
 msgstr "Pakiet serwisowy PackageKit"
 
-#: ../lib/packagekit-glib2/pk-console-shared.c:64
+#: ../lib/packagekit-glib2/pk-console-shared.c:65
 #, c-format
 msgid "Please enter a number from 1 to %i: "
 msgstr "Proszę podać numer od 1 do %i: "
 
 #. TRANSLATORS: more than one package could be found that matched, to follow
 #. is a list of possible packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:198
+#: ../lib/packagekit-glib2/pk-console-shared.c:233
 msgid "More than one package matches:"
 msgstr "Pasuje więcej niż jeden pakiet:"
 
 #. TRANSLATORS: This finds out which package in the list to use
-#: ../lib/packagekit-glib2/pk-console-shared.c:209
+#: ../lib/packagekit-glib2/pk-console-shared.c:244
 msgid "Please choose the correct package: "
 msgstr "Proszę wybrać poprawny pakiet: "
 
 #. TRANSLATORS: This is when the transaction status is not known
-#: ../lib/packagekit-glib2/pk-console-shared.c:264
+#: ../lib/packagekit-glib2/pk-console-shared.c:299
 msgid "Unknown state"
 msgstr "Nieznany stan"
 
 #. TRANSLATORS: transaction state, the daemon is in the process of starting
-#: ../lib/packagekit-glib2/pk-console-shared.c:268
+#: ../lib/packagekit-glib2/pk-console-shared.c:303
 msgid "Starting"
 msgstr "Rozpoczynanie"
 
 #. TRANSLATORS: transaction state, the transaction is waiting for another to
 #. complete
-#: ../lib/packagekit-glib2/pk-console-shared.c:272
+#: ../lib/packagekit-glib2/pk-console-shared.c:307
 msgid "Waiting in queue"
 msgstr "Oczekiwanie w kolejce"
 
 #. TRANSLATORS: transaction state, just started
-#: ../lib/packagekit-glib2/pk-console-shared.c:276
+#: ../lib/packagekit-glib2/pk-console-shared.c:311
 msgid "Running"
 msgstr "Wykonywanie"
 
 #. TRANSLATORS: transaction state, is querying data
-#: ../lib/packagekit-glib2/pk-console-shared.c:280
+#: ../lib/packagekit-glib2/pk-console-shared.c:315
 msgid "Querying"
 msgstr "Odpytywanie"
 
 #. TRANSLATORS: transaction state, getting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:284
+#: ../lib/packagekit-glib2/pk-console-shared.c:319
 msgid "Getting information"
 msgstr "Pobieranie informacji"
 
 #. TRANSLATORS: transaction state, removing packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:288
+#: ../lib/packagekit-glib2/pk-console-shared.c:323
 msgid "Removing packages"
 msgstr "Usuwanie pakietu"
 
 #. TRANSLATORS: transaction state, downloading package files
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:292
-#: ../lib/packagekit-glib2/pk-console-shared.c:670
+#: ../lib/packagekit-glib2/pk-console-shared.c:327
+#: ../lib/packagekit-glib2/pk-console-shared.c:705
 msgid "Downloading packages"
 msgstr "Pobieranie pakietów"
 
 #. TRANSLATORS: transaction state, refreshing internal lists
-#: ../lib/packagekit-glib2/pk-console-shared.c:300
+#: ../lib/packagekit-glib2/pk-console-shared.c:335
 msgid "Refreshing software list"
 msgstr "Odświeżanie listy oprogramowania"
 
 #. TRANSLATORS: transaction state, installing updates
-#: ../lib/packagekit-glib2/pk-console-shared.c:304
+#: ../lib/packagekit-glib2/pk-console-shared.c:339
 msgid "Installing updates"
 msgstr "Instalowanie aktualizacji"
 
 #. TRANSLATORS: transaction state, removing old packages, and cleaning config
 #. files
-#: ../lib/packagekit-glib2/pk-console-shared.c:308
+#: ../lib/packagekit-glib2/pk-console-shared.c:343
 msgid "Cleaning up packages"
 msgstr "Czyszczenie pakietów"
 
 #. TRANSLATORS: transaction state, obsoleting old packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:312
+#: ../lib/packagekit-glib2/pk-console-shared.c:347
 msgid "Obsoleting packages"
 msgstr "Zastępowanie pakietów"
 
 #. TRANSLATORS: transaction state, checking the transaction before we do it
-#: ../lib/packagekit-glib2/pk-console-shared.c:316
+#: ../lib/packagekit-glib2/pk-console-shared.c:351
 msgid "Resolving dependencies"
 msgstr "Rozwiązywanie zależności"
 
 #. TRANSLATORS: transaction state, checking if we have all the security keys
 #. for the operation
-#: ../lib/packagekit-glib2/pk-console-shared.c:320
+#: ../lib/packagekit-glib2/pk-console-shared.c:355
 msgid "Checking signatures"
 msgstr "Sprawdzanie podpisów"
 
 #. TRANSLATORS: transaction state, when we return to a previous system state
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:324
-#: ../lib/packagekit-glib2/pk-console-shared.c:630
+#: ../lib/packagekit-glib2/pk-console-shared.c:359
+#: ../lib/packagekit-glib2/pk-console-shared.c:665
 msgid "Rolling back"
 msgstr "Przywracanie"
 
 #. TRANSLATORS: transaction state, when we're doing a test transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:328
+#: ../lib/packagekit-glib2/pk-console-shared.c:363
 msgid "Testing changes"
 msgstr "Testowanie zmian"
 
 #. TRANSLATORS: transaction state, when we're writing to the system package
 #. database
-#: ../lib/packagekit-glib2/pk-console-shared.c:332
+#: ../lib/packagekit-glib2/pk-console-shared.c:367
 msgid "Committing changes"
 msgstr "Wprowadzanie zmian"
 
 #. TRANSLATORS: transaction state, requesting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:336
+#: ../lib/packagekit-glib2/pk-console-shared.c:371
 msgid "Requesting data"
 msgstr "Żądanie danych"
 
 #. TRANSLATORS: transaction state, all done!
-#: ../lib/packagekit-glib2/pk-console-shared.c:340
+#: ../lib/packagekit-glib2/pk-console-shared.c:375
 msgid "Finished"
 msgstr "Ukończono"
 
 #. TRANSLATORS: transaction state, in the process of cancelling
-#: ../lib/packagekit-glib2/pk-console-shared.c:344
+#: ../lib/packagekit-glib2/pk-console-shared.c:379
 msgid "Cancelling"
 msgstr "Anulowanie"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:348
+#: ../lib/packagekit-glib2/pk-console-shared.c:383
 msgid "Downloading repository information"
 msgstr "Pobieranie informacji o repozytorium"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:352
+#: ../lib/packagekit-glib2/pk-console-shared.c:387
 msgid "Downloading list of packages"
 msgstr "Pobieranie listy pakietów"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:356
+#: ../lib/packagekit-glib2/pk-console-shared.c:391
 msgid "Downloading file lists"
 msgstr "Pobieranie list plików"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:360
+#: ../lib/packagekit-glib2/pk-console-shared.c:395
 msgid "Downloading lists of changes"
 msgstr "Pobieranie listy zmian"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:364
+#: ../lib/packagekit-glib2/pk-console-shared.c:399
 msgid "Downloading groups"
 msgstr "Pobieranie grup"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:368
+#: ../lib/packagekit-glib2/pk-console-shared.c:403
 msgid "Downloading update information"
 msgstr "Pobieranie informacji o aktualizacji"
 
 #. TRANSLATORS: transaction state, repackaging delta files
-#: ../lib/packagekit-glib2/pk-console-shared.c:372
+#: ../lib/packagekit-glib2/pk-console-shared.c:407
 msgid "Repackaging files"
 msgstr "Ponowne umieszczanie plików w pakietach"
 
 #. TRANSLATORS: transaction state, loading databases
-#: ../lib/packagekit-glib2/pk-console-shared.c:376
+#: ../lib/packagekit-glib2/pk-console-shared.c:411
 msgid "Loading cache"
 msgstr "Wczytywanie pamięci podręcznej"
 
 #. TRANSLATORS: transaction state, scanning for running processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:380
+#: ../lib/packagekit-glib2/pk-console-shared.c:415
 msgid "Scanning applications"
 msgstr "Skanowanie programów"
 
 #. TRANSLATORS: transaction state, generating a list of packages installed on
 #. the system
-#: ../lib/packagekit-glib2/pk-console-shared.c:384
+#: ../lib/packagekit-glib2/pk-console-shared.c:419
 msgid "Generating package lists"
 msgstr "Tworzenie list pakietów"
 
 #. TRANSLATORS: transaction state, when we're waiting for the native tools to
 #. exit
-#: ../lib/packagekit-glib2/pk-console-shared.c:388
+#: ../lib/packagekit-glib2/pk-console-shared.c:423
 msgid "Waiting for package manager lock"
 msgstr "Oczekiwanie na blokadę menedżera pakietów"
 
 #. TRANSLATORS: transaction state, waiting for user to type in a password
-#: ../lib/packagekit-glib2/pk-console-shared.c:392
+#: ../lib/packagekit-glib2/pk-console-shared.c:427
 msgid "Waiting for authentication"
 msgstr "Oczekiwanie na uwierzytelnienie"
 
 #. TRANSLATORS: transaction state, we are updating the list of processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:396
+#: ../lib/packagekit-glib2/pk-console-shared.c:431
 msgid "Updating running applications"
 msgstr "Aktualizowanie uruchomionych programów"
 
 #. TRANSLATORS: transaction state, we are checking executable files currently
 #. in use
-#: ../lib/packagekit-glib2/pk-console-shared.c:400
+#: ../lib/packagekit-glib2/pk-console-shared.c:435
 msgid "Checking applications in use"
 msgstr "Sprawdzanie używanych programów"
 
 #. TRANSLATORS: transaction state, we are checking for libraries currently in
 #. use
-#: ../lib/packagekit-glib2/pk-console-shared.c:404
+#: ../lib/packagekit-glib2/pk-console-shared.c:439
 msgid "Checking libraries in use"
 msgstr "Sprawdzanie używanych bibliotek"
 
 #. TRANSLATORS: transaction state, we are copying package files before or
 #. after the transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:408
+#: ../lib/packagekit-glib2/pk-console-shared.c:443
 msgid "Copying files"
 msgstr "Kopiowanie plików"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:426
+#: ../lib/packagekit-glib2/pk-console-shared.c:461
 msgid "Trivial"
 msgstr "Drobna"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:430
+#: ../lib/packagekit-glib2/pk-console-shared.c:465
 msgid "Normal"
 msgstr "Normalna"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:434
+#: ../lib/packagekit-glib2/pk-console-shared.c:469
 msgid "Important"
 msgstr "Ważna"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:438
+#: ../lib/packagekit-glib2/pk-console-shared.c:473
 msgid "Security"
 msgstr "Bezpieczeństwa"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:442
+#: ../lib/packagekit-glib2/pk-console-shared.c:477
 msgid "Bug fix "
 msgstr "Naprawiająca błędy"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:446
+#: ../lib/packagekit-glib2/pk-console-shared.c:481
 msgid "Enhancement"
 msgstr "Ulepszenie"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:450
+#: ../lib/packagekit-glib2/pk-console-shared.c:485
 msgid "Blocked"
 msgstr "Zablokowana"
 
 #. TRANSLATORS: The state of a package
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:455
-#: ../lib/packagekit-glib2/pk-console-shared.c:528
+#: ../lib/packagekit-glib2/pk-console-shared.c:490
+#: ../lib/packagekit-glib2/pk-console-shared.c:563
 msgid "Installed"
 msgstr "Zainstalowana"
 
 #. TRANSLATORS: The state of a package, i.e. not installed
-#: ../lib/packagekit-glib2/pk-console-shared.c:460
+#: ../lib/packagekit-glib2/pk-console-shared.c:495
 msgid "Available"
 msgstr "Dostępna"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:478
+#: ../lib/packagekit-glib2/pk-console-shared.c:513
 msgid "Downloading"
 msgstr "Pobieranie"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:482
+#: ../lib/packagekit-glib2/pk-console-shared.c:517
 msgid "Updating"
 msgstr "Aktualizowanie"
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:486
-#: ../lib/packagekit-glib2/pk-console-shared.c:606
+#: ../lib/packagekit-glib2/pk-console-shared.c:521
+#: ../lib/packagekit-glib2/pk-console-shared.c:641
 msgid "Installing"
 msgstr "Instalowanie"
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:490
-#: ../lib/packagekit-glib2/pk-console-shared.c:602
+#: ../lib/packagekit-glib2/pk-console-shared.c:525
+#: ../lib/packagekit-glib2/pk-console-shared.c:637
 msgid "Removing"
 msgstr "Usuwanie"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:494
+#: ../lib/packagekit-glib2/pk-console-shared.c:529
 msgid "Cleaning up"
 msgstr "Czyszczenie"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:498
+#: ../lib/packagekit-glib2/pk-console-shared.c:533
 msgid "Obsoleting"
 msgstr "Zastępowanie"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:502
+#: ../lib/packagekit-glib2/pk-console-shared.c:537
 msgid "Reinstalling"
 msgstr "Ponowne instalowanie"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:520
+#: ../lib/packagekit-glib2/pk-console-shared.c:555
 msgid "Downloaded"
 msgstr "Pobierano"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:532
+#: ../lib/packagekit-glib2/pk-console-shared.c:567
 msgid "Removed"
 msgstr "Usunięto"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:536
+#: ../lib/packagekit-glib2/pk-console-shared.c:571
 msgid "Cleaned up"
 msgstr "Wyczyszczono"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:540
+#: ../lib/packagekit-glib2/pk-console-shared.c:575
 msgid "Obsoleted"
 msgstr "ZastÄ…piono"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:544
+#: ../lib/packagekit-glib2/pk-console-shared.c:579
 msgid "Reinstalled"
 msgstr "Zainstalowano ponownie"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:562
+#: ../lib/packagekit-glib2/pk-console-shared.c:597
 msgid "Unknown role type"
 msgstr "Nieznany typ roli"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:566
+#: ../lib/packagekit-glib2/pk-console-shared.c:601
 msgid "Getting dependencies"
 msgstr "Pobieranie zależności"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:570
+#: ../lib/packagekit-glib2/pk-console-shared.c:605
 msgid "Getting update details"
 msgstr "Pobieranie szczegółów aktualizacji"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:574
+#: ../lib/packagekit-glib2/pk-console-shared.c:609
 msgid "Getting details"
 msgstr "Pobieranie szczegółów"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:578
+#: ../lib/packagekit-glib2/pk-console-shared.c:613
 msgid "Getting requires"
 msgstr "Pobieranie wymagań"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:582
+#: ../lib/packagekit-glib2/pk-console-shared.c:617
 msgid "Getting updates"
 msgstr "Pobieranie aktualizacji"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:586
+#: ../lib/packagekit-glib2/pk-console-shared.c:621
 msgid "Searching by details"
 msgstr "Wyszukiwanie według szczegółów"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:590
+#: ../lib/packagekit-glib2/pk-console-shared.c:625
 msgid "Searching by file"
 msgstr "Wyszukiwanie według plików"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:594
+#: ../lib/packagekit-glib2/pk-console-shared.c:629
 msgid "Searching groups"
 msgstr "Wyszukiwanie grup"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:598
+#: ../lib/packagekit-glib2/pk-console-shared.c:633
 msgid "Searching by name"
 msgstr "Wyszukiwanie według nazw"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:610
+#: ../lib/packagekit-glib2/pk-console-shared.c:645
 msgid "Installing files"
 msgstr "Instalowanie plików"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:614
+#: ../lib/packagekit-glib2/pk-console-shared.c:649
 msgid "Refreshing cache"
 msgstr "Odświeżanie pamięci podręcznej"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:618
+#: ../lib/packagekit-glib2/pk-console-shared.c:653
 msgid "Updating packages"
 msgstr "Aktualizowanie pakietów"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:622
+#: ../lib/packagekit-glib2/pk-console-shared.c:657
 msgid "Updating system"
 msgstr "Aktualizowanie systemu"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:626
+#: ../lib/packagekit-glib2/pk-console-shared.c:661
 msgid "Canceling"
 msgstr "Anulowanie"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:634
+#: ../lib/packagekit-glib2/pk-console-shared.c:669
 msgid "Getting repositories"
 msgstr "Pobieranie repozytoriów"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:638
+#: ../lib/packagekit-glib2/pk-console-shared.c:673
 msgid "Enabling repository"
 msgstr "WÅ‚Ä…czanie repozytorium"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:642
+#: ../lib/packagekit-glib2/pk-console-shared.c:677
 msgid "Setting data"
 msgstr "Ustawianie danych"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:646
+#: ../lib/packagekit-glib2/pk-console-shared.c:681
 msgid "Resolving"
 msgstr "RozwiÄ…zywanie"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:650
+#: ../lib/packagekit-glib2/pk-console-shared.c:685
 msgid "Getting file list"
 msgstr "Pobieranie listy plików"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:654
+#: ../lib/packagekit-glib2/pk-console-shared.c:689
 msgid "Getting provides"
 msgstr "Pobieranie dostarczanych"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:658
+#: ../lib/packagekit-glib2/pk-console-shared.c:693
 msgid "Installing signature"
 msgstr "Instalowanie podpisu"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:662
+#: ../lib/packagekit-glib2/pk-console-shared.c:697
 msgid "Getting packages"
 msgstr "Pobieranie pakietów"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:666
+#: ../lib/packagekit-glib2/pk-console-shared.c:701
 msgid "Accepting EULA"
 msgstr "Akceptowanie licencji"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:674
+#: ../lib/packagekit-glib2/pk-console-shared.c:709
 msgid "Getting upgrades"
 msgstr "Pobieranie aktualizacji"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:678
+#: ../lib/packagekit-glib2/pk-console-shared.c:713
 msgid "Getting categories"
 msgstr "Pobieranie kategorii"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:682
+#: ../lib/packagekit-glib2/pk-console-shared.c:717
 msgid "Getting transactions"
 msgstr "Pobieranie transakcji"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:686
-#: ../lib/packagekit-glib2/pk-console-shared.c:690
+#: ../lib/packagekit-glib2/pk-console-shared.c:721
+#: ../lib/packagekit-glib2/pk-console-shared.c:725
 msgid "Simulating install"
 msgstr "Symulowanie instalacji"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:694
+#: ../lib/packagekit-glib2/pk-console-shared.c:729
 msgid "Simulating remove"
 msgstr "Symulowanie usunięcia"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:698
+#: ../lib/packagekit-glib2/pk-console-shared.c:733
 msgid "Simulating update"
 msgstr "Symulowanie aktualizacji"
 
@@ -1809,13 +1805,19 @@ msgstr "Następujące pakiety muszą zostać ponownie zainstalowane:"
 msgid "The following packages have to be downgraded:"
 msgstr "Następujące pakiety muszą zostać zainstalowane w starszych wersjach:"
 
+#. TRANSLATORS: When processing, untrusted and non-verified packages may be
+#. encountered
+#: ../lib/packagekit-glib2/pk-task-text.c:325
+msgid "The following packages are untrusted:"
+msgstr "Poniższe pakiety są niezaufane:"
+
 #. TRANSLATORS: ask the user if the proposed changes are okay
-#: ../lib/packagekit-glib2/pk-task-text.c:380
+#: ../lib/packagekit-glib2/pk-task-text.c:385
 msgid "Proceed with changes?"
 msgstr "Kontynuować wprowadzanie zmian?"
 
 #. TRANSLATORS: tell the user we didn't do anything
-#: ../lib/packagekit-glib2/pk-task-text.c:385
+#: ../lib/packagekit-glib2/pk-task-text.c:390
 msgid "The transaction did not proceed."
 msgstr "Transakcja nie będzie kontynuowana."
 
@@ -2030,108 +2032,75 @@ msgstr "Aktualizacja pakietów"
 msgid "Upgrade System"
 msgstr "Aktualizacja systemu"
 
-#. TRANSLATORS: failed due to DBus security
-#: ../src/pk-main.c:91
-msgid "Startup failed due to security policies on this machine."
-msgstr ""
-"Uruchomienie nie powiodło się z powodu polityk bezpieczeństwa tego "
-"komputera."
-
-#. TRANSLATORS: only two ways this can fail...
-#: ../src/pk-main.c:93
-msgid "This can happen for two reasons:"
-msgstr "Mogło się to wydarzyć z dwóch powodów:"
-
-#. TRANSLATORS: only allowed to be owned by root
-#: ../src/pk-main.c:95
-msgid "The correct user is not launching the executable (usually root)"
-msgstr ""
-"Prawidłowy użytkownik nie uruchamiania pliku wykonywalnego (zwykle root)"
-
-#. TRANSLATORS: or we are installed in a prefix
-#: ../src/pk-main.c:97
-msgid ""
-"The org.freedesktop.PackageKit.conf file is not installed in the system "
-"directory:"
-msgstr ""
-"Plik org.freedesktop.PackageKit.conf nie jest zainstalowany w katalogu "
-"systemowym:"
-
 #. TRANSLATORS: a backend is the system package tool, e.g. yum, apt
-#: ../src/pk-main.c:223
+#: ../src/pk-main.c:149
 msgid "Packaging backend to use, e.g. dummy"
 msgstr "Używany moduł przetwarzający, np. dummy"
 
 #. TRANSLATORS: if we should run in the background
-#: ../src/pk-main.c:226
+#: ../src/pk-main.c:152
 msgid "Daemonize and detach from the terminal"
 msgstr "Tworzy demona i odłącza z terminala"
 
 #. TRANSLATORS: if we should not monitor how long we are inactive for
-#: ../src/pk-main.c:229
+#: ../src/pk-main.c:155
 msgid "Disable the idle timer"
 msgstr "Wyłącza licznik czasu bezczynności"
 
 #. TRANSLATORS: show version
-#: ../src/pk-main.c:232
+#: ../src/pk-main.c:158
 msgid "Show version and exit"
 msgstr "Wyświetla wersję i wyłącza"
 
 #. TRANSLATORS: exit after we've started up, used for user profiling
-#: ../src/pk-main.c:235
+#: ../src/pk-main.c:161
 msgid "Exit after a small delay"
 msgstr "Wyłącza po małej przerwie"
 
 #. TRANSLATORS: exit straight away, used for automatic profiling
-#: ../src/pk-main.c:238
+#: ../src/pk-main.c:164
 msgid "Exit after the engine has loaded"
 msgstr "Wyłącza po wczytaniu mechanizmu"
 
+#. TRANSLATORS: don't unset environment variables, used for debugging
+#: ../src/pk-main.c:167
+msgid "Don't clear environment on startup"
+msgstr "Bez czyszczenia środowiska podczas uruchamiania"
+
 #. TRANSLATORS: describing the service that is running
-#: ../src/pk-main.c:253
+#: ../src/pk-main.c:179
 msgid "PackageKit service"
 msgstr "Usługa PackageKit"
 
-#. TRANSLATORS: fatal error, dbus is not running
-#: ../src/pk-main.c:298
-msgid "Cannot connect to the system bus"
-msgstr "Nie można połączyć się z magistralą systemową"
-
-#: ../src/pk-main.c:344
+#: ../src/pk-main.c:253
 msgid "Failed to load any of the specified backends:"
 msgstr ""
 "Wczytanie jednego z podanych modułów przetwarzających nie powiodło się:"
 
-#. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error
-#. follows
-#: ../src/pk-main.c:358
-msgid "Error trying to start:"
-msgstr "Błąd podczas próbowania uruchomienia:"
-
 #. TRANSLATORS: is not GPG signed
-#: ../src/pk-transaction.c:2611 ../src/pk-transaction.c:2618
+#: ../src/pk-transaction.c:2696
 msgid "The software is not from a trusted source."
 msgstr "Oprogramowanie nie jest z zaufanego źródła."
 
-#: ../src/pk-transaction.c:2623
+#: ../src/pk-transaction.c:2704
 msgid "Do not update this package unless you are sure it is safe to do so."
 msgstr ""
 "Nie należy aktualizować tego pakietu, jeśli nie ma się pewności, że to "
 "bezpieczne."
 
-#: ../src/pk-transaction.c:2624
+#: ../src/pk-transaction.c:2705
 msgid "Do not update these packages unless you are sure it is safe to do so."
 msgstr ""
 "Nie należy aktualizować tych pakietów, jeśli nie ma się pewności, że to "
 "bezpieczne."
 
-#: ../src/pk-transaction.c:2634
+#: ../src/pk-transaction.c:2715
 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-transaction.c:2635
+#: ../src/pk-transaction.c:2716
 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 "
diff --git a/po/pt.po b/po/pt.po
index 5b24e29..1b9be92 100644
--- a/po/pt.po
+++ b/po/pt.po
@@ -2,14 +2,16 @@
 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
 # This file is distributed under the same license as the PACKAGE package.
 # 
-# Richard Hughes <richard at hughsie.com>, 2011
+# Translators:
+# Richard Hughes <richard at hughsie.com>, 2011.
+# Rui Gouveia <rui.gouveia at gmail.com>, 2010.
 msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-04 10:50+0100\n"
-"PO-Revision-Date: 2011-05-04 09:56+0000\n"
-"Last-Translator: hughsie <richard at hughsie.com>\n"
+"POT-Creation-Date: 2011-11-10 19:50+0000\n"
+"PO-Revision-Date: 2011-11-10 19:50+0000\n"
+"Last-Translator: Richard Hughes <richard at hughsie.com>\n"
 "Language-Team: LANGUAGE <LL at li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -195,7 +197,7 @@ msgstr "Emitido"
 
 #. TRANSLATORS: details about the update, date the update was updated
 #. TRANSLATORS: The action of the package, in past tense
-#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:524
+#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:559
 msgid "Updated"
 msgstr "Actualizado"
 
@@ -285,7 +287,7 @@ msgstr ""
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
 #: ../client/pk-console.c:704
-#: ../contrib/command-not-found/pk-command-not-found.c:639
+#: ../contrib/command-not-found/pk-command-not-found.c:634
 msgid "The transaction failed"
 msgstr "A transacção falhou"
 
@@ -340,21 +342,21 @@ msgstr ""
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:866
+#: ../client/pk-console.c:871
 #, c-format
 msgid "This tool could not find any available package: %s"
 msgstr "Esta ferramenta não conseguiu encontrar nenhum pacote disponível: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:894
+#: ../client/pk-console.c:899
 #, c-format
 msgid "This tool could not find the installed package: %s"
 msgstr "Esta ferramenta não conseguiu encontrar o pacote instalado: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:922 ../client/pk-console.c:950
+#: ../client/pk-console.c:927 ../client/pk-console.c:955
 #, c-format
 msgid "This tool could not find the package: %s"
 msgstr "Esta ferramenta não conseguiu encontrar o pacote: %s"
@@ -367,71 +369,71 @@ msgstr "Esta ferramenta não conseguiu encontrar o pacote: %s"
 #. detailed error follows
 #. TRANSLATORS: The package name was not found in any software sources. The
 #. detailed error follows
-#: ../client/pk-console.c:978 ../client/pk-console.c:1006
-#: ../client/pk-console.c:1034 ../client/pk-console.c:1062
-#: ../client/pk-console.c:1090
+#: ../client/pk-console.c:983 ../client/pk-console.c:1011
+#: ../client/pk-console.c:1039 ../client/pk-console.c:1067
+#: ../client/pk-console.c:1095
 #, c-format
 msgid "This tool could not find all the packages: %s"
 msgstr "Esta ferramenta não conseguiu encontrar todos os pacotes: %s"
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek
 #. without a paddle
-#: ../client/pk-console.c:1119
+#: ../client/pk-console.c:1124
 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:1153
+#: ../client/pk-console.c:1158
 msgid "PackageKit Console Interface"
 msgstr "Consola do PackaheKit"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1155
+#: ../client/pk-console.c:1160
 msgid "Subcommands:"
 msgstr "Sub-comandos:"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was
 #. last executed
-#: ../client/pk-console.c:1235
+#: ../client/pk-console.c:1240
 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"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1277 ../client/pk-monitor.c:371
+#: ../client/pk-console.c:1282 ../client/pk-monitor.c:371
 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:1280
+#: ../client/pk-console.c:1285
 msgid "Set the filter, e.g. installed"
 msgstr "Configurar o filtro, exemplo, instalado"
 
 #. TRANSLATORS: command line argument, use a non-standard install prefix
-#: ../client/pk-console.c:1283
+#: ../client/pk-console.c:1288
 msgid "Set the install root, e.g. '/' or '/mnt/ltsp'"
 msgstr "Defina a raiz da instalação, por exemplo, '/' ou '/mnt/ltsp'"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1286
+#: ../client/pk-console.c:1291
 msgid "Exit without waiting for actions to complete"
 msgstr "Sair sem esperar que as acções completem"
 
 #. command line argument, do we ask questions
-#: ../client/pk-console.c:1289
+#: ../client/pk-console.c:1294
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:525
 msgid "Install the packages without asking for confirmation"
 msgstr "Instalar os pacotes sem pedir por confirmação"
 
 #. TRANSLATORS: command line argument, this command is not a priority
-#: ../client/pk-console.c:1292
+#: ../client/pk-console.c:1297
 msgid "Run the command using idle network bandwidth and also using less power"
 msgstr ""
 "Executar o comando utilizando períodos de inactividade da rede e também "
 "utilizando menos energia"
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1295
+#: ../client/pk-console.c:1300
 msgid ""
 "Print to screen a machine readable output, rather than using animated "
 "widgets"
@@ -439,158 +441,158 @@ msgstr ""
 "Escrever no ecrã o resultado legível, ao invés de utilizar objectos animados"
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1298
+#: ../client/pk-console.c:1303
 msgid "The maximum metadata cache age. Use -1 for 'never'."
 msgstr ""
 
 #. TRANSLATORS: command line argument, --help
-#: ../client/pk-console.c:1301
+#: ../client/pk-console.c:1306
 msgid "Show help options."
 msgstr ""
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1331
+#: ../client/pk-console.c:1336
 msgid "Failed to parse command line"
 msgstr ""
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1341
+#: ../client/pk-console.c:1346
 msgid "Failed to contact PackageKit"
 msgstr "Falhou o contacto com o PackageKit"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1394
+#: ../client/pk-console.c:1399
 msgid "The proxy could not be set"
 msgstr "Não foi possível definir o proxy"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1406
+#: ../client/pk-console.c:1411
 msgid "The install root could not be set"
 msgstr "Não foi possível definir a raiz da instalação"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1418
+#: ../client/pk-console.c:1423
 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:1437
+#: ../client/pk-console.c:1442
 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:1444 ../client/pk-console.c:1456
-#: ../client/pk-console.c:1468 ../client/pk-console.c:1480
+#: ../client/pk-console.c:1449 ../client/pk-console.c:1461
+#: ../client/pk-console.c:1473 ../client/pk-console.c:1485
 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:1490
+#: ../client/pk-console.c:1495
 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:1496
+#: ../client/pk-console.c:1501
 msgid "A package name to install is required"
 msgstr "É necessário indicar um nome de pacote a instalar"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1505
+#: ../client/pk-console.c:1510
 msgid "A filename to install is required"
 msgstr "É necessário um nome de ficheiro a instalar"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1516
+#: ../client/pk-console.c:1521
 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:1527
+#: ../client/pk-console.c:1532
 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:1536
+#: ../client/pk-console.c:1541
 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"
 
 #. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:1543
+#: ../client/pk-console.c:1548
 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:1552
+#: ../client/pk-console.c:1557
 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:1563
+#: ../client/pk-console.c:1568
 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:1584
+#: ../client/pk-console.c:1589
 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:1595 ../client/pk-console.c:1606
+#: ../client/pk-console.c:1600 ../client/pk-console.c:1611
 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:1617
+#: ../client/pk-console.c:1622
 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:1634
+#: ../client/pk-console.c:1639
 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:1641
+#: ../client/pk-console.c:1646
 msgid "A correct role is required"
 msgstr "É necessária uma função correcta"
 
 #. 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:1651 ../client/pk-console.c:1665
-#: ../client/pk-console.c:1674 ../client/pk-console.c:1694
-#: ../client/pk-console.c:1703 ../client/pk-generate-pack.c:314
+#: ../client/pk-console.c:1656 ../client/pk-console.c:1670
+#: ../client/pk-console.c:1679 ../client/pk-console.c:1699
+#: ../client/pk-console.c:1708 ../client/pk-generate-pack.c:314
 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:1683
+#: ../client/pk-console.c:1688
 msgid "A package provide string is required"
 msgstr ""
 "É necessário especificar a string que define o que o pacote disponibiliza"
 
 #. TRANSLATORS: The user did not provide a distro name
-#: ../client/pk-console.c:1727
+#: ../client/pk-console.c:1732
 msgid "A distribution name is required"
 msgstr ""
 
 #. TRANSLATORS: The user did not provide an upgrade type
-#: ../client/pk-console.c:1733
+#: ../client/pk-console.c:1738
 msgid "An upgrade type is required, e.g. 'minimal', 'default' or 'complete'"
 msgstr ""
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command
 #. line
-#: ../client/pk-console.c:1783
+#: ../client/pk-console.c:1788
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "A opção '%s' não é suportada"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:1793
+#: ../client/pk-console.c:1798
 msgid "Command failed"
 msgstr "Comando falhou"
 
@@ -730,161 +732,156 @@ msgid "PackageKit Monitor"
 msgstr "Monitorizar o PackageKit"
 
 #. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/pk-plugin-install.c:499
+#: ../contrib/browser-plugin/pk-plugin-install.c:503
 msgid "Getting package information..."
 msgstr "A obter informação de pacotes..."
 
 #. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/pk-plugin-install.c:505
+#: ../contrib/browser-plugin/pk-plugin-install.c:509
 #, c-format
 msgid "Run %s"
 msgstr "Executar %s"
 
 #. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:511
+#: ../contrib/browser-plugin/pk-plugin-install.c:515
 msgid "Installed version"
 msgstr "Versão instalada"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:519
+#: ../contrib/browser-plugin/pk-plugin-install.c:523
 #, 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:525
+#: ../contrib/browser-plugin/pk-plugin-install.c:529
 msgid "Run now"
 msgstr "Executar agora"
 
 #. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:531
+#: ../contrib/browser-plugin/pk-plugin-install.c:535
 #, 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:537
+#: ../contrib/browser-plugin/pk-plugin-install.c:541
 #, c-format
 msgid "Install %s now"
 msgstr "Instalar %s agora"
 
 #. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:540
+#: ../contrib/browser-plugin/pk-plugin-install.c:544
 msgid "Version"
 msgstr "Versão"
 
 #. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/pk-plugin-install.c:545
+#: ../contrib/browser-plugin/pk-plugin-install.c:549
 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:550
+#: ../contrib/browser-plugin/pk-plugin-install.c:554
 msgid "Installing..."
 msgstr "A instalar..."
 
 #. TRANSLATORS: downloading repo data so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:366
+#: ../contrib/command-not-found/pk-command-not-found.c:363
 msgid "Downloading details about the software sources."
 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:370
+#: ../contrib/command-not-found/pk-command-not-found.c:367
 msgid "Downloading filelists (this may take some time to complete)."
 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:374
+#: ../contrib/command-not-found/pk-command-not-found.c:371
 msgid "Waiting for package manager lock."
 msgstr "A esperar pelo bloqueio do gestor de pacotes."
 
 #. TRANSLATORS: loading package cache so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:378
+#: ../contrib/command-not-found/pk-command-not-found.c:375
 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:444
+#: ../contrib/command-not-found/pk-command-not-found.c:439
 msgid "Failed to search for file"
 msgstr "Não foi possível encontrar o ficheiro"
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
-#: ../contrib/command-not-found/pk-command-not-found.c:456
+#: ../contrib/command-not-found/pk-command-not-found.c:451
 msgid "Getting the list of files failed"
 msgstr ""
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:602
+#: ../contrib/command-not-found/pk-command-not-found.c:597
 msgid "Failed to launch:"
 msgstr "Incapaz de iniciar:"
 
 #. TRANSLATORS: we failed to install the package
-#: ../contrib/command-not-found/pk-command-not-found.c:630
+#: ../contrib/command-not-found/pk-command-not-found.c:625
 msgid "Failed to install packages"
 msgstr "Falhou a instalação dos pacotes"
 
-#. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/command-not-found/pk-command-not-found.c:706
-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. NOTE: this is lowercase to mimic
 #. * the style of bash itself -- apologies
-#: ../contrib/command-not-found/pk-command-not-found.c:741
+#: ../contrib/command-not-found/pk-command-not-found.c:723
 msgid "command not found"
 msgstr ""
 
 #. TRANSLATORS: tell the user what we think the command is
-#: ../contrib/command-not-found/pk-command-not-found.c:759
+#: ../contrib/command-not-found/pk-command-not-found.c:741
 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:773
+#: ../contrib/command-not-found/pk-command-not-found.c:755
 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:787
-#: ../contrib/command-not-found/pk-command-not-found.c:796
+#: ../contrib/command-not-found/pk-command-not-found.c:769
+#: ../contrib/command-not-found/pk-command-not-found.c:778
 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:803
+#: ../contrib/command-not-found/pk-command-not-found.c:785
 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:821
+#: ../contrib/command-not-found/pk-command-not-found.c:803
 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:828
+#: ../contrib/command-not-found/pk-command-not-found.c:810
 #, 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:855
+#: ../contrib/command-not-found/pk-command-not-found.c:837
 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:865
+#: ../contrib/command-not-found/pk-command-not-found.c:847
 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:874
+#: ../contrib/command-not-found/pk-command-not-found.c:856
 msgid "Please choose a package to install"
 msgstr "Por favor, escolha um pacote para instalar"
 
@@ -1059,7 +1056,7 @@ msgstr "No modo de simulação não se instalam pacotes"
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
 #. TRANSLATORS: transaction state, installing packages
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:860
-#: ../lib/packagekit-glib2/pk-console-shared.c:296
+#: ../lib/packagekit-glib2/pk-console-shared.c:331
 #, c-format
 msgid "Installing packages"
 msgstr "A instalar pacotes"
@@ -1193,474 +1190,474 @@ msgstr "Lista de Pacotes do PackageKit"
 msgid "PackageKit Service Pack"
 msgstr "PackageKit Service Pack"
 
-#: ../lib/packagekit-glib2/pk-console-shared.c:64
+#: ../lib/packagekit-glib2/pk-console-shared.c:65
 #, c-format
 msgid "Please enter a number from 1 to %i: "
 msgstr "Por favor insira um número de 1 a %i: "
 
 #. TRANSLATORS: more than one package could be found that matched, to follow
 #. is a list of possible packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:198
+#: ../lib/packagekit-glib2/pk-console-shared.c:233
 msgid "More than one package matches:"
 msgstr "Mais do que um pacote corresponde:"
 
 #. TRANSLATORS: This finds out which package in the list to use
-#: ../lib/packagekit-glib2/pk-console-shared.c:209
+#: ../lib/packagekit-glib2/pk-console-shared.c:244
 msgid "Please choose the correct package: "
 msgstr "Por favor, escolha o pacote correcto:"
 
 #. TRANSLATORS: This is when the transaction status is not known
-#: ../lib/packagekit-glib2/pk-console-shared.c:264
+#: ../lib/packagekit-glib2/pk-console-shared.c:299
 msgid "Unknown state"
 msgstr "Estado desconhecido"
 
 #. TRANSLATORS: transaction state, the daemon is in the process of starting
-#: ../lib/packagekit-glib2/pk-console-shared.c:268
+#: ../lib/packagekit-glib2/pk-console-shared.c:303
 msgid "Starting"
 msgstr "A iniciar"
 
 #. TRANSLATORS: transaction state, the transaction is waiting for another to
 #. complete
-#: ../lib/packagekit-glib2/pk-console-shared.c:272
+#: ../lib/packagekit-glib2/pk-console-shared.c:307
 msgid "Waiting in queue"
 msgstr "A aguardar na fila"
 
 #. TRANSLATORS: transaction state, just started
-#: ../lib/packagekit-glib2/pk-console-shared.c:276
+#: ../lib/packagekit-glib2/pk-console-shared.c:311
 msgid "Running"
 msgstr "A executar"
 
 #. TRANSLATORS: transaction state, is querying data
-#: ../lib/packagekit-glib2/pk-console-shared.c:280
+#: ../lib/packagekit-glib2/pk-console-shared.c:315
 msgid "Querying"
 msgstr "A consultar"
 
 #. TRANSLATORS: transaction state, getting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:284
+#: ../lib/packagekit-glib2/pk-console-shared.c:319
 msgid "Getting information"
 msgstr "A obter informação"
 
 #. TRANSLATORS: transaction state, removing packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:288
+#: ../lib/packagekit-glib2/pk-console-shared.c:323
 msgid "Removing packages"
 msgstr "A remover pacotes"
 
 #. TRANSLATORS: transaction state, downloading package files
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:292
-#: ../lib/packagekit-glib2/pk-console-shared.c:670
+#: ../lib/packagekit-glib2/pk-console-shared.c:327
+#: ../lib/packagekit-glib2/pk-console-shared.c:705
 msgid "Downloading packages"
 msgstr "A transferir pacotes"
 
 #. TRANSLATORS: transaction state, refreshing internal lists
-#: ../lib/packagekit-glib2/pk-console-shared.c:300
+#: ../lib/packagekit-glib2/pk-console-shared.c:335
 msgid "Refreshing software list"
 msgstr "A actualizar a lista de software"
 
 #. TRANSLATORS: transaction state, installing updates
-#: ../lib/packagekit-glib2/pk-console-shared.c:304
+#: ../lib/packagekit-glib2/pk-console-shared.c:339
 msgid "Installing updates"
 msgstr "A instalar actualizações"
 
 #. TRANSLATORS: transaction state, removing old packages, and cleaning config
 #. files
-#: ../lib/packagekit-glib2/pk-console-shared.c:308
+#: ../lib/packagekit-glib2/pk-console-shared.c:343
 msgid "Cleaning up packages"
 msgstr "A limpar pacotes"
 
 #. TRANSLATORS: transaction state, obsoleting old packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:312
+#: ../lib/packagekit-glib2/pk-console-shared.c:347
 msgid "Obsoleting packages"
 msgstr "A tornar pacotes obsoletos"
 
 #. TRANSLATORS: transaction state, checking the transaction before we do it
-#: ../lib/packagekit-glib2/pk-console-shared.c:316
+#: ../lib/packagekit-glib2/pk-console-shared.c:351
 msgid "Resolving dependencies"
 msgstr "A resolver dependências"
 
 #. TRANSLATORS: transaction state, checking if we have all the security keys
 #. for the operation
-#: ../lib/packagekit-glib2/pk-console-shared.c:320
+#: ../lib/packagekit-glib2/pk-console-shared.c:355
 msgid "Checking signatures"
 msgstr "A verificar assinaturas"
 
 #. TRANSLATORS: transaction state, when we return to a previous system state
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:324
-#: ../lib/packagekit-glib2/pk-console-shared.c:630
+#: ../lib/packagekit-glib2/pk-console-shared.c:359
+#: ../lib/packagekit-glib2/pk-console-shared.c:665
 msgid "Rolling back"
 msgstr "A reverter"
 
 #. TRANSLATORS: transaction state, when we're doing a test transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:328
+#: ../lib/packagekit-glib2/pk-console-shared.c:363
 msgid "Testing changes"
 msgstr "A testar alterações"
 
 #. TRANSLATORS: transaction state, when we're writing to the system package
 #. database
-#: ../lib/packagekit-glib2/pk-console-shared.c:332
+#: ../lib/packagekit-glib2/pk-console-shared.c:367
 msgid "Committing changes"
 msgstr "A aplicar alterações"
 
 #. TRANSLATORS: transaction state, requesting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:336
+#: ../lib/packagekit-glib2/pk-console-shared.c:371
 msgid "Requesting data"
 msgstr "A pedir dados"
 
 #. TRANSLATORS: transaction state, all done!
-#: ../lib/packagekit-glib2/pk-console-shared.c:340
+#: ../lib/packagekit-glib2/pk-console-shared.c:375
 msgid "Finished"
 msgstr "Terminado"
 
 #. TRANSLATORS: transaction state, in the process of cancelling
-#: ../lib/packagekit-glib2/pk-console-shared.c:344
+#: ../lib/packagekit-glib2/pk-console-shared.c:379
 msgid "Cancelling"
 msgstr "A cancelar"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:348
+#: ../lib/packagekit-glib2/pk-console-shared.c:383
 msgid "Downloading repository information"
 msgstr "A transferir informação dos repositórios"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:352
+#: ../lib/packagekit-glib2/pk-console-shared.c:387
 msgid "Downloading list of packages"
 msgstr "A transferir lista de pacotes"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:356
+#: ../lib/packagekit-glib2/pk-console-shared.c:391
 msgid "Downloading file lists"
 msgstr "A transferir listas de ficheiros"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:360
+#: ../lib/packagekit-glib2/pk-console-shared.c:395
 msgid "Downloading lists of changes"
 msgstr "A transferir listas de alterações"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:364
+#: ../lib/packagekit-glib2/pk-console-shared.c:399
 msgid "Downloading groups"
 msgstr "A transferir grupos"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:368
+#: ../lib/packagekit-glib2/pk-console-shared.c:403
 msgid "Downloading update information"
 msgstr "A transferir informações de actualizações"
 
 #. TRANSLATORS: transaction state, repackaging delta files
-#: ../lib/packagekit-glib2/pk-console-shared.c:372
+#: ../lib/packagekit-glib2/pk-console-shared.c:407
 msgid "Repackaging files"
 msgstr "A empacotar ficheiros novamente"
 
 #. TRANSLATORS: transaction state, loading databases
-#: ../lib/packagekit-glib2/pk-console-shared.c:376
+#: ../lib/packagekit-glib2/pk-console-shared.c:411
 msgid "Loading cache"
 msgstr "A carregar cache"
 
 #. TRANSLATORS: transaction state, scanning for running processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:380
+#: ../lib/packagekit-glib2/pk-console-shared.c:415
 msgid "Scanning applications"
 msgstr "A analisar aplicações"
 
 #. TRANSLATORS: transaction state, generating a list of packages installed on
 #. the system
-#: ../lib/packagekit-glib2/pk-console-shared.c:384
+#: ../lib/packagekit-glib2/pk-console-shared.c:419
 msgid "Generating package lists"
 msgstr "A gerar lista de pacotes"
 
 #. TRANSLATORS: transaction state, when we're waiting for the native tools to
 #. exit
-#: ../lib/packagekit-glib2/pk-console-shared.c:388
+#: ../lib/packagekit-glib2/pk-console-shared.c:423
 msgid "Waiting for package manager lock"
 msgstr "A esperar pelo bloqueio do gestor de pacotes"
 
 #. TRANSLATORS: transaction state, waiting for user to type in a password
-#: ../lib/packagekit-glib2/pk-console-shared.c:392
+#: ../lib/packagekit-glib2/pk-console-shared.c:427
 msgid "Waiting for authentication"
 msgstr "À espera de autenticação"
 
 #. TRANSLATORS: transaction state, we are updating the list of processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:396
+#: ../lib/packagekit-glib2/pk-console-shared.c:431
 msgid "Updating running applications"
 msgstr "A actualizar aplicações em execução"
 
 #. TRANSLATORS: transaction state, we are checking executable files currently
 #. in use
-#: ../lib/packagekit-glib2/pk-console-shared.c:400
+#: ../lib/packagekit-glib2/pk-console-shared.c:435
 msgid "Checking applications in use"
 msgstr "A verificar aplicações em uso"
 
 #. TRANSLATORS: transaction state, we are checking for libraries currently in
 #. use
-#: ../lib/packagekit-glib2/pk-console-shared.c:404
+#: ../lib/packagekit-glib2/pk-console-shared.c:439
 msgid "Checking libraries in use"
 msgstr "A verificar bibliotecas em uso"
 
 #. TRANSLATORS: transaction state, we are copying package files before or
 #. after the transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:408
+#: ../lib/packagekit-glib2/pk-console-shared.c:443
 msgid "Copying files"
 msgstr "A copiar ficheiros"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:426
+#: ../lib/packagekit-glib2/pk-console-shared.c:461
 msgid "Trivial"
 msgstr "Trivial"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:430
+#: ../lib/packagekit-glib2/pk-console-shared.c:465
 msgid "Normal"
 msgstr "Normal"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:434
+#: ../lib/packagekit-glib2/pk-console-shared.c:469
 msgid "Important"
 msgstr "Importante"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:438
+#: ../lib/packagekit-glib2/pk-console-shared.c:473
 msgid "Security"
 msgstr "Segurança"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:442
+#: ../lib/packagekit-glib2/pk-console-shared.c:477
 msgid "Bug fix "
 msgstr "Correcção de erro"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:446
+#: ../lib/packagekit-glib2/pk-console-shared.c:481
 msgid "Enhancement"
 msgstr "Melhoramentos"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:450
+#: ../lib/packagekit-glib2/pk-console-shared.c:485
 msgid "Blocked"
 msgstr "Bloqueado"
 
 #. TRANSLATORS: The state of a package
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:455
-#: ../lib/packagekit-glib2/pk-console-shared.c:528
+#: ../lib/packagekit-glib2/pk-console-shared.c:490
+#: ../lib/packagekit-glib2/pk-console-shared.c:563
 msgid "Installed"
 msgstr "Instalado"
 
 #. TRANSLATORS: The state of a package, i.e. not installed
-#: ../lib/packagekit-glib2/pk-console-shared.c:460
+#: ../lib/packagekit-glib2/pk-console-shared.c:495
 msgid "Available"
 msgstr "Disponível"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:478
+#: ../lib/packagekit-glib2/pk-console-shared.c:513
 msgid "Downloading"
 msgstr "A transferir"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:482
+#: ../lib/packagekit-glib2/pk-console-shared.c:517
 msgid "Updating"
 msgstr "A actualizar"
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:486
-#: ../lib/packagekit-glib2/pk-console-shared.c:606
+#: ../lib/packagekit-glib2/pk-console-shared.c:521
+#: ../lib/packagekit-glib2/pk-console-shared.c:641
 msgid "Installing"
 msgstr "A instalar"
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:490
-#: ../lib/packagekit-glib2/pk-console-shared.c:602
+#: ../lib/packagekit-glib2/pk-console-shared.c:525
+#: ../lib/packagekit-glib2/pk-console-shared.c:637
 msgid "Removing"
 msgstr "A remover"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:494
+#: ../lib/packagekit-glib2/pk-console-shared.c:529
 msgid "Cleaning up"
 msgstr "A limpar"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:498
+#: ../lib/packagekit-glib2/pk-console-shared.c:533
 msgid "Obsoleting"
 msgstr "A torna obsoleto"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:502
+#: ../lib/packagekit-glib2/pk-console-shared.c:537
 msgid "Reinstalling"
 msgstr "A reinstalar"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:520
+#: ../lib/packagekit-glib2/pk-console-shared.c:555
 msgid "Downloaded"
 msgstr "Transferido"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:532
+#: ../lib/packagekit-glib2/pk-console-shared.c:567
 msgid "Removed"
 msgstr "Removido"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:536
+#: ../lib/packagekit-glib2/pk-console-shared.c:571
 msgid "Cleaned up"
 msgstr "Limpo"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:540
+#: ../lib/packagekit-glib2/pk-console-shared.c:575
 msgid "Obsoleted"
 msgstr "obsoleto"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:544
+#: ../lib/packagekit-glib2/pk-console-shared.c:579
 msgid "Reinstalled"
 msgstr "Reinstalado"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:562
+#: ../lib/packagekit-glib2/pk-console-shared.c:597
 msgid "Unknown role type"
 msgstr "Tipo de perfil desconhecido"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:566
+#: ../lib/packagekit-glib2/pk-console-shared.c:601
 msgid "Getting dependencies"
 msgstr "A obter dependências"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:570
+#: ../lib/packagekit-glib2/pk-console-shared.c:605
 msgid "Getting update details"
 msgstr "A obter detalhes da actualização"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:574
+#: ../lib/packagekit-glib2/pk-console-shared.c:609
 msgid "Getting details"
 msgstr "A obter detalhes"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:578
+#: ../lib/packagekit-glib2/pk-console-shared.c:613
 msgid "Getting requires"
 msgstr "A obter obrigatórios"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:582
+#: ../lib/packagekit-glib2/pk-console-shared.c:617
 msgid "Getting updates"
 msgstr "A obter actualizações"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:586
+#: ../lib/packagekit-glib2/pk-console-shared.c:621
 msgid "Searching by details"
 msgstr "A pesquisar por detalhes"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:590
+#: ../lib/packagekit-glib2/pk-console-shared.c:625
 msgid "Searching by file"
 msgstr "A pesquisar por ficheiro"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:594
+#: ../lib/packagekit-glib2/pk-console-shared.c:629
 msgid "Searching groups"
 msgstr "A pesquisar por grupos"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:598
+#: ../lib/packagekit-glib2/pk-console-shared.c:633
 msgid "Searching by name"
 msgstr "A pesquisar por nome"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:610
+#: ../lib/packagekit-glib2/pk-console-shared.c:645
 msgid "Installing files"
 msgstr "A instalar ficheiros"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:614
+#: ../lib/packagekit-glib2/pk-console-shared.c:649
 msgid "Refreshing cache"
 msgstr "A actualizar a cache"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:618
+#: ../lib/packagekit-glib2/pk-console-shared.c:653
 msgid "Updating packages"
 msgstr "A actualizar pacotes"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:622
+#: ../lib/packagekit-glib2/pk-console-shared.c:657
 msgid "Updating system"
 msgstr "A actualizar sistema"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:626
+#: ../lib/packagekit-glib2/pk-console-shared.c:661
 msgid "Canceling"
 msgstr "A cancelar"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:634
+#: ../lib/packagekit-glib2/pk-console-shared.c:669
 msgid "Getting repositories"
 msgstr "A obter repositórios"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:638
+#: ../lib/packagekit-glib2/pk-console-shared.c:673
 msgid "Enabling repository"
 msgstr "A activar repositórios"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:642
+#: ../lib/packagekit-glib2/pk-console-shared.c:677
 msgid "Setting data"
 msgstr "A definir dados"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:646
+#: ../lib/packagekit-glib2/pk-console-shared.c:681
 msgid "Resolving"
 msgstr "A resolver"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:650
+#: ../lib/packagekit-glib2/pk-console-shared.c:685
 msgid "Getting file list"
 msgstr "A obter a lista de ficheiros"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:654
+#: ../lib/packagekit-glib2/pk-console-shared.c:689
 msgid "Getting provides"
 msgstr "A obter a lista de disponibilizações"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:658
+#: ../lib/packagekit-glib2/pk-console-shared.c:693
 msgid "Installing signature"
 msgstr "A instalar assinatura"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:662
+#: ../lib/packagekit-glib2/pk-console-shared.c:697
 msgid "Getting packages"
 msgstr "A obter pacotes"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:666
+#: ../lib/packagekit-glib2/pk-console-shared.c:701
 msgid "Accepting EULA"
 msgstr "A aceitar EULA (Acordo de Licenciamento para Utilizadores Finais)"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:674
+#: ../lib/packagekit-glib2/pk-console-shared.c:709
 msgid "Getting upgrades"
 msgstr "A obter actualizações"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:678
+#: ../lib/packagekit-glib2/pk-console-shared.c:713
 msgid "Getting categories"
 msgstr "A obter categorias"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:682
+#: ../lib/packagekit-glib2/pk-console-shared.c:717
 msgid "Getting transactions"
 msgstr "A obter transacções"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:686
-#: ../lib/packagekit-glib2/pk-console-shared.c:690
+#: ../lib/packagekit-glib2/pk-console-shared.c:721
+#: ../lib/packagekit-glib2/pk-console-shared.c:725
 msgid "Simulating install"
 msgstr "A simular instalação"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:694
+#: ../lib/packagekit-glib2/pk-console-shared.c:729
 msgid "Simulating remove"
 msgstr "A simular remoção"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:698
+#: ../lib/packagekit-glib2/pk-console-shared.c:733
 msgid "Simulating update"
 msgstr "A simular actualização"
 
@@ -1810,13 +1807,19 @@ msgstr "Os seguintes pacotes precisam de ser reinstalados:"
 msgid "The following packages have to be downgraded:"
 msgstr "Os seguintes pacotes precisam de ser desactualizados:"
 
+#. TRANSLATORS: When processing, untrusted and non-verified packages may be
+#. encountered
+#: ../lib/packagekit-glib2/pk-task-text.c:325
+msgid "The following packages are untrusted:"
+msgstr ""
+
 #. TRANSLATORS: ask the user if the proposed changes are okay
-#: ../lib/packagekit-glib2/pk-task-text.c:380
+#: ../lib/packagekit-glib2/pk-task-text.c:385
 msgid "Proceed with changes?"
 msgstr "Continuar com as alterações?"
 
 #. TRANSLATORS: tell the user we didn't do anything
-#: ../lib/packagekit-glib2/pk-task-text.c:385
+#: ../lib/packagekit-glib2/pk-task-text.c:390
 msgid "The transaction did not proceed."
 msgstr "A transacção não prosseguiu."
 
@@ -2030,105 +2033,73 @@ msgstr "Actualizar pacotes"
 msgid "Upgrade System"
 msgstr ""
 
-#. TRANSLATORS: failed due to DBus security
-#: ../src/pk-main.c:91
-msgid "Startup failed due to security policies on this machine."
-msgstr "Arranque falhou devido à politica de segurança nesta máquina."
-
-#. TRANSLATORS: only two ways this can fail...
-#: ../src/pk-main.c:93
-msgid "This can happen for two reasons:"
-msgstr "Isto pode acontecer por duas razões:"
-
-#. TRANSLATORS: only allowed to be owned by root
-#: ../src/pk-main.c:95
-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)"
-
-#. TRANSLATORS: or we are installed in a prefix
-#: ../src/pk-main.c:97
-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:223
+#: ../src/pk-main.c:149
 msgid "Packaging backend to use, e.g. dummy"
 msgstr "Plataforma de pacotes a utilizar, i.e., yum, apt"
 
 #. TRANSLATORS: if we should run in the background
-#: ../src/pk-main.c:226
+#: ../src/pk-main.c:152
 msgid "Daemonize and detach from the terminal"
 msgstr "Criar o processo como daemon e desligar da consola"
 
 #. TRANSLATORS: if we should not monitor how long we are inactive for
-#: ../src/pk-main.c:229
+#: ../src/pk-main.c:155
 msgid "Disable the idle timer"
 msgstr "Desactivar o contador do tempo inactivo"
 
 #. TRANSLATORS: show version
-#: ../src/pk-main.c:232
+#: ../src/pk-main.c:158
 msgid "Show version and exit"
 msgstr "Mostrar a versão e terminar"
 
 #. TRANSLATORS: exit after we've started up, used for user profiling
-#: ../src/pk-main.c:235
+#: ../src/pk-main.c:161
 msgid "Exit after a small delay"
 msgstr "Sair depois de uma pequena pausa"
 
 #. TRANSLATORS: exit straight away, used for automatic profiling
-#: ../src/pk-main.c:238
+#: ../src/pk-main.c:164
 msgid "Exit after the engine has loaded"
 msgstr "Terminar depois do \"motor\" ter carregado"
 
+#. TRANSLATORS: don't unset environment variables, used for debugging
+#: ../src/pk-main.c:167
+msgid "Don't clear environment on startup"
+msgstr ""
+
 #. TRANSLATORS: describing the service that is running
-#: ../src/pk-main.c:253
+#: ../src/pk-main.c:179
 msgid "PackageKit service"
 msgstr "Serviço PackageKit"
 
-#. TRANSLATORS: fatal error, dbus is not running
-#: ../src/pk-main.c:298
-msgid "Cannot connect to the system bus"
-msgstr "Não foi possível ligar ao barramento do sistema"
-
-#: ../src/pk-main.c:344
+#: ../src/pk-main.c:253
 msgid "Failed to load any of the specified backends:"
 msgstr ""
 
-#. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error
-#. follows
-#: ../src/pk-main.c:358
-msgid "Error trying to start:"
-msgstr "Erro ao tentar iniciar:"
-
 #. TRANSLATORS: is not GPG signed
-#: ../src/pk-transaction.c:2611 ../src/pk-transaction.c:2618
+#: ../src/pk-transaction.c:2696
 msgid "The software is not from a trusted source."
 msgstr "O software não é de uma origem de confiança."
 
-#: ../src/pk-transaction.c:2623
+#: ../src/pk-transaction.c:2704
 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."
 
-#: ../src/pk-transaction.c:2624
+#: ../src/pk-transaction.c:2705
 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."
 
-#: ../src/pk-transaction.c:2634
+#: ../src/pk-transaction.c:2715
 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."
 
-#: ../src/pk-transaction.c:2635
+#: ../src/pk-transaction.c:2716
 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ê-"
diff --git a/po/pt_BR.po b/po/pt_BR.po
index ad9f465..9b4bc2a 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -2,14 +2,16 @@
 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
 # This file is distributed under the same license as the PACKAGE package.
 # 
-# Richard Hughes <richard at hughsie.com>, 2011
+# Translators:
+# Igor Pires Soares <igor at projetofedora.org>, 2008, 2009, 2010.
+# Richard Hughes <richard at hughsie.com>, 2011.
 msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-04 10:50+0100\n"
-"PO-Revision-Date: 2011-05-04 09:56+0000\n"
-"Last-Translator: hughsie <richard at hughsie.com>\n"
+"POT-Creation-Date: 2011-11-10 19:50+0000\n"
+"PO-Revision-Date: 2011-11-10 19:50+0000\n"
+"Last-Translator: Richard Hughes <richard at hughsie.com>\n"
 "Language-Team: LANGUAGE <LL at li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -195,7 +197,7 @@ msgstr "Emissão"
 
 #. TRANSLATORS: details about the update, date the update was updated
 #. TRANSLATORS: The action of the package, in past tense
-#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:524
+#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:559
 msgid "Updated"
 msgstr "Atualizado em"
 
@@ -285,7 +287,7 @@ msgstr ""
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
 #: ../client/pk-console.c:704
-#: ../contrib/command-not-found/pk-command-not-found.c:639
+#: ../contrib/command-not-found/pk-command-not-found.c:634
 msgid "The transaction failed"
 msgstr "Falha na transação"
 
@@ -339,21 +341,21 @@ msgstr ""
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:866
+#: ../client/pk-console.c:871
 #, c-format
 msgid "This tool could not find any available package: %s"
 msgstr "Esta ferramenta não pôde localizar nenhum pacote disponível: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:894
+#: ../client/pk-console.c:899
 #, c-format
 msgid "This tool could not find the installed package: %s"
 msgstr "Esta ferramenta não pôde localizar o pacote instalado: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:922 ../client/pk-console.c:950
+#: ../client/pk-console.c:927 ../client/pk-console.c:955
 #, c-format
 msgid "This tool could not find the package: %s"
 msgstr "Esta ferramente não pôde localizar o pacote: %s"
@@ -366,71 +368,71 @@ msgstr "Esta ferramente não pôde localizar o pacote: %s"
 #. detailed error follows
 #. TRANSLATORS: The package name was not found in any software sources. The
 #. detailed error follows
-#: ../client/pk-console.c:978 ../client/pk-console.c:1006
-#: ../client/pk-console.c:1034 ../client/pk-console.c:1062
-#: ../client/pk-console.c:1090
+#: ../client/pk-console.c:983 ../client/pk-console.c:1011
+#: ../client/pk-console.c:1039 ../client/pk-console.c:1067
+#: ../client/pk-console.c:1095
 #, c-format
 msgid "This tool could not find all the packages: %s"
 msgstr "Esta ferramenta não pôde localizar todos os pacotes: %s"
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek
 #. without a paddle
-#: ../client/pk-console.c:1119
+#: ../client/pk-console.c:1124
 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:1153
+#: ../client/pk-console.c:1158
 msgid "PackageKit Console Interface"
 msgstr "Interface em Console do PackageKit"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1155
+#: ../client/pk-console.c:1160
 msgid "Subcommands:"
 msgstr "Subcomandos:"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was
 #. last executed
-#: ../client/pk-console.c:1235
+#: ../client/pk-console.c:1240
 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: command line argument, just show the version string
-#: ../client/pk-console.c:1277 ../client/pk-monitor.c:371
+#: ../client/pk-console.c:1282 ../client/pk-monitor.c:371
 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:1280
+#: ../client/pk-console.c:1285
 msgid "Set the filter, e.g. installed"
 msgstr "Definir o filtro, p. ex.: instalados"
 
 #. TRANSLATORS: command line argument, use a non-standard install prefix
-#: ../client/pk-console.c:1283
+#: ../client/pk-console.c:1288
 msgid "Set the install root, e.g. '/' or '/mnt/ltsp'"
 msgstr ""
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1286
+#: ../client/pk-console.c:1291
 msgid "Exit without waiting for actions to complete"
 msgstr "Sair sem esperar pelo término das ações"
 
 #. command line argument, do we ask questions
-#: ../client/pk-console.c:1289
+#: ../client/pk-console.c:1294
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:525
 msgid "Install the packages without asking for confirmation"
 msgstr "Instala os pacotes sem pedir confirmação"
 
 #. TRANSLATORS: command line argument, this command is not a priority
-#: ../client/pk-console.c:1292
+#: ../client/pk-console.c:1297
 msgid "Run the command using idle network bandwidth and also using less power"
 msgstr ""
 "Executa o comando usando a banda de rede ociosa e usando também menos "
 "energia"
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1295
+#: ../client/pk-console.c:1300
 msgid ""
 "Print to screen a machine readable output, rather than using animated "
 "widgets"
@@ -439,157 +441,157 @@ msgstr ""
 "animados"
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1298
+#: ../client/pk-console.c:1303
 msgid "The maximum metadata cache age. Use -1 for 'never'."
 msgstr ""
 
 #. TRANSLATORS: command line argument, --help
-#: ../client/pk-console.c:1301
+#: ../client/pk-console.c:1306
 msgid "Show help options."
 msgstr ""
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1331
+#: ../client/pk-console.c:1336
 msgid "Failed to parse command line"
 msgstr ""
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1341
+#: ../client/pk-console.c:1346
 msgid "Failed to contact PackageKit"
 msgstr "Falha ao contatar o PackageKit"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1394
+#: ../client/pk-console.c:1399
 msgid "The proxy could not be set"
 msgstr ""
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1406
+#: ../client/pk-console.c:1411
 msgid "The install root could not be set"
 msgstr ""
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1418
+#: ../client/pk-console.c:1423
 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:1437
+#: ../client/pk-console.c:1442
 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:1444 ../client/pk-console.c:1456
-#: ../client/pk-console.c:1468 ../client/pk-console.c:1480
+#: ../client/pk-console.c:1449 ../client/pk-console.c:1461
+#: ../client/pk-console.c:1473 ../client/pk-console.c:1485
 msgid "A search term is required"
 msgstr "Um termo de pesquisa é requerido"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1490
+#: ../client/pk-console.c:1495
 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:1496
+#: ../client/pk-console.c:1501
 msgid "A package name to install is required"
 msgstr "O nome do pacote a ser instalado é requerido"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1505
+#: ../client/pk-console.c:1510
 msgid "A filename to install is required"
 msgstr "O nome do arquivo a ser instalado é requerido"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1516
+#: ../client/pk-console.c:1521
 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:1527
+#: ../client/pk-console.c:1532
 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:1536
+#: ../client/pk-console.c:1541
 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:1543
+#: ../client/pk-console.c:1548
 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:1552
+#: ../client/pk-console.c:1557
 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:1563
+#: ../client/pk-console.c:1568
 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:1584
+#: ../client/pk-console.c:1589
 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:1595 ../client/pk-console.c:1606
+#: ../client/pk-console.c:1600 ../client/pk-console.c:1611
 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:1617
+#: ../client/pk-console.c:1622
 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:1634
+#: ../client/pk-console.c:1639
 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:1641
+#: ../client/pk-console.c:1646
 msgid "A correct role is required"
 msgstr "Um modo correto é requerido"
 
 #. 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:1651 ../client/pk-console.c:1665
-#: ../client/pk-console.c:1674 ../client/pk-console.c:1694
-#: ../client/pk-console.c:1703 ../client/pk-generate-pack.c:314
+#: ../client/pk-console.c:1656 ../client/pk-console.c:1670
+#: ../client/pk-console.c:1679 ../client/pk-console.c:1699
+#: ../client/pk-console.c:1708 ../client/pk-generate-pack.c:314
 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:1683
+#: ../client/pk-console.c:1688
 msgid "A package provide string is required"
 msgstr "É necessário especificar o que o pacote fornece"
 
 #. TRANSLATORS: The user did not provide a distro name
-#: ../client/pk-console.c:1727
+#: ../client/pk-console.c:1732
 msgid "A distribution name is required"
 msgstr ""
 
 #. TRANSLATORS: The user did not provide an upgrade type
-#: ../client/pk-console.c:1733
+#: ../client/pk-console.c:1738
 msgid "An upgrade type is required, e.g. 'minimal', 'default' or 'complete'"
 msgstr ""
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command
 #. line
-#: ../client/pk-console.c:1783
+#: ../client/pk-console.c:1788
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "A opção \"%s\" não é suportada"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:1793
+#: ../client/pk-console.c:1798
 msgid "Command failed"
 msgstr "O comando falhou"
 
@@ -730,161 +732,156 @@ msgid "PackageKit Monitor"
 msgstr "Monitor do PackageKit"
 
 #. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/pk-plugin-install.c:499
+#: ../contrib/browser-plugin/pk-plugin-install.c:503
 msgid "Getting package information..."
 msgstr "Obtendo informações do pacote..."
 
 #. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/pk-plugin-install.c:505
+#: ../contrib/browser-plugin/pk-plugin-install.c:509
 #, c-format
 msgid "Run %s"
 msgstr "Executar %s"
 
 #. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:511
+#: ../contrib/browser-plugin/pk-plugin-install.c:515
 msgid "Installed version"
 msgstr "Versão instalada"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:519
+#: ../contrib/browser-plugin/pk-plugin-install.c:523
 #, 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:525
+#: ../contrib/browser-plugin/pk-plugin-install.c:529
 msgid "Run now"
 msgstr "Executar agora"
 
 #. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:531
+#: ../contrib/browser-plugin/pk-plugin-install.c:535
 #, 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:537
+#: ../contrib/browser-plugin/pk-plugin-install.c:541
 #, c-format
 msgid "Install %s now"
 msgstr "Instalar %s agora"
 
 #. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:540
+#: ../contrib/browser-plugin/pk-plugin-install.c:544
 msgid "Version"
 msgstr "Versão"
 
 #. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/pk-plugin-install.c:545
+#: ../contrib/browser-plugin/pk-plugin-install.c:549
 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:550
+#: ../contrib/browser-plugin/pk-plugin-install.c:554
 msgid "Installing..."
 msgstr "Instalando..."
 
 #. TRANSLATORS: downloading repo data so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:366
+#: ../contrib/command-not-found/pk-command-not-found.c:363
 msgid "Downloading details about the software sources."
 msgstr "Baixando detalhes das fontes de programas."
 
 #. TRANSLATORS: downloading file lists so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:370
+#: ../contrib/command-not-found/pk-command-not-found.c:367
 msgid "Downloading filelists (this may take some time to complete)."
 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:374
+#: ../contrib/command-not-found/pk-command-not-found.c:371
 msgid "Waiting for package manager lock."
 msgstr "Esperando pelo bloqueio do gerenciador de pacotes."
 
 #. TRANSLATORS: loading package cache so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:378
+#: ../contrib/command-not-found/pk-command-not-found.c:375
 msgid "Loading list of packages."
 msgstr "Baixando lista de pacotes."
 
 #. TRANSLATORS: we failed to find the package, this shouldn't happen
-#: ../contrib/command-not-found/pk-command-not-found.c:444
+#: ../contrib/command-not-found/pk-command-not-found.c:439
 msgid "Failed to search for file"
 msgstr "Falha ao pesquisar pelo arquivo"
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
-#: ../contrib/command-not-found/pk-command-not-found.c:456
+#: ../contrib/command-not-found/pk-command-not-found.c:451
 msgid "Getting the list of files failed"
 msgstr ""
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:602
+#: ../contrib/command-not-found/pk-command-not-found.c:597
 msgid "Failed to launch:"
 msgstr "Falha ao executar:"
 
 #. TRANSLATORS: we failed to install the package
-#: ../contrib/command-not-found/pk-command-not-found.c:630
+#: ../contrib/command-not-found/pk-command-not-found.c:625
 msgid "Failed to install packages"
 msgstr "Falha ao instalar pacotes"
 
-#. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/command-not-found/pk-command-not-found.c:706
-msgid "PackageKit Command Not Found"
-msgstr "Comando do PackageKit não localizado"
-
 #. TRANSLATORS: the prefix of all the output telling the user
 #. * why it's not executing. NOTE: this is lowercase to mimic
 #. * the style of bash itself -- apologies
-#: ../contrib/command-not-found/pk-command-not-found.c:741
+#: ../contrib/command-not-found/pk-command-not-found.c:723
 msgid "command not found"
 msgstr ""
 
 #. TRANSLATORS: tell the user what we think the command is
-#: ../contrib/command-not-found/pk-command-not-found.c:759
+#: ../contrib/command-not-found/pk-command-not-found.c:741
 msgid "Similar command is:"
 msgstr "O comando similar é:"
 
 #. TRANSLATORS: Ask the user if we should run the similar command
-#: ../contrib/command-not-found/pk-command-not-found.c:773
+#: ../contrib/command-not-found/pk-command-not-found.c:755
 msgid "Run similar command:"
 msgstr "Executar 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:787
-#: ../contrib/command-not-found/pk-command-not-found.c:796
+#: ../contrib/command-not-found/pk-command-not-found.c:769
+#: ../contrib/command-not-found/pk-command-not-found.c:778
 msgid "Similar commands are:"
 msgstr "Os comandos similares são:"
 
 #. TRANSLATORS: ask the user to choose a file to run
-#: ../contrib/command-not-found/pk-command-not-found.c:803
+#: ../contrib/command-not-found/pk-command-not-found.c:785
 msgid "Please choose a command to run"
 msgstr "Por favor, escolha um comando a ser executado"
 
 #. TRANSLATORS: tell the user what package provides the command
-#: ../contrib/command-not-found/pk-command-not-found.c:821
+#: ../contrib/command-not-found/pk-command-not-found.c:803
 msgid "The package providing this file is:"
 msgstr "O pacote que fornece esse arquivo é:"
 
 #. TRANSLATORS: as the user if we want to install a package to provide the
 #. command
-#: ../contrib/command-not-found/pk-command-not-found.c:828
+#: ../contrib/command-not-found/pk-command-not-found.c:810
 #, c-format
 msgid "Install package '%s' to provide command '%s'?"
 msgstr "Instalar pacote \"%s\" para fornecer o comando \"%s\"?"
 
 #. TRANSLATORS: Show the user a list of packages that provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:855
+#: ../contrib/command-not-found/pk-command-not-found.c:837
 msgid "Packages providing this file are:"
 msgstr "Os pacotes que fornecem esse arquivo 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:865
+#: ../contrib/command-not-found/pk-command-not-found.c:847
 msgid "Suitable packages are:"
 msgstr "Os pacotes apropriados são:"
 
 #. get selection
 #. TRANSLATORS: ask the user to choose a file to install
-#: ../contrib/command-not-found/pk-command-not-found.c:874
+#: ../contrib/command-not-found/pk-command-not-found.c:856
 msgid "Please choose a package to install"
 msgstr "Por favor, escolha um pacote a ser instalado"
 
@@ -1059,7 +1056,7 @@ msgstr "Os pacotes não serão instalados no modo de simulação"
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
 #. TRANSLATORS: transaction state, installing packages
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:860
-#: ../lib/packagekit-glib2/pk-console-shared.c:296
+#: ../lib/packagekit-glib2/pk-console-shared.c:331
 #, c-format
 msgid "Installing packages"
 msgstr "Instalando pacotes"
@@ -1193,474 +1190,474 @@ msgstr "Lista de Pacotes do PackageKit"
 msgid "PackageKit Service Pack"
 msgstr "Pacote de serviços do PackageKit"
 
-#: ../lib/packagekit-glib2/pk-console-shared.c:64
+#: ../lib/packagekit-glib2/pk-console-shared.c:65
 #, c-format
 msgid "Please enter a number from 1 to %i: "
 msgstr "Por favor, insira um número entre 1 e %i: "
 
 #. TRANSLATORS: more than one package could be found that matched, to follow
 #. is a list of possible packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:198
+#: ../lib/packagekit-glib2/pk-console-shared.c:233
 msgid "More than one package matches:"
 msgstr "Há mais de um pacote correspondente:"
 
 #. TRANSLATORS: This finds out which package in the list to use
-#: ../lib/packagekit-glib2/pk-console-shared.c:209
+#: ../lib/packagekit-glib2/pk-console-shared.c:244
 msgid "Please choose the correct package: "
 msgstr "Por favor, escolha o pacote correto: "
 
 #. TRANSLATORS: This is when the transaction status is not known
-#: ../lib/packagekit-glib2/pk-console-shared.c:264
+#: ../lib/packagekit-glib2/pk-console-shared.c:299
 msgid "Unknown state"
 msgstr "Estado desconhecido"
 
 #. TRANSLATORS: transaction state, the daemon is in the process of starting
-#: ../lib/packagekit-glib2/pk-console-shared.c:268
+#: ../lib/packagekit-glib2/pk-console-shared.c:303
 msgid "Starting"
 msgstr "Iniciando"
 
 #. TRANSLATORS: transaction state, the transaction is waiting for another to
 #. complete
-#: ../lib/packagekit-glib2/pk-console-shared.c:272
+#: ../lib/packagekit-glib2/pk-console-shared.c:307
 msgid "Waiting in queue"
 msgstr "Esperando na fila"
 
 #. TRANSLATORS: transaction state, just started
-#: ../lib/packagekit-glib2/pk-console-shared.c:276
+#: ../lib/packagekit-glib2/pk-console-shared.c:311
 msgid "Running"
 msgstr "Executando"
 
 #. TRANSLATORS: transaction state, is querying data
-#: ../lib/packagekit-glib2/pk-console-shared.c:280
+#: ../lib/packagekit-glib2/pk-console-shared.c:315
 msgid "Querying"
 msgstr "Consultando"
 
 #. TRANSLATORS: transaction state, getting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:284
+#: ../lib/packagekit-glib2/pk-console-shared.c:319
 msgid "Getting information"
 msgstr "Obtendo informações"
 
 #. TRANSLATORS: transaction state, removing packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:288
+#: ../lib/packagekit-glib2/pk-console-shared.c:323
 msgid "Removing packages"
 msgstr "Removendo pacotes"
 
 #. TRANSLATORS: transaction state, downloading package files
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:292
-#: ../lib/packagekit-glib2/pk-console-shared.c:670
+#: ../lib/packagekit-glib2/pk-console-shared.c:327
+#: ../lib/packagekit-glib2/pk-console-shared.c:705
 msgid "Downloading packages"
 msgstr "Baixando pacotes"
 
 #. TRANSLATORS: transaction state, refreshing internal lists
-#: ../lib/packagekit-glib2/pk-console-shared.c:300
+#: ../lib/packagekit-glib2/pk-console-shared.c:335
 msgid "Refreshing software list"
 msgstr "Recarregando lista de programas"
 
 #. TRANSLATORS: transaction state, installing updates
-#: ../lib/packagekit-glib2/pk-console-shared.c:304
+#: ../lib/packagekit-glib2/pk-console-shared.c:339
 msgid "Installing updates"
 msgstr "Instalando atualizações"
 
 #. TRANSLATORS: transaction state, removing old packages, and cleaning config
 #. files
-#: ../lib/packagekit-glib2/pk-console-shared.c:308
+#: ../lib/packagekit-glib2/pk-console-shared.c:343
 msgid "Cleaning up packages"
 msgstr "Limpando pacotes"
 
 #. TRANSLATORS: transaction state, obsoleting old packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:312
+#: ../lib/packagekit-glib2/pk-console-shared.c:347
 msgid "Obsoleting packages"
 msgstr "Tornando pacotes obsoletos"
 
 #. TRANSLATORS: transaction state, checking the transaction before we do it
-#: ../lib/packagekit-glib2/pk-console-shared.c:316
+#: ../lib/packagekit-glib2/pk-console-shared.c:351
 msgid "Resolving dependencies"
 msgstr "Resolvendo dependências"
 
 #. TRANSLATORS: transaction state, checking if we have all the security keys
 #. for the operation
-#: ../lib/packagekit-glib2/pk-console-shared.c:320
+#: ../lib/packagekit-glib2/pk-console-shared.c:355
 msgid "Checking signatures"
 msgstr "Verificando assinaturas"
 
 #. TRANSLATORS: transaction state, when we return to a previous system state
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:324
-#: ../lib/packagekit-glib2/pk-console-shared.c:630
+#: ../lib/packagekit-glib2/pk-console-shared.c:359
+#: ../lib/packagekit-glib2/pk-console-shared.c:665
 msgid "Rolling back"
 msgstr "Retrocedendo"
 
 #. TRANSLATORS: transaction state, when we're doing a test transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:328
+#: ../lib/packagekit-glib2/pk-console-shared.c:363
 msgid "Testing changes"
 msgstr "Testando alterações"
 
 #. TRANSLATORS: transaction state, when we're writing to the system package
 #. database
-#: ../lib/packagekit-glib2/pk-console-shared.c:332
+#: ../lib/packagekit-glib2/pk-console-shared.c:367
 msgid "Committing changes"
 msgstr "Submetendo alterações"
 
 #. TRANSLATORS: transaction state, requesting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:336
+#: ../lib/packagekit-glib2/pk-console-shared.c:371
 msgid "Requesting data"
 msgstr "Requisitando dados"
 
 #. TRANSLATORS: transaction state, all done!
-#: ../lib/packagekit-glib2/pk-console-shared.c:340
+#: ../lib/packagekit-glib2/pk-console-shared.c:375
 msgid "Finished"
 msgstr "Finalizado"
 
 #. TRANSLATORS: transaction state, in the process of cancelling
-#: ../lib/packagekit-glib2/pk-console-shared.c:344
+#: ../lib/packagekit-glib2/pk-console-shared.c:379
 msgid "Cancelling"
 msgstr "Cancelando"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:348
+#: ../lib/packagekit-glib2/pk-console-shared.c:383
 msgid "Downloading repository information"
 msgstr "Baixando informações do repositório"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:352
+#: ../lib/packagekit-glib2/pk-console-shared.c:387
 msgid "Downloading list of packages"
 msgstr "Baixando a lista de pacotes"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:356
+#: ../lib/packagekit-glib2/pk-console-shared.c:391
 msgid "Downloading file lists"
 msgstr "Baixando listas de arquivos"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:360
+#: ../lib/packagekit-glib2/pk-console-shared.c:395
 msgid "Downloading lists of changes"
 msgstr "Baixando a lista de alterações"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:364
+#: ../lib/packagekit-glib2/pk-console-shared.c:399
 msgid "Downloading groups"
 msgstr "Baixando grupos"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:368
+#: ../lib/packagekit-glib2/pk-console-shared.c:403
 msgid "Downloading update information"
 msgstr "Baixando informações de atualização"
 
 #. TRANSLATORS: transaction state, repackaging delta files
-#: ../lib/packagekit-glib2/pk-console-shared.c:372
+#: ../lib/packagekit-glib2/pk-console-shared.c:407
 msgid "Repackaging files"
 msgstr "Reempacotando arquivos"
 
 #. TRANSLATORS: transaction state, loading databases
-#: ../lib/packagekit-glib2/pk-console-shared.c:376
+#: ../lib/packagekit-glib2/pk-console-shared.c:411
 msgid "Loading cache"
 msgstr "Carregando cache"
 
 #. TRANSLATORS: transaction state, scanning for running processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:380
+#: ../lib/packagekit-glib2/pk-console-shared.c:415
 msgid "Scanning applications"
 msgstr "Analisando aplicativos"
 
 #. TRANSLATORS: transaction state, generating a list of packages installed on
 #. the system
-#: ../lib/packagekit-glib2/pk-console-shared.c:384
+#: ../lib/packagekit-glib2/pk-console-shared.c:419
 msgid "Generating package lists"
 msgstr "Gerando listas de pacotes"
 
 #. TRANSLATORS: transaction state, when we're waiting for the native tools to
 #. exit
-#: ../lib/packagekit-glib2/pk-console-shared.c:388
+#: ../lib/packagekit-glib2/pk-console-shared.c:423
 msgid "Waiting for package manager lock"
 msgstr "Esperando pelo bloqueio do gerenciador de pacotes"
 
 #. TRANSLATORS: transaction state, waiting for user to type in a password
-#: ../lib/packagekit-glib2/pk-console-shared.c:392
+#: ../lib/packagekit-glib2/pk-console-shared.c:427
 msgid "Waiting for authentication"
 msgstr "Esperando pela autenticação"
 
 #. TRANSLATORS: transaction state, we are updating the list of processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:396
+#: ../lib/packagekit-glib2/pk-console-shared.c:431
 msgid "Updating running applications"
 msgstr "Atualizando aplicativos em execução"
 
 #. TRANSLATORS: transaction state, we are checking executable files currently
 #. in use
-#: ../lib/packagekit-glib2/pk-console-shared.c:400
+#: ../lib/packagekit-glib2/pk-console-shared.c:435
 msgid "Checking applications in use"
 msgstr "Verificando aplicativos em uso"
 
 #. TRANSLATORS: transaction state, we are checking for libraries currently in
 #. use
-#: ../lib/packagekit-glib2/pk-console-shared.c:404
+#: ../lib/packagekit-glib2/pk-console-shared.c:439
 msgid "Checking libraries in use"
 msgstr "Verificando bibliotecas em uso"
 
 #. TRANSLATORS: transaction state, we are copying package files before or
 #. after the transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:408
+#: ../lib/packagekit-glib2/pk-console-shared.c:443
 msgid "Copying files"
 msgstr "Copiando arquivos"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:426
+#: ../lib/packagekit-glib2/pk-console-shared.c:461
 msgid "Trivial"
 msgstr "Trivial"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:430
+#: ../lib/packagekit-glib2/pk-console-shared.c:465
 msgid "Normal"
 msgstr "Normal"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:434
+#: ../lib/packagekit-glib2/pk-console-shared.c:469
 msgid "Important"
 msgstr "Importante"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:438
+#: ../lib/packagekit-glib2/pk-console-shared.c:473
 msgid "Security"
 msgstr "Segurança"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:442
+#: ../lib/packagekit-glib2/pk-console-shared.c:477
 msgid "Bug fix "
 msgstr "Correção de erros"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:446
+#: ../lib/packagekit-glib2/pk-console-shared.c:481
 msgid "Enhancement"
 msgstr "Melhoria"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:450
+#: ../lib/packagekit-glib2/pk-console-shared.c:485
 msgid "Blocked"
 msgstr "Bloqueado"
 
 #. TRANSLATORS: The state of a package
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:455
-#: ../lib/packagekit-glib2/pk-console-shared.c:528
+#: ../lib/packagekit-glib2/pk-console-shared.c:490
+#: ../lib/packagekit-glib2/pk-console-shared.c:563
 msgid "Installed"
 msgstr "Instalado"
 
 #. TRANSLATORS: The state of a package, i.e. not installed
-#: ../lib/packagekit-glib2/pk-console-shared.c:460
+#: ../lib/packagekit-glib2/pk-console-shared.c:495
 msgid "Available"
 msgstr "Disponível"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:478
+#: ../lib/packagekit-glib2/pk-console-shared.c:513
 msgid "Downloading"
 msgstr "Baixando"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:482
+#: ../lib/packagekit-glib2/pk-console-shared.c:517
 msgid "Updating"
 msgstr "Atualizando"
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:486
-#: ../lib/packagekit-glib2/pk-console-shared.c:606
+#: ../lib/packagekit-glib2/pk-console-shared.c:521
+#: ../lib/packagekit-glib2/pk-console-shared.c:641
 msgid "Installing"
 msgstr "Instalando"
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:490
-#: ../lib/packagekit-glib2/pk-console-shared.c:602
+#: ../lib/packagekit-glib2/pk-console-shared.c:525
+#: ../lib/packagekit-glib2/pk-console-shared.c:637
 msgid "Removing"
 msgstr "Removendo"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:494
+#: ../lib/packagekit-glib2/pk-console-shared.c:529
 msgid "Cleaning up"
 msgstr "Limpando"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:498
+#: ../lib/packagekit-glib2/pk-console-shared.c:533
 msgid "Obsoleting"
 msgstr "Definindo como obsoleto"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:502
+#: ../lib/packagekit-glib2/pk-console-shared.c:537
 msgid "Reinstalling"
 msgstr "Reinstalando"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:520
+#: ../lib/packagekit-glib2/pk-console-shared.c:555
 msgid "Downloaded"
 msgstr "Baixado"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:532
+#: ../lib/packagekit-glib2/pk-console-shared.c:567
 msgid "Removed"
 msgstr "Removido"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:536
+#: ../lib/packagekit-glib2/pk-console-shared.c:571
 msgid "Cleaned up"
 msgstr "Limpo"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:540
+#: ../lib/packagekit-glib2/pk-console-shared.c:575
 msgid "Obsoleted"
 msgstr "Obsoleto"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:544
+#: ../lib/packagekit-glib2/pk-console-shared.c:579
 msgid "Reinstalled"
 msgstr "Reinstalado"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:562
+#: ../lib/packagekit-glib2/pk-console-shared.c:597
 msgid "Unknown role type"
 msgstr "Tipo de papel desconhecido"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:566
+#: ../lib/packagekit-glib2/pk-console-shared.c:601
 msgid "Getting dependencies"
 msgstr "Obtendo dependências"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:570
+#: ../lib/packagekit-glib2/pk-console-shared.c:605
 msgid "Getting update details"
 msgstr "Obtendo detalhes da atualização"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:574
+#: ../lib/packagekit-glib2/pk-console-shared.c:609
 msgid "Getting details"
 msgstr "Obtendo detalhes"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:578
+#: ../lib/packagekit-glib2/pk-console-shared.c:613
 msgid "Getting requires"
 msgstr "Obtendo requerimentos"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:582
+#: ../lib/packagekit-glib2/pk-console-shared.c:617
 msgid "Getting updates"
 msgstr "Obtendo atualizações"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:586
+#: ../lib/packagekit-glib2/pk-console-shared.c:621
 msgid "Searching by details"
 msgstr "Pesquisando pelos detalhes"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:590
+#: ../lib/packagekit-glib2/pk-console-shared.c:625
 msgid "Searching by file"
 msgstr "Pesquisando pelo arquivo"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:594
+#: ../lib/packagekit-glib2/pk-console-shared.c:629
 msgid "Searching groups"
 msgstr "Pesquisando grupos"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:598
+#: ../lib/packagekit-glib2/pk-console-shared.c:633
 msgid "Searching by name"
 msgstr "Pesquisando pelo nome"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:610
+#: ../lib/packagekit-glib2/pk-console-shared.c:645
 msgid "Installing files"
 msgstr "Instalando arquivos"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:614
+#: ../lib/packagekit-glib2/pk-console-shared.c:649
 msgid "Refreshing cache"
 msgstr "Recarregando cache"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:618
+#: ../lib/packagekit-glib2/pk-console-shared.c:653
 msgid "Updating packages"
 msgstr "Atualizando pacotes"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:622
+#: ../lib/packagekit-glib2/pk-console-shared.c:657
 msgid "Updating system"
 msgstr "Atualizando sistema"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:626
+#: ../lib/packagekit-glib2/pk-console-shared.c:661
 msgid "Canceling"
 msgstr "Cancelando"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:634
+#: ../lib/packagekit-glib2/pk-console-shared.c:669
 msgid "Getting repositories"
 msgstr "Obtendo repositórios"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:638
+#: ../lib/packagekit-glib2/pk-console-shared.c:673
 msgid "Enabling repository"
 msgstr "Habilitando repositório"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:642
+#: ../lib/packagekit-glib2/pk-console-shared.c:677
 msgid "Setting data"
 msgstr "Configurando dados"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:646
+#: ../lib/packagekit-glib2/pk-console-shared.c:681
 msgid "Resolving"
 msgstr "Resolvendo"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:650
+#: ../lib/packagekit-glib2/pk-console-shared.c:685
 msgid "Getting file list"
 msgstr "Obtendo lista de arquivos"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:654
+#: ../lib/packagekit-glib2/pk-console-shared.c:689
 msgid "Getting provides"
 msgstr "Obtendo o que é fornecido"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:658
+#: ../lib/packagekit-glib2/pk-console-shared.c:693
 msgid "Installing signature"
 msgstr "Instalando assinatura"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:662
+#: ../lib/packagekit-glib2/pk-console-shared.c:697
 msgid "Getting packages"
 msgstr "Obtendo pacotes"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:666
+#: ../lib/packagekit-glib2/pk-console-shared.c:701
 msgid "Accepting EULA"
 msgstr "Aceitando a licença EULA"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:674
+#: ../lib/packagekit-glib2/pk-console-shared.c:709
 msgid "Getting upgrades"
 msgstr "Obtendo atualizações"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:678
+#: ../lib/packagekit-glib2/pk-console-shared.c:713
 msgid "Getting categories"
 msgstr "Obtendo categorias"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:682
+#: ../lib/packagekit-glib2/pk-console-shared.c:717
 msgid "Getting transactions"
 msgstr "Obtendo transações"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:686
-#: ../lib/packagekit-glib2/pk-console-shared.c:690
+#: ../lib/packagekit-glib2/pk-console-shared.c:721
+#: ../lib/packagekit-glib2/pk-console-shared.c:725
 msgid "Simulating install"
 msgstr "Simulando instalação"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:694
+#: ../lib/packagekit-glib2/pk-console-shared.c:729
 msgid "Simulating remove"
 msgstr "Simulando remoção"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:698
+#: ../lib/packagekit-glib2/pk-console-shared.c:733
 msgid "Simulating update"
 msgstr "Simulando atualização"
 
@@ -1810,13 +1807,19 @@ msgstr "Os seguintes pacotes têm que ser reinstalados:"
 msgid "The following packages have to be downgraded:"
 msgstr "Os seguintes pacotes têm que ser desatualizados:"
 
+#. TRANSLATORS: When processing, untrusted and non-verified packages may be
+#. encountered
+#: ../lib/packagekit-glib2/pk-task-text.c:325
+msgid "The following packages are untrusted:"
+msgstr ""
+
 #. TRANSLATORS: ask the user if the proposed changes are okay
-#: ../lib/packagekit-glib2/pk-task-text.c:380
+#: ../lib/packagekit-glib2/pk-task-text.c:385
 msgid "Proceed with changes?"
 msgstr "Continuar com as alterações?"
 
 #. TRANSLATORS: tell the user we didn't do anything
-#: ../lib/packagekit-glib2/pk-task-text.c:385
+#: ../lib/packagekit-glib2/pk-task-text.c:390
 msgid "The transaction did not proceed."
 msgstr "A transação não procedeu."
 
@@ -2028,105 +2031,74 @@ msgstr "Atualizar pacotes"
 msgid "Upgrade System"
 msgstr ""
 
-#. TRANSLATORS: failed due to DBus security
-#: ../src/pk-main.c:91
-msgid "Startup failed due to security policies on this machine."
-msgstr "A inicialização falhou devido à políticas de segurança desta máquina"
-
-#. TRANSLATORS: only two ways this can fail...
-#: ../src/pk-main.c:93
-msgid "This can happen for two reasons:"
-msgstr "Isso pode acontecer por duas razões:"
-
-#. TRANSLATORS: only allowed to be owned by root
-#: ../src/pk-main.c:95
-msgid "The correct user is not launching the executable (usually root)"
-msgstr ""
-"O usuário correto não está iniciando o executável (normalmente o root)"
-
-#. TRANSLATORS: or we are installed in a prefix
-#: ../src/pk-main.c:97
-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:223
+#: ../src/pk-main.c:149
 msgid "Packaging backend to use, e.g. dummy"
 msgstr "O backend de empacotamento a ser utilizado, p. ex.: dummy"
 
 #. TRANSLATORS: if we should run in the background
-#: ../src/pk-main.c:226
+#: ../src/pk-main.c:152
 msgid "Daemonize and detach from the terminal"
 msgstr "Tornar um daemon e separar do terminal"
 
 #. TRANSLATORS: if we should not monitor how long we are inactive for
-#: ../src/pk-main.c:229
+#: ../src/pk-main.c:155
 msgid "Disable the idle timer"
 msgstr "Desabilitar o tempo de ociosidade"
 
 #. TRANSLATORS: show version
-#: ../src/pk-main.c:232
+#: ../src/pk-main.c:158
 msgid "Show version and exit"
 msgstr "Mostrar a versão e sair"
 
 #. TRANSLATORS: exit after we've started up, used for user profiling
-#: ../src/pk-main.c:235
+#: ../src/pk-main.c:161
 msgid "Exit after a small delay"
 msgstr "Sair após um pequeno atraso"
 
 #. TRANSLATORS: exit straight away, used for automatic profiling
-#: ../src/pk-main.c:238
+#: ../src/pk-main.c:164
 msgid "Exit after the engine has loaded"
 msgstr "Sair após o carregamento do mecanismo"
 
+#. TRANSLATORS: don't unset environment variables, used for debugging
+#: ../src/pk-main.c:167
+msgid "Don't clear environment on startup"
+msgstr ""
+
 #. TRANSLATORS: describing the service that is running
-#: ../src/pk-main.c:253
+#: ../src/pk-main.c:179
 msgid "PackageKit service"
 msgstr "Serviço do PackageKit"
 
-#. TRANSLATORS: fatal error, dbus is not running
-#: ../src/pk-main.c:298
-msgid "Cannot connect to the system bus"
-msgstr "Não foi possível conectar ao barramento do sistema"
-
-#: ../src/pk-main.c:344
+#: ../src/pk-main.c:253
 msgid "Failed to load any of the specified backends:"
 msgstr ""
 
-#. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error
-#. follows
-#: ../src/pk-main.c:358
-msgid "Error trying to start:"
-msgstr "Erro ao tentar iniciar:"
-
 #. TRANSLATORS: is not GPG signed
-#: ../src/pk-transaction.c:2611 ../src/pk-transaction.c:2618
+#: ../src/pk-transaction.c:2696
 msgid "The software is not from a trusted source."
 msgstr "O programa não vem de uma fonte confiável."
 
-#: ../src/pk-transaction.c:2623
+#: ../src/pk-transaction.c:2704
 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."
 
-#: ../src/pk-transaction.c:2624
+#: ../src/pk-transaction.c:2705
 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."
 
-#: ../src/pk-transaction.c:2634
+#: ../src/pk-transaction.c:2715
 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-transaction.c:2635
+#: ../src/pk-transaction.c:2716
 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 "
diff --git a/po/ro.po b/po/ro.po
index d06cd78..61c3767 100644
--- a/po/ro.po
+++ b/po/ro.po
@@ -2,15 +2,16 @@
 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
 # This file is distributed under the same license as the PACKAGE package.
 # 
-# Richard Hughes <richard at hughsie.com>, 2011
+# Translators:
+# Richard Hughes <richard at hughsie.com>, 2011.
 msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-04 10:50+0100\n"
-"PO-Revision-Date: 2011-05-04 09:56+0000\n"
-"Last-Translator: hughsie <richard at hughsie.com>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
+"POT-Creation-Date: 2011-11-10 19:50+0000\n"
+"PO-Revision-Date: 2011-11-10 19:50+0000\n"
+"Last-Translator: Richard Hughes <richard at hughsie.com>\n"
+"Language-Team: Romanian (http://www.transifex.net/projects/p/freedesktop/team/ro/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -195,7 +196,7 @@ msgstr "Emis"
 
 #. TRANSLATORS: details about the update, date the update was updated
 #. TRANSLATORS: The action of the package, in past tense
-#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:524
+#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:559
 msgid "Updated"
 msgstr "Actualizat"
 
@@ -285,7 +286,7 @@ msgstr ""
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
 #: ../client/pk-console.c:704
-#: ../contrib/command-not-found/pk-command-not-found.c:639
+#: ../contrib/command-not-found/pk-command-not-found.c:634
 msgid "The transaction failed"
 msgstr ""
 
@@ -335,21 +336,21 @@ msgstr ""
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:866
+#: ../client/pk-console.c:871
 #, c-format
 msgid "This tool could not find any available package: %s"
 msgstr ""
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:894
+#: ../client/pk-console.c:899
 #, c-format
 msgid "This tool could not find the installed package: %s"
 msgstr ""
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:922 ../client/pk-console.c:950
+#: ../client/pk-console.c:927 ../client/pk-console.c:955
 #, c-format
 msgid "This tool could not find the package: %s"
 msgstr ""
@@ -362,223 +363,223 @@ msgstr ""
 #. detailed error follows
 #. TRANSLATORS: The package name was not found in any software sources. The
 #. detailed error follows
-#: ../client/pk-console.c:978 ../client/pk-console.c:1006
-#: ../client/pk-console.c:1034 ../client/pk-console.c:1062
-#: ../client/pk-console.c:1090
+#: ../client/pk-console.c:983 ../client/pk-console.c:1011
+#: ../client/pk-console.c:1039 ../client/pk-console.c:1067
+#: ../client/pk-console.c:1095
 #, c-format
 msgid "This tool could not find all the packages: %s"
 msgstr ""
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek
 #. without a paddle
-#: ../client/pk-console.c:1119
+#: ../client/pk-console.c:1124
 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:1153
+#: ../client/pk-console.c:1158
 msgid "PackageKit Console Interface"
 msgstr "Interfață PackageKit pentru consolă"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1155
+#: ../client/pk-console.c:1160
 msgid "Subcommands:"
 msgstr "Subcomenzi:"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was
 #. last executed
-#: ../client/pk-console.c:1235
+#: ../client/pk-console.c:1240
 msgid "Failed to get the time since this action was last completed"
 msgstr ""
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1277 ../client/pk-monitor.c:371
+#: ../client/pk-console.c:1282 ../client/pk-monitor.c:371
 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:1280
+#: ../client/pk-console.c:1285
 msgid "Set the filter, e.g. installed"
 msgstr "Definește filtrul, ex. instalat"
 
 #. TRANSLATORS: command line argument, use a non-standard install prefix
-#: ../client/pk-console.c:1283
+#: ../client/pk-console.c:1288
 msgid "Set the install root, e.g. '/' or '/mnt/ltsp'"
 msgstr ""
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1286
+#: ../client/pk-console.c:1291
 msgid "Exit without waiting for actions to complete"
 msgstr "Ieși fără a aștepta finalizarea acțiunilor"
 
 #. command line argument, do we ask questions
-#: ../client/pk-console.c:1289
+#: ../client/pk-console.c:1294
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:525
 msgid "Install the packages without asking for confirmation"
 msgstr ""
 
 #. TRANSLATORS: command line argument, this command is not a priority
-#: ../client/pk-console.c:1292
+#: ../client/pk-console.c:1297
 msgid "Run the command using idle network bandwidth and also using less power"
 msgstr ""
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1295
+#: ../client/pk-console.c:1300
 msgid ""
 "Print to screen a machine readable output, rather than using animated "
 "widgets"
 msgstr ""
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1298
+#: ../client/pk-console.c:1303
 msgid "The maximum metadata cache age. Use -1 for 'never'."
 msgstr ""
 
 #. TRANSLATORS: command line argument, --help
-#: ../client/pk-console.c:1301
+#: ../client/pk-console.c:1306
 msgid "Show help options."
 msgstr ""
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1331
+#: ../client/pk-console.c:1336
 msgid "Failed to parse command line"
 msgstr ""
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1341
+#: ../client/pk-console.c:1346
 msgid "Failed to contact PackageKit"
 msgstr ""
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1394
+#: ../client/pk-console.c:1399
 msgid "The proxy could not be set"
 msgstr ""
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1406
+#: ../client/pk-console.c:1411
 msgid "The install root could not be set"
 msgstr ""
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1418
+#: ../client/pk-console.c:1423
 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:1437
+#: ../client/pk-console.c:1442
 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:1444 ../client/pk-console.c:1456
-#: ../client/pk-console.c:1468 ../client/pk-console.c:1480
+#: ../client/pk-console.c:1449 ../client/pk-console.c:1461
+#: ../client/pk-console.c:1473 ../client/pk-console.c:1485
 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:1490
+#: ../client/pk-console.c:1495
 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:1496
+#: ../client/pk-console.c:1501
 msgid "A package name to install is required"
 msgstr ""
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1505
+#: ../client/pk-console.c:1510
 msgid "A filename to install is required"
 msgstr ""
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1516
+#: ../client/pk-console.c:1521
 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:1527
+#: ../client/pk-console.c:1532
 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:1536
+#: ../client/pk-console.c:1541
 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:1543
+#: ../client/pk-console.c:1548
 msgid "Directory not found"
 msgstr "Director negăsit"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1552
+#: ../client/pk-console.c:1557
 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:1563
+#: ../client/pk-console.c:1568
 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:1584
+#: ../client/pk-console.c:1589
 msgid "A package name to resolve is required"
 msgstr ""
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:1595 ../client/pk-console.c:1606
+#: ../client/pk-console.c:1600 ../client/pk-console.c:1611
 msgid "A repository name is required"
 msgstr ""
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:1617
+#: ../client/pk-console.c:1622
 msgid "A repo name, parameter and value are required"
 msgstr ""
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:1634
+#: ../client/pk-console.c:1639
 msgid "An action, e.g. 'update-system' is required"
 msgstr ""
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:1641
+#: ../client/pk-console.c:1646
 msgid "A correct role is required"
 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:1651 ../client/pk-console.c:1665
-#: ../client/pk-console.c:1674 ../client/pk-console.c:1694
-#: ../client/pk-console.c:1703 ../client/pk-generate-pack.c:314
+#: ../client/pk-console.c:1656 ../client/pk-console.c:1670
+#: ../client/pk-console.c:1679 ../client/pk-console.c:1699
+#: ../client/pk-console.c:1708 ../client/pk-generate-pack.c:314
 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:1683
+#: ../client/pk-console.c:1688
 msgid "A package provide string is required"
 msgstr ""
 
 #. TRANSLATORS: The user did not provide a distro name
-#: ../client/pk-console.c:1727
+#: ../client/pk-console.c:1732
 msgid "A distribution name is required"
 msgstr ""
 
 #. TRANSLATORS: The user did not provide an upgrade type
-#: ../client/pk-console.c:1733
+#: ../client/pk-console.c:1738
 msgid "An upgrade type is required, e.g. 'minimal', 'default' or 'complete'"
 msgstr ""
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command
 #. line
-#: ../client/pk-console.c:1783
+#: ../client/pk-console.c:1788
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr ""
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:1793
+#: ../client/pk-console.c:1798
 msgid "Command failed"
 msgstr "Comandă eșuată"
 
@@ -715,159 +716,154 @@ msgid "PackageKit Monitor"
 msgstr "Monitor PackageKit"
 
 #. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/pk-plugin-install.c:499
+#: ../contrib/browser-plugin/pk-plugin-install.c:503
 msgid "Getting package information..."
 msgstr "Se obțin informațiile despre pachet..."
 
 #. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/pk-plugin-install.c:505
+#: ../contrib/browser-plugin/pk-plugin-install.c:509
 #, c-format
 msgid "Run %s"
 msgstr "Rulează %s"
 
 #. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:511
+#: ../contrib/browser-plugin/pk-plugin-install.c:515
 msgid "Installed version"
 msgstr "Versiune instalată"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:519
+#: ../contrib/browser-plugin/pk-plugin-install.c:523
 #, c-format
 msgid "Run version %s now"
 msgstr "Rulează versiunea %s acum"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:525
+#: ../contrib/browser-plugin/pk-plugin-install.c:529
 msgid "Run now"
 msgstr "Rulează acum"
 
 #. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:531
+#: ../contrib/browser-plugin/pk-plugin-install.c:535
 #, c-format
 msgid "Update to version %s"
 msgstr "Actualizează la versiunea %s"
 
 #. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:537
+#: ../contrib/browser-plugin/pk-plugin-install.c:541
 #, c-format
 msgid "Install %s now"
 msgstr "Instalează %s acum"
 
 #. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:540
+#: ../contrib/browser-plugin/pk-plugin-install.c:544
 msgid "Version"
 msgstr "Versiune"
 
 #. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/pk-plugin-install.c:545
+#: ../contrib/browser-plugin/pk-plugin-install.c:549
 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:550
+#: ../contrib/browser-plugin/pk-plugin-install.c:554
 msgid "Installing..."
 msgstr "Instalare..."
 
 #. TRANSLATORS: downloading repo data so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:366
+#: ../contrib/command-not-found/pk-command-not-found.c:363
 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:370
+#: ../contrib/command-not-found/pk-command-not-found.c:367
 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:374
+#: ../contrib/command-not-found/pk-command-not-found.c:371
 msgid "Waiting for package manager lock."
 msgstr ""
 
 #. TRANSLATORS: loading package cache so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:378
+#: ../contrib/command-not-found/pk-command-not-found.c:375
 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:444
+#: ../contrib/command-not-found/pk-command-not-found.c:439
 msgid "Failed to search for file"
 msgstr ""
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
-#: ../contrib/command-not-found/pk-command-not-found.c:456
+#: ../contrib/command-not-found/pk-command-not-found.c:451
 msgid "Getting the list of files failed"
 msgstr ""
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:602
+#: ../contrib/command-not-found/pk-command-not-found.c:597
 msgid "Failed to launch:"
 msgstr ""
 
 #. TRANSLATORS: we failed to install the package
-#: ../contrib/command-not-found/pk-command-not-found.c:630
+#: ../contrib/command-not-found/pk-command-not-found.c:625
 msgid "Failed to install packages"
 msgstr ""
 
-#. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/command-not-found/pk-command-not-found.c:706
-msgid "PackageKit Command Not Found"
-msgstr ""
-
 #. TRANSLATORS: the prefix of all the output telling the user
 #. * why it's not executing. NOTE: this is lowercase to mimic
 #. * the style of bash itself -- apologies
-#: ../contrib/command-not-found/pk-command-not-found.c:741
+#: ../contrib/command-not-found/pk-command-not-found.c:723
 msgid "command not found"
 msgstr ""
 
 #. TRANSLATORS: tell the user what we think the command is
-#: ../contrib/command-not-found/pk-command-not-found.c:759
+#: ../contrib/command-not-found/pk-command-not-found.c:741
 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:773
+#: ../contrib/command-not-found/pk-command-not-found.c:755
 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:787
-#: ../contrib/command-not-found/pk-command-not-found.c:796
+#: ../contrib/command-not-found/pk-command-not-found.c:769
+#: ../contrib/command-not-found/pk-command-not-found.c:778
 msgid "Similar commands are:"
 msgstr ""
 
 #. TRANSLATORS: ask the user to choose a file to run
-#: ../contrib/command-not-found/pk-command-not-found.c:803
+#: ../contrib/command-not-found/pk-command-not-found.c:785
 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:821
+#: ../contrib/command-not-found/pk-command-not-found.c:803
 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:828
+#: ../contrib/command-not-found/pk-command-not-found.c:810
 #, 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:855
+#: ../contrib/command-not-found/pk-command-not-found.c:837
 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:865
+#: ../contrib/command-not-found/pk-command-not-found.c:847
 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:874
+#: ../contrib/command-not-found/pk-command-not-found.c:856
 msgid "Please choose a package to install"
 msgstr ""
 
@@ -1041,7 +1037,7 @@ msgstr ""
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
 #. TRANSLATORS: transaction state, installing packages
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:860
-#: ../lib/packagekit-glib2/pk-console-shared.c:296
+#: ../lib/packagekit-glib2/pk-console-shared.c:331
 #, c-format
 msgid "Installing packages"
 msgstr "Instalare pachete"
@@ -1175,474 +1171,474 @@ msgstr "Listă de pachete PackageKit"
 msgid "PackageKit Service Pack"
 msgstr "Pachet de servicii PackageKit"
 
-#: ../lib/packagekit-glib2/pk-console-shared.c:64
+#: ../lib/packagekit-glib2/pk-console-shared.c:65
 #, c-format
 msgid "Please enter a number from 1 to %i: "
 msgstr "Vă rugăm să introduceți un număr între 1 și %i: "
 
 #. TRANSLATORS: more than one package could be found that matched, to follow
 #. is a list of possible packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:198
+#: ../lib/packagekit-glib2/pk-console-shared.c:233
 msgid "More than one package matches:"
 msgstr ""
 
 #. TRANSLATORS: This finds out which package in the list to use
-#: ../lib/packagekit-glib2/pk-console-shared.c:209
+#: ../lib/packagekit-glib2/pk-console-shared.c:244
 msgid "Please choose the correct package: "
 msgstr ""
 
 #. TRANSLATORS: This is when the transaction status is not known
-#: ../lib/packagekit-glib2/pk-console-shared.c:264
+#: ../lib/packagekit-glib2/pk-console-shared.c:299
 msgid "Unknown state"
 msgstr ""
 
 #. TRANSLATORS: transaction state, the daemon is in the process of starting
-#: ../lib/packagekit-glib2/pk-console-shared.c:268
+#: ../lib/packagekit-glib2/pk-console-shared.c:303
 msgid "Starting"
 msgstr ""
 
 #. TRANSLATORS: transaction state, the transaction is waiting for another to
 #. complete
-#: ../lib/packagekit-glib2/pk-console-shared.c:272
+#: ../lib/packagekit-glib2/pk-console-shared.c:307
 msgid "Waiting in queue"
 msgstr ""
 
 #. TRANSLATORS: transaction state, just started
-#: ../lib/packagekit-glib2/pk-console-shared.c:276
+#: ../lib/packagekit-glib2/pk-console-shared.c:311
 msgid "Running"
 msgstr ""
 
 #. TRANSLATORS: transaction state, is querying data
-#: ../lib/packagekit-glib2/pk-console-shared.c:280
+#: ../lib/packagekit-glib2/pk-console-shared.c:315
 msgid "Querying"
 msgstr ""
 
 #. TRANSLATORS: transaction state, getting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:284
+#: ../lib/packagekit-glib2/pk-console-shared.c:319
 msgid "Getting information"
 msgstr ""
 
 #. TRANSLATORS: transaction state, removing packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:288
+#: ../lib/packagekit-glib2/pk-console-shared.c:323
 msgid "Removing packages"
 msgstr ""
 
 #. TRANSLATORS: transaction state, downloading package files
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:292
-#: ../lib/packagekit-glib2/pk-console-shared.c:670
+#: ../lib/packagekit-glib2/pk-console-shared.c:327
+#: ../lib/packagekit-glib2/pk-console-shared.c:705
 msgid "Downloading packages"
 msgstr "Descărcare pachete"
 
 #. TRANSLATORS: transaction state, refreshing internal lists
-#: ../lib/packagekit-glib2/pk-console-shared.c:300
+#: ../lib/packagekit-glib2/pk-console-shared.c:335
 msgid "Refreshing software list"
 msgstr ""
 
 #. TRANSLATORS: transaction state, installing updates
-#: ../lib/packagekit-glib2/pk-console-shared.c:304
+#: ../lib/packagekit-glib2/pk-console-shared.c:339
 msgid "Installing updates"
 msgstr ""
 
 #. TRANSLATORS: transaction state, removing old packages, and cleaning config
 #. files
-#: ../lib/packagekit-glib2/pk-console-shared.c:308
+#: ../lib/packagekit-glib2/pk-console-shared.c:343
 msgid "Cleaning up packages"
 msgstr ""
 
 #. TRANSLATORS: transaction state, obsoleting old packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:312
+#: ../lib/packagekit-glib2/pk-console-shared.c:347
 msgid "Obsoleting packages"
 msgstr ""
 
 #. TRANSLATORS: transaction state, checking the transaction before we do it
-#: ../lib/packagekit-glib2/pk-console-shared.c:316
+#: ../lib/packagekit-glib2/pk-console-shared.c:351
 msgid "Resolving dependencies"
 msgstr ""
 
 #. TRANSLATORS: transaction state, checking if we have all the security keys
 #. for the operation
-#: ../lib/packagekit-glib2/pk-console-shared.c:320
+#: ../lib/packagekit-glib2/pk-console-shared.c:355
 msgid "Checking signatures"
 msgstr ""
 
 #. TRANSLATORS: transaction state, when we return to a previous system state
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:324
-#: ../lib/packagekit-glib2/pk-console-shared.c:630
+#: ../lib/packagekit-glib2/pk-console-shared.c:359
+#: ../lib/packagekit-glib2/pk-console-shared.c:665
 msgid "Rolling back"
 msgstr ""
 
 #. TRANSLATORS: transaction state, when we're doing a test transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:328
+#: ../lib/packagekit-glib2/pk-console-shared.c:363
 msgid "Testing changes"
 msgstr ""
 
 #. TRANSLATORS: transaction state, when we're writing to the system package
 #. database
-#: ../lib/packagekit-glib2/pk-console-shared.c:332
+#: ../lib/packagekit-glib2/pk-console-shared.c:367
 msgid "Committing changes"
 msgstr ""
 
 #. TRANSLATORS: transaction state, requesting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:336
+#: ../lib/packagekit-glib2/pk-console-shared.c:371
 msgid "Requesting data"
 msgstr ""
 
 #. TRANSLATORS: transaction state, all done!
-#: ../lib/packagekit-glib2/pk-console-shared.c:340
+#: ../lib/packagekit-glib2/pk-console-shared.c:375
 msgid "Finished"
 msgstr ""
 
 #. TRANSLATORS: transaction state, in the process of cancelling
-#: ../lib/packagekit-glib2/pk-console-shared.c:344
+#: ../lib/packagekit-glib2/pk-console-shared.c:379
 msgid "Cancelling"
 msgstr ""
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:348
+#: ../lib/packagekit-glib2/pk-console-shared.c:383
 msgid "Downloading repository information"
 msgstr ""
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:352
+#: ../lib/packagekit-glib2/pk-console-shared.c:387
 msgid "Downloading list of packages"
 msgstr ""
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:356
+#: ../lib/packagekit-glib2/pk-console-shared.c:391
 msgid "Downloading file lists"
 msgstr ""
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:360
+#: ../lib/packagekit-glib2/pk-console-shared.c:395
 msgid "Downloading lists of changes"
 msgstr ""
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:364
+#: ../lib/packagekit-glib2/pk-console-shared.c:399
 msgid "Downloading groups"
 msgstr ""
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:368
+#: ../lib/packagekit-glib2/pk-console-shared.c:403
 msgid "Downloading update information"
 msgstr ""
 
 #. TRANSLATORS: transaction state, repackaging delta files
-#: ../lib/packagekit-glib2/pk-console-shared.c:372
+#: ../lib/packagekit-glib2/pk-console-shared.c:407
 msgid "Repackaging files"
 msgstr ""
 
 #. TRANSLATORS: transaction state, loading databases
-#: ../lib/packagekit-glib2/pk-console-shared.c:376
+#: ../lib/packagekit-glib2/pk-console-shared.c:411
 msgid "Loading cache"
 msgstr ""
 
 #. TRANSLATORS: transaction state, scanning for running processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:380
+#: ../lib/packagekit-glib2/pk-console-shared.c:415
 msgid "Scanning applications"
 msgstr ""
 
 #. TRANSLATORS: transaction state, generating a list of packages installed on
 #. the system
-#: ../lib/packagekit-glib2/pk-console-shared.c:384
+#: ../lib/packagekit-glib2/pk-console-shared.c:419
 msgid "Generating package lists"
 msgstr ""
 
 #. TRANSLATORS: transaction state, when we're waiting for the native tools to
 #. exit
-#: ../lib/packagekit-glib2/pk-console-shared.c:388
+#: ../lib/packagekit-glib2/pk-console-shared.c:423
 msgid "Waiting for package manager lock"
 msgstr ""
 
 #. TRANSLATORS: transaction state, waiting for user to type in a password
-#: ../lib/packagekit-glib2/pk-console-shared.c:392
+#: ../lib/packagekit-glib2/pk-console-shared.c:427
 msgid "Waiting for authentication"
 msgstr ""
 
 #. TRANSLATORS: transaction state, we are updating the list of processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:396
+#: ../lib/packagekit-glib2/pk-console-shared.c:431
 msgid "Updating running applications"
 msgstr ""
 
 #. TRANSLATORS: transaction state, we are checking executable files currently
 #. in use
-#: ../lib/packagekit-glib2/pk-console-shared.c:400
+#: ../lib/packagekit-glib2/pk-console-shared.c:435
 msgid "Checking applications in use"
 msgstr ""
 
 #. TRANSLATORS: transaction state, we are checking for libraries currently in
 #. use
-#: ../lib/packagekit-glib2/pk-console-shared.c:404
+#: ../lib/packagekit-glib2/pk-console-shared.c:439
 msgid "Checking libraries in use"
 msgstr ""
 
 #. TRANSLATORS: transaction state, we are copying package files before or
 #. after the transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:408
+#: ../lib/packagekit-glib2/pk-console-shared.c:443
 msgid "Copying files"
 msgstr ""
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:426
+#: ../lib/packagekit-glib2/pk-console-shared.c:461
 msgid "Trivial"
 msgstr ""
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:430
+#: ../lib/packagekit-glib2/pk-console-shared.c:465
 msgid "Normal"
 msgstr ""
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:434
+#: ../lib/packagekit-glib2/pk-console-shared.c:469
 msgid "Important"
 msgstr ""
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:438
+#: ../lib/packagekit-glib2/pk-console-shared.c:473
 msgid "Security"
 msgstr ""
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:442
+#: ../lib/packagekit-glib2/pk-console-shared.c:477
 msgid "Bug fix "
 msgstr ""
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:446
+#: ../lib/packagekit-glib2/pk-console-shared.c:481
 msgid "Enhancement"
 msgstr ""
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:450
+#: ../lib/packagekit-glib2/pk-console-shared.c:485
 msgid "Blocked"
 msgstr ""
 
 #. TRANSLATORS: The state of a package
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:455
-#: ../lib/packagekit-glib2/pk-console-shared.c:528
+#: ../lib/packagekit-glib2/pk-console-shared.c:490
+#: ../lib/packagekit-glib2/pk-console-shared.c:563
 msgid "Installed"
 msgstr ""
 
 #. TRANSLATORS: The state of a package, i.e. not installed
-#: ../lib/packagekit-glib2/pk-console-shared.c:460
+#: ../lib/packagekit-glib2/pk-console-shared.c:495
 msgid "Available"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:478
+#: ../lib/packagekit-glib2/pk-console-shared.c:513
 msgid "Downloading"
 msgstr "Descărcare"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:482
+#: ../lib/packagekit-glib2/pk-console-shared.c:517
 msgid "Updating"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:486
-#: ../lib/packagekit-glib2/pk-console-shared.c:606
+#: ../lib/packagekit-glib2/pk-console-shared.c:521
+#: ../lib/packagekit-glib2/pk-console-shared.c:641
 msgid "Installing"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:490
-#: ../lib/packagekit-glib2/pk-console-shared.c:602
+#: ../lib/packagekit-glib2/pk-console-shared.c:525
+#: ../lib/packagekit-glib2/pk-console-shared.c:637
 msgid "Removing"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:494
+#: ../lib/packagekit-glib2/pk-console-shared.c:529
 msgid "Cleaning up"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:498
+#: ../lib/packagekit-glib2/pk-console-shared.c:533
 msgid "Obsoleting"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:502
+#: ../lib/packagekit-glib2/pk-console-shared.c:537
 msgid "Reinstalling"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:520
+#: ../lib/packagekit-glib2/pk-console-shared.c:555
 msgid "Downloaded"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:532
+#: ../lib/packagekit-glib2/pk-console-shared.c:567
 msgid "Removed"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:536
+#: ../lib/packagekit-glib2/pk-console-shared.c:571
 msgid "Cleaned up"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:540
+#: ../lib/packagekit-glib2/pk-console-shared.c:575
 msgid "Obsoleted"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:544
+#: ../lib/packagekit-glib2/pk-console-shared.c:579
 msgid "Reinstalled"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:562
+#: ../lib/packagekit-glib2/pk-console-shared.c:597
 msgid "Unknown role type"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:566
+#: ../lib/packagekit-glib2/pk-console-shared.c:601
 msgid "Getting dependencies"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:570
+#: ../lib/packagekit-glib2/pk-console-shared.c:605
 msgid "Getting update details"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:574
+#: ../lib/packagekit-glib2/pk-console-shared.c:609
 msgid "Getting details"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:578
+#: ../lib/packagekit-glib2/pk-console-shared.c:613
 msgid "Getting requires"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:582
+#: ../lib/packagekit-glib2/pk-console-shared.c:617
 msgid "Getting updates"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:586
+#: ../lib/packagekit-glib2/pk-console-shared.c:621
 msgid "Searching by details"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:590
+#: ../lib/packagekit-glib2/pk-console-shared.c:625
 msgid "Searching by file"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:594
+#: ../lib/packagekit-glib2/pk-console-shared.c:629
 msgid "Searching groups"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:598
+#: ../lib/packagekit-glib2/pk-console-shared.c:633
 msgid "Searching by name"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:610
+#: ../lib/packagekit-glib2/pk-console-shared.c:645
 msgid "Installing files"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:614
+#: ../lib/packagekit-glib2/pk-console-shared.c:649
 msgid "Refreshing cache"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:618
+#: ../lib/packagekit-glib2/pk-console-shared.c:653
 msgid "Updating packages"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:622
+#: ../lib/packagekit-glib2/pk-console-shared.c:657
 msgid "Updating system"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:626
+#: ../lib/packagekit-glib2/pk-console-shared.c:661
 msgid "Canceling"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:634
+#: ../lib/packagekit-glib2/pk-console-shared.c:669
 msgid "Getting repositories"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:638
+#: ../lib/packagekit-glib2/pk-console-shared.c:673
 msgid "Enabling repository"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:642
+#: ../lib/packagekit-glib2/pk-console-shared.c:677
 msgid "Setting data"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:646
+#: ../lib/packagekit-glib2/pk-console-shared.c:681
 msgid "Resolving"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:650
+#: ../lib/packagekit-glib2/pk-console-shared.c:685
 msgid "Getting file list"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:654
+#: ../lib/packagekit-glib2/pk-console-shared.c:689
 msgid "Getting provides"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:658
+#: ../lib/packagekit-glib2/pk-console-shared.c:693
 msgid "Installing signature"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:662
+#: ../lib/packagekit-glib2/pk-console-shared.c:697
 msgid "Getting packages"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:666
+#: ../lib/packagekit-glib2/pk-console-shared.c:701
 msgid "Accepting EULA"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:674
+#: ../lib/packagekit-glib2/pk-console-shared.c:709
 msgid "Getting upgrades"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:678
+#: ../lib/packagekit-glib2/pk-console-shared.c:713
 msgid "Getting categories"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:682
+#: ../lib/packagekit-glib2/pk-console-shared.c:717
 msgid "Getting transactions"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:686
-#: ../lib/packagekit-glib2/pk-console-shared.c:690
+#: ../lib/packagekit-glib2/pk-console-shared.c:721
+#: ../lib/packagekit-glib2/pk-console-shared.c:725
 msgid "Simulating install"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:694
+#: ../lib/packagekit-glib2/pk-console-shared.c:729
 msgid "Simulating remove"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:698
+#: ../lib/packagekit-glib2/pk-console-shared.c:733
 msgid "Simulating update"
 msgstr ""
 
@@ -1792,13 +1788,19 @@ msgstr ""
 msgid "The following packages have to be downgraded:"
 msgstr ""
 
+#. TRANSLATORS: When processing, untrusted and non-verified packages may be
+#. encountered
+#: ../lib/packagekit-glib2/pk-task-text.c:325
+msgid "The following packages are untrusted:"
+msgstr ""
+
 #. TRANSLATORS: ask the user if the proposed changes are okay
-#: ../lib/packagekit-glib2/pk-task-text.c:380
+#: ../lib/packagekit-glib2/pk-task-text.c:385
 msgid "Proceed with changes?"
 msgstr ""
 
 #. TRANSLATORS: tell the user we didn't do anything
-#: ../lib/packagekit-glib2/pk-task-text.c:385
+#: ../lib/packagekit-glib2/pk-task-text.c:390
 msgid "The transaction did not proceed."
 msgstr ""
 
@@ -2002,97 +2004,68 @@ msgstr ""
 msgid "Upgrade System"
 msgstr ""
 
-#. TRANSLATORS: failed due to DBus security
-#: ../src/pk-main.c:91
-msgid "Startup failed due to security policies on this machine."
-msgstr ""
-"Pornirea a eșuat din cauza politicilor de securitate ale acestei mașini."
-
-#. TRANSLATORS: only two ways this can fail...
-#: ../src/pk-main.c:93
-msgid "This can happen for two reasons:"
-msgstr "Aceasta se poate întâmpla din două motive:"
-
-#. TRANSLATORS: only allowed to be owned by root
-#: ../src/pk-main.c:95
-msgid "The correct user is not launching the executable (usually root)"
-msgstr "Utilizatorul corect nu lansează executabilul (de obicei root)"
-
-#. TRANSLATORS: or we are installed in a prefix
-#: ../src/pk-main.c:97
-msgid ""
-"The org.freedesktop.PackageKit.conf file is not installed in the system "
-"directory:"
-msgstr ""
-
 #. TRANSLATORS: a backend is the system package tool, e.g. yum, apt
-#: ../src/pk-main.c:223
+#: ../src/pk-main.c:149
 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:226
+#: ../src/pk-main.c:152
 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:229
+#: ../src/pk-main.c:155
 msgid "Disable the idle timer"
 msgstr "Dezactivează cronometrul de inactivitate"
 
 #. TRANSLATORS: show version
-#: ../src/pk-main.c:232
+#: ../src/pk-main.c:158
 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:235
+#: ../src/pk-main.c:161
 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:238
+#: ../src/pk-main.c:164
 msgid "Exit after the engine has loaded"
 msgstr "Ieși după ce motorul a fost încărcat"
 
+#. TRANSLATORS: don't unset environment variables, used for debugging
+#: ../src/pk-main.c:167
+msgid "Don't clear environment on startup"
+msgstr ""
+
 #. TRANSLATORS: describing the service that is running
-#: ../src/pk-main.c:253
+#: ../src/pk-main.c:179
 msgid "PackageKit service"
 msgstr "Serviciul PackageKit"
 
-#. TRANSLATORS: fatal error, dbus is not running
-#: ../src/pk-main.c:298
-msgid "Cannot connect to the system bus"
-msgstr "Nu se poate face conexiunea cu magistrala sistemului"
-
-#: ../src/pk-main.c:344
+#: ../src/pk-main.c:253
 msgid "Failed to load any of the specified backends:"
 msgstr ""
 
-#. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error
-#. follows
-#: ../src/pk-main.c:358
-msgid "Error trying to start:"
-msgstr "Eroare la încercarea de a porni:"
-
 #. TRANSLATORS: is not GPG signed
-#: ../src/pk-transaction.c:2611 ../src/pk-transaction.c:2618
+#: ../src/pk-transaction.c:2696
 msgid "The software is not from a trusted source."
 msgstr ""
 
-#: ../src/pk-transaction.c:2623
+#: ../src/pk-transaction.c:2704
 msgid "Do not update this package unless you are sure it is safe to do so."
 msgstr ""
 
-#: ../src/pk-transaction.c:2624
+#: ../src/pk-transaction.c:2705
 msgid "Do not update these packages unless you are sure it is safe to do so."
 msgstr ""
 
-#: ../src/pk-transaction.c:2634
+#: ../src/pk-transaction.c:2715
 msgid "Do not install this package unless you are sure it is safe to do so."
 msgstr ""
 
-#: ../src/pk-transaction.c:2635
+#: ../src/pk-transaction.c:2716
 msgid "Do not install these packages unless you are sure it is safe to do so."
 msgstr ""
 
diff --git a/po/sl.po b/po/sl.po
index c0d225c..7011078 100644
--- a/po/sl.po
+++ b/po/sl.po
@@ -2,14 +2,15 @@
 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
 # This file is distributed under the same license as the PACKAGE package.
 # 
+# Translators:
 # FIRST AUTHOR <EMAIL at ADDRESS>, 2010.
 msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-04 10:50+0100\n"
-"PO-Revision-Date: 2011-06-16 19:02+0000\n"
-"Last-Translator: andrejz <andrej.znidarsic at gmail.com>\n"
+"POT-Creation-Date: 2011-11-10 19:50+0000\n"
+"PO-Revision-Date: 2011-11-10 19:50+0000\n"
+"Last-Translator: Richard Hughes <richard at hughsie.com>\n"
 "Language-Team: Slovenian <lugos-slo at lugos.si>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -195,7 +196,7 @@ msgstr "Izdano"
 
 #. TRANSLATORS: details about the update, date the update was updated
 #. TRANSLATORS: The action of the package, in past tense
-#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:524
+#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:559
 msgid "Updated"
 msgstr "Posodobljeno"
 
@@ -285,7 +286,7 @@ msgstr "Ni paketov za posodobitev"
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
 #: ../client/pk-console.c:704
-#: ../contrib/command-not-found/pk-command-not-found.c:639
+#: ../contrib/command-not-found/pk-command-not-found.c:634
 msgid "The transaction failed"
 msgstr "Transakcija je spodletela"
 
@@ -339,21 +340,21 @@ msgstr ""
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:866
+#: ../client/pk-console.c:871
 #, c-format
 msgid "This tool could not find any available package: %s"
 msgstr "To orodje ni moglo najti nobenega razpoložljivega paketa: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:894
+#: ../client/pk-console.c:899
 #, c-format
 msgid "This tool could not find the installed package: %s"
 msgstr "To orodje ni moglo najti nameščenega paketa: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:922 ../client/pk-console.c:950
+#: ../client/pk-console.c:927 ../client/pk-console.c:955
 #, c-format
 msgid "This tool could not find the package: %s"
 msgstr "To orodje ni moglo najti paketa: %s"
@@ -366,70 +367,70 @@ msgstr "To orodje ni moglo najti paketa: %s"
 #. detailed error follows
 #. TRANSLATORS: The package name was not found in any software sources. The
 #. detailed error follows
-#: ../client/pk-console.c:978 ../client/pk-console.c:1006
-#: ../client/pk-console.c:1034 ../client/pk-console.c:1062
-#: ../client/pk-console.c:1090
+#: ../client/pk-console.c:983 ../client/pk-console.c:1011
+#: ../client/pk-console.c:1039 ../client/pk-console.c:1067
+#: ../client/pk-console.c:1095
 #, c-format
 msgid "This tool could not find all the packages: %s"
 msgstr "To orodje ni moglo najti vseh paketov: %s"
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek
 #. without a paddle
-#: ../client/pk-console.c:1119
+#: ../client/pk-console.c:1124
 msgid "The daemon crashed mid-transaction!"
 msgstr "Ozadnji program se je sesul med transakcijo!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1153
+#: ../client/pk-console.c:1158
 msgid "PackageKit Console Interface"
 msgstr "PackageKit vmesnik konzole"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1155
+#: ../client/pk-console.c:1160
 msgid "Subcommands:"
 msgstr "Podukazi:"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was
 #. last executed
-#: ../client/pk-console.c:1235
+#: ../client/pk-console.c:1240
 msgid "Failed to get the time since this action was last completed"
 msgstr "Ni bilo mogoče dobiti časa odkar je bilo dejanje zadnjič končano"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1277 ../client/pk-monitor.c:371
+#: ../client/pk-console.c:1282 ../client/pk-monitor.c:371
 msgid "Show the program version and exit"
 msgstr "Prikaži različico programa in zapri"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1280
+#: ../client/pk-console.c:1285
 msgid "Set the filter, e.g. installed"
 msgstr "Nastavi filter, na primer nameščeno"
 
 #. TRANSLATORS: command line argument, use a non-standard install prefix
-#: ../client/pk-console.c:1283
+#: ../client/pk-console.c:1288
 msgid "Set the install root, e.g. '/' or '/mnt/ltsp'"
 msgstr "Izberite korensko mapo namestitve, na primer  '/' ali '/mnt/ltsp'"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1286
+#: ../client/pk-console.c:1291
 msgid "Exit without waiting for actions to complete"
 msgstr "Zapri brez čakanja na končanje dejavnosti"
 
 #. command line argument, do we ask questions
-#: ../client/pk-console.c:1289
+#: ../client/pk-console.c:1294
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:525
 msgid "Install the packages without asking for confirmation"
 msgstr "Namesti vse pakete brez spraševanja za potrditev"
 
 #. TRANSLATORS: command line argument, this command is not a priority
-#: ../client/pk-console.c:1292
+#: ../client/pk-console.c:1297
 msgid "Run the command using idle network bandwidth and also using less power"
 msgstr ""
 "Požene ukaz z uporabo pasovne širine nedejavnega omrežja in tudi porabi manj"
 " energije"
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1295
+#: ../client/pk-console.c:1300
 msgid ""
 "Print to screen a machine readable output, rather than using animated "
 "widgets"
@@ -437,144 +438,144 @@ msgstr ""
 "Izpiše zaslon na strojno berljiv izhod namesto uporabe animiranih gradnikov"
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1298
+#: ../client/pk-console.c:1303
 msgid "The maximum metadata cache age. Use -1 for 'never'."
 msgstr ""
 "Največja starost predpomnilnika metapodakov. Uporabite -1 za 'nikoli'."
 
 #. TRANSLATORS: command line argument, --help
-#: ../client/pk-console.c:1301
+#: ../client/pk-console.c:1306
 msgid "Show help options."
 msgstr "Pokaži možnosti pomoči"
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1331
+#: ../client/pk-console.c:1336
 msgid "Failed to parse command line"
 msgstr "Razčlenjevanje ukazne vrstice je spodletelo"
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1341
+#: ../client/pk-console.c:1346
 msgid "Failed to contact PackageKit"
 msgstr "Vzpostavitev stika s PackageKit je spodletela"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1394
+#: ../client/pk-console.c:1399
 msgid "The proxy could not be set"
 msgstr "Posredniškega strežnika ni bilo mogoče nastaviti"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1406
+#: ../client/pk-console.c:1411
 msgid "The install root could not be set"
 msgstr "Korenske mape namestitve ni bilo mogoče nastaviti"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1418
+#: ../client/pk-console.c:1423
 msgid "The filter specified was invalid"
 msgstr "Navedeni filter je bil neveljaven"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1437
+#: ../client/pk-console.c:1442
 msgid "A search type is required, e.g. name"
 msgstr "Zahtevana je vrsta iskanja, na primer ime"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1444 ../client/pk-console.c:1456
-#: ../client/pk-console.c:1468 ../client/pk-console.c:1480
+#: ../client/pk-console.c:1449 ../client/pk-console.c:1461
+#: ../client/pk-console.c:1473 ../client/pk-console.c:1485
 msgid "A search term is required"
 msgstr "Zahtevan je iskalni izraz"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1490
+#: ../client/pk-console.c:1495
 msgid "Invalid search type"
 msgstr "Neveljavna vrsta iskanja"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1496
+#: ../client/pk-console.c:1501
 msgid "A package name to install is required"
 msgstr "Zahtevano je ime paketa za namestitev"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1505
+#: ../client/pk-console.c:1510
 msgid "A filename to install is required"
 msgstr "Zahtevano je ime datoteke za namestitev"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1516
+#: ../client/pk-console.c:1521
 msgid "A type, key_id and package_id are required"
 msgstr "Zahtevane so vrsta, key_id in package_id"
 
 #. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:1527
+#: ../client/pk-console.c:1532
 msgid "A package name to remove is required"
 msgstr "Zahtevano je ime paketa za odstranitev"
 
 #. TRANSLATORS: the user did not specify anything about what to download or
 #. where
-#: ../client/pk-console.c:1536
+#: ../client/pk-console.c:1541
 msgid "A destination directory and the package names to download are required"
 msgstr "Zahtevana sta ciljna mapa in imena paketov za prejem"
 
 #. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:1543
+#: ../client/pk-console.c:1548
 msgid "Directory not found"
 msgstr "Mape ni mogoče najti"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1552
+#: ../client/pk-console.c:1557
 msgid "A licence identifier (eula-id) is required"
 msgstr "Zahtevano je določilo licence (eula-id)"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1563
+#: ../client/pk-console.c:1568
 msgid "A transaction identifier (tid) is required"
 msgstr "Zahtevano je določilo transakcije (tid)"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:1584
+#: ../client/pk-console.c:1589
 msgid "A package name to resolve is required"
 msgstr "Zahtevano je ime paketa za razrešitev"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:1595 ../client/pk-console.c:1606
+#: ../client/pk-console.c:1600 ../client/pk-console.c:1611
 msgid "A repository name is required"
 msgstr "Zahtevano je ime skladišča"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:1617
+#: ../client/pk-console.c:1622
 msgid "A repo name, parameter and value are required"
 msgstr "Zahtevani so ime, parameter in vrednst skladišča."
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:1634
+#: ../client/pk-console.c:1639
 msgid "An action, e.g. 'update-system' is required"
 msgstr "Zahtevano je dejanje kot na primer 'update-system'"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:1641
+#: ../client/pk-console.c:1646
 msgid "A correct role is required"
 msgstr "Zahtevana je pravilna vloga"
 
 #. 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:1651 ../client/pk-console.c:1665
-#: ../client/pk-console.c:1674 ../client/pk-console.c:1694
-#: ../client/pk-console.c:1703 ../client/pk-generate-pack.c:314
+#: ../client/pk-console.c:1656 ../client/pk-console.c:1670
+#: ../client/pk-console.c:1679 ../client/pk-console.c:1699
+#: ../client/pk-console.c:1708 ../client/pk-generate-pack.c:314
 msgid "A package name is required"
 msgstr "Treba je 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:1683
+#: ../client/pk-console.c:1688
 msgid "A package provide string is required"
 msgstr "Zahtevan je niz, ki ga zagotovi paket"
 
 #. TRANSLATORS: The user did not provide a distro name
-#: ../client/pk-console.c:1727
+#: ../client/pk-console.c:1732
 msgid "A distribution name is required"
 msgstr "Zahtevano je ime distribucije"
 
 #. TRANSLATORS: The user did not provide an upgrade type
-#: ../client/pk-console.c:1733
+#: ../client/pk-console.c:1738
 msgid "An upgrade type is required, e.g. 'minimal', 'default' or 'complete'"
 msgstr ""
 "Zahtevana je vrsta nadgradnje, na primer 'minimal', 'default' ali "
@@ -582,13 +583,13 @@ msgstr ""
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command
 #. line
-#: ../client/pk-console.c:1783
+#: ../client/pk-console.c:1788
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "Možnost '%s' ni podprta"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:1793
+#: ../client/pk-console.c:1798
 msgid "Command failed"
 msgstr "Ukaz je spodletel"
 
@@ -727,159 +728,154 @@ msgid "PackageKit Monitor"
 msgstr "Nadzornik PackageKit"
 
 #. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/pk-plugin-install.c:499
+#: ../contrib/browser-plugin/pk-plugin-install.c:503
 msgid "Getting package information..."
 msgstr "Pridobivanje podrobnosti paketa ..."
 
 #. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/pk-plugin-install.c:505
+#: ../contrib/browser-plugin/pk-plugin-install.c:509
 #, c-format
 msgid "Run %s"
 msgstr "Zaženi  %s"
 
 #. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:511
+#: ../contrib/browser-plugin/pk-plugin-install.c:515
 msgid "Installed version"
 msgstr "Nameščena različica"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:519
+#: ../contrib/browser-plugin/pk-plugin-install.c:523
 #, c-format
 msgid "Run version %s now"
 msgstr "Zaženi različico %s zdaj"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:525
+#: ../contrib/browser-plugin/pk-plugin-install.c:529
 msgid "Run now"
 msgstr "Zaženi zdaj"
 
 #. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:531
+#: ../contrib/browser-plugin/pk-plugin-install.c:535
 #, c-format
 msgid "Update to version %s"
 msgstr "Posodobi na različico %s"
 
 #. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:537
+#: ../contrib/browser-plugin/pk-plugin-install.c:541
 #, c-format
 msgid "Install %s now"
 msgstr "Namesti %s zdaj"
 
 #. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:540
+#: ../contrib/browser-plugin/pk-plugin-install.c:544
 msgid "Version"
 msgstr "Različica"
 
 #. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/pk-plugin-install.c:545
+#: ../contrib/browser-plugin/pk-plugin-install.c:549
 msgid "No packages found for your system"
 msgstr "Na vašemu sistemu ni bilo mogoče najti paketov"
 
 #. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/pk-plugin-install.c:550
+#: ../contrib/browser-plugin/pk-plugin-install.c:554
 msgid "Installing..."
 msgstr "Nameščanje ..."
 
 #. TRANSLATORS: downloading repo data so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:366
+#: ../contrib/command-not-found/pk-command-not-found.c:363
 msgid "Downloading details about the software sources."
 msgstr "Prejemanje podrobnosti o virih programov."
 
 #. TRANSLATORS: downloading file lists so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:370
+#: ../contrib/command-not-found/pk-command-not-found.c:367
 msgid "Downloading filelists (this may take some time to complete)."
 msgstr "Pridobivanje seznamov datotek (to lahko traja nekaj časa)."
 
 #. TRANSLATORS: waiting for native lock
-#: ../contrib/command-not-found/pk-command-not-found.c:374
+#: ../contrib/command-not-found/pk-command-not-found.c:371
 msgid "Waiting for package manager lock."
 msgstr "ÄŒakanje na zaklep upravljalnika paketov."
 
 #. TRANSLATORS: loading package cache so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:378
+#: ../contrib/command-not-found/pk-command-not-found.c:375
 msgid "Loading list of packages."
 msgstr "Nalaganje seznama paketov."
 
 #. TRANSLATORS: we failed to find the package, this shouldn't happen
-#: ../contrib/command-not-found/pk-command-not-found.c:444
+#: ../contrib/command-not-found/pk-command-not-found.c:439
 msgid "Failed to search for file"
 msgstr "Iskanje datoteke je spodletelo"
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
-#: ../contrib/command-not-found/pk-command-not-found.c:456
+#: ../contrib/command-not-found/pk-command-not-found.c:451
 msgid "Getting the list of files failed"
 msgstr "Dobivanje seznama datotek je spodletelo"
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:602
+#: ../contrib/command-not-found/pk-command-not-found.c:597
 msgid "Failed to launch:"
 msgstr "Zaganjanje izvedljive datoteke je spodletelo:"
 
 #. TRANSLATORS: we failed to install the package
-#: ../contrib/command-not-found/pk-command-not-found.c:630
+#: ../contrib/command-not-found/pk-command-not-found.c:625
 msgid "Failed to install packages"
 msgstr "Namestitev paketov je spodletela"
 
-#. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/command-not-found/pk-command-not-found.c:706
-msgid "PackageKit Command Not Found"
-msgstr "PackageKit Ukaza ni mogoče najti"
-
 #. TRANSLATORS: the prefix of all the output telling the user
 #. * why it's not executing. NOTE: this is lowercase to mimic
 #. * the style of bash itself -- apologies
-#: ../contrib/command-not-found/pk-command-not-found.c:741
+#: ../contrib/command-not-found/pk-command-not-found.c:723
 msgid "command not found"
 msgstr "ukaza ni mogoče najti"
 
 #. TRANSLATORS: tell the user what we think the command is
-#: ../contrib/command-not-found/pk-command-not-found.c:759
+#: ../contrib/command-not-found/pk-command-not-found.c:741
 msgid "Similar command is:"
 msgstr "Podoben ukaz je:"
 
 #. TRANSLATORS: Ask the user if we should run the similar command
-#: ../contrib/command-not-found/pk-command-not-found.c:773
+#: ../contrib/command-not-found/pk-command-not-found.c:755
 msgid "Run similar command:"
 msgstr "Poženi podoben ukaz:"
 
 #. 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:787
-#: ../contrib/command-not-found/pk-command-not-found.c:796
+#: ../contrib/command-not-found/pk-command-not-found.c:769
+#: ../contrib/command-not-found/pk-command-not-found.c:778
 msgid "Similar commands are:"
 msgstr "Podobni ukazi so:"
 
 #. TRANSLATORS: ask the user to choose a file to run
-#: ../contrib/command-not-found/pk-command-not-found.c:803
+#: ../contrib/command-not-found/pk-command-not-found.c:785
 msgid "Please choose a command to run"
 msgstr "Izberite ukaz za zagon"
 
 #. TRANSLATORS: tell the user what package provides the command
-#: ../contrib/command-not-found/pk-command-not-found.c:821
+#: ../contrib/command-not-found/pk-command-not-found.c:803
 msgid "The package providing this file is:"
 msgstr "Paket, ki zagotavlja to datoteko, 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:828
+#: ../contrib/command-not-found/pk-command-not-found.c:810
 #, c-format
 msgid "Install package '%s' to provide command '%s'?"
 msgstr "Ali želite namestiti paket '%s', ki bo zagotavljal ukaz '%s'?"
 
 #. TRANSLATORS: Show the user a list of packages that provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:855
+#: ../contrib/command-not-found/pk-command-not-found.c:837
 msgid "Packages providing this file are:"
 msgstr "Paketi, ki zagotavljajo to datoteko so:"
 
 #. 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:865
+#: ../contrib/command-not-found/pk-command-not-found.c:847
 msgid "Suitable packages are:"
 msgstr "Primerni paketi so:"
 
 #. get selection
 #. TRANSLATORS: ask the user to choose a file to install
-#: ../contrib/command-not-found/pk-command-not-found.c:874
+#: ../contrib/command-not-found/pk-command-not-found.c:856
 msgid "Please choose a package to install"
 msgstr "Izberite paket za namestitev"
 
@@ -1053,7 +1049,7 @@ msgstr "Paketi v načinu simuliranja niso nameščeni"
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
 #. TRANSLATORS: transaction state, installing packages
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:860
-#: ../lib/packagekit-glib2/pk-console-shared.c:296
+#: ../lib/packagekit-glib2/pk-console-shared.c:331
 #, c-format
 msgid "Installing packages"
 msgstr "Nameščanje paketov"
@@ -1187,474 +1183,474 @@ msgstr "Seznam pakteov PackageKit"
 msgid "PackageKit Service Pack"
 msgstr "Paket popravkov PackageKit"
 
-#: ../lib/packagekit-glib2/pk-console-shared.c:64
+#: ../lib/packagekit-glib2/pk-console-shared.c:65
 #, c-format
 msgid "Please enter a number from 1 to %i: "
 msgstr "Vpišite število med 1 in %i: "
 
 #. TRANSLATORS: more than one package could be found that matched, to follow
 #. is a list of possible packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:198
+#: ../lib/packagekit-glib2/pk-console-shared.c:233
 msgid "More than one package matches:"
 msgstr "Ujema se več paketov:"
 
 #. TRANSLATORS: This finds out which package in the list to use
-#: ../lib/packagekit-glib2/pk-console-shared.c:209
+#: ../lib/packagekit-glib2/pk-console-shared.c:244
 msgid "Please choose the correct package: "
 msgstr "Izberite pravi paket: "
 
 #. TRANSLATORS: This is when the transaction status is not known
-#: ../lib/packagekit-glib2/pk-console-shared.c:264
+#: ../lib/packagekit-glib2/pk-console-shared.c:299
 msgid "Unknown state"
 msgstr "Neznano stanje"
 
 #. TRANSLATORS: transaction state, the daemon is in the process of starting
-#: ../lib/packagekit-glib2/pk-console-shared.c:268
+#: ../lib/packagekit-glib2/pk-console-shared.c:303
 msgid "Starting"
 msgstr "Začenjanje"
 
 #. TRANSLATORS: transaction state, the transaction is waiting for another to
 #. complete
-#: ../lib/packagekit-glib2/pk-console-shared.c:272
+#: ../lib/packagekit-glib2/pk-console-shared.c:307
 msgid "Waiting in queue"
 msgstr "ÄŒaka v vrsti"
 
 #. TRANSLATORS: transaction state, just started
-#: ../lib/packagekit-glib2/pk-console-shared.c:276
+#: ../lib/packagekit-glib2/pk-console-shared.c:311
 msgid "Running"
 msgstr "Izvajanje"
 
 #. TRANSLATORS: transaction state, is querying data
-#: ../lib/packagekit-glib2/pk-console-shared.c:280
+#: ../lib/packagekit-glib2/pk-console-shared.c:315
 msgid "Querying"
 msgstr "Poizvedovanje"
 
 #. TRANSLATORS: transaction state, getting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:284
+#: ../lib/packagekit-glib2/pk-console-shared.c:319
 msgid "Getting information"
 msgstr "Dobivanje podatkov"
 
 #. TRANSLATORS: transaction state, removing packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:288
+#: ../lib/packagekit-glib2/pk-console-shared.c:323
 msgid "Removing packages"
 msgstr "Odstranjevanje paketov"
 
 #. TRANSLATORS: transaction state, downloading package files
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:292
-#: ../lib/packagekit-glib2/pk-console-shared.c:670
+#: ../lib/packagekit-glib2/pk-console-shared.c:327
+#: ../lib/packagekit-glib2/pk-console-shared.c:705
 msgid "Downloading packages"
 msgstr "Prejemanje paketov"
 
 #. TRANSLATORS: transaction state, refreshing internal lists
-#: ../lib/packagekit-glib2/pk-console-shared.c:300
+#: ../lib/packagekit-glib2/pk-console-shared.c:335
 msgid "Refreshing software list"
 msgstr "Osveževanje seznama programov"
 
 #. TRANSLATORS: transaction state, installing updates
-#: ../lib/packagekit-glib2/pk-console-shared.c:304
+#: ../lib/packagekit-glib2/pk-console-shared.c:339
 msgid "Installing updates"
 msgstr "Nameščanje posodobitev"
 
 #. TRANSLATORS: transaction state, removing old packages, and cleaning config
 #. files
-#: ../lib/packagekit-glib2/pk-console-shared.c:308
+#: ../lib/packagekit-glib2/pk-console-shared.c:343
 msgid "Cleaning up packages"
 msgstr "Čiščenje paketov"
 
 #. TRANSLATORS: transaction state, obsoleting old packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:312
+#: ../lib/packagekit-glib2/pk-console-shared.c:347
 msgid "Obsoleting packages"
 msgstr "Nastavljanje zastarelih paketov"
 
 #. TRANSLATORS: transaction state, checking the transaction before we do it
-#: ../lib/packagekit-glib2/pk-console-shared.c:316
+#: ../lib/packagekit-glib2/pk-console-shared.c:351
 msgid "Resolving dependencies"
 msgstr "Razreševanje odvisnosti"
 
 #. TRANSLATORS: transaction state, checking if we have all the security keys
 #. for the operation
-#: ../lib/packagekit-glib2/pk-console-shared.c:320
+#: ../lib/packagekit-glib2/pk-console-shared.c:355
 msgid "Checking signatures"
 msgstr "Preverjanje podpisov"
 
 #. TRANSLATORS: transaction state, when we return to a previous system state
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:324
-#: ../lib/packagekit-glib2/pk-console-shared.c:630
+#: ../lib/packagekit-glib2/pk-console-shared.c:359
+#: ../lib/packagekit-glib2/pk-console-shared.c:665
 msgid "Rolling back"
 msgstr "Povračanje"
 
 #. TRANSLATORS: transaction state, when we're doing a test transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:328
+#: ../lib/packagekit-glib2/pk-console-shared.c:363
 msgid "Testing changes"
 msgstr "Preizkušanje sprememb"
 
 #. TRANSLATORS: transaction state, when we're writing to the system package
 #. database
-#: ../lib/packagekit-glib2/pk-console-shared.c:332
+#: ../lib/packagekit-glib2/pk-console-shared.c:367
 msgid "Committing changes"
 msgstr "Uveljavljanje sprememb"
 
 #. TRANSLATORS: transaction state, requesting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:336
+#: ../lib/packagekit-glib2/pk-console-shared.c:371
 msgid "Requesting data"
 msgstr "Zahtevanje podatkov"
 
 #. TRANSLATORS: transaction state, all done!
-#: ../lib/packagekit-glib2/pk-console-shared.c:340
+#: ../lib/packagekit-glib2/pk-console-shared.c:375
 msgid "Finished"
 msgstr "Končano"
 
 #. TRANSLATORS: transaction state, in the process of cancelling
-#: ../lib/packagekit-glib2/pk-console-shared.c:344
+#: ../lib/packagekit-glib2/pk-console-shared.c:379
 msgid "Cancelling"
 msgstr "Preklicevanje"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:348
+#: ../lib/packagekit-glib2/pk-console-shared.c:383
 msgid "Downloading repository information"
 msgstr "Prejemanje podatkov o skladiščih"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:352
+#: ../lib/packagekit-glib2/pk-console-shared.c:387
 msgid "Downloading list of packages"
 msgstr "Prejemanje seznama paketov"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:356
+#: ../lib/packagekit-glib2/pk-console-shared.c:391
 msgid "Downloading file lists"
 msgstr "Prejemanje seznamov datotek"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:360
+#: ../lib/packagekit-glib2/pk-console-shared.c:395
 msgid "Downloading lists of changes"
 msgstr "Prejemanje seznamov sprememb"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:364
+#: ../lib/packagekit-glib2/pk-console-shared.c:399
 msgid "Downloading groups"
 msgstr "Prejemanje skupin"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:368
+#: ../lib/packagekit-glib2/pk-console-shared.c:403
 msgid "Downloading update information"
 msgstr "Prejemanje podatkov o posodobitvi"
 
 #. TRANSLATORS: transaction state, repackaging delta files
-#: ../lib/packagekit-glib2/pk-console-shared.c:372
+#: ../lib/packagekit-glib2/pk-console-shared.c:407
 msgid "Repackaging files"
 msgstr "Prepakiranje datotek"
 
 #. TRANSLATORS: transaction state, loading databases
-#: ../lib/packagekit-glib2/pk-console-shared.c:376
+#: ../lib/packagekit-glib2/pk-console-shared.c:411
 msgid "Loading cache"
 msgstr "Nalaganje predpomnilnika"
 
 #. TRANSLATORS: transaction state, scanning for running processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:380
+#: ../lib/packagekit-glib2/pk-console-shared.c:415
 msgid "Scanning applications"
 msgstr "Preiskovanje programov"
 
 #. TRANSLATORS: transaction state, generating a list of packages installed on
 #. the system
-#: ../lib/packagekit-glib2/pk-console-shared.c:384
+#: ../lib/packagekit-glib2/pk-console-shared.c:419
 msgid "Generating package lists"
 msgstr "Ustvarjanje seznamov paketov"
 
 #. TRANSLATORS: transaction state, when we're waiting for the native tools to
 #. exit
-#: ../lib/packagekit-glib2/pk-console-shared.c:388
+#: ../lib/packagekit-glib2/pk-console-shared.c:423
 msgid "Waiting for package manager lock"
 msgstr "ÄŒakanje na zaklep upravljalnika paketov"
 
 #. TRANSLATORS: transaction state, waiting for user to type in a password
-#: ../lib/packagekit-glib2/pk-console-shared.c:392
+#: ../lib/packagekit-glib2/pk-console-shared.c:427
 msgid "Waiting for authentication"
 msgstr "ÄŒakanje na overitev"
 
 #. TRANSLATORS: transaction state, we are updating the list of processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:396
+#: ../lib/packagekit-glib2/pk-console-shared.c:431
 msgid "Updating running applications"
 msgstr "Posodabljanje izvajajočih programov"
 
 #. TRANSLATORS: transaction state, we are checking executable files currently
 #. in use
-#: ../lib/packagekit-glib2/pk-console-shared.c:400
+#: ../lib/packagekit-glib2/pk-console-shared.c:435
 msgid "Checking applications in use"
 msgstr "Preverjanje programov, ki se uporabljajo"
 
 #. TRANSLATORS: transaction state, we are checking for libraries currently in
 #. use
-#: ../lib/packagekit-glib2/pk-console-shared.c:404
+#: ../lib/packagekit-glib2/pk-console-shared.c:439
 msgid "Checking libraries in use"
 msgstr "Preverjanje knjižnic, ki so v uporabi"
 
 #. TRANSLATORS: transaction state, we are copying package files before or
 #. after the transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:408
+#: ../lib/packagekit-glib2/pk-console-shared.c:443
 msgid "Copying files"
 msgstr "Kopiranje datotek"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:426
+#: ../lib/packagekit-glib2/pk-console-shared.c:461
 msgid "Trivial"
 msgstr "Trivialna"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:430
+#: ../lib/packagekit-glib2/pk-console-shared.c:465
 msgid "Normal"
 msgstr "Običajna"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:434
+#: ../lib/packagekit-glib2/pk-console-shared.c:469
 msgid "Important"
 msgstr "Pomembna"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:438
+#: ../lib/packagekit-glib2/pk-console-shared.c:473
 msgid "Security"
 msgstr "Varnostna"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:442
+#: ../lib/packagekit-glib2/pk-console-shared.c:477
 msgid "Bug fix "
 msgstr "Popravljanje hroščev "
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:446
+#: ../lib/packagekit-glib2/pk-console-shared.c:481
 msgid "Enhancement"
 msgstr "Izboljšava"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:450
+#: ../lib/packagekit-glib2/pk-console-shared.c:485
 msgid "Blocked"
 msgstr "Blokirana"
 
 #. TRANSLATORS: The state of a package
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:455
-#: ../lib/packagekit-glib2/pk-console-shared.c:528
+#: ../lib/packagekit-glib2/pk-console-shared.c:490
+#: ../lib/packagekit-glib2/pk-console-shared.c:563
 msgid "Installed"
 msgstr "Nameščen"
 
 #. TRANSLATORS: The state of a package, i.e. not installed
-#: ../lib/packagekit-glib2/pk-console-shared.c:460
+#: ../lib/packagekit-glib2/pk-console-shared.c:495
 msgid "Available"
 msgstr "Na voljo"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:478
+#: ../lib/packagekit-glib2/pk-console-shared.c:513
 msgid "Downloading"
 msgstr "Prejemanje"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:482
+#: ../lib/packagekit-glib2/pk-console-shared.c:517
 msgid "Updating"
 msgstr "Posodabljanje"
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:486
-#: ../lib/packagekit-glib2/pk-console-shared.c:606
+#: ../lib/packagekit-glib2/pk-console-shared.c:521
+#: ../lib/packagekit-glib2/pk-console-shared.c:641
 msgid "Installing"
 msgstr "Nameščanje"
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:490
-#: ../lib/packagekit-glib2/pk-console-shared.c:602
+#: ../lib/packagekit-glib2/pk-console-shared.c:525
+#: ../lib/packagekit-glib2/pk-console-shared.c:637
 msgid "Removing"
 msgstr "Odstranjevanje"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:494
+#: ../lib/packagekit-glib2/pk-console-shared.c:529
 msgid "Cleaning up"
 msgstr "Čiščenje"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:498
+#: ../lib/packagekit-glib2/pk-console-shared.c:533
 msgid "Obsoleting"
 msgstr "Nastavljanje zastarelih paketov"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:502
+#: ../lib/packagekit-glib2/pk-console-shared.c:537
 msgid "Reinstalling"
 msgstr "Ponovno nameščanje"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:520
+#: ../lib/packagekit-glib2/pk-console-shared.c:555
 msgid "Downloaded"
 msgstr "Prejeto"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:532
+#: ../lib/packagekit-glib2/pk-console-shared.c:567
 msgid "Removed"
 msgstr "Odstranjeno"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:536
+#: ../lib/packagekit-glib2/pk-console-shared.c:571
 msgid "Cleaned up"
 msgstr "Počiščeno"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:540
+#: ../lib/packagekit-glib2/pk-console-shared.c:575
 msgid "Obsoleted"
 msgstr "Nadomeščeno"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:544
+#: ../lib/packagekit-glib2/pk-console-shared.c:579
 msgid "Reinstalled"
 msgstr "Ponovno nameščeno"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:562
+#: ../lib/packagekit-glib2/pk-console-shared.c:597
 msgid "Unknown role type"
 msgstr "Neznana vloga"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:566
+#: ../lib/packagekit-glib2/pk-console-shared.c:601
 msgid "Getting dependencies"
 msgstr "Dobivanje odvisnosti"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:570
+#: ../lib/packagekit-glib2/pk-console-shared.c:605
 msgid "Getting update details"
 msgstr "Dobivanje podrobnosti posodobitev"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:574
+#: ../lib/packagekit-glib2/pk-console-shared.c:609
 msgid "Getting details"
 msgstr "Dobivanje podrobnosti"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:578
+#: ../lib/packagekit-glib2/pk-console-shared.c:613
 msgid "Getting requires"
 msgstr "Dobivanje zahtevanega"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:582
+#: ../lib/packagekit-glib2/pk-console-shared.c:617
 msgid "Getting updates"
 msgstr "Dobivanje posodobitev"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:586
+#: ../lib/packagekit-glib2/pk-console-shared.c:621
 msgid "Searching by details"
 msgstr "Iskanje po podrobnosti"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:590
+#: ../lib/packagekit-glib2/pk-console-shared.c:625
 msgid "Searching by file"
 msgstr "Iskanje po datoteki"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:594
+#: ../lib/packagekit-glib2/pk-console-shared.c:629
 msgid "Searching groups"
 msgstr "Iskanje skupin"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:598
+#: ../lib/packagekit-glib2/pk-console-shared.c:633
 msgid "Searching by name"
 msgstr "Iskanje po imenu"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:610
+#: ../lib/packagekit-glib2/pk-console-shared.c:645
 msgid "Installing files"
 msgstr "Nameščanje datotek"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:614
+#: ../lib/packagekit-glib2/pk-console-shared.c:649
 msgid "Refreshing cache"
 msgstr "Osveževanje predpomnilnika"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:618
+#: ../lib/packagekit-glib2/pk-console-shared.c:653
 msgid "Updating packages"
 msgstr "Posodabljanje paketov"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:622
+#: ../lib/packagekit-glib2/pk-console-shared.c:657
 msgid "Updating system"
 msgstr "Posodabljanje sistema"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:626
+#: ../lib/packagekit-glib2/pk-console-shared.c:661
 msgid "Canceling"
 msgstr "Preklicevanje"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:634
+#: ../lib/packagekit-glib2/pk-console-shared.c:669
 msgid "Getting repositories"
 msgstr "Dobivanje skladišč"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:638
+#: ../lib/packagekit-glib2/pk-console-shared.c:673
 msgid "Enabling repository"
 msgstr "Omogočanje skladišča"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:642
+#: ../lib/packagekit-glib2/pk-console-shared.c:677
 msgid "Setting data"
 msgstr "Nastavljanje podatkov"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:646
+#: ../lib/packagekit-glib2/pk-console-shared.c:681
 msgid "Resolving"
 msgstr "Razreševanje"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:650
+#: ../lib/packagekit-glib2/pk-console-shared.c:685
 msgid "Getting file list"
 msgstr "Dobivanje seznama datotek"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:654
+#: ../lib/packagekit-glib2/pk-console-shared.c:689
 msgid "Getting provides"
 msgstr "Dobivanje ponudnikov"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:658
+#: ../lib/packagekit-glib2/pk-console-shared.c:693
 msgid "Installing signature"
 msgstr "Nameščanje podpisa"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:662
+#: ../lib/packagekit-glib2/pk-console-shared.c:697
 msgid "Getting packages"
 msgstr "Dobivanje paketov"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:666
+#: ../lib/packagekit-glib2/pk-console-shared.c:701
 msgid "Accepting EULA"
 msgstr "Sprejemanje licence"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:674
+#: ../lib/packagekit-glib2/pk-console-shared.c:709
 msgid "Getting upgrades"
 msgstr "Dobivanje nadgradenj"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:678
+#: ../lib/packagekit-glib2/pk-console-shared.c:713
 msgid "Getting categories"
 msgstr "Dobivanje kategorij"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:682
+#: ../lib/packagekit-glib2/pk-console-shared.c:717
 msgid "Getting transactions"
 msgstr "Dobivanje transakcij"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:686
-#: ../lib/packagekit-glib2/pk-console-shared.c:690
+#: ../lib/packagekit-glib2/pk-console-shared.c:721
+#: ../lib/packagekit-glib2/pk-console-shared.c:725
 msgid "Simulating install"
 msgstr "Simuliranje namestitve"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:694
+#: ../lib/packagekit-glib2/pk-console-shared.c:729
 msgid "Simulating remove"
 msgstr "Simuliranje odstranjevanja"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:698
+#: ../lib/packagekit-glib2/pk-console-shared.c:733
 msgid "Simulating update"
 msgstr "Simuliranje posodobitve"
 
@@ -1804,13 +1800,19 @@ msgstr "Ponovno je treba namestiti naslednje pakete:"
 msgid "The following packages have to be downgraded:"
 msgstr "Naslednje pakete je treba podgraditi:"
 
+#. TRANSLATORS: When processing, untrusted and non-verified packages may be
+#. encountered
+#: ../lib/packagekit-glib2/pk-task-text.c:325
+msgid "The following packages are untrusted:"
+msgstr ""
+
 #. TRANSLATORS: ask the user if the proposed changes are okay
-#: ../lib/packagekit-glib2/pk-task-text.c:380
+#: ../lib/packagekit-glib2/pk-task-text.c:385
 msgid "Proceed with changes?"
 msgstr "Ali želite nadaljevati s spremembami?"
 
 #. TRANSLATORS: tell the user we didn't do anything
-#: ../lib/packagekit-glib2/pk-task-text.c:385
+#: ../lib/packagekit-glib2/pk-task-text.c:390
 msgid "The transaction did not proceed."
 msgstr "Transakcija se ni nadaljevala."
 
@@ -2018,97 +2020,68 @@ msgstr "Posodobi pakete"
 msgid "Upgrade System"
 msgstr "Nadgradi sistem"
 
-#. TRANSLATORS: failed due to DBus security
-#: ../src/pk-main.c:91
-msgid "Startup failed due to security policies on this machine."
-msgstr "Zagon je spodletel zaradi varnostnih pravil na tej napravi"
-
-#. TRANSLATORS: only two ways this can fail...
-#: ../src/pk-main.c:93
-msgid "This can happen for two reasons:"
-msgstr "To se lahko zgodi zaradi dveh razlogov:"
-
-#. TRANSLATORS: only allowed to be owned by root
-#: ../src/pk-main.c:95
-msgid "The correct user is not launching the executable (usually root)"
-msgstr "Izvedljive datoteke ne zaganja pravi uporabnik (običajno skrbnik)"
-
-#. TRANSLATORS: or we are installed in a prefix
-#: ../src/pk-main.c:97
-msgid ""
-"The org.freedesktop.PackageKit.conf file is not installed in the system "
-"directory:"
-msgstr ""
-"Datoteka org.freedesktop.PackageKit.conf ni nameščena v sistemski mapi:"
-
 #. TRANSLATORS: a backend is the system package tool, e.g. yum, apt
-#: ../src/pk-main.c:223
+#: ../src/pk-main.c:149
 msgid "Packaging backend to use, e.g. dummy"
 msgstr "Zaledje pakiranja za uporabo, na primer preizkusno"
 
 #. TRANSLATORS: if we should run in the background
-#: ../src/pk-main.c:226
+#: ../src/pk-main.c:152
 msgid "Daemonize and detach from the terminal"
 msgstr "Ustvari ozadnji program in loči od terminala"
 
 #. TRANSLATORS: if we should not monitor how long we are inactive for
-#: ../src/pk-main.c:229
+#: ../src/pk-main.c:155
 msgid "Disable the idle timer"
 msgstr "Onemogoči časomer nedejavnosti"
 
 #. TRANSLATORS: show version
-#: ../src/pk-main.c:232
+#: ../src/pk-main.c:158
 msgid "Show version and exit"
 msgstr "Pokaži različico in končaj"
 
 #. TRANSLATORS: exit after we've started up, used for user profiling
-#: ../src/pk-main.c:235
+#: ../src/pk-main.c:161
 msgid "Exit after a small delay"
 msgstr "Končaj po kratki zakasnitvi"
 
 #. TRANSLATORS: exit straight away, used for automatic profiling
-#: ../src/pk-main.c:238
+#: ../src/pk-main.c:164
 msgid "Exit after the engine has loaded"
 msgstr "Končaj, ko se programnik naloži"
 
+#. TRANSLATORS: don't unset environment variables, used for debugging
+#: ../src/pk-main.c:167
+msgid "Don't clear environment on startup"
+msgstr ""
+
 #. TRANSLATORS: describing the service that is running
-#: ../src/pk-main.c:253
+#: ../src/pk-main.c:179
 msgid "PackageKit service"
 msgstr "Storitev PackageKit"
 
-#. TRANSLATORS: fatal error, dbus is not running
-#: ../src/pk-main.c:298
-msgid "Cannot connect to the system bus"
-msgstr "Ni se mogoče povezati s sistemskim vodilom"
-
-#: ../src/pk-main.c:344
+#: ../src/pk-main.c:253
 msgid "Failed to load any of the specified backends:"
 msgstr "Nalaganje kateregakoli od navedenih zaledij je spodletelo:"
 
-#. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error
-#. follows
-#: ../src/pk-main.c:358
-msgid "Error trying to start:"
-msgstr "Napaka med poskusom zagona:"
-
 #. TRANSLATORS: is not GPG signed
-#: ../src/pk-transaction.c:2611 ../src/pk-transaction.c:2618
+#: ../src/pk-transaction.c:2696
 msgid "The software is not from a trusted source."
 msgstr "Ta program ni iz zaupanega vira."
 
-#: ../src/pk-transaction.c:2623
+#: ../src/pk-transaction.c:2704
 msgid "Do not update this package unless you are sure it is safe to do so."
 msgstr "Tega paketa ne posodobite, če niste prepričani, da je to varno."
 
-#: ../src/pk-transaction.c:2624
+#: ../src/pk-transaction.c:2705
 msgid "Do not update these packages unless you are sure it is safe to do so."
 msgstr "Ne posodobite teh paketov, če niste prepričani, da je to varno."
 
-#: ../src/pk-transaction.c:2634
+#: ../src/pk-transaction.c:2715
 msgid "Do not install this package unless you are sure it is safe to do so."
 msgstr "Ne namestite tega paketa, če niste prepričani, da je to varno."
 
-#: ../src/pk-transaction.c:2635
+#: ../src/pk-transaction.c:2716
 msgid "Do not install these packages unless you are sure it is safe to do so."
 msgstr "Ne namestite teh paketov, če niste prepričani, da je to varno."
 
diff --git a/po/sr.po b/po/sr.po
index acbcba9..bba1c62 100644
--- a/po/sr.po
+++ b/po/sr.po
@@ -2,14 +2,15 @@
 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
 # This file is distributed under the same license as the PACKAGE package.
 # 
-# Richard Hughes <richard at hughsie.com>, 2011
+# Translators:
+# Richard Hughes <richard at hughsie.com>, 2011.
 msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-04 10:50+0100\n"
-"PO-Revision-Date: 2011-05-04 09:56+0000\n"
-"Last-Translator: hughsie <richard at hughsie.com>\n"
+"POT-Creation-Date: 2011-11-10 19:50+0000\n"
+"PO-Revision-Date: 2011-11-10 19:50+0000\n"
+"Last-Translator: Richard Hughes <richard at hughsie.com>\n"
 "Language-Team: Serbian (http://www.transifex.net/projects/p/freedesktop/team/sr/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -195,7 +196,7 @@ msgstr "Издато"
 
 #. TRANSLATORS: details about the update, date the update was updated
 #. TRANSLATORS: The action of the package, in past tense
-#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:524
+#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:559
 msgid "Updated"
 msgstr "Датум ажурирања"
 
@@ -285,7 +286,7 @@ msgstr ""
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
 #: ../client/pk-console.c:704
-#: ../contrib/command-not-found/pk-command-not-found.c:639
+#: ../contrib/command-not-found/pk-command-not-found.c:634
 msgid "The transaction failed"
 msgstr "Трансакција није успела"
 
@@ -339,21 +340,21 @@ msgstr ""
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:866
+#: ../client/pk-console.c:871
 #, c-format
 msgid "This tool could not find any available package: %s"
 msgstr "Ова алатка није могла пронаћи никакве доступне пакете: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:894
+#: ../client/pk-console.c:899
 #, c-format
 msgid "This tool could not find the installed package: %s"
 msgstr "Ова алатка није могла пронаћи инсталирани пакет: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:922 ../client/pk-console.c:950
+#: ../client/pk-console.c:927 ../client/pk-console.c:955
 #, c-format
 msgid "This tool could not find the package: %s"
 msgstr "Ова алатка није могла пронаћи пакет: %s"
@@ -366,70 +367,70 @@ msgstr "Ова алатка није могла пронаћи пакет: %s"
 #. detailed error follows
 #. TRANSLATORS: The package name was not found in any software sources. The
 #. detailed error follows
-#: ../client/pk-console.c:978 ../client/pk-console.c:1006
-#: ../client/pk-console.c:1034 ../client/pk-console.c:1062
-#: ../client/pk-console.c:1090
+#: ../client/pk-console.c:983 ../client/pk-console.c:1011
+#: ../client/pk-console.c:1039 ../client/pk-console.c:1067
+#: ../client/pk-console.c:1095
 #, c-format
 msgid "This tool could not find all the packages: %s"
 msgstr "Ова алатка није пронашла све пакете: %s"
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek
 #. without a paddle
-#: ../client/pk-console.c:1119
+#: ../client/pk-console.c:1124
 msgid "The daemon crashed mid-transaction!"
 msgstr "Услужни програм се изненада прекинуо!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1153
+#: ../client/pk-console.c:1158
 msgid "PackageKit Console Interface"
 msgstr "Текстуално сучеље програма ПакетКит"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1155
+#: ../client/pk-console.c:1160
 msgid "Subcommands:"
 msgstr "Наредбе:"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was
 #. last executed
-#: ../client/pk-console.c:1235
+#: ../client/pk-console.c:1240
 msgid "Failed to get the time since this action was last completed"
 msgstr "Датум последњег извршавања ове радње није пронађен"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1277 ../client/pk-monitor.c:371
+#: ../client/pk-console.c:1282 ../client/pk-monitor.c:371
 msgid "Show the program version and exit"
 msgstr "Прикажи верзију програма и заврши рад"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1280
+#: ../client/pk-console.c:1285
 msgid "Set the filter, e.g. installed"
 msgstr "Намести филтер, нпр. инсталирани"
 
 #. TRANSLATORS: command line argument, use a non-standard install prefix
-#: ../client/pk-console.c:1283
+#: ../client/pk-console.c:1288
 msgid "Set the install root, e.g. '/' or '/mnt/ltsp'"
 msgstr "Постави корен инсталације, нпр. „/“ или „/mnt/ltsp“"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1286
+#: ../client/pk-console.c:1291
 msgid "Exit without waiting for actions to complete"
 msgstr "Заврши рад без чекања да се послови заврше"
 
 #. command line argument, do we ask questions
-#: ../client/pk-console.c:1289
+#: ../client/pk-console.c:1294
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:525
 msgid "Install the packages without asking for confirmation"
 msgstr "Инсталирај пакете без питања за потврду"
 
 #. TRANSLATORS: command line argument, this command is not a priority
-#: ../client/pk-console.c:1292
+#: ../client/pk-console.c:1297
 msgid "Run the command using idle network bandwidth and also using less power"
 msgstr ""
 "Изврши наредбу користећи неискоришћени мрежни опсег и такође трошећи мање "
 "енергије"
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1295
+#: ../client/pk-console.c:1300
 msgid ""
 "Print to screen a machine readable output, rather than using animated "
 "widgets"
@@ -437,155 +438,155 @@ msgstr ""
 "Штампај излаз читљив машини на екрану, уместо употребе анимираних виџета"
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1298
+#: ../client/pk-console.c:1303
 msgid "The maximum metadata cache age. Use -1 for 'never'."
 msgstr ""
 
 #. TRANSLATORS: command line argument, --help
-#: ../client/pk-console.c:1301
+#: ../client/pk-console.c:1306
 msgid "Show help options."
 msgstr ""
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1331
+#: ../client/pk-console.c:1336
 msgid "Failed to parse command line"
 msgstr ""
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1341
+#: ../client/pk-console.c:1346
 msgid "Failed to contact PackageKit"
 msgstr "Неуспешно контактирање ПакетКита."
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1394
+#: ../client/pk-console.c:1399
 msgid "The proxy could not be set"
 msgstr "Прокси није могао да буде постављен"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1406
+#: ../client/pk-console.c:1411
 msgid "The install root could not be set"
 msgstr "Корен инсталације није могао да буде постављен"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1418
+#: ../client/pk-console.c:1423
 msgid "The filter specified was invalid"
 msgstr "Наведени филтер није исправан"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1437
+#: ../client/pk-console.c:1442
 msgid "A search type is required, e.g. name"
 msgstr "Морате навести врсту претраге, нпр. по имену"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1444 ../client/pk-console.c:1456
-#: ../client/pk-console.c:1468 ../client/pk-console.c:1480
+#: ../client/pk-console.c:1449 ../client/pk-console.c:1461
+#: ../client/pk-console.c:1473 ../client/pk-console.c:1485
 msgid "A search term is required"
 msgstr "Морате навести термин за претрагу"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1490
+#: ../client/pk-console.c:1495
 msgid "Invalid search type"
 msgstr "Неисправна врста претраге"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1496
+#: ../client/pk-console.c:1501
 msgid "A package name to install is required"
 msgstr "Неопходно је име пакета за инсталацију"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1505
+#: ../client/pk-console.c:1510
 msgid "A filename to install is required"
 msgstr "Неопходно је име датотеке за инсталацију"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1516
+#: ../client/pk-console.c:1521
 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:1527
+#: ../client/pk-console.c:1532
 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:1536
+#: ../client/pk-console.c:1541
 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:1543
+#: ../client/pk-console.c:1548
 msgid "Directory not found"
 msgstr "Директоријум није нађен"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1552
+#: ../client/pk-console.c:1557
 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:1563
+#: ../client/pk-console.c:1568
 msgid "A transaction identifier (tid) is required"
 msgstr "Морате навести идентификатор трансакције (tid)"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:1584
+#: ../client/pk-console.c:1589
 msgid "A package name to resolve is required"
 msgstr "Морате навести име пакета за разрешавање"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:1595 ../client/pk-console.c:1606
+#: ../client/pk-console.c:1600 ../client/pk-console.c:1611
 msgid "A repository name is required"
 msgstr "Морате навести име ризнице"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:1617
+#: ../client/pk-console.c:1622
 msgid "A repo name, parameter and value are required"
 msgstr "Морате навести име, параметар и вредност ризнице"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:1634
+#: ../client/pk-console.c:1639
 msgid "An action, e.g. 'update-system' is required"
 msgstr "Морате навести радњу, нпр. „update-system“ (ажурирање система)"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:1641
+#: ../client/pk-console.c:1646
 msgid "A correct role is required"
 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:1651 ../client/pk-console.c:1665
-#: ../client/pk-console.c:1674 ../client/pk-console.c:1694
-#: ../client/pk-console.c:1703 ../client/pk-generate-pack.c:314
+#: ../client/pk-console.c:1656 ../client/pk-console.c:1670
+#: ../client/pk-console.c:1679 ../client/pk-console.c:1699
+#: ../client/pk-console.c:1708 ../client/pk-generate-pack.c:314
 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:1683
+#: ../client/pk-console.c:1688
 msgid "A package provide string is required"
 msgstr "Морате навести „provide“ низ (шта пакет пружа)"
 
 #. TRANSLATORS: The user did not provide a distro name
-#: ../client/pk-console.c:1727
+#: ../client/pk-console.c:1732
 msgid "A distribution name is required"
 msgstr ""
 
 #. TRANSLATORS: The user did not provide an upgrade type
-#: ../client/pk-console.c:1733
+#: ../client/pk-console.c:1738
 msgid "An upgrade type is required, e.g. 'minimal', 'default' or 'complete'"
 msgstr ""
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command
 #. line
-#: ../client/pk-console.c:1783
+#: ../client/pk-console.c:1788
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "Опција „%s“ није подржана"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:1793
+#: ../client/pk-console.c:1798
 msgid "Command failed"
 msgstr "Наредба није успела"
 
@@ -724,159 +725,154 @@ msgid "PackageKit Monitor"
 msgstr "ПакетКит редар"
 
 #. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/pk-plugin-install.c:499
+#: ../contrib/browser-plugin/pk-plugin-install.c:503
 msgid "Getting package information..."
 msgstr "Добављам податке о пакету...."
 
 #. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/pk-plugin-install.c:505
+#: ../contrib/browser-plugin/pk-plugin-install.c:509
 #, c-format
 msgid "Run %s"
 msgstr "Покрени %s"
 
 #. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:511
+#: ../contrib/browser-plugin/pk-plugin-install.c:515
 msgid "Installed version"
 msgstr "Инсталирана верзија"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:519
+#: ../contrib/browser-plugin/pk-plugin-install.c:523
 #, c-format
 msgid "Run version %s now"
 msgstr "Покрени верзију %s сада"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:525
+#: ../contrib/browser-plugin/pk-plugin-install.c:529
 msgid "Run now"
 msgstr "Покрени сада"
 
 #. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:531
+#: ../contrib/browser-plugin/pk-plugin-install.c:535
 #, c-format
 msgid "Update to version %s"
 msgstr "Ажурирај на верзију %s"
 
 #. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:537
+#: ../contrib/browser-plugin/pk-plugin-install.c:541
 #, c-format
 msgid "Install %s now"
 msgstr "Инсталирај %s сада"
 
 #. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:540
+#: ../contrib/browser-plugin/pk-plugin-install.c:544
 msgid "Version"
 msgstr "Верзија"
 
 #. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/pk-plugin-install.c:545
+#: ../contrib/browser-plugin/pk-plugin-install.c:549
 msgid "No packages found for your system"
 msgstr "Није пронађен ниједан пакет за ваш систем"
 
 #. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/pk-plugin-install.c:550
+#: ../contrib/browser-plugin/pk-plugin-install.c:554
 msgid "Installing..."
 msgstr "Инсталирам..."
 
 #. TRANSLATORS: downloading repo data so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:366
+#: ../contrib/command-not-found/pk-command-not-found.c:363
 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:370
+#: ../contrib/command-not-found/pk-command-not-found.c:367
 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:374
+#: ../contrib/command-not-found/pk-command-not-found.c:371
 msgid "Waiting for package manager lock."
 msgstr "Чекање на закључавање управника пакета."
 
 #. TRANSLATORS: loading package cache so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:378
+#: ../contrib/command-not-found/pk-command-not-found.c:375
 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:444
+#: ../contrib/command-not-found/pk-command-not-found.c:439
 msgid "Failed to search for file"
 msgstr "Датотека није пронађена"
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
-#: ../contrib/command-not-found/pk-command-not-found.c:456
+#: ../contrib/command-not-found/pk-command-not-found.c:451
 msgid "Getting the list of files failed"
 msgstr ""
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:602
+#: ../contrib/command-not-found/pk-command-not-found.c:597
 msgid "Failed to launch:"
 msgstr "Неуспешно покретање:"
 
 #. TRANSLATORS: we failed to install the package
-#: ../contrib/command-not-found/pk-command-not-found.c:630
+#: ../contrib/command-not-found/pk-command-not-found.c:625
 msgid "Failed to install packages"
 msgstr "Неуспешна инсталација пакета"
 
-#. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/command-not-found/pk-command-not-found.c:706
-msgid "PackageKit Command Not Found"
-msgstr "ПакетКит наредба није нађена"
-
 #. TRANSLATORS: the prefix of all the output telling the user
 #. * why it's not executing. NOTE: this is lowercase to mimic
 #. * the style of bash itself -- apologies
-#: ../contrib/command-not-found/pk-command-not-found.c:741
+#: ../contrib/command-not-found/pk-command-not-found.c:723
 msgid "command not found"
 msgstr ""
 
 #. TRANSLATORS: tell the user what we think the command is
-#: ../contrib/command-not-found/pk-command-not-found.c:759
+#: ../contrib/command-not-found/pk-command-not-found.c:741
 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:773
+#: ../contrib/command-not-found/pk-command-not-found.c:755
 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:787
-#: ../contrib/command-not-found/pk-command-not-found.c:796
+#: ../contrib/command-not-found/pk-command-not-found.c:769
+#: ../contrib/command-not-found/pk-command-not-found.c:778
 msgid "Similar commands are:"
 msgstr "Сличне наредбе су:"
 
 #. TRANSLATORS: ask the user to choose a file to run
-#: ../contrib/command-not-found/pk-command-not-found.c:803
+#: ../contrib/command-not-found/pk-command-not-found.c:785
 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:821
+#: ../contrib/command-not-found/pk-command-not-found.c:803
 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:828
+#: ../contrib/command-not-found/pk-command-not-found.c:810
 #, 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:855
+#: ../contrib/command-not-found/pk-command-not-found.c:837
 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:865
+#: ../contrib/command-not-found/pk-command-not-found.c:847
 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:874
+#: ../contrib/command-not-found/pk-command-not-found.c:856
 msgid "Please choose a package to install"
 msgstr "Изаберите пакет за инсталацију"
 
@@ -1051,7 +1047,7 @@ msgstr "Не инсталирам пакете у режиму симулаци
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
 #. TRANSLATORS: transaction state, installing packages
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:860
-#: ../lib/packagekit-glib2/pk-console-shared.c:296
+#: ../lib/packagekit-glib2/pk-console-shared.c:331
 #, c-format
 msgid "Installing packages"
 msgstr "Инсталирам пакете"
@@ -1185,474 +1181,474 @@ msgstr "ПакетКит списак пакета"
 msgid "PackageKit Service Pack"
 msgstr "Сервис ПакетКита"
 
-#: ../lib/packagekit-glib2/pk-console-shared.c:64
+#: ../lib/packagekit-glib2/pk-console-shared.c:65
 #, c-format
 msgid "Please enter a number from 1 to %i: "
 msgstr "Унесите број између 1 и %i: "
 
 #. TRANSLATORS: more than one package could be found that matched, to follow
 #. is a list of possible packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:198
+#: ../lib/packagekit-glib2/pk-console-shared.c:233
 msgid "More than one package matches:"
 msgstr "Постоји више пакета који одговарају упиту:"
 
 #. TRANSLATORS: This finds out which package in the list to use
-#: ../lib/packagekit-glib2/pk-console-shared.c:209
+#: ../lib/packagekit-glib2/pk-console-shared.c:244
 msgid "Please choose the correct package: "
 msgstr "Изаберите жељени пакет: "
 
 #. TRANSLATORS: This is when the transaction status is not known
-#: ../lib/packagekit-glib2/pk-console-shared.c:264
+#: ../lib/packagekit-glib2/pk-console-shared.c:299
 msgid "Unknown state"
 msgstr "Непознато стање"
 
 #. TRANSLATORS: transaction state, the daemon is in the process of starting
-#: ../lib/packagekit-glib2/pk-console-shared.c:268
+#: ../lib/packagekit-glib2/pk-console-shared.c:303
 msgid "Starting"
 msgstr "Покретање"
 
 #. TRANSLATORS: transaction state, the transaction is waiting for another to
 #. complete
-#: ../lib/packagekit-glib2/pk-console-shared.c:272
+#: ../lib/packagekit-glib2/pk-console-shared.c:307
 msgid "Waiting in queue"
 msgstr "Чекање у реду"
 
 #. TRANSLATORS: transaction state, just started
-#: ../lib/packagekit-glib2/pk-console-shared.c:276
+#: ../lib/packagekit-glib2/pk-console-shared.c:311
 msgid "Running"
 msgstr "Извршавање"
 
 #. TRANSLATORS: transaction state, is querying data
-#: ../lib/packagekit-glib2/pk-console-shared.c:280
+#: ../lib/packagekit-glib2/pk-console-shared.c:315
 msgid "Querying"
 msgstr "Испитивање"
 
 #. TRANSLATORS: transaction state, getting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:284
+#: ../lib/packagekit-glib2/pk-console-shared.c:319
 msgid "Getting information"
 msgstr "Добављање података"
 
 #. TRANSLATORS: transaction state, removing packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:288
+#: ../lib/packagekit-glib2/pk-console-shared.c:323
 msgid "Removing packages"
 msgstr "Уклањање пакета"
 
 #. TRANSLATORS: transaction state, downloading package files
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:292
-#: ../lib/packagekit-glib2/pk-console-shared.c:670
+#: ../lib/packagekit-glib2/pk-console-shared.c:327
+#: ../lib/packagekit-glib2/pk-console-shared.c:705
 msgid "Downloading packages"
 msgstr "Преузимање пакета"
 
 #. TRANSLATORS: transaction state, refreshing internal lists
-#: ../lib/packagekit-glib2/pk-console-shared.c:300
+#: ../lib/packagekit-glib2/pk-console-shared.c:335
 msgid "Refreshing software list"
 msgstr "Освежавање списка софтвера"
 
 #. TRANSLATORS: transaction state, installing updates
-#: ../lib/packagekit-glib2/pk-console-shared.c:304
+#: ../lib/packagekit-glib2/pk-console-shared.c:339
 msgid "Installing updates"
 msgstr "Инсталирање ажурирања"
 
 #. TRANSLATORS: transaction state, removing old packages, and cleaning config
 #. files
-#: ../lib/packagekit-glib2/pk-console-shared.c:308
+#: ../lib/packagekit-glib2/pk-console-shared.c:343
 msgid "Cleaning up packages"
 msgstr "Чишћење пакета"
 
 #. TRANSLATORS: transaction state, obsoleting old packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:312
+#: ../lib/packagekit-glib2/pk-console-shared.c:347
 msgid "Obsoleting packages"
 msgstr "Превазилазим пакете"
 
 #. TRANSLATORS: transaction state, checking the transaction before we do it
-#: ../lib/packagekit-glib2/pk-console-shared.c:316
+#: ../lib/packagekit-glib2/pk-console-shared.c:351
 msgid "Resolving dependencies"
 msgstr "Разрешавање зависности"
 
 #. TRANSLATORS: transaction state, checking if we have all the security keys
 #. for the operation
-#: ../lib/packagekit-glib2/pk-console-shared.c:320
+#: ../lib/packagekit-glib2/pk-console-shared.c:355
 msgid "Checking signatures"
 msgstr "Провера потписа"
 
 #. TRANSLATORS: transaction state, when we return to a previous system state
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:324
-#: ../lib/packagekit-glib2/pk-console-shared.c:630
+#: ../lib/packagekit-glib2/pk-console-shared.c:359
+#: ../lib/packagekit-glib2/pk-console-shared.c:665
 msgid "Rolling back"
 msgstr "Враћање уназад"
 
 #. TRANSLATORS: transaction state, when we're doing a test transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:328
+#: ../lib/packagekit-glib2/pk-console-shared.c:363
 msgid "Testing changes"
 msgstr "Испробавање промена"
 
 #. TRANSLATORS: transaction state, when we're writing to the system package
 #. database
-#: ../lib/packagekit-glib2/pk-console-shared.c:332
+#: ../lib/packagekit-glib2/pk-console-shared.c:367
 msgid "Committing changes"
 msgstr "Шаљем промене"
 
 #. TRANSLATORS: transaction state, requesting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:336
+#: ../lib/packagekit-glib2/pk-console-shared.c:371
 msgid "Requesting data"
 msgstr "Захтевам податке"
 
 #. TRANSLATORS: transaction state, all done!
-#: ../lib/packagekit-glib2/pk-console-shared.c:340
+#: ../lib/packagekit-glib2/pk-console-shared.c:375
 msgid "Finished"
 msgstr "Завршено"
 
 #. TRANSLATORS: transaction state, in the process of cancelling
-#: ../lib/packagekit-glib2/pk-console-shared.c:344
+#: ../lib/packagekit-glib2/pk-console-shared.c:379
 msgid "Cancelling"
 msgstr "Отказивање"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:348
+#: ../lib/packagekit-glib2/pk-console-shared.c:383
 msgid "Downloading repository information"
 msgstr "Преузимам податке о ризници"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:352
+#: ../lib/packagekit-glib2/pk-console-shared.c:387
 msgid "Downloading list of packages"
 msgstr "Преузимање списка пакета"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:356
+#: ../lib/packagekit-glib2/pk-console-shared.c:391
 msgid "Downloading file lists"
 msgstr "Преузимање спискова датотека"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:360
+#: ../lib/packagekit-glib2/pk-console-shared.c:395
 msgid "Downloading lists of changes"
 msgstr "Преузимање спискова промена"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:364
+#: ../lib/packagekit-glib2/pk-console-shared.c:399
 msgid "Downloading groups"
 msgstr "Преузимање група"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:368
+#: ../lib/packagekit-glib2/pk-console-shared.c:403
 msgid "Downloading update information"
 msgstr "Преузимање података о ажурирању"
 
 #. TRANSLATORS: transaction state, repackaging delta files
-#: ../lib/packagekit-glib2/pk-console-shared.c:372
+#: ../lib/packagekit-glib2/pk-console-shared.c:407
 msgid "Repackaging files"
 msgstr "Препакивање датотека"
 
 #. TRANSLATORS: transaction state, loading databases
-#: ../lib/packagekit-glib2/pk-console-shared.c:376
+#: ../lib/packagekit-glib2/pk-console-shared.c:411
 msgid "Loading cache"
 msgstr "Учитавање кеша"
 
 #. TRANSLATORS: transaction state, scanning for running processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:380
+#: ../lib/packagekit-glib2/pk-console-shared.c:415
 msgid "Scanning applications"
 msgstr "Претражујем програме"
 
 #. TRANSLATORS: transaction state, generating a list of packages installed on
 #. the system
-#: ../lib/packagekit-glib2/pk-console-shared.c:384
+#: ../lib/packagekit-glib2/pk-console-shared.c:419
 msgid "Generating package lists"
 msgstr "Прављење спискова пакета"
 
 #. TRANSLATORS: transaction state, when we're waiting for the native tools to
 #. exit
-#: ../lib/packagekit-glib2/pk-console-shared.c:388
+#: ../lib/packagekit-glib2/pk-console-shared.c:423
 msgid "Waiting for package manager lock"
 msgstr "Чекање на закључавање управника пакета"
 
 #. TRANSLATORS: transaction state, waiting for user to type in a password
-#: ../lib/packagekit-glib2/pk-console-shared.c:392
+#: ../lib/packagekit-glib2/pk-console-shared.c:427
 msgid "Waiting for authentication"
 msgstr "Чекање на аутентификацију"
 
 #. TRANSLATORS: transaction state, we are updating the list of processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:396
+#: ../lib/packagekit-glib2/pk-console-shared.c:431
 msgid "Updating running applications"
 msgstr "Ажурирам покренуте програме"
 
 #. TRANSLATORS: transaction state, we are checking executable files currently
 #. in use
-#: ../lib/packagekit-glib2/pk-console-shared.c:400
+#: ../lib/packagekit-glib2/pk-console-shared.c:435
 msgid "Checking applications in use"
 msgstr "Проверавам програме у употреби"
 
 #. TRANSLATORS: transaction state, we are checking for libraries currently in
 #. use
-#: ../lib/packagekit-glib2/pk-console-shared.c:404
+#: ../lib/packagekit-glib2/pk-console-shared.c:439
 msgid "Checking libraries in use"
 msgstr "Проверавам библиотеке у употреби"
 
 #. TRANSLATORS: transaction state, we are copying package files before or
 #. after the transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:408
+#: ../lib/packagekit-glib2/pk-console-shared.c:443
 msgid "Copying files"
 msgstr "Умножавање датотека"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:426
+#: ../lib/packagekit-glib2/pk-console-shared.c:461
 msgid "Trivial"
 msgstr "Тривијално"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:430
+#: ../lib/packagekit-glib2/pk-console-shared.c:465
 msgid "Normal"
 msgstr "Обично"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:434
+#: ../lib/packagekit-glib2/pk-console-shared.c:469
 msgid "Important"
 msgstr "Важно"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:438
+#: ../lib/packagekit-glib2/pk-console-shared.c:473
 msgid "Security"
 msgstr "Безбедносно"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:442
+#: ../lib/packagekit-glib2/pk-console-shared.c:477
 msgid "Bug fix "
 msgstr "Исправка грешке"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:446
+#: ../lib/packagekit-glib2/pk-console-shared.c:481
 msgid "Enhancement"
 msgstr "Побољшање"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:450
+#: ../lib/packagekit-glib2/pk-console-shared.c:485
 msgid "Blocked"
 msgstr "Блокирано"
 
 #. TRANSLATORS: The state of a package
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:455
-#: ../lib/packagekit-glib2/pk-console-shared.c:528
+#: ../lib/packagekit-glib2/pk-console-shared.c:490
+#: ../lib/packagekit-glib2/pk-console-shared.c:563
 msgid "Installed"
 msgstr "Инсталиран"
 
 #. TRANSLATORS: The state of a package, i.e. not installed
-#: ../lib/packagekit-glib2/pk-console-shared.c:460
+#: ../lib/packagekit-glib2/pk-console-shared.c:495
 msgid "Available"
 msgstr "Доступан"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:478
+#: ../lib/packagekit-glib2/pk-console-shared.c:513
 msgid "Downloading"
 msgstr "Преузимање"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:482
+#: ../lib/packagekit-glib2/pk-console-shared.c:517
 msgid "Updating"
 msgstr "Ажурирање"
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:486
-#: ../lib/packagekit-glib2/pk-console-shared.c:606
+#: ../lib/packagekit-glib2/pk-console-shared.c:521
+#: ../lib/packagekit-glib2/pk-console-shared.c:641
 msgid "Installing"
 msgstr "Инсталација"
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:490
-#: ../lib/packagekit-glib2/pk-console-shared.c:602
+#: ../lib/packagekit-glib2/pk-console-shared.c:525
+#: ../lib/packagekit-glib2/pk-console-shared.c:637
 msgid "Removing"
 msgstr "Уклањање"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:494
+#: ../lib/packagekit-glib2/pk-console-shared.c:529
 msgid "Cleaning up"
 msgstr "Чишћење"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:498
+#: ../lib/packagekit-glib2/pk-console-shared.c:533
 msgid "Obsoleting"
 msgstr "Превазилажење"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:502
+#: ../lib/packagekit-glib2/pk-console-shared.c:537
 msgid "Reinstalling"
 msgstr "Поновна инсталација"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:520
+#: ../lib/packagekit-glib2/pk-console-shared.c:555
 msgid "Downloaded"
 msgstr "Преузет"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:532
+#: ../lib/packagekit-glib2/pk-console-shared.c:567
 msgid "Removed"
 msgstr "Уклоњен"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:536
+#: ../lib/packagekit-glib2/pk-console-shared.c:571
 msgid "Cleaned up"
 msgstr "Очишћен"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:540
+#: ../lib/packagekit-glib2/pk-console-shared.c:575
 msgid "Obsoleted"
 msgstr "Превазиђен"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:544
+#: ../lib/packagekit-glib2/pk-console-shared.c:579
 msgid "Reinstalled"
 msgstr "Поново инсталиран"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:562
+#: ../lib/packagekit-glib2/pk-console-shared.c:597
 msgid "Unknown role type"
 msgstr "Непозната врста радње"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:566
+#: ../lib/packagekit-glib2/pk-console-shared.c:601
 msgid "Getting dependencies"
 msgstr "Добављање зависности"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:570
+#: ../lib/packagekit-glib2/pk-console-shared.c:605
 msgid "Getting update details"
 msgstr "Добављање детаља о ажурирању"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:574
+#: ../lib/packagekit-glib2/pk-console-shared.c:609
 msgid "Getting details"
 msgstr "Добављање детаља"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:578
+#: ../lib/packagekit-glib2/pk-console-shared.c:613
 msgid "Getting requires"
 msgstr "Добављам захтевања"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:582
+#: ../lib/packagekit-glib2/pk-console-shared.c:617
 msgid "Getting updates"
 msgstr "Добављам ажурирања"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:586
+#: ../lib/packagekit-glib2/pk-console-shared.c:621
 msgid "Searching by details"
 msgstr "Претражујем по детаљима"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:590
+#: ../lib/packagekit-glib2/pk-console-shared.c:625
 msgid "Searching by file"
 msgstr "Претражујем по датотекама"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:594
+#: ../lib/packagekit-glib2/pk-console-shared.c:629
 msgid "Searching groups"
 msgstr "Претражујем по групама"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:598
+#: ../lib/packagekit-glib2/pk-console-shared.c:633
 msgid "Searching by name"
 msgstr "Претражујем по имену"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:610
+#: ../lib/packagekit-glib2/pk-console-shared.c:645
 msgid "Installing files"
 msgstr "Инсталирам датотеке"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:614
+#: ../lib/packagekit-glib2/pk-console-shared.c:649
 msgid "Refreshing cache"
 msgstr "Освежавам кеш"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:618
+#: ../lib/packagekit-glib2/pk-console-shared.c:653
 msgid "Updating packages"
 msgstr "Ажурирање пакета"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:622
+#: ../lib/packagekit-glib2/pk-console-shared.c:657
 msgid "Updating system"
 msgstr "Ажурирање система"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:626
+#: ../lib/packagekit-glib2/pk-console-shared.c:661
 msgid "Canceling"
 msgstr "Отказивање"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:634
+#: ../lib/packagekit-glib2/pk-console-shared.c:669
 msgid "Getting repositories"
 msgstr "Добављање ризница"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:638
+#: ../lib/packagekit-glib2/pk-console-shared.c:673
 msgid "Enabling repository"
 msgstr "Укључивање ризнице"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:642
+#: ../lib/packagekit-glib2/pk-console-shared.c:677
 msgid "Setting data"
 msgstr "Постављање података"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:646
+#: ../lib/packagekit-glib2/pk-console-shared.c:681
 msgid "Resolving"
 msgstr "Разрешавање"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:650
+#: ../lib/packagekit-glib2/pk-console-shared.c:685
 msgid "Getting file list"
 msgstr "Добављање списка датотека"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:654
+#: ../lib/packagekit-glib2/pk-console-shared.c:689
 msgid "Getting provides"
 msgstr "Добављање пружања"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:658
+#: ../lib/packagekit-glib2/pk-console-shared.c:693
 msgid "Installing signature"
 msgstr "Инсталирање потписа"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:662
+#: ../lib/packagekit-glib2/pk-console-shared.c:697
 msgid "Getting packages"
 msgstr "Добављање пакета"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:666
+#: ../lib/packagekit-glib2/pk-console-shared.c:701
 msgid "Accepting EULA"
 msgstr "Прихватање лиценце"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:674
+#: ../lib/packagekit-glib2/pk-console-shared.c:709
 msgid "Getting upgrades"
 msgstr "Добављање надградњи"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:678
+#: ../lib/packagekit-glib2/pk-console-shared.c:713
 msgid "Getting categories"
 msgstr "Добављање категорија"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:682
+#: ../lib/packagekit-glib2/pk-console-shared.c:717
 msgid "Getting transactions"
 msgstr "Добављање трансакција"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:686
-#: ../lib/packagekit-glib2/pk-console-shared.c:690
+#: ../lib/packagekit-glib2/pk-console-shared.c:721
+#: ../lib/packagekit-glib2/pk-console-shared.c:725
 msgid "Simulating install"
 msgstr "Симулирање инсталације"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:694
+#: ../lib/packagekit-glib2/pk-console-shared.c:729
 msgid "Simulating remove"
 msgstr "Симулирање уклањања"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:698
+#: ../lib/packagekit-glib2/pk-console-shared.c:733
 msgid "Simulating update"
 msgstr "Симулирање ажурирања"
 
@@ -1802,13 +1798,19 @@ msgstr "Следећи пакети морају бити поново инст
 msgid "The following packages have to be downgraded:"
 msgstr "Следећи пакети морају бити уназађени:"
 
+#. TRANSLATORS: When processing, untrusted and non-verified packages may be
+#. encountered
+#: ../lib/packagekit-glib2/pk-task-text.c:325
+msgid "The following packages are untrusted:"
+msgstr ""
+
 #. TRANSLATORS: ask the user if the proposed changes are okay
-#: ../lib/packagekit-glib2/pk-task-text.c:380
+#: ../lib/packagekit-glib2/pk-task-text.c:385
 msgid "Proceed with changes?"
 msgstr "Наставити са променама?"
 
 #. TRANSLATORS: tell the user we didn't do anything
-#: ../lib/packagekit-glib2/pk-task-text.c:385
+#: ../lib/packagekit-glib2/pk-task-text.c:390
 msgid "The transaction did not proceed."
 msgstr "Трансакција није настављена."
 
@@ -2022,101 +2024,71 @@ msgstr "Ажурирај пакете"
 msgid "Upgrade System"
 msgstr ""
 
-#. TRANSLATORS: failed due to DBus security
-#: ../src/pk-main.c:91
-msgid "Startup failed due to security policies on this machine."
-msgstr "Покретање није успело услед системске безбедносне полисе."
-
-#. TRANSLATORS: only two ways this can fail...
-#: ../src/pk-main.c:93
-msgid "This can happen for two reasons:"
-msgstr "Два су могућа разлога:"
-
-#. TRANSLATORS: only allowed to be owned by root
-#: ../src/pk-main.c:95
-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:97
-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:223
+#: ../src/pk-main.c:149
 msgid "Packaging backend to use, e.g. dummy"
 msgstr "Позадински систем у употреби, нпр. „dummy“ (пробни)"
 
 #. TRANSLATORS: if we should run in the background
-#: ../src/pk-main.c:226
+#: ../src/pk-main.c:152
 msgid "Daemonize and detach from the terminal"
 msgstr "Одвоји од терминала и настави рад као услужни програм"
 
 #. TRANSLATORS: if we should not monitor how long we are inactive for
-#: ../src/pk-main.c:229
+#: ../src/pk-main.c:155
 msgid "Disable the idle timer"
 msgstr "Онемогући мерач чекања"
 
 #. TRANSLATORS: show version
-#: ../src/pk-main.c:232
+#: ../src/pk-main.c:158
 msgid "Show version and exit"
 msgstr "Прикажи верзију и заврши рад"
 
 #. TRANSLATORS: exit after we've started up, used for user profiling
-#: ../src/pk-main.c:235
+#: ../src/pk-main.c:161
 msgid "Exit after a small delay"
 msgstr "Изађи после кратке задршке"
 
 #. TRANSLATORS: exit straight away, used for automatic profiling
-#: ../src/pk-main.c:238
+#: ../src/pk-main.c:164
 msgid "Exit after the engine has loaded"
 msgstr "Заврши рад након што се учита позадински систем"
 
+#. TRANSLATORS: don't unset environment variables, used for debugging
+#: ../src/pk-main.c:167
+msgid "Don't clear environment on startup"
+msgstr ""
+
 #. TRANSLATORS: describing the service that is running
-#: ../src/pk-main.c:253
+#: ../src/pk-main.c:179
 msgid "PackageKit service"
 msgstr "Сервис ПакетКита"
 
-#. TRANSLATORS: fatal error, dbus is not running
-#: ../src/pk-main.c:298
-msgid "Cannot connect to the system bus"
-msgstr "Не могу да се повежем на системску магистралу"
-
-#: ../src/pk-main.c:344
+#: ../src/pk-main.c:253
 msgid "Failed to load any of the specified backends:"
 msgstr ""
 
-#. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error
-#. follows
-#: ../src/pk-main.c:358
-msgid "Error trying to start:"
-msgstr "Грешка при покретању:"
-
 #. TRANSLATORS: is not GPG signed
-#: ../src/pk-transaction.c:2611 ../src/pk-transaction.c:2618
+#: ../src/pk-transaction.c:2696
 msgid "The software is not from a trusted source."
 msgstr "Овај софтвер није од поверљивог извора."
 
-#: ../src/pk-transaction.c:2623
+#: ../src/pk-transaction.c:2704
 msgid "Do not update this package unless you are sure it is safe to do so."
 msgstr ""
 "Немојте ажурирати овај пакет осим ако нисте сигурни да је то безбедно."
 
-#: ../src/pk-transaction.c:2624
+#: ../src/pk-transaction.c:2705
 msgid "Do not update these packages unless you are sure it is safe to do so."
 msgstr ""
 "Немојте ажурирати ове пакете осим ако нисте сигурни да је то безбедно."
 
-#: ../src/pk-transaction.c:2634
+#: ../src/pk-transaction.c:2715
 msgid "Do not install this package unless you are sure it is safe to do so."
 msgstr ""
 "Немојте инсталирати овај пакет осим ако нисте сигурни да је то безбедно."
 
-#: ../src/pk-transaction.c:2635
+#: ../src/pk-transaction.c:2716
 msgid "Do not install these packages unless you are sure it is safe to do so."
 msgstr ""
 "Немојте инсталирати ове пакете осим ако нисте сигурни да је то безбедно."
diff --git a/po/sr at latin.po b/po/sr at latin.po
index 9639d8a..b26b944 100644
--- a/po/sr at latin.po
+++ b/po/sr at latin.po
@@ -2,14 +2,15 @@
 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
 # This file is distributed under the same license as the PACKAGE package.
 # 
-# Richard Hughes <richard at hughsie.com>, 2011
+# Translators:
+# Richard Hughes <richard at hughsie.com>, 2011.
 msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-04 10:50+0100\n"
-"PO-Revision-Date: 2011-05-04 09:56+0000\n"
-"Last-Translator: hughsie <richard at hughsie.com>\n"
+"POT-Creation-Date: 2011-11-10 19:50+0000\n"
+"PO-Revision-Date: 2011-11-10 19:50+0000\n"
+"Last-Translator: Richard Hughes <richard at hughsie.com>\n"
 "Language-Team: Serbian (Latin) (http://www.transifex.net/projects/p/freedesktop/team/sr@latin/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -195,7 +196,7 @@ msgstr "Izdato"
 
 #. TRANSLATORS: details about the update, date the update was updated
 #. TRANSLATORS: The action of the package, in past tense
-#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:524
+#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:559
 msgid "Updated"
 msgstr "Datum ažuriranja"
 
@@ -285,7 +286,7 @@ msgstr ""
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
 #: ../client/pk-console.c:704
-#: ../contrib/command-not-found/pk-command-not-found.c:639
+#: ../contrib/command-not-found/pk-command-not-found.c:634
 msgid "The transaction failed"
 msgstr "Transakcija nije uspela"
 
@@ -340,21 +341,21 @@ msgstr ""
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:866
+#: ../client/pk-console.c:871
 #, c-format
 msgid "This tool could not find any available package: %s"
 msgstr "Ova alatka nije mogla pronaći nikakve dostupne pakete: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:894
+#: ../client/pk-console.c:899
 #, c-format
 msgid "This tool could not find the installed package: %s"
 msgstr "Ova alatka nije mogla pronaći instalirani paket: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:922 ../client/pk-console.c:950
+#: ../client/pk-console.c:927 ../client/pk-console.c:955
 #, c-format
 msgid "This tool could not find the package: %s"
 msgstr "Ova alatka nije mogla pronaći paket: %s"
@@ -367,70 +368,70 @@ msgstr "Ova alatka nije mogla pronaći paket: %s"
 #. detailed error follows
 #. TRANSLATORS: The package name was not found in any software sources. The
 #. detailed error follows
-#: ../client/pk-console.c:978 ../client/pk-console.c:1006
-#: ../client/pk-console.c:1034 ../client/pk-console.c:1062
-#: ../client/pk-console.c:1090
+#: ../client/pk-console.c:983 ../client/pk-console.c:1011
+#: ../client/pk-console.c:1039 ../client/pk-console.c:1067
+#: ../client/pk-console.c:1095
 #, c-format
 msgid "This tool could not find all the packages: %s"
 msgstr "Ova alatka nije pronašla sve pakete: %s"
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek
 #. without a paddle
-#: ../client/pk-console.c:1119
+#: ../client/pk-console.c:1124
 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:1153
+#: ../client/pk-console.c:1158
 msgid "PackageKit Console Interface"
 msgstr "Tekstualno sučelje programa PaketKit"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1155
+#: ../client/pk-console.c:1160
 msgid "Subcommands:"
 msgstr "Naredbe:"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was
 #. last executed
-#: ../client/pk-console.c:1235
+#: ../client/pk-console.c:1240
 msgid "Failed to get the time since this action was last completed"
 msgstr "Datum poslednjeg izvršavanja ove radnje nije pronađen"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1277 ../client/pk-monitor.c:371
+#: ../client/pk-console.c:1282 ../client/pk-monitor.c:371
 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:1280
+#: ../client/pk-console.c:1285
 msgid "Set the filter, e.g. installed"
 msgstr "Namesti filter, npr. instalirani"
 
 #. TRANSLATORS: command line argument, use a non-standard install prefix
-#: ../client/pk-console.c:1283
+#: ../client/pk-console.c:1288
 msgid "Set the install root, e.g. '/' or '/mnt/ltsp'"
 msgstr "Postavi koren instalacije, npr. „/“ ili „/mnt/ltsp“"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1286
+#: ../client/pk-console.c:1291
 msgid "Exit without waiting for actions to complete"
 msgstr "Završi rad bez čekanja da se poslovi završe"
 
 #. command line argument, do we ask questions
-#: ../client/pk-console.c:1289
+#: ../client/pk-console.c:1294
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:525
 msgid "Install the packages without asking for confirmation"
 msgstr "Instaliraj pakete bez pitanja za potvrdu"
 
 #. TRANSLATORS: command line argument, this command is not a priority
-#: ../client/pk-console.c:1292
+#: ../client/pk-console.c:1297
 msgid "Run the command using idle network bandwidth and also using less power"
 msgstr ""
 "Izvrši naredbu koristeći neiskorišćeni mrežni opseg i takođe trošeći manje "
 "energije"
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1295
+#: ../client/pk-console.c:1300
 msgid ""
 "Print to screen a machine readable output, rather than using animated "
 "widgets"
@@ -438,155 +439,155 @@ msgstr ""
 "Štampaj izlaz čitljiv mašini na ekranu, umesto upotrebe animiranih vidžeta"
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1298
+#: ../client/pk-console.c:1303
 msgid "The maximum metadata cache age. Use -1 for 'never'."
 msgstr ""
 
 #. TRANSLATORS: command line argument, --help
-#: ../client/pk-console.c:1301
+#: ../client/pk-console.c:1306
 msgid "Show help options."
 msgstr ""
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1331
+#: ../client/pk-console.c:1336
 msgid "Failed to parse command line"
 msgstr ""
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1341
+#: ../client/pk-console.c:1346
 msgid "Failed to contact PackageKit"
 msgstr "Neuspešno kontaktiranje PaketKita."
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1394
+#: ../client/pk-console.c:1399
 msgid "The proxy could not be set"
 msgstr "Proksi nije mogao da bude postavljen"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1406
+#: ../client/pk-console.c:1411
 msgid "The install root could not be set"
 msgstr "Koren instalacije nije mogao da bude postavljen"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1418
+#: ../client/pk-console.c:1423
 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:1437
+#: ../client/pk-console.c:1442
 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:1444 ../client/pk-console.c:1456
-#: ../client/pk-console.c:1468 ../client/pk-console.c:1480
+#: ../client/pk-console.c:1449 ../client/pk-console.c:1461
+#: ../client/pk-console.c:1473 ../client/pk-console.c:1485
 msgid "A search term is required"
 msgstr "Morate navesti termin za pretragu"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1490
+#: ../client/pk-console.c:1495
 msgid "Invalid search type"
 msgstr "Neispravna vrsta pretrage"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1496
+#: ../client/pk-console.c:1501
 msgid "A package name to install is required"
 msgstr "Neophodno je ime paketa za instalaciju"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1505
+#: ../client/pk-console.c:1510
 msgid "A filename to install is required"
 msgstr "Neophodno je ime datoteke za instalaciju"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1516
+#: ../client/pk-console.c:1521
 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:1527
+#: ../client/pk-console.c:1532
 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:1536
+#: ../client/pk-console.c:1541
 msgid "A destination directory and the package names to download are required"
 msgstr "Neophodni su odredišni direktorijum i imena paketa za preuzimanje"
 
 #. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:1543
+#: ../client/pk-console.c:1548
 msgid "Directory not found"
 msgstr "Direktorijum nije nađen"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1552
+#: ../client/pk-console.c:1557
 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:1563
+#: ../client/pk-console.c:1568
 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:1584
+#: ../client/pk-console.c:1589
 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:1595 ../client/pk-console.c:1606
+#: ../client/pk-console.c:1600 ../client/pk-console.c:1611
 msgid "A repository name is required"
 msgstr "Morate navesti ime riznice"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:1617
+#: ../client/pk-console.c:1622
 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:1634
+#: ../client/pk-console.c:1639
 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:1641
+#: ../client/pk-console.c:1646
 msgid "A correct role is required"
 msgstr "Morate navesti važeću radnju"
 
 #. 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:1651 ../client/pk-console.c:1665
-#: ../client/pk-console.c:1674 ../client/pk-console.c:1694
-#: ../client/pk-console.c:1703 ../client/pk-generate-pack.c:314
+#: ../client/pk-console.c:1656 ../client/pk-console.c:1670
+#: ../client/pk-console.c:1679 ../client/pk-console.c:1699
+#: ../client/pk-console.c:1708 ../client/pk-generate-pack.c:314
 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:1683
+#: ../client/pk-console.c:1688
 msgid "A package provide string is required"
 msgstr "Morate navesti „provide“ niz (šta paket pruža)"
 
 #. TRANSLATORS: The user did not provide a distro name
-#: ../client/pk-console.c:1727
+#: ../client/pk-console.c:1732
 msgid "A distribution name is required"
 msgstr ""
 
 #. TRANSLATORS: The user did not provide an upgrade type
-#: ../client/pk-console.c:1733
+#: ../client/pk-console.c:1738
 msgid "An upgrade type is required, e.g. 'minimal', 'default' or 'complete'"
 msgstr ""
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command
 #. line
-#: ../client/pk-console.c:1783
+#: ../client/pk-console.c:1788
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "Opcija „%s“ nije podržana"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:1793
+#: ../client/pk-console.c:1798
 msgid "Command failed"
 msgstr "Naredba nije uspela"
 
@@ -725,159 +726,154 @@ msgid "PackageKit Monitor"
 msgstr "PaketKit redar"
 
 #. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/pk-plugin-install.c:499
+#: ../contrib/browser-plugin/pk-plugin-install.c:503
 msgid "Getting package information..."
 msgstr "Dobavljam podatke o paketu...."
 
 #. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/pk-plugin-install.c:505
+#: ../contrib/browser-plugin/pk-plugin-install.c:509
 #, c-format
 msgid "Run %s"
 msgstr "Pokreni %s"
 
 #. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:511
+#: ../contrib/browser-plugin/pk-plugin-install.c:515
 msgid "Installed version"
 msgstr "Instalirana verzija"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:519
+#: ../contrib/browser-plugin/pk-plugin-install.c:523
 #, c-format
 msgid "Run version %s now"
 msgstr "Pokreni verziju %s sada"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:525
+#: ../contrib/browser-plugin/pk-plugin-install.c:529
 msgid "Run now"
 msgstr "Pokreni sada"
 
 #. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:531
+#: ../contrib/browser-plugin/pk-plugin-install.c:535
 #, 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:537
+#: ../contrib/browser-plugin/pk-plugin-install.c:541
 #, c-format
 msgid "Install %s now"
 msgstr "Instaliraj %s sada"
 
 #. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:540
+#: ../contrib/browser-plugin/pk-plugin-install.c:544
 msgid "Version"
 msgstr "Verzija"
 
 #. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/pk-plugin-install.c:545
+#: ../contrib/browser-plugin/pk-plugin-install.c:549
 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:550
+#: ../contrib/browser-plugin/pk-plugin-install.c:554
 msgid "Installing..."
 msgstr "Instaliram..."
 
 #. TRANSLATORS: downloading repo data so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:366
+#: ../contrib/command-not-found/pk-command-not-found.c:363
 msgid "Downloading details about the software sources."
 msgstr "Preuzimam detalje o izvorima softvera."
 
 #. TRANSLATORS: downloading file lists so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:370
+#: ../contrib/command-not-found/pk-command-not-found.c:367
 msgid "Downloading filelists (this may take some time to complete)."
 msgstr "Preuzimam spiskove datoteka (ovo može da potraje dok se ne završi)."
 
 #. TRANSLATORS: waiting for native lock
-#: ../contrib/command-not-found/pk-command-not-found.c:374
+#: ../contrib/command-not-found/pk-command-not-found.c:371
 msgid "Waiting for package manager lock."
 msgstr "Čekanje na zaključavanje upravnika paketa."
 
 #. TRANSLATORS: loading package cache so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:378
+#: ../contrib/command-not-found/pk-command-not-found.c:375
 msgid "Loading list of packages."
 msgstr "Učitavam spisak paketa."
 
 #. TRANSLATORS: we failed to find the package, this shouldn't happen
-#: ../contrib/command-not-found/pk-command-not-found.c:444
+#: ../contrib/command-not-found/pk-command-not-found.c:439
 msgid "Failed to search for file"
 msgstr "Datoteka nije pronađena"
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
-#: ../contrib/command-not-found/pk-command-not-found.c:456
+#: ../contrib/command-not-found/pk-command-not-found.c:451
 msgid "Getting the list of files failed"
 msgstr ""
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:602
+#: ../contrib/command-not-found/pk-command-not-found.c:597
 msgid "Failed to launch:"
 msgstr "Neuspešno pokretanje:"
 
 #. TRANSLATORS: we failed to install the package
-#: ../contrib/command-not-found/pk-command-not-found.c:630
+#: ../contrib/command-not-found/pk-command-not-found.c:625
 msgid "Failed to install packages"
 msgstr "Neuspešna instalacija paketa"
 
-#. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/command-not-found/pk-command-not-found.c:706
-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. NOTE: this is lowercase to mimic
 #. * the style of bash itself -- apologies
-#: ../contrib/command-not-found/pk-command-not-found.c:741
+#: ../contrib/command-not-found/pk-command-not-found.c:723
 msgid "command not found"
 msgstr ""
 
 #. TRANSLATORS: tell the user what we think the command is
-#: ../contrib/command-not-found/pk-command-not-found.c:759
+#: ../contrib/command-not-found/pk-command-not-found.c:741
 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:773
+#: ../contrib/command-not-found/pk-command-not-found.c:755
 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:787
-#: ../contrib/command-not-found/pk-command-not-found.c:796
+#: ../contrib/command-not-found/pk-command-not-found.c:769
+#: ../contrib/command-not-found/pk-command-not-found.c:778
 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:803
+#: ../contrib/command-not-found/pk-command-not-found.c:785
 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:821
+#: ../contrib/command-not-found/pk-command-not-found.c:803
 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:828
+#: ../contrib/command-not-found/pk-command-not-found.c:810
 #, 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:855
+#: ../contrib/command-not-found/pk-command-not-found.c:837
 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:865
+#: ../contrib/command-not-found/pk-command-not-found.c:847
 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:874
+#: ../contrib/command-not-found/pk-command-not-found.c:856
 msgid "Please choose a package to install"
 msgstr "Izaberite paket za instalaciju"
 
@@ -1052,7 +1048,7 @@ msgstr "Ne instaliram pakete u režimu simulacije"
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
 #. TRANSLATORS: transaction state, installing packages
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:860
-#: ../lib/packagekit-glib2/pk-console-shared.c:296
+#: ../lib/packagekit-glib2/pk-console-shared.c:331
 #, c-format
 msgid "Installing packages"
 msgstr "Instaliram pakete"
@@ -1186,474 +1182,474 @@ msgstr "PaketKit spisak paketa"
 msgid "PackageKit Service Pack"
 msgstr "Servis PaketKita"
 
-#: ../lib/packagekit-glib2/pk-console-shared.c:64
+#: ../lib/packagekit-glib2/pk-console-shared.c:65
 #, c-format
 msgid "Please enter a number from 1 to %i: "
 msgstr "Unesite broj između 1 i %i: "
 
 #. TRANSLATORS: more than one package could be found that matched, to follow
 #. is a list of possible packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:198
+#: ../lib/packagekit-glib2/pk-console-shared.c:233
 msgid "More than one package matches:"
 msgstr "Postoji više paketa koji odgovaraju upitu:"
 
 #. TRANSLATORS: This finds out which package in the list to use
-#: ../lib/packagekit-glib2/pk-console-shared.c:209
+#: ../lib/packagekit-glib2/pk-console-shared.c:244
 msgid "Please choose the correct package: "
 msgstr "Izaberite željeni paket: "
 
 #. TRANSLATORS: This is when the transaction status is not known
-#: ../lib/packagekit-glib2/pk-console-shared.c:264
+#: ../lib/packagekit-glib2/pk-console-shared.c:299
 msgid "Unknown state"
 msgstr "Nepoznato stanje"
 
 #. TRANSLATORS: transaction state, the daemon is in the process of starting
-#: ../lib/packagekit-glib2/pk-console-shared.c:268
+#: ../lib/packagekit-glib2/pk-console-shared.c:303
 msgid "Starting"
 msgstr "Pokretanje"
 
 #. TRANSLATORS: transaction state, the transaction is waiting for another to
 #. complete
-#: ../lib/packagekit-glib2/pk-console-shared.c:272
+#: ../lib/packagekit-glib2/pk-console-shared.c:307
 msgid "Waiting in queue"
 msgstr "ÄŒekanje u redu"
 
 #. TRANSLATORS: transaction state, just started
-#: ../lib/packagekit-glib2/pk-console-shared.c:276
+#: ../lib/packagekit-glib2/pk-console-shared.c:311
 msgid "Running"
 msgstr "Izvršavanje"
 
 #. TRANSLATORS: transaction state, is querying data
-#: ../lib/packagekit-glib2/pk-console-shared.c:280
+#: ../lib/packagekit-glib2/pk-console-shared.c:315
 msgid "Querying"
 msgstr "Ispitivanje"
 
 #. TRANSLATORS: transaction state, getting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:284
+#: ../lib/packagekit-glib2/pk-console-shared.c:319
 msgid "Getting information"
 msgstr "Dobavljanje podataka"
 
 #. TRANSLATORS: transaction state, removing packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:288
+#: ../lib/packagekit-glib2/pk-console-shared.c:323
 msgid "Removing packages"
 msgstr "Uklanjanje paketa"
 
 #. TRANSLATORS: transaction state, downloading package files
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:292
-#: ../lib/packagekit-glib2/pk-console-shared.c:670
+#: ../lib/packagekit-glib2/pk-console-shared.c:327
+#: ../lib/packagekit-glib2/pk-console-shared.c:705
 msgid "Downloading packages"
 msgstr "Preuzimanje paketa"
 
 #. TRANSLATORS: transaction state, refreshing internal lists
-#: ../lib/packagekit-glib2/pk-console-shared.c:300
+#: ../lib/packagekit-glib2/pk-console-shared.c:335
 msgid "Refreshing software list"
 msgstr "Osvežavanje spiska softvera"
 
 #. TRANSLATORS: transaction state, installing updates
-#: ../lib/packagekit-glib2/pk-console-shared.c:304
+#: ../lib/packagekit-glib2/pk-console-shared.c:339
 msgid "Installing updates"
 msgstr "Instaliranje ažuriranja"
 
 #. TRANSLATORS: transaction state, removing old packages, and cleaning config
 #. files
-#: ../lib/packagekit-glib2/pk-console-shared.c:308
+#: ../lib/packagekit-glib2/pk-console-shared.c:343
 msgid "Cleaning up packages"
 msgstr "Čišćenje paketa"
 
 #. TRANSLATORS: transaction state, obsoleting old packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:312
+#: ../lib/packagekit-glib2/pk-console-shared.c:347
 msgid "Obsoleting packages"
 msgstr "Prevazilazim pakete"
 
 #. TRANSLATORS: transaction state, checking the transaction before we do it
-#: ../lib/packagekit-glib2/pk-console-shared.c:316
+#: ../lib/packagekit-glib2/pk-console-shared.c:351
 msgid "Resolving dependencies"
 msgstr "Razrešavanje zavisnosti"
 
 #. TRANSLATORS: transaction state, checking if we have all the security keys
 #. for the operation
-#: ../lib/packagekit-glib2/pk-console-shared.c:320
+#: ../lib/packagekit-glib2/pk-console-shared.c:355
 msgid "Checking signatures"
 msgstr "Provera potpisa"
 
 #. TRANSLATORS: transaction state, when we return to a previous system state
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:324
-#: ../lib/packagekit-glib2/pk-console-shared.c:630
+#: ../lib/packagekit-glib2/pk-console-shared.c:359
+#: ../lib/packagekit-glib2/pk-console-shared.c:665
 msgid "Rolling back"
 msgstr "Vraćanje unazad"
 
 #. TRANSLATORS: transaction state, when we're doing a test transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:328
+#: ../lib/packagekit-glib2/pk-console-shared.c:363
 msgid "Testing changes"
 msgstr "Isprobavanje promena"
 
 #. TRANSLATORS: transaction state, when we're writing to the system package
 #. database
-#: ../lib/packagekit-glib2/pk-console-shared.c:332
+#: ../lib/packagekit-glib2/pk-console-shared.c:367
 msgid "Committing changes"
 msgstr "Å aljem promene"
 
 #. TRANSLATORS: transaction state, requesting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:336
+#: ../lib/packagekit-glib2/pk-console-shared.c:371
 msgid "Requesting data"
 msgstr "Zahtevam podatke"
 
 #. TRANSLATORS: transaction state, all done!
-#: ../lib/packagekit-glib2/pk-console-shared.c:340
+#: ../lib/packagekit-glib2/pk-console-shared.c:375
 msgid "Finished"
 msgstr "Završeno"
 
 #. TRANSLATORS: transaction state, in the process of cancelling
-#: ../lib/packagekit-glib2/pk-console-shared.c:344
+#: ../lib/packagekit-glib2/pk-console-shared.c:379
 msgid "Cancelling"
 msgstr "Otkazivanje"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:348
+#: ../lib/packagekit-glib2/pk-console-shared.c:383
 msgid "Downloading repository information"
 msgstr "Preuzimam podatke o riznici"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:352
+#: ../lib/packagekit-glib2/pk-console-shared.c:387
 msgid "Downloading list of packages"
 msgstr "Preuzimanje spiska paketa"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:356
+#: ../lib/packagekit-glib2/pk-console-shared.c:391
 msgid "Downloading file lists"
 msgstr "Preuzimanje spiskova datoteka"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:360
+#: ../lib/packagekit-glib2/pk-console-shared.c:395
 msgid "Downloading lists of changes"
 msgstr "Preuzimanje spiskova promena"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:364
+#: ../lib/packagekit-glib2/pk-console-shared.c:399
 msgid "Downloading groups"
 msgstr "Preuzimanje grupa"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:368
+#: ../lib/packagekit-glib2/pk-console-shared.c:403
 msgid "Downloading update information"
 msgstr "Preuzimanje podataka o ažuriranju"
 
 #. TRANSLATORS: transaction state, repackaging delta files
-#: ../lib/packagekit-glib2/pk-console-shared.c:372
+#: ../lib/packagekit-glib2/pk-console-shared.c:407
 msgid "Repackaging files"
 msgstr "Prepakivanje datoteka"
 
 #. TRANSLATORS: transaction state, loading databases
-#: ../lib/packagekit-glib2/pk-console-shared.c:376
+#: ../lib/packagekit-glib2/pk-console-shared.c:411
 msgid "Loading cache"
 msgstr "Učitavanje keša"
 
 #. TRANSLATORS: transaction state, scanning for running processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:380
+#: ../lib/packagekit-glib2/pk-console-shared.c:415
 msgid "Scanning applications"
 msgstr "Pretražujem programe"
 
 #. TRANSLATORS: transaction state, generating a list of packages installed on
 #. the system
-#: ../lib/packagekit-glib2/pk-console-shared.c:384
+#: ../lib/packagekit-glib2/pk-console-shared.c:419
 msgid "Generating package lists"
 msgstr "Pravljenje spiskova paketa"
 
 #. TRANSLATORS: transaction state, when we're waiting for the native tools to
 #. exit
-#: ../lib/packagekit-glib2/pk-console-shared.c:388
+#: ../lib/packagekit-glib2/pk-console-shared.c:423
 msgid "Waiting for package manager lock"
 msgstr "Čekanje na zaključavanje upravnika paketa"
 
 #. TRANSLATORS: transaction state, waiting for user to type in a password
-#: ../lib/packagekit-glib2/pk-console-shared.c:392
+#: ../lib/packagekit-glib2/pk-console-shared.c:427
 msgid "Waiting for authentication"
 msgstr "ÄŒekanje na autentifikaciju"
 
 #. TRANSLATORS: transaction state, we are updating the list of processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:396
+#: ../lib/packagekit-glib2/pk-console-shared.c:431
 msgid "Updating running applications"
 msgstr "Ažuriram pokrenute programe"
 
 #. TRANSLATORS: transaction state, we are checking executable files currently
 #. in use
-#: ../lib/packagekit-glib2/pk-console-shared.c:400
+#: ../lib/packagekit-glib2/pk-console-shared.c:435
 msgid "Checking applications in use"
 msgstr "Proveravam programe u upotrebi"
 
 #. TRANSLATORS: transaction state, we are checking for libraries currently in
 #. use
-#: ../lib/packagekit-glib2/pk-console-shared.c:404
+#: ../lib/packagekit-glib2/pk-console-shared.c:439
 msgid "Checking libraries in use"
 msgstr "Proveravam biblioteke u upotrebi"
 
 #. TRANSLATORS: transaction state, we are copying package files before or
 #. after the transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:408
+#: ../lib/packagekit-glib2/pk-console-shared.c:443
 msgid "Copying files"
 msgstr "Umnožavanje datoteka"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:426
+#: ../lib/packagekit-glib2/pk-console-shared.c:461
 msgid "Trivial"
 msgstr "Trivijalno"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:430
+#: ../lib/packagekit-glib2/pk-console-shared.c:465
 msgid "Normal"
 msgstr "Obično"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:434
+#: ../lib/packagekit-glib2/pk-console-shared.c:469
 msgid "Important"
 msgstr "Važno"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:438
+#: ../lib/packagekit-glib2/pk-console-shared.c:473
 msgid "Security"
 msgstr "Bezbednosno"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:442
+#: ../lib/packagekit-glib2/pk-console-shared.c:477
 msgid "Bug fix "
 msgstr "Ispravka greške"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:446
+#: ../lib/packagekit-glib2/pk-console-shared.c:481
 msgid "Enhancement"
 msgstr "Poboljšanje"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:450
+#: ../lib/packagekit-glib2/pk-console-shared.c:485
 msgid "Blocked"
 msgstr "Blokirano"
 
 #. TRANSLATORS: The state of a package
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:455
-#: ../lib/packagekit-glib2/pk-console-shared.c:528
+#: ../lib/packagekit-glib2/pk-console-shared.c:490
+#: ../lib/packagekit-glib2/pk-console-shared.c:563
 msgid "Installed"
 msgstr "Instaliran"
 
 #. TRANSLATORS: The state of a package, i.e. not installed
-#: ../lib/packagekit-glib2/pk-console-shared.c:460
+#: ../lib/packagekit-glib2/pk-console-shared.c:495
 msgid "Available"
 msgstr "Dostupan"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:478
+#: ../lib/packagekit-glib2/pk-console-shared.c:513
 msgid "Downloading"
 msgstr "Preuzimanje"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:482
+#: ../lib/packagekit-glib2/pk-console-shared.c:517
 msgid "Updating"
 msgstr "Ažuriranje"
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:486
-#: ../lib/packagekit-glib2/pk-console-shared.c:606
+#: ../lib/packagekit-glib2/pk-console-shared.c:521
+#: ../lib/packagekit-glib2/pk-console-shared.c:641
 msgid "Installing"
 msgstr "Instalacija"
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:490
-#: ../lib/packagekit-glib2/pk-console-shared.c:602
+#: ../lib/packagekit-glib2/pk-console-shared.c:525
+#: ../lib/packagekit-glib2/pk-console-shared.c:637
 msgid "Removing"
 msgstr "Uklanjanje"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:494
+#: ../lib/packagekit-glib2/pk-console-shared.c:529
 msgid "Cleaning up"
 msgstr "Čišćenje"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:498
+#: ../lib/packagekit-glib2/pk-console-shared.c:533
 msgid "Obsoleting"
 msgstr "Prevazilaženje"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:502
+#: ../lib/packagekit-glib2/pk-console-shared.c:537
 msgid "Reinstalling"
 msgstr "Ponovna instalacija"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:520
+#: ../lib/packagekit-glib2/pk-console-shared.c:555
 msgid "Downloaded"
 msgstr "Preuzet"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:532
+#: ../lib/packagekit-glib2/pk-console-shared.c:567
 msgid "Removed"
 msgstr "Uklonjen"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:536
+#: ../lib/packagekit-glib2/pk-console-shared.c:571
 msgid "Cleaned up"
 msgstr "Očišćen"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:540
+#: ../lib/packagekit-glib2/pk-console-shared.c:575
 msgid "Obsoleted"
 msgstr "Prevaziđen"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:544
+#: ../lib/packagekit-glib2/pk-console-shared.c:579
 msgid "Reinstalled"
 msgstr "Ponovo instaliran"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:562
+#: ../lib/packagekit-glib2/pk-console-shared.c:597
 msgid "Unknown role type"
 msgstr "Nepoznata vrsta radnje"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:566
+#: ../lib/packagekit-glib2/pk-console-shared.c:601
 msgid "Getting dependencies"
 msgstr "Dobavljanje zavisnosti"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:570
+#: ../lib/packagekit-glib2/pk-console-shared.c:605
 msgid "Getting update details"
 msgstr "Dobavljanje detalja o ažuriranju"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:574
+#: ../lib/packagekit-glib2/pk-console-shared.c:609
 msgid "Getting details"
 msgstr "Dobavljanje detalja"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:578
+#: ../lib/packagekit-glib2/pk-console-shared.c:613
 msgid "Getting requires"
 msgstr "Dobavljam zahtevanja"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:582
+#: ../lib/packagekit-glib2/pk-console-shared.c:617
 msgid "Getting updates"
 msgstr "Dobavljam ažuriranja"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:586
+#: ../lib/packagekit-glib2/pk-console-shared.c:621
 msgid "Searching by details"
 msgstr "Pretražujem po detaljima"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:590
+#: ../lib/packagekit-glib2/pk-console-shared.c:625
 msgid "Searching by file"
 msgstr "Pretražujem po datotekama"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:594
+#: ../lib/packagekit-glib2/pk-console-shared.c:629
 msgid "Searching groups"
 msgstr "Pretražujem po grupama"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:598
+#: ../lib/packagekit-glib2/pk-console-shared.c:633
 msgid "Searching by name"
 msgstr "Pretražujem po imenu"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:610
+#: ../lib/packagekit-glib2/pk-console-shared.c:645
 msgid "Installing files"
 msgstr "Instaliram datoteke"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:614
+#: ../lib/packagekit-glib2/pk-console-shared.c:649
 msgid "Refreshing cache"
 msgstr "Osvežavam keš"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:618
+#: ../lib/packagekit-glib2/pk-console-shared.c:653
 msgid "Updating packages"
 msgstr "Ažuriranje paketa"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:622
+#: ../lib/packagekit-glib2/pk-console-shared.c:657
 msgid "Updating system"
 msgstr "Ažuriranje sistema"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:626
+#: ../lib/packagekit-glib2/pk-console-shared.c:661
 msgid "Canceling"
 msgstr "Otkazivanje"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:634
+#: ../lib/packagekit-glib2/pk-console-shared.c:669
 msgid "Getting repositories"
 msgstr "Dobavljanje riznica"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:638
+#: ../lib/packagekit-glib2/pk-console-shared.c:673
 msgid "Enabling repository"
 msgstr "Uključivanje riznice"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:642
+#: ../lib/packagekit-glib2/pk-console-shared.c:677
 msgid "Setting data"
 msgstr "Postavljanje podataka"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:646
+#: ../lib/packagekit-glib2/pk-console-shared.c:681
 msgid "Resolving"
 msgstr "Razrešavanje"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:650
+#: ../lib/packagekit-glib2/pk-console-shared.c:685
 msgid "Getting file list"
 msgstr "Dobavljanje spiska datoteka"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:654
+#: ../lib/packagekit-glib2/pk-console-shared.c:689
 msgid "Getting provides"
 msgstr "Dobavljanje pružanja"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:658
+#: ../lib/packagekit-glib2/pk-console-shared.c:693
 msgid "Installing signature"
 msgstr "Instaliranje potpisa"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:662
+#: ../lib/packagekit-glib2/pk-console-shared.c:697
 msgid "Getting packages"
 msgstr "Dobavljanje paketa"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:666
+#: ../lib/packagekit-glib2/pk-console-shared.c:701
 msgid "Accepting EULA"
 msgstr "Prihvatanje licence"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:674
+#: ../lib/packagekit-glib2/pk-console-shared.c:709
 msgid "Getting upgrades"
 msgstr "Dobavljanje nadgradnji"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:678
+#: ../lib/packagekit-glib2/pk-console-shared.c:713
 msgid "Getting categories"
 msgstr "Dobavljanje kategorija"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:682
+#: ../lib/packagekit-glib2/pk-console-shared.c:717
 msgid "Getting transactions"
 msgstr "Dobavljanje transakcija"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:686
-#: ../lib/packagekit-glib2/pk-console-shared.c:690
+#: ../lib/packagekit-glib2/pk-console-shared.c:721
+#: ../lib/packagekit-glib2/pk-console-shared.c:725
 msgid "Simulating install"
 msgstr "Simuliranje instalacije"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:694
+#: ../lib/packagekit-glib2/pk-console-shared.c:729
 msgid "Simulating remove"
 msgstr "Simuliranje uklanjanja"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:698
+#: ../lib/packagekit-glib2/pk-console-shared.c:733
 msgid "Simulating update"
 msgstr "Simuliranje ažuriranja"
 
@@ -1803,13 +1799,19 @@ msgstr "Sledeći paketi moraju biti ponovo instalirani:"
 msgid "The following packages have to be downgraded:"
 msgstr "Sledeći paketi moraju biti unazađeni:"
 
+#. TRANSLATORS: When processing, untrusted and non-verified packages may be
+#. encountered
+#: ../lib/packagekit-glib2/pk-task-text.c:325
+msgid "The following packages are untrusted:"
+msgstr ""
+
 #. TRANSLATORS: ask the user if the proposed changes are okay
-#: ../lib/packagekit-glib2/pk-task-text.c:380
+#: ../lib/packagekit-glib2/pk-task-text.c:385
 msgid "Proceed with changes?"
 msgstr "Nastaviti sa promenama?"
 
 #. TRANSLATORS: tell the user we didn't do anything
-#: ../lib/packagekit-glib2/pk-task-text.c:385
+#: ../lib/packagekit-glib2/pk-task-text.c:390
 msgid "The transaction did not proceed."
 msgstr "Transakcija nije nastavljena."
 
@@ -2023,101 +2025,71 @@ msgstr "Ažuriraj pakete"
 msgid "Upgrade System"
 msgstr ""
 
-#. TRANSLATORS: failed due to DBus security
-#: ../src/pk-main.c:91
-msgid "Startup failed due to security policies on this machine."
-msgstr "Pokretanje nije uspelo usled sistemske bezbednosne polise."
-
-#. TRANSLATORS: only two ways this can fail...
-#: ../src/pk-main.c:93
-msgid "This can happen for two reasons:"
-msgstr "Dva su moguća razloga:"
-
-#. TRANSLATORS: only allowed to be owned by root
-#: ../src/pk-main.c:95
-msgid "The correct user is not launching the executable (usually root)"
-msgstr "Program ne pokreće odgovarajući korisnik (najčešće treba „root“)"
-
-#. TRANSLATORS: or we are installed in a prefix
-#: ../src/pk-main.c:97
-msgid ""
-"The org.freedesktop.PackageKit.conf file is not installed in the system "
-"directory:"
-msgstr ""
-"Datoteka „org.freedesktop.PackageKit.conf“ nije instalirana u sistemski "
-"direktorijum:"
-
 #. TRANSLATORS: a backend is the system package tool, e.g. yum, apt
-#: ../src/pk-main.c:223
+#: ../src/pk-main.c:149
 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:226
+#: ../src/pk-main.c:152
 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:229
+#: ../src/pk-main.c:155
 msgid "Disable the idle timer"
 msgstr "Onemogući merač čekanja"
 
 #. TRANSLATORS: show version
-#: ../src/pk-main.c:232
+#: ../src/pk-main.c:158
 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:235
+#: ../src/pk-main.c:161
 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:238
+#: ../src/pk-main.c:164
 msgid "Exit after the engine has loaded"
 msgstr "Završi rad nakon što se učita pozadinski sistem"
 
+#. TRANSLATORS: don't unset environment variables, used for debugging
+#: ../src/pk-main.c:167
+msgid "Don't clear environment on startup"
+msgstr ""
+
 #. TRANSLATORS: describing the service that is running
-#: ../src/pk-main.c:253
+#: ../src/pk-main.c:179
 msgid "PackageKit service"
 msgstr "Servis PaketKita"
 
-#. TRANSLATORS: fatal error, dbus is not running
-#: ../src/pk-main.c:298
-msgid "Cannot connect to the system bus"
-msgstr "Ne mogu da se povežem na sistemsku magistralu"
-
-#: ../src/pk-main.c:344
+#: ../src/pk-main.c:253
 msgid "Failed to load any of the specified backends:"
 msgstr ""
 
-#. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error
-#. follows
-#: ../src/pk-main.c:358
-msgid "Error trying to start:"
-msgstr "Greška pri pokretanju:"
-
 #. TRANSLATORS: is not GPG signed
-#: ../src/pk-transaction.c:2611 ../src/pk-transaction.c:2618
+#: ../src/pk-transaction.c:2696
 msgid "The software is not from a trusted source."
 msgstr "Ovaj softver nije od poverljivog izvora."
 
-#: ../src/pk-transaction.c:2623
+#: ../src/pk-transaction.c:2704
 msgid "Do not update this package unless you are sure it is safe to do so."
 msgstr ""
 "Nemojte ažurirati ovaj paket osim ako niste sigurni da je to bezbedno."
 
-#: ../src/pk-transaction.c:2624
+#: ../src/pk-transaction.c:2705
 msgid "Do not update these packages unless you are sure it is safe to do so."
 msgstr ""
 "Nemojte ažurirati ove pakete osim ako niste sigurni da je to bezbedno."
 
-#: ../src/pk-transaction.c:2634
+#: ../src/pk-transaction.c:2715
 msgid "Do not install this package unless you are sure it is safe to do so."
 msgstr ""
 "Nemojte instalirati ovaj paket osim ako niste sigurni da je to bezbedno."
 
-#: ../src/pk-transaction.c:2635
+#: ../src/pk-transaction.c:2716
 msgid "Do not install these packages unless you are sure it is safe to do so."
 msgstr ""
 "Nemojte instalirati ove pakete osim ako niste sigurni da je to bezbedno."
diff --git a/po/ta.po b/po/ta.po
index 631665c..8b9e032 100644
--- a/po/ta.po
+++ b/po/ta.po
@@ -2,14 +2,15 @@
 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
 # This file is distributed under the same license as the PACKAGE package.
 # 
-# Richard Hughes <richard at hughsie.com>, 2011
+# Translators:
+# Richard Hughes <richard at hughsie.com>, 2011.
 msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-04 10:50+0100\n"
-"PO-Revision-Date: 2011-05-04 09:56+0000\n"
-"Last-Translator: hughsie <richard at hughsie.com>\n"
+"POT-Creation-Date: 2011-11-10 19:50+0000\n"
+"PO-Revision-Date: 2011-11-10 19:50+0000\n"
+"Last-Translator: Richard Hughes <richard at hughsie.com>\n"
 "Language-Team: LANGUAGE <LL at li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -195,7 +196,7 @@ msgstr "வழங்கப்பட்டது"
 
 #. TRANSLATORS: details about the update, date the update was updated
 #. TRANSLATORS: The action of the package, in past tense
-#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:524
+#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:559
 msgid "Updated"
 msgstr "மேம்படுத்தப்பட்டது"
 
@@ -285,7 +286,7 @@ msgstr ""
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
 #: ../client/pk-console.c:704
-#: ../contrib/command-not-found/pk-command-not-found.c:639
+#: ../contrib/command-not-found/pk-command-not-found.c:634
 msgid "The transaction failed"
 msgstr " பரிமாற்றம் செயல்படவில்லை"
 
@@ -337,21 +338,21 @@ msgstr ""
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:866
+#: ../client/pk-console.c:871
 #, c-format
 msgid "This tool could not find any available package: %s"
 msgstr "இந்த கருவி இருக்கும் தொகுப்பை தேட முடியவில்லை: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:894
+#: ../client/pk-console.c:899
 #, c-format
 msgid "This tool could not find the installed package: %s"
 msgstr "இந்த கருவி நிறுவப்பட்ட தொகுப்பை தேட முடியவில்லை: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:922 ../client/pk-console.c:950
+#: ../client/pk-console.c:927 ../client/pk-console.c:955
 #, c-format
 msgid "This tool could not find the package: %s"
 msgstr "இந்த கருவி தொகுப்பை தேட முடியவில்லை: %s"
@@ -364,69 +365,69 @@ msgstr "இந்த கருவி தொகுப்பை தேட மு
 #. detailed error follows
 #. TRANSLATORS: The package name was not found in any software sources. The
 #. detailed error follows
-#: ../client/pk-console.c:978 ../client/pk-console.c:1006
-#: ../client/pk-console.c:1034 ../client/pk-console.c:1062
-#: ../client/pk-console.c:1090
+#: ../client/pk-console.c:983 ../client/pk-console.c:1011
+#: ../client/pk-console.c:1039 ../client/pk-console.c:1067
+#: ../client/pk-console.c:1095
 #, c-format
 msgid "This tool could not find all the packages: %s"
 msgstr "இந்த கருவி அனைத்து தொகுப்புகளையும் தேட முடியவில்லை: %s"
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek
 #. without a paddle
-#: ../client/pk-console.c:1119
+#: ../client/pk-console.c:1124
 msgid "The daemon crashed mid-transaction!"
 msgstr "மத்திய பரிமாற்றத்தின் போது டோமோன் நொறுக்கப்பட்டது!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1153
+#: ../client/pk-console.c:1158
 msgid "PackageKit Console Interface"
 msgstr "PackageKit பணியக முகப்பு"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1155
+#: ../client/pk-console.c:1160
 msgid "Subcommands:"
 msgstr "துணைக்கட்டளைகள்:"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was
 #. last executed
-#: ../client/pk-console.c:1235
+#: ../client/pk-console.c:1240
 msgid "Failed to get the time since this action was last completed"
 msgstr "இந்த செயல் கடைசியாக முடிவடையும் வரை நேரத்தை பெற்றிருப்பதில் தோல்வி"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1277 ../client/pk-monitor.c:371
+#: ../client/pk-console.c:1282 ../client/pk-monitor.c:371
 msgid "Show the program version and exit"
 msgstr "நிகழ்ச்சி பதிப்பு மற்றும் வெளியேறுவதைக் காட்டு"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1280
+#: ../client/pk-console.c:1285
 msgid "Set the filter, e.g. installed"
 msgstr "வடோப்பினை"
 
 #. TRANSLATORS: command line argument, use a non-standard install prefix
-#: ../client/pk-console.c:1283
+#: ../client/pk-console.c:1288
 msgid "Set the install root, e.g. '/' or '/mnt/ltsp'"
 msgstr ""
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1286
+#: ../client/pk-console.c:1291
 msgid "Exit without waiting for actions to complete"
 msgstr "செயல் முடிவடை வரை காத்திருக்காமல் வெளியேறு"
 
 #. command line argument, do we ask questions
-#: ../client/pk-console.c:1289
+#: ../client/pk-console.c:1294
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:525
 msgid "Install the packages without asking for confirmation"
 msgstr "உறுதிபடுத்துவதை கேட்காமலே தொகுப்புகளை நிறுவு"
 
 #. TRANSLATORS: command line argument, this command is not a priority
-#: ../client/pk-console.c:1292
+#: ../client/pk-console.c:1297
 msgid "Run the command using idle network bandwidth and also using less power"
 msgstr ""
 "தனி பிணைய அலைவரிசை மற்றும் குறைந்த பவரைப் பயன்படுத்தி கட்டளையை இயக்கவும்"
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1295
+#: ../client/pk-console.c:1300
 msgid ""
 "Print to screen a machine readable output, rather than using animated "
 "widgets"
@@ -435,155 +436,155 @@ msgstr ""
 "திரைக்கு அச்சிடு."
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1298
+#: ../client/pk-console.c:1303
 msgid "The maximum metadata cache age. Use -1 for 'never'."
 msgstr ""
 
 #. TRANSLATORS: command line argument, --help
-#: ../client/pk-console.c:1301
+#: ../client/pk-console.c:1306
 msgid "Show help options."
 msgstr ""
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1331
+#: ../client/pk-console.c:1336
 msgid "Failed to parse command line"
 msgstr ""
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1341
+#: ../client/pk-console.c:1346
 msgid "Failed to contact PackageKit"
 msgstr "PackageKit தொடர்பு கொள்ள முடியவில்லை்வி."
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1394
+#: ../client/pk-console.c:1399
 msgid "The proxy could not be set"
 msgstr ""
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1406
+#: ../client/pk-console.c:1411
 msgid "The install root could not be set"
 msgstr ""
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1418
+#: ../client/pk-console.c:1423
 msgid "The filter specified was invalid"
 msgstr "வடிப்பி குறிப்பிடுவது தவறானது"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1437
+#: ../client/pk-console.c:1442
 msgid "A search type is required, e.g. name"
 msgstr "ஒரு தேடும் வகை தேவைப்படுகிறது, எ.கா. பெயர்"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1444 ../client/pk-console.c:1456
-#: ../client/pk-console.c:1468 ../client/pk-console.c:1480
+#: ../client/pk-console.c:1449 ../client/pk-console.c:1461
+#: ../client/pk-console.c:1473 ../client/pk-console.c:1485
 msgid "A search term is required"
 msgstr "ஒரு தேடும் சொல் தேவைப்படுகிறது"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1490
+#: ../client/pk-console.c:1495
 msgid "Invalid search type"
 msgstr "தவறான தேடும் வகை"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1496
+#: ../client/pk-console.c:1501
 msgid "A package name to install is required"
 msgstr "தொகுப்பு பெயர் நிறுவ தேவைப்படுகிறது"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1505
+#: ../client/pk-console.c:1510
 msgid "A filename to install is required"
 msgstr "நிறுவ ஒரு கோப்புபெயர் தேவைப்படுகிறது"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1516
+#: ../client/pk-console.c:1521
 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:1527
+#: ../client/pk-console.c:1532
 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:1536
+#: ../client/pk-console.c:1541
 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:1543
+#: ../client/pk-console.c:1548
 msgid "Directory not found"
 msgstr "அடைவு காணப்படவில்லை"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1552
+#: ../client/pk-console.c:1557
 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:1563
+#: ../client/pk-console.c:1568
 msgid "A transaction identifier (tid) is required"
 msgstr "பரிமாற்ற கண்டுபிடிப்பாளர் (tid) தேவைப்படுகிறது"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:1584
+#: ../client/pk-console.c:1589
 msgid "A package name to resolve is required"
 msgstr "தொகுப்பு பெயர் மறுதீர்வுக்கு தேவைப்படுகிறது"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:1595 ../client/pk-console.c:1606
+#: ../client/pk-console.c:1600 ../client/pk-console.c:1611
 msgid "A repository name is required"
 msgstr "நம்பகமான ஒரு பெயர் தேவைப்படுகிறது"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:1617
+#: ../client/pk-console.c:1622
 msgid "A repo name, parameter and value are required"
 msgstr "ஒரு ரெபோ பெநர், அளவுரு மற்றும் மதிப்பு தேவைப்படுகிறது"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:1634
+#: ../client/pk-console.c:1639
 msgid "An action, e.g. 'update-system' is required"
 msgstr "செயலுக்கு, எ.கா. 'மேம்படுத்தப்பட்ட கணினி' தேவைப்படுகிறது"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:1641
+#: ../client/pk-console.c:1646
 msgid "A correct role is required"
 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:1651 ../client/pk-console.c:1665
-#: ../client/pk-console.c:1674 ../client/pk-console.c:1694
-#: ../client/pk-console.c:1703 ../client/pk-generate-pack.c:314
+#: ../client/pk-console.c:1656 ../client/pk-console.c:1670
+#: ../client/pk-console.c:1679 ../client/pk-console.c:1699
+#: ../client/pk-console.c:1708 ../client/pk-generate-pack.c:314
 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:1683
+#: ../client/pk-console.c:1688
 msgid "A package provide string is required"
 msgstr "ஒரு தொகுப்பால் வழங்கப்படும் சரம் தேவைப்படுகிறது"
 
 #. TRANSLATORS: The user did not provide a distro name
-#: ../client/pk-console.c:1727
+#: ../client/pk-console.c:1732
 msgid "A distribution name is required"
 msgstr ""
 
 #. TRANSLATORS: The user did not provide an upgrade type
-#: ../client/pk-console.c:1733
+#: ../client/pk-console.c:1738
 msgid "An upgrade type is required, e.g. 'minimal', 'default' or 'complete'"
 msgstr ""
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command
 #. line
-#: ../client/pk-console.c:1783
+#: ../client/pk-console.c:1788
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr " '%s' விருப்பம் துணைபுரியவில்லை"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:1793
+#: ../client/pk-console.c:1798
 msgid "Command failed"
 msgstr "கட்டளை தோல்வியுற்றது"
 
@@ -720,160 +721,155 @@ msgid "PackageKit Monitor"
 msgstr "PackageKit திரை"
 
 #. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/pk-plugin-install.c:499
+#: ../contrib/browser-plugin/pk-plugin-install.c:503
 msgid "Getting package information..."
 msgstr "தொகுப்புகளின் தகவலை பெறுகிறது..."
 
 #. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/pk-plugin-install.c:505
+#: ../contrib/browser-plugin/pk-plugin-install.c:509
 #, c-format
 msgid "Run %s"
 msgstr "%sஐ இயக்கு"
 
 #. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:511
+#: ../contrib/browser-plugin/pk-plugin-install.c:515
 msgid "Installed version"
 msgstr "நிறுவப்பட்ட பதிப்பு"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:519
+#: ../contrib/browser-plugin/pk-plugin-install.c:523
 #, c-format
 msgid "Run version %s now"
 msgstr "பதிப்பு %sஐ இப்போது இயக்கு"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:525
+#: ../contrib/browser-plugin/pk-plugin-install.c:529
 msgid "Run now"
 msgstr "இப்போது இயக்கு"
 
 #. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:531
+#: ../contrib/browser-plugin/pk-plugin-install.c:535
 #, c-format
 msgid "Update to version %s"
 msgstr "%s பதிப்பினை புதுப்பி"
 
 #. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:537
+#: ../contrib/browser-plugin/pk-plugin-install.c:541
 #, c-format
 msgid "Install %s now"
 msgstr "இப்போது  %sஐ நிறுவவும்"
 
 #. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:540
+#: ../contrib/browser-plugin/pk-plugin-install.c:544
 msgid "Version"
 msgstr "பதிப்பு"
 
 #. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/pk-plugin-install.c:545
+#: ../contrib/browser-plugin/pk-plugin-install.c:549
 msgid "No packages found for your system"
 msgstr "உங்கள் கணினியில் தொகுப்புகள் காணப்படவில்லை"
 
 #. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/pk-plugin-install.c:550
+#: ../contrib/browser-plugin/pk-plugin-install.c:554
 msgid "Installing..."
 msgstr "நிறுவுகிறது..."
 
 #. TRANSLATORS: downloading repo data so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:366
+#: ../contrib/command-not-found/pk-command-not-found.c:363
 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:370
+#: ../contrib/command-not-found/pk-command-not-found.c:367
 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:374
+#: ../contrib/command-not-found/pk-command-not-found.c:371
 msgid "Waiting for package manager lock."
 msgstr "தொகுப்பு மேலாளர் பூட்டுக்கு காத்திருக்கிறது."
 
 #. TRANSLATORS: loading package cache so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:378
+#: ../contrib/command-not-found/pk-command-not-found.c:375
 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:444
+#: ../contrib/command-not-found/pk-command-not-found.c:439
 msgid "Failed to search for file"
 msgstr "கோப்பிற்காக தேடுவதில் தோல்வி"
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
-#: ../contrib/command-not-found/pk-command-not-found.c:456
+#: ../contrib/command-not-found/pk-command-not-found.c:451
 msgid "Getting the list of files failed"
 msgstr ""
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:602
+#: ../contrib/command-not-found/pk-command-not-found.c:597
 msgid "Failed to launch:"
 msgstr "கடண்டுபிடிப்பத்தில் தோல்வி:"
 
 #. TRANSLATORS: we failed to install the package
-#: ../contrib/command-not-found/pk-command-not-found.c:630
+#: ../contrib/command-not-found/pk-command-not-found.c:625
 msgid "Failed to install packages"
 msgstr "தொகுப்புகளை நிறுவ முடியவில்லை"
 
-#. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/command-not-found/pk-command-not-found.c:706
-msgid "PackageKit Command Not Found"
-msgstr "PackageKit கட்டளை காணப்படவில்லை"
-
 #. TRANSLATORS: the prefix of all the output telling the user
 #. * why it's not executing. NOTE: this is lowercase to mimic
 #. * the style of bash itself -- apologies
-#: ../contrib/command-not-found/pk-command-not-found.c:741
+#: ../contrib/command-not-found/pk-command-not-found.c:723
 msgid "command not found"
 msgstr ""
 
 #. TRANSLATORS: tell the user what we think the command is
-#: ../contrib/command-not-found/pk-command-not-found.c:759
+#: ../contrib/command-not-found/pk-command-not-found.c:741
 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:773
+#: ../contrib/command-not-found/pk-command-not-found.c:755
 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:787
-#: ../contrib/command-not-found/pk-command-not-found.c:796
+#: ../contrib/command-not-found/pk-command-not-found.c:769
+#: ../contrib/command-not-found/pk-command-not-found.c:778
 msgid "Similar commands are:"
 msgstr "ஒரே மாதிரியான கட்டளைகள்:"
 
 #. TRANSLATORS: ask the user to choose a file to run
-#: ../contrib/command-not-found/pk-command-not-found.c:803
+#: ../contrib/command-not-found/pk-command-not-found.c:785
 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:821
+#: ../contrib/command-not-found/pk-command-not-found.c:803
 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:828
+#: ../contrib/command-not-found/pk-command-not-found.c:810
 #, 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:855
+#: ../contrib/command-not-found/pk-command-not-found.c:837
 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:865
+#: ../contrib/command-not-found/pk-command-not-found.c:847
 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:874
+#: ../contrib/command-not-found/pk-command-not-found.c:856
 msgid "Please choose a package to install"
 msgstr "நிறுவுவதற்கு ஒரு கோப்பினை தேர்ந்தெடு"
 
@@ -1049,7 +1045,7 @@ msgstr "கணக்கீடு முறைமையில் தொகுப
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
 #. TRANSLATORS: transaction state, installing packages
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:860
-#: ../lib/packagekit-glib2/pk-console-shared.c:296
+#: ../lib/packagekit-glib2/pk-console-shared.c:331
 #, c-format
 msgid "Installing packages"
 msgstr "நிறுவப்பட்ட தொகுப்புகள்"
@@ -1184,474 +1180,474 @@ msgstr "PackageKit தொகுப்பு பட்டியல்"
 msgid "PackageKit Service Pack"
 msgstr "PackageKit சேவை தொகுப்பு"
 
-#: ../lib/packagekit-glib2/pk-console-shared.c:64
+#: ../lib/packagekit-glib2/pk-console-shared.c:65
 #, c-format
 msgid "Please enter a number from 1 to %i: "
 msgstr "1 லிருந்து %i வரை எண்னை உள்ளீடவும் : "
 
 #. TRANSLATORS: more than one package could be found that matched, to follow
 #. is a list of possible packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:198
+#: ../lib/packagekit-glib2/pk-console-shared.c:233
 msgid "More than one package matches:"
 msgstr "ஒன்றுக்கு மேற்பட்ட தொகுப்புகள் பொருந்துகிறது:"
 
 #. TRANSLATORS: This finds out which package in the list to use
-#: ../lib/packagekit-glib2/pk-console-shared.c:209
+#: ../lib/packagekit-glib2/pk-console-shared.c:244
 msgid "Please choose the correct package: "
 msgstr "சரியான தொகுப்பினை தேர்ந்தெடுக்கவும்: "
 
 #. TRANSLATORS: This is when the transaction status is not known
-#: ../lib/packagekit-glib2/pk-console-shared.c:264
+#: ../lib/packagekit-glib2/pk-console-shared.c:299
 msgid "Unknown state"
 msgstr "தெரியாத நிலை"
 
 #. TRANSLATORS: transaction state, the daemon is in the process of starting
-#: ../lib/packagekit-glib2/pk-console-shared.c:268
+#: ../lib/packagekit-glib2/pk-console-shared.c:303
 msgid "Starting"
 msgstr "துவக்குகிறது"
 
 #. TRANSLATORS: transaction state, the transaction is waiting for another to
 #. complete
-#: ../lib/packagekit-glib2/pk-console-shared.c:272
+#: ../lib/packagekit-glib2/pk-console-shared.c:307
 msgid "Waiting in queue"
 msgstr "வரிசைக்கு காத்திருக்கிறது"
 
 #. TRANSLATORS: transaction state, just started
-#: ../lib/packagekit-glib2/pk-console-shared.c:276
+#: ../lib/packagekit-glib2/pk-console-shared.c:311
 msgid "Running"
 msgstr "இயங்குகிறது"
 
 #. TRANSLATORS: transaction state, is querying data
-#: ../lib/packagekit-glib2/pk-console-shared.c:280
+#: ../lib/packagekit-glib2/pk-console-shared.c:315
 msgid "Querying"
 msgstr "வினாயிடுகிறது"
 
 #. TRANSLATORS: transaction state, getting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:284
+#: ../lib/packagekit-glib2/pk-console-shared.c:319
 msgid "Getting information"
 msgstr "தகவலை பெறுகிறது"
 
 #. TRANSLATORS: transaction state, removing packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:288
+#: ../lib/packagekit-glib2/pk-console-shared.c:323
 msgid "Removing packages"
 msgstr "தொகுப்புகளை நீக்குகிறது"
 
 #. TRANSLATORS: transaction state, downloading package files
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:292
-#: ../lib/packagekit-glib2/pk-console-shared.c:670
+#: ../lib/packagekit-glib2/pk-console-shared.c:327
+#: ../lib/packagekit-glib2/pk-console-shared.c:705
 msgid "Downloading packages"
 msgstr "தொகுப்புகளை பதிவிறக்குகிறது"
 
 #. TRANSLATORS: transaction state, refreshing internal lists
-#: ../lib/packagekit-glib2/pk-console-shared.c:300
+#: ../lib/packagekit-glib2/pk-console-shared.c:335
 msgid "Refreshing software list"
 msgstr "மென்பொருள் பட்டியலை புதுப்பிக்கிறது"
 
 #. TRANSLATORS: transaction state, installing updates
-#: ../lib/packagekit-glib2/pk-console-shared.c:304
+#: ../lib/packagekit-glib2/pk-console-shared.c:339
 msgid "Installing updates"
 msgstr "மேம்படுத்தல்களை நிறுவுகிறது"
 
 #. TRANSLATORS: transaction state, removing old packages, and cleaning config
 #. files
-#: ../lib/packagekit-glib2/pk-console-shared.c:308
+#: ../lib/packagekit-glib2/pk-console-shared.c:343
 msgid "Cleaning up packages"
 msgstr "தொகுப்புகளை துடைக்கிறது"
 
 #. TRANSLATORS: transaction state, obsoleting old packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:312
+#: ../lib/packagekit-glib2/pk-console-shared.c:347
 msgid "Obsoleting packages"
 msgstr "தொகுப்புகளை நீக்குகிறது"
 
 #. TRANSLATORS: transaction state, checking the transaction before we do it
-#: ../lib/packagekit-glib2/pk-console-shared.c:316
+#: ../lib/packagekit-glib2/pk-console-shared.c:351
 msgid "Resolving dependencies"
 msgstr "சார்புகளை தீர்க்கிறது"
 
 #. TRANSLATORS: transaction state, checking if we have all the security keys
 #. for the operation
-#: ../lib/packagekit-glib2/pk-console-shared.c:320
+#: ../lib/packagekit-glib2/pk-console-shared.c:355
 msgid "Checking signatures"
 msgstr "கையொப்பத்தை சரிபார்க்கிறது"
 
 #. TRANSLATORS: transaction state, when we return to a previous system state
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:324
-#: ../lib/packagekit-glib2/pk-console-shared.c:630
+#: ../lib/packagekit-glib2/pk-console-shared.c:359
+#: ../lib/packagekit-glib2/pk-console-shared.c:665
 msgid "Rolling back"
 msgstr "பின்னால்"
 
 #. TRANSLATORS: transaction state, when we're doing a test transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:328
+#: ../lib/packagekit-glib2/pk-console-shared.c:363
 msgid "Testing changes"
 msgstr "மாற்றங்களை சோதிக்கிறது"
 
 #. TRANSLATORS: transaction state, when we're writing to the system package
 #. database
-#: ../lib/packagekit-glib2/pk-console-shared.c:332
+#: ../lib/packagekit-glib2/pk-console-shared.c:367
 msgid "Committing changes"
 msgstr "மாற்றங்களை சமர்ப்பிக்கிறது"
 
 #. TRANSLATORS: transaction state, requesting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:336
+#: ../lib/packagekit-glib2/pk-console-shared.c:371
 msgid "Requesting data"
 msgstr "தரவுக்கு விண்ணப்பிக்கிறது"
 
 #. TRANSLATORS: transaction state, all done!
-#: ../lib/packagekit-glib2/pk-console-shared.c:340
+#: ../lib/packagekit-glib2/pk-console-shared.c:375
 msgid "Finished"
 msgstr "முடிந்தது"
 
 #. TRANSLATORS: transaction state, in the process of cancelling
-#: ../lib/packagekit-glib2/pk-console-shared.c:344
+#: ../lib/packagekit-glib2/pk-console-shared.c:379
 msgid "Cancelling"
 msgstr "ரத்து செய்கிறது"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:348
+#: ../lib/packagekit-glib2/pk-console-shared.c:383
 msgid "Downloading repository information"
 msgstr "தொகுபதிவக தகவலை பதிவிறக்குகிறது"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:352
+#: ../lib/packagekit-glib2/pk-console-shared.c:387
 msgid "Downloading list of packages"
 msgstr "தொகுப்புகளின் பட்டியலை பதிவிறக்குகிறது"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:356
+#: ../lib/packagekit-glib2/pk-console-shared.c:391
 msgid "Downloading file lists"
 msgstr "கோப்பு பட்டியல்களை பதிவிறக்குகிறது"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:360
+#: ../lib/packagekit-glib2/pk-console-shared.c:395
 msgid "Downloading lists of changes"
 msgstr "தொகுப்புகளின் மாற்றங்களை பதிவிறக்குகிறது"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:364
+#: ../lib/packagekit-glib2/pk-console-shared.c:399
 msgid "Downloading groups"
 msgstr "குழுக்களை பதிவிறக்குகிறது"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:368
+#: ../lib/packagekit-glib2/pk-console-shared.c:403
 msgid "Downloading update information"
 msgstr "மேம்படுத்தல் தகவலை பதிவிறக்குகிறது"
 
 #. TRANSLATORS: transaction state, repackaging delta files
-#: ../lib/packagekit-glib2/pk-console-shared.c:372
+#: ../lib/packagekit-glib2/pk-console-shared.c:407
 msgid "Repackaging files"
 msgstr "கோப்புகளை மறுபேக் செய்கிறது"
 
 #. TRANSLATORS: transaction state, loading databases
-#: ../lib/packagekit-glib2/pk-console-shared.c:376
+#: ../lib/packagekit-glib2/pk-console-shared.c:411
 msgid "Loading cache"
 msgstr "கேஷை ஏற்றுகிறது"
 
 #. TRANSLATORS: transaction state, scanning for running processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:380
+#: ../lib/packagekit-glib2/pk-console-shared.c:415
 msgid "Scanning applications"
 msgstr "பயன்பாடுகளை ஸ்கேன் செய்கிறது"
 
 #. TRANSLATORS: transaction state, generating a list of packages installed on
 #. the system
-#: ../lib/packagekit-glib2/pk-console-shared.c:384
+#: ../lib/packagekit-glib2/pk-console-shared.c:419
 msgid "Generating package lists"
 msgstr "தொகுப்புகளின் பட்டியலை உருவாக்குகிறது"
 
 #. TRANSLATORS: transaction state, when we're waiting for the native tools to
 #. exit
-#: ../lib/packagekit-glib2/pk-console-shared.c:388
+#: ../lib/packagekit-glib2/pk-console-shared.c:423
 msgid "Waiting for package manager lock"
 msgstr "தொகுப்பு மேலாளர் பூட்டுக்கு காத்திருக்கிறது"
 
 #. TRANSLATORS: transaction state, waiting for user to type in a password
-#: ../lib/packagekit-glib2/pk-console-shared.c:392
+#: ../lib/packagekit-glib2/pk-console-shared.c:427
 msgid "Waiting for authentication"
 msgstr "அங்கீகாரத்திற்கு காத்திருக்கிறது"
 
 #. TRANSLATORS: transaction state, we are updating the list of processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:396
+#: ../lib/packagekit-glib2/pk-console-shared.c:431
 msgid "Updating running applications"
 msgstr "இயங்கும் பயன்பாடுகளை மேம்படுத்துகிறது"
 
 #. TRANSLATORS: transaction state, we are checking executable files currently
 #. in use
-#: ../lib/packagekit-glib2/pk-console-shared.c:400
+#: ../lib/packagekit-glib2/pk-console-shared.c:435
 msgid "Checking applications in use"
 msgstr "பயனிலுள்ள பயன்பாடுகளை சரிபார்க்கிறது"
 
 #. TRANSLATORS: transaction state, we are checking for libraries currently in
 #. use
-#: ../lib/packagekit-glib2/pk-console-shared.c:404
+#: ../lib/packagekit-glib2/pk-console-shared.c:439
 msgid "Checking libraries in use"
 msgstr "பயனிலுள்ள நூலகங்களை சரிபார்க்கிறது"
 
 #. TRANSLATORS: transaction state, we are copying package files before or
 #. after the transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:408
+#: ../lib/packagekit-glib2/pk-console-shared.c:443
 msgid "Copying files"
 msgstr "கோப்புகளை நகலெடுக்கிறது"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:426
+#: ../lib/packagekit-glib2/pk-console-shared.c:461
 msgid "Trivial"
 msgstr "சாதாரணமானது"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:430
+#: ../lib/packagekit-glib2/pk-console-shared.c:465
 msgid "Normal"
 msgstr "இயல்பான"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:434
+#: ../lib/packagekit-glib2/pk-console-shared.c:469
 msgid "Important"
 msgstr "முக்கியமானது"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:438
+#: ../lib/packagekit-glib2/pk-console-shared.c:473
 msgid "Security"
 msgstr "பாதுகாப்பு"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:442
+#: ../lib/packagekit-glib2/pk-console-shared.c:477
 msgid "Bug fix "
 msgstr "பிழைத்திருத்தம்"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:446
+#: ../lib/packagekit-glib2/pk-console-shared.c:481
 msgid "Enhancement"
 msgstr "மேம்படுத்தல்"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:450
+#: ../lib/packagekit-glib2/pk-console-shared.c:485
 msgid "Blocked"
 msgstr "தடுக்கப்பட்டது"
 
 #. TRANSLATORS: The state of a package
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:455
-#: ../lib/packagekit-glib2/pk-console-shared.c:528
+#: ../lib/packagekit-glib2/pk-console-shared.c:490
+#: ../lib/packagekit-glib2/pk-console-shared.c:563
 msgid "Installed"
 msgstr "நிறுவப்பட்டது"
 
 #. TRANSLATORS: The state of a package, i.e. not installed
-#: ../lib/packagekit-glib2/pk-console-shared.c:460
+#: ../lib/packagekit-glib2/pk-console-shared.c:495
 msgid "Available"
 msgstr "இருப்பவை"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:478
+#: ../lib/packagekit-glib2/pk-console-shared.c:513
 msgid "Downloading"
 msgstr "பதிவிறக்குகிறது"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:482
+#: ../lib/packagekit-glib2/pk-console-shared.c:517
 msgid "Updating"
 msgstr "மேம்படுத்துகிறது"
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:486
-#: ../lib/packagekit-glib2/pk-console-shared.c:606
+#: ../lib/packagekit-glib2/pk-console-shared.c:521
+#: ../lib/packagekit-glib2/pk-console-shared.c:641
 msgid "Installing"
 msgstr "நிறுவுகிறது"
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:490
-#: ../lib/packagekit-glib2/pk-console-shared.c:602
+#: ../lib/packagekit-glib2/pk-console-shared.c:525
+#: ../lib/packagekit-glib2/pk-console-shared.c:637
 msgid "Removing"
 msgstr "நீக்குகிறது"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:494
+#: ../lib/packagekit-glib2/pk-console-shared.c:529
 msgid "Cleaning up"
 msgstr "துடைக்கிறது"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:498
+#: ../lib/packagekit-glib2/pk-console-shared.c:533
 msgid "Obsoleting"
 msgstr "நீக்குகிறது"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:502
+#: ../lib/packagekit-glib2/pk-console-shared.c:537
 msgid "Reinstalling"
 msgstr "மீண்டும் நிநிறுவுகிற.."
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:520
+#: ../lib/packagekit-glib2/pk-console-shared.c:555
 msgid "Downloaded"
 msgstr "பதிவிறக்கப்பட்டது"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:532
+#: ../lib/packagekit-glib2/pk-console-shared.c:567
 msgid "Removed"
 msgstr "நீக்கப்பட்டது"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:536
+#: ../lib/packagekit-glib2/pk-console-shared.c:571
 msgid "Cleaned up"
 msgstr "துடைக்கப்பட்டது"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:540
+#: ../lib/packagekit-glib2/pk-console-shared.c:575
 msgid "Obsoleted"
 msgstr "நீக்கப்பட்டது"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:544
+#: ../lib/packagekit-glib2/pk-console-shared.c:579
 msgid "Reinstalled"
 msgstr "மறு நிறுவப்பட்டது"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:562
+#: ../lib/packagekit-glib2/pk-console-shared.c:597
 msgid "Unknown role type"
 msgstr "தெரியாத பங்கு வகை"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:566
+#: ../lib/packagekit-glib2/pk-console-shared.c:601
 msgid "Getting dependencies"
 msgstr "சார்புகளை பெறுகிறது"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:570
+#: ../lib/packagekit-glib2/pk-console-shared.c:605
 msgid "Getting update details"
 msgstr "மேம்படுத்தல் விவரங்களை பெறப்படுகிறது"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:574
+#: ../lib/packagekit-glib2/pk-console-shared.c:609
 msgid "Getting details"
 msgstr "விவரங்களை பெறுகிறது"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:578
+#: ../lib/packagekit-glib2/pk-console-shared.c:613
 msgid "Getting requires"
 msgstr "தேவைகளை பெறுகிறது"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:582
+#: ../lib/packagekit-glib2/pk-console-shared.c:617
 msgid "Getting updates"
 msgstr "மேம்படுத்தல்களை பெறுகிறது"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:586
+#: ../lib/packagekit-glib2/pk-console-shared.c:621
 msgid "Searching by details"
 msgstr "விவரங்களின் படி தேடுகிறது"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:590
+#: ../lib/packagekit-glib2/pk-console-shared.c:625
 msgid "Searching by file"
 msgstr "கோப்பால் தேடுகிறது"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:594
+#: ../lib/packagekit-glib2/pk-console-shared.c:629
 msgid "Searching groups"
 msgstr "குழுக்களை தேடுகிறது"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:598
+#: ../lib/packagekit-glib2/pk-console-shared.c:633
 msgid "Searching by name"
 msgstr "பெயரால் தேடுகிறது"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:610
+#: ../lib/packagekit-glib2/pk-console-shared.c:645
 msgid "Installing files"
 msgstr "கோப்புகளை நிறுவுகிறது"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:614
+#: ../lib/packagekit-glib2/pk-console-shared.c:649
 msgid "Refreshing cache"
 msgstr "கேஷை புதுப்பிக்கிறது"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:618
+#: ../lib/packagekit-glib2/pk-console-shared.c:653
 msgid "Updating packages"
 msgstr "தொகுப்புகளை மேம்படுத்துகிறது"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:622
+#: ../lib/packagekit-glib2/pk-console-shared.c:657
 msgid "Updating system"
 msgstr "கணினியை மேம்படுத்துகிறது"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:626
+#: ../lib/packagekit-glib2/pk-console-shared.c:661
 msgid "Canceling"
 msgstr "ரத்து செய்கிறது"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:634
+#: ../lib/packagekit-glib2/pk-console-shared.c:669
 msgid "Getting repositories"
 msgstr "தொகுபதிவகங்களை பெறுகிறது"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:638
+#: ../lib/packagekit-glib2/pk-console-shared.c:673
 msgid "Enabling repository"
 msgstr "தொகுபதிவகத்தை செயல்படுத்துகிறது"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:642
+#: ../lib/packagekit-glib2/pk-console-shared.c:677
 msgid "Setting data"
 msgstr "தரவை அமைக்கிறது"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:646
+#: ../lib/packagekit-glib2/pk-console-shared.c:681
 msgid "Resolving"
 msgstr "தீர்க்கிறது"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:650
+#: ../lib/packagekit-glib2/pk-console-shared.c:685
 msgid "Getting file list"
 msgstr "கோப்பு பட்டியலை பெறுகிறது"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:654
+#: ../lib/packagekit-glib2/pk-console-shared.c:689
 msgid "Getting provides"
 msgstr "கொடுக்கப்பட்டவற்றை பெறுகிறது"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:658
+#: ../lib/packagekit-glib2/pk-console-shared.c:693
 msgid "Installing signature"
 msgstr "கையொப்பத்தை நிறுவுகிறது"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:662
+#: ../lib/packagekit-glib2/pk-console-shared.c:697
 msgid "Getting packages"
 msgstr "தொகுப்புகளை பெறுகிறது"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:666
+#: ../lib/packagekit-glib2/pk-console-shared.c:701
 msgid "Accepting EULA"
 msgstr "EULAவை ஏற்கிறது"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:674
+#: ../lib/packagekit-glib2/pk-console-shared.c:709
 msgid "Getting upgrades"
 msgstr "மேம்படுத்தல்களை பெறுகிறது"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:678
+#: ../lib/packagekit-glib2/pk-console-shared.c:713
 msgid "Getting categories"
 msgstr "வகைகளை பெறுகிறது"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:682
+#: ../lib/packagekit-glib2/pk-console-shared.c:717
 msgid "Getting transactions"
 msgstr "பரிமாற்றங்களை பெறுகிறது"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:686
-#: ../lib/packagekit-glib2/pk-console-shared.c:690
+#: ../lib/packagekit-glib2/pk-console-shared.c:721
+#: ../lib/packagekit-glib2/pk-console-shared.c:725
 msgid "Simulating install"
 msgstr "நிறுவலை கணக்கிடுகிறது"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:694
+#: ../lib/packagekit-glib2/pk-console-shared.c:729
 msgid "Simulating remove"
 msgstr "கணக்கிடுதலை நீக்கு"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:698
+#: ../lib/packagekit-glib2/pk-console-shared.c:733
 msgid "Simulating update"
 msgstr "மேம்படுத்தல் கணக்கிடுகிறது"
 
@@ -1801,13 +1797,19 @@ msgstr "பின்வரும் தொகுப்புகளை மீண
 msgid "The following packages have to be downgraded:"
 msgstr "பின்வரும் தொகுப்புகளை தரமிறக்க வேண்டியவை:"
 
+#. TRANSLATORS: When processing, untrusted and non-verified packages may be
+#. encountered
+#: ../lib/packagekit-glib2/pk-task-text.c:325
+msgid "The following packages are untrusted:"
+msgstr ""
+
 #. TRANSLATORS: ask the user if the proposed changes are okay
-#: ../lib/packagekit-glib2/pk-task-text.c:380
+#: ../lib/packagekit-glib2/pk-task-text.c:385
 msgid "Proceed with changes?"
 msgstr "மாற்றங்களுடன் தொடர வேண்டுமா?"
 
 #. TRANSLATORS: tell the user we didn't do anything
-#: ../lib/packagekit-glib2/pk-task-text.c:385
+#: ../lib/packagekit-glib2/pk-task-text.c:390
 msgid "The transaction did not proceed."
 msgstr "பரிமாற்றம் செயல்படவில்லை."
 
@@ -2015,99 +2017,71 @@ msgstr "தொகுப்புகளை மேம்படுத்து"
 msgid "Upgrade System"
 msgstr ""
 
-#. TRANSLATORS: failed due to DBus security
-#: ../src/pk-main.c:91
-msgid "Startup failed due to security policies on this machine."
-msgstr "கணினியின் பாதிகாப்பு பாலிஸிகளினால் துவக்குவதில் தோல்வி."
-
-#. TRANSLATORS: only two ways this can fail...
-#: ../src/pk-main.c:93
-msgid "This can happen for two reasons:"
-msgstr "இது இரண்டு காரணங்களுக்காக நிகழ்கிறது:"
-
-#. TRANSLATORS: only allowed to be owned by root
-#: ../src/pk-main.c:95
-msgid "The correct user is not launching the executable (usually root)"
-msgstr "சரியான பயனர் இயங்கக்கூடியதை ஏற்றவில்லை (பொதுவாக ரூட்)"
-
-#. TRANSLATORS: or we are installed in a prefix
-#: ../src/pk-main.c:97
-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:223
+#: ../src/pk-main.c:149
 msgid "Packaging backend to use, e.g. dummy"
 msgstr "பயன்படுத்த வேண்டிய தொகுப்பிடுதல் பின்தளம், எ.கா டம்மி"
 
 #. TRANSLATORS: if we should run in the background
-#: ../src/pk-main.c:226
+#: ../src/pk-main.c:152
 msgid "Daemonize and detach from the terminal"
 msgstr "டீமான் செய்யப்பட்ட மற்றும் முனையத்திலிருந்து நீக்கக்கூடியது"
 
 #. TRANSLATORS: if we should not monitor how long we are inactive for
-#: ../src/pk-main.c:229
+#: ../src/pk-main.c:155
 msgid "Disable the idle timer"
 msgstr "வெற்று நேரங்காட்டியை செயல்நீக்கு"
 
 #. TRANSLATORS: show version
-#: ../src/pk-main.c:232
+#: ../src/pk-main.c:158
 msgid "Show version and exit"
 msgstr "பதிப்பு மற்றும் வெளியேறுவதைக் காட்டு"
 
 #. TRANSLATORS: exit after we've started up, used for user profiling
-#: ../src/pk-main.c:235
+#: ../src/pk-main.c:161
 msgid "Exit after a small delay"
 msgstr "ஒரு சிறிய தாமதத்திற்கு பின் வெளியேறு"
 
 #. TRANSLATORS: exit straight away, used for automatic profiling
-#: ../src/pk-main.c:238
+#: ../src/pk-main.c:164
 msgid "Exit after the engine has loaded"
 msgstr "வெளியேறிய பின் எந்திரம் ஏற்றப்பட்டது"
 
+#. TRANSLATORS: don't unset environment variables, used for debugging
+#: ../src/pk-main.c:167
+msgid "Don't clear environment on startup"
+msgstr ""
+
 #. TRANSLATORS: describing the service that is running
-#: ../src/pk-main.c:253
+#: ../src/pk-main.c:179
 msgid "PackageKit service"
 msgstr "PackageKit சேவை"
 
-#. TRANSLATORS: fatal error, dbus is not running
-#: ../src/pk-main.c:298
-msgid "Cannot connect to the system bus"
-msgstr "கணினி பஸ்ஸுடன் இணைக்க முடியவில்லை"
-
-#: ../src/pk-main.c:344
+#: ../src/pk-main.c:253
 msgid "Failed to load any of the specified backends:"
 msgstr ""
 
-#. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error
-#. follows
-#: ../src/pk-main.c:358
-msgid "Error trying to start:"
-msgstr "துவக்க முயற்சிப்பதில் பிழை:"
-
 #. TRANSLATORS: is not GPG signed
-#: ../src/pk-transaction.c:2611 ../src/pk-transaction.c:2618
+#: ../src/pk-transaction.c:2696
 msgid "The software is not from a trusted source."
 msgstr "இந்த மென்பொருள் ஒரு நம்பப்பட்ட மூலத்திலிருந்து இல்லை."
 
-#: ../src/pk-transaction.c:2623
+#: ../src/pk-transaction.c:2704
 msgid "Do not update this package unless you are sure it is safe to do so."
 msgstr ""
 "இதை பாதுகாக்க நீங்கள் ஏதாவது செய்யும் வரை இந்த தொகுப்பை மேம்படுத்த முடியாது."
 
-#: ../src/pk-transaction.c:2624
+#: ../src/pk-transaction.c:2705
 msgid "Do not update these packages unless you are sure it is safe to do so."
 msgstr ""
 "இதை பாதுகாக்க நீங்கள் ஏதாவது செய்யும் வரை இந்த தொகுப்பை மேம்படுத்த முடியாது."
 
-#: ../src/pk-transaction.c:2634
+#: ../src/pk-transaction.c:2715
 msgid "Do not install this package unless you are sure it is safe to do so."
 msgstr ""
 "இதை பாதுகாக்க நீங்கள் ஏதாவது செய்யும் வரை இந்த தொகுப்பை நிறுவ முடியாது."
 
-#: ../src/pk-transaction.c:2635
+#: ../src/pk-transaction.c:2716
 msgid "Do not install these packages unless you are sure it is safe to do so."
 msgstr ""
 "இதை பாதுகாக்க நீங்கள் ஏதாவது செய்யும் வரை இந்த தொகுப்புகளை நிறுவ முடியாது."
diff --git a/po/te.po b/po/te.po
index 97cbe80..1428112 100644
--- a/po/te.po
+++ b/po/te.po
@@ -2,14 +2,16 @@
 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
 # This file is distributed under the same license as the PACKAGE package.
 # 
-# Richard Hughes <richard at hughsie.com>, 2011
+# Translators:
+# Krishna Babu K <kkrothap at redhat.com>, 2009.
+# Richard Hughes <richard at hughsie.com>, 2011.
 msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-04 10:50+0100\n"
-"PO-Revision-Date: 2011-05-04 09:56+0000\n"
-"Last-Translator: hughsie <richard at hughsie.com>\n"
+"POT-Creation-Date: 2011-11-10 19:50+0000\n"
+"PO-Revision-Date: 2011-11-10 19:50+0000\n"
+"Last-Translator: Richard Hughes <richard at hughsie.com>\n"
 "Language-Team: LANGUAGE <LL at li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -195,7 +197,7 @@ msgstr "విడుదలైన"
 
 #. TRANSLATORS: details about the update, date the update was updated
 #. TRANSLATORS: The action of the package, in past tense
-#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:524
+#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:559
 msgid "Updated"
 msgstr "నవీకరించిన"
 
@@ -285,7 +287,7 @@ msgstr ""
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
 #: ../client/pk-console.c:704
-#: ../contrib/command-not-found/pk-command-not-found.c:639
+#: ../contrib/command-not-found/pk-command-not-found.c:634
 msgid "The transaction failed"
 msgstr "బదిలీకరణ విఫలమైంది"
 
@@ -337,21 +339,21 @@ msgstr ""
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:866
+#: ../client/pk-console.c:871
 #, c-format
 msgid "This tool could not find any available package: %s"
 msgstr "ఈ సాధనము అందుబాటులో వున్న యే సంకలనములను కనుగొనలేకపోయింది: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:894
+#: ../client/pk-console.c:899
 #, c-format
 msgid "This tool could not find the installed package: %s"
 msgstr "ఈ సాధనము సంస్థాపిత సంకలనములను కనుగొనలేకపోయింది: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:922 ../client/pk-console.c:950
+#: ../client/pk-console.c:927 ../client/pk-console.c:955
 #, c-format
 msgid "This tool could not find the package: %s"
 msgstr "ఈ సాధనము ప్యాకేజీను కనుగొనలేక పోయింది: %s"
@@ -364,70 +366,70 @@ msgstr "ఈ సాధనము ప్యాకేజీను కనుగొన
 #. detailed error follows
 #. TRANSLATORS: The package name was not found in any software sources. The
 #. detailed error follows
-#: ../client/pk-console.c:978 ../client/pk-console.c:1006
-#: ../client/pk-console.c:1034 ../client/pk-console.c:1062
-#: ../client/pk-console.c:1090
+#: ../client/pk-console.c:983 ../client/pk-console.c:1011
+#: ../client/pk-console.c:1039 ../client/pk-console.c:1067
+#: ../client/pk-console.c:1095
 #, c-format
 msgid "This tool could not find all the packages: %s"
 msgstr "ఈ సాధనము అన్ని సంకలనములను కనుగొనలేక పోయింది: %s"
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek
 #. without a paddle
-#: ../client/pk-console.c:1119
+#: ../client/pk-console.c:1124
 msgid "The daemon crashed mid-transaction!"
 msgstr "వ్యవహారము-మద్యలో డెమోన్ కుప్పకూలినది!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1153
+#: ../client/pk-console.c:1158
 msgid "PackageKit Console Interface"
 msgstr "ప్యాకేజీకిట్ కన్సోల్ ఇంటర్ఫేస్"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1155
+#: ../client/pk-console.c:1160
 msgid "Subcommands:"
 msgstr "ఉపఆదేశములు:"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was
 #. last executed
-#: ../client/pk-console.c:1235
+#: ../client/pk-console.c:1240
 msgid "Failed to get the time since this action was last completed"
 msgstr "ఈ చర్య ఆఖరున పూర్తైన కారణముగా సమయమును పొందుటలో విఫలమైంది"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1277 ../client/pk-monitor.c:371
+#: ../client/pk-console.c:1282 ../client/pk-monitor.c:371
 msgid "Show the program version and exit"
 msgstr "ప్రోగ్రామ్ వర్షన్‌ను చూపుము మరియు నిష్క్రమించుము"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1280
+#: ../client/pk-console.c:1285
 msgid "Set the filter, e.g. installed"
 msgstr "వడపోత(ఫిల్టర్) అమర్చుము, ఉ.దా. సంస్థాపించిన"
 
 #. TRANSLATORS: command line argument, use a non-standard install prefix
-#: ../client/pk-console.c:1283
+#: ../client/pk-console.c:1288
 msgid "Set the install root, e.g. '/' or '/mnt/ltsp'"
 msgstr ""
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1286
+#: ../client/pk-console.c:1291
 msgid "Exit without waiting for actions to complete"
 msgstr "పూర్తవవలసిన చర్యల కొరకు వేచివుండకుండా నిష్క్రమించుము"
 
 #. command line argument, do we ask questions
-#: ../client/pk-console.c:1289
+#: ../client/pk-console.c:1294
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:525
 msgid "Install the packages without asking for confirmation"
 msgstr "నిర్ధారణ కొరకు అడుగకుండా ప్యాకేజీలను సంస్థాపించుము"
 
 #. TRANSLATORS: command line argument, this command is not a priority
-#: ../client/pk-console.c:1292
+#: ../client/pk-console.c:1297
 msgid "Run the command using idle network bandwidth and also using less power"
 msgstr ""
 "స్థిరమైన నెట్వర్కు బ్యాండ్‌విడ్తును మరియు తక్కువ శక్తిని వుపయోగించి ఆదేశమును"
 " నడుపుము"
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1295
+#: ../client/pk-console.c:1300
 msgid ""
 "Print to screen a machine readable output, rather than using animated "
 "widgets"
@@ -436,155 +438,155 @@ msgstr ""
 "తెరకు ముద్రించుము"
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1298
+#: ../client/pk-console.c:1303
 msgid "The maximum metadata cache age. Use -1 for 'never'."
 msgstr ""
 
 #. TRANSLATORS: command line argument, --help
-#: ../client/pk-console.c:1301
+#: ../client/pk-console.c:1306
 msgid "Show help options."
 msgstr ""
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1331
+#: ../client/pk-console.c:1336
 msgid "Failed to parse command line"
 msgstr ""
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1341
+#: ../client/pk-console.c:1346
 msgid "Failed to contact PackageKit"
 msgstr "ప్యాకేజీకిట్‌ను సంప్రదించుటకు విఫలమైంది"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1394
+#: ../client/pk-console.c:1399
 msgid "The proxy could not be set"
 msgstr ""
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1406
+#: ../client/pk-console.c:1411
 msgid "The install root could not be set"
 msgstr ""
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1418
+#: ../client/pk-console.c:1423
 msgid "The filter specified was invalid"
 msgstr "తెలుపబడిన వడపోత(ఫిల్టర్) చెల్లనిది"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1437
+#: ../client/pk-console.c:1442
 msgid "A search type is required, e.g. name"
 msgstr "ఒక శోధన రకము అవసరమైంది, ఉ.దా. నామము"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1444 ../client/pk-console.c:1456
-#: ../client/pk-console.c:1468 ../client/pk-console.c:1480
+#: ../client/pk-console.c:1449 ../client/pk-console.c:1461
+#: ../client/pk-console.c:1473 ../client/pk-console.c:1485
 msgid "A search term is required"
 msgstr "ఒక శోధన పదము అవసరమైంది"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1490
+#: ../client/pk-console.c:1495
 msgid "Invalid search type"
 msgstr "చెల్లని సోధన రకము"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1496
+#: ../client/pk-console.c:1501
 msgid "A package name to install is required"
 msgstr "సంస్థాపించుటకు వొక ప్యాకేజీ నామము అవసరమైంది"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1505
+#: ../client/pk-console.c:1510
 msgid "A filename to install is required"
 msgstr "సంస్థాపించుటకు వొక దస్త్రమునామము అవసరమైంది"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1516
+#: ../client/pk-console.c:1521
 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:1527
+#: ../client/pk-console.c:1532
 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:1536
+#: ../client/pk-console.c:1541
 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:1543
+#: ../client/pk-console.c:1548
 msgid "Directory not found"
 msgstr "డైరెక్టరీ కనబడలేదు"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1552
+#: ../client/pk-console.c:1557
 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:1563
+#: ../client/pk-console.c:1568
 msgid "A transaction identifier (tid) is required"
 msgstr "వ్యవహారపు గుర్తింపుదారి (tid) అవసరమైంది"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:1584
+#: ../client/pk-console.c:1589
 msgid "A package name to resolve is required"
 msgstr "పరిష్కరించుటకు ఒక ప్యాకేజీ నామము అవసరము"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:1595 ../client/pk-console.c:1606
+#: ../client/pk-console.c:1600 ../client/pk-console.c:1611
 msgid "A repository name is required"
 msgstr "ఒక రిపోజిటరీ నామము అవసరమైంది"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:1617
+#: ../client/pk-console.c:1622
 msgid "A repo name, parameter and value are required"
 msgstr "ఒక రెపో నామము, పారామితి మరియు విలువ అవసరమైంది"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:1634
+#: ../client/pk-console.c:1639
 msgid "An action, e.g. 'update-system' is required"
 msgstr "చర్య, ఉ.దా. update-system అవసరము"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:1641
+#: ../client/pk-console.c:1646
 msgid "A correct role is required"
 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:1651 ../client/pk-console.c:1665
-#: ../client/pk-console.c:1674 ../client/pk-console.c:1694
-#: ../client/pk-console.c:1703 ../client/pk-generate-pack.c:314
+#: ../client/pk-console.c:1656 ../client/pk-console.c:1670
+#: ../client/pk-console.c:1679 ../client/pk-console.c:1699
+#: ../client/pk-console.c:1708 ../client/pk-generate-pack.c:314
 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:1683
+#: ../client/pk-console.c:1688
 msgid "A package provide string is required"
 msgstr "సంకలనము అందించు పదబందము(స్ట్రింగు) అవసరమైంది"
 
 #. TRANSLATORS: The user did not provide a distro name
-#: ../client/pk-console.c:1727
+#: ../client/pk-console.c:1732
 msgid "A distribution name is required"
 msgstr ""
 
 #. TRANSLATORS: The user did not provide an upgrade type
-#: ../client/pk-console.c:1733
+#: ../client/pk-console.c:1738
 msgid "An upgrade type is required, e.g. 'minimal', 'default' or 'complete'"
 msgstr ""
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command
 #. line
-#: ../client/pk-console.c:1783
+#: ../client/pk-console.c:1788
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "ఐచ్చికము '%s' మద్దతీయబడదు"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:1793
+#: ../client/pk-console.c:1798
 msgid "Command failed"
 msgstr "ఆదేశము విఫలమైంది"
 
@@ -723,161 +725,156 @@ msgid "PackageKit Monitor"
 msgstr "PackageKit పర్యవేక్షకి"
 
 #. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/pk-plugin-install.c:499
+#: ../contrib/browser-plugin/pk-plugin-install.c:503
 msgid "Getting package information..."
 msgstr "సంకలనము సమాచారమును పొందుచున్నది..."
 
 #. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/pk-plugin-install.c:505
+#: ../contrib/browser-plugin/pk-plugin-install.c:509
 #, c-format
 msgid "Run %s"
 msgstr "%s నడుపు"
 
 #. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:511
+#: ../contrib/browser-plugin/pk-plugin-install.c:515
 msgid "Installed version"
 msgstr "సంస్థాపించిన వర్షన్"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:519
+#: ../contrib/browser-plugin/pk-plugin-install.c:523
 #, c-format
 msgid "Run version %s now"
 msgstr "వర్షన్ %s యిప్పుడు నడుపుము"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:525
+#: ../contrib/browser-plugin/pk-plugin-install.c:529
 msgid "Run now"
 msgstr "ఇప్పుడు నడుపుము"
 
 #. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:531
+#: ../contrib/browser-plugin/pk-plugin-install.c:535
 #, c-format
 msgid "Update to version %s"
 msgstr "వర్షన్ %sకు నవీకరించుము"
 
 #. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:537
+#: ../contrib/browser-plugin/pk-plugin-install.c:541
 #, c-format
 msgid "Install %s now"
 msgstr "%s యిప్పుడు సంస్థాపించుము"
 
 #. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:540
+#: ../contrib/browser-plugin/pk-plugin-install.c:544
 msgid "Version"
 msgstr "వర్షన్"
 
 #. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/pk-plugin-install.c:545
+#: ../contrib/browser-plugin/pk-plugin-install.c:549
 msgid "No packages found for your system"
 msgstr "మీ సిస్టమ్ కొరకు ఎటువంటి సంకలనాలు కనబడలేదు"
 
 #. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/pk-plugin-install.c:550
+#: ../contrib/browser-plugin/pk-plugin-install.c:554
 msgid "Installing..."
 msgstr "సంస్థాపించుచున్నది..."
 
 #. TRANSLATORS: downloading repo data so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:366
+#: ../contrib/command-not-found/pk-command-not-found.c:363
 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:370
+#: ../contrib/command-not-found/pk-command-not-found.c:367
 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:374
+#: ../contrib/command-not-found/pk-command-not-found.c:371
 msgid "Waiting for package manager lock."
 msgstr "సంకలనము నిర్వాహిక లాక్ కొరకు వేచివుంది."
 
 #. TRANSLATORS: loading package cache so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:378
+#: ../contrib/command-not-found/pk-command-not-found.c:375
 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:444
+#: ../contrib/command-not-found/pk-command-not-found.c:439
 msgid "Failed to search for file"
 msgstr "దస్త్రమును శోధించుటలో విఫలమైంది"
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
-#: ../contrib/command-not-found/pk-command-not-found.c:456
+#: ../contrib/command-not-found/pk-command-not-found.c:451
 msgid "Getting the list of files failed"
 msgstr ""
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:602
+#: ../contrib/command-not-found/pk-command-not-found.c:597
 msgid "Failed to launch:"
 msgstr "ఆరంభించుటలో విఫలమైంది:"
 
 #. TRANSLATORS: we failed to install the package
-#: ../contrib/command-not-found/pk-command-not-found.c:630
+#: ../contrib/command-not-found/pk-command-not-found.c:625
 msgid "Failed to install packages"
 msgstr "సంకలనములను సంస్థాపించుటలో విఫలమైంది"
 
-#. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/command-not-found/pk-command-not-found.c:706
-msgid "PackageKit Command Not Found"
-msgstr "PackageKit ఆదేశము కనబడలేదు"
-
 #. TRANSLATORS: the prefix of all the output telling the user
 #. * why it's not executing. NOTE: this is lowercase to mimic
 #. * the style of bash itself -- apologies
-#: ../contrib/command-not-found/pk-command-not-found.c:741
+#: ../contrib/command-not-found/pk-command-not-found.c:723
 msgid "command not found"
 msgstr ""
 
 #. TRANSLATORS: tell the user what we think the command is
-#: ../contrib/command-not-found/pk-command-not-found.c:759
+#: ../contrib/command-not-found/pk-command-not-found.c:741
 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:773
+#: ../contrib/command-not-found/pk-command-not-found.c:755
 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:787
-#: ../contrib/command-not-found/pk-command-not-found.c:796
+#: ../contrib/command-not-found/pk-command-not-found.c:769
+#: ../contrib/command-not-found/pk-command-not-found.c:778
 msgid "Similar commands are:"
 msgstr "ఓకేతీరు ఆదేశములు:"
 
 #. TRANSLATORS: ask the user to choose a file to run
-#: ../contrib/command-not-found/pk-command-not-found.c:803
+#: ../contrib/command-not-found/pk-command-not-found.c:785
 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:821
+#: ../contrib/command-not-found/pk-command-not-found.c:803
 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:828
+#: ../contrib/command-not-found/pk-command-not-found.c:810
 #, 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:855
+#: ../contrib/command-not-found/pk-command-not-found.c:837
 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:865
+#: ../contrib/command-not-found/pk-command-not-found.c:847
 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:874
+#: ../contrib/command-not-found/pk-command-not-found.c:856
 msgid "Please choose a package to install"
 msgstr "సంస్థాపించుటకు దయచేసి సంకలనమును యెంచుకొనుము"
 
@@ -1053,7 +1050,7 @@ msgstr "భ్రమింపు రీతిలో సంకలనములన
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
 #. TRANSLATORS: transaction state, installing packages
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:860
-#: ../lib/packagekit-glib2/pk-console-shared.c:296
+#: ../lib/packagekit-glib2/pk-console-shared.c:331
 #, c-format
 msgid "Installing packages"
 msgstr "సంకలనాలను సంస్థాపించుచున్నది"
@@ -1188,474 +1185,474 @@ msgstr "PackageKit సంకలనము జాబితా"
 msgid "PackageKit Service Pack"
 msgstr "PackageKit సేవా పాక్"
 
-#: ../lib/packagekit-glib2/pk-console-shared.c:64
+#: ../lib/packagekit-glib2/pk-console-shared.c:65
 #, c-format
 msgid "Please enter a number from 1 to %i: "
 msgstr "దయచేసి సంఖ్యను 1 నుండి %iకు ప్రవేశపెట్టుము: "
 
 #. TRANSLATORS: more than one package could be found that matched, to follow
 #. is a list of possible packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:198
+#: ../lib/packagekit-glib2/pk-console-shared.c:233
 msgid "More than one package matches:"
 msgstr "ఒకటికన్నా యెక్కువ సంకలనము సరితూగినది:"
 
 #. TRANSLATORS: This finds out which package in the list to use
-#: ../lib/packagekit-glib2/pk-console-shared.c:209
+#: ../lib/packagekit-glib2/pk-console-shared.c:244
 msgid "Please choose the correct package: "
 msgstr "దయచేసి సరైన సంకలనమును యెంచుకొనుము: "
 
 #. TRANSLATORS: This is when the transaction status is not known
-#: ../lib/packagekit-glib2/pk-console-shared.c:264
+#: ../lib/packagekit-glib2/pk-console-shared.c:299
 msgid "Unknown state"
 msgstr "తెలియని స్థితి"
 
 #. TRANSLATORS: transaction state, the daemon is in the process of starting
-#: ../lib/packagekit-glib2/pk-console-shared.c:268
+#: ../lib/packagekit-glib2/pk-console-shared.c:303
 msgid "Starting"
 msgstr "ప్రారంభించుచున్నది"
 
 #. TRANSLATORS: transaction state, the transaction is waiting for another to
 #. complete
-#: ../lib/packagekit-glib2/pk-console-shared.c:272
+#: ../lib/packagekit-glib2/pk-console-shared.c:307
 msgid "Waiting in queue"
 msgstr "క్యూనందు వేచివుంది"
 
 #. TRANSLATORS: transaction state, just started
-#: ../lib/packagekit-glib2/pk-console-shared.c:276
+#: ../lib/packagekit-glib2/pk-console-shared.c:311
 msgid "Running"
 msgstr "నడుస్తున్నది"
 
 #. TRANSLATORS: transaction state, is querying data
-#: ../lib/packagekit-glib2/pk-console-shared.c:280
+#: ../lib/packagekit-glib2/pk-console-shared.c:315
 msgid "Querying"
 msgstr "క్వరీచేస్తున్నది"
 
 #. TRANSLATORS: transaction state, getting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:284
+#: ../lib/packagekit-glib2/pk-console-shared.c:319
 msgid "Getting information"
 msgstr "సమాచారమును పొందుచున్నది"
 
 #. TRANSLATORS: transaction state, removing packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:288
+#: ../lib/packagekit-glib2/pk-console-shared.c:323
 msgid "Removing packages"
 msgstr "ప్యాకేజీలను తీసివేయుచున్నది"
 
 #. TRANSLATORS: transaction state, downloading package files
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:292
-#: ../lib/packagekit-glib2/pk-console-shared.c:670
+#: ../lib/packagekit-glib2/pk-console-shared.c:327
+#: ../lib/packagekit-glib2/pk-console-shared.c:705
 msgid "Downloading packages"
 msgstr "సంకలనాలను డౌనులోడు చేయుచున్నది"
 
 #. TRANSLATORS: transaction state, refreshing internal lists
-#: ../lib/packagekit-glib2/pk-console-shared.c:300
+#: ../lib/packagekit-glib2/pk-console-shared.c:335
 msgid "Refreshing software list"
 msgstr "సాఫ్టువేరు జాబితాను తాజాపర్చుచున్నది"
 
 #. TRANSLATORS: transaction state, installing updates
-#: ../lib/packagekit-glib2/pk-console-shared.c:304
+#: ../lib/packagekit-glib2/pk-console-shared.c:339
 msgid "Installing updates"
 msgstr "నవీకరణలను సంస్థాపించుచున్నది"
 
 #. TRANSLATORS: transaction state, removing old packages, and cleaning config
 #. files
-#: ../lib/packagekit-glib2/pk-console-shared.c:308
+#: ../lib/packagekit-glib2/pk-console-shared.c:343
 msgid "Cleaning up packages"
 msgstr "సంకలనాలను శుభ్రపరచుచున్నది చేయుచున్నది"
 
 #. TRANSLATORS: transaction state, obsoleting old packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:312
+#: ../lib/packagekit-glib2/pk-console-shared.c:347
 msgid "Obsoleting packages"
 msgstr "సంకలనాలను తీసివేయుచున్నది"
 
 #. TRANSLATORS: transaction state, checking the transaction before we do it
-#: ../lib/packagekit-glib2/pk-console-shared.c:316
+#: ../lib/packagekit-glib2/pk-console-shared.c:351
 msgid "Resolving dependencies"
 msgstr "ఆధారాలను పరిష్కరించుచున్నది"
 
 #. TRANSLATORS: transaction state, checking if we have all the security keys
 #. for the operation
-#: ../lib/packagekit-glib2/pk-console-shared.c:320
+#: ../lib/packagekit-glib2/pk-console-shared.c:355
 msgid "Checking signatures"
 msgstr "సంతకాలను పరిశీలించుచున్నది"
 
 #. TRANSLATORS: transaction state, when we return to a previous system state
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:324
-#: ../lib/packagekit-glib2/pk-console-shared.c:630
+#: ../lib/packagekit-glib2/pk-console-shared.c:359
+#: ../lib/packagekit-glib2/pk-console-shared.c:665
 msgid "Rolling back"
 msgstr "వెనుకకు తెచ్చుచున్నది"
 
 #. TRANSLATORS: transaction state, when we're doing a test transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:328
+#: ../lib/packagekit-glib2/pk-console-shared.c:363
 msgid "Testing changes"
 msgstr "మార్పులను పరిశీలించుచున్నది"
 
 #. TRANSLATORS: transaction state, when we're writing to the system package
 #. database
-#: ../lib/packagekit-glib2/pk-console-shared.c:332
+#: ../lib/packagekit-glib2/pk-console-shared.c:367
 msgid "Committing changes"
 msgstr "మార్పులను అప్పగించుతోంది"
 
 #. TRANSLATORS: transaction state, requesting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:336
+#: ../lib/packagekit-glib2/pk-console-shared.c:371
 msgid "Requesting data"
 msgstr "డాటాను అభ్యర్ధించుచున్నది"
 
 #. TRANSLATORS: transaction state, all done!
-#: ../lib/packagekit-glib2/pk-console-shared.c:340
+#: ../lib/packagekit-glib2/pk-console-shared.c:375
 msgid "Finished"
 msgstr "పూర్తైనది"
 
 #. TRANSLATORS: transaction state, in the process of cancelling
-#: ../lib/packagekit-glib2/pk-console-shared.c:344
+#: ../lib/packagekit-glib2/pk-console-shared.c:379
 msgid "Cancelling"
 msgstr "రద్దుచేయుచున్నది"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:348
+#: ../lib/packagekit-glib2/pk-console-shared.c:383
 msgid "Downloading repository information"
 msgstr "రిపోజిటరీ సమాచారమును డౌనులోడుచేయుచున్నది"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:352
+#: ../lib/packagekit-glib2/pk-console-shared.c:387
 msgid "Downloading list of packages"
 msgstr "సంకలనాల జాబితాను డౌనులోడుచేస్తోంది"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:356
+#: ../lib/packagekit-glib2/pk-console-shared.c:391
 msgid "Downloading file lists"
 msgstr "దస్త్రముల జాబితాను డౌనులోడుచేయుచున్నది"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:360
+#: ../lib/packagekit-glib2/pk-console-shared.c:395
 msgid "Downloading lists of changes"
 msgstr "మార్పుల జాబితాను డౌనులోడుచేయుచున్నది"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:364
+#: ../lib/packagekit-glib2/pk-console-shared.c:399
 msgid "Downloading groups"
 msgstr "సమూహాలను డౌనులోడు చేయుచున్నది"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:368
+#: ../lib/packagekit-glib2/pk-console-shared.c:403
 msgid "Downloading update information"
 msgstr "నవీకరణ సమాచారమును డౌనులోడుచేస్తున్నది"
 
 #. TRANSLATORS: transaction state, repackaging delta files
-#: ../lib/packagekit-glib2/pk-console-shared.c:372
+#: ../lib/packagekit-glib2/pk-console-shared.c:407
 msgid "Repackaging files"
 msgstr "దస్త్రములు పునఃసంకలనము చేయుచున్నది"
 
 #. TRANSLATORS: transaction state, loading databases
-#: ../lib/packagekit-glib2/pk-console-shared.c:376
+#: ../lib/packagekit-glib2/pk-console-shared.c:411
 msgid "Loading cache"
 msgstr "క్యాచీను లోడుచేయుచున్నది"
 
 #. TRANSLATORS: transaction state, scanning for running processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:380
+#: ../lib/packagekit-glib2/pk-console-shared.c:415
 msgid "Scanning applications"
 msgstr "అనువర్తనములను స్కానుచేయుచున్నది"
 
 #. TRANSLATORS: transaction state, generating a list of packages installed on
 #. the system
-#: ../lib/packagekit-glib2/pk-console-shared.c:384
+#: ../lib/packagekit-glib2/pk-console-shared.c:419
 msgid "Generating package lists"
 msgstr "సంకలన జాబితాలను జనియింపచేయుచున్నది"
 
 #. TRANSLATORS: transaction state, when we're waiting for the native tools to
 #. exit
-#: ../lib/packagekit-glib2/pk-console-shared.c:388
+#: ../lib/packagekit-glib2/pk-console-shared.c:423
 msgid "Waiting for package manager lock"
 msgstr "సంకలన నిర్వాహిక లాక్ కొరకు వేచివుంది"
 
 #. TRANSLATORS: transaction state, waiting for user to type in a password
-#: ../lib/packagekit-glib2/pk-console-shared.c:392
+#: ../lib/packagekit-glib2/pk-console-shared.c:427
 msgid "Waiting for authentication"
 msgstr "దృవీకరణము కొరకు వేచివుంది"
 
 #. TRANSLATORS: transaction state, we are updating the list of processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:396
+#: ../lib/packagekit-glib2/pk-console-shared.c:431
 msgid "Updating running applications"
 msgstr "నడుస్తున్న అనువర్తనములను నవీకరించుచున్నది"
 
 #. TRANSLATORS: transaction state, we are checking executable files currently
 #. in use
-#: ../lib/packagekit-glib2/pk-console-shared.c:400
+#: ../lib/packagekit-glib2/pk-console-shared.c:435
 msgid "Checking applications in use"
 msgstr "ఉపయోగంలోవున్న అనువర్తనములను పరిశీలించుచున్నది"
 
 #. TRANSLATORS: transaction state, we are checking for libraries currently in
 #. use
-#: ../lib/packagekit-glib2/pk-console-shared.c:404
+#: ../lib/packagekit-glib2/pk-console-shared.c:439
 msgid "Checking libraries in use"
 msgstr "ఉపయోగంలో వున్న లైబ్రరీలను పరిశీలించుచున్నది"
 
 #. TRANSLATORS: transaction state, we are copying package files before or
 #. after the transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:408
+#: ../lib/packagekit-glib2/pk-console-shared.c:443
 msgid "Copying files"
 msgstr "దస్త్రములను నకలుతీయుచున్నది"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:426
+#: ../lib/packagekit-glib2/pk-console-shared.c:461
 msgid "Trivial"
 msgstr "క్లిష్టమైన"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:430
+#: ../lib/packagekit-glib2/pk-console-shared.c:465
 msgid "Normal"
 msgstr "సాధారణ"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:434
+#: ../lib/packagekit-glib2/pk-console-shared.c:469
 msgid "Important"
 msgstr "ముఖ్యమైన"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:438
+#: ../lib/packagekit-glib2/pk-console-shared.c:473
 msgid "Security"
 msgstr "రక్షణ"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:442
+#: ../lib/packagekit-glib2/pk-console-shared.c:477
 msgid "Bug fix "
 msgstr "బగ్ పరిష్కారము"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:446
+#: ../lib/packagekit-glib2/pk-console-shared.c:481
 msgid "Enhancement"
 msgstr "వృద్దిఅవుతు"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:450
+#: ../lib/packagekit-glib2/pk-console-shared.c:485
 msgid "Blocked"
 msgstr "బ్లాక్‌డ్"
 
 #. TRANSLATORS: The state of a package
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:455
-#: ../lib/packagekit-glib2/pk-console-shared.c:528
+#: ../lib/packagekit-glib2/pk-console-shared.c:490
+#: ../lib/packagekit-glib2/pk-console-shared.c:563
 msgid "Installed"
 msgstr "సంస్థాపించిన"
 
 #. TRANSLATORS: The state of a package, i.e. not installed
-#: ../lib/packagekit-glib2/pk-console-shared.c:460
+#: ../lib/packagekit-glib2/pk-console-shared.c:495
 msgid "Available"
 msgstr "అందుబాటులోవుంది"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:478
+#: ../lib/packagekit-glib2/pk-console-shared.c:513
 msgid "Downloading"
 msgstr "డౌనులోడు చేయుచున్నది"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:482
+#: ../lib/packagekit-glib2/pk-console-shared.c:517
 msgid "Updating"
 msgstr "నవీకరించుచున్నది"
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:486
-#: ../lib/packagekit-glib2/pk-console-shared.c:606
+#: ../lib/packagekit-glib2/pk-console-shared.c:521
+#: ../lib/packagekit-glib2/pk-console-shared.c:641
 msgid "Installing"
 msgstr "సంస్థాపించుచున్నది"
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:490
-#: ../lib/packagekit-glib2/pk-console-shared.c:602
+#: ../lib/packagekit-glib2/pk-console-shared.c:525
+#: ../lib/packagekit-glib2/pk-console-shared.c:637
 msgid "Removing"
 msgstr "తీసివేయుచున్నది"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:494
+#: ../lib/packagekit-glib2/pk-console-shared.c:529
 msgid "Cleaning up"
 msgstr "శుభ్రపరచుచున్నది"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:498
+#: ../lib/packagekit-glib2/pk-console-shared.c:533
 msgid "Obsoleting"
 msgstr "తొలగించుచున్నది"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:502
+#: ../lib/packagekit-glib2/pk-console-shared.c:537
 msgid "Reinstalling"
 msgstr "తిరిగిసంస్థాపించుచున్నది"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:520
+#: ../lib/packagekit-glib2/pk-console-shared.c:555
 msgid "Downloaded"
 msgstr "డౌనులోడు చేసిన"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:532
+#: ../lib/packagekit-glib2/pk-console-shared.c:567
 msgid "Removed"
 msgstr "తొలగించిన"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:536
+#: ../lib/packagekit-glib2/pk-console-shared.c:571
 msgid "Cleaned up"
 msgstr "శుభ్రపరచిన"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:540
+#: ../lib/packagekit-glib2/pk-console-shared.c:575
 msgid "Obsoleted"
 msgstr "తొలగించిన"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:544
+#: ../lib/packagekit-glib2/pk-console-shared.c:579
 msgid "Reinstalled"
 msgstr "తిరిగిసంస్థాపించిన"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:562
+#: ../lib/packagekit-glib2/pk-console-shared.c:597
 msgid "Unknown role type"
 msgstr "తెలియని పాత్రరకము"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:566
+#: ../lib/packagekit-glib2/pk-console-shared.c:601
 msgid "Getting dependencies"
 msgstr "ఆధారాలను పొందుచున్నది"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:570
+#: ../lib/packagekit-glib2/pk-console-shared.c:605
 msgid "Getting update details"
 msgstr "నవీకరణ వివరములను పొందుచున్నది"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:574
+#: ../lib/packagekit-glib2/pk-console-shared.c:609
 msgid "Getting details"
 msgstr "వివరాలను పొందుచున్నది"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:578
+#: ../lib/packagekit-glib2/pk-console-shared.c:613
 msgid "Getting requires"
 msgstr "కావలిసినవి పొందుచున్నది"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:582
+#: ../lib/packagekit-glib2/pk-console-shared.c:617
 msgid "Getting updates"
 msgstr "నవీకరణలను పొందుచున్నది"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:586
+#: ../lib/packagekit-glib2/pk-console-shared.c:621
 msgid "Searching by details"
 msgstr "వివరముల ప్రకారం శోధించుచున్నది"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:590
+#: ../lib/packagekit-glib2/pk-console-shared.c:625
 msgid "Searching by file"
 msgstr "దస్త్రము ప్రకారం శోధించుచున్నది"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:594
+#: ../lib/packagekit-glib2/pk-console-shared.c:629
 msgid "Searching groups"
 msgstr "సమూహాల ప్రాకరం శోధించుచున్నది"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:598
+#: ../lib/packagekit-glib2/pk-console-shared.c:633
 msgid "Searching by name"
 msgstr "నామము ప్రకారం శోధించుచున్నది"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:610
+#: ../lib/packagekit-glib2/pk-console-shared.c:645
 msgid "Installing files"
 msgstr "దస్త్రములను సంస్థాపించుచున్నది"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:614
+#: ../lib/packagekit-glib2/pk-console-shared.c:649
 msgid "Refreshing cache"
 msgstr "క్యాచీను తాజాపరుస్తోంది"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:618
+#: ../lib/packagekit-glib2/pk-console-shared.c:653
 msgid "Updating packages"
 msgstr "సంకలనాలను నవీకరిస్తోంది"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:622
+#: ../lib/packagekit-glib2/pk-console-shared.c:657
 msgid "Updating system"
 msgstr "సిస్టమ్‌ను నవీకరించుచున్నది"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:626
+#: ../lib/packagekit-glib2/pk-console-shared.c:661
 msgid "Canceling"
 msgstr "రద్దుచేయుచున్నది"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:634
+#: ../lib/packagekit-glib2/pk-console-shared.c:669
 msgid "Getting repositories"
 msgstr "రీపోజిటరీలను పొందుచున్నది"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:638
+#: ../lib/packagekit-glib2/pk-console-shared.c:673
 msgid "Enabling repository"
 msgstr "రిపోజిటరీ చేతనముచేయుచున్నది"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:642
+#: ../lib/packagekit-glib2/pk-console-shared.c:677
 msgid "Setting data"
 msgstr "డాటాను అమర్చుచున్నది"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:646
+#: ../lib/packagekit-glib2/pk-console-shared.c:681
 msgid "Resolving"
 msgstr "పరిష్కరించుచున్నది"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:650
+#: ../lib/packagekit-glib2/pk-console-shared.c:685
 msgid "Getting file list"
 msgstr "దస్త్రము జాబితాను పొందుచున్నది"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:654
+#: ../lib/packagekit-glib2/pk-console-shared.c:689
 msgid "Getting provides"
 msgstr "ఉత్పాదకాలను పొందుచున్నది"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:658
+#: ../lib/packagekit-glib2/pk-console-shared.c:693
 msgid "Installing signature"
 msgstr "సంతకమును సంస్థాపించుచున్నది"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:662
+#: ../lib/packagekit-glib2/pk-console-shared.c:697
 msgid "Getting packages"
 msgstr "సంకలనాలను పొందుచున్నది"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:666
+#: ../lib/packagekit-glib2/pk-console-shared.c:701
 msgid "Accepting EULA"
 msgstr "EULA ఆమోదించుచున్నది"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:674
+#: ../lib/packagekit-glib2/pk-console-shared.c:709
 msgid "Getting upgrades"
 msgstr "నవీకరణలు పొందుచున్నది"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:678
+#: ../lib/packagekit-glib2/pk-console-shared.c:713
 msgid "Getting categories"
 msgstr "వర్గములను పొందుచున్నది"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:682
+#: ../lib/packagekit-glib2/pk-console-shared.c:717
 msgid "Getting transactions"
 msgstr "బదిలీకరణలను పొందుచున్నది"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:686
-#: ../lib/packagekit-glib2/pk-console-shared.c:690
+#: ../lib/packagekit-glib2/pk-console-shared.c:721
+#: ../lib/packagekit-glib2/pk-console-shared.c:725
 msgid "Simulating install"
 msgstr "సంస్థాపనను సిమ్యులేట్ చేయుచున్నది"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:694
+#: ../lib/packagekit-glib2/pk-console-shared.c:729
 msgid "Simulating remove"
 msgstr "తొలగింపును సిమ్యులేట్ చేయుచున్నది"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:698
+#: ../lib/packagekit-glib2/pk-console-shared.c:733
 msgid "Simulating update"
 msgstr "నవీకరణను సిమ్యులేట్ చేయుచున్నది"
 
@@ -1805,13 +1802,19 @@ msgstr "ఈ క్రింది సంకలనములు తిరిగి
 msgid "The following packages have to be downgraded:"
 msgstr "ఈ క్రింది సంకలనములు డౌన్‌గ్రేడ్ చేయవలసివుంది:"
 
+#. TRANSLATORS: When processing, untrusted and non-verified packages may be
+#. encountered
+#: ../lib/packagekit-glib2/pk-task-text.c:325
+msgid "The following packages are untrusted:"
+msgstr ""
+
 #. TRANSLATORS: ask the user if the proposed changes are okay
-#: ../lib/packagekit-glib2/pk-task-text.c:380
+#: ../lib/packagekit-glib2/pk-task-text.c:385
 msgid "Proceed with changes?"
 msgstr "మార్పులతో ముందుకుపోవాలా?"
 
 #. TRANSLATORS: tell the user we didn't do anything
-#: ../lib/packagekit-glib2/pk-task-text.c:385
+#: ../lib/packagekit-glib2/pk-task-text.c:390
 msgid "The transaction did not proceed."
 msgstr "బదిలీకరణ ముందుకుసాగలేదు."
 
@@ -2019,98 +2022,68 @@ msgstr "సంకలనాలను నవీకరించుము"
 msgid "Upgrade System"
 msgstr ""
 
-#. TRANSLATORS: failed due to DBus security
-#: ../src/pk-main.c:91
-msgid "Startup failed due to security policies on this machine."
-msgstr "ఈ మిషన్ నందలి రక్షణ విధానముల వలన ప్రారంభము విఫలమైంది."
-
-#. TRANSLATORS: only two ways this can fail...
-#: ../src/pk-main.c:93
-msgid "This can happen for two reasons:"
-msgstr "రెండు కారణముల వలన యిది జరిగివుండవచ్చును:"
-
-#. TRANSLATORS: only allowed to be owned by root
-#: ../src/pk-main.c:95
-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:97
-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:223
+#: ../src/pk-main.c:149
 msgid "Packaging backend to use, e.g. dummy"
 msgstr "ఉపయోగించుటకు సంకలనీకరణ బ్యాకెండ్, ఉ.దా. dummy"
 
 #. TRANSLATORS: if we should run in the background
-#: ../src/pk-main.c:226
+#: ../src/pk-main.c:152
 msgid "Daemonize and detach from the terminal"
 msgstr "టెర్మినల్ నుండి డెమొనైజ్ చేసి మరియు వేరుచేయుము"
 
 #. TRANSLATORS: if we should not monitor how long we are inactive for
-#: ../src/pk-main.c:229
+#: ../src/pk-main.c:155
 msgid "Disable the idle timer"
 msgstr "వృధాగావున్న సమయగణనిని అచేతనముచేయి"
 
 #. TRANSLATORS: show version
-#: ../src/pk-main.c:232
+#: ../src/pk-main.c:158
 msgid "Show version and exit"
 msgstr "వర్షన్ చూపుము మరియు నిష్క్రమించుము"
 
 #. TRANSLATORS: exit after we've started up, used for user profiling
-#: ../src/pk-main.c:235
+#: ../src/pk-main.c:161
 msgid "Exit after a small delay"
 msgstr "ఒక చిన్న విరామం తర్వాత నిష్క్రమించుము"
 
 #. TRANSLATORS: exit straight away, used for automatic profiling
-#: ../src/pk-main.c:238
+#: ../src/pk-main.c:164
 msgid "Exit after the engine has loaded"
 msgstr "ఇంజన్ లోడైన తర్వాత నిష్క్రమించుము"
 
+#. TRANSLATORS: don't unset environment variables, used for debugging
+#: ../src/pk-main.c:167
+msgid "Don't clear environment on startup"
+msgstr ""
+
 #. TRANSLATORS: describing the service that is running
-#: ../src/pk-main.c:253
+#: ../src/pk-main.c:179
 msgid "PackageKit service"
 msgstr "PackageKit సేవ"
 
-#. TRANSLATORS: fatal error, dbus is not running
-#: ../src/pk-main.c:298
-msgid "Cannot connect to the system bus"
-msgstr "సిస్టమ్ బస్‌నకు అనుసంధానము కాలేదు"
-
-#: ../src/pk-main.c:344
+#: ../src/pk-main.c:253
 msgid "Failed to load any of the specified backends:"
 msgstr ""
 
-#. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error
-#. follows
-#: ../src/pk-main.c:358
-msgid "Error trying to start:"
-msgstr "ప్రారంభించుటలో దోషము:"
-
 #. TRANSLATORS: is not GPG signed
-#: ../src/pk-transaction.c:2611 ../src/pk-transaction.c:2618
+#: ../src/pk-transaction.c:2696
 msgid "The software is not from a trusted source."
 msgstr "సాఫ్టువేరు నమ్మదగిన మూలమునుండి కాదు."
 
-#: ../src/pk-transaction.c:2623
+#: ../src/pk-transaction.c:2704
 msgid "Do not update this package unless you are sure it is safe to do so."
 msgstr "మీకు ఈ సంకలనమును నవీకరించుట క్షేమమేనని తెలిస్తే తప్ప నవీకరించవద్దు."
 
-#: ../src/pk-transaction.c:2624
+#: ../src/pk-transaction.c:2705
 msgid "Do not update these packages unless you are sure it is safe to do so."
 msgstr "మీకు ఈ సంకలనములను నవీకరించుట క్షేమమేనని తెలిస్తే తప్ప నవీకరించవద్దు."
 
-#: ../src/pk-transaction.c:2634
+#: ../src/pk-transaction.c:2715
 msgid "Do not install this package unless you are sure it is safe to do so."
 msgstr "మీకు ఈ సంకలనమును సంస్థాపించుట క్షేమమేనని తెలిస్తే తప్ప నవీకరించవద్దు."
 
-#: ../src/pk-transaction.c:2635
+#: ../src/pk-transaction.c:2716
 msgid "Do not install these packages unless you are sure it is safe to do so."
 msgstr ""
 "మీకు ఈ సంకలనములను సంస్థాపించుట క్షేమమేనని తెలిస్తే తప్ప నవీకరించవద్దు."
diff --git a/po/th.po b/po/th.po
index f1edb7a..ab88d38 100644
--- a/po/th.po
+++ b/po/th.po
@@ -2,14 +2,15 @@
 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
 # This file is distributed under the same license as the PACKAGE package.
 # 
-# Richard Hughes <richard at hughsie.com>, 2011
+# Translators:
+# Richard Hughes <richard at hughsie.com>, 2011.
 msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-04 10:50+0100\n"
-"PO-Revision-Date: 2011-05-04 09:56+0000\n"
-"Last-Translator: hughsie <richard at hughsie.com>\n"
+"POT-Creation-Date: 2011-11-10 19:50+0000\n"
+"PO-Revision-Date: 2011-11-10 19:50+0000\n"
+"Last-Translator: Richard Hughes <richard at hughsie.com>\n"
 "Language-Team: LANGUAGE <LL at li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -195,7 +196,7 @@ msgstr ""
 
 #. TRANSLATORS: details about the update, date the update was updated
 #. TRANSLATORS: The action of the package, in past tense
-#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:524
+#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:559
 msgid "Updated"
 msgstr ""
 
@@ -285,7 +286,7 @@ msgstr ""
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
 #: ../client/pk-console.c:704
-#: ../contrib/command-not-found/pk-command-not-found.c:639
+#: ../contrib/command-not-found/pk-command-not-found.c:634
 msgid "The transaction failed"
 msgstr ""
 
@@ -333,21 +334,21 @@ msgstr ""
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:866
+#: ../client/pk-console.c:871
 #, c-format
 msgid "This tool could not find any available package: %s"
 msgstr ""
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:894
+#: ../client/pk-console.c:899
 #, c-format
 msgid "This tool could not find the installed package: %s"
 msgstr ""
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:922 ../client/pk-console.c:950
+#: ../client/pk-console.c:927 ../client/pk-console.c:955
 #, c-format
 msgid "This tool could not find the package: %s"
 msgstr ""
@@ -360,223 +361,223 @@ msgstr ""
 #. detailed error follows
 #. TRANSLATORS: The package name was not found in any software sources. The
 #. detailed error follows
-#: ../client/pk-console.c:978 ../client/pk-console.c:1006
-#: ../client/pk-console.c:1034 ../client/pk-console.c:1062
-#: ../client/pk-console.c:1090
+#: ../client/pk-console.c:983 ../client/pk-console.c:1011
+#: ../client/pk-console.c:1039 ../client/pk-console.c:1067
+#: ../client/pk-console.c:1095
 #, c-format
 msgid "This tool could not find all the packages: %s"
 msgstr ""
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek
 #. without a paddle
-#: ../client/pk-console.c:1119
+#: ../client/pk-console.c:1124
 msgid "The daemon crashed mid-transaction!"
 msgstr "ดีมอนขัดข้องระหว่างกระบวนการ!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1153
+#: ../client/pk-console.c:1158
 msgid "PackageKit Console Interface"
 msgstr "ส่วนติดต่อบนคอนโซลของ PackageKit"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1155
+#: ../client/pk-console.c:1160
 msgid "Subcommands:"
 msgstr "คำสั่งย่อย:"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was
 #. last executed
-#: ../client/pk-console.c:1235
+#: ../client/pk-console.c:1240
 msgid "Failed to get the time since this action was last completed"
 msgstr ""
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1277 ../client/pk-monitor.c:371
+#: ../client/pk-console.c:1282 ../client/pk-monitor.c:371
 msgid "Show the program version and exit"
 msgstr "แสดงรุ่นของโปรแกรมแล้วออก"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1280
+#: ../client/pk-console.c:1285
 msgid "Set the filter, e.g. installed"
 msgstr "ตั้งตัวกรอง เช่น ติดตั้งไว้แล้ว"
 
 #. TRANSLATORS: command line argument, use a non-standard install prefix
-#: ../client/pk-console.c:1283
+#: ../client/pk-console.c:1288
 msgid "Set the install root, e.g. '/' or '/mnt/ltsp'"
 msgstr ""
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1286
+#: ../client/pk-console.c:1291
 msgid "Exit without waiting for actions to complete"
 msgstr "ออกโดยไม่ต้องรอกระบวนการให้เสร็จสิ้น"
 
 #. command line argument, do we ask questions
-#: ../client/pk-console.c:1289
+#: ../client/pk-console.c:1294
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:525
 msgid "Install the packages without asking for confirmation"
 msgstr ""
 
 #. TRANSLATORS: command line argument, this command is not a priority
-#: ../client/pk-console.c:1292
+#: ../client/pk-console.c:1297
 msgid "Run the command using idle network bandwidth and also using less power"
 msgstr ""
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1295
+#: ../client/pk-console.c:1300
 msgid ""
 "Print to screen a machine readable output, rather than using animated "
 "widgets"
 msgstr ""
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1298
+#: ../client/pk-console.c:1303
 msgid "The maximum metadata cache age. Use -1 for 'never'."
 msgstr ""
 
 #. TRANSLATORS: command line argument, --help
-#: ../client/pk-console.c:1301
+#: ../client/pk-console.c:1306
 msgid "Show help options."
 msgstr ""
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1331
+#: ../client/pk-console.c:1336
 msgid "Failed to parse command line"
 msgstr ""
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1341
+#: ../client/pk-console.c:1346
 msgid "Failed to contact PackageKit"
 msgstr ""
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1394
+#: ../client/pk-console.c:1399
 msgid "The proxy could not be set"
 msgstr ""
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1406
+#: ../client/pk-console.c:1411
 msgid "The install root could not be set"
 msgstr ""
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1418
+#: ../client/pk-console.c:1423
 msgid "The filter specified was invalid"
 msgstr ""
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1437
+#: ../client/pk-console.c:1442
 msgid "A search type is required, e.g. name"
 msgstr ""
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1444 ../client/pk-console.c:1456
-#: ../client/pk-console.c:1468 ../client/pk-console.c:1480
+#: ../client/pk-console.c:1449 ../client/pk-console.c:1461
+#: ../client/pk-console.c:1473 ../client/pk-console.c:1485
 msgid "A search term is required"
 msgstr ""
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1490
+#: ../client/pk-console.c:1495
 msgid "Invalid search type"
 msgstr "ชนิดการค้นหาไม่ถูกต้อง"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1496
+#: ../client/pk-console.c:1501
 msgid "A package name to install is required"
 msgstr ""
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1505
+#: ../client/pk-console.c:1510
 msgid "A filename to install is required"
 msgstr ""
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1516
+#: ../client/pk-console.c:1521
 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:1527
+#: ../client/pk-console.c:1532
 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:1536
+#: ../client/pk-console.c:1541
 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:1543
+#: ../client/pk-console.c:1548
 msgid "Directory not found"
 msgstr ""
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1552
+#: ../client/pk-console.c:1557
 msgid "A licence identifier (eula-id) is required"
 msgstr ""
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1563
+#: ../client/pk-console.c:1568
 msgid "A transaction identifier (tid) is required"
 msgstr ""
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:1584
+#: ../client/pk-console.c:1589
 msgid "A package name to resolve is required"
 msgstr ""
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:1595 ../client/pk-console.c:1606
+#: ../client/pk-console.c:1600 ../client/pk-console.c:1611
 msgid "A repository name is required"
 msgstr ""
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:1617
+#: ../client/pk-console.c:1622
 msgid "A repo name, parameter and value are required"
 msgstr ""
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:1634
+#: ../client/pk-console.c:1639
 msgid "An action, e.g. 'update-system' is required"
 msgstr ""
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:1641
+#: ../client/pk-console.c:1646
 msgid "A correct role is required"
 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:1651 ../client/pk-console.c:1665
-#: ../client/pk-console.c:1674 ../client/pk-console.c:1694
-#: ../client/pk-console.c:1703 ../client/pk-generate-pack.c:314
+#: ../client/pk-console.c:1656 ../client/pk-console.c:1670
+#: ../client/pk-console.c:1679 ../client/pk-console.c:1699
+#: ../client/pk-console.c:1708 ../client/pk-generate-pack.c:314
 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:1683
+#: ../client/pk-console.c:1688
 msgid "A package provide string is required"
 msgstr ""
 
 #. TRANSLATORS: The user did not provide a distro name
-#: ../client/pk-console.c:1727
+#: ../client/pk-console.c:1732
 msgid "A distribution name is required"
 msgstr ""
 
 #. TRANSLATORS: The user did not provide an upgrade type
-#: ../client/pk-console.c:1733
+#: ../client/pk-console.c:1738
 msgid "An upgrade type is required, e.g. 'minimal', 'default' or 'complete'"
 msgstr ""
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command
 #. line
-#: ../client/pk-console.c:1783
+#: ../client/pk-console.c:1788
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr ""
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:1793
+#: ../client/pk-console.c:1798
 msgid "Command failed"
 msgstr "คำสั่งล้มเหลว"
 
@@ -711,159 +712,154 @@ msgid "PackageKit Monitor"
 msgstr "โปรแกรมเฝ้าสังเกต PackageKit"
 
 #. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/pk-plugin-install.c:499
+#: ../contrib/browser-plugin/pk-plugin-install.c:503
 msgid "Getting package information..."
 msgstr ""
 
 #. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/pk-plugin-install.c:505
+#: ../contrib/browser-plugin/pk-plugin-install.c:509
 #, c-format
 msgid "Run %s"
 msgstr ""
 
 #. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:511
+#: ../contrib/browser-plugin/pk-plugin-install.c:515
 msgid "Installed version"
 msgstr ""
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:519
+#: ../contrib/browser-plugin/pk-plugin-install.c:523
 #, c-format
 msgid "Run version %s now"
 msgstr ""
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:525
+#: ../contrib/browser-plugin/pk-plugin-install.c:529
 msgid "Run now"
 msgstr ""
 
 #. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:531
+#: ../contrib/browser-plugin/pk-plugin-install.c:535
 #, c-format
 msgid "Update to version %s"
 msgstr ""
 
 #. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:537
+#: ../contrib/browser-plugin/pk-plugin-install.c:541
 #, c-format
 msgid "Install %s now"
 msgstr ""
 
 #. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:540
+#: ../contrib/browser-plugin/pk-plugin-install.c:544
 msgid "Version"
 msgstr ""
 
 #. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/pk-plugin-install.c:545
+#: ../contrib/browser-plugin/pk-plugin-install.c:549
 msgid "No packages found for your system"
 msgstr ""
 
 #. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/pk-plugin-install.c:550
+#: ../contrib/browser-plugin/pk-plugin-install.c:554
 msgid "Installing..."
 msgstr ""
 
 #. TRANSLATORS: downloading repo data so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:366
+#: ../contrib/command-not-found/pk-command-not-found.c:363
 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:370
+#: ../contrib/command-not-found/pk-command-not-found.c:367
 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:374
+#: ../contrib/command-not-found/pk-command-not-found.c:371
 msgid "Waiting for package manager lock."
 msgstr ""
 
 #. TRANSLATORS: loading package cache so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:378
+#: ../contrib/command-not-found/pk-command-not-found.c:375
 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:444
+#: ../contrib/command-not-found/pk-command-not-found.c:439
 msgid "Failed to search for file"
 msgstr ""
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
-#: ../contrib/command-not-found/pk-command-not-found.c:456
+#: ../contrib/command-not-found/pk-command-not-found.c:451
 msgid "Getting the list of files failed"
 msgstr ""
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:602
+#: ../contrib/command-not-found/pk-command-not-found.c:597
 msgid "Failed to launch:"
 msgstr ""
 
 #. TRANSLATORS: we failed to install the package
-#: ../contrib/command-not-found/pk-command-not-found.c:630
+#: ../contrib/command-not-found/pk-command-not-found.c:625
 msgid "Failed to install packages"
 msgstr ""
 
-#. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/command-not-found/pk-command-not-found.c:706
-msgid "PackageKit Command Not Found"
-msgstr ""
-
 #. TRANSLATORS: the prefix of all the output telling the user
 #. * why it's not executing. NOTE: this is lowercase to mimic
 #. * the style of bash itself -- apologies
-#: ../contrib/command-not-found/pk-command-not-found.c:741
+#: ../contrib/command-not-found/pk-command-not-found.c:723
 msgid "command not found"
 msgstr ""
 
 #. TRANSLATORS: tell the user what we think the command is
-#: ../contrib/command-not-found/pk-command-not-found.c:759
+#: ../contrib/command-not-found/pk-command-not-found.c:741
 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:773
+#: ../contrib/command-not-found/pk-command-not-found.c:755
 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:787
-#: ../contrib/command-not-found/pk-command-not-found.c:796
+#: ../contrib/command-not-found/pk-command-not-found.c:769
+#: ../contrib/command-not-found/pk-command-not-found.c:778
 msgid "Similar commands are:"
 msgstr ""
 
 #. TRANSLATORS: ask the user to choose a file to run
-#: ../contrib/command-not-found/pk-command-not-found.c:803
+#: ../contrib/command-not-found/pk-command-not-found.c:785
 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:821
+#: ../contrib/command-not-found/pk-command-not-found.c:803
 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:828
+#: ../contrib/command-not-found/pk-command-not-found.c:810
 #, 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:855
+#: ../contrib/command-not-found/pk-command-not-found.c:837
 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:865
+#: ../contrib/command-not-found/pk-command-not-found.c:847
 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:874
+#: ../contrib/command-not-found/pk-command-not-found.c:856
 msgid "Please choose a package to install"
 msgstr ""
 
@@ -1037,7 +1033,7 @@ msgstr ""
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
 #. TRANSLATORS: transaction state, installing packages
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:860
-#: ../lib/packagekit-glib2/pk-console-shared.c:296
+#: ../lib/packagekit-glib2/pk-console-shared.c:331
 #, c-format
 msgid "Installing packages"
 msgstr ""
@@ -1171,474 +1167,474 @@ msgstr ""
 msgid "PackageKit Service Pack"
 msgstr ""
 
-#: ../lib/packagekit-glib2/pk-console-shared.c:64
+#: ../lib/packagekit-glib2/pk-console-shared.c:65
 #, c-format
 msgid "Please enter a number from 1 to %i: "
 msgstr "กรุณาป้อนตัวเลขจาก 1 ถึง %i: "
 
 #. TRANSLATORS: more than one package could be found that matched, to follow
 #. is a list of possible packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:198
+#: ../lib/packagekit-glib2/pk-console-shared.c:233
 msgid "More than one package matches:"
 msgstr ""
 
 #. TRANSLATORS: This finds out which package in the list to use
-#: ../lib/packagekit-glib2/pk-console-shared.c:209
+#: ../lib/packagekit-glib2/pk-console-shared.c:244
 msgid "Please choose the correct package: "
 msgstr ""
 
 #. TRANSLATORS: This is when the transaction status is not known
-#: ../lib/packagekit-glib2/pk-console-shared.c:264
+#: ../lib/packagekit-glib2/pk-console-shared.c:299
 msgid "Unknown state"
 msgstr ""
 
 #. TRANSLATORS: transaction state, the daemon is in the process of starting
-#: ../lib/packagekit-glib2/pk-console-shared.c:268
+#: ../lib/packagekit-glib2/pk-console-shared.c:303
 msgid "Starting"
 msgstr ""
 
 #. TRANSLATORS: transaction state, the transaction is waiting for another to
 #. complete
-#: ../lib/packagekit-glib2/pk-console-shared.c:272
+#: ../lib/packagekit-glib2/pk-console-shared.c:307
 msgid "Waiting in queue"
 msgstr ""
 
 #. TRANSLATORS: transaction state, just started
-#: ../lib/packagekit-glib2/pk-console-shared.c:276
+#: ../lib/packagekit-glib2/pk-console-shared.c:311
 msgid "Running"
 msgstr ""
 
 #. TRANSLATORS: transaction state, is querying data
-#: ../lib/packagekit-glib2/pk-console-shared.c:280
+#: ../lib/packagekit-glib2/pk-console-shared.c:315
 msgid "Querying"
 msgstr ""
 
 #. TRANSLATORS: transaction state, getting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:284
+#: ../lib/packagekit-glib2/pk-console-shared.c:319
 msgid "Getting information"
 msgstr ""
 
 #. TRANSLATORS: transaction state, removing packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:288
+#: ../lib/packagekit-glib2/pk-console-shared.c:323
 msgid "Removing packages"
 msgstr ""
 
 #. TRANSLATORS: transaction state, downloading package files
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:292
-#: ../lib/packagekit-glib2/pk-console-shared.c:670
+#: ../lib/packagekit-glib2/pk-console-shared.c:327
+#: ../lib/packagekit-glib2/pk-console-shared.c:705
 msgid "Downloading packages"
 msgstr ""
 
 #. TRANSLATORS: transaction state, refreshing internal lists
-#: ../lib/packagekit-glib2/pk-console-shared.c:300
+#: ../lib/packagekit-glib2/pk-console-shared.c:335
 msgid "Refreshing software list"
 msgstr ""
 
 #. TRANSLATORS: transaction state, installing updates
-#: ../lib/packagekit-glib2/pk-console-shared.c:304
+#: ../lib/packagekit-glib2/pk-console-shared.c:339
 msgid "Installing updates"
 msgstr ""
 
 #. TRANSLATORS: transaction state, removing old packages, and cleaning config
 #. files
-#: ../lib/packagekit-glib2/pk-console-shared.c:308
+#: ../lib/packagekit-glib2/pk-console-shared.c:343
 msgid "Cleaning up packages"
 msgstr ""
 
 #. TRANSLATORS: transaction state, obsoleting old packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:312
+#: ../lib/packagekit-glib2/pk-console-shared.c:347
 msgid "Obsoleting packages"
 msgstr ""
 
 #. TRANSLATORS: transaction state, checking the transaction before we do it
-#: ../lib/packagekit-glib2/pk-console-shared.c:316
+#: ../lib/packagekit-glib2/pk-console-shared.c:351
 msgid "Resolving dependencies"
 msgstr ""
 
 #. TRANSLATORS: transaction state, checking if we have all the security keys
 #. for the operation
-#: ../lib/packagekit-glib2/pk-console-shared.c:320
+#: ../lib/packagekit-glib2/pk-console-shared.c:355
 msgid "Checking signatures"
 msgstr ""
 
 #. TRANSLATORS: transaction state, when we return to a previous system state
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:324
-#: ../lib/packagekit-glib2/pk-console-shared.c:630
+#: ../lib/packagekit-glib2/pk-console-shared.c:359
+#: ../lib/packagekit-glib2/pk-console-shared.c:665
 msgid "Rolling back"
 msgstr ""
 
 #. TRANSLATORS: transaction state, when we're doing a test transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:328
+#: ../lib/packagekit-glib2/pk-console-shared.c:363
 msgid "Testing changes"
 msgstr ""
 
 #. TRANSLATORS: transaction state, when we're writing to the system package
 #. database
-#: ../lib/packagekit-glib2/pk-console-shared.c:332
+#: ../lib/packagekit-glib2/pk-console-shared.c:367
 msgid "Committing changes"
 msgstr ""
 
 #. TRANSLATORS: transaction state, requesting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:336
+#: ../lib/packagekit-glib2/pk-console-shared.c:371
 msgid "Requesting data"
 msgstr ""
 
 #. TRANSLATORS: transaction state, all done!
-#: ../lib/packagekit-glib2/pk-console-shared.c:340
+#: ../lib/packagekit-glib2/pk-console-shared.c:375
 msgid "Finished"
 msgstr ""
 
 #. TRANSLATORS: transaction state, in the process of cancelling
-#: ../lib/packagekit-glib2/pk-console-shared.c:344
+#: ../lib/packagekit-glib2/pk-console-shared.c:379
 msgid "Cancelling"
 msgstr ""
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:348
+#: ../lib/packagekit-glib2/pk-console-shared.c:383
 msgid "Downloading repository information"
 msgstr ""
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:352
+#: ../lib/packagekit-glib2/pk-console-shared.c:387
 msgid "Downloading list of packages"
 msgstr ""
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:356
+#: ../lib/packagekit-glib2/pk-console-shared.c:391
 msgid "Downloading file lists"
 msgstr ""
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:360
+#: ../lib/packagekit-glib2/pk-console-shared.c:395
 msgid "Downloading lists of changes"
 msgstr ""
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:364
+#: ../lib/packagekit-glib2/pk-console-shared.c:399
 msgid "Downloading groups"
 msgstr ""
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:368
+#: ../lib/packagekit-glib2/pk-console-shared.c:403
 msgid "Downloading update information"
 msgstr ""
 
 #. TRANSLATORS: transaction state, repackaging delta files
-#: ../lib/packagekit-glib2/pk-console-shared.c:372
+#: ../lib/packagekit-glib2/pk-console-shared.c:407
 msgid "Repackaging files"
 msgstr ""
 
 #. TRANSLATORS: transaction state, loading databases
-#: ../lib/packagekit-glib2/pk-console-shared.c:376
+#: ../lib/packagekit-glib2/pk-console-shared.c:411
 msgid "Loading cache"
 msgstr ""
 
 #. TRANSLATORS: transaction state, scanning for running processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:380
+#: ../lib/packagekit-glib2/pk-console-shared.c:415
 msgid "Scanning applications"
 msgstr ""
 
 #. TRANSLATORS: transaction state, generating a list of packages installed on
 #. the system
-#: ../lib/packagekit-glib2/pk-console-shared.c:384
+#: ../lib/packagekit-glib2/pk-console-shared.c:419
 msgid "Generating package lists"
 msgstr ""
 
 #. TRANSLATORS: transaction state, when we're waiting for the native tools to
 #. exit
-#: ../lib/packagekit-glib2/pk-console-shared.c:388
+#: ../lib/packagekit-glib2/pk-console-shared.c:423
 msgid "Waiting for package manager lock"
 msgstr ""
 
 #. TRANSLATORS: transaction state, waiting for user to type in a password
-#: ../lib/packagekit-glib2/pk-console-shared.c:392
+#: ../lib/packagekit-glib2/pk-console-shared.c:427
 msgid "Waiting for authentication"
 msgstr ""
 
 #. TRANSLATORS: transaction state, we are updating the list of processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:396
+#: ../lib/packagekit-glib2/pk-console-shared.c:431
 msgid "Updating running applications"
 msgstr ""
 
 #. TRANSLATORS: transaction state, we are checking executable files currently
 #. in use
-#: ../lib/packagekit-glib2/pk-console-shared.c:400
+#: ../lib/packagekit-glib2/pk-console-shared.c:435
 msgid "Checking applications in use"
 msgstr ""
 
 #. TRANSLATORS: transaction state, we are checking for libraries currently in
 #. use
-#: ../lib/packagekit-glib2/pk-console-shared.c:404
+#: ../lib/packagekit-glib2/pk-console-shared.c:439
 msgid "Checking libraries in use"
 msgstr ""
 
 #. TRANSLATORS: transaction state, we are copying package files before or
 #. after the transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:408
+#: ../lib/packagekit-glib2/pk-console-shared.c:443
 msgid "Copying files"
 msgstr ""
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:426
+#: ../lib/packagekit-glib2/pk-console-shared.c:461
 msgid "Trivial"
 msgstr ""
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:430
+#: ../lib/packagekit-glib2/pk-console-shared.c:465
 msgid "Normal"
 msgstr ""
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:434
+#: ../lib/packagekit-glib2/pk-console-shared.c:469
 msgid "Important"
 msgstr ""
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:438
+#: ../lib/packagekit-glib2/pk-console-shared.c:473
 msgid "Security"
 msgstr ""
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:442
+#: ../lib/packagekit-glib2/pk-console-shared.c:477
 msgid "Bug fix "
 msgstr ""
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:446
+#: ../lib/packagekit-glib2/pk-console-shared.c:481
 msgid "Enhancement"
 msgstr ""
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:450
+#: ../lib/packagekit-glib2/pk-console-shared.c:485
 msgid "Blocked"
 msgstr ""
 
 #. TRANSLATORS: The state of a package
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:455
-#: ../lib/packagekit-glib2/pk-console-shared.c:528
+#: ../lib/packagekit-glib2/pk-console-shared.c:490
+#: ../lib/packagekit-glib2/pk-console-shared.c:563
 msgid "Installed"
 msgstr ""
 
 #. TRANSLATORS: The state of a package, i.e. not installed
-#: ../lib/packagekit-glib2/pk-console-shared.c:460
+#: ../lib/packagekit-glib2/pk-console-shared.c:495
 msgid "Available"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:478
+#: ../lib/packagekit-glib2/pk-console-shared.c:513
 msgid "Downloading"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:482
+#: ../lib/packagekit-glib2/pk-console-shared.c:517
 msgid "Updating"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:486
-#: ../lib/packagekit-glib2/pk-console-shared.c:606
+#: ../lib/packagekit-glib2/pk-console-shared.c:521
+#: ../lib/packagekit-glib2/pk-console-shared.c:641
 msgid "Installing"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:490
-#: ../lib/packagekit-glib2/pk-console-shared.c:602
+#: ../lib/packagekit-glib2/pk-console-shared.c:525
+#: ../lib/packagekit-glib2/pk-console-shared.c:637
 msgid "Removing"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:494
+#: ../lib/packagekit-glib2/pk-console-shared.c:529
 msgid "Cleaning up"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:498
+#: ../lib/packagekit-glib2/pk-console-shared.c:533
 msgid "Obsoleting"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:502
+#: ../lib/packagekit-glib2/pk-console-shared.c:537
 msgid "Reinstalling"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:520
+#: ../lib/packagekit-glib2/pk-console-shared.c:555
 msgid "Downloaded"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:532
+#: ../lib/packagekit-glib2/pk-console-shared.c:567
 msgid "Removed"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:536
+#: ../lib/packagekit-glib2/pk-console-shared.c:571
 msgid "Cleaned up"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:540
+#: ../lib/packagekit-glib2/pk-console-shared.c:575
 msgid "Obsoleted"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:544
+#: ../lib/packagekit-glib2/pk-console-shared.c:579
 msgid "Reinstalled"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:562
+#: ../lib/packagekit-glib2/pk-console-shared.c:597
 msgid "Unknown role type"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:566
+#: ../lib/packagekit-glib2/pk-console-shared.c:601
 msgid "Getting dependencies"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:570
+#: ../lib/packagekit-glib2/pk-console-shared.c:605
 msgid "Getting update details"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:574
+#: ../lib/packagekit-glib2/pk-console-shared.c:609
 msgid "Getting details"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:578
+#: ../lib/packagekit-glib2/pk-console-shared.c:613
 msgid "Getting requires"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:582
+#: ../lib/packagekit-glib2/pk-console-shared.c:617
 msgid "Getting updates"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:586
+#: ../lib/packagekit-glib2/pk-console-shared.c:621
 msgid "Searching by details"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:590
+#: ../lib/packagekit-glib2/pk-console-shared.c:625
 msgid "Searching by file"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:594
+#: ../lib/packagekit-glib2/pk-console-shared.c:629
 msgid "Searching groups"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:598
+#: ../lib/packagekit-glib2/pk-console-shared.c:633
 msgid "Searching by name"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:610
+#: ../lib/packagekit-glib2/pk-console-shared.c:645
 msgid "Installing files"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:614
+#: ../lib/packagekit-glib2/pk-console-shared.c:649
 msgid "Refreshing cache"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:618
+#: ../lib/packagekit-glib2/pk-console-shared.c:653
 msgid "Updating packages"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:622
+#: ../lib/packagekit-glib2/pk-console-shared.c:657
 msgid "Updating system"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:626
+#: ../lib/packagekit-glib2/pk-console-shared.c:661
 msgid "Canceling"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:634
+#: ../lib/packagekit-glib2/pk-console-shared.c:669
 msgid "Getting repositories"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:638
+#: ../lib/packagekit-glib2/pk-console-shared.c:673
 msgid "Enabling repository"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:642
+#: ../lib/packagekit-glib2/pk-console-shared.c:677
 msgid "Setting data"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:646
+#: ../lib/packagekit-glib2/pk-console-shared.c:681
 msgid "Resolving"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:650
+#: ../lib/packagekit-glib2/pk-console-shared.c:685
 msgid "Getting file list"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:654
+#: ../lib/packagekit-glib2/pk-console-shared.c:689
 msgid "Getting provides"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:658
+#: ../lib/packagekit-glib2/pk-console-shared.c:693
 msgid "Installing signature"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:662
+#: ../lib/packagekit-glib2/pk-console-shared.c:697
 msgid "Getting packages"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:666
+#: ../lib/packagekit-glib2/pk-console-shared.c:701
 msgid "Accepting EULA"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:674
+#: ../lib/packagekit-glib2/pk-console-shared.c:709
 msgid "Getting upgrades"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:678
+#: ../lib/packagekit-glib2/pk-console-shared.c:713
 msgid "Getting categories"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:682
+#: ../lib/packagekit-glib2/pk-console-shared.c:717
 msgid "Getting transactions"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:686
-#: ../lib/packagekit-glib2/pk-console-shared.c:690
+#: ../lib/packagekit-glib2/pk-console-shared.c:721
+#: ../lib/packagekit-glib2/pk-console-shared.c:725
 msgid "Simulating install"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:694
+#: ../lib/packagekit-glib2/pk-console-shared.c:729
 msgid "Simulating remove"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:698
+#: ../lib/packagekit-glib2/pk-console-shared.c:733
 msgid "Simulating update"
 msgstr ""
 
@@ -1788,13 +1784,19 @@ msgstr ""
 msgid "The following packages have to be downgraded:"
 msgstr ""
 
+#. TRANSLATORS: When processing, untrusted and non-verified packages may be
+#. encountered
+#: ../lib/packagekit-glib2/pk-task-text.c:325
+msgid "The following packages are untrusted:"
+msgstr ""
+
 #. TRANSLATORS: ask the user if the proposed changes are okay
-#: ../lib/packagekit-glib2/pk-task-text.c:380
+#: ../lib/packagekit-glib2/pk-task-text.c:385
 msgid "Proceed with changes?"
 msgstr ""
 
 #. TRANSLATORS: tell the user we didn't do anything
-#: ../lib/packagekit-glib2/pk-task-text.c:385
+#: ../lib/packagekit-glib2/pk-task-text.c:390
 msgid "The transaction did not proceed."
 msgstr ""
 
@@ -1998,96 +2000,68 @@ msgstr ""
 msgid "Upgrade System"
 msgstr ""
 
-#. TRANSLATORS: failed due to DBus security
-#: ../src/pk-main.c:91
-msgid "Startup failed due to security policies on this machine."
-msgstr "การเริ่มโปรแกรมไม่สำเร็จเนื่องจากนโยบายด้านความปลอดภัยบนเครื่องนี้"
-
-#. TRANSLATORS: only two ways this can fail...
-#: ../src/pk-main.c:93
-msgid "This can happen for two reasons:"
-msgstr "นี่อาจจะเกิดจากสองสาเหตุ:"
-
-#. TRANSLATORS: only allowed to be owned by root
-#: ../src/pk-main.c:95
-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:97
-msgid ""
-"The org.freedesktop.PackageKit.conf file is not installed in the system "
-"directory:"
-msgstr ""
-
 #. TRANSLATORS: a backend is the system package tool, e.g. yum, apt
-#: ../src/pk-main.c:223
+#: ../src/pk-main.c:149
 msgid "Packaging backend to use, e.g. dummy"
 msgstr "แบ็คเอนด์ตัวจัดการแพคเกจที่จะใช้ เช่น dummy"
 
 #. TRANSLATORS: if we should run in the background
-#: ../src/pk-main.c:226
+#: ../src/pk-main.c:152
 msgid "Daemonize and detach from the terminal"
 msgstr "เปลี่ยนเป็นดีมอนและแยกตัวออกจากเทอร์มินัล"
 
 #. TRANSLATORS: if we should not monitor how long we are inactive for
-#: ../src/pk-main.c:229
+#: ../src/pk-main.c:155
 msgid "Disable the idle timer"
 msgstr "ปิดไทเมอร์ที่ไม่ใช้งาน"
 
 #. TRANSLATORS: show version
-#: ../src/pk-main.c:232
+#: ../src/pk-main.c:158
 msgid "Show version and exit"
 msgstr "แสดงรุ่นแล้วออก"
 
 #. TRANSLATORS: exit after we've started up, used for user profiling
-#: ../src/pk-main.c:235
+#: ../src/pk-main.c:161
 msgid "Exit after a small delay"
 msgstr "ออกหลังจากหน่วงเวลาเล็กน้อย"
 
 #. TRANSLATORS: exit straight away, used for automatic profiling
-#: ../src/pk-main.c:238
+#: ../src/pk-main.c:164
 msgid "Exit after the engine has loaded"
 msgstr "ออกหลังจาก engine ถูกเรียกแล้ว"
 
+#. TRANSLATORS: don't unset environment variables, used for debugging
+#: ../src/pk-main.c:167
+msgid "Don't clear environment on startup"
+msgstr ""
+
 #. TRANSLATORS: describing the service that is running
-#: ../src/pk-main.c:253
+#: ../src/pk-main.c:179
 msgid "PackageKit service"
 msgstr "บริการ PackageKit"
 
-#. TRANSLATORS: fatal error, dbus is not running
-#: ../src/pk-main.c:298
-msgid "Cannot connect to the system bus"
-msgstr "ไม่สามารถติดต่อกับบัสระบบ"
-
-#: ../src/pk-main.c:344
+#: ../src/pk-main.c:253
 msgid "Failed to load any of the specified backends:"
 msgstr ""
 
-#. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error
-#. follows
-#: ../src/pk-main.c:358
-msgid "Error trying to start:"
-msgstr "เกิดข้อผิดพลาดขณะจะเริ่ม:"
-
 #. TRANSLATORS: is not GPG signed
-#: ../src/pk-transaction.c:2611 ../src/pk-transaction.c:2618
+#: ../src/pk-transaction.c:2696
 msgid "The software is not from a trusted source."
 msgstr ""
 
-#: ../src/pk-transaction.c:2623
+#: ../src/pk-transaction.c:2704
 msgid "Do not update this package unless you are sure it is safe to do so."
 msgstr ""
 
-#: ../src/pk-transaction.c:2624
+#: ../src/pk-transaction.c:2705
 msgid "Do not update these packages unless you are sure it is safe to do so."
 msgstr ""
 
-#: ../src/pk-transaction.c:2634
+#: ../src/pk-transaction.c:2715
 msgid "Do not install this package unless you are sure it is safe to do so."
 msgstr ""
 
-#: ../src/pk-transaction.c:2635
+#: ../src/pk-transaction.c:2716
 msgid "Do not install these packages unless you are sure it is safe to do so."
 msgstr ""
 
diff --git a/po/tr.po b/po/tr.po
index 478fc72..0a39431 100644
--- a/po/tr.po
+++ b/po/tr.po
@@ -2,14 +2,15 @@
 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
 # This file is distributed under the same license as the PACKAGE package.
 # 
-# Richard Hughes <richard at hughsie.com>, 2011
+# Translators:
+# Richard Hughes <richard at hughsie.com>, 2011.
 msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-04 10:50+0100\n"
-"PO-Revision-Date: 2011-05-04 09:56+0000\n"
-"Last-Translator: hughsie <richard at hughsie.com>\n"
+"POT-Creation-Date: 2011-11-10 19:50+0000\n"
+"PO-Revision-Date: 2011-11-10 19:50+0000\n"
+"Last-Translator: Richard Hughes <richard at hughsie.com>\n"
 "Language-Team: Turkish (http://www.transifex.net/projects/p/freedesktop/team/tr/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -195,7 +196,7 @@ msgstr ""
 
 #. TRANSLATORS: details about the update, date the update was updated
 #. TRANSLATORS: The action of the package, in past tense
-#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:524
+#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:559
 msgid "Updated"
 msgstr ""
 
@@ -285,7 +286,7 @@ msgstr ""
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
 #: ../client/pk-console.c:704
-#: ../contrib/command-not-found/pk-command-not-found.c:639
+#: ../contrib/command-not-found/pk-command-not-found.c:634
 msgid "The transaction failed"
 msgstr ""
 
@@ -336,21 +337,21 @@ msgstr ""
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:866
+#: ../client/pk-console.c:871
 #, c-format
 msgid "This tool could not find any available package: %s"
 msgstr ""
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:894
+#: ../client/pk-console.c:899
 #, c-format
 msgid "This tool could not find the installed package: %s"
 msgstr ""
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:922 ../client/pk-console.c:950
+#: ../client/pk-console.c:927 ../client/pk-console.c:955
 #, c-format
 msgid "This tool could not find the package: %s"
 msgstr ""
@@ -363,223 +364,223 @@ msgstr ""
 #. detailed error follows
 #. TRANSLATORS: The package name was not found in any software sources. The
 #. detailed error follows
-#: ../client/pk-console.c:978 ../client/pk-console.c:1006
-#: ../client/pk-console.c:1034 ../client/pk-console.c:1062
-#: ../client/pk-console.c:1090
+#: ../client/pk-console.c:983 ../client/pk-console.c:1011
+#: ../client/pk-console.c:1039 ../client/pk-console.c:1067
+#: ../client/pk-console.c:1095
 #, c-format
 msgid "This tool could not find all the packages: %s"
 msgstr ""
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek
 #. without a paddle
-#: ../client/pk-console.c:1119
+#: ../client/pk-console.c:1124
 msgid "The daemon crashed mid-transaction!"
 msgstr ""
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1153
+#: ../client/pk-console.c:1158
 msgid "PackageKit Console Interface"
 msgstr "PackageKit Konsol Arayüzü"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1155
+#: ../client/pk-console.c:1160
 msgid "Subcommands:"
 msgstr ""
 
 #. TRANSLATORS: we keep a database updated with the time that an action was
 #. last executed
-#: ../client/pk-console.c:1235
+#: ../client/pk-console.c:1240
 msgid "Failed to get the time since this action was last completed"
 msgstr ""
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1277 ../client/pk-monitor.c:371
+#: ../client/pk-console.c:1282 ../client/pk-monitor.c:371
 msgid "Show the program version and exit"
 msgstr "Uygulama versiyonunu göster ve çık"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1280
+#: ../client/pk-console.c:1285
 msgid "Set the filter, e.g. installed"
 msgstr ""
 
 #. TRANSLATORS: command line argument, use a non-standard install prefix
-#: ../client/pk-console.c:1283
+#: ../client/pk-console.c:1288
 msgid "Set the install root, e.g. '/' or '/mnt/ltsp'"
 msgstr ""
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1286
+#: ../client/pk-console.c:1291
 msgid "Exit without waiting for actions to complete"
 msgstr "İşlemlerin bitmesini beklemeden çık"
 
 #. command line argument, do we ask questions
-#: ../client/pk-console.c:1289
+#: ../client/pk-console.c:1294
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:525
 msgid "Install the packages without asking for confirmation"
 msgstr ""
 
 #. TRANSLATORS: command line argument, this command is not a priority
-#: ../client/pk-console.c:1292
+#: ../client/pk-console.c:1297
 msgid "Run the command using idle network bandwidth and also using less power"
 msgstr ""
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1295
+#: ../client/pk-console.c:1300
 msgid ""
 "Print to screen a machine readable output, rather than using animated "
 "widgets"
 msgstr ""
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1298
+#: ../client/pk-console.c:1303
 msgid "The maximum metadata cache age. Use -1 for 'never'."
 msgstr ""
 
 #. TRANSLATORS: command line argument, --help
-#: ../client/pk-console.c:1301
+#: ../client/pk-console.c:1306
 msgid "Show help options."
 msgstr ""
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1331
+#: ../client/pk-console.c:1336
 msgid "Failed to parse command line"
 msgstr ""
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1341
+#: ../client/pk-console.c:1346
 msgid "Failed to contact PackageKit"
 msgstr ""
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1394
+#: ../client/pk-console.c:1399
 msgid "The proxy could not be set"
 msgstr ""
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1406
+#: ../client/pk-console.c:1411
 msgid "The install root could not be set"
 msgstr ""
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1418
+#: ../client/pk-console.c:1423
 msgid "The filter specified was invalid"
 msgstr ""
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1437
+#: ../client/pk-console.c:1442
 msgid "A search type is required, e.g. name"
 msgstr ""
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1444 ../client/pk-console.c:1456
-#: ../client/pk-console.c:1468 ../client/pk-console.c:1480
+#: ../client/pk-console.c:1449 ../client/pk-console.c:1461
+#: ../client/pk-console.c:1473 ../client/pk-console.c:1485
 msgid "A search term is required"
 msgstr ""
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1490
+#: ../client/pk-console.c:1495
 msgid "Invalid search type"
 msgstr ""
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1496
+#: ../client/pk-console.c:1501
 msgid "A package name to install is required"
 msgstr ""
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1505
+#: ../client/pk-console.c:1510
 msgid "A filename to install is required"
 msgstr ""
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1516
+#: ../client/pk-console.c:1521
 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:1527
+#: ../client/pk-console.c:1532
 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:1536
+#: ../client/pk-console.c:1541
 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:1543
+#: ../client/pk-console.c:1548
 msgid "Directory not found"
 msgstr ""
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1552
+#: ../client/pk-console.c:1557
 msgid "A licence identifier (eula-id) is required"
 msgstr ""
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1563
+#: ../client/pk-console.c:1568
 msgid "A transaction identifier (tid) is required"
 msgstr ""
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:1584
+#: ../client/pk-console.c:1589
 msgid "A package name to resolve is required"
 msgstr ""
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:1595 ../client/pk-console.c:1606
+#: ../client/pk-console.c:1600 ../client/pk-console.c:1611
 msgid "A repository name is required"
 msgstr ""
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:1617
+#: ../client/pk-console.c:1622
 msgid "A repo name, parameter and value are required"
 msgstr ""
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:1634
+#: ../client/pk-console.c:1639
 msgid "An action, e.g. 'update-system' is required"
 msgstr ""
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:1641
+#: ../client/pk-console.c:1646
 msgid "A correct role is required"
 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:1651 ../client/pk-console.c:1665
-#: ../client/pk-console.c:1674 ../client/pk-console.c:1694
-#: ../client/pk-console.c:1703 ../client/pk-generate-pack.c:314
+#: ../client/pk-console.c:1656 ../client/pk-console.c:1670
+#: ../client/pk-console.c:1679 ../client/pk-console.c:1699
+#: ../client/pk-console.c:1708 ../client/pk-generate-pack.c:314
 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:1683
+#: ../client/pk-console.c:1688
 msgid "A package provide string is required"
 msgstr ""
 
 #. TRANSLATORS: The user did not provide a distro name
-#: ../client/pk-console.c:1727
+#: ../client/pk-console.c:1732
 msgid "A distribution name is required"
 msgstr ""
 
 #. TRANSLATORS: The user did not provide an upgrade type
-#: ../client/pk-console.c:1733
+#: ../client/pk-console.c:1738
 msgid "An upgrade type is required, e.g. 'minimal', 'default' or 'complete'"
 msgstr ""
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command
 #. line
-#: ../client/pk-console.c:1783
+#: ../client/pk-console.c:1788
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr ""
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:1793
+#: ../client/pk-console.c:1798
 msgid "Command failed"
 msgstr ""
 
@@ -714,159 +715,154 @@ msgid "PackageKit Monitor"
 msgstr ""
 
 #. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/pk-plugin-install.c:499
+#: ../contrib/browser-plugin/pk-plugin-install.c:503
 msgid "Getting package information..."
 msgstr ""
 
 #. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/pk-plugin-install.c:505
+#: ../contrib/browser-plugin/pk-plugin-install.c:509
 #, c-format
 msgid "Run %s"
 msgstr ""
 
 #. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:511
+#: ../contrib/browser-plugin/pk-plugin-install.c:515
 msgid "Installed version"
 msgstr ""
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:519
+#: ../contrib/browser-plugin/pk-plugin-install.c:523
 #, c-format
 msgid "Run version %s now"
 msgstr ""
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:525
+#: ../contrib/browser-plugin/pk-plugin-install.c:529
 msgid "Run now"
 msgstr ""
 
 #. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:531
+#: ../contrib/browser-plugin/pk-plugin-install.c:535
 #, c-format
 msgid "Update to version %s"
 msgstr ""
 
 #. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:537
+#: ../contrib/browser-plugin/pk-plugin-install.c:541
 #, c-format
 msgid "Install %s now"
 msgstr ""
 
 #. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:540
+#: ../contrib/browser-plugin/pk-plugin-install.c:544
 msgid "Version"
 msgstr ""
 
 #. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/pk-plugin-install.c:545
+#: ../contrib/browser-plugin/pk-plugin-install.c:549
 msgid "No packages found for your system"
 msgstr ""
 
 #. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/pk-plugin-install.c:550
+#: ../contrib/browser-plugin/pk-plugin-install.c:554
 msgid "Installing..."
 msgstr ""
 
 #. TRANSLATORS: downloading repo data so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:366
+#: ../contrib/command-not-found/pk-command-not-found.c:363
 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:370
+#: ../contrib/command-not-found/pk-command-not-found.c:367
 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:374
+#: ../contrib/command-not-found/pk-command-not-found.c:371
 msgid "Waiting for package manager lock."
 msgstr ""
 
 #. TRANSLATORS: loading package cache so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:378
+#: ../contrib/command-not-found/pk-command-not-found.c:375
 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:444
+#: ../contrib/command-not-found/pk-command-not-found.c:439
 msgid "Failed to search for file"
 msgstr ""
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
-#: ../contrib/command-not-found/pk-command-not-found.c:456
+#: ../contrib/command-not-found/pk-command-not-found.c:451
 msgid "Getting the list of files failed"
 msgstr ""
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:602
+#: ../contrib/command-not-found/pk-command-not-found.c:597
 msgid "Failed to launch:"
 msgstr ""
 
 #. TRANSLATORS: we failed to install the package
-#: ../contrib/command-not-found/pk-command-not-found.c:630
+#: ../contrib/command-not-found/pk-command-not-found.c:625
 msgid "Failed to install packages"
 msgstr ""
 
-#. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/command-not-found/pk-command-not-found.c:706
-msgid "PackageKit Command Not Found"
-msgstr ""
-
 #. TRANSLATORS: the prefix of all the output telling the user
 #. * why it's not executing. NOTE: this is lowercase to mimic
 #. * the style of bash itself -- apologies
-#: ../contrib/command-not-found/pk-command-not-found.c:741
+#: ../contrib/command-not-found/pk-command-not-found.c:723
 msgid "command not found"
 msgstr ""
 
 #. TRANSLATORS: tell the user what we think the command is
-#: ../contrib/command-not-found/pk-command-not-found.c:759
+#: ../contrib/command-not-found/pk-command-not-found.c:741
 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:773
+#: ../contrib/command-not-found/pk-command-not-found.c:755
 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:787
-#: ../contrib/command-not-found/pk-command-not-found.c:796
+#: ../contrib/command-not-found/pk-command-not-found.c:769
+#: ../contrib/command-not-found/pk-command-not-found.c:778
 msgid "Similar commands are:"
 msgstr ""
 
 #. TRANSLATORS: ask the user to choose a file to run
-#: ../contrib/command-not-found/pk-command-not-found.c:803
+#: ../contrib/command-not-found/pk-command-not-found.c:785
 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:821
+#: ../contrib/command-not-found/pk-command-not-found.c:803
 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:828
+#: ../contrib/command-not-found/pk-command-not-found.c:810
 #, 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:855
+#: ../contrib/command-not-found/pk-command-not-found.c:837
 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:865
+#: ../contrib/command-not-found/pk-command-not-found.c:847
 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:874
+#: ../contrib/command-not-found/pk-command-not-found.c:856
 msgid "Please choose a package to install"
 msgstr ""
 
@@ -1040,7 +1036,7 @@ msgstr ""
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
 #. TRANSLATORS: transaction state, installing packages
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:860
-#: ../lib/packagekit-glib2/pk-console-shared.c:296
+#: ../lib/packagekit-glib2/pk-console-shared.c:331
 #, c-format
 msgid "Installing packages"
 msgstr ""
@@ -1174,474 +1170,474 @@ msgstr ""
 msgid "PackageKit Service Pack"
 msgstr ""
 
-#: ../lib/packagekit-glib2/pk-console-shared.c:64
+#: ../lib/packagekit-glib2/pk-console-shared.c:65
 #, c-format
 msgid "Please enter a number from 1 to %i: "
 msgstr ""
 
 #. TRANSLATORS: more than one package could be found that matched, to follow
 #. is a list of possible packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:198
+#: ../lib/packagekit-glib2/pk-console-shared.c:233
 msgid "More than one package matches:"
 msgstr ""
 
 #. TRANSLATORS: This finds out which package in the list to use
-#: ../lib/packagekit-glib2/pk-console-shared.c:209
+#: ../lib/packagekit-glib2/pk-console-shared.c:244
 msgid "Please choose the correct package: "
 msgstr ""
 
 #. TRANSLATORS: This is when the transaction status is not known
-#: ../lib/packagekit-glib2/pk-console-shared.c:264
+#: ../lib/packagekit-glib2/pk-console-shared.c:299
 msgid "Unknown state"
 msgstr ""
 
 #. TRANSLATORS: transaction state, the daemon is in the process of starting
-#: ../lib/packagekit-glib2/pk-console-shared.c:268
+#: ../lib/packagekit-glib2/pk-console-shared.c:303
 msgid "Starting"
 msgstr ""
 
 #. TRANSLATORS: transaction state, the transaction is waiting for another to
 #. complete
-#: ../lib/packagekit-glib2/pk-console-shared.c:272
+#: ../lib/packagekit-glib2/pk-console-shared.c:307
 msgid "Waiting in queue"
 msgstr ""
 
 #. TRANSLATORS: transaction state, just started
-#: ../lib/packagekit-glib2/pk-console-shared.c:276
+#: ../lib/packagekit-glib2/pk-console-shared.c:311
 msgid "Running"
 msgstr ""
 
 #. TRANSLATORS: transaction state, is querying data
-#: ../lib/packagekit-glib2/pk-console-shared.c:280
+#: ../lib/packagekit-glib2/pk-console-shared.c:315
 msgid "Querying"
 msgstr ""
 
 #. TRANSLATORS: transaction state, getting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:284
+#: ../lib/packagekit-glib2/pk-console-shared.c:319
 msgid "Getting information"
 msgstr ""
 
 #. TRANSLATORS: transaction state, removing packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:288
+#: ../lib/packagekit-glib2/pk-console-shared.c:323
 msgid "Removing packages"
 msgstr ""
 
 #. TRANSLATORS: transaction state, downloading package files
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:292
-#: ../lib/packagekit-glib2/pk-console-shared.c:670
+#: ../lib/packagekit-glib2/pk-console-shared.c:327
+#: ../lib/packagekit-glib2/pk-console-shared.c:705
 msgid "Downloading packages"
 msgstr ""
 
 #. TRANSLATORS: transaction state, refreshing internal lists
-#: ../lib/packagekit-glib2/pk-console-shared.c:300
+#: ../lib/packagekit-glib2/pk-console-shared.c:335
 msgid "Refreshing software list"
 msgstr ""
 
 #. TRANSLATORS: transaction state, installing updates
-#: ../lib/packagekit-glib2/pk-console-shared.c:304
+#: ../lib/packagekit-glib2/pk-console-shared.c:339
 msgid "Installing updates"
 msgstr ""
 
 #. TRANSLATORS: transaction state, removing old packages, and cleaning config
 #. files
-#: ../lib/packagekit-glib2/pk-console-shared.c:308
+#: ../lib/packagekit-glib2/pk-console-shared.c:343
 msgid "Cleaning up packages"
 msgstr ""
 
 #. TRANSLATORS: transaction state, obsoleting old packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:312
+#: ../lib/packagekit-glib2/pk-console-shared.c:347
 msgid "Obsoleting packages"
 msgstr ""
 
 #. TRANSLATORS: transaction state, checking the transaction before we do it
-#: ../lib/packagekit-glib2/pk-console-shared.c:316
+#: ../lib/packagekit-glib2/pk-console-shared.c:351
 msgid "Resolving dependencies"
 msgstr ""
 
 #. TRANSLATORS: transaction state, checking if we have all the security keys
 #. for the operation
-#: ../lib/packagekit-glib2/pk-console-shared.c:320
+#: ../lib/packagekit-glib2/pk-console-shared.c:355
 msgid "Checking signatures"
 msgstr ""
 
 #. TRANSLATORS: transaction state, when we return to a previous system state
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:324
-#: ../lib/packagekit-glib2/pk-console-shared.c:630
+#: ../lib/packagekit-glib2/pk-console-shared.c:359
+#: ../lib/packagekit-glib2/pk-console-shared.c:665
 msgid "Rolling back"
 msgstr ""
 
 #. TRANSLATORS: transaction state, when we're doing a test transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:328
+#: ../lib/packagekit-glib2/pk-console-shared.c:363
 msgid "Testing changes"
 msgstr ""
 
 #. TRANSLATORS: transaction state, when we're writing to the system package
 #. database
-#: ../lib/packagekit-glib2/pk-console-shared.c:332
+#: ../lib/packagekit-glib2/pk-console-shared.c:367
 msgid "Committing changes"
 msgstr ""
 
 #. TRANSLATORS: transaction state, requesting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:336
+#: ../lib/packagekit-glib2/pk-console-shared.c:371
 msgid "Requesting data"
 msgstr ""
 
 #. TRANSLATORS: transaction state, all done!
-#: ../lib/packagekit-glib2/pk-console-shared.c:340
+#: ../lib/packagekit-glib2/pk-console-shared.c:375
 msgid "Finished"
 msgstr ""
 
 #. TRANSLATORS: transaction state, in the process of cancelling
-#: ../lib/packagekit-glib2/pk-console-shared.c:344
+#: ../lib/packagekit-glib2/pk-console-shared.c:379
 msgid "Cancelling"
 msgstr ""
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:348
+#: ../lib/packagekit-glib2/pk-console-shared.c:383
 msgid "Downloading repository information"
 msgstr ""
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:352
+#: ../lib/packagekit-glib2/pk-console-shared.c:387
 msgid "Downloading list of packages"
 msgstr ""
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:356
+#: ../lib/packagekit-glib2/pk-console-shared.c:391
 msgid "Downloading file lists"
 msgstr ""
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:360
+#: ../lib/packagekit-glib2/pk-console-shared.c:395
 msgid "Downloading lists of changes"
 msgstr ""
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:364
+#: ../lib/packagekit-glib2/pk-console-shared.c:399
 msgid "Downloading groups"
 msgstr ""
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:368
+#: ../lib/packagekit-glib2/pk-console-shared.c:403
 msgid "Downloading update information"
 msgstr ""
 
 #. TRANSLATORS: transaction state, repackaging delta files
-#: ../lib/packagekit-glib2/pk-console-shared.c:372
+#: ../lib/packagekit-glib2/pk-console-shared.c:407
 msgid "Repackaging files"
 msgstr ""
 
 #. TRANSLATORS: transaction state, loading databases
-#: ../lib/packagekit-glib2/pk-console-shared.c:376
+#: ../lib/packagekit-glib2/pk-console-shared.c:411
 msgid "Loading cache"
 msgstr ""
 
 #. TRANSLATORS: transaction state, scanning for running processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:380
+#: ../lib/packagekit-glib2/pk-console-shared.c:415
 msgid "Scanning applications"
 msgstr ""
 
 #. TRANSLATORS: transaction state, generating a list of packages installed on
 #. the system
-#: ../lib/packagekit-glib2/pk-console-shared.c:384
+#: ../lib/packagekit-glib2/pk-console-shared.c:419
 msgid "Generating package lists"
 msgstr ""
 
 #. TRANSLATORS: transaction state, when we're waiting for the native tools to
 #. exit
-#: ../lib/packagekit-glib2/pk-console-shared.c:388
+#: ../lib/packagekit-glib2/pk-console-shared.c:423
 msgid "Waiting for package manager lock"
 msgstr ""
 
 #. TRANSLATORS: transaction state, waiting for user to type in a password
-#: ../lib/packagekit-glib2/pk-console-shared.c:392
+#: ../lib/packagekit-glib2/pk-console-shared.c:427
 msgid "Waiting for authentication"
 msgstr ""
 
 #. TRANSLATORS: transaction state, we are updating the list of processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:396
+#: ../lib/packagekit-glib2/pk-console-shared.c:431
 msgid "Updating running applications"
 msgstr ""
 
 #. TRANSLATORS: transaction state, we are checking executable files currently
 #. in use
-#: ../lib/packagekit-glib2/pk-console-shared.c:400
+#: ../lib/packagekit-glib2/pk-console-shared.c:435
 msgid "Checking applications in use"
 msgstr ""
 
 #. TRANSLATORS: transaction state, we are checking for libraries currently in
 #. use
-#: ../lib/packagekit-glib2/pk-console-shared.c:404
+#: ../lib/packagekit-glib2/pk-console-shared.c:439
 msgid "Checking libraries in use"
 msgstr ""
 
 #. TRANSLATORS: transaction state, we are copying package files before or
 #. after the transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:408
+#: ../lib/packagekit-glib2/pk-console-shared.c:443
 msgid "Copying files"
 msgstr ""
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:426
+#: ../lib/packagekit-glib2/pk-console-shared.c:461
 msgid "Trivial"
 msgstr ""
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:430
+#: ../lib/packagekit-glib2/pk-console-shared.c:465
 msgid "Normal"
 msgstr ""
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:434
+#: ../lib/packagekit-glib2/pk-console-shared.c:469
 msgid "Important"
 msgstr ""
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:438
+#: ../lib/packagekit-glib2/pk-console-shared.c:473
 msgid "Security"
 msgstr ""
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:442
+#: ../lib/packagekit-glib2/pk-console-shared.c:477
 msgid "Bug fix "
 msgstr ""
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:446
+#: ../lib/packagekit-glib2/pk-console-shared.c:481
 msgid "Enhancement"
 msgstr ""
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:450
+#: ../lib/packagekit-glib2/pk-console-shared.c:485
 msgid "Blocked"
 msgstr ""
 
 #. TRANSLATORS: The state of a package
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:455
-#: ../lib/packagekit-glib2/pk-console-shared.c:528
+#: ../lib/packagekit-glib2/pk-console-shared.c:490
+#: ../lib/packagekit-glib2/pk-console-shared.c:563
 msgid "Installed"
 msgstr ""
 
 #. TRANSLATORS: The state of a package, i.e. not installed
-#: ../lib/packagekit-glib2/pk-console-shared.c:460
+#: ../lib/packagekit-glib2/pk-console-shared.c:495
 msgid "Available"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:478
+#: ../lib/packagekit-glib2/pk-console-shared.c:513
 msgid "Downloading"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:482
+#: ../lib/packagekit-glib2/pk-console-shared.c:517
 msgid "Updating"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:486
-#: ../lib/packagekit-glib2/pk-console-shared.c:606
+#: ../lib/packagekit-glib2/pk-console-shared.c:521
+#: ../lib/packagekit-glib2/pk-console-shared.c:641
 msgid "Installing"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:490
-#: ../lib/packagekit-glib2/pk-console-shared.c:602
+#: ../lib/packagekit-glib2/pk-console-shared.c:525
+#: ../lib/packagekit-glib2/pk-console-shared.c:637
 msgid "Removing"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:494
+#: ../lib/packagekit-glib2/pk-console-shared.c:529
 msgid "Cleaning up"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:498
+#: ../lib/packagekit-glib2/pk-console-shared.c:533
 msgid "Obsoleting"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:502
+#: ../lib/packagekit-glib2/pk-console-shared.c:537
 msgid "Reinstalling"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:520
+#: ../lib/packagekit-glib2/pk-console-shared.c:555
 msgid "Downloaded"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:532
+#: ../lib/packagekit-glib2/pk-console-shared.c:567
 msgid "Removed"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:536
+#: ../lib/packagekit-glib2/pk-console-shared.c:571
 msgid "Cleaned up"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:540
+#: ../lib/packagekit-glib2/pk-console-shared.c:575
 msgid "Obsoleted"
 msgstr ""
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:544
+#: ../lib/packagekit-glib2/pk-console-shared.c:579
 msgid "Reinstalled"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:562
+#: ../lib/packagekit-glib2/pk-console-shared.c:597
 msgid "Unknown role type"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:566
+#: ../lib/packagekit-glib2/pk-console-shared.c:601
 msgid "Getting dependencies"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:570
+#: ../lib/packagekit-glib2/pk-console-shared.c:605
 msgid "Getting update details"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:574
+#: ../lib/packagekit-glib2/pk-console-shared.c:609
 msgid "Getting details"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:578
+#: ../lib/packagekit-glib2/pk-console-shared.c:613
 msgid "Getting requires"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:582
+#: ../lib/packagekit-glib2/pk-console-shared.c:617
 msgid "Getting updates"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:586
+#: ../lib/packagekit-glib2/pk-console-shared.c:621
 msgid "Searching by details"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:590
+#: ../lib/packagekit-glib2/pk-console-shared.c:625
 msgid "Searching by file"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:594
+#: ../lib/packagekit-glib2/pk-console-shared.c:629
 msgid "Searching groups"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:598
+#: ../lib/packagekit-glib2/pk-console-shared.c:633
 msgid "Searching by name"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:610
+#: ../lib/packagekit-glib2/pk-console-shared.c:645
 msgid "Installing files"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:614
+#: ../lib/packagekit-glib2/pk-console-shared.c:649
 msgid "Refreshing cache"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:618
+#: ../lib/packagekit-glib2/pk-console-shared.c:653
 msgid "Updating packages"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:622
+#: ../lib/packagekit-glib2/pk-console-shared.c:657
 msgid "Updating system"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:626
+#: ../lib/packagekit-glib2/pk-console-shared.c:661
 msgid "Canceling"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:634
+#: ../lib/packagekit-glib2/pk-console-shared.c:669
 msgid "Getting repositories"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:638
+#: ../lib/packagekit-glib2/pk-console-shared.c:673
 msgid "Enabling repository"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:642
+#: ../lib/packagekit-glib2/pk-console-shared.c:677
 msgid "Setting data"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:646
+#: ../lib/packagekit-glib2/pk-console-shared.c:681
 msgid "Resolving"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:650
+#: ../lib/packagekit-glib2/pk-console-shared.c:685
 msgid "Getting file list"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:654
+#: ../lib/packagekit-glib2/pk-console-shared.c:689
 msgid "Getting provides"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:658
+#: ../lib/packagekit-glib2/pk-console-shared.c:693
 msgid "Installing signature"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:662
+#: ../lib/packagekit-glib2/pk-console-shared.c:697
 msgid "Getting packages"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:666
+#: ../lib/packagekit-glib2/pk-console-shared.c:701
 msgid "Accepting EULA"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:674
+#: ../lib/packagekit-glib2/pk-console-shared.c:709
 msgid "Getting upgrades"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:678
+#: ../lib/packagekit-glib2/pk-console-shared.c:713
 msgid "Getting categories"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:682
+#: ../lib/packagekit-glib2/pk-console-shared.c:717
 msgid "Getting transactions"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:686
-#: ../lib/packagekit-glib2/pk-console-shared.c:690
+#: ../lib/packagekit-glib2/pk-console-shared.c:721
+#: ../lib/packagekit-glib2/pk-console-shared.c:725
 msgid "Simulating install"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:694
+#: ../lib/packagekit-glib2/pk-console-shared.c:729
 msgid "Simulating remove"
 msgstr ""
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:698
+#: ../lib/packagekit-glib2/pk-console-shared.c:733
 msgid "Simulating update"
 msgstr ""
 
@@ -1791,13 +1787,19 @@ msgstr ""
 msgid "The following packages have to be downgraded:"
 msgstr ""
 
+#. TRANSLATORS: When processing, untrusted and non-verified packages may be
+#. encountered
+#: ../lib/packagekit-glib2/pk-task-text.c:325
+msgid "The following packages are untrusted:"
+msgstr ""
+
 #. TRANSLATORS: ask the user if the proposed changes are okay
-#: ../lib/packagekit-glib2/pk-task-text.c:380
+#: ../lib/packagekit-glib2/pk-task-text.c:385
 msgid "Proceed with changes?"
 msgstr ""
 
 #. TRANSLATORS: tell the user we didn't do anything
-#: ../lib/packagekit-glib2/pk-task-text.c:385
+#: ../lib/packagekit-glib2/pk-task-text.c:390
 msgid "The transaction did not proceed."
 msgstr ""
 
@@ -2001,96 +2003,68 @@ msgstr ""
 msgid "Upgrade System"
 msgstr ""
 
-#. TRANSLATORS: failed due to DBus security
-#: ../src/pk-main.c:91
-msgid "Startup failed due to security policies on this machine."
-msgstr ""
-
-#. TRANSLATORS: only two ways this can fail...
-#: ../src/pk-main.c:93
-msgid "This can happen for two reasons:"
-msgstr ""
-
-#. TRANSLATORS: only allowed to be owned by root
-#: ../src/pk-main.c:95
-msgid "The correct user is not launching the executable (usually root)"
-msgstr ""
-
-#. TRANSLATORS: or we are installed in a prefix
-#: ../src/pk-main.c:97
-msgid ""
-"The org.freedesktop.PackageKit.conf file is not installed in the system "
-"directory:"
-msgstr ""
-
 #. TRANSLATORS: a backend is the system package tool, e.g. yum, apt
-#: ../src/pk-main.c:223
+#: ../src/pk-main.c:149
 msgid "Packaging backend to use, e.g. dummy"
 msgstr ""
 
 #. TRANSLATORS: if we should run in the background
-#: ../src/pk-main.c:226
+#: ../src/pk-main.c:152
 msgid "Daemonize and detach from the terminal"
 msgstr ""
 
 #. TRANSLATORS: if we should not monitor how long we are inactive for
-#: ../src/pk-main.c:229
+#: ../src/pk-main.c:155
 msgid "Disable the idle timer"
 msgstr ""
 
 #. TRANSLATORS: show version
-#: ../src/pk-main.c:232
+#: ../src/pk-main.c:158
 msgid "Show version and exit"
 msgstr ""
 
 #. TRANSLATORS: exit after we've started up, used for user profiling
-#: ../src/pk-main.c:235
+#: ../src/pk-main.c:161
 msgid "Exit after a small delay"
 msgstr ""
 
 #. TRANSLATORS: exit straight away, used for automatic profiling
-#: ../src/pk-main.c:238
+#: ../src/pk-main.c:164
 msgid "Exit after the engine has loaded"
 msgstr ""
 
+#. TRANSLATORS: don't unset environment variables, used for debugging
+#: ../src/pk-main.c:167
+msgid "Don't clear environment on startup"
+msgstr ""
+
 #. TRANSLATORS: describing the service that is running
-#: ../src/pk-main.c:253
+#: ../src/pk-main.c:179
 msgid "PackageKit service"
 msgstr "PackageKit servisi"
 
-#. TRANSLATORS: fatal error, dbus is not running
-#: ../src/pk-main.c:298
-msgid "Cannot connect to the system bus"
-msgstr ""
-
-#: ../src/pk-main.c:344
+#: ../src/pk-main.c:253
 msgid "Failed to load any of the specified backends:"
 msgstr ""
 
-#. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error
-#. follows
-#: ../src/pk-main.c:358
-msgid "Error trying to start:"
-msgstr ""
-
 #. TRANSLATORS: is not GPG signed
-#: ../src/pk-transaction.c:2611 ../src/pk-transaction.c:2618
+#: ../src/pk-transaction.c:2696
 msgid "The software is not from a trusted source."
 msgstr ""
 
-#: ../src/pk-transaction.c:2623
+#: ../src/pk-transaction.c:2704
 msgid "Do not update this package unless you are sure it is safe to do so."
 msgstr ""
 
-#: ../src/pk-transaction.c:2624
+#: ../src/pk-transaction.c:2705
 msgid "Do not update these packages unless you are sure it is safe to do so."
 msgstr ""
 
-#: ../src/pk-transaction.c:2634
+#: ../src/pk-transaction.c:2715
 msgid "Do not install this package unless you are sure it is safe to do so."
 msgstr ""
 
-#: ../src/pk-transaction.c:2635
+#: ../src/pk-transaction.c:2716
 msgid "Do not install these packages unless you are sure it is safe to do so."
 msgstr ""
 
diff --git a/po/uk.po b/po/uk.po
index 107afe0..5ea93ad 100644
--- a/po/uk.po
+++ b/po/uk.po
@@ -2,15 +2,16 @@
 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
 # This file is distributed under the same license as the PACKAGE package.
 # 
-# Yuri Chornoivan <yurchor at ukr.net>, 2011
-# Richard Hughes <richard at hughsie.com>, 2011
+# Translators:
+# Richard Hughes <richard at hughsie.com>, 2011.
+# Yuri Chornoivan <yurchor at ukr.net>, 2009, 2010, 2011.
 msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-04 10:50+0100\n"
-"PO-Revision-Date: 2011-05-18 09:10+0000\n"
-"Last-Translator: yurchor <yurchor at ukr.net>\n"
+"POT-Creation-Date: 2011-11-10 19:50+0000\n"
+"PO-Revision-Date: 2011-11-11 05:00+0000\n"
+"Last-Translator: Yuri Chornoivan <yurchor at ukr.net>\n"
 "Language-Team: Ukrainian <trans-uk at lists.fedoraproject.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -196,7 +197,7 @@ msgstr "Випущено"
 
 #. TRANSLATORS: details about the update, date the update was updated
 #. TRANSLATORS: The action of the package, in past tense
-#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:524
+#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:559
 msgid "Updated"
 msgstr "Оновлено"
 
@@ -286,7 +287,7 @@ msgstr "Пакунків для оновлення не виявлено."
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
 #: ../client/pk-console.c:704
-#: ../contrib/command-not-found/pk-command-not-found.c:639
+#: ../contrib/command-not-found/pk-command-not-found.c:634
 msgid "The transaction failed"
 msgstr "Спроба виконання операції зазнала невдачі"
 
@@ -341,21 +342,21 @@ msgstr ""
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:866
+#: ../client/pk-console.c:871
 #, c-format
 msgid "This tool could not find any available package: %s"
 msgstr "Програмі не вдалося знайти жодного доступного пакунка: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:894
+#: ../client/pk-console.c:899
 #, c-format
 msgid "This tool could not find the installed package: %s"
 msgstr "Програмі не вдалося знайти встановлений пакунок: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:922 ../client/pk-console.c:950
+#: ../client/pk-console.c:927 ../client/pk-console.c:955
 #, c-format
 msgid "This tool could not find the package: %s"
 msgstr "Програмі не вдалося знайти пакунок: %s"
@@ -368,71 +369,71 @@ msgstr "Програмі не вдалося знайти пакунок: %s"
 #. detailed error follows
 #. TRANSLATORS: The package name was not found in any software sources. The
 #. detailed error follows
-#: ../client/pk-console.c:978 ../client/pk-console.c:1006
-#: ../client/pk-console.c:1034 ../client/pk-console.c:1062
-#: ../client/pk-console.c:1090
+#: ../client/pk-console.c:983 ../client/pk-console.c:1011
+#: ../client/pk-console.c:1039 ../client/pk-console.c:1067
+#: ../client/pk-console.c:1095
 #, c-format
 msgid "This tool could not find all the packages: %s"
 msgstr "Програмі не вдалося знайти всі пакунки: %s"
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek
 #. without a paddle
-#: ../client/pk-console.c:1119
+#: ../client/pk-console.c:1124
 msgid "The daemon crashed mid-transaction!"
 msgstr "Аварійне завершення фонової служби під час операції!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1153
+#: ../client/pk-console.c:1158
 msgid "PackageKit Console Interface"
 msgstr "Консольний інтерфейс PackageKit"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1155
+#: ../client/pk-console.c:1160
 msgid "Subcommands:"
 msgstr "Підкоманди:"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was
 #. last executed
-#: ../client/pk-console.c:1235
+#: ../client/pk-console.c:1240
 msgid "Failed to get the time since this action was last completed"
 msgstr "Не вдалося визначити час, коли цю дію було виконано востаннє"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1277 ../client/pk-monitor.c:371
+#: ../client/pk-console.c:1282 ../client/pk-monitor.c:371
 msgid "Show the program version and exit"
 msgstr "Показати версію програми і завершити роботу"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1280
+#: ../client/pk-console.c:1285
 msgid "Set the filter, e.g. installed"
 msgstr "Встановити фільтр, наприклад, встановлені"
 
 #. TRANSLATORS: command line argument, use a non-standard install prefix
-#: ../client/pk-console.c:1283
+#: ../client/pk-console.c:1288
 msgid "Set the install root, e.g. '/' or '/mnt/ltsp'"
 msgstr ""
 "Встановити кореневий каталог встановлення, наприклад, '/' або '/mnt/ltsp'"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1286
+#: ../client/pk-console.c:1291
 msgid "Exit without waiting for actions to complete"
 msgstr "Завершити роботу, не чекаючи на завершення дії"
 
 #. command line argument, do we ask questions
-#: ../client/pk-console.c:1289
+#: ../client/pk-console.c:1294
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:525
 msgid "Install the packages without asking for confirmation"
 msgstr "Встановити пакунки без запиту щодо підтвердження"
 
 #. TRANSLATORS: command line argument, this command is not a priority
-#: ../client/pk-console.c:1292
+#: ../client/pk-console.c:1297
 msgid "Run the command using idle network bandwidth and also using less power"
 msgstr ""
 "Виконати команду з мінімальним використанням мережевого каналу і меншою "
 "витратою ресурсів системи"
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1295
+#: ../client/pk-console.c:1300
 msgid ""
 "Print to screen a machine readable output, rather than using animated "
 "widgets"
@@ -441,159 +442,159 @@ msgstr ""
 "анімованих віджетів"
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1298
+#: ../client/pk-console.c:1303
 msgid "The maximum metadata cache age. Use -1 for 'never'."
 msgstr ""
 "Максимальна тривалість зберігання кешу метаданих. Значення -1 відповідає "
 "зняттю обмежень на тривалість."
 
 #. TRANSLATORS: command line argument, --help
-#: ../client/pk-console.c:1301
+#: ../client/pk-console.c:1306
 msgid "Show help options."
 msgstr "Показати варіанти отримання довідки."
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1331
+#: ../client/pk-console.c:1336
 msgid "Failed to parse command line"
 msgstr "Не вдалося виконати обробку рядка команди"
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1341
+#: ../client/pk-console.c:1346
 msgid "Failed to contact PackageKit"
 msgstr "Не вдалося зв’язатися з PackageKit"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1394
+#: ../client/pk-console.c:1399
 msgid "The proxy could not be set"
 msgstr "Не вдалося встановити параметри проксі-сервера"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1406
+#: ../client/pk-console.c:1411
 msgid "The install root could not be set"
 msgstr "Не вдалося призначити кореневий каталог встановлення"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1418
+#: ../client/pk-console.c:1423
 msgid "The filter specified was invalid"
 msgstr "Вказано некоректний фільтр"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1437
+#: ../client/pk-console.c:1442
 msgid "A search type is required, e.g. name"
 msgstr "Тип пошуку, якщо такий потрібен, наприклад, назва"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1444 ../client/pk-console.c:1456
-#: ../client/pk-console.c:1468 ../client/pk-console.c:1480
+#: ../client/pk-console.c:1449 ../client/pk-console.c:1461
+#: ../client/pk-console.c:1473 ../client/pk-console.c:1485
 msgid "A search term is required"
 msgstr "Потрібен ключ пошуку"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1490
+#: ../client/pk-console.c:1495
 msgid "Invalid search type"
 msgstr "Некоректний тип пошуку"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1496
+#: ../client/pk-console.c:1501
 msgid "A package name to install is required"
 msgstr "Слід вказати назву пакунка, який слід встановити"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1505
+#: ../client/pk-console.c:1510
 msgid "A filename to install is required"
 msgstr "Слід вказати назву файла, який слід встановити"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1516
+#: ../client/pk-console.c:1521
 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:1527
+#: ../client/pk-console.c:1532
 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:1536
+#: ../client/pk-console.c:1541
 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:1543
+#: ../client/pk-console.c:1548
 msgid "Directory not found"
 msgstr "Каталог не знайдено"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1552
+#: ../client/pk-console.c:1557
 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:1563
+#: ../client/pk-console.c:1568
 msgid "A transaction identifier (tid) is required"
 msgstr "Слід вказати ідентифікатор операції (tid)"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:1584
+#: ../client/pk-console.c:1589
 msgid "A package name to resolve is required"
 msgstr "Слід вказати назву пакунка для розв’язання конфлікту"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:1595 ../client/pk-console.c:1606
+#: ../client/pk-console.c:1600 ../client/pk-console.c:1611
 msgid "A repository name is required"
 msgstr "Слід вказати назву сховища"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:1617
+#: ../client/pk-console.c:1622
 msgid "A repo name, parameter and value are required"
 msgstr "Слід вказати назву сховища, параметр і значення"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:1634
+#: ../client/pk-console.c:1639
 msgid "An action, e.g. 'update-system' is required"
 msgstr "Слід вказати дію, наприклад «update-system»"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:1641
+#: ../client/pk-console.c:1646
 msgid "A correct role is required"
 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:1651 ../client/pk-console.c:1665
-#: ../client/pk-console.c:1674 ../client/pk-console.c:1694
-#: ../client/pk-console.c:1703 ../client/pk-generate-pack.c:314
+#: ../client/pk-console.c:1656 ../client/pk-console.c:1670
+#: ../client/pk-console.c:1679 ../client/pk-console.c:1699
+#: ../client/pk-console.c:1708 ../client/pk-generate-pack.c:314
 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:1683
+#: ../client/pk-console.c:1688
 msgid "A package provide string is required"
 msgstr "Слід вказати рядок вмісту"
 
 #. TRANSLATORS: The user did not provide a distro name
-#: ../client/pk-console.c:1727
+#: ../client/pk-console.c:1732
 msgid "A distribution name is required"
 msgstr "Слід вказати назву дистрибутива"
 
 #. TRANSLATORS: The user did not provide an upgrade type
-#: ../client/pk-console.c:1733
+#: ../client/pk-console.c:1738
 msgid "An upgrade type is required, e.g. 'minimal', 'default' or 'complete'"
 msgstr ""
 "Слід вказати тип оновлення, наприклад, «minimal», «default» або «complete»"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command
 #. line
-#: ../client/pk-console.c:1783
+#: ../client/pk-console.c:1788
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "Підтримки параметра «%s» не передбачено"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:1793
+#: ../client/pk-console.c:1798
 msgid "Command failed"
 msgstr "Спроба виконання команди зазнала невдачі"
 
@@ -733,160 +734,155 @@ msgid "PackageKit Monitor"
 msgstr "Монітор PackageKit"
 
 #. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/pk-plugin-install.c:499
+#: ../contrib/browser-plugin/pk-plugin-install.c:503
 msgid "Getting package information..."
 msgstr "Отримання даних щодо пакунка..."
 
 #. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/pk-plugin-install.c:505
+#: ../contrib/browser-plugin/pk-plugin-install.c:509
 #, c-format
 msgid "Run %s"
 msgstr "Виконати %s"
 
 #. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:511
+#: ../contrib/browser-plugin/pk-plugin-install.c:515
 msgid "Installed version"
 msgstr "Встановлена версія"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:519
+#: ../contrib/browser-plugin/pk-plugin-install.c:523
 #, c-format
 msgid "Run version %s now"
 msgstr "Виконати версію %s"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:525
+#: ../contrib/browser-plugin/pk-plugin-install.c:529
 msgid "Run now"
 msgstr "Виконати зараз"
 
 #. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:531
+#: ../contrib/browser-plugin/pk-plugin-install.c:535
 #, c-format
 msgid "Update to version %s"
 msgstr "Оновити до версії %s"
 
 #. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:537
+#: ../contrib/browser-plugin/pk-plugin-install.c:541
 #, c-format
 msgid "Install %s now"
 msgstr "Встановити %s"
 
 #. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:540
+#: ../contrib/browser-plugin/pk-plugin-install.c:544
 msgid "Version"
 msgstr "Версія"
 
 #. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/pk-plugin-install.c:545
+#: ../contrib/browser-plugin/pk-plugin-install.c:549
 msgid "No packages found for your system"
 msgstr "Для вашої системи пакунків не знайдено"
 
 #. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/pk-plugin-install.c:550
+#: ../contrib/browser-plugin/pk-plugin-install.c:554
 msgid "Installing..."
 msgstr "Встановлення..."
 
 #. TRANSLATORS: downloading repo data so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:366
+#: ../contrib/command-not-found/pk-command-not-found.c:363
 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:370
+#: ../contrib/command-not-found/pk-command-not-found.c:367
 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:374
+#: ../contrib/command-not-found/pk-command-not-found.c:371
 msgid "Waiting for package manager lock."
 msgstr "Очікування на зняття блокування керування пакунками."
 
 #. TRANSLATORS: loading package cache so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:378
+#: ../contrib/command-not-found/pk-command-not-found.c:375
 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:444
+#: ../contrib/command-not-found/pk-command-not-found.c:439
 msgid "Failed to search for file"
 msgstr "Не вдалося виконати пошук файла"
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
-#: ../contrib/command-not-found/pk-command-not-found.c:456
+#: ../contrib/command-not-found/pk-command-not-found.c:451
 msgid "Getting the list of files failed"
 msgstr "Спроба отримання списку файлів зазнала невдачі"
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:602
+#: ../contrib/command-not-found/pk-command-not-found.c:597
 msgid "Failed to launch:"
 msgstr "Не вдалося запустити:"
 
 #. TRANSLATORS: we failed to install the package
-#: ../contrib/command-not-found/pk-command-not-found.c:630
+#: ../contrib/command-not-found/pk-command-not-found.c:625
 msgid "Failed to install packages"
 msgstr "Не вдалося встановити пакунки"
 
-#. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/command-not-found/pk-command-not-found.c:706
-msgid "PackageKit Command Not Found"
-msgstr "Команди PackageKit не знайдено"
-
 #. TRANSLATORS: the prefix of all the output telling the user
 #. * why it's not executing. NOTE: this is lowercase to mimic
 #. * the style of bash itself -- apologies
-#: ../contrib/command-not-found/pk-command-not-found.c:741
+#: ../contrib/command-not-found/pk-command-not-found.c:723
 msgid "command not found"
 msgstr "команду не знайдено"
 
 #. TRANSLATORS: tell the user what we think the command is
-#: ../contrib/command-not-found/pk-command-not-found.c:759
+#: ../contrib/command-not-found/pk-command-not-found.c:741
 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:773
+#: ../contrib/command-not-found/pk-command-not-found.c:755
 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:787
-#: ../contrib/command-not-found/pk-command-not-found.c:796
+#: ../contrib/command-not-found/pk-command-not-found.c:769
+#: ../contrib/command-not-found/pk-command-not-found.c:778
 msgid "Similar commands are:"
 msgstr "Подібними командами є:"
 
 #. TRANSLATORS: ask the user to choose a file to run
-#: ../contrib/command-not-found/pk-command-not-found.c:803
+#: ../contrib/command-not-found/pk-command-not-found.c:785
 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:821
+#: ../contrib/command-not-found/pk-command-not-found.c:803
 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:828
+#: ../contrib/command-not-found/pk-command-not-found.c:810
 #, 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:855
+#: ../contrib/command-not-found/pk-command-not-found.c:837
 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:865
+#: ../contrib/command-not-found/pk-command-not-found.c:847
 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:874
+#: ../contrib/command-not-found/pk-command-not-found.c:856
 msgid "Please choose a package to install"
 msgstr "Будь ласка, оберіть пакунок, який слід встановити"
 
@@ -1060,7 +1056,7 @@ msgstr "Не встановлювати пакунки у режимі іміт
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
 #. TRANSLATORS: transaction state, installing packages
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:860
-#: ../lib/packagekit-glib2/pk-console-shared.c:296
+#: ../lib/packagekit-glib2/pk-console-shared.c:331
 #, c-format
 msgid "Installing packages"
 msgstr "Встановлення пакунків"
@@ -1194,474 +1190,474 @@ msgstr "Список пакунків PackageKit"
 msgid "PackageKit Service Pack"
 msgstr "Пакунок з обслуговування PackageKit"
 
-#: ../lib/packagekit-glib2/pk-console-shared.c:64
+#: ../lib/packagekit-glib2/pk-console-shared.c:65
 #, c-format
 msgid "Please enter a number from 1 to %i: "
 msgstr "Будь ласка, введіть число від 1 до %i: "
 
 #. TRANSLATORS: more than one package could be found that matched, to follow
 #. is a list of possible packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:198
+#: ../lib/packagekit-glib2/pk-console-shared.c:233
 msgid "More than one package matches:"
 msgstr "З ключем пошуку збігається декілька пакунків:"
 
 #. TRANSLATORS: This finds out which package in the list to use
-#: ../lib/packagekit-glib2/pk-console-shared.c:209
+#: ../lib/packagekit-glib2/pk-console-shared.c:244
 msgid "Please choose the correct package: "
 msgstr "Будь ласка, оберіть належний пакунок:"
 
 #. TRANSLATORS: This is when the transaction status is not known
-#: ../lib/packagekit-glib2/pk-console-shared.c:264
+#: ../lib/packagekit-glib2/pk-console-shared.c:299
 msgid "Unknown state"
 msgstr "Невідомий стан"
 
 #. TRANSLATORS: transaction state, the daemon is in the process of starting
-#: ../lib/packagekit-glib2/pk-console-shared.c:268
+#: ../lib/packagekit-glib2/pk-console-shared.c:303
 msgid "Starting"
 msgstr "Запуск"
 
 #. TRANSLATORS: transaction state, the transaction is waiting for another to
 #. complete
-#: ../lib/packagekit-glib2/pk-console-shared.c:272
+#: ../lib/packagekit-glib2/pk-console-shared.c:307
 msgid "Waiting in queue"
 msgstr "Очікування у черзі"
 
 #. TRANSLATORS: transaction state, just started
-#: ../lib/packagekit-glib2/pk-console-shared.c:276
+#: ../lib/packagekit-glib2/pk-console-shared.c:311
 msgid "Running"
 msgstr "Виконання"
 
 #. TRANSLATORS: transaction state, is querying data
-#: ../lib/packagekit-glib2/pk-console-shared.c:280
+#: ../lib/packagekit-glib2/pk-console-shared.c:315
 msgid "Querying"
 msgstr "Виконання запиту"
 
 #. TRANSLATORS: transaction state, getting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:284
+#: ../lib/packagekit-glib2/pk-console-shared.c:319
 msgid "Getting information"
 msgstr "Отримання інформації"
 
 #. TRANSLATORS: transaction state, removing packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:288
+#: ../lib/packagekit-glib2/pk-console-shared.c:323
 msgid "Removing packages"
 msgstr "Вилучення пакунків"
 
 #. TRANSLATORS: transaction state, downloading package files
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:292
-#: ../lib/packagekit-glib2/pk-console-shared.c:670
+#: ../lib/packagekit-glib2/pk-console-shared.c:327
+#: ../lib/packagekit-glib2/pk-console-shared.c:705
 msgid "Downloading packages"
 msgstr "Звантаження пакунків"
 
 #. TRANSLATORS: transaction state, refreshing internal lists
-#: ../lib/packagekit-glib2/pk-console-shared.c:300
+#: ../lib/packagekit-glib2/pk-console-shared.c:335
 msgid "Refreshing software list"
 msgstr "Освіження списку програм"
 
 #. TRANSLATORS: transaction state, installing updates
-#: ../lib/packagekit-glib2/pk-console-shared.c:304
+#: ../lib/packagekit-glib2/pk-console-shared.c:339
 msgid "Installing updates"
 msgstr "Встановлення оновлень"
 
 #. TRANSLATORS: transaction state, removing old packages, and cleaning config
 #. files
-#: ../lib/packagekit-glib2/pk-console-shared.c:308
+#: ../lib/packagekit-glib2/pk-console-shared.c:343
 msgid "Cleaning up packages"
 msgstr "Вилучення зайвих пакунків"
 
 #. TRANSLATORS: transaction state, obsoleting old packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:312
+#: ../lib/packagekit-glib2/pk-console-shared.c:347
 msgid "Obsoleting packages"
 msgstr "Вилучення застарілих пакунків"
 
 #. TRANSLATORS: transaction state, checking the transaction before we do it
-#: ../lib/packagekit-glib2/pk-console-shared.c:316
+#: ../lib/packagekit-glib2/pk-console-shared.c:351
 msgid "Resolving dependencies"
 msgstr "Розв’язання залежностей"
 
 #. TRANSLATORS: transaction state, checking if we have all the security keys
 #. for the operation
-#: ../lib/packagekit-glib2/pk-console-shared.c:320
+#: ../lib/packagekit-glib2/pk-console-shared.c:355
 msgid "Checking signatures"
 msgstr "Перевірка підписів"
 
 #. TRANSLATORS: transaction state, when we return to a previous system state
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:324
-#: ../lib/packagekit-glib2/pk-console-shared.c:630
+#: ../lib/packagekit-glib2/pk-console-shared.c:359
+#: ../lib/packagekit-glib2/pk-console-shared.c:665
 msgid "Rolling back"
 msgstr "Повернення до попереднього"
 
 #. TRANSLATORS: transaction state, when we're doing a test transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:328
+#: ../lib/packagekit-glib2/pk-console-shared.c:363
 msgid "Testing changes"
 msgstr "Випробування змін"
 
 #. TRANSLATORS: transaction state, when we're writing to the system package
 #. database
-#: ../lib/packagekit-glib2/pk-console-shared.c:332
+#: ../lib/packagekit-glib2/pk-console-shared.c:367
 msgid "Committing changes"
 msgstr "Застосування змін"
 
 #. TRANSLATORS: transaction state, requesting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:336
+#: ../lib/packagekit-glib2/pk-console-shared.c:371
 msgid "Requesting data"
 msgstr "Запит щодо даних"
 
 #. TRANSLATORS: transaction state, all done!
-#: ../lib/packagekit-glib2/pk-console-shared.c:340
+#: ../lib/packagekit-glib2/pk-console-shared.c:375
 msgid "Finished"
 msgstr "Завершено"
 
 #. TRANSLATORS: transaction state, in the process of cancelling
-#: ../lib/packagekit-glib2/pk-console-shared.c:344
+#: ../lib/packagekit-glib2/pk-console-shared.c:379
 msgid "Cancelling"
 msgstr "Скасування"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:348
+#: ../lib/packagekit-glib2/pk-console-shared.c:383
 msgid "Downloading repository information"
 msgstr "Звантаження інформації про сховище"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:352
+#: ../lib/packagekit-glib2/pk-console-shared.c:387
 msgid "Downloading list of packages"
 msgstr "Звантаження списку пакунків"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:356
+#: ../lib/packagekit-glib2/pk-console-shared.c:391
 msgid "Downloading file lists"
 msgstr "Звантаження списків файлів"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:360
+#: ../lib/packagekit-glib2/pk-console-shared.c:395
 msgid "Downloading lists of changes"
 msgstr "Звантаження списків змін"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:364
+#: ../lib/packagekit-glib2/pk-console-shared.c:399
 msgid "Downloading groups"
 msgstr "Звантаження груп"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:368
+#: ../lib/packagekit-glib2/pk-console-shared.c:403
 msgid "Downloading update information"
 msgstr "Звантаження інформації про оновлення"
 
 #. TRANSLATORS: transaction state, repackaging delta files
-#: ../lib/packagekit-glib2/pk-console-shared.c:372
+#: ../lib/packagekit-glib2/pk-console-shared.c:407
 msgid "Repackaging files"
 msgstr "Перепакування файлів"
 
 #. TRANSLATORS: transaction state, loading databases
-#: ../lib/packagekit-glib2/pk-console-shared.c:376
+#: ../lib/packagekit-glib2/pk-console-shared.c:411
 msgid "Loading cache"
 msgstr "Завантаження кешу"
 
 #. TRANSLATORS: transaction state, scanning for running processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:380
+#: ../lib/packagekit-glib2/pk-console-shared.c:415
 msgid "Scanning applications"
 msgstr "Пошук програм"
 
 #. TRANSLATORS: transaction state, generating a list of packages installed on
 #. the system
-#: ../lib/packagekit-glib2/pk-console-shared.c:384
+#: ../lib/packagekit-glib2/pk-console-shared.c:419
 msgid "Generating package lists"
 msgstr "Створення списків пакунків"
 
 #. TRANSLATORS: transaction state, when we're waiting for the native tools to
 #. exit
-#: ../lib/packagekit-glib2/pk-console-shared.c:388
+#: ../lib/packagekit-glib2/pk-console-shared.c:423
 msgid "Waiting for package manager lock"
 msgstr "Очікування на зняття блокування керування пакунками"
 
 #. TRANSLATORS: transaction state, waiting for user to type in a password
-#: ../lib/packagekit-glib2/pk-console-shared.c:392
+#: ../lib/packagekit-glib2/pk-console-shared.c:427
 msgid "Waiting for authentication"
 msgstr "Очікування на завершення розпізнавання"
 
 #. TRANSLATORS: transaction state, we are updating the list of processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:396
+#: ../lib/packagekit-glib2/pk-console-shared.c:431
 msgid "Updating running applications"
 msgstr "Оновлення списку запущенний програм"
 
 #. TRANSLATORS: transaction state, we are checking executable files currently
 #. in use
-#: ../lib/packagekit-glib2/pk-console-shared.c:400
+#: ../lib/packagekit-glib2/pk-console-shared.c:435
 msgid "Checking applications in use"
 msgstr "Виявлення програм, що використовуються"
 
 #. TRANSLATORS: transaction state, we are checking for libraries currently in
 #. use
-#: ../lib/packagekit-glib2/pk-console-shared.c:404
+#: ../lib/packagekit-glib2/pk-console-shared.c:439
 msgid "Checking libraries in use"
 msgstr "Виявлення бібліотек, що використовуються"
 
 #. TRANSLATORS: transaction state, we are copying package files before or
 #. after the transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:408
+#: ../lib/packagekit-glib2/pk-console-shared.c:443
 msgid "Copying files"
 msgstr "Копіювання файлів"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:426
+#: ../lib/packagekit-glib2/pk-console-shared.c:461
 msgid "Trivial"
 msgstr "Незначне"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:430
+#: ../lib/packagekit-glib2/pk-console-shared.c:465
 msgid "Normal"
 msgstr "Звичайне"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:434
+#: ../lib/packagekit-glib2/pk-console-shared.c:469
 msgid "Important"
 msgstr "Важливе"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:438
+#: ../lib/packagekit-glib2/pk-console-shared.c:473
 msgid "Security"
 msgstr "Безпека"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:442
+#: ../lib/packagekit-glib2/pk-console-shared.c:477
 msgid "Bug fix "
 msgstr "Виправлення вад"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:446
+#: ../lib/packagekit-glib2/pk-console-shared.c:481
 msgid "Enhancement"
 msgstr "Покращення"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:450
+#: ../lib/packagekit-glib2/pk-console-shared.c:485
 msgid "Blocked"
 msgstr "Заблоковане"
 
 #. TRANSLATORS: The state of a package
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:455
-#: ../lib/packagekit-glib2/pk-console-shared.c:528
+#: ../lib/packagekit-glib2/pk-console-shared.c:490
+#: ../lib/packagekit-glib2/pk-console-shared.c:563
 msgid "Installed"
 msgstr "Встановлене"
 
 #. TRANSLATORS: The state of a package, i.e. not installed
-#: ../lib/packagekit-glib2/pk-console-shared.c:460
+#: ../lib/packagekit-glib2/pk-console-shared.c:495
 msgid "Available"
 msgstr "Доступний"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:478
+#: ../lib/packagekit-glib2/pk-console-shared.c:513
 msgid "Downloading"
 msgstr "Звантаження"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:482
+#: ../lib/packagekit-glib2/pk-console-shared.c:517
 msgid "Updating"
 msgstr "Оновлення"
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:486
-#: ../lib/packagekit-glib2/pk-console-shared.c:606
+#: ../lib/packagekit-glib2/pk-console-shared.c:521
+#: ../lib/packagekit-glib2/pk-console-shared.c:641
 msgid "Installing"
 msgstr "Встановлення"
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:490
-#: ../lib/packagekit-glib2/pk-console-shared.c:602
+#: ../lib/packagekit-glib2/pk-console-shared.c:525
+#: ../lib/packagekit-glib2/pk-console-shared.c:637
 msgid "Removing"
 msgstr "Вилучення"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:494
+#: ../lib/packagekit-glib2/pk-console-shared.c:529
 msgid "Cleaning up"
 msgstr "Очищення"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:498
+#: ../lib/packagekit-glib2/pk-console-shared.c:533
 msgid "Obsoleting"
 msgstr "Робить застарілим"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:502
+#: ../lib/packagekit-glib2/pk-console-shared.c:537
 msgid "Reinstalling"
 msgstr "Перевстановлення"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:520
+#: ../lib/packagekit-glib2/pk-console-shared.c:555
 msgid "Downloaded"
 msgstr "Звантажено"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:532
+#: ../lib/packagekit-glib2/pk-console-shared.c:567
 msgid "Removed"
 msgstr "Вилучено"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:536
+#: ../lib/packagekit-glib2/pk-console-shared.c:571
 msgid "Cleaned up"
 msgstr "Очищено"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:540
+#: ../lib/packagekit-glib2/pk-console-shared.c:575
 msgid "Obsoleted"
 msgstr "Став застарілим"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:544
+#: ../lib/packagekit-glib2/pk-console-shared.c:579
 msgid "Reinstalled"
 msgstr "Перевстановлено"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:562
+#: ../lib/packagekit-glib2/pk-console-shared.c:597
 msgid "Unknown role type"
 msgstr "Невідомий тип"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:566
+#: ../lib/packagekit-glib2/pk-console-shared.c:601
 msgid "Getting dependencies"
 msgstr "Отримання залежностей"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:570
+#: ../lib/packagekit-glib2/pk-console-shared.c:605
 msgid "Getting update details"
 msgstr "Отримання подробиць оновлення"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:574
+#: ../lib/packagekit-glib2/pk-console-shared.c:609
 msgid "Getting details"
 msgstr "Отримання подробиць"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:578
+#: ../lib/packagekit-glib2/pk-console-shared.c:613
 msgid "Getting requires"
 msgstr "Отримання даних про вимоги"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:582
+#: ../lib/packagekit-glib2/pk-console-shared.c:617
 msgid "Getting updates"
 msgstr "Отримання оновлень"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:586
+#: ../lib/packagekit-glib2/pk-console-shared.c:621
 msgid "Searching by details"
 msgstr "Пошук за подробицями"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:590
+#: ../lib/packagekit-glib2/pk-console-shared.c:625
 msgid "Searching by file"
 msgstr "Пошук за файлом"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:594
+#: ../lib/packagekit-glib2/pk-console-shared.c:629
 msgid "Searching groups"
 msgstr "Пошук груп"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:598
+#: ../lib/packagekit-glib2/pk-console-shared.c:633
 msgid "Searching by name"
 msgstr "Пошук за назвою"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:610
+#: ../lib/packagekit-glib2/pk-console-shared.c:645
 msgid "Installing files"
 msgstr "Встановлення файлів"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:614
+#: ../lib/packagekit-glib2/pk-console-shared.c:649
 msgid "Refreshing cache"
 msgstr "Освіження кешу"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:618
+#: ../lib/packagekit-glib2/pk-console-shared.c:653
 msgid "Updating packages"
 msgstr "Оновлення пакунків"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:622
+#: ../lib/packagekit-glib2/pk-console-shared.c:657
 msgid "Updating system"
 msgstr "Оновлення системи"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:626
+#: ../lib/packagekit-glib2/pk-console-shared.c:661
 msgid "Canceling"
 msgstr "Скасування"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:634
+#: ../lib/packagekit-glib2/pk-console-shared.c:669
 msgid "Getting repositories"
 msgstr "Отримання списку сховищ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:638
+#: ../lib/packagekit-glib2/pk-console-shared.c:673
 msgid "Enabling repository"
 msgstr "Увімкнення сховища"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:642
+#: ../lib/packagekit-glib2/pk-console-shared.c:677
 msgid "Setting data"
 msgstr "Встановлення даних"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:646
+#: ../lib/packagekit-glib2/pk-console-shared.c:681
 msgid "Resolving"
 msgstr "Розв’язання"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:650
+#: ../lib/packagekit-glib2/pk-console-shared.c:685
 msgid "Getting file list"
 msgstr "Отримання списку файлів"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:654
+#: ../lib/packagekit-glib2/pk-console-shared.c:689
 msgid "Getting provides"
 msgstr "Отримання даних про вміст"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:658
+#: ../lib/packagekit-glib2/pk-console-shared.c:693
 msgid "Installing signature"
 msgstr "Встановлення підпису"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:662
+#: ../lib/packagekit-glib2/pk-console-shared.c:697
 msgid "Getting packages"
 msgstr "Отримання списку пакунків"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:666
+#: ../lib/packagekit-glib2/pk-console-shared.c:701
 msgid "Accepting EULA"
 msgstr "Згода з EULA"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:674
+#: ../lib/packagekit-glib2/pk-console-shared.c:709
 msgid "Getting upgrades"
 msgstr "Отримання оновлень"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:678
+#: ../lib/packagekit-glib2/pk-console-shared.c:713
 msgid "Getting categories"
 msgstr "Отримання категорій"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:682
+#: ../lib/packagekit-glib2/pk-console-shared.c:717
 msgid "Getting transactions"
 msgstr "Отримання списку дій"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:686
-#: ../lib/packagekit-glib2/pk-console-shared.c:690
+#: ../lib/packagekit-glib2/pk-console-shared.c:721
+#: ../lib/packagekit-glib2/pk-console-shared.c:725
 msgid "Simulating install"
 msgstr "Імітація встановлення"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:694
+#: ../lib/packagekit-glib2/pk-console-shared.c:729
 msgid "Simulating remove"
 msgstr "Імітація вилучення"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:698
+#: ../lib/packagekit-glib2/pk-console-shared.c:733
 msgid "Simulating update"
 msgstr "Імітація оновлення"
 
@@ -1813,13 +1809,19 @@ msgstr "Слід перевстановити такі пакунки:"
 msgid "The following packages have to be downgraded:"
 msgstr "Слід встановити старіші версії таких пакунків:"
 
+#. TRANSLATORS: When processing, untrusted and non-verified packages may be
+#. encountered
+#: ../lib/packagekit-glib2/pk-task-text.c:325
+msgid "The following packages are untrusted:"
+msgstr "Вказані нижче пакунки є ненадійними:"
+
 #. TRANSLATORS: ask the user if the proposed changes are okay
-#: ../lib/packagekit-glib2/pk-task-text.c:380
+#: ../lib/packagekit-glib2/pk-task-text.c:385
 msgid "Proceed with changes?"
 msgstr "Внести зміни:"
 
 #. TRANSLATORS: tell the user we didn't do anything
-#: ../lib/packagekit-glib2/pk-task-text.c:385
+#: ../lib/packagekit-glib2/pk-task-text.c:390
 msgid "The transaction did not proceed."
 msgstr "Операцію не було продовжено."
 
@@ -2032,103 +2034,72 @@ msgstr "Оновлення пакунків"
 msgid "Upgrade System"
 msgstr "Оновлення системи"
 
-#. TRANSLATORS: failed due to DBus security
-#: ../src/pk-main.c:91
-msgid "Startup failed due to security policies on this machine."
-msgstr ""
-"Спроба запуску зазнала невдачі через обмеження безпеки на цьому комп’ютері."
-
-#. TRANSLATORS: only two ways this can fail...
-#: ../src/pk-main.c:93
-msgid "This can happen for two reasons:"
-msgstr "Таке може трапитися з двох причин:"
-
-#. TRANSLATORS: only allowed to be owned by root
-#: ../src/pk-main.c:95
-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:97
-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:223
+#: ../src/pk-main.c:149
 msgid "Packaging backend to use, e.g. dummy"
 msgstr "Інструмент роботи з пакунками, наприклад, dummy"
 
 #. TRANSLATORS: if we should run in the background
-#: ../src/pk-main.c:226
+#: ../src/pk-main.c:152
 msgid "Daemonize and detach from the terminal"
 msgstr "Створити фонову службу і від’єднатися від термінала"
 
 #. TRANSLATORS: if we should not monitor how long we are inactive for
-#: ../src/pk-main.c:229
+#: ../src/pk-main.c:155
 msgid "Disable the idle timer"
 msgstr "Вимкнути відлік бездіяльності"
 
 #. TRANSLATORS: show version
-#: ../src/pk-main.c:232
+#: ../src/pk-main.c:158
 msgid "Show version and exit"
 msgstr "Показати версію і завершити роботу"
 
 #. TRANSLATORS: exit after we've started up, used for user profiling
-#: ../src/pk-main.c:235
+#: ../src/pk-main.c:161
 msgid "Exit after a small delay"
 msgstr "Завершити роботу з невеличкою затримкою"
 
 #. TRANSLATORS: exit straight away, used for automatic profiling
-#: ../src/pk-main.c:238
+#: ../src/pk-main.c:164
 msgid "Exit after the engine has loaded"
 msgstr "Завершити роботу після завантаження рушія"
 
+#. TRANSLATORS: don't unset environment variables, used for debugging
+#: ../src/pk-main.c:167
+msgid "Don't clear environment on startup"
+msgstr "Не очищувати середовище під час запуску"
+
 #. TRANSLATORS: describing the service that is running
-#: ../src/pk-main.c:253
+#: ../src/pk-main.c:179
 msgid "PackageKit service"
 msgstr "Служба PackageKit"
 
-#. TRANSLATORS: fatal error, dbus is not running
-#: ../src/pk-main.c:298
-msgid "Cannot connect to the system bus"
-msgstr "Не вдалося з’єднатися з системною шиною"
-
-#: ../src/pk-main.c:344
+#: ../src/pk-main.c:253
 msgid "Failed to load any of the specified backends:"
 msgstr "Не вдалося завантажити жоден з вказаних модулів обробки:"
 
-#. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error
-#. follows
-#: ../src/pk-main.c:358
-msgid "Error trying to start:"
-msgstr "Помилка під час спроби запуску:"
-
 #. TRANSLATORS: is not GPG signed
-#: ../src/pk-transaction.c:2611 ../src/pk-transaction.c:2618
+#: ../src/pk-transaction.c:2696
 msgid "The software is not from a trusted source."
 msgstr "Програмне забезпечення надійшло з ненадійного джерела."
 
-#: ../src/pk-transaction.c:2623
+#: ../src/pk-transaction.c:2704
 msgid "Do not update this package unless you are sure it is safe to do so."
 msgstr ""
 "Не оновлюйте цей пакунок, якщо не певні, що таке оновлення є безпечним."
 
-#: ../src/pk-transaction.c:2624
+#: ../src/pk-transaction.c:2705
 msgid "Do not update these packages unless you are sure it is safe to do so."
 msgstr ""
 "Не оновлюйте ці пакунки, якщо не певні, що таке оновлення є безпечним."
 
-#: ../src/pk-transaction.c:2634
+#: ../src/pk-transaction.c:2715
 msgid "Do not install this package unless you are sure it is safe to do so."
 msgstr ""
 "Не встановлюйте цей пакунок, якщо не певні, що таке встановлення є "
 "безпечним."
 
-#: ../src/pk-transaction.c:2635
+#: ../src/pk-transaction.c:2716
 msgid "Do not install these packages unless you are sure it is safe to do so."
 msgstr ""
 "Не встановлюйте ці пакунки, якщо не певні, що таке встановлення є безпечним."
diff --git a/po/zh_CN.po b/po/zh_CN.po
index 740c8d9..ac9da80 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -2,14 +2,17 @@
 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
 # This file is distributed under the same license as the PACKAGE package.
 # 
-# Richard Hughes <richard at hughsie.com>, 2011
+# Translators:
+# Leah Liu <lliu at redhat.com>, 2009.
+#   <lovenemesis at gmail.com>, 2011.
+# Richard Hughes <richard at hughsie.com>, 2011.
 msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-04 10:50+0100\n"
-"PO-Revision-Date: 2011-05-04 09:56+0000\n"
-"Last-Translator: hughsie <richard at hughsie.com>\n"
+"POT-Creation-Date: 2011-11-10 19:50+0000\n"
+"PO-Revision-Date: 2011-12-10 14:16+0000\n"
+"Last-Translator: lovenemesis <lovenemesis at gmail.com>\n"
 "Language-Team: Chinese (China) <i18n-zh at googlegroups.com>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -138,7 +141,7 @@ msgstr "更新细节:"
 #: ../lib/packagekit-glib2/pk-task-text.c:124
 #: ../lib/packagekit-glib2/pk-task-text.c:206
 msgid "Package"
-msgstr ""
+msgstr "软件包"
 
 #. TRANSLATORS: details about the update, any packages that this update
 #. updates
@@ -195,7 +198,7 @@ msgstr "签发"
 
 #. TRANSLATORS: details about the update, date the update was updated
 #. TRANSLATORS: The action of the package, in past tense
-#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:524
+#: ../client/pk-console.c:388 ../lib/packagekit-glib2/pk-console-shared.c:559
 msgid "Updated"
 msgstr "æ›´æ–°"
 
@@ -281,11 +284,11 @@ msgstr "致命错误"
 #. can be updated
 #: ../client/pk-console.c:701
 msgid "There are no packages to update."
-msgstr ""
+msgstr "没有可以升级的软件包。"
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
 #: ../client/pk-console.c:704
-#: ../contrib/command-not-found/pk-command-not-found.c:639
+#: ../contrib/command-not-found/pk-command-not-found.c:634
 msgid "The transaction failed"
 msgstr "事务失败"
 
@@ -333,21 +336,21 @@ msgstr "预期的软件包名,实际上文件有了。试一下改用“pkcon
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:866
+#: ../client/pk-console.c:871
 #, c-format
 msgid "This tool could not find any available package: %s"
 msgstr "此工具未能找到任何可用的软件包:%s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:894
+#: ../client/pk-console.c:899
 #, c-format
 msgid "This tool could not find the installed package: %s"
 msgstr "此工具未能找到已安装的软件包:%s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package.
 #. The detailed error follows
-#: ../client/pk-console.c:922 ../client/pk-console.c:950
+#: ../client/pk-console.c:927 ../client/pk-console.c:955
 #, c-format
 msgid "This tool could not find the package: %s"
 msgstr "此工具未能找到软件包:%s"
@@ -360,223 +363,223 @@ msgstr "此工具未能找到软件包:%s"
 #. detailed error follows
 #. TRANSLATORS: The package name was not found in any software sources. The
 #. detailed error follows
-#: ../client/pk-console.c:978 ../client/pk-console.c:1006
-#: ../client/pk-console.c:1034 ../client/pk-console.c:1062
-#: ../client/pk-console.c:1090
+#: ../client/pk-console.c:983 ../client/pk-console.c:1011
+#: ../client/pk-console.c:1039 ../client/pk-console.c:1067
+#: ../client/pk-console.c:1095
 #, c-format
 msgid "This tool could not find all the packages: %s"
 msgstr "此工具未能找到所有软件包:%s"
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek
 #. without a paddle
-#: ../client/pk-console.c:1119
+#: ../client/pk-console.c:1124
 msgid "The daemon crashed mid-transaction!"
 msgstr "守护进程在事务中崩溃"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1153
+#: ../client/pk-console.c:1158
 msgid "PackageKit Console Interface"
 msgstr "PackageKit(软件包工具包)控制台界面"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1155
+#: ../client/pk-console.c:1160
 msgid "Subcommands:"
 msgstr "子命令:"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was
 #. last executed
-#: ../client/pk-console.c:1235
+#: ../client/pk-console.c:1240
 msgid "Failed to get the time since this action was last completed"
 msgstr "获取此动作最后一次完成之后的时间失败。"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1277 ../client/pk-monitor.c:371
+#: ../client/pk-console.c:1282 ../client/pk-monitor.c:371
 msgid "Show the program version and exit"
 msgstr "显示程序版本并退出"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1280
+#: ../client/pk-console.c:1285
 msgid "Set the filter, e.g. installed"
 msgstr "设置过滤器,如:已安装"
 
 #. TRANSLATORS: command line argument, use a non-standard install prefix
-#: ../client/pk-console.c:1283
+#: ../client/pk-console.c:1288
 msgid "Set the install root, e.g. '/' or '/mnt/ltsp'"
 msgstr "设置安装根,如:“/”或“/mnt/ltsp”"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1286
+#: ../client/pk-console.c:1291
 msgid "Exit without waiting for actions to complete"
 msgstr "不等动作完成就退出"
 
 #. command line argument, do we ask questions
-#: ../client/pk-console.c:1289
+#: ../client/pk-console.c:1294
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:525
 msgid "Install the packages without asking for confirmation"
 msgstr "不经询问确认就安装软件包"
 
 #. TRANSLATORS: command line argument, this command is not a priority
-#: ../client/pk-console.c:1292
+#: ../client/pk-console.c:1297
 msgid "Run the command using idle network bandwidth and also using less power"
 msgstr "用空闲网络带宽和更少能源运行命令"
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1295
+#: ../client/pk-console.c:1300
 msgid ""
 "Print to screen a machine readable output, rather than using animated "
 "widgets"
 msgstr "只在屏幕上显示机器可读的输出,而不是用动画小工具"
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1298
+#: ../client/pk-console.c:1303
 msgid "The maximum metadata cache age. Use -1 for 'never'."
-msgstr ""
+msgstr "最长元数据缓存过期时间。使用 -1 为 ‘永不’。 "
 
 #. TRANSLATORS: command line argument, --help
-#: ../client/pk-console.c:1301
+#: ../client/pk-console.c:1306
 msgid "Show help options."
-msgstr ""
+msgstr "显示帮助选项。"
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1331
+#: ../client/pk-console.c:1336
 msgid "Failed to parse command line"
-msgstr ""
+msgstr "传递命令行失败"
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1341
+#: ../client/pk-console.c:1346
 msgid "Failed to contact PackageKit"
 msgstr "联系 PackageKit 失败"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1394
+#: ../client/pk-console.c:1399
 msgid "The proxy could not be set"
 msgstr "代理未能设置"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1406
+#: ../client/pk-console.c:1411
 msgid "The install root could not be set"
 msgstr "安装根未能设置"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1418
+#: ../client/pk-console.c:1423
 msgid "The filter specified was invalid"
 msgstr "指定过滤器无效"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1437
+#: ../client/pk-console.c:1442
 msgid "A search type is required, e.g. name"
 msgstr "需要指定搜索类型,例如名称"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1444 ../client/pk-console.c:1456
-#: ../client/pk-console.c:1468 ../client/pk-console.c:1480
+#: ../client/pk-console.c:1449 ../client/pk-console.c:1461
+#: ../client/pk-console.c:1473 ../client/pk-console.c:1485
 msgid "A search term is required"
 msgstr "需要指定搜索词"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1490
+#: ../client/pk-console.c:1495
 msgid "Invalid search type"
 msgstr "无效搜索类型"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1496
+#: ../client/pk-console.c:1501
 msgid "A package name to install is required"
 msgstr "需要指定要安装的软件包名"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1505
+#: ../client/pk-console.c:1510
 msgid "A filename to install is required"
 msgstr "需要指定要安装的文件名"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1516
+#: ../client/pk-console.c:1521
 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:1527
+#: ../client/pk-console.c:1532
 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:1536
+#: ../client/pk-console.c:1541
 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:1543
+#: ../client/pk-console.c:1548
 msgid "Directory not found"
 msgstr "目录未找到"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1552
+#: ../client/pk-console.c:1557
 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:1563
+#: ../client/pk-console.c:1568
 msgid "A transaction identifier (tid) is required"
 msgstr "需要指定事务标识符(tid)"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:1584
+#: ../client/pk-console.c:1589
 msgid "A package name to resolve is required"
 msgstr "需要指定要解析的软件包名"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:1595 ../client/pk-console.c:1606
+#: ../client/pk-console.c:1600 ../client/pk-console.c:1611
 msgid "A repository name is required"
 msgstr "需要指定软件仓库名"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:1617
+#: ../client/pk-console.c:1622
 msgid "A repo name, parameter and value are required"
 msgstr "需要指定软件仓库名、参数和值"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:1634
+#: ../client/pk-console.c:1639
 msgid "An action, e.g. 'update-system' is required"
 msgstr "需要指定动作,例如“update-system(更新系统)”"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:1641
+#: ../client/pk-console.c:1646
 msgid "A correct role is required"
 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:1651 ../client/pk-console.c:1665
-#: ../client/pk-console.c:1674 ../client/pk-console.c:1694
-#: ../client/pk-console.c:1703 ../client/pk-generate-pack.c:314
+#: ../client/pk-console.c:1656 ../client/pk-console.c:1670
+#: ../client/pk-console.c:1679 ../client/pk-console.c:1699
+#: ../client/pk-console.c:1708 ../client/pk-generate-pack.c:314
 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:1683
+#: ../client/pk-console.c:1688
 msgid "A package provide string is required"
 msgstr "需要指定软件包提供描述"
 
 #. TRANSLATORS: The user did not provide a distro name
-#: ../client/pk-console.c:1727
+#: ../client/pk-console.c:1732
 msgid "A distribution name is required"
-msgstr ""
+msgstr "需要指定发行版名称"
 
 #. TRANSLATORS: The user did not provide an upgrade type
-#: ../client/pk-console.c:1733
+#: ../client/pk-console.c:1738
 msgid "An upgrade type is required, e.g. 'minimal', 'default' or 'complete'"
-msgstr ""
+msgstr "需要指定升级类型,例如 ‘minimal’(最小),‘default’(默认) 或 ‘complete’(完整)"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command
 #. line
-#: ../client/pk-console.c:1783
+#: ../client/pk-console.c:1788
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "选项“%s”未支持"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:1793
+#: ../client/pk-console.c:1798
 msgid "Command failed"
 msgstr "命令失败"
 
@@ -703,7 +706,7 @@ msgstr "获取守护进程状态失败"
 
 #: ../client/pk-monitor.c:349
 msgid "Failed to get properties"
-msgstr ""
+msgstr "获取属性失败"
 
 #. TRANSLATORS: this is a program that monitors PackageKit
 #: ../client/pk-monitor.c:387
@@ -711,159 +714,154 @@ msgid "PackageKit Monitor"
 msgstr "PackageKit 监视器"
 
 #. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/pk-plugin-install.c:499
+#: ../contrib/browser-plugin/pk-plugin-install.c:503
 msgid "Getting package information..."
 msgstr "正在获取软件包信息……"
 
 #. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/pk-plugin-install.c:505
+#: ../contrib/browser-plugin/pk-plugin-install.c:509
 #, c-format
 msgid "Run %s"
 msgstr "运行 %s"
 
 #. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:511
+#: ../contrib/browser-plugin/pk-plugin-install.c:515
 msgid "Installed version"
 msgstr "已安装版本"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:519
+#: ../contrib/browser-plugin/pk-plugin-install.c:523
 #, c-format
 msgid "Run version %s now"
 msgstr "现在运行版本 %s"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:525
+#: ../contrib/browser-plugin/pk-plugin-install.c:529
 msgid "Run now"
 msgstr "现在运行"
 
 #. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:531
+#: ../contrib/browser-plugin/pk-plugin-install.c:535
 #, c-format
 msgid "Update to version %s"
 msgstr "更新到版本 %s"
 
 #. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:537
+#: ../contrib/browser-plugin/pk-plugin-install.c:541
 #, c-format
 msgid "Install %s now"
 msgstr "现在安装 %s"
 
 #. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:540
+#: ../contrib/browser-plugin/pk-plugin-install.c:544
 msgid "Version"
 msgstr "版本"
 
 #. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/pk-plugin-install.c:545
+#: ../contrib/browser-plugin/pk-plugin-install.c:549
 msgid "No packages found for your system"
 msgstr "未能为您的系统找到软件包"
 
 #. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/pk-plugin-install.c:550
+#: ../contrib/browser-plugin/pk-plugin-install.c:554
 msgid "Installing..."
 msgstr "正在安装……"
 
 #. TRANSLATORS: downloading repo data so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:366
+#: ../contrib/command-not-found/pk-command-not-found.c:363
 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:370
+#: ../contrib/command-not-found/pk-command-not-found.c:367
 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:374
+#: ../contrib/command-not-found/pk-command-not-found.c:371
 msgid "Waiting for package manager lock."
 msgstr "正在等待软件包管理器锁。"
 
 #. TRANSLATORS: loading package cache so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:378
+#: ../contrib/command-not-found/pk-command-not-found.c:375
 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:444
+#: ../contrib/command-not-found/pk-command-not-found.c:439
 msgid "Failed to search for file"
 msgstr "文件搜索失败"
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
-#: ../contrib/command-not-found/pk-command-not-found.c:456
+#: ../contrib/command-not-found/pk-command-not-found.c:451
 msgid "Getting the list of files failed"
-msgstr ""
+msgstr "获取文件列表失败"
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:602
+#: ../contrib/command-not-found/pk-command-not-found.c:597
 msgid "Failed to launch:"
 msgstr "启动失败:"
 
 #. TRANSLATORS: we failed to install the package
-#: ../contrib/command-not-found/pk-command-not-found.c:630
+#: ../contrib/command-not-found/pk-command-not-found.c:625
 msgid "Failed to install packages"
 msgstr "安装软件包失败"
 
-#. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/command-not-found/pk-command-not-found.c:706
-msgid "PackageKit Command Not Found"
-msgstr "PackageKit 命令未找到"
-
 #. TRANSLATORS: the prefix of all the output telling the user
 #. * why it's not executing. NOTE: this is lowercase to mimic
 #. * the style of bash itself -- apologies
-#: ../contrib/command-not-found/pk-command-not-found.c:741
+#: ../contrib/command-not-found/pk-command-not-found.c:723
 msgid "command not found"
-msgstr ""
+msgstr "未找到命令"
 
 #. TRANSLATORS: tell the user what we think the command is
-#: ../contrib/command-not-found/pk-command-not-found.c:759
+#: ../contrib/command-not-found/pk-command-not-found.c:741
 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:773
+#: ../contrib/command-not-found/pk-command-not-found.c:755
 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:787
-#: ../contrib/command-not-found/pk-command-not-found.c:796
+#: ../contrib/command-not-found/pk-command-not-found.c:769
+#: ../contrib/command-not-found/pk-command-not-found.c:778
 msgid "Similar commands are:"
 msgstr "相似命令是:"
 
 #. TRANSLATORS: ask the user to choose a file to run
-#: ../contrib/command-not-found/pk-command-not-found.c:803
+#: ../contrib/command-not-found/pk-command-not-found.c:785
 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:821
+#: ../contrib/command-not-found/pk-command-not-found.c:803
 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:828
+#: ../contrib/command-not-found/pk-command-not-found.c:810
 #, 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:855
+#: ../contrib/command-not-found/pk-command-not-found.c:837
 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:865
+#: ../contrib/command-not-found/pk-command-not-found.c:847
 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:874
+#: ../contrib/command-not-found/pk-command-not-found.c:856
 msgid "Please choose a package to install"
 msgstr "请选择要安装的软件包"
 
@@ -1037,7 +1035,7 @@ msgstr "在模拟模式中模拟安装软件包"
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
 #. TRANSLATORS: transaction state, installing packages
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:860
-#: ../lib/packagekit-glib2/pk-console-shared.c:296
+#: ../lib/packagekit-glib2/pk-console-shared.c:331
 #, c-format
 msgid "Installing packages"
 msgstr "正在安装软件包"
@@ -1171,474 +1169,474 @@ msgstr "PackageKit 软件包列表"
 msgid "PackageKit Service Pack"
 msgstr "PackageKit 服务包"
 
-#: ../lib/packagekit-glib2/pk-console-shared.c:64
+#: ../lib/packagekit-glib2/pk-console-shared.c:65
 #, c-format
 msgid "Please enter a number from 1 to %i: "
 msgstr "请输入一个从 1 到 %i 之间的数:"
 
 #. TRANSLATORS: more than one package could be found that matched, to follow
 #. is a list of possible packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:198
+#: ../lib/packagekit-glib2/pk-console-shared.c:233
 msgid "More than one package matches:"
 msgstr "超过一个软件包匹配:"
 
 #. TRANSLATORS: This finds out which package in the list to use
-#: ../lib/packagekit-glib2/pk-console-shared.c:209
+#: ../lib/packagekit-glib2/pk-console-shared.c:244
 msgid "Please choose the correct package: "
 msgstr "请选择正确的软件包:"
 
 #. TRANSLATORS: This is when the transaction status is not known
-#: ../lib/packagekit-glib2/pk-console-shared.c:264
+#: ../lib/packagekit-glib2/pk-console-shared.c:299
 msgid "Unknown state"
 msgstr "未知状态"
 
 #. TRANSLATORS: transaction state, the daemon is in the process of starting
-#: ../lib/packagekit-glib2/pk-console-shared.c:268
+#: ../lib/packagekit-glib2/pk-console-shared.c:303
 msgid "Starting"
 msgstr "正在启动"
 
 #. TRANSLATORS: transaction state, the transaction is waiting for another to
 #. complete
-#: ../lib/packagekit-glib2/pk-console-shared.c:272
+#: ../lib/packagekit-glib2/pk-console-shared.c:307
 msgid "Waiting in queue"
 msgstr "正在队列中等待"
 
 #. TRANSLATORS: transaction state, just started
-#: ../lib/packagekit-glib2/pk-console-shared.c:276
+#: ../lib/packagekit-glib2/pk-console-shared.c:311
 msgid "Running"
 msgstr "正在运行"
 
 #. TRANSLATORS: transaction state, is querying data
-#: ../lib/packagekit-glib2/pk-console-shared.c:280
+#: ../lib/packagekit-glib2/pk-console-shared.c:315
 msgid "Querying"
 msgstr "正在查询"
 
 #. TRANSLATORS: transaction state, getting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:284
+#: ../lib/packagekit-glib2/pk-console-shared.c:319
 msgid "Getting information"
 msgstr "正在获取信息"
 
 #. TRANSLATORS: transaction state, removing packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:288
+#: ../lib/packagekit-glib2/pk-console-shared.c:323
 msgid "Removing packages"
 msgstr "正在删除软件包"
 
 #. TRANSLATORS: transaction state, downloading package files
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:292
-#: ../lib/packagekit-glib2/pk-console-shared.c:670
+#: ../lib/packagekit-glib2/pk-console-shared.c:327
+#: ../lib/packagekit-glib2/pk-console-shared.c:705
 msgid "Downloading packages"
 msgstr "正在下载软件包"
 
 #. TRANSLATORS: transaction state, refreshing internal lists
-#: ../lib/packagekit-glib2/pk-console-shared.c:300
+#: ../lib/packagekit-glib2/pk-console-shared.c:335
 msgid "Refreshing software list"
 msgstr "正在刷新软件列表"
 
 #. TRANSLATORS: transaction state, installing updates
-#: ../lib/packagekit-glib2/pk-console-shared.c:304
+#: ../lib/packagekit-glib2/pk-console-shared.c:339
 msgid "Installing updates"
 msgstr "正在安装更新"
 
 #. TRANSLATORS: transaction state, removing old packages, and cleaning config
 #. files
-#: ../lib/packagekit-glib2/pk-console-shared.c:308
+#: ../lib/packagekit-glib2/pk-console-shared.c:343
 msgid "Cleaning up packages"
 msgstr "正在清理软件包"
 
 #. TRANSLATORS: transaction state, obsoleting old packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:312
+#: ../lib/packagekit-glib2/pk-console-shared.c:347
 msgid "Obsoleting packages"
 msgstr "正在废弃软件包"
 
 #. TRANSLATORS: transaction state, checking the transaction before we do it
-#: ../lib/packagekit-glib2/pk-console-shared.c:316
+#: ../lib/packagekit-glib2/pk-console-shared.c:351
 msgid "Resolving dependencies"
 msgstr "正在解析依赖"
 
 #. TRANSLATORS: transaction state, checking if we have all the security keys
 #. for the operation
-#: ../lib/packagekit-glib2/pk-console-shared.c:320
+#: ../lib/packagekit-glib2/pk-console-shared.c:355
 msgid "Checking signatures"
 msgstr "正在检查签名"
 
 #. TRANSLATORS: transaction state, when we return to a previous system state
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:324
-#: ../lib/packagekit-glib2/pk-console-shared.c:630
+#: ../lib/packagekit-glib2/pk-console-shared.c:359
+#: ../lib/packagekit-glib2/pk-console-shared.c:665
 msgid "Rolling back"
 msgstr "正在回滚"
 
 #. TRANSLATORS: transaction state, when we're doing a test transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:328
+#: ../lib/packagekit-glib2/pk-console-shared.c:363
 msgid "Testing changes"
 msgstr "正在测试更改"
 
 #. TRANSLATORS: transaction state, when we're writing to the system package
 #. database
-#: ../lib/packagekit-glib2/pk-console-shared.c:332
+#: ../lib/packagekit-glib2/pk-console-shared.c:367
 msgid "Committing changes"
 msgstr "正在记下更改"
 
 #. TRANSLATORS: transaction state, requesting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:336
+#: ../lib/packagekit-glib2/pk-console-shared.c:371
 msgid "Requesting data"
 msgstr "正在请求数据"
 
 #. TRANSLATORS: transaction state, all done!
-#: ../lib/packagekit-glib2/pk-console-shared.c:340
+#: ../lib/packagekit-glib2/pk-console-shared.c:375
 msgid "Finished"
 msgstr "已完成"
 
 #. TRANSLATORS: transaction state, in the process of cancelling
-#: ../lib/packagekit-glib2/pk-console-shared.c:344
+#: ../lib/packagekit-glib2/pk-console-shared.c:379
 msgid "Cancelling"
 msgstr "正在取消"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:348
+#: ../lib/packagekit-glib2/pk-console-shared.c:383
 msgid "Downloading repository information"
 msgstr "正在下载软件仓库信息"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:352
+#: ../lib/packagekit-glib2/pk-console-shared.c:387
 msgid "Downloading list of packages"
 msgstr "正在下载软件包列表"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:356
+#: ../lib/packagekit-glib2/pk-console-shared.c:391
 msgid "Downloading file lists"
 msgstr "正在下载文件列表"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:360
+#: ../lib/packagekit-glib2/pk-console-shared.c:395
 msgid "Downloading lists of changes"
 msgstr "正在下载更改列表"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:364
+#: ../lib/packagekit-glib2/pk-console-shared.c:399
 msgid "Downloading groups"
 msgstr "正在下载组"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:368
+#: ../lib/packagekit-glib2/pk-console-shared.c:403
 msgid "Downloading update information"
 msgstr "正在下载更新信息"
 
 #. TRANSLATORS: transaction state, repackaging delta files
-#: ../lib/packagekit-glib2/pk-console-shared.c:372
+#: ../lib/packagekit-glib2/pk-console-shared.c:407
 msgid "Repackaging files"
 msgstr "正在重新打包文件"
 
 #. TRANSLATORS: transaction state, loading databases
-#: ../lib/packagekit-glib2/pk-console-shared.c:376
+#: ../lib/packagekit-glib2/pk-console-shared.c:411
 msgid "Loading cache"
 msgstr "正在装入缓存"
 
 #. TRANSLATORS: transaction state, scanning for running processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:380
+#: ../lib/packagekit-glib2/pk-console-shared.c:415
 msgid "Scanning applications"
 msgstr "正在扫描应用程序"
 
 #. TRANSLATORS: transaction state, generating a list of packages installed on
 #. the system
-#: ../lib/packagekit-glib2/pk-console-shared.c:384
+#: ../lib/packagekit-glib2/pk-console-shared.c:419
 msgid "Generating package lists"
 msgstr "正在生成软件包列表"
 
 #. TRANSLATORS: transaction state, when we're waiting for the native tools to
 #. exit
-#: ../lib/packagekit-glib2/pk-console-shared.c:388
+#: ../lib/packagekit-glib2/pk-console-shared.c:423
 msgid "Waiting for package manager lock"
 msgstr "正在等待软件包管理器锁"
 
 #. TRANSLATORS: transaction state, waiting for user to type in a password
-#: ../lib/packagekit-glib2/pk-console-shared.c:392
+#: ../lib/packagekit-glib2/pk-console-shared.c:427
 msgid "Waiting for authentication"
 msgstr "正在等待认证"
 
 #. TRANSLATORS: transaction state, we are updating the list of processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:396
+#: ../lib/packagekit-glib2/pk-console-shared.c:431
 msgid "Updating running applications"
 msgstr "正在更新运行中的应用程序"
 
 #. TRANSLATORS: transaction state, we are checking executable files currently
 #. in use
-#: ../lib/packagekit-glib2/pk-console-shared.c:400
+#: ../lib/packagekit-glib2/pk-console-shared.c:435
 msgid "Checking applications in use"
 msgstr "正在检查使用中的应用程序"
 
 #. TRANSLATORS: transaction state, we are checking for libraries currently in
 #. use
-#: ../lib/packagekit-glib2/pk-console-shared.c:404
+#: ../lib/packagekit-glib2/pk-console-shared.c:439
 msgid "Checking libraries in use"
 msgstr "正在检查使用中的库"
 
 #. TRANSLATORS: transaction state, we are copying package files before or
 #. after the transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:408
+#: ../lib/packagekit-glib2/pk-console-shared.c:443
 msgid "Copying files"
 msgstr "正在复制文件"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:426
+#: ../lib/packagekit-glib2/pk-console-shared.c:461
 msgid "Trivial"
 msgstr "琐碎"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:430
+#: ../lib/packagekit-glib2/pk-console-shared.c:465
 msgid "Normal"
 msgstr "普通"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:434
+#: ../lib/packagekit-glib2/pk-console-shared.c:469
 msgid "Important"
 msgstr "重要"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:438
+#: ../lib/packagekit-glib2/pk-console-shared.c:473
 msgid "Security"
 msgstr "安全"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:442
+#: ../lib/packagekit-glib2/pk-console-shared.c:477
 msgid "Bug fix "
 msgstr "缺陷修复"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:446
+#: ../lib/packagekit-glib2/pk-console-shared.c:481
 msgid "Enhancement"
 msgstr "增强"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:450
+#: ../lib/packagekit-glib2/pk-console-shared.c:485
 msgid "Blocked"
 msgstr "屏蔽"
 
 #. TRANSLATORS: The state of a package
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:455
-#: ../lib/packagekit-glib2/pk-console-shared.c:528
+#: ../lib/packagekit-glib2/pk-console-shared.c:490
+#: ../lib/packagekit-glib2/pk-console-shared.c:563
 msgid "Installed"
 msgstr "已安装"
 
 #. TRANSLATORS: The state of a package, i.e. not installed
-#: ../lib/packagekit-glib2/pk-console-shared.c:460
+#: ../lib/packagekit-glib2/pk-console-shared.c:495
 msgid "Available"
 msgstr "可用"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:478
+#: ../lib/packagekit-glib2/pk-console-shared.c:513
 msgid "Downloading"
 msgstr "正在下载"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:482
+#: ../lib/packagekit-glib2/pk-console-shared.c:517
 msgid "Updating"
 msgstr "正在更新"
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:486
-#: ../lib/packagekit-glib2/pk-console-shared.c:606
+#: ../lib/packagekit-glib2/pk-console-shared.c:521
+#: ../lib/packagekit-glib2/pk-console-shared.c:641
 msgid "Installing"
 msgstr "正在安装"
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:490
-#: ../lib/packagekit-glib2/pk-console-shared.c:602
+#: ../lib/packagekit-glib2/pk-console-shared.c:525
+#: ../lib/packagekit-glib2/pk-console-shared.c:637
 msgid "Removing"
 msgstr "正在删除"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:494
+#: ../lib/packagekit-glib2/pk-console-shared.c:529
 msgid "Cleaning up"
 msgstr "正在清理"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:498
+#: ../lib/packagekit-glib2/pk-console-shared.c:533
 msgid "Obsoleting"
 msgstr "正在废弃"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:502
+#: ../lib/packagekit-glib2/pk-console-shared.c:537
 msgid "Reinstalling"
 msgstr "正在重新安装"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:520
+#: ../lib/packagekit-glib2/pk-console-shared.c:555
 msgid "Downloaded"
 msgstr "已下载"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:532
+#: ../lib/packagekit-glib2/pk-console-shared.c:567
 msgid "Removed"
 msgstr "已移除"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:536
+#: ../lib/packagekit-glib2/pk-console-shared.c:571
 msgid "Cleaned up"
 msgstr "已清理"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:540
+#: ../lib/packagekit-glib2/pk-console-shared.c:575
 msgid "Obsoleted"
 msgstr "已废弃"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:544
+#: ../lib/packagekit-glib2/pk-console-shared.c:579
 msgid "Reinstalled"
 msgstr "已重新安装"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:562
+#: ../lib/packagekit-glib2/pk-console-shared.c:597
 msgid "Unknown role type"
 msgstr "未知角色类型"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:566
+#: ../lib/packagekit-glib2/pk-console-shared.c:601
 msgid "Getting dependencies"
 msgstr "获取依赖关系"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:570
+#: ../lib/packagekit-glib2/pk-console-shared.c:605
 msgid "Getting update details"
 msgstr "获取更新细节"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:574
+#: ../lib/packagekit-glib2/pk-console-shared.c:609
 msgid "Getting details"
 msgstr "获取细节"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:578
+#: ../lib/packagekit-glib2/pk-console-shared.c:613
 msgid "Getting requires"
 msgstr "获取依赖描述"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:582
+#: ../lib/packagekit-glib2/pk-console-shared.c:617
 msgid "Getting updates"
 msgstr "获取更新"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:586
+#: ../lib/packagekit-glib2/pk-console-shared.c:621
 msgid "Searching by details"
 msgstr "按细节搜索"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:590
+#: ../lib/packagekit-glib2/pk-console-shared.c:625
 msgid "Searching by file"
 msgstr "按文件搜索"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:594
+#: ../lib/packagekit-glib2/pk-console-shared.c:629
 msgid "Searching groups"
 msgstr "搜索组"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:598
+#: ../lib/packagekit-glib2/pk-console-shared.c:633
 msgid "Searching by name"
 msgstr "按名称搜索"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:610
+#: ../lib/packagekit-glib2/pk-console-shared.c:645
 msgid "Installing files"
 msgstr "安装文件"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:614
+#: ../lib/packagekit-glib2/pk-console-shared.c:649
 msgid "Refreshing cache"
 msgstr "刷新缓存"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:618
+#: ../lib/packagekit-glib2/pk-console-shared.c:653
 msgid "Updating packages"
 msgstr "更新软件包"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:622
+#: ../lib/packagekit-glib2/pk-console-shared.c:657
 msgid "Updating system"
 msgstr "更新系统"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:626
+#: ../lib/packagekit-glib2/pk-console-shared.c:661
 msgid "Canceling"
 msgstr "取消"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:634
+#: ../lib/packagekit-glib2/pk-console-shared.c:669
 msgid "Getting repositories"
 msgstr "获取软件仓库"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:638
+#: ../lib/packagekit-glib2/pk-console-shared.c:673
 msgid "Enabling repository"
 msgstr "启用软件仓库"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:642
+#: ../lib/packagekit-glib2/pk-console-shared.c:677
 msgid "Setting data"
 msgstr "设置数据"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:646
+#: ../lib/packagekit-glib2/pk-console-shared.c:681
 msgid "Resolving"
 msgstr "解析"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:650
+#: ../lib/packagekit-glib2/pk-console-shared.c:685
 msgid "Getting file list"
 msgstr "获取文件列表"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:654
+#: ../lib/packagekit-glib2/pk-console-shared.c:689
 msgid "Getting provides"
 msgstr "获取提供描述"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:658
+#: ../lib/packagekit-glib2/pk-console-shared.c:693
 msgid "Installing signature"
 msgstr "安装签名"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:662
+#: ../lib/packagekit-glib2/pk-console-shared.c:697
 msgid "Getting packages"
 msgstr "获取软件包"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:666
+#: ../lib/packagekit-glib2/pk-console-shared.c:701
 msgid "Accepting EULA"
 msgstr "接受最终用户许可协议(EULA)"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:674
+#: ../lib/packagekit-glib2/pk-console-shared.c:709
 msgid "Getting upgrades"
 msgstr "获取升级"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:678
+#: ../lib/packagekit-glib2/pk-console-shared.c:713
 msgid "Getting categories"
 msgstr "获取类别"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:682
+#: ../lib/packagekit-glib2/pk-console-shared.c:717
 msgid "Getting transactions"
 msgstr "获取事务"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:686
-#: ../lib/packagekit-glib2/pk-console-shared.c:690
+#: ../lib/packagekit-glib2/pk-console-shared.c:721
+#: ../lib/packagekit-glib2/pk-console-shared.c:725
 msgid "Simulating install"
 msgstr "模拟安装"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:694
+#: ../lib/packagekit-glib2/pk-console-shared.c:729
 msgid "Simulating remove"
 msgstr "模拟删除"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:698
+#: ../lib/packagekit-glib2/pk-console-shared.c:733
 msgid "Simulating update"
 msgstr "模拟更新"
 
@@ -1788,13 +1786,19 @@ msgstr "下列软件包必须重新安装:"
 msgid "The following packages have to be downgraded:"
 msgstr "下列软件包必须降级:"
 
+#. TRANSLATORS: When processing, untrusted and non-verified packages may be
+#. encountered
+#: ../lib/packagekit-glib2/pk-task-text.c:325
+msgid "The following packages are untrusted:"
+msgstr "以下是未信任软件包:"
+
 #. TRANSLATORS: ask the user if the proposed changes are okay
-#: ../lib/packagekit-glib2/pk-task-text.c:380
+#: ../lib/packagekit-glib2/pk-task-text.c:385
 msgid "Proceed with changes?"
 msgstr "继续更改?"
 
 #. TRANSLATORS: tell the user we didn't do anything
-#: ../lib/packagekit-glib2/pk-task-text.c:385
+#: ../lib/packagekit-glib2/pk-task-text.c:390
 msgid "The transaction did not proceed."
 msgstr "事务未继续。"
 
@@ -1869,7 +1873,7 @@ msgstr "更新软件包需要认证"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:21
 msgid "Authentication is required to upgrade the operating system"
-msgstr ""
+msgstr "升级操作系统需要认证"
 
 #. SECURITY:
 #. - Normal users are allowed to cancel their own task without
@@ -1996,98 +2000,70 @@ msgstr "更新软件包"
 #. 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:109
 msgid "Upgrade System"
-msgstr ""
-
-#. TRANSLATORS: failed due to DBus security
-#: ../src/pk-main.c:91
-msgid "Startup failed due to security policies on this machine."
-msgstr "由于这台机器上的安全策略造成启动失败。"
-
-#. TRANSLATORS: only two ways this can fail...
-#: ../src/pk-main.c:93
-msgid "This can happen for two reasons:"
-msgstr "发生此问题有两个原因:"
-
-#. TRANSLATORS: only allowed to be owned by root
-#: ../src/pk-main.c:95
-msgid "The correct user is not launching the executable (usually root)"
-msgstr "错误的用户正在启动该可执行文件(通常应该是根用户)"
-
-#. TRANSLATORS: or we are installed in a prefix
-#: ../src/pk-main.c:97
-msgid ""
-"The org.freedesktop.PackageKit.conf file is not installed in the system "
-"directory:"
-msgstr "org.freedesktop.PackageKit.conf 文件未安装在系统目录中:"
+msgstr "升级系统"
 
 #. TRANSLATORS: a backend is the system package tool, e.g. yum, apt
-#: ../src/pk-main.c:223
+#: ../src/pk-main.c:149
 msgid "Packaging backend to use, e.g. dummy"
 msgstr "要使用的打包后端,例如 dummy"
 
 #. TRANSLATORS: if we should run in the background
-#: ../src/pk-main.c:226
+#: ../src/pk-main.c:152
 msgid "Daemonize and detach from the terminal"
 msgstr "转为守护进程并脱离终端"
 
 #. TRANSLATORS: if we should not monitor how long we are inactive for
-#: ../src/pk-main.c:229
+#: ../src/pk-main.c:155
 msgid "Disable the idle timer"
 msgstr "禁用空闲计时器"
 
 #. TRANSLATORS: show version
-#: ../src/pk-main.c:232
+#: ../src/pk-main.c:158
 msgid "Show version and exit"
 msgstr "显示版本并退出"
 
 #. TRANSLATORS: exit after we've started up, used for user profiling
-#: ../src/pk-main.c:235
+#: ../src/pk-main.c:161
 msgid "Exit after a small delay"
 msgstr "短暂延迟后退出"
 
 #. TRANSLATORS: exit straight away, used for automatic profiling
-#: ../src/pk-main.c:238
+#: ../src/pk-main.c:164
 msgid "Exit after the engine has loaded"
 msgstr "引擎装入后退出"
 
+#. TRANSLATORS: don't unset environment variables, used for debugging
+#: ../src/pk-main.c:167
+msgid "Don't clear environment on startup"
+msgstr "在启动时不要清除环境"
+
 #. TRANSLATORS: describing the service that is running
-#: ../src/pk-main.c:253
+#: ../src/pk-main.c:179
 msgid "PackageKit service"
 msgstr "PackageKit 服务"
 
-#. TRANSLATORS: fatal error, dbus is not running
-#: ../src/pk-main.c:298
-msgid "Cannot connect to the system bus"
-msgstr "不能连接到系统 dbus"
-
-#: ../src/pk-main.c:344
+#: ../src/pk-main.c:253
 msgid "Failed to load any of the specified backends:"
-msgstr ""
-
-#. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error
-#. follows
-#: ../src/pk-main.c:358
-msgid "Error trying to start:"
-msgstr "尝试启动出错:"
+msgstr "加载指定的后端失败:"
 
 #. TRANSLATORS: is not GPG signed
-#: ../src/pk-transaction.c:2611 ../src/pk-transaction.c:2618
+#: ../src/pk-transaction.c:2696
 msgid "The software is not from a trusted source."
 msgstr "此软件不是来自受信任源。"
 
-#: ../src/pk-transaction.c:2623
+#: ../src/pk-transaction.c:2704
 msgid "Do not update this package unless you are sure it is safe to do so."
 msgstr "不要更新这个软件包,除非您确信这么做是安全的。"
 
-#: ../src/pk-transaction.c:2624
+#: ../src/pk-transaction.c:2705
 msgid "Do not update these packages unless you are sure it is safe to do so."
 msgstr "不要更新这些软件包,除非您确信这么做是安全的。"
 
-#: ../src/pk-transaction.c:2634
+#: ../src/pk-transaction.c:2715
 msgid "Do not install this package unless you are sure it is safe to do so."
 msgstr "不要安装这些软件包,除非您确信这么做是安全的。"
 
-#: ../src/pk-transaction.c:2635
+#: ../src/pk-transaction.c:2716
 msgid "Do not install these packages unless you are sure it is safe to do so."
 msgstr "不要安装这些软件包,除非您确信这么做是安全的。"
 
commit bcd7e485625b3ac415835d5b2b2542fed54aa39e
Author: Richard Hughes <richard at hughsie.com>
Date:   Tue Jan 17 16:57:31 2012 +0000

    Allow PK to build without an installed PackageKitGlib-1.0
    
    Many thanks to Christophe Fergeau for telling me how to fix it.

diff --git a/src/Makefile.am b/src/Makefile.am
index 7526a6f..4309e52 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -245,14 +245,15 @@ libpkplugins_la_CFLAGS =				\
 	$(WARNINGFLAGS_C)				\
 	$(NULL)
 
-PackageKitPlugin-1.0.gir: $(plugininclude_GIRSOURCES)
-PackageKitPlugin_1_0_gir_INCLUDES = GObject-2.0 Gio-2.0 PackageKitGlib-1.0
+PackageKitPlugin-1.0.gir: libpkplugins.la $(plugininclude_GIRSOURCES)
+PackageKitPlugin_1_0_gir_INCLUDES = GObject-2.0 Gio-2.0
 PackageKitPlugin_1_0_gir_CFLAGS = $(INCLUDES)						\
 				-DI_KNOW_THE_PACKAGEKIT_GLIB2_API_IS_SUBJECT_TO_CHANGE	\
 				-DI_KNOW_THE_PACKAGEKIT_PLUGIN_API_IS_SUBJECT_TO_CHANGE
 PackageKitPlugin_1_0_gir_SCANNERFLAGS = --identifier-prefix=Pk \
 					--symbol-prefix=pk_ \
 					--warn-all \
+					--include-uninstalled=$(top_builddir)/lib/packagekit-glib2/PackageKitGlib-1.0.gir \
 					--add-include-path=$(srcdir) \
 					--add-include-path=$(top_builddir)/lib/packagekit-glib2 \
 					--library-path=$(top_builddir)/lib/packagekit-glib2 \
commit 0d771b6666b88e0ab17644f65b12a9c4c47c0a81
Author: Richard Hughes <richard at hughsie.com>
Date:   Tue Jan 17 16:46:27 2012 +0000

    trivial: fix up a couple of GIR annotations

diff --git a/lib/packagekit-glib2/pk-client.c b/lib/packagekit-glib2/pk-client.c
index 7b1bd75..f6d4026 100644
--- a/lib/packagekit-glib2/pk-client.c
+++ b/lib/packagekit-glib2/pk-client.c
@@ -4788,7 +4788,6 @@ out:
 /**
  * pk_client_simulate_repair_system_async:
  * @client: a valid #PkClient instance
- * @only_trusted: only trusted packages should be installed
  * @cancellable: a #GCancellable or %NULL
  * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
diff --git a/lib/packagekit-glib2/pk-enum.c b/lib/packagekit-glib2/pk-enum.c
index e5bea19..3664c1c 100644
--- a/lib/packagekit-glib2/pk-enum.c
+++ b/lib/packagekit-glib2/pk-enum.c
@@ -1161,7 +1161,7 @@ pk_info_enum_to_localised_past (PkInfoEnum info)
 
 /**
  * pk_role_enum_to_localised_present:
- * @info: The enumerated type value
+ * @role: The enumerated type value
  * 
  * Converts a enumerated type to its localized description
  *
commit ea5975505610ef3f72a7a0b7ecfb3f37995fc5f0
Author: Richard Hughes <richard at hughsie.com>
Date:   Tue Jan 17 14:23:47 2012 +0000

    trivial: remove the now useless PkProc self test code

diff --git a/src/plugins/pk-self-test.c b/src/plugins/pk-self-test.c
index 53399c4..fc52814 100644
--- a/src/plugins/pk-self-test.c
+++ b/src/plugins/pk-self-test.c
@@ -88,23 +88,6 @@ pk_test_lsof_func (void)
 	g_object_unref (lsof);
 }
 
-static void
-pk_test_proc_func (void)
-{
-	gboolean ret;
-	PkProc *proc;
-//	gchar *files[] = { "/sbin/udevd", NULL };
-
-	proc = pk_proc_new ();
-	g_assert (proc != NULL);
-
-	/* refresh proc data */
-	ret = pk_proc_refresh (proc);
-	g_assert (ret);
-
-	g_object_unref (proc);
-}
-
 int
 main (int argc, char **argv)
 {
@@ -112,7 +95,6 @@ main (int argc, char **argv)
 	g_test_init (&argc, &argv, NULL);
 
 	g_test_add_func ("/plugins/lsof", pk_test_lsof_func);
-	g_test_add_func ("/plugins/proc", pk_test_proc_func);
 
 	return g_test_run ();
 }
commit ee55366801e67af3f0624113a2eda7b3429b7b3e
Author: Ryan Lortie <desrt at desrt.ca>
Date:   Wed Jan 11 16:17:17 2012 +0100

    Fix builddir != srcdir issue
    
    Because pk-version.h ends up in the build directory, we need to ensure
    that we look there when searching for includes.
    
    https://bugs.freedesktop.org/show_bug.cgi?id=44678
    
    Signed-off-by: Richard Hughes <richard at hughsie.com>

diff --git a/client/Makefile.am b/client/Makefile.am
index a1bff21..6458065 100644
--- a/client/Makefile.am
+++ b/client/Makefile.am
@@ -45,6 +45,7 @@ INCLUDES =						\
 	-DI_KNOW_THE_PACKAGEKIT_GLIB2_API_IS_SUBJECT_TO_CHANGE	\
 	-DPK_COMPILATION				\
 	-DG_LOG_DOMAIN=\"PackageKit\"			\
+	-I$(top_builddir)/lib				\
 	-I$(top_srcdir)/lib				\
 	$(NULL)
 
diff --git a/contrib/command-not-found/Makefile.am b/contrib/command-not-found/Makefile.am
index 6451314..0c72c16 100644
--- a/contrib/command-not-found/Makefile.am
+++ b/contrib/command-not-found/Makefile.am
@@ -10,6 +10,7 @@ INCLUDES =						\
 	-DPK_COMPILATION				\
 	-DPACKAGE_LOCALE_DIR=\"$(localedir)\"		\
 	-DSYSCONFDIR=\""$(sysconfdir)"\" 		\
+	-I$(top_builddir)/lib				\
 	-I$(top_srcdir)/lib
 
 libexec_PROGRAMS = pk-command-not-found
diff --git a/contrib/debuginfo-install/Makefile.am b/contrib/debuginfo-install/Makefile.am
index 83d6e00..9d8b8ba 100644
--- a/contrib/debuginfo-install/Makefile.am
+++ b/contrib/debuginfo-install/Makefile.am
@@ -23,6 +23,7 @@ INCLUDES =						\
 	-DI_KNOW_THE_PACKAGEKIT_GLIB2_API_IS_SUBJECT_TO_CHANGE	\
 	-DPACKAGE_LOCALE_DIR=\"$(localedir)\"		\
 	-DSYSCONFDIR=\""$(sysconfdir)"\" 		\
+	-I$(top_builddir)/lib				\
 	-I$(top_srcdir)/lib
 
 bin_PROGRAMS = pk-debuginfo-install
diff --git a/contrib/gstreamer-plugin/Makefile.am b/contrib/gstreamer-plugin/Makefile.am
index 6b1b279..b62cac6 100644
--- a/contrib/gstreamer-plugin/Makefile.am
+++ b/contrib/gstreamer-plugin/Makefile.am
@@ -14,6 +14,7 @@ INCLUDES =						\
 	-DVERSION="\"$(VERSION)\"" 			\
 	-DPK_DATA=\"$(pkgdatadir)\"			\
 	-DPK_DB_DIR=\""$(PK_DB_DIR)"\" 			\
+	-I$(top_builddir)/lib				\
 	-I$(top_srcdir)/lib				\
 	$(NULL)
 
diff --git a/src/Makefile.am b/src/Makefile.am
index f88d204..7526a6f 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -41,6 +41,7 @@ INCLUDES =						\
 	-DPK_COMPILATION				\
 	-DPOLKIT_LOCAL_I_KNOW_API_IS_SUBJECT_TO_CHANGE	\
 	-DG_LOG_DOMAIN=\"PackageKit\"			\
+	-I$(top_builddir)/lib				\
 	-I$(top_srcdir)/lib				\
 	$(NULL)
 
commit 2b5e83755bf6a11da53361f9ec042aba13c7adf4
Author: Matthias Klumpp <matthias at tenstral.net>
Date:   Tue Jan 10 16:37:09 2012 +0100

    Make PkProc part of the daemon (again)
    
    This will solve a very weird issue if a plugin tries
    to create a PkProc instance.
    (All "cannot register existing type `PkProc'" errors,
    which occur on some platforms should be gone)
    The unit is moved to src/ now.

diff --git a/src/Makefile.am b/src/Makefile.am
index 868ac47..f88d204 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -89,6 +89,8 @@ shared_SOURCES =					\
 	pk-network-stack-unix.h				\
 	pk-network-stack-nm.h				\
 	pk-network-stack-connman.h			\
+	pk-proc.c					\
+	pk-proc.h					\
 	pk-syslog.h					\
 	pk-syslog.c					\
 	pk-conf.c					\
diff --git a/src/pk-proc.c b/src/pk-proc.c
new file mode 100644
index 0000000..11690fc
--- /dev/null
+++ b/src/pk-proc.c
@@ -0,0 +1,362 @@
+/* -*- 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifdef HAVE_CONFIG_H
+#  include <config.h>
+#endif
+
+#include <string.h>
+#include <stdlib.h>
+#include <glib.h>
+
+#include "pk-proc.h"
+
+#define PK_PROC_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), PK_TYPE_PROC, PkProcPrivate))
+
+struct PkProcPrivate
+{
+	GPtrArray		*list_data;
+};
+
+G_DEFINE_TYPE (PkProc, pk_proc, G_TYPE_OBJECT)
+
+typedef struct {
+	gchar			*cmdline;
+	guint			 pid;
+	guint			 uid;
+} PkProcData;
+
+/**
+ * pk_proc_data_free:
+ **/
+static void
+pk_proc_data_free (PkProcData *proc)
+{
+	g_free (proc->cmdline);
+	g_free (proc);
+}
+
+/**
+ * pk_proc_data_new:
+ **/
+static PkProcData *
+pk_proc_data_new (const gchar *cmdline, guint pid, guint uid)
+{
+	PkProcData *data;
+	data = g_new0 (PkProcData, 1);
+	data->pid = pid;
+	data->uid = uid;
+	data->cmdline = g_strdup (cmdline);
+	return data;
+}
+
+/**
+ * pk_proc_refresh_find_file:
+ **/
+static gchar *
+pk_proc_refresh_find_file (const gchar *filename)
+{
+	gchar *path;
+	gboolean ret;
+	guint i;
+	const gchar *paths[] = { "/usr/bin", "/usr/sbin", "/bin", "/sbin", "/usr/libexec", "/usr/lib/vte/", NULL };
+
+	/* try each one */
+	for (i=0; paths[i] != NULL; i++) {
+		path = g_build_filename (paths[i], filename, NULL);
+		ret = g_file_test (path, G_FILE_TEST_IS_REGULAR);
+		if (ret)
+			goto out;
+		g_free (path);
+	}
+
+	/* we failed */
+	path = NULL;
+out:
+	return path;
+}
+
+/**
+ * pk_strtoint:
+ **/
+static gboolean
+pk_strtoint (const gchar *text, gint *value)
+{
+	gchar *endptr = NULL;
+	gint64 value_raw;
+
+	value_raw = g_ascii_strtoll (text, &endptr, 10);
+	if (endptr == text)
+		return FALSE;
+
+	/* out of range */
+	if (value_raw > G_MAXINT || value_raw < G_MININT)
+		return FALSE;
+
+	/* cast back down to value */
+	*value = (gint) value_raw;
+	return TRUE;
+}
+
+/**
+ * pk_proc_refresh_add_file:
+ **/
+static gboolean
+pk_proc_refresh_add_file (PkProc *proc, const gchar *pid_text, const gchar *path)
+{
+	gboolean ret = FALSE;
+	GError *error = NULL;
+	gchar *cmdline = NULL;
+	gint pid = -1;
+	gint uid;
+	PkProcData *data;
+	gchar *cmdline_full = NULL;
+	gchar *offset;
+	gchar *uid_file = NULL;
+	gchar *contents = NULL;
+
+	/* get cmdline */
+	ret = g_file_get_contents (path, &cmdline, NULL, &error);
+	if (!ret) {
+		g_warning ("failed to get cmdline: %s", error->message);
+		g_error_free (error);
+		goto out;
+	}
+
+	/* remove prelink junk */
+	offset = g_strrstr (cmdline, ".#prelink#.");
+	if (offset != NULL)
+		*(offset) = '\0';
+
+	/* remove added junk */
+	g_strdelimit (cmdline, " \t:;", '\0');
+
+	/* do we have anything left? */
+	if (cmdline[0] == '\0') {
+		ret = FALSE;
+		goto out;
+	}
+
+	/* prepend path if it does not already exist */
+	if (cmdline[0] == '/') {
+		cmdline_full = g_strdup (cmdline);
+	} else {
+		cmdline_full = pk_proc_refresh_find_file (cmdline);
+		if (cmdline_full == NULL) {
+			g_debug ("cannot find in any bin dir: %s", cmdline);
+			ret = FALSE;
+			goto out;
+		}
+	}
+
+	/* check if path exists */
+	ret = g_file_test (cmdline_full, G_FILE_TEST_IS_REGULAR);
+	if (!ret) {
+		g_debug ("cmdline does not exist: %s", cmdline_full);
+		goto out;
+	}
+
+	/* parse PID */
+	ret = pk_strtoint (pid_text, &pid);
+	if (!ret)
+		goto out;
+
+	/* get UID */
+	uid_file = g_build_filename ("/proc", pid_text, "loginuid", NULL);
+
+	/* is a process file */
+	if (!g_file_test (uid_file, G_FILE_TEST_EXISTS))
+		goto out;
+
+	/* able to get contents */
+	ret = g_file_get_contents (uid_file, &contents, 0, NULL);
+	if (!ret)
+		goto out;
+
+	/* parse UID */
+	ret = pk_strtoint (contents, &uid);
+	if (!ret)
+		goto out;
+
+	/* add data to array */
+	data = pk_proc_data_new (cmdline_full, pid, uid);
+	g_ptr_array_add (proc->priv->list_data, data);
+	g_debug ("adding %s pid:%i uid:%i", data->cmdline, data->pid, data->uid);
+out:
+	g_free (cmdline_full);
+	g_free (cmdline);
+	g_free (contents);
+	g_free (uid_file);
+	return ret;
+}
+
+/**
+ * pk_proc_refresh:
+ **/
+gboolean
+pk_proc_refresh (PkProc *proc)
+{
+	gboolean ret = FALSE;
+	GError *error = NULL;
+	GDir *dir;
+	const gchar *filename;
+	gchar *path;
+
+	g_return_val_if_fail (PK_IS_PROC (proc), FALSE);
+
+	/* open directory */
+	dir = g_dir_open ("/proc", 0, &error);
+	if (dir == NULL) {
+		g_warning ("failed to open directory: %s", error->message);
+		g_error_free (error);
+		goto out;
+	}
+
+	/* clear */
+	g_ptr_array_set_size (proc->priv->list_data, 0);
+
+	/* find all files */
+	filename = g_dir_read_name (dir);
+	while (filename != NULL) {
+		/* this is Linux specific, but #ifdef code welcome */
+		path = g_build_filename ("/proc", filename, "cmdline", NULL);
+
+		/* only process files that exist */
+		ret = g_file_test (path, G_FILE_TEST_IS_REGULAR);
+		if (ret)
+			pk_proc_refresh_add_file (proc, filename, path);
+
+		/* get next entry */
+		filename = g_dir_read_name (dir);
+		g_free (path);
+	}
+
+	/* success */
+	ret = TRUE;
+
+out:
+	if (dir != NULL)
+		g_dir_close (dir);
+	return ret;
+}
+
+/**
+ * pk_proc_find_exec:
+ **/
+gboolean
+pk_proc_find_exec (PkProc *proc, const gchar *filename)
+{
+	guint j;
+	gboolean ret = FALSE;
+	GPtrArray *list_data;
+	const PkProcData *data;
+
+	g_return_val_if_fail (PK_IS_PROC (proc), FALSE);
+
+	/* setup state */
+	list_data = proc->priv->list_data;
+
+	/* find executable that matches the pattern */
+	for (j=0; j < list_data->len; j++) {
+		data = g_ptr_array_index (list_data, j);
+		ret = g_pattern_match_simple (filename, data->cmdline);
+		if (ret)
+			break;
+	}
+
+	return ret;
+}
+
+/**
+ * pk_proc_find_execs:
+ **/
+gboolean
+pk_proc_find_execs (PkProc *proc, gchar **filenames)
+{
+	guint i;
+	gboolean ret = FALSE;
+
+	g_return_val_if_fail (PK_IS_PROC (proc), FALSE);
+
+	/* find executable that matches the pattern */
+	for (i=0; filenames[i] != NULL; i++) {
+		ret = pk_proc_find_exec (proc, filenames[i]);
+		if (ret)
+			break;
+	}
+
+	return ret;
+}
+
+/**
+ * pk_proc_finalize:
+ **/
+static void
+pk_proc_finalize (GObject *object)
+{
+	PkProc *proc;
+
+	g_return_if_fail (object != NULL);
+	g_return_if_fail (PK_IS_PROC (object));
+	proc = PK_PROC (object);
+
+	g_ptr_array_unref (proc->priv->list_data);
+
+	G_OBJECT_CLASS (pk_proc_parent_class)->finalize (object);
+}
+
+/**
+ * pk_proc_class_init:
+ **/
+static void
+pk_proc_class_init (PkProcClass *klass)
+{
+	GObjectClass *object_class = G_OBJECT_CLASS (klass);
+	object_class->finalize = pk_proc_finalize;
+	g_type_class_add_private (klass, sizeof (PkProcPrivate));
+}
+
+/**
+ * pk_proc_init:
+ *
+ * initializes the proc class. NOTE: We expect proc objects
+ * to *NOT* be removed or added during the session.
+ * We only control the first proc object if there are more than one.
+ **/
+static void
+pk_proc_init (PkProc *proc)
+{
+	proc->priv = PK_PROC_GET_PRIVATE (proc);
+	proc->priv->list_data = g_ptr_array_new_with_free_func ((GDestroyNotify) pk_proc_data_free);
+}
+
+/**
+ * pk_proc_new:
+ * Return value: A new proc class instance.
+ **/
+PkProc *
+pk_proc_new (void)
+{
+	PkProc *proc;
+	proc = g_object_new (PK_TYPE_PROC, NULL);
+	return PK_PROC (proc);
+}
+
diff --git a/src/pk-proc.h b/src/pk-proc.h
new file mode 100644
index 0000000..9bb7f42
--- /dev/null
+++ b/src/pk-proc.h
@@ -0,0 +1,63 @@
+/* -*- 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifndef __PK_PROC_H
+#define __PK_PROC_H
+
+#include <glib-object.h>
+
+G_BEGIN_DECLS
+
+#define PK_TYPE_PROC		(pk_proc_get_type ())
+#define PK_PROC(o)		(G_TYPE_CHECK_INSTANCE_CAST ((o), PK_TYPE_PROC, PkProc))
+#define PK_PROC_CLASS(k)	(G_TYPE_CHECK_CLASS_CAST((k), PK_TYPE_PROC, PkProcClass))
+#define PK_IS_PROC(o)		(G_TYPE_CHECK_INSTANCE_TYPE ((o), PK_TYPE_PROC))
+#define PK_IS_PROC_CLASS(k)	(G_TYPE_CHECK_CLASS_TYPE ((k), PK_TYPE_PROC))
+#define PK_PROC_GET_CLASS(o)	(G_TYPE_INSTANCE_GET_CLASS ((o), PK_TYPE_PROC, PkProcClass))
+
+typedef struct PkProcPrivate PkProcPrivate;
+
+typedef struct
+{
+	GObject		 parent;
+	PkProcPrivate	*priv;
+} PkProc;
+
+typedef struct
+{
+	GObjectClass	parent_class;
+} PkProcClass;
+
+GType		 pk_proc_get_type			(void);
+PkProc		*pk_proc_new				(void);
+
+gboolean	 pk_proc_refresh			(PkProc		*proc);
+gchar		*pk_proc_get_process_for_cmdlines	(PkProc		*proc,
+							 gchar		**filenames);
+gboolean	 pk_proc_find_execs			(PkProc		*proc,
+							 gchar		**filenames);
+gboolean	 pk_proc_find_exec			(PkProc		*proc,
+							 const gchar	*filename);
+
+G_END_DECLS
+
+#endif /* __PK_PROC_H */
+
diff --git a/src/plugins/Makefile.am b/src/plugins/Makefile.am
index 79ee111..ce2d9a8 100644
--- a/src/plugins/Makefile.am
+++ b/src/plugins/Makefile.am
@@ -31,9 +31,7 @@ check_PROGRAMS =					\
 pk_self_test_SOURCES =					\
 	pk-self-test.c					\
 	pk-lsof.h					\
-	pk-lsof.c					\
-	pk-proc.c					\
-	pk-proc.h
+	pk-lsof.c
 
 pk_self_test_LDADD =					\
 	$(GLIB_LIBS)					\
@@ -85,9 +83,7 @@ libpk_plugin_update_package_list_la_LDFLAGS = -module -avoid-version
 libpk_plugin_update_package_list_la_CFLAGS = $(PK_PLUGIN_CFLAGS) $(WARNINGFLAGS_C)
 
 libpk_plugin_no_update_process_la_SOURCES =		\
-	pk-plugin-no-update-process.c			\
-	pk-proc.c					\
-	pk-proc.h
+	pk-plugin-no-update-process.c
 libpk_plugin_no_update_process_la_LIBADD = $(PK_PLUGIN_LIBS)
 libpk_plugin_no_update_process_la_LDFLAGS = -module -avoid-version
 libpk_plugin_no_update_process_la_CFLAGS = $(PK_PLUGIN_CFLAGS) $(WARNINGFLAGS_C)
@@ -98,9 +94,7 @@ libpk_plugin_scan_desktop_files_la_LDFLAGS = -module -avoid-version
 libpk_plugin_scan_desktop_files_la_CFLAGS = $(PK_PLUGIN_CFLAGS) $(WARNINGFLAGS_C)
 
 libpk_plugin_update_check_processes_la_SOURCES =	\
-	pk-plugin-update-check-processes.c		\
-	pk-proc.c					\
-	pk-proc.h
+	pk-plugin-update-check-processes.c
 libpk_plugin_update_check_processes_la_LIBADD = $(PK_PLUGIN_LIBS)
 libpk_plugin_update_check_processes_la_LDFLAGS = -module -avoid-version
 libpk_plugin_update_check_processes_la_CFLAGS = $(PK_PLUGIN_CFLAGS) $(WARNINGFLAGS_C)
diff --git a/src/plugins/pk-proc.c b/src/plugins/pk-proc.c
deleted file mode 100644
index 11690fc..0000000
--- a/src/plugins/pk-proc.c
+++ /dev/null
@@ -1,362 +0,0 @@
-/* -*- 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- */
-
-#ifdef HAVE_CONFIG_H
-#  include <config.h>
-#endif
-
-#include <string.h>
-#include <stdlib.h>
-#include <glib.h>
-
-#include "pk-proc.h"
-
-#define PK_PROC_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), PK_TYPE_PROC, PkProcPrivate))
-
-struct PkProcPrivate
-{
-	GPtrArray		*list_data;
-};
-
-G_DEFINE_TYPE (PkProc, pk_proc, G_TYPE_OBJECT)
-
-typedef struct {
-	gchar			*cmdline;
-	guint			 pid;
-	guint			 uid;
-} PkProcData;
-
-/**
- * pk_proc_data_free:
- **/
-static void
-pk_proc_data_free (PkProcData *proc)
-{
-	g_free (proc->cmdline);
-	g_free (proc);
-}
-
-/**
- * pk_proc_data_new:
- **/
-static PkProcData *
-pk_proc_data_new (const gchar *cmdline, guint pid, guint uid)
-{
-	PkProcData *data;
-	data = g_new0 (PkProcData, 1);
-	data->pid = pid;
-	data->uid = uid;
-	data->cmdline = g_strdup (cmdline);
-	return data;
-}
-
-/**
- * pk_proc_refresh_find_file:
- **/
-static gchar *
-pk_proc_refresh_find_file (const gchar *filename)
-{
-	gchar *path;
-	gboolean ret;
-	guint i;
-	const gchar *paths[] = { "/usr/bin", "/usr/sbin", "/bin", "/sbin", "/usr/libexec", "/usr/lib/vte/", NULL };
-
-	/* try each one */
-	for (i=0; paths[i] != NULL; i++) {
-		path = g_build_filename (paths[i], filename, NULL);
-		ret = g_file_test (path, G_FILE_TEST_IS_REGULAR);
-		if (ret)
-			goto out;
-		g_free (path);
-	}
-
-	/* we failed */
-	path = NULL;
-out:
-	return path;
-}
-
-/**
- * pk_strtoint:
- **/
-static gboolean
-pk_strtoint (const gchar *text, gint *value)
-{
-	gchar *endptr = NULL;
-	gint64 value_raw;
-
-	value_raw = g_ascii_strtoll (text, &endptr, 10);
-	if (endptr == text)
-		return FALSE;
-
-	/* out of range */
-	if (value_raw > G_MAXINT || value_raw < G_MININT)
-		return FALSE;
-
-	/* cast back down to value */
-	*value = (gint) value_raw;
-	return TRUE;
-}
-
-/**
- * pk_proc_refresh_add_file:
- **/
-static gboolean
-pk_proc_refresh_add_file (PkProc *proc, const gchar *pid_text, const gchar *path)
-{
-	gboolean ret = FALSE;
-	GError *error = NULL;
-	gchar *cmdline = NULL;
-	gint pid = -1;
-	gint uid;
-	PkProcData *data;
-	gchar *cmdline_full = NULL;
-	gchar *offset;
-	gchar *uid_file = NULL;
-	gchar *contents = NULL;
-
-	/* get cmdline */
-	ret = g_file_get_contents (path, &cmdline, NULL, &error);
-	if (!ret) {
-		g_warning ("failed to get cmdline: %s", error->message);
-		g_error_free (error);
-		goto out;
-	}
-
-	/* remove prelink junk */
-	offset = g_strrstr (cmdline, ".#prelink#.");
-	if (offset != NULL)
-		*(offset) = '\0';
-
-	/* remove added junk */
-	g_strdelimit (cmdline, " \t:;", '\0');
-
-	/* do we have anything left? */
-	if (cmdline[0] == '\0') {
-		ret = FALSE;
-		goto out;
-	}
-
-	/* prepend path if it does not already exist */
-	if (cmdline[0] == '/') {
-		cmdline_full = g_strdup (cmdline);
-	} else {
-		cmdline_full = pk_proc_refresh_find_file (cmdline);
-		if (cmdline_full == NULL) {
-			g_debug ("cannot find in any bin dir: %s", cmdline);
-			ret = FALSE;
-			goto out;
-		}
-	}
-
-	/* check if path exists */
-	ret = g_file_test (cmdline_full, G_FILE_TEST_IS_REGULAR);
-	if (!ret) {
-		g_debug ("cmdline does not exist: %s", cmdline_full);
-		goto out;
-	}
-
-	/* parse PID */
-	ret = pk_strtoint (pid_text, &pid);
-	if (!ret)
-		goto out;
-
-	/* get UID */
-	uid_file = g_build_filename ("/proc", pid_text, "loginuid", NULL);
-
-	/* is a process file */
-	if (!g_file_test (uid_file, G_FILE_TEST_EXISTS))
-		goto out;
-
-	/* able to get contents */
-	ret = g_file_get_contents (uid_file, &contents, 0, NULL);
-	if (!ret)
-		goto out;
-
-	/* parse UID */
-	ret = pk_strtoint (contents, &uid);
-	if (!ret)
-		goto out;
-
-	/* add data to array */
-	data = pk_proc_data_new (cmdline_full, pid, uid);
-	g_ptr_array_add (proc->priv->list_data, data);
-	g_debug ("adding %s pid:%i uid:%i", data->cmdline, data->pid, data->uid);
-out:
-	g_free (cmdline_full);
-	g_free (cmdline);
-	g_free (contents);
-	g_free (uid_file);
-	return ret;
-}
-
-/**
- * pk_proc_refresh:
- **/
-gboolean
-pk_proc_refresh (PkProc *proc)
-{
-	gboolean ret = FALSE;
-	GError *error = NULL;
-	GDir *dir;
-	const gchar *filename;
-	gchar *path;
-
-	g_return_val_if_fail (PK_IS_PROC (proc), FALSE);
-
-	/* open directory */
-	dir = g_dir_open ("/proc", 0, &error);
-	if (dir == NULL) {
-		g_warning ("failed to open directory: %s", error->message);
-		g_error_free (error);
-		goto out;
-	}
-
-	/* clear */
-	g_ptr_array_set_size (proc->priv->list_data, 0);
-
-	/* find all files */
-	filename = g_dir_read_name (dir);
-	while (filename != NULL) {
-		/* this is Linux specific, but #ifdef code welcome */
-		path = g_build_filename ("/proc", filename, "cmdline", NULL);
-
-		/* only process files that exist */
-		ret = g_file_test (path, G_FILE_TEST_IS_REGULAR);
-		if (ret)
-			pk_proc_refresh_add_file (proc, filename, path);
-
-		/* get next entry */
-		filename = g_dir_read_name (dir);
-		g_free (path);
-	}
-
-	/* success */
-	ret = TRUE;
-
-out:
-	if (dir != NULL)
-		g_dir_close (dir);
-	return ret;
-}
-
-/**
- * pk_proc_find_exec:
- **/
-gboolean
-pk_proc_find_exec (PkProc *proc, const gchar *filename)
-{
-	guint j;
-	gboolean ret = FALSE;
-	GPtrArray *list_data;
-	const PkProcData *data;
-
-	g_return_val_if_fail (PK_IS_PROC (proc), FALSE);
-
-	/* setup state */
-	list_data = proc->priv->list_data;
-
-	/* find executable that matches the pattern */
-	for (j=0; j < list_data->len; j++) {
-		data = g_ptr_array_index (list_data, j);
-		ret = g_pattern_match_simple (filename, data->cmdline);
-		if (ret)
-			break;
-	}
-
-	return ret;
-}
-
-/**
- * pk_proc_find_execs:
- **/
-gboolean
-pk_proc_find_execs (PkProc *proc, gchar **filenames)
-{
-	guint i;
-	gboolean ret = FALSE;
-
-	g_return_val_if_fail (PK_IS_PROC (proc), FALSE);
-
-	/* find executable that matches the pattern */
-	for (i=0; filenames[i] != NULL; i++) {
-		ret = pk_proc_find_exec (proc, filenames[i]);
-		if (ret)
-			break;
-	}
-
-	return ret;
-}
-
-/**
- * pk_proc_finalize:
- **/
-static void
-pk_proc_finalize (GObject *object)
-{
-	PkProc *proc;
-
-	g_return_if_fail (object != NULL);
-	g_return_if_fail (PK_IS_PROC (object));
-	proc = PK_PROC (object);
-
-	g_ptr_array_unref (proc->priv->list_data);
-
-	G_OBJECT_CLASS (pk_proc_parent_class)->finalize (object);
-}
-
-/**
- * pk_proc_class_init:
- **/
-static void
-pk_proc_class_init (PkProcClass *klass)
-{
-	GObjectClass *object_class = G_OBJECT_CLASS (klass);
-	object_class->finalize = pk_proc_finalize;
-	g_type_class_add_private (klass, sizeof (PkProcPrivate));
-}
-
-/**
- * pk_proc_init:
- *
- * initializes the proc class. NOTE: We expect proc objects
- * to *NOT* be removed or added during the session.
- * We only control the first proc object if there are more than one.
- **/
-static void
-pk_proc_init (PkProc *proc)
-{
-	proc->priv = PK_PROC_GET_PRIVATE (proc);
-	proc->priv->list_data = g_ptr_array_new_with_free_func ((GDestroyNotify) pk_proc_data_free);
-}
-
-/**
- * pk_proc_new:
- * Return value: A new proc class instance.
- **/
-PkProc *
-pk_proc_new (void)
-{
-	PkProc *proc;
-	proc = g_object_new (PK_TYPE_PROC, NULL);
-	return PK_PROC (proc);
-}
-
diff --git a/src/plugins/pk-proc.h b/src/plugins/pk-proc.h
deleted file mode 100644
index 9bb7f42..0000000
--- a/src/plugins/pk-proc.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/* -*- 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- */
-
-#ifndef __PK_PROC_H
-#define __PK_PROC_H
-
-#include <glib-object.h>
-
-G_BEGIN_DECLS
-
-#define PK_TYPE_PROC		(pk_proc_get_type ())
-#define PK_PROC(o)		(G_TYPE_CHECK_INSTANCE_CAST ((o), PK_TYPE_PROC, PkProc))
-#define PK_PROC_CLASS(k)	(G_TYPE_CHECK_CLASS_CAST((k), PK_TYPE_PROC, PkProcClass))
-#define PK_IS_PROC(o)		(G_TYPE_CHECK_INSTANCE_TYPE ((o), PK_TYPE_PROC))
-#define PK_IS_PROC_CLASS(k)	(G_TYPE_CHECK_CLASS_TYPE ((k), PK_TYPE_PROC))
-#define PK_PROC_GET_CLASS(o)	(G_TYPE_INSTANCE_GET_CLASS ((o), PK_TYPE_PROC, PkProcClass))
-
-typedef struct PkProcPrivate PkProcPrivate;
-
-typedef struct
-{
-	GObject		 parent;
-	PkProcPrivate	*priv;
-} PkProc;
-
-typedef struct
-{
-	GObjectClass	parent_class;
-} PkProcClass;
-
-GType		 pk_proc_get_type			(void);
-PkProc		*pk_proc_new				(void);
-
-gboolean	 pk_proc_refresh			(PkProc		*proc);
-gchar		*pk_proc_get_process_for_cmdlines	(PkProc		*proc,
-							 gchar		**filenames);
-gboolean	 pk_proc_find_execs			(PkProc		*proc,
-							 gchar		**filenames);
-gboolean	 pk_proc_find_exec			(PkProc		*proc,
-							 const gchar	*filename);
-
-G_END_DECLS
-
-#endif /* __PK_PROC_H */
-
diff --git a/src/plugins/pk-self-test.c b/src/plugins/pk-self-test.c
index 1d98def..53399c4 100644
--- a/src/plugins/pk-self-test.c
+++ b/src/plugins/pk-self-test.c
@@ -26,7 +26,6 @@
 #include <glib/gstdio.h>
 
 #include "pk-lsof.h"
-#include "pk-proc.h"
 
 static void
 pk_test_lsof_get_files_for_directory (GPtrArray *files, const gchar *dirname)
commit d99c430775a6de3e7e98819f5b5c0c6017d6edde
Author: Nils Philippsen <nils at redhat.com>
Date:   Mon Jan 9 15:51:17 2012 +0100

    yum: don't request authorization for trusted packages (#771746)
    
    Misunderstood PackageKitYumBackend._is_package_repo_signed() semantics,
    revert to the implementation from before I fixed it till it broke.

diff --git a/backends/yum/yumBackend.py b/backends/yum/yumBackend.py
index 3975e90..8f6db33 100755
--- a/backends/yum/yumBackend.py
+++ b/backends/yum/yumBackend.py
@@ -1710,12 +1710,7 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
         signed = False
         try:
             repo = self.yumbase.repos.getRepo(pkg.repoid)
-            if hasattr(repo, "_override_sigchecks"):
-                # yum >= 3.2.29
-                signed = not repo._override_sigchecks
-            else:
-                # yum < 3.2.29
-                signed = repo.gpgcheck
+            signed = repo.gpgcheck
         except yum.Errors.RepoError, e:
             raise PkError(ERROR_REPO_NOT_AVAILABLE, _to_unicode(e))
         except exceptions.IOError, e:
commit 72b44f31988d8d604e66a13903acb641ed791819
Author: Matthias Klumpp <matthias at tenstral.net>
Date:   Thu Jan 5 04:24:18 2012 +0100

    trivial: Fix bug#44460 introduced by last commit
    
    Forgot to remove the SIGNAL_NONE everywhere.

diff --git a/src/pk-transaction.c b/src/pk-transaction.c
index 618fb9b..e9fa262 100644
--- a/src/pk-transaction.c
+++ b/src/pk-transaction.c
@@ -1112,10 +1112,7 @@ pk_transaction_finished_cb (PkBackend *backend, PkExitEnum exit_enum, PkTransact
 				     PK_PLUGIN_PHASE_TRANSACTION_FINISHED_RESULTS);
 
 	/* we don't allow to send signals from the second phase post transaction */
-	backend_signals = pk_bitfield_from_enums (
-		PK_BACKEND_SIGNAL_NONE,
-		-1);
-	pk_transaction_set_signals (transaction, backend_signals);
+	pk_transaction_set_signals (transaction, PK_TRANSACTION_NO_BACKEND_SIGNALS);
 
 	/* run the plugins */
 	pk_transaction_plugin_phase (transaction,
@@ -1125,7 +1122,7 @@ pk_transaction_finished_cb (PkBackend *backend, PkExitEnum exit_enum, PkTransact
 	pk_results_set_exit_code (transaction->priv->results, exit_enum);
 
 	/* make sure that everything is disconnected (plugin might have changed something) */
-	pk_transaction_set_signals (transaction, backend_signals);
+	pk_transaction_set_signals (transaction, PK_TRANSACTION_NO_BACKEND_SIGNALS);
 
 	/* if we did not send this, ensure the GUI has the right state */
 	if (transaction->priv->allow_cancel)
commit 15219301d0b19120f8955c8fcf9b4e184b19d948
Author: Matthias Klumpp <matthias at tenstral.net>
Date:   Wed Jan 4 17:39:37 2012 +0100

    trivial: Add pk-enum.c to POTFILES.in

diff --git a/po/POTFILES.in b/po/POTFILES.in
index 5cea7a0..4a06d8b 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -13,6 +13,7 @@ data/packagekit-package-list.xml.in
 data/packagekit-servicepack.xml.in
 lib/packagekit-glib2/pk-console-shared.c
 lib/packagekit-glib2/pk-debug.c
+lib/packagekit-glib2/pk-enum.c
 lib/packagekit-glib2/pk-task-text.c
 policy/org.freedesktop.packagekit.policy.in
 src/pk-main.c
commit f4881d24ec9ef10b9ba58b7f9da09fb5fcaa9534
Author: Matthias Klumpp <matthias at tenstral.net>
Date:   Wed Jan 4 17:21:22 2012 +0100

    plugins: Possibility to select connected backend functions
    
    Via set_signals, backends can now select which signals
    of the backend should stay connected to the transaction.

diff --git a/src/pk-plugin.h b/src/pk-plugin.h
index 04d7578..7e6b97a 100644
--- a/src/pk-plugin.h
+++ b/src/pk-plugin.h
@@ -59,6 +59,7 @@ typedef enum {
 	PK_BACKEND_SIGNAL_FINISHED,
 	PK_BACKEND_SIGNAL_MESSAGE,
 	PK_BACKEND_SIGNAL_PACKAGE,
+	PK_BACKEND_SIGNAL_ITEM_PROGRESS,
 	PK_BACKEND_SIGNAL_FILES,
 	PK_BACKEND_SIGNAL_NOTIFY_PERCENTAGE,
 	PK_BACKEND_SIGNAL_NOTIFY_SUBPERCENTAGE,
@@ -71,10 +72,12 @@ typedef enum {
 	PK_BACKEND_SIGNAL_REQUIRE_RESTART,
 	PK_BACKEND_SIGNAL_STATUS_CHANGED,
 	PK_BACKEND_SIGNAL_UPDATE_DETAIL,
-	PK_BACKEND_SIGNAL_CATEGORY,
-	PK_BACKEND_SIGNAL_ITEM_PROGRESS
+	PK_BACKEND_SIGNAL_CATEGORY
 } PkBackendSignal;
 
+#define PK_TRANSACTION_ALL_BACKEND_SIGNALS		0xffffffff
+#define PK_TRANSACTION_NO_BACKEND_SIGNALS		0
+
 #define	PK_TRANSACTION_PLUGIN_GET_PRIVATE(x)		g_new0 (x,1)
 
 typedef const gchar	*(*PkPluginGetDescFunc)		(void);
diff --git a/src/pk-transaction.c b/src/pk-transaction.c
index f207d09..618fb9b 100644
--- a/src/pk-transaction.c
+++ b/src/pk-transaction.c
@@ -1079,7 +1079,7 @@ pk_transaction_finished_cb (PkBackend *backend, PkExitEnum exit_enum, PkTransact
 	PkPackage *item;
 	gchar *package_id;
 	PkInfoEnum info;
-	PkBitfield backend_connections;
+	PkBitfield backend_signals;
 
 	g_return_if_fail (PK_IS_TRANSACTION (transaction));
 	g_return_if_fail (transaction->priv->tid != NULL);
@@ -1094,40 +1094,28 @@ pk_transaction_finished_cb (PkBackend *backend, PkExitEnum exit_enum, PkTransact
 	pk_transaction_plugin_phase (transaction,
 				     PK_PLUGIN_PHASE_TRANSACTION_FINISHED_START);
 
-	/* disconnect these straight away */
-	backend_connections = pk_bitfield_from_enums (
-		PK_BACKEND_SIGNAL_DETAILS,
-		PK_BACKEND_SIGNAL_ERROR_CODE,
-		PK_BACKEND_SIGNAL_FILES,
-		PK_BACKEND_SIGNAL_DISTRO_UPGRADE,
-		PK_BACKEND_SIGNAL_FINISHED,
-		PK_BACKEND_SIGNAL_PACKAGE,
-		PK_BACKEND_SIGNAL_REPO_DETAIL,
-		PK_BACKEND_SIGNAL_REPO_SIGNATURE_REQUIRED,
-		PK_BACKEND_SIGNAL_EULA_REQUIRED,
-		PK_BACKEND_SIGNAL_MEDIA_CHANGE_REQUIRED,
-		PK_BACKEND_SIGNAL_UPDATE_DETAIL,
-		PK_BACKEND_SIGNAL_CATEGORY,
-		PK_BACKEND_SIGNAL_NOTIFY_SPEED,
-		-1);
-	pk_transaction_disconnect_backend_signals (transaction, backend_connections);
-
-	/* run the plugins */
-	pk_transaction_plugin_phase (transaction,
-				     PK_PLUGIN_PHASE_TRANSACTION_FINISHED_RESULTS);
-
-	/* signals we are not allowed to send from the second phase post transaction */
-	backend_connections = pk_bitfield_from_enums (
+	/* only leave these connected, disconnect everything else straight away */
+	backend_signals = pk_bitfield_from_enums (
 		PK_BACKEND_SIGNAL_ALLOW_CANCEL,
 		PK_BACKEND_SIGNAL_MESSAGE,
-		PK_BACKEND_SIGNAL_STATUS_CHANGED,
 		PK_BACKEND_SIGNAL_NOTIFY_PERCENTAGE,
 		PK_BACKEND_SIGNAL_NOTIFY_SUBPERCENTAGE,
 		PK_BACKEND_SIGNAL_NOTIFY_REMAINING,
 		PK_BACKEND_SIGNAL_REQUIRE_RESTART,
-		PK_BACKEND_SIGNAL_ITEM_PROGRESS
+		PK_BACKEND_SIGNAL_STATUS_CHANGED,
+		PK_BACKEND_SIGNAL_ITEM_PROGRESS,
 		-1);
-	pk_transaction_disconnect_backend_signals (transaction, backend_connections);
+	pk_transaction_set_signals (transaction, backend_signals);
+
+	/* run the plugins */
+	pk_transaction_plugin_phase (transaction,
+				     PK_PLUGIN_PHASE_TRANSACTION_FINISHED_RESULTS);
+
+	/* we don't allow to send signals from the second phase post transaction */
+	backend_signals = pk_bitfield_from_enums (
+		PK_BACKEND_SIGNAL_NONE,
+		-1);
+	pk_transaction_set_signals (transaction, backend_signals);
 
 	/* run the plugins */
 	pk_transaction_plugin_phase (transaction,
@@ -1136,6 +1124,9 @@ pk_transaction_finished_cb (PkBackend *backend, PkExitEnum exit_enum, PkTransact
 	/* save this so we know if the cache is valid */
 	pk_results_set_exit_code (transaction->priv->results, exit_enum);
 
+	/* make sure that everything is disconnected (plugin might have changed something) */
+	pk_transaction_set_signals (transaction, backend_signals);
+
 	/* if we did not send this, ensure the GUI has the right state */
 	if (transaction->priv->allow_cancel)
 		pk_transaction_allow_cancel_emit (transaction, FALSE);
@@ -1959,211 +1950,288 @@ pk_transaction_remaining_cb (GObject *object,
 }
 
 /**
- * pk_transaction_connect_backend_signals:
+ * pk_transaction_set_signals:
+ *
+ * Connect selected signals in backend_signals to Pkransaction,
+ * disconnect everthing else not mentioned there.
  **/
 void
-pk_transaction_connect_backend_signals (PkTransaction *transaction, PkBitfield backend_signals)
+pk_transaction_set_signals (PkTransaction *transaction, PkBitfield backend_signals)
 {
 	PkTransactionPrivate *priv = PK_TRANSACTION_GET_PRIVATE (transaction);
 
-	/* connect up selected signals */
-	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_ALLOW_CANCEL))
-		priv->signal_allow_cancel =
-			g_signal_connect (priv->backend, "allow-cancel",
-					G_CALLBACK (pk_transaction_allow_cancel_cb), transaction);
-
-	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_DETAILS))
-		priv->signal_details =
-			g_signal_connect (priv->backend, "details",
-					G_CALLBACK (pk_transaction_details_cb), transaction);
-
-	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_ERROR_CODE))
-		priv->signal_error_code =
-			g_signal_connect (priv->backend, "error-code",
-					G_CALLBACK (pk_transaction_error_code_cb), transaction);
-
-	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_FILES))
-		priv->signal_files =
-			g_signal_connect (priv->backend, "files",
-					G_CALLBACK (pk_transaction_files_cb), transaction);
-
-	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_DISTRO_UPGRADE))
-		priv->signal_distro_upgrade =
-			g_signal_connect (priv->backend, "distro-upgrade",
-					G_CALLBACK (pk_transaction_distro_upgrade_cb), transaction);
-
-	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_FINISHED))
-		priv->signal_finished =
-			g_signal_connect (priv->backend, "finished",
-					G_CALLBACK (pk_transaction_finished_cb), transaction);
-
-	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_MESSAGE))
-		priv->signal_message =
-			g_signal_connect (priv->backend, "message",
-					G_CALLBACK (pk_transaction_message_cb), transaction);
-
-	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_PACKAGE))
-		priv->signal_package =
-			g_signal_connect (priv->backend, "package",
-					G_CALLBACK (pk_transaction_package_cb), transaction);
-
-	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_NOTIFY_PERCENTAGE))
-		priv->signal_percentage =
-			g_signal_connect (priv->backend, "notify::percentage",
-					G_CALLBACK (pk_transaction_percentage_cb), transaction);
-
-	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_NOTIFY_SUBPERCENTAGE))
-		priv->signal_subpercentage =
-			g_signal_connect (priv->backend, "notify::subpercentage",
-					G_CALLBACK (pk_transaction_subpercentage_cb), transaction);
-
-	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_NOTIFY_REMAINING))
-		priv->signal_remaining =
-			g_signal_connect (priv->backend, "notify::remaining",
-					G_CALLBACK (pk_transaction_remaining_cb), transaction);
-
-	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_REPO_DETAIL))
-		priv->signal_repo_detail =
-			g_signal_connect (priv->backend, "repo-detail",
-					G_CALLBACK (pk_transaction_repo_detail_cb), transaction);
-
-	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_REPO_SIGNATURE_REQUIRED))
-		priv->signal_repo_signature_required =
-			g_signal_connect (priv->backend, "repo-signature-required",
-					G_CALLBACK (pk_transaction_repo_signature_required_cb), transaction);
-
-	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_EULA_REQUIRED))
-		priv->signal_eula_required =
-			g_signal_connect (priv->backend, "eula-required",
-					G_CALLBACK (pk_transaction_eula_required_cb), transaction);
-
-	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_MEDIA_CHANGE_REQUIRED))
-		priv->signal_media_change_required =
-			g_signal_connect (priv->backend, "media-change-required",
-					G_CALLBACK (pk_transaction_media_change_required_cb), transaction);
-
-	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_REQUIRE_RESTART))
-		priv->signal_require_restart =
-			g_signal_connect (priv->backend, "require-restart",
-					G_CALLBACK (pk_transaction_require_restart_cb), transaction);
-
-	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_STATUS_CHANGED))
-		priv->signal_status_changed =
-			g_signal_connect (priv->backend, "status-changed",
-					G_CALLBACK (pk_transaction_status_changed_cb), transaction);
-
-	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_UPDATE_DETAIL))
-		priv->signal_update_detail =
-			g_signal_connect (priv->backend, "update-detail",
-					G_CALLBACK (pk_transaction_update_detail_cb), transaction);
-
-	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_CATEGORY))
-		priv->signal_category =
-			g_signal_connect (priv->backend, "category",
-					G_CALLBACK (pk_transaction_category_cb), transaction);
-
-	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_ITEM_PROGRESS))
-		priv->signal_item_progress =
-			g_signal_connect (priv->backend, "item-progress",
-					G_CALLBACK (pk_transaction_item_progress_cb), transaction);
-
-	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_NOTIFY_SPEED))
-		priv->signal_speed =
-			g_signal_connect (priv->backend, "notify::speed",
-					G_CALLBACK (pk_transaction_speed_cb), transaction);
-}
-
-/**
- * pk_transaction_disconnect_backend_signals:
- **/
-void
-pk_transaction_disconnect_backend_signals (PkTransaction *transaction, PkBitfield backend_signals)
-{
-	/* disconnect all selected signals */
-	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_ALLOW_CANCEL))
-		g_signal_handler_disconnect (transaction->priv->backend,
-				     transaction->priv->signal_allow_cancel);
-
-	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_DETAILS))
-		g_signal_handler_disconnect (transaction->priv->backend,
-				     transaction->priv->signal_details);
+	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_ALLOW_CANCEL)) {
+		if (priv->signal_allow_cancel == 0)
+			priv->signal_allow_cancel =
+				g_signal_connect (priv->backend, "allow-cancel",
+						G_CALLBACK (pk_transaction_allow_cancel_cb), transaction);
+	} else {
+		if (priv->signal_allow_cancel > 0) {
+			g_signal_handler_disconnect (priv->backend,
+					priv->signal_allow_cancel);
+			priv->signal_allow_cancel = 0;
+		}
+	}
 
-	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_ERROR_CODE))
-		g_signal_handler_disconnect (transaction->priv->backend,
-				     transaction->priv->signal_error_code);
+	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_DETAILS)) {
+		if (priv->signal_details == 0)
+			priv->signal_details =
+				g_signal_connect (priv->backend, "details",
+						G_CALLBACK (pk_transaction_details_cb), transaction);
+	} else {
+		if (priv->signal_details > 0) {
+			g_signal_handler_disconnect (priv->backend,
+					priv->signal_details);
+			priv->signal_details = 0;
+		}
+	}
 
-	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_FILES))
-		g_signal_handler_disconnect (transaction->priv->backend,
-				     transaction->priv->signal_files);
+	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_ERROR_CODE)) {
+		if (priv->signal_error_code == 0)
+			priv->signal_error_code =
+				g_signal_connect (priv->backend, "error-code",
+						G_CALLBACK (pk_transaction_error_code_cb), transaction);
+	} else {
+		if (priv->signal_error_code > 0) {
+			g_signal_handler_disconnect (priv->backend,
+					priv->signal_error_code);
+			priv->signal_error_code = 0;
+		}
+	}
 
-	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_DISTRO_UPGRADE))
-		g_signal_handler_disconnect (transaction->priv->backend,
-				     transaction->priv->signal_distro_upgrade);
+	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_FILES)) {
+		if (priv->signal_files == 0)
+			priv->signal_files =
+				g_signal_connect (priv->backend, "files",
+						G_CALLBACK (pk_transaction_files_cb), transaction);
+	} else {
+		if (priv->signal_files > 0) {
+			g_signal_handler_disconnect (priv->backend,
+					priv->signal_files);
+			priv->signal_files = 0;
+		}
+	}
 
-	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_FINISHED))
-		g_signal_handler_disconnect (transaction->priv->backend,
-				     transaction->priv->signal_finished);
+	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_DISTRO_UPGRADE)) {
+		if (priv->signal_distro_upgrade == 0)
+			priv->signal_distro_upgrade =
+				g_signal_connect (priv->backend, "distro-upgrade",
+						G_CALLBACK (pk_transaction_distro_upgrade_cb), transaction);
+	} else {
+		if (priv->signal_distro_upgrade > 0) {
+			g_signal_handler_disconnect (priv->backend,
+					priv->signal_distro_upgrade);
+			priv->signal_distro_upgrade = 0;
+		}
+	}
 
-	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_MESSAGE))
-		g_signal_handler_disconnect (transaction->priv->backend,
-				     transaction->priv->signal_message);
+	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_FINISHED)) {
+		if (priv->signal_finished == 0)
+			priv->signal_finished =
+				g_signal_connect (priv->backend, "finished",
+						G_CALLBACK (pk_transaction_finished_cb), transaction);
+	} else {
+		if (priv->signal_finished > 0) {
+			g_signal_handler_disconnect (priv->backend,
+					priv->signal_finished);
+			priv->signal_finished = 0;
+		}
+	}
 
-	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_PACKAGE))
-		g_signal_handler_disconnect (transaction->priv->backend,
-				     transaction->priv->signal_package);
+	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_MESSAGE)) {
+		if (priv->signal_message == 0)
+			priv->signal_message =
+				g_signal_connect (priv->backend, "message",
+						G_CALLBACK (pk_transaction_message_cb), transaction);
+	} else {
+		if (priv->signal_message > 0) {
+			g_signal_handler_disconnect (priv->backend,
+					priv->signal_message);
+			priv->signal_message = 0;
+		}
+	}
 
-	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_NOTIFY_PERCENTAGE))
-		g_signal_handler_disconnect (transaction->priv->backend,
-				     transaction->priv->signal_percentage);
+	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_PACKAGE)) {
+		if (priv->signal_package == 0)
+			priv->signal_package =
+				g_signal_connect (priv->backend, "package",
+						G_CALLBACK (pk_transaction_package_cb), transaction);
+	} else {
+		if (priv->signal_package > 0) {
+			g_signal_handler_disconnect (priv->backend,
+					priv->signal_package);
+			priv->signal_package = 0;
+		}
+	}
 
-	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_NOTIFY_SUBPERCENTAGE))
-		g_signal_handler_disconnect (transaction->priv->backend,
-				     transaction->priv->signal_subpercentage);
+	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_ITEM_PROGRESS)) {
+		if (priv->signal_item_progress == 0)
+			priv->signal_item_progress =
+				g_signal_connect (priv->backend, "item-progress",
+						G_CALLBACK (pk_transaction_item_progress_cb), transaction);
+	} else {
+		if (priv->signal_item_progress > 0) {
+			g_signal_handler_disconnect (priv->backend,
+					priv->signal_item_progress);
+			priv->signal_item_progress = 0;
+		}
+	}
 
-	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_NOTIFY_REMAINING))
-		g_signal_handler_disconnect (transaction->priv->backend,
-				     transaction->priv->signal_remaining);
+	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_NOTIFY_PERCENTAGE)) {
+		if (priv->signal_percentage == 0)
+			priv->signal_percentage =
+				g_signal_connect (priv->backend, "notify::percentage",
+						G_CALLBACK (pk_transaction_percentage_cb), transaction);
+	} else {
+		if (priv->signal_percentage > 0) {
+			g_signal_handler_disconnect (priv->backend,
+					priv->signal_percentage);
+			priv->signal_percentage = 0;
+		}
+	}
 
-	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_REPO_DETAIL))
-		g_signal_handler_disconnect (transaction->priv->backend,
-				     transaction->priv->signal_repo_detail);
+	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_NOTIFY_SUBPERCENTAGE)) {
+		if (priv->signal_subpercentage == 0)
+			priv->signal_subpercentage =
+				g_signal_connect (priv->backend, "notify::subpercentage",
+						G_CALLBACK (pk_transaction_subpercentage_cb), transaction);
+	} else {
+		if (priv->signal_subpercentage > 0) {
+			g_signal_handler_disconnect (priv->backend,
+					priv->signal_subpercentage);
+			priv->signal_subpercentage = 0;
+		}
+	}
 
-	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_REPO_SIGNATURE_REQUIRED))
-		g_signal_handler_disconnect (transaction->priv->backend,
-				     transaction->priv->signal_repo_signature_required);
+	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_NOTIFY_REMAINING)) {
+		if (priv->signal_remaining == 0)
+			priv->signal_remaining =
+				g_signal_connect (priv->backend, "notify::remaining",
+						G_CALLBACK (pk_transaction_remaining_cb), transaction);
+	} else {
+		if (priv->signal_remaining > 0) {
+			g_signal_handler_disconnect (priv->backend,
+					priv->signal_remaining);
+			priv->signal_remaining = 0;
+		}
+	}
 
-	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_EULA_REQUIRED))
-		g_signal_handler_disconnect (transaction->priv->backend,
-				     transaction->priv->signal_eula_required);
+	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_NOTIFY_SPEED)) {
+		if (priv->signal_speed == 0)
+			priv->signal_speed =
+				g_signal_connect (priv->backend, "notify::speed",
+						G_CALLBACK (pk_transaction_speed_cb), transaction);
+	} else {
+		if (priv->signal_speed > 0) {
+			g_signal_handler_disconnect (priv->backend,
+					priv->signal_speed);
+			priv->signal_speed = 0;
+		}
+	}
 
-	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_MEDIA_CHANGE_REQUIRED))
-		g_signal_handler_disconnect (transaction->priv->backend,
-				     transaction->priv->signal_media_change_required);
+	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_REPO_DETAIL)) {
+		if (priv->signal_repo_detail == 0)
+			priv->signal_repo_detail =
+				g_signal_connect (priv->backend, "repo-detail",
+						G_CALLBACK (pk_transaction_repo_detail_cb), transaction);
+	} else {
+		if (priv->signal_repo_detail > 0) {
+			g_signal_handler_disconnect (priv->backend,
+					priv->signal_repo_detail);
+			priv->signal_repo_detail = 0;
+		}
+	}
 
-	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_REQUIRE_RESTART))
-		g_signal_handler_disconnect (transaction->priv->backend,
-				     transaction->priv->signal_require_restart);
+	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_REPO_SIGNATURE_REQUIRED)) {
+		if (priv->signal_repo_signature_required == 0)
+			priv->signal_repo_signature_required =
+				g_signal_connect (priv->backend, "repo-signature-required",
+						G_CALLBACK (pk_transaction_repo_signature_required_cb), transaction);
+	} else {
+		if (priv->signal_repo_signature_required > 0) {
+			g_signal_handler_disconnect (priv->backend,
+					priv->signal_repo_signature_required);
+			priv->signal_repo_signature_required = 0;
+		}
+	}
 
-	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_STATUS_CHANGED))
-		g_signal_handler_disconnect (transaction->priv->backend,
-				     transaction->priv->signal_status_changed);
+	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_EULA_REQUIRED)) {
+		if (priv->signal_eula_required == 0)
+			priv->signal_eula_required =
+				g_signal_connect (priv->backend, "eula-required",
+						G_CALLBACK (pk_transaction_eula_required_cb), transaction);
+	} else {
+		if (priv->signal_eula_required > 0) {
+			g_signal_handler_disconnect (priv->backend,
+					priv->signal_eula_required);
+			priv->signal_eula_required = 0;
+		}
+	}
 
-	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_UPDATE_DETAIL))
-		g_signal_handler_disconnect (transaction->priv->backend,
-				     transaction->priv->signal_update_detail);
+	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_MEDIA_CHANGE_REQUIRED)) {
+		if (priv->signal_media_change_required == 0)
+			priv->signal_media_change_required =
+				g_signal_connect (priv->backend, "media-change-required",
+						G_CALLBACK (pk_transaction_media_change_required_cb), transaction);
+	} else {
+		if (priv->signal_media_change_required > 0) {
+			g_signal_handler_disconnect (priv->backend,
+					priv->signal_media_change_required);
+			priv->signal_media_change_required = 0;
+		}
+	}
 
-	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_CATEGORY))
-		g_signal_handler_disconnect (transaction->priv->backend,
-				     transaction->priv->signal_category);
+	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_REQUIRE_RESTART)) {
+		if (priv->signal_require_restart == 0)
+			priv->signal_require_restart =
+				g_signal_connect (priv->backend, "require-restart",
+						G_CALLBACK (pk_transaction_require_restart_cb), transaction);
+	} else {
+		if (priv->signal_require_restart > 0) {
+			g_signal_handler_disconnect (priv->backend,
+					priv->signal_require_restart);
+			priv->signal_require_restart = 0;
+		}
+	}
 
-	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_ITEM_PROGRESS))
-		g_signal_handler_disconnect (transaction->priv->backend,
-				     transaction->priv->signal_item_progress);
+	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_STATUS_CHANGED)) {
+		if (priv->signal_status_changed == 0)
+			priv->signal_status_changed =
+				g_signal_connect (priv->backend, "status-changed",
+						G_CALLBACK (pk_transaction_status_changed_cb), transaction);
+	} else {
+		if (priv->signal_status_changed > 0) {
+			g_signal_handler_disconnect (priv->backend,
+					priv->signal_status_changed);
+			priv->signal_status_changed = 0;
+		}
+	}
 
-	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_NOTIFY_SPEED))
-		g_signal_handler_disconnect (transaction->priv->backend,
-				     transaction->priv->signal_speed);
+	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_UPDATE_DETAIL)) {
+		if (priv->signal_update_detail == 0)
+			priv->signal_update_detail =
+				g_signal_connect (priv->backend, "update-detail",
+						G_CALLBACK (pk_transaction_update_detail_cb), transaction);
+	} else {
+		if (priv->signal_update_detail > 0) {
+			g_signal_handler_disconnect (priv->backend,
+					priv->signal_update_detail);
+			priv->signal_update_detail = 0;
+		}
+	}
 
+	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_CATEGORY)) {
+		if (priv->signal_category == 0)
+			priv->signal_category =
+				g_signal_connect (priv->backend, "category",
+						G_CALLBACK (pk_transaction_category_cb), transaction);
+	} else {
+		if (priv->signal_category > 0) {
+			g_signal_handler_disconnect (priv->backend,
+					priv->signal_category);
+			priv->signal_category = 0;
+		}
+	}
 }
 
 /**
@@ -2175,7 +2243,7 @@ pk_transaction_run (PkTransaction *transaction)
 	gboolean ret;
 	GError *error = NULL;
 	PkExitEnum exit_status;
-	PkBitfield backend_connections;
+	PkBitfield backend_signals;
 	PkTransactionPrivate *priv = PK_TRANSACTION_GET_PRIVATE (transaction);
 
 	g_return_val_if_fail (PK_IS_TRANSACTION (transaction), FALSE);
@@ -2219,6 +2287,9 @@ pk_transaction_run (PkTransaction *transaction)
 	pk_backend_set_status (priv->backend, PK_STATUS_ENUM_SETUP);
 	pk_transaction_status_changed_emit (transaction, PK_STATUS_ENUM_SETUP);
 
+	/* restore backend signals */
+	pk_transaction_set_signals (transaction, PK_TRANSACTION_NO_BACKEND_SIGNALS);
+
 	/* run the plugins */
 	pk_transaction_plugin_phase (transaction,
 				     PK_PLUGIN_PHASE_TRANSACTION_RUN);
@@ -2242,6 +2313,9 @@ pk_transaction_run (PkTransaction *transaction)
 		goto out;
 	}
 
+	/* restore backend signals */
+	pk_transaction_set_signals (transaction, PK_TRANSACTION_NO_BACKEND_SIGNALS);
+
 	/* might have to reset again if we used the backend */
 	pk_backend_reset (priv->backend);
 
@@ -2252,35 +2326,16 @@ pk_transaction_run (PkTransaction *transaction)
 		 pk_role_enum_to_string (priv->role));
 
 	/* connect the backend */
-	backend_connections = pk_bitfield_from_enums (
-		PK_BACKEND_SIGNAL_ALLOW_CANCEL,
-		PK_BACKEND_SIGNAL_DETAILS,
-		PK_BACKEND_SIGNAL_ERROR_CODE,
-		PK_BACKEND_SIGNAL_DISTRO_UPGRADE,
-		PK_BACKEND_SIGNAL_FINISHED,
-		PK_BACKEND_SIGNAL_MESSAGE,
-		PK_BACKEND_SIGNAL_PACKAGE,
-		PK_BACKEND_SIGNAL_FILES,
-		PK_BACKEND_SIGNAL_NOTIFY_PERCENTAGE,
-		PK_BACKEND_SIGNAL_NOTIFY_SUBPERCENTAGE,
-		PK_BACKEND_SIGNAL_NOTIFY_REMAINING,
-		PK_BACKEND_SIGNAL_NOTIFY_SPEED,
-		PK_BACKEND_SIGNAL_REPO_DETAIL,
-		PK_BACKEND_SIGNAL_REPO_SIGNATURE_REQUIRED,
-		PK_BACKEND_SIGNAL_EULA_REQUIRED,
-		PK_BACKEND_SIGNAL_MEDIA_CHANGE_REQUIRED,
-		PK_BACKEND_SIGNAL_REQUIRE_RESTART,
-		PK_BACKEND_SIGNAL_STATUS_CHANGED,
-		PK_BACKEND_SIGNAL_UPDATE_DETAIL,
-		PK_BACKEND_SIGNAL_CATEGORY,
-		PK_BACKEND_SIGNAL_ITEM_PROGRESS,
-		-1);
-	pk_transaction_connect_backend_signals (transaction, backend_connections);
+	backend_signals = PK_TRANSACTION_ALL_BACKEND_SIGNALS;
+	pk_transaction_set_signals (transaction, backend_signals);
 
 	/* run the plugins */
 	pk_transaction_plugin_phase (transaction,
 				     PK_PLUGIN_PHASE_TRANSACTION_STARTED);
 
+	/* restore connections (might be necessary) */
+	pk_transaction_set_signals (transaction, backend_signals);
+
 	/* check again if we should skip this transaction */
 	exit_status = pk_backend_get_exit_code (priv->backend);
 	if (exit_status == PK_EXIT_ENUM_SKIP_TRANSACTION) {
@@ -3662,7 +3717,7 @@ out:
 }
 
 /**
- * pk_transaction_get_old_transaction:
+ * pk_transaction_get_old_transactions:
  **/
 static void
 pk_transaction_get_old_transactions (PkTransaction *transaction,
diff --git a/src/pk-transaction.h b/src/pk-transaction.h
index 703197a..f367aef 100644
--- a/src/pk-transaction.h
+++ b/src/pk-transaction.h
@@ -94,8 +94,8 @@ void		 pk_transaction_add_supported_content_type	(PkTransaction	*transaction,
 								 const gchar	*mime_type);
 void		 pk_transaction_set_plugins			(PkTransaction	*transaction,
 								 GPtrArray	*plugins);
-void		 pk_transaction_connect_backend_signals		(PkTransaction *transaction, PkBitfield actions);
-void 		 pk_transaction_disconnect_backend_signals	(PkTransaction *transaction, PkBitfield actions);
+void		 pk_transaction_set_signals			(PkTransaction *transaction,
+								 PkBitfield backend_signals);
 
 G_END_DECLS
 
commit d7d9fccdf7a9660fe2b83105014a622d1ccdcdfd
Author: Matthias Klumpp <matthias at tenstral.net>
Date:   Thu Dec 22 00:35:22 2011 +0100

    plugins: Add possibility to connect/disconnect backend signals
    
    Plugins are now able to connect/disconnect backend signals to the
    transaction. This allows processing some events inside of the
    plugin, without forwarding them to the transaction. (and to the
    outside world listening on D-Bus)

diff --git a/src/pk-plugin.h b/src/pk-plugin.h
index 417e643..04d7578 100644
--- a/src/pk-plugin.h
+++ b/src/pk-plugin.h
@@ -50,6 +50,31 @@ typedef enum {
 	PK_PLUGIN_PHASE_UNKNOWN
 } PkPluginPhase;
 
+/* this is used to connect/disconnect backend signals */
+typedef enum {
+	PK_BACKEND_SIGNAL_ALLOW_CANCEL,
+	PK_BACKEND_SIGNAL_DETAILS,
+	PK_BACKEND_SIGNAL_ERROR_CODE,
+	PK_BACKEND_SIGNAL_DISTRO_UPGRADE,
+	PK_BACKEND_SIGNAL_FINISHED,
+	PK_BACKEND_SIGNAL_MESSAGE,
+	PK_BACKEND_SIGNAL_PACKAGE,
+	PK_BACKEND_SIGNAL_FILES,
+	PK_BACKEND_SIGNAL_NOTIFY_PERCENTAGE,
+	PK_BACKEND_SIGNAL_NOTIFY_SUBPERCENTAGE,
+	PK_BACKEND_SIGNAL_NOTIFY_REMAINING,
+	PK_BACKEND_SIGNAL_NOTIFY_SPEED,
+	PK_BACKEND_SIGNAL_REPO_DETAIL,
+	PK_BACKEND_SIGNAL_REPO_SIGNATURE_REQUIRED,
+	PK_BACKEND_SIGNAL_EULA_REQUIRED,
+	PK_BACKEND_SIGNAL_MEDIA_CHANGE_REQUIRED,
+	PK_BACKEND_SIGNAL_REQUIRE_RESTART,
+	PK_BACKEND_SIGNAL_STATUS_CHANGED,
+	PK_BACKEND_SIGNAL_UPDATE_DETAIL,
+	PK_BACKEND_SIGNAL_CATEGORY,
+	PK_BACKEND_SIGNAL_ITEM_PROGRESS
+} PkBackendSignal;
+
 #define	PK_TRANSACTION_PLUGIN_GET_PRIVATE(x)		g_new0 (x,1)
 
 typedef const gchar	*(*PkPluginGetDescFunc)		(void);
diff --git a/src/pk-transaction.c b/src/pk-transaction.c
index cfbd15c..f207d09 100644
--- a/src/pk-transaction.c
+++ b/src/pk-transaction.c
@@ -1079,6 +1079,7 @@ pk_transaction_finished_cb (PkBackend *backend, PkExitEnum exit_enum, PkTransact
 	PkPackage *item;
 	gchar *package_id;
 	PkInfoEnum info;
+	PkBitfield backend_connections;
 
 	g_return_if_fail (PK_IS_TRANSACTION (transaction));
 	g_return_if_fail (transaction->priv->tid != NULL);
@@ -1094,54 +1095,39 @@ pk_transaction_finished_cb (PkBackend *backend, PkExitEnum exit_enum, PkTransact
 				     PK_PLUGIN_PHASE_TRANSACTION_FINISHED_START);
 
 	/* disconnect these straight away */
-	g_signal_handler_disconnect (transaction->priv->backend,
-				     transaction->priv->signal_details);
-	g_signal_handler_disconnect (transaction->priv->backend,
-				     transaction->priv->signal_error_code);
-	g_signal_handler_disconnect (transaction->priv->backend,
-				     transaction->priv->signal_files);
-	g_signal_handler_disconnect (transaction->priv->backend,
-				     transaction->priv->signal_distro_upgrade);
-	g_signal_handler_disconnect (transaction->priv->backend,
-				     transaction->priv->signal_finished);
-	g_signal_handler_disconnect (transaction->priv->backend,
-				     transaction->priv->signal_package);
-	g_signal_handler_disconnect (transaction->priv->backend,
-				     transaction->priv->signal_repo_detail);
-	g_signal_handler_disconnect (transaction->priv->backend,
-				     transaction->priv->signal_repo_signature_required);
-	g_signal_handler_disconnect (transaction->priv->backend,
-				     transaction->priv->signal_eula_required);
-	g_signal_handler_disconnect (transaction->priv->backend,
-				     transaction->priv->signal_media_change_required);
-	g_signal_handler_disconnect (transaction->priv->backend,
-				     transaction->priv->signal_update_detail);
-	g_signal_handler_disconnect (transaction->priv->backend,
-				     transaction->priv->signal_category);
-	g_signal_handler_disconnect (transaction->priv->backend,
-				     transaction->priv->signal_speed);
+	backend_connections = pk_bitfield_from_enums (
+		PK_BACKEND_SIGNAL_DETAILS,
+		PK_BACKEND_SIGNAL_ERROR_CODE,
+		PK_BACKEND_SIGNAL_FILES,
+		PK_BACKEND_SIGNAL_DISTRO_UPGRADE,
+		PK_BACKEND_SIGNAL_FINISHED,
+		PK_BACKEND_SIGNAL_PACKAGE,
+		PK_BACKEND_SIGNAL_REPO_DETAIL,
+		PK_BACKEND_SIGNAL_REPO_SIGNATURE_REQUIRED,
+		PK_BACKEND_SIGNAL_EULA_REQUIRED,
+		PK_BACKEND_SIGNAL_MEDIA_CHANGE_REQUIRED,
+		PK_BACKEND_SIGNAL_UPDATE_DETAIL,
+		PK_BACKEND_SIGNAL_CATEGORY,
+		PK_BACKEND_SIGNAL_NOTIFY_SPEED,
+		-1);
+	pk_transaction_disconnect_backend_signals (transaction, backend_connections);
 
 	/* run the plugins */
 	pk_transaction_plugin_phase (transaction,
 				     PK_PLUGIN_PHASE_TRANSACTION_FINISHED_RESULTS);
 
 	/* signals we are not allowed to send from the second phase post transaction */
-	g_signal_handler_disconnect (transaction->priv->backend,
-				     transaction->priv->signal_allow_cancel);
-	g_signal_handler_disconnect (transaction->priv->backend,
-				     transaction->priv->signal_message);
-	g_signal_handler_disconnect (transaction->priv->backend,
-				     transaction->priv->signal_status_changed);
-	g_signal_handler_disconnect (transaction->priv->backend,
-				     transaction->priv->signal_percentage);
-	g_signal_handler_disconnect (transaction->priv->backend,
-				     transaction->priv->signal_subpercentage);
-	g_signal_handler_disconnect (transaction->priv->backend,
-				     transaction->priv->signal_remaining);
-	g_signal_handler_disconnect (transaction->priv->backend,
-				     transaction->priv->signal_require_restart);
-	g_signal_handler_disconnect (transaction->priv->backend,
-				     transaction->priv->signal_item_progress);
+	backend_connections = pk_bitfield_from_enums (
+		PK_BACKEND_SIGNAL_ALLOW_CANCEL,
+		PK_BACKEND_SIGNAL_MESSAGE,
+		PK_BACKEND_SIGNAL_STATUS_CHANGED,
+		PK_BACKEND_SIGNAL_NOTIFY_PERCENTAGE,
+		PK_BACKEND_SIGNAL_NOTIFY_SUBPERCENTAGE,
+		PK_BACKEND_SIGNAL_NOTIFY_REMAINING,
+		PK_BACKEND_SIGNAL_REQUIRE_RESTART,
+		PK_BACKEND_SIGNAL_ITEM_PROGRESS
+		-1);
+	pk_transaction_disconnect_backend_signals (transaction, backend_connections);
 
 	/* run the plugins */
 	pk_transaction_plugin_phase (transaction,
@@ -1973,6 +1959,214 @@ pk_transaction_remaining_cb (GObject *object,
 }
 
 /**
+ * pk_transaction_connect_backend_signals:
+ **/
+void
+pk_transaction_connect_backend_signals (PkTransaction *transaction, PkBitfield backend_signals)
+{
+	PkTransactionPrivate *priv = PK_TRANSACTION_GET_PRIVATE (transaction);
+
+	/* connect up selected signals */
+	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_ALLOW_CANCEL))
+		priv->signal_allow_cancel =
+			g_signal_connect (priv->backend, "allow-cancel",
+					G_CALLBACK (pk_transaction_allow_cancel_cb), transaction);
+
+	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_DETAILS))
+		priv->signal_details =
+			g_signal_connect (priv->backend, "details",
+					G_CALLBACK (pk_transaction_details_cb), transaction);
+
+	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_ERROR_CODE))
+		priv->signal_error_code =
+			g_signal_connect (priv->backend, "error-code",
+					G_CALLBACK (pk_transaction_error_code_cb), transaction);
+
+	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_FILES))
+		priv->signal_files =
+			g_signal_connect (priv->backend, "files",
+					G_CALLBACK (pk_transaction_files_cb), transaction);
+
+	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_DISTRO_UPGRADE))
+		priv->signal_distro_upgrade =
+			g_signal_connect (priv->backend, "distro-upgrade",
+					G_CALLBACK (pk_transaction_distro_upgrade_cb), transaction);
+
+	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_FINISHED))
+		priv->signal_finished =
+			g_signal_connect (priv->backend, "finished",
+					G_CALLBACK (pk_transaction_finished_cb), transaction);
+
+	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_MESSAGE))
+		priv->signal_message =
+			g_signal_connect (priv->backend, "message",
+					G_CALLBACK (pk_transaction_message_cb), transaction);
+
+	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_PACKAGE))
+		priv->signal_package =
+			g_signal_connect (priv->backend, "package",
+					G_CALLBACK (pk_transaction_package_cb), transaction);
+
+	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_NOTIFY_PERCENTAGE))
+		priv->signal_percentage =
+			g_signal_connect (priv->backend, "notify::percentage",
+					G_CALLBACK (pk_transaction_percentage_cb), transaction);
+
+	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_NOTIFY_SUBPERCENTAGE))
+		priv->signal_subpercentage =
+			g_signal_connect (priv->backend, "notify::subpercentage",
+					G_CALLBACK (pk_transaction_subpercentage_cb), transaction);
+
+	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_NOTIFY_REMAINING))
+		priv->signal_remaining =
+			g_signal_connect (priv->backend, "notify::remaining",
+					G_CALLBACK (pk_transaction_remaining_cb), transaction);
+
+	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_REPO_DETAIL))
+		priv->signal_repo_detail =
+			g_signal_connect (priv->backend, "repo-detail",
+					G_CALLBACK (pk_transaction_repo_detail_cb), transaction);
+
+	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_REPO_SIGNATURE_REQUIRED))
+		priv->signal_repo_signature_required =
+			g_signal_connect (priv->backend, "repo-signature-required",
+					G_CALLBACK (pk_transaction_repo_signature_required_cb), transaction);
+
+	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_EULA_REQUIRED))
+		priv->signal_eula_required =
+			g_signal_connect (priv->backend, "eula-required",
+					G_CALLBACK (pk_transaction_eula_required_cb), transaction);
+
+	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_MEDIA_CHANGE_REQUIRED))
+		priv->signal_media_change_required =
+			g_signal_connect (priv->backend, "media-change-required",
+					G_CALLBACK (pk_transaction_media_change_required_cb), transaction);
+
+	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_REQUIRE_RESTART))
+		priv->signal_require_restart =
+			g_signal_connect (priv->backend, "require-restart",
+					G_CALLBACK (pk_transaction_require_restart_cb), transaction);
+
+	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_STATUS_CHANGED))
+		priv->signal_status_changed =
+			g_signal_connect (priv->backend, "status-changed",
+					G_CALLBACK (pk_transaction_status_changed_cb), transaction);
+
+	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_UPDATE_DETAIL))
+		priv->signal_update_detail =
+			g_signal_connect (priv->backend, "update-detail",
+					G_CALLBACK (pk_transaction_update_detail_cb), transaction);
+
+	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_CATEGORY))
+		priv->signal_category =
+			g_signal_connect (priv->backend, "category",
+					G_CALLBACK (pk_transaction_category_cb), transaction);
+
+	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_ITEM_PROGRESS))
+		priv->signal_item_progress =
+			g_signal_connect (priv->backend, "item-progress",
+					G_CALLBACK (pk_transaction_item_progress_cb), transaction);
+
+	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_NOTIFY_SPEED))
+		priv->signal_speed =
+			g_signal_connect (priv->backend, "notify::speed",
+					G_CALLBACK (pk_transaction_speed_cb), transaction);
+}
+
+/**
+ * pk_transaction_disconnect_backend_signals:
+ **/
+void
+pk_transaction_disconnect_backend_signals (PkTransaction *transaction, PkBitfield backend_signals)
+{
+	/* disconnect all selected signals */
+	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_ALLOW_CANCEL))
+		g_signal_handler_disconnect (transaction->priv->backend,
+				     transaction->priv->signal_allow_cancel);
+
+	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_DETAILS))
+		g_signal_handler_disconnect (transaction->priv->backend,
+				     transaction->priv->signal_details);
+
+	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_ERROR_CODE))
+		g_signal_handler_disconnect (transaction->priv->backend,
+				     transaction->priv->signal_error_code);
+
+	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_FILES))
+		g_signal_handler_disconnect (transaction->priv->backend,
+				     transaction->priv->signal_files);
+
+	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_DISTRO_UPGRADE))
+		g_signal_handler_disconnect (transaction->priv->backend,
+				     transaction->priv->signal_distro_upgrade);
+
+	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_FINISHED))
+		g_signal_handler_disconnect (transaction->priv->backend,
+				     transaction->priv->signal_finished);
+
+	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_MESSAGE))
+		g_signal_handler_disconnect (transaction->priv->backend,
+				     transaction->priv->signal_message);
+
+	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_PACKAGE))
+		g_signal_handler_disconnect (transaction->priv->backend,
+				     transaction->priv->signal_package);
+
+	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_NOTIFY_PERCENTAGE))
+		g_signal_handler_disconnect (transaction->priv->backend,
+				     transaction->priv->signal_percentage);
+
+	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_NOTIFY_SUBPERCENTAGE))
+		g_signal_handler_disconnect (transaction->priv->backend,
+				     transaction->priv->signal_subpercentage);
+
+	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_NOTIFY_REMAINING))
+		g_signal_handler_disconnect (transaction->priv->backend,
+				     transaction->priv->signal_remaining);
+
+	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_REPO_DETAIL))
+		g_signal_handler_disconnect (transaction->priv->backend,
+				     transaction->priv->signal_repo_detail);
+
+	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_REPO_SIGNATURE_REQUIRED))
+		g_signal_handler_disconnect (transaction->priv->backend,
+				     transaction->priv->signal_repo_signature_required);
+
+	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_EULA_REQUIRED))
+		g_signal_handler_disconnect (transaction->priv->backend,
+				     transaction->priv->signal_eula_required);
+
+	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_MEDIA_CHANGE_REQUIRED))
+		g_signal_handler_disconnect (transaction->priv->backend,
+				     transaction->priv->signal_media_change_required);
+
+	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_REQUIRE_RESTART))
+		g_signal_handler_disconnect (transaction->priv->backend,
+				     transaction->priv->signal_require_restart);
+
+	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_STATUS_CHANGED))
+		g_signal_handler_disconnect (transaction->priv->backend,
+				     transaction->priv->signal_status_changed);
+
+	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_UPDATE_DETAIL))
+		g_signal_handler_disconnect (transaction->priv->backend,
+				     transaction->priv->signal_update_detail);
+
+	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_CATEGORY))
+		g_signal_handler_disconnect (transaction->priv->backend,
+				     transaction->priv->signal_category);
+
+	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_ITEM_PROGRESS))
+		g_signal_handler_disconnect (transaction->priv->backend,
+				     transaction->priv->signal_item_progress);
+
+	if (pk_bitfield_contain (backend_signals, PK_BACKEND_SIGNAL_NOTIFY_SPEED))
+		g_signal_handler_disconnect (transaction->priv->backend,
+				     transaction->priv->signal_speed);
+
+}
+
+/**
  * pk_transaction_run:
  */
 gboolean
@@ -1981,6 +2175,7 @@ pk_transaction_run (PkTransaction *transaction)
 	gboolean ret;
 	GError *error = NULL;
 	PkExitEnum exit_status;
+	PkBitfield backend_connections;
 	PkTransactionPrivate *priv = PK_TRANSACTION_GET_PRIVATE (transaction);
 
 	g_return_val_if_fail (PK_IS_TRANSACTION (transaction), FALSE);
@@ -2056,71 +2251,31 @@ pk_transaction_run (PkTransaction *transaction)
 		 priv->tid,
 		 pk_role_enum_to_string (priv->role));
 
-	/* connect up the signals */
-	priv->signal_allow_cancel =
-		g_signal_connect (priv->backend, "allow-cancel",
-				  G_CALLBACK (pk_transaction_allow_cancel_cb), transaction);
-	priv->signal_details =
-		g_signal_connect (priv->backend, "details",
-				  G_CALLBACK (pk_transaction_details_cb), transaction);
-	priv->signal_error_code =
-		g_signal_connect (priv->backend, "error-code",
-				  G_CALLBACK (pk_transaction_error_code_cb), transaction);
-	priv->signal_files =
-		g_signal_connect (priv->backend, "files",
-				  G_CALLBACK (pk_transaction_files_cb), transaction);
-	priv->signal_distro_upgrade =
-		g_signal_connect (priv->backend, "distro-upgrade",
-				  G_CALLBACK (pk_transaction_distro_upgrade_cb), transaction);
-	priv->signal_finished =
-		g_signal_connect (priv->backend, "finished",
-				  G_CALLBACK (pk_transaction_finished_cb), transaction);
-	priv->signal_message =
-		g_signal_connect (priv->backend, "message",
-				  G_CALLBACK (pk_transaction_message_cb), transaction);
-	priv->signal_package =
-		g_signal_connect (priv->backend, "package",
-				  G_CALLBACK (pk_transaction_package_cb), transaction);
-	priv->signal_percentage =
-		g_signal_connect (priv->backend, "notify::percentage",
-				  G_CALLBACK (pk_transaction_percentage_cb), transaction);
-	priv->signal_subpercentage =
-		g_signal_connect (priv->backend, "notify::subpercentage",
-				  G_CALLBACK (pk_transaction_subpercentage_cb), transaction);
-	priv->signal_remaining =
-		g_signal_connect (priv->backend, "notify::remaining",
-				  G_CALLBACK (pk_transaction_remaining_cb), transaction);
-	priv->signal_repo_detail =
-		g_signal_connect (priv->backend, "repo-detail",
-				  G_CALLBACK (pk_transaction_repo_detail_cb), transaction);
-	priv->signal_repo_signature_required =
-		g_signal_connect (priv->backend, "repo-signature-required",
-				  G_CALLBACK (pk_transaction_repo_signature_required_cb), transaction);
-	priv->signal_eula_required =
-		g_signal_connect (priv->backend, "eula-required",
-				  G_CALLBACK (pk_transaction_eula_required_cb), transaction);
-	priv->signal_media_change_required =
-		g_signal_connect (priv->backend, "media-change-required",
-				  G_CALLBACK (pk_transaction_media_change_required_cb), transaction);
-	priv->signal_require_restart =
-		g_signal_connect (priv->backend, "require-restart",
-				  G_CALLBACK (pk_transaction_require_restart_cb), transaction);
-	priv->signal_status_changed =
-		g_signal_connect (priv->backend, "status-changed",
-				  G_CALLBACK (pk_transaction_status_changed_cb), transaction);
-	priv->signal_update_detail =
-		g_signal_connect (priv->backend, "update-detail",
-				  G_CALLBACK (pk_transaction_update_detail_cb), transaction);
-	priv->signal_category =
-		g_signal_connect (priv->backend, "category",
-				  G_CALLBACK (pk_transaction_category_cb), transaction);
-	priv->signal_item_progress =
-		g_signal_connect (priv->backend, "item-progress",
-				  G_CALLBACK (pk_transaction_item_progress_cb),
-				  transaction);
-	priv->signal_speed =
-		g_signal_connect (priv->backend, "notify::speed",
-				  G_CALLBACK (pk_transaction_speed_cb), transaction);
+	/* connect the backend */
+	backend_connections = pk_bitfield_from_enums (
+		PK_BACKEND_SIGNAL_ALLOW_CANCEL,
+		PK_BACKEND_SIGNAL_DETAILS,
+		PK_BACKEND_SIGNAL_ERROR_CODE,
+		PK_BACKEND_SIGNAL_DISTRO_UPGRADE,
+		PK_BACKEND_SIGNAL_FINISHED,
+		PK_BACKEND_SIGNAL_MESSAGE,
+		PK_BACKEND_SIGNAL_PACKAGE,
+		PK_BACKEND_SIGNAL_FILES,
+		PK_BACKEND_SIGNAL_NOTIFY_PERCENTAGE,
+		PK_BACKEND_SIGNAL_NOTIFY_SUBPERCENTAGE,
+		PK_BACKEND_SIGNAL_NOTIFY_REMAINING,
+		PK_BACKEND_SIGNAL_NOTIFY_SPEED,
+		PK_BACKEND_SIGNAL_REPO_DETAIL,
+		PK_BACKEND_SIGNAL_REPO_SIGNATURE_REQUIRED,
+		PK_BACKEND_SIGNAL_EULA_REQUIRED,
+		PK_BACKEND_SIGNAL_MEDIA_CHANGE_REQUIRED,
+		PK_BACKEND_SIGNAL_REQUIRE_RESTART,
+		PK_BACKEND_SIGNAL_STATUS_CHANGED,
+		PK_BACKEND_SIGNAL_UPDATE_DETAIL,
+		PK_BACKEND_SIGNAL_CATEGORY,
+		PK_BACKEND_SIGNAL_ITEM_PROGRESS,
+		-1);
+	pk_transaction_connect_backend_signals (transaction, backend_connections);
 
 	/* run the plugins */
 	pk_transaction_plugin_phase (transaction,
@@ -3507,7 +3662,7 @@ out:
 }
 
 /**
- * pk_transaction_get_old_transactions:
+ * pk_transaction_get_old_transaction:
  **/
 static void
 pk_transaction_get_old_transactions (PkTransaction *transaction,
diff --git a/src/pk-transaction.h b/src/pk-transaction.h
index 02c7a49..703197a 100644
--- a/src/pk-transaction.h
+++ b/src/pk-transaction.h
@@ -94,6 +94,8 @@ void		 pk_transaction_add_supported_content_type	(PkTransaction	*transaction,
 								 const gchar	*mime_type);
 void		 pk_transaction_set_plugins			(PkTransaction	*transaction,
 								 GPtrArray	*plugins);
+void		 pk_transaction_connect_backend_signals		(PkTransaction *transaction, PkBitfield actions);
+void 		 pk_transaction_disconnect_backend_signals	(PkTransaction *transaction, PkBitfield actions);
 
 G_END_DECLS
 
commit 22660ee3bc156fe534d1fa7f58cd9eb20e905d5d
Author: Richard Hughes <richard at hughsie.com>
Date:   Wed Dec 28 16:47:51 2011 +0000

    trivial: fix make check

diff --git a/lib/packagekit-glib2/pk-self-test.c b/lib/packagekit-glib2/pk-self-test.c
index 19a0e0d..00c726b 100644
--- a/lib/packagekit-glib2/pk-self-test.c
+++ b/lib/packagekit-glib2/pk-self-test.c
@@ -1101,7 +1101,8 @@ pk_test_control_func (void)
 		     "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;upgrade-system");
+		     "simulate-remove-packages;simulate-update-packages;upgrade-system;"
+		     "repair-system;simulate-repair-system");
 	g_free (text);
 
 	g_object_unref (control);
commit b64943158a145c2c9c033402efa74df72b1f4a84
Author: Richard Hughes <richard at hughsie.com>
Date:   Wed Dec 28 16:47:45 2011 +0000

    dummy: Add dummy RepairSystem methods

diff --git a/backends/dummy/pk-backend-dummy.c b/backends/dummy/pk-backend-dummy.c
index 53ce20f..ce38271 100644
--- a/backends/dummy/pk-backend-dummy.c
+++ b/backends/dummy/pk-backend-dummy.c
@@ -1455,6 +1455,24 @@ pk_backend_upgrade_system (PkBackend *backend, const gchar *distro_id, PkUpgrade
 }
 
 /**
+ * pk_backend_repair_system:
+ */
+void
+pk_backend_repair_system (PkBackend *backend, gboolean only_trusted)
+{
+	pk_backend_finished (backend);
+}
+
+/**
+ * pk_backend_simulate_repair_system:
+ */
+void
+pk_backend_simulate_repair_system (PkBackend *backend)
+{
+	pk_backend_finished (backend);
+}
+
+/**
  * pk_backend_transaction_start:
  */
 void
commit 12ebfbe277df464095cf5f49e78ab029752ac8f9
Author: Sebastian Heinlein <devel at glatzor.de>
Date:   Fri Dec 23 12:18:19 2011 +0100

    Fix typo in the repair system policy

diff --git a/policy/org.freedesktop.packagekit.policy.in b/policy/org.freedesktop.packagekit.policy.in
index c34c81a..9246b9d 100644
--- a/policy/org.freedesktop.packagekit.policy.in
+++ b/policy/org.freedesktop.packagekit.policy.in
@@ -249,7 +249,7 @@
     </defaults>
   </action>
 
-  <action id="org.freedesktop.packagekit.repiar-system">
+  <action id="org.freedesktop.packagekit.repair-system">
     <!-- SECURITY:
           - Normal users require admin authentication to repair the system
             since this can make the system unbootable or stop other
commit 126580c4e6290408f41fd1a7ceae8c8975568258
Merge: 8be8994... 4fc2203...
Author: Sebastian Heinlein <devel at glatzor.de>
Date:   Fri Dec 23 12:11:10 2011 +0100

    Merge branch 'master' into repair-system
    
    Conflicts:
    	lib/packagekit-glib2/pk-client.c

diff --cc backends/apt/tests/test_modifiers.py
index 3f46523,d6cc84d..6c6d65d
--- a/backends/apt/tests/test_modifiers.py
+++ b/backends/apt/tests/test_modifiers.py
@@@ -298,42 -298,9 +298,42 @@@ Auto-Installed: 1"""
          # Install the package
          self.backend.dispatch_command("install-packages",
                                        ["True", "silly-base;0.1-0;all;"])
-         self.backend._cache.open()
+         self.backend._open_cache()
          self.assertEqual(self.backend._cache["silly-base"].is_installed, False)
  
 +    def test_repair_system(self):
 +        """Test the recovery of broken dependencies."""
 +        self._catch_callbacks()
 +        self.backend.finished()
 +        # Setup environment
 +        self.mox.ReplayAll()
 +        self.chroot.add_test_repository()
 +        for pkg in ("silly-depend-base_0.1-0_all.deb", "silly-broken_0.1-0_all.deb"):
 +            self.chroot.install_debfile(os.path.join(REPO_PATH, pkg), True)
 +        self.backend._cache.open()
 +        # Install the package
 +        self.backend.dispatch_command("repair-system", [True])
 +        self.backend._cache.open()
 +        self.assertEqual(self.backend._cache["silly-base"].is_installed, True)
 +        self.assertEqual(self.backend._cache["silly-depend-base"].is_installed, True)
 +        self.assertEqual(self.backend._cache["silly-broken"].is_installed, False)
 +
 +    def test_simulate_repair_system(self):
 +        """Test simulation a system recovery."""
 +        self._catch_callbacks("package")
 +        self.backend.package("silly-base;0.1-0update1;all;",
 +                             enums.INFO_INSTALLING, mox.IsA(str))
 +        self.backend.package("silly-broken;0.1-0;all;", enums.INFO_REMOVING, mox.IsA(str))
 +        self.backend.finished()
 +        # Setup environment
 +        self.mox.ReplayAll()
 +        self.chroot.add_test_repository()
 +        for pkg in ("silly-depend-base_0.1-0_all.deb", "silly-broken_0.1-0_all.deb"):
 +            self.chroot.install_debfile(os.path.join(REPO_PATH, pkg), True)
 +        self.backend._cache.open()
 +        # Install the package
 +        self.backend.dispatch_command("simulate-repair-system", [])
 +
  
  if __name__ == "__main__":
      unittest.main()
diff --cc lib/packagekit-glib2/pk-client.c
index c7443d2,cfe6ae8..7b1bd75
--- a/lib/packagekit-glib2/pk-client.c
+++ b/lib/packagekit-glib2/pk-client.c
@@@ -1682,136 -1690,223 +1690,240 @@@ pk_client_set_hints_cb (GObject *source
  	} else if (state->role == PK_ROLE_ENUM_WHAT_PROVIDES) {
  		filters_text = pk_filter_bitfield_to_string (state->filters);
  		enum_text = pk_provides_enum_to_string (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_STRV, state->search,
- 						       G_TYPE_INVALID);
+ 		g_dbus_proxy_call (state->proxy, "WhatProvides",
+ 				   g_variant_new ("(ss^a&s)",
+ 						  filters_text,
+ 						  enum_text,
+ 						  state->search),
+ 				   G_DBUS_CALL_FLAGS_NONE,
+ 				   PK_CLIENT_DBUS_METHOD_TIMEOUT,
+ 				   state->cancellable,
+ 				   pk_client_method_cb,
+ 				   state);
  	} 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);
+ 		g_dbus_proxy_call (state->proxy, "GetDistroUpgrades",
+ 				   NULL,
+ 				   G_DBUS_CALL_FLAGS_NONE,
+ 				   PK_CLIENT_DBUS_METHOD_TIMEOUT,
+ 				   state->cancellable,
+ 				   pk_client_method_cb,
+ 				   state);
  	} 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);
- 		g_object_set (state->results, "inputs", g_strv_length (state->package_ids), NULL);
+ 		g_dbus_proxy_call (state->proxy, "GetFiles",
+ 				   g_variant_new ("(^a&s)",
+ 						  state->package_ids),
+ 				   G_DBUS_CALL_FLAGS_NONE,
+ 				   PK_CLIENT_DBUS_METHOD_TIMEOUT,
+ 				   state->cancellable,
+ 				   pk_client_method_cb,
+ 				   state);
+ 		g_object_set (state->results,
+ 			      "inputs", g_strv_length (state->package_ids),
+ 			      NULL);
  	} 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);
+ 		g_dbus_proxy_call (state->proxy, "GetCategories",
+ 				   NULL,
+ 				   G_DBUS_CALL_FLAGS_NONE,
+ 				   PK_CLIENT_DBUS_METHOD_TIMEOUT,
+ 				   state->cancellable,
+ 				   pk_client_method_cb,
+ 				   state);
  	} 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);
- 		g_object_set (state->results, "inputs", g_strv_length (state->package_ids), NULL);
+ 		g_dbus_proxy_call (state->proxy, "RemovePackages",
+ 				   g_variant_new ("(^a&sbb)",
+ 						  state->package_ids,
+ 						  state->allow_deps,
+ 						  state->autoremove),
+ 				   G_DBUS_CALL_FLAGS_NONE,
+ 				   PK_CLIENT_DBUS_METHOD_TIMEOUT,
+ 				   state->cancellable,
+ 				   pk_client_method_cb,
+ 				   state);
+ 		g_object_set (state->results,
+ 			      "inputs", g_strv_length (state->package_ids),
+ 			      NULL);
  	} 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);
+ 		g_dbus_proxy_call (state->proxy, "RefreshCache",
+ 				   g_variant_new ("(b)",
+ 						  state->force),
+ 				   G_DBUS_CALL_FLAGS_NONE,
+ 				   PK_CLIENT_DBUS_METHOD_TIMEOUT,
+ 				   state->cancellable,
+ 				   pk_client_method_cb,
+ 				   state);
  	} 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);
- 		g_object_set (state->results, "inputs", g_strv_length (state->package_ids), NULL);
+ 		g_dbus_proxy_call (state->proxy, "InstallPackages",
+ 				   g_variant_new ("(b^a&s)",
+ 						  state->only_trusted,
+ 						  state->package_ids),
+ 				   G_DBUS_CALL_FLAGS_NONE,
+ 				   PK_CLIENT_DBUS_METHOD_TIMEOUT,
+ 				   state->cancellable,
+ 				   pk_client_method_cb,
+ 				   state);
+ 		g_object_set (state->results,
+ 			      "inputs", g_strv_length (state->package_ids),
+ 			      NULL);
  	} else if (state->role == PK_ROLE_ENUM_INSTALL_SIGNATURE) {
  		enum_text = pk_sig_type_enum_to_string (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);
+ 		g_dbus_proxy_call (state->proxy, "InstallSignature",
+ 				   g_variant_new ("(sss)",
+ 						  enum_text,
+ 						  state->key_id,
+ 						  state->package_id),
+ 				   G_DBUS_CALL_FLAGS_NONE,
+ 				   PK_CLIENT_DBUS_METHOD_TIMEOUT,
+ 				   state->cancellable,
+ 				   pk_client_method_cb,
+ 				   state);
  	} 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);
- 		g_object_set (state->results, "inputs", g_strv_length (state->package_ids), NULL);
+ 		g_dbus_proxy_call (state->proxy, "UpdatePackages",
+ 				   g_variant_new ("(b^a&s)",
+ 						  state->only_trusted,
+ 						  state->package_ids),
+ 				   G_DBUS_CALL_FLAGS_NONE,
+ 				   PK_CLIENT_DBUS_METHOD_TIMEOUT,
+ 				   state->cancellable,
+ 				   pk_client_method_cb,
+ 				   state);
+ 		g_object_set (state->results,
+ 			      "inputs", g_strv_length (state->package_ids),
+ 			      NULL);
  	} 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);
- 		g_object_set (state->results, "inputs", g_strv_length (state->files), NULL);
+ 		g_dbus_proxy_call (state->proxy, "InstallFiles",
+ 				   g_variant_new ("(b^a&s)",
+ 						  state->only_trusted,
+ 						  state->files),
+ 				   G_DBUS_CALL_FLAGS_NONE,
+ 				   PK_CLIENT_DBUS_METHOD_TIMEOUT,
+ 				   state->cancellable,
+ 				   pk_client_method_cb,
+ 				   state);
+ 		g_object_set (state->results,
+ 			      "inputs", g_strv_length (state->files),
+ 			      NULL);
  	} 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);
+ 		g_dbus_proxy_call (state->proxy, "AcceptEula",
+ 				   g_variant_new ("(s)",
+ 						  state->eula_id),
+ 				   G_DBUS_CALL_FLAGS_NONE,
+ 				   PK_CLIENT_DBUS_METHOD_TIMEOUT,
+ 				   state->cancellable,
+ 				   pk_client_method_cb,
+ 				   state);
  	} else if (state->role == PK_ROLE_ENUM_ROLLBACK) {
- 		state->call = dbus_g_proxy_begin_call (state->proxy, "Rollback",
- 						       (DBusGProxyCallNotify) pk_client_method_cb, state, NULL,
- 						       G_TYPE_STRING, state->transaction_id,
- 						       G_TYPE_INVALID);
+ 		g_dbus_proxy_call (state->proxy, "Rollback",
+ 				   g_variant_new ("(s)",
+ 						  state->transaction_id),
+ 				   G_DBUS_CALL_FLAGS_NONE,
+ 				   PK_CLIENT_DBUS_METHOD_TIMEOUT,
+ 				   state->cancellable,
+ 				   pk_client_method_cb,
+ 				   state);
  	} else if (state->role == PK_ROLE_ENUM_GET_REPO_LIST) {
  		filters_text = pk_filter_bitfield_to_string (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);
+ 		g_dbus_proxy_call (state->proxy, "GetRepoList",
+ 				   g_variant_new ("(s)",
+ 						  filters_text),
+ 				   G_DBUS_CALL_FLAGS_NONE,
+ 				   PK_CLIENT_DBUS_METHOD_TIMEOUT,
+ 				   state->cancellable,
+ 				   pk_client_method_cb,
+ 				   state);
  	} 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);
+ 		g_dbus_proxy_call (state->proxy, "RepoEnable",
+ 				   g_variant_new ("(sb)",
+ 						  state->repo_id,
+ 						  state->enabled),
+ 				   G_DBUS_CALL_FLAGS_NONE,
+ 				   PK_CLIENT_DBUS_METHOD_TIMEOUT,
+ 				   state->cancellable,
+ 				   pk_client_method_cb,
+ 				   state);
  	} 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);
+ 		g_dbus_proxy_call (state->proxy, "RepoSetData",
+ 				   g_variant_new ("(sss)",
+ 						  state->repo_id,
+ 						  state->parameter,
+ 						  state->value),
+ 				   G_DBUS_CALL_FLAGS_NONE,
+ 				   PK_CLIENT_DBUS_METHOD_TIMEOUT,
+ 				   state->cancellable,
+ 				   pk_client_method_cb,
+ 				   state);
  	} 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);
- 		g_object_set (state->results, "inputs", g_strv_length (state->files), NULL);
+ 		g_dbus_proxy_call (state->proxy, "SimulateInstallFiles",
+ 				   g_variant_new ("(^a&s)",
+ 						  state->files),
+ 				   G_DBUS_CALL_FLAGS_NONE,
+ 				   PK_CLIENT_DBUS_METHOD_TIMEOUT,
+ 				   state->cancellable,
+ 				   pk_client_method_cb,
+ 				   state);
+ 		g_object_set (state->results,
+ 			      "inputs", g_strv_length (state->files),
+ 			      NULL);
  	} 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);
- 		g_object_set (state->results, "inputs", g_strv_length (state->package_ids), NULL);
+ 		g_dbus_proxy_call (state->proxy, "SimulateInstallPackages",
+ 				   g_variant_new ("(^a&s)",
+ 						  state->package_ids),
+ 				   G_DBUS_CALL_FLAGS_NONE,
+ 				   PK_CLIENT_DBUS_METHOD_TIMEOUT,
+ 				   state->cancellable,
+ 				   pk_client_method_cb,
+ 				   state);
+ 		g_object_set (state->results,
+ 			      "inputs", g_strv_length (state->package_ids),
+ 			      NULL);
  	} 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_BOOLEAN, state->autoremove,
- 						       G_TYPE_INVALID);
+ 		g_dbus_proxy_call (state->proxy, "SimulateRemovePackages",
+ 				   g_variant_new ("(^a&sb)",
+ 						  state->package_ids,
+ 						  state->autoremove),
+ 				   G_DBUS_CALL_FLAGS_NONE,
+ 				   PK_CLIENT_DBUS_METHOD_TIMEOUT,
+ 				   state->cancellable,
+ 				   pk_client_method_cb,
+ 				   state);
  	} 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);
- 		g_object_set (state->results, "inputs", g_strv_length (state->package_ids), NULL);
+ 		g_dbus_proxy_call (state->proxy, "SimulateUpdatePackages",
+ 				   g_variant_new ("(^a&s)",
+ 						  state->package_ids),
+ 				   G_DBUS_CALL_FLAGS_NONE,
+ 				   PK_CLIENT_DBUS_METHOD_TIMEOUT,
+ 				   state->cancellable,
+ 				   pk_client_method_cb,
+ 				   state);
+ 		g_object_set (state->results,
+ 			      "inputs", g_strv_length (state->package_ids),
+ 			      NULL);
  	} else if (state->role == PK_ROLE_ENUM_UPGRADE_SYSTEM) {
- 		state->call = dbus_g_proxy_begin_call (state->proxy, "UpgradeSystem",
- 						       (DBusGProxyCallNotify) pk_client_method_cb, state, NULL,
- 						       G_TYPE_STRING, state->distro_id,
- 						       G_TYPE_STRING, pk_upgrade_kind_enum_to_string (state->upgrade_kind),
- 						       G_TYPE_INVALID);
+ 		g_dbus_proxy_call (state->proxy, "UpgradeSystem",
+ 				   g_variant_new ("(ss)",
+ 						  state->distro_id,
+ 						  pk_upgrade_kind_enum_to_string (state->upgrade_kind)),
+ 				   G_DBUS_CALL_FLAGS_NONE,
+ 				   PK_CLIENT_DBUS_METHOD_TIMEOUT,
+ 				   state->cancellable,
+ 				   pk_client_method_cb,
+ 				   state);
 +	} else if (state->role == PK_ROLE_ENUM_REPAIR_SYSTEM) {
- 		state->call = dbus_g_proxy_begin_call (state->proxy, "RepairSystem",
- 						       (DBusGProxyCallNotify) pk_client_method_cb, state, NULL,
- 						       G_TYPE_BOOLEAN, state->only_trusted,
- 						       G_TYPE_INVALID);
++		g_dbus_proxy_call (state->proxy, "RepairSystem",
++				   g_variant_new ("(b)",
++				                  state->only_trusted),
++				   G_DBUS_CALL_FLAGS_NONE,
++				   PK_CLIENT_DBUS_METHOD_TIMEOUT,
++				   state->cancellable,
++				   pk_client_method_cb,
++				   state);
 +	} else if (state->role == PK_ROLE_ENUM_SIMULATE_REPAIR_SYSTEM) {
- 		state->call = dbus_g_proxy_begin_call (state->proxy, "SimulateRepairSystem",
- 						       (DBusGProxyCallNotify) pk_client_method_cb, state, NULL,
- 						       G_TYPE_INVALID);
++		g_dbus_proxy_call (state->proxy, "SimulateRepairSystem",
++				   NULL,
++				   G_DBUS_CALL_FLAGS_NONE,
++				   PK_CLIENT_DBUS_METHOD_TIMEOUT,
++				   state->cancellable,
++				   pk_client_method_cb,
++				   state);
  	} else {
  		g_assert_not_reached ();
  	}
@@@ -4313,155 -4701,21 +4718,154 @@@ out
  	g_object_unref (res);
  }
  
 +/**
 + * pk_client_repair_system_async:
 + * @client: a valid #PkClient instance
 + * @only_trusted: only trusted packages should be installed
 + * @cancellable: a #GCancellable or %NULL
 + * @progress_callback: (scope call): 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
 + *
 + * This transaction will try to recover from a broken package management system:
 + * e.g. the installation of a package with unsatisfied dependencies has
 + * been forced by the user using a low level tool (rpm or dpkg) or the
 + * system was shutdown during processing an installation.
 + *
 + * The backend will decide what is best to do.
 + *
 + * Since: 0.7.2
 + **/
 +void
 +pk_client_repair_system_async (PkClient *client,
 +                               gboolean only_trusted,
 +                               GCancellable *cancellable,
 +                               PkProgressCallback progress_callback,
 +                               gpointer progress_user_data,
 +                               GAsyncReadyCallback callback_ready, gpointer user_data)
 +{
 +	GSimpleAsyncResult *res;
 +	PkClientState *state;
 +	GError *error = NULL;
 +
 +	g_return_if_fail (PK_IS_CLIENT (client));
 +	g_return_if_fail (callback_ready != NULL);
 +	g_return_if_fail (cancellable == NULL || G_IS_CANCELLABLE (cancellable));
 +
 +	res = g_simple_async_result_new (G_OBJECT (client), callback_ready, user_data, pk_client_repair_system_async);
 +
 +	/* save state */
 +	state = g_slice_new0 (PkClientState);
 +	state->role = PK_ROLE_ENUM_REPAIR_SYSTEM;
 +	state->res = g_object_ref (res);
 +	state->client = g_object_ref (client);
 +	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->only_trusted = only_trusted;
 +	state->progress_callback = progress_callback;
 +	state->progress_user_data = progress_user_data;
 +	state->progress = pk_progress_new ();
 +
 +	/* check not already cancelled */
 +	if (cancellable != NULL && g_cancellable_set_error_if_cancelled (cancellable, &error)) {
 +		pk_client_state_finish (state, error);
 +		g_error_free (error);
 +		goto out;
 +	}
 +
 +	/* identify */
 +	pk_client_set_role (state, state->role);
 +
 +	/* get tid */
 +	pk_control_get_tid_async (client->priv->control, cancellable, (GAsyncReadyCallback) pk_client_get_tid_cb, state);
 +out:
 +	g_object_unref (res);
 +}
 +
 +/**
 + * pk_client_simulate_repair_system_async:
 + * @client: a valid #PkClient instance
 + * @only_trusted: only trusted packages should be installed
 + * @cancellable: a #GCancellable or %NULL
 + * @progress_callback: (scope call): 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
 + *
 + * This transaction simulates a recovery from a broken package management system:
 + * e.g. the installation of a package with unsatisfied dependencies has
 + * been forced by the user using a low level tool (rpm or dpkg) or the
 + * system was shutdown during processing an installation.
 + *
 + * The backend will decide what is best to do.
 + *
 + * Since: 0.7.2
 + **/
 +void
 +pk_client_simulate_repair_system_async (PkClient *client,
 +                                        GCancellable *cancellable,
 +                                        PkProgressCallback progress_callback,
 +                                        gpointer progress_user_data,
 +                                        GAsyncReadyCallback callback_ready,
 +                                        gpointer user_data)
 +{
 +	GSimpleAsyncResult *res;
 +	PkClientState *state;
 +	GError *error = NULL;
 +
 +	g_return_if_fail (PK_IS_CLIENT (client));
 +	g_return_if_fail (callback_ready != NULL);
 +	g_return_if_fail (cancellable == NULL || G_IS_CANCELLABLE (cancellable));
 +
 +	res = g_simple_async_result_new (G_OBJECT (client), callback_ready, user_data, pk_client_repair_system_async);
 +
 +	/* save state */
 +	state = g_slice_new0 (PkClientState);
 +	state->role = PK_ROLE_ENUM_SIMULATE_REPAIR_SYSTEM;
 +	state->res = g_object_ref (res);
 +	state->client = g_object_ref (client);
 +	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->progress_callback = progress_callback;
 +	state->progress_user_data = progress_user_data;
 +	state->progress = pk_progress_new ();
 +
 +	/* check not already cancelled */
 +	if (cancellable != NULL && g_cancellable_set_error_if_cancelled (cancellable, &error)) {
 +		pk_client_state_finish (state, error);
 +		g_error_free (error);
 +		goto out;
 +	}
 +
 +	/* identify */
 +	pk_client_set_role (state, state->role);
 +
 +	/* get tid */
 +	pk_control_get_tid_async (client->priv->control, cancellable, (GAsyncReadyCallback) pk_client_get_tid_cb, state);
 +out:
 +	g_object_unref (res);
 +}
 +
- /***************************************************************************************************/
+ /**********************************************************************/
  
  /**
-  * pk_client_adopt_get_properties_cb:
+  * pk_client_adopt_get_proxy_cb:
   **/
  static void
- pk_client_adopt_get_properties_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkClientState *state)
+ pk_client_adopt_get_proxy_cb (GObject *object,
+ 			      GAsyncResult *res,
+ 			      gpointer user_data)
  {
  	GError *error = NULL;
- 	GHashTable *hash;
+ 	PkClientState *state = (PkClientState *) user_data;
  
- 	/* get the result */
- 	state->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 (!state->ret) {
+ 	state->proxy = g_dbus_proxy_new_for_bus_finish (res, &error);
+ 	if (state->proxy == NULL) {
  		pk_client_state_finish (state, error);
  		g_error_free (error);
  		return;
commit 4fc220318bc44fbb1b9057c0bd3d733d3478bbc9
Merge: 76a93cb... 94fa1e6...
Author: Sebastian Heinlein <devel at glatzor.de>
Date:   Tue Dec 20 22:23:09 2011 +0100

    Merge branch 'master' of gitorious.org:packagekit/packagekit

commit 94fa1e606918557d1776921171d8f1dcc8214b83
Author: Richard Hughes <richard at hughsie.com>
Date:   Thu Dec 15 14:42:48 2011 +0000

    trivial: add a tiny theoretical memory leak in PkDesktop

diff --git a/lib/packagekit-glib2/pk-desktop.c b/lib/packagekit-glib2/pk-desktop.c
index 51d88ba..75c8bf2 100644
--- a/lib/packagekit-glib2/pk-desktop.c
+++ b/lib/packagekit-glib2/pk-desktop.c
@@ -83,8 +83,10 @@ pk_desktop_sqlite_package_cb (void *data, gint argc, gchar **argv, gchar **col_n
 
 	/* add the filename data to the array */
 	for (i=0; i<argc; i++) {
-		if (g_strcmp0 (col_name[i], "package") == 0 && argv[i] != NULL)
+		if (g_strcmp0 (col_name[i], "package") == 0 && argv[i] != NULL) {
 			*package = g_strdup (argv[i]);
+			break;
+		}
 	}
 
 	return 0;
commit e6958a63def26e36391e03e0151e0deb7167ef79
Author: Richard Hughes <richard at hughsie.com>
Date:   Thu Dec 15 14:42:25 2011 +0000

    trivial: fix two small memory leaks introduced in commit 630b1fb333b2cc283025919f2a11eb6076d29f23

diff --git a/lib/packagekit-glib2/pk-control.c b/lib/packagekit-glib2/pk-control.c
index dd08b5e..3ae9d94 100644
--- a/lib/packagekit-glib2/pk-control.c
+++ b/lib/packagekit-glib2/pk-control.c
@@ -325,7 +325,7 @@ pk_control_signal_cb (GDBusProxy *proxy,
 		      GVariant *parameters,
 		      gpointer user_data)
 {
-	const gchar **ids_tmp;
+	const gchar **ids_tmp = NULL;
 	gchar **ids = NULL;
 	PkControl *control = PK_CONTROL (user_data);
 
@@ -361,6 +361,7 @@ pk_control_signal_cb (GDBusProxy *proxy,
 		goto out;
 	}
 out:
+	g_free (ids_tmp);
 	g_strfreev (ids);
 }
 
@@ -1541,7 +1542,7 @@ pk_control_get_transaction_list_cb (GObject *source_object,
 {
 	GError *error = NULL;
 	GVariant *value;
-	const gchar **tlist_tmp;
+	const gchar **tlist_tmp = NULL;
 	GDBusProxy *proxy = G_DBUS_PROXY (source_object);
 	PkControlState *state = (PkControlState *) user_data;
 
@@ -1567,6 +1568,7 @@ pk_control_get_transaction_list_cb (GObject *source_object,
 	/* we're done */
 	pk_control_get_transaction_list_state_finish (state, NULL);
 out:
+	g_free (tlist_tmp);
 	if (value != NULL)
 		g_variant_unref (value);
 }
commit 73bb9e4d3320b491fa0b671653f307f018118391
Author: Richard Hughes <richard at hughsie.com>
Date:   Thu Dec 15 14:34:17 2011 +0000

    trivial: fix up a tiny warning from valrind under make check

diff --git a/lib/packagekit-glib2/pk-self-test.c b/lib/packagekit-glib2/pk-self-test.c
index ba5a676..ae2047f 100644
--- a/lib/packagekit-glib2/pk-self-test.c
+++ b/lib/packagekit-glib2/pk-self-test.c
@@ -1369,7 +1369,7 @@ static void
 pk_test_package_ids_func (void)
 {
 	gboolean ret;
-	gchar *package_ids_blank[] = {};
+	gchar *package_ids_blank[] = {NULL};
 	gchar **package_ids;
 
 	/* parse va_list */
commit 8be89945d94c787838db4a5cf2fb83d4e37ab213
Author: Sebastian Heinlein <devel at glatzor.de>
Date:   Thu Dec 15 09:21:20 2011 +0100

    Add a new repair-system policy and use it by the corresponding
    RepairSystem method

diff --git a/policy/org.freedesktop.packagekit.policy.in b/policy/org.freedesktop.packagekit.policy.in
index c690099..c34c81a 100644
--- a/policy/org.freedesktop.packagekit.policy.in
+++ b/policy/org.freedesktop.packagekit.policy.in
@@ -249,5 +249,21 @@
     </defaults>
   </action>
 
+  <action id="org.freedesktop.packagekit.repiar-system">
+    <!-- SECURITY:
+          - Normal users require admin authentication to repair the system
+            since this can make the system unbootable or stop other
+            applications from working.
+     -->
+    <_description>Repair System</_description>
+    <_message>Authentication is required to repair the installed software</_message>
+    <icon_name>package-x-generic</icon_name>
+    <defaults>
+      <allow_any>no</allow_any>
+      <allow_inactive>no</allow_inactive>
+      <allow_active>auth_admin</allow_active>
+    </defaults>
+  </action>
+
 </policyconfig>
 
diff --git a/src/pk-transaction.c b/src/pk-transaction.c
index 449b760..61ea24f 100644
--- a/src/pk-transaction.c
+++ b/src/pk-transaction.c
@@ -2596,7 +2596,7 @@ pk_transaction_role_to_action_only_trusted (PkRoleEnum role)
 			policy = "org.freedesktop.packagekit.upgrade-system";
 			break;
 		case PK_ROLE_ENUM_REPAIR_SYSTEM:
-			policy = "org.freedesktop.packagekit.package-install";
+			policy = "org.freedesktop.packagekit.repair-system";
 			break;
 		default:
 			break;
commit 630b1fb333b2cc283025919f2a11eb6076d29f23
Author: Richard Hughes <richard at hughsie.com>
Date:   Fri Jul 22 17:12:07 2011 +0100

    Convert libpackagekit-glib2 from dbus-glib to GDBus

diff --git a/client/pk-console.c b/client/pk-console.c
index 9ea7eef..ad24cc5 100644
--- a/client/pk-console.c
+++ b/client/pk-console.c
@@ -26,7 +26,6 @@
 #include <stdlib.h>
 #include <stdio.h>
 #include <glib/gi18n.h>
-#include <dbus/dbus-glib.h>
 #include <packagekit-glib2/packagekit.h>
 #include <packagekit-glib2/packagekit-private.h>
 #include <sys/types.h>
@@ -1317,7 +1316,6 @@ main (int argc, char *argv[])
 		g_thread_init (NULL);
 #endif
 	g_type_init ();
-	dbus_g_thread_init ();
 
 	/* do stuff on ctrl-c */
 	signal (SIGINT, pk_console_sigint_cb);
diff --git a/client/pk-generate-pack.c b/client/pk-generate-pack.c
index a535c26..eedd6db 100644
--- a/client/pk-generate-pack.c
+++ b/client/pk-generate-pack.c
@@ -29,7 +29,6 @@
 #include <glib.h>
 #include <glib/gi18n.h>
 #include <glib/gstdio.h>
-#include <dbus/dbus-glib.h>
 #include <packagekit-glib2/packagekit.h>
 #include <packagekit-glib2/packagekit-private.h>
 
@@ -274,7 +273,6 @@ main (int argc, char *argv[])
 #endif
 
 	g_type_init ();
-	dbus_g_thread_init ();
 
 	/* do stuff on ctrl-c */
 	signal (SIGINT, pk_generate_pack_sigint_cb);
diff --git a/client/pk-monitor.c b/client/pk-monitor.c
index 7e5c504..ad1d09b 100644
--- a/client/pk-monitor.c
+++ b/client/pk-monitor.c
@@ -26,7 +26,6 @@
 #include <glib.h>
 #include <glib/gi18n.h>
 #include <packagekit-glib2/packagekit.h>
-#include <dbus/dbus-glib.h>
 
 static PkClient *client = NULL;
 
@@ -382,7 +381,6 @@ main (int argc, char *argv[])
 		g_thread_init (NULL);
 #endif
 	g_type_init ();
-	dbus_g_thread_init ();
 
 	context = g_option_context_new (NULL);
 	/* TRANSLATORS: this is a program that monitors PackageKit */
diff --git a/configure.ac b/configure.ac
index 009af19..32858e8 100644
--- a/configure.ac
+++ b/configure.ac
@@ -156,8 +156,6 @@ dnl - Library dependencies
 dnl ---------------------------------------------------------------------------
 GLIB_REQUIRED=2.26.0
 GIO_REQUIRED=2.16.1
-DBUS_REQUIRED=1.1.1
-DBUS_GLIB_REQUIRED=0.74
 NETWORK_MANAGER_REQUIRED=0.6.4
 POLKIT_GOBJECT_REQUIRED=0.98
 QTCORE_REQUIRED=4.4.0
@@ -171,10 +169,6 @@ dnl ---------------------------------------------------------------------------
 PKG_CHECK_MODULES(GLIB, glib-2.0 >= $GLIB_REQUIRED gobject-2.0)
 PKG_CHECK_MODULES(GMODULE, gmodule-2.0)
 PKG_CHECK_MODULES(SQLITE, sqlite3)
-PKG_CHECK_MODULES(DBUS, \
- dbus-glib-1 >= $DBUS_GLIB_REQUIRED \
- dbus-1 >= $DBUS_REQUIRED \
- gthread-2.0)
 PKG_CHECK_MODULES(GIO, \
  gio-2.0 >= $GIO_REQUIRED \
  gio-unix-2.0 >= $GIO_REQUIRED)
diff --git a/lib/packagekit-glib2/Makefile.am b/lib/packagekit-glib2/Makefile.am
index acd2aaa..ead4160 100644
--- a/lib/packagekit-glib2/Makefile.am
+++ b/lib/packagekit-glib2/Makefile.am
@@ -9,7 +9,6 @@ endif
 
 INCLUDES = \
 	$(GLIB_CFLAGS)						\
-	$(DBUS_CFLAGS)						\
 	$(GIO_CFLAGS)						\
 	$(POLKIT_CFLAGS)					\
 	$(SQLITE_CFLAGS)					\
@@ -154,7 +153,6 @@ libpackagekit_glib2_la_SOURCES =				\
 libpackagekit_glib2_la_LIBADD =					\
 	$(GLIB_LIBS)						\
 	$(GIO_LIBS)						\
-	$(DBUS_LIBS)						\
 	$(ARCHIVE_LIBS)						\
 	$(SQLITE_LIBS)						\
 	$(NULL)
@@ -206,7 +204,6 @@ pk_self_test_LDADD =						\
 	libpackagekit-glib2.la					\
 	libpackagekitprivate.a					\
 	$(GLIB_LIBS)						\
-	$(DBUS_LIBS)						\
 	$(SELFTEST_LIBS)					\
 	$(POLKIT_LIBS)						\
 	$(SQLITE_LIBS)						\
diff --git a/lib/packagekit-glib2/packagekit-glib2.pc.in b/lib/packagekit-glib2/packagekit-glib2.pc.in
index 8e6cf2f..11f3903 100644
--- a/lib/packagekit-glib2/packagekit-glib2.pc.in
+++ b/lib/packagekit-glib2/packagekit-glib2.pc.in
@@ -6,7 +6,7 @@ includedir=@includedir@
 Name: packagekit-glib2
 Description: PackageKit is a system daemon for installing stuff.
 Version: @VERSION@
-Requires.private: dbus-1, gthread-2.0
+Requires.private: gthread-2.0
 Requires: glib-2.0, gobject-2.0, sqlite3
 Libs: -L${libdir} -lpackagekit-glib2
 Cflags: -I${includedir}/PackageKit
diff --git a/lib/packagekit-glib2/pk-client.c b/lib/packagekit-glib2/pk-client.c
index 0bf2247..cfe6ae8 100644
--- a/lib/packagekit-glib2/pk-client.c
+++ b/lib/packagekit-glib2/pk-client.c
@@ -1,6 +1,6 @@
 /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
  *
- * Copyright (C) 2008-2010 Richard Hughes <richard at hughsie.com>
+ * Copyright (C) 2008-2011 Richard Hughes <richard at hughsie.com>
  *
  * Licensed under the GNU Lesser General Public License Version 2.1
  *
@@ -31,7 +31,6 @@
 
 #include "config.h"
 
-#include <dbus/dbus-glib.h>
 #include <gio/gio.h>
 #include <glib-object.h>
 #include <locale.h>
@@ -60,7 +59,7 @@ static void     pk_client_finalize	(GObject     *object);
  **/
 struct _PkClientPrivate
 {
-	DBusGConnection		*connection;
+	GDBusConnection		*connection;
 	GPtrArray		*calls;
 	PkControl		*control;
 	gchar			*locale;
@@ -107,11 +106,10 @@ typedef struct {
 	gpointer			 user_data;
 	guint				 number;
 	gulong				 cancellable_id;
-	DBusGProxyCall			*call;
-	DBusGProxyCall			*call_interface_changed;
-	DBusGProxy			*proxy;
-	DBusGProxy			*proxy_props;
+	GDBusProxy			*proxy;
+	GDBusProxy			*proxy_props;
 	GCancellable			*cancellable;
+	GCancellable			*cancellable_client;
 	GSimpleAsyncResult		*res;
 	PkBitfield			 filters;
 	PkClient			*client;
@@ -123,12 +121,20 @@ typedef struct {
 	PkSigTypeEnum			 type;
 	PkUpgradeKindEnum		 upgrade_kind;
 	guint				 refcount;
-	gboolean			 signals_connected;
 	PkClientHelper			*client_helper;
 } 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);
+static void
+pk_client_properties_changed_cb (GDBusProxy *proxy,
+				 GVariant *changed_properties,
+				 const gchar* const  *invalidated_properties,
+				 gpointer user_data);
+static void
+pk_client_signal_cb (GDBusProxy *proxy,
+		     const gchar *sender_name,
+		     const gchar *signal_name,
+		     GVariant *parameters,
+		     gpointer user_data);
 
 /**
  * pk_client_error_quark:
@@ -225,48 +231,40 @@ pk_client_fixup_dbus_error (GError *error)
 		goto out;
 	}
 
-	/* find a better failure code */
-	if (error->domain == DBUS_GERROR &&
-	    error->code == DBUS_GERROR_REMOTE_EXCEPTION) {
-
-		/* use one of our local codes */
-		name = dbus_g_error_get_name (error);
+	/* fall back to generic */
+	name = error->message;
+	error->code = PK_CLIENT_ERROR_FAILED;
 
-		/* fall back to generic */
-		error->code = PK_CLIENT_ERROR_FAILED;
+	/* trim common prefix */
+	if (g_str_has_prefix (name, "org.freedesktop.PackageKit.Transaction."))
+		name = &error->message[39];
 
-		/* 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, "MimeTypeNotSupported") ||
-		    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;
-		}
-		g_warning ("couldn't parse execption '%s', please report", name);
+	/* 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, "MimeTypeNotSupported") ||
+	    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;
+	}
+	g_warning ("couldn't parse execption '%s', please report", name);
 out:
 	/* hardcode domain */
 	error->domain = PK_CLIENT_ERROR;
@@ -339,17 +337,6 @@ out:
 }
 
 /**
- * pk_client_percentage_to_signed:
- */
-static gint
-pk_client_percentage_to_signed (guint percentage)
-{
-	if (percentage == 101)
-		return -1;
-	return (gint) percentage;
-}
-
-/**
  * pk_client_get_user_temp:
  *
  * Return (and create if does not exist) a temporary directory
@@ -410,104 +397,161 @@ out:
 }
 
 /**
- * pk_client_get_properties_collect_cb:
+ * pk_client_percentage_to_signed:
+ */
+static gint
+pk_client_percentage_to_signed (guint percentage)
+{
+	if (percentage == 101)
+		return -1;
+	return (gint) percentage;
+}
+
+/**
+ * pk_client_set_property_value:
  **/
 static void
-pk_client_get_properties_collect_cb (const char *key, const GValue *value, PkClientState *state)
+pk_client_set_property_value (PkClientState *state,
+			      const char *key,
+			      GVariant *value)
 {
 	gboolean ret;
 	const gchar *package_id;
 
 	/* role */
 	if (g_strcmp0 (key, "Role") == 0) {
-		ret = pk_progress_set_role (state->progress, pk_role_enum_from_string (g_value_get_string (value)));
-		if (ret && state->progress_callback != NULL)
-			state->progress_callback (state->progress, PK_PROGRESS_TYPE_ROLE, state->progress_user_data);
+		ret = pk_progress_set_role (state->progress,
+						  pk_role_enum_from_string (g_variant_get_string (value, NULL)));
+		if (ret && state->progress_callback != NULL) {
+			state->progress_callback (state->progress,
+						  PK_PROGRESS_TYPE_ROLE,
+						  state->progress_user_data);
+		}
 		return;
 	}
 
 	/* status */
 	if (g_strcmp0 (key, "Status") == 0) {
-		ret = pk_progress_set_status (state->progress, pk_status_enum_from_string (g_value_get_string (value)));
-		if (ret && state->progress_callback != NULL)
-			state->progress_callback (state->progress, PK_PROGRESS_TYPE_STATUS, state->progress_user_data);
+		ret = pk_progress_set_status (state->progress,
+						  pk_status_enum_from_string (g_variant_get_string (value, NULL)));
+		if (ret && state->progress_callback != NULL) {
+			state->progress_callback (state->progress,
+						  PK_PROGRESS_TYPE_STATUS,
+						  state->progress_user_data);
+		}
 		return;
 	}
 
 	/* last-package */
 	if (g_strcmp0 (key, "LastPackage") == 0) {
-		package_id = g_value_get_string (value);
+		package_id = g_variant_get_string (value, NULL);
 		/* check to see if it's been set yet */
 		ret = pk_package_id_check (package_id);
 		if (!ret)
 			return;
-		ret = pk_progress_set_package_id (state->progress, package_id);
-		if (ret && state->progress_callback != NULL)
-			state->progress_callback (state->progress, PK_PROGRESS_TYPE_PACKAGE_ID, state->progress_user_data);
+		ret = pk_progress_set_package_id (state->progress,
+						  package_id);
+		if (ret && state->progress_callback != NULL) {
+			state->progress_callback (state->progress,
+						  PK_PROGRESS_TYPE_PACKAGE_ID,
+						  state->progress_user_data);
+		}
 		return;
 	}
 
 	/* percentage */
 	if (g_strcmp0 (key, "Percentage") == 0) {
-		ret = pk_progress_set_percentage (state->progress, pk_client_percentage_to_signed (g_value_get_uint (value)));
-		if (ret && state->progress_callback != NULL)
-			state->progress_callback (state->progress, PK_PROGRESS_TYPE_PERCENTAGE, state->progress_user_data);
+		ret = pk_progress_set_percentage (state->progress,
+						  pk_client_percentage_to_signed (g_variant_get_uint32 (value)));
+		if (ret && state->progress_callback != NULL) {
+			state->progress_callback (state->progress,
+						  PK_PROGRESS_TYPE_PERCENTAGE,
+						  state->progress_user_data);
+		}
 		return;
 	}
 
 	/* subpercentage */
 	if (g_strcmp0 (key, "Subpercentage") == 0) {
-		ret = pk_progress_set_subpercentage (state->progress, pk_client_percentage_to_signed (g_value_get_uint (value)));
-		if (ret && state->progress_callback != NULL)
-			state->progress_callback (state->progress, PK_PROGRESS_TYPE_SUBPERCENTAGE, state->progress_user_data);
+		ret = pk_progress_set_subpercentage (state->progress,
+						  pk_client_percentage_to_signed (g_variant_get_uint32 (value)));
+		if (ret && state->progress_callback != NULL) {
+			state->progress_callback (state->progress,
+						  PK_PROGRESS_TYPE_SUBPERCENTAGE,
+						  state->progress_user_data);
+		}
 		return;
 	}
 
 	/* allow-cancel */
 	if (g_strcmp0 (key, "AllowCancel") == 0) {
-		ret = pk_progress_set_allow_cancel (state->progress, g_value_get_boolean (value));
-		if (ret && state->progress_callback != NULL)
-			state->progress_callback (state->progress, PK_PROGRESS_TYPE_ALLOW_CANCEL, state->progress_user_data);
+		ret = pk_progress_set_allow_cancel (state->progress,
+						  g_variant_get_boolean (value));
+		if (ret && state->progress_callback != NULL) {
+			state->progress_callback (state->progress,
+						  PK_PROGRESS_TYPE_ALLOW_CANCEL,
+						  state->progress_user_data);
+		}
 		return;
 	}
 
 	/* caller-active */
 	if (g_strcmp0 (key, "CallerActive") == 0) {
-		ret = pk_progress_set_caller_active (state->progress, g_value_get_boolean (value));
-		if (ret && state->progress_callback != NULL)
-			state->progress_callback (state->progress, PK_PROGRESS_TYPE_CALLER_ACTIVE, state->progress_user_data);
+		ret = pk_progress_set_caller_active (state->progress,
+						  g_variant_get_boolean (value));
+		if (ret && state->progress_callback != NULL) {
+			state->progress_callback (state->progress,
+						  PK_PROGRESS_TYPE_CALLER_ACTIVE,
+						  state->progress_user_data);
+		}
 		return;
 	}
 
 	/* elapsed-time */
 	if (g_strcmp0 (key, "ElapsedTime") == 0) {
-		ret = pk_progress_set_elapsed_time (state->progress, g_value_get_uint (value));
-		if (ret && state->progress_callback != NULL)
-			state->progress_callback (state->progress, PK_PROGRESS_TYPE_ELAPSED_TIME, state->progress_user_data);
+		ret = pk_progress_set_elapsed_time (state->progress,
+						  g_variant_get_uint32 (value));
+		if (ret && state->progress_callback != NULL) {
+			state->progress_callback (state->progress,
+						  PK_PROGRESS_TYPE_ELAPSED_TIME,
+						  state->progress_user_data);
+		}
 		return;
 	}
 
 	/* remaining-time */
 	if (g_strcmp0 (key, "RemainingTime") == 0) {
-		ret = pk_progress_set_elapsed_time (state->progress, g_value_get_uint (value));
-		if (ret && state->progress_callback != NULL)
-			state->progress_callback (state->progress, PK_PROGRESS_TYPE_REMAINING_TIME, state->progress_user_data);
+		ret = pk_progress_set_elapsed_time (state->progress,
+						  g_variant_get_uint32 (value));
+		if (ret && state->progress_callback != NULL) {
+			state->progress_callback (state->progress,
+						  PK_PROGRESS_TYPE_REMAINING_TIME,
+						  state->progress_user_data);
+		}
 		return;
 	}
 
 	/* speed */
 	if (g_strcmp0 (key, "Speed") == 0) {
-		ret = pk_progress_set_speed (state->progress, g_value_get_uint (value));
-		if (ret && state->progress_callback != NULL)
-			state->progress_callback (state->progress, PK_PROGRESS_TYPE_SPEED, state->progress_user_data);
+		ret = pk_progress_set_speed (state->progress,
+						  g_variant_get_uint32 (value));
+		if (ret && state->progress_callback != NULL) {
+			state->progress_callback (state->progress,
+						  PK_PROGRESS_TYPE_SPEED,
+						  state->progress_user_data);
+		}
 		return;
 	}
 
 	/* uid */
 	if (g_strcmp0 (key, "Uid") == 0) {
-		ret = pk_progress_set_uid (state->progress, g_value_get_uint (value));
-		if (ret && state->progress_callback != NULL)
-			state->progress_callback (state->progress, PK_PROGRESS_TYPE_UID, state->progress_user_data);
+		ret = pk_progress_set_uid (state->progress,
+						  g_variant_get_uint32 (value));
+		if (ret && state->progress_callback != NULL) {
+			state->progress_callback (state->progress,
+						  PK_PROGRESS_TYPE_UID,
+						  state->progress_user_data);
+		}
 		return;
 	}
 
@@ -518,23 +562,29 @@ pk_client_get_properties_collect_cb (const char *key, const GValue *value, PkCli
  * pk_client_cancel_cb:
  **/
 static void
-pk_client_cancel_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkClientState *state)
+pk_client_cancel_cb (GObject *source_object,
+		     GAsyncResult *res,
+		     gpointer user_data)
 {
+	GDBusProxy *proxy = G_DBUS_PROXY (source_object);
 	GError *error = NULL;
-	gboolean ret;
+	GVariant *value;
+	PkClientState *state = (PkClientState *) user_data;
 
 	/* get the result */
-	ret = dbus_g_proxy_end_call (proxy, call, &error,
-				     G_TYPE_INVALID);
-	if (!ret) {
+	value = g_dbus_proxy_call_finish (proxy, res, &error);
+	if (value == NULL) {
 		/* there's not really a lot we can do here */
 		g_warning ("failed to cancel: %s", error->message);
 		g_error_free (error);
+		goto out;
 	}
 
 	/* finished this call */
 	g_debug ("cancelled %s", state->tid);
-	state->call = NULL;
+out:
+	if (value != NULL)
+		g_variant_unref (value);
 }
 
 /**
@@ -549,26 +599,14 @@ pk_client_cancellable_cancel_cb (GCancellable *cancellable, PkClientState *state
 		return;
 	}
 
-	/* dbus method is pending now, just cancel */
-	if (state->call != NULL) {
-		dbus_g_proxy_cancel_call (state->proxy, state->call);
-		g_debug ("cancelling %s", state->tid);
-		state->call = NULL;
-		return;
-	}
-	if (state->call_interface_changed != NULL) {
-		dbus_g_proxy_cancel_call (state->proxy, state->call_interface_changed);
-		g_debug ("cancelling %s", state->tid);
-		state->call_interface_changed = NULL;
-	}
-
 	/* 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);
-	if (state->call == NULL)
-		g_error ("failed to setup call, maybe OOM or no connection");
 	g_debug ("cancelling %s", state->tid);
+	g_dbus_proxy_call (state->proxy, "Cancel",
+			   NULL,
+			   G_DBUS_CALL_FLAGS_NONE,
+			   PK_CLIENT_DBUS_METHOD_TIMEOUT,
+			   NULL,
+			   pk_client_cancel_cb, state);
 }
 
 /**
@@ -617,16 +655,26 @@ pk_client_state_finish (PkClientState *state, const GError *error)
 
 	/* force finished (if not already set) so clients can update the UI's */
 	ret = pk_progress_set_status (state->progress, PK_STATUS_ENUM_FINISHED);
-	if (ret && state->progress_callback != NULL)
-		state->progress_callback (state->progress, PK_PROGRESS_TYPE_STATUS, state->progress_user_data);
+	if (ret && state->progress_callback != NULL) {
+		state->progress_callback (state->progress,
+					  PK_PROGRESS_TYPE_STATUS,
+					  state->progress_user_data);
+	}
 
-	if (state->cancellable != NULL) {
-		g_cancellable_disconnect (state->cancellable, state->cancellable_id);
-		g_object_unref (state->cancellable);
+	if (state->cancellable_id > 0) {
+		g_cancellable_disconnect (state->cancellable_client,
+					  state->cancellable_id);
 	}
+	if (state->cancellable != NULL)
+		g_object_unref (state->cancellable);
 
 	if (state->proxy != NULL) {
-		pk_client_disconnect_proxy (state->proxy, state);
+		g_signal_handlers_disconnect_by_func (state->proxy,
+						      G_CALLBACK (pk_client_properties_changed_cb),
+						      state);
+		g_signal_handlers_disconnect_by_func (state->proxy,
+						      G_CALLBACK (pk_client_signal_cb),
+						      state);
 		g_object_unref (G_OBJECT (state->proxy));
 	}
 
@@ -634,7 +682,9 @@ pk_client_state_finish (PkClientState *state, const GError *error)
 		g_object_unref (G_OBJECT (state->proxy_props));
 
 	if (state->ret) {
-		g_simple_async_result_set_op_res_gpointer (state->res, 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->res, error);
 	}
@@ -679,6 +729,81 @@ pk_client_state_finish (PkClientState *state, const GError *error)
 }
 
 /**
+ * pk_client_properties_changed_cb:
+ **/
+static void
+pk_client_properties_changed_cb (GDBusProxy *proxy,
+				 GVariant *changed_properties,
+				 const gchar* const  *invalidated_properties,
+				 gpointer user_data)
+{
+	const gchar *key;
+	GVariantIter *iter;
+	GVariant *value;
+	PkClientState *state = (PkClientState *) user_data;
+
+	if (g_variant_n_children (changed_properties) > 0) {
+		g_variant_get (changed_properties,
+				"a{sv}",
+				&iter);
+		while (g_variant_iter_loop (iter, "{&sv}", &key, &value))
+			pk_client_set_property_value (state, key, value);
+		g_variant_iter_free (iter);
+	}
+}
+
+/**
+ * pk_client_signal_package:
+ */
+static void
+pk_client_signal_package (PkClientState *state,
+			  PkInfoEnum info_enum,
+			  const gchar *package_id,
+			  const gchar *summary)
+{
+	gboolean ret;
+	GError *error = NULL;
+	PkPackage *package;
+
+	/* create virtual package */
+	package = pk_package_new ();
+	ret = pk_package_set_id (package, package_id, &error);
+	if (!ret) {
+		g_warning ("failed to set package id for %s", package_id);
+		g_error_free (error);
+		goto out;
+	}
+	g_object_set (package,
+		      "info", info_enum,
+		      "summary", summary,
+		      "role", state->role,
+		      "transaction-id", state->transaction_id,
+		      NULL);
+
+	/* add to results */
+	if (state->results != NULL && info_enum != PK_INFO_ENUM_FINISHED)
+		pk_results_add_package (state->results, package);
+
+	/* save package-id */
+	ret = pk_progress_set_package_id (state->progress, package_id);
+	if (state->progress_callback != NULL && ret) {
+		state->progress_callback (state->progress,
+					  PK_PROGRESS_TYPE_PACKAGE_ID,
+					  state->progress_user_data);
+	}
+
+	/* save package object */
+	ret = pk_progress_set_package (state->progress, package);
+	if (state->progress_callback != NULL && ret) {
+		state->progress_callback (state->progress,
+					  PK_PROGRESS_TYPE_PACKAGE,
+					  state->progress_user_data);
+	}
+out:
+	g_object_unref (package);
+}
+
+/**
  * pk_client_copy_finished_remove_old_files:
  *
  * Removes all the files that do not have the prefix destination path.
@@ -742,6 +867,7 @@ pk_client_copy_downloaded_finished_cb (GFile *file, GAsyncResult *res, PkClientS
 	/* no more copies pending? */
 	if (--state->refcount == 0) {
 		pk_client_copy_finished_remove_old_files (state);
+		state->ret = TRUE;
 		pk_client_state_finish (state, NULL);
 	}
 out:
@@ -759,8 +885,11 @@ pk_client_copy_progress_cb (goffset current_num_bytes, goffset total_num_bytes,
 
 	/* save status */
 	ret = pk_progress_set_status (state->progress, PK_STATUS_ENUM_COPY_FILES);
-	if (state->progress_callback != NULL && ret)
-		state->progress_callback (state->progress, PK_PROGRESS_TYPE_STATUS, state->progress_user_data);
+	if (state->progress_callback != NULL && ret) {
+		state->progress_callback (state->progress,
+					  PK_PROGRESS_TYPE_STATUS,
+					  state->progress_user_data);
+	}
 
 	/* calculate percentage */
 	if (total_num_bytes > 0)
@@ -768,8 +897,11 @@ pk_client_copy_progress_cb (goffset current_num_bytes, goffset total_num_bytes,
 
 	/* save percentage */
 	ret = pk_progress_set_percentage (state->progress, percentage);
-	if (state->progress_callback != NULL && ret)
-		state->progress_callback (state->progress, PK_PROGRESS_TYPE_PERCENTAGE, state->progress_user_data);
+	if (state->progress_callback != NULL && ret) {
+		state->progress_callback (state->progress,
+					  PK_PROGRESS_TYPE_PERCENTAGE,
+					  state->progress_user_data);
+	}
 }
 
 /**
@@ -858,8 +990,11 @@ pk_client_copy_downloaded (PkClientState *state)
 
 	/* save percentage */
 	ret = pk_progress_set_percentage (state->progress, -1);
-	if (state->progress_callback != NULL && ret)
-		state->progress_callback (state->progress, PK_PROGRESS_TYPE_PERCENTAGE, state->progress_user_data);
+	if (state->progress_callback != NULL && ret) {
+		state->progress_callback (state->progress,
+					  PK_PROGRESS_TYPE_PERCENTAGE,
+					  state->progress_user_data);
+	}
 
 	/* do the copies pipelined */
 	for (i=0; i < len; i++) {
@@ -879,17 +1014,17 @@ out:
 }
 
 /**
- * pk_client_finished_cb:
+ * pk_client_signal_finished:
  */
 static void
-pk_client_finished_cb (DBusGProxy *proxy, const gchar *exit_text, guint runtime, PkClientState *state)
+pk_client_signal_finished (PkClientState *state,
+			   PkExitEnum exit_enum,
+			   guint runtime)
 {
 	GError *error = NULL;
-	PkExitEnum exit_enum;
 	PkError *error_code = NULL;
 
 	/* yay */
-	exit_enum = pk_exit_enum_from_string (exit_text);
 	pk_results_set_exit_code (state->results, exit_enum);
 
 	/* failed */
@@ -899,10 +1034,16 @@ pk_client_finished_cb (DBusGProxy *proxy, const gchar *exit_text, guint runtime,
 		error_code = pk_results_get_error_code (state->results);
 		if (error_code != NULL) {
 			/* should only ever have one ErrorCode */
-			error = g_error_new (PK_CLIENT_ERROR, 0xFF + pk_error_get_code (error_code), "%s", pk_error_get_details (error_code));
+			error = g_error_new (PK_CLIENT_ERROR,
+					     0xFF + pk_error_get_code (error_code),
+					     "%s",
+					     pk_error_get_details (error_code));
 		} else {
 			/* fallback where the daemon didn't sent ErrorCode */
-			error = g_error_new (PK_CLIENT_ERROR, PK_CLIENT_ERROR_FAILED, "Failed: %s", exit_text);
+			error = g_error_new (PK_CLIENT_ERROR,
+					     PK_CLIENT_ERROR_FAILED,
+					     "Failed: %s",
+					     pk_exit_enum_to_string (exit_enum));
 		}
 		pk_client_state_finish (state, error);
 		g_error_free (error);
@@ -917,6 +1058,7 @@ pk_client_finished_cb (DBusGProxy *proxy, const gchar *exit_text, guint runtime,
 	}
 
 	/* we're done */
+	state->ret = TRUE;
 	pk_client_state_finish (state, NULL);
 out:
 	if (error_code != NULL)
@@ -924,615 +1066,413 @@ out:
 }
 
 /**
- * pk_client_method_cb:
+ * pk_client_signal_cb:
  **/
 static void
-pk_client_method_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkClientState *state)
+pk_client_signal_cb (GDBusProxy *proxy,
+		     const gchar *sender_name,
+		     const gchar *signal_name,
+		     GVariant *parameters,
+		     gpointer user_data)
 {
-	GError *error = NULL;
+	PkClientState *state = (PkClientState *) user_data;
+	gchar *tmp_str[12];
+	gboolean tmp_bool;
+	guint tmp_uint;
+	guint tmp_uint2;
+	guint64 tmp_uint64;
 
-	/* finished this call */
-	state->call = NULL;
-
-	/* get the result */
-	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);
-		pk_client_state_finish (state, error);
-		g_error_free (error);
+	/* connect up the signals */
+	if (g_strcmp0 (signal_name, "Message") == 0) {
+		PkMessage *item;
+		g_variant_get (parameters,
+			       "(&s&s)",
+			       &tmp_str[0],
+			       &tmp_str[1]);
+		item = pk_message_new ();
+		g_object_set (item,
+			      "type", pk_message_enum_from_string (tmp_str[0]),
+			      "details", tmp_str[1],
+			      "role", state->role,
+			      "transaction-id", state->transaction_id,
+			      NULL);
+		pk_results_add_message (state->results, item);
+		g_object_unref (item);
 		return;
 	}
-
-	/* wait for ::Finished() */
-}
-
-/**
- * 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)
-{
-	gboolean ret;
-	GError *error = NULL;
-	PkInfoEnum info_enum;
-	PkPackage *package;
-	g_return_if_fail (PK_IS_CLIENT (state->client));
-
-	/* create virtual package */
-	package = pk_package_new ();
-	ret = pk_package_set_id (package, package_id, &error);
-	if (!ret) {
-		g_warning ("failed to set package id for %s", package_id);
-		g_error_free (error);
-		goto out;
+	if (g_strcmp0 (signal_name, "Finished") == 0) {
+		g_variant_get (parameters,
+			       "(&su)",
+			       &tmp_str[0],
+			       &tmp_uint);
+		pk_client_signal_finished (state,
+					   pk_exit_enum_from_string (tmp_str[0]),
+					   tmp_uint);
+		return;
 	}
-	info_enum = pk_info_enum_from_string (info_text);
-	g_object_set (package,
-		      "info", info_enum,
-		      "summary", summary,
-		      "role", state->role,
-		      "transaction-id", state->transaction_id,
-		      NULL);
-
-	/* add to results */
-	if (info_enum != PK_INFO_ENUM_FINISHED)
-		pk_results_add_package (state->results, package);
-
-	/* save package-id */
-	ret = pk_progress_set_package_id (state->progress, package_id);
-	if (state->progress_callback != NULL && ret) {
-		state->progress_callback (state->progress,
-					  PK_PROGRESS_TYPE_PACKAGE_ID,
-					  state->progress_user_data);
+	if (g_strcmp0 (signal_name, "Package") == 0) {
+		g_variant_get (parameters,
+			       "(&s&s&s)",
+			       &tmp_str[0],
+			       &tmp_str[1],
+			       &tmp_str[2]);
+		pk_client_signal_package (state,
+					  pk_info_enum_from_string (tmp_str[0]),
+					  tmp_str[1],
+					  tmp_str[2]);
+		return;
 	}
-
-	/* save package object */
-	ret = pk_progress_set_package (state->progress, package);
-	if (state->progress_callback != NULL && ret) {
-		state->progress_callback (state->progress,
-					  PK_PROGRESS_TYPE_PACKAGE,
-					  state->progress_user_data);
+	if (g_strcmp0 (signal_name, "Details") == 0) {
+		PkDetails *item;
+		g_variant_get (parameters,
+			       "(&s&s&s&s&st)",
+			       &tmp_str[0],
+			       &tmp_str[1],
+			       &tmp_str[2],
+			       &tmp_str[3],
+			       &tmp_str[4],
+			       &tmp_uint64);
+		item = pk_details_new ();
+		g_object_set (item,
+			      "package-id", tmp_str[0],
+			      "license", tmp_str[1],
+			      "group", pk_group_enum_from_string (tmp_str[2]),
+			      "description", tmp_str[3],
+			      "url", tmp_str[4],
+			      "size", tmp_uint64,
+			      "role", state->role,
+			      "transaction-id", state->transaction_id,
+			      NULL);
+		pk_results_add_details (state->results, item);
+		g_object_unref (item);
+		return;
 	}
-out:
-	g_object_unref (package);
-}
-
-/**
- * pk_client_get_properties_cb:
- **/
-static void
-pk_client_get_properties_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkClientState *state)
-{
-	GError *error = NULL;
-	GHashTable *hash;
-	gboolean ret;
-
-	state->call_interface_changed = 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,
-				     G_TYPE_INVALID);
-	if (!ret) {
-		g_warning ("failed to get properties: %s", error->message);
-		g_error_free (error);
-		goto out;
+	if (g_strcmp0 (signal_name, "UpdateDetail") == 0) {
+		PkUpdateDetail *item;
+		g_variant_get (parameters,
+			       "(&s&s&s&s&s&s&s&s&s&s&s&s)",
+			       &tmp_str[0],
+			       &tmp_str[1],
+			       &tmp_str[2],
+			       &tmp_str[3],
+			       &tmp_str[4],
+			       &tmp_str[5],
+			       &tmp_str[6],
+			       &tmp_str[7],
+			       &tmp_str[8],
+			       &tmp_str[9],
+			       &tmp_str[10],
+			       &tmp_str[11]);
+		item = pk_update_detail_new ();
+		g_object_set (item,
+			      "package-id", tmp_str[0],
+			      "updates", tmp_str[1],
+			      "obsoletes", tmp_str[2],
+			      "vendor-url", tmp_str[3],
+			      "bugzilla-url", tmp_str[4],
+			      "cve-url", tmp_str[5],
+			      "restart", pk_restart_enum_from_string (tmp_str[6]),
+			      "update-text", tmp_str[7],
+			      "changelog", tmp_str[8],
+			      "state", pk_update_state_enum_from_string (tmp_str[9]),
+			      "issued", tmp_str[10],
+			      "updated", tmp_str[11],
+			      "role", state->role,
+			      "transaction-id", state->transaction_id,
+			      NULL);
+		pk_results_add_update_detail (state->results, item);
+		g_object_unref (item);
+		return;
 	}
-
-	/* process results */
-	if (hash != NULL) {
-		g_hash_table_foreach (hash, (GHFunc) pk_client_get_properties_collect_cb, state);
-		g_hash_table_unref (hash);
+	if (g_strcmp0 (signal_name, "Transaction") == 0) {
+		PkTransactionPast *item;
+		g_variant_get (parameters,
+			       "(&s&sb&su&su&s)",
+			       &tmp_str[0],
+			       &tmp_str[1],
+			       &tmp_bool,
+			       &tmp_str[2],
+			       &tmp_uint,
+			       &tmp_str[3],
+			       &tmp_uint2,
+			       &tmp_str[4]);
+		item = pk_transaction_past_new ();
+		g_object_set (item,
+			      "tid", tmp_str[0],
+			      "timespec", tmp_str[1],
+			      "succeeded", tmp_bool,
+			      "role", pk_role_enum_from_string (tmp_str[2]),
+			      "duration", tmp_uint,
+			      "data", tmp_str[3],
+			      "uid", tmp_uint2,
+			      "cmdline", tmp_str[4],
+			      "PkSource::role", state->role,
+			      "transaction-id", state->transaction_id,
+			      NULL);
+		pk_results_add_transaction (state->results, item);
+		g_object_unref (item);
+		return;
 	}
-
-out:
-	/* finished this call */
-	state->call = NULL;
-}
-
-/**
- * pk_client_changed_cb:
- */
-static void
-pk_client_changed_cb (DBusGProxy *proxy, PkClientState *state)
-{
-	/* successive quick Changed events */
-	if (state->call_interface_changed != NULL) {
-		g_debug ("already processing request %p, so ignoring", state->call_interface_changed);
+	if (g_strcmp0 (signal_name, "DistroUpgrade") == 0) {
+		PkDistroUpgrade *item;
+		g_variant_get (parameters,
+			       "(&s&s&s)",
+			       &tmp_str[0],
+			       &tmp_str[1],
+			       &tmp_str[2]);
+		item = pk_distro_upgrade_new ();
+		g_object_set (item,
+			      "state", pk_update_state_enum_from_string (tmp_str[0]),
+			      "name", tmp_str[1],
+			      "summary", tmp_str[2],
+			      "role", state->role,
+			      "transaction-id", state->transaction_id,
+			      NULL);
+		pk_results_add_distro_upgrade (state->results, item);
+		g_object_unref (item);
+		return;
+	}
+	if (g_strcmp0 (signal_name, "RequireRestart") == 0) {
+		PkRequireRestart *item;
+		g_variant_get (parameters,
+			       "(&s&s)",
+			       &tmp_str[0],
+			       &tmp_str[1]);
+		item = pk_require_restart_new ();
+		g_object_set (item,
+			      "restart", pk_restart_enum_from_string (tmp_str[0]),
+			      "package-id", tmp_str[1],
+			      "role", state->role,
+			      "transaction-id", state->transaction_id,
+			      NULL);
+		pk_results_add_require_restart (state->results, item);
+		g_object_unref (item);
+		return;
+	}
+	if (g_strcmp0 (signal_name, "Category") == 0) {
+		PkCategory *item;
+		g_variant_get (parameters,
+			       "(&s&s&s&s&s)",
+			       &tmp_str[0],
+			       &tmp_str[1],
+			       &tmp_str[2],
+			       &tmp_str[3],
+			       &tmp_str[4]);
+		item = pk_category_new ();
+		g_object_set (item,
+			      "parent-id", tmp_str[0],
+			      "cat-id", tmp_str[1],
+			      "name", tmp_str[2],
+			      "summary", tmp_str[3],
+			      "icon", tmp_str[4],
+			      "role", state->role,
+			      "transaction-id", state->transaction_id,
+			      NULL);
+		pk_results_add_category (state->results, item);
+		g_object_unref (item);
+		return;
+	}
+	if (g_strcmp0 (signal_name, "Files") == 0) {
+		gchar **files;
+		PkFiles *item;
+		g_variant_get (parameters,
+			       "(&s&s)",
+			       &tmp_str[0],
+			       &tmp_str[1]);
+		files = g_strsplit (tmp_str[1], ";", -1);
+		item = pk_files_new ();
+		g_object_set (item,
+			      "package-id", tmp_str[0],
+			      "files", files,
+			      "role", state->role,
+			      "transaction-id", state->transaction_id,
+			      NULL);
+		pk_results_add_files (state->results, item);
+		g_object_unref (item);
+		g_strfreev (files);
+		return;
+	}
+	if (g_strcmp0 (signal_name, "RepoSignatureRequired") == 0) {
+		PkRepoSignatureRequired *item;
+		g_variant_get (parameters,
+			       "(&s&s&s&s&s&s&s&s)",
+			       &tmp_str[0],
+			       &tmp_str[1],
+			       &tmp_str[2],
+			       &tmp_str[3],
+			       &tmp_str[4],
+			       &tmp_str[5],
+			       &tmp_str[6],
+			       &tmp_str[7]);
+		item = pk_repo_signature_required_new ();
+		g_object_set (item,
+			      "package-id", tmp_str[0],
+			      "repository-name", tmp_str[1],
+			      "key-url", tmp_str[2],
+			      "key-userid", tmp_str[2],
+			      "key-id", tmp_str[3],
+			      "key-fingerprint", tmp_str[4],
+			      "key-timestamp", tmp_str[5],
+			      "type", pk_sig_type_enum_from_string (tmp_str[6]),
+			      "role", state->role,
+			      "transaction-id", state->transaction_id,
+			      NULL);
+		pk_results_add_repo_signature_required (state->results, item);
+		g_object_unref (item);
+		return;
+	}
+	if (g_strcmp0 (signal_name, "EulaRequired") == 0) {
+		PkEulaRequired *item;
+		g_variant_get (parameters,
+			       "(&s&s&s&s)",
+			       &tmp_str[0],
+			       &tmp_str[1],
+			       &tmp_str[2],
+			       &tmp_str[3]);
+		item = pk_eula_required_new ();
+		g_object_set (item,
+			      "eula-id", tmp_str[0],
+			      "package-id", tmp_str[1],
+			      "vendor-name", tmp_str[2],
+			      "license-agreement", tmp_str[3],
+			      "role", state->role,
+			      "transaction-id", state->transaction_id,
+			      NULL);
+		pk_results_add_eula_required (state->results, item);
+		g_object_unref (item);
+		return;
+	}
+	if (g_strcmp0 (signal_name, "RepoDetail") == 0) {
+		PkRepoDetail *item;
+		g_variant_get (parameters,
+			       "(&s&sb)",
+			       &tmp_str[0],
+			       &tmp_str[1],
+			       &tmp_bool);
+		item = pk_repo_detail_new ();
+		g_object_set (item,
+			      "repo-id", tmp_str[0],
+			      "description", tmp_str[1],
+			      "enabled", tmp_bool,
+			      "role", state->role,
+			      "transaction-id", state->transaction_id,
+			      NULL);
+		pk_results_add_repo_detail (state->results, item);
+		g_object_unref (item);
+		return;
+	}
+	if (g_strcmp0 (signal_name, "ErrorCode") == 0) {
+		PkError *item;
+		g_variant_get (parameters,
+			       "(&s&s)",
+			       &tmp_str[0],
+			       &tmp_str[1]);
+		item = pk_error_new ();
+		g_object_set (item,
+			      "code", pk_error_enum_from_string (tmp_str[0]),
+			      "details", tmp_str[1],
+			      "role", state->role,
+			      "transaction-id", state->transaction_id,
+			      NULL);
+		pk_results_set_error_code (state->results, item);
+		g_object_unref (item);
+		return;
+	}
+	if (g_strcmp0 (signal_name, "MediaChangeRequired") == 0) {
+		PkMediaChangeRequired *item;
+		g_variant_get (parameters,
+			       "(&s&s&s)",
+			       &tmp_str[0],
+			       &tmp_str[1],
+			       &tmp_str[2]);
+		item = pk_media_change_required_new ();
+		g_object_set (item,
+			      "media-type", pk_media_type_enum_from_string (tmp_str[0]),
+			      "media-id", tmp_str[1],
+			      "media-text", tmp_str[2],
+			      "role", state->role,
+			      "transaction-id", state->transaction_id,
+			      NULL);
+		pk_results_add_media_change_required (state->results, item);
+		g_object_unref (item);
+		return;
+	}
+	if (g_strcmp0 (signal_name, "ItemProgress") == 0) {
+		g_variant_get (parameters,
+			       "(&su)",
+			       &tmp_str[0],
+			       &tmp_uint);
+		return;
+	}
+	if (g_strcmp0 (signal_name, "Changed") == 0) {
+		return;
+	}
+	if (g_strcmp0 (signal_name, "Destroy") == 0) {
 		return;
 	}
 
-	/* call D-Bus get_properties async */
-	state->call_interface_changed =
-		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);
-	if (state->call_interface_changed == NULL)
-		g_error ("failed to setup call, maybe OOM or no connection");
-
-	/* we've sent this async */
-}
-
-/**
- * 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;
-	PkDetails *item;
-	group_enum = pk_group_enum_from_string (group_text);
-
-	/* add to results */
-	item = pk_details_new ();
-	g_object_set (item,
-		      "package-id", package_id,
-		      "license", license,
-		      "group", group_enum,
-		      "description", description,
-		      "url", url,
-		      "size", size,
-		      "role", state->role,
-		      "transaction-id", state->transaction_id,
-		      NULL);
-	pk_results_add_details (state->results, item);
-	g_object_unref (item);
-}
-
-/**
- * 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)
-{
-	PkUpdateStateEnum state_enum;
-	PkRestartEnum restart_enum;
-	PkUpdateDetail *item;
-
-	restart_enum = pk_restart_enum_from_string (restart_text);
-	state_enum = pk_update_state_enum_from_string (state_text);
-
-	/* add to results */
-	item = pk_update_detail_new ();
-	g_object_set (item,
-		      "package-id", package_id,
-		      "updates", updates,
-		      "obsoletes", obsoletes,
-		      "vendor-url", vendor_url,
-		      "bugzilla-url", bugzilla_url,
-		      "cve-url", cve_url,
-		      "restart", restart_enum,
-		      "update-text", update_text,
-		      "changelog", changelog,
-		      "state", state_enum,
-		      "issued", issued_text,
-		      "updated", updated_text,
-		      "role", state->role,
-		      "transaction-id", state->transaction_id,
-		      NULL);
-	pk_results_add_update_detail (state->results, item);
-	g_object_unref (item);
-}
-
-/**
- * pk_client_transaction_cb:
- */
-static void
-pk_client_transaction_cb (DBusGProxy *proxy, const gchar *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;
-	PkTransactionPast *item;
-	role_enum = pk_role_enum_from_string (role_text);
-
-	/* add to results */
-	item = pk_transaction_past_new ();
-	g_object_set (item,
-		      "tid", tid,
-		      "timespec", timespec,
-		      "succeeded", succeeded,
-		      "role", role_enum,
-		      "duration", duration,
-		      "data", data,
-		      "uid", uid,
-		      "cmdline", cmdline,
-		      "PkSource::role", state->role,
-		      "transaction-id", state->transaction_id,
-		      NULL);
-	pk_results_add_transaction (state->results, item);
-	g_object_unref (item);
-}
-
-/**
- * pk_client_distro_upgrade_cb:
- */
-static void
-pk_client_distro_upgrade_cb (DBusGProxy *proxy, const gchar *state_text, const gchar *name,
-			     const gchar *summary, PkClientState *state)
-{
-	PkUpdateStateEnum state_enum;
-	PkDistroUpgrade *item;
-	state_enum = pk_update_state_enum_from_string (state_text);
-
-	/* add to results */
-	item = pk_distro_upgrade_new ();
-	g_object_set (item,
-		      "state", state_enum,
-		      "name", name,
-		      "summary", summary,
-		      "role", state->role,
-		      "transaction-id", state->transaction_id,
-		      NULL);
-	pk_results_add_distro_upgrade (state->results, item);
-	g_object_unref (item);
-}
-
-/**
- * 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;
-	PkRequireRestart *item;
-	restart_enum = pk_restart_enum_from_string (restart_text);
-
-	/* add to results */
-	item = pk_require_restart_new ();
-	g_object_set (item,
-		      "restart", restart_enum,
-		      "package-id", package_id,
-		      "role", state->role,
-		      "transaction-id", state->transaction_id,
-		      NULL);
-	pk_results_add_require_restart (state->results, item);
-	g_object_unref (item);
-}
-
-/**
- * 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)
-{
-	PkCategory *item;
-
-	/* add to results */
-	item = pk_category_new ();
-	g_object_set (item,
-		      "parent-id", parent_id,
-		      "cat-id", cat_id,
-		      "name", name,
-		      "summary", summary,
-		      "icon", icon,
-		      "role", state->role,
-		      "transaction-id", state->transaction_id,
-		      NULL);
-	pk_results_add_category (state->results, item);
-	g_object_unref (item);
-}
-
-/**
- * pk_client_files_cb:
- */
-static void
-pk_client_files_cb (DBusGProxy *proxy, const gchar *package_id, const gchar *filelist, PkClientState *state)
-{
-	gchar **files;
-	PkFiles *item;
-	files = g_strsplit (filelist, ";", -1);
-
-	/* add to results */
-	item = pk_files_new ();
-	g_object_set (item,
-		      "package-id", package_id,
-		      "files", files,
-		      "role", state->role,
-		      "transaction-id", state->transaction_id,
-		      NULL);
-	pk_results_add_files (state->results, item);
-	g_object_unref (item);
-	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;
-	PkRepoSignatureRequired *item;
-	type_enum = pk_sig_type_enum_from_string (type_text);
-
-	/* add to results */
-	item = pk_repo_signature_required_new ();
-	g_object_set (item,
-		      "package-id", package_id,
-		      "repository-name", repository_name,
-		      "key-url", key_url,
-		      "key-userid", key_userid,
-		      "key-id", key_id,
-		      "key-fingerprint", key_fingerprint,
-		      "key-timestamp", key_timestamp,
-		      "type", type_enum,
-		      "role", state->role,
-		      "transaction-id", state->transaction_id,
-		      NULL);
-	pk_results_add_repo_signature_required (state->results, item);
-	g_object_unref (item);
-}
-
-/**
- * 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)
-{
-	PkEulaRequired *item;
-
-	/* add to results */
-	item = pk_eula_required_new ();
-	g_object_set (item,
-		      "eula-id", eula_id,
-		      "package-id", package_id,
-		      "vendor-name", vendor_name,
-		      "license-agreement", license_agreement,
-		      "role", state->role,
-		      "transaction-id", state->transaction_id,
-		      NULL);
-	pk_results_add_eula_required (state->results, item);
-	g_object_unref (item);
-}
-
-/**
- * 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;
-	PkMediaChangeRequired *item;
-	media_type_enum = pk_media_type_enum_from_string (media_type_text);
-
-	/* add to results */
-	item = pk_media_change_required_new ();
-	g_object_set (item,
-		      "media-type", media_type_enum,
-		      "media-id", media_id,
-		      "media-text", media_text,
-		      "role", state->role,
-		      "transaction-id", state->transaction_id,
-		      NULL);
-	pk_results_add_media_change_required (state->results, item);
-	g_object_unref (item);
+	g_warning ("Unknown signal: %s", signal_name);
 }
 
 /**
- * pk_client_repo_detail_cb:
+ * pk_client_proxy_connect:
  **/
 static void
-pk_client_repo_detail_cb (DBusGProxy *proxy, const gchar *repo_id,
-			  const gchar *description, gboolean enabled, PkClientState *state)
+pk_client_proxy_connect (PkClientState *state)
 {
-	PkRepoDetail *item;
-
-	/* add to results */
-	item = pk_repo_detail_new ();
-	g_object_set (item,
-		      "repo-id", repo_id,
-		      "description", description,
-		      "enabled", enabled,
-		      "role", state->role,
-		      "transaction-id", state->transaction_id,
-		      NULL);
-	pk_results_add_repo_detail (state->results, item);
-	g_object_unref (item);
-}
-
-/**
- * pk_client_error_code_cb:
- */
-static void
-pk_client_error_code_cb (DBusGProxy *proxy, const gchar *code_text, const gchar *details, PkClientState *state)
-{
-	PkErrorEnum code_enum;
-	PkError *item;
-	code_enum = pk_error_enum_from_string (code_text);
-
-	/* add to results */
-	item = pk_error_new ();
-	g_object_set (item,
-		      "code", code_enum,
-		      "details", details,
-		      "role", state->role,
-		      "transaction-id", state->transaction_id,
-		      NULL);
-	pk_results_set_error_code (state->results, item);
-	g_object_unref (item);
-}
-
-/**
- * pk_client_message_cb:
- */
-static void
-pk_client_message_cb (DBusGProxy  *proxy, const gchar *message_text, const gchar *details, PkClientState *state)
-{
-	PkMessageEnum message_enum;
-	PkMessage *item;
-	message_enum = pk_message_enum_from_string (message_text);
-
-	/* add to results */
-	item = pk_message_new ();
-	g_object_set (item,
-		      "type", message_enum,
-		      "details", details,
-		      "role", state->role,
-		      "transaction-id", state->transaction_id,
-		      NULL);
-	pk_results_add_message (state->results, item);
-	g_object_unref (item);
-}
-
-/**
- * pk_client_item_progress_cb:
- */
-static void
-pk_client_item_progress_cb (DBusGProxy  *proxy, const gchar *id, guint value, PkClientState *state)
-{
-	pk_progress_set_item_progress (state->progress, id, value);
+	gchar **props = NULL;
+	guint i;
+	GVariant *value_tmp;
+
+	/* coldplug properties */
+	props = g_dbus_proxy_get_cached_property_names (state->proxy);
+	for (i = 0; props[i] != NULL; i++) {
+		value_tmp = g_dbus_proxy_get_cached_property (state->proxy,
+							      props[i]);
+		pk_client_set_property_value (state,
+					      props[i],
+					      value_tmp);
+		g_variant_unref (value_tmp);
+	}
+
+	/* connect up signals */
+	g_signal_connect (state->proxy, "g-properties-changed",
+			  G_CALLBACK (pk_client_properties_changed_cb),
+			  state);
+	g_signal_connect (state->proxy, "g-signal",
+			  G_CALLBACK (pk_client_signal_cb),
+			  state);
+
+	g_strfreev (props);
 }
 
 /**
- * pk_client_connect_proxy:
+ * pk_client_method_cb:
  **/
 static void
-pk_client_connect_proxy (DBusGProxy *proxy, PkClientState *state)
+pk_client_method_cb (GObject *source_object,
+		     GAsyncResult *res,
+		     gpointer user_data)
 {
-	/* sanity check */
-	if (state->signals_connected) {
-		g_warning ("not connecting as already connected");
-		return;
-	}
-
-	/* 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, "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, "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);
-	dbus_g_proxy_add_signal (proxy, "Changed", G_TYPE_INVALID);
-	dbus_g_proxy_add_signal (proxy, "ItemProgress", G_TYPE_STRING, G_TYPE_UINT, 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);
-	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);
-	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, "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, "Message",
-				     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);
-	dbus_g_proxy_connect_signal (proxy, "ItemProgress",
-				     G_CALLBACK (pk_client_item_progress_cb), state, NULL);
-	dbus_g_proxy_connect_signal (proxy, "Changed",
-				     G_CALLBACK (pk_client_changed_cb), state, NULL);
-
-	/* save for sanity check */
-	state->signals_connected = TRUE;
-}
+	GError *error = NULL;
+	GVariant *value;
+	GDBusProxy *proxy = G_DBUS_PROXY (source_object);
+	PkClientState *state = (PkClientState *) user_data;
 
-/**
- * pk_client_disconnect_proxy:
- **/
-static void
-pk_client_disconnect_proxy (DBusGProxy *proxy, PkClientState *state)
-{
-	/* sanity check */
-	if (!state->signals_connected) {
-		g_debug ("not disconnecting as never connected");
-		return;
+	/* get the result */
+	value = g_dbus_proxy_call_finish (proxy, res, &error);
+	if (value == NULL) {
+		/* fix up the D-Bus error */
+		pk_client_fixup_dbus_error (error);
+		pk_client_state_finish (state, error);
+		g_error_free (error);
+		goto out;
 	}
 
-	dbus_g_proxy_disconnect_signal (proxy, "Finished",
-					G_CALLBACK (pk_client_finished_cb), state);
-	dbus_g_proxy_disconnect_signal (proxy, "Package",
-					G_CALLBACK (pk_client_package_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);
-	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, "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, "Message",
-					G_CALLBACK (pk_client_message_cb), state);
-	dbus_g_proxy_disconnect_signal (proxy, "MediaChangeRequired",
-					G_CALLBACK (pk_client_media_change_required_cb), state);
-	dbus_g_proxy_disconnect_signal (proxy, "Changed",
-					G_CALLBACK (pk_client_changed_cb), state);
-
-	/* save for sanity check */
-	state->signals_connected = FALSE;
+	/* wait for ::Finished() */
+out:
+	if (value != NULL)
+		g_variant_unref (value);
 }
 
 /**
@@ -1543,8 +1483,11 @@ pk_client_set_role (PkClientState *state, PkRoleEnum role)
 {
 	gboolean ret;
 	ret = pk_progress_set_role (state->progress, role);
-	if (ret && state->progress_callback != NULL)
-		state->progress_callback (state->progress, PK_PROGRESS_TYPE_ROLE, state->progress_user_data);
+	if (ret && state->progress_callback != NULL) {
+		state->progress_callback (state->progress,
+					  PK_PROGRESS_TYPE_ROLE,
+					  state->progress_user_data);
+	}
 	return;
 }
 
@@ -1552,17 +1495,20 @@ pk_client_set_role (PkClientState *state, PkRoleEnum role)
  * pk_client_set_hints_cb:
  **/
 static void
-pk_client_set_hints_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkClientState *state)
+pk_client_set_hints_cb (GObject *source_object,
+			GAsyncResult *res,
+			gpointer user_data)
 {
-	gchar *filters_text = NULL;
 	const gchar *enum_text;
+	gchar *filters_text = NULL;
 	GError *error = NULL;
-	gboolean ret;
+	GVariant *value;
+	GDBusProxy *proxy = G_DBUS_PROXY (source_object);
+	PkClientState *state = (PkClientState *) user_data;
 
 	/* get the result */
-	ret = dbus_g_proxy_end_call (proxy, call, &error,
-				     G_TYPE_INVALID);
-	if (!ret) {
+	value = g_dbus_proxy_call_finish (proxy, res, &error);
+	if (value == NULL) {
 		/* fix up the D-Bus error */
 		pk_client_fixup_dbus_error (error);
 		pk_client_state_finish (state, error);
@@ -1570,9 +1516,6 @@ pk_client_set_hints_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkClientState *
 		goto out;
 	}
 
-	/* finished this call */
-	state->call = NULL;
-
 	/* we'll have results from now on */
 	state->results = pk_results_new ();
 	g_object_set (state->results,
@@ -1580,239 +1523,398 @@ pk_client_set_hints_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkClientState *
 		      "progress", state->progress,
 		      NULL);
 
-	/* setup the proxies ready for use */
-	pk_client_connect_proxy (state->proxy, state);
-
 	/* do this async, although this should be pretty fast anyway */
 	if (state->role == PK_ROLE_ENUM_RESOLVE) {
 		filters_text = pk_filter_bitfield_to_string (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->package_ids,
-						       G_TYPE_INVALID);
-		g_object_set (state->results, "inputs", g_strv_length (state->package_ids), NULL);
+		g_dbus_proxy_call (state->proxy, "Resolve",
+				   g_variant_new ("(s^a&s)",
+						  filters_text,
+						  state->package_ids),
+				   G_DBUS_CALL_FLAGS_NONE,
+				   PK_CLIENT_DBUS_METHOD_TIMEOUT,
+				   state->cancellable,
+				   pk_client_method_cb,
+				   state);
+		g_object_set (state->results,
+			      "inputs", g_strv_length (state->package_ids),
+			      NULL);
 	} else if (state->role == PK_ROLE_ENUM_SEARCH_NAME) {
 		filters_text = pk_filter_bitfield_to_string (state->filters);
-		state->call = dbus_g_proxy_begin_call (state->proxy, "SearchNames",
-						       (DBusGProxyCallNotify) pk_client_method_cb, state, NULL,
-						       G_TYPE_STRING, filters_text,
-						       G_TYPE_STRV, state->search,
-						       G_TYPE_INVALID);
+		g_dbus_proxy_call (state->proxy, "SearchNames",
+				   g_variant_new ("(s^a&s)",
+						  filters_text,
+						  state->search),
+				   G_DBUS_CALL_FLAGS_NONE,
+				   PK_CLIENT_DBUS_METHOD_TIMEOUT,
+				   state->cancellable,
+				   pk_client_method_cb,
+				   state);
 	} else if (state->role == PK_ROLE_ENUM_SEARCH_DETAILS) {
 		filters_text = pk_filter_bitfield_to_string (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);
+		g_dbus_proxy_call (state->proxy, "SearchDetails",
+				   g_variant_new ("(s^a&s)",
+						  filters_text,
+						  state->search),
+				   G_DBUS_CALL_FLAGS_NONE,
+				   PK_CLIENT_DBUS_METHOD_TIMEOUT,
+				   state->cancellable,
+				   pk_client_method_cb,
+				   state);
 	} else if (state->role == PK_ROLE_ENUM_SEARCH_GROUP) {
 		filters_text = pk_filter_bitfield_to_string (state->filters);
-		state->call = dbus_g_proxy_begin_call (state->proxy, "SearchGroups",
-						       (DBusGProxyCallNotify) pk_client_method_cb, state, NULL,
-						       G_TYPE_STRING, filters_text,
-						       G_TYPE_STRV, state->search,
-						       G_TYPE_INVALID);
+		g_dbus_proxy_call (state->proxy, "SearchGroups",
+				   g_variant_new ("(s^a&s)",
+						  filters_text,
+						  state->search),
+				   G_DBUS_CALL_FLAGS_NONE,
+				   PK_CLIENT_DBUS_METHOD_TIMEOUT,
+				   state->cancellable,
+				   pk_client_method_cb,
+				   state);
 	} else if (state->role == PK_ROLE_ENUM_SEARCH_FILE) {
 		filters_text = pk_filter_bitfield_to_string (state->filters);
-		state->call = dbus_g_proxy_begin_call (state->proxy, "SearchFiles",
-						       (DBusGProxyCallNotify) pk_client_method_cb, state, NULL,
-						       G_TYPE_STRING, filters_text,
-						       G_TYPE_STRV, state->search,
-						       G_TYPE_INVALID);
+		g_dbus_proxy_call (state->proxy, "SearchFiles",
+				   g_variant_new ("(s^a&s)",
+						  filters_text,
+						  state->search),
+				   G_DBUS_CALL_FLAGS_NONE,
+				   PK_CLIENT_DBUS_METHOD_TIMEOUT,
+				   state->cancellable,
+				   pk_client_method_cb,
+				   state);
 	} 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->package_ids,
-						       G_TYPE_INVALID);
-		g_object_set (state->results, "inputs", g_strv_length (state->package_ids), NULL);
+		g_dbus_proxy_call (state->proxy, "GetDetails",
+				   g_variant_new ("(^a&s)",
+						  state->package_ids),
+				   G_DBUS_CALL_FLAGS_NONE,
+				   PK_CLIENT_DBUS_METHOD_TIMEOUT,
+				   state->cancellable,
+				   pk_client_method_cb,
+				   state);
+		g_object_set (state->results,
+			      "inputs", g_strv_length (state->package_ids),
+			      NULL);
 	} 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->package_ids,
-						       G_TYPE_INVALID);
-		g_object_set (state->results, "inputs", g_strv_length (state->package_ids), NULL);
+		g_dbus_proxy_call (state->proxy, "GetUpdateDetail",
+				   g_variant_new ("(^a&s)",
+						  state->package_ids),
+				   G_DBUS_CALL_FLAGS_NONE,
+				   PK_CLIENT_DBUS_METHOD_TIMEOUT,
+				   state->cancellable,
+				   pk_client_method_cb,
+				   state);
+		g_object_set (state->results,
+			      "inputs", g_strv_length (state->package_ids),
+			      NULL);
 	} 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_UINT, state->number,
-						       G_TYPE_INVALID);
+		g_dbus_proxy_call (state->proxy, "GetOldTransactions",
+				   g_variant_new ("(u)",
+						  state->number),
+				   G_DBUS_CALL_FLAGS_NONE,
+				   PK_CLIENT_DBUS_METHOD_TIMEOUT,
+				   state->cancellable,
+				   pk_client_method_cb,
+				   state);
 	} 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_BOOLEAN, (state->directory == NULL),
-						       G_TYPE_STRV, state->package_ids,
-						       G_TYPE_INVALID);
-		g_object_set (state->results, "inputs", g_strv_length (state->package_ids), NULL);
+		g_dbus_proxy_call (state->proxy, "DownloadPackages",
+				   g_variant_new ("(b^a&s)",
+						  (state->directory == NULL),
+						  state->package_ids),
+				   G_DBUS_CALL_FLAGS_NONE,
+				   PK_CLIENT_DBUS_METHOD_TIMEOUT,
+				   state->cancellable,
+				   pk_client_method_cb,
+				   state);
+		g_object_set (state->results,
+			      "inputs", g_strv_length (state->package_ids),
+			      NULL);
 	} else if (state->role == PK_ROLE_ENUM_GET_UPDATES) {
 		filters_text = pk_filter_bitfield_to_string (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);
+		g_dbus_proxy_call (state->proxy, "GetUpdates",
+				   g_variant_new ("(s)",
+						  filters_text),
+				   G_DBUS_CALL_FLAGS_NONE,
+				   PK_CLIENT_DBUS_METHOD_TIMEOUT,
+				   state->cancellable,
+				   pk_client_method_cb,
+				   state);
 	} 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);
+		g_dbus_proxy_call (state->proxy, "UpdateSystem",
+				   g_variant_new ("(b)",
+						  state->only_trusted),
+				   G_DBUS_CALL_FLAGS_NONE,
+				   PK_CLIENT_DBUS_METHOD_TIMEOUT,
+				   state->cancellable,
+				   pk_client_method_cb,
+				   state);
 	} else if (state->role == PK_ROLE_ENUM_GET_DEPENDS) {
 		filters_text = pk_filter_bitfield_to_string (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);
-		g_object_set (state->results, "inputs", g_strv_length (state->package_ids), NULL);
+		g_dbus_proxy_call (state->proxy, "GetDepends",
+				   g_variant_new ("(s^a&sb)",
+						  filters_text,
+						  state->package_ids,
+						  state->recursive),
+				   G_DBUS_CALL_FLAGS_NONE,
+				   PK_CLIENT_DBUS_METHOD_TIMEOUT,
+				   state->cancellable,
+				   pk_client_method_cb,
+				   state);
+		g_object_set (state->results,
+			      "inputs", g_strv_length (state->package_ids),
+			      NULL);
 	} else if (state->role == PK_ROLE_ENUM_GET_PACKAGES) {
 		filters_text = pk_filter_bitfield_to_string (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);
+		g_dbus_proxy_call (state->proxy, "GetPackages",
+				   g_variant_new ("(s)",
+						  filters_text),
+				   G_DBUS_CALL_FLAGS_NONE,
+				   PK_CLIENT_DBUS_METHOD_TIMEOUT,
+				   state->cancellable,
+				   pk_client_method_cb,
+				   state);
 	} else if (state->role == PK_ROLE_ENUM_GET_REQUIRES) {
 		filters_text = pk_filter_bitfield_to_string (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);
-		g_object_set (state->results, "inputs", g_strv_length (state->package_ids), NULL);
+		g_dbus_proxy_call (state->proxy, "GetRequires",
+				   g_variant_new ("(s^a&sb)",
+						  filters_text,
+						  state->package_ids,
+						  state->recursive),
+				   G_DBUS_CALL_FLAGS_NONE,
+				   PK_CLIENT_DBUS_METHOD_TIMEOUT,
+				   state->cancellable,
+				   pk_client_method_cb,
+				   state);
+		g_object_set (state->results,
+			      "inputs", g_strv_length (state->package_ids),
+			      NULL);
 	} else if (state->role == PK_ROLE_ENUM_WHAT_PROVIDES) {
 		filters_text = pk_filter_bitfield_to_string (state->filters);
 		enum_text = pk_provides_enum_to_string (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_STRV, state->search,
-						       G_TYPE_INVALID);
+		g_dbus_proxy_call (state->proxy, "WhatProvides",
+				   g_variant_new ("(ss^a&s)",
+						  filters_text,
+						  enum_text,
+						  state->search),
+				   G_DBUS_CALL_FLAGS_NONE,
+				   PK_CLIENT_DBUS_METHOD_TIMEOUT,
+				   state->cancellable,
+				   pk_client_method_cb,
+				   state);
 	} 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);
+		g_dbus_proxy_call (state->proxy, "GetDistroUpgrades",
+				   NULL,
+				   G_DBUS_CALL_FLAGS_NONE,
+				   PK_CLIENT_DBUS_METHOD_TIMEOUT,
+				   state->cancellable,
+				   pk_client_method_cb,
+				   state);
 	} 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);
-		g_object_set (state->results, "inputs", g_strv_length (state->package_ids), NULL);
+		g_dbus_proxy_call (state->proxy, "GetFiles",
+				   g_variant_new ("(^a&s)",
+						  state->package_ids),
+				   G_DBUS_CALL_FLAGS_NONE,
+				   PK_CLIENT_DBUS_METHOD_TIMEOUT,
+				   state->cancellable,
+				   pk_client_method_cb,
+				   state);
+		g_object_set (state->results,
+			      "inputs", g_strv_length (state->package_ids),
+			      NULL);
 	} 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);
+		g_dbus_proxy_call (state->proxy, "GetCategories",
+				   NULL,
+				   G_DBUS_CALL_FLAGS_NONE,
+				   PK_CLIENT_DBUS_METHOD_TIMEOUT,
+				   state->cancellable,
+				   pk_client_method_cb,
+				   state);
 	} 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);
-		g_object_set (state->results, "inputs", g_strv_length (state->package_ids), NULL);
+		g_dbus_proxy_call (state->proxy, "RemovePackages",
+				   g_variant_new ("(^a&sbb)",
+						  state->package_ids,
+						  state->allow_deps,
+						  state->autoremove),
+				   G_DBUS_CALL_FLAGS_NONE,
+				   PK_CLIENT_DBUS_METHOD_TIMEOUT,
+				   state->cancellable,
+				   pk_client_method_cb,
+				   state);
+		g_object_set (state->results,
+			      "inputs", g_strv_length (state->package_ids),
+			      NULL);
 	} 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);
+		g_dbus_proxy_call (state->proxy, "RefreshCache",
+				   g_variant_new ("(b)",
+						  state->force),
+				   G_DBUS_CALL_FLAGS_NONE,
+				   PK_CLIENT_DBUS_METHOD_TIMEOUT,
+				   state->cancellable,
+				   pk_client_method_cb,
+				   state);
 	} 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);
-		g_object_set (state->results, "inputs", g_strv_length (state->package_ids), NULL);
+		g_dbus_proxy_call (state->proxy, "InstallPackages",
+				   g_variant_new ("(b^a&s)",
+						  state->only_trusted,
+						  state->package_ids),
+				   G_DBUS_CALL_FLAGS_NONE,
+				   PK_CLIENT_DBUS_METHOD_TIMEOUT,
+				   state->cancellable,
+				   pk_client_method_cb,
+				   state);
+		g_object_set (state->results,
+			      "inputs", g_strv_length (state->package_ids),
+			      NULL);
 	} else if (state->role == PK_ROLE_ENUM_INSTALL_SIGNATURE) {
 		enum_text = pk_sig_type_enum_to_string (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);
+		g_dbus_proxy_call (state->proxy, "InstallSignature",
+				   g_variant_new ("(sss)",
+						  enum_text,
+						  state->key_id,
+						  state->package_id),
+				   G_DBUS_CALL_FLAGS_NONE,
+				   PK_CLIENT_DBUS_METHOD_TIMEOUT,
+				   state->cancellable,
+				   pk_client_method_cb,
+				   state);
 	} 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);
-		g_object_set (state->results, "inputs", g_strv_length (state->package_ids), NULL);
+		g_dbus_proxy_call (state->proxy, "UpdatePackages",
+				   g_variant_new ("(b^a&s)",
+						  state->only_trusted,
+						  state->package_ids),
+				   G_DBUS_CALL_FLAGS_NONE,
+				   PK_CLIENT_DBUS_METHOD_TIMEOUT,
+				   state->cancellable,
+				   pk_client_method_cb,
+				   state);
+		g_object_set (state->results,
+			      "inputs", g_strv_length (state->package_ids),
+			      NULL);
 	} 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);
-		g_object_set (state->results, "inputs", g_strv_length (state->files), NULL);
+		g_dbus_proxy_call (state->proxy, "InstallFiles",
+				   g_variant_new ("(b^a&s)",
+						  state->only_trusted,
+						  state->files),
+				   G_DBUS_CALL_FLAGS_NONE,
+				   PK_CLIENT_DBUS_METHOD_TIMEOUT,
+				   state->cancellable,
+				   pk_client_method_cb,
+				   state);
+		g_object_set (state->results,
+			      "inputs", g_strv_length (state->files),
+			      NULL);
 	} 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);
+		g_dbus_proxy_call (state->proxy, "AcceptEula",
+				   g_variant_new ("(s)",
+						  state->eula_id),
+				   G_DBUS_CALL_FLAGS_NONE,
+				   PK_CLIENT_DBUS_METHOD_TIMEOUT,
+				   state->cancellable,
+				   pk_client_method_cb,
+				   state);
 	} else if (state->role == PK_ROLE_ENUM_ROLLBACK) {
-		state->call = dbus_g_proxy_begin_call (state->proxy, "Rollback",
-						       (DBusGProxyCallNotify) pk_client_method_cb, state, NULL,
-						       G_TYPE_STRING, state->transaction_id,
-						       G_TYPE_INVALID);
+		g_dbus_proxy_call (state->proxy, "Rollback",
+				   g_variant_new ("(s)",
+						  state->transaction_id),
+				   G_DBUS_CALL_FLAGS_NONE,
+				   PK_CLIENT_DBUS_METHOD_TIMEOUT,
+				   state->cancellable,
+				   pk_client_method_cb,
+				   state);
 	} else if (state->role == PK_ROLE_ENUM_GET_REPO_LIST) {
 		filters_text = pk_filter_bitfield_to_string (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);
+		g_dbus_proxy_call (state->proxy, "GetRepoList",
+				   g_variant_new ("(s)",
+						  filters_text),
+				   G_DBUS_CALL_FLAGS_NONE,
+				   PK_CLIENT_DBUS_METHOD_TIMEOUT,
+				   state->cancellable,
+				   pk_client_method_cb,
+				   state);
 	} 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);
+		g_dbus_proxy_call (state->proxy, "RepoEnable",
+				   g_variant_new ("(sb)",
+						  state->repo_id,
+						  state->enabled),
+				   G_DBUS_CALL_FLAGS_NONE,
+				   PK_CLIENT_DBUS_METHOD_TIMEOUT,
+				   state->cancellable,
+				   pk_client_method_cb,
+				   state);
 	} 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);
+		g_dbus_proxy_call (state->proxy, "RepoSetData",
+				   g_variant_new ("(sss)",
+						  state->repo_id,
+						  state->parameter,
+						  state->value),
+				   G_DBUS_CALL_FLAGS_NONE,
+				   PK_CLIENT_DBUS_METHOD_TIMEOUT,
+				   state->cancellable,
+				   pk_client_method_cb,
+				   state);
 	} 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);
-		g_object_set (state->results, "inputs", g_strv_length (state->files), NULL);
+		g_dbus_proxy_call (state->proxy, "SimulateInstallFiles",
+				   g_variant_new ("(^a&s)",
+						  state->files),
+				   G_DBUS_CALL_FLAGS_NONE,
+				   PK_CLIENT_DBUS_METHOD_TIMEOUT,
+				   state->cancellable,
+				   pk_client_method_cb,
+				   state);
+		g_object_set (state->results,
+			      "inputs", g_strv_length (state->files),
+			      NULL);
 	} 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);
-		g_object_set (state->results, "inputs", g_strv_length (state->package_ids), NULL);
+		g_dbus_proxy_call (state->proxy, "SimulateInstallPackages",
+				   g_variant_new ("(^a&s)",
+						  state->package_ids),
+				   G_DBUS_CALL_FLAGS_NONE,
+				   PK_CLIENT_DBUS_METHOD_TIMEOUT,
+				   state->cancellable,
+				   pk_client_method_cb,
+				   state);
+		g_object_set (state->results,
+			      "inputs", g_strv_length (state->package_ids),
+			      NULL);
 	} 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_BOOLEAN, state->autoremove,
-						       G_TYPE_INVALID);
+		g_dbus_proxy_call (state->proxy, "SimulateRemovePackages",
+				   g_variant_new ("(^a&sb)",
+						  state->package_ids,
+						  state->autoremove),
+				   G_DBUS_CALL_FLAGS_NONE,
+				   PK_CLIENT_DBUS_METHOD_TIMEOUT,
+				   state->cancellable,
+				   pk_client_method_cb,
+				   state);
 	} 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);
-		g_object_set (state->results, "inputs", g_strv_length (state->package_ids), NULL);
+		g_dbus_proxy_call (state->proxy, "SimulateUpdatePackages",
+				   g_variant_new ("(^a&s)",
+						  state->package_ids),
+				   G_DBUS_CALL_FLAGS_NONE,
+				   PK_CLIENT_DBUS_METHOD_TIMEOUT,
+				   state->cancellable,
+				   pk_client_method_cb,
+				   state);
+		g_object_set (state->results,
+			      "inputs", g_strv_length (state->package_ids),
+			      NULL);
 	} else if (state->role == PK_ROLE_ENUM_UPGRADE_SYSTEM) {
-		state->call = dbus_g_proxy_begin_call (state->proxy, "UpgradeSystem",
-						       (DBusGProxyCallNotify) pk_client_method_cb, state, NULL,
-						       G_TYPE_STRING, state->distro_id,
-						       G_TYPE_STRING, pk_upgrade_kind_enum_to_string (state->upgrade_kind),
-						       G_TYPE_INVALID);
+		g_dbus_proxy_call (state->proxy, "UpgradeSystem",
+				   g_variant_new ("(ss)",
+						  state->distro_id,
+						  pk_upgrade_kind_enum_to_string (state->upgrade_kind)),
+				   G_DBUS_CALL_FLAGS_NONE,
+				   PK_CLIENT_DBUS_METHOD_TIMEOUT,
+				   state->cancellable,
+				   pk_client_method_cb,
+				   state);
 	} else {
 		g_assert_not_reached ();
 	}
 
-	/* check we called okay */
-	if (state->call == NULL)
-		g_error ("failed to setup call, maybe OOM or no connection");
-
 	/* we've sent this async */
 out:
+	if (value != NULL)
+		g_variant_unref (value);
 	g_free (filters_text);
 	return;
 }
@@ -1971,41 +2073,24 @@ out:
 }
 
 /**
- * pk_client_get_tid_cb:
+ * pk_client_get_proxy_cb:
  **/
 static void
-pk_client_get_tid_cb (GObject *object, GAsyncResult *res, PkClientState *state)
+pk_client_get_proxy_cb (GObject *object,
+			GAsyncResult *res,
+			gpointer user_data)
 {
-	PkControl *control = PK_CONTROL (object);
-	GError *error = NULL;
 	gchar *hint;
-	gchar **hints;
+	GError *error = NULL;
 	GPtrArray *array;
+	PkClientState *state = (PkClientState *) user_data;
 
-	state->tid = pk_control_get_tid_finish (control, res, &error);
-	if (state->tid == NULL) {
-		pk_client_state_finish (state, error);
-		g_error_free (error);
-		return;
-	}
-
-	pk_progress_set_transaction_id (state->progress, state->tid);
-
-	/* 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);
+	state->proxy = g_dbus_proxy_new_for_bus_finish (res, &error);
 	if (state->proxy == NULL)
 		g_error ("Cannot connect to PackageKit on %s", state->tid);
 
-	/* don't timeout, as dbus-glib sets the timeout ~25 seconds */
-	dbus_g_proxy_set_default_timeout (state->proxy, INT_MAX);
-
-	/* 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)
-		g_error ("Cannot connect to PackageKit on %s", state->tid);
+	/* connect */
+	pk_client_proxy_connect (state);
 
 	/* get hints */
 	array = g_ptr_array_new_with_free_func (g_free);
@@ -2017,16 +2102,19 @@ pk_client_get_tid_cb (GObject *object, GAsyncResult *res, PkClientState *state)
 	}
 
 	/* background */
-	hint = g_strdup_printf ("background=%s", pk_client_bool_to_string (state->client->priv->background));
+	hint = g_strdup_printf ("background=%s",
+				pk_client_bool_to_string (state->client->priv->background));
 	g_ptr_array_add (array, hint);
 
 	/* interactive */
-	hint = g_strdup_printf ("interactive=%s", pk_client_bool_to_string (state->client->priv->interactive));
+	hint = g_strdup_printf ("interactive=%s",
+				pk_client_bool_to_string (state->client->priv->interactive));
 	g_ptr_array_add (array, hint);
 
 	/* cache-age */
 	if (state->client->priv->cache_age > 0) {
-		hint = g_strdup_printf ("cache-age=%u", state->client->priv->cache_age);
+		hint = g_strdup_printf ("cache-age=%u",
+					state->client->priv->cache_age);
 		g_ptr_array_add (array, hint);
 	}
 
@@ -2042,20 +2130,51 @@ pk_client_get_tid_cb (GObject *object, GAsyncResult *res, PkClientState *state)
 	}
 
 	/* set hints */
-	hints = pk_ptr_array_to_strv (array);
-	state->call = dbus_g_proxy_begin_call (state->proxy, "SetHints",
-					       (DBusGProxyCallNotify) pk_client_set_hints_cb, state, NULL,
-					       G_TYPE_STRV, hints,
-					       G_TYPE_INVALID);
-	if (state->call == NULL)
-		g_error ("failed to setup call, maybe OOM or no connection");
+	g_ptr_array_add (array, NULL);
+	g_dbus_proxy_call (state->proxy, "SetHints",
+			   g_variant_new ("(^a&s)",
+					  array->pdata),
+			   G_DBUS_CALL_FLAGS_NONE,
+			   PK_CLIENT_DBUS_METHOD_TIMEOUT,
+			   state->cancellable,
+			   pk_client_set_hints_cb,
+			   state);
 
 	/* track state */
 	g_ptr_array_add (state->client->priv->calls, state);
 
 	/* we've sent this async */
 	g_ptr_array_unref (array);
-	g_strfreev (hints);
+}
+
+/**
+ * pk_client_get_tid_cb:
+ **/
+static void
+pk_client_get_tid_cb (GObject *object, GAsyncResult *res, PkClientState *state)
+{
+	GError *error = NULL;
+	PkControl *control = PK_CONTROL (object);
+
+	state->tid = pk_control_get_tid_finish (control, res, &error);
+	if (state->tid == NULL) {
+		pk_client_state_finish (state, error);
+		g_error_free (error);
+		return;
+	}
+
+	pk_progress_set_transaction_id (state->progress, state->tid);
+
+	/* get a connection to the transaction interface */
+	g_dbus_proxy_new_for_bus (G_BUS_TYPE_SYSTEM,
+				  G_DBUS_PROXY_FLAGS_NONE,
+				  NULL,
+				  PK_DBUS_SERVICE,
+				  state->tid,
+				  PK_DBUS_INTERFACE_TRANSACTION,
+				  state->cancellable,
+				  pk_client_get_proxy_cb,
+				  state);
 }
 
 /**
@@ -2123,9 +2242,13 @@ pk_client_resolve_async (PkClient *client, PkBitfield filters, gchar **packages,
 	state->role = PK_ROLE_ENUM_RESOLVE;
 	state->res = g_object_ref (res);
 	state->client = g_object_ref (client);
+	state->cancellable = g_cancellable_new ();
 	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->cancellable_client = g_object_ref (cancellable);
+		state->cancellable_id = g_cancellable_connect (cancellable,
+							       G_CALLBACK (pk_client_cancellable_cancel_cb),
+							       state,
+							       NULL);
 	}
 	state->filters = filters;
 	state->package_ids = g_strdupv (packages);
@@ -2134,7 +2257,8 @@ pk_client_resolve_async (PkClient *client, PkBitfield filters, gchar **packages,
 	state->progress = pk_progress_new ();
 
 	/* check not already cancelled */
-	if (cancellable != NULL && g_cancellable_set_error_if_cancelled (cancellable, &error)) {
+	if (cancellable != NULL &&
+	    g_cancellable_set_error_if_cancelled (cancellable, &error)) {
 		pk_client_state_finish (state, error);
 		g_error_free (error);
 		goto out;
@@ -2144,7 +2268,10 @@ pk_client_resolve_async (PkClient *client, PkBitfield filters, gchar **packages,
 	pk_client_set_role (state, state->role);
 
 	/* get tid */
-	pk_control_get_tid_async (client->priv->control, cancellable, (GAsyncReadyCallback) pk_client_get_tid_cb, state);
+	pk_control_get_tid_async (client->priv->control,
+				  cancellable,
+				  (GAsyncReadyCallback) pk_client_get_tid_cb,
+				  state);
 out:
 	g_object_unref (res);
 }
@@ -2185,9 +2312,13 @@ pk_client_search_names_async (PkClient *client, PkBitfield filters, gchar **valu
 	state->role = PK_ROLE_ENUM_SEARCH_NAME;
 	state->res = g_object_ref (res);
 	state->client = g_object_ref (client);
+	state->cancellable = g_cancellable_new ();
 	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->cancellable_client = g_object_ref (cancellable);
+		state->cancellable_id = g_cancellable_connect (cancellable,
+							       G_CALLBACK (pk_client_cancellable_cancel_cb),
+							       state,
+							       NULL);
 	}
 	state->filters = filters;
 	state->search = g_strdupv (values);
@@ -2196,7 +2327,8 @@ pk_client_search_names_async (PkClient *client, PkBitfield filters, gchar **valu
 	state->progress = pk_progress_new ();
 
 	/* check not already cancelled */
-	if (cancellable != NULL && g_cancellable_set_error_if_cancelled (cancellable, &error)) {
+	if (cancellable != NULL &&
+	    g_cancellable_set_error_if_cancelled (cancellable, &error)) {
 		pk_client_state_finish (state, error);
 		g_error_free (error);
 		goto out;
@@ -2206,7 +2338,10 @@ pk_client_search_names_async (PkClient *client, PkBitfield filters, gchar **valu
 	pk_client_set_role (state, state->role);
 
 	/* get tid */
-	pk_control_get_tid_async (client->priv->control, cancellable, (GAsyncReadyCallback) pk_client_get_tid_cb, state);
+	pk_control_get_tid_async (client->priv->control,
+				  cancellable,
+				  (GAsyncReadyCallback) pk_client_get_tid_cb,
+				  state);
 out:
 	g_object_unref (res);
 }
@@ -2248,9 +2383,13 @@ pk_client_search_details_async (PkClient *client, PkBitfield filters, gchar **va
 	state->role = PK_ROLE_ENUM_SEARCH_DETAILS;
 	state->res = g_object_ref (res);
 	state->client = g_object_ref (client);
+	state->cancellable = g_cancellable_new ();
 	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->cancellable_client = g_object_ref (cancellable);
+		state->cancellable_id = g_cancellable_connect (cancellable,
+							       G_CALLBACK (pk_client_cancellable_cancel_cb),
+							       state,
+							       NULL);
 	}
 	state->filters = filters;
 	state->search = g_strdupv (values);
@@ -2259,7 +2398,8 @@ pk_client_search_details_async (PkClient *client, PkBitfield filters, gchar **va
 	state->progress = pk_progress_new ();
 
 	/* check not already cancelled */
-	if (cancellable != NULL && g_cancellable_set_error_if_cancelled (cancellable, &error)) {
+	if (cancellable != NULL &&
+	    g_cancellable_set_error_if_cancelled (cancellable, &error)) {
 		pk_client_state_finish (state, error);
 		g_error_free (error);
 		goto out;
@@ -2269,7 +2409,10 @@ pk_client_search_details_async (PkClient *client, PkBitfield filters, gchar **va
 	pk_client_set_role (state, state->role);
 
 	/* get tid */
-	pk_control_get_tid_async (client->priv->control, cancellable, (GAsyncReadyCallback) pk_client_get_tid_cb, state);
+	pk_control_get_tid_async (client->priv->control,
+				  cancellable,
+				  (GAsyncReadyCallback) pk_client_get_tid_cb,
+				  state);
 out:
 	g_object_unref (res);
 }
@@ -2309,9 +2452,13 @@ pk_client_search_groups_async (PkClient *client, PkBitfield filters, gchar **val
 	state->role = PK_ROLE_ENUM_SEARCH_GROUP;
 	state->res = g_object_ref (res);
 	state->client = g_object_ref (client);
+	state->cancellable = g_cancellable_new ();
 	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->cancellable_client = g_object_ref (cancellable);
+		state->cancellable_id = g_cancellable_connect (cancellable,
+							       G_CALLBACK (pk_client_cancellable_cancel_cb),
+							       state,
+							       NULL);
 	}
 	state->filters = filters;
 	state->search = g_strdupv (values);
@@ -2320,7 +2467,8 @@ pk_client_search_groups_async (PkClient *client, PkBitfield filters, gchar **val
 	state->progress = pk_progress_new ();
 
 	/* check not already cancelled */
-	if (cancellable != NULL && g_cancellable_set_error_if_cancelled (cancellable, &error)) {
+	if (cancellable != NULL &&
+	    g_cancellable_set_error_if_cancelled (cancellable, &error)) {
 		pk_client_state_finish (state, error);
 		g_error_free (error);
 		goto out;
@@ -2330,7 +2478,10 @@ pk_client_search_groups_async (PkClient *client, PkBitfield filters, gchar **val
 	pk_client_set_role (state, state->role);
 
 	/* get tid */
-	pk_control_get_tid_async (client->priv->control, cancellable, (GAsyncReadyCallback) pk_client_get_tid_cb, state);
+	pk_control_get_tid_async (client->priv->control,
+				  cancellable,
+				  (GAsyncReadyCallback) pk_client_get_tid_cb,
+				  state);
 out:
 	g_object_unref (res);
 }
@@ -2370,9 +2521,13 @@ pk_client_search_files_async (PkClient *client, PkBitfield filters, gchar **valu
 	state->role = PK_ROLE_ENUM_SEARCH_FILE;
 	state->res = g_object_ref (res);
 	state->client = g_object_ref (client);
+	state->cancellable = g_cancellable_new ();
 	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->cancellable_client = g_object_ref (cancellable);
+		state->cancellable_id = g_cancellable_connect (cancellable,
+							       G_CALLBACK (pk_client_cancellable_cancel_cb),
+							       state,
+							       NULL);
 	}
 	state->filters = filters;
 	state->search = g_strdupv (values);
@@ -2381,7 +2536,8 @@ pk_client_search_files_async (PkClient *client, PkBitfield filters, gchar **valu
 	state->progress = pk_progress_new ();
 
 	/* check not already cancelled */
-	if (cancellable != NULL && g_cancellable_set_error_if_cancelled (cancellable, &error)) {
+	if (cancellable != NULL &&
+	    g_cancellable_set_error_if_cancelled (cancellable, &error)) {
 		pk_client_state_finish (state, error);
 		g_error_free (error);
 		goto out;
@@ -2391,7 +2547,10 @@ pk_client_search_files_async (PkClient *client, PkBitfield filters, gchar **valu
 	pk_client_set_role (state, state->role);
 
 	/* get tid */
-	pk_control_get_tid_async (client->priv->control, cancellable, (GAsyncReadyCallback) pk_client_get_tid_cb, state);
+	pk_control_get_tid_async (client->priv->control,
+				  cancellable,
+				  (GAsyncReadyCallback) pk_client_get_tid_cb,
+				  state);
 out:
 	g_object_unref (res);
 }
@@ -2432,9 +2591,13 @@ pk_client_get_details_async (PkClient *client, gchar **package_ids, GCancellable
 	state->role = PK_ROLE_ENUM_GET_DETAILS;
 	state->res = g_object_ref (res);
 	state->client = g_object_ref (client);
+	state->cancellable = g_cancellable_new ();
 	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->cancellable_client = g_object_ref (cancellable);
+		state->cancellable_id = g_cancellable_connect (cancellable,
+							       G_CALLBACK (pk_client_cancellable_cancel_cb),
+							       state,
+							       NULL);
 	}
 	state->package_ids = g_strdupv (package_ids);
 	state->progress_callback = progress_callback;
@@ -2442,7 +2605,8 @@ pk_client_get_details_async (PkClient *client, gchar **package_ids, GCancellable
 	state->progress = pk_progress_new ();
 
 	/* check not already cancelled */
-	if (cancellable != NULL && g_cancellable_set_error_if_cancelled (cancellable, &error)) {
+	if (cancellable != NULL &&
+	    g_cancellable_set_error_if_cancelled (cancellable, &error)) {
 		pk_client_state_finish (state, error);
 		g_error_free (error);
 		goto out;
@@ -2452,7 +2616,10 @@ pk_client_get_details_async (PkClient *client, gchar **package_ids, GCancellable
 	pk_client_set_role (state, state->role);
 
 	/* get tid */
-	pk_control_get_tid_async (client->priv->control, cancellable, (GAsyncReadyCallback) pk_client_get_tid_cb, state);
+	pk_control_get_tid_async (client->priv->control,
+				  cancellable,
+				  (GAsyncReadyCallback) pk_client_get_tid_cb,
+				  state);
 out:
 	g_object_unref (res);
 }
@@ -2493,9 +2660,13 @@ pk_client_get_update_detail_async (PkClient *client, gchar **package_ids, GCance
 	state->role = PK_ROLE_ENUM_GET_UPDATE_DETAIL;
 	state->res = g_object_ref (res);
 	state->client = g_object_ref (client);
+	state->cancellable = g_cancellable_new ();
 	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->cancellable_client = g_object_ref (cancellable);
+		state->cancellable_id = g_cancellable_connect (cancellable,
+							       G_CALLBACK (pk_client_cancellable_cancel_cb),
+							       state,
+							       NULL);
 	}
 	state->package_ids = g_strdupv (package_ids);
 	state->progress_callback = progress_callback;
@@ -2503,7 +2674,8 @@ pk_client_get_update_detail_async (PkClient *client, gchar **package_ids, GCance
 	state->progress = pk_progress_new ();
 
 	/* check not already cancelled */
-	if (cancellable != NULL && g_cancellable_set_error_if_cancelled (cancellable, &error)) {
+	if (cancellable != NULL &&
+	    g_cancellable_set_error_if_cancelled (cancellable, &error)) {
 		pk_client_state_finish (state, error);
 		g_error_free (error);
 		goto out;
@@ -2513,7 +2685,10 @@ pk_client_get_update_detail_async (PkClient *client, gchar **package_ids, GCance
 	pk_client_set_role (state, state->role);
 
 	/* get tid */
-	pk_control_get_tid_async (client->priv->control, cancellable, (GAsyncReadyCallback) pk_client_get_tid_cb, state);
+	pk_control_get_tid_async (client->priv->control,
+				  cancellable,
+				  (GAsyncReadyCallback) pk_client_get_tid_cb,
+				  state);
 out:
 	g_object_unref (res);
 }
@@ -2554,9 +2729,13 @@ pk_client_download_packages_async (PkClient *client, gchar **package_ids, const
 	state->role = PK_ROLE_ENUM_DOWNLOAD_PACKAGES;
 	state->res = g_object_ref (res);
 	state->client = g_object_ref (client);
+	state->cancellable = g_cancellable_new ();
 	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->cancellable_client = g_object_ref (cancellable);
+		state->cancellable_id = g_cancellable_connect (cancellable,
+							       G_CALLBACK (pk_client_cancellable_cancel_cb),
+							       state,
+							       NULL);
 	}
 	state->package_ids = g_strdupv (package_ids);
 	state->directory = g_strdup (directory);
@@ -2565,7 +2744,8 @@ pk_client_download_packages_async (PkClient *client, gchar **package_ids, const
 	state->progress = pk_progress_new ();
 
 	/* check not already cancelled */
-	if (cancellable != NULL && g_cancellable_set_error_if_cancelled (cancellable, &error)) {
+	if (cancellable != NULL &&
+	    g_cancellable_set_error_if_cancelled (cancellable, &error)) {
 		pk_client_state_finish (state, error);
 		g_error_free (error);
 		goto out;
@@ -2575,7 +2755,10 @@ pk_client_download_packages_async (PkClient *client, gchar **package_ids, const
 	pk_client_set_role (state, state->role);
 
 	/* get tid */
-	pk_control_get_tid_async (client->priv->control, cancellable, (GAsyncReadyCallback) pk_client_get_tid_cb, state);
+	pk_control_get_tid_async (client->priv->control,
+				  cancellable,
+				  (GAsyncReadyCallback) pk_client_get_tid_cb,
+				  state);
 out:
 	g_object_unref (res);
 }
@@ -2614,9 +2797,13 @@ pk_client_get_updates_async (PkClient *client, PkBitfield filters, GCancellable
 	state->role = PK_ROLE_ENUM_GET_UPDATES;
 	state->res = g_object_ref (res);
 	state->client = g_object_ref (client);
+	state->cancellable = g_cancellable_new ();
 	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->cancellable_client = g_object_ref (cancellable);
+		state->cancellable_id = g_cancellable_connect (cancellable,
+							       G_CALLBACK (pk_client_cancellable_cancel_cb),
+							       state,
+							       NULL);
 	}
 	state->filters = filters;
 	state->progress_callback = progress_callback;
@@ -2624,7 +2811,8 @@ pk_client_get_updates_async (PkClient *client, PkBitfield filters, GCancellable
 	state->progress = pk_progress_new ();
 
 	/* check not already cancelled */
-	if (cancellable != NULL && g_cancellable_set_error_if_cancelled (cancellable, &error)) {
+	if (cancellable != NULL &&
+	    g_cancellable_set_error_if_cancelled (cancellable, &error)) {
 		pk_client_state_finish (state, error);
 		g_error_free (error);
 		goto out;
@@ -2634,7 +2822,10 @@ pk_client_get_updates_async (PkClient *client, PkBitfield filters, GCancellable
 	pk_client_set_role (state, state->role);
 
 	/* get tid */
-	pk_control_get_tid_async (client->priv->control, cancellable, (GAsyncReadyCallback) pk_client_get_tid_cb, state);
+	pk_control_get_tid_async (client->priv->control,
+				  cancellable,
+				  (GAsyncReadyCallback) pk_client_get_tid_cb,
+				  state);
 out:
 	g_object_unref (res);
 }
@@ -2673,9 +2864,13 @@ pk_client_get_old_transactions_async (PkClient *client, guint number, GCancellab
 	state->role = PK_ROLE_ENUM_GET_OLD_TRANSACTIONS;
 	state->res = g_object_ref (res);
 	state->client = g_object_ref (client);
+	state->cancellable = g_cancellable_new ();
 	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->cancellable_client = g_object_ref (cancellable);
+		state->cancellable_id = g_cancellable_connect (cancellable,
+							       G_CALLBACK (pk_client_cancellable_cancel_cb),
+							       state,
+							       NULL);
 	}
 	state->number = number;
 	state->progress_callback = progress_callback;
@@ -2683,7 +2878,8 @@ pk_client_get_old_transactions_async (PkClient *client, guint number, GCancellab
 	state->progress = pk_progress_new ();
 
 	/* check not already cancelled */
-	if (cancellable != NULL && g_cancellable_set_error_if_cancelled (cancellable, &error)) {
+	if (cancellable != NULL &&
+	    g_cancellable_set_error_if_cancelled (cancellable, &error)) {
 		pk_client_state_finish (state, error);
 		g_error_free (error);
 		goto out;
@@ -2693,7 +2889,10 @@ pk_client_get_old_transactions_async (PkClient *client, guint number, GCancellab
 	pk_client_set_role (state, state->role);
 
 	/* get tid */
-	pk_control_get_tid_async (client->priv->control, cancellable, (GAsyncReadyCallback) pk_client_get_tid_cb, state);
+	pk_control_get_tid_async (client->priv->control,
+				  cancellable,
+				  (GAsyncReadyCallback) pk_client_get_tid_cb,
+				  state);
 out:
 	g_object_unref (res);
 }
@@ -2737,9 +2936,13 @@ pk_client_update_system_async (PkClient *client, gboolean only_trusted, GCancell
 	state->role = PK_ROLE_ENUM_UPDATE_SYSTEM;
 	state->res = g_object_ref (res);
 	state->client = g_object_ref (client);
+	state->cancellable = g_cancellable_new ();
 	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->cancellable_client = g_object_ref (cancellable);
+		state->cancellable_id = g_cancellable_connect (cancellable,
+							       G_CALLBACK (pk_client_cancellable_cancel_cb),
+							       state,
+							       NULL);
 	}
 	state->only_trusted = only_trusted;
 	state->progress_callback = progress_callback;
@@ -2747,7 +2950,8 @@ pk_client_update_system_async (PkClient *client, gboolean only_trusted, GCancell
 	state->progress = pk_progress_new ();
 
 	/* check not already cancelled */
-	if (cancellable != NULL && g_cancellable_set_error_if_cancelled (cancellable, &error)) {
+	if (cancellable != NULL &&
+	    g_cancellable_set_error_if_cancelled (cancellable, &error)) {
 		pk_client_state_finish (state, error);
 		g_error_free (error);
 		goto out;
@@ -2757,7 +2961,10 @@ pk_client_update_system_async (PkClient *client, gboolean only_trusted, GCancell
 	pk_client_set_role (state, state->role);
 
 	/* get tid */
-	pk_control_get_tid_async (client->priv->control, cancellable, (GAsyncReadyCallback) pk_client_get_tid_cb, state);
+	pk_control_get_tid_async (client->priv->control,
+				  cancellable,
+				  (GAsyncReadyCallback) pk_client_get_tid_cb,
+				  state);
 out:
 	g_object_unref (res);
 }
@@ -2799,9 +3006,13 @@ pk_client_get_depends_async (PkClient *client, PkBitfield filters, gchar **packa
 	state->role = PK_ROLE_ENUM_GET_DEPENDS;
 	state->res = g_object_ref (res);
 	state->client = g_object_ref (client);
+	state->cancellable = g_cancellable_new ();
 	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->cancellable_client = g_object_ref (cancellable);
+		state->cancellable_id = g_cancellable_connect (cancellable,
+							       G_CALLBACK (pk_client_cancellable_cancel_cb),
+							       state,
+							       NULL);
 	}
 	state->filters = filters;
 	state->recursive = recursive;
@@ -2811,7 +3022,8 @@ pk_client_get_depends_async (PkClient *client, PkBitfield filters, gchar **packa
 	state->progress = pk_progress_new ();
 
 	/* check not already cancelled */
-	if (cancellable != NULL && g_cancellable_set_error_if_cancelled (cancellable, &error)) {
+	if (cancellable != NULL &&
+	    g_cancellable_set_error_if_cancelled (cancellable, &error)) {
 		pk_client_state_finish (state, error);
 		g_error_free (error);
 		goto out;
@@ -2821,7 +3033,10 @@ pk_client_get_depends_async (PkClient *client, PkBitfield filters, gchar **packa
 	pk_client_set_role (state, state->role);
 
 	/* get tid */
-	pk_control_get_tid_async (client->priv->control, cancellable, (GAsyncReadyCallback) pk_client_get_tid_cb, state);
+	pk_control_get_tid_async (client->priv->control,
+				  cancellable,
+				  (GAsyncReadyCallback) pk_client_get_tid_cb,
+				  state);
 out:
 	g_object_unref (res);
 }
@@ -2860,9 +3075,13 @@ pk_client_get_packages_async (PkClient *client, PkBitfield filters, GCancellable
 	state->role = PK_ROLE_ENUM_GET_PACKAGES;
 	state->res = g_object_ref (res);
 	state->client = g_object_ref (client);
+	state->cancellable = g_cancellable_new ();
 	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->cancellable_client = g_object_ref (cancellable);
+		state->cancellable_id = g_cancellable_connect (cancellable,
+							       G_CALLBACK (pk_client_cancellable_cancel_cb),
+							       state,
+							       NULL);
 	}
 	state->filters = filters;
 	state->progress_callback = progress_callback;
@@ -2870,7 +3089,8 @@ pk_client_get_packages_async (PkClient *client, PkBitfield filters, GCancellable
 	state->progress = pk_progress_new ();
 
 	/* check not already cancelled */
-	if (cancellable != NULL && g_cancellable_set_error_if_cancelled (cancellable, &error)) {
+	if (cancellable != NULL &&
+	    g_cancellable_set_error_if_cancelled (cancellable, &error)) {
 		pk_client_state_finish (state, error);
 		g_error_free (error);
 		goto out;
@@ -2880,7 +3100,10 @@ pk_client_get_packages_async (PkClient *client, PkBitfield filters, GCancellable
 	pk_client_set_role (state, state->role);
 
 	/* get tid */
-	pk_control_get_tid_async (client->priv->control, cancellable, (GAsyncReadyCallback) pk_client_get_tid_cb, state);
+	pk_control_get_tid_async (client->priv->control,
+				  cancellable,
+				  (GAsyncReadyCallback) pk_client_get_tid_cb,
+				  state);
 out:
 	g_object_unref (res);
 }
@@ -2922,9 +3145,13 @@ pk_client_get_requires_async (PkClient *client, PkBitfield filters, gchar **pack
 	state->role = PK_ROLE_ENUM_GET_REQUIRES;
 	state->res = g_object_ref (res);
 	state->client = g_object_ref (client);
+	state->cancellable = g_cancellable_new ();
 	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->cancellable_client = g_object_ref (cancellable);
+		state->cancellable_id = g_cancellable_connect (cancellable,
+							       G_CALLBACK (pk_client_cancellable_cancel_cb),
+							       state,
+							       NULL);
 	}
 	state->recursive = recursive;
 	state->filters = filters;
@@ -2934,7 +3161,8 @@ pk_client_get_requires_async (PkClient *client, PkBitfield filters, gchar **pack
 	state->progress = pk_progress_new ();
 
 	/* check not already cancelled */
-	if (cancellable != NULL && g_cancellable_set_error_if_cancelled (cancellable, &error)) {
+	if (cancellable != NULL &&
+	    g_cancellable_set_error_if_cancelled (cancellable, &error)) {
 		pk_client_state_finish (state, error);
 		g_error_free (error);
 		goto out;
@@ -2944,7 +3172,10 @@ pk_client_get_requires_async (PkClient *client, PkBitfield filters, gchar **pack
 	pk_client_set_role (state, state->role);
 
 	/* get tid */
-	pk_control_get_tid_async (client->priv->control, cancellable, (GAsyncReadyCallback) pk_client_get_tid_cb, state);
+	pk_control_get_tid_async (client->priv->control,
+				  cancellable,
+				  (GAsyncReadyCallback) pk_client_get_tid_cb,
+				  state);
 out:
 	g_object_unref (res);
 }
@@ -2987,9 +3218,13 @@ pk_client_what_provides_async (PkClient *client, PkBitfield filters, PkProvidesE
 	state->role = PK_ROLE_ENUM_WHAT_PROVIDES;
 	state->res = g_object_ref (res);
 	state->client = g_object_ref (client);
+	state->cancellable = g_cancellable_new ();
 	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->cancellable_client = g_object_ref (cancellable);
+		state->cancellable_id = g_cancellable_connect (cancellable,
+							       G_CALLBACK (pk_client_cancellable_cancel_cb),
+							       state,
+							       NULL);
 	}
 	state->filters = filters;
 	state->provides = provides;
@@ -2999,7 +3234,8 @@ pk_client_what_provides_async (PkClient *client, PkBitfield filters, PkProvidesE
 	state->progress = pk_progress_new ();
 
 	/* check not already cancelled */
-	if (cancellable != NULL && g_cancellable_set_error_if_cancelled (cancellable, &error)) {
+	if (cancellable != NULL &&
+	    g_cancellable_set_error_if_cancelled (cancellable, &error)) {
 		pk_client_state_finish (state, error);
 		g_error_free (error);
 		goto out;
@@ -3009,7 +3245,10 @@ pk_client_what_provides_async (PkClient *client, PkBitfield filters, PkProvidesE
 	pk_client_set_role (state, state->role);
 
 	/* get tid */
-	pk_control_get_tid_async (client->priv->control, cancellable, (GAsyncReadyCallback) pk_client_get_tid_cb, state);
+	pk_control_get_tid_async (client->priv->control,
+				  cancellable,
+				  (GAsyncReadyCallback) pk_client_get_tid_cb,
+				  state);
 out:
 	g_object_unref (res);
 }
@@ -3048,16 +3287,21 @@ pk_client_get_distro_upgrades_async (PkClient *client, GCancellable *cancellable
 	state->role = PK_ROLE_ENUM_GET_DISTRO_UPGRADES;
 	state->res = g_object_ref (res);
 	state->client = g_object_ref (client);
+	state->cancellable = g_cancellable_new ();
 	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->cancellable_client = g_object_ref (cancellable);
+		state->cancellable_id = g_cancellable_connect (cancellable,
+							       G_CALLBACK (pk_client_cancellable_cancel_cb),
+							       state,
+							       NULL);
 	}
 	state->progress_callback = progress_callback;
 	state->progress_user_data = progress_user_data;
 	state->progress = pk_progress_new ();
 
 	/* check not already cancelled */
-	if (cancellable != NULL && g_cancellable_set_error_if_cancelled (cancellable, &error)) {
+	if (cancellable != NULL &&
+	    g_cancellable_set_error_if_cancelled (cancellable, &error)) {
 		pk_client_state_finish (state, error);
 		g_error_free (error);
 		goto out;
@@ -3067,7 +3311,10 @@ pk_client_get_distro_upgrades_async (PkClient *client, GCancellable *cancellable
 	pk_client_set_role (state, state->role);
 
 	/* get tid */
-	pk_control_get_tid_async (client->priv->control, cancellable, (GAsyncReadyCallback) pk_client_get_tid_cb, state);
+	pk_control_get_tid_async (client->priv->control,
+				  cancellable,
+				  (GAsyncReadyCallback) pk_client_get_tid_cb,
+				  state);
 out:
 	g_object_unref (res);
 }
@@ -3107,9 +3354,13 @@ pk_client_get_files_async (PkClient *client, gchar **package_ids, GCancellable *
 	state->role = PK_ROLE_ENUM_GET_FILES;
 	state->res = g_object_ref (res);
 	state->client = g_object_ref (client);
+	state->cancellable = g_cancellable_new ();
 	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->cancellable_client = g_object_ref (cancellable);
+		state->cancellable_id = g_cancellable_connect (cancellable,
+							       G_CALLBACK (pk_client_cancellable_cancel_cb),
+							       state,
+							       NULL);
 	}
 	state->package_ids = g_strdupv (package_ids);
 	state->progress_callback = progress_callback;
@@ -3117,7 +3368,8 @@ pk_client_get_files_async (PkClient *client, gchar **package_ids, GCancellable *
 	state->progress = pk_progress_new ();
 
 	/* check not already cancelled */
-	if (cancellable != NULL && g_cancellable_set_error_if_cancelled (cancellable, &error)) {
+	if (cancellable != NULL &&
+	    g_cancellable_set_error_if_cancelled (cancellable, &error)) {
 		pk_client_state_finish (state, error);
 		g_error_free (error);
 		goto out;
@@ -3127,7 +3379,10 @@ pk_client_get_files_async (PkClient *client, gchar **package_ids, GCancellable *
 	pk_client_set_role (state, state->role);
 
 	/* get tid */
-	pk_control_get_tid_async (client->priv->control, cancellable, (GAsyncReadyCallback) pk_client_get_tid_cb, state);
+	pk_control_get_tid_async (client->priv->control,
+				  cancellable,
+				  (GAsyncReadyCallback) pk_client_get_tid_cb,
+				  state);
 out:
 	g_object_unref (res);
 }
@@ -3165,16 +3420,21 @@ pk_client_get_categories_async (PkClient *client, GCancellable *cancellable,
 	state->role = PK_ROLE_ENUM_GET_CATEGORIES;
 	state->res = g_object_ref (res);
 	state->client = g_object_ref (client);
+	state->cancellable = g_cancellable_new ();
 	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->cancellable_client = g_object_ref (cancellable);
+		state->cancellable_id = g_cancellable_connect (cancellable,
+							       G_CALLBACK (pk_client_cancellable_cancel_cb),
+							       state,
+							       NULL);
 	}
 	state->progress_callback = progress_callback;
 	state->progress_user_data = progress_user_data;
 	state->progress = pk_progress_new ();
 
 	/* check not already cancelled */
-	if (cancellable != NULL && g_cancellable_set_error_if_cancelled (cancellable, &error)) {
+	if (cancellable != NULL &&
+	    g_cancellable_set_error_if_cancelled (cancellable, &error)) {
 		pk_client_state_finish (state, error);
 		g_error_free (error);
 		goto out;
@@ -3184,7 +3444,10 @@ pk_client_get_categories_async (PkClient *client, GCancellable *cancellable,
 	pk_client_set_role (state, state->role);
 
 	/* get tid */
-	pk_control_get_tid_async (client->priv->control, cancellable, (GAsyncReadyCallback) pk_client_get_tid_cb, state);
+	pk_control_get_tid_async (client->priv->control,
+				  cancellable,
+				  (GAsyncReadyCallback) pk_client_get_tid_cb,
+				  state);
 out:
 	g_object_unref (res);
 }
@@ -3228,9 +3491,13 @@ pk_client_remove_packages_async (PkClient *client, gchar **package_ids, gboolean
 	state->role = PK_ROLE_ENUM_REMOVE_PACKAGES;
 	state->res = g_object_ref (res);
 	state->client = g_object_ref (client);
+	state->cancellable = g_cancellable_new ();
 	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->cancellable_client = 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;
@@ -3240,7 +3507,8 @@ pk_client_remove_packages_async (PkClient *client, gchar **package_ids, gboolean
 	state->progress = pk_progress_new ();
 
 	/* check not already cancelled */
-	if (cancellable != NULL && g_cancellable_set_error_if_cancelled (cancellable, &error)) {
+	if (cancellable != NULL &&
+	    g_cancellable_set_error_if_cancelled (cancellable, &error)) {
 		pk_client_state_finish (state, error);
 		g_error_free (error);
 		goto out;
@@ -3250,7 +3518,10 @@ pk_client_remove_packages_async (PkClient *client, gchar **package_ids, gboolean
 	pk_client_set_role (state, state->role);
 
 	/* get tid */
-	pk_control_get_tid_async (client->priv->control, cancellable, (GAsyncReadyCallback) pk_client_get_tid_cb, state);
+	pk_control_get_tid_async (client->priv->control,
+				  cancellable,
+				  (GAsyncReadyCallback) pk_client_get_tid_cb,
+				  state);
 out:
 	g_object_unref (res);
 }
@@ -3292,9 +3563,13 @@ pk_client_refresh_cache_async (PkClient *client, gboolean force, GCancellable *c
 	state->role = PK_ROLE_ENUM_REFRESH_CACHE;
 	state->res = g_object_ref (res);
 	state->client = g_object_ref (client);
+	state->cancellable = g_cancellable_new ();
 	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->cancellable_client = g_object_ref (cancellable);
+		state->cancellable_id = g_cancellable_connect (cancellable,
+							       G_CALLBACK (pk_client_cancellable_cancel_cb),
+							       state,
+							       NULL);
 	}
 	state->force = force;
 	state->progress_callback = progress_callback;
@@ -3302,7 +3577,8 @@ pk_client_refresh_cache_async (PkClient *client, gboolean force, GCancellable *c
 	state->progress = pk_progress_new ();
 
 	/* check not already cancelled */
-	if (cancellable != NULL && g_cancellable_set_error_if_cancelled (cancellable, &error)) {
+	if (cancellable != NULL &&
+	    g_cancellable_set_error_if_cancelled (cancellable, &error)) {
 		pk_client_state_finish (state, error);
 		g_error_free (error);
 		goto out;
@@ -3312,7 +3588,10 @@ pk_client_refresh_cache_async (PkClient *client, gboolean force, GCancellable *c
 	pk_client_set_role (state, state->role);
 
 	/* get tid */
-	pk_control_get_tid_async (client->priv->control, cancellable, (GAsyncReadyCallback) pk_client_get_tid_cb, state);
+	pk_control_get_tid_async (client->priv->control,
+				  cancellable,
+				  (GAsyncReadyCallback) pk_client_get_tid_cb,
+				  state);
 out:
 	g_object_unref (res);
 }
@@ -3353,9 +3632,13 @@ pk_client_install_packages_async (PkClient *client, gboolean only_trusted, gchar
 	state->role = PK_ROLE_ENUM_INSTALL_PACKAGES;
 	state->res = g_object_ref (res);
 	state->client = g_object_ref (client);
+	state->cancellable = g_cancellable_new ();
 	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->cancellable_client = g_object_ref (cancellable);
+		state->cancellable_id = g_cancellable_connect (cancellable,
+							       G_CALLBACK (pk_client_cancellable_cancel_cb),
+							       state,
+							       NULL);
 	}
 	state->only_trusted = only_trusted;
 	state->package_ids = g_strdupv (package_ids);
@@ -3364,7 +3647,8 @@ pk_client_install_packages_async (PkClient *client, gboolean only_trusted, gchar
 	state->progress = pk_progress_new ();
 
 	/* check not already cancelled */
-	if (cancellable != NULL && g_cancellable_set_error_if_cancelled (cancellable, &error)) {
+	if (cancellable != NULL &&
+	    g_cancellable_set_error_if_cancelled (cancellable, &error)) {
 		pk_client_state_finish (state, error);
 		g_error_free (error);
 		goto out;
@@ -3374,7 +3658,10 @@ pk_client_install_packages_async (PkClient *client, gboolean only_trusted, gchar
 	pk_client_set_role (state, state->role);
 
 	/* get tid */
-	pk_control_get_tid_async (client->priv->control, cancellable, (GAsyncReadyCallback) pk_client_get_tid_cb, state);
+	pk_control_get_tid_async (client->priv->control,
+				  cancellable,
+				  (GAsyncReadyCallback) pk_client_get_tid_cb,
+				  state);
 out:
 	g_object_unref (res);
 }
@@ -3415,9 +3702,13 @@ pk_client_install_signature_async (PkClient *client, PkSigTypeEnum type, const g
 	state->role = PK_ROLE_ENUM_INSTALL_SIGNATURE;
 	state->res = g_object_ref (res);
 	state->client = g_object_ref (client);
+	state->cancellable = g_cancellable_new ();
 	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->cancellable_client = g_object_ref (cancellable);
+		state->cancellable_id = g_cancellable_connect (cancellable,
+							       G_CALLBACK (pk_client_cancellable_cancel_cb),
+							       state,
+							       NULL);
 	}
 	state->type = type;
 	state->key_id = g_strdup (key_id);
@@ -3427,7 +3718,8 @@ pk_client_install_signature_async (PkClient *client, PkSigTypeEnum type, const g
 	state->progress = pk_progress_new ();
 
 	/* check not already cancelled */
-	if (cancellable != NULL && g_cancellable_set_error_if_cancelled (cancellable, &error)) {
+	if (cancellable != NULL &&
+	    g_cancellable_set_error_if_cancelled (cancellable, &error)) {
 		pk_client_state_finish (state, error);
 		g_error_free (error);
 		goto out;
@@ -3437,7 +3729,10 @@ pk_client_install_signature_async (PkClient *client, PkSigTypeEnum type, const g
 	pk_client_set_role (state, state->role);
 
 	/* get tid */
-	pk_control_get_tid_async (client->priv->control, cancellable, (GAsyncReadyCallback) pk_client_get_tid_cb, state);
+	pk_control_get_tid_async (client->priv->control,
+				  cancellable,
+				  (GAsyncReadyCallback) pk_client_get_tid_cb,
+				  state);
 out:
 	g_object_unref (res);
 }
@@ -3478,9 +3773,13 @@ pk_client_update_packages_async (PkClient *client, gboolean only_trusted, gchar
 	state->role = PK_ROLE_ENUM_UPDATE_PACKAGES;
 	state->res = g_object_ref (res);
 	state->client = g_object_ref (client);
+	state->cancellable = g_cancellable_new ();
 	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->cancellable_client = g_object_ref (cancellable);
+		state->cancellable_id = g_cancellable_connect (cancellable,
+							       G_CALLBACK (pk_client_cancellable_cancel_cb),
+							       state,
+							       NULL);
 	}
 	state->only_trusted = only_trusted;
 	state->package_ids = g_strdupv (package_ids);
@@ -3489,7 +3788,8 @@ pk_client_update_packages_async (PkClient *client, gboolean only_trusted, gchar
 	state->progress = pk_progress_new ();
 
 	/* check not already cancelled */
-	if (cancellable != NULL && g_cancellable_set_error_if_cancelled (cancellable, &error)) {
+	if (cancellable != NULL &&
+	    g_cancellable_set_error_if_cancelled (cancellable, &error)) {
 		pk_client_state_finish (state, error);
 		g_error_free (error);
 		goto out;
@@ -3499,7 +3799,10 @@ pk_client_update_packages_async (PkClient *client, gboolean only_trusted, gchar
 	pk_client_set_role (state, state->role);
 
 	/* get tid */
-	pk_control_get_tid_async (client->priv->control, cancellable, (GAsyncReadyCallback) pk_client_get_tid_cb, state);
+	pk_control_get_tid_async (client->priv->control,
+				  cancellable,
+				  (GAsyncReadyCallback) pk_client_get_tid_cb,
+				  state);
 out:
 	g_object_unref (res);
 }
@@ -3524,7 +3827,10 @@ pk_client_copy_native_finished_cb (GFile *file, GAsyncResult *res, PkClientState
 	/* no more copies pending? */
 	if (--state->refcount == 0) {
 		/* now get tid and continue on our merry way */
-		pk_control_get_tid_async (state->client->priv->control, state->cancellable, (GAsyncReadyCallback) pk_client_get_tid_cb, state);
+		pk_control_get_tid_async (state->client->priv->control,
+					  state->cancellable,
+					  (GAsyncReadyCallback) pk_client_get_tid_cb,
+					  state);
 	}
 out:
 	return;
@@ -3551,8 +3857,11 @@ pk_client_copy_non_native_then_get_tid (PkClientState *state)
 
 	/* save percentage */
 	ret = pk_progress_set_percentage (state->progress, -1);
-	if (state->progress_callback != NULL && ret)
-		state->progress_callback (state->progress, PK_PROGRESS_TYPE_PERCENTAGE, state->progress_user_data);
+	if (state->progress_callback != NULL && ret) {
+		state->progress_callback (state->progress,
+					  PK_PROGRESS_TYPE_PERCENTAGE,
+					  state->progress_user_data);
+	}
 
 	/* copy each file that is non-native */
 	for (i=0; state->files[i] != NULL; i++) {
@@ -3621,9 +3930,13 @@ pk_client_install_files_async (PkClient *client, gboolean only_trusted, gchar **
 	state->role = PK_ROLE_ENUM_INSTALL_FILES;
 	state->res = g_object_ref (res);
 	state->client = g_object_ref (client);
+	state->cancellable = g_cancellable_new ();
 	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->cancellable_client = g_object_ref (cancellable);
+		state->cancellable_id = g_cancellable_connect (cancellable,
+							       G_CALLBACK (pk_client_cancellable_cancel_cb),
+							       state,
+							       NULL);
 	}
 	state->only_trusted = only_trusted;
 	state->progress_callback = progress_callback;
@@ -3631,7 +3944,8 @@ pk_client_install_files_async (PkClient *client, gboolean only_trusted, gchar **
 	state->progress = pk_progress_new ();
 
 	/* check not already cancelled */
-	if (cancellable != NULL && g_cancellable_set_error_if_cancelled (cancellable, &error)) {
+	if (cancellable != NULL &&
+	    g_cancellable_set_error_if_cancelled (cancellable, &error)) {
 		pk_client_state_finish (state, error);
 		g_error_free (error);
 		goto out;
@@ -3659,7 +3973,10 @@ pk_client_install_files_async (PkClient *client, gboolean only_trusted, gchar **
 	/* nothing to copy, common case */
 	if (state->refcount == 0) {
 		/* just get tid */
-		pk_control_get_tid_async (client->priv->control, cancellable, (GAsyncReadyCallback) pk_client_get_tid_cb, state);
+		pk_control_get_tid_async (client->priv->control,
+					  cancellable,
+					  (GAsyncReadyCallback) pk_client_get_tid_cb,
+					  state);
 		goto out;
 	}
 
@@ -3703,9 +4020,13 @@ pk_client_accept_eula_async (PkClient *client, const gchar *eula_id, GCancellabl
 	state->role = PK_ROLE_ENUM_ACCEPT_EULA;
 	state->res = g_object_ref (res);
 	state->client = g_object_ref (client);
+	state->cancellable = g_cancellable_new ();
 	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->cancellable_client = g_object_ref (cancellable);
+		state->cancellable_id = g_cancellable_connect (cancellable,
+							       G_CALLBACK (pk_client_cancellable_cancel_cb),
+							       state,
+							       NULL);
 	}
 	state->eula_id = g_strdup (eula_id);
 	state->progress_callback = progress_callback;
@@ -3713,7 +4034,8 @@ pk_client_accept_eula_async (PkClient *client, const gchar *eula_id, GCancellabl
 	state->progress = pk_progress_new ();
 
 	/* check not already cancelled */
-	if (cancellable != NULL && g_cancellable_set_error_if_cancelled (cancellable, &error)) {
+	if (cancellable != NULL &&
+	    g_cancellable_set_error_if_cancelled (cancellable, &error)) {
 		pk_client_state_finish (state, error);
 		g_error_free (error);
 		goto out;
@@ -3723,7 +4045,10 @@ pk_client_accept_eula_async (PkClient *client, const gchar *eula_id, GCancellabl
 	pk_client_set_role (state, state->role);
 
 	/* get tid */
-	pk_control_get_tid_async (client->priv->control, cancellable, (GAsyncReadyCallback) pk_client_get_tid_cb, state);
+	pk_control_get_tid_async (client->priv->control,
+				  cancellable,
+				  (GAsyncReadyCallback) pk_client_get_tid_cb,
+				  state);
 out:
 	g_object_unref (res);
 }
@@ -3762,9 +4087,13 @@ pk_client_rollback_async (PkClient *client, const gchar *transaction_id, GCancel
 	state->role = PK_ROLE_ENUM_ROLLBACK;
 	state->res = g_object_ref (res);
 	state->client = g_object_ref (client);
+	state->cancellable = g_cancellable_new ();
 	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->cancellable_client = g_object_ref (cancellable);
+		state->cancellable_id = g_cancellable_connect (cancellable,
+							       G_CALLBACK (pk_client_cancellable_cancel_cb),
+							       state,
+							       NULL);
 	}
 	state->transaction_id = g_strdup (transaction_id);
 	state->progress_callback = progress_callback;
@@ -3772,7 +4101,8 @@ pk_client_rollback_async (PkClient *client, const gchar *transaction_id, GCancel
 	state->progress = pk_progress_new ();
 
 	/* check not already cancelled */
-	if (cancellable != NULL && g_cancellable_set_error_if_cancelled (cancellable, &error)) {
+	if (cancellable != NULL &&
+	    g_cancellable_set_error_if_cancelled (cancellable, &error)) {
 		pk_client_state_finish (state, error);
 		g_error_free (error);
 		goto out;
@@ -3782,7 +4112,10 @@ pk_client_rollback_async (PkClient *client, const gchar *transaction_id, GCancel
 	pk_client_set_role (state, state->role);
 
 	/* get tid */
-	pk_control_get_tid_async (client->priv->control, cancellable, (GAsyncReadyCallback) pk_client_get_tid_cb, state);
+	pk_control_get_tid_async (client->priv->control,
+				  cancellable,
+				  (GAsyncReadyCallback) pk_client_get_tid_cb,
+				  state);
 out:
 	g_object_unref (res);
 }
@@ -3821,9 +4154,13 @@ pk_client_get_repo_list_async (PkClient *client, PkBitfield filters, GCancellabl
 	state->role = PK_ROLE_ENUM_GET_REPO_LIST;
 	state->res = g_object_ref (res);
 	state->client = g_object_ref (client);
+	state->cancellable = g_cancellable_new ();
 	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->cancellable_client = g_object_ref (cancellable);
+		state->cancellable_id = g_cancellable_connect (cancellable,
+							       G_CALLBACK (pk_client_cancellable_cancel_cb),
+							       state,
+							       NULL);
 	}
 	state->filters = filters;
 	state->progress_callback = progress_callback;
@@ -3831,7 +4168,8 @@ pk_client_get_repo_list_async (PkClient *client, PkBitfield filters, GCancellabl
 	state->progress = pk_progress_new ();
 
 	/* check not already cancelled */
-	if (cancellable != NULL && g_cancellable_set_error_if_cancelled (cancellable, &error)) {
+	if (cancellable != NULL &&
+	    g_cancellable_set_error_if_cancelled (cancellable, &error)) {
 		pk_client_state_finish (state, error);
 		g_error_free (error);
 		goto out;
@@ -3841,7 +4179,10 @@ pk_client_get_repo_list_async (PkClient *client, PkBitfield filters, GCancellabl
 	pk_client_set_role (state, state->role);
 
 	/* get tid */
-	pk_control_get_tid_async (client->priv->control, cancellable, (GAsyncReadyCallback) pk_client_get_tid_cb, state);
+	pk_control_get_tid_async (client->priv->control,
+				  cancellable,
+				  (GAsyncReadyCallback) pk_client_get_tid_cb,
+				  state);
 out:
 	g_object_unref (res);
 }
@@ -3881,9 +4222,13 @@ pk_client_repo_enable_async (PkClient *client, const gchar *repo_id, gboolean en
 	state->role = PK_ROLE_ENUM_REPO_ENABLE;
 	state->res = g_object_ref (res);
 	state->client = g_object_ref (client);
+	state->cancellable = g_cancellable_new ();
 	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->cancellable_client = g_object_ref (cancellable);
+		state->cancellable_id = g_cancellable_connect (cancellable,
+							       G_CALLBACK (pk_client_cancellable_cancel_cb),
+							       state,
+							       NULL);
 	}
 	state->enabled = enabled;
 	state->repo_id = g_strdup (repo_id);
@@ -3892,7 +4237,8 @@ pk_client_repo_enable_async (PkClient *client, const gchar *repo_id, gboolean en
 	state->progress = pk_progress_new ();
 
 	/* check not already cancelled */
-	if (cancellable != NULL && g_cancellable_set_error_if_cancelled (cancellable, &error)) {
+	if (cancellable != NULL &&
+	    g_cancellable_set_error_if_cancelled (cancellable, &error)) {
 		pk_client_state_finish (state, error);
 		g_error_free (error);
 		goto out;
@@ -3902,7 +4248,10 @@ pk_client_repo_enable_async (PkClient *client, const gchar *repo_id, gboolean en
 	pk_client_set_role (state, state->role);
 
 	/* get tid */
-	pk_control_get_tid_async (client->priv->control, cancellable, (GAsyncReadyCallback) pk_client_get_tid_cb, state);
+	pk_control_get_tid_async (client->priv->control,
+				  cancellable,
+				  (GAsyncReadyCallback) pk_client_get_tid_cb,
+				  state);
 out:
 	g_object_unref (res);
 }
@@ -3944,9 +4293,13 @@ pk_client_repo_set_data_async (PkClient *client, const gchar *repo_id, const gch
 	state->role = PK_ROLE_ENUM_REPO_SET_DATA;
 	state->res = g_object_ref (res);
 	state->client = g_object_ref (client);
+	state->cancellable = g_cancellable_new ();
 	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->cancellable_client = g_object_ref (cancellable);
+		state->cancellable_id = g_cancellable_connect (cancellable,
+							       G_CALLBACK (pk_client_cancellable_cancel_cb),
+							       state,
+							       NULL);
 	}
 	state->repo_id = g_strdup (repo_id);
 	state->parameter = g_strdup (parameter);
@@ -3956,7 +4309,8 @@ pk_client_repo_set_data_async (PkClient *client, const gchar *repo_id, const gch
 	state->progress = pk_progress_new ();
 
 	/* check not already cancelled */
-	if (cancellable != NULL && g_cancellable_set_error_if_cancelled (cancellable, &error)) {
+	if (cancellable != NULL &&
+	    g_cancellable_set_error_if_cancelled (cancellable, &error)) {
 		pk_client_state_finish (state, error);
 		g_error_free (error);
 		goto out;
@@ -3966,7 +4320,10 @@ pk_client_repo_set_data_async (PkClient *client, const gchar *repo_id, const gch
 	pk_client_set_role (state, state->role);
 
 	/* get tid */
-	pk_control_get_tid_async (client->priv->control, cancellable, (GAsyncReadyCallback) pk_client_get_tid_cb, state);
+	pk_control_get_tid_async (client->priv->control,
+				  cancellable,
+				  (GAsyncReadyCallback) pk_client_get_tid_cb,
+				  state);
 out:
 	g_object_unref (res);
 }
@@ -4008,9 +4365,13 @@ pk_client_simulate_install_files_async (PkClient *client, gchar **files, GCancel
 	state->role = PK_ROLE_ENUM_SIMULATE_INSTALL_FILES;
 	state->res = g_object_ref (res);
 	state->client = g_object_ref (client);
+	state->cancellable = g_cancellable_new ();
 	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->cancellable_client = g_object_ref (cancellable);
+		state->cancellable_id = g_cancellable_connect (cancellable,
+							       G_CALLBACK (pk_client_cancellable_cancel_cb),
+							       state,
+							       NULL);
 	}
 
 	state->progress_callback = progress_callback;
@@ -4018,7 +4379,8 @@ pk_client_simulate_install_files_async (PkClient *client, gchar **files, GCancel
 	state->progress = pk_progress_new ();
 
 	/* check not already cancelled */
-	if (cancellable != NULL && g_cancellable_set_error_if_cancelled (cancellable, &error)) {
+	if (cancellable != NULL &&
+	    g_cancellable_set_error_if_cancelled (cancellable, &error)) {
 		pk_client_state_finish (state, error);
 		g_error_free (error);
 		goto out;
@@ -4046,7 +4408,10 @@ pk_client_simulate_install_files_async (PkClient *client, gchar **files, GCancel
 	/* nothing to copy, common case */
 	if (state->refcount == 0) {
 		/* just get tid */
-		pk_control_get_tid_async (client->priv->control, cancellable, (GAsyncReadyCallback) pk_client_get_tid_cb, state);
+		pk_control_get_tid_async (client->priv->control,
+				  cancellable,
+				  (GAsyncReadyCallback) pk_client_get_tid_cb,
+				  state);
 		goto out;
 	}
 
@@ -4091,9 +4456,13 @@ pk_client_simulate_install_packages_async (PkClient *client, gchar **package_ids
 	state->role = PK_ROLE_ENUM_SIMULATE_INSTALL_PACKAGES;
 	state->res = g_object_ref (res);
 	state->client = g_object_ref (client);
+	state->cancellable = g_cancellable_new ();
 	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->cancellable_client = g_object_ref (cancellable);
+		state->cancellable_id = g_cancellable_connect (cancellable,
+							       G_CALLBACK (pk_client_cancellable_cancel_cb),
+							       state,
+							       NULL);
 	}
 	state->package_ids = g_strdupv (package_ids);
 	state->progress_callback = progress_callback;
@@ -4101,7 +4470,8 @@ pk_client_simulate_install_packages_async (PkClient *client, gchar **package_ids
 	state->progress = pk_progress_new ();
 
 	/* check not already cancelled */
-	if (cancellable != NULL && g_cancellable_set_error_if_cancelled (cancellable, &error)) {
+	if (cancellable != NULL &&
+	    g_cancellable_set_error_if_cancelled (cancellable, &error)) {
 		pk_client_state_finish (state, error);
 		g_error_free (error);
 		goto out;
@@ -4111,7 +4481,10 @@ pk_client_simulate_install_packages_async (PkClient *client, gchar **package_ids
 	pk_client_set_role (state, state->role);
 
 	/* get tid */
-	pk_control_get_tid_async (client->priv->control, cancellable, (GAsyncReadyCallback) pk_client_get_tid_cb, state);
+	pk_control_get_tid_async (client->priv->control,
+				  cancellable,
+				  (GAsyncReadyCallback) pk_client_get_tid_cb,
+				  state);
 out:
 	g_object_unref (res);
 }
@@ -4152,9 +4525,13 @@ pk_client_simulate_remove_packages_async (PkClient *client, gchar **package_ids,
 	state->role = PK_ROLE_ENUM_SIMULATE_REMOVE_PACKAGES;
 	state->res = g_object_ref (res);
 	state->client = g_object_ref (client);
+	state->cancellable = g_cancellable_new ();
 	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->cancellable_client = g_object_ref (cancellable);
+		state->cancellable_id = g_cancellable_connect (cancellable,
+							       G_CALLBACK (pk_client_cancellable_cancel_cb),
+							       state,
+							       NULL);
 	}
 	state->package_ids = g_strdupv (package_ids);
 	state->autoremove = autoremove;
@@ -4163,7 +4540,8 @@ pk_client_simulate_remove_packages_async (PkClient *client, gchar **package_ids,
 	state->progress = pk_progress_new ();
 
 	/* check not already cancelled */
-	if (cancellable != NULL && g_cancellable_set_error_if_cancelled (cancellable, &error)) {
+	if (cancellable != NULL &&
+	    g_cancellable_set_error_if_cancelled (cancellable, &error)) {
 		pk_client_state_finish (state, error);
 		g_error_free (error);
 		goto out;
@@ -4173,7 +4551,10 @@ pk_client_simulate_remove_packages_async (PkClient *client, gchar **package_ids,
 	pk_client_set_role (state, state->role);
 
 	/* get tid */
-	pk_control_get_tid_async (client->priv->control, cancellable, (GAsyncReadyCallback) pk_client_get_tid_cb, state);
+	pk_control_get_tid_async (client->priv->control,
+				  cancellable,
+				  (GAsyncReadyCallback) pk_client_get_tid_cb,
+				  state);
 out:
 	g_object_unref (res);
 }
@@ -4213,9 +4594,13 @@ pk_client_simulate_update_packages_async (PkClient *client, gchar **package_ids,
 	state->role = PK_ROLE_ENUM_SIMULATE_UPDATE_PACKAGES;
 	state->res = g_object_ref (res);
 	state->client = g_object_ref (client);
+	state->cancellable = g_cancellable_new ();
 	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->cancellable_client = g_object_ref (cancellable);
+		state->cancellable_id = g_cancellable_connect (cancellable,
+							       G_CALLBACK (pk_client_cancellable_cancel_cb),
+							       state,
+							       NULL);
 	}
 	state->package_ids = g_strdupv (package_ids);
 	state->progress_callback = progress_callback;
@@ -4223,7 +4608,8 @@ pk_client_simulate_update_packages_async (PkClient *client, gchar **package_ids,
 	state->progress = pk_progress_new ();
 
 	/* check not already cancelled */
-	if (cancellable != NULL && g_cancellable_set_error_if_cancelled (cancellable, &error)) {
+	if (cancellable != NULL &&
+	    g_cancellable_set_error_if_cancelled (cancellable, &error)) {
 		pk_client_state_finish (state, error);
 		g_error_free (error);
 		goto out;
@@ -4233,12 +4619,14 @@ pk_client_simulate_update_packages_async (PkClient *client, gchar **package_ids,
 	pk_client_set_role (state, state->role);
 
 	/* get tid */
-	pk_control_get_tid_async (client->priv->control, cancellable, (GAsyncReadyCallback) pk_client_get_tid_cb, state);
+	pk_control_get_tid_async (client->priv->control,
+				  cancellable,
+				  (GAsyncReadyCallback) pk_client_get_tid_cb,
+				  state);
 out:
 	g_object_unref (res);
 }
 
-
 /**
  * pk_client_upgrade_system_async:
  * @client: a valid #PkClient instance
@@ -4279,9 +4667,13 @@ pk_client_upgrade_system_async (PkClient *client, const gchar *distro_id, PkUpgr
 	state->role = PK_ROLE_ENUM_UPGRADE_SYSTEM;
 	state->res = g_object_ref (res);
 	state->client = g_object_ref (client);
+	state->cancellable = g_cancellable_new ();
 	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->cancellable_client = g_object_ref (cancellable);
+		state->cancellable_id = g_cancellable_connect (cancellable,
+							       G_CALLBACK (pk_client_cancellable_cancel_cb),
+							       state,
+							       NULL);
 	}
 	state->distro_id = g_strdup (distro_id);
 	state->upgrade_kind = upgrade_kind;
@@ -4290,7 +4682,8 @@ pk_client_upgrade_system_async (PkClient *client, const gchar *distro_id, PkUpgr
 	state->progress = pk_progress_new ();
 
 	/* check not already cancelled */
-	if (cancellable != NULL && g_cancellable_set_error_if_cancelled (cancellable, &error)) {
+	if (cancellable != NULL &&
+	    g_cancellable_set_error_if_cancelled (cancellable, &error)) {
 		pk_client_state_finish (state, error);
 		g_error_free (error);
 		goto out;
@@ -4300,56 +4693,39 @@ pk_client_upgrade_system_async (PkClient *client, const gchar *distro_id, PkUpgr
 	pk_client_set_role (state, state->role);
 
 	/* get tid */
-	pk_control_get_tid_async (client->priv->control, cancellable, (GAsyncReadyCallback) pk_client_get_tid_cb, state);
+	pk_control_get_tid_async (client->priv->control,
+				  cancellable,
+				  (GAsyncReadyCallback) pk_client_get_tid_cb,
+				  state);
 out:
 	g_object_unref (res);
 }
 
-/***************************************************************************************************/
+/**********************************************************************/
 
 /**
- * pk_client_adopt_get_properties_cb:
+ * pk_client_adopt_get_proxy_cb:
  **/
 static void
-pk_client_adopt_get_properties_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkClientState *state)
+pk_client_adopt_get_proxy_cb (GObject *object,
+			      GAsyncResult *res,
+			      gpointer user_data)
 {
 	GError *error = NULL;
-	GHashTable *hash;
+	PkClientState *state = (PkClientState *) user_data;
 
-	/* get the result */
-	state->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 (!state->ret) {
+	state->proxy = g_dbus_proxy_new_for_bus_finish (res, &error);
+	if (state->proxy == NULL) {
 		pk_client_state_finish (state, error);
 		g_error_free (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);
-	}
+	/* connect */
+	pk_client_proxy_connect (state);
 
-	/* this is the first time we'll know the actual role */
-	if (state->role == PK_ROLE_ENUM_UNKNOWN) {
-		g_object_get (state->progress,
-			      "role", &state->role,
-			      NULL);
-		/* proxy this */
-		g_object_set (state->results,
-			      "role", state->role,
-			      NULL);
-	}
-
-	/* we're waiting for finished */
+	state->ret = TRUE;
+	pk_client_state_finish (state, NULL);
 }
 
 /**
@@ -4367,9 +4743,13 @@ pk_client_adopt_get_properties_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkCl
  * Since: 0.5.2
  **/
 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)
+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;
@@ -4386,17 +4766,27 @@ pk_client_adopt_async (PkClient *client, const gchar *transaction_id, GCancellab
 	state->role = PK_ROLE_ENUM_UNKNOWN;
 	state->res = g_object_ref (res);
 	state->client = g_object_ref (client);
+	state->cancellable = g_cancellable_new ();
 	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->cancellable_client = g_object_ref (cancellable);
+		state->cancellable_id = g_cancellable_connect (cancellable,
+							       G_CALLBACK (pk_client_cancellable_cancel_cb),
+							       state,
+							       NULL);
 	}
 	state->tid = g_strdup (transaction_id);
 	state->progress_callback = progress_callback;
 	state->progress_user_data = progress_user_data;
 	state->progress = pk_progress_new ();
+	state->results = pk_results_new ();
+	g_object_set (state->results,
+		      "role", state->role,
+		      "progress", state->progress,
+		      NULL);
 
 	/* check not already cancelled */
-	if (cancellable != NULL && g_cancellable_set_error_if_cancelled (cancellable, &error)) {
+	if (cancellable != NULL &&
+	    g_cancellable_set_error_if_cancelled (cancellable, &error)) {
 		pk_client_state_finish (state, error);
 		g_error_free (error);
 		goto out;
@@ -4407,35 +4797,15 @@ pk_client_adopt_async (PkClient *client, const gchar *transaction_id, GCancellab
 	pk_progress_set_transaction_id (state->progress, state->tid);
 
 	/* 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)
-		g_error ("Cannot connect to PackageKit on %s", state->tid);
-
-	/* don't timeout, as dbus-glib sets the timeout ~25 seconds */
-	dbus_g_proxy_set_default_timeout (state->proxy, INT_MAX);
-
-	/* 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)
-		g_error ("Cannot connect to PackageKit on %s", state->tid);
-
-	/* call D-Bus get_properties async */
-	state->call = dbus_g_proxy_begin_call (state->proxy_props, "GetAll",
-					       (DBusGProxyCallNotify) pk_client_adopt_get_properties_cb, state, NULL,
-					       G_TYPE_STRING, "org.freedesktop.PackageKit.Transaction",
-					       G_TYPE_INVALID);
-	if (state->call == NULL)
-		g_error ("failed to setup call, maybe OOM or no connection");
-
-	/* we'll have results from now on */
-	state->results = pk_results_new ();
-	g_object_set (state->results,
-		      "role", state->role,
-		      "progress", state->progress,
-		      NULL);
+	g_dbus_proxy_new_for_bus (G_BUS_TYPE_SYSTEM,
+				  G_DBUS_PROXY_FLAGS_NONE,
+				  NULL,
+				  PK_DBUS_SERVICE,
+				  state->tid,
+				  PK_DBUS_INTERFACE_TRANSACTION,
+				  state->cancellable,
+				  pk_client_adopt_get_proxy_cb,
+				  state);
 
 	/* track state */
 	pk_client_state_add (client, state);
@@ -4443,7 +4813,7 @@ out:
 	g_object_unref (res);
 }
 
-/***************************************************************************************************/
+/**********************************************************************/
 
 /**
  * pk_client_get_progress_finish:
@@ -4477,15 +4847,22 @@ pk_client_get_progress_finish (PkClient *client, GAsyncResult *res, GError **err
  * pk_client_get_progress_state_finish:
  **/
 static void
-pk_client_get_progress_state_finish (PkClientState *state, GError *error)
+pk_client_get_progress_state_finish (PkClientState *state, const GError *error)
 {
-	if (state->cancellable != NULL) {
-		g_cancellable_disconnect (state->cancellable, state->cancellable_id);
-		g_object_unref (state->cancellable);
+	if (state->cancellable_id > 0) {
+		g_cancellable_disconnect (state->cancellable_client,
+					  state->cancellable_id);
 	}
+	if (state->cancellable != NULL)
+		g_object_unref (state->cancellable);
 
 	if (state->proxy != NULL) {
-		pk_client_disconnect_proxy (state->proxy, state);
+		g_signal_handlers_disconnect_by_func (state->proxy,
+						      G_CALLBACK (pk_client_properties_changed_cb),
+						      state);
+		g_signal_handlers_disconnect_by_func (state->proxy,
+						      G_CALLBACK (pk_client_signal_cb),
+						      state);
 		g_object_unref (G_OBJECT (state->proxy));
 	}
 
@@ -4493,10 +4870,11 @@ pk_client_get_progress_state_finish (PkClientState *state, GError *error)
 		g_object_unref (G_OBJECT (state->proxy_props));
 
 	if (state->ret) {
-		g_simple_async_result_set_op_res_gpointer (state->res, g_object_ref (state->progress), g_object_unref);
+		g_simple_async_result_set_op_res_gpointer (state->res,
+							   g_object_ref (state->progress),
+							   g_object_unref);
 	} else {
 		g_simple_async_result_set_from_error (state->res, error);
-		g_error_free (error);
 	}
 
 	/* remove from list */
@@ -4517,30 +4895,24 @@ pk_client_get_progress_state_finish (PkClientState *state, GError *error)
  * pk_client_get_progress_cb:
  **/
 static void
-pk_client_get_progress_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkClientState *state)
+pk_client_get_progress_cb (GObject *source_object,
+			   GAsyncResult *res,
+			   gpointer user_data)
 {
 	GError *error = NULL;
-	GHashTable *hash;
+	PkClientState *state = (PkClientState *) user_data;
 
-	/* get the result */
-	state->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 (!state->ret) {
+	state->proxy = g_dbus_proxy_new_for_bus_finish (res, &error);
+	if (state->proxy == NULL) {
 		pk_client_get_progress_state_finish (state, error);
+		g_error_free (error);
 		return;
 	}
 
-	/* finished this call */
-	state->call = NULL;
+	/* connect */
+	pk_client_proxy_connect (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 done */
+	state->ret = TRUE;
 	pk_client_get_progress_state_finish (state, NULL);
 }
 
@@ -4557,8 +4929,11 @@ pk_client_get_progress_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkClientStat
  * Since: 0.5.2
  **/
 void
-pk_client_get_progress_async (PkClient *client, const gchar *transaction_id, GCancellable *cancellable,
-			      GAsyncReadyCallback callback_ready, gpointer user_data)
+pk_client_get_progress_async (PkClient *client,
+			      const gchar *transaction_id,
+			      GCancellable *cancellable,
+			      GAsyncReadyCallback callback_ready,
+			      gpointer user_data)
 {
 	GSimpleAsyncResult *res;
 	PkClientState *state;
@@ -4574,15 +4949,20 @@ pk_client_get_progress_async (PkClient *client, const gchar *transaction_id, GCa
 	state = g_slice_new0 (PkClientState);
 	state->res = g_object_ref (res);
 	state->client = g_object_ref (client);
+	state->cancellable = g_cancellable_new ();
 	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->cancellable_client = g_object_ref (cancellable);
+		state->cancellable_id = g_cancellable_connect (cancellable,
+							       G_CALLBACK (pk_client_cancellable_cancel_cb),
+							       state,
+							       NULL);
 	}
 	state->tid = g_strdup (transaction_id);
 	state->progress = pk_progress_new ();
 
 	/* check not already cancelled */
-	if (cancellable != NULL && g_cancellable_set_error_if_cancelled (cancellable, &error)) {
+	if (cancellable != NULL &&
+	    g_cancellable_set_error_if_cancelled (cancellable, &error)) {
 		pk_client_state_finish (state, error);
 		g_error_free (error);
 		goto out;
@@ -4592,31 +4972,15 @@ pk_client_get_progress_async (PkClient *client, const gchar *transaction_id, GCa
 	pk_progress_set_transaction_id (state->progress, state->tid);
 
 	/* 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)
-		g_error ("Cannot connect to PackageKit on %s", state->tid);
-
-	/* don't timeout, as dbus-glib sets the timeout ~25 seconds */
-	dbus_g_proxy_set_default_timeout (state->proxy, INT_MAX);
-
-	/* 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)
-		g_error ("Cannot connect to PackageKit on %s", state->tid);
-
-	/* timeout if we fail to get properties */
-	dbus_g_proxy_set_default_timeout (state->proxy_props, PK_CLIENT_DBUS_METHOD_TIMEOUT);
-
-	/* call D-Bus get_properties async */
-	state->call = dbus_g_proxy_begin_call (state->proxy_props, "GetAll",
-					       (DBusGProxyCallNotify) pk_client_get_progress_cb, state, NULL,
-					       G_TYPE_STRING, "org.freedesktop.PackageKit.Transaction",
-					       G_TYPE_INVALID);
-	if (state->call == NULL)
-		g_error ("failed to setup call, maybe OOM or no connection");
+	g_dbus_proxy_new_for_bus (G_BUS_TYPE_SYSTEM,
+				  G_DBUS_PROXY_FLAGS_NONE,
+				  NULL,
+				  PK_DBUS_SERVICE,
+				  state->tid,
+				  PK_DBUS_INTERFACE_TRANSACTION,
+				  state->cancellable,
+				  pk_client_get_progress_cb,
+				  state);
 
 	/* track state */
 	pk_client_state_add (client, state);
@@ -4624,7 +4988,7 @@ out:
 	g_object_unref (res);
 }
 
-/***************************************************************************************************/
+/**********************************************************************/
 
 /**
  * pk_client_cancel_all_dbus_methods:
@@ -4640,10 +5004,10 @@ pk_client_cancel_all_dbus_methods (PkClient *client)
 	array = client->priv->calls;
 	for (i=0; i<array->len; i++) {
 		state = g_ptr_array_index (array, i);
-		if (state->call == NULL)
+		if (state->proxy == NULL)
 			continue;
 		g_debug ("cancel in flight call");
-		dbus_g_proxy_cancel_call (state->proxy, state->call);
+		g_cancellable_cancel (state->cancellable);
 	}
 
 	return TRUE;
@@ -4877,7 +5241,6 @@ pk_client_class_init (PkClientClass *klass)
 static void
 pk_client_init (PkClient *client)
 {
-	GError *error = NULL;
 	client->priv = PK_CLIENT_GET_PRIVATE (client);
 	client->priv->calls = g_ptr_array_new ();
 	client->priv->background = FALSE;
@@ -4885,84 +5248,9 @@ pk_client_init (PkClient *client)
 	client->priv->idle = TRUE;
 	client->priv->cache_age = 0;
 
-	/* check dbus connections, exit if not valid */
-	client->priv->connection = dbus_g_bus_get (DBUS_BUS_SYSTEM, &error);
-	if (error != NULL) {
-		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 ();
 
-	/* 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);
-
-	/* 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);
-
-	/* 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);
-	/* ItemProgress */
-	dbus_g_object_register_marshaller (pk_marshal_VOID__STRING_UINT,
-					   G_TYPE_NONE, G_TYPE_STRING, G_TYPE_UINT, G_TYPE_INVALID);
-
 	/* cache locale */
 	client->priv->locale = 	g_strdup (setlocale (LC_MESSAGES, NULL));
 }
diff --git a/lib/packagekit-glib2/pk-control.c b/lib/packagekit-glib2/pk-control.c
index 885327e..dd08b5e 100644
--- a/lib/packagekit-glib2/pk-control.c
+++ b/lib/packagekit-glib2/pk-control.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-2011 Richard Hughes <richard at hughsie.com>
  *
  * Licensed under the GNU Lesser General Public License Version 2.1
  *
@@ -30,7 +30,6 @@
 
 #include <string.h>
 #include <glib-object.h>
-#include <dbus/dbus-glib.h>
 #include <gio/gio.h>
 
 #include <packagekit-glib2/pk-bitfield.h>
@@ -51,12 +50,9 @@ static void     pk_control_finalize	(GObject     *object);
  **/
 struct _PkControlPrivate
 {
-	DBusGProxyCall		*call_get_properties;
+	GCancellable		*cancellable;
 	GPtrArray		*calls;
-	DBusGProxy		*proxy;
-	DBusGProxy		*proxy_props;
-	DBusGProxy		*proxy_dbus;
-	DBusGConnection		*connection;
+	GDBusProxy		*proxy;
 	guint			 version_major;
 	guint			 version_minor;
 	guint			 version_micro;
@@ -75,6 +71,7 @@ struct _PkControlPrivate
 	guint			 restart_schedule_id;
 	guint			 updates_changed_id;
 	guint			 repo_list_changed_id;
+	guint			 watch_id;
 };
 
 enum {
@@ -116,12 +113,14 @@ typedef struct {
 	gchar			*daemon_state;
 	guint			 time;
 	gulong			 cancellable_id;
-	DBusGProxyCall		*call;
+	GCancellable		*call;
 	GCancellable		*cancellable;
 	GSimpleAsyncResult	*res;
 	PkAuthorizeEnum		 authorize;
 	PkControl		*control;
 	PkNetworkEnum		 network;
+	GVariant		*parameters;
+	GDBusProxy		*proxy;
 } PkControlState;
 
 /**
@@ -154,27 +153,254 @@ pk_control_fixup_dbus_error (GError *error)
 	error->domain = PK_CONTROL_ERROR;
 
 	/* find a better failure code */
-	if (error->code == DBUS_GERROR_SPAWN_CHILD_EXITED)
+	if (error->code == 0)
 		error->code = PK_CONTROL_ERROR_CANNOT_START_DAEMON;
 	else
 		error->code = PK_CONTROL_ERROR_FAILED;
 }
 
 /**
- * pk_control_cancellable_cancel_cb:
+ * pk_control_set_property_value:
+ **/
+static void
+pk_control_set_property_value (PkControl *control,
+			       const gchar *key,
+			       GVariant *value)
+{
+	const gchar *tmp_str;
+	gboolean tmp_bool;
+	guint tmp_uint;
+	PkBitfield tmp_bitfield;
+
+	if (g_strcmp0 (key, "VersionMajor") == 0) {
+		tmp_uint = g_variant_get_uint32 (value);
+		if (control->priv->version_major == tmp_uint)
+			return;
+		control->priv->version_major = tmp_uint;
+		g_object_notify (G_OBJECT(control), "version-major");
+		return;
+	}
+	if (g_strcmp0 (key, "VersionMinor") == 0) {
+		tmp_uint = g_variant_get_uint32 (value);
+		if (control->priv->version_minor == tmp_uint)
+			return;
+		control->priv->version_minor = tmp_uint;
+		g_object_notify (G_OBJECT(control), "version-minor");
+		return;
+	}
+	if (g_strcmp0 (key, "VersionMicro") == 0) {
+		tmp_uint = g_variant_get_uint32 (value);
+		if (control->priv->version_micro == tmp_uint)
+			return;
+		control->priv->version_micro = tmp_uint;
+		g_object_notify (G_OBJECT(control), "version-micro");
+		return;
+	}
+	if (g_strcmp0 (key, "BackendName") == 0) {
+		tmp_str = g_variant_get_string (value, NULL);
+		if (g_strcmp0 (control->priv->backend_name, tmp_str) == 0)
+			return;
+		g_free (control->priv->backend_name);
+		control->priv->backend_name = g_strdup (tmp_str);
+		g_object_notify (G_OBJECT(control), "backend-name");
+		return;
+	}
+	if (g_strcmp0 (key, "BackendDescription") == 0) {
+		tmp_str = g_variant_get_string (value, NULL);
+		if (g_strcmp0 (control->priv->backend_description, tmp_str) == 0)
+			return;
+		g_free (control->priv->backend_description);
+		control->priv->backend_description = g_strdup (tmp_str);
+		g_object_notify (G_OBJECT(control), "backend-description");
+		return;
+	}
+	if (g_strcmp0 (key, "BackendAuthor") == 0) {
+		tmp_str = g_variant_get_string (value, NULL);
+		if (g_strcmp0 (control->priv->backend_author, tmp_str) == 0)
+			return;
+		g_free (control->priv->backend_author);
+		control->priv->backend_author = g_strdup (tmp_str);
+		g_object_notify (G_OBJECT(control), "backend-author");
+		return;
+	}
+	if (g_strcmp0 (key, "MimeTypes") == 0) {
+		tmp_str = g_variant_get_string (value, NULL);
+		if (g_strcmp0 (control->priv->mime_types, tmp_str) == 0)
+			return;
+		g_free (control->priv->mime_types);
+		control->priv->mime_types = g_strdup (tmp_str);
+		g_object_notify (G_OBJECT(control), "mime-types");
+		return;
+	}
+	if (g_strcmp0 (key, "Roles") == 0) {
+		tmp_str = g_variant_get_string (value, NULL);
+		tmp_bitfield = pk_role_bitfield_from_string (tmp_str);
+		if (control->priv->roles == tmp_bitfield)
+			return;
+		control->priv->roles = tmp_bitfield;
+		g_object_notify (G_OBJECT(control), "roles");
+		return;
+	}
+	if (g_strcmp0 (key, "Groups") == 0) {
+		tmp_str = g_variant_get_string (value, NULL);
+		tmp_bitfield = pk_group_bitfield_from_string (tmp_str);
+		if (control->priv->groups == tmp_bitfield)
+			return;
+		control->priv->groups = tmp_bitfield;
+		g_object_notify (G_OBJECT(control), "groups");
+		return;
+	}
+	if (g_strcmp0 (key, "Filters") == 0) {
+		tmp_str = g_variant_get_string (value, NULL);
+		tmp_bitfield = pk_filter_bitfield_from_string (tmp_str);
+		if (control->priv->filters == tmp_bitfield)
+			return;
+		control->priv->filters = tmp_bitfield;
+		g_object_notify (G_OBJECT(control), "filters");
+		return;
+	}
+	if (g_strcmp0 (key, "Locked") == 0) {
+		tmp_bool = g_variant_get_boolean (value);
+		if (control->priv->locked == tmp_bool)
+			return;
+		control->priv->locked = tmp_bool;
+		g_object_notify (G_OBJECT(control), "locked");
+		return;
+	}
+	if (g_strcmp0 (key, "NetworkState") == 0) {
+		tmp_str = g_variant_get_string (value, NULL);
+		tmp_uint = pk_network_enum_from_string (tmp_str);
+		if (control->priv->network_state == tmp_uint)
+			return;
+		control->priv->network_state = tmp_uint;
+		g_object_notify (G_OBJECT(control), "network-state");
+		return;
+	}
+	if (g_strcmp0 (key, "DistroId") == 0) {
+		tmp_str = g_variant_get_string (value, NULL);
+		/* we don't want distro specific results in 'make check' */
+		if (g_getenv ("PK_SELF_TEST") != NULL)
+			tmp_str = "selftest;11.91;i686";
+		if (g_strcmp0 (control->priv->distro_id, tmp_str) == 0)
+			return;
+		g_free (control->priv->distro_id);
+		control->priv->distro_id = g_strdup (tmp_str);
+		g_object_notify (G_OBJECT(control), "distro-id");
+		return;
+	}
+	g_warning ("unhandled property '%s'", key);
+}
+
+/**
+ * pk_control_properties_changed_cb:
+ **/
+static void
+pk_control_properties_changed_cb (GDBusProxy *proxy,
+				  GVariant *changed_properties,
+				  const gchar* const  *invalidated_properties,
+				  gpointer user_data)
+{
+	const gchar *key;
+	GVariantIter *iter;
+	GVariant *value;
+	PkControl *control = PK_CONTROL (user_data);
+
+	if (g_variant_n_children (changed_properties) > 0) {
+		g_variant_get (changed_properties,
+				"a{sv}",
+				&iter);
+		while (g_variant_iter_loop (iter, "{&sv}", &key, &value))
+			pk_control_set_property_value (control, key, value);
+		g_variant_iter_free (iter);
+	}
+}
+
+/**
+ * pk_control_signal_cb:
+ **/
+static void
+pk_control_signal_cb (GDBusProxy *proxy,
+		      const gchar *sender_name,
+		      const gchar *signal_name,
+		      GVariant *parameters,
+		      gpointer user_data)
+{
+	const gchar **ids_tmp;
+	gchar **ids = NULL;
+	PkControl *control = PK_CONTROL (user_data);
+
+	if (g_strcmp0 (signal_name, "TransactionListChanged") == 0) {
+		g_variant_get (parameters, "(^a&s)", &ids_tmp);
+		if (ids_tmp == NULL) {
+			ids = g_new0 (gchar *, 1);
+		} else {
+			ids = g_strdupv ((gchar **) ids_tmp);
+		}
+		g_debug ("emit transaction-list-changed");
+		g_signal_emit (control,
+			       signals[SIGNAL_TRANSACTION_LIST_CHANGED], 0,
+			       ids);
+	}
+	if (g_strcmp0 (signal_name, "UpdatesChanged") == 0) {
+		g_debug ("emit updates-changed");
+		g_signal_emit (control, signals[SIGNAL_UPDATES_CHANGED], 0);
+		goto out;
+	}
+	if (g_strcmp0 (signal_name, "RepoListChanged") == 0) {
+		g_debug ("emit repo-list-changed");
+		g_signal_emit (control, signals[SIGNAL_REPO_LIST_CHANGED], 0);
+		goto out;
+	}
+	if (g_strcmp0 (signal_name, "Changed") == 0) {
+		g_warning ("do something?");
+		goto out;
+	}
+	if (g_strcmp0 (signal_name, "RestartSchedule") == 0) {
+		g_debug ("emit restart-schedule");
+		g_signal_emit (control, signals[SIGNAL_RESTART_SCHEDULE], 0);
+		goto out;
+	}
+out:
+	g_strfreev (ids);
+}
+
+/**
+ * pk_control_proxy_connect:
  **/
 static void
-pk_control_cancellable_cancel_cb (GCancellable *cancellable, PkControlState *state)
+pk_control_proxy_connect (PkControlState *state)
 {
-	/* dbus method is pending now, just cancel both */
-	if (state->call != NULL) {
-		dbus_g_proxy_cancel_call (state->control->priv->proxy, state->call);
-		dbus_g_proxy_cancel_call (state->control->priv->proxy_props, state->call);
-		state->call = NULL;
+	gchar **props = NULL;
+	guint i;
+	GVariant *value_tmp;
+
+	/* coldplug properties */
+	props = g_dbus_proxy_get_cached_property_names (state->proxy);
+	for (i = 0; props[i] != NULL; i++) {
+		value_tmp = g_dbus_proxy_get_cached_property (state->proxy,
+							      props[i]);
+		pk_control_set_property_value (state->control,
+					       props[i],
+					       value_tmp);
+		g_variant_unref (value_tmp);
 	}
+
+	/* connect up signals */
+	g_signal_connect (state->proxy, "g-properties-changed",
+			  G_CALLBACK (pk_control_properties_changed_cb),
+			  state->control);
+	g_signal_connect (state->proxy, "g-signal",
+			  G_CALLBACK (pk_control_signal_cb),
+			  state->control);
+
+	/* if we have no generic system wide proxy, then use this */
+	if (state->control->priv->proxy == NULL)
+		state->control->priv->proxy = g_object_ref (state->proxy);
+
+	g_strfreev (props);
 }
 
-/***************************************************************************************************/
+/**********************************************************************/
 
 /**
  * pk_control_get_tid_state_finish:
@@ -184,7 +410,9 @@ pk_control_get_tid_state_finish (PkControlState *state, const GError *error)
 {
 	/* get result */
 	if (state->tid != NULL) {
-		g_simple_async_result_set_op_res_gpointer (state->res, 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->res, error);
 	}
@@ -197,12 +425,15 @@ pk_control_get_tid_state_finish (PkControlState *state, const GError *error)
 
 	/* deallocate */
 	if (state->cancellable != NULL) {
-		g_cancellable_disconnect (state->cancellable, state->cancellable_id);
+		g_cancellable_disconnect (state->cancellable,
+					  state->cancellable_id);
 		g_object_unref (state->cancellable);
 	}
 	g_free (state->tid);
 	g_object_unref (state->res);
 	g_object_unref (state->control);
+	if (state->proxy != NULL)
+		g_object_unref (state->proxy);
 	g_slice_free (PkControlState, state);
 }
 
@@ -210,45 +441,70 @@ pk_control_get_tid_state_finish (PkControlState *state, const GError *error)
  * pk_control_get_tid_cb:
  **/
 static void
-pk_control_get_tid_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkControlState *state)
+pk_control_get_tid_cb (GObject *source_object,
+		       GAsyncResult *res,
+		       gpointer user_data)
 {
 	GError *error = NULL;
-	gchar *tid = NULL;
-	gboolean ret;
-
-	/* finished this call */
-	state->call = NULL;
+	GVariant *value;
+	GDBusProxy *proxy = G_DBUS_PROXY (source_object);
+	PkControlState *state = (PkControlState *) user_data;
 
 	/* get the result */
-	ret = dbus_g_proxy_end_call (proxy, call, &error,
-				     G_TYPE_STRING, &tid,
-				     G_TYPE_INVALID);
-	if (!ret) {
+	value = g_dbus_proxy_call_finish (proxy, res, &error);
+	if (value == NULL) {
 		/* fix up the D-Bus error */
 		pk_control_fixup_dbus_error (error);
-		g_warning ("failed: %s", error->message);
 		pk_control_get_tid_state_finish (state, error);
 		g_error_free (error);
 		goto out;
 	}
 
 	/* save results */
-	state->tid = g_strdup (tid);
+	g_variant_get (value, "(s)", &state->tid);
 
 	/* we're done */
 	pk_control_get_tid_state_finish (state, NULL);
 out:
-	g_free (tid);
+	if (value != NULL)
+		g_variant_unref (value);
 }
 
 /**
- * pk_control_call_destroy_cb:
+ * pk_control_get_tid_internal:
  **/
 static void
-pk_control_call_destroy_cb (PkControlState *state)
+pk_control_get_tid_internal (PkControlState *state)
 {
-	if (state->call != NULL)
-		g_warning ("%p was destroyed before it was cleared", state->call);
+	g_dbus_proxy_call (state->control->priv->proxy,
+			   "GetTid",
+			   NULL,
+			   G_DBUS_CALL_FLAGS_NONE,
+			   PK_CONTROL_DBUS_METHOD_TIMEOUT,
+			   state->cancellable,
+			   pk_control_get_tid_cb,
+			   state);
+}
+
+/**
+ * pk_control_get_tid_proxy_cb:
+ **/
+static void
+pk_control_get_tid_proxy_cb (GObject *source_object,
+			     GAsyncResult *res,
+			     gpointer user_data)
+{
+	GError *error = NULL;
+	PkControlState *state = (PkControlState *) user_data;
+
+	state->proxy = g_dbus_proxy_new_for_bus_finish (res, &error);
+	if (state->proxy == NULL) {
+		pk_control_get_tid_state_finish (state, error);
+		g_error_free (error);
+		return;
+	}
+	pk_control_proxy_connect (state);
+	pk_control_get_tid_internal (state);
 }
 
 /**
@@ -263,7 +519,10 @@ pk_control_call_destroy_cb (PkControlState *state)
  * Since: 0.5.2
  **/
 void
-pk_control_get_tid_async (PkControl *control, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data)
+pk_control_get_tid_async (PkControl *control,
+			  GCancellable *cancellable,
+			  GAsyncReadyCallback callback,
+			  gpointer user_data)
 {
 	GSimpleAsyncResult *res;
 	PkControlState *state;
@@ -273,30 +532,40 @@ pk_control_get_tid_async (PkControl *control, GCancellable *cancellable, GAsyncR
 	g_return_if_fail (callback != NULL);
 	g_return_if_fail (cancellable == NULL || G_IS_CANCELLABLE (cancellable));
 
-	res = 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->res = g_object_ref (res);
 	state->control = g_object_ref (control);
-	if (cancellable != NULL) {
+	if (cancellable != NULL)
 		state->cancellable = g_object_ref (cancellable);
-		state->cancellable_id = g_cancellable_connect (cancellable, G_CALLBACK (pk_control_cancellable_cancel_cb), state, NULL);
-	}
 
 	/* check not already cancelled */
-	if (cancellable != NULL && g_cancellable_set_error_if_cancelled (cancellable, &error)) {
+	if (cancellable != NULL &&
+	    g_cancellable_set_error_if_cancelled (cancellable, &error)) {
 		pk_control_get_tid_state_finish (state, error);
 		g_error_free (error);
 		goto out;
 	}
 
-	/* call D-Bus method async */
-	state->call = dbus_g_proxy_begin_call (control->priv->proxy, "GetTid",
-					       (DBusGProxyCallNotify) pk_control_get_tid_cb, state,
-					       (GDestroyNotify) pk_control_call_destroy_cb, G_TYPE_INVALID);
-	if (state->call == NULL)
-		g_error ("failed to setup call, maybe OOM or no connection");
+	/* skip straight to the D-Bus method if already connection */
+	if (control->priv->proxy != NULL) {
+		pk_control_get_tid_internal (state);
+	} else {
+		g_dbus_proxy_new_for_bus (G_BUS_TYPE_SYSTEM,
+					  G_DBUS_PROXY_FLAGS_NONE,
+					  NULL,
+					  PK_DBUS_SERVICE,
+					  PK_DBUS_PATH,
+					  PK_DBUS_INTERFACE,
+					  control->priv->cancellable,
+					  pk_control_get_tid_proxy_cb,
+					  state);
+	}
 
 	/* track state */
 	g_ptr_array_add (control->priv->calls, state);
@@ -317,7 +586,9 @@ out:
  * Since: 0.5.2
  **/
 gchar *
-pk_control_get_tid_finish (PkControl *control, GAsyncResult *res, GError **error)
+pk_control_get_tid_finish (PkControl *control,
+			   GAsyncResult *res,
+			   GError **error)
 {
 	GSimpleAsyncResult *simple;
 	gpointer source_tag;
@@ -337,17 +608,20 @@ pk_control_get_tid_finish (PkControl *control, GAsyncResult *res, GError **error
 	return g_strdup (g_simple_async_result_get_op_res_gpointer (simple));
 }
 
-/***************************************************************************************************/
+/**********************************************************************/
+
 
 /**
  * pk_control_suggest_daemon_quit_state_finish:
  **/
 static void
-pk_control_suggest_daemon_quit_state_finish (PkControlState *state, const GError *error)
+pk_control_suggest_daemon_quit_state_finish (PkControlState *state,
+					     const GError *error)
 {
 	/* get result */
 	if (state->ret) {
-		g_simple_async_result_set_op_res_gboolean (state->res, 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);
 	}
@@ -360,11 +634,14 @@ pk_control_suggest_daemon_quit_state_finish (PkControlState *state, const GError
 
 	/* deallocate */
 	if (state->cancellable != NULL) {
-		g_cancellable_disconnect (state->cancellable, state->cancellable_id);
+		g_cancellable_disconnect (state->cancellable,
+					  state->cancellable_id);
 		g_object_unref (state->cancellable);
 	}
 	g_object_unref (state->res);
 	g_object_unref (state->control);
+	if (state->proxy != NULL)
+		g_object_unref (state->proxy);
 	g_slice_free (PkControlState, state);
 }
 
@@ -372,20 +649,18 @@ pk_control_suggest_daemon_quit_state_finish (PkControlState *state, const GError
  * pk_control_suggest_daemon_quit_cb:
  **/
 static void
-pk_control_suggest_daemon_quit_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkControlState *state)
+pk_control_suggest_daemon_quit_cb (GObject *source_object,
+				   GAsyncResult *res,
+				   gpointer user_data)
 {
 	GError *error = NULL;
-	gchar *tid = NULL;
-	gboolean ret;
-
-	/* finished this call */
-	state->call = NULL;
+	GVariant *value;
+	GDBusProxy *proxy = G_DBUS_PROXY (source_object);
+	PkControlState *state = (PkControlState *) user_data;
 
 	/* get the result */
-	ret = dbus_g_proxy_end_call (proxy, call, &error,
-				     G_TYPE_INVALID);
-	if (!ret) {
-		g_warning ("failed to suggest quit: %s", error->message);
+	value = g_dbus_proxy_call_finish (proxy, res, &error);
+	if (value == NULL) {
 		pk_control_suggest_daemon_quit_state_finish (state, error);
 		g_error_free (error);
 		goto out;
@@ -397,7 +672,45 @@ pk_control_suggest_daemon_quit_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkCo
 	/* we're done */
 	pk_control_suggest_daemon_quit_state_finish (state, NULL);
 out:
-	g_free (tid);
+	if (value != NULL)
+		g_variant_unref (value);
+}
+
+/**
+ * pk_control_suggest_daemon_quit_internal:
+ **/
+static void
+pk_control_suggest_daemon_quit_internal (PkControlState *state)
+{
+	g_dbus_proxy_call (state->control->priv->proxy,
+			   "SuggestDaemonQuit",
+			   NULL,
+			   G_DBUS_CALL_FLAGS_NONE,
+			   PK_CONTROL_DBUS_METHOD_TIMEOUT,
+			   state->cancellable,
+			   pk_control_suggest_daemon_quit_cb,
+			   state);
+}
+
+/**
+ * pk_control_suggest_daemon_quit_proxy_cb:
+ **/
+static void
+pk_control_suggest_daemon_quit_proxy_cb (GObject *source_object,
+					 GAsyncResult *res,
+					 gpointer user_data)
+{
+	GError *error = NULL;
+	PkControlState *state = (PkControlState *) user_data;
+
+	state->proxy = g_dbus_proxy_new_for_bus_finish (res, &error);
+	if (state->proxy == NULL) {
+		pk_control_suggest_daemon_quit_state_finish (state, error);
+		g_error_free (error);
+		return;
+	}
+	pk_control_proxy_connect (state);
+	pk_control_suggest_daemon_quit_internal (state);
 }
 
 /**
@@ -412,7 +725,10 @@ out:
  * Since: 0.6.2
  **/
 void
-pk_control_suggest_daemon_quit_async (PkControl *control, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data)
+pk_control_suggest_daemon_quit_async (PkControl *control,
+				      GCancellable *cancellable,
+				      GAsyncReadyCallback callback,
+				      gpointer user_data)
 {
 	GSimpleAsyncResult *res;
 	PkControlState *state;
@@ -422,30 +738,40 @@ pk_control_suggest_daemon_quit_async (PkControl *control, GCancellable *cancella
 	g_return_if_fail (callback != NULL);
 	g_return_if_fail (cancellable == NULL || G_IS_CANCELLABLE (cancellable));
 
-	res = g_simple_async_result_new (G_OBJECT (control), callback, user_data, pk_control_suggest_daemon_quit_async);
+	res = g_simple_async_result_new (G_OBJECT (control),
+					 callback,
+					 user_data,
+					 pk_control_suggest_daemon_quit_async);
 
 	/* save state */
 	state = g_slice_new0 (PkControlState);
 	state->res = g_object_ref (res);
 	state->control = g_object_ref (control);
-	if (cancellable != NULL) {
+	if (cancellable != NULL)
 		state->cancellable = g_object_ref (cancellable);
-		state->cancellable_id = g_cancellable_connect (cancellable, G_CALLBACK (pk_control_cancellable_cancel_cb), state, NULL);
-	}
 
 	/* check not already cancelled */
-	if (cancellable != NULL && g_cancellable_set_error_if_cancelled (cancellable, &error)) {
+	if (cancellable != NULL &&
+	    g_cancellable_set_error_if_cancelled (cancellable, &error)) {
 		pk_control_suggest_daemon_quit_state_finish (state, error);
 		g_error_free (error);
 		goto out;
 	}
 
-	/* call D-Bus method async */
-	state->call = dbus_g_proxy_begin_call (control->priv->proxy, "SuggestDaemonQuit",
-					       (DBusGProxyCallNotify) pk_control_suggest_daemon_quit_cb, state,
-					       NULL, G_TYPE_INVALID);
-	if (state->call == NULL)
-		g_error ("failed to setup call, maybe OOM or no connection");
+	/* skip straight to the D-Bus method if already connection */
+	if (control->priv->proxy != NULL) {
+		pk_control_suggest_daemon_quit_internal (state);
+	} else {
+		g_dbus_proxy_new_for_bus (G_BUS_TYPE_SYSTEM,
+					  G_DBUS_PROXY_FLAGS_NONE,
+					  NULL,
+					  PK_DBUS_SERVICE,
+					  PK_DBUS_PATH,
+					  PK_DBUS_INTERFACE,
+					  control->priv->cancellable,
+					  pk_control_suggest_daemon_quit_proxy_cb,
+					  state);
+	}
 
 	/* track state */
 	g_ptr_array_add (control->priv->calls, state);
@@ -486,7 +812,8 @@ pk_control_suggest_daemon_quit_finish (PkControl *control, GAsyncResult *res, GE
 	return g_simple_async_result_get_op_res_gboolean (simple);
 }
 
-/***************************************************************************************************/
+/**********************************************************************/
+
 
 /**
  * pk_control_get_daemon_state_state_finish:
@@ -496,7 +823,8 @@ pk_control_get_daemon_state_state_finish (PkControlState *state, const GError *e
 {
 	/* get result */
 	if (state->daemon_state != NULL) {
-		g_simple_async_result_set_op_res_gpointer (state->res, g_strdup (state->daemon_state), g_free);
+		g_simple_async_result_set_op_res_gpointer (state->res,
+							   g_strdup (state->daemon_state), g_free);
 	} else {
 		g_simple_async_result_set_from_error (state->res, error);
 	}
@@ -509,12 +837,15 @@ pk_control_get_daemon_state_state_finish (PkControlState *state, const GError *e
 
 	/* deallocate */
 	if (state->cancellable != NULL) {
-		g_cancellable_disconnect (state->cancellable, state->cancellable_id);
+		g_cancellable_disconnect (state->cancellable,
+					  state->cancellable_id);
 		g_object_unref (state->cancellable);
 	}
 	g_free (state->daemon_state);
 	g_object_unref (state->res);
 	g_object_unref (state->control);
+	if (state->proxy != NULL)
+		g_object_unref (state->proxy);
 	g_slice_free (PkControlState, state);
 }
 
@@ -522,35 +853,70 @@ pk_control_get_daemon_state_state_finish (PkControlState *state, const GError *e
  * pk_control_get_daemon_state_cb:
  **/
 static void
-pk_control_get_daemon_state_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkControlState *state)
+pk_control_get_daemon_state_cb (GObject *source_object,
+				   GAsyncResult *res,
+				   gpointer user_data)
 {
 	GError *error = NULL;
-	gchar *daemon_state = NULL;
-	gboolean ret;
-
-	/* finished this call */
-	state->call = NULL;
+	GVariant *value;
+	GDBusProxy *proxy = G_DBUS_PROXY (source_object);
+	PkControlState *state = (PkControlState *) user_data;
 
 	/* get the result */
-	ret = dbus_g_proxy_end_call (proxy, call, &error,
-				     G_TYPE_STRING, &daemon_state,
-				     G_TYPE_INVALID);
-	if (!ret) {
+	value = g_dbus_proxy_call_finish (proxy, res, &error);
+	if (value == NULL) {
 		/* fix up the D-Bus error */
 		pk_control_fixup_dbus_error (error);
-		g_warning ("failed: %s", error->message);
 		pk_control_get_daemon_state_state_finish (state, error);
 		g_error_free (error);
 		goto out;
 	}
 
 	/* save results */
-	state->daemon_state = g_strdup (daemon_state);
+	g_variant_get (value, "(s)", &state->daemon_state);
 
 	/* we're done */
 	pk_control_get_daemon_state_state_finish (state, NULL);
 out:
-	g_free (daemon_state);
+	if (value != NULL)
+		g_variant_unref (value);
+}
+
+/**
+ * pk_control_get_daemon_state_internal:
+ **/
+static void
+pk_control_get_daemon_state_internal (PkControlState *state)
+{
+	g_dbus_proxy_call (state->control->priv->proxy,
+			   "GetDaemonState",
+			   NULL,
+			   G_DBUS_CALL_FLAGS_NONE,
+			   PK_CONTROL_DBUS_METHOD_TIMEOUT,
+			   state->cancellable,
+			   pk_control_get_daemon_state_cb,
+			   state);
+}
+
+/**
+ * pk_control_get_daemon_state_proxy_cb:
+ **/
+static void
+pk_control_get_daemon_state_proxy_cb (GObject *source_object,
+			     GAsyncResult *res,
+			     gpointer user_data)
+{
+	GError *error = NULL;
+	PkControlState *state = (PkControlState *) user_data;
+
+	state->proxy = g_dbus_proxy_new_for_bus_finish (res, &error);
+	if (state->proxy == NULL) {
+		pk_control_get_daemon_state_state_finish (state, error);
+		g_error_free (error);
+		return;
+	}
+	pk_control_proxy_connect (state);
+	pk_control_get_daemon_state_internal (state);
 }
 
 /**
@@ -565,7 +931,10 @@ out:
  * Since: 0.5.2
  **/
 void
-pk_control_get_daemon_state_async (PkControl *control, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data)
+pk_control_get_daemon_state_async (PkControl *control,
+				   GCancellable *cancellable,
+				   GAsyncReadyCallback callback,
+				   gpointer user_data)
 {
 	GSimpleAsyncResult *res;
 	PkControlState *state;
@@ -575,30 +944,40 @@ pk_control_get_daemon_state_async (PkControl *control, GCancellable *cancellable
 	g_return_if_fail (callback != NULL);
 	g_return_if_fail (cancellable == NULL || G_IS_CANCELLABLE (cancellable));
 
-	res = g_simple_async_result_new (G_OBJECT (control), callback, user_data, pk_control_get_daemon_state_async);
+	res = g_simple_async_result_new (G_OBJECT (control),
+					 callback,
+					 user_data,
+					 pk_control_get_daemon_state_async);
 
 	/* save state */
 	state = g_slice_new0 (PkControlState);
 	state->res = g_object_ref (res);
 	state->control = g_object_ref (control);
-	if (cancellable != NULL) {
+	if (cancellable != NULL)
 		state->cancellable = g_object_ref (cancellable);
-		state->cancellable_id = g_cancellable_connect (cancellable, G_CALLBACK (pk_control_cancellable_cancel_cb), state, NULL);
-	}
 
 	/* check not already cancelled */
-	if (cancellable != NULL && g_cancellable_set_error_if_cancelled (cancellable, &error)) {
+	if (cancellable != NULL &&
+	    g_cancellable_set_error_if_cancelled (cancellable, &error)) {
 		pk_control_get_daemon_state_state_finish (state, error);
 		g_error_free (error);
 		goto out;
 	}
 
-	/* call D-Bus method async */
-	state->call = dbus_g_proxy_begin_call (control->priv->proxy, "GetDaemonState",
-					       (DBusGProxyCallNotify) pk_control_get_daemon_state_cb, state,
-					       NULL, G_TYPE_INVALID);
-	if (state->call == NULL)
-		g_error ("failed to setup call, maybe OOM or no connection");
+	/* skip straight to the D-Bus method if already connection */
+	if (control->priv->proxy != NULL) {
+		pk_control_get_daemon_state_internal (state);
+	} else {
+		g_dbus_proxy_new_for_bus (G_BUS_TYPE_SYSTEM,
+					  G_DBUS_PROXY_FLAGS_NONE,
+					  NULL,
+					  PK_DBUS_SERVICE,
+					  PK_DBUS_PATH,
+					  PK_DBUS_INTERFACE,
+					  control->priv->cancellable,
+					  pk_control_get_daemon_state_proxy_cb,
+					  state);
+	}
 
 	/* track state */
 	g_ptr_array_add (control->priv->calls, state);
@@ -619,7 +998,9 @@ out:
  * Since: 0.5.2
  **/
 gchar *
-pk_control_get_daemon_state_finish (PkControl *control, GAsyncResult *res, GError **error)
+pk_control_get_daemon_state_finish (PkControl *control,
+				    GAsyncResult *res,
+				    GError **error)
 {
 	GSimpleAsyncResult *simple;
 	gpointer source_tag;
@@ -639,17 +1020,20 @@ pk_control_get_daemon_state_finish (PkControl *control, GAsyncResult *res, GErro
 	return g_strdup (g_simple_async_result_get_op_res_gpointer (simple));
 }
 
-/***************************************************************************************************/
+/**********************************************************************/
+
 
 /**
  * pk_control_set_proxy_state_finish:
  **/
 static void
-pk_control_set_proxy_state_finish (PkControlState *state, const GError *error)
+pk_control_set_proxy_state_finish (PkControlState *state,
+				   const GError *error)
 {
 	/* get result */
 	if (state->ret) {
-		g_simple_async_result_set_op_res_gboolean (state->res, 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);
 	}
@@ -662,11 +1046,15 @@ pk_control_set_proxy_state_finish (PkControlState *state, const GError *error)
 
 	/* deallocate */
 	if (state->cancellable != NULL) {
-		g_cancellable_disconnect (state->cancellable, state->cancellable_id);
+		g_cancellable_disconnect (state->cancellable,
+					  state->cancellable_id);
 		g_object_unref (state->cancellable);
 	}
 	g_object_unref (state->res);
 	g_object_unref (state->control);
+	if (state->proxy != NULL)
+		g_object_unref (state->proxy);
+	g_variant_unref (state->parameters);
 	g_slice_free (PkControlState, state);
 }
 
@@ -674,19 +1062,18 @@ pk_control_set_proxy_state_finish (PkControlState *state, const GError *error)
  * pk_control_set_proxy_cb:
  **/
 static void
-pk_control_set_proxy_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkControlState *state)
+pk_control_set_proxy_cb (GObject *source_object,
+				   GAsyncResult *res,
+				   gpointer user_data)
 {
 	GError *error = NULL;
-	gchar *tid = NULL;
-	gboolean ret;
-
-	/* finished this call */
-	state->call = NULL;
+	GVariant *value;
+	GDBusProxy *proxy = G_DBUS_PROXY (source_object);
+	PkControlState *state = (PkControlState *) user_data;
 
 	/* get the result */
-	ret = dbus_g_proxy_end_call (proxy, call, &error,
-				     G_TYPE_INVALID);
-	if (!ret) {
+	value = g_dbus_proxy_call_finish (proxy, res, &error);
+	if (value == NULL) {
 		g_warning ("failed to set proxy: %s", error->message);
 		pk_control_set_proxy_state_finish (state, error);
 		g_error_free (error);
@@ -699,7 +1086,45 @@ pk_control_set_proxy_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkControlState
 	/* we're done */
 	pk_control_set_proxy_state_finish (state, NULL);
 out:
-	g_free (tid);
+	if (value != NULL)
+		g_variant_unref (value);
+}
+
+/**
+ * pk_control_set_proxy_internal:
+ **/
+static void
+pk_control_set_proxy_internal (PkControlState *state)
+{
+	g_dbus_proxy_call (state->control->priv->proxy,
+			   "SetProxy",
+			   state->parameters,
+			   G_DBUS_CALL_FLAGS_NONE,
+			   PK_CONTROL_DBUS_METHOD_TIMEOUT,
+			   state->cancellable,
+			   pk_control_set_proxy_cb,
+			   state);
+}
+
+/**
+ * pk_control_set_proxy_proxy_cb:
+ **/
+static void
+pk_control_set_proxy_proxy_cb (GObject *source_object,
+			     GAsyncResult *res,
+			     gpointer user_data)
+{
+	GError *error = NULL;
+	PkControlState *state = (PkControlState *) user_data;
+
+	state->proxy = g_dbus_proxy_new_for_bus_finish (res, &error);
+	if (state->proxy == NULL) {
+		pk_control_set_proxy_state_finish (state, error);
+		g_error_free (error);
+		return;
+	}
+	pk_control_proxy_connect (state);
+	pk_control_set_proxy_internal (state);
 }
 
 /**
@@ -739,36 +1164,47 @@ pk_control_set_proxy2_async (PkControl *control,
 	g_return_if_fail (callback != NULL);
 	g_return_if_fail (cancellable == NULL || G_IS_CANCELLABLE (cancellable));
 
-	res = g_simple_async_result_new (G_OBJECT (control), callback, user_data, pk_control_set_proxy_async);
+	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->control = g_object_ref (control);
-	if (cancellable != NULL) {
+	state->parameters = g_variant_new ("(ssssss)",
+					   proxy_http,
+					   proxy_https,
+					   proxy_ftp,
+					   proxy_socks,
+					   no_proxy,
+					   pac);
+	if (cancellable != NULL)
 		state->cancellable = g_object_ref (cancellable);
-		state->cancellable_id = g_cancellable_connect (cancellable, G_CALLBACK (pk_control_cancellable_cancel_cb), state, NULL);
-	}
 
 	/* check not already cancelled */
-	if (cancellable != NULL && g_cancellable_set_error_if_cancelled (cancellable, &error)) {
+	if (cancellable != NULL &&
+	    g_cancellable_set_error_if_cancelled (cancellable, &error)) {
 		pk_control_set_proxy_state_finish (state, error);
 		g_error_free (error);
 		goto out;
 	}
 
-	/* 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_https,
-					       G_TYPE_STRING, proxy_ftp,
-					       G_TYPE_STRING, proxy_socks,
-					       G_TYPE_STRING, no_proxy,
-					       G_TYPE_STRING, pac,
-					       G_TYPE_INVALID);
-	if (state->call == NULL)
-		g_error ("failed to setup call, maybe OOM or no connection");
+	/* skip straight to the D-Bus method if already connection */
+	if (control->priv->proxy != NULL) {
+		pk_control_set_proxy_internal (state);
+	} else {
+		g_dbus_proxy_new_for_bus (G_BUS_TYPE_SYSTEM,
+					  G_DBUS_PROXY_FLAGS_NONE,
+					  NULL,
+					  PK_DBUS_SERVICE,
+					  PK_DBUS_PATH,
+					  PK_DBUS_INTERFACE,
+					  control->priv->cancellable,
+					  pk_control_set_proxy_proxy_cb,
+					  state);
+	}
 
 	/* track state */
 	g_ptr_array_add (control->priv->calls, state);
@@ -825,7 +1261,9 @@ pk_control_set_proxy_async (PkControl *control,
  * Since: 0.5.2
  **/
 gboolean
-pk_control_set_proxy_finish (PkControl *control, GAsyncResult *res, GError **error)
+pk_control_set_proxy_finish (PkControl *control,
+			     GAsyncResult *res,
+			     GError **error)
 {
 	GSimpleAsyncResult *simple;
 	gpointer source_tag;
@@ -845,7 +1283,7 @@ pk_control_set_proxy_finish (PkControl *control, GAsyncResult *res, GError **err
 	return g_simple_async_result_get_op_res_gboolean (simple);
 }
 
-/***************************************************************************************************/
+/**********************************************************************/
 
 /**
  * pk_control_set_root_state_finish:
@@ -855,7 +1293,8 @@ pk_control_set_root_state_finish (PkControlState *state, const GError *error)
 {
 	/* get result */
 	if (state->ret) {
-		g_simple_async_result_set_op_res_gboolean (state->res, 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);
 	}
@@ -868,11 +1307,15 @@ pk_control_set_root_state_finish (PkControlState *state, const GError *error)
 
 	/* deallocate */
 	if (state->cancellable != NULL) {
-		g_cancellable_disconnect (state->cancellable, state->cancellable_id);
+		g_cancellable_disconnect (state->cancellable,
+					  state->cancellable_id);
 		g_object_unref (state->cancellable);
 	}
 	g_object_unref (state->res);
 	g_object_unref (state->control);
+	if (state->proxy != NULL)
+		g_object_unref (state->proxy);
+	g_variant_unref (state->parameters);
 	g_slice_free (PkControlState, state);
 }
 
@@ -880,19 +1323,18 @@ pk_control_set_root_state_finish (PkControlState *state, const GError *error)
  * pk_control_set_root_cb:
  **/
 static void
-pk_control_set_root_cb (DBusGProxy *root, DBusGProxyCall *call, PkControlState *state)
+pk_control_set_root_cb (GObject *source_object,
+			GAsyncResult *res,
+			gpointer user_data)
 {
 	GError *error = NULL;
-	gchar *tid = NULL;
-	gboolean ret;
-
-	/* finished this call */
-	state->call = NULL;
+	GVariant *value;
+	GDBusProxy *proxy = G_DBUS_PROXY (source_object);
+	PkControlState *state = (PkControlState *) user_data;
 
 	/* get the result */
-	ret = dbus_g_proxy_end_call (root, call, &error,
-				     G_TYPE_INVALID);
-	if (!ret) {
+	value = g_dbus_proxy_call_finish (proxy, res, &error);
+	if (value == NULL) {
 		g_warning ("failed to set root: %s", error->message);
 		pk_control_set_root_state_finish (state, error);
 		g_error_free (error);
@@ -905,7 +1347,45 @@ pk_control_set_root_cb (DBusGProxy *root, DBusGProxyCall *call, PkControlState *
 	/* we're done */
 	pk_control_set_root_state_finish (state, NULL);
 out:
-	g_free (tid);
+	if (value != NULL)
+		g_variant_unref (value);
+}
+
+/**
+ * pk_control_set_root_internal:
+ **/
+static void
+pk_control_set_root_internal (PkControlState *state)
+{
+	g_dbus_proxy_call (state->control->priv->proxy,
+			   "SetRoot",
+			   state->parameters,
+			   G_DBUS_CALL_FLAGS_NONE,
+			   PK_CONTROL_DBUS_METHOD_TIMEOUT,
+			   state->cancellable,
+			   pk_control_set_root_cb,
+			   state);
+}
+
+/**
+ * pk_control_set_root_proxy_cb:
+ **/
+static void
+pk_control_set_root_proxy_cb (GObject *source_object,
+			     GAsyncResult *res,
+			     gpointer user_data)
+{
+	GError *error = NULL;
+	PkControlState *state = (PkControlState *) user_data;
+
+	state->proxy = g_dbus_proxy_new_for_bus_finish (res, &error);
+	if (state->proxy == NULL) {
+		pk_control_set_root_state_finish (state, error);
+		g_error_free (error);
+		return;
+	}
+	pk_control_proxy_connect (state);
+	pk_control_set_root_internal (state);
 }
 
 /**
@@ -921,8 +1401,11 @@ out:
  * Since: 0.6.4
  **/
 void
-pk_control_set_root_async (PkControl *control, const gchar *root, GCancellable *cancellable,
-			   GAsyncReadyCallback callback, gpointer user_data)
+pk_control_set_root_async (PkControl *control,
+			   const gchar *root,
+			   GCancellable *cancellable,
+			   GAsyncReadyCallback callback,
+			   gpointer user_data)
 {
 	GSimpleAsyncResult *res;
 	PkControlState *state;
@@ -932,31 +1415,41 @@ pk_control_set_root_async (PkControl *control, const gchar *root, GCancellable *
 	g_return_if_fail (callback != NULL);
 	g_return_if_fail (cancellable == NULL || G_IS_CANCELLABLE (cancellable));
 
-	res = g_simple_async_result_new (G_OBJECT (control), callback, user_data, pk_control_set_root_async);
+	res = g_simple_async_result_new (G_OBJECT (control),
+					 callback,
+					 user_data,
+					 pk_control_set_root_async);
 
 	/* save state */
 	state = g_slice_new0 (PkControlState);
 	state->res = g_object_ref (res);
 	state->control = g_object_ref (control);
-	if (cancellable != NULL) {
+	state->parameters = g_variant_new ("(s)", root);
+	if (cancellable != NULL)
 		state->cancellable = g_object_ref (cancellable);
-		state->cancellable_id = g_cancellable_connect (cancellable, G_CALLBACK (pk_control_cancellable_cancel_cb), state, NULL);
-	}
 
 	/* check not already cancelled */
-	if (cancellable != NULL && g_cancellable_set_error_if_cancelled (cancellable, &error)) {
+	if (cancellable != NULL &&
+	    g_cancellable_set_error_if_cancelled (cancellable, &error)) {
 		pk_control_set_root_state_finish (state, error);
 		g_error_free (error);
 		goto out;
 	}
 
-	/* call D-Bus set_root async */
-	state->call = dbus_g_proxy_begin_call (control->priv->proxy, "SetRoot",
-					       (DBusGProxyCallNotify) pk_control_set_root_cb, state, NULL,
-					       G_TYPE_STRING, root,
-					       G_TYPE_INVALID);
-	if (state->call == NULL)
-		g_error ("failed to setup call, maybe OOM or no connection");
+	/* skip straight to the D-Bus method if already connection */
+	if (control->priv->proxy != NULL) {
+		pk_control_set_root_internal (state);
+	} else {
+		g_dbus_proxy_new_for_bus (G_BUS_TYPE_SYSTEM,
+					  G_DBUS_PROXY_FLAGS_NONE,
+					  NULL,
+					  PK_DBUS_SERVICE,
+					  PK_DBUS_PATH,
+					  PK_DBUS_INTERFACE,
+					  control->priv->cancellable,
+					  pk_control_set_root_proxy_cb,
+					  state);
+	}
 
 	/* track state */
 	g_ptr_array_add (control->priv->calls, state);
@@ -977,7 +1470,9 @@ out:
  * Since: 0.6.4
  **/
 gboolean
-pk_control_set_root_finish (PkControl *control, GAsyncResult *res, GError **error)
+pk_control_set_root_finish (PkControl *control,
+			    GAsyncResult *res,
+			    GError **error)
 {
 	GSimpleAsyncResult *simple;
 	gpointer source_tag;
@@ -997,17 +1492,21 @@ pk_control_set_root_finish (PkControl *control, GAsyncResult *res, GError **erro
 	return g_simple_async_result_get_op_res_gboolean (simple);
 }
 
-/***************************************************************************************************/
+/**********************************************************************/
+
 
 /**
  * pk_control_get_transaction_list_state_finish:
  **/
 static void
-pk_control_get_transaction_list_state_finish (PkControlState *state, const GError *error)
+pk_control_get_transaction_list_state_finish (PkControlState *state,
+					      const GError *error)
 {
 	/* 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);
+		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);
 	}
@@ -1020,12 +1519,15 @@ pk_control_get_transaction_list_state_finish (PkControlState *state, const GErro
 
 	/* deallocate */
 	if (state->cancellable != NULL) {
-		g_cancellable_disconnect (state->cancellable, state->cancellable_id);
+		g_cancellable_disconnect (state->cancellable,
+					  state->cancellable_id);
 		g_object_unref (state->cancellable);
 	}
 	g_strfreev (state->transaction_list);
 	g_object_unref (state->res);
 	g_object_unref (state->control);
+	if (state->proxy != NULL)
+		g_object_unref (state->proxy);
 	g_slice_free (PkControlState, state);
 }
 
@@ -1033,35 +1535,77 @@ pk_control_get_transaction_list_state_finish (PkControlState *state, const GErro
  * pk_control_get_transaction_list_cb:
  **/
 static void
-pk_control_get_transaction_list_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkControlState *state)
+pk_control_get_transaction_list_cb (GObject *source_object,
+				    GAsyncResult *res,
+				    gpointer user_data)
 {
 	GError *error = NULL;
-	gchar **temp = NULL;
-	gboolean ret;
-
-	/* finished this call */
-	state->call = NULL;
+	GVariant *value;
+	const gchar **tlist_tmp;
+	GDBusProxy *proxy = G_DBUS_PROXY (source_object);
+	PkControlState *state = (PkControlState *) user_data;
 
 	/* get the result */
-	ret = dbus_g_proxy_end_call (proxy, call, &error,
-				     G_TYPE_STRV, &temp,
-				     G_TYPE_INVALID);
-	if (!ret) {
+	value = g_dbus_proxy_call_finish (proxy, res, &error);
+	if (value == NULL) {
 		/* fix up the D-Bus error */
 		pk_control_fixup_dbus_error (error);
-		g_warning ("failed: %s", error->message);
 		pk_control_get_transaction_list_state_finish (state, error);
 		g_error_free (error);
 		goto out;
 	}
 
-	/* save data */
-	state->transaction_list = g_strdupv (temp);
+	/* unwrap data */
+	g_variant_get (value, "(^a&s)", &tlist_tmp);
+	if (tlist_tmp == NULL) {
+		state->transaction_list = g_new0 (gchar *, 1);
+	} else {
+		state->transaction_list = g_strdupv ((gchar **)tlist_tmp);
+	}
+	g_assert (state->transaction_list != NULL);
 
 	/* we're done */
 	pk_control_get_transaction_list_state_finish (state, NULL);
 out:
-	g_strfreev (temp);
+	if (value != NULL)
+		g_variant_unref (value);
+}
+
+/**
+ * pk_control_get_transaction_list_internal:
+ **/
+static void
+pk_control_get_transaction_list_internal (PkControlState *state)
+{
+	g_dbus_proxy_call (state->control->priv->proxy,
+			   "GetTransactionList",
+			   NULL,
+			   G_DBUS_CALL_FLAGS_NONE,
+			   PK_CONTROL_DBUS_METHOD_TIMEOUT,
+			   state->cancellable,
+			   pk_control_get_transaction_list_cb,
+			   state);
+}
+
+/**
+ * pk_control_get_transaction_list_proxy_cb:
+ **/
+static void
+pk_control_get_transaction_list_proxy_cb (GObject *source_object,
+					  GAsyncResult *res,
+					  gpointer user_data)
+{
+	GError *error = NULL;
+	PkControlState *state = (PkControlState *) user_data;
+
+	state->proxy = g_dbus_proxy_new_for_bus_finish (res, &error);
+	if (state->proxy == NULL) {
+		pk_control_get_transaction_list_state_finish (state, error);
+		g_error_free (error);
+		return;
+	}
+	pk_control_proxy_connect (state);
+	pk_control_get_transaction_list_internal (state);
 }
 
 /**
@@ -1076,7 +1620,10 @@ out:
  * Since: 0.5.2
  **/
 void
-pk_control_get_transaction_list_async (PkControl *control, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data)
+pk_control_get_transaction_list_async (PkControl *control,
+				       GCancellable *cancellable,
+				       GAsyncReadyCallback callback,
+				       gpointer user_data)
 {
 	GSimpleAsyncResult *res;
 	PkControlState *state;
@@ -1086,30 +1633,40 @@ pk_control_get_transaction_list_async (PkControl *control, GCancellable *cancell
 	g_return_if_fail (callback != NULL);
 	g_return_if_fail (cancellable == NULL || G_IS_CANCELLABLE (cancellable));
 
-	res = g_simple_async_result_new (G_OBJECT (control), callback, user_data, pk_control_get_transaction_list_async);
+	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->control = g_object_ref (control);
-	if (cancellable != NULL) {
+	if (cancellable != NULL)
 		state->cancellable = g_object_ref (cancellable);
-		state->cancellable_id = g_cancellable_connect (cancellable, G_CALLBACK (pk_control_cancellable_cancel_cb), state, NULL);
-	}
 
 	/* check not already cancelled */
-	if (cancellable != NULL && g_cancellable_set_error_if_cancelled (cancellable, &error)) {
+	if (cancellable != NULL &&
+	    g_cancellable_set_error_if_cancelled (cancellable, &error)) {
 		pk_control_get_transaction_list_state_finish (state, error);
 		g_error_free (error);
 		goto out;
 	}
 
-	/* 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);
-	if (state->call == NULL)
-		g_error ("failed to setup call, maybe OOM or no connection");
+	/* skip straight to the D-Bus method if already connection */
+	if (control->priv->proxy != NULL) {
+		pk_control_get_transaction_list_internal (state);
+	} else {
+		g_dbus_proxy_new_for_bus (G_BUS_TYPE_SYSTEM,
+					  G_DBUS_PROXY_FLAGS_NONE,
+					  NULL,
+					  PK_DBUS_SERVICE,
+					  PK_DBUS_PATH,
+					  PK_DBUS_INTERFACE,
+					  control->priv->cancellable,
+					  pk_control_get_transaction_list_proxy_cb,
+					  state);
+	}
 
 	/* track state */
 	g_ptr_array_add (control->priv->calls, state);
@@ -1130,7 +1687,9 @@ out:
  * Since: 0.5.2
  **/
 gchar **
-pk_control_get_transaction_list_finish (PkControl *control, GAsyncResult *res, GError **error)
+pk_control_get_transaction_list_finish (PkControl *control,
+					GAsyncResult *res,
+					GError **error)
 {
 	GSimpleAsyncResult *simple;
 	gpointer source_tag;
@@ -1150,13 +1709,15 @@ pk_control_get_transaction_list_finish (PkControl *control, GAsyncResult *res, G
 	return g_strdupv (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, const GError *error)
+pk_control_get_time_since_action_state_finish (PkControlState *state,
+					       const GError *error)
 {
 	/* get result */
 	if (state->time != 0) {
@@ -1173,11 +1734,15 @@ pk_control_get_time_since_action_state_finish (PkControlState *state, const GErr
 
 	/* deallocate */
 	if (state->cancellable != NULL) {
-		g_cancellable_disconnect (state->cancellable, state->cancellable_id);
+		g_cancellable_disconnect (state->cancellable,
+					  state->cancellable_id);
 		g_object_unref (state->cancellable);
 	}
 	g_object_unref (state->res);
 	g_object_unref (state->control);
+	if (state->proxy != NULL)
+		g_object_unref (state->proxy);
+	g_variant_unref (state->parameters);
 	g_slice_free (PkControlState, state);
 }
 
@@ -1185,30 +1750,27 @@ pk_control_get_time_since_action_state_finish (PkControlState *state, const GErr
  * pk_control_get_time_since_action_cb:
  **/
 static void
-pk_control_get_time_since_action_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkControlState *state)
+pk_control_get_time_since_action_cb (GObject *source_object,
+				     GAsyncResult *res,
+				     gpointer user_data)
 {
+	GVariant *value;
 	GError *error = NULL;
-	gboolean ret;
-	guint seconds;
-
-	/* finished this call */
-	state->call = NULL;
+	GDBusProxy *proxy = G_DBUS_PROXY (source_object);
+	PkControlState *state = (PkControlState *) user_data;
 
 	/* get the result */
-	ret = dbus_g_proxy_end_call (proxy, call, &error,
-				     G_TYPE_UINT, &seconds,
-				     G_TYPE_INVALID);
-	if (!ret) {
+	value = g_dbus_proxy_call_finish (proxy, res, &error);
+	if (value == NULL) {
 		/* fix up the D-Bus error */
 		pk_control_fixup_dbus_error (error);
-		g_warning ("failed: %s", error->message);
 		pk_control_get_time_since_action_state_finish (state, error);
 		g_error_free (error);
 		goto out;
 	}
 
 	/* save data */
-	state->time = seconds;
+	g_variant_get (value, "(u)", &state->time);
 	if (state->time == 0) {
 		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);
@@ -1219,7 +1781,45 @@ pk_control_get_time_since_action_cb (DBusGProxy *proxy, DBusGProxyCall *call, Pk
 	/* we're done */
 	pk_control_get_time_since_action_state_finish (state, NULL);
 out:
-	return;
+	if (value != NULL)
+		g_variant_unref (value);
+}
+
+/**
+ * pk_control_get_time_since_action_internal:
+ **/
+static void
+pk_control_get_time_since_action_internal (PkControlState *state)
+{
+	g_dbus_proxy_call (state->control->priv->proxy,
+			   "GetTimeSinceAction",
+			   state->parameters,
+			   G_DBUS_CALL_FLAGS_NONE,
+			   PK_CONTROL_DBUS_METHOD_TIMEOUT,
+			   state->cancellable,
+			   pk_control_get_time_since_action_cb,
+			   state);
+}
+
+/**
+ * pk_control_get_time_since_action_proxy_cb:
+ **/
+static void
+pk_control_get_time_since_action_proxy_cb (GObject *source_object,
+					   GAsyncResult *res,
+					   gpointer user_data)
+{
+	GError *error = NULL;
+	PkControlState *state = (PkControlState *) user_data;
+
+	state->proxy = g_dbus_proxy_new_for_bus_finish (res, &error);
+	if (state->proxy == NULL) {
+		pk_control_get_time_since_action_state_finish (state, error);
+		g_error_free (error);
+		return;
+	}
+	pk_control_proxy_connect (state);
+	pk_control_get_time_since_action_internal (state);
 }
 
 /**
@@ -1236,43 +1836,55 @@ out:
  * Since: 0.5.2
  **/
 void
-pk_control_get_time_since_action_async (PkControl *control, PkRoleEnum role, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data)
+pk_control_get_time_since_action_async (PkControl *control,
+					PkRoleEnum role,
+					GCancellable *cancellable,
+					GAsyncReadyCallback callback,
+					gpointer user_data)
 {
 	GSimpleAsyncResult *res;
 	PkControlState *state;
 	GError *error = NULL;
-	const gchar *role_text;
 
 	g_return_if_fail (PK_IS_CONTROL (control));
 	g_return_if_fail (callback != NULL);
 	g_return_if_fail (cancellable == NULL || G_IS_CANCELLABLE (cancellable));
 
-	res = g_simple_async_result_new (G_OBJECT (control), callback, user_data, pk_control_get_time_since_action_async);
+	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->control = g_object_ref (control);
-	if (cancellable != NULL) {
+	state->parameters = g_variant_new ("(s)", pk_role_enum_to_string (role));
+	if (cancellable != NULL)
 		state->cancellable = g_object_ref (cancellable);
-		state->cancellable_id = g_cancellable_connect (cancellable, G_CALLBACK (pk_control_cancellable_cancel_cb), state, NULL);
-	}
 
 	/* check not already cancelled */
-	if (cancellable != NULL && g_cancellable_set_error_if_cancelled (cancellable, &error)) {
+	if (cancellable != NULL &&
+	    g_cancellable_set_error_if_cancelled (cancellable, &error)) {
 		pk_control_get_time_since_action_state_finish (state, error);
 		g_error_free (error);
 		goto out;
 	}
 
-	/* call D-Bus get_time_since_action async */
-	role_text = pk_role_enum_to_string (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);
-	if (state->call == NULL)
-		g_error ("failed to setup call, maybe OOM or no connection");
+	/* skip straight to the D-Bus method if already connection */
+	if (control->priv->proxy != NULL) {
+		pk_control_get_time_since_action_internal (state);
+	} else {
+		g_dbus_proxy_new_for_bus (G_BUS_TYPE_SYSTEM,
+					  G_DBUS_PROXY_FLAGS_NONE,
+					  NULL,
+					  PK_DBUS_SERVICE,
+					  PK_DBUS_PATH,
+					  PK_DBUS_INTERFACE,
+					  control->priv->cancellable,
+					  pk_control_get_time_since_action_proxy_cb,
+					  state);
+	}
 
 	/* track state */
 	g_ptr_array_add (control->priv->calls, state);
@@ -1293,7 +1905,9 @@ out:
  * Since: 0.5.2
  **/
 guint
-pk_control_get_time_since_action_finish (PkControl *control, GAsyncResult *res, GError **error)
+pk_control_get_time_since_action_finish (PkControl *control,
+					 GAsyncResult *res,
+					 GError **error)
 {
 	GSimpleAsyncResult *simple;
 	gpointer source_tag;
@@ -1313,7 +1927,8 @@ pk_control_get_time_since_action_finish (PkControl *control, GAsyncResult *res,
 	return (guint) g_simple_async_result_get_op_res_gssize (simple);
 }
 
-/***************************************************************************************************/
+/**********************************************************************/
+
 
 /**
  * pk_control_can_authorize_state_finish:
@@ -1336,11 +1951,15 @@ pk_control_can_authorize_state_finish (PkControlState *state, const GError *erro
 
 	/* deallocate */
 	if (state->cancellable != NULL) {
-		g_cancellable_disconnect (state->cancellable, state->cancellable_id);
+		g_cancellable_disconnect (state->cancellable,
+					  state->cancellable_id);
 		g_object_unref (state->cancellable);
 	}
 	g_object_unref (state->res);
 	g_object_unref (state->control);
+	if (state->proxy != NULL)
+		g_object_unref (state->proxy);
+	g_variant_unref (state->parameters);
 	g_slice_free (PkControlState, state);
 }
 
@@ -1348,29 +1967,28 @@ pk_control_can_authorize_state_finish (PkControlState *state, const GError *erro
  * pk_control_can_authorize_cb:
  **/
 static void
-pk_control_can_authorize_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkControlState *state)
+pk_control_can_authorize_cb (GObject *source_object,
+			     GAsyncResult *res,
+			     gpointer user_data)
 {
 	GError *error = NULL;
-	gboolean ret;
-	gchar *authorize_state = NULL;
-
-	/* finished this call */
-	state->call = NULL;
+	GDBusProxy *proxy = G_DBUS_PROXY (source_object);
+	PkControlState *state = (PkControlState *) user_data;
+	GVariant *value;
+	const 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) {
+	value = g_dbus_proxy_call_finish (proxy, res, &error);
+	if (value == NULL) {
 		/* fix up the D-Bus error */
 		pk_control_fixup_dbus_error (error);
-		g_warning ("failed: %s", error->message);
 		pk_control_can_authorize_state_finish (state, error);
 		g_error_free (error);
 		goto out;
 	}
 
 	/* save data */
+	g_variant_get (value, "(&s)", &authorize_state);
 	state->authorize = pk_authorize_type_enum_from_string (authorize_state);
 	if (state->authorize == PK_AUTHORIZE_ENUM_UNKNOWN) {
 		error = g_error_new (PK_CONTROL_ERROR, PK_CONTROL_ERROR_FAILED, "could not get state");
@@ -1382,8 +2000,45 @@ pk_control_can_authorize_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkControlS
 	/* we're done */
 	pk_control_can_authorize_state_finish (state, NULL);
 out:
-	g_free (authorize_state);
-	return;
+	if (value != NULL)
+		g_variant_unref (value);
+}
+
+/**
+ * pk_control_can_authorize_internal:
+ **/
+static void
+pk_control_can_authorize_internal (PkControlState *state)
+{
+	g_dbus_proxy_call (state->control->priv->proxy,
+			   "CanAuthorize",
+			   state->parameters,
+			   G_DBUS_CALL_FLAGS_NONE,
+			   PK_CONTROL_DBUS_METHOD_TIMEOUT,
+			   state->cancellable,
+			   pk_control_can_authorize_cb,
+			   state);
+}
+
+/**
+ * pk_control_can_authorize_proxy_cb:
+ **/
+static void
+pk_control_can_authorize_proxy_cb (GObject *source_object,
+				   GAsyncResult *res,
+				   gpointer user_data)
+{
+	GError *error = NULL;
+	PkControlState *state = (PkControlState *) user_data;
+
+	state->proxy = g_dbus_proxy_new_for_bus_finish (res, &error);
+	if (state->proxy == NULL) {
+		pk_control_can_authorize_state_finish (state, error);
+		g_error_free (error);
+		return;
+	}
+	pk_control_proxy_connect (state);
+	pk_control_can_authorize_internal (state);
 }
 
 /**
@@ -1400,7 +2055,11 @@ out:
  * Since: 0.5.2
  **/
 void
-pk_control_can_authorize_async (PkControl *control, const gchar *action_id, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data)
+pk_control_can_authorize_async (PkControl *control,
+				const gchar *action_id,
+				GCancellable *cancellable,
+				GAsyncReadyCallback callback,
+				gpointer user_data)
 {
 	GSimpleAsyncResult *res;
 	PkControlState *state;
@@ -1410,32 +2069,42 @@ pk_control_can_authorize_async (PkControl *control, const gchar *action_id, GCan
 	g_return_if_fail (callback != NULL);
 	g_return_if_fail (cancellable == NULL || G_IS_CANCELLABLE (cancellable));
 
-	res = g_simple_async_result_new (G_OBJECT (control), callback, user_data, pk_control_can_authorize_async);
+	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->control = g_object_ref (control);
-	if (cancellable != NULL) {
+	state->parameters = g_variant_new ("(s)", action_id);
+	if (cancellable != NULL)
 		state->cancellable = g_object_ref (cancellable);
-		state->cancellable_id = g_cancellable_connect (cancellable, G_CALLBACK (pk_control_cancellable_cancel_cb), state, NULL);
-	}
 
 	/* check not already cancelled */
-	if (cancellable != NULL && g_cancellable_set_error_if_cancelled (cancellable, &error)) {
+	if (cancellable != NULL &&
+	    g_cancellable_set_error_if_cancelled (cancellable, &error)) {
 		pk_control_can_authorize_state_finish (state, error);
 		g_error_free (error);
 		goto out;
 	}
 	state->authorize = PK_AUTHORIZE_ENUM_UNKNOWN;
 
-	/* 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);
-	if (state->call == NULL)
-		g_error ("failed to setup call, maybe OOM or no connection");
+	/* skip straight to the D-Bus method if already connection */
+	if (control->priv->proxy != NULL) {
+		pk_control_can_authorize_internal (state);
+	} else {
+		g_dbus_proxy_new_for_bus (G_BUS_TYPE_SYSTEM,
+					  G_DBUS_PROXY_FLAGS_NONE,
+					  NULL,
+					  PK_DBUS_SERVICE,
+					  PK_DBUS_PATH,
+					  PK_DBUS_INTERFACE,
+					  control->priv->cancellable,
+					  pk_control_can_authorize_proxy_cb,
+					  state);
+	}
 
 	/* track state */
 	g_ptr_array_add (control->priv->calls, state);
@@ -1475,7 +2144,8 @@ pk_control_can_authorize_finish (PkControl *control, GAsyncResult *res, GError *
 	return (PkAuthorizeEnum) g_simple_async_result_get_op_res_gssize (simple);
 }
 
-/***************************************************************************************************/
+/**********************************************************************/
+
 
 /**
  * pk_control_get_properties_state_finish:
@@ -1485,7 +2155,8 @@ pk_control_get_properties_state_finish (PkControlState *state, const GError *err
 {
 	/* get result */
 	if (state->ret) {
-		g_simple_async_result_set_op_res_gboolean (state->res, 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);
 	}
@@ -1498,303 +2169,41 @@ pk_control_get_properties_state_finish (PkControlState *state, const GError *err
 
 	/* deallocate */
 	if (state->cancellable != NULL) {
-		g_cancellable_disconnect (state->cancellable, state->cancellable_id);
+		g_cancellable_disconnect (state->cancellable,
+					  state->cancellable_id);
 		g_object_unref (state->cancellable);
 	}
 	g_object_unref (state->res);
 	g_object_unref (state->control);
+	if (state->proxy != NULL)
+		g_object_unref (state->proxy);
 	g_slice_free (PkControlState, state);
 }
 
 /**
- * pk_control_set_version_major:
- **/
-static void
-pk_control_set_version_major (PkControl *control, guint version_major)
-{
-	/* is the same as before */
-	if (control->priv->version_major == version_major)
-		return;
-	control->priv->version_major = version_major;
-
-	/* notify we're changed */
-	g_debug ("notify::version-major");
-	g_object_notify (G_OBJECT(control), "version-major");
-}
-
-/**
- * pk_control_set_version_minor:
- **/
-static void
-pk_control_set_version_minor (PkControl *control, guint version_minor)
-{
-	/* is the same as before */
-	if (control->priv->version_minor == version_minor)
-		return;
-	control->priv->version_minor = version_minor;
-
-	/* notify we're changed */
-	g_debug ("notify::version-minor");
-	g_object_notify (G_OBJECT(control), "version-minor");
-}
-
-/**
- * pk_control_set_version_micro:
- **/
-static void
-pk_control_set_version_micro (PkControl *control, guint version_micro)
-{
-	/* is the same as before */
-	if (control->priv->version_micro == version_micro)
-		return;
-	control->priv->version_micro = version_micro;
-
-	/* notify we're changed */
-	g_debug ("notify::version-micro");
-	g_object_notify (G_OBJECT(control), "version-micro");
-}
-
-/**
- * pk_control_set_locked:
- **/
-static void
-pk_control_set_locked (PkControl *control, gboolean locked)
-{
-	/* is the same as before */
-	if (control->priv->locked == locked)
-		return;
-	control->priv->locked = locked;
-
-	/* notify we're changed */
-	g_debug ("notify::locked");
-	g_object_notify (G_OBJECT(control), "locked");
-}
-
-/**
- * pk_control_set_backend_name:
- **/
-static void
-pk_control_set_backend_name (PkControl *control, const gchar *backend_name)
-{
-	/* is the same as before */
-	if (g_strcmp0 (control->priv->backend_name, backend_name) == 0)
-		return;
-	g_free (control->priv->backend_name);
-	control->priv->backend_name = g_strdup (backend_name);
-
-	/* notify we're changed */
-	g_debug ("notify::backend-name");
-	g_object_notify (G_OBJECT(control), "backend-name");
-}
-
-/**
- * pk_control_set_backend_author:
- **/
-static void
-pk_control_set_backend_author (PkControl *control, const gchar *backend_author)
-{
-	/* is the same as before */
-	if (g_strcmp0 (control->priv->backend_author, backend_author) == 0)
-		return;
-	g_free (control->priv->backend_author);
-	control->priv->backend_author = g_strdup (backend_author);
-
-	/* notify we're changed */
-	g_debug ("notify::backend-author");
-	g_object_notify (G_OBJECT(control), "backend-author");
-}
-
-/**
- * pk_control_set_backend_description:
- **/
-static void
-pk_control_set_backend_description (PkControl *control, const gchar *backend_description)
-{
-	/* is the same as before */
-	if (g_strcmp0 (control->priv->backend_description, backend_description) == 0)
-		return;
-	g_free (control->priv->backend_description);
-	control->priv->backend_description = g_strdup (backend_description);
-
-	/* notify we're changed */
-	g_debug ("notify::backend-description");
-	g_object_notify (G_OBJECT(control), "backend-description");
-}
-
-/**
- * pk_control_set_mime_types:
- **/
-static void
-pk_control_set_mime_types (PkControl *control, const gchar *mime_types)
-{
-	/* is the same as before */
-	if (g_strcmp0 (control->priv->mime_types, mime_types) == 0)
-		return;
-	g_free (control->priv->mime_types);
-	control->priv->mime_types = g_strdup (mime_types);
-
-	/* notify we're changed */
-	g_debug ("notify::mime-types");
-	g_object_notify (G_OBJECT(control), "mime-types");
-}
-
-/**
- * pk_control_set_roles:
- **/
-static void
-pk_control_set_roles (PkControl *control, PkBitfield roles)
-{
-	/* is the same as before */
-	if (control->priv->roles == roles)
-		return;
-	control->priv->roles = roles;
-
-	/* notify we're changed */
-	g_debug ("notify::roles");
-	g_object_notify (G_OBJECT(control), "roles");
-}
-
-/**
- * pk_control_set_groups:
- **/
-static void
-pk_control_set_groups (PkControl *control, PkBitfield groups)
-{
-	/* is the same as before */
-	if (control->priv->groups == groups)
-		return;
-	control->priv->groups = groups;
-
-	/* notify we're changed */
-	g_debug ("notify::groups");
-	g_object_notify (G_OBJECT(control), "groups");
-}
-
-/**
- * pk_control_set_filters:
- **/
-static void
-pk_control_set_filters (PkControl *control, PkBitfield filters)
-{
-	/* is the same as before */
-	if (control->priv->filters == filters)
-		return;
-	control->priv->filters = filters;
-
-	/* notify we're changed */
-	g_debug ("notify::filters");
-	g_object_notify (G_OBJECT(control), "filters");
-}
-
-/**
- * pk_control_set_network_state:
- **/
-static void
-pk_control_set_network_state (PkControl *control, PkNetworkEnum network_state)
-{
-	/* is the same as before */
-	if (control->priv->network_state == network_state)
-		return;
-	control->priv->network_state = network_state;
-
-	/* notify we're changed */
-	g_debug ("notify::network-state");
-	g_object_notify (G_OBJECT(control), "network-state");
-}
-
-/**
- * pk_control_set_distro_id:
- **/
-static void
-pk_control_set_distro_id (PkControl *control, const gchar *distro_id)
-{
-	/* we don't want distro specific results in 'make check' */
-	if (g_getenv ("PK_SELF_TEST") != NULL)
-		distro_id = "selftest;11.91;i686";
-
-	/* is the same as before */
-	if (g_strcmp0 (control->priv->distro_id, distro_id) == 0)
-		return;
-	g_free (control->priv->distro_id);
-	control->priv->distro_id = g_strdup (distro_id);
-
-	/* notify we're changed */
-	g_debug ("notify::distro-id");
-	g_object_notify (G_OBJECT(control), "distro-id");
-}
-
-/**
- * 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, "VersionMajor") == 0) {
-		pk_control_set_version_major (control, g_value_get_uint (value));
-	} else if (g_strcmp0 (key, "VersionMinor") == 0) {
-		pk_control_set_version_minor (control, g_value_get_uint (value));
-	} else if (g_strcmp0 (key, "VersionMicro") == 0) {
-		pk_control_set_version_micro (control, g_value_get_uint (value));
-	} else if (g_strcmp0 (key, "BackendName") == 0) {
-		pk_control_set_backend_name (control, g_value_get_string (value));
-	} else if (g_strcmp0 (key, "BackendDescription") == 0) {
-		pk_control_set_backend_description (control, g_value_get_string (value));
-	} else if (g_strcmp0 (key, "BackendAuthor") == 0) {
-		pk_control_set_backend_author (control, g_value_get_string (value));
-	} else if (g_strcmp0 (key, "MimeTypes") == 0) {
-		pk_control_set_mime_types (control, g_value_get_string (value));
-	} else if (g_strcmp0 (key, "Roles") == 0) {
-		pk_control_set_roles (control, pk_role_bitfield_from_string (g_value_get_string (value)));
-	} else if (g_strcmp0 (key, "Groups") == 0) {
-		pk_control_set_groups (control, pk_group_bitfield_from_string (g_value_get_string (value)));
-	} else if (g_strcmp0 (key, "Filters") == 0) {
-		pk_control_set_filters (control, pk_filter_bitfield_from_string (g_value_get_string (value)));
-	} else if (g_strcmp0 (key, "Locked") == 0) {
-		pk_control_set_locked (control, g_value_get_boolean (value));
-	} else if (g_strcmp0 (key, "NetworkState") == 0) {
-		pk_control_set_network_state (control, pk_network_enum_from_string (g_value_get_string (value)));
-	} else if (g_strcmp0 (key, "DistroId") == 0) {
-		pk_control_set_distro_id (control, g_value_get_string (value));
-	} else {
-		g_warning ("unhandled property '%s'", key);
-	}
-}
-
-/**
  * pk_control_get_properties_cb:
  **/
 static void
-pk_control_get_properties_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkControlState *state)
+pk_control_get_properties_cb (GObject *source_object,
+			      GAsyncResult *res,
+			      gpointer user_data)
 {
 	GError *error = NULL;
-	gboolean ret;
-	GHashTable *hash;
-
-	/* finished this call */
-	state->call = NULL;
+	PkControlState *state = (PkControlState *) user_data;
 
-	/* 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) {
-		g_warning ("failed to get properties: %s", error->message);
+	state->proxy = g_dbus_proxy_new_for_bus_finish (res, &error);
+	if (state->proxy == NULL) {
 		pk_control_get_properties_state_finish (state, error);
 		g_error_free (error);
 		goto out;
 	}
 
+	/* connect up proxy */
+	pk_control_proxy_connect (state);
+
 	/* save data */
 	state->ret = TRUE;
 
-	/* process results */
-	if (hash != NULL) {
-		g_object_freeze_notify (G_OBJECT(state->control));
-		g_hash_table_foreach (hash, (GHFunc) pk_control_get_properties_collect_cb, state->control);
-		g_hash_table_unref (hash);
-		g_object_thaw_notify (G_OBJECT(state->control));
-	}
-
 	/* we're done */
 	pk_control_get_properties_state_finish (state, NULL);
 out:
@@ -1813,8 +2222,10 @@ out:
  * Since: 0.5.2
  **/
 void
-pk_control_get_properties_async (PkControl *control, GCancellable *cancellable,
-				 GAsyncReadyCallback callback, gpointer user_data)
+pk_control_get_properties_async (PkControl *control,
+				 GCancellable *cancellable,
+				 GAsyncReadyCallback callback,
+				 gpointer user_data)
 {
 	GSimpleAsyncResult *res;
 	PkControlState *state;
@@ -1824,31 +2235,43 @@ pk_control_get_properties_async (PkControl *control, GCancellable *cancellable,
 	g_return_if_fail (callback != NULL);
 	g_return_if_fail (cancellable == NULL || G_IS_CANCELLABLE (cancellable));
 
-	res = g_simple_async_result_new (G_OBJECT (control), callback, user_data, pk_control_get_properties_async);
+	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);
 	state->control = g_object_ref (control);
-	if (cancellable != NULL) {
+	if (cancellable != NULL)
 		state->cancellable = g_object_ref (cancellable);
-		state->cancellable_id = g_cancellable_connect (cancellable, G_CALLBACK (pk_control_cancellable_cancel_cb), state, NULL);
-	}
 
 	/* check not already cancelled */
-	if (cancellable != NULL && g_cancellable_set_error_if_cancelled (cancellable, &error)) {
+	if (cancellable != NULL &&
+	    g_cancellable_set_error_if_cancelled (cancellable, &error)) {
 		pk_control_get_properties_state_finish (state, error);
 		g_error_free (error);
 		goto out;
 	}
 
-	/* 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);
-	if (state->call == NULL)
-		g_error ("failed to setup call, maybe OOM or no connection");
+	/* already done */
+	if (control->priv->proxy != NULL) {
+		state->ret = TRUE;
+		pk_control_get_properties_state_finish (state, NULL);
+		goto out;
+	}
+
+	/* get a connection to the main interface */
+	g_dbus_proxy_new_for_bus (G_BUS_TYPE_SYSTEM,
+				  G_DBUS_PROXY_FLAGS_NONE,
+				  NULL,
+				  PK_DBUS_SERVICE,
+				  PK_DBUS_PATH,
+				  PK_DBUS_INTERFACE,
+				  control->priv->cancellable,
+				  pk_control_get_properties_cb,
+				  state);
 
 	/* track state */
 	g_ptr_array_add (control->priv->calls, state);
@@ -1889,298 +2312,7 @@ pk_control_get_properties_finish (PkControl *control, GAsyncResult *res, GError
 	return g_simple_async_result_get_op_res_gboolean (simple);
 }
 
-/***************************************************************************************************/
-
-typedef struct {
-	PkControl	*control;
-	gchar		**transaction_ids;
-} PkIdleSignalStore;
-
-/**
- * pk_control_idle_signal_store_free:
- */
-static void
-pk_control_idle_signal_store_free (PkIdleSignalStore *store)
-{
-	g_strfreev (store->transaction_ids);
-	g_object_unref (store->control);
-	g_free (store);
-}
-
-/**
- * pk_control_transaction_list_changed_idle_cb:
- */
-static gboolean
-pk_control_transaction_list_changed_idle_cb (PkIdleSignalStore *store)
-{
-	g_signal_emit (store->control, signals[SIGNAL_TRANSACTION_LIST_CHANGED], 0, store->transaction_ids);
-	store->control->priv->transaction_list_changed_id = 0;
-	pk_control_idle_signal_store_free (store);
-	return FALSE;
-}
-
-/**
- * pk_control_transaction_list_changed_cb:
- *
- * @transaction_ids: (array zero-terminated=1)
- */
-static void
-pk_control_transaction_list_changed_cb (DBusGProxy *proxy, gchar **transaction_ids, PkControl *control)
-{
-	PkIdleSignalStore *store;
-
-	g_return_if_fail (PK_IS_CONTROL (control));
-
-	/* already pending */
-	if (control->priv->transaction_list_changed_id != 0)
-		return;
-
-	/* create store object */
-	store = g_new0 (PkIdleSignalStore, 1);
-	store->control = g_object_ref (control);
-	store->transaction_ids = g_strdupv (transaction_ids);
-
-	/* we have to do this idle as the transaction list will change when not yet finished */
-	g_debug ("emit transaction-list-changed (when idle)");
-	control->priv->transaction_list_changed_id =
-		g_idle_add ((GSourceFunc) pk_control_transaction_list_changed_idle_cb, store);
-	g_source_set_name_by_id (control->priv->transaction_list_changed_id,
-				 "[PkControl] transaction-list-changed");
-}
-
-/**
- * pk_control_restart_schedule_idle_cb:
- */
-static gboolean
-pk_control_restart_schedule_idle_cb (PkIdleSignalStore *store)
-{
-	g_debug ("emit transaction-list-changed");
-	g_signal_emit (store->control, signals[SIGNAL_RESTART_SCHEDULE], 0);
-	store->control->priv->restart_schedule_id = 0;
-	pk_control_idle_signal_store_free (store);
-	return FALSE;
-}
-
-/**
- * pk_control_restart_schedule_cb:
- */
-static void
-pk_control_restart_schedule_cb (DBusGProxy *proxy, PkControl *control)
-{
-	PkIdleSignalStore *store;
-
-	g_return_if_fail (PK_IS_CONTROL (control));
-
-	/* already pending */
-	if (control->priv->restart_schedule_id != 0)
-		return;
-
-	/* create store object */
-	store = g_new0 (PkIdleSignalStore, 1);
-	store->control = g_object_ref (control);
-
-	/* we have to do this idle as the transaction list will change when not yet finished */
-	g_debug ("emit restart-schedule (when idle)");
-	store->control->priv->restart_schedule_id =
-		g_idle_add ((GSourceFunc) pk_control_restart_schedule_idle_cb, store);
-	g_source_set_name_by_id (store->control->priv->restart_schedule_id,
-				 "[PkControl] restart-schedule");
-}
-
-/**
- * pk_control_updates_changed_idle_cb:
- */
-static gboolean
-pk_control_updates_changed_idle_cb (PkIdleSignalStore *store)
-{
-	g_debug ("emit transaction-list-changed");
-	g_signal_emit (store->control, signals[SIGNAL_UPDATES_CHANGED], 0);
-	store->control->priv->updates_changed_id = 0;
-	pk_control_idle_signal_store_free (store);
-	return FALSE;
-}
-
-/**
- * pk_control_updates_changed_cb:
- */
-static void
-pk_control_updates_changed_cb (DBusGProxy *proxy, PkControl *control)
-{
-	PkIdleSignalStore *store;
-
-	g_return_if_fail (PK_IS_CONTROL (control));
-
-	/* already pending */
-	if (control->priv->updates_changed_id != 0)
-		return;
-
-	/* create store object */
-	store = g_new0 (PkIdleSignalStore, 1);
-	store->control = g_object_ref (control);
-
-	/* we have to do this idle as the transaction list will change when not yet finished */
-	g_debug ("emit updates-changed (when idle)");
-	control->priv->updates_changed_id =
-		g_idle_add ((GSourceFunc) pk_control_updates_changed_idle_cb, store);
-	g_source_set_name_by_id (control->priv->updates_changed_id,
-				 "[PkControl] updates-changed");
-}
-
-/**
- * pk_control_repo_list_changed_idle_cb:
- */
-static gboolean
-pk_control_repo_list_changed_idle_cb (PkIdleSignalStore *store)
-{
-	g_debug ("emit transaction-list-changed");
-	g_signal_emit (store->control, signals[SIGNAL_REPO_LIST_CHANGED], 0);
-	store->control->priv->repo_list_changed_id = 0;
-	pk_control_idle_signal_store_free (store);
-	return FALSE;
-}
-
-/**
- * pk_control_repo_list_changed_cb:
- */
-static void
-pk_control_repo_list_changed_cb (DBusGProxy *proxy, PkControl *control)
-{
-	PkIdleSignalStore *store;
-
-	g_return_if_fail (PK_IS_CONTROL (control));
-
-	/* already pending */
-	if (control->priv->repo_list_changed_id != 0)
-		return;
-
-	/* create store object */
-	store = g_new0 (PkIdleSignalStore, 1);
-	store->control = g_object_ref (control);
-
-	/* we have to do this idle as the transaction list will change when not yet finished */
-	g_debug ("emit repo-list-changed (when idle)");
-	control->priv->repo_list_changed_id =
-		g_idle_add ((GSourceFunc) pk_control_repo_list_changed_idle_cb, store);
-	g_source_set_name_by_id (control->priv->repo_list_changed_id,
-				 "[PkControl] repo-list-changed");
-}
-
-/**
- * pk_control_changed_get_properties_cb:
- **/
-static void
-pk_control_changed_get_properties_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkControl *control)
-{
-	GError *error = NULL;
-	gboolean ret;
-	GHashTable *hash;
-
-	/* finished this call */
-	control->priv->call_get_properties = 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,
-				     G_TYPE_INVALID);
-	if (!ret) {
-		g_warning ("failed to get properties: %s", error->message);
-		goto out;
-	}
-
-	/* process results */
-	if (hash != NULL) {
-		g_object_freeze_notify (G_OBJECT(control));
-		g_hash_table_foreach (hash, (GHFunc) pk_control_get_properties_collect_cb, control);
-		g_hash_table_unref (hash);
-		g_object_thaw_notify (G_OBJECT(control));
-	}
-out:
-	return;
-}
-
-/**
- * pk_control_changed_cb:
- */
-static void
-pk_control_changed_cb (DBusGProxy *proxy, PkControl *control)
-{
-	/* already getting properties */
-	if (control->priv->call_get_properties != NULL)
-		return;
-
-	/* call D-Bus get_properties async */
-	g_debug ("properties changed, so getting new list");
-
-	/* TODO: idle? */
-	control->priv->call_get_properties =
-		dbus_g_proxy_begin_call (control->priv->proxy_props, "GetAll",
-					 (DBusGProxyCallNotify) pk_control_changed_get_properties_cb, control, NULL,
-					 G_TYPE_STRING, "org.freedesktop.PackageKit",
-					 G_TYPE_INVALID);
-}
-
-/**
- * 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;
-		g_debug ("cancel in flight call");
-		dbus_g_proxy_cancel_call (control->priv->proxy, state->call);
-	}
-
-	return TRUE;
-}
-
-/**
- * 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) {
-		control->priv->connected = FALSE;
-		g_debug ("notify::connected");
-		g_object_notify (G_OBJECT(control), "connected");
-		return;
-	}
-
-	/* nothing --> something */
-	if (prev_len == 0 && new_len != 0) {
-		control->priv->connected = TRUE;
-		g_debug ("notify::connected");
-		g_object_notify (G_OBJECT(control), "connected");
-		return;
-	}
-}
+/**********************************************************************/
 
 /**
  * pk_control_get_property:
@@ -2466,97 +2598,55 @@ pk_control_class_init (PkControlClass *klass)
 }
 
 /**
+ * pk_control_name_appeared_cb:
+ **/
+static void
+pk_control_name_appeared_cb (GDBusConnection *connection,
+			     const gchar *name,
+			     const gchar *name_owner,
+			     gpointer user_data)
+{
+	PkControl *control = PK_CONTROL (user_data);
+	control->priv->connected = TRUE;
+	g_debug ("notify::connected");
+	g_object_notify (G_OBJECT(control), "connected");
+}
+
+/**
+ * pk_control_name_vanished_cb:
+ **/
+static void
+pk_control_name_vanished_cb (GDBusConnection *connection,
+			     const gchar *name,
+			     gpointer user_data)
+{
+	PkControl *control = PK_CONTROL (user_data);
+	control->priv->connected = FALSE;
+	g_debug ("notify::connected");
+	g_object_notify (G_OBJECT(control), "connected");
+}
+
+/**
  * pk_control_init:
  * @control: This class instance
  **/
 static void
 pk_control_init (PkControl *control)
 {
-	GError *error = NULL;
-
 	control->priv = PK_CONTROL_GET_PRIVATE (control);
-	control->priv->mime_types = NULL;
-	control->priv->backend_name = NULL;
-	control->priv->backend_description = NULL;
-	control->priv->backend_author = NULL;
-	control->priv->locked = FALSE;
-	control->priv->connected = FALSE;
-	control->priv->transaction_list_changed_id = 0;
-	control->priv->restart_schedule_id = 0;
-	control->priv->updates_changed_id = 0;
-	control->priv->repo_list_changed_id = 0;
 	control->priv->network_state = PK_NETWORK_ENUM_UNKNOWN;
-	control->priv->distro_id = 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);
-	if (error != NULL) {
-		g_warning ("%s", error->message);
-		g_error_free (error);
-		g_error ("This program cannot start until you start the dbus system service.");
-	}
-
-	/* we maintain a local copy */
 	control->priv->version_major = G_MAXUINT;
 	control->priv->version_minor = G_MAXUINT;
 	control->priv->version_micro = G_MAXUINT;
-
-	/* 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);
-	if (control->priv->proxy == NULL)
-		g_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)
-		g_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) {
-		g_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);
-
-	/* timeout after a few ms, all all these methods should not take long */
-	dbus_g_proxy_set_default_timeout (control->priv->proxy, PK_CONTROL_DBUS_METHOD_TIMEOUT);
-	dbus_g_proxy_set_default_timeout (control->priv->proxy_props, PK_CONTROL_DBUS_METHOD_TIMEOUT);
-	dbus_g_proxy_set_default_timeout (control->priv->proxy_dbus, PK_CONTROL_DBUS_METHOD_TIMEOUT);
-
-	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, "Changed", G_TYPE_INVALID);
-	dbus_g_proxy_connect_signal (control->priv->proxy, "Changed",
-				     G_CALLBACK (pk_control_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);
+	control->priv->cancellable = g_cancellable_new ();
+	control->priv->calls = g_ptr_array_new ();
+	control->priv->watch_id = g_bus_watch_name (G_BUS_TYPE_SYSTEM,
+						    PK_DBUS_SERVICE,
+						    G_BUS_NAME_WATCHER_FLAGS_NONE,
+						    pk_control_name_appeared_cb,
+						    pk_control_name_vanished_cb,
+						    control,
+						    NULL);
 }
 
 /**
@@ -2570,41 +2660,34 @@ pk_control_finalize (GObject *object)
 	PkControlPrivate *priv = control->priv;
 
 	/* 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, "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, "Changed",
-				        G_CALLBACK (pk_control_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_cancellable_cancel (priv->cancellable);
+	g_bus_unwatch_name (priv->watch_id);
 
 	/* remove pending sources */
-	if (control->priv->transaction_list_changed_id != 0)
-		g_source_remove (control->priv->transaction_list_changed_id);
-	if (control->priv->restart_schedule_id != 0)
-		g_source_remove (control->priv->restart_schedule_id);
-	if (control->priv->updates_changed_id != 0)
-		g_source_remove (control->priv->updates_changed_id);
-	if (control->priv->repo_list_changed_id != 0)
-		g_source_remove (control->priv->repo_list_changed_id);
+	if (priv->transaction_list_changed_id != 0)
+		g_source_remove (priv->transaction_list_changed_id);
+	if (priv->restart_schedule_id != 0)
+		g_source_remove (priv->restart_schedule_id);
+	if (priv->updates_changed_id != 0)
+		g_source_remove (priv->updates_changed_id);
+	if (priv->repo_list_changed_id != 0)
+		g_source_remove (priv->repo_list_changed_id);
+	if (priv->proxy != NULL) {
+		g_signal_handlers_disconnect_by_func (priv->proxy,
+						      G_CALLBACK (pk_control_properties_changed_cb),
+						      control);
+		g_signal_handlers_disconnect_by_func (priv->proxy,
+						      G_CALLBACK (pk_control_signal_cb),
+						      control);
+		g_object_unref (priv->proxy);
+	}
 
 	g_free (priv->backend_name);
 	g_free (priv->backend_description);
 	g_free (priv->backend_author);
 	g_free (priv->mime_types);
 	g_free (priv->distro_id);
-	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_ptr_array_unref (priv->calls);
 
 	G_OBJECT_CLASS (pk_control_parent_class)->finalize (object);
 }
diff --git a/lib/packagekit-glib2/pk-self-test.c b/lib/packagekit-glib2/pk-self-test.c
index f35b6e2..ba5a676 100644
--- a/lib/packagekit-glib2/pk-self-test.c
+++ b/lib/packagekit-glib2/pk-self-test.c
@@ -797,7 +797,7 @@ pk_test_client_func (void)
 	pk_client_search_names_async (client, pk_bitfield_value (PK_FILTER_ENUM_NONE), values, cancellable,
 		     (PkProgressCallback) pk_test_client_progress_cb, NULL,
 		     (GAsyncReadyCallback) pk_test_client_search_name_cb, NULL);
-	g_timeout_add (1000, (GSourceFunc) pk_test_client_cancel_cb, cancellable);
+	g_timeout_add (500, (GSourceFunc) pk_test_client_cancel_cb, cancellable);
 	_g_test_loop_run_with_timeout (15000);
 	g_debug ("cancelled in %f", g_test_timer_elapsed ());
 
@@ -1976,10 +1976,22 @@ pk_test_transaction_list_func (void)
 	/* resolve package */
 	package_ids = pk_package_ids_from_string ("glib2;2.14.0;i386;fedora&powertop");
 	_refcount = 2;
-	pk_client_resolve_async (client, pk_bitfield_value (PK_FILTER_ENUM_INSTALLED), package_ids, NULL, NULL, NULL,
-		 (GAsyncReadyCallback) pk_test_transaction_list_resolve_cb, NULL);
-	pk_client_resolve_async (client, pk_bitfield_value (PK_FILTER_ENUM_NOT_INSTALLED), package_ids, NULL, NULL, NULL,
-		 (GAsyncReadyCallback) pk_test_transaction_list_resolve_cb, NULL);
+	pk_client_resolve_async (client,
+				 pk_bitfield_value (PK_FILTER_ENUM_INSTALLED),
+				 package_ids,
+				 NULL,
+				 NULL,
+				 NULL,
+				 (GAsyncReadyCallback) pk_test_transaction_list_resolve_cb,
+				 NULL);
+	pk_client_resolve_async (client,
+				 pk_bitfield_value (PK_FILTER_ENUM_NOT_INSTALLED),
+				 package_ids,
+				 NULL,
+				 NULL,
+				 NULL,
+				 (GAsyncReadyCallback) pk_test_transaction_list_resolve_cb,
+				 NULL);
 	g_strfreev (package_ids);
 	_g_test_loop_run_with_timeout (15000);
 	g_debug ("resolved in %f", g_test_timer_elapsed ());
commit 3497ad5eb9dac61464f3b66c3082b41fd9bb190b
Author: Richard Hughes <richard at hughsie.com>
Date:   Wed Dec 14 17:15:49 2011 +0000

    Revert "Make PkProc part of the daemon"
    
    This reverts commit 68eb607e8e236128527b038ca73233d849c0b262.
    
    People are getting weird compile failures, e.g.
    
    "No rule to make target `pk-proc.c', needed by `packagekitd-pk-proc.o'"
    
    So we'll have to fix this another way.

diff --git a/src/Makefile.am b/src/Makefile.am
index cbdadd0..868ac47 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -14,9 +14,6 @@ SUBDIRS = plugins
 
 NULL =
 
-GITIGNOREFILES = *.la \
-		 .directory
-
 PK_GLIB2_LIBS =	$(top_builddir)/lib/packagekit-glib2/libpackagekit-glib2.la	\
 		$(NULL)
 
@@ -132,8 +129,6 @@ libexec_PROGRAMS =					\
 
 packagekitd_SOURCES =					\
 	pk-main.c					\
-	plugins/pk-proc.c				\
-	plugins/pk-proc.h				\
 	$(shared_SOURCES)				\
 	$(NULL)
 
diff --git a/src/plugins/Makefile.am b/src/plugins/Makefile.am
index 91cdc06..79ee111 100644
--- a/src/plugins/Makefile.am
+++ b/src/plugins/Makefile.am
@@ -85,7 +85,9 @@ libpk_plugin_update_package_list_la_LDFLAGS = -module -avoid-version
 libpk_plugin_update_package_list_la_CFLAGS = $(PK_PLUGIN_CFLAGS) $(WARNINGFLAGS_C)
 
 libpk_plugin_no_update_process_la_SOURCES =		\
-	pk-plugin-no-update-process.c
+	pk-plugin-no-update-process.c			\
+	pk-proc.c					\
+	pk-proc.h
 libpk_plugin_no_update_process_la_LIBADD = $(PK_PLUGIN_LIBS)
 libpk_plugin_no_update_process_la_LDFLAGS = -module -avoid-version
 libpk_plugin_no_update_process_la_CFLAGS = $(PK_PLUGIN_CFLAGS) $(WARNINGFLAGS_C)
@@ -96,7 +98,9 @@ libpk_plugin_scan_desktop_files_la_LDFLAGS = -module -avoid-version
 libpk_plugin_scan_desktop_files_la_CFLAGS = $(PK_PLUGIN_CFLAGS) $(WARNINGFLAGS_C)
 
 libpk_plugin_update_check_processes_la_SOURCES =	\
-	pk-plugin-update-check-processes.c
+	pk-plugin-update-check-processes.c		\
+	pk-proc.c					\
+	pk-proc.h
 libpk_plugin_update_check_processes_la_LIBADD = $(PK_PLUGIN_LIBS)
 libpk_plugin_update_check_processes_la_LDFLAGS = -module -avoid-version
 libpk_plugin_update_check_processes_la_CFLAGS = $(PK_PLUGIN_CFLAGS) $(WARNINGFLAGS_C)
commit 25ff3a362e6b7ea4dd17304a51f09c19182d11cb
Author: Richard Hughes <richard at hughsie.com>
Date:   Wed Dec 14 16:44:34 2011 +0000

    Add PropertiesChanged signals to the main and transaction interfaces

diff --git a/src/pk-engine.c b/src/pk-engine.c
index 15159c7..16a4f8f 100644
--- a/src/pk-engine.c
+++ b/src/pk-engine.c
@@ -201,6 +201,40 @@ pk_engine_emit_changed (PkEngine *engine)
 				       NULL);
 }
 
+/**
+ * pk_engine_emit_property_changed:
+ **/
+static void
+pk_engine_emit_property_changed (PkEngine *engine,
+				 const gchar *property_name,
+				 GVariant *property_value)
+{
+	GVariantBuilder builder;
+	GVariantBuilder invalidated_builder;
+
+	/* not yet connected */
+	if (engine->priv->connection == NULL)
+		return;
+
+	/* build the dict */
+	g_variant_builder_init (&invalidated_builder, G_VARIANT_TYPE ("as"));
+	g_variant_builder_init (&builder, G_VARIANT_TYPE_ARRAY);
+	g_variant_builder_add (&builder,
+			       "{sv}",
+			       property_name,
+			       property_value);
+	g_dbus_connection_emit_signal (engine->priv->connection,
+				       NULL,
+				       PK_DBUS_PATH,
+				       "org.freedesktop.DBus.Properties",
+				       "PropertiesChanged",
+				       g_variant_new ("(sa{sv}as)",
+				       PK_DBUS_INTERFACE,
+				       &builder,
+				       &invalidated_builder),
+				       NULL);
+}
+
 #if 0
 /**
  * pk_engine_inhibit_locked_cb:
@@ -217,6 +251,9 @@ pk_engine_inhibit_locked_cb (PkInhibit *inhibit, gboolean is_locked, PkEngine *e
 	engine->priv->locked = is_locked;
 
 	/* emit */
+	pk_engine_emit_property_changed (engine,
+					 "Locked",
+					 g_variant_new_boolean (is_locked));
 	pk_engine_emit_changed (engine);
 }
 #endif
@@ -1086,6 +1123,9 @@ pk_engine_network_state_changed_cb (PkNetwork *network, PkNetworkEnum network_st
 	engine->priv->network_state = network_state;
 
 	/* emit */
+	pk_engine_emit_property_changed (engine,
+					 "NetworkState",
+					 g_variant_new_string (pk_network_enum_to_string (network_state)));
 	pk_engine_emit_changed (engine);
 }
 
diff --git a/src/pk-transaction.c b/src/pk-transaction.c
index b10c9fe..c5b5c6c 100644
--- a/src/pk-transaction.c
+++ b/src/pk-transaction.c
@@ -336,6 +336,35 @@ pk_transaction_finish_invalidate_caches (PkTransaction *transaction)
 	return TRUE;
 }
 
+/**
+ * pk_transaction_emit_property_changed:
+ **/
+static void
+pk_transaction_emit_property_changed (PkTransaction *transaction,
+				      const gchar *property_name,
+				      GVariant *property_value)
+{
+	GVariantBuilder builder;
+	GVariantBuilder invalidated_builder;
+
+	/* build the dict */
+	g_variant_builder_init (&invalidated_builder, G_VARIANT_TYPE ("as"));
+	g_variant_builder_init (&builder, G_VARIANT_TYPE_ARRAY);
+	g_variant_builder_add (&builder,
+			       "{sv}",
+			       property_name,
+			       property_value);
+	g_dbus_connection_emit_signal (transaction->priv->connection,
+				       NULL,
+				       transaction->priv->tid,
+				       "org.freedesktop.DBus.Properties",
+				       "PropertiesChanged",
+				       g_variant_new ("(sa{sv}as)",
+				       PK_DBUS_INTERFACE_TRANSACTION,
+				       &builder,
+				       &invalidated_builder),
+				       NULL);
+}
 
 /**
  * pk_transaction_emit_changed:
@@ -372,6 +401,18 @@ pk_transaction_progress_changed_emit (PkTransaction *transaction,
 	transaction->priv->remaining_time = remaining;
 
 	/* emit */
+	pk_transaction_emit_property_changed (transaction,
+					      "Percentage",
+					      g_variant_new_uint32 (percentage));
+	pk_transaction_emit_property_changed (transaction,
+					      "Subpercentage",
+					      g_variant_new_uint32 (subpercentage));
+	pk_transaction_emit_property_changed (transaction,
+					      "ElapsedTime",
+					      g_variant_new_uint32 (elapsed));
+	pk_transaction_emit_property_changed (transaction,
+					      "RemainingTime",
+					      g_variant_new_uint32 (remaining));
 	pk_transaction_emit_changed (transaction);
 }
 
@@ -392,6 +433,9 @@ pk_transaction_allow_cancel_emit (PkTransaction *transaction, gboolean allow_can
 	/* TODO: have master property on main interface */
 
 	/* emit */
+	pk_transaction_emit_property_changed (transaction,
+					      "AllowCancel",
+					      g_variant_new_boolean (allow_cancel));
 	pk_transaction_emit_changed (transaction);
 }
 
@@ -411,6 +455,9 @@ pk_transaction_status_changed_emit (PkTransaction *transaction, PkStatusEnum sta
 	transaction->priv->status = status;
 
 	/* emit */
+	pk_transaction_emit_property_changed (transaction,
+					      "Status",
+					      g_variant_new_string (pk_status_enum_to_string (status)));
 	pk_transaction_emit_changed (transaction);
 }
 
@@ -1865,6 +1912,9 @@ pk_transaction_speed_cb (GObject *object,
 		      "speed", &transaction->priv->speed,
 		      NULL);
 	/* emit */
+	pk_transaction_emit_property_changed (transaction,
+					      "Speed",
+					      g_variant_new_byte (transaction->priv->speed));
 	pk_transaction_emit_changed (transaction);
 }
 
@@ -1880,6 +1930,9 @@ pk_transaction_percentage_cb (GObject *object,
 		      "percentage", &transaction->priv->percentage,
 		      NULL);
 	/* emit */
+	pk_transaction_emit_property_changed (transaction,
+					      "Percentage",
+					      g_variant_new_uint32 (transaction->priv->percentage));
 	pk_transaction_emit_changed (transaction);
 }
 
@@ -1895,6 +1948,9 @@ pk_transaction_subpercentage_cb (GObject *object,
 		      "subpercentage", &transaction->priv->subpercentage,
 		      NULL);
 	/* emit */
+	pk_transaction_emit_property_changed (transaction,
+					      "Subpercentage",
+					      g_variant_new_uint32 (transaction->priv->subpercentage));
 	pk_transaction_emit_changed (transaction);
 }
 
@@ -1910,6 +1966,9 @@ pk_transaction_remaining_cb (GObject *object,
 		      "remaining", &transaction->priv->remaining_time,
 		      NULL);
 	/* emit */
+	pk_transaction_emit_property_changed (transaction,
+					      "RemainingTime",
+					      g_variant_new_uint32 (transaction->priv->remaining_time));
 	pk_transaction_emit_changed (transaction);
 }
 
@@ -2190,6 +2249,9 @@ pk_transaction_vanished_cb (GDBusConnection *connection,
 	transaction->priv->caller_active = FALSE;
 
 	/* emit */
+	pk_transaction_emit_property_changed (transaction,
+					      "CallerActive",
+					      g_variant_new_boolean (transaction->priv->caller_active));
 	pk_transaction_emit_changed (transaction);
 }
 
commit f8ba469a9d992269ca655dc2c21b995cd877fe15
Author: Richard Hughes <richard at hughsie.com>
Date:   Wed Dec 14 09:46:22 2011 +0000

    Fix RequireRestart after the daemons conversion to GDBus

diff --git a/src/pk-transaction.c b/src/pk-transaction.c
index 11028b8..b10c9fe 100644
--- a/src/pk-transaction.c
+++ b/src/pk-transaction.c
@@ -1591,7 +1591,7 @@ pk_transaction_require_restart_cb (PkBackend *backend,
 				       NULL,
 				       transaction->priv->tid,
 				       PK_DBUS_INTERFACE_TRANSACTION,
-				       "MediaChangeRequired",
+				       "RequireRestart",
 				       g_variant_new ("(ss)",
 						      restart_text,
 						      package_id),
commit 108b81849077abdd6c0b3ee9a420b1aebf29d4ee
Author: Richard Hughes <richard at hughsie.com>
Date:   Wed Dec 14 09:45:30 2011 +0000

    Fix a critical warning in the client tools when a simulation is cancelled

diff --git a/lib/packagekit-glib2/pk-task.c b/lib/packagekit-glib2/pk-task.c
index 6bddfc8..1b42a0b 100644
--- a/lib/packagekit-glib2/pk-task.c
+++ b/lib/packagekit-glib2/pk-task.c
@@ -152,8 +152,10 @@ pk_task_generic_state_finish (PkTaskState *state, const GError *error)
 	/* deallocate */
 	if (state->cancellable != NULL)
 		g_object_unref (state->cancellable);
-	if (state->results != NULL)
+	if (state->results != NULL) {
 		g_object_unref (state->results);
+		state->results = NULL;
+	}
 	g_free (state->directory);
 	g_free (state->repo_id);
 	g_free (state->transaction_id);
@@ -311,8 +313,10 @@ pk_task_simulate_ready_cb (GObject *source_object, GAsyncResult *res, PkTaskStat
 	PkMessageEnum message_type;
 
 	/* old results no longer valid */
-	if (state->results != NULL)
+	if (state->results != NULL) {
 		g_object_unref (state->results);
+		state->results = NULL;
+	}
 
 	/* get the results */
 	results = pk_client_generic_finish (PK_CLIENT(state->task), res, &error);
@@ -447,8 +451,10 @@ pk_task_install_signatures_ready_cb (GObject *source_object, GAsyncResult *res,
 	PkError *error_code;
 
 	/* old results no longer valid */
-	if (state->results != NULL)
+	if (state->results != NULL) {
 		g_object_unref (state->results);
+		state->results = NULL;
+	}
 
 	/* get the results */
 	results = pk_client_generic_finish (PK_CLIENT(task), res, &error);
@@ -545,8 +551,10 @@ pk_task_accept_eulas_ready_cb (GObject *source_object, GAsyncResult *res, PkTask
 	PkError *error_code;
 
 	/* old results no longer valid */
-	if (state->results != NULL)
+	if (state->results != NULL) {
 		g_object_unref (state->results);
+		state->results = NULL;
+	}
 
 	/* get the results */
 	results = pk_client_generic_finish (PK_CLIENT(task), res, &error);
@@ -740,8 +748,10 @@ pk_task_ready_cb (GObject *source_object, GAsyncResult *res, PkTaskState *state)
 	PkResults *results;
 
 	/* old results no longer valid */
-	if (state->results != NULL)
+	if (state->results != NULL) {
 		g_object_unref (state->results);
+		state->results = NULL;
+	}
 
 	/* get the results */
 	results = pk_client_generic_finish (PK_CLIENT(task), res, &error);
commit 76a93cb3847ca86e2ef5c852b4b8da3e7069cc55
Merge: 9f14098... f535581...
Author: Sebastian Heinlein <devel at glatzor.de>
Date:   Tue Dec 13 08:36:08 2011 +0100

    Merge branch 'master' of gitorious.org:packagekit/packagekit

commit f535581ed80e92f814f8fb70667042a92185ecae
Author: Matthias Klumpp <matthias at tenstral.net>
Date:   Mon Dec 12 16:58:19 2011 +0100

    aptcc: Fix crash on get-categories, backend does not support that

diff --git a/backends/aptcc/pk-backend-aptcc.cpp b/backends/aptcc/pk-backend-aptcc.cpp
index e0a2699..02cc09a 100644
--- a/backends/aptcc/pk-backend-aptcc.cpp
+++ b/backends/aptcc/pk-backend-aptcc.cpp
@@ -1174,16 +1174,16 @@ cout << "FILE INSTALL: " << fileInstall << endl;
         delete m_apt;
         return false;
     }
-    
+
     if (fileInstall) {
         // File installation EXPERIMENTAL
 //         gchar *path;
-// 
+//
 //         for (uint i = 0; i < g_strv_length(full_paths); i++) {
 //             if (_cancel) {
 //                 break;
 //             }
-//             
+//
 //             path = full_paths[i];
 //             cout << "InstallFiles: " << m_apt->installDebFiles(path, simulate) << endl;
 //         }
@@ -1440,6 +1440,18 @@ pk_backend_get_packages (PkBackend *backend, PkBitfield filter)
 	pk_backend_thread_create (backend, backend_get_packages_thread);
 }
 
+
+/**
+ * pk_backend_get_categories:
+ */
+/* TODO
+void
+pk_backend_get_categories (PkBackend *backend)
+{
+	pk_backend_thread_create (backend, pk_backend_get_categories_thread);
+}
+*/
+
 /**
  * pk_backend_get_roles:
  */
@@ -1471,7 +1483,6 @@ pk_backend_get_roles (PkBackend *backend)
         PK_ROLE_ENUM_UPDATE_SYSTEM,
         PK_ROLE_ENUM_GET_REPO_LIST,
         PK_ROLE_ENUM_REPO_ENABLE,
-        PK_ROLE_ENUM_GET_CATEGORIES,
         PK_ROLE_ENUM_SIMULATE_INSTALL_PACKAGES,
         PK_ROLE_ENUM_SIMULATE_UPDATE_PACKAGES,
         PK_ROLE_ENUM_SIMULATE_REMOVE_PACKAGES,
@@ -1481,7 +1492,7 @@ pk_backend_get_roles (PkBackend *backend)
     if (g_file_test (PREUPGRADE_BINARY, G_FILE_TEST_EXISTS)) {
         pk_bitfield_add(roles, PK_ROLE_ENUM_GET_DISTRO_UPGRADES);
     }
-    
+
     // only add GetDistroUpgrades if the binary is present
     if (g_file_test (GDEBI_BINARY, G_FILE_TEST_EXISTS)) {
         pk_bitfield_add(roles, PK_ROLE_ENUM_SIMULATE_INSTALL_FILES);
commit c3892e1ada284bfb5bbeb40123d37dbd06a8fc88
Author: Michael Vogt <mvo at ubuntu.com>
Date:   Mon Dec 12 15:40:38 2011 +0100

    move pk_status_enum_to_localised_text,pk_info_enum_to_localised_past,pk_info_enum_to_localised_present,pk_role_enum_to_localised_present to pk-enum.h and export via GIR

diff --git a/lib/packagekit-glib2/pk-console-shared.c b/lib/packagekit-glib2/pk-console-shared.c
index f8534be..6a99e18 100644
--- a/lib/packagekit-glib2/pk-console-shared.c
+++ b/lib/packagekit-glib2/pk-console-shared.c
@@ -448,292 +448,3 @@ pk_status_enum_to_localised_text (PkStatusEnum status)
 	return text;
 }
 
-/**
- * pk_info_enum_to_localised_text:
- **/
-static const gchar *
-pk_info_enum_to_localised_text (PkInfoEnum info)
-{
-	const gchar *text = NULL;
-	switch (info) {
-	case PK_INFO_ENUM_LOW:
-		/* TRANSLATORS: The type of update */
-		text = _("Trivial");
-		break;
-	case PK_INFO_ENUM_NORMAL:
-		/* TRANSLATORS: The type of update */
-		text = _("Normal");
-		break;
-	case PK_INFO_ENUM_IMPORTANT:
-		/* TRANSLATORS: The type of update */
-		text = _("Important");
-		break;
-	case PK_INFO_ENUM_SECURITY:
-		/* TRANSLATORS: The type of update */
-		text = _("Security");
-		break;
-	case PK_INFO_ENUM_BUGFIX:
-		/* TRANSLATORS: The type of update */
-		text = _("Bug fix ");
-		break;
-	case PK_INFO_ENUM_ENHANCEMENT:
-		/* TRANSLATORS: The type of update */
-		text = _("Enhancement");
-		break;
-	case PK_INFO_ENUM_BLOCKED:
-		/* TRANSLATORS: The type of update */
-		text = _("Blocked");
-		break;
-	case PK_INFO_ENUM_INSTALLED:
-	case PK_INFO_ENUM_COLLECTION_INSTALLED:
-		/* TRANSLATORS: The state of a package */
-		text = _("Installed");
-		break;
-	case PK_INFO_ENUM_AVAILABLE:
-	case PK_INFO_ENUM_COLLECTION_AVAILABLE:
-		/* TRANSLATORS: The state of a package, i.e. not installed */
-		text = _("Available");
-		break;
-	default:
-		g_warning ("info unrecognised: %s", pk_info_enum_to_string (info));
-	}
-	return text;
-}
-
-/**
- * pk_info_enum_to_localised_present:
- **/
-const gchar *
-pk_info_enum_to_localised_present (PkInfoEnum info)
-{
-	const gchar *text = NULL;
-	switch (info) {
-	case PK_INFO_ENUM_DOWNLOADING:
-		/* TRANSLATORS: The action of the package, in present tense */
-		text = _("Downloading");
-		break;
-	case PK_INFO_ENUM_UPDATING:
-		/* TRANSLATORS: The action of the package, in present tense */
-		text = _("Updating");
-		break;
-	case PK_INFO_ENUM_INSTALLING:
-		/* TRANSLATORS: The action of the package, in present tense */
-		text = _("Installing");
-		break;
-	case PK_INFO_ENUM_REMOVING:
-		/* TRANSLATORS: The action of the package, in present tense */
-		text = _("Removing");
-		break;
-	case PK_INFO_ENUM_CLEANUP:
-		/* TRANSLATORS: The action of the package, in present tense */
-		text = _("Cleaning up");
-		break;
-	case PK_INFO_ENUM_OBSOLETING:
-		/* TRANSLATORS: The action of the package, in present tense */
-		text = _("Obsoleting");
-		break;
-	case PK_INFO_ENUM_REINSTALLING:
-		/* TRANSLATORS: The action of the package, in present tense */
-		text = _("Reinstalling");
-		break;
-	default:
-		text = pk_info_enum_to_localised_text (info);
-	}
-	return text;
-}
-
-/**
- * pk_info_enum_to_localised_past:
- **/
-const gchar *
-pk_info_enum_to_localised_past (PkInfoEnum info)
-{
-	const gchar *text = NULL;
-	switch (info) {
-	case PK_INFO_ENUM_DOWNLOADING:
-		/* TRANSLATORS: The action of the package, in past tense */
-		text = _("Downloaded");
-		break;
-	case PK_INFO_ENUM_UPDATING:
-		/* TRANSLATORS: The action of the package, in past tense */
-		text = _("Updated");
-		break;
-	case PK_INFO_ENUM_INSTALLING:
-		/* TRANSLATORS: The action of the package, in past tense */
-		text = _("Installed");
-		break;
-	case PK_INFO_ENUM_REMOVING:
-		/* TRANSLATORS: The action of the package, in past tense */
-		text = _("Removed");
-		break;
-	case PK_INFO_ENUM_CLEANUP:
-		/* TRANSLATORS: The action of the package, in past tense */
-		text = _("Cleaned up");
-		break;
-	case PK_INFO_ENUM_OBSOLETING:
-		/* TRANSLATORS: The action of the package, in past tense */
-		text = _("Obsoleted");
-		break;
-	case PK_INFO_ENUM_REINSTALLING:
-		/* TRANSLATORS: The action of the package, in past tense */
-		text = _("Reinstalled");
-		break;
-	default:
-		text = pk_info_enum_to_localised_text (info);
-	}
-	return text;
-}
-
-/**
- * pk_role_enum_to_localised_present:
- **/
-const gchar *
-pk_role_enum_to_localised_present (PkRoleEnum role)
-{
-	const gchar *text = NULL;
-	switch (role) {
-	case PK_ROLE_ENUM_UNKNOWN:
-		/* TRANSLATORS: The role of the transaction, in present tense */
-		text = _("Unknown role type");
-		break;
-	case PK_ROLE_ENUM_GET_DEPENDS:
-		/* TRANSLATORS: The role of the transaction, in present tense */
-		text = _("Getting dependencies");
-		break;
-	case PK_ROLE_ENUM_GET_UPDATE_DETAIL:
-		/* TRANSLATORS: The role of the transaction, in present tense */
-		text = _("Getting update details");
-		break;
-	case PK_ROLE_ENUM_GET_DETAILS:
-		/* TRANSLATORS: The role of the transaction, in present tense */
-		text = _("Getting details");
-		break;
-	case PK_ROLE_ENUM_GET_REQUIRES:
-		/* TRANSLATORS: The role of the transaction, in present tense */
-		text = _("Getting requires");
-		break;
-	case PK_ROLE_ENUM_GET_UPDATES:
-		/* TRANSLATORS: The role of the transaction, in present tense */
-		text = _("Getting updates");
-		break;
-	case PK_ROLE_ENUM_SEARCH_DETAILS:
-		/* TRANSLATORS: The role of the transaction, in present tense */
-		text = _("Searching by details");
-		break;
-	case PK_ROLE_ENUM_SEARCH_FILE:
-		/* TRANSLATORS: The role of the transaction, in present tense */
-		text = _("Searching by file");
-		break;
-	case PK_ROLE_ENUM_SEARCH_GROUP:
-		/* TRANSLATORS: The role of the transaction, in present tense */
-		text = _("Searching groups");
-		break;
-	case PK_ROLE_ENUM_SEARCH_NAME:
-		/* TRANSLATORS: The role of the transaction, in present tense */
-		text = _("Searching by name");
-		break;
-	case PK_ROLE_ENUM_REMOVE_PACKAGES:
-		/* TRANSLATORS: The role of the transaction, in present tense */
-		text = _("Removing");
-		break;
-	case PK_ROLE_ENUM_INSTALL_PACKAGES:
-		/* TRANSLATORS: The role of the transaction, in present tense */
-		text = _("Installing");
-		break;
-	case PK_ROLE_ENUM_INSTALL_FILES:
-		/* TRANSLATORS: The role of the transaction, in present tense */
-		text = _("Installing files");
-		break;
-	case PK_ROLE_ENUM_REFRESH_CACHE:
-		/* TRANSLATORS: The role of the transaction, in present tense */
-		text = _("Refreshing cache");
-		break;
-	case PK_ROLE_ENUM_UPDATE_PACKAGES:
-		/* TRANSLATORS: The role of the transaction, in present tense */
-		text = _("Updating packages");
-		break;
-	case PK_ROLE_ENUM_UPDATE_SYSTEM:
-		/* TRANSLATORS: The role of the transaction, in present tense */
-		text = _("Updating system");
-		break;
-	case PK_ROLE_ENUM_CANCEL:
-		/* TRANSLATORS: The role of the transaction, in present tense */
-		text = _("Canceling");
-		break;
-	case PK_ROLE_ENUM_ROLLBACK:
-		/* TRANSLATORS: The role of the transaction, in present tense */
-		text = _("Rolling back");
-		break;
-	case PK_ROLE_ENUM_GET_REPO_LIST:
-		/* TRANSLATORS: The role of the transaction, in present tense */
-		text = _("Getting repositories");
-		break;
-	case PK_ROLE_ENUM_REPO_ENABLE:
-		/* TRANSLATORS: The role of the transaction, in present tense */
-		text = _("Enabling repository");
-		break;
-	case PK_ROLE_ENUM_REPO_SET_DATA:
-		/* TRANSLATORS: The role of the transaction, in present tense */
-		text = _("Setting data");
-		break;
-	case PK_ROLE_ENUM_RESOLVE:
-		/* TRANSLATORS: The role of the transaction, in present tense */
-		text = _("Resolving");
-		break;
-	case PK_ROLE_ENUM_GET_FILES:
-		/* TRANSLATORS: The role of the transaction, in present tense */
-		text = _("Getting file list");
-		break;
-	case PK_ROLE_ENUM_WHAT_PROVIDES:
-		/* TRANSLATORS: The role of the transaction, in present tense */
-		text = _("Getting provides");
-		break;
-	case PK_ROLE_ENUM_INSTALL_SIGNATURE:
-		/* TRANSLATORS: The role of the transaction, in present tense */
-		text = _("Installing signature");
-		break;
-	case PK_ROLE_ENUM_GET_PACKAGES:
-		/* TRANSLATORS: The role of the transaction, in present tense */
-		text = _("Getting packages");
-		break;
-	case PK_ROLE_ENUM_ACCEPT_EULA:
-		/* TRANSLATORS: The role of the transaction, in present tense */
-		text = _("Accepting EULA");
-		break;
-	case PK_ROLE_ENUM_DOWNLOAD_PACKAGES:
-		/* TRANSLATORS: The role of the transaction, in present tense */
-		text = _("Downloading packages");
-		break;
-	case PK_ROLE_ENUM_GET_DISTRO_UPGRADES:
-		/* TRANSLATORS: The role of the transaction, in present tense */
-		text = _("Getting upgrades");
-		break;
-	case PK_ROLE_ENUM_GET_CATEGORIES:
-		/* TRANSLATORS: The role of the transaction, in present tense */
-		text = _("Getting categories");
-		break;
-	case PK_ROLE_ENUM_GET_OLD_TRANSACTIONS:
-		/* TRANSLATORS: The role of the transaction, in present tense */
-		text = _("Getting transactions");
-		break;
-	case PK_ROLE_ENUM_SIMULATE_INSTALL_FILES:
-		/* TRANSLATORS: The role of the transaction, in present tense */
-		text = _("Simulating install");
-		break;
-	case PK_ROLE_ENUM_SIMULATE_INSTALL_PACKAGES:
-		/* TRANSLATORS: The role of the transaction, in present tense */
-		text = _("Simulating install");
-		break;
-	case PK_ROLE_ENUM_SIMULATE_REMOVE_PACKAGES:
-		/* TRANSLATORS: The role of the transaction, in present tense */
-		text = _("Simulating remove");
-		break;
-	case PK_ROLE_ENUM_SIMULATE_UPDATE_PACKAGES:
-		/* TRANSLATORS: The role of the transaction, in present tense */
-		text = _("Simulating update");
-		break;
-	default:
-		g_warning ("role unrecognised: %s", pk_role_enum_to_string (role));
-	}
-	return text;
-}
diff --git a/lib/packagekit-glib2/pk-console-shared.h b/lib/packagekit-glib2/pk-console-shared.h
index 12de4dc..668f5c4 100644
--- a/lib/packagekit-glib2/pk-console-shared.h
+++ b/lib/packagekit-glib2/pk-console-shared.h
@@ -42,10 +42,6 @@ gchar		**pk_console_resolve_packages		(PkClient	*client,
 							 PkBitfield	 filter,
 							 gchar		**packages,
 							 GError		**error);
-const gchar	*pk_status_enum_to_localised_text	(PkStatusEnum	 status);
-const gchar	*pk_info_enum_to_localised_past		(PkInfoEnum	 info);
-const gchar	*pk_info_enum_to_localised_present	(PkInfoEnum	 info);
-const gchar	*pk_role_enum_to_localised_present	(PkRoleEnum	 role);
 
 G_END_DECLS
 
diff --git a/lib/packagekit-glib2/pk-enum.c b/lib/packagekit-glib2/pk-enum.c
index 918c532..e46cca0 100644
--- a/lib/packagekit-glib2/pk-enum.c
+++ b/lib/packagekit-glib2/pk-enum.c
@@ -30,6 +30,7 @@
 
 #include <string.h>
 #include <glib.h>
+#include <glib/gi18n.h>
 
 #include <packagekit-glib2/pk-common.h>
 #include <packagekit-glib2/pk-enum.h>
@@ -998,3 +999,321 @@ pk_upgrade_kind_enum_to_string (PkUpgradeKindEnum upgrade_kind)
 {
 	return pk_enum_find_string (enum_upgrade_kind, upgrade_kind);
 }
+
+/**
+ * pk_info_enum_to_localised_text:
+ * @info: The enumerated type value
+ * 
+ * Converts a enumerated type to its localized description
+ *
+ * Return Value: the translated text
+ *
+ * Since: 0.7.2
+ **/
+static const gchar *
+pk_info_enum_to_localised_text (PkInfoEnum info)
+{
+	const gchar *text = NULL;
+	switch (info) {
+	case PK_INFO_ENUM_LOW:
+		/* TRANSLATORS: The type of update */
+		text = _("Trivial");
+		break;
+	case PK_INFO_ENUM_NORMAL:
+		/* TRANSLATORS: The type of update */
+		text = dgettext("PackageKit", "Normal");
+		break;
+	case PK_INFO_ENUM_IMPORTANT:
+		/* TRANSLATORS: The type of update */
+		text = dgettext("PackageKit", "Important");
+		break;
+	case PK_INFO_ENUM_SECURITY:
+		/* TRANSLATORS: The type of update */
+		text = dgettext("PackageKit", "Security");
+		break;
+	case PK_INFO_ENUM_BUGFIX:
+		/* TRANSLATORS: The type of update */
+		text = dgettext("PackageKit", "Bug fix ");
+		break;
+	case PK_INFO_ENUM_ENHANCEMENT:
+		/* TRANSLATORS: The type of update */
+		text = dgettext("PackageKit", "Enhancement");
+		break;
+	case PK_INFO_ENUM_BLOCKED:
+		/* TRANSLATORS: The type of update */
+		text = dgettext("PackageKit", "Blocked");
+		break;
+	case PK_INFO_ENUM_INSTALLED:
+	case PK_INFO_ENUM_COLLECTION_INSTALLED:
+		/* TRANSLATORS: The state of a package */
+		text = dgettext("PackageKit", "Installed");
+		break;
+	case PK_INFO_ENUM_AVAILABLE:
+	case PK_INFO_ENUM_COLLECTION_AVAILABLE:
+		/* TRANSLATORS: The state of a package, i.e. not installed */
+		text = dgettext("PackageKit", "Available");
+		break;
+	default:
+		g_warning ("info unrecognised: %s", pk_info_enum_to_string (info));
+	}
+	return text;
+}
+
+/**
+ * pk_info_enum_to_localised_present:
+ * @info: The enumerated type value
+ * 
+ * Converts a enumerated type to its localized description
+ *
+ * Return Value: the translated text
+ *
+ * Since: 0.7.2
+ **/
+const gchar *
+pk_info_enum_to_localised_present (PkInfoEnum info)
+{
+	const gchar *text = NULL;
+	switch (info) {
+	case PK_INFO_ENUM_DOWNLOADING:
+		/* TRANSLATORS: The action of the package, in present tense */
+		text = dgettext("PackageKit", "Downloading");
+		break;
+	case PK_INFO_ENUM_UPDATING:
+		/* TRANSLATORS: The action of the package, in present tense */
+		text = dgettext("PackageKit", "Updating");
+		break;
+	case PK_INFO_ENUM_INSTALLING:
+		/* TRANSLATORS: The action of the package, in present tense */
+		text = dgettext("PackageKit", "Installing");
+		break;
+	case PK_INFO_ENUM_REMOVING:
+		/* TRANSLATORS: The action of the package, in present tense */
+		text = dgettext("PackageKit", "Removing");
+		break;
+	case PK_INFO_ENUM_CLEANUP:
+		/* TRANSLATORS: The action of the package, in present tense */
+		text = dgettext("PackageKit", "Cleaning up");
+		break;
+	case PK_INFO_ENUM_OBSOLETING:
+		/* TRANSLATORS: The action of the package, in present tense */
+		text = dgettext("PackageKit", "Obsoleting");
+		break;
+	case PK_INFO_ENUM_REINSTALLING:
+		/* TRANSLATORS: The action of the package, in present tense */
+		text = dgettext("PackageKit", "Reinstalling");
+		break;
+	default:
+		text = pk_info_enum_to_localised_text (info);
+	}
+	return text;
+}
+
+/**
+ * pk_info_enum_to_localised_past:
+ * @info: The enumerated type value
+ * 
+ * Converts a enumerated type to its localized description
+ *
+ * Return Value: the translated text
+ *
+ * Since: 0.7.2
+ **/
+const gchar *
+pk_info_enum_to_localised_past (PkInfoEnum info)
+{
+	const gchar *text = NULL;
+	switch (info) {
+	case PK_INFO_ENUM_DOWNLOADING:
+		/* TRANSLATORS: The action of the package, in past tense */
+		text = dgettext("PackageKit", "Downloaded");
+		break;
+	case PK_INFO_ENUM_UPDATING:
+		/* TRANSLATORS: The action of the package, in past tense */
+		text = dgettext("PackageKit", "Updated");
+		break;
+	case PK_INFO_ENUM_INSTALLING:
+		/* TRANSLATORS: The action of the package, in past tense */
+		text = dgettext("PackageKit", "Installed");
+		break;
+	case PK_INFO_ENUM_REMOVING:
+		/* TRANSLATORS: The action of the package, in past tense */
+		text = dgettext("PackageKit", "Removed");
+		break;
+	case PK_INFO_ENUM_CLEANUP:
+		/* TRANSLATORS: The action of the package, in past tense */
+		text = dgettext("PackageKit", "Cleaned up");
+		break;
+	case PK_INFO_ENUM_OBSOLETING:
+		/* TRANSLATORS: The action of the package, in past tense */
+		text = dgettext("PackageKit", "Obsoleted");
+		break;
+	case PK_INFO_ENUM_REINSTALLING:
+		/* TRANSLATORS: The action of the package, in past tense */
+		text = dgettext("PackageKit", "Reinstalled");
+		break;
+	default:
+		text = pk_info_enum_to_localised_text (info);
+	}
+	return text;
+}
+
+/**
+ * pk_role_enum_to_localised_present:
+ * @info: The enumerated type value
+ * 
+ * Converts a enumerated type to its localized description
+ *
+ * Return Value: the translated text
+ *
+ * Since: 0.7.2
+ **/
+const gchar *
+pk_role_enum_to_localised_present (PkRoleEnum role)
+{
+	const gchar *text = NULL;
+	switch (role) {
+	case PK_ROLE_ENUM_UNKNOWN:
+		/* TRANSLATORS: The role of the transaction, in present tense */
+		text = dgettext("PackageKit", "Unknown role type");
+		break;
+	case PK_ROLE_ENUM_GET_DEPENDS:
+		/* TRANSLATORS: The role of the transaction, in present tense */
+		text = dgettext("PackageKit", "Getting dependencies");
+		break;
+	case PK_ROLE_ENUM_GET_UPDATE_DETAIL:
+		/* TRANSLATORS: The role of the transaction, in present tense */
+		text = dgettext("PackageKit", "Getting update details");
+		break;
+	case PK_ROLE_ENUM_GET_DETAILS:
+		/* TRANSLATORS: The role of the transaction, in present tense */
+		text = dgettext("PackageKit", "Getting details");
+		break;
+	case PK_ROLE_ENUM_GET_REQUIRES:
+		/* TRANSLATORS: The role of the transaction, in present tense */
+		text = dgettext("PackageKit", "Getting requires");
+		break;
+	case PK_ROLE_ENUM_GET_UPDATES:
+		/* TRANSLATORS: The role of the transaction, in present tense */
+		text = dgettext("PackageKit", "Getting updates");
+		break;
+	case PK_ROLE_ENUM_SEARCH_DETAILS:
+		/* TRANSLATORS: The role of the transaction, in present tense */
+		text = dgettext("PackageKit", "Searching by details");
+		break;
+	case PK_ROLE_ENUM_SEARCH_FILE:
+		/* TRANSLATORS: The role of the transaction, in present tense */
+		text = dgettext("PackageKit", "Searching by file");
+		break;
+	case PK_ROLE_ENUM_SEARCH_GROUP:
+		/* TRANSLATORS: The role of the transaction, in present tense */
+		text = dgettext("PackageKit", "Searching groups");
+		break;
+	case PK_ROLE_ENUM_SEARCH_NAME:
+		/* TRANSLATORS: The role of the transaction, in present tense */
+		text = dgettext("PackageKit", "Searching by name");
+		break;
+	case PK_ROLE_ENUM_REMOVE_PACKAGES:
+		/* TRANSLATORS: The role of the transaction, in present tense */
+		text = dgettext("PackageKit", "Removing");
+		break;
+	case PK_ROLE_ENUM_INSTALL_PACKAGES:
+		/* TRANSLATORS: The role of the transaction, in present tense */
+		text = dgettext("PackageKit", "Installing");
+		break;
+	case PK_ROLE_ENUM_INSTALL_FILES:
+		/* TRANSLATORS: The role of the transaction, in present tense */
+		text = dgettext("PackageKit", "Installing files");
+		break;
+	case PK_ROLE_ENUM_REFRESH_CACHE:
+		/* TRANSLATORS: The role of the transaction, in present tense */
+		text = dgettext("PackageKit", "Refreshing cache");
+		break;
+	case PK_ROLE_ENUM_UPDATE_PACKAGES:
+		/* TRANSLATORS: The role of the transaction, in present tense */
+		text = dgettext("PackageKit", "Updating packages");
+		break;
+	case PK_ROLE_ENUM_UPDATE_SYSTEM:
+		/* TRANSLATORS: The role of the transaction, in present tense */
+		text = dgettext("PackageKit", "Updating system");
+		break;
+	case PK_ROLE_ENUM_CANCEL:
+		/* TRANSLATORS: The role of the transaction, in present tense */
+		text = dgettext("PackageKit", "Canceling");
+		break;
+	case PK_ROLE_ENUM_ROLLBACK:
+		/* TRANSLATORS: The role of the transaction, in present tense */
+		text = dgettext("PackageKit", "Rolling back");
+		break;
+	case PK_ROLE_ENUM_GET_REPO_LIST:
+		/* TRANSLATORS: The role of the transaction, in present tense */
+		text = dgettext("PackageKit", "Getting repositories");
+		break;
+	case PK_ROLE_ENUM_REPO_ENABLE:
+		/* TRANSLATORS: The role of the transaction, in present tense */
+		text = dgettext("PackageKit", "Enabling repository");
+		break;
+	case PK_ROLE_ENUM_REPO_SET_DATA:
+		/* TRANSLATORS: The role of the transaction, in present tense */
+		text = dgettext("PackageKit", "Setting data");
+		break;
+	case PK_ROLE_ENUM_RESOLVE:
+		/* TRANSLATORS: The role of the transaction, in present tense */
+		text = dgettext("PackageKit", "Resolving");
+		break;
+	case PK_ROLE_ENUM_GET_FILES:
+		/* TRANSLATORS: The role of the transaction, in present tense */
+		text = dgettext("PackageKit", "Getting file list");
+		break;
+	case PK_ROLE_ENUM_WHAT_PROVIDES:
+		/* TRANSLATORS: The role of the transaction, in present tense */
+		text = dgettext("PackageKit", "Getting provides");
+		break;
+	case PK_ROLE_ENUM_INSTALL_SIGNATURE:
+		/* TRANSLATORS: The role of the transaction, in present tense */
+		text = dgettext("PackageKit", "Installing signature");
+		break;
+	case PK_ROLE_ENUM_GET_PACKAGES:
+		/* TRANSLATORS: The role of the transaction, in present tense */
+		text = dgettext("PackageKit", "Getting packages");
+		break;
+	case PK_ROLE_ENUM_ACCEPT_EULA:
+		/* TRANSLATORS: The role of the transaction, in present tense */
+		text = dgettext("PackageKit", "Accepting EULA");
+		break;
+	case PK_ROLE_ENUM_DOWNLOAD_PACKAGES:
+		/* TRANSLATORS: The role of the transaction, in present tense */
+		text = dgettext("PackageKit", "Downloading packages");
+		break;
+	case PK_ROLE_ENUM_GET_DISTRO_UPGRADES:
+		/* TRANSLATORS: The role of the transaction, in present tense */
+		text = dgettext("PackageKit", "Getting upgrades");
+		break;
+	case PK_ROLE_ENUM_GET_CATEGORIES:
+		/* TRANSLATORS: The role of the transaction, in present tense */
+		text = dgettext("PackageKit", "Getting categories");
+		break;
+	case PK_ROLE_ENUM_GET_OLD_TRANSACTIONS:
+		/* TRANSLATORS: The role of the transaction, in present tense */
+		text = dgettext("PackageKit", "Getting transactions");
+		break;
+	case PK_ROLE_ENUM_SIMULATE_INSTALL_FILES:
+		/* TRANSLATORS: The role of the transaction, in present tense */
+		text = dgettext("PackageKit", "Simulating install");
+		break;
+	case PK_ROLE_ENUM_SIMULATE_INSTALL_PACKAGES:
+		/* TRANSLATORS: The role of the transaction, in present tense */
+		text = dgettext("PackageKit", "Simulating install");
+		break;
+	case PK_ROLE_ENUM_SIMULATE_REMOVE_PACKAGES:
+		/* TRANSLATORS: The role of the transaction, in present tense */
+		text = dgettext("PackageKit", "Simulating remove");
+		break;
+	case PK_ROLE_ENUM_SIMULATE_UPDATE_PACKAGES:
+		/* TRANSLATORS: The role of the transaction, in present tense */
+		text = dgettext("PackageKit", "Simulating update");
+		break;
+	default:
+		g_warning ("role unrecognised: %s", pk_role_enum_to_string (role));
+	}
+	return text;
+}
diff --git a/lib/packagekit-glib2/pk-enum.h b/lib/packagekit-glib2/pk-enum.h
index bb21756..7aa01d0 100644
--- a/lib/packagekit-glib2/pk-enum.h
+++ b/lib/packagekit-glib2/pk-enum.h
@@ -567,6 +567,10 @@ const gchar	*pk_authorize_type_enum_to_string	(PkAuthorizeEnum authorize_type);
 
 PkUpgradeKindEnum  pk_upgrade_kind_enum_from_string	(const gchar	*upgrade_kind);
 const gchar	*pk_upgrade_kind_enum_to_string		(PkUpgradeKindEnum upgrade_kind);
+const gchar	*pk_status_enum_to_localised_text	(PkStatusEnum	 status);
+const gchar	*pk_info_enum_to_localised_past		(PkInfoEnum	 info);
+const gchar	*pk_info_enum_to_localised_present	(PkInfoEnum	 info);
+const gchar	*pk_role_enum_to_localised_present	(PkRoleEnum	 role);
 
 G_END_DECLS
 
commit 9f14098bb98996f1c31fd442dc4fd307c44002e6
Author: Sebastian Heinlein <devel at glatzor.de>
Date:   Sat Dec 10 02:41:28 2011 +0100

    apt: Don't open the cache on backend initialization to speed up
    processing

diff --git a/backends/apt/aptBackend.py b/backends/apt/aptBackend.py
index 1b46ca4..b43b747 100755
--- a/backends/apt/aptBackend.py
+++ b/backends/apt/aptBackend.py
@@ -622,7 +622,6 @@ class PackageKitAptBackend(PackageKitBaseBackend):
         apt_pkg.config.set("DPkg::Options::", '--force-confdef')
         apt_pkg.config.set("DPkg::Options::", '--force-confold')
         PackageKitBaseBackend.__init__(self, cmds)
-        self._open_cache(progress=False)
 
     # Methods ( client -> engine -> backend )
 
@@ -1857,6 +1856,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
         """
         self.status(enums.STATUS_INFO)
         total = len(package_ids)
+        self._check_init(progress=False)
         for count, id in enumerate(package_ids):
             self.percentage(count / 100 * total)
             pkg = self._get_package_by_id(id)
diff --git a/backends/apt/tests/test_filters.py b/backends/apt/tests/test_filters.py
index 76b78d1..148946c 100644
--- a/backends/apt/tests/test_filters.py
+++ b/backends/apt/tests/test_filters.py
@@ -60,7 +60,7 @@ class FilterTests(mox.MoxTestBase):
                              "working package")
         self.backend.finished()
         self.mox.ReplayAll()
-        self.backend._cache.open()
+        self.backend._open_cache()
         # Install the package
         self.backend.dispatch_command("search-name",
                                       ["installed", "silly-base"])
@@ -74,7 +74,7 @@ class FilterTests(mox.MoxTestBase):
                              enums.INFO_AVAILABLE, mox.IsA(str))
         self.backend.finished()
         self.mox.ReplayAll()
-        self.backend._cache.open()
+        self.backend._open_cache()
         # Install the package
         self.backend.dispatch_command("search-name",
                                       ["~installed", "silly-depend-base"])
diff --git a/backends/apt/tests/test_modifiers.py b/backends/apt/tests/test_modifiers.py
index afbde21..d6cc84d 100644
--- a/backends/apt/tests/test_modifiers.py
+++ b/backends/apt/tests/test_modifiers.py
@@ -69,11 +69,11 @@ class CacheModifiersTests(mox.MoxTestBase):
                             "etc/apt/sources.list.d/test.list")
         with open(path, "w") as part_file:
             part_file.write("deb file://%s ./" % REPO_PATH)
-        self.backend._cache.open()
+        self.backend._open_cache()
         # Install the package
         self.backend.dispatch_command("refresh-cache", ["true"])
 
-        self.backend._cache.open()
+        self.backend._open_cache()
         pkg = self.backend._cache["silly-base"]
         self.assertTrue(pkg.candidate.origins[0].trusted)
 
@@ -86,11 +86,11 @@ class CacheModifiersTests(mox.MoxTestBase):
         self.chroot.add_test_repository()
         self.chroot.install_debfile(os.path.join(REPO_PATH,
                                                  "silly-base_0.1-0_all.deb"))
-        self.backend._cache.open()
+        self.backend._open_cache()
         # Install the package
         self.backend.dispatch_command("update-system", ["true"])
 
-        self.backend._cache.open()
+        self.backend._open_cache()
         self.assertEqual(self.backend._cache["silly-base"].installed.version,
                          "0.1-0update1")
 
@@ -103,12 +103,12 @@ class CacheModifiersTests(mox.MoxTestBase):
         self.chroot.add_test_repository()
         self.chroot.install_debfile(os.path.join(REPO_PATH,
                                                  "silly-base_0.1-0_all.deb"))
-        self.backend._cache.open()
+        self.backend._open_cache()
         # Install the package
         self.backend.dispatch_command("update-packages",
                                       ["true", "silly-base;0.1-0update1;all;"])
 
-        self.backend._cache.open()
+        self.backend._open_cache()
         self.assertEqual(self.backend._cache["silly-base"].installed.version,
                          "0.1-0update1")
 
@@ -119,11 +119,11 @@ class CacheModifiersTests(mox.MoxTestBase):
         # Setup environment
         self.mox.ReplayAll()
         self.chroot.add_test_repository()
-        self.backend._cache.open()
+        self.backend._open_cache()
         # Install the package
         self.backend.dispatch_command("install-packages",
                                       ["True", "silly-base;0.1-0update1;all;"])
-        self.backend._cache.open()
+        self.backend._open_cache()
         self.assertEqual(self.backend._cache["silly-base"].is_installed, True)
 
     def test_install_fail(self):
@@ -135,11 +135,11 @@ class CacheModifiersTests(mox.MoxTestBase):
         # Setup environment
         self.mox.ReplayAll()
         self.chroot.add_test_repository()
-        self.backend._cache.open()
+        self.backend._open_cache()
         # Install the package
         self.backend.dispatch_command("install-packages",
                                       ["True", "silly-fail;0.1-0;all;"])
-        self.backend._cache.open()
+        self.backend._open_cache()
         self.assertEqual(self.backend._cache["silly-base"].is_installed, False)
 
     def test_install_timeout(self):
@@ -156,7 +156,7 @@ class CacheModifiersTests(mox.MoxTestBase):
         # Copy the files for a small execution environment to execute dash
         os.system("dpkg -L dash libc6 |"
                   "xargs -i cp --parents '{}' %s" % self.chroot.path)
-        self.backend._cache.open()
+        self.backend._open_cache()
         aptBackend.TIMEOUT_IDLE_INSTALLATION = 5
         # Install the package
         self.backend.dispatch_command("install-packages",
@@ -172,11 +172,11 @@ class CacheModifiersTests(mox.MoxTestBase):
         # Setup environment
         self.mox.ReplayAll()
         self.chroot.add_test_repository(copy_sig=False)
-        self.backend._cache.open()
+        self.backend._open_cache()
         # Install the package
         self.backend.dispatch_command("install-packages",
                                       ["true", "silly-base;0.1-0update1;all;"])
-        self.backend._cache.open()
+        self.backend._open_cache()
         self.assertEqual(self.backend._cache["silly-base"].is_installed, False)
 
     def test_simulate_install(self):
@@ -189,7 +189,7 @@ class CacheModifiersTests(mox.MoxTestBase):
         # Setup environment
         self.mox.ReplayAll()
         self.chroot.add_test_repository()
-        self.backend._cache.open()
+        self.backend._open_cache()
         # Run the command
         self.backend.dispatch_command("simulate-install-packages",
                                       ["silly-depend-base;0.1-0;all;"])
@@ -198,7 +198,7 @@ class CacheModifiersTests(mox.MoxTestBase):
         """Test if we forbid to remove essential packages."""
         self.chroot.install_debfile(os.path.join(REPO_PATH,
                                                "silly-essential_0.1-0_all.deb"))
-        self.backend._cache.open()
+        self.backend._open_cache()
 
         self._catch_callbacks()
         self.backend.error(enums.ERROR_CANNOT_REMOVE_SYSTEM_PACKAGE,
@@ -210,7 +210,7 @@ class CacheModifiersTests(mox.MoxTestBase):
         self.backend.dispatch_command("remove-packages",
                                       ["true", "true",
                                        "silly-essential;0.1-0;all;"])
-        self.backend._cache.open()
+        self.backend._open_cache()
         self.assertTrue(self.backend._cache["silly-essential"].is_installed)
 
     def test_remove_disallow_deps(self):
@@ -218,7 +218,7 @@ class CacheModifiersTests(mox.MoxTestBase):
         for pkg in ["silly-base_0.1-0_all.deb",
                     "silly-depend-base_0.1-0_all.deb"]:
             self.chroot.install_debfile(os.path.join(REPO_PATH, pkg))
-        self.backend._cache.open()
+        self.backend._open_cache()
 
         self._catch_callbacks()
         self.backend.error(enums.ERROR_DEP_RESOLUTION_FAILED,
@@ -231,13 +231,14 @@ class CacheModifiersTests(mox.MoxTestBase):
                                       ["false", "true",
                                        "silly-base;0.1-0;all;"])
 
-        self.backend._cache.open()
+        self.backend._open_cache()
         self.assertEqual(self.backend._cache["silly-base"].is_installed, True)
         self.assertEqual(self.backend._cache["silly-depend-base"].is_installed,
                          True)
 
     def test_remove(self):
         """Test the removal of packages."""
+        self.backend._open_cache()
         for pkg in ["silly-base_0.1-0_all.deb",
                     "silly-depend-base_0.1-0_all.deb"]:
             self.chroot.install_debfile(os.path.join(REPO_PATH, pkg))
@@ -246,8 +247,7 @@ class CacheModifiersTests(mox.MoxTestBase):
             ext_states_file.write("""Package: silly-base
 Architecture: all
 Auto-Installed: 1""")
-        self.backend._cache.open()
-
+        self.backend._open_cache()
         self._catch_callbacks()
         self.backend.finished()
         self.mox.ReplayAll()
@@ -257,7 +257,7 @@ Auto-Installed: 1""")
                                       ["true", "true",
                                        "silly-depend-base;0.1-0;all;"])
 
-        self.backend._cache.open()
+        self.backend._open_cache()
         self.assertRaises(KeyError,
                           lambda: self.backend._cache["silly-depend-base"])
         self.assertRaises(KeyError, lambda: self.backend._cache["silly-base"])
@@ -272,12 +272,12 @@ Auto-Installed: 1""")
         # Setup environment
         self.mox.ReplayAll()
         self.chroot.add_test_repository()
-        self.backend._cache.open()
+        self.backend._open_cache()
         # Install the package files
         self.backend.dispatch_command("install-files",
                                       ["true", "|".join((debfile, debfile2))])
 
-        self.backend._cache.open()
+        self.backend._open_cache()
         self.assertEqual(self.backend._cache["silly-base"].is_installed, True)
         self.assertEqual(self.backend._cache["silly-essential"].is_installed,
                          True)
@@ -294,11 +294,11 @@ Auto-Installed: 1""")
         self.mox.ReplayAll()
         self.chroot.add_trusted_key()
         self.chroot.add_cdrom_repository()
-        self.backend._cache.open()
+        self.backend._open_cache()
         # Install the package
         self.backend.dispatch_command("install-packages",
                                       ["True", "silly-base;0.1-0;all;"])
-        self.backend._cache.open()
+        self.backend._open_cache()
         self.assertEqual(self.backend._cache["silly-base"].is_installed, False)
 
 
diff --git a/backends/apt/tests/test_queries.py b/backends/apt/tests/test_queries.py
index 6bcd9d1..74352d6 100644
--- a/backends/apt/tests/test_queries.py
+++ b/backends/apt/tests/test_queries.py
@@ -59,7 +59,7 @@ class QueryTests(mox.MoxTestBase):
                              "working package")
         self.backend.finished()
         self.mox.ReplayAll()
-        self.backend._cache.open()
+        self.backend._open_cache()
         # Install the package
         self.backend.dispatch_command("resolve",
                                       ["None", "silly-base"])
@@ -75,7 +75,7 @@ class QueryTests(mox.MoxTestBase):
                              "working package")
         self.backend.finished()
         self.mox.ReplayAll()
-        self.backend._cache.open()
+        self.backend._open_cache()
 
         self.backend.dispatch_command("search-name",
                                       ["None", "silly-base"])
@@ -88,7 +88,7 @@ class QueryTests(mox.MoxTestBase):
                              mox.IsA(str))
         self.backend.finished()
         self.mox.ReplayAll()
-        self.backend._cache.open()
+        self.backend._open_cache()
         # Install the package
         aptBackend.XAPIAN_SUPPORT = False
         self.backend.dispatch_command("search-details",
diff --git a/backends/apt/tests/test_updates.py b/backends/apt/tests/test_updates.py
index f76fe60..4ee7175 100644
--- a/backends/apt/tests/test_updates.py
+++ b/backends/apt/tests/test_updates.py
@@ -63,7 +63,7 @@ class GetUpdatesTests(mox.MoxTestBase):
         self.backend.finished()
         self.mox.ReplayAll()
         self.chroot.add_test_repository()
-        self.backend._cache.open()
+        self.backend._open_cache()
         self.backend.dispatch_command("get-updates", ["None"])
 
     def test_get_security_updates(self):
@@ -76,7 +76,7 @@ class GetUpdatesTests(mox.MoxTestBase):
         self.mox.ReplayAll()
         self.chroot.add_repository(os.path.join(get_tests_dir(),
                                                 "repo/security"))
-        self.backend._cache.open()
+        self.backend._open_cache()
         self.backend.dispatch_command("get-updates", ["None"])
 
     def test_get_backports(self):
@@ -89,7 +89,7 @@ class GetUpdatesTests(mox.MoxTestBase):
         self.mox.ReplayAll()
         self.chroot.add_repository(os.path.join(get_tests_dir(),
                                                 "repo/backports"))
-        self.backend._cache.open()
+        self.backend._open_cache()
         self.backend.dispatch_command("get-updates", ["None"])
 
 
commit 3ec85a96377b1dad90035d0acf98bcd4b5342c78
Author: Sebastian Heinlein <devel at glatzor.de>
Date:   Fri Dec 9 09:55:25 2011 +0100

    html: Update the matrix to include the new (Simulate)RepairSystem roles

diff --git a/docs/html/pk-matrix.html b/docs/html/pk-matrix.html
index bd4b9fe..f10e513 100644
--- a/docs/html/pk-matrix.html
+++ b/docs/html/pk-matrix.html
@@ -627,6 +627,44 @@
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- yum -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- zypp -->
 </tr>
+<tr>
+<td><b>RepairSystem</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 -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- entropy -->
+<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><!-- slapt -->
+<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>SimulateRepairSystem</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 -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- entropy -->
+<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><!-- slapt -->
+<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>
 </table>
 
 <h4>Filters</h4>
commit a59fbfab40a44c8c246bb2802d36dd3b779001ce
Author: Sebastian Heinlein <devel at glatzor.de>
Date:   Fri Dec 9 09:51:35 2011 +0100

    apt: Add support for repair-system and simulate-repair-system including
    correpsonding test cases

diff --git a/backends/apt/aptBackend.py b/backends/apt/aptBackend.py
index 1b46ca4..19c8ede 100755
--- a/backends/apt/aptBackend.py
+++ b/backends/apt/aptBackend.py
@@ -1042,6 +1042,42 @@ class PackageKitAptBackend(PackageKitBaseBackend):
 
     @catch_pkerror
     @lock_cache
+    def repair_system(self, only_trusted):
+        """Recover from broken dependencies."""
+        pklog.info("Repairing system")
+        self.status(enums.STATUS_DEP_RESOLVE)
+        self.allow_cancel(False)
+        self.percentage(0)
+        self._check_init(fail_broken=False)
+        try:
+            self._cache._depcache.fix_broken()
+        except SystemError:
+            broken = [pkg.name for pkg in self._cache if pkg.is_inst_broken]
+            raise PKError(enums.ERROR_DEP_RESOLUTION_FAILED,
+                          "The following packages would break and so block"
+                          "the removal: %s" % " ".join(broken))
+        self._check_trusted(only_trusted)
+        self._commit_changes()
+
+    @catch_pkerror
+    def simulate_repair_system(self):
+        """Simulate recovery from broken dependencies."""
+        pklog.info("Simulating system repair")
+        self.status(enums.STATUS_DEP_RESOLVE)
+        self.allow_cancel(False)
+        self.percentage(0)
+        self._check_init(fail_broken=False)
+        try:
+            self._cache._depcache.fix_broken()
+        except SystemError:
+            broken = [pkg.name for pkg in self._cache if pkg.is_inst_broken]
+            raise PKError(enums.ERROR_DEP_RESOLUTION_FAILED,
+                          "The following packages would break and so block"
+                          "the removal: %s" % " ".join(broken))
+        self._emit_changes()
+
+    @catch_pkerror
+    @lock_cache
     def remove_packages(self, allow_deps, auto_remove, ids):
         """Remove packages."""
         pklog.info("Removing package(s): id %s" % ids)
@@ -1873,7 +1909,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
             return False
         return True
 
-    def _open_cache(self, start=0, end=100, progress=True):
+    def _open_cache(self, start=0, end=100, progress=True, fail_broken=True):
         """(Re)Open the APT cache."""
         pklog.debug("Open APT cache")
         self.status(enums.STATUS_LOADING_CACHE)
@@ -1887,7 +1923,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
         except Exception as error:
             raise PKError(enums.ERROR_NO_CACHE,
                           "Package cache could not be opened:%s" % error)
-        if self._cache.broken_count > 0:
+        if self._cache.broken_count > 0 and fail_broken:
             raise PKError(enums.ERROR_DEP_RESOLUTION_FAILED,
                           "There are broken dependecies on your system. "
                           "Please use an advanced package manage e.g. "
@@ -1967,7 +2003,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
                               version.architecture, origin)
         return id
  
-    def _check_init(self, start=0, end=10, progress=True):
+    def _check_init(self, start=0, end=10, progress=True, fail_broken=True):
         """Check if the backend was initialized well and try to recover from
         a broken setup.
         """
@@ -1988,7 +2024,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
            (os.stat(pkg_cache)[stat.ST_MTIME] > self._last_cache_refresh) or \
            (os.stat(src_cache)[stat.ST_MTIME] > self._last_cache_refresh):
             pklog.debug("Reloading the cache is required")
-            self._open_cache(start, end, progress)
+            self._open_cache(start, end, progress, fail_broken)
         else:
             pass
         # Read the pin file of Synaptic if available
diff --git a/backends/apt/pk-backend-apt.c b/backends/apt/pk-backend-apt.c
index aa1db04..d8df2ff 100644
--- a/backends/apt/pk-backend-apt.c
+++ b/backends/apt/pk-backend-apt.c
@@ -485,6 +485,24 @@ pk_backend_what_provides (PkBackend *backend, PkBitfield filters, PkProvidesEnum
 }
 
 /**
+ * pk_backend_repair_system:
+ */
+void
+pk_backend_repair_system (PkBackend *backend, gboolean only_trusted)
+{
+	pk_backend_spawn_helper (spawn, BACKEND_FILE, "repair-system", pk_backend_bool_to_string (only_trusted), NULL);
+}
+
+/**
+ * pk_backend_simulate_repair_system:
+ */
+void
+pk_backend_simulate_repair_system (PkBackend *backend)
+{
+	pk_backend_spawn_helper (spawn, BACKEND_FILE, "simulate-repair-system", NULL);
+}
+
+/**
  * pk_backend_get_categories:
  *
 FIXME: Not implemented
diff --git a/backends/apt/tests/test_modifiers.py b/backends/apt/tests/test_modifiers.py
index afbde21..3f46523 100644
--- a/backends/apt/tests/test_modifiers.py
+++ b/backends/apt/tests/test_modifiers.py
@@ -301,6 +301,39 @@ Auto-Installed: 1""")
         self.backend._cache.open()
         self.assertEqual(self.backend._cache["silly-base"].is_installed, False)
 
+    def test_repair_system(self):
+        """Test the recovery of broken dependencies."""
+        self._catch_callbacks()
+        self.backend.finished()
+        # Setup environment
+        self.mox.ReplayAll()
+        self.chroot.add_test_repository()
+        for pkg in ("silly-depend-base_0.1-0_all.deb", "silly-broken_0.1-0_all.deb"):
+            self.chroot.install_debfile(os.path.join(REPO_PATH, pkg), True)
+        self.backend._cache.open()
+        # Install the package
+        self.backend.dispatch_command("repair-system", [True])
+        self.backend._cache.open()
+        self.assertEqual(self.backend._cache["silly-base"].is_installed, True)
+        self.assertEqual(self.backend._cache["silly-depend-base"].is_installed, True)
+        self.assertEqual(self.backend._cache["silly-broken"].is_installed, False)
+
+    def test_simulate_repair_system(self):
+        """Test simulation a system recovery."""
+        self._catch_callbacks("package")
+        self.backend.package("silly-base;0.1-0update1;all;",
+                             enums.INFO_INSTALLING, mox.IsA(str))
+        self.backend.package("silly-broken;0.1-0;all;", enums.INFO_REMOVING, mox.IsA(str))
+        self.backend.finished()
+        # Setup environment
+        self.mox.ReplayAll()
+        self.chroot.add_test_repository()
+        for pkg in ("silly-depend-base_0.1-0_all.deb", "silly-broken_0.1-0_all.deb"):
+            self.chroot.install_debfile(os.path.join(REPO_PATH, pkg), True)
+        self.backend._cache.open()
+        # Install the package
+        self.backend.dispatch_command("simulate-repair-system", [])
+
 
 if __name__ == "__main__":
     unittest.main()
commit af5596aec207414915f3780ba535f5c7f8e2c827
Author: Sebastian Heinlein <devel at glatzor.de>
Date:   Fri Dec 9 09:20:32 2011 +0100

    Add new roles SimulateRepairSystem and RepairSystem
    
    This allows to recover from a broken package management system,
    e.g. if a package with unsatisfied dependencies has been forced to
    install using a low level tool like rpm or dpkg or if the system
    was shut down during an installation.

diff --git a/backends/box/pk-backend-box.c b/backends/box/pk-backend-box.c
index a6f930a..59eba27 100644
--- a/backends/box/pk-backend-box.c
+++ b/backends/box/pk-backend-box.c
@@ -736,6 +736,8 @@ PK_BACKEND_OPTIONS (
 	NULL,					/* simulate_remove_packages */
 	NULL,					/* simulate_update_packages */
 	NULL,					/* upgrade_system */
+	NULL,					/* repair_system */
+	NULL,					/* simulate_repair_system */
 	NULL,					/* transaction_start */
 	NULL					/* transaction_stop */
 );
diff --git a/backends/opkg/pk-backend-opkg.c b/backends/opkg/pk-backend-opkg.c
index e0b77d9..27ab92c 100644
--- a/backends/opkg/pk-backend-opkg.c
+++ b/backends/opkg/pk-backend-opkg.c
@@ -752,6 +752,8 @@ PK_BACKEND_OPTIONS (
 	NULL,					/* simulate_remove_packages */
 	NULL,					/* simulate_update_packages */
 	NULL,					/* upgrade_system */
+	NULL,					/* repair_system */
+	NULL,					/* simulate_repair_system */
 	NULL,					/* transaction_start */
 	NULL					/* transaction_stop */
 );
diff --git a/backends/pisi/pk-backend-pisi.c b/backends/pisi/pk-backend-pisi.c
index 9635708..9392658 100644
--- a/backends/pisi/pk-backend-pisi.c
+++ b/backends/pisi/pk-backend-pisi.c
@@ -400,6 +400,8 @@ PK_BACKEND_OPTIONS (
 	NULL,					/* simulate_remove_packages */
 	NULL,					/* simulate_update_packages */
 	NULL,					/* upgrade_system */
+	NULL,					/* repair_system */
+	NULL,					/* simulate_repair_system */
 	NULL,					/* transaction_start */
 	NULL					/* transaction_stop */
 );
diff --git a/client/pk-console.c b/client/pk-console.c
index 9ea7eef..2636bdc 100644
--- a/client/pk-console.c
+++ b/client/pk-console.c
@@ -1220,6 +1220,8 @@ pk_console_get_summary (void)
 		g_string_append_printf (string, "  %s\n", "accept-eula [eula-id]");
 	if (pk_bitfield_contain (roles, PK_ROLE_ENUM_GET_CATEGORIES))
 		g_string_append_printf (string, "  %s\n", "get-categories");
+	if (pk_bitfield_contain (roles, PK_ROLE_ENUM_REPAIR_SYSTEM))
+		g_string_append_printf (string, "  %s\n", "repair");
 	return g_string_free (string, FALSE);
 }
 
@@ -1785,6 +1787,11 @@ main (int argc, char *argv[])
 					     (PkProgressCallback) pk_console_progress_cb, NULL,
 					     (GAsyncReadyCallback) pk_console_finished_cb, NULL);
 
+	} else if (strcmp (mode, "repair") == 0) {
+		pk_task_repair_system_async (PK_TASK(task), cancellable,
+		                             (PkProgressCallback) pk_console_progress_cb, NULL,
+		                             (GAsyncReadyCallback) pk_console_finished_cb, NULL);
+
 	} else {
 		/* TRANSLATORS: The user tried to use an unsupported option on the command line */
 		error = g_error_new (1, 0, _("Option '%s' is not supported"), mode);
diff --git a/contrib/pk-completion.bash b/contrib/pk-completion.bash
index bae7db7..6decb41 100755
--- a/contrib/pk-completion.bash
+++ b/contrib/pk-completion.bash
@@ -46,6 +46,7 @@ __pkcon_commandlist="
     search
     update
     upgrade-system
+    repair
     "
 
 __pkconcomp ()
diff --git a/lib/packagekit-glib2/pk-client-sync.c b/lib/packagekit-glib2/pk-client-sync.c
index 654de09..0b666a2 100644
--- a/lib/packagekit-glib2/pk-client-sync.c
+++ b/lib/packagekit-glib2/pk-client-sync.c
@@ -1680,7 +1680,6 @@ pk_client_simulate_update_packages (PkClient *client, gchar **package_ids, GCanc
 	return results;
 }
 
-
 /**
  * pk_client_upgrade_system:
  * @distro_id: a distro ID such as "fedora-14"
@@ -1736,6 +1735,118 @@ pk_client_upgrade_system (PkClient *client, const gchar *distro_id, PkUpgradeKin
 }
 
 /**
+ * pk_client_repair_system:
+ * @only_trusted: if only trusted packages should be installed
+ * @cancellable: a #GCancellable or %NULL
+ * @progress_callback: (scope call): the function to run when the progress changes
+ * @progress_user_data: data to pass to @progress_callback
+ * @error: the #GError to store any failure, or %NULL
+ *
+ * This transaction will try to recover from a broken package management system:
+ * e.g. the installation of a package with unsatisfied dependencies has
+ * been forced by using a low level tool (rpm or dpkg) or the
+ * system was shutdown during processing an installation.
+ *
+ * The backend will decide what is best to do.
+ *
+ * Warning: this function is synchronous, and may block. Do not use it in GUI
+ * applications.
+ *
+ * Return value: (transfer full): a %PkResults object, or NULL for error
+ *
+ * Since: 0.7.2
+ **/
+PkResults *
+pk_client_repair_system (PkClient *client,
+                         gboolean only_trusted,
+                         GCancellable *cancellable,
+                         PkProgressCallback progress_callback,
+                         gpointer progress_user_data, GError **error)
+{
+	PkClientHelper *helper;
+	PkResults *results;
+
+	g_return_val_if_fail (PK_IS_CLIENT (client), NULL);
+	g_return_val_if_fail (error == NULL || *error == NULL, NULL);
+
+	/* create temp object */
+	helper = g_new0 (PkClientHelper, 1);
+	helper->loop = g_main_loop_new (NULL, FALSE);
+	helper->error = error;
+
+	/* run async method */
+	pk_client_repair_system_async (client, only_trusted,
+	                               cancellable, progress_callback, progress_user_data,
+	                               (GAsyncReadyCallback) pk_client_generic_finish_sync,
+	                               helper);
+
+	g_main_loop_run (helper->loop);
+
+	results = helper->results;
+
+	/* free temp object */
+	g_main_loop_unref (helper->loop);
+	g_free (helper);
+
+	return results;
+}
+
+/**
+ * pk_client_simulate_repair_system:
+ * @cancellable: a #GCancellable or %NULL
+ * @progress_callback: (scope call): the function to run when the progress changes
+ * @progress_user_data: data to pass to @progress_callback
+ * @error: the #GError to store any failure, or %NULL
+ *
+ * This transaction simultes the recovery from a broken package management system:
+ * e.g. the installation of a package with unsatisfied dependencies has
+ * been forced by using a low level tool (rpm or dpkg) or the
+ * system was shutdown during processing an installation.
+ *
+ * The backend will decide what is best to do.
+ *
+ * Warning: this function is synchronous, and may block. Do not use it in GUI
+ * applications.
+ *
+ * Return value: (transfer full): a %PkResults object, or NULL for error
+ *
+ * Since: 0.7.2
+ **/
+PkResults *
+pk_client_simulate_repair_system (PkClient *client,
+                                  GCancellable *cancellable,
+                                  PkProgressCallback progress_callback,
+                                  gpointer progress_user_data, GError **error)
+{
+	PkClientHelper *helper;
+	PkResults *results;
+
+	g_return_val_if_fail (PK_IS_CLIENT (client), NULL);
+	g_return_val_if_fail (error == NULL || *error == NULL, NULL);
+
+	/* create temp object */
+	helper = g_new0 (PkClientHelper, 1);
+	helper->loop = g_main_loop_new (NULL, FALSE);
+	helper->error = error;
+
+	/* run async method */
+	pk_client_simulate_repair_system_async (client,
+	                                        cancellable, progress_callback, progress_user_data,
+	                                        (GAsyncReadyCallback) pk_client_generic_finish_sync,
+	                                        helper);
+
+	g_main_loop_run (helper->loop);
+
+	results = helper->results;
+
+	/* free temp object */
+	g_main_loop_unref (helper->loop);
+	g_free (helper);
+
+	return results;
+}
+
+/**
  * pk_client_adopt:
  * @client: a valid #PkClient instance
  * @transaction_id: a transaction ID such as "/21_ebcbdaae_data"
diff --git a/lib/packagekit-glib2/pk-client-sync.h b/lib/packagekit-glib2/pk-client-sync.h
index e162c3e..d514079 100644
--- a/lib/packagekit-glib2/pk-client-sync.h
+++ b/lib/packagekit-glib2/pk-client-sync.h
@@ -289,6 +289,19 @@ PkResults	*pk_client_upgrade_system		(PkClient		*client,
 							 gpointer		 progress_user_data,
 							 GError			**error);
 
+PkResults	*pk_client_repair_system		(PkClient		*client,
+							 gboolean		 only_trusted,
+							 GCancellable		*cancellable,
+							 PkProgressCallback	 progress_callback,
+							 gpointer		 progress_user_data,
+							 GError			**error);
+
+PkResults	*pk_client_simulate_repair_system	(PkClient		*client,
+							 GCancellable		*cancellable,
+							 PkProgressCallback	 progress_callback,
+							 gpointer		 progress_user_data,
+							 GError			**error);
+
 PkResults	*pk_client_adopt 			(PkClient		*client,
 							 const gchar		*transaction_id,
 							 GCancellable		*cancellable,
diff --git a/lib/packagekit-glib2/pk-client.c b/lib/packagekit-glib2/pk-client.c
index 0bf2247..c7443d2 100644
--- a/lib/packagekit-glib2/pk-client.c
+++ b/lib/packagekit-glib2/pk-client.c
@@ -1803,6 +1803,15 @@ pk_client_set_hints_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkClientState *
 						       G_TYPE_STRING, state->distro_id,
 						       G_TYPE_STRING, pk_upgrade_kind_enum_to_string (state->upgrade_kind),
 						       G_TYPE_INVALID);
+	} else if (state->role == PK_ROLE_ENUM_REPAIR_SYSTEM) {
+		state->call = dbus_g_proxy_begin_call (state->proxy, "RepairSystem",
+						       (DBusGProxyCallNotify) pk_client_method_cb, state, NULL,
+						       G_TYPE_BOOLEAN, state->only_trusted,
+						       G_TYPE_INVALID);
+	} else if (state->role == PK_ROLE_ENUM_SIMULATE_REPAIR_SYSTEM) {
+		state->call = dbus_g_proxy_begin_call (state->proxy, "SimulateRepairSystem",
+						       (DBusGProxyCallNotify) pk_client_method_cb, state, NULL,
+						       G_TYPE_INVALID);
 	} else {
 		g_assert_not_reached ();
 	}
@@ -4238,7 +4247,6 @@ out:
 	g_object_unref (res);
 }
 
-
 /**
  * pk_client_upgrade_system_async:
  * @client: a valid #PkClient instance
@@ -4305,6 +4313,139 @@ out:
 	g_object_unref (res);
 }
 
+/**
+ * pk_client_repair_system_async:
+ * @client: a valid #PkClient instance
+ * @only_trusted: only trusted packages should be installed
+ * @cancellable: a #GCancellable or %NULL
+ * @progress_callback: (scope call): 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
+ *
+ * This transaction will try to recover from a broken package management system:
+ * e.g. the installation of a package with unsatisfied dependencies has
+ * been forced by the user using a low level tool (rpm or dpkg) or the
+ * system was shutdown during processing an installation.
+ *
+ * The backend will decide what is best to do.
+ *
+ * Since: 0.7.2
+ **/
+void
+pk_client_repair_system_async (PkClient *client,
+                               gboolean only_trusted,
+                               GCancellable *cancellable,
+                               PkProgressCallback progress_callback,
+                               gpointer progress_user_data,
+                               GAsyncReadyCallback callback_ready, gpointer user_data)
+{
+	GSimpleAsyncResult *res;
+	PkClientState *state;
+	GError *error = NULL;
+
+	g_return_if_fail (PK_IS_CLIENT (client));
+	g_return_if_fail (callback_ready != NULL);
+	g_return_if_fail (cancellable == NULL || G_IS_CANCELLABLE (cancellable));
+
+	res = g_simple_async_result_new (G_OBJECT (client), callback_ready, user_data, pk_client_repair_system_async);
+
+	/* save state */
+	state = g_slice_new0 (PkClientState);
+	state->role = PK_ROLE_ENUM_REPAIR_SYSTEM;
+	state->res = g_object_ref (res);
+	state->client = g_object_ref (client);
+	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->only_trusted = only_trusted;
+	state->progress_callback = progress_callback;
+	state->progress_user_data = progress_user_data;
+	state->progress = pk_progress_new ();
+
+	/* check not already cancelled */
+	if (cancellable != NULL && g_cancellable_set_error_if_cancelled (cancellable, &error)) {
+		pk_client_state_finish (state, error);
+		g_error_free (error);
+		goto out;
+	}
+
+	/* identify */
+	pk_client_set_role (state, state->role);
+
+	/* get tid */
+	pk_control_get_tid_async (client->priv->control, cancellable, (GAsyncReadyCallback) pk_client_get_tid_cb, state);
+out:
+	g_object_unref (res);
+}
+
+/**
+ * pk_client_simulate_repair_system_async:
+ * @client: a valid #PkClient instance
+ * @only_trusted: only trusted packages should be installed
+ * @cancellable: a #GCancellable or %NULL
+ * @progress_callback: (scope call): 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
+ *
+ * This transaction simulates a recovery from a broken package management system:
+ * e.g. the installation of a package with unsatisfied dependencies has
+ * been forced by the user using a low level tool (rpm or dpkg) or the
+ * system was shutdown during processing an installation.
+ *
+ * The backend will decide what is best to do.
+ *
+ * Since: 0.7.2
+ **/
+void
+pk_client_simulate_repair_system_async (PkClient *client,
+                                        GCancellable *cancellable,
+                                        PkProgressCallback progress_callback,
+                                        gpointer progress_user_data,
+                                        GAsyncReadyCallback callback_ready,
+                                        gpointer user_data)
+{
+	GSimpleAsyncResult *res;
+	PkClientState *state;
+	GError *error = NULL;
+
+	g_return_if_fail (PK_IS_CLIENT (client));
+	g_return_if_fail (callback_ready != NULL);
+	g_return_if_fail (cancellable == NULL || G_IS_CANCELLABLE (cancellable));
+
+	res = g_simple_async_result_new (G_OBJECT (client), callback_ready, user_data, pk_client_repair_system_async);
+
+	/* save state */
+	state = g_slice_new0 (PkClientState);
+	state->role = PK_ROLE_ENUM_SIMULATE_REPAIR_SYSTEM;
+	state->res = g_object_ref (res);
+	state->client = g_object_ref (client);
+	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->progress_callback = progress_callback;
+	state->progress_user_data = progress_user_data;
+	state->progress = pk_progress_new ();
+
+	/* check not already cancelled */
+	if (cancellable != NULL && g_cancellable_set_error_if_cancelled (cancellable, &error)) {
+		pk_client_state_finish (state, error);
+		g_error_free (error);
+		goto out;
+	}
+
+	/* identify */
+	pk_client_set_role (state, state->role);
+
+	/* get tid */
+	pk_control_get_tid_async (client->priv->control, cancellable, (GAsyncReadyCallback) pk_client_get_tid_cb, state);
+out:
+	g_object_unref (res);
+}
+
 /***************************************************************************************************/
 
 /**
diff --git a/lib/packagekit-glib2/pk-client.h b/lib/packagekit-glib2/pk-client.h
index 11c2bad..a4d2454 100644
--- a/lib/packagekit-glib2/pk-client.h
+++ b/lib/packagekit-glib2/pk-client.h
@@ -402,6 +402,22 @@ void		 pk_client_upgrade_system_async		(PkClient		*client,
 							 GAsyncReadyCallback	 callback_ready,
 							 gpointer		 user_data);
 
+void		 pk_client_repair_system_async		(PkClient		*client,
+							 gboolean		 only_trusted,
+							 GCancellable		*cancellable,
+							 PkProgressCallback	 progress_callback,
+							 gpointer		 progress_user_data,
+							 GAsyncReadyCallback	 callback_ready,
+							 gpointer		 user_data);
+
+
+void		 pk_client_simulate_repair_system_async	(PkClient		*client,
+							 GCancellable		*cancellable,
+							 PkProgressCallback	 progress_callback,
+							 gpointer		 progress_user_data,
+							 GAsyncReadyCallback	 callback_ready,
+							 gpointer		 user_data);
+
 void		 pk_client_adopt_async 			(PkClient		*client,
 							 const gchar		*transaction_id,
 							 GCancellable		*cancellable,
diff --git a/lib/packagekit-glib2/pk-enum.c b/lib/packagekit-glib2/pk-enum.c
index 918c532..cfad3f5 100644
--- a/lib/packagekit-glib2/pk-enum.c
+++ b/lib/packagekit-glib2/pk-enum.c
@@ -127,6 +127,8 @@ static const PkEnumMatch enum_role[] = {
 	{PK_ROLE_ENUM_SIMULATE_REMOVE_PACKAGES,		"simulate-remove-packages"},
 	{PK_ROLE_ENUM_SIMULATE_UPDATE_PACKAGES,		"simulate-update-packages"},
 	{PK_ROLE_ENUM_UPGRADE_SYSTEM,			"upgrade-system"},
+	{PK_ROLE_ENUM_REPAIR_SYSTEM,			"repair-system"},
+	{PK_ROLE_ENUM_SIMULATE_REPAIR_SYSTEM,		"simulate-repair-system"},
 	{0, NULL}
 };
 
diff --git a/lib/packagekit-glib2/pk-enum.h b/lib/packagekit-glib2/pk-enum.h
index bb21756..bae65b2 100644
--- a/lib/packagekit-glib2/pk-enum.h
+++ b/lib/packagekit-glib2/pk-enum.h
@@ -85,6 +85,8 @@ typedef enum {
 	PK_ROLE_ENUM_SIMULATE_REMOVE_PACKAGES,
 	PK_ROLE_ENUM_SIMULATE_UPDATE_PACKAGES,
 	PK_ROLE_ENUM_UPGRADE_SYSTEM,			/* Since: 0.6.11 */
+	PK_ROLE_ENUM_REPAIR_SYSTEM,			/* Since: 0.7.2 */
+	PK_ROLE_ENUM_SIMULATE_REPAIR_SYSTEM,		/* Since: 0.7.2 */
 	PK_ROLE_ENUM_LAST
 } PkRoleEnum;
 
diff --git a/lib/packagekit-glib2/pk-self-test.c b/lib/packagekit-glib2/pk-self-test.c
index f35b6e2..ea2beaf 100644
--- a/lib/packagekit-glib2/pk-self-test.c
+++ b/lib/packagekit-glib2/pk-self-test.c
@@ -956,7 +956,8 @@ pk_test_control_get_properties_cb (GObject *object, GAsyncResult *res, gpointer
 		     "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;upgrade-system");
+		     "simulate-remove-packages;simulate-update-packages;upgrade-system;"
+		     "repair-system;simulate-repair-system");
 	g_free (text);
 
 	/* check filters */
diff --git a/lib/packagekit-glib2/pk-task-sync.c b/lib/packagekit-glib2/pk-task-sync.c
index ff04ac9..4d8b226 100644
--- a/lib/packagekit-glib2/pk-task-sync.c
+++ b/lib/packagekit-glib2/pk-task-sync.c
@@ -1150,3 +1150,52 @@ pk_task_repo_enable_sync (PkTask *task, const gchar *repo_id, gboolean enabled,
 	return results;
 }
 
+/**
+ * pk_task_repair_system_sync:
+ * @task: a valid #PkTask 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
+ * @error: the #GError to store any failure, or %NULL
+ *
+ * Recover from broken dependencies of installed packages or incomplete
+ * installations.
+ *
+ * Warning: this function is synchronous, and may block. Do not use it in GUI
+ * applications.
+ *
+ * Return value: a %PkResults object, or NULL for error
+ *
+ * Since: 0.7.2
+ **/
+PkResults *
+pk_task_repair_system_sync (PkTask *task, GCancellable *cancellable,
+                            PkProgressCallback progress_callback, gpointer progress_user_data,
+                            GError **error)
+{
+	PkTaskHelper *helper;
+	PkResults *results;
+
+	g_return_val_if_fail (PK_IS_TASK (task), NULL);
+	g_return_val_if_fail (error == NULL || *error == NULL, NULL);
+
+	/* create temp object */
+	helper = g_new0 (PkTaskHelper, 1);
+	helper->loop = g_main_loop_new (NULL, FALSE);
+	helper->error = error;
+
+	/* run async method */
+	pk_task_repair_system_async (task, cancellable, progress_callback, progress_user_data,
+	                             (GAsyncReadyCallback) pk_task_generic_finish_sync,
+	                             helper);
+
+	g_main_loop_run (helper->loop);
+
+	results = helper->results;
+
+	/* free temp object */
+	g_main_loop_unref (helper->loop);
+	g_free (helper);
+
+	return results;
+}
diff --git a/lib/packagekit-glib2/pk-task-sync.h b/lib/packagekit-glib2/pk-task-sync.h
index fb9fc35..492a4de 100644
--- a/lib/packagekit-glib2/pk-task-sync.h
+++ b/lib/packagekit-glib2/pk-task-sync.h
@@ -210,6 +210,12 @@ PkResults	*pk_task_repo_enable_sync		(PkTask			*task,
 							 gpointer		 progress_user_data,
 							 GError			**error);
 
+PkResults	*pk_task_repair_system_sync		(PkTask			*task,
+							 GCancellable		*cancellable,
+							 PkProgressCallback	 progress_callback,
+							 gpointer		 progress_user_data,
+							 GError			**error);
+
 G_END_DECLS
 
 #endif /* __PK_TASK_SYNC_H */
diff --git a/lib/packagekit-glib2/pk-task.c b/lib/packagekit-glib2/pk-task.c
index 6bddfc8..b8d40c1 100644
--- a/lib/packagekit-glib2/pk-task.c
+++ b/lib/packagekit-glib2/pk-task.c
@@ -272,6 +272,10 @@ pk_task_do_async_action (PkTaskState *state)
 		pk_client_repo_enable_async (PK_CLIENT(state->task), state->repo_id, state->enabled,
 					     state->cancellable, state->progress_callback, state->progress_user_data,
 					     (GAsyncReadyCallback) pk_task_ready_cb, state);
+	} else if (state->role == PK_ROLE_ENUM_REPAIR_SYSTEM) {
+		pk_client_repair_system_async (PK_CLIENT(state->task), state->only_trusted,
+		                               state->cancellable, state->progress_callback, state->progress_user_data,
+		                               (GAsyncReadyCallback) pk_task_ready_cb, state);
 	} else {
 		g_assert_not_reached ();
 	}
@@ -430,6 +434,12 @@ pk_task_do_async_simulate_action (PkTaskState *state)
 		pk_client_simulate_install_files_async (PK_CLIENT(state->task), state->files,
 						        state->cancellable, state->progress_callback, state->progress_user_data,
 						        (GAsyncReadyCallback) pk_task_simulate_ready_cb, state);
+	} else if (state->role == PK_ROLE_ENUM_REPAIR_SYSTEM) {
+		/* simulate repair system async */
+		g_debug ("doing repair system");
+		pk_client_simulate_repair_system_async (PK_CLIENT(state->task),
+		                                        state->cancellable, state->progress_callback, state->progress_user_data,
+		                                        (GAsyncReadyCallback) pk_task_simulate_ready_cb, state);
 	} else {
 		g_assert_not_reached ();
 	}
@@ -2141,6 +2151,58 @@ pk_task_repo_enable_async (PkTask *task, const gchar *repo_id, gboolean enabled,
 }
 
 /**
+ * pk_task_repair_system_async:
+ * @task: a valid #PkTask instance
+ * @cancellable: a #GCancellable or %NULL
+ * @progress_callback: (scope call): 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
+ *
+ * Recover the system from broken dependencies and aborted installations.
+ *
+ * Since: 0.7.2
+ **/
+void
+pk_task_repair_system_async (PkTask *task, GCancellable *cancellable,
+                             PkProgressCallback progress_callback, gpointer progress_user_data,
+                             GAsyncReadyCallback callback_ready, gpointer user_data)
+{
+	GSimpleAsyncResult *res;
+	PkTaskState *state;
+	PkTaskClass *klass = PK_TASK_GET_CLASS (task);
+
+	g_return_if_fail (PK_IS_CLIENT (task));
+	g_return_if_fail (callback_ready != NULL);
+	g_return_if_fail (cancellable == NULL || G_IS_CANCELLABLE (cancellable));
+
+	res = g_simple_async_result_new (G_OBJECT (task), callback_ready, user_data, pk_task_repair_system_async);
+
+	/* save state */
+	state = g_slice_new0 (PkTaskState);
+	state->role = PK_ROLE_ENUM_REPAIR_SYSTEM;
+	state->res = g_object_ref (res);
+	state->task = g_object_ref (task);
+	if (cancellable != NULL)
+		state->cancellable = g_object_ref (cancellable);
+	state->only_trusted = TRUE;
+	state->progress_callback = progress_callback;
+	state->progress_user_data = progress_user_data;
+	state->request = pk_task_generate_request_id ();
+
+	g_debug ("adding state %p", state);
+	g_ptr_array_add (task->priv->array, state);
+
+	/* start trusted repair system async */
+	if (task->priv->simulate && klass->simulate_question != NULL)
+		pk_task_do_async_simulate_action (state);
+	else
+		pk_task_do_async_action (state);
+
+	g_object_unref (res);
+}
+
+/**
  * pk_task_generic_finish:
  * @task: a valid #PkTask instance
  * @res: the #GAsyncResult
diff --git a/lib/packagekit-glib2/pk-task.h b/lib/packagekit-glib2/pk-task.h
index de40af6..93a1f4c 100644
--- a/lib/packagekit-glib2/pk-task.h
+++ b/lib/packagekit-glib2/pk-task.h
@@ -268,6 +268,12 @@ void		 pk_task_repo_enable_async		(PkTask			*task,
 							 gpointer		 progress_user_data,
 							 GAsyncReadyCallback	 callback_ready,
 							 gpointer		 user_data);
+void		 pk_task_repair_system_async		(PkTask			*task,
+							 GCancellable		*cancellable,
+							 PkProgressCallback	 progress_callback,
+							 gpointer		 progress_user_data,
+							 GAsyncReadyCallback	 callback_ready,
+							 gpointer		 user_data);
 
 gboolean	 pk_task_user_accepted			(PkTask			*task,
 							 guint			 request);
diff --git a/lib/python/packagekit/backend.py b/lib/python/packagekit/backend.py
index 4771469..0fff1bb 100644
--- a/lib/python/packagekit/backend.py
+++ b/lib/python/packagekit/backend.py
@@ -621,6 +621,22 @@ class PackageKitBaseBackend:
         '''
         self.error(ERROR_NOT_SUPPORTED, "This function is not implemented in this backend", exit=False)
 
+    def repair_system(self, only_trusted):
+        '''
+        Implement the {backend}-repair-system 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_repair_system(self):
+        '''
+        Implement the {backend}-simulate-repair-system 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
@@ -793,6 +809,12 @@ class PackageKitBaseBackend:
         elif cmd == 'upgrade-system':
             self.upgrade_system(args[0])
             self.finished()
+        elif cmd == 'repair-system':
+            self.repair_system(args[0])
+            self.finished()
+        elif cmd == 'simulate-repair-system':
+            self.simulate_repair_system()
+            self.finished()
         else:
             errmsg = "command '%s' is not known" % cmd
             self.error(ERROR_INTERNAL_ERROR, errmsg, exit=False)
diff --git a/src/org.freedesktop.PackageKit.Transaction.xml b/src/org.freedesktop.PackageKit.Transaction.xml
index debeb57..8a9972c 100644
--- a/src/org.freedesktop.PackageKit.Transaction.xml
+++ b/src/org.freedesktop.PackageKit.Transaction.xml
@@ -1640,6 +1640,64 @@
     </method>
 
     <!--*****************************************************************************************-->
+    <method name="SimulateRepairSystem">
+      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
+      <doc:doc>
+        <doc:description>
+          <doc:para>
+            This method simulates recovering the package management system from e.g.
+            unsatisfied dependencies of installed packages emitting packages required to be
+            installed, removed, updated, reinstalled, downgraded, obsoleted or untrusted.
+            The latter is used to present the user untrusted packages that are about to be installed.
+          </doc:para>
+          <doc:para>
+            This method typically emits
+            <doc:tt>Progress</doc:tt>,
+            <doc:tt>Status</doc:tt> and
+            <doc:tt>Error</doc:tt> and
+            <doc:tt>Package</doc:tt>.
+          </doc:para>
+        </doc:description>
+      </doc:doc>
+    </method>
+
+    <!--*****************************************************************************************-->
+    <method name="RepairSystem">
+      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
+      <doc:doc>
+        <doc:description>
+          <doc:para>
+            This method recovers the package management system from e.g.
+            unsatisfied dependencies of installed packages.
+          </doc:para>
+          <doc:para>
+            This method typically emits
+            <doc:tt>Progress</doc:tt>,
+            <doc:tt>Status</doc:tt> and
+            <doc:tt>Error</doc:tt> and
+            <doc:tt>Package</doc:tt>.
+          </doc:para>
+        </doc:description>
+      </doc:doc>
+      <arg type="b" name="only_trusted" direction="in">
+        <doc:doc>
+          <doc:summary>
+            <doc:para>
+              If the transaction is only allowed to install trusted packages.
+              Unsigned packages should not be installed if this parameter is <doc:tt>TRUE</doc:tt>.
+            </doc:para>
+            <doc:para>
+              If this method is can only install trusted packages, and the packages are unsigned, then
+              the backend will send a <doc:tt>ErrorCode(missing-gpg-signature)</doc:tt>.
+              On recieving this error, the client may choose to retry with only_trusted <doc:tt>FALSE</doc:tt>
+              after gaining further authentication.
+            </doc:para>
+          </doc:summary>
+        </doc:doc>
+      </arg>
+    </method>
+
+    <!--*****************************************************************************************-->
     <signal name="Category">
       <doc:doc>
         <doc:description>
diff --git a/src/pk-backend.c b/src/pk-backend.c
index 2ed71e1..e3c3655 100644
--- a/src/pk-backend.c
+++ b/src/pk-backend.c
@@ -328,6 +328,10 @@ pk_backend_get_roles (PkBackend *backend)
 		pk_bitfield_add (roles, PK_ROLE_ENUM_SIMULATE_UPDATE_PACKAGES);
 	if (desc->upgrade_system != NULL)
 		pk_bitfield_add (roles, PK_ROLE_ENUM_UPGRADE_SYSTEM);
+	if (desc->repair_system != NULL)
+		pk_bitfield_add (roles, PK_ROLE_ENUM_REPAIR_SYSTEM);
+	if (desc->simulate_repair_system != NULL)
+		pk_bitfield_add (roles, PK_ROLE_ENUM_SIMULATE_REPAIR_SYSTEM);
 	backend->priv->roles = roles;
 out:
 	return backend->priv->roles;
@@ -672,6 +676,8 @@ pk_backend_set_name (PkBackend *backend, const gchar *backend_name, GError **err
 			g_module_symbol (handle, "pk_backend_update_system", (gpointer *)&desc->update_system);
 			g_module_symbol (handle, "pk_backend_what_provides", (gpointer *)&desc->what_provides);
 			g_module_symbol (handle, "pk_backend_upgrade_system", (gpointer *)&desc->upgrade_system);
+			g_module_symbol (handle, "pk_backend_repair_system", (gpointer *)&desc->repair_system);
+			g_module_symbol (handle, "pk_backend_simulate_repair_system", (gpointer *)&desc->simulate_repair_system);
 
 			/* get old static string data */
 			ret = g_module_symbol (handle, "pk_backend_get_author", (gpointer *)&backend_vfunc);
@@ -3797,6 +3803,34 @@ pk_backend_upgrade_system (PkBackend *backend, const gchar *distro_id, PkUpgrade
 }
 
 /**
+ * pk_backend_repair_system:
+ */
+void
+pk_backend_repair_system (PkBackend *backend, gboolean only_trusted)
+{
+	g_return_if_fail (PK_IS_BACKEND (backend));
+	g_return_if_fail (backend->priv->desc->repair_system != NULL);
+	pk_backend_set_role_internal (backend, PK_ROLE_ENUM_REPAIR_SYSTEM);
+	pk_store_set_bool (backend->priv->store, "only_trusted", only_trusted);
+	pk_backend_transaction_reset (backend);
+	backend->priv->desc->repair_system (backend, only_trusted);
+}
+
+/**
+ * pk_backend_simulate_repair_system:
+ */
+void
+pk_backend_simulate_repair_system (PkBackend *backend)
+{
+	g_return_if_fail (PK_IS_BACKEND (backend));
+	g_return_if_fail (backend->priv->desc->repair_system != NULL);
+	pk_backend_set_role_internal (backend, PK_ROLE_ENUM_SIMULATE_REPAIR_SYSTEM);
+	pk_backend_set_bool (backend, "hint:simulate", TRUE);
+	pk_backend_transaction_reset (backend);
+	backend->priv->desc->simulate_repair_system (backend);
+}
+
+/**
  * pk_backend_init:
  **/
 static void
diff --git a/src/pk-backend.h b/src/pk-backend.h
index 86ee230..a3ed264 100644
--- a/src/pk-backend.h
+++ b/src/pk-backend.h
@@ -204,6 +204,9 @@ void		pk_backend_simulate_update_packages	(PkBackend	*backend,
 void		pk_backend_upgrade_system		(PkBackend	*backend,
 							 const gchar	*distro_id,
 							 PkUpgradeKindEnum upgrade_kind);
+void		pk_backend_repair_system		(PkBackend	*backend,
+							 gboolean	 only_trusted);
+void		pk_backend_simulate_repair_system	(PkBackend	*backend);
 
 /* set the state */
 gboolean	 pk_backend_accept_eula			(PkBackend	*backend,
@@ -483,7 +486,10 @@ typedef struct {
 							 const gchar	*distro_id,
 							 PkUpgradeKindEnum upgrade_kind);
 	void		(*transaction_reset)		(PkBackend	*backend);
-	gpointer	padding[6];
+	void		(*repair_system)		(PkBackend	*backend,
+							 gboolean	 only_trusted);
+	void		(*simulate_repair_system)	(PkBackend	*backend);
+	gpointer	padding[4];
 } PkBackendDesc;
 
 G_END_DECLS
diff --git a/src/pk-transaction.c b/src/pk-transaction.c
index 11028b8..449b760 100644
--- a/src/pk-transaction.c
+++ b/src/pk-transaction.c
@@ -2155,6 +2155,10 @@ pk_transaction_run (PkTransaction *transaction)
 		pk_backend_simulate_update_packages (priv->backend, priv->cached_package_ids);
 	} else if (priv->role == PK_ROLE_ENUM_UPGRADE_SYSTEM) {
 		pk_backend_upgrade_system (priv->backend, priv->cached_value, priv->cached_provides);
+	} else if (priv->role == PK_ROLE_ENUM_REPAIR_SYSTEM) {
+		pk_backend_repair_system (priv->backend, priv->cached_only_trusted);
+	} else if (priv->role == PK_ROLE_ENUM_SIMULATE_REPAIR_SYSTEM) {
+		pk_backend_simulate_repair_system (priv->backend);
 	} else {
 		g_error ("failed to run as role not assigned");
 		ret = FALSE;
@@ -2591,6 +2595,9 @@ pk_transaction_role_to_action_only_trusted (PkRoleEnum role)
 		case PK_ROLE_ENUM_UPGRADE_SYSTEM:
 			policy = "org.freedesktop.packagekit.upgrade-system";
 			break;
+		case PK_ROLE_ENUM_REPAIR_SYSTEM:
+			policy = "org.freedesktop.packagekit.package-install";
+			break;
 		default:
 			break;
 	}
@@ -5475,6 +5482,91 @@ out:
 }
 
 /**
+ * pk_transaction_simulate_repair_system:
+ **/
+static void
+pk_transaction_simulate_repair_system (PkTransaction *transaction,
+                                       GVariant *params,
+                                       GDBusMethodInvocation *context)
+{
+	gboolean ret;
+	GError *error = NULL;
+
+	g_return_if_fail (PK_IS_TRANSACTION (transaction));
+	g_return_if_fail (transaction->priv->tid != NULL);
+
+	g_debug ("SimulateRepairSystem method called");
+
+	/* not implemented yet */
+	if (!pk_backend_is_implemented (transaction->priv->backend,
+	                                PK_ROLE_ENUM_SIMULATE_REPAIR_SYSTEM)) {
+		error = g_error_new (PK_TRANSACTION_ERROR, PK_TRANSACTION_ERROR_NOT_SUPPORTED,
+		                     "SimulateRepairSystem not supported by backend");
+		pk_transaction_release_tid (transaction);
+		goto out;
+	}
+
+	/* save so we can run later */
+	pk_transaction_set_role (transaction, PK_ROLE_ENUM_SIMULATE_REPAIR_SYSTEM);
+
+	/* 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);
+		goto out;
+	}
+out:
+	pk_transaction_dbus_return (context, error);
+}
+
+
+/**
+ * pk_transaction_repair_system:
+ **/
+static void
+pk_transaction_repair_system (PkTransaction *transaction,
+                              GVariant *params,
+                              GDBusMethodInvocation *context)
+{
+	gboolean ret;
+	GError *error = NULL;
+	gboolean only_trusted;
+
+	g_return_if_fail (PK_IS_TRANSACTION (transaction));
+	g_return_if_fail (transaction->priv->tid != NULL);
+
+	g_variant_get (params, "(b)", &only_trusted);
+
+	g_debug ("RepairSystem method called (only trusted %i)", only_trusted);
+
+	/* not implemented yet */
+	if (!pk_backend_is_implemented (transaction->priv->backend,
+	                                PK_ROLE_ENUM_REPAIR_SYSTEM)) {
+		error = g_error_new (PK_TRANSACTION_ERROR, PK_TRANSACTION_ERROR_NOT_SUPPORTED,
+		                     "RepairSystem not supported by backend");
+		pk_transaction_release_tid (transaction);
+		goto out;
+	}
+
+	/* save so we can run later */
+	transaction->priv->cached_only_trusted = only_trusted;
+	pk_transaction_set_role (transaction, PK_ROLE_ENUM_REPAIR_SYSTEM);
+
+	/* try to get authorization */
+	ret = pk_transaction_obtain_authorization (transaction,
+	                                           only_trusted,
+	                                           PK_ROLE_ENUM_REPAIR_SYSTEM, &error);
+	if (!ret) {
+		pk_transaction_release_tid (transaction);
+		goto out;
+	}
+out:
+	pk_transaction_dbus_return (context, error);
+}
+
+/**
  * _g_variant_new_maybe_string:
  **/
 static GVariant *
@@ -5751,6 +5843,16 @@ pk_transaction_method_call (GDBusConnection *connection_, const gchar *sender,
 		pk_transaction_upgrade_system (transaction, parameters, invocation);
 		goto out;
 	}
+
+	if (g_strcmp0 (method_name, "RepairSystem") == 0) {
+		pk_transaction_repair_system (transaction, parameters, invocation);
+		goto out;
+	}
+
+	if (g_strcmp0 (method_name, "SimulateRepairSystem") == 0) {
+		pk_transaction_simulate_repair_system (transaction, parameters, invocation);
+		goto out;
+	}
 out:
 	return;
 }
commit d157648c084dbc7883411b63ad915b03ef025619
Author: Sebastian Heinlein <devel at glatzor.de>
Date:   Tue Dec 6 06:12:00 2011 +0100

    apt: Add tests if security updates and backports are detected correctly

diff --git a/backends/apt/tests/repo/backports/Packages b/backends/apt/tests/repo/backports/Packages
new file mode 100644
index 0000000..b8492c6
--- /dev/null
+++ b/backends/apt/tests/repo/backports/Packages
@@ -0,0 +1,20 @@
+Package: silly-base
+Priority: extra
+Section: admin
+Installed-Size: 44
+Maintainer: Sebastian Heinlein <devel at glatzor.de>
+Architecture: all
+Source: silly-packages (0.1-0)
+Version: 0.1-0update1
+Filename: ./silly-base_0.1-0update1_all.deb
+Size: 1934
+MD5sum: 8e20af56a63a1e0cf40db3b0d07e7989
+SHA1: 7ce87423d9c7a734478c464021994944d07fbf1b
+SHA256: d3693c0e3e7a9519b2833fdf1301c7e03e0620edf15b95b4c7329d9eb0bee553
+SHA512: e9eded74e2449a98b02828539c55a83de85a762d2361cd8c929292eb9c5a6e5a9b8eb9b64c26c45d7b73280e12a280cd799a9b831126e484bcf55b56456d559f
+Description: working package
+ Silly packages is a set of packages which will break your package
+ management tool. They are created only for debugging purposes.
+ .
+ This package doesn't contain any files and should always be installable.
+
diff --git a/backends/apt/tests/repo/backports/Packages.gpg b/backends/apt/tests/repo/backports/Packages.gpg
new file mode 100644
index 0000000..3b72d67
--- /dev/null
+++ b/backends/apt/tests/repo/backports/Packages.gpg
@@ -0,0 +1,34 @@
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA256
+
+Package: silly-base
+Priority: extra
+Section: admin
+Installed-Size: 44
+Maintainer: Sebastian Heinlein <devel at glatzor.de>
+Architecture: all
+Source: silly-packages (0.1-0)
+Version: 0.1-0update1
+Filename: ./silly-base_0.1-0update1_all.deb
+Size: 1934
+MD5sum: 8e20af56a63a1e0cf40db3b0d07e7989
+SHA1: 7ce87423d9c7a734478c464021994944d07fbf1b
+SHA256: d3693c0e3e7a9519b2833fdf1301c7e03e0620edf15b95b4c7329d9eb0bee553
+SHA512: e9eded74e2449a98b02828539c55a83de85a762d2361cd8c929292eb9c5a6e5a9b8eb9b64c26c45d7b73280e12a280cd799a9b831126e484bcf55b56456d559f
+Description: working package
+ Silly packages is a set of packages which will break your package
+ management tool. They are created only for debugging purposes.
+ .
+ This package doesn't contain any files and should always be installable.
+
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v1.4.11 (GNU/Linux)
+
+iQEcBAEBCAAGBQJO3ZylAAoJEGg8U8fPmC0YooQH/inTQPInDCiN3pTDvzWfV16F
+Ea+UpwBN0vzuyS6f3xmhLRxLQpuz/yk8buc1H+f/XKn6eygydJRFwIEgtdWAN/Tk
+eG9I4c5zYiHzZnNWe4XNBhRdPVkIHPkbmbRs/RvDiM5Cq0LvXIe0X0RV+empJyrC
+EgKbt3PJxh8qpMfrf/OIF+GkSqAug4tq0i0n6QxLOi0raeb9PjfDwErmBpbLDSFg
+XyDnNvPET5BtWxjgupOwoFqs2QRkrLv10JBdGRz+7qG6WhH1BCAOfzYxxCtn++Ip
+kmwo8c/pmtOr1BzZyyNMWP8nvVtB728eb/M84WGYynIEyCObUQ+Q2HVsXcsPQLc=
+=j3Nx
+-----END PGP SIGNATURE-----
diff --git a/backends/apt/tests/repo/backports/Release b/backends/apt/tests/repo/backports/Release
new file mode 100644
index 0000000..0ed3dca
--- /dev/null
+++ b/backends/apt/tests/repo/backports/Release
@@ -0,0 +1,16 @@
+Origin: Debian
+Suite: sid-backports
+Codename: lalelu
+Date: Tue, 06 Dec 2011 04:40:53 UTC
+MD5Sum:
+ 0bd018b62f0031d1ee4993896f50ddd5              782 Packages
+ d41d8cd98f00b204e9800998ecf8427e                0 Release
+SHA1:
+ 42201c0ab580cb2d557ca22a7ed04717a68b2e6e              782 Packages
+ da39a3ee5e6b4b0d3255bfef95601890afd80709                0 Release
+SHA256:
+ 950233659ae7e86ac11ae886298963e57f4414691881af1357456c6a4038ef91              782 Packages
+ e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855                0 Release
+SHA512:
+ 984c9203b8e534b9b9cc486b21da94cf807428dc1d2daa56427a870f4d53111c58ce749c35509a5fcf7112433d7a403830378a0f482354fb382c0aa7a25bdbc2                              782 Packages
+ cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e                                0 Release
diff --git a/backends/apt/tests/repo/backports/Release.gpg b/backends/apt/tests/repo/backports/Release.gpg
new file mode 100644
index 0000000..38f5901
--- /dev/null
+++ b/backends/apt/tests/repo/backports/Release.gpg
@@ -0,0 +1,30 @@
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA256
+
+Origin: Debian
+Suite: sid-backports
+Codename: lalelu
+Date: Tue, 06 Dec 2011 04:40:53 UTC
+MD5Sum:
+ 0bd018b62f0031d1ee4993896f50ddd5              782 Packages
+ d41d8cd98f00b204e9800998ecf8427e                0 Release
+SHA1:
+ 42201c0ab580cb2d557ca22a7ed04717a68b2e6e              782 Packages
+ da39a3ee5e6b4b0d3255bfef95601890afd80709                0 Release
+SHA256:
+ 950233659ae7e86ac11ae886298963e57f4414691881af1357456c6a4038ef91              782 Packages
+ e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855                0 Release
+SHA512:
+ 984c9203b8e534b9b9cc486b21da94cf807428dc1d2daa56427a870f4d53111c58ce749c35509a5fcf7112433d7a403830378a0f482354fb382c0aa7a25bdbc2                              782 Packages
+ cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e                                0 Release
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v1.4.11 (GNU/Linux)
+
+iQEcBAEBCAAGBQJO3aBFAAoJEGg8U8fPmC0Y+esIAMigdsJQneBznIwfTsA6EMSB
+wKegB/IAl7VJDPMXoUAdu9kVxaJbScrrhHJ6lFdIobgIA+5zWfJjMnvujsM5PDAv
+t8xzh/sU3m3HzR8iBDi10BO+SleKps/fKHnnQZOP8msf03rzydYUTbQI2KVhy+C1
+MSx/KTAD4a/0NPKMw09kKNqfU0uoFLnJFZEO3kVYt3hIZyGjtvw2QoEPMphNMixk
+Qq7YVhKiXw/QB318dPb065bXQePvc1EWxQuR9RgtCCM+9FMyOyF1NwAzOc8XzjEY
+qHib6JzkbH+tBLqq5AmVLOTR07rndGQQuNtu70BkIGkuZC8KpDRMRTq5mi1cipg=
+=CUOV
+-----END PGP SIGNATURE-----
diff --git a/backends/apt/tests/repo/security/Packages b/backends/apt/tests/repo/security/Packages
new file mode 100644
index 0000000..b8492c6
--- /dev/null
+++ b/backends/apt/tests/repo/security/Packages
@@ -0,0 +1,20 @@
+Package: silly-base
+Priority: extra
+Section: admin
+Installed-Size: 44
+Maintainer: Sebastian Heinlein <devel at glatzor.de>
+Architecture: all
+Source: silly-packages (0.1-0)
+Version: 0.1-0update1
+Filename: ./silly-base_0.1-0update1_all.deb
+Size: 1934
+MD5sum: 8e20af56a63a1e0cf40db3b0d07e7989
+SHA1: 7ce87423d9c7a734478c464021994944d07fbf1b
+SHA256: d3693c0e3e7a9519b2833fdf1301c7e03e0620edf15b95b4c7329d9eb0bee553
+SHA512: e9eded74e2449a98b02828539c55a83de85a762d2361cd8c929292eb9c5a6e5a9b8eb9b64c26c45d7b73280e12a280cd799a9b831126e484bcf55b56456d559f
+Description: working package
+ Silly packages is a set of packages which will break your package
+ management tool. They are created only for debugging purposes.
+ .
+ This package doesn't contain any files and should always be installable.
+
diff --git a/backends/apt/tests/repo/security/Packages.gpg b/backends/apt/tests/repo/security/Packages.gpg
new file mode 100644
index 0000000..3b72d67
--- /dev/null
+++ b/backends/apt/tests/repo/security/Packages.gpg
@@ -0,0 +1,34 @@
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA256
+
+Package: silly-base
+Priority: extra
+Section: admin
+Installed-Size: 44
+Maintainer: Sebastian Heinlein <devel at glatzor.de>
+Architecture: all
+Source: silly-packages (0.1-0)
+Version: 0.1-0update1
+Filename: ./silly-base_0.1-0update1_all.deb
+Size: 1934
+MD5sum: 8e20af56a63a1e0cf40db3b0d07e7989
+SHA1: 7ce87423d9c7a734478c464021994944d07fbf1b
+SHA256: d3693c0e3e7a9519b2833fdf1301c7e03e0620edf15b95b4c7329d9eb0bee553
+SHA512: e9eded74e2449a98b02828539c55a83de85a762d2361cd8c929292eb9c5a6e5a9b8eb9b64c26c45d7b73280e12a280cd799a9b831126e484bcf55b56456d559f
+Description: working package
+ Silly packages is a set of packages which will break your package
+ management tool. They are created only for debugging purposes.
+ .
+ This package doesn't contain any files and should always be installable.
+
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v1.4.11 (GNU/Linux)
+
+iQEcBAEBCAAGBQJO3ZylAAoJEGg8U8fPmC0YooQH/inTQPInDCiN3pTDvzWfV16F
+Ea+UpwBN0vzuyS6f3xmhLRxLQpuz/yk8buc1H+f/XKn6eygydJRFwIEgtdWAN/Tk
+eG9I4c5zYiHzZnNWe4XNBhRdPVkIHPkbmbRs/RvDiM5Cq0LvXIe0X0RV+empJyrC
+EgKbt3PJxh8qpMfrf/OIF+GkSqAug4tq0i0n6QxLOi0raeb9PjfDwErmBpbLDSFg
+XyDnNvPET5BtWxjgupOwoFqs2QRkrLv10JBdGRz+7qG6WhH1BCAOfzYxxCtn++Ip
+kmwo8c/pmtOr1BzZyyNMWP8nvVtB728eb/M84WGYynIEyCObUQ+Q2HVsXcsPQLc=
+=j3Nx
+-----END PGP SIGNATURE-----
diff --git a/backends/apt/tests/repo/security/Release b/backends/apt/tests/repo/security/Release
new file mode 100644
index 0000000..e8ebce5
--- /dev/null
+++ b/backends/apt/tests/repo/security/Release
@@ -0,0 +1,16 @@
+Origin: Debian
+Label: Debian-Security
+Suite: sid
+Date: Tue, 06 Dec 2011 04:40:53 UTC
+MD5Sum:
+ 0bd018b62f0031d1ee4993896f50ddd5              782 Packages
+ d41d8cd98f00b204e9800998ecf8427e                0 Release
+SHA1:
+ 42201c0ab580cb2d557ca22a7ed04717a68b2e6e              782 Packages
+ da39a3ee5e6b4b0d3255bfef95601890afd80709                0 Release
+SHA256:
+ 950233659ae7e86ac11ae886298963e57f4414691881af1357456c6a4038ef91              782 Packages
+ e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855                0 Release
+SHA512:
+ 984c9203b8e534b9b9cc486b21da94cf807428dc1d2daa56427a870f4d53111c58ce749c35509a5fcf7112433d7a403830378a0f482354fb382c0aa7a25bdbc2                              782 Packages
+ cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e                                0 Release
diff --git a/backends/apt/tests/repo/security/Release.gpg b/backends/apt/tests/repo/security/Release.gpg
new file mode 100644
index 0000000..d012876
--- /dev/null
+++ b/backends/apt/tests/repo/security/Release.gpg
@@ -0,0 +1,30 @@
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA256
+
+Origin: Debian
+Label: Debian-Security
+Suite: sid
+Date: Tue, 06 Dec 2011 04:40:53 UTC
+MD5Sum:
+ 0bd018b62f0031d1ee4993896f50ddd5              782 Packages
+ d41d8cd98f00b204e9800998ecf8427e                0 Release
+SHA1:
+ 42201c0ab580cb2d557ca22a7ed04717a68b2e6e              782 Packages
+ da39a3ee5e6b4b0d3255bfef95601890afd80709                0 Release
+SHA256:
+ 950233659ae7e86ac11ae886298963e57f4414691881af1357456c6a4038ef91              782 Packages
+ e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855                0 Release
+SHA512:
+ 984c9203b8e534b9b9cc486b21da94cf807428dc1d2daa56427a870f4d53111c58ce749c35509a5fcf7112433d7a403830378a0f482354fb382c0aa7a25bdbc2                              782 Packages
+ cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e                                0 Release
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v1.4.11 (GNU/Linux)
+
+iQEcBAEBCAAGBQJO3aA1AAoJEGg8U8fPmC0YigkIAK9CXZukop9g2byChtM8TRsN
+t5K3epgmAoxws7yFF0gZJdFk7p6EMVp+13o5R4WYZhTfVQO8AFcYrEFvb17CGY9g
+Y7JYAl79lkewZJuG5LYFaxUlyczft0p8yqRShpEMp+kKHUuHbpvABfVsLVh8dRWD
+ydm4xIxHD558QSctn0Do+yEuzEJvKuYfp2h5LedXcpylhXjgMchfDhZyvNhPhCEB
+uEb8/o458SILq4XWMSlkyOof/Rn/X7afbtJlG/oq0tSZ8SNYYkVj49TUPPGjD+zw
+cU7LY3G+oEsDMl9XvUTEjX8zfeqcvpfBDa/d5KyXV2ZRg0EJB7mgLVIdBNdhxqA=
+=8bi0
+-----END PGP SIGNATURE-----
diff --git a/backends/apt/tests/test_queries.py b/backends/apt/tests/test_queries.py
index b179a57..6bcd9d1 100644
--- a/backends/apt/tests/test_queries.py
+++ b/backends/apt/tests/test_queries.py
@@ -94,19 +94,6 @@ class QueryTests(mox.MoxTestBase):
         self.backend.dispatch_command("search-details",
                                       ["None", "always fail"])
 
-    def test_get_updates(self):
-        """Test checking for updates."""
-        self._catch_callbacks("package")
-        self.backend.package("silly-base;0.1-0update1;all;",
-                             enums.INFO_NORMAL,
-                             mox.IsA(str))
-        self.backend.finished()
-        self.mox.ReplayAll()
-        self.backend._cache.open()
-        # Install the package
-        aptBackend.XAPIAN_SUPPORT = False
-        self.backend.dispatch_command("get-updates", ["None"])
-
 
 def setUp():
     chroot.setup()
diff --git a/backends/apt/tests/test_updates.py b/backends/apt/tests/test_updates.py
new file mode 100644
index 0000000..f76fe60
--- /dev/null
+++ b/backends/apt/tests/test_updates.py
@@ -0,0 +1,99 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+"""Provides unit tests for the APT backend."""
+# Copyright (C) 2011 Sebastian Heinlein <devel at glatzor.de>
+#
+# 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.
+# Licensed under the GNU General Public License Version 2
+
+__author__  = "Sebastian Heinlein <devel at glatzor.de>"
+
+import os
+import unittest
+
+import apt_pkg
+import mox
+
+from core import get_tests_dir, Chroot
+from packagekit import enums
+import aptBackend
+
+REPO_PATH = os.path.join(get_tests_dir(), "repo")
+
+
+class GetUpdatesTests(mox.MoxTestBase):
+
+    """Test cases for detecting available updates."""
+
+    def setUp(self):
+        mox.MoxTestBase.setUp(self)
+        self.chroot = Chroot()
+        self.chroot.setup()
+        self.chroot.install_debfile(os.path.join(REPO_PATH,
+                                                 "silly-base_0.1-0_all.deb"))
+        self.addCleanup(self.chroot.remove)
+        self.backend = aptBackend.PackageKitAptBackend([])
+
+    def _catch_callbacks(self, *args):
+        methods = list(args)
+        methods.extend(("error", "finished"))
+        for meth in methods:
+            self.mox.StubOutWithMock(self.backend, meth)
+
+    def test_get_updates(self):
+        """Test checking for updates."""
+        self._catch_callbacks("package")
+        self.backend.package("silly-base;0.1-0update1;all;",
+                             enums.INFO_NORMAL,
+                             mox.IsA(str))
+        self.backend.finished()
+        self.mox.ReplayAll()
+        self.chroot.add_test_repository()
+        self.backend._cache.open()
+        self.backend.dispatch_command("get-updates", ["None"])
+
+    def test_get_security_updates(self):
+        """Test checking for security updates."""
+        self._catch_callbacks("package")
+        self.backend.package("silly-base;0.1-0update1;all;Debian-Security",
+                             enums.INFO_SECURITY,
+                             "working package")
+        self.backend.finished()
+        self.mox.ReplayAll()
+        self.chroot.add_repository(os.path.join(get_tests_dir(),
+                                                "repo/security"))
+        self.backend._cache.open()
+        self.backend.dispatch_command("get-updates", ["None"])
+
+    def test_get_backports(self):
+        """Test checking for backports."""
+        self._catch_callbacks("package")
+        self.backend.package("silly-base;0.1-0update1;all;",
+                             enums.INFO_ENHANCEMENT,
+                             "working package")
+        self.backend.finished()
+        self.mox.ReplayAll()
+        self.chroot.add_repository(os.path.join(get_tests_dir(),
+                                                "repo/backports"))
+        self.backend._cache.open()
+        self.backend.dispatch_command("get-updates", ["None"])
+
+
+if __name__ == "__main__":
+    unittest.main()
+
+# vim: ts=4 et sts=4
commit a7085aa011ce07641c39cfe514f44ffed0c2acc3
Author: Per Øyvind Karlsen <peroyvind at mandriva.org>
Date:   Sat Dec 3 02:21:57 2011 +0100

    remove deprecated g_thread_init() on GLib < 2.31

diff --git a/client/pk-console.c b/client/pk-console.c
index 8e8a0a0..9ea7eef 100644
--- a/client/pk-console.c
+++ b/client/pk-console.c
@@ -1312,8 +1312,10 @@ main (int argc, char *argv[])
 	bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
 	textdomain (GETTEXT_PACKAGE);
 
+#if (GLIB_MAJOR_VERSION == 2 && GLIB_MINOR_VERSION < 31)
 	if (! g_thread_supported ())
 		g_thread_init (NULL);
+#endif
 	g_type_init ();
 	dbus_g_thread_init ();
 
diff --git a/client/pk-generate-pack.c b/client/pk-generate-pack.c
index a54c94d..a535c26 100644
--- a/client/pk-generate-pack.c
+++ b/client/pk-generate-pack.c
@@ -268,8 +268,10 @@ main (int argc, char *argv[])
 	bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
 	textdomain (GETTEXT_PACKAGE);
 
+#if (GLIB_MAJOR_VERSION == 2 && GLIB_MINOR_VERSION < 31)
 	if (! g_thread_supported ())
 		g_thread_init (NULL);
+#endif
 
 	g_type_init ();
 	dbus_g_thread_init ();
diff --git a/client/pk-monitor.c b/client/pk-monitor.c
index 8be6c3b..7e5c504 100644
--- a/client/pk-monitor.c
+++ b/client/pk-monitor.c
@@ -377,8 +377,10 @@ main (int argc, char *argv[])
 	bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
 	textdomain (GETTEXT_PACKAGE);
 
+#if (GLIB_MAJOR_VERSION == 2 && GLIB_MINOR_VERSION < 31)
 	if (! g_thread_supported ())
 		g_thread_init (NULL);
+#endif
 	g_type_init ();
 	dbus_g_thread_init ();
 
diff --git a/contrib/command-not-found/pk-command-not-found.c b/contrib/command-not-found/pk-command-not-found.c
index 4825377..502cbd8 100644
--- a/contrib/command-not-found/pk-command-not-found.c
+++ b/contrib/command-not-found/pk-command-not-found.c
@@ -686,8 +686,10 @@ main (int argc, char *argv[])
 	bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
 	textdomain (GETTEXT_PACKAGE);
 
+#if (GLIB_MAJOR_VERSION == 2 && GLIB_MINOR_VERSION < 31)
 	if (! g_thread_supported ())
 		g_thread_init (NULL);
+#endif
 	g_type_init ();
 
 	/* don't show debugging, unless VERBOSE is specified */
diff --git a/contrib/debuginfo-install/pk-debuginfo-install.c b/contrib/debuginfo-install/pk-debuginfo-install.c
index daf6072..fda0faf 100644
--- a/contrib/debuginfo-install/pk-debuginfo-install.c
+++ b/contrib/debuginfo-install/pk-debuginfo-install.c
@@ -531,8 +531,10 @@ main (int argc, char *argv[])
 	bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
 	textdomain (GETTEXT_PACKAGE);
 
+#if (GLIB_MAJOR_VERSION == 2 && GLIB_MINOR_VERSION < 31)
 	if (! g_thread_supported ())
 		g_thread_init (NULL);
+#endif
 	g_type_init ();
 
 	context = g_option_context_new (NULL);
commit f91201a2a85c01637bc62983d3726f6a758920a2
Author: Per Øyvind Karlsen <peroyvind at mandriva.org>
Date:   Thu Dec 1 21:37:02 2011 +0100

    fix API breakages

diff --git a/backends/urpmi/pk-backend-urpmi.c b/backends/urpmi/pk-backend-urpmi.c
index 62a2800..347a23b 100644
--- a/backends/urpmi/pk-backend-urpmi.c
+++ b/backends/urpmi/pk-backend-urpmi.c
@@ -25,11 +25,30 @@
 static PkBackendSpawn *spawn;
 
 /**
+ * pk_backend_get_description:
+ */
+gchar *
+pk_backend_get_description (PkBackend *backend)
+{
+	return g_strdup ("URPMI");
+}
+
+/**
+ * pk_backend_get_author:
+ */
+gchar *
+pk_backend_get_author (PkBackend *backend)
+{
+	return g_strdup ("Aurelien Lefebvre <alkh at mandriva.org>, "
+			"Per Oyvind Karlsen <peroyvind at mandriva.org>");
+}
+
+/**
  * backend_initialize:
  * This should only be run once per backend load, i.e. not every transaction
  */
-static void
-backend_initialize (PkBackend *backend)
+void
+pk_backend_initialize (PkBackend *backend)
 {
 	g_debug ("backend: initialize");
 	spawn = pk_backend_spawn_new ();
@@ -40,8 +59,8 @@ backend_initialize (PkBackend *backend)
  * backend_destroy:
  * This should only be run once per backend load, i.e. not every transaction
  */
-static void
-backend_destroy (PkBackend *backend)
+void
+pk_backend_destroy (PkBackend *backend)
 {
 	g_debug ("backend: destroy");
 	g_object_unref (spawn);
@@ -50,8 +69,8 @@ backend_destroy (PkBackend *backend)
 /**
  * backend_get_groups:
  */
-static PkBitfield
-backend_get_groups (PkBackend *backend)
+PkBitfield
+pk_backend_get_groups (PkBackend *backend)
 {
 	return pk_bitfield_from_enums (
 		PK_GROUP_ENUM_ACCESSIBILITY,
@@ -88,8 +107,8 @@ backend_get_groups (PkBackend *backend)
 /**
  * backend_get_filters:
  */
-static PkBitfield
-backend_get_filters (PkBackend *backend)
+PkBitfield
+pk_backend_get_filters (PkBackend *backend)
 {
 	return pk_bitfield_from_enums (
 		PK_FILTER_ENUM_GUI,
@@ -103,8 +122,8 @@ backend_get_filters (PkBackend *backend)
 /**
  * pk_backend_get_roles:
  */
-static PkBitfield
-backend_get_roles (PkBackend *backend)
+PkBitfield
+pk_backend_get_roles (PkBackend *backend)
 {
 	PkBitfield roles;
 	roles = pk_bitfield_from_enums (
@@ -149,8 +168,8 @@ backend_get_roles (PkBackend *backend)
 /**
  * pk_backend_get_mime_types:
  */
-static gchar *
-backend_get_mime_types (PkBackend *backend)
+gchar *
+pk_backend_get_mime_types (PkBackend *backend)
 {
 	return g_strdup (
 		"application/x-rpm;"
@@ -161,8 +180,8 @@ backend_get_mime_types (PkBackend *backend)
 /**
  * pk_backend_cancel:
  */
-static void
-backend_cancel (PkBackend *backend)
+void
+pk_backend_cancel (PkBackend *backend)
 {
 	/* this feels bad... */
 	pk_backend_spawn_kill (spawn);
@@ -171,8 +190,8 @@ backend_cancel (PkBackend *backend)
 /**
  * pk_backend_search_name:
  */
-static void
-backend_search_names (PkBackend *backend, PkBitfield filters, gchar **search)
+void
+pk_backend_search_names (PkBackend *backend, PkBitfield filters, gchar **search)
 {
 	gchar *filters_text;
 	filters_text = pk_filter_bitfield_to_string (filters);
@@ -183,8 +202,8 @@ backend_search_names (PkBackend *backend, PkBitfield filters, gchar **search)
 /**
  * backend_get_details:
  */
-static void
-backend_get_details (PkBackend *backend, gchar **package_ids)
+void
+pk_backend_get_details (PkBackend *backend, gchar **package_ids)
 {
 	gchar *package_ids_temp;
 	package_ids_temp = pk_package_ids_to_string (package_ids);
@@ -195,8 +214,8 @@ backend_get_details (PkBackend *backend, gchar **package_ids)
 /**
  * backend_get_files:
  */
-static void
-backend_get_files (PkBackend *backend, gchar **package_ids)
+void
+pk_backend_get_files (PkBackend *backend, gchar **package_ids)
 {
 	gchar *package_ids_temp;
 	package_ids_temp = pk_package_ids_to_string (package_ids);
@@ -207,8 +226,8 @@ backend_get_files (PkBackend *backend, gchar **package_ids)
 /**
  * backend_get_depends:
  */
-static void
-backend_get_depends (PkBackend *backend, PkBitfield filters, gchar **package_ids, gboolean recursive)
+void
+pk_backend_get_depends (PkBackend *backend, PkBitfield filters, gchar **package_ids, gboolean recursive)
 {
 	gchar *filters_text;
 	gchar *package_ids_temp;
@@ -222,8 +241,8 @@ backend_get_depends (PkBackend *backend, PkBitfield filters, gchar **package_ids
 /**
  * backend_get_updates:
  */
-static void
-backend_get_updates (PkBackend *backend, PkBitfield filters)
+void
+pk_backend_get_updates (PkBackend *backend, PkBitfield filters)
 {
 	gchar *filters_text;
 	filters_text = pk_filter_bitfield_to_string (filters);
@@ -234,8 +253,8 @@ backend_get_updates (PkBackend *backend, PkBitfield filters)
 /**
  * backend_get_update_detail:
  */
-static void
-backend_get_update_detail (PkBackend *backend, gchar **package_ids)
+void
+pk_backend_get_update_detail (PkBackend *backend, gchar **package_ids)
 {
 	gchar *package_ids_temp;
 	package_ids_temp = pk_package_ids_to_string (package_ids);
@@ -246,8 +265,8 @@ backend_get_update_detail (PkBackend *backend, gchar **package_ids)
 /**
  * backend_refresh_cache:
  */
-static void
-backend_refresh_cache (PkBackend *backend, gboolean force)
+void
+pk_backend_refresh_cache (PkBackend *backend, gboolean force)
 {
 	/* check network state */
 	if (!pk_backend_is_online (backend)) {
@@ -262,8 +281,8 @@ backend_refresh_cache (PkBackend *backend, gboolean force)
 /**
  * backend_install_packages:
  */
-static void
-backend_install_packages (PkBackend *backend, gboolean only_trusted, gchar **package_ids)
+void
+pk_backend_install_packages (PkBackend *backend, gboolean only_trusted, gchar **package_ids)
 {
 	gchar *package_ids_temp;
 
@@ -283,8 +302,8 @@ backend_install_packages (PkBackend *backend, gboolean only_trusted, gchar **pac
 /**
  * pk_backend_remove_packages:
  */
-static void
-backend_remove_packages (PkBackend *backend, gchar **package_ids, gboolean allow_deps, gboolean autoremove)
+void
+pk_backend_remove_packages (PkBackend *backend, gchar **package_ids, gboolean allow_deps, gboolean autoremove)
 {
 	gchar *package_ids_temp;
 
@@ -297,8 +316,8 @@ backend_remove_packages (PkBackend *backend, gchar **package_ids, gboolean allow
 /**
  * pk_backend_repo_enable:
  */
-static void
-backend_repo_enable (PkBackend *backend, const gchar *rid, gboolean enabled)
+void
+pk_backend_repo_enable (PkBackend *backend, const gchar *rid, gboolean enabled)
 {
 	pk_backend_spawn_helper (spawn, "urpmi-dispatched-backend.pl", "repo-enable", rid, pk_backend_bool_to_string (enabled), NULL);
 }
@@ -306,8 +325,8 @@ backend_repo_enable (PkBackend *backend, const gchar *rid, gboolean enabled)
 /**
  * pk_backend_search_groups:
  */
-static void
-backend_search_groups (PkBackend *backend, PkBitfield filters, gchar **search)
+void
+pk_backend_search_groups (PkBackend *backend, PkBitfield filters, gchar **search)
 {
 	gchar *filters_text;
 	filters_text = pk_filter_bitfield_to_string (filters);
@@ -318,8 +337,8 @@ backend_search_groups (PkBackend *backend, PkBitfield filters, gchar **search)
 /**
  * backend_get_packages:
  */
-static void
-backend_get_packages (PkBackend *backend, PkBitfield filters)
+void
+pk_backend_get_packages (PkBackend *backend, PkBitfield filters)
 {
 	gchar *filters_text;
 	filters_text = pk_filter_bitfield_to_string (filters);
@@ -329,8 +348,8 @@ backend_get_packages (PkBackend *backend, PkBitfield filters)
 /**
  * backend_get_repo_list:
  */
-static void
-backend_get_repo_list (PkBackend *backend, PkBitfield filters)
+void
+pk_backend_get_repo_list (PkBackend *backend, PkBitfield filters)
 {
 	pk_backend_spawn_helper (spawn, "urpmi-dispatched-backend.pl", "get-repo-list", NULL);
 }
@@ -338,8 +357,8 @@ backend_get_repo_list (PkBackend *backend, PkBitfield filters)
 /**
  * backend_get_requires:
  */
-static void
-backend_get_requires (PkBackend *backend, PkBitfield filters, gchar **package_ids, gboolean recursive)
+void
+pk_backend_get_requires (PkBackend *backend, PkBitfield filters, gchar **package_ids, gboolean recursive)
 {
 	gchar *package_ids_temp;
 	gchar *filters_text;
@@ -353,8 +372,8 @@ backend_get_requires (PkBackend *backend, PkBitfield filters, gchar **package_id
 /**
  * pk_backend_search_details:
  */
-static void
-backend_search_details (PkBackend *backend, PkBitfield filters, gchar **search)
+void
+pk_backend_search_details (PkBackend *backend, PkBitfield filters, gchar **search)
 {
 	gchar *filters_text;
 	filters_text = pk_filter_bitfield_to_string (filters);
@@ -365,8 +384,8 @@ backend_search_details (PkBackend *backend, PkBitfield filters, gchar **search)
 /**
  * pk_backend_search_files:
  */
-static void
-backend_search_files (PkBackend *backend, PkBitfield filters, gchar **search)
+void
+pk_backend_search_files (PkBackend *backend, PkBitfield filters, gchar **search)
 {
 	gchar *filters_text;
 	filters_text = pk_filter_bitfield_to_string (filters);
@@ -377,8 +396,8 @@ backend_search_files (PkBackend *backend, PkBitfield filters, gchar **search)
 /**
  * pk_backend_resolve:
  */
-static void
-backend_resolve (PkBackend *backend, PkBitfield filters, gchar **package_ids)
+void
+pk_backend_resolve (PkBackend *backend, PkBitfield filters, gchar **package_ids)
 {
 	gchar *filters_text;
 	gchar *package_ids_temp;
@@ -392,8 +411,8 @@ backend_resolve (PkBackend *backend, PkBitfield filters, gchar **package_ids)
 /**
  * pk_backend_update_packages:
  */
-static void
-backend_update_packages (PkBackend *backend, gboolean only_trusted, gchar **package_ids)
+void
+pk_backend_update_packages (PkBackend *backend, gboolean only_trusted, gchar **package_ids)
 {
 	gchar *package_ids_temp;
 
@@ -414,8 +433,8 @@ backend_update_packages (PkBackend *backend, gboolean only_trusted, gchar **pack
 /**
  * pk_backend_update_system:
  */
-static void
-backend_update_system (PkBackend *backend, gboolean only_trusted)
+void
+pk_backend_update_system (PkBackend *backend, gboolean only_trusted)
 {
 	pk_backend_spawn_helper (spawn, "urpmi-dispatched-backend.pl", "update-system", pk_backend_bool_to_string (only_trusted), NULL);
 }
@@ -423,8 +442,8 @@ backend_update_system (PkBackend *backend, gboolean only_trusted)
 /**
  * backend_get_distro_upgrades:
  */
-static void
-backend_get_distro_upgrades (PkBackend *backend)
+void
+pk_backend_get_distro_upgrades (PkBackend *backend)
 {
 	pk_backend_spawn_helper (spawn, "urpmi-dispatched-backend.pl", "get-distro-upgrades", NULL);
 }
@@ -432,8 +451,8 @@ backend_get_distro_upgrades (PkBackend *backend)
 /**
  * backend_what_provides:
  */
-static void
-backend_what_provides (PkBackend *backend, PkBitfield filters, PkProvidesEnum provides, gchar **values)
+void
+pk_backend_what_provides (PkBackend *backend, PkBitfield filters, PkProvidesEnum provides, gchar **values)
 {
 	gchar *search_tmp;
 	gchar *filters_text;
@@ -447,50 +466,3 @@ backend_what_provides (PkBackend *backend, PkBitfield filters, PkProvidesEnum pr
 	g_free (search_tmp);
 }
 
-/* FIXME: port this away from PK_BACKEND_OPTIONS */
-PK_BACKEND_OPTIONS (
-	"URPMI",					/* description */
-	"Aurelien Lefebvre <alkh at mandriva.org>, Per Oyvind Karlsen <peroyvind at mandriva.org>",	/* author */
-	backend_initialize,			/* initalize */
-	backend_destroy,			/* destroy */
-	backend_get_groups,			/* get_groups */
-	backend_get_filters,			/* get_filters */
-	backend_get_roles,			/* get_roles */
-	backend_get_mime_types,			/* get_mime_types */
-	backend_cancel,				/* cancel */
-	NULL,					/* download_packages */
-	NULL,					/* get_categories */
-	backend_get_depends,			/* get_depends */
-	backend_get_details,			/* get_details */
-	backend_get_distro_upgrades,		/* 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 */
-	backend_get_update_detail,		/* get_update_detail */
-	backend_get_updates,			/* get_updates */
-	NULL,					/* install_files */
-	backend_install_packages,		/* install_packages */
-	NULL,					/* install_signature */
-	backend_refresh_cache,			/* refresh_cache */
-	backend_remove_packages,		/* remove_packages */
-	backend_repo_enable,			/* repo_enable */
-	NULL,					/* repo_set_data */
-	backend_resolve,			/* resolve */
-	NULL,					/* rollback */
-	backend_search_details,			/* search_details */
-	backend_search_files,			/* search_files */
-	backend_search_groups,			/* search_groups */
-	backend_search_names,			/* search_names */
-	backend_update_packages,		/* update_packages */
-	backend_update_system,			/* update_system */
-	backend_what_provides,			/* what_provides */
-	NULL,					/* simulate_install_files */
-	NULL,					/* simulate_install_packages */
-	NULL,					/* simulate_remove_packages */
-	NULL,					/* simulate_update_packages */
-	NULL,					/* upgrade_system */
-	NULL,					/* transaction_start */
-	NULL					/* transaction_stop */
-);
-
commit 3a8be27869053577d9bc58e1e77d01b61ea4e17c
Merge: 3a17e4a... 4c7cb9d...
Author: Per Øyvind Karlsen <peroyvind at mandriva.org>
Date:   Thu Dec 1 17:33:10 2011 +0100

    Merge commit 'refs/merge-requests/8' of git://gitorious.org/packagekit/packagekit into merge-requests/8

commit 3a17e4a93818b9aa499e4215d243adc8a19f8260
Author: Richard Hughes <richard at hughsie.com>
Date:   Tue Nov 29 12:03:54 2011 +0000

    trivial: disable the PK plugin until the npapi package is sorted out

diff --git a/contrib/PackageKit.spec.in b/contrib/PackageKit.spec.in
index 7357724..f29f187 100644
--- a/contrib/PackageKit.spec.in
+++ b/contrib/PackageKit.spec.in
@@ -401,7 +401,8 @@ update-mime-database %{_datadir}/mime &> /dev/null || :
 
 %files browser-plugin
 %defattr(-,root,root,-)
-%{_libdir}/mozilla/plugins/packagekit-plugin.so
+#%{_libdir}/mozilla/plugins/packagekit-plugin.so
+# FIXME: F16 doesn't have a new enough npapi package
 
 %files gstreamer-plugin
 %defattr(-,root,root,-)
commit 24c4a29fd4602b7aefe9ac7b22bec2e39792b472
Author: Richard Hughes <richard at hughsie.com>
Date:   Tue Nov 29 12:03:32 2011 +0000

    trivial: fix up the Fedora spec file now -qt is gone

diff --git a/contrib/PackageKit.spec.in b/contrib/PackageKit.spec.in
index 0710cd0..7357724 100644
--- a/contrib/PackageKit.spec.in
+++ b/contrib/PackageKit.spec.in
@@ -438,14 +438,6 @@ update-mime-database %{_datadir}/mime &> /dev/null || :
 %files qt-devel
 %defattr(-,root,root,-)
 %{_libdir}/libpackagekit-qt*.so
-%{_libdir}/pkgconfig/packagekit-qt.pc
-%dir %{_includedir}/PackageKit
-%dir %{_includedir}/PackageKit/packagekit-qt
-%{_includedir}/PackageKit/packagekit-qt/QPackageKit
-%{_includedir}/PackageKit/packagekit-qt/*.h
-%{_datadir}/cmake/Modules/FindQPackageKit.cmake
-
-# qt2 new library
 %{_includedir}/PackageKit/packagekit-qt2/*
 %{_libdir}/pkgconfig/packagekit-qt2.pc
 %{_libdir}/cmake/packagekit-qt2/packagekit-qt2*.cmake
commit d8277f0f08118e55ce6089fedd9aaa6c69d9587e
Author: Sebastian Heinlein <devel at glatzor.de>
Date:   Thu Dec 1 11:09:34 2011 +0100

    apt(cc): Use gdbus in the post-update hook call to StateHasChanged.
    Furthermore add a timeout to avoid blocking apt-get update on DBus
    issues.

diff --git a/backends/apt/20packagekit b/backends/apt/20packagekit
index 0c6bfb7..ffd677a 100644
--- a/backends/apt/20packagekit
+++ b/backends/apt/20packagekit
@@ -3,10 +3,10 @@
 // Whenever the dpkg is called we might have different updates
 // i.e. a user removes a package that had an update
 DPkg::Post-Invoke {
-"/usr/bin/test -e /usr/share/dbus-1/system-services/org.freedesktop.PackageKit.service && /usr/bin/test -S /var/run/dbus/system_bus_socket && /usr/bin/dbus-send --print-reply --system --dest=org.freedesktop.PackageKit --type=method_call /org/freedesktop/PackageKit org.freedesktop.PackageKit.StateHasChanged string:'cache-update' > /dev/null; /bin/echo > /dev/null";
+"/usr/bin/test -e /usr/share/dbus-1/system-services/org.freedesktop.PackageKit.service && /usr/bin/test -S /var/run/dbus/system_bus_socket && /usr/bin/gdbus call --system --dest org.freedesktop.PackageKit --object-path /org/freedesktop/PackageKit --timeout 1 --method org.freedesktop.PackageKit.StateHasChanged cache-update > /dev/null; /bin/echo > /dev/null";
 };
 
 // When the apt cache is updated (i.e. apt-cache update)
 APT::Update::Post-Invoke-Success {
-"/usr/bin/test -e /usr/share/dbus-1/system-services/org.freedesktop.PackageKit.service && /usr/bin/test -S /var/run/dbus/system_bus_socket && /usr/bin/dbus-send --print-reply --system --dest=org.freedesktop.PackageKit --type=method_call /org/freedesktop/PackageKit org.freedesktop.PackageKit.StateHasChanged string:'cache-update' > /dev/null; /bin/echo > /dev/null";
+"/usr/bin/test -e /usr/share/dbus-1/system-services/org.freedesktop.PackageKit.service && /usr/bin/test -S /var/run/dbus/system_bus_socket && /usr/bin/gdbus call --system --dest org.freedesktop.PackageKit --object-path /org/freedesktop/PackageKit --timeout 1 --method org.freedesktop.PackageKit.StateHasChanged cache-update > /dev/null; /bin/echo > /dev/null";
 };
diff --git a/backends/aptcc/20packagekit b/backends/aptcc/20packagekit
index 0c6bfb7..ffd677a 100644
--- a/backends/aptcc/20packagekit
+++ b/backends/aptcc/20packagekit
@@ -3,10 +3,10 @@
 // Whenever the dpkg is called we might have different updates
 // i.e. a user removes a package that had an update
 DPkg::Post-Invoke {
-"/usr/bin/test -e /usr/share/dbus-1/system-services/org.freedesktop.PackageKit.service && /usr/bin/test -S /var/run/dbus/system_bus_socket && /usr/bin/dbus-send --print-reply --system --dest=org.freedesktop.PackageKit --type=method_call /org/freedesktop/PackageKit org.freedesktop.PackageKit.StateHasChanged string:'cache-update' > /dev/null; /bin/echo > /dev/null";
+"/usr/bin/test -e /usr/share/dbus-1/system-services/org.freedesktop.PackageKit.service && /usr/bin/test -S /var/run/dbus/system_bus_socket && /usr/bin/gdbus call --system --dest org.freedesktop.PackageKit --object-path /org/freedesktop/PackageKit --timeout 1 --method org.freedesktop.PackageKit.StateHasChanged cache-update > /dev/null; /bin/echo > /dev/null";
 };
 
 // When the apt cache is updated (i.e. apt-cache update)
 APT::Update::Post-Invoke-Success {
-"/usr/bin/test -e /usr/share/dbus-1/system-services/org.freedesktop.PackageKit.service && /usr/bin/test -S /var/run/dbus/system_bus_socket && /usr/bin/dbus-send --print-reply --system --dest=org.freedesktop.PackageKit --type=method_call /org/freedesktop/PackageKit org.freedesktop.PackageKit.StateHasChanged string:'cache-update' > /dev/null; /bin/echo > /dev/null";
+"/usr/bin/test -e /usr/share/dbus-1/system-services/org.freedesktop.PackageKit.service && /usr/bin/test -S /var/run/dbus/system_bus_socket && /usr/bin/gdbus call --system --dest org.freedesktop.PackageKit --object-path /org/freedesktop/PackageKit --timeout 1 --method org.freedesktop.PackageKit.StateHasChanged cache-update > /dev/null; /bin/echo > /dev/null";
 };
commit 8685206ddc19d60aa3c67f4baba57c4cd2d01f32
Author: Sebastian Heinlein <devel at glatzor.de>
Date:   Wed Nov 30 09:24:59 2011 +0100

    apt: Add support for piping the debconf communication to the client

diff --git a/backends/apt/aptBackend.py b/backends/apt/aptBackend.py
index 203654b..1b46ca4 100755
--- a/backends/apt/aptBackend.py
+++ b/backends/apt/aptBackend.py
@@ -492,10 +492,16 @@ class PackageKitInstallProgress(apt.progress.base.InstallProgress):
             # Restore the exception handler to avoid catches by apport
             sys.excepthook = sys.__excepthook__
             signal.signal(signal.SIGINT, interrupt_handler)
-            # Avoid questions from the maintainer scripts as far as possible
-            os.environ["DEBIAN_FRONTEND"] = "noninteractive"
+            # Avoid questions as far as possible
             os.environ["APT_LISTCHANGES_FRONTEND"] = "none"
             os.environ["APT_LISTBUGS_FRONTEND"] = "none"
+            # Check if debconf communication can be piped to the client
+            frontend_socket = os.getenv("FRONTEND_SOCKET", None)
+            if frontend_socket:
+                os.environ["DEBCONF_PIPE"] = frontend_socket
+                os.environ["DEBIAN_FRONTEND"] = "passthrough"
+            else:
+                os.environ["DEBIAN_FRONTEND"] = "noninteractive"
             # Force terminal messages in dpkg to be untranslated, status-fd or
             # debconf prompts won't be affected
             os.environ["DPKG_UNTRANSLATED_MESSAGES"] = "1"
commit a1ef0897ef66e85029d153274278aa80e4053ac3
Author: Sebastian Heinlein <devel at glatzor.de>
Date:   Wed Nov 30 09:20:16 2011 +0100

    Set the frontend socket as environment variable in the spawned backend

diff --git a/src/pk-backend-spawn.c b/src/pk-backend-spawn.c
index 23cb184..90ad65f 100644
--- a/src/pk-backend-spawn.c
+++ b/src/pk-backend-spawn.c
@@ -825,6 +825,11 @@ pk_backend_spawn_get_envp (PkBackendSpawn *backend_spawn)
 	if (!pk_strzero (locale))
 		g_hash_table_replace (env_table, g_strdup ("LANG"), g_strdup (locale));
 
+	/* FRONTEND SOCKET */
+	value = pk_backend_get_frontend_socket (priv->backend);
+	if (!pk_strzero (value))
+		g_hash_table_replace (env_table, g_strdup ("FRONTEND_SOCKET"), g_strdup (value));
+
 	/* ROOT */
 	value = pk_backend_get_root (priv->backend);
 	if (!pk_strzero (value))
commit f6ee4ad4b44a4ff302197ffb96ceb3ecec9cf989
Author: Sebastian Heinlein <devel at glatzor.de>
Date:   Wed Nov 30 08:55:28 2011 +0100

    apt: Improve forked child setup.
    
    Unset the translations for the statusfd to map the messages to enums.
    Unset the exceptionhook to avoid catches by apport.
    Add an interrupt handler to avoid running atexit methods.

diff --git a/backends/apt/aptBackend.py b/backends/apt/aptBackend.py
index a2e15aa..203654b 100755
--- a/backends/apt/aptBackend.py
+++ b/backends/apt/aptBackend.py
@@ -94,13 +94,6 @@ socket.setdefaulttimeout(2)
 # Required for daemon mode
 os.putenv("PATH",
           "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin")
-# Avoid questions from the maintainer scripts as far as possible
-os.putenv("DEBIAN_FRONTEND", "noninteractive")
-os.putenv("APT_LISTCHANGES_FRONTEND", "none")
-os.putenv("APT_LISTBUGS_FRONTEND", "none")
-# Force terminal messages in dpkg to be untranslated, status-fd or debconf
-# prompts won't be affected
-os.putenv("DPKG_UNTRANSLATED_MESSAGES", "1")
 
 # Map Debian sections to the PackageKit group name space
 SECTION_GROUP_MAP = {
@@ -491,6 +484,23 @@ class PackageKitInstallProgress(apt.progress.base.InstallProgress):
         (pid, self.master_fd) = pty.fork()
         if pid != 0:
             fcntl.fcntl(self.master_fd, fcntl.F_SETFL, os.O_NONBLOCK)
+        else:
+            def interrupt_handler(signum, frame):
+                # Exit the child immediately if we receive the interrupt signal
+                # or a Ctrl+C - to avoid that atexit would be called
+                os._exit(apt_pkg.PackageManager.RESULT_FAILED)
+            # Restore the exception handler to avoid catches by apport
+            sys.excepthook = sys.__excepthook__
+            signal.signal(signal.SIGINT, interrupt_handler)
+            # Avoid questions from the maintainer scripts as far as possible
+            os.environ["DEBIAN_FRONTEND"] = "noninteractive"
+            os.environ["APT_LISTCHANGES_FRONTEND"] = "none"
+            os.environ["APT_LISTBUGS_FRONTEND"] = "none"
+            # Force terminal messages in dpkg to be untranslated, status-fd or
+            # debconf prompts won't be affected
+            os.environ["DPKG_UNTRANSLATED_MESSAGES"] = "1"
+            # We also want untranslated status messages from apt on status-fd
+            locale.setlocale(locale.LC_ALL, "C")
         return pid
 
     def update_interface(self):
commit 609e84cda6d91ae91bf9f27f0a8027be99ea36de
Author: Sebastian Heinlein <devel at glatzor.de>
Date:   Wed Nov 30 08:34:04 2011 +0100

    apt: Fix filter tests since we have a new package in the test repo

diff --git a/backends/apt/tests/test_filters.py b/backends/apt/tests/test_filters.py
index fc27153..76b78d1 100644
--- a/backends/apt/tests/test_filters.py
+++ b/backends/apt/tests/test_filters.py
@@ -70,6 +70,8 @@ class FilterTests(mox.MoxTestBase):
         self._catch_callbacks("package")
         self.backend.package("silly-depend-base;0.1-0;all;",
                              enums.INFO_AVAILABLE, mox.IsA(str))
+        self.backend.package("silly-depend-base-lintian-broken;0.1-0;all;",
+                             enums.INFO_AVAILABLE, mox.IsA(str))
         self.backend.finished()
         self.mox.ReplayAll()
         self.backend._cache.open()
commit 133b182fb318cec96d0c1f3c831b13e2f72fbff9
Author: Sebastian Heinlein <devel at glatzor.de>
Date:   Wed Nov 30 08:28:54 2011 +0100

    apt: Do not try to install not available files (TODO.apt)

diff --git a/backends/apt/Makefile.am b/backends/apt/Makefile.am
index 14e913d..b2fa1cc 100644
--- a/backends/apt/Makefile.am
+++ b/backends/apt/Makefile.am
@@ -24,7 +24,6 @@ EXTRA_DIST =						\
 	20packagekit					\
 	update-packagekit-app-data			\
 	README.apt					\
-	TODO.apt					\
 	$(NULL)
 
 install-data-hook:
commit 637091ef1ce3fd107cdcf8f30ab823086d119a73
Merge: 155c874... 9a082da...
Author: Sebastian Heinlein <devel at glatzor.de>
Date:   Wed Nov 30 08:24:37 2011 +0100

    Merge branch 'master' of gitorious.org:packagekit/packagekit

commit 155c8748e90e7e22a6346f19efc50da27af46470
Merge: 7ac4336... b1df2ff...
Author: Sebastian Heinlein <devel at glatzor.de>
Date:   Wed Nov 30 08:24:26 2011 +0100

    Merge branch 'apt-is-back'

commit b1df2ff706914e5d6b40d0af08910edfdff01e15
Author: Sebastian Heinlein <devel at glatzor.de>
Date:   Wed Nov 30 08:22:43 2011 +0100

    apt: Improve detection and killing of hanging maintainer scripts
    
    Add corresponding unit tests and remove bash-ism from the postinst
    script to make it work with dash as shell

diff --git a/backends/apt/aptBackend.py b/backends/apt/aptBackend.py
index bc617c7..a2e15aa 100755
--- a/backends/apt/aptBackend.py
+++ b/backends/apt/aptBackend.py
@@ -160,6 +160,10 @@ HREF_CVE="http://web.nvd.nist.gov/view/vuln/detail?vulnId=%s"
 
 SYNAPTIC_PIN_FILE = "/var/lib/synaptic/preferences"
 
+# After the given amount of seconds without any updates on the console or
+# progress kill the installation
+TIMEOUT_IDLE_INSTALLATION = 10 * 60 * 10000
+
 # Required to get translated descriptions
 try:
     locale.setlocale(locale.LC_ALL, "")
@@ -353,7 +357,6 @@ class PackageKitInstallProgress(apt.progress.base.InstallProgress):
         self.last_activity = None
         self.conffile_prompts = set()
         # insanly long timeout to be able to kill hanging maintainer scripts
-        self.timeout = 10 * 60
         self.start_time = None
         self.output = ""
         self.master_fd = None
@@ -500,9 +503,9 @@ class PackageKitInstallProgress(apt.progress.base.InstallProgress):
         except OSError:
             pass
         # catch a time out by sending crtl+c
-        if self.last_activity + self.timeout < time.time():
-            pklog.critical("no activity for %s time sending ctrl-c" \
-                           % self.timeout)
+        if self.last_activity + TIMEOUT_IDLE_INSTALLATION < time.time():
+            pklog.critical("no activity for %s seconds sending ctrl-c" \
+                           % TIMEOUT_IDLE_INSTALLATION)
             os.write(self.master_fd, chr(3))
             msg = "Transaction was cancelled since the installation " \
                   "of a package hung.\n" \
diff --git a/backends/apt/tests/repo/Packages b/backends/apt/tests/repo/Packages
index 49b8cac..2ecf070 100644
--- a/backends/apt/tests/repo/Packages
+++ b/backends/apt/tests/repo/Packages
@@ -1,21 +1,23 @@
-Package: silly-fail
+Package: gstreamer0.10-silly
 Priority: extra
 Section: admin
-Installed-Size: 36
+Installed-Size: 168
 Maintainer: Sebastian Heinlein <devel at glatzor.de>
 Architecture: all
 Source: silly-packages
 Version: 0.1-0
-Filename: ./silly-fail_0.1-0_all.deb
-Size: 1874
-MD5sum: 623a67e49bb7a1351a9bf1ae72fc6cfb
-SHA1: 76417770f2b788b680ef18be66b5a6c4ec51bc62
-SHA256: 45fea3eb64a427a288a90b12f42cc3a6abea8e8387efd4879b319db736890ebd
-Description: installation fails
+Depends: libc6 (>= 2.7-1), libglib2.0-0 (>= 2.16.0), libgstreamer-plugins-base0.10-0 (>= 0.10.0), libgstreamer0.10-0 (>= 0.10.14), libogg0 (>= 1.0rc3)
+Filename: ./gstreamer0.10-silly_0.1-0_all.deb
+Size: 51932
+MD5sum: c78ae695b2385f3f0e8df5c44b3e6759
+SHA1: 65a73c0059d8642986da2b34aae89bfa39202bac
+SHA256: b51b33092eedc4ef5c9461c730f50f107b4dd6958b6f7a7bfe548d002be181d7
+SHA512: a61d5114990f9277d2343ff83273091690a695b2ef4c720bddab8cc2120ec9740d570781a528cc3dffaa65774a44ec9b112af13fb1e0dd2bfad5dce1c528e8cc
+Description: gstreamer plugin test package
  Silly packages is a set of packages which will break your package
  management tool. They are created only for debugging purposes.
  .
- This installation of this package will always fail.
+ This package is a GStreamer test plugin package.
 
 Package: silly-depend-base
 Priority: extra
@@ -31,50 +33,13 @@ Size: 1812
 MD5sum: 3ee7181283e4926558d2afdf7b2657f1
 SHA1: 8294794b1727e22b123866f9124431a2c7b79380
 SHA256: 5fa74f7bdc0d207188790419130330becb0cf7484a972762ed512090885016f9
+SHA512: f027e670ebd22b90fafb9b0a487a403a840c7b1abccf3a11709466b27d111cfd5afe66ad4e49a56ca4d52c8829e8e00c705bac34e7a7eedc2eac8831540a126b
 Description: package depending on silly-base
  Silly packages is a set of packages which will break your package
  management tool. They are created only for debugging purposes.
  .
  This package depends on silly-base.
 
-Package: silly-config
-Priority: extra
-Section: admin
-Installed-Size: 44
-Maintainer: Sebastian Heinlein <devel at glatzor.de>
-Architecture: all
-Source: silly-packages
-Version: 0.1-0
-Filename: ./silly-config_0.1-0_all.deb
-Size: 1928
-MD5sum: 565698b052640ed3d514f6b38ad457c7
-SHA1: e7169cc58f10e8ff9481cf31b2ffb947bc99f617
-SHA256: 255f025bae5b24a91158e7daa986f9bf59146ab1895f39452104eb97c412d190
-Description: wants to update a locally changed config file
- Silly packages is a set of packages which will break your package
- management tool. They are created only for debugging purposes.
- .
- This package will install a configuration file.
-
-Package: silly-postinst-input
-Priority: extra
-Section: admin
-Installed-Size: 36
-Maintainer: Sebastian Heinlein <devel at glatzor.de>
-Architecture: all
-Source: silly-packages
-Version: 0.1-0
-Filename: ./silly-postinst-input_0.1-0_all.deb
-Size: 1906
-MD5sum: 99eecdacbcdf95b9e7b3b0c50f812a8d
-SHA1: c066b13414faa9931ff688c29f6dbcf4809861a9
-SHA256: ce6e4f7f59c3d1da45ff0b3e8e54ebdcf9a5b44edeccf9fc04c96daec5cfa020
-Description: breaks your non-interactive package manager
- Silly packages is a set of packages which will break your package
- management tool. They are created only for debugging purposes.
- .
- This package will wait for user input in the postinst script.
-
 Package: silly-base
 Priority: extra
 Section: admin
@@ -88,13 +53,15 @@ Size: 1934
 MD5sum: 8e20af56a63a1e0cf40db3b0d07e7989
 SHA1: 7ce87423d9c7a734478c464021994944d07fbf1b
 SHA256: d3693c0e3e7a9519b2833fdf1301c7e03e0620edf15b95b4c7329d9eb0bee553
+SHA512: e9eded74e2449a98b02828539c55a83de85a762d2361cd8c929292eb9c5a6e5a9b8eb9b64c26c45d7b73280e12a280cd799a9b831126e484bcf55b56456d559f
 Description: working package
  Silly packages is a set of packages which will break your package
  management tool. They are created only for debugging purposes.
  .
  This package doesn't contain any files and should always be installable.
 
-Package: silly-base
+Package: silly-essential
+Essential: yes
 Priority: extra
 Section: admin
 Installed-Size: 32
@@ -102,39 +69,39 @@ Maintainer: Sebastian Heinlein <devel at glatzor.de>
 Architecture: all
 Source: silly-packages
 Version: 0.1-0
-Filename: ./silly-base_0.1-0_all.deb
-Size: 1824
-MD5sum: 81ba1cf86142c466f35a36a11b5b7b52
-SHA1: f949c8e5962a43fbcd4f7d67df0ebe741052c497
-SHA256: a7c2a30abdb6488d5c3d2894db398f5dfafbc6be098da1135822be4e3ac94b32
-Description: working package
+Filename: ./silly-essential_0.1-0_all.deb
+Size: 1800
+MD5sum: 492c977ce9b2f1b6a51d7c475aad058b
+SHA1: 06fb9a5efb07f72edbd297d2a21cffd1787a2388
+SHA256: e516159e99bd40d860515e4c9af251ab056eaabae58ea3f5ee11eecc4f3bee50
+SHA512: 37ea6868c65f9e54a06572731fc2c1c3ce19d330c76e4c34b747a7e286f501c94abfa1a31b328c2be106e55c3f75f570811642cc33fa68def7c69c2bd7a6d2fa
+Description: an essential package
  Silly packages is a set of packages which will break your package
  management tool. They are created only for debugging purposes.
  .
- This package doesn't contain any files and should always be installable.
+ This package is an essential one.
 
-Package: gstreamer0.10-silly
+Package: silly-config
 Priority: extra
 Section: admin
-Installed-Size: 168
+Installed-Size: 44
 Maintainer: Sebastian Heinlein <devel at glatzor.de>
 Architecture: all
 Source: silly-packages
 Version: 0.1-0
-Depends: libc6 (>= 2.7-1), libglib2.0-0 (>= 2.16.0), libgstreamer-plugins-base0.10-0 (>= 0.10.0), libgstreamer0.10-0 (>= 0.10.14), libogg0 (>= 1.0rc3)
-Filename: ./gstreamer0.10-silly_0.1-0_all.deb
-Size: 51932
-MD5sum: c78ae695b2385f3f0e8df5c44b3e6759
-SHA1: 65a73c0059d8642986da2b34aae89bfa39202bac
-SHA256: b51b33092eedc4ef5c9461c730f50f107b4dd6958b6f7a7bfe548d002be181d7
-Description: gstreamer plugin test package
+Filename: ./silly-config_0.1-0_all.deb
+Size: 1928
+MD5sum: 565698b052640ed3d514f6b38ad457c7
+SHA1: e7169cc58f10e8ff9481cf31b2ffb947bc99f617
+SHA256: 255f025bae5b24a91158e7daa986f9bf59146ab1895f39452104eb97c412d190
+SHA512: 093e3ba825b0af7daa8df936fcd08fd32fa11288f40869a54b53af8c6b7e89c2e1bab4fb45346c6396ae50663beca46c7b62dda88e488130fc519a6217ba7d0d
+Description: wants to update a locally changed config file
  Silly packages is a set of packages which will break your package
  management tool. They are created only for debugging purposes.
  .
- This package is a GStreamer test plugin package.
+ This package will install a configuration file.
 
-Package: silly-essential
-Essential: yes
+Package: silly-broken
 Priority: extra
 Section: admin
 Installed-Size: 32
@@ -142,16 +109,18 @@ Maintainer: Sebastian Heinlein <devel at glatzor.de>
 Architecture: all
 Source: silly-packages
 Version: 0.1-0
-Filename: ./silly-essential_0.1-0_all.deb
-Size: 1800
-MD5sum: 492c977ce9b2f1b6a51d7c475aad058b
-SHA1: 06fb9a5efb07f72edbd297d2a21cffd1787a2388
-SHA256: e516159e99bd40d860515e4c9af251ab056eaabae58ea3f5ee11eecc4f3bee50
-Description: an essential package
+Depends: silly-unavailbale
+Filename: ./silly-broken_0.1-0_all.deb
+Size: 1840
+MD5sum: 78bbe306af637c18f5df9dc47bfbf41f
+SHA1: bb63cdbde699fe2100349b0418af095e6d9f80fe
+SHA256: a816e61369de433e261b5ad041e913ee3c140637825ce6613a5c99efbfd4c21b
+SHA512: 9979a0b4c8e8945311ebfc29459731650b6f636ed6b1f56e7e219d0c86c0d67dcfe273cad98c144ba30a3adcd8af1ddbe2b2eb388758b3d42ff9beec3c948d1f
+Description: package with broken dependencies
  Silly packages is a set of packages which will break your package
  management tool. They are created only for debugging purposes.
  .
- This package is an essential one.
+ This package cannot be installed because of a missing dependency.
 
 Package: silly-important
 Priority: important
@@ -166,13 +135,54 @@ Size: 1792
 MD5sum: ef9a1eefd088a375ef58773831256205
 SHA1: 4075517d20fdd81d8642ab0febe7ad8c5fcde4f0
 SHA256: 3003723f0f2686a6ed700f364b0c13c966026c5e5f3b383969d87b5dba411d5e
+SHA512: 08d953b1caaf6b3407818b4b09dad148b7d9a733b034cb1f89cd20b791f8d6cc192a0ad8d7a085b680637412003599b7b298756a983e4fd46cae1e5927ee5416
 Description: an essential package
  Silly packages is a set of packages which will break your package
  management tool. They are created only for debugging purposes.
  .
  This package is an essential one.
 
-Package: silly-broken
+Package: silly-postinst-input
+Priority: extra
+Section: admin
+Installed-Size: 40
+Maintainer: Sebastian Heinlein <devel at glatzor.de>
+Architecture: all
+Source: silly-packages
+Version: 0.1-0
+Filename: ./silly-postinst-input_0.1-0_all.deb
+Size: 3904
+MD5sum: ecfcbacc7057f5dd7ba020d36f501f25
+SHA1: 998be954cc9d878a07d995ef41364b0087957078
+SHA256: e35f87b47f124e1d44622f466ba1ef9f421eb038b01b0aa4195de2dd6103d4ad
+SHA512: 318b5814873a5841b7c21182bfb7f4bdb37da6cadad0db3979170c4059274bbb6b7131021cf6a7081e9b1a0730a3d789b24394cb383915b8cfb98cf58b7bae75
+Description: breaks your non-interactive package manager
+ Silly packages is a set of packages which will break your package
+ management tool. They are created only for debugging purposes.
+ .
+ This package will wait for user input in the postinst script.
+
+Package: silly-fail
+Priority: extra
+Section: admin
+Installed-Size: 36
+Maintainer: Sebastian Heinlein <devel at glatzor.de>
+Architecture: all
+Source: silly-packages
+Version: 0.1-0
+Filename: ./silly-fail_0.1-0_all.deb
+Size: 1874
+MD5sum: 623a67e49bb7a1351a9bf1ae72fc6cfb
+SHA1: 76417770f2b788b680ef18be66b5a6c4ec51bc62
+SHA256: 45fea3eb64a427a288a90b12f42cc3a6abea8e8387efd4879b319db736890ebd
+SHA512: ea3978b7e3d94902915ef657835a9ca4b1f400dc7bf6c83e84e5c3c60eb9c8096811b02bb4cd3c5de637a702061cc0d37a1f72834136231953f928a8914a69b1
+Description: installation fails
+ Silly packages is a set of packages which will break your package
+ management tool. They are created only for debugging purposes.
+ .
+ This installation of this package will always fail.
+
+Package: silly-base
 Priority: extra
 Section: admin
 Installed-Size: 32
@@ -180,15 +190,36 @@ Maintainer: Sebastian Heinlein <devel at glatzor.de>
 Architecture: all
 Source: silly-packages
 Version: 0.1-0
-Depends: silly-unavailbale
-Filename: ./silly-broken_0.1-0_all.deb
-Size: 1840
-MD5sum: 78bbe306af637c18f5df9dc47bfbf41f
-SHA1: bb63cdbde699fe2100349b0418af095e6d9f80fe
-SHA256: a816e61369de433e261b5ad041e913ee3c140637825ce6613a5c99efbfd4c21b
-Description: package with broken dependencies
+Filename: ./silly-base_0.1-0_all.deb
+Size: 1824
+MD5sum: 81ba1cf86142c466f35a36a11b5b7b52
+SHA1: f949c8e5962a43fbcd4f7d67df0ebe741052c497
+SHA256: a7c2a30abdb6488d5c3d2894db398f5dfafbc6be098da1135822be4e3ac94b32
+SHA512: a4b01d2407fbe5afcd71ce041ebb76bb63c375cdf0fe457b6932d32a9c2815b3b9d369432e3e0a91fceb846bd9399fcb28ab64efbe7edb003ae9dc03191c363e
+Description: working package
  Silly packages is a set of packages which will break your package
  management tool. They are created only for debugging purposes.
  .
- This package cannot be installed because of a missing dependency.
+ This package doesn't contain any files and should always be installable.
+
+Package: silly-depend-base-lintian-broken
+Priority: extra
+Section: admin
+Installed-Size: 32
+Architecture: all
+Source: silly-packages
+Version: 0.1-0
+Depends: silly-base
+Filename: ./silly-depend-base-lintian-broken_0.1-0_all.deb
+Size: 1758
+MD5sum: ba9e0b746b08fae8f8a8fbb4cf9ba41e
+SHA1: 8bcaf6034b09383e461f0e366762e6b6683e69e2
+SHA256: ff1302170d232c21ab66f332e38c51b2af9b6d06d8f377ae5944465be9467c22
+SHA512: 514435fbd32a5b478a3a749b30f0b248e651e9145a239ad6ad621305d030e670bc6d4d2d8a08e87955f1dc1b88ef23eb12b0aa1b5fbb077a6105e4a2b63c1697
+Description: package depending on silly-base (but lintian broken)
+ Silly packages is a set of packages which will break your package
+ management tool. They are created only for debugging purposes.
+ .
+ This package depends on silly-base and has no "Maintainer" set
+ and the file owner is totally wrong so lintian complains about it.
 
diff --git a/backends/apt/tests/repo/silly-postinst-input_0.1-0_all.deb b/backends/apt/tests/repo/silly-postinst-input_0.1-0_all.deb
index 89e0c3d..f06d75b 100644
Binary files a/backends/apt/tests/repo/silly-postinst-input_0.1-0_all.deb and b/backends/apt/tests/repo/silly-postinst-input_0.1-0_all.deb differ
diff --git a/backends/apt/tests/test_modifiers.py b/backends/apt/tests/test_modifiers.py
index 83f767a..afbde21 100644
--- a/backends/apt/tests/test_modifiers.py
+++ b/backends/apt/tests/test_modifiers.py
@@ -22,7 +22,9 @@
 
 __author__  = "Sebastian Heinlein <devel at glatzor.de>"
 
+import glob
 import os
+import shutil
 import unittest
 
 import apt_pkg
@@ -30,7 +32,7 @@ import mox
 
 from core import get_tests_dir, Chroot
 from packagekit import enums
-from aptBackend import PackageKitAptBackend
+import aptBackend
 
 REPO_PATH = os.path.join(get_tests_dir(), "repo")
 
@@ -48,7 +50,7 @@ class CacheModifiersTests(mox.MoxTestBase):
         self.chroot = Chroot()
         self.chroot.setup()
         self.addCleanup(self.chroot.remove)
-        self.backend = PackageKitAptBackend([])
+        self.backend = aptBackend.PackageKitAptBackend([])
 
     def _catch_callbacks(self, *args):
         methods = list(args)
@@ -124,6 +126,43 @@ class CacheModifiersTests(mox.MoxTestBase):
         self.backend._cache.open()
         self.assertEqual(self.backend._cache["silly-base"].is_installed, True)
 
+    def test_install_fail(self):
+        """Test handling the installation of failing packages."""
+        self._catch_callbacks()
+        self.backend.error(enums.ERROR_PACKAGE_FAILED_TO_INSTALL,
+                           mox.IsA(str), True)
+        self.backend.finished()
+        # Setup environment
+        self.mox.ReplayAll()
+        self.chroot.add_test_repository()
+        self.backend._cache.open()
+        # Install the package
+        self.backend.dispatch_command("install-packages",
+                                      ["True", "silly-fail;0.1-0;all;"])
+        self.backend._cache.open()
+        self.assertEqual(self.backend._cache["silly-base"].is_installed, False)
+
+    def test_install_timeout(self):
+        """Test installation of hanging package."""
+        if os.getuid() != 0:
+            self.skipTest("The test requires root privileges")
+        self._catch_callbacks()
+        self.backend.error(enums.ERROR_PACKAGE_FAILED_TO_CONFIGURE,
+                           mox.IsA(u""), True)
+        self.backend.finished()
+        # Setup environment
+        self.mox.ReplayAll()
+        self.chroot.add_test_repository()
+        # Copy the files for a small execution environment to execute dash
+        os.system("dpkg -L dash libc6 |"
+                  "xargs -i cp --parents '{}' %s" % self.chroot.path)
+        self.backend._cache.open()
+        aptBackend.TIMEOUT_IDLE_INSTALLATION = 5
+        # Install the package
+        self.backend.dispatch_command("install-packages",
+                                      ["True",
+                                       "silly-postinst-input;0.1-0;all;"])
+
     def test_install_only_trusted(self):
         """Test if the installation of a not trusted package fails."""
         self._catch_callbacks()
commit ff8816a0085d8ddf3e6e6c187079a4652cfb79e9
Author: Sebastian Heinlein <devel at glatzor.de>
Date:   Tue Nov 29 13:44:56 2011 +0100

    apt: Trivial remove a debug statement from the dpkg wrapper

diff --git a/backends/apt/tests/dpkg-wrapper.sh b/backends/apt/tests/dpkg-wrapper.sh
index 2de5c30..3880036 100755
--- a/backends/apt/tests/dpkg-wrapper.sh
+++ b/backends/apt/tests/dpkg-wrapper.sh
@@ -1,3 +1,2 @@
 #!/bin/sh
-echo "yeah"
 exec /usr/bin/fakeroot /usr/bin/dpkg $*
commit e9668afae1c1646690e6e00134104b6296b7cf5c
Author: Sebastian Heinlein <devel at glatzor.de>
Date:   Tue Nov 29 13:35:18 2011 +0100

    apt: Use the apt.progress.base.InstallProgress abilities to handle dpkg
    progress

diff --git a/backends/apt/aptBackend.py b/backends/apt/aptBackend.py
index 7f3ab79..bc617c7 100755
--- a/backends/apt/aptBackend.py
+++ b/backends/apt/aptBackend.py
@@ -226,45 +226,6 @@ class PKError(Exception):
         return "%s: %s" % (self.enum, self.msg)
 
 
-class DpkgInstallProgress(apt.progress.base.InstallProgress):
-
-    """Class to initiate and monitor installation of local package
-    files with dpkg.
-    """
-
-    #FIXME: Use the merged DpkgInstallProgress of python-apt
-    def recover(self):
-        """Run 'dpkg --configure -a'."""
-        cmd = [apt_pkg.config.find_file("Dir::Bin::Dpkg"),
-                "--status-fd", str(self.writefd),
-               "--root", apt_pkg.config["Dir"],
-               "--force-confdef", "--force-confold"]
-        cmd.extend(apt_pkg.config.value_list("Dpkg::Options"))
-        cmd.extend(("--configure", "-a"))
-        self.run(cmd)
-
-    def install(self, filenames):
-        """Install the given package using a dpkg command line call."""
-        cmd = [apt_pkg.config.find_file("Dir::Bin::Dpkg"),
-               "--force-confdef", "--force-confold",
-               "--status-fd", str(self.writefd), 
-               "--root", apt_pkg.config["Dir"]]
-        cmd.extend(apt_pkg.config.value_list("Dpkg::Options"))
-        cmd.append("-i")
-        cmd.extend([str(f) for f in filenames])
-        self.run(cmd)
-
-    def run(self, cmd):
-        """Run and monitor a dpkg command line call."""
-        pklog.debug("Executing: %s" % cmd)
-        (self.master_fd, slave) = pty.openpty()
-        fcntl.fcntl(self.master_fd, fcntl.F_SETFL, os.O_NONBLOCK)
-        p = subprocess.Popen(cmd, stdout=slave, stdin=slave)
-        self.child_pid = p.pid
-        res = self.wait_child()
-        return res
-
-
 class PackageKitOpProgress(apt.progress.base.OpProgress):
 
     """Handle the cache opening progress."""
@@ -495,7 +456,7 @@ class PackageKitInstallProgress(apt.progress.base.InstallProgress):
         self.last_pkg = pkg_name
         self.last_item_percentage = item_percentage
 
-    def dpkg_status_changed(self, pkg_name, status):
+    def processing(self, pkg_name, status):
         """Callback for dpkg status updates."""
         if status == "install":
             info = enums.INFO_INSTALLING
@@ -582,35 +543,44 @@ class PackageKitInstallProgress(apt.progress.base.InstallProgress):
             self._backend.require_restart(enums.RESTART_SYSTEM, "")
 
 
-class PackageKitDpkgInstallProgress(DpkgInstallProgress,
-                                    PackageKitInstallProgress):
-    """
-    Class to integrate the progress of core dpkg operations into PackageKit
+class PackageKitDpkgInstallProgress(PackageKitInstallProgress):
+
+    """Class to initiate and monitor installation of local package
+    files with dpkg.
     """
-    def run(self, filenames):
-        return DpkgInstallProgress.run(self, filenames)
 
-    def update_interface(self):
-        DpkgInstallProgress.update_interface(self)
-        try:
-            out = os.read(self.master_fd, 512)
-            self.output += out
-            if out != "": pklog.debug("Dpkg out: %s" % out)
-        except OSError:
-            pass
-        # we timed out, send ctrl-c
-        if self.last_activity + self.timeout < time.time():
-            pklog.critical("no activity for %s time sending "
-                           "ctrl-c" % self.timeout)
-            os.write(self.master_fd, chr(3))
-            msg = "Transaction was cancelled since the installation " \
-                  "of a package hung.\n" \
-                  "This can be caused by maintainer scripts which " \
-                  "require input on the terminal:\n%s" % self.output
-            raise PKError(enums.ERROR_PACKAGE_FAILED_TO_CONFIGURE,
-                          format_string(msg))
+    def recover(self):
+        """Run 'dpkg --configure -a'."""
+        cmd = [apt_pkg.config.find_file("Dir::Bin::Dpkg"),
+                "--status-fd", str(self.writefd),
+               "--root", apt_pkg.config["Dir"],
+               "--force-confdef", "--force-confold"]
+        cmd.extend(apt_pkg.config.value_list("Dpkg::Options"))
+        cmd.extend(("--configure", "-a"))
+        self.run(cmd)
 
+    def install(self, filenames):
+        """Install the given package using a dpkg command line call."""
+        cmd = [apt_pkg.config.find_file("Dir::Bin::Dpkg"),
+               "--force-confdef", "--force-confold",
+               "--status-fd", str(self.writefd), 
+               "--root", apt_pkg.config["Dir"]]
+        cmd.extend(apt_pkg.config.value_list("Dpkg::Options"))
+        cmd.append("-i")
+        cmd.extend([str(f) for f in filenames])
+        self.run(cmd)
 
+    def run(self, cmd):
+        """Run and monitor a dpkg command line call."""
+        pklog.debug("Executing: %s" % cmd)
+        (self.master_fd, slave) = pty.openpty()
+        fcntl.fcntl(self.master_fd, fcntl.F_SETFL, os.O_NONBLOCK)
+        p = subprocess.Popen(cmd, stdout=slave, stdin=slave)
+        self.child_pid = p.pid
+        res = self.wait_child()
+        return res
+
+ 
 if REPOS_SUPPORT == True:
     class PackageKitSoftwareProperties(softwareproperties.SoftwareProperties.SoftwareProperties):
         """
commit 7ac43367c542e61e688dd543abcfe6525d13a3cc
Merge: 68eb607... 0180f1c...
Author: Sebastian Heinlein <devel at glatzor.de>
Date:   Tue Nov 29 12:28:49 2011 +0100

    Merge branch 'apt-is-back'

commit 9a082da3f9aa721dad8b4ab1a31188ec158156b0
Author: Richard Hughes <richard at hughsie.com>
Date:   Tue Nov 29 11:28:12 2011 +0000

    zif: Use the new transaction_reset hook to clear the backend state

diff --git a/backends/zif/pk-backend-zif.c b/backends/zif/pk-backend-zif.c
index 38d9999..fb8088b 100644
--- a/backends/zif/pk-backend-zif.c
+++ b/backends/zif/pk-backend-zif.c
@@ -364,12 +364,6 @@ pk_backend_transaction_start (PkBackend *backend)
 	zif_config_set_boolean (priv->config, "background",
 				pk_backend_use_background (backend), NULL);
 
-	/* setup state */
-	zif_state_reset (priv->state);
-
-	/* allow cancelling again */
-	g_cancellable_reset (priv->cancellable);
-
 	/* start with a new transaction */
 #if ZIF_CHECK_VERSION(0,2,4)
 	g_object_get (backend,
@@ -391,6 +385,19 @@ out:
 }
 
 /**
+ * pk_backend_transaction_reset:
+ */
+void
+pk_backend_transaction_reset (PkBackend *backend)
+{
+	/* setup state */
+	zif_state_reset (priv->state);
+
+	/* allow cancelling again */
+	g_cancellable_reset (priv->cancellable);
+}
+
+/**
  * pk_backend_transaction_stop:
  */
 void
commit f4993405439243127a2dc50f14c60c3c1269928b
Author: Richard Hughes <richard at hughsie.com>
Date:   Tue Nov 29 11:27:31 2011 +0000

    Add a transaction_reset backend hook
    
    This is so backends can reset any per-backend state before being reused by plugins.

diff --git a/src/pk-backend.c b/src/pk-backend.c
index 6be5a98..2ed71e1 100644
--- a/src/pk-backend.c
+++ b/src/pk-backend.c
@@ -667,6 +667,7 @@ pk_backend_set_name (PkBackend *backend, const gchar *backend_name, GError **err
 			g_module_symbol (handle, "pk_backend_simulate_update_packages", (gpointer *)&desc->simulate_update_packages);
 			g_module_symbol (handle, "pk_backend_transaction_start", (gpointer *)&desc->transaction_start);
 			g_module_symbol (handle, "pk_backend_transaction_stop", (gpointer *)&desc->transaction_stop);
+			g_module_symbol (handle, "pk_backend_transaction_reset", (gpointer *)&desc->transaction_reset);
 			g_module_symbol (handle, "pk_backend_update_packages", (gpointer *)&desc->update_packages);
 			g_module_symbol (handle, "pk_backend_update_system", (gpointer *)&desc->update_system);
 			g_module_symbol (handle, "pk_backend_what_provides", (gpointer *)&desc->what_provides);
@@ -2362,6 +2363,7 @@ pk_backend_get_exit_code (PkBackend *backend)
  *
  * >>> desc->transaction_start(backend)
  *     (locked backend)
+ * >>> desc->transaction_reset(backend)
  * >>> desc->backend_method_we_want_to_run(backend)
  * <<< ::Package(PK_INFO_ENUM_INSTALLING,"hal;0.1.1;i386;fedora","Hardware Stuff")
  * >>> desc->transaction_stop(backend)
@@ -2371,6 +2373,7 @@ pk_backend_get_exit_code (PkBackend *backend)
  * or in the case of backend_method_we_want_to_run() failure:
  * >>> desc->transaction_start(backend)
  *     (locked backend)
+ * >>> desc->transaction_reset(backend)
  * >>> desc->backend_method_we_want_to_run(backend)
  * <<< ::ErrorCode(PK_ERROR_ENUM_FAILED_TO_FIND,"no package")
  * >>> desc->transaction_stop(backend)
@@ -2399,6 +2402,7 @@ pk_backend_transaction_start (PkBackend *backend)
 	}
 
 	/* run the transaction setup */
+	pk_backend_transaction_reset (backend);
 	backend->priv->desc->transaction_start (backend);
 }
 
@@ -2423,12 +2427,33 @@ pk_backend_transaction_stop (PkBackend *backend)
 	}
 
 	/* run the transaction setup */
+	pk_backend_transaction_reset (backend);
 	backend->priv->desc->transaction_stop (backend);
 out:
 	return;
 }
 
 /**
+ * pk_backend_transaction_reset:
+ */
+void
+pk_backend_transaction_reset (PkBackend *backend)
+{
+	g_return_if_fail (PK_IS_BACKEND (backend));
+
+	/* no transaction setup is perfectly fine */
+	if (backend->priv->desc->transaction_reset == NULL) {
+		g_debug ("no transaction reset vfunc");
+		goto out;
+	}
+
+	/* run the transaction setup */
+	backend->priv->desc->transaction_reset (backend);
+out:
+	return;
+}
+
+/**
  * pk_backend_finished_delay:
  *
  * We can call into this function if we *know* it's safe.
@@ -3304,6 +3329,7 @@ pk_backend_download_packages (PkBackend *backend, gchar **package_ids, const gch
 	pk_backend_set_role_internal (backend, PK_ROLE_ENUM_DOWNLOAD_PACKAGES);
 	pk_store_set_strv (backend->priv->store, "package_ids", package_ids);
 	pk_store_set_string (backend->priv->store, "directory", directory);
+	pk_backend_transaction_reset (backend);
 	backend->priv->desc->download_packages (backend, package_ids, directory);
 }
 
@@ -3316,6 +3342,7 @@ pk_backend_get_categories (PkBackend *backend)
 	g_return_if_fail (PK_IS_BACKEND (backend));
 	g_return_if_fail (backend->priv->desc->get_categories != NULL);
 	pk_backend_set_role_internal (backend, PK_ROLE_ENUM_GET_CATEGORIES);
+	pk_backend_transaction_reset (backend);
 	backend->priv->desc->get_categories (backend);
 }
 
@@ -3331,6 +3358,7 @@ pk_backend_get_depends (PkBackend *backend, PkBitfield filters, gchar **package_
 	pk_store_set_uint (backend->priv->store, "filters", filters);
 	pk_store_set_strv (backend->priv->store, "package_ids", package_ids);
 	pk_store_set_bool (backend->priv->store, "recursive", recursive);
+	pk_backend_transaction_reset (backend);
 	backend->priv->desc->get_depends (backend, filters, package_ids, recursive);
 }
 
@@ -3344,6 +3372,7 @@ pk_backend_get_details (PkBackend *backend, gchar **package_ids)
 	g_return_if_fail (backend->priv->desc->get_details != NULL);
 	pk_backend_set_role_internal (backend, PK_ROLE_ENUM_GET_DETAILS);
 	pk_store_set_strv (backend->priv->store, "package_ids", package_ids);
+	pk_backend_transaction_reset (backend);
 	backend->priv->desc->get_details (backend, package_ids);
 }
 
@@ -3356,6 +3385,7 @@ pk_backend_get_distro_upgrades (PkBackend *backend)
 	g_return_if_fail (PK_IS_BACKEND (backend));
 	g_return_if_fail (backend->priv->desc->get_distro_upgrades != NULL);
 	pk_backend_set_role_internal (backend, PK_ROLE_ENUM_GET_DISTRO_UPGRADES);
+	pk_backend_transaction_reset (backend);
 	backend->priv->desc->get_distro_upgrades (backend);
 }
 
@@ -3369,6 +3399,7 @@ pk_backend_get_files (PkBackend *backend, gchar **package_ids)
 	g_return_if_fail (backend->priv->desc->get_files != NULL);
 	pk_backend_set_role_internal (backend, PK_ROLE_ENUM_GET_FILES);
 	pk_store_set_strv (backend->priv->store, "package_ids", package_ids);
+	pk_backend_transaction_reset (backend);
 	backend->priv->desc->get_files (backend, package_ids);
 }
 
@@ -3384,6 +3415,7 @@ pk_backend_get_requires (PkBackend *backend, PkBitfield filters, gchar **package
 	pk_store_set_uint (backend->priv->store, "filters", filters);
 	pk_store_set_strv (backend->priv->store, "package_ids", package_ids);
 	pk_store_set_bool (backend->priv->store, "recursive", recursive);
+	pk_backend_transaction_reset (backend);
 	backend->priv->desc->get_requires (backend, filters, package_ids, recursive);
 }
 
@@ -3397,6 +3429,7 @@ pk_backend_get_update_detail (PkBackend *backend, gchar **package_ids)
 	g_return_if_fail (backend->priv->desc->get_update_detail != NULL);
 	pk_backend_set_role_internal (backend, PK_ROLE_ENUM_GET_UPDATE_DETAIL);
 	pk_store_set_strv (backend->priv->store, "package_ids", package_ids);
+	pk_backend_transaction_reset (backend);
 	backend->priv->desc->get_update_detail (backend, package_ids);
 }
 
@@ -3410,6 +3443,7 @@ pk_backend_get_updates (PkBackend *backend, PkBitfield filters)
 	g_return_if_fail (backend->priv->desc->get_updates != NULL);
 	pk_backend_set_role_internal (backend, PK_ROLE_ENUM_GET_UPDATES);
 	pk_store_set_uint (backend->priv->store, "filters", filters);
+	pk_backend_transaction_reset (backend);
 	backend->priv->desc->get_updates (backend, filters);
 }
 
@@ -3425,6 +3459,7 @@ pk_backend_install_packages (PkBackend *backend, gboolean only_trusted, gchar **
 	pk_store_set_bool (backend->priv->store, "only_trusted", only_trusted);
 	pk_store_set_strv (backend->priv->store, "package_ids", package_ids);
 	pk_backend_set_bool (backend, "hint:simulate", FALSE);
+	pk_backend_transaction_reset (backend);
 	backend->priv->desc->install_packages (backend, only_trusted, package_ids);
 }
 
@@ -3439,6 +3474,7 @@ pk_backend_install_signature (PkBackend *backend, PkSigTypeEnum type, const gcha
 	pk_backend_set_role_internal (backend, PK_ROLE_ENUM_INSTALL_SIGNATURE);
 	pk_store_set_string (backend->priv->store, "key_id", key_id);
 	pk_store_set_string (backend->priv->store, "package_id", package_id);
+	pk_backend_transaction_reset (backend);
 	backend->priv->desc->install_signature (backend, type, key_id, package_id);
 }
 
@@ -3454,6 +3490,7 @@ pk_backend_install_files (PkBackend *backend, gboolean only_trusted, gchar **ful
 	pk_store_set_bool (backend->priv->store, "only_trusted", only_trusted);
 	pk_store_set_strv (backend->priv->store, "full_paths", full_paths);
 	pk_backend_set_bool (backend, "hint:simulate", FALSE);
+	pk_backend_transaction_reset (backend);
 	backend->priv->desc->install_files (backend, only_trusted, full_paths);
 }
 
@@ -3467,6 +3504,7 @@ pk_backend_refresh_cache (PkBackend *backend, gboolean force)
 	g_return_if_fail (backend->priv->desc->refresh_cache != NULL);
 	pk_backend_set_role_internal (backend, PK_ROLE_ENUM_REFRESH_CACHE);
 	pk_store_set_bool (backend->priv->store, "force", force);
+	pk_backend_transaction_reset (backend);
 	backend->priv->desc->refresh_cache (backend, force);
 }
 
@@ -3483,6 +3521,7 @@ pk_backend_remove_packages (PkBackend *backend, gchar **package_ids, gboolean al
 	pk_store_set_bool (backend->priv->store, "allow_deps", allow_deps);
 	pk_store_set_bool (backend->priv->store, "autoremove", autoremove);
 	pk_backend_set_bool (backend, "hint:simulate", FALSE);
+	pk_backend_transaction_reset (backend);
 	backend->priv->desc->remove_packages (backend, package_ids, allow_deps, autoremove);
 }
 
@@ -3497,6 +3536,7 @@ pk_backend_resolve (PkBackend *backend, PkBitfield filters, gchar **package_ids)
 	pk_backend_set_role_internal (backend, PK_ROLE_ENUM_RESOLVE);
 	pk_store_set_uint (backend->priv->store, "filters", filters);
 	pk_store_set_strv (backend->priv->store, "package_ids", package_ids);
+	pk_backend_transaction_reset (backend);
 	backend->priv->desc->resolve (backend, filters, package_ids);
 }
 
@@ -3510,6 +3550,7 @@ pk_backend_rollback (PkBackend *backend, const gchar *transaction_id)
 	g_return_if_fail (backend->priv->desc->rollback != NULL);
 	pk_backend_set_role_internal (backend, PK_ROLE_ENUM_ROLLBACK);
 	pk_store_set_string (backend->priv->store, "transaction_id", transaction_id);
+	pk_backend_transaction_reset (backend);
 	backend->priv->desc->rollback (backend, transaction_id);
 }
 
@@ -3524,6 +3565,7 @@ pk_backend_search_details (PkBackend *backend, PkBitfield filters, gchar **value
 	pk_backend_set_role_internal (backend, PK_ROLE_ENUM_SEARCH_DETAILS);
 	pk_store_set_uint (backend->priv->store, "filters", filters);
 	pk_store_set_strv (backend->priv->store, "search", values);
+	pk_backend_transaction_reset (backend);
 	backend->priv->desc->search_details (backend, filters, values);
 }
 
@@ -3538,6 +3580,7 @@ pk_backend_search_files (PkBackend *backend, PkBitfield filters, gchar **values)
 	pk_backend_set_role_internal (backend, PK_ROLE_ENUM_SEARCH_FILE);
 	pk_store_set_uint (backend->priv->store, "filters", filters);
 	pk_store_set_strv (backend->priv->store, "search", values);
+	pk_backend_transaction_reset (backend);
 	backend->priv->desc->search_files (backend, filters, values);
 }
 
@@ -3552,6 +3595,7 @@ pk_backend_search_groups (PkBackend *backend, PkBitfield filters, gchar **values
 	pk_backend_set_role_internal (backend, PK_ROLE_ENUM_SEARCH_GROUP);
 	pk_store_set_uint (backend->priv->store, "filters", filters);
 	pk_store_set_strv (backend->priv->store, "search", values);
+	pk_backend_transaction_reset (backend);
 	backend->priv->desc->search_groups (backend, filters, values);
 }
 
@@ -3566,6 +3610,7 @@ pk_backend_search_names (PkBackend *backend, PkBitfield filters, gchar **values)
 	pk_backend_set_role_internal (backend, PK_ROLE_ENUM_SEARCH_NAME);
 	pk_store_set_uint (backend->priv->store, "filters", filters);
 	pk_store_set_strv (backend->priv->store, "search", values);
+	pk_backend_transaction_reset (backend);
 	backend->priv->desc->search_names (backend, filters, values);
 }
 
@@ -3581,6 +3626,7 @@ pk_backend_update_packages (PkBackend *backend, gboolean only_trusted, gchar **p
 	pk_store_set_bool (backend->priv->store, "only_trusted", only_trusted);
 	pk_store_set_strv (backend->priv->store, "package_ids", package_ids);
 	pk_backend_set_bool (backend, "hint:simulate", FALSE);
+	pk_backend_transaction_reset (backend);
 	backend->priv->desc->update_packages (backend, only_trusted, package_ids);
 }
 
@@ -3595,6 +3641,7 @@ pk_backend_update_system (PkBackend *backend, gboolean only_trusted)
 	pk_backend_set_role_internal (backend, PK_ROLE_ENUM_UPDATE_SYSTEM);
 	pk_store_set_bool (backend->priv->store, "only_trusted", only_trusted);
 	pk_backend_set_bool (backend, "hint:simulate", FALSE);
+	pk_backend_transaction_reset (backend);
 	backend->priv->desc->update_system (backend, only_trusted);
 }
 
@@ -3608,6 +3655,7 @@ pk_backend_get_repo_list (PkBackend *backend, PkBitfield filters)
 	g_return_if_fail (backend->priv->desc->get_repo_list != NULL);
 	pk_backend_set_role_internal (backend, PK_ROLE_ENUM_GET_REPO_LIST);
 	pk_store_set_uint (backend->priv->store, "filters", filters);
+	pk_backend_transaction_reset (backend);
 	backend->priv->desc->get_repo_list (backend, filters);
 }
 
@@ -3622,6 +3670,7 @@ pk_backend_repo_enable (PkBackend *backend, const gchar *repo_id, gboolean enabl
 	pk_backend_set_role_internal (backend, PK_ROLE_ENUM_REPO_ENABLE);
 	pk_store_set_string (backend->priv->store, "repo_id", repo_id);
 	pk_store_set_bool (backend->priv->store, "enabled", enabled);
+	pk_backend_transaction_reset (backend);
 	backend->priv->desc->repo_enable (backend, repo_id, enabled);
 }
 
@@ -3637,6 +3686,7 @@ pk_backend_repo_set_data (PkBackend *backend, const gchar *repo_id, const gchar
 	pk_store_set_string (backend->priv->store, "repo_id", repo_id);
 	pk_store_set_string (backend->priv->store, "parameter", parameter);
 	pk_store_set_string (backend->priv->store, "value", value);
+	pk_backend_transaction_reset (backend);
 	backend->priv->desc->repo_set_data (backend, repo_id, parameter, value);
 }
 
@@ -3652,6 +3702,7 @@ pk_backend_what_provides (PkBackend *backend, PkBitfield filters, PkProvidesEnum
 	pk_store_set_uint (backend->priv->store, "filters", filters);
 	pk_store_set_uint (backend->priv->store, "provides", provides);
 	pk_store_set_strv (backend->priv->store, "search", values);
+	pk_backend_transaction_reset (backend);
 	backend->priv->desc->what_provides (backend, filters, provides, values);
 }
 
@@ -3665,6 +3716,7 @@ pk_backend_get_packages (PkBackend *backend, PkBitfield filters)
 	g_return_if_fail (backend->priv->desc->get_packages != NULL);
 	pk_backend_set_role_internal (backend, PK_ROLE_ENUM_GET_PACKAGES);
 	pk_store_set_uint (backend->priv->store, "filters", filters);
+	pk_backend_transaction_reset (backend);
 	backend->priv->desc->get_packages (backend, filters);
 }
 
@@ -3679,6 +3731,7 @@ pk_backend_simulate_install_files (PkBackend *backend, gchar **full_paths)
 	pk_backend_set_role_internal (backend, PK_ROLE_ENUM_SIMULATE_INSTALL_FILES);
 	pk_store_set_strv (backend->priv->store, "full_paths", full_paths);
 	pk_backend_set_bool (backend, "hint:simulate", TRUE);
+	pk_backend_transaction_reset (backend);
 	backend->priv->desc->simulate_install_files (backend, full_paths);
 }
 
@@ -3693,6 +3746,7 @@ pk_backend_simulate_install_packages (PkBackend *backend, gchar **package_ids)
 	pk_backend_set_role_internal (backend, PK_ROLE_ENUM_SIMULATE_INSTALL_PACKAGES);
 	pk_store_set_strv (backend->priv->store, "package_ids", package_ids);
 	pk_backend_set_bool (backend, "hint:simulate", TRUE);
+	pk_backend_transaction_reset (backend);
 	backend->priv->desc->simulate_install_packages (backend, package_ids);
 }
 
@@ -3708,6 +3762,7 @@ pk_backend_simulate_remove_packages (PkBackend *backend, gchar **package_ids, gb
 	pk_store_set_strv (backend->priv->store, "package_ids", package_ids);
 	pk_store_set_bool (backend->priv->store, "autoremove", autoremove);
 	pk_backend_set_bool (backend, "hint:simulate", TRUE);
+	pk_backend_transaction_reset (backend);
 	backend->priv->desc->simulate_remove_packages (backend, package_ids, autoremove);
 }
 
@@ -3722,6 +3777,7 @@ pk_backend_simulate_update_packages (PkBackend *backend, gchar **package_ids)
 	pk_backend_set_role_internal (backend, PK_ROLE_ENUM_SIMULATE_UPDATE_PACKAGES);
 	pk_store_set_strv (backend->priv->store, "package_ids", package_ids);
 	pk_backend_set_bool (backend, "hint:simulate", TRUE);
+	pk_backend_transaction_reset (backend);
 	backend->priv->desc->simulate_update_packages (backend, package_ids);
 }
 
@@ -3736,6 +3792,7 @@ pk_backend_upgrade_system (PkBackend *backend, const gchar *distro_id, PkUpgrade
 	pk_backend_set_role_internal (backend, PK_ROLE_ENUM_UPGRADE_SYSTEM);
 	pk_store_set_string (backend->priv->store, "distro_id", distro_id);
 	pk_store_set_uint (backend->priv->store, "upgrade_kind", upgrade_kind);
+	pk_backend_transaction_reset (backend);
 	backend->priv->desc->upgrade_system (backend, distro_id, upgrade_kind);
 }
 
diff --git a/src/pk-backend.h b/src/pk-backend.h
index d8796f0..86ee230 100644
--- a/src/pk-backend.h
+++ b/src/pk-backend.h
@@ -120,6 +120,7 @@ void		pk_backend_initialize			(PkBackend	*backend);
 void		pk_backend_destroy			(PkBackend	*backend);
 void		pk_backend_transaction_start		(PkBackend	*backend);
 void		pk_backend_transaction_stop		(PkBackend	*backend);
+void		pk_backend_transaction_reset		(PkBackend	*backend);
 void		pk_backend_get_categories		(PkBackend	*backend);
 void		pk_backend_get_depends			(PkBackend	*backend,
 							 PkBitfield	 filters,
@@ -481,7 +482,8 @@ typedef struct {
 	void		(*upgrade_system)		(PkBackend	*backend,
 							 const gchar	*distro_id,
 							 PkUpgradeKindEnum upgrade_kind);
-	gpointer	padding[7];
+	void		(*transaction_reset)		(PkBackend	*backend);
+	gpointer	padding[6];
 } PkBackendDesc;
 
 G_END_DECLS
commit 0180f1ccfe01fc6c00ef5df9942e12effd9e4c67
Author: Sebastian Heinlein <devel at glatzor.de>
Date:   Tue Nov 29 12:27:11 2011 +0100

    apt: remove oboslete files

diff --git a/backends/apt/TODO.apt b/backends/apt/TODO.apt
deleted file mode 100644
index affc71b..0000000
--- a/backends/apt/TODO.apt
+++ /dev/null
@@ -1,27 +0,0 @@
-ISSUES:
-
- * Support delayed or hidden debconf questions
-
-Unresolved issues can be discussed at the following wiki page:
-http://wiki.debian.org/PackageKit
-
-
-TODO:
-
- * Implement all open backend methods. A list of implemented backend methods 
-   can be found in PackageKit FAQ or in pk-backend-apt.c.
-
- * Blacklist packages requiring input on the terminal and try to change
-   the Debian policy in the long run. Way of automation?
- 
- * Allow to reinject debtags into the search results to get 
-   similar software which not matches on the search terms
-
- * Index file list and add properties for package name and section to
-   the xapian database to also make use of it in search group and 
-   search name (do we want this?)
-
- * Test and think about packages from cdroms
-
- * Talk to Sebastian Dröge about his new codec search implementation using
-   debtags
diff --git a/backends/apt/tests.py b/backends/apt/tests.py
deleted file mode 100755
index 70accd1..0000000
--- a/backends/apt/tests.py
+++ /dev/null
@@ -1,155 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-"""
-Provides unit test of the apt backend of PackageKit
-
-Copyright (C) 2008 Sebastian Heinlein <glatzor at ubuntu.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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-Licensed under the GNU General Public License Version 2
-"""
-
-__author__  = "Sebastian Heinlein <devel at glatzor.de>"
-
-import threading
-import time
-import os
-import shutil
-import sys
-import tempfile
-import unittest
-
-import apt
-import apt_pkg
-import mox
-import nose.tools
-
-from aptDBUSBackend import PackageKitAptBackend
-from packagekit.enums import *
-
-TEMPDIR = tempfile.mkdtemp(prefix="apt-backend-test")
-
-class AptBackendTestCase(mox.MoxTestBase):
-    """Test suite for the APT backend"""
-
-    def setUp(self):
-        """Create a mox factory and a backend instance"""
-        mox.MoxTestBase.setUp(self)
-        self.backend = PackageKitAptBackend(None, None)
-        for cb in ["Package", "Finished"]:
-            self.mox.StubOutWithMock(self.backend, cb)
-
-    @nose.tools.timed(10)
-    def test_00_Init(self):
-        """Test the initialization"""
-        self.mox.ReplayAll()
-        self.backend.Init()
-        while threading.activeCount() > 1:
-            time.sleep(0.1)
-        binary = os.path.join(TEMPDIR,
-                              apt_pkg.Config["Dir::Cache"],
-                              apt_pkg.Config["Dir::Cache::pkgcache"])
-        source = os.path.join(TEMPDIR,
-                              apt_pkg.Config["Dir::Cache"],
-                              apt_pkg.Config["Dir::Cache::srcpkgcache"])
-        self.assertTrue(os.path.exists(source))
-        self.assertTrue(os.path.exists(binary))
-        pkg = self.backend._cache["xterm"]
-        self.assertEqual(pkg.candidateVersion, "235-1")
-
-    @nose.tools.timed(10)
-    def test_01_Refresh(self):
-        """Test the Refresh of the cache method"""
-        self.backend.Finished(EXIT_SUCCESS)
-        self.mox.ReplayAll()
-        self.backend.doRefreshCache(False)
-        while threading.activeCount() > 1:
-            time.sleep(0.1)
-        self.assertEqual(self.backend._cache["xterm"].candidateVersion, "237-1")
-        self.assertTrue(self.backend._cache.has_key("synaptic"))
-
-    @nose.tools.timed(10)
-    def test_20_SearchName(self):
-        """Test the doSearchName method"""
-        self.backend.Package(INFO_INSTALLED, "xterm;235-1;i386;",
-                             "X terminal emulator")
-        self.backend.Finished(EXIT_SUCCESS)
-        self.mox.ReplayAll()
-        self.backend.doSearchName(FILTER_NONE, "xterm")
-        while threading.activeCount() > 1:
-            time.sleep(0.1)
-
-    @nose.tools.timed(10)
-    def test_20_SearchFile(self):
-        """Test the doSearchFile method"""
-        self.backend.Package(INFO_INSTALLED, "xterm;235-1;i386;",
-                             "X terminal emulator")
-        self.backend.Finished(EXIT_SUCCESS)
-        self.mox.ReplayAll()
-        self.backend.doSearchFile(FILTER_NONE, "bin/xterm")
-        while threading.activeCount() > 1:
-            time.sleep(0.1)
-
-    @nose.tools.timed(10)
-    def test_20_GetUpdates(self):
-        """Test the doGetUpdates method"""
-        self.backend.Package(INFO_NORMAL, "xterm;237-1;i386;",
-                             "X terminal emulator")
-        self.backend.Finished(EXIT_SUCCESS)
-        self.mox.ReplayAll()
-        self.backend.doGetUpdates(FILTER_NONE)
-        while threading.activeCount() > 1:
-            time.sleep(0.1)
-
-
-def setup():
-    """Create a temporary and very simple chroot for apt"""
-    apt_pkg.InitConfig()
-    config = apt_pkg.Config
-    config.Set("Dir::Etc::sourcelist", 
-               os.path.join(TEMPDIR, "etc/apt/sources.list"))
-    config.Set("Dir::Etc::sourceparts", "")
-    config.Set("Dir", TEMPDIR)
-    config.Set("Dir::State::status",
-               os.path.join(TEMPDIR, "var/lib/dpkg/status"))
-    os.makedirs(os.path.join(TEMPDIR, "var/lib/apt/lists/partial"))
-    os.makedirs(os.path.join(TEMPDIR, "var/cache/apt/archives/partial"))
-    os.makedirs(os.path.join(TEMPDIR, "var/lib/dpkg/info"))
-    os.makedirs(os.path.join(TEMPDIR, "etc/apt"))
-    os.makedirs(os.path.join(TEMPDIR, "repo"))
-    shutil.copy("data/Packages", os.path.join(TEMPDIR, "repo/Packages"))
-    shutil.copy("data/status", os.path.join(TEMPDIR, "var/lib/dpkg/status"))
-    shutil.copy("data/xterm.list", os.path.join(TEMPDIR,
-                                                "var/lib/dpkg/info/xterm.list"))
-    sources = open(os.path.join(TEMPDIR, "etc/apt/sources.list"), "w")
-    sources.write("deb file://%s/repo/ ./\n" % TEMPDIR)
-    sources.close()
-
-
-def teardown():
-    """Clear up temporary files"""
-    if os.path.exists(TEMPDIR):
-        shutil.rmtree(TEMPDIR)
-
-def usage():
-    print "ERROR: Run ./test.sh instead"
-    sys.exit(1)
-
-if __name__ == "__main__":
-    usage()
-
-# vim: ts=4 et sts=4
commit ae79c81dad4186055b3fe0a5151cd214ca6599a3
Author: Sebastian Heinlein <devel at glatzor.de>
Date:   Tue Nov 29 12:26:56 2011 +0100

    apt: Trivial documentation updates

diff --git a/backends/apt/README.apt b/backends/apt/README.apt
index beee1e8..385f2ac 100644
--- a/backends/apt/README.apt
+++ b/backends/apt/README.apt
@@ -13,11 +13,5 @@ A list of implemented functions are listed in the PackageKit FAQ:
 
 http://www.packagekit.org/pk-faq.html
 
-You can find packages for Ubuntu here:
-
-https://www.launchpad.net/~packagekit/+ppa
-
-Packages for Debian Unstable will be provided soon.
-
 Feel free to send comments or bug reports to the PackageKit mailing list
-or to the author.
+or to the author directly.
commit aba98cd3a4a2f465fb0d881a99b9422749292bb7
Author: Sebastian Heinlein <devel at glatzor.de>
Date:   Tue Nov 29 12:25:55 2011 +0100

    apt: Fix media change failure and a test case

diff --git a/backends/apt/aptBackend.py b/backends/apt/aptBackend.py
index 84bb40f..7f3ab79 100755
--- a/backends/apt/aptBackend.py
+++ b/backends/apt/aptBackend.py
@@ -310,6 +310,7 @@ class PackageKitAcquireProgress(apt.progress.base.AcquireProgress):
         self.last_progress = None
         self.last_sub_progress = None
         self.package_states = {}
+        self.media_change_required = None
 
     def pulse(self, owner):
         #TODO: port to pulse(owner)
@@ -348,17 +349,10 @@ class PackageKitAcquireProgress(apt.progress.base.AcquireProgress):
         self._backend.allow_cancel(False)
 
     def media_change(self, medium, drive):
-        #FIXME: Perhaps use hal to show a nicer drive name
+        #FIXME: Perhaps use gudev to show a nicer drive name
         self._backend.media_change_required(enums.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
-        #        later, but this one will be skipped by the daemon
-        self._backend.error(enums.ERROR_MEDIA_CHANGE_REQUIRED,
-                            "Insert the CDROM or DVD labeled '%s' "
-                            "into drive '%s'" % (medium, drive),
-                            exit=False)
+        self.media_change_required = medium, drive
         return False
 
 
@@ -1956,9 +1950,13 @@ class PackageKitAptBackend(PackageKitBaseBackend):
         try:
             self._cache.commit(acquire_prog, inst_prog)
         except apt.cache.FetchFailedException as err:
-            pklog.critical(format_string(err.message))
-            raise PKError(enums.ERROR_PACKAGE_DOWNLOAD_FAILED,
-                          format_string(err.message))
+            if acquire_prog.media_change_required:
+                raise PKError(enums.ERROR_MEDIA_CHANGE_REQUIRED,
+                              format_string(err.message))
+            else:
+                pklog.critical(format_string(err.message))
+                raise PKError(enums.ERROR_PACKAGE_DOWNLOAD_FAILED,
+                              format_string(err.message))
         except apt.cache.FetchCancelledException:
             raise PKError(enums.TRANSACTION_CANCELLED)
         except PKError as error:
diff --git a/backends/apt/tests/test_modifiers.py b/backends/apt/tests/test_modifiers.py
index 9a4c125..83f767a 100644
--- a/backends/apt/tests/test_modifiers.py
+++ b/backends/apt/tests/test_modifiers.py
@@ -245,6 +245,23 @@ Auto-Installed: 1""")
         self.assertEqual(self.backend._cache["silly-depend-base"].is_installed,
                          True)
 
+    def test_media_change_fail(self):
+        """Test correct failure in the case of missing medium."""
+        self._catch_callbacks()
+        self.backend.error(enums.ERROR_MEDIA_CHANGE_REQUIRED, mox.IsA(unicode),
+                           True)
+        self.backend.finished()
+        # Setup environment
+        self.mox.ReplayAll()
+        self.chroot.add_trusted_key()
+        self.chroot.add_cdrom_repository()
+        self.backend._cache.open()
+        # Install the package
+        self.backend.dispatch_command("install-packages",
+                                      ["True", "silly-base;0.1-0;all;"])
+        self.backend._cache.open()
+        self.assertEqual(self.backend._cache["silly-base"].is_installed, False)
+
 
 if __name__ == "__main__":
     unittest.main()
commit 24468ce1c5657a71fd317718ee831e189ceb1d32
Author: Sebastian Heinlein <devel at glatzor.de>
Date:   Tue Nov 29 12:05:14 2011 +0100

    apt: documentation updates

diff --git a/backends/apt/HACKING.apt b/backends/apt/HACKING.apt
deleted file mode 100644
index 239700f..0000000
--- a/backends/apt/HACKING.apt
+++ /dev/null
@@ -1,5 +0,0 @@
-The backend can be tested by running it as root from the source code and using
-
-  sudo python aptBackend.py --debug
-
-Use the --help command line switch for more details.
commit ac3f7c049ce1fee78bd98a5336cfd8f269b7fec9
Author: Sebastian Heinlein <devel at glatzor.de>
Date:   Tue Nov 29 12:01:32 2011 +0100

    apt: Don't use optparse to safe some startup time. Instead use a
    separate profiler script.

diff --git a/backends/apt/aptBackend.py b/backends/apt/aptBackend.py
index 1e232d3..84bb40f 100755
--- a/backends/apt/aptBackend.py
+++ b/backends/apt/aptBackend.py
@@ -25,7 +25,6 @@ import gzip
 import locale
 import logging
 import logging.handlers
-import optparse
 import os
 import pty
 import re
@@ -631,7 +630,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
 
     """PackageKit backend for APT"""
 
-    def __init__(self, args):
+    def __init__(self, cmds=""):
         pklog.info("Initializing APT backend")
         signal.signal(signal.SIGQUIT, self._sigquit)
         self._cache = None
@@ -639,7 +638,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
         apt_pkg.init_config()
         apt_pkg.config.set("DPkg::Options::", '--force-confdef')
         apt_pkg.config.set("DPkg::Options::", '--force-confold')
-        PackageKitBaseBackend.__init__(self, args)
+        PackageKitBaseBackend.__init__(self, cmds)
         self._open_cache(progress=False)
 
     # Methods ( client -> engine -> backend )
@@ -2230,56 +2229,9 @@ class PackageKitAptBackend(PackageKitBaseBackend):
         sys.exit(1)
 
 
-def debug_exception(type, value, tb):
-    """Provides an interactive debugging session on unhandled exceptions
-    See http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65287
-    """
-    if hasattr(sys, 'ps1') or not sys.stderr.isatty() or \
-       not sys.stdin.isatty() or not sys.stdout.isatty() or type==SyntaxError:
-        # Calls the default handler in interactive mode, if output is·
-        # redirected or on syntax errors
-        sys.__excepthook__(type, value, tb)
-    else:
-        import traceback, pdb
-        traceback.print_exception(type, value, tb)
-        print()
-        pdb.pm()
-
-def run(args, single=False):
-    """Start the apt backend."""
-    backend = PackageKitAptBackend("")
-    if single == True:
-        backend.dispatch_command(args[0], args[1:])
-    else:
-        backend.dispatcher(args)
-
 def main():
-    parser = optparse.OptionParser(description="APT backend for PackageKit")
-    parser.add_option("-p", "--profile",
-                      action="store", type="string", dest="profile",
-                      help="Store profiling stats in the given file "
-                           "(Only needed by developers)")
-    parser.add_option("-d", "--debug",
-                      action="store_true", dest="debug",
-                      help="Show a lot of additional information and drop to "
-                           "a debugging console on unhandled exceptions "
-                           "(Only needed by developers)")
-    parser.add_option("-s", "--single",
-                      action="store_true", dest="single",
-                      help="Only perform one command and don't listen on stdin "
-                           "(Only needed by developers)")
-    (options, args) = parser.parse_args()
-    if options.debug:
-        pklog.setLevel(logging.DEBUG)
-        sys.excepthook = debug_exception
-
-    if options.profile:
-        import hotshot
-        prof = hotshot.Profile(options.profile)
-        prof.runcall(run, args, options.single)
-        prof.close()
-    else:
-        run(args, options.single)
+    backend = PackageKitAptBackend()
+    backend.dispatcher(sys.argv[1:])
 
 if __name__ == '__main__':
     main()
diff --git a/backends/apt/profiler.py b/backends/apt/profiler.py
index bc09f9e..60abba6 100644
--- a/backends/apt/profiler.py
+++ b/backends/apt/profiler.py
@@ -1,40 +1,17 @@
 #!/usr/bin/env python
-# 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-# Copyright (C) 2008
-#    Sebastian Heinlein <sebi at glatzor.de>
-
-"""
-Allows to start the apt2 backend in a profling mode
-"""
-
-__author__ = "Sebastian Heinlein <devel at glatzor.de>"
-
 
 import hotshot
 import sys
 
-from aptDBUSBackend import main
+import aptBackend
+
+def main():
+    prof = hotshot.Profile("%s.prof" % sys.argv[1])
+    backend = aptBackend.PackageKitAptBackend(sys.argv[1:])
+    prof.runcall(backend.run_command)
+    prof.close()
 
-if len(sys.argv) == 2:
-    profile = sys.argv[1]
-else:
-    profile = "profile"
+if __name__ == '__main__':
+    main()
 
-prof = hotshot.Profile(profile)
-print prof.runcall(main)
-prof.close()
+# vim: ts=4 et sts=4
commit 00cf617cdeb1597c747256716f8a56e7e3618d84
Author: Sebastian Heinlein <devel at glatzor.de>
Date:   Tue Nov 29 11:34:34 2011 +0100

    apt: Add a test suite covering already most of the methods

diff --git a/backends/apt/test.sh b/backends/apt/test.sh
index f6eca2e..3bf3405 100755
--- a/backends/apt/test.sh
+++ b/backends/apt/test.sh
@@ -1,2 +1,2 @@
 #!/bin/sh
-nosetests $@ --with-coverage --cover-package=aptDBUSBackend --pdb tests.py
+nosetests $@ --with-coverage --cover-package=aptBackend --pdb tests
diff --git a/backends/apt/test/core.py b/backends/apt/test/core.py
deleted file mode 100644
index c3321dc..0000000
--- a/backends/apt/test/core.py
+++ /dev/null
@@ -1,178 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-"""Small helpers for the test suite."""
-# Copyright (C) 2011 Sebastian Heinlein <devel at glatzor.de>
-#
-# 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.
-# Licensed under the GNU General Public License Version 2
-
-__author__  = "Sebastian Heinlein <devel at glatzor.de>"
-__all__ = ("get_tests_dir", "Chroot", "AptDaemonTestCase")
-
-import inspect
-import os
-import shutil
-import subprocess
-import sys
-import tempfile
-import unittest
-
-import apt_pkg
-
-
-class Chroot(object):
-
-    """Provides a chroot which can be used by APT."""
-
-    def __init__(self, prefix="tmp"):
-        self.path = tempfile.mkdtemp(prefix)
-
-    def setup(self):
-        """Setup the chroot and modify the apt configuration."""
-        for subdir in ["alternatives", "info", "parts", "updates", "triggers"]:
-            path = os.path.join(self.path, "var", "lib", "dpkg", subdir)
-            os.makedirs(path)
-        for fname in ["status", "available"]:
-            with open(os.path.join(self.path, "var", "lib", "dpkg", fname),
-                      "w"):
-                pass
-        os.makedirs(os.path.join(self.path, "var/cache/apt/archives/partial"))
-        os.makedirs(os.path.join(self.path, "var/lib/apt/lists"))
-        os.makedirs(os.path.join(self.path, "var/lib/apt/lists/partial"))
-        os.makedirs(os.path.join(self.path, "etc/apt/apt.conf.d"))
-        os.makedirs(os.path.join(self.path, "etc/apt/sources.list.d"))
-        os.makedirs(os.path.join(self.path, "var/log"))
-        os.makedirs(os.path.join(self.path, "media"))
-
-        # Make apt use the new chroot
-        dpkg_wrapper = os.path.join(get_tests_dir(), "dpkg-wrapper.sh")
-        config_path = os.path.join(self.path, "etc/apt/apt.conf.d/10chroot")
-        with open(config_path, "w") as cnf:
-            cnf.write("Dir::Bin::DPkg %s;" % dpkg_wrapper)
-        os.environ["ROOT"] = self.path
-        apt_pkg.read_config_file(apt_pkg.config, config_path)
-        apt_pkg.init_system()
-
-    def remove(self):
-        """Remove the files of the chroot."""
-        apt_pkg.config.clear("Dir")
-        apt_pkg.config.clear("Dir::State::Status")
-        apt_pkg.init()
-        shutil.rmtree(self.path)
-
-    def add_trusted_key(self):
-        """Add glatzor's key to the trusted ones."""
-        gpg_cmd = "gpg --ignore-time-conflict --no-options " \
-                  "--no-default-keyring --quiet " \
-                  "--secret-keyring %s/etc/apt/secring.gpg " \
-                  "--trustdb-name %s/etc/apt/trustdb.gpg " \
-                  "--primary-keyring %s/etc/apt/trusted.gpg " % \
-                  (self.path, self.path, self.path)
-        os.system("%s --import %s/repo/glatzor.gpg" % (gpg_cmd,
-                                                       get_tests_dir()))
-        os.system("echo 'D0BF65B7DBE28DB62BEDBF1B683C53C7CF982D18:6:'| "
-                  "%s --import-ownertrust " % gpg_cmd)
-
-    def install_debfile(self, path, force_depends=False):
-        """Install a package file into the chroot."""
-        cmd_list = ["fakeroot", "dpkg", "--root", self.path,
-                    "--log=%s/var/log/dpkg.log" % self.path]
-        if force_depends:
-            cmd_list.append("--force-depends")
-        cmd_list.extend(["--install", path])
-        cmd = subprocess.Popen(cmd_list,
-                               env={"PATH": "/sbin:/bin:/usr/bin:/usr/sbin"})
-        cmd.communicate()
-
-    def add_test_repository(self, copy_list=True, copy_sig=True):
-        """Add the test repository to the to the chroot."""
-        return self.add_repository(os.path.join(get_tests_dir(), "repo"),
-                                   copy_list, copy_sig)
-
-    def add_cdrom_repository(self):
-        """Emulate a repository on removable device."""
-        # Create the content of a fake cdrom
-        media_path = os.path.join(self.path, "tmp/fake-cdrom")
-        # The cdom gets identified by the info file
-        os.makedirs(os.path.join(media_path, ".disk"))
-        with open(os.path.join(media_path, ".disk/info"), "w") as info:
-            info.write("This is a fake CDROM")
-        # Copy the test repository "on" the cdrom
-        shutil.copytree(os.path.join(get_tests_dir(), "repo"),
-                        os.path.join(media_path, "repo"))
-
-        # Call apt-cdrom add
-        mount_point = self.mount_cdrom()
-        os.system("apt-cdrom add -m -d %s "
-                  "-o 'Debug::Acquire::cdrom'=True "
-                  "-o 'Acquire::cdrom::AutoDetect'=False "
-                  "-o 'Dir'=%s" % (mount_point, self.path))
-        self.unmount_cdrom()
-
-        config_path = os.path.join(self.path, "etc/apt/apt.conf.d/11cdrom")
-        with open(config_path, "w") as cnf:
-            cnf.write('Debug::Acquire::cdrom True;\n'
-                      'Acquire::cdrom::AutoDetect False;\n'
-                      'Acquire::cdrom::NoMount True;\n'
-                      'Acquire::cdrom::mount "%s";' % mount_point)
-
-    def mount_cdrom(self):
-        """Copy the repo information to the CDROM mount point."""
-        mount_point = os.path.join(self.path, "media/cdrom")
-        os.symlink(os.path.join(self.path, "tmp/fake-cdrom"), mount_point)
-        return mount_point
-
-    def unmount_cdrom(self):
-        """Remove all files from the mount point."""
-        os.unlink(os.path.join(self.path, "media/cdrom"))
-
-    def add_repository(self, path, copy_list=True, copy_sig=True):
-        """Add a sources.list entry to the chroot."""
-        # Add a sources list
-        lst_path = os.path.join(self.path, "etc/apt/sources.list")
-        with open(lst_path, "w") as lst_file:
-            lst_file.write("deb file://%s ./ # Test repository" % path)
-        if copy_list:
-            filename = apt_pkg.uri_to_filename("file://%s/." % path)
-            shutil.copy(os.path.join(path, "Packages"),
-                        "%s/var/lib/apt/lists/%s_Packages" % (self.path,
-                                                              filename))
-            if os.path.exists(os.path.join(path, "Release")):
-                shutil.copy(os.path.join(path, "Release"),
-                            "%s/var/lib/apt/lists/%s_Release" % (self.path,
-                                                                 filename))
-            if copy_sig and os.path.exists(os.path.join(path, "Release.gpg")):
-                shutil.copy(os.path.join(path, "Release.gpg"),
-                            "%s/var/lib/apt/lists/%s_Release.gpg" % (self.path,
-                                                                     filename))
-
-def get_tests_dir():
-    """Return the absolute path to the tests directory."""
-    # Try to detect a relative tests dir if we are running from the source
-    # directory
-    try:
-        path = inspect.getsourcefile(sys.modules["core"])
-    except KeyError as error:
-        path = inspect.getsourcefile(inspect.currentframe())
-    dir = os.path.dirname(path)
-    if os.path.exists(os.path.join(dir, "repo/Packages")):
-        return os.path.normpath(dir)
-    else:
-        raise Exception("Could not find tests direcotry")
-
-
-# vim: ts=4 et sts=4
diff --git a/backends/apt/tests/__init__.py b/backends/apt/tests/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/backends/apt/tests/aptBackend.py b/backends/apt/tests/aptBackend.py
new file mode 120000
index 0000000..1c0cf80
--- /dev/null
+++ b/backends/apt/tests/aptBackend.py
@@ -0,0 +1 @@
+../aptBackend.py
\ No newline at end of file
diff --git a/backends/apt/tests/core.py b/backends/apt/tests/core.py
new file mode 100644
index 0000000..c3321dc
--- /dev/null
+++ b/backends/apt/tests/core.py
@@ -0,0 +1,178 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+"""Small helpers for the test suite."""
+# Copyright (C) 2011 Sebastian Heinlein <devel at glatzor.de>
+#
+# 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.
+# Licensed under the GNU General Public License Version 2
+
+__author__  = "Sebastian Heinlein <devel at glatzor.de>"
+__all__ = ("get_tests_dir", "Chroot", "AptDaemonTestCase")
+
+import inspect
+import os
+import shutil
+import subprocess
+import sys
+import tempfile
+import unittest
+
+import apt_pkg
+
+
+class Chroot(object):
+
+    """Provides a chroot which can be used by APT."""
+
+    def __init__(self, prefix="tmp"):
+        self.path = tempfile.mkdtemp(prefix)
+
+    def setup(self):
+        """Setup the chroot and modify the apt configuration."""
+        for subdir in ["alternatives", "info", "parts", "updates", "triggers"]:
+            path = os.path.join(self.path, "var", "lib", "dpkg", subdir)
+            os.makedirs(path)
+        for fname in ["status", "available"]:
+            with open(os.path.join(self.path, "var", "lib", "dpkg", fname),
+                      "w"):
+                pass
+        os.makedirs(os.path.join(self.path, "var/cache/apt/archives/partial"))
+        os.makedirs(os.path.join(self.path, "var/lib/apt/lists"))
+        os.makedirs(os.path.join(self.path, "var/lib/apt/lists/partial"))
+        os.makedirs(os.path.join(self.path, "etc/apt/apt.conf.d"))
+        os.makedirs(os.path.join(self.path, "etc/apt/sources.list.d"))
+        os.makedirs(os.path.join(self.path, "var/log"))
+        os.makedirs(os.path.join(self.path, "media"))
+
+        # Make apt use the new chroot
+        dpkg_wrapper = os.path.join(get_tests_dir(), "dpkg-wrapper.sh")
+        config_path = os.path.join(self.path, "etc/apt/apt.conf.d/10chroot")
+        with open(config_path, "w") as cnf:
+            cnf.write("Dir::Bin::DPkg %s;" % dpkg_wrapper)
+        os.environ["ROOT"] = self.path
+        apt_pkg.read_config_file(apt_pkg.config, config_path)
+        apt_pkg.init_system()
+
+    def remove(self):
+        """Remove the files of the chroot."""
+        apt_pkg.config.clear("Dir")
+        apt_pkg.config.clear("Dir::State::Status")
+        apt_pkg.init()
+        shutil.rmtree(self.path)
+
+    def add_trusted_key(self):
+        """Add glatzor's key to the trusted ones."""
+        gpg_cmd = "gpg --ignore-time-conflict --no-options " \
+                  "--no-default-keyring --quiet " \
+                  "--secret-keyring %s/etc/apt/secring.gpg " \
+                  "--trustdb-name %s/etc/apt/trustdb.gpg " \
+                  "--primary-keyring %s/etc/apt/trusted.gpg " % \
+                  (self.path, self.path, self.path)
+        os.system("%s --import %s/repo/glatzor.gpg" % (gpg_cmd,
+                                                       get_tests_dir()))
+        os.system("echo 'D0BF65B7DBE28DB62BEDBF1B683C53C7CF982D18:6:'| "
+                  "%s --import-ownertrust " % gpg_cmd)
+
+    def install_debfile(self, path, force_depends=False):
+        """Install a package file into the chroot."""
+        cmd_list = ["fakeroot", "dpkg", "--root", self.path,
+                    "--log=%s/var/log/dpkg.log" % self.path]
+        if force_depends:
+            cmd_list.append("--force-depends")
+        cmd_list.extend(["--install", path])
+        cmd = subprocess.Popen(cmd_list,
+                               env={"PATH": "/sbin:/bin:/usr/bin:/usr/sbin"})
+        cmd.communicate()
+
+    def add_test_repository(self, copy_list=True, copy_sig=True):
+        """Add the test repository to the to the chroot."""
+        return self.add_repository(os.path.join(get_tests_dir(), "repo"),
+                                   copy_list, copy_sig)
+
+    def add_cdrom_repository(self):
+        """Emulate a repository on removable device."""
+        # Create the content of a fake cdrom
+        media_path = os.path.join(self.path, "tmp/fake-cdrom")
+        # The cdom gets identified by the info file
+        os.makedirs(os.path.join(media_path, ".disk"))
+        with open(os.path.join(media_path, ".disk/info"), "w") as info:
+            info.write("This is a fake CDROM")
+        # Copy the test repository "on" the cdrom
+        shutil.copytree(os.path.join(get_tests_dir(), "repo"),
+                        os.path.join(media_path, "repo"))
+
+        # Call apt-cdrom add
+        mount_point = self.mount_cdrom()
+        os.system("apt-cdrom add -m -d %s "
+                  "-o 'Debug::Acquire::cdrom'=True "
+                  "-o 'Acquire::cdrom::AutoDetect'=False "
+                  "-o 'Dir'=%s" % (mount_point, self.path))
+        self.unmount_cdrom()
+
+        config_path = os.path.join(self.path, "etc/apt/apt.conf.d/11cdrom")
+        with open(config_path, "w") as cnf:
+            cnf.write('Debug::Acquire::cdrom True;\n'
+                      'Acquire::cdrom::AutoDetect False;\n'
+                      'Acquire::cdrom::NoMount True;\n'
+                      'Acquire::cdrom::mount "%s";' % mount_point)
+
+    def mount_cdrom(self):
+        """Copy the repo information to the CDROM mount point."""
+        mount_point = os.path.join(self.path, "media/cdrom")
+        os.symlink(os.path.join(self.path, "tmp/fake-cdrom"), mount_point)
+        return mount_point
+
+    def unmount_cdrom(self):
+        """Remove all files from the mount point."""
+        os.unlink(os.path.join(self.path, "media/cdrom"))
+
+    def add_repository(self, path, copy_list=True, copy_sig=True):
+        """Add a sources.list entry to the chroot."""
+        # Add a sources list
+        lst_path = os.path.join(self.path, "etc/apt/sources.list")
+        with open(lst_path, "w") as lst_file:
+            lst_file.write("deb file://%s ./ # Test repository" % path)
+        if copy_list:
+            filename = apt_pkg.uri_to_filename("file://%s/." % path)
+            shutil.copy(os.path.join(path, "Packages"),
+                        "%s/var/lib/apt/lists/%s_Packages" % (self.path,
+                                                              filename))
+            if os.path.exists(os.path.join(path, "Release")):
+                shutil.copy(os.path.join(path, "Release"),
+                            "%s/var/lib/apt/lists/%s_Release" % (self.path,
+                                                                 filename))
+            if copy_sig and os.path.exists(os.path.join(path, "Release.gpg")):
+                shutil.copy(os.path.join(path, "Release.gpg"),
+                            "%s/var/lib/apt/lists/%s_Release.gpg" % (self.path,
+                                                                     filename))
+
+def get_tests_dir():
+    """Return the absolute path to the tests directory."""
+    # Try to detect a relative tests dir if we are running from the source
+    # directory
+    try:
+        path = inspect.getsourcefile(sys.modules["core"])
+    except KeyError as error:
+        path = inspect.getsourcefile(inspect.currentframe())
+    dir = os.path.dirname(path)
+    if os.path.exists(os.path.join(dir, "repo/Packages")):
+        return os.path.normpath(dir)
+    else:
+        raise Exception("Could not find tests direcotry")
+
+
+# vim: ts=4 et sts=4
diff --git a/backends/apt/tests/dpkg-wrapper.sh b/backends/apt/tests/dpkg-wrapper.sh
new file mode 100755
index 0000000..2de5c30
--- /dev/null
+++ b/backends/apt/tests/dpkg-wrapper.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+echo "yeah"
+exec /usr/bin/fakeroot /usr/bin/dpkg $*
diff --git a/backends/apt/tests/packagekit b/backends/apt/tests/packagekit
new file mode 120000
index 0000000..af2698b
--- /dev/null
+++ b/backends/apt/tests/packagekit
@@ -0,0 +1 @@
+../../../lib/python/packagekit/
\ No newline at end of file
diff --git a/backends/apt/tests/repo/Packages b/backends/apt/tests/repo/Packages
new file mode 100644
index 0000000..49b8cac
--- /dev/null
+++ b/backends/apt/tests/repo/Packages
@@ -0,0 +1,194 @@
+Package: silly-fail
+Priority: extra
+Section: admin
+Installed-Size: 36
+Maintainer: Sebastian Heinlein <devel at glatzor.de>
+Architecture: all
+Source: silly-packages
+Version: 0.1-0
+Filename: ./silly-fail_0.1-0_all.deb
+Size: 1874
+MD5sum: 623a67e49bb7a1351a9bf1ae72fc6cfb
+SHA1: 76417770f2b788b680ef18be66b5a6c4ec51bc62
+SHA256: 45fea3eb64a427a288a90b12f42cc3a6abea8e8387efd4879b319db736890ebd
+Description: installation fails
+ Silly packages is a set of packages which will break your package
+ management tool. They are created only for debugging purposes.
+ .
+ This installation of this package will always fail.
+
+Package: silly-depend-base
+Priority: extra
+Section: admin
+Installed-Size: 32
+Maintainer: Sebastian Heinlein <devel at glatzor.de>
+Architecture: all
+Source: silly-packages
+Version: 0.1-0
+Depends: silly-base
+Filename: ./silly-depend-base_0.1-0_all.deb
+Size: 1812
+MD5sum: 3ee7181283e4926558d2afdf7b2657f1
+SHA1: 8294794b1727e22b123866f9124431a2c7b79380
+SHA256: 5fa74f7bdc0d207188790419130330becb0cf7484a972762ed512090885016f9
+Description: package depending on silly-base
+ Silly packages is a set of packages which will break your package
+ management tool. They are created only for debugging purposes.
+ .
+ This package depends on silly-base.
+
+Package: silly-config
+Priority: extra
+Section: admin
+Installed-Size: 44
+Maintainer: Sebastian Heinlein <devel at glatzor.de>
+Architecture: all
+Source: silly-packages
+Version: 0.1-0
+Filename: ./silly-config_0.1-0_all.deb
+Size: 1928
+MD5sum: 565698b052640ed3d514f6b38ad457c7
+SHA1: e7169cc58f10e8ff9481cf31b2ffb947bc99f617
+SHA256: 255f025bae5b24a91158e7daa986f9bf59146ab1895f39452104eb97c412d190
+Description: wants to update a locally changed config file
+ Silly packages is a set of packages which will break your package
+ management tool. They are created only for debugging purposes.
+ .
+ This package will install a configuration file.
+
+Package: silly-postinst-input
+Priority: extra
+Section: admin
+Installed-Size: 36
+Maintainer: Sebastian Heinlein <devel at glatzor.de>
+Architecture: all
+Source: silly-packages
+Version: 0.1-0
+Filename: ./silly-postinst-input_0.1-0_all.deb
+Size: 1906
+MD5sum: 99eecdacbcdf95b9e7b3b0c50f812a8d
+SHA1: c066b13414faa9931ff688c29f6dbcf4809861a9
+SHA256: ce6e4f7f59c3d1da45ff0b3e8e54ebdcf9a5b44edeccf9fc04c96daec5cfa020
+Description: breaks your non-interactive package manager
+ Silly packages is a set of packages which will break your package
+ management tool. They are created only for debugging purposes.
+ .
+ This package will wait for user input in the postinst script.
+
+Package: silly-base
+Priority: extra
+Section: admin
+Installed-Size: 44
+Maintainer: Sebastian Heinlein <devel at glatzor.de>
+Architecture: all
+Source: silly-packages (0.1-0)
+Version: 0.1-0update1
+Filename: ./silly-base_0.1-0update1_all.deb
+Size: 1934
+MD5sum: 8e20af56a63a1e0cf40db3b0d07e7989
+SHA1: 7ce87423d9c7a734478c464021994944d07fbf1b
+SHA256: d3693c0e3e7a9519b2833fdf1301c7e03e0620edf15b95b4c7329d9eb0bee553
+Description: working package
+ Silly packages is a set of packages which will break your package
+ management tool. They are created only for debugging purposes.
+ .
+ This package doesn't contain any files and should always be installable.
+
+Package: silly-base
+Priority: extra
+Section: admin
+Installed-Size: 32
+Maintainer: Sebastian Heinlein <devel at glatzor.de>
+Architecture: all
+Source: silly-packages
+Version: 0.1-0
+Filename: ./silly-base_0.1-0_all.deb
+Size: 1824
+MD5sum: 81ba1cf86142c466f35a36a11b5b7b52
+SHA1: f949c8e5962a43fbcd4f7d67df0ebe741052c497
+SHA256: a7c2a30abdb6488d5c3d2894db398f5dfafbc6be098da1135822be4e3ac94b32
+Description: working package
+ Silly packages is a set of packages which will break your package
+ management tool. They are created only for debugging purposes.
+ .
+ This package doesn't contain any files and should always be installable.
+
+Package: gstreamer0.10-silly
+Priority: extra
+Section: admin
+Installed-Size: 168
+Maintainer: Sebastian Heinlein <devel at glatzor.de>
+Architecture: all
+Source: silly-packages
+Version: 0.1-0
+Depends: libc6 (>= 2.7-1), libglib2.0-0 (>= 2.16.0), libgstreamer-plugins-base0.10-0 (>= 0.10.0), libgstreamer0.10-0 (>= 0.10.14), libogg0 (>= 1.0rc3)
+Filename: ./gstreamer0.10-silly_0.1-0_all.deb
+Size: 51932
+MD5sum: c78ae695b2385f3f0e8df5c44b3e6759
+SHA1: 65a73c0059d8642986da2b34aae89bfa39202bac
+SHA256: b51b33092eedc4ef5c9461c730f50f107b4dd6958b6f7a7bfe548d002be181d7
+Description: gstreamer plugin test package
+ Silly packages is a set of packages which will break your package
+ management tool. They are created only for debugging purposes.
+ .
+ This package is a GStreamer test plugin package.
+
+Package: silly-essential
+Essential: yes
+Priority: extra
+Section: admin
+Installed-Size: 32
+Maintainer: Sebastian Heinlein <devel at glatzor.de>
+Architecture: all
+Source: silly-packages
+Version: 0.1-0
+Filename: ./silly-essential_0.1-0_all.deb
+Size: 1800
+MD5sum: 492c977ce9b2f1b6a51d7c475aad058b
+SHA1: 06fb9a5efb07f72edbd297d2a21cffd1787a2388
+SHA256: e516159e99bd40d860515e4c9af251ab056eaabae58ea3f5ee11eecc4f3bee50
+Description: an essential package
+ Silly packages is a set of packages which will break your package
+ management tool. They are created only for debugging purposes.
+ .
+ This package is an essential one.
+
+Package: silly-important
+Priority: important
+Section: admin
+Installed-Size: 32
+Maintainer: Sebastian Heinlein <devel at glatzor.de>
+Architecture: all
+Source: silly-packages
+Version: 0.1-0
+Filename: ./silly-important_0.1-0_all.deb
+Size: 1792
+MD5sum: ef9a1eefd088a375ef58773831256205
+SHA1: 4075517d20fdd81d8642ab0febe7ad8c5fcde4f0
+SHA256: 3003723f0f2686a6ed700f364b0c13c966026c5e5f3b383969d87b5dba411d5e
+Description: an essential package
+ Silly packages is a set of packages which will break your package
+ management tool. They are created only for debugging purposes.
+ .
+ This package is an essential one.
+
+Package: silly-broken
+Priority: extra
+Section: admin
+Installed-Size: 32
+Maintainer: Sebastian Heinlein <devel at glatzor.de>
+Architecture: all
+Source: silly-packages
+Version: 0.1-0
+Depends: silly-unavailbale
+Filename: ./silly-broken_0.1-0_all.deb
+Size: 1840
+MD5sum: 78bbe306af637c18f5df9dc47bfbf41f
+SHA1: bb63cdbde699fe2100349b0418af095e6d9f80fe
+SHA256: a816e61369de433e261b5ad041e913ee3c140637825ce6613a5c99efbfd4c21b
+Description: package with broken dependencies
+ Silly packages is a set of packages which will break your package
+ management tool. They are created only for debugging purposes.
+ .
+ This package cannot be installed because of a missing dependency.
+
diff --git a/backends/apt/tests/repo/Release b/backends/apt/tests/repo/Release
new file mode 100644
index 0000000..e268cdc
--- /dev/null
+++ b/backends/apt/tests/repo/Release
@@ -0,0 +1,10 @@
+Date: Mo, 10 Jan 2011 07:25:04 UTC
+MD5Sum:
+ 76890eae32625a32d270e667eadf7672             6466 Packages
+ d41d8cd98f00b204e9800998ecf8427e                0 Release
+SHA1:
+ ad2d57d7fb357429bdf72bd84a30a0ecaf427ccf             6466 Packages
+ da39a3ee5e6b4b0d3255bfef95601890afd80709                0 Release
+SHA256:
+ 0a755d4bc1cf098032ba2b74764fcf8f5c22d0c0e5944a0d63032db55af036fa             6466 Packages
+ e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855                0 Release
diff --git a/backends/apt/tests/repo/Release.gpg b/backends/apt/tests/repo/Release.gpg
new file mode 100644
index 0000000..41658b7
--- /dev/null
+++ b/backends/apt/tests/repo/Release.gpg
@@ -0,0 +1,11 @@
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v1.4.10 (GNU/Linux)
+
+iQEcBAABCAAGBQJNKrRcAAoJEGg8U8fPmC0Y0bgIAMJUX9WLV2KMJFtIts+6mI+J
+stbq5GviUNPMVlp1eoVY4aGG+DHx0xtMBfxiBbW6QBrreAttrxXujwe1Jn85qcbn
+Gzz6rSvK999KZN/XjZskKa01hcpA2qYuRLn0buJ2BWno9jBmaZqxbL7aKargh9LJ
+dVDk+/Bw4inTN7I7iboQDGiUTGH88IB4kCO1Xu8hKExicoKvfSu6JtIaTCKhqbpm
+F0PLq/tXwSaBAeHzHqvKXDi5YOFVmeePv6ACUq/MEi3wnvRt+LRIyaZW+TBIc3zW
+yqyeQjTZ2DM9JoE+8F9e4M93KI+t1jwkcM2fWYmpar3ThoLLjdm+KpO5xTVtkvw=
+=6oo7
+-----END PGP SIGNATURE-----
diff --git a/backends/apt/tests/repo/glatzor.gpg b/backends/apt/tests/repo/glatzor.gpg
new file mode 100644
index 0000000..70327d4
--- /dev/null
+++ b/backends/apt/tests/repo/glatzor.gpg
@@ -0,0 +1,59 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: GnuPG v1.4.10 (GNU/Linux)
+
+mQENBE0hzl4BCADSYPRyP0ZiI/FC+ds375PrW59JRf150kK3nPuEdH8hWQFzO0Sq
+5d3xa7GLGzD2/kk6T7GwSVdH9TVoNBr2aDXdbSIykd04gFvuetFpc/TrB94yHf9F
+1GNSJCVzX4ICzoazMk08Nj/8p+3swp8r4mG1rgIMiV4Vf1mvTL+tN8v68/DleHw2
+8RI0NFK1YdoOh5M46VVFzpBrzkf2aymoA3th8q5ufnOGnDzt867DRu4czLMICqFI
+jSurKIzP0B+ABGZQUpvptGnNOQyYG1rxR1GXXXfXAIInucvDUOrMqq1mJRySgzFC
+xXpJFgWqyaTt1+hzazgzCqCQgtp0CSte8FBBABEBAAG0MlNlYmFzdGlhbiBIZWlu
+bGVpbiA8c2ViYXN0aWFuLmhlaW5sZWluQGdsYXR6b3IuZGU+iQE3BBMBCAAhBQJN
+Ic5eAhsDBQsJCAcDBRUKCQgLBRYCAwEAAh4BAheAAAoJEGg8U8fPmC0YkW0IAINA
+U/ukUeKUYDkRjC+EHAUTiU2+dRhXvNxcf3CgSYgoUmq23W0uf3Q836tn82zI0jTq
+Xz57rA6QL1HtYE3FwU8c81dIXDmR0zy26eoWywDVWxbIyFfhywy9lQ90V+V5iv87
+etloQf4h0JEsrXxTyW9cfJIoIec+aX3W+/I/lEtHAFhfUaVgY2LNMcyF2sWHtFCO
+1BrttD8LxG25gIXhv3sUtnsy/HHm5109cppc+eW2t2NOdlxbqTTneR+yh/DEuBMe
+GNITWj983CtNXhHuSHWaqmn2917ZMaI4M1eNzjIFrNqNWKqefA77lDUj3ecy/dDR
+Oe7/2N2cOdNunEH9SjOISgQQEQgACgUCTSHPKgMFAngACgkQeujorJNMItUg+wCf
+VtMLc0/Yi9GTdinvllcsuZ3TF/8An2kyxxCGLYGVbHs4tclymZ3oxcyHtC1TZWJh
+c3RpYW4gSGVpbmxlaW4gKGRldmVsKSA8ZGV2ZWxAZ2xhdHpvci5kZT6JATcEEwEI
+ACEFAk0hzqICGwMFCwkIBwMFFQoJCAsFFgIDAQACHgECF4AACgkQaDxTx8+YLRgq
+Vgf/a+xb+JWYG4ZnQQEDxKxMFrvGZq+2i6rjXL7Nj3AarUFPSYlPKDiQRrJEOoA0
++gwM8pqG8rwC5EAenLH/RC6PiS9h4y9IrsrV8BKEQBctw/HXZxJwAv4lXxbFpDKy
+LH15H2zaQ+0bDpLYbF5fCcJwPDgaBGsht5o/nFMnXZriy82w/ZNLBd0vDSIqsqfG
+JKG2z+L3gI8gQazo0BFwwqQ7nWKD/cwxPNcFGQAVPLo9S3F5Su+SaWSiZ6zDDV19
+e1cx22Fj4jk4UTSwETYnYXf61c0oCW3LORE2zg1h+tJWUty8B2I26sU6ePhWTskM
+PhbzWEwndHZAFRmp3NpPyW02j4hKBBARCAAKBQJNIc8qAwUCeAAKCRB66Oisk0wi
+1UK+AJsHYuWPxbOLrwPjucamXjUDG0sRSQCePZlXaXjtiNQ18bD6swt1zOggdxW0
+KVNlYmFzdGlhbiBIZWlubGVpbiAoZHBvb2wpIDxzaEBkcG9vbC5uZXQ+iQE3BBMB
+CAAhBQJNIc69AhsDBQsJCAcDBRUKCQgLBRYCAwEAAh4BAheAAAoJEGg8U8fPmC0Y
+Qf4H/i7CaNAtu/lKYrH0vgBup4EfyxPQ2OPmDAuYE1U97ukZ3PK0K71m/bEIENQR
+JeRQKffBB6m6QKvgBoWDI+ekHnXFxZfAE4FduD5FWq1K8qaNq/fR//3+XzAfJlCN
+iNe5WMbr0TW3hJ66PZM6kn4kA/z+/enp3T5svvSbcGeiIgKKL//Vr8EAfIulNyNZ
+o+HiOuuUKQ2salbu18F3kdyTdnszKM/iiaoKS+SEK8Bzz9lci0jr9ZT3a3W1pP6w
+Vg3L/pB8Q5yF1pbIi6/xnnT8EYTxSuMjrU8Q6q82cUCOv8kjJFc1xb9upclxKknz
+h/we4XZDI98eRXkbOGThVESYEYuISgQQEQgACgUCTSHPKgMFAngACgkQeujorJNM
+ItW5JQCfbWmcoJ+2SscPy1RIMmnLzHkud58AoIVma/+aN8eDcz7G+zgijWG+37Ur
+tCRTZWJhc3RpYW4gSGVpbmxlaW4gPHNlYmlAZ2xhdHpvci5kZT6JATcEEwEIACEF
+Ak0hztACGwMFCwkIBwMFFQoJCAsFFgIDAQACHgECF4AACgkQaDxTx8+YLRisqQf+
+O5luET/3PmC7+299Bb7dhkmDGaiBW0jeGNHRqNT5Hfl1qv8KNodVD6GW+iuw03wF
+zUwh6Ksj+aknvwzuQq8Sboi+ReZkBk6nvkJksuWGHSt3CJ3XVjcBPmTAQntlOaEc
+QSLQAquEdFSd2RD94r2APv6fBUeh9MmtPChJLn6zKB0nBtwn5nFlqsS92SuPu11Q
+Hazt7YrkSBFY0+y7s35sX6K3NDet4swYbxqpn9big0XPajCC2wEyURxEG2MUfXdY
+P4CGPiiAb611UnXEcywt8tcFzOmcu1x4ceTL7IL4T9WJXzNuBsdtyrCQhPb9ddtJ
+qreWYnzJKrz4aIgCJSY8AYhKBBARCAAKBQJNIc8qAwUCeAAKCRB66Oisk0wi1awE
+AJ0T+VOde/pXnraKJZb35BRrHGPXsgCghzbu/9jST+d9rx/4dUwBWp806vq5AQ0E
+TSHOXgEIANpQ2NlKv9R9WW4lvSoAH6OKoGoQrDq2Nj06t8EFDGkrnHUlJ/b2Tx4c
+PDsGYfXJzKKH6GSlt7m+WRw8XIGZwf4SgX3XIU6TZsCLtD7V8vQZtnvLe6hgoW81
+T4mkkWpzqHKVFpzmFxyKKEjPOIggilwiInUXppat1/vz48QDJkcjPTDcT5hDaCWx
+VYI2itbhM+4WkJ6XLx9zcrV28YRnHkyJztDyT9bjAZpgnZKWnAXXcWHXFvTwFQhb
+93LrGvhl9EkrFSB0Qe/aQNlDN2SohK2ZCv70rDOj2iyxnwfjxcEjoyj3QWR5V7wu
+L6fPzC7nrHbb/KauIx0M/pTZqprJwucAEQEAAYkBHwQYAQgACQUCTSHOXgIbDAAK
+CRBoPFPHz5gtGJ1BB/99iEIHrMJzfCVsxJoubzpszSPDQdM64tPBAqP/hVDIP35T
+Myp31dvnwbIOXmtFDDou1xs5utJ7xLhafAtzflWa7JVDgI3OERK84cu1GX1WbbTW
+9YRlKsFAJn1PI8BBgMevasB8RameyoHJYx5fjB82ZfNj5Ff7/75008U6r0GdV4p5
+ruMD5XxgkOXzI+p/36CaSquwt8QJ8XHsQ+xTwM5xSOdcajAiC3u057I0+DWFMlSn
+Xz4XgRtYIbpHZp+6zElAXmrMJUr5eKgu6zBDh6L1dDYCUe8/nnTgaevpiYr/UOus
+23iG2mbe4vH8M5g+DFtpMqGLRJdVRgS/T4y0mfDb
+=ayEy
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/backends/apt/tests/repo/gstreamer0.10-silly_0.1-0_all.deb b/backends/apt/tests/repo/gstreamer0.10-silly_0.1-0_all.deb
new file mode 100644
index 0000000..221711a
Binary files /dev/null and b/backends/apt/tests/repo/gstreamer0.10-silly_0.1-0_all.deb differ
diff --git a/backends/apt/tests/repo/silly-base_0.1-0_all.deb b/backends/apt/tests/repo/silly-base_0.1-0_all.deb
new file mode 100644
index 0000000..cb10c10
Binary files /dev/null and b/backends/apt/tests/repo/silly-base_0.1-0_all.deb differ
diff --git a/backends/apt/tests/repo/silly-base_0.1-0update1_all.deb b/backends/apt/tests/repo/silly-base_0.1-0update1_all.deb
new file mode 100644
index 0000000..858514f
Binary files /dev/null and b/backends/apt/tests/repo/silly-base_0.1-0update1_all.deb differ
diff --git a/backends/apt/tests/repo/silly-broken_0.1-0_all.deb b/backends/apt/tests/repo/silly-broken_0.1-0_all.deb
new file mode 100644
index 0000000..ced1e29
Binary files /dev/null and b/backends/apt/tests/repo/silly-broken_0.1-0_all.deb differ
diff --git a/backends/apt/tests/repo/silly-config_0.1-0_all.deb b/backends/apt/tests/repo/silly-config_0.1-0_all.deb
new file mode 100644
index 0000000..c75ec3a
Binary files /dev/null and b/backends/apt/tests/repo/silly-config_0.1-0_all.deb differ
diff --git a/backends/apt/tests/repo/silly-depend-base-lintian-broken_0.1-0_all.deb b/backends/apt/tests/repo/silly-depend-base-lintian-broken_0.1-0_all.deb
new file mode 100644
index 0000000..34c09b8
Binary files /dev/null and b/backends/apt/tests/repo/silly-depend-base-lintian-broken_0.1-0_all.deb differ
diff --git a/backends/apt/tests/repo/silly-depend-base_0.1-0_all.deb b/backends/apt/tests/repo/silly-depend-base_0.1-0_all.deb
new file mode 100644
index 0000000..56cdc36
Binary files /dev/null and b/backends/apt/tests/repo/silly-depend-base_0.1-0_all.deb differ
diff --git a/backends/apt/tests/repo/silly-essential_0.1-0_all.deb b/backends/apt/tests/repo/silly-essential_0.1-0_all.deb
new file mode 100644
index 0000000..43c3079
Binary files /dev/null and b/backends/apt/tests/repo/silly-essential_0.1-0_all.deb differ
diff --git a/backends/apt/tests/repo/silly-fail_0.1-0_all.deb b/backends/apt/tests/repo/silly-fail_0.1-0_all.deb
new file mode 100644
index 0000000..f08cfc0
Binary files /dev/null and b/backends/apt/tests/repo/silly-fail_0.1-0_all.deb differ
diff --git a/backends/apt/tests/repo/silly-important_0.1-0_all.deb b/backends/apt/tests/repo/silly-important_0.1-0_all.deb
new file mode 100644
index 0000000..5d9ab51
Binary files /dev/null and b/backends/apt/tests/repo/silly-important_0.1-0_all.deb differ
diff --git a/backends/apt/tests/repo/silly-postinst-input_0.1-0_all.deb b/backends/apt/tests/repo/silly-postinst-input_0.1-0_all.deb
new file mode 100644
index 0000000..89e0c3d
Binary files /dev/null and b/backends/apt/tests/repo/silly-postinst-input_0.1-0_all.deb differ
diff --git a/backends/apt/tests/test_filters.py b/backends/apt/tests/test_filters.py
new file mode 100644
index 0000000..fc27153
--- /dev/null
+++ b/backends/apt/tests/test_filters.py
@@ -0,0 +1,95 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+"""Provides unit tests for the APT backend."""
+# Copyright (C) 2011 Sebastian Heinlein <devel at glatzor.de>
+#
+# 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.
+# Licensed under the GNU General Public License Version 2
+
+__author__  = "Sebastian Heinlein <devel at glatzor.de>"
+
+import os
+import unittest
+
+import apt_pkg
+import mox
+
+from core import get_tests_dir, Chroot
+from packagekit import enums
+import aptBackend
+
+REPO_PATH = os.path.join(get_tests_dir(), "repo")
+
+chroot = Chroot()
+
+
+class FilterTests(mox.MoxTestBase):
+
+    """Test cases for non-destructive methods."""
+
+    def setUp(self):
+        mox.MoxTestBase.setUp(self)
+        self.backend = aptBackend.PackageKitAptBackend([])
+
+    def _catch_callbacks(self, *args):
+        methods = list(args)
+        methods.extend(("error", "finished"))
+        for meth in methods:
+            self.mox.StubOutWithMock(self.backend, meth)
+
+    @unittest.expectedFailure
+    def test_installed(self):
+        """Test filtering only installed packages."""
+        self._catch_callbacks("package")
+        self.backend.package("silly-base;0.1-0;all;",
+                             enums.INFO_INSTALLED,
+                             "working package")
+        self.backend.finished()
+        self.mox.ReplayAll()
+        self.backend._cache.open()
+        # Install the package
+        self.backend.dispatch_command("search-name",
+                                      ["installed", "silly-base"])
+
+    def test_not_installed(self):
+        """Test filtering only not installed packages."""
+        self._catch_callbacks("package")
+        self.backend.package("silly-depend-base;0.1-0;all;",
+                             enums.INFO_AVAILABLE, mox.IsA(str))
+        self.backend.finished()
+        self.mox.ReplayAll()
+        self.backend._cache.open()
+        # Install the package
+        self.backend.dispatch_command("search-name",
+                                      ["~installed", "silly-depend-base"])
+
+
+def setUp():
+    chroot.setup()
+    chroot.add_test_repository()
+    chroot.install_debfile(os.path.join(REPO_PATH, "silly-base_0.1-0_all.deb"))
+
+def tearDown():
+    chroot.remove()
+
+
+if __name__ == "__main__":
+    setUp()
+    unittest.main()
+    tearDown()
+
+# vim: ts=4 et sts=4
diff --git a/backends/apt/tests/test_modifiers.py b/backends/apt/tests/test_modifiers.py
new file mode 100644
index 0000000..9a4c125
--- /dev/null
+++ b/backends/apt/tests/test_modifiers.py
@@ -0,0 +1,252 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+"""Provides unit tests for the APT backend."""
+# Copyright (C) 2011 Sebastian Heinlein <devel at glatzor.de>
+#
+# 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.
+# Licensed under the GNU General Public License Version 2
+
+__author__  = "Sebastian Heinlein <devel at glatzor.de>"
+
+import os
+import unittest
+
+import apt_pkg
+import mox
+
+from core import get_tests_dir, Chroot
+from packagekit import enums
+from aptBackend import PackageKitAptBackend
+
+REPO_PATH = os.path.join(get_tests_dir(), "repo")
+
+
+class CacheModifiersTests(mox.MoxTestBase):
+
+    """Test cases for cache modifying methods of the APT backend.
+
+    Note: In the test environment we emit the finished signal in the
+          case of errors, too.
+    """
+
+    def setUp(self):
+        mox.MoxTestBase.setUp(self)
+        self.chroot = Chroot()
+        self.chroot.setup()
+        self.addCleanup(self.chroot.remove)
+        self.backend = PackageKitAptBackend([])
+
+    def _catch_callbacks(self, *args):
+        methods = list(args)
+        methods.extend(("error", "finished"))
+        for meth in methods:
+            self.mox.StubOutWithMock(self.backend, meth)
+
+    def test_refresh_cache(self):
+        """Test updating the cache using a local repository."""
+        self._catch_callbacks()
+        self.backend.finished()
+        # Setup environment
+        self.mox.ReplayAll()
+        self.chroot.add_trusted_key()
+        path = os.path.join(self.chroot.path,
+                            "etc/apt/sources.list.d/test.list")
+        with open(path, "w") as part_file:
+            part_file.write("deb file://%s ./" % REPO_PATH)
+        self.backend._cache.open()
+        # Install the package
+        self.backend.dispatch_command("refresh-cache", ["true"])
+
+        self.backend._cache.open()
+        pkg = self.backend._cache["silly-base"]
+        self.assertTrue(pkg.candidate.origins[0].trusted)
+
+    def test_update_system(self):
+        """Test upgrading the system."""
+        self._catch_callbacks()
+        self.backend.finished()
+        # Setup environment
+        self.mox.ReplayAll()
+        self.chroot.add_test_repository()
+        self.chroot.install_debfile(os.path.join(REPO_PATH,
+                                                 "silly-base_0.1-0_all.deb"))
+        self.backend._cache.open()
+        # Install the package
+        self.backend.dispatch_command("update-system", ["true"])
+
+        self.backend._cache.open()
+        self.assertEqual(self.backend._cache["silly-base"].installed.version,
+                         "0.1-0update1")
+
+    def test_update_packages(self):
+        """Test upgrading the system."""
+        self._catch_callbacks()
+        self.backend.finished()
+        # Setup environment
+        self.mox.ReplayAll()
+        self.chroot.add_test_repository()
+        self.chroot.install_debfile(os.path.join(REPO_PATH,
+                                                 "silly-base_0.1-0_all.deb"))
+        self.backend._cache.open()
+        # Install the package
+        self.backend.dispatch_command("update-packages",
+                                      ["true", "silly-base;0.1-0update1;all;"])
+
+        self.backend._cache.open()
+        self.assertEqual(self.backend._cache["silly-base"].installed.version,
+                         "0.1-0update1")
+
+    def test_install(self):
+        """Test installation of a package from a repository."""
+        self._catch_callbacks()
+        self.backend.finished()
+        # Setup environment
+        self.mox.ReplayAll()
+        self.chroot.add_test_repository()
+        self.backend._cache.open()
+        # Install the package
+        self.backend.dispatch_command("install-packages",
+                                      ["True", "silly-base;0.1-0update1;all;"])
+        self.backend._cache.open()
+        self.assertEqual(self.backend._cache["silly-base"].is_installed, True)
+
+    def test_install_only_trusted(self):
+        """Test if the installation of a not trusted package fails."""
+        self._catch_callbacks()
+        self.backend.error(enums.ERROR_MISSING_GPG_SIGNATURE,
+                           mox.IsA(str), True)
+        self.backend.finished()
+        # Setup environment
+        self.mox.ReplayAll()
+        self.chroot.add_test_repository(copy_sig=False)
+        self.backend._cache.open()
+        # Install the package
+        self.backend.dispatch_command("install-packages",
+                                      ["true", "silly-base;0.1-0update1;all;"])
+        self.backend._cache.open()
+        self.assertEqual(self.backend._cache["silly-base"].is_installed, False)
+
+    def test_simulate_install(self):
+        """Test simulation of package installation."""
+        self._catch_callbacks("package")
+        self.backend.package("silly-base;0.1-0update1;all;",
+                             enums.INFO_INSTALLING,
+                             "working package")
+        self.backend.finished()
+        # Setup environment
+        self.mox.ReplayAll()
+        self.chroot.add_test_repository()
+        self.backend._cache.open()
+        # Run the command
+        self.backend.dispatch_command("simulate-install-packages",
+                                      ["silly-depend-base;0.1-0;all;"])
+
+    def test_remove_essential(self):
+        """Test if we forbid to remove essential packages."""
+        self.chroot.install_debfile(os.path.join(REPO_PATH,
+                                               "silly-essential_0.1-0_all.deb"))
+        self.backend._cache.open()
+
+        self._catch_callbacks()
+        self.backend.error(enums.ERROR_CANNOT_REMOVE_SYSTEM_PACKAGE,
+                           mox.IsA(str), True)
+        self.backend.finished()
+
+        self.mox.ReplayAll()
+        # Run the command
+        self.backend.dispatch_command("remove-packages",
+                                      ["true", "true",
+                                       "silly-essential;0.1-0;all;"])
+        self.backend._cache.open()
+        self.assertTrue(self.backend._cache["silly-essential"].is_installed)
+
+    def test_remove_disallow_deps(self):
+        """Test the removal of packages."""
+        for pkg in ["silly-base_0.1-0_all.deb",
+                    "silly-depend-base_0.1-0_all.deb"]:
+            self.chroot.install_debfile(os.path.join(REPO_PATH, pkg))
+        self.backend._cache.open()
+
+        self._catch_callbacks()
+        self.backend.error(enums.ERROR_DEP_RESOLUTION_FAILED,
+                           mox.IsA(str), True)
+        self.backend.finished()
+
+        self.mox.ReplayAll()
+        # Run the command
+        self.backend.dispatch_command("remove-packages",
+                                      ["false", "true",
+                                       "silly-base;0.1-0;all;"])
+
+        self.backend._cache.open()
+        self.assertEqual(self.backend._cache["silly-base"].is_installed, True)
+        self.assertEqual(self.backend._cache["silly-depend-base"].is_installed,
+                         True)
+
+    def test_remove(self):
+        """Test the removal of packages."""
+        for pkg in ["silly-base_0.1-0_all.deb",
+                    "silly-depend-base_0.1-0_all.deb"]:
+            self.chroot.install_debfile(os.path.join(REPO_PATH, pkg))
+        ext_states = apt_pkg.config.find_file("Dir::State::extended_states")
+        with open(ext_states, "w") as ext_states_file:
+            ext_states_file.write("""Package: silly-base
+Architecture: all
+Auto-Installed: 1""")
+        self.backend._cache.open()
+
+        self._catch_callbacks()
+        self.backend.finished()
+        self.mox.ReplayAll()
+
+        # Run the command
+        self.backend.dispatch_command("remove-packages",
+                                      ["true", "true",
+                                       "silly-depend-base;0.1-0;all;"])
+
+        self.backend._cache.open()
+        self.assertRaises(KeyError,
+                          lambda: self.backend._cache["silly-depend-base"])
+        self.assertRaises(KeyError, lambda: self.backend._cache["silly-base"])
+
+    def test_install_file(self):
+        """Test the installation of a local package file."""
+        self.chroot.add_test_repository()
+        debfile = os.path.join(REPO_PATH, "silly-depend-base_0.1-0_all.deb")
+        debfile2 = os.path.join(REPO_PATH, "silly-essential_0.1-0_all.deb")
+        self._catch_callbacks()
+        self.backend.finished()
+        # Setup environment
+        self.mox.ReplayAll()
+        self.chroot.add_test_repository()
+        self.backend._cache.open()
+        # Install the package files
+        self.backend.dispatch_command("install-files",
+                                      ["true", "|".join((debfile, debfile2))])
+
+        self.backend._cache.open()
+        self.assertEqual(self.backend._cache["silly-base"].is_installed, True)
+        self.assertEqual(self.backend._cache["silly-essential"].is_installed,
+                         True)
+        self.assertEqual(self.backend._cache["silly-depend-base"].is_installed,
+                         True)
+
+
+if __name__ == "__main__":
+    unittest.main()
+
+# vim: ts=4 et sts=4
diff --git a/backends/apt/tests/test_queries.py b/backends/apt/tests/test_queries.py
new file mode 100644
index 0000000..b179a57
--- /dev/null
+++ b/backends/apt/tests/test_queries.py
@@ -0,0 +1,125 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+"""Provides unit tests for the APT backend."""
+# Copyright (C) 2011 Sebastian Heinlein <devel at glatzor.de>
+#
+# 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.
+# Licensed under the GNU General Public License Version 2
+
+__author__  = "Sebastian Heinlein <devel at glatzor.de>"
+
+import os
+import unittest
+
+import apt_pkg
+import mox
+
+from core import get_tests_dir, Chroot
+from packagekit import enums
+import aptBackend
+
+REPO_PATH = os.path.join(get_tests_dir(), "repo")
+
+chroot = Chroot()
+
+
+class QueryTests(mox.MoxTestBase):
+
+    """Test cases for non-destructive methods."""
+
+    def setUp(self):
+        mox.MoxTestBase.setUp(self)
+        self.backend = aptBackend.PackageKitAptBackend([])
+
+    def _catch_callbacks(self, *args):
+        methods = list(args)
+        methods.extend(("error", "finished"))
+        for meth in methods:
+            self.mox.StubOutWithMock(self.backend, meth)
+
+    def test_resolve(self):
+        """Test resolving the name of package."""
+        self._catch_callbacks("package")
+        self.backend.package("silly-base;0.1-0;all;",
+                             enums.INFO_INSTALLED,
+                             "working package")
+        self.backend.finished()
+        self.mox.ReplayAll()
+        self.backend._cache.open()
+        # Install the package
+        self.backend.dispatch_command("resolve",
+                                      ["None", "silly-base"])
+
+    def test_search_name(self):
+        """Test searching for package names."""
+        self._catch_callbacks("package")
+        self.backend.package("silly-base;0.1-0update1;all;",
+                             enums.INFO_AVAILABLE,
+                             "working package")
+        self.backend.package("silly-base;0.1-0;all;",
+                             enums.INFO_INSTALLED,
+                             "working package")
+        self.backend.finished()
+        self.mox.ReplayAll()
+        self.backend._cache.open()
+
+        self.backend.dispatch_command("search-name",
+                                      ["None", "silly-base"])
+
+    def test_search_details(self):
+        """Test searching for package descriptions."""
+        self._catch_callbacks("package")
+        self.backend.package("silly-fail;0.1-0;all;",
+                             enums.INFO_AVAILABLE,
+                             mox.IsA(str))
+        self.backend.finished()
+        self.mox.ReplayAll()
+        self.backend._cache.open()
+        # Install the package
+        aptBackend.XAPIAN_SUPPORT = False
+        self.backend.dispatch_command("search-details",
+                                      ["None", "always fail"])
+
+    def test_get_updates(self):
+        """Test checking for updates."""
+        self._catch_callbacks("package")
+        self.backend.package("silly-base;0.1-0update1;all;",
+                             enums.INFO_NORMAL,
+                             mox.IsA(str))
+        self.backend.finished()
+        self.mox.ReplayAll()
+        self.backend._cache.open()
+        # Install the package
+        aptBackend.XAPIAN_SUPPORT = False
+        self.backend.dispatch_command("get-updates", ["None"])
+
+
+def setUp():
+    chroot.setup()
+    chroot.add_test_repository()
+    chroot.install_debfile(os.path.join(REPO_PATH, "silly-base_0.1-0_all.deb"))
+
+def tearDown():
+    chroot.remove()
+
+
+if __name__ == "__main__":
+    setUp()
+    unittest.main()
+    tearDown()
+
+# vim: ts=4 et sts=4
commit 976eadcb5257e649693100e477fdb00bb9da9cf7
Author: Sebastian Heinlein <devel at glatzor.de>
Date:   Tue Nov 29 10:40:42 2011 +0100

    apt: use the dpkg bin and options from the apt configuration

diff --git a/backends/apt/aptBackend.py b/backends/apt/aptBackend.py
index bbf93da..1e232d3 100755
--- a/backends/apt/aptBackend.py
+++ b/backends/apt/aptBackend.py
@@ -236,17 +236,22 @@ class DpkgInstallProgress(apt.progress.base.InstallProgress):
     #FIXME: Use the merged DpkgInstallProgress of python-apt
     def recover(self):
         """Run 'dpkg --configure -a'."""
-        cmd = ["/usr/bin/dpkg", "--status-fd", str(self.writefd),
+        cmd = [apt_pkg.config.find_file("Dir::Bin::Dpkg"),
+                "--status-fd", str(self.writefd),
                "--root", apt_pkg.config["Dir"],
-               "--force-confdef", "--force-confold", 
-               "--configure", "-a"]
+               "--force-confdef", "--force-confold"]
+        cmd.extend(apt_pkg.config.value_list("Dpkg::Options"))
+        cmd.extend(("--configure", "-a"))
         self.run(cmd)
 
     def install(self, filenames):
         """Install the given package using a dpkg command line call."""
-        cmd = ["/usr/bin/dpkg", "--force-confdef", "--force-confold",
+        cmd = [apt_pkg.config.find_file("Dir::Bin::Dpkg"),
+               "--force-confdef", "--force-confold",
                "--status-fd", str(self.writefd), 
-               "--root", apt_pkg.config["Dir"], "-i"]
+               "--root", apt_pkg.config["Dir"]]
+        cmd.extend(apt_pkg.config.value_list("Dpkg::Options"))
+        cmd.append("-i")
         cmd.extend([str(f) for f in filenames])
         self.run(cmd)
 
commit ff07cd628abb64932ad778d186d38ade9b11884f
Author: Sebastian Heinlein <devel at glatzor.de>
Date:   Tue Nov 29 10:20:40 2011 +0100

    apt: Trivial fix a typo in a method call (remov[e]able)

diff --git a/backends/apt/aptBackend.py b/backends/apt/aptBackend.py
index 1e1bfbf..bbf93da 100755
--- a/backends/apt/aptBackend.py
+++ b/backends/apt/aptBackend.py
@@ -1097,7 +1097,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
             for dep_name in installed_deps:
                 if dep_name in self._cache:
                     pkg = self._cache[dep_name]
-                    if pkg.is_installed and pkg.is_auto_removeable:
+                    if pkg.is_installed and pkg.is_auto_removable:
                         pkg.mark_delete(False)
 
     def _installed_dependencies(self, pkg_name, all_deps=None):
commit 86379dfbe5cf0ad337054d4ee073c8d856e5691d
Author: Sebastian Heinlein <devel at glatzor.de>
Date:   Tue Nov 29 10:08:26 2011 +0100

    apt: Raise exceptions in the backend code instead of calling
    PackageKitBaseBackend.error directly

diff --git a/backends/apt/aptBackend.py b/backends/apt/aptBackend.py
index 26e30f1..1e1bfbf 100755
--- a/backends/apt/aptBackend.py
+++ b/backends/apt/aptBackend.py
@@ -173,6 +173,18 @@ try:
 except locale.Error:
     pklog.debug("Failed to unset LC_TIME")
 
+def catch_pkerror(func):
+    """Decorator to catch a backend error and report
+    it correctly to the daemon.
+    """
+    def _catch_error(*args, **kwargs):
+        try:
+            return func(*args, **kwargs)
+        except PKError as error:
+            backend = args[0]
+            backend.error(error.enum, error.msg, error.exit)
+    return _catch_error
+
 def lock_cache(func):
     """Lock the system package cache before excuting the decorated function and
     release the lock afterwards.
@@ -205,16 +217,14 @@ def lock_cache(func):
 
 
 class PKError(Exception):
-    pass
 
-class PackageManagerFailedPKError(PKError):
-    def __init__(self, msg, pkg, output):
-        self.message = msg
-        self.package = pkg
-        self.output = output
+    def __init__(self, enum, msg, exit=True):
+        self.enum = enum
+        self.msg = msg
+        self.exit = exit
 
-class InstallTimeOutPKError(PKError):
-    pass
+    def __str__(self):
+        return "%s: %s" % (self.enum, self.msg)
 
 
 class DpkgInstallProgress(apt.progress.base.InstallProgress):
@@ -535,16 +545,31 @@ class PackageKitInstallProgress(apt.progress.base.InstallProgress):
             pklog.critical("no activity for %s time sending ctrl-c" \
                            % self.timeout)
             os.write(self.master_fd, chr(3))
-            #FIXME: include this into the normal install progress and add 
-            #       correct package information
-            raise InstallTimeOutPKError(self.output)
+            msg = "Transaction was cancelled since the installation " \
+                  "of a package hung.\n" \
+                  "This can be caused by maintainer scripts which " \
+                  "require input on the terminal:\n%s" % self.output
+            raise PKError(enums.ERROR_PACKAGE_FAILED_TO_CONFIGURE,
+                          format_string(msg))
 
     def conffile(self, current, new):
         pklog.warning("Config file prompt: '%s' (sending no)" % current)
         self.conffile_prompts.add(new)
 
     def error(self, pkg, msg):
-        raise PackageManagerFailedPKError(pkg, msg, self.output)
+        try:
+            pkg = self._backend._cache[pkg]
+        except KeyError:
+            err_enum = enums.ERROR_TRANSACTION_FAILED
+        else:
+            if pkg.marked_delete:
+                err_enum = enums.ERROR_PACKAGE_FAILED_TO_REMOVE
+            elif pkg.marked_keep:
+                # Should be called in the case of triggers
+                err_enum = enums.ERROR_PACKAGE_FAILED_TO_CONFIGURE
+            else:
+                err_enum = enums.ERROR_PACKAGE_FAILED_TO_INSTALL
+        raise PKError(err_enum, self.output)
 
     def finish_update(self):
         pklog.debug("finishUpdate()")
@@ -580,7 +605,12 @@ class PackageKitDpkgInstallProgress(DpkgInstallProgress,
             pklog.critical("no activity for %s time sending "
                            "ctrl-c" % self.timeout)
             os.write(self.master_fd, chr(3))
-            raise InstallTimeOutPKError(self.output)
+            msg = "Transaction was cancelled since the installation " \
+                  "of a package hung.\n" \
+                  "This can be caused by maintainer scripts which " \
+                  "require input on the terminal:\n%s" % self.output
+            raise PKError(enums.ERROR_PACKAGE_FAILED_TO_CONFIGURE,
+                          format_string(msg))
 
 
 if REPOS_SUPPORT == True:
@@ -609,6 +639,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
 
     # Methods ( client -> engine -> backend )
 
+    @catch_pkerror
     def search_file(self, filters, filenames):
         """Search for files in packages.
 
@@ -651,8 +682,8 @@ class PackageKitAptBackend(PackageKitBaseBackend):
                 result_names.update(stdout.split())
                 self._emit_visible_packages_by_name(filters, result_names)
             else:
-                self.error(enums.ERROR_INTERNAL_ERROR,
-                           format_string("%s %s" % (stdout, stderr)))
+                raise PKError(enums.ERROR_INTERNAL_ERROR,
+                              format_string("%s %s" % (stdout, stderr)))
         # Search for installed files
         filenames_regex = []
         for filename in filenames:
@@ -670,6 +701,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
                     self._emit_visible_package(filters, pkg)
                     break
 
+    @catch_pkerror
     def search_group(self, filters, groups):
         """Search packages by their group."""
         pklog.info("Searching for groups: %s" % groups)
@@ -682,6 +714,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
             if self._get_package_group(pkg) in groups:
                 self._emit_visible_package(filters, pkg)
 
+    @catch_pkerror
     def search_name(self, filters, values):
         """Search packages by name."""
         def matches(searches, text):
@@ -700,6 +733,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
                 self._emit_all_visible_pkg_versions(filters,
                                                     self._cache[pkg_name])
 
+    @catch_pkerror
     def search_details(self, filters, values):
         """Search packages by details."""
         pklog.info("Searching for package details: %s" % values)
@@ -744,6 +778,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
                 if matches(values, txt):
                     self._emit_visible_package(filters, pkg)
 
+    @catch_pkerror
     def get_distro_upgrades(self):
         """
         Implement the {backend}-get-distro-upgrades functionality
@@ -756,13 +791,14 @@ class PackageKitAptBackend(PackageKitBaseBackend):
         if META_RELEASE_SUPPORT == False:
             if "update-manager-core" in self._cache and \
                self._cache["update-manager-core"].isInstalled == False:
-                self.error(enums.ERROR_INTERNAL_ERROR,
-                           "Please install the package update-manager-core to "
-                           "get notified of the latest distribution releases.")
+                raise PKError(enums.ERROR_INTERNAL_ERROR,
+                              "Please install the package update-manager-core "
+                              "to get notified of the latest distribution "
+                              "releases.")
             else:
-                self.error(enums.ERROR_INTERNAL_ERROR,
-                           "Please make sure that update-manager-core is"
-                           "correctly installed.")
+                raise PKError(enums.ERROR_INTERNAL_ERROR,
+                              "Please make sure that update-manager-core is"
+                              "correctly installed.")
             return
 
         #FIXME Evil to start the download during init
@@ -777,6 +813,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
                                            meta_release.new_dist.version),
                                 "The latest stable release")
 
+    @catch_pkerror
     def get_updates(self, filters):
         """Get available package updates."""
         def succeeds_security_update(pkg):
@@ -847,6 +884,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
             self._emit_package(pkg, info, force_candidate=True)
         self._cache.clear()
 
+    @catch_pkerror
     def get_update_detail(self, pkg_ids):
         """Get details about updates."""
         def get_bug_urls(changelog):
@@ -972,6 +1010,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
                                format_string(changelog),
                                state, issued, updated)
 
+    @catch_pkerror
     def get_details(self, pkg_ids):
         """Emit details about packages."""
         pklog.info("Get details of %s" % pkg_ids)
@@ -997,6 +1036,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
                          pkg.homepage,
                          pkg.packageSize)
 
+    @catch_pkerror
     @lock_cache
     def update_system(self, only_trusted):
         """Upgrade the system."""
@@ -1013,6 +1053,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
         self._check_trusted(only_trusted)
         self._commit_changes()
 
+    @catch_pkerror
     @lock_cache
     def remove_packages(self, allow_deps, auto_remove, ids):
         """Remove packages."""
@@ -1029,9 +1070,9 @@ class PackageKitAptBackend(PackageKitBaseBackend):
         if not allow_deps and self._cache.delete_count != len(ids):
             dependencies = [pkg.name for pkg in self._cache.get_changes() \
                             if pkg.name not in pkgs]
-            self.error(enums.ERROR_DEP_RESOLUTION_FAILED,
-                       "The following packages would have also to be removed: "
-                       "%s" % " ".join(dependencies))
+            raise PKError(enums.ERROR_DEP_RESOLUTION_FAILED,
+                          "The following packages would have also to be "
+                          "removed: %s" % " ".join(dependencies))
         if auto_remove:
             self._check_obsoleted_dependencies()
         #FIXME: Should support only_trusted
@@ -1039,8 +1080,8 @@ class PackageKitAptBackend(PackageKitBaseBackend):
         self._open_cache(start=90, end=99)
         for pkg_name in pkgs:
             if pkg_name in self._cache and self._cache[pkg_name].is_installed:
-                self.error(enums.ERROR_PACKAGE_FAILED_TO_INSTALL,
-                           "%s is still installed" % pkg_name)
+                raise PKError(enums.ERROR_PACKAGE_FAILED_TO_INSTALL,
+                              "%s is still installed" % pkg_name)
         self.percentage(100)
 
     def _check_obsoleted_dependencies(self):
@@ -1082,6 +1123,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
                 pass
         return all_deps
 
+    @catch_pkerror
     def simulate_remove_packages(self, ids):
         """Emit the change required for the removal of the given packages."""
         pklog.info("Simulating removal of package with id %s" % ids)
@@ -1101,15 +1143,15 @@ class PackageKitAptBackend(PackageKitBaseBackend):
                 version = self._get_version_by_id(id)
                 pkg = version.package
                 if not pkg.isInstalled:
-                    self.error(enums.ERROR_PACKAGE_NOT_INSTALLED,
-                               "Package %s isn't installed" % pkg.name)
+                    raise PKError(enums.ERROR_PACKAGE_NOT_INSTALLED,
+                                  "Package %s isn't installed" % pkg.name)
                 if pkg.installed != version:
-                    self.error(enums.ERROR_PACKAGE_NOT_INSTALLED,
-                               "Version %s of %s isn't installed" % \
-                               (version.version, pkg.name))
+                    raise PKError(enums.ERROR_PACKAGE_NOT_INSTALLED,
+                                  "Version %s of %s isn't installed" % \
+                                  (version.version, pkg.name))
                 if pkg.essential == True:
-                    self.error(enums.ERROR_CANNOT_REMOVE_SYSTEM_PACKAGE,
-                               "Package %s cannot be removed." % pkg.name)
+                    raise PKError(enums.ERROR_CANNOT_REMOVE_SYSTEM_PACKAGE,
+                                  "Package %s cannot be removed." % pkg.name)
                 pkgs.append(pkg.name[:])
                 pkg.markDelete(False, False)
                 resolver.clear(pkg)
@@ -1119,11 +1161,12 @@ class PackageKitAptBackend(PackageKitBaseBackend):
                 resolver.resolve()
             except SystemError as error:
                 broken = [pkg.name for pkg in self._cache if pkg.is_inst_broken]
-                self.error(enums.ERROR_DEP_RESOLUTION_FAILED,
-                           "The following packages would break and so block"
-                           "the removal: %s" % " ".join(broken))
+                raise PKError(enums.ERROR_DEP_RESOLUTION_FAILED,
+                              "The following packages would break and so block"
+                              "the removal: %s" % " ".join(broken))
         return pkgs
 
+    @catch_pkerror
     def get_repo_list(self, filters):
         """
         Implement the {backend}-get-repo-list functionality
@@ -1138,13 +1181,13 @@ class PackageKitAptBackend(PackageKitBaseBackend):
         if REPOS_SUPPORT == False:
             if "python-software-properties" in self._cache and \
                self._cache["python-software-properties"].isInstalled == False:
-                self.error(enums.ERROR_INTERNAL_ERROR,
-                           "Please install the package "
-                           "python-software-properties to handle repositories")
+                raise PKError(enums.ERROR_INTERNAL_ERROR,
+                              "Please install the package "
+                              "python-software-properties to handle "
+                              "repositories")
             else:
-                self.error(enums.ERROR_INTERNAL_ERROR,
-                           "Please make sure that python-software-properties is"
-                           "correctly installed.")
+                raise PKError(enums.ERROR_INTERNAL_ERROR,
+                              "Please make sure that python-software-properties"                              " is correctly installed.")
         repos = PackageKitSoftwareProperties()
         # Emit distro components as virtual repositories
         for comp in repos.distro.source_template.components:
@@ -1205,6 +1248,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
                              format_string(description.decode("UTF-8")),
                              enabled)
 
+    @catch_pkerror
     def repo_enable(self, repo_id, enable):
         """
         Implement the {backend}-repo-enable functionality
@@ -1219,13 +1263,14 @@ class PackageKitAptBackend(PackageKitBaseBackend):
         if REPOS_SUPPORT == False:
             if "python-software-properties" in self._cache and \
                self._cache["python-software-properties"].isInstalled == False:
-                self.error(enums.ERROR_INTERNAL_ERROR,
-                           "Please install the package "
-                           "python-software-properties to handle repositories")
+                raise PKError(enums.ERROR_INTERNAL_ERROR,
+                              "Please install the package "
+                              "python-software-properties to handle "
+                              "repositories")
             else:
-                self.error(enums.ERROR_INTERNAL_ERROR,
-                           "Please make sure that python-software-properties is"
-                           "correctly installed.")
+                raise PKError(enums.ERROR_INTERNAL_ERROR,
+                              "Please make sure that python-software-properties"
+                              "is correctly installed.")
             return
         repos = PackageKitSoftwareProperties()
 
@@ -1284,9 +1329,10 @@ class PackageKitAptBackend(PackageKitBaseBackend):
                     found = True
                     break
         if found == False:
-            self.error(enums.ERROR_REPO_NOT_AVAILABLE,
-                       "The repository of the id %s isn't available" % repo_id)
+            raise PKError(enums.ERROR_REPO_NOT_AVAILABLE,
+                          "The repository %s isn't available" % repo_id)
 
+    @catch_pkerror
     @lock_cache
     def update_packages(self, only_trusted, ids):
         """Update packages."""
@@ -1305,10 +1351,11 @@ class PackageKitAptBackend(PackageKitBaseBackend):
             if (pkg_name not in self._cache or
                 not self._cache[pkg_name].is_installed or
                 self._cache[pkg_name].is_upgradable):
-                self.error(enums.ERROR_PACKAGE_FAILED_TO_INSTALL,
-                           "%s was not updated" % pkg_name)
+                raise PKError(enums.ERROR_PACKAGE_FAILED_TO_INSTALL,
+                              "%s was not updated" % pkg_name)
         pklog.debug("Sending success signal")
 
+    @catch_pkerror
     def simulate_update_packages(self, ids):
         """Emit the changes required for the upgrade of the given packages."""
         pklog.info("Simulating update of package with id %s" % ids)
@@ -1328,15 +1375,15 @@ class PackageKitAptBackend(PackageKitBaseBackend):
                 version = self._get_version_by_id(id)
                 pkg = version.package
                 if not pkg.is_installed:
-                    self.error(enums.ERROR_PACKAGE_NOT_INSTALLED,
-                               "%s isn't installed" % pkg.name)
+                    raise PKError(enums.ERROR_PACKAGE_NOT_INSTALLED,
+                                  "%s isn't installed" % pkg.name)
                 # Check if the specified version is an update
                 if apt_pkg.version_compare(pkg.installed.version,
                                            version.version) >= 0:
-                    self.error(enums.ERROR_UPDATE_NOT_FOUND,
-                               "The version %s of %s isn't an update to the "
-                               "current %s" % (version.version, pkg.name,
-                                               pkg.installed.version))
+                    raise PKError(enums.ERROR_UPDATE_NOT_FOUND,
+                                  "The version %s of %s isn't an update to the "
+                                  "current %s" % (version.version, pkg.name,
+                                                  pkg.installed.version))
                 pkg.candidate = version
                 pkgs.append(pkg.name[:])
                 pkg.mark_install(False, True)
@@ -1346,11 +1393,12 @@ class PackageKitAptBackend(PackageKitBaseBackend):
                 resolver.resolve()
             except SystemError as error:
                 broken = [pkg.name for pkg in self._cache if pkg.is_inst_broken]
-                self.error(enums.ERROR_DEP_RESOLUTION_FAILED,
-                           "The following packages block the installation: "
-                           "%s" % " ".join(broken))
+                raise PKError(enums.ERROR_DEP_RESOLUTION_FAILED,
+                              "The following packages block the installation: "
+                              "%s" % " ".join(broken))
         return pkgs
 
+    @catch_pkerror
     def download_packages(self, dest, ids):
         """Download packages to the given destination."""
         def get_download_details(ids):
@@ -1364,8 +1412,8 @@ class PackageKitAptBackend(PackageKitBaseBackend):
             for id in ids:
                 pkg_ver = self._get_pkg_version_by_id(id)
                 if not pkg_ver.downloadable:
-                    self.error(enums.ERROR_PACKAGE_DOWNLOAD_FAILED,
-                               "package %s isn't downloadable" % id)
+                    raise PKError(enums.ERROR_PACKAGE_DOWNLOAD_FAILED,
+                                  "package %s isn't downloadable" % id)
                 total += pkg_ver.size
                 versions.append((id, pkg_ver))
             for id, ver in versions:
@@ -1379,8 +1427,8 @@ class PackageKitAptBackend(PackageKitBaseBackend):
         self.percentage(0)
         # Check the destination directory
         if not os.path.isdir(dest) or not os.access(dest, os.W_OK):
-            self.error(enums.ERROR_INTERNAL_ERROR,
-                       "The directory '%s' is not writable" % dest)
+            raise PKError(enums.ERROR_INTERNAL_ERROR,
+                          "The directory '%s' is not writable" % dest)
         # Setup the fetcher
         self._check_init()
         # Start the download
@@ -1390,14 +1438,15 @@ class PackageKitAptBackend(PackageKitBaseBackend):
             try:
                 ver.fetch_binary(dest, progress)
             except Exception as error:
-                self.error(enums.ERROR_PACKAGE_DOWNLOAD_FAILED,
-                           format_string(str(error)))
+                raise PKError(enums.ERROR_PACKAGE_DOWNLOAD_FAILED,
+                              format_string(str(error)))
             else:
                 self.files(id, os.path.join(dest,
                                             os.path.basename(ver.filename)))
                 self._emit_pkg_version(ver, enums.INFO_FINISHED)
         self.percentage(100)
 
+    @catch_pkerror
     @lock_cache
     def install_packages(self, only_trusted, ids):
         """Install the given packages."""
@@ -1414,9 +1463,10 @@ class PackageKitAptBackend(PackageKitBaseBackend):
         pklog.debug("Checking success of operation")
         for p in pkgs:
             if p not in self._cache or not self._cache[p].is_installed:
-                self.error(enums.ERROR_PACKAGE_FAILED_TO_INSTALL,
-                           "%s was not installed" % p)
+                raise PKError(enums.ERROR_PACKAGE_FAILED_TO_INSTALL,
+                              "%s was not installed" % p)
 
+    @catch_pkerror
     def simulate_install_packages(self, ids):
         """Emit the changes required for the installation of the given
         packages.
@@ -1441,8 +1491,8 @@ class PackageKitAptBackend(PackageKitBaseBackend):
                 pkg = version.package
                 pkg.candidate = version
                 if pkg.installed == version:
-                    self.error(enums.ERROR_PACKAGE_ALREADY_INSTALLED,
-                               "Package %s is already installed" % pkg.name)
+                    raise PKError(enums.ERROR_PACKAGE_ALREADY_INSTALLED,
+                                  "Package %s is already installed" % pkg.name)
                 pkgs.append(pkg.name[:])
                 pkg.markInstall(False, True, True)
                 resolver.clear(pkg)
@@ -1451,11 +1501,12 @@ class PackageKitAptBackend(PackageKitBaseBackend):
                 resolver.resolve()
             except SystemError as error:
                 broken = [pkg.name for pkg in self._cache if pkg.is_inst_broken]
-                self.error(enums.ERROR_DEP_RESOLUTION_FAILED,
-                           "The following packages block the installation: "
-                           "%s" % " ".join(broken))
+                raise PKError(enums.ERROR_DEP_RESOLUTION_FAILED,
+                              "The following packages block the installation: "
+                              "%s" % " ".join(broken))
         return pkgs
 
+    @catch_pkerror
     @lock_cache
     def install_files(self, only_trusted, inst_files):
         """Install local Debian package files."""
@@ -1471,15 +1522,15 @@ class PackageKitAptBackend(PackageKitBaseBackend):
             deb = apt.debfile.DebPackage(path, self._cache)
             packages.append(deb)
             if not deb.check():
-                self.error(enums.ERROR_LOCAL_INSTALL_FAILED,
-                           format_string(deb._failure_string))
+                raise PKError(enums.ERROR_LOCAL_INSTALL_FAILED,
+                              format_string(deb._failure_string))
             (install, remove, unauthenticated) = deb.required_changes
             pklog.debug("Changes: Install %s, Remove %s, Unauthenticated "
                         "%s" % (install, remove, unauthenticated))
             if len(remove) > 0:
-                self.error(enums.ERROR_DEP_RESOLUTION_FAILED,
-                           "Remove the following packages "
-                           "before: %s" % remove)
+                raise PKError(enums.ERROR_DEP_RESOLUTION_FAILED,
+                              "Remove the following packages "
+                              "before: %s" % remove)
             if (deb.compare_to_version_in_cache() ==
                 apt.debfile.DebPackage.VERSION_OUTDATED):
                 self.message(enums.MESSAGE_NEWER_PACKAGE_EXISTS,
@@ -1495,23 +1546,15 @@ class PackageKitAptBackend(PackageKitBaseBackend):
             progress.start_update()
             progress.install(inst_files)
             progress.finish_update()
-        except InstallTimeOutPKError as error:
+        except PKError as error:
             self._recover()
-            #FIXME: should provide more information
-            msg = "Transaction was cancelled since the installation " \
-                  "of a package hung.\n" \
-                  "This can be caused by maintainer scripts which " \
-                  "require input on the terminal:\n%s" % str(error)
-            self.error(enums.ERROR_INTERNAL_ERROR, format_string(msg))
-        except PackageManagerFailedPKError as error:
-            self._recover()
-            self.error(enums.ERROR_INTERNAL_ERROR,
-                       format_string("%s\n%s" % (error.message, error.output)))
+            raise error
         except Exception as error:
             self._recover()
-            self.error(enums.ERROR_INTERNAL_ERROR, format_string(str(error)))
+            raise PKError(enums.ERROR_INTERNAL_ERROR, format_string(str(error)))
         self.percentage(100)
 
+    @catch_pkerror
     def simulate_install_files(self, inst_files):
         """Emit the change required for the installation of the given package
         files.
@@ -1527,10 +1570,11 @@ class PackageKitAptBackend(PackageKitBaseBackend):
             deb = apt.debfile.DebPackage(path, self._cache)
             pkgs.append(deb.pkgname)
             if not deb.check():
-                self.error(enums.ERROR_LOCAL_INSTALL_FAILED,
-                           format_string(deb._failure_string))
+                raise PKError(enums.ERROR_LOCAL_INSTALL_FAILED,
+                              format_string(deb._failure_string))
         self._emit_changes(pkgs)
 
+    @catch_pkerror
     @lock_cache
     def refresh_cache(self, force):
         """Update the package cache."""
@@ -1553,6 +1597,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
         self._open_cache(start=95, end=100)
         self.percentage(100)
 
+    @catch_pkerror
     def get_packages(self, filters):
         """Get packages."""
         pklog.info("Get all packages")
@@ -1567,6 +1612,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
             if self._is_package_visible(pkg, filters):
                 self._emit_package(pkg)
 
+    @catch_pkerror
     def resolve(self, filters, names):
         """
         Implement the apt2-resolve functionality
@@ -1581,9 +1627,10 @@ class PackageKitAptBackend(PackageKitBaseBackend):
             try:
                 self._emit_visible_package(filters, self._cache[name])
             except KeyError:
-                self.error(enums.ERROR_PACKAGE_NOT_FOUND,
-                           "Package name %s could not be resolved" % name)
+                raise PKError(enums.ERROR_PACKAGE_NOT_FOUND,
+                              "Package name %s could not be resolved" % name)
 
+    @catch_pkerror
     def get_depends(self, filters, ids, recursive):
         """Emit all dependencies of the given package ids.
 
@@ -1671,6 +1718,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
                         # The dependency does not exist
                         emit_blocked_dependency(base_dep, filters=filters)
 
+    @catch_pkerror
     def get_requires(self, filters, ids, recursive):
         """Emit all packages which depend on the given ids.
 
@@ -1704,6 +1752,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
                         self._emit_package(pkg)
                         break
 
+    @catch_pkerror
     def what_provides(self, filters, provides_type, search):
         def get_mapping_db(path):
             """
@@ -1713,26 +1762,26 @@ class PackageKitAptBackend(PackageKitBaseBackend):
             if not os.access(path, os.R_OK):
                 if ("app-install-data" in self._cache and
                     not self._cache["app-install-data"].is_installed):
-                    self.error(enums.ERROR_INTERNAL_ERROR,
-                               "Please install the package "
-                               "app-install data for a list of "
-                               "applications that can handle files of "
-                               "the given type")
+                    raise PKError(enums.ERROR_INTERNAL_ERROR,
+                                  "Please install the package "
+                                  "app-install data for a list of "
+                                  "applications that can handle files of "
+                                  "the given type")
                 else:
-                    self.error(enums.ERROR_INTERNAL_ERROR,
-                               "The list of applications that can handle "
-                               "files of the given type cannot be opened.\n"
-                               "Try to reinstall the package "
-                               "app-install-data.")
+                    raise PKError(enums.ERROR_INTERNAL_ERROR,
+                                  "The list of applications that can handle "
+                                  "files of the given type cannot be opened.\n"
+                                  "Try to reinstall the package "
+                                  "app-install-data.")
                 return
             try:
                 db = gdbm.open(path)
             except:
-                self.error(enums.ERROR_INTERNAL_ERROR,
-                           "The list of applications that can handle "
-                           "files of the given type cannot be opened.\n"
-                           "Try to reinstall the package "
-                           "app-install-data.")
+                raise PKError(enums.ERROR_INTERNAL_ERROR,
+                              "The list of applications that can handle "
+                              "files of the given type cannot be opened.\n"
+                              "Try to reinstall the package "
+                              "app-install-data.")
             else:
                 return db
         def extract_gstreamer_request(search):
@@ -1745,8 +1794,8 @@ class PackageKitAptBackend(PackageKitBaseBackend):
                              search)
             caps = None
             if not match:
-                self.error(enums.ERROR_INTERNAL_ERROR,
-                           "The search term is invalid: %s" % search)
+                raise PKError(enums.ERROR_INTERNAL_ERROR,
+                              "The search term is invalid: %s" % search)
             if match.group("opt"):
                 caps_str = "%s, %s" % (match.group("data"), match.group("opt"))
                 # gst.Caps.__init__ cannot handle unicode instances
@@ -1811,9 +1860,10 @@ class PackageKitAptBackend(PackageKitBaseBackend):
                 handlers = [s.split("/")[1] for s in db[search].split(" ")]
                 self._emit_visible_packages_by_name(filters, handlers)
         else:
-            self.error(enums.ERROR_NOT_SUPPORTED,
-                       "This function is not implemented in this backend")
+            raise PKError(enums.ERROR_NOT_SUPPORTED,
+                          "This function is not implemented in this backend")
 
+    @catch_pkerror
     def get_files(self, package_ids):
         """Emit the Files signal which includes the files included in a package
         Apt only supports this for installed packages
@@ -1848,13 +1898,13 @@ class PackageKitAptBackend(PackageKitBaseBackend):
                                                          progress),
                                     rootdir=rootdir)
         except Exception as error:
-            self.error(enums.ERROR_NO_CACHE,
-                       "Package cache could not be opened:%s" % error)
+            raise PKError(enums.ERROR_NO_CACHE,
+                          "Package cache could not be opened:%s" % error)
         if self._cache.broken_count > 0:
-            self.error(enums.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.")
+            raise PKError(enums.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.")
         if rootdir:
             apt_pkg.config.clear("DPkg::Post-Invoke")
             apt_pkg.config.clear("DPkg::Options")
@@ -1891,8 +1941,8 @@ class PackageKitAptBackend(PackageKitBaseBackend):
                      if not trusted:
                          untrusted.append(pkg.name)
             if untrusted:
-                self.error(enums.ERROR_MISSING_GPG_SIGNATURE,
-                           " ".join(untrusted))
+                raise PKError(enums.ERROR_MISSING_GPG_SIGNATURE,
+                              " ".join(untrusted))
 
     def _commit_changes(self, fetch_start=10, fetch_end=50,
                         install_start=50, install_end=90):
@@ -1902,33 +1952,19 @@ class PackageKitAptBackend(PackageKitBaseBackend):
         try:
             self._cache.commit(acquire_prog, inst_prog)
         except apt.cache.FetchFailedException as err:
-            self._open_cache(start=95, end=100)
             pklog.critical(format_string(err.message))
-            self.error(enums.ERROR_PACKAGE_DOWNLOAD_FAILED,
-                       format_string(err.message))
+            raise PKError(enums.ERROR_PACKAGE_DOWNLOAD_FAILED,
+                          format_string(err.message))
         except apt.cache.FetchCancelledException:
-            self._open_cache(start=95, end=100)
-        except InstallTimeOutPKError as err:
-            self._recover()
-            self._open_cache(start=95, end=100)
-            #FIXME: should provide more information
-            msg = "Transaction was cancelled since the installation " \
-                  "of a package hung.\n" \
-                  "This can be caused by maintainer scripts which " \
-                  "require input on the terminal:\n%s" % err.message
-            self.error(enums.ERROR_INTERNAL_ERROR, format_string(msg))
-        except SystemError as err:
+            raise PKError(enums.TRANSACTION_CANCELLED)
+        except PKError as error:
             self._recover()
-            self.error(enums.ERROR_INTERNAL_ERROR,
-                       format_string("%s\n%s" % (err.message,
-                                                 inst_prog.output)))
-        except PackageManagerFailedPKError as err:
+            raise error
+        except SystemError as error:
             self._recover()
-            self.error(enums.ERROR_INTERNAL_ERROR,
-                       format_string("%s\n%s" % (err.message, err.output)))
-        else:
-            return True
-        return False
+            raise PKError(enums.ERROR_INTERNAL_ERROR,
+                          format_string("%s\n%s" % (str(error),
+                                                    inst_prog.output)))
 
     def _get_id_from_version(self, version):
         """Return the package id of an apt.package.Version instance."""
@@ -2158,18 +2194,18 @@ class PackageKitAptBackend(PackageKitBaseBackend):
         try:
             pkg = self._cache[name]
         except:
-            self.error(enums.ERROR_PACKAGE_NOT_FOUND,
-                       "There isn't any package named %s" % name)
+            raise PKError(enums.ERROR_PACKAGE_NOT_FOUND,
+                          "There isn't any package named %s" % name)
         try:
             version = pkg.versions[version_string]
         except:
-            self.error(enums.ERROR_PACKAGE_NOT_FOUND,
-                       "There isn't any verion %s of %s" % (version_string,
-                                                            name))
+            raise PKError(enums.ERROR_PACKAGE_NOT_FOUND,
+                          "There isn't any verion %s of %s" % (version_string,
+                                                               name))
         if version.architecture != arch:
-            self.error(enums.ERROR_PACKAGE_NOT_FOUND,
-                       "Version %s of %s isn't available for architecture "
-                       "%s" % (pkg.name, version.version, arch))
+            raise PKError(enums.ERROR_PACKAGE_NOT_FOUND,
+                          "Version %s of %s isn't available for architecture "
+                          "%s" % (pkg.name, version.version, arch))
         return version
 
     def _get_package_group(self, pkg):
@@ -2188,6 +2224,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
         self._unlock_cache()
         sys.exit(1)
 
+
 def debug_exception(type, value, tb):
     """Provides an interactive debugging session on unhandled exceptions
     See http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65287
commit 7bdbbba5081adb8584c51b15c18ae2034903e37d
Author: Sebastian Heinlein <devel at glatzor.de>
Date:   Tue Nov 29 09:07:03 2011 +0100

    apt: Use the ROOT env to set the backend to the chroot and the correct
    path to the test repo

diff --git a/backends/apt/test/core.py b/backends/apt/test/core.py
new file mode 100644
index 0000000..c3321dc
--- /dev/null
+++ b/backends/apt/test/core.py
@@ -0,0 +1,178 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+"""Small helpers for the test suite."""
+# Copyright (C) 2011 Sebastian Heinlein <devel at glatzor.de>
+#
+# 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.
+# Licensed under the GNU General Public License Version 2
+
+__author__  = "Sebastian Heinlein <devel at glatzor.de>"
+__all__ = ("get_tests_dir", "Chroot", "AptDaemonTestCase")
+
+import inspect
+import os
+import shutil
+import subprocess
+import sys
+import tempfile
+import unittest
+
+import apt_pkg
+
+
+class Chroot(object):
+
+    """Provides a chroot which can be used by APT."""
+
+    def __init__(self, prefix="tmp"):
+        self.path = tempfile.mkdtemp(prefix)
+
+    def setup(self):
+        """Setup the chroot and modify the apt configuration."""
+        for subdir in ["alternatives", "info", "parts", "updates", "triggers"]:
+            path = os.path.join(self.path, "var", "lib", "dpkg", subdir)
+            os.makedirs(path)
+        for fname in ["status", "available"]:
+            with open(os.path.join(self.path, "var", "lib", "dpkg", fname),
+                      "w"):
+                pass
+        os.makedirs(os.path.join(self.path, "var/cache/apt/archives/partial"))
+        os.makedirs(os.path.join(self.path, "var/lib/apt/lists"))
+        os.makedirs(os.path.join(self.path, "var/lib/apt/lists/partial"))
+        os.makedirs(os.path.join(self.path, "etc/apt/apt.conf.d"))
+        os.makedirs(os.path.join(self.path, "etc/apt/sources.list.d"))
+        os.makedirs(os.path.join(self.path, "var/log"))
+        os.makedirs(os.path.join(self.path, "media"))
+
+        # Make apt use the new chroot
+        dpkg_wrapper = os.path.join(get_tests_dir(), "dpkg-wrapper.sh")
+        config_path = os.path.join(self.path, "etc/apt/apt.conf.d/10chroot")
+        with open(config_path, "w") as cnf:
+            cnf.write("Dir::Bin::DPkg %s;" % dpkg_wrapper)
+        os.environ["ROOT"] = self.path
+        apt_pkg.read_config_file(apt_pkg.config, config_path)
+        apt_pkg.init_system()
+
+    def remove(self):
+        """Remove the files of the chroot."""
+        apt_pkg.config.clear("Dir")
+        apt_pkg.config.clear("Dir::State::Status")
+        apt_pkg.init()
+        shutil.rmtree(self.path)
+
+    def add_trusted_key(self):
+        """Add glatzor's key to the trusted ones."""
+        gpg_cmd = "gpg --ignore-time-conflict --no-options " \
+                  "--no-default-keyring --quiet " \
+                  "--secret-keyring %s/etc/apt/secring.gpg " \
+                  "--trustdb-name %s/etc/apt/trustdb.gpg " \
+                  "--primary-keyring %s/etc/apt/trusted.gpg " % \
+                  (self.path, self.path, self.path)
+        os.system("%s --import %s/repo/glatzor.gpg" % (gpg_cmd,
+                                                       get_tests_dir()))
+        os.system("echo 'D0BF65B7DBE28DB62BEDBF1B683C53C7CF982D18:6:'| "
+                  "%s --import-ownertrust " % gpg_cmd)
+
+    def install_debfile(self, path, force_depends=False):
+        """Install a package file into the chroot."""
+        cmd_list = ["fakeroot", "dpkg", "--root", self.path,
+                    "--log=%s/var/log/dpkg.log" % self.path]
+        if force_depends:
+            cmd_list.append("--force-depends")
+        cmd_list.extend(["--install", path])
+        cmd = subprocess.Popen(cmd_list,
+                               env={"PATH": "/sbin:/bin:/usr/bin:/usr/sbin"})
+        cmd.communicate()
+
+    def add_test_repository(self, copy_list=True, copy_sig=True):
+        """Add the test repository to the to the chroot."""
+        return self.add_repository(os.path.join(get_tests_dir(), "repo"),
+                                   copy_list, copy_sig)
+
+    def add_cdrom_repository(self):
+        """Emulate a repository on removable device."""
+        # Create the content of a fake cdrom
+        media_path = os.path.join(self.path, "tmp/fake-cdrom")
+        # The cdom gets identified by the info file
+        os.makedirs(os.path.join(media_path, ".disk"))
+        with open(os.path.join(media_path, ".disk/info"), "w") as info:
+            info.write("This is a fake CDROM")
+        # Copy the test repository "on" the cdrom
+        shutil.copytree(os.path.join(get_tests_dir(), "repo"),
+                        os.path.join(media_path, "repo"))
+
+        # Call apt-cdrom add
+        mount_point = self.mount_cdrom()
+        os.system("apt-cdrom add -m -d %s "
+                  "-o 'Debug::Acquire::cdrom'=True "
+                  "-o 'Acquire::cdrom::AutoDetect'=False "
+                  "-o 'Dir'=%s" % (mount_point, self.path))
+        self.unmount_cdrom()
+
+        config_path = os.path.join(self.path, "etc/apt/apt.conf.d/11cdrom")
+        with open(config_path, "w") as cnf:
+            cnf.write('Debug::Acquire::cdrom True;\n'
+                      'Acquire::cdrom::AutoDetect False;\n'
+                      'Acquire::cdrom::NoMount True;\n'
+                      'Acquire::cdrom::mount "%s";' % mount_point)
+
+    def mount_cdrom(self):
+        """Copy the repo information to the CDROM mount point."""
+        mount_point = os.path.join(self.path, "media/cdrom")
+        os.symlink(os.path.join(self.path, "tmp/fake-cdrom"), mount_point)
+        return mount_point
+
+    def unmount_cdrom(self):
+        """Remove all files from the mount point."""
+        os.unlink(os.path.join(self.path, "media/cdrom"))
+
+    def add_repository(self, path, copy_list=True, copy_sig=True):
+        """Add a sources.list entry to the chroot."""
+        # Add a sources list
+        lst_path = os.path.join(self.path, "etc/apt/sources.list")
+        with open(lst_path, "w") as lst_file:
+            lst_file.write("deb file://%s ./ # Test repository" % path)
+        if copy_list:
+            filename = apt_pkg.uri_to_filename("file://%s/." % path)
+            shutil.copy(os.path.join(path, "Packages"),
+                        "%s/var/lib/apt/lists/%s_Packages" % (self.path,
+                                                              filename))
+            if os.path.exists(os.path.join(path, "Release")):
+                shutil.copy(os.path.join(path, "Release"),
+                            "%s/var/lib/apt/lists/%s_Release" % (self.path,
+                                                                 filename))
+            if copy_sig and os.path.exists(os.path.join(path, "Release.gpg")):
+                shutil.copy(os.path.join(path, "Release.gpg"),
+                            "%s/var/lib/apt/lists/%s_Release.gpg" % (self.path,
+                                                                     filename))
+
+def get_tests_dir():
+    """Return the absolute path to the tests directory."""
+    # Try to detect a relative tests dir if we are running from the source
+    # directory
+    try:
+        path = inspect.getsourcefile(sys.modules["core"])
+    except KeyError as error:
+        path = inspect.getsourcefile(inspect.currentframe())
+    dir = os.path.dirname(path)
+    if os.path.exists(os.path.join(dir, "repo/Packages")):
+        return os.path.normpath(dir)
+    else:
+        raise Exception("Could not find tests direcotry")
+
+
+# vim: ts=4 et sts=4
commit 3bc6a7125b3c742dd1c8c6536b3a455c47256012
Author: Sebastian Heinlein <devel at glatzor.de>
Date:   Tue Nov 29 09:05:24 2011 +0100

    apt: Trivial fixes (typo in module name, better chroot support, better
    error reporting in the case of failed package managers)

diff --git a/backends/apt/aptBackend.py b/backends/apt/aptBackend.py
index ab02a1a..26e30f1 100755
--- a/backends/apt/aptBackend.py
+++ b/backends/apt/aptBackend.py
@@ -326,7 +326,7 @@ class PackageKitAcquireProgress(apt.progress.base.AcquireProgress):
             self._backend._emit_package(pkg, info)
 
     def start(self):
-        self._backend.status(enum.STATUS_DOWNLOAD)
+        self._backend.status(enums.STATUS_DOWNLOAD)
         self._backend.allow_cancel(True)
 
     def stop(self):
@@ -390,7 +390,7 @@ class PackageKitInstallProgress(apt.progress.base.InstallProgress):
         self.master_fd = None
         self.child_pid = None
         self.last_pkg = None
-        self.last_item_percentage = None
+        self.last_item_percentage = 0
 
     def status_change(self, pkg_name, percent, status):
         """Callback for APT status updates."""
@@ -428,7 +428,7 @@ class PackageKitInstallProgress(apt.progress.base.InstallProgress):
         # - Afterwards:
         #   - "Running post-installation"
         # Emit a Package signal for the currently processed package
-        elif status.startswith("Preparing"):
+        if status.startswith("Preparing"):
             item_percentage = self.last_item_percentage + 25
             info = enums.INFO_PREPARING
         elif status.startswith("Installing"):
@@ -1855,6 +1855,12 @@ class PackageKitAptBackend(PackageKitBaseBackend):
                        "There are broken dependecies on your system. "
                        "Please use an advanced package manage e.g. "
                        "Synaptic or aptitude to resolve this situation.")
+        if rootdir:
+            apt_pkg.config.clear("DPkg::Post-Invoke")
+            apt_pkg.config.clear("DPkg::Options")
+            apt_pkg.config["DPkg::Options::"] = "--root=%s" % rootdir
+            dpkg_log = "--log=%s/var/log/dpkg.log" % rootdir
+            apt_pkg.config["DPkg::Options::"] = dpkg_log
         self._last_cache_refresh = time.time()
 
     def _recover(self, start=95, end=100):
@@ -1891,11 +1897,10 @@ class PackageKitAptBackend(PackageKitBaseBackend):
     def _commit_changes(self, fetch_start=10, fetch_end=50,
                         install_start=50, install_end=90):
         """Commit changes to the system."""
+        acquire_prog = PackageKitAcquireProgress(self, fetch_start, fetch_end)
+        inst_prog = PackageKitInstallProgress(self, install_start, install_end)
         try:
-            self._cache.commit(PackageKitAcquireProgress(self, fetch_start,
-                                                         fetch_end),
-                               PackageKitInstallProgress(self, install_start,
-                                                         install_end))
+            self._cache.commit(acquire_prog, inst_prog)
         except apt.cache.FetchFailedException as err:
             self._open_cache(start=95, end=100)
             pklog.critical(format_string(err.message))
@@ -1912,6 +1917,11 @@ class PackageKitAptBackend(PackageKitBaseBackend):
                   "This can be caused by maintainer scripts which " \
                   "require input on the terminal:\n%s" % err.message
             self.error(enums.ERROR_INTERNAL_ERROR, format_string(msg))
+        except SystemError as err:
+            self._recover()
+            self.error(enums.ERROR_INTERNAL_ERROR,
+                       format_string("%s\n%s" % (err.message,
+                                                 inst_prog.output)))
         except PackageManagerFailedPKError as err:
             self._recover()
             self.error(enums.ERROR_INTERNAL_ERROR,
commit 68eb607e8e236128527b038ca73233d849c0b262
Author: Matthias Klumpp <matthias at tenstral.net>
Date:   Mon Nov 28 21:13:47 2011 +0100

    Make PkProc part of the daemon
    
    This will solve a very weird issue if a plugin tries
    to create a PkProc instance.
    (All "cannot register existing type `PkProc'" errors,
    which occur on some platforms should be gone then)

diff --git a/src/Makefile.am b/src/Makefile.am
index 868ac47..cbdadd0 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -14,6 +14,9 @@ SUBDIRS = plugins
 
 NULL =
 
+GITIGNOREFILES = *.la \
+		 .directory
+
 PK_GLIB2_LIBS =	$(top_builddir)/lib/packagekit-glib2/libpackagekit-glib2.la	\
 		$(NULL)
 
@@ -129,6 +132,8 @@ libexec_PROGRAMS =					\
 
 packagekitd_SOURCES =					\
 	pk-main.c					\
+	plugins/pk-proc.c				\
+	plugins/pk-proc.h				\
 	$(shared_SOURCES)				\
 	$(NULL)
 
diff --git a/src/plugins/Makefile.am b/src/plugins/Makefile.am
index 79ee111..91cdc06 100644
--- a/src/plugins/Makefile.am
+++ b/src/plugins/Makefile.am
@@ -85,9 +85,7 @@ libpk_plugin_update_package_list_la_LDFLAGS = -module -avoid-version
 libpk_plugin_update_package_list_la_CFLAGS = $(PK_PLUGIN_CFLAGS) $(WARNINGFLAGS_C)
 
 libpk_plugin_no_update_process_la_SOURCES =		\
-	pk-plugin-no-update-process.c			\
-	pk-proc.c					\
-	pk-proc.h
+	pk-plugin-no-update-process.c
 libpk_plugin_no_update_process_la_LIBADD = $(PK_PLUGIN_LIBS)
 libpk_plugin_no_update_process_la_LDFLAGS = -module -avoid-version
 libpk_plugin_no_update_process_la_CFLAGS = $(PK_PLUGIN_CFLAGS) $(WARNINGFLAGS_C)
@@ -98,9 +96,7 @@ libpk_plugin_scan_desktop_files_la_LDFLAGS = -module -avoid-version
 libpk_plugin_scan_desktop_files_la_CFLAGS = $(PK_PLUGIN_CFLAGS) $(WARNINGFLAGS_C)
 
 libpk_plugin_update_check_processes_la_SOURCES =	\
-	pk-plugin-update-check-processes.c		\
-	pk-proc.c					\
-	pk-proc.h
+	pk-plugin-update-check-processes.c
 libpk_plugin_update_check_processes_la_LIBADD = $(PK_PLUGIN_LIBS)
 libpk_plugin_update_check_processes_la_LDFLAGS = -module -avoid-version
 libpk_plugin_update_check_processes_la_CFLAGS = $(PK_PLUGIN_CFLAGS) $(WARNINGFLAGS_C)
commit 559a3eee67fd5360b8d3f122909d1cc939cf9ded
Author: Christian Persch <chpe at gnome.org>
Date:   Mon Nov 28 15:38:23 2011 +0100

    glib: catalog: Skip empty entries
    
    When parsing the catalog file we use g_key_file_get_string() instead
    of g_key_file_get_string_list(), and then split the string into parts.
    For string lists, the last character is a ';' so if the user doesn't
    know this, we add an empty string to the array, leading to errors
    further on. Therefore, skip empty strings.
    
    https://bugs.freedesktop.org/show_bug.cgi?id=43305
    
    Signed-off-by: Richard Hughes <richard at hughsie.com>

diff --git a/lib/packagekit-glib2/pk-catalog.c b/lib/packagekit-glib2/pk-catalog.c
index 36bf138..0a56c1f 100644
--- a/lib/packagekit-glib2/pk-catalog.c
+++ b/lib/packagekit-glib2/pk-catalog.c
@@ -169,7 +169,8 @@ pk_catalog_process_type_part (PkCatalogState *state, PkCatalogMode mode, const g
 	/* split using any of the delimiters and add to correct array*/
 	list = g_strsplit_set (data, ";, ", 0);
 	for (i=0; list[i] != NULL; i++)
-		g_ptr_array_add (array, g_strdup (list[i]));
+		if (list[i][0] != '\0')
+			g_ptr_array_add (array, g_strdup (list[i]));
 out:
 	g_strfreev (list);
 	g_free (key);
commit f77063f8706d1f2bc31c80c5f6b45e9becead005
Author: Sebastian Heinlein <devel at glatzor.de>
Date:   Mon Nov 28 10:48:35 2011 +0100

    apt: Respect the ROOT environement variable

diff --git a/backends/apt/aptBackend.py b/backends/apt/aptBackend.py
index e56d2db..ab02a1a 100755
--- a/backends/apt/aptBackend.py
+++ b/backends/apt/aptBackend.py
@@ -1840,9 +1840,13 @@ class PackageKitAptBackend(PackageKitBaseBackend):
         """(Re)Open the APT cache."""
         pklog.debug("Open APT cache")
         self.status(enums.STATUS_LOADING_CACHE)
+        rootdir = os.getenv("ROOT", "/")
+        if rootdir == "/":
+            rootdir = None
         try:
             self._cache = apt.Cache(PackageKitOpProgress(self, start, end,
-                                                         progress))
+                                                         progress),
+                                    rootdir=rootdir)
         except Exception as error:
             self.error(enums.ERROR_NO_CACHE,
                        "Package cache could not be opened:%s" % error)
@@ -2199,10 +2203,6 @@ def run(args, single=False):
 
 def main():
     parser = optparse.OptionParser(description="APT backend for PackageKit")
-    parser.add_option("-r", "--root",
-                      action="store", type="string", dest="root",
-                      help="Use the given directory as the system root "
-                           "(Only needed by developers)")
     parser.add_option("-p", "--profile",
                       action="store", type="string", dest="profile",
                       help="Store profiling stats in the given file "
@@ -2221,12 +2221,6 @@ def main():
         pklog.setLevel(logging.DEBUG)
         sys.excepthook = debug_exception
 
-    if options.root:
-        config = apt_pkg.config
-        config.set("Dir", options.root)
-        config.set("Dir::State::status",
-                   os.path.join(options.root, "/var/lib/dpkg/status"))
-
     if options.profile:
         import hotshot
         prof = hotshot.Profile(options.profile)
commit 2054d0f1ea739a4f26e8eaf1a053fe92b4713c13
Author: Sebastian Heinlein <devel at glatzor.de>
Date:   Mon Nov 28 09:15:39 2011 +0100

    apt: Fix a wrong  str/unicode replacement by the Py3 preparation

diff --git a/backends/apt/aptBackend.py b/backends/apt/aptBackend.py
index 0c79856..e56d2db 100755
--- a/backends/apt/aptBackend.py
+++ b/backends/apt/aptBackend.py
@@ -922,7 +922,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
                 changelog_raw = pkg.get_changelog()
                 # The internal download error string of python-apt ist not
                 # provided as unicode object
-                if not isinstance(changelog_raw, str):
+                if not isinstance(changelog_raw, unicode):
                     changelog_raw = changelog_raw.decode("UTF-8")
                 else:
                     # Write the changelog to the cache
commit dbabf61cd50d579ea4d78da7c39745db461b9671
Author: Sebastian Heinlein <devel at glatzor.de>
Date:   Mon Nov 28 09:04:26 2011 +0100

    apt: Fix repo details signals

diff --git a/backends/apt/aptBackend.py b/backends/apt/aptBackend.py
index b533224..0c79856 100755
--- a/backends/apt/aptBackend.py
+++ b/backends/apt/aptBackend.py
@@ -1151,26 +1151,26 @@ class PackageKitAptBackend(PackageKitBaseBackend):
             repo_id = "%s_comp_%s" % (repos.distro.id, comp.name)
             description = "%s %s - %s (%s)" % (repos.distro.id,
                                                repos.distro.release,
-                                               comp.get_description(),
+                                               comp.get_description().decode("UTF-8"),
                                                comp.name)
             #FIXME: There is no inconsitent state in PackageKit
             enabled = repos.get_comp_download_state(comp)[0]
             if not enums.FILTER_DEVELOPMENT in filters:
                 self.repo_detail(repo_id,
-                                 description,
+                                 format_string(description),
                                  enabled)
         # Emit distro's virtual update repositories
         for template in repos.distro.source_template.children:
             repo_id = "%s_child_%s" % (repos.distro.id, template.name)
             description = "%s %s - %s (%s)" % (repos.distro.id,
                                                repos.distro.release,
-                                               template.description,
+                                               template.description.decode("UTF-8"),
                                                template.name)
             #FIXME: There is no inconsitent state in PackageKit
             enabled = repos.get_comp_child_state(template)[0]
             if not enums.FILTER_DEVELOPMENT in filters:
                 self.repo_detail(repo_id,
-                                 description,
+                                 format_string(description),
                                  enabled)
         # Emit distro's cdrom sources
         for source in repos.get_cdrom_sources():
@@ -1182,8 +1182,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
             description = re.sub(r"</?b>", "", repos.render_source(source))
             repo_id = "cdrom_%s_%s" % (source.uri, source.dist)
             repo_id.join(["_%s" % c for c in source.comps])
-            self.repo_detail(repo_id, description,
-                             enabled)
+            self.repo_detail(repo_id, format_string(description), enabled)
         # Emit distro's virtual source code repositoriy
         if not enums.FILTER_NOT_DEVELOPMENT in filters:
             repo_id = "%s_source" % repos.distro.id
@@ -1191,8 +1190,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
             #FIXME: no translation :(
             description = "%s %s - Source code" % (repos.distro.id,
                                                    repos.distro.release)
-            self.repo_detail(repo_id, description,
-                             enabled)
+            self.repo_detail(repo_id, format_string(description), enabled)
         # Emit third party repositories
         for source in repos.get_isv_sources():
             if enums.FILTER_NOT_DEVELOPMENT in filters and \
@@ -1203,7 +1201,8 @@ class PackageKitAptBackend(PackageKitBaseBackend):
             description = re.sub(r"</?b>", "", repos.render_source(source))
             repo_id = "isv_%s_%s" % (source.uri, source.dist)
             repo_id.join(["_%s" % c for c in source.comps])
-            self.repo_detail(repo_id, description.decode,
+            self.repo_detail(repo_id,
+                             format_string(description.decode("UTF-8")),
                              enabled)
 
     def repo_enable(self, repo_id, enable):
commit dd2dbcf59bcd90d553b8442a29b7240fe76f4d9e
Author: Sebastian Heinlein <devel at glatzor.de>
Date:   Mon Nov 28 08:56:28 2011 +0100

    apt: Disable apt-listbugs frontend

diff --git a/backends/apt/aptBackend.py b/backends/apt/aptBackend.py
index c8f8c64..b533224 100755
--- a/backends/apt/aptBackend.py
+++ b/backends/apt/aptBackend.py
@@ -98,6 +98,7 @@ os.putenv("PATH",
 # Avoid questions from the maintainer scripts as far as possible
 os.putenv("DEBIAN_FRONTEND", "noninteractive")
 os.putenv("APT_LISTCHANGES_FRONTEND", "none")
+os.putenv("APT_LISTBUGS_FRONTEND", "none")
 # Force terminal messages in dpkg to be untranslated, status-fd or debconf
 # prompts won't be affected
 os.putenv("DPKG_UNTRANSLATED_MESSAGES", "1")
commit 4ac8cd454b3567aa9164247751f21bcd4b2fd2e9
Author: Sebastian Heinlein <devel at glatzor.de>
Date:   Mon Nov 28 08:55:03 2011 +0100

    apt: Adapt progress reporting to the latest PackageKit and python-apt
    API

diff --git a/backends/apt/aptBackend.py b/backends/apt/aptBackend.py
index ec57663..c8f8c64 100755
--- a/backends/apt/aptBackend.py
+++ b/backends/apt/aptBackend.py
@@ -98,6 +98,9 @@ os.putenv("PATH",
 # Avoid questions from the maintainer scripts as far as possible
 os.putenv("DEBIAN_FRONTEND", "noninteractive")
 os.putenv("APT_LISTCHANGES_FRONTEND", "none")
+# Force terminal messages in dpkg to be untranslated, status-fd or debconf
+# prompts won't be affected
+os.putenv("DPKG_UNTRANSLATED_MESSAGES", "1")
 
 # Map Debian sections to the PackageKit group name space
 SECTION_GROUP_MAP = {
@@ -221,9 +224,7 @@ class DpkgInstallProgress(apt.progress.base.InstallProgress):
 
     #FIXME: Use the merged DpkgInstallProgress of python-apt
     def recover(self):
-        """
-        Run "dpkg --configure -a"
-        """
+        """Run 'dpkg --configure -a'."""
         cmd = ["/usr/bin/dpkg", "--status-fd", str(self.writefd),
                "--root", apt_pkg.config["Dir"],
                "--force-confdef", "--force-confold", 
@@ -248,38 +249,6 @@ class DpkgInstallProgress(apt.progress.base.InstallProgress):
         res = self.wait_child()
         return res
 
-    def update_interface(self):
-        """Process status messages from dpkg."""
-        if self.statusfd == None:
-            return
-        try:
-            while not self.read.endswith("\n"):
-                self.read += os.read(self.statusfd.fileno(), 1)
-        except OSError as error:
-            # resource temporarly unavailable is ignored
-            if error.errno not in [errno.EAGAIN, errno.EWOULDBLOCK]:
-                pklog.warn(error)
-        if self.read.endswith("\n"):
-            statusl = string.split(self.read, ":")
-            if len(statusl) < 3:
-                pklog.warn("got garbage from dpkg: '%s'" % self.read)
-                self.read = ""
-            status = statusl[2].strip()
-            pkg = statusl[1].strip()
-            #print status
-            if status == "error":
-                self.error(pkg, format_string(status))
-            elif status == "conffile-prompt":
-                # we get a string like this:
-                # 'current-conffile' 'new-conffile' useredited distedited
-                match = re.search(".+conffile-prompt : '(.+)' '(.+)'",
-                                  self.read)
-                self.conffile(match.group(1), match.group(2))
-            else:
-                pklog.debug("Dpkg status: %s" % status)
-                self.status = status
-            self.read = ""
-
 
 class PackageKitOpProgress(apt.progress.base.OpProgress):
 
@@ -318,20 +287,19 @@ class PackageKitAcquireProgress(apt.progress.base.AcquireProgress):
     TODO: Add a progress for Updating the cache.
     """
 
-    def __init__(self, backend, start=0, end=100, status=enums.STATUS_DOWNLOAD):
+    def __init__(self, backend, start=0, end=100):
         self._backend = backend
         apt.progress.base.AcquireProgress.__init__(self)
         self.start_progress = start
         self.end_progress = end
         self.last_progress = None
         self.last_sub_progress = None
-        self.status = status
         self.package_states = {}
 
-    def pulse_items(self, items):
-        #FIXME: port to pulse(owner)
-        apt.progress.base.AcquireProgress.pulse(self)
-        progress = int(self.start_progress + self.percent/100 * \
+    def pulse(self, owner):
+        #TODO: port to pulse(owner)
+        percent = self.current_bytes * 100.0 / self.total_bytes
+        progress = int(self.start_progress + percent / 100 *
                        (self.end_progress - self.start_progress))
         # A backwards running progress is reported as a not available progress
         if self.last_progress > progress:
@@ -339,39 +307,25 @@ class PackageKitAcquireProgress(apt.progress.base.AcquireProgress):
         else:
             self._backend.percentage(progress)
             self.last_progress = progress
-        for item in items:
-            uri, desc, shortdesc, file_size, partial_size = item
-            try:
-                pkg = self._backend._cache[shortdesc]
-            except KeyError:
-                pass
-            else:
-                self._backend._emit_package(pkg, enums.INFO_DOWNLOADING, True)
-                sub_progress = partial_size * 100 / file_size
-                if sub_progress > self.last_sub_progress:
-                    self._last_sub_progress = sub_progress
-                    self._backend.sub_percentage(sub_progress)
+        for worker in owner.workers:
+            if not worker.current_item or not worker.total_size:
+                continue
+            item_id = "%s;;;" % worker.current_item.shortdesc
+            item_percent = worker.current_size * 100 / worker.total_size
+            self._backend.item_percentage(item_id, item_percent)
         return True
 
-    def updateStatus(self, uri, descr, pkg_name, status):
-        """Callback for a fetcher status update."""
-        # Emit a Package signal for the currently processed package
+    def fetch(self, item):
+        info = enums.INFO_DOWNLOADING
         try:
-            pkg = self._backend._cache[pkg_name]
-        except KeyError:
-            pass
+            pkg = self._backend._cache[item.shortdesc]
+        except:
+            self._backend.package("%s;;;" % item.shortdesc, info, "")
         else:
-            if not pkg_name in self.package_states or \
-               self.package_states[pkg_name] != status:
-                if status == 0:
-                    info = enums.INFO_FINISHED
-                else:
-                    info = enums.INFO_DOWNLOADING
-                self.package_states[pkg_name] = status
-                self._backend._emit_package(pkg, info, True)
+            self._backend._emit_package(pkg, info)
 
     def start(self):
-        self._backend.status(self.status)
+        self._backend.status(enum.STATUS_DOWNLOAD)
         self._backend.allow_cancel(True)
 
     def stop(self):
@@ -393,11 +347,33 @@ class PackageKitAcquireProgress(apt.progress.base.AcquireProgress):
         return False
 
 
+class PackageKitAcquireRepoProgress(PackageKitAcquireProgress):
+
+    """Handle the download of of repository information."""
+
+    def pulse(self, owner):
+        self._backend.percentage(None)
+        #TODO: Emit repositories here
+        #for worker in owner.workers:
+        #    if not worker.current_item or not worker.total_size:
+        #        continue
+        #    item_id = "%s;;;" % worker.current_item.shortdesc
+        #    item_percent = worker.current_size * 100 / worker.total_size
+        #    self._backend.item_percentage(item_id, item_percent)
+        return True
+
+    def fetch(self, item):
+        pass
+
+    def start(self):
+        self._backend.status(enums.STATUS_DOWNLOAD_REPOSITORY)
+        self._backend.allow_cancel(True)
+
+
 class PackageKitInstallProgress(apt.progress.base.InstallProgress):
-    """
-    Handle the installation and removal process. Bits taken from
-    DistUpgradeViewNonInteractive.
-    """
+
+    """Handle the installation and removal process."""
+
     def __init__(self, backend, start=0, end=100):
         apt.progress.base.InstallProgress.__init__(self)
         self._backend = backend
@@ -413,28 +389,124 @@ class PackageKitInstallProgress(apt.progress.base.InstallProgress):
         self.master_fd = None
         self.child_pid = None
         self.last_pkg = None
+        self.last_item_percentage = None
 
-    def statusChange(self, pkg_name, percent, status):
+    def status_change(self, pkg_name, percent, status):
+        """Callback for APT status updates."""
         self.last_activity = time.time()
-        progress = self.pstart + percent/100 * (self.pend - self.pstart)
+        progress = self.pstart + percent / 100 * (self.pend - self.pstart)
         if self.pprev < progress:
             self._backend.percentage(int(progress))
             self.pprev = progress
+        # INSTALL/UPDATE lifecycle (taken from aptcc)
+        # - Starts:
+        #   - "Running dpkg"
+        # - Loops:
+        #   - "Installing pkg" (0%)
+        #   - "Preparing pkg" (25%)
+        #   - "Unpacking pkg" (50%)
+        #   - "Preparing to configure pkg" (75%)
+        # - Some packages have:
+        #   - "Runnung post-installation"
+        #   - "Running dpkg"
+        # - Loops:
+        #   - "Configuring pkg" (0%)
+        #   - Sometimes "Configuring pkg" (+25%)
+        #   - "Installed pkg"
+        # - Afterwards:
+        #   - "Running post-installation"
+        #
+        # REMOVING lifecylce
+        # - Starts:
+        #   - "Running dpkg"
+        # - loops:
+        #   - "Removing pkg" (25%)
+        #   - "Preparing for removal" (50%)
+        #   - "Removing pkg" (75%)
+        #   - "Removed pkg" (100%)
+        # - Afterwards:
+        #   - "Running post-installation"
         # Emit a Package signal for the currently processed package
-        if pkg_name != self.last_pkg and pkg_name in self._backend._cache:
+        elif status.startswith("Preparing"):
+            item_percentage = self.last_item_percentage + 25
+            info = enums.INFO_PREPARING
+        elif status.startswith("Installing"):
+            item_percentage = 0
+            info = enums.INFO_INSTALLING
+        elif status.startswith("Installed"):
+            item_percentage = 100
+            info = enums.INFO_FINISHED
+        elif status.startswith("Configuring"):
+            if self.last_item_percentage >= 100:
+                item_percentage = 0
+            item_percentage = self.last_item_percentage + 25
+            info = enums.INFO_INSTALLING
+        elif status.startswith("Removing"):
+            item_percentage = self.last_item_percentage + 25
+            info = enums.INFO_REMOVING
+        elif status.startswith("Removed"):
+            item_percentage = 100
+            info = enums.INFO_FINISHED
+        elif status.startswith("Completely removing"):
+            item_percentage = self.last_item_percentage + 25
+            info = enums.INFO_REMOVING
+        elif status.startswith("Completely removed"):
+            item_percentage = 100
+            info = enums.INFO_FINISHED
+        elif status.startswith("Unpacking"):
+            item_percentage = 50
+            info = enums.INFO_DECOMPRESSING
+        elif status.startswith("Noting disappearance of"):
+            item_percentage = self.last_item_percentage
+            info = enums.INFO_UNKNOWN
+        elif status.startswith("Running"):
+            item_percentage = self.last_item_percentage
+            info = enums.INFO_CLEANUP
+        else:
+            item_percentage = self.last_item_percentage
+            info = enums.INFO_UNKNOWN
+
+        try:
             pkg = self._backend._cache[pkg_name]
-            if pkg.markedInstall or pkg.markedReinstall:
-                self._backend._emit_package(pkg, enums.INFO_INSTALLING, True)
-            elif pkg.markedDelete:
-                self._backend._emit_package(pkg, enums.INFO_REMOVING, False)
-            elif pkg.markedUpgrade:
-                self._backend._emit_package(pkg, enums.INFO_UPDATING, True)
-            elif pkg.markedDowngrade:
-                self._backend._emit_package(pkg, enums.INFO_DOWNGRADING, True)
-            self.last_pkg = pkg_name
-        pklog.debug("APT status: %s" % status)
-
-    def startUpdate(self):
+        except KeyError:
+            # Emit a fake package
+            id = "%s;;;" % pkg_name
+            self._backend.package(id, info, "")
+            self._backend.item_percentage(id, item_percentage)
+        else:
+            # Always use the candidate - except for removals
+            self._backend._emit_package(pkg, info, not pkg.marked_delete)
+            if pkg.marked_delete:
+                version = pkg.installed
+            else:
+                version = pkg.candidate
+            id = self._backend._get_id_from_version(version)
+            self._backend.item_percentage(id, item_percentage)
+
+        self.last_pkg = pkg_name
+        self.last_item_percentage = item_percentage
+
+    def dpkg_status_changed(self, pkg_name, status):
+        """Callback for dpkg status updates."""
+        if status == "install":
+            info = enums.INFO_INSTALLING
+        elif status == "configure":
+            info = enums.INFO_INSTALLING
+        elif status == "remove":
+            info = enums.INFO_REMOVING
+        elif status == "purge":
+            info = enums.INFO_PURGING
+        elif status == "disappear":
+            info = enums.INFO_CLEANINGUP
+        elif status == "upgrade":
+            info = enums.INFO_UPDATING
+        elif status == "trigproc":
+            info = enums.INFO_CLEANINGUP
+        else:
+            info = enums.INFO_UNKNOWN
+        self._backend.package("%s;;;" % pkg_name, info, "")
+
+    def start_update(self):
         # The apt system lock was set by _lock_cache() before
         self._backend._unlock_cache()
         self._backend.status(enums.STATUS_COMMIT)
@@ -473,7 +545,7 @@ class PackageKitInstallProgress(apt.progress.base.InstallProgress):
     def error(self, pkg, msg):
         raise PackageManagerFailedPKError(pkg, msg, self.output)
 
-    def finishUpdate(self):
+    def finish_update(self):
         pklog.debug("finishUpdate()")
         if self.conffile_prompts:
             self._backend.message(enums.MESSAGE_CONFIG_FILES_CHANGED,
@@ -1319,7 +1391,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
                 ver.fetch_binary(dest, progress)
             except Exception as error:
                 self.error(enums.ERROR_PACKAGE_DOWNLOAD_FAILED,
-                           format_string(error))
+                           format_string(str(error)))
             else:
                 self.files(id, os.path.join(dest,
                                             os.path.basename(ver.filename)))
@@ -1429,7 +1501,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
             msg = "Transaction was cancelled since the installation " \
                   "of a package hung.\n" \
                   "This can be caused by maintainer scripts which " \
-                  "require input on the terminal:\n%s" % error.message
+                  "require input on the terminal:\n%s" % str(error)
             self.error(enums.ERROR_INTERNAL_ERROR, format_string(msg))
         except PackageManagerFailedPKError as error:
             self._recover()
@@ -1437,7 +1509,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
                        format_string("%s\n%s" % (error.message, error.output)))
         except Exception as error:
             self._recover()
-            self.error(enums.ERROR_INTERNAL_ERROR, format_string(error.message))
+            self.error(enums.ERROR_INTERNAL_ERROR, format_string(str(error)))
         self.percentage(100)
 
     def simulate_install_files(self, inst_files):
@@ -1469,8 +1541,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
         self.allow_cancel(False);
         self.percentage(0)
         self._check_init()
-        progress = PackageKitAcquireProgress(self, start=10, end=95,
-                                        status=enums.STATUS_DOWNLOAD_REPOSITORY)
+        progress = PackageKitAcquireRepoProgress(self, start=10, end=95)
         try:
             ret = self._cache.update(progress)
         except Exception as error:
@@ -1478,7 +1549,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
             #        reporting. We only receive a failure string.
             # FIXME: Doesn't detect if all downloads failed - bug in python-apt
             self.message(enums.MESSAGE_REPO_METADATA_DOWNLOAD_FAILED,
-                         format_string(error))
+                         format_string(str(error)))
         self._open_cache(start=95, end=100)
         self.percentage(100)
 
@@ -1823,7 +1894,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
                                                          install_end))
         except apt.cache.FetchFailedException as err:
             self._open_cache(start=95, end=100)
-            pklog.critical(format_string(err))
+            pklog.critical(format_string(err.message))
             self.error(enums.ERROR_PACKAGE_DOWNLOAD_FAILED,
                        format_string(err.message))
         except apt.cache.FetchCancelledException:
commit f174abd882ff7dd18b1d677b2e0560135ffbd36a
Author: Sebastian Heinlein <devel at glatzor.de>
Date:   Mon Nov 28 08:01:21 2011 +0100

    Fix item-percentage call in the spawned backend.

diff --git a/lib/python/packagekit/backend.py b/lib/python/packagekit/backend.py
index 859a98a..4771469 100644
--- a/lib/python/packagekit/backend.py
+++ b/lib/python/packagekit/backend.py
@@ -171,6 +171,15 @@ class PackageKitBaseBackend:
         print("speed\t%i" % (bps))
         sys.stdout.flush()
 
+    def item_percentage(self, package_id, percent=None):
+        '''
+        send 'itemprogress' signal
+        @param package_id: The package ID name, e.g. openoffice-clipart;2.6.22;ppc64;fedora
+        @param percent: percentage of the current item (int preferred)
+        '''
+        print("item-percentage\t%s\t%i" % (package_id, percent))
+        sys.stdout.flush()
+
     def sub_percentage(self, percent=None):
         '''
         send 'subpercentage' signal : subprogress percentage
diff --git a/src/pk-backend-spawn.c b/src/pk-backend-spawn.c
index cfe4567..23cb184 100644
--- a/src/pk-backend-spawn.c
+++ b/src/pk-backend-spawn.c
@@ -313,7 +313,7 @@ pk_backend_spawn_parse_stdout (PkBackendSpawn *backend_spawn, const gchar *line,
 			pk_backend_set_sub_percentage (priv->backend, percentage);
 		}
 	} else if (g_strcmp0 (command, "item-percentage") == 0) {
-		if (size != 2) {
+		if (size != 3) {
 			g_set_error (error, 1, 0, "invalid command'%s', size %i", command, size);
 			ret = FALSE;
 			goto out;
commit c03b9cbad93ec7db1ba51eb580c56ac1657cff20
Author: Sebastian Heinlein <devel at glatzor.de>
Date:   Sun Nov 27 21:08:12 2011 +0100

    apt: improve progress range handling

diff --git a/backends/apt/aptBackend.py b/backends/apt/aptBackend.py
index 9764f97..ec57663 100755
--- a/backends/apt/aptBackend.py
+++ b/backends/apt/aptBackend.py
@@ -285,14 +285,14 @@ class PackageKitOpProgress(apt.progress.base.OpProgress):
 
     """Handle the cache opening progress."""
 
-    def __init__(self, backend, prange=(0,100), progress=True):
+    def __init__(self, backend, start=0, end=100, progress=True):
         self._backend = backend
         apt.progress.base.OpProgress.__init__(self)
         self.steps = []
-        for v in [0.12, 0.25, 0.50, 0.75, 1.00]:
-            s = prange[0] + (prange[1] - prange[0]) * v
-            self.steps.append(s)
-        self.pstart = float(prange[0])
+        for val in [0.12, 0.25, 0.50, 0.75, 1.00]:
+            step = start + (end - start) * val
+            self.steps.append(step)
+        self.pstart = float(start)
         self.pend = self.steps.pop(0)
         self.pprev = None
         self.show_progress = progress
@@ -318,11 +318,11 @@ class PackageKitAcquireProgress(apt.progress.base.AcquireProgress):
     TODO: Add a progress for Updating the cache.
     """
 
-    def __init__(self, backend, prange=(0,100), status=enums.STATUS_DOWNLOAD):
+    def __init__(self, backend, start=0, end=100, status=enums.STATUS_DOWNLOAD):
         self._backend = backend
         apt.progress.base.AcquireProgress.__init__(self)
-        self.start_progress = prange[0]
-        self.end_progress = prange[1]
+        self.start_progress = start
+        self.end_progress = end
         self.last_progress = None
         self.last_sub_progress = None
         self.status = status
@@ -398,11 +398,11 @@ class PackageKitInstallProgress(apt.progress.base.InstallProgress):
     Handle the installation and removal process. Bits taken from
     DistUpgradeViewNonInteractive.
     """
-    def __init__(self, backend, prange=(0,100)):
+    def __init__(self, backend, start=0, end=100):
         apt.progress.base.InstallProgress.__init__(self)
         self._backend = backend
-        self.pstart = prange[0]
-        self.pend = prange[1]
+        self.pstart = start
+        self.pend = end
         self.pprev = None
         self.last_activity = None
         self.conffile_prompts = set()
@@ -802,7 +802,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
         self.status(enums.STATUS_DOWNLOAD_CHANGELOG)
         self.percentage(0)
         self.allow_cancel(True)
-        self._check_init(None)
+        self._check_init(progress=False)
         total = len(pkg_ids)
         for count, pkg_id in enumerate(pkg_ids):
             self.percentage(count * 100 / total)
@@ -931,7 +931,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
         self.status(enums.STATUS_UPDATE)
         self.allow_cancel(False)
         self.percentage(0)
-        self._check_init(prange=(0,5))
+        self._check_init()
         self._cache.upgrade()
         #FIXME: Emit message about skipped updates
 #        for pkg in self._cache:
@@ -947,7 +947,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
         self.status(enums.STATUS_REMOVE)
         self.allow_cancel(False)
         self.percentage(0)
-        self._check_init(prange=(0,10))
+        self._check_init()
         if auto_remove:
             auto_removables = [pkg.name for pkg in self._cache \
                                if pkg.is_auto_removable]
@@ -962,8 +962,8 @@ class PackageKitAptBackend(PackageKitBaseBackend):
         if auto_remove:
             self._check_obsoleted_dependencies()
         #FIXME: Should support only_trusted
-        self._commit_changes(fetch_range=(10,10), install_range=(10,90))
-        self._open_cache(prange=(90,99))
+        self._commit_changes(install_start=10, install_end=90)
+        self._open_cache(start=90, end=99)
         for pkg_name in pkgs:
             if pkg_name in self._cache and self._cache[pkg_name].is_installed:
                 self.error(enums.ERROR_PACKAGE_FAILED_TO_INSTALL,
@@ -1222,11 +1222,11 @@ class PackageKitAptBackend(PackageKitBaseBackend):
         self.status(enums.STATUS_UPDATE)
         self.allow_cancel(False)
         self.percentage(0)
-        self._check_init(prange=(0,10))
+        self._check_init()
         pkgs = self._mark_for_upgrade(ids)
         self._check_trusted(only_trusted)
         self._commit_changes()
-        self._open_cache(prange=(90,100))
+        self._open_cache(start=90, end=100)
         self.percentage(100)
         pklog.debug("Checking success of operation")
         for pkg_name in pkgs:
@@ -1234,7 +1234,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
                 not self._cache[pkg_name].is_installed or
                 self._cache[pkg_name].is_upgradable):
                 self.error(enums.ERROR_PACKAGE_FAILED_TO_INSTALL,
-                           "%s was not updated" % p)
+                           "%s was not updated" % pkg_name)
         pklog.debug("Sending success signal")
 
     def simulate_update_packages(self, ids):
@@ -1310,10 +1310,10 @@ class PackageKitAptBackend(PackageKitBaseBackend):
             self.error(enums.ERROR_INTERNAL_ERROR,
                        "The directory '%s' is not writable" % dest)
         # Setup the fetcher
-        self._check_init(prange=(0,10))
+        self._check_init()
         # Start the download
         for id, ver, start, end in get_download_details(ids):
-            progress = PackageKitAcquireProgress(self, prange=(start, end))
+            progress = PackageKitAcquireProgress(self, start, end)
             self._emit_pkg_version(ver, enums.INFO_DOWNLOADING)
             try:
                 ver.fetch_binary(dest, progress)
@@ -1333,11 +1333,11 @@ class PackageKitAptBackend(PackageKitBaseBackend):
         self.status(enums.STATUS_INSTALL)
         self.allow_cancel(False)
         self.percentage(0)
-        self._check_init(prange=(0,10))
+        self._check_init()
         pkgs = self._mark_for_installation(ids)
         self._check_trusted(only_trusted)
         self._commit_changes()
-        self._open_cache(prange=(90,100))
+        self._open_cache(start=90, end=100)
         self.percentage(100)
         pklog.debug("Checking success of operation")
         for p in pkgs:
@@ -1391,7 +1391,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
         self.status(enums.STATUS_INSTALL)
         self.allow_cancel(False)
         self.percentage(0)
-        self._check_init(prange=(0,10))
+        self._check_init()
         packages = []
         # Collect all dependencies which need to be installed
         self.status(enums.STATUS_DEP_RESOLVE)
@@ -1415,9 +1415,10 @@ class PackageKitAptBackend(PackageKitBaseBackend):
                              "available in the repositories." % deb.pkgname)
         if self._cache.get_changes():
             self._check_trusted(only_trusted)
-            self._commit_changes((10,25), (25,50))
+            self._commit_changes(fetch_start=10, fetch_end=25,
+                                 install_start=25, install_end=50)
         # Install the Debian package files
-        progress = PackageKitDpkgInstallProgress(self)
+        progress = PackageKitDpkgInstallProgress(self, start=50, end=90)
         try:
             progress.start_update()
             progress.install(inst_files)
@@ -1467,8 +1468,8 @@ class PackageKitAptBackend(PackageKitBaseBackend):
         self.last_action_time = time.time()
         self.allow_cancel(False);
         self.percentage(0)
-        self._check_init((0,10))
-        progress = PackageKitAcquireProgress(self, prange=(10,95),
+        self._check_init()
+        progress = PackageKitAcquireProgress(self, start=10, end=95,
                                         status=enums.STATUS_DOWNLOAD_REPOSITORY)
         try:
             ret = self._cache.update(progress)
@@ -1478,7 +1479,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
             # FIXME: Doesn't detect if all downloads failed - bug in python-apt
             self.message(enums.MESSAGE_REPO_METADATA_DOWNLOAD_FAILED,
                          format_string(error))
-        self._open_cache(prange=(95,100))
+        self._open_cache(start=95, end=100)
         self.percentage(100)
 
     def get_packages(self, filters):
@@ -1764,16 +1765,16 @@ class PackageKitAptBackend(PackageKitBaseBackend):
             return False
         return True
 
-    def _open_cache(self, prange=(0,100), progress=True):
+    def _open_cache(self, start=0, end=100, progress=True):
         """(Re)Open the APT cache."""
         pklog.debug("Open APT cache")
         self.status(enums.STATUS_LOADING_CACHE)
         try:
-            self._cache = apt.Cache(PackageKitOpProgress(self, prange,
+            self._cache = apt.Cache(PackageKitOpProgress(self, start, end,
                                                          progress))
-        except:
+        except Exception as error:
             self.error(enums.ERROR_NO_CACHE,
-                       "Package cache could not be opened")
+                       "Package cache could not be opened:%s" % error)
         if self._cache.broken_count > 0:
             self.error(enums.ERROR_DEP_RESOLUTION_FAILED,
                        "There are broken dependecies on your system. "
@@ -1781,7 +1782,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
                        "Synaptic or aptitude to resolve this situation.")
         self._last_cache_refresh = time.time()
 
-    def _recover(self, prange=(95,100)):
+    def _recover(self, start=95, end=100):
         """Try to recover from a package manager failure."""
         self.status(enums.STATUS_CLEANUP)
         self.percentage(None)
@@ -1792,7 +1793,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
             d.finish_update()
         except:
             pass
-        self._open_cache(prange)
+        self._open_cache(start=95, end=100)
 
     def _check_trusted(self, only_trusted):
         """Check if only trusted packages are allowed and fail if
@@ -1812,21 +1813,24 @@ class PackageKitAptBackend(PackageKitBaseBackend):
                 self.error(enums.ERROR_MISSING_GPG_SIGNATURE,
                            " ".join(untrusted))
 
-    def _commit_changes(self, fetch_range=(5,50), install_range=(50,90)):
+    def _commit_changes(self, fetch_start=10, fetch_end=50,
+                        install_start=50, install_end=90):
         """Commit changes to the system."""
         try:
-            self._cache.commit(PackageKitAcquireProgress(self, fetch_range),
-                               PackageKitInstallProgress(self, install_range))
+            self._cache.commit(PackageKitAcquireProgress(self, fetch_start,
+                                                         fetch_end),
+                               PackageKitInstallProgress(self, install_start,
+                                                         install_end))
         except apt.cache.FetchFailedException as err:
-            self._open_cache(prange=(95,100))
+            self._open_cache(start=95, end=100)
             pklog.critical(format_string(err))
             self.error(enums.ERROR_PACKAGE_DOWNLOAD_FAILED,
                        format_string(err.message))
         except apt.cache.FetchCancelledException:
-            self._open_cache(prange=(95,100))
+            self._open_cache(start=95, end=100)
         except InstallTimeOutPKError as err:
             self._recover()
-            self._open_cache(prange=(95,100))
+            self._open_cache(start=95, end=100)
             #FIXME: should provide more information
             msg = "Transaction was cancelled since the installation " \
                   "of a package hung.\n" \
@@ -1851,7 +1855,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
                               version.architecture, origin)
         return id
  
-    def _check_init(self, prange=(0,10), progress=True):
+    def _check_init(self, start=0, end=10, progress=True):
         """Check if the backend was initialized well and try to recover from
         a broken setup.
         """
@@ -1872,7 +1876,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
            (os.stat(pkg_cache)[stat.ST_MTIME] > self._last_cache_refresh) or \
            (os.stat(src_cache)[stat.ST_MTIME] > self._last_cache_refresh):
             pklog.debug("Reloading the cache is required")
-            self._open_cache(prange, progress)
+            self._open_cache(start, end, progress)
         else:
             pass
         # Read the pin file of Synaptic if available
commit a0c8980aedca394a54d0b88ac52c33a865f972c6
Author: Matthias Klumpp <matthias at tenstral.net>
Date:   Sun Nov 27 20:53:38 2011 +0100

    trivial: Update Listaller link

diff --git a/docs/html/pk-screenshots.html b/docs/html/pk-screenshots.html
index 4e140e7..3386698 100644
--- a/docs/html/pk-screenshots.html
+++ b/docs/html/pk-screenshots.html
@@ -223,7 +223,7 @@
 </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>
+  <p class="caption">The old main add/remove <a href="http://listaller.tenstral.net/">Listaller</a> GUI</p>
 </td>
 </tr>
 </table>
commit 4957d3b611db6fb04890e124c6b029afabbad64f
Author: Sebastian Heinlein <devel at glatzor.de>
Date:   Sun Nov 27 19:44:58 2011 +0100

    apt: More python3 related clean ups

diff --git a/backends/apt/aptBackend.py b/backends/apt/aptBackend.py
index aaba5c9..9764f97 100755
--- a/backends/apt/aptBackend.py
+++ b/backends/apt/aptBackend.py
@@ -235,7 +235,7 @@ class DpkgInstallProgress(apt.progress.base.InstallProgress):
         cmd = ["/usr/bin/dpkg", "--force-confdef", "--force-confold",
                "--status-fd", str(self.writefd), 
                "--root", apt_pkg.config["Dir"], "-i"]
-        cmd.extend(map(lambda f: str(f), filenames))
+        cmd.extend([str(f) for f in filenames])
         self.run(cmd)
 
     def run(self, cmd):
@@ -421,7 +421,7 @@ class PackageKitInstallProgress(apt.progress.base.InstallProgress):
             self._backend.percentage(int(progress))
             self.pprev = progress
         # Emit a Package signal for the currently processed package
-        if pkg_name != self.last_pkg and self._backend._cache.has_key(pkg_name):
+        if pkg_name != self.last_pkg and pkg_name in self._backend._cache:
             pkg = self._backend._cache[pkg_name]
             if pkg.markedInstall or pkg.markedReinstall:
                 self._backend._emit_package(pkg, enums.INFO_INSTALLING, True)
@@ -681,7 +681,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
         self.percentage(None)
 
         if META_RELEASE_SUPPORT == False:
-            if self._cache.has_key("update-manager-core") and \
+            if "update-manager-core" in self._cache and \
                self._cache["update-manager-core"].isInstalled == False:
                 self.error(enums.ERROR_INTERNAL_ERROR,
                            "Please install the package update-manager-core to "
@@ -795,8 +795,8 @@ class PackageKitAptBackend(PackageKitBaseBackend):
             """Return a list of urls pointing to CVEs reports referred to in
             the changelog.
             """
-            return map(lambda c: HREF_CVE % c,
-                       re.findall(MATCH_CVE, changelog, re.MULTILINE))
+            return [HREF_CVE % c for c in re.findall(MATCH_CVE, changelog,
+                                                     re.MULTILINE)]
 
         pklog.info("Get update details of %s" % pkg_ids)
         self.status(enums.STATUS_DOWNLOAD_CHANGELOG)
@@ -849,7 +849,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
                 changelog_raw = pkg.get_changelog()
                 # The internal download error string of python-apt ist not
                 # provided as unicode object
-                if not isinstance(changelog_raw, unicode):
+                if not isinstance(changelog_raw, str):
                     changelog_raw = changelog_raw.decode("UTF-8")
                 else:
                     # Write the changelog to the cache
@@ -964,10 +964,10 @@ class PackageKitAptBackend(PackageKitBaseBackend):
         #FIXME: Should support only_trusted
         self._commit_changes(fetch_range=(10,10), install_range=(10,90))
         self._open_cache(prange=(90,99))
-        for p in pkgs:
-            if self._cache.has_key(p) and self._cache[p].isInstalled:
+        for pkg_name in pkgs:
+            if pkg_name in self._cache and self._cache[pkg_name].is_installed:
                 self.error(enums.ERROR_PACKAGE_FAILED_TO_INSTALL,
-                           "%s is still installed" % p)
+                           "%s is still installed" % pkg_name)
         self.percentage(100)
 
     def _check_obsoleted_dependencies(self):
@@ -1063,7 +1063,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
         self.allow_cancel(False)
         self.percentage(0)
         if REPOS_SUPPORT == False:
-            if self._cache.has_key("python-software-properties") and \
+            if "python-software-properties" in self._cache and \
                self._cache["python-software-properties"].isInstalled == False:
                 self.error(enums.ERROR_INTERNAL_ERROR,
                            "Please install the package "
@@ -1108,7 +1108,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
             # Remove markups from the description
             description = re.sub(r"</?b>", "", repos.render_source(source))
             repo_id = "cdrom_%s_%s" % (source.uri, source.dist)
-            repo_id.join(map(lambda c: "_%s" % c, source.comps))
+            repo_id.join(["_%s" % c for c in source.comps])
             self.repo_detail(repo_id, description,
                              enabled)
         # Emit distro's virtual source code repositoriy
@@ -1129,7 +1129,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
             # Remove markups from the description
             description = re.sub(r"</?b>", "", repos.render_source(source))
             repo_id = "isv_%s_%s" % (source.uri, source.dist)
-            repo_id.join(map(lambda c: "_%s" % c, source.comps))
+            repo_id.join(["_%s" % c for c in source.comps])
             self.repo_detail(repo_id, description.decode,
                              enabled)
 
@@ -1145,7 +1145,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
         self.allow_cancel(False)
         self.percentage(0)
         if REPOS_SUPPORT == False:
-            if self._cache.has_key("python-software-properties") and \
+            if "python-software-properties" in self._cache and \
                self._cache["python-software-properties"].isInstalled == False:
                 self.error(enums.ERROR_INTERNAL_ERROR,
                            "Please install the package "
@@ -1189,7 +1189,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
         elif repo_id.startswith("cdrom_"):
             for source in repos.get_isv_sources():
                 source_id = "cdrom_%s_%s" % (source.uri, source.dist)
-                source_id.join(map(lambda c: "_%s" % c, source.comps))
+                source_id.join(["_%s" % c for c in source.comps])
                 if repo_id == source_id:
                     if source.disabled == enable:
                         source.disabled = not enable
@@ -1202,7 +1202,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
         elif repo_id.startswith("isv_"):
             for source in repos.get_isv_sources():
                 source_id = "isv_%s_%s" % (source.uri, source.dist)
-                source_id.join(map(lambda c: "_%s" % c, source.comps))
+                source_id.join(["_%s" % c for c in source.comps])
                 if repo_id == source_id:
                     if source.disabled == enable:
                         source.disabled = not enable
@@ -1229,9 +1229,10 @@ class PackageKitAptBackend(PackageKitBaseBackend):
         self._open_cache(prange=(90,100))
         self.percentage(100)
         pklog.debug("Checking success of operation")
-        for p in pkgs:
-            if not self._cache.has_key(p) or not self._cache[p].isInstalled \
-               or self._cache[p].isUpgradable:
+        for pkg_name in pkgs:
+            if (pkg_name not in self._cache or
+                not self._cache[pkg_name].is_installed or
+                self._cache[pkg_name].is_upgradable):
                 self.error(enums.ERROR_PACKAGE_FAILED_TO_INSTALL,
                            "%s was not updated" % p)
         pklog.debug("Sending success signal")
@@ -1340,7 +1341,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
         self.percentage(100)
         pklog.debug("Checking success of operation")
         for p in pkgs:
-            if not self._cache.has_key(p) or not self._cache[p].is_installed:
+            if p not in self._cache or not self._cache[p].is_installed:
                 self.error(enums.ERROR_PACKAGE_FAILED_TO_INSTALL,
                            "%s was not installed" % p)
 
@@ -1638,7 +1639,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
             appropriate error message
             """
             if not os.access(path, os.R_OK):
-                if (self._cache.has_key("app-install-data") and
+                if ("app-install-data" in self._cache and
                     not self._cache["app-install-data"].is_installed):
                     self.error(enums.ERROR_INTERNAL_ERROR,
                                "Please install the package "
@@ -1728,15 +1729,14 @@ class PackageKitAptBackend(PackageKitBaseBackend):
             db = get_mapping_db("/var/lib/PackageKit/mime-map.gdbm")
             if db == None:
                 return
-            if db.has_key(search):
+            if search in db:
                 pklog.debug("Mime type is registered: %s" % db[search])
                 # The mime type handler db stores the packages as a string
                 # separated by spaces. Each package has its section
                 # prefixed and separated by a slash
                 # FIXME: Should make use of the section and emit a 
                 #        RepositoryRequired signal if the package does not exist
-                handlers = map(lambda s: s.split("/")[1],
-                               db[search].split(" "))
+                handlers = [s.split("/")[1] for s in db[search].split(" ")]
                 self._emit_visible_packages_by_name(filters, handlers)
         else:
             self.error(enums.ERROR_NOT_SUPPORTED,
@@ -2088,7 +2088,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
         Return the packagekit group corresponding to the package's section
         """
         section = pkg.section.split("/")[-1]
-        if SECTION_GROUP_MAP.has_key(section):
+        if section in SECTION_GROUP_MAP:
             return SECTION_GROUP_MAP[section]
         else:
             pklog.debug("Unkown package section %s of %s" % (pkg.section,
@@ -2111,7 +2111,7 @@ def debug_exception(type, value, tb):
     else:
         import traceback, pdb
         traceback.print_exception(type, value, tb)
-        print
+        print()
         pdb.pm()
 
 def run(args, single=False):
commit 318b18e674e47a0419572876aab490cf4c7ce74b
Author: Sebastian Heinlein <devel at glatzor.de>
Date:   Sun Nov 27 17:33:14 2011 +0100

    apt: Too many API and style fixes to count

diff --git a/backends/apt/aptBackend.py b/backends/apt/aptBackend.py
index cd5f668..aaba5c9 100755
--- a/backends/apt/aptBackend.py
+++ b/backends/apt/aptBackend.py
@@ -1,7 +1,6 @@
 #!/usr/bin/env python
 # -*- coding: utf-8 -*-
-"""
-Provides an apt backend to PackageKit
+"""Provides an apt backend to PackageKit
 
 Copyright (C) 2007 Ali Sabil <ali.sabil at gmail.com>
 Copyright (C) 2007 Tom Parker <palfrey at tevp.net>
@@ -23,7 +22,6 @@ import fcntl
 import gdbm
 import glob
 import gzip
-import httplib
 import locale
 import logging
 import logging.handlers
@@ -43,10 +41,7 @@ import apt
 import apt.debfile
 import apt_pkg
 
-from packagekit.backend import *
-from packagekit.progress import *
-from packagekit.package import *
-from packagekit.enums import *
+from packagekit.backend import (PackageKitBaseBackend, format_string)
 from packagekit import enums
 
 logging.basicConfig(format="%(levelname)s:%(message)s")
@@ -106,43 +101,44 @@ os.putenv("APT_LISTCHANGES_FRONTEND", "none")
 
 # Map Debian sections to the PackageKit group name space
 SECTION_GROUP_MAP = {
-    "admin" : GROUP_ADMIN_TOOLS,
-    "base" : GROUP_SYSTEM,
-    "comm" : GROUP_COMMUNICATION,
-    "devel" : GROUP_PROGRAMMING,
-    "doc" : GROUP_DOCUMENTATION,
-    "editors" : GROUP_PUBLISHING,
-    "electronics" : GROUP_ELECTRONICS,
-    "embedded" : GROUP_SYSTEM,
-    "games" : GROUP_GAMES,
-    "gnome" : GROUP_DESKTOP_GNOME,
-    "graphics" : GROUP_GRAPHICS,
-    "hamradio" : GROUP_COMMUNICATION,
-    "interpreters" : GROUP_PROGRAMMING,
-    "kde" : GROUP_DESKTOP_KDE,
-    "libdevel" : GROUP_PROGRAMMING,
-    "libs" : GROUP_SYSTEM,
-    "mail" : GROUP_INTERNET,
-    "math" : GROUP_SCIENCE,
-    "misc" : GROUP_OTHER,
-    "net" : GROUP_NETWORK,
-    "news" : GROUP_INTERNET,
-    "oldlibs" : GROUP_LEGACY,
-    "otherosfs" : GROUP_SYSTEM,
-    "perl" : GROUP_PROGRAMMING,
-    "python" : GROUP_PROGRAMMING,
-    "science" : GROUP_SCIENCE,
-    "shells" : GROUP_SYSTEM,
-    "sound" : GROUP_MULTIMEDIA,
-    "tex" : GROUP_PUBLISHING,
-    "text" : GROUP_PUBLISHING,
-    "utils" : GROUP_ACCESSORIES,
-    "web" : GROUP_INTERNET,
-    "x11" : GROUP_DESKTOP_OTHER,
-    "unknown" : GROUP_UNKNOWN,
-    "alien" : GROUP_UNKNOWN,
-    "translations" : GROUP_LOCALIZATION,
-    "metapackages" : GROUP_COLLECTIONS }
+    "admin" :enums.GROUP_ADMIN_TOOLS,
+    "base" :enums.GROUP_SYSTEM,
+    "comm" :enums.GROUP_COMMUNICATION,
+    "devel" :enums.GROUP_PROGRAMMING,
+    "doc" :enums.GROUP_DOCUMENTATION,
+    "editors" :enums.GROUP_PUBLISHING,
+    "electronics" :enums.GROUP_ELECTRONICS,
+    "embedded" :enums.GROUP_SYSTEM,
+    "games" :enums.GROUP_GAMES,
+    "gnome" :enums.GROUP_DESKTOP_GNOME,
+    "graphics" :enums.GROUP_GRAPHICS,
+    "hamradio" :enums.GROUP_COMMUNICATION,
+    "interpreters" :enums.GROUP_PROGRAMMING,
+    "kde" :enums.GROUP_DESKTOP_KDE,
+    "libdevel" :enums.GROUP_PROGRAMMING,
+    "libs" :enums.GROUP_SYSTEM,
+    "mail" :enums.GROUP_INTERNET,
+    "math" :enums.GROUP_SCIENCE,
+    "misc" :enums.GROUP_OTHER,
+    "net" :enums.GROUP_NETWORK,
+    "news" :enums.GROUP_INTERNET,
+    "oldlibs" :enums.GROUP_LEGACY,
+    "otherosfs" :enums.GROUP_SYSTEM,
+    "perl" :enums.GROUP_PROGRAMMING,
+    "python" :enums.GROUP_PROGRAMMING,
+    "science" :enums.GROUP_SCIENCE,
+    "shells" :enums.GROUP_SYSTEM,
+    "sound" :enums.GROUP_MULTIMEDIA,
+    "tex" :enums.GROUP_PUBLISHING,
+    "text" :enums.GROUP_PUBLISHING,
+    "utils" :enums.GROUP_ACCESSORIES,
+    "web" :enums.GROUP_INTERNET,
+    "x11" :enums.GROUP_DESKTOP_OTHER,
+    "unknown" :enums.GROUP_UNKNOWN,
+    "alien" :enums.GROUP_UNKNOWN,
+    "translations" :enums.GROUP_LOCALIZATION,
+    "metapackages" :enums.GROUP_COLLECTIONS,
+    }
 
 # Regular expressions to detect bug numbers in changelogs according to the
 # Debian Policy Chapter 4.4. For details see the footnote 16:
@@ -179,12 +175,12 @@ def lock_cache(func):
     """
     def _locked_cache(*args, **kwargs):
         backend = args[0]
-        backend.status(STATUS_WAITING_FOR_LOCK)
+        backend.status(enums.STATUS_WAITING_FOR_LOCK)
         while True:
             try:
                 # see if the lock for the download dir can be acquired
                 # (work around bug in python-apt/apps that call _fetchArchives)
-                lockfile = apt_pkg.Config.FindDir("Dir::Cache::Archives") + \
+                lockfile = apt_pkg.config.FindDir("Dir::Cache::Archives") + \
                            "lock"
                 lock = apt_pkg.GetLock(lockfile)
                 if lock < 0:
@@ -217,56 +213,52 @@ class InstallTimeOutPKError(PKError):
     pass
 
 
-class DpkgInstallProgress(apt.progress.InstallProgress):
-    """
-    Class to initiate and monitor installation of local package files with dpkg
+class DpkgInstallProgress(apt.progress.base.InstallProgress):
+
+    """Class to initiate and monitor installation of local package
+    files with dpkg.
     """
+
     #FIXME: Use the merged DpkgInstallProgress of python-apt
     def recover(self):
         """
         Run "dpkg --configure -a"
         """
         cmd = ["/usr/bin/dpkg", "--status-fd", str(self.writefd),
-               "--root", apt_pkg.Config["Dir"],
+               "--root", apt_pkg.config["Dir"],
                "--force-confdef", "--force-confold", 
                "--configure", "-a"]
         self.run(cmd)
 
     def install(self, filenames):
-        """
-        Install the given package using a dpkg command line call
-        """
+        """Install the given package using a dpkg command line call."""
         cmd = ["/usr/bin/dpkg", "--force-confdef", "--force-confold",
                "--status-fd", str(self.writefd), 
-               "--root", apt_pkg.Config["Dir"], "-i"]
+               "--root", apt_pkg.config["Dir"], "-i"]
         cmd.extend(map(lambda f: str(f), filenames))
         self.run(cmd)
 
     def run(self, cmd):
-        """
-        Run and monitor a dpkg command line call
-        """
+        """Run and monitor a dpkg command line call."""
         pklog.debug("Executing: %s" % cmd)
         (self.master_fd, slave) = pty.openpty()
         fcntl.fcntl(self.master_fd, fcntl.F_SETFL, os.O_NONBLOCK)
         p = subprocess.Popen(cmd, stdout=slave, stdin=slave)
         self.child_pid = p.pid
-        res = self.waitChild()
+        res = self.wait_child()
         return res
 
-    def updateInterface(self):
-        """
-        Process status messages from dpkg
-        """
+    def update_interface(self):
+        """Process status messages from dpkg."""
         if self.statusfd == None:
             return
         try:
             while not self.read.endswith("\n"):
                 self.read += os.read(self.statusfd.fileno(), 1)
-        except OSError, (error_no, error_str):
+        except OSError as error:
             # resource temporarly unavailable is ignored
-            if error_no not in [errno.EAGAIN, errno.EWOULDBLOCK]:
-                pklog.warn(error_str)
+            if error.errno not in [errno.EAGAIN, errno.EWOULDBLOCK]:
+                pklog.warn(error)
         if self.read.endswith("\n"):
             statusl = string.split(self.read, ":")
             if len(statusl) < 3:
@@ -289,13 +281,13 @@ class DpkgInstallProgress(apt.progress.InstallProgress):
             self.read = ""
 
 
-class PackageKitOpProgress(apt.progress.OpProgress):
-    """
-    Handle the cache opening process
-    """
+class PackageKitOpProgress(apt.progress.base.OpProgress):
+
+    """Handle the cache opening progress."""
+
     def __init__(self, backend, prange=(0,100), progress=True):
         self._backend = backend
-        apt.progress.OpProgress.__init__(self)
+        apt.progress.base.OpProgress.__init__(self)
         self.steps = []
         for v in [0.12, 0.25, 0.50, 0.75, 1.00]:
             s = prange[0] + (prange[1] - prange[0]) * v
@@ -320,13 +312,15 @@ class PackageKitOpProgress(apt.progress.OpProgress):
             pklog.warning("An additional step to open the cache is required")
 
 
-class PackageKitFetchProgress(apt.progress.FetchProgress):
-    """
-    Handle the package download process
+class PackageKitAcquireProgress(apt.progress.base.AcquireProgress):
+
+    """Handle the package download progress.
+    TODO: Add a progress for Updating the cache.
     """
-    def __init__(self, backend, prange=(0,100), status=STATUS_DOWNLOAD):
+
+    def __init__(self, backend, prange=(0,100), status=enums.STATUS_DOWNLOAD):
         self._backend = backend
-        apt.progress.FetchProgress.__init__(self)
+        apt.progress.base.AcquireProgress.__init__(self)
         self.start_progress = prange[0]
         self.end_progress = prange[1]
         self.last_progress = None
@@ -335,7 +329,8 @@ class PackageKitFetchProgress(apt.progress.FetchProgress):
         self.package_states = {}
 
     def pulse_items(self, items):
-        apt.progress.FetchProgress.pulse(self)
+        #FIXME: port to pulse(owner)
+        apt.progress.base.AcquireProgress.pulse(self)
         progress = int(self.start_progress + self.percent/100 * \
                        (self.end_progress - self.start_progress))
         # A backwards running progress is reported as a not available progress
@@ -351,7 +346,7 @@ class PackageKitFetchProgress(apt.progress.FetchProgress):
             except KeyError:
                 pass
             else:
-                self._backend._emit_package(pkg, INFO_DOWNLOADING, True)
+                self._backend._emit_package(pkg, enums.INFO_DOWNLOADING, True)
                 sub_progress = partial_size * 100 / file_size
                 if sub_progress > self.last_sub_progress:
                     self._last_sub_progress = sub_progress
@@ -369,9 +364,9 @@ class PackageKitFetchProgress(apt.progress.FetchProgress):
             if not pkg_name in self.package_states or \
                self.package_states[pkg_name] != status:
                 if status == 0:
-                    info = INFO_FINISHED
+                    info = enums.INFO_FINISHED
                 else:
-                    info = INFO_DOWNLOADING
+                    info = enums.INFO_DOWNLOADING
                 self.package_states[pkg_name] = status
                 self._backend._emit_package(pkg, info, True)
 
@@ -383,27 +378,28 @@ class PackageKitFetchProgress(apt.progress.FetchProgress):
         self._backend.percentage(self.end_progress)
         self._backend.allow_cancel(False)
 
-    def mediaChange(self, medium, drive):
+    def media_change(self, medium, drive):
         #FIXME: Perhaps use hal to show a nicer drive name
-        self._backend.media_change_required(MEDIA_TYPE_DISC, medium, drive)
+        self._backend.media_change_required(enums.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
         #        later, but this one will be skipped by the daemon
-        self._backend.error(ERROR_MEDIA_CHANGE_REQUIRED,
+        self._backend.error(enums.ERROR_MEDIA_CHANGE_REQUIRED,
                             "Insert the CDROM or DVD labeled '%s' "
                             "into drive '%s'" % (medium, drive),
                             exit=False)
         return False
 
 
-class PackageKitInstallProgress(apt.progress.InstallProgress):
+class PackageKitInstallProgress(apt.progress.base.InstallProgress):
     """
     Handle the installation and removal process. Bits taken from
     DistUpgradeViewNonInteractive.
     """
     def __init__(self, backend, prange=(0,100)):
-        apt.progress.InstallProgress.__init__(self)
+        apt.progress.base.InstallProgress.__init__(self)
         self._backend = backend
         self.pstart = prange[0]
         self.pend = prange[1]
@@ -428,20 +424,20 @@ class PackageKitInstallProgress(apt.progress.InstallProgress):
         if pkg_name != self.last_pkg and self._backend._cache.has_key(pkg_name):
             pkg = self._backend._cache[pkg_name]
             if pkg.markedInstall or pkg.markedReinstall:
-                self._backend._emit_package(pkg, INFO_INSTALLING, True)
+                self._backend._emit_package(pkg, enums.INFO_INSTALLING, True)
             elif pkg.markedDelete:
-                self._backend._emit_package(pkg, INFO_REMOVING, False)
+                self._backend._emit_package(pkg, enums.INFO_REMOVING, False)
             elif pkg.markedUpgrade:
-                self._backend._emit_package(pkg, INFO_UPDATING, True)
+                self._backend._emit_package(pkg, enums.INFO_UPDATING, True)
             elif pkg.markedDowngrade:
-                self._backend._emit_package(pkg, INFO_DOWNGRADING, True)
+                self._backend._emit_package(pkg, enums.INFO_DOWNGRADING, True)
             self.last_pkg = pkg_name
         pklog.debug("APT status: %s" % status)
 
     def startUpdate(self):
         # The apt system lock was set by _lock_cache() before
         self._backend._unlock_cache()
-        self._backend.status(STATUS_COMMIT)
+        self._backend.status(enums.STATUS_COMMIT)
         self.last_activity = time.time()
         self.start_time = time.time()
 
@@ -452,8 +448,8 @@ class PackageKitInstallProgress(apt.progress.InstallProgress):
             fcntl.fcntl(self.master_fd, fcntl.F_SETFL, os.O_NONBLOCK)
         return pid
 
-    def updateInterface(self):
-        apt.progress.InstallProgress.updateInterface(self)
+    def update_interface(self):
+        apt.progress.base.InstallProgress.update_interface(self)
         # Collect the output from the package manager
         try:
             out = os.read(self.master_fd, 512)
@@ -480,14 +476,14 @@ class PackageKitInstallProgress(apt.progress.InstallProgress):
     def finishUpdate(self):
         pklog.debug("finishUpdate()")
         if self.conffile_prompts:
-            self._backend.message(MESSAGE_CONFIG_FILES_CHANGED, 
+            self._backend.message(enums.MESSAGE_CONFIG_FILES_CHANGED,
                                   "The following conffile prompts were found "
                                   "and need investigation: %s" % \
                                   "\n".join(self.conffile_prompts))
         # Check for required restarts
         if os.path.exists("/var/run/reboot-required") and \
            os.path.getmtime("/var/run/reboot-required") > self.start_time:
-            self._backend.require_restart(RESTART_SYSTEM, "")
+            self._backend.require_restart(enums.RESTART_SYSTEM, "")
 
 
 class PackageKitDpkgInstallProgress(DpkgInstallProgress,
@@ -498,8 +494,8 @@ class PackageKitDpkgInstallProgress(DpkgInstallProgress,
     def run(self, filenames):
         return DpkgInstallProgress.run(self, filenames)
 
-    def updateInterface(self):
-        DpkgInstallProgress.updateInterface(self)
+    def update_interface(self):
+        DpkgInstallProgress.update_interface(self)
         try:
             out = os.read(self.master_fd, 512)
             self.output += out
@@ -532,9 +528,9 @@ class PackageKitAptBackend(PackageKitBaseBackend):
         signal.signal(signal.SIGQUIT, self._sigquit)
         self._cache = None
         self._last_cache_refresh = None
-        apt_pkg.InitConfig()
-        apt_pkg.Config.Set("DPkg::Options::", '--force-confdef')
-        apt_pkg.Config.Set("DPkg::Options::", '--force-confold')
+        apt_pkg.init_config()
+        apt_pkg.config.set("DPkg::Options::", '--force-confdef')
+        apt_pkg.config.set("DPkg::Options::", '--force-confold')
         PackageKitBaseBackend.__init__(self, args)
         self._open_cache(progress=False)
 
@@ -596,7 +592,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
         for pkg in self._cache:
             if pkg.name in result_names:
                 continue
-            for installed_file in self._get_installed_files(pkg):
+            for installed_file in pkg.installed_files:
                 if files_pattern.match(installed_file):
                     self._emit_visible_package(filters, pkg)
                     break
@@ -649,7 +645,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
             db = xapian.Database(XAPIAN_DB)
             parser = xapian.QueryParser()
             parser.set_default_op(xapian.Query.OP_AND)
-            query = parser.parse_query(u" ".join(values), search_flags)
+            query = parser.parse_query(" ".join(values), search_flags)
             enquire = xapian.Enquire(db)
             enquire.set_query(query)
             matches = enquire.get_mset(0, 1000)
@@ -687,11 +683,11 @@ class PackageKitAptBackend(PackageKitBaseBackend):
         if META_RELEASE_SUPPORT == False:
             if self._cache.has_key("update-manager-core") and \
                self._cache["update-manager-core"].isInstalled == False:
-                self.error(ERROR_INTERNAL_ERROR,
+                self.error(enums.ERROR_INTERNAL_ERROR,
                            "Please install the package update-manager-core to "
                            "get notified of the latest distribution releases.")
             else:
-                self.error(ERROR_INTERNAL_ERROR,
+                self.error(enums.ERROR_INTERNAL_ERROR,
                            "Please make sure that update-manager-core is"
                            "correctly installed.")
             return
@@ -779,9 +775,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
         self._cache.clear()
 
     def get_update_detail(self, pkg_ids):
-        """
-        Implement the {backend}-get-update-details functionality
-        """
+        """Get details about updates."""
         def get_bug_urls(changelog):
             """Return a list of urls pointing to closed bugs in the
             changelog.
@@ -824,7 +818,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
             obsoletes = ""
             vendor_url = ""
             restart = "none"
-            update_text = u""
+            update_text = ""
             state = ""
             issued = ""
             updated = ""
@@ -864,28 +858,28 @@ class PackageKitAptBackend(PackageKitBaseBackend):
                     # Remove obsolete cached changelogs
                     pattern = os.path.join(changelog_dir, "%s_*.gz" % pkg.name)
                     for old_changelog in glob.glob(pattern):
-                        os.rm(os.path.join(changelog_dir, old_changelog))
+                        os.remove(os.path.join(changelog_dir, old_changelog))
                     with gzip.open(filename, mode="wb") as changelog_file:
                         changelog_file.write(changelog_raw.encode("UTF-8"))
             # Convert the changelog to markdown syntax
-            changelog = u""
+            changelog = ""
             for line in changelog_raw.split("\n"):
                 if line == "":
                     changelog += " \n"
                 else:
-                    changelog += u"    %s  \n" % line
+                    changelog += "    %s  \n" % line
                 if line.startswith(pkg.candidate.source_name):
                     match = re.match(r"(?P<source>.+) \((?P<version>.*)\) "
                                       "(?P<dist>.+); urgency=(?P<urgency>.+)",
                                      line)
-                    update_text += u"%s\n%s\n\n" % (match.group("version"),
+                    update_text += "%s\n%s\n\n" % (match.group("version"),
                                                     "=" * \
                                                     len(match.group("version")))
                 elif line.startswith("  "):
-                    update_text += u"  %s  \n" % line
+                    update_text += "  %s  \n" % line
                 elif line.startswith(" --"):
                     #FIXME: Add %z for the time zone - requires Python 2.6
-                    update_text += u"  \n"
+                    update_text += "  \n"
                     match = re.match("^ -- (?P<maintainer>.+) (?P<mail><.+>)  "
                                      "(?P<date>.+) (?P<offset>[-\+][0-9]+)$",
                                      line)
@@ -938,7 +932,6 @@ class PackageKitAptBackend(PackageKitBaseBackend):
         self.allow_cancel(False)
         self.percentage(0)
         self._check_init(prange=(0,5))
-        # Start with protecting all safe upgrades
         self._cache.upgrade()
         #FIXME: Emit message about skipped updates
 #        for pkg in self._cache:
@@ -973,7 +966,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
         self._open_cache(prange=(90,99))
         for p in pkgs:
             if self._cache.has_key(p) and self._cache[p].isInstalled:
-                self.error(ERROR_PACKAGE_FAILED_TO_INSTALL,
+                self.error(enums.ERROR_PACKAGE_FAILED_TO_INSTALL,
                            "%s is still installed" % p)
         self.percentage(100)
 
@@ -985,7 +978,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
         with self._cache.actiongroup():
             for pkg in self._cache:
                 if pkg.marked_delete:
-                    installed_deps = self._installed_dependencies(pkg_names,
+                    installed_deps = self._installed_dependencies(pkg.name,
                                                                  installed_deps)
             for dep_name in installed_deps:
                 if dep_name in self._cache:
@@ -993,7 +986,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
                     if pkg.is_installed and pkg.is_auto_removeable:
                         pkg.mark_delete(False)
 
-    def _installed_depencencies(self, pkg_name, all_deps=None):
+    def _installed_dependencies(self, pkg_name, all_deps=None):
         """Recursivly return all installed dependencies of a given package."""
         #FIXME: Should be part of python-apt
         #       apt.packagek.Version.get_dependencies(recursive=True)
@@ -1051,7 +1044,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
                 resolver.remove(pkg)
             try:
                 resolver.resolve()
-            except SystemError, error:
+            except SystemError as error:
                 broken = [pkg.name for pkg in self._cache if pkg.is_inst_broken]
                 self.error(enums.ERROR_DEP_RESOLUTION_FAILED,
                            "The following packages would break and so block"
@@ -1224,9 +1217,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
 
     @lock_cache
     def update_packages(self, only_trusted, ids):
-        """
-        Implement the {backend}-update functionality
-        """
+        """Update packages."""
         pklog.info("Updating package with id %s" % ids)
         self.status(enums.STATUS_UPDATE)
         self.allow_cancel(False)
@@ -1248,7 +1239,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
     def simulate_update_packages(self, ids):
         """Emit the changes required for the upgrade of the given packages."""
         pklog.info("Simulating update of package with id %s" % ids)
-        self.status(STATUS_DEP_RESOLVE)
+        self.status(enums.STATUS_DEP_RESOLVE)
         self.allow_cancel(True)
         self.percentage(None)
         self._check_init(progress=False)
@@ -1280,7 +1271,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
                 resolver.protect(pkg)
             try:
                 resolver.resolve()
-            except SystemError, error:
+            except SystemError as error:
                 broken = [pkg.name for pkg in self._cache if pkg.is_inst_broken]
                 self.error(enums.ERROR_DEP_RESOLUTION_FAILED,
                            "The following packages block the installation: "
@@ -1288,9 +1279,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
         return pkgs
 
     def download_packages(self, dest, ids):
-        """
-        Implement the {backend}-download-packages functionality
-        """
+        """Download packages to the given destination."""
         def get_download_details(ids):
             """Calculate the start and end point of a package download
             progress.
@@ -1302,7 +1291,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
             for id in ids:
                 pkg_ver = self._get_pkg_version_by_id(id)
                 if not pkg_ver.downloadable:
-                    self.error(ERROR_PACKAGE_DOWNLOAD_FAILED,
+                    self.error(enums.ERROR_PACKAGE_DOWNLOAD_FAILED,
                                "package %s isn't downloadable" % id)
                 total += pkg_ver.size
                 versions.append((id, pkg_ver))
@@ -1312,57 +1301,47 @@ class PackageKitAptBackend(PackageKitBaseBackend):
                 yield id, ver, start, end
                 downloaded += ver.size
         pklog.info("Downloading packages: %s" % ids)
-        self.status(STATUS_DOWNLOAD)
+        self.status(enums.STATUS_DOWNLOAD)
         self.allow_cancel(True)
         self.percentage(0)
         # Check the destination directory
         if not os.path.isdir(dest) or not os.access(dest, os.W_OK):
-            self.error(ERROR_INTERNAL_ERROR,
+            self.error(enums.ERROR_INTERNAL_ERROR,
                        "The directory '%s' is not writable" % dest)
         # Setup the fetcher
         self._check_init(prange=(0,10))
         # Start the download
         for id, ver, start, end in get_download_details(ids):
-            progress = PackageKitFetchProgress(self, prange=(start, end))
-            self._emit_pkg_version(ver, INFO_DOWNLOADING)
+            progress = PackageKitAcquireProgress(self, prange=(start, end))
+            self._emit_pkg_version(ver, enums.INFO_DOWNLOADING)
             try:
                 ver.fetch_binary(dest, progress)
-            except Exception, error:
-                self.error(ERROR_PACKAGE_DOWNLOAD_FAILED,
-                           format_string(error.message))
+            except Exception as error:
+                self.error(enums.ERROR_PACKAGE_DOWNLOAD_FAILED,
+                           format_string(error))
             else:
                 self.files(id, os.path.join(dest,
                                             os.path.basename(ver.filename)))
-                self._emit_pkg_version(ver, INFO_FINISHED)
+                self._emit_pkg_version(ver, enums.INFO_FINISHED)
         self.percentage(100)
 
     @lock_cache
     def install_packages(self, only_trusted, ids):
-        """
-        Implement the {backend}-install functionality
-        """
+        """Install the given packages."""
         pklog.info("Installing package with id %s" % ids)
-        self.status(STATUS_INSTALL)
+        self.status(enums.STATUS_INSTALL)
         self.allow_cancel(False)
         self.percentage(0)
         self._check_init(prange=(0,10))
         pkgs = self._mark_for_installation(ids)
-        # Error out if the installation would require the removal of already
-        # installed packages
-        if self._cache.delete_count:
-            deleted = [pkg.name for pkg in self._cache.getChanges() if \
-                       pkg.markedDelete]
-            self.error(ERROR_DEP_RESOLUTION_FAILED,
-                       "The following packages block the update: "
-                       "%s" % " ".join(deleted))
         self._check_trusted(only_trusted)
         self._commit_changes()
         self._open_cache(prange=(90,100))
         self.percentage(100)
         pklog.debug("Checking success of operation")
         for p in pkgs:
-            if not self._cache.has_key(p) or not self._cache[p].isInstalled:
-                self.error(ERROR_PACKAGE_FAILED_TO_INSTALL,
+            if not self._cache.has_key(p) or not self._cache[p].is_installed:
+                self.error(enums.ERROR_PACKAGE_FAILED_TO_INSTALL,
                            "%s was not installed" % p)
 
     def simulate_install_packages(self, ids):
@@ -1370,7 +1349,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
         packages.
         """
         pklog.info("Simulating installing package with id %s" % ids)
-        self.status(STATUS_DEP_RESOLVE)
+        self.status(enums.STATUS_DEP_RESOLVE)
         self.allow_cancel(True)
         self.percentage(None)
         self._check_init(progress=False)
@@ -1382,85 +1361,81 @@ class PackageKitAptBackend(PackageKitBaseBackend):
         installation.
         """
         pkgs = []
-        ac = self._cache.actiongroup()
-        resolver = apt.cache.ProblemResolver(self._cache)
-        for id in ids:
-            version = self._get_version_by_id(id)
-            pkg = version.package
-            pkg.candidate = version
-            if pkg.installed == version:
-                self.error(ERROR_PACKAGE_ALREADY_INSTALLED,
-                           "Package %s is already installed" % pkg.name)
-            pkgs.append(pkg.name[:])
-            pkg.markInstall(False, True, True)
-            resolver.clear(pkg)
-            resolver.protect(pkg)
-        try:
-            resolver.resolve()
-        except SystemError, error:
-            broken = [pkg.name for pkg in self._cache if pkg.is_inst_broken]
-            self.error(ERROR_DEP_RESOLUTION_FAILED,
-                       "The following packages block the installation: "
-                       "%s" % " ".join(broken))
-        ac.release()
+        with self._cache.actiongroup():
+            resolver = apt.cache.ProblemResolver(self._cache)
+            for id in ids:
+                version = self._get_version_by_id(id)
+                pkg = version.package
+                pkg.candidate = version
+                if pkg.installed == version:
+                    self.error(enums.ERROR_PACKAGE_ALREADY_INSTALLED,
+                               "Package %s is already installed" % pkg.name)
+                pkgs.append(pkg.name[:])
+                pkg.markInstall(False, True, True)
+                resolver.clear(pkg)
+                resolver.protect(pkg)
+            try:
+                resolver.resolve()
+            except SystemError as error:
+                broken = [pkg.name for pkg in self._cache if pkg.is_inst_broken]
+                self.error(enums.ERROR_DEP_RESOLUTION_FAILED,
+                           "The following packages block the installation: "
+                           "%s" % " ".join(broken))
         return pkgs
 
     @lock_cache
     def install_files(self, only_trusted, inst_files):
-        """
-        Implement install-files for the apt backend
-        Install local Debian package files
-        """
+        """Install local Debian package files."""
         pklog.info("Installing package files: %s" % inst_files)
-        self.status(STATUS_INSTALL)
+        self.status(enums.STATUS_INSTALL)
         self.allow_cancel(False)
         self.percentage(0)
         self._check_init(prange=(0,10))
         packages = []
         # Collect all dependencies which need to be installed
-        self.status(STATUS_DEP_RESOLVE)
+        self.status(enums.STATUS_DEP_RESOLVE)
         for path in inst_files:
             deb = apt.debfile.DebPackage(path, self._cache)
             packages.append(deb)
             if not deb.check():
-                self.error(ERROR_LOCAL_INSTALL_FAILED,
-                           format_string(deb._failureString))
+                self.error(enums.ERROR_LOCAL_INSTALL_FAILED,
+                           format_string(deb._failure_string))
             (install, remove, unauthenticated) = deb.required_changes
             pklog.debug("Changes: Install %s, Remove %s, Unauthenticated "
                         "%s" % (install, remove, unauthenticated))
             if len(remove) > 0:
-                self.error(ERROR_DEP_RESOLUTION_FAILED,
+                self.error(enums.ERROR_DEP_RESOLUTION_FAILED,
                            "Remove the following packages "
                            "before: %s" % remove)
-            if deb.compare_to_version_in_cache() == \
-               apt.debfile.VERSION_OUTDATED:
-                self.message(MESSAGE_NEWER_PACKAGE_EXISTS,
+            if (deb.compare_to_version_in_cache() ==
+                apt.debfile.DebPackage.VERSION_OUTDATED):
+                self.message(enums.MESSAGE_NEWER_PACKAGE_EXISTS,
                              "There is a later version of %s "
                              "available in the repositories." % deb.pkgname)
-        if self._cache.getChanges():
+        if self._cache.get_changes():
             self._check_trusted(only_trusted)
             self._commit_changes((10,25), (25,50))
         # Install the Debian package files
-        d = PackageKitDpkgInstallProgress(self)
+        progress = PackageKitDpkgInstallProgress(self)
         try:
-            d.startUpdate()
-            d.install(inst_files)
-            d.finishUpdate()
-        except InstallTimeOutPKError, e:
+            progress.start_update()
+            progress.install(inst_files)
+            progress.finish_update()
+        except InstallTimeOutPKError as error:
             self._recover()
             #FIXME: should provide more information
             msg = "Transaction was cancelled since the installation " \
                   "of a package hung.\n" \
                   "This can be caused by maintainer scripts which " \
-                  "require input on the terminal:\n%s" % e.message
-            self.error(ERROR_INTERNAL_ERROR, format_string(msg))
-        except PackageManagerFailedPKError, e:
+                  "require input on the terminal:\n%s" % error.message
+            self.error(enums.ERROR_INTERNAL_ERROR, format_string(msg))
+        except PackageManagerFailedPKError as error:
             self._recover()
-            self.error(ERROR_INTERNAL_ERROR,
-                       format_string("%s\n%s" % (e.message, e.output)))
-        except Exception, e:
+            self.error(enums.ERROR_INTERNAL_ERROR,
+                       format_string("%s\n%s" % (error.message, error.output)))
+        except Exception as error:
             self._recover()
-            self.error(ERROR_INTERNAL_ERROR, format_string(e.message))
+            self.error(enums.ERROR_INTERNAL_ERROR, format_string(error.message))
         self.percentage(100)
 
     def simulate_install_files(self, inst_files):
@@ -1469,7 +1444,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
         """
         pklog.info("Simulating installation of the package files: "
                    "%s" % inst_files)
-        self.status(STATUS_DEP_RESOLVE)
+        self.status(enums.STATUS_DEP_RESOLVE)
         self.allow_cancel(True)
         self.percentage(None)
         self._check_init(progress=False)
@@ -1478,46 +1453,44 @@ class PackageKitAptBackend(PackageKitBaseBackend):
             deb = apt.debfile.DebPackage(path, self._cache)
             pkgs.append(deb.pkgname)
             if not deb.check():
-                self.error(ERROR_LOCAL_INSTALL_FAILED,
-                           format_string(deb._failureString))
+                self.error(enums.ERROR_LOCAL_INSTALL_FAILED,
+                           format_string(deb._failure_string))
         self._emit_changes(pkgs)
 
     @lock_cache
     def refresh_cache(self, force):
-        """
-        Implement the {backend}-refresh_cache functionality
-        """
+        """Update the package cache."""
         # TODO: use force ?
         pklog.info("Refresh cache")
-        self.status(STATUS_REFRESH_CACHE)
+        self.status(enums.STATUS_REFRESH_CACHE)
         self.last_action_time = time.time()
         self.allow_cancel(False);
         self.percentage(0)
         self._check_init((0,10))
-        progress = PackageKitFetchProgress(self, prange=(10,95),
-                                           status=STATUS_DOWNLOAD_REPOSITORY)
+        progress = PackageKitAcquireProgress(self, prange=(10,95),
+                                        status=enums.STATUS_DOWNLOAD_REPOSITORY)
         try:
             ret = self._cache.update(progress)
-        except Exception, error:
+        except Exception as error:
             # FIXME: Unluckily python-apt doesn't provide a real good error
             #        reporting. We only receive a failure string.
             # FIXME: Doesn't detect if all downloads failed - bug in python-apt
-            self.message(MESSAGE_REPO_METADATA_DOWNLOAD_FAILED,
-                         format_string(error.message))
+            self.message(enums.MESSAGE_REPO_METADATA_DOWNLOAD_FAILED,
+                         format_string(error))
         self._open_cache(prange=(95,100))
         self.percentage(100)
 
     def get_packages(self, filters):
-        """
-        Implement the apt2-get-packages functionality
-        """
+        """Get packages."""
         pklog.info("Get all packages")
-        self.status(STATUS_QUERY)
+        self.status(enums.STATUS_QUERY)
         self.percentage(None)
         self._check_init(progress=False)
         self.allow_cancel(True)
 
-        for pkg in self._cache:
+        total = len(self._cache)
+        for count, pkg in enumerate(self._cache):
+            self.percentage(count / 100 * total)
             if self._is_package_visible(pkg, filters):
                 self._emit_package(pkg)
 
@@ -1526,18 +1499,16 @@ class PackageKitAptBackend(PackageKitBaseBackend):
         Implement the apt2-resolve functionality
         """
         pklog.info("Resolve")
-        self.status(STATUS_QUERY)
+        self.status(enums.STATUS_QUERY)
         self.percentage(None)
         self._check_init(progress=False)
         self.allow_cancel(False)
 
-        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):
+        for name in names:
+            try:
                 self._emit_visible_package(filters, self._cache[name])
-            else:
-                self.error(ERROR_PACKAGE_NOT_FOUND,
+            except KeyError:
+                self.error(enums.ERROR_PACKAGE_NOT_FOUND,
                            "Package name %s could not be resolved" % name)
 
     def get_depends(self, filters, ids, recursive):
@@ -1546,29 +1517,29 @@ class PackageKitAptBackend(PackageKitBaseBackend):
         Doesn't support recursive dependency resolution.
         """
         def emit_blocked_dependency(base_dependency, pkg=None,
-                                    filters=""):
+                                    filters=[]):
             """Send a blocked package signal for the given
             apt.package.BaseDependency.
             """
-            if FILTER_INSTALLED in filters:
+            if enums.FILTER_INSTALLED in filters:
                 return
             if pkg:
                 summary = pkg.summary
                 try:
-                    filters.remove(FILTER_NOT_INSTALLED)
+                    filters.remove(enums.FILTER_NOT_INSTALLED)
                 except ValueError:
                     pass
                 if not self._is_package_visible(pkg, filters):
                     return
             else:
-                summary = u""
+                summary = ""
             if base_dependency.relation:
                 version = "%s%s" % (base_dependency.relation,
                                     base_dependency.version)
             else:
                 version = base_dependency.version
             self.package("%s;%s;;" % (base_dependency.name, version),
-                         INFO_BLOCKED, summary)
+                         enums.INFO_BLOCKED, summary)
 
         def check_dependency(pkg, base_dep):
             """Check if the given apt.package.Package can satisfy the
@@ -1601,23 +1572,25 @@ class PackageKitAptBackend(PackageKitBaseBackend):
 
         # Setup the transaction
         pklog.info("Get depends (%s,%s,%s)" % (filter, ids, recursive))
-        self.status(STATUS_QUERY)
+        self.status(enums.STATUS_QUERY)
         self.percentage(None)
         self._check_init(progress=False)
         self.allow_cancel(True)
 
         dependency_types = ["PreDepends", "Depends"]
-        if apt_pkg.Config["APT::Install-Recommends"]:
+        if apt_pkg.config["APT::Install-Recommends"]:
             dependency_types.append("Recommends")
-        for id in ids:
+        total = len(ids)
+        for count, id in enumerate(ids):
+            self.percentage(count / 100 * total)
             version = self._get_version_by_id(id)
             for dependency in version.get_dependencies(*dependency_types):
                 # Walk through all or_dependencies
                 for base_dep in dependency.or_dependencies:
-                    if self._cache.isVirtualPackage(base_dep.name):
+                    if self._cache.is_virtual_package(base_dep.name):
                         # Check each proivider of a virtual package
                         for provider in \
-                                self._cache.getProvidingPackages(base_dep.name):
+                              self._cache.get_providing_packages(base_dep.name):
                             check_dependency(provider, base_dep)
                     elif base_dep.name in self._cache:
                         check_dependency(self._cache[base_dep.name], base_dep)
@@ -1631,17 +1604,19 @@ class PackageKitAptBackend(PackageKitBaseBackend):
         Recursive searching is not supported.
         """
         pklog.info("Get requires (%s,%s,%s)" % (filter, ids, recursive))
-        self.status(STATUS_DEP_RESOLVE)
+        self.status(enums.STATUS_DEP_RESOLVE)
         self.percentage(None)
         self._check_init(progress=False)
         self.allow_cancel(True)
-        for id in ids:
+        total = len(ids)
+        for count, id in enumerate(ids):
+            self.percentage(count / 100 * total)
             version = self._get_version_by_id(id)
             provided = [pro[0] for pro in version._cand.ProvidesList]
             for pkg in self._cache:
                 if not self._is_package_visible(pkg, filters):
                     continue
-                if pkg.isInstalled:
+                if pkg.is_installed:
                     pkg_ver = pkg.installed
                 elif pkg.candidate:
                     pkg_ver = pkg.candidate
@@ -1663,15 +1638,15 @@ class PackageKitAptBackend(PackageKitBaseBackend):
             appropriate error message
             """
             if not os.access(path, os.R_OK):
-                if self._cache.has_key("app-install-data") and \
-                   self._cache["app-install-data"].isInstalled == False:
-                    self.error(ERROR_INTERNAL_ERROR,
+                if (self._cache.has_key("app-install-data") and
+                    not self._cache["app-install-data"].is_installed):
+                    self.error(enums.ERROR_INTERNAL_ERROR,
                                "Please install the package "
                                "app-install data for a list of "
                                "applications that can handle files of "
                                "the given type")
                 else:
-                    self.error(ERROR_INTERNAL_ERROR,
+                    self.error(enums.ERROR_INTERNAL_ERROR,
                                "The list of applications that can handle "
                                "files of the given type cannot be opened.\n"
                                "Try to reinstall the package "
@@ -1680,7 +1655,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
             try:
                 db = gdbm.open(path)
             except:
-                self.error(ERROR_INTERNAL_ERROR,
+                self.error(enums.ERROR_INTERNAL_ERROR,
                            "The list of applications that can handle "
                            "files of the given type cannot be opened.\n"
                            "Try to reinstall the package "
@@ -1697,7 +1672,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
                              search)
             caps = None
             if not match:
-                self.error(ERROR_INTERNAL_ERROR,
+                self.error(enums.ERROR_INTERNAL_ERROR,
                            "The search term is invalid: %s" % search)
             if match.group("opt"):
                 caps_str = "%s, %s" % (match.group("data"), match.group("opt"))
@@ -1705,11 +1680,11 @@ class PackageKitAptBackend(PackageKitBaseBackend):
                 caps = gst.Caps(str(caps_str))
             record = GSTREAMER_RECORD_MAP[match.group("kind")]
             return match.group("version"), record, match.group("data"), caps
-        self.status(STATUS_QUERY)
+        self.status(enums.STATUS_QUERY)
         self.percentage(None)
         self._check_init(progress=False)
         self.allow_cancel(False)
-        if provides_type == PROVIDES_CODEC:
+        if provides_type == enums.PROVIDES_CODEC:
             # Search for privided gstreamer plugins using the package
             # metadata
             import gst
@@ -1746,7 +1721,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
                     if gst_data in elements:
                         self._emit_visible_package(filters, pkg)
 
-        elif provides_type == PROVIDES_MIMETYPE:
+        elif provides_type == enums.PROVIDES_MIMETYPE:
             # Emit packages that contain an application that can handle
             # the given mime type
             handlers = set()
@@ -1764,97 +1739,92 @@ class PackageKitAptBackend(PackageKitBaseBackend):
                                db[search].split(" "))
                 self._emit_visible_packages_by_name(filters, handlers)
         else:
-            self.error(ERROR_NOT_SUPPORTED,
+            self.error(enums.ERROR_NOT_SUPPORTED,
                        "This function is not implemented in this backend")
 
     def get_files(self, package_ids):
-        """
-        Emit the Files signal which includes the files included in a package
+        """Emit the Files signal which includes the files included in a package
         Apt only supports this for installed packages
         """
-        self.status(STATUS_INFO)
-        for id in package_ids:
+        self.status(enums.STATUS_INFO)
+        total = len(package_ids)
+        for count, id in enumerate(package_ids):
+            self.percentage(count / 100 * total)
             pkg = self._get_package_by_id(id)
-            files = string.join(self._get_installed_files(pkg), ";")
+            files = ";".join(pkg.installed_files)
             self.files(id, files)
 
     # Helpers
 
     def _unlock_cache(self):
-        """
-        Unlock the system package cache
-        """
+        """Unlock the system package cache."""
         try:
-            apt_pkg.PkgSystemUnLock()
+            apt_pkg.pkgsystem_unlock()
         except SystemError:
             return False
         return True
 
     def _open_cache(self, prange=(0,100), progress=True):
-        """
-        (Re)Open the APT cache
-        """
+        """(Re)Open the APT cache."""
         pklog.debug("Open APT cache")
-        self.status(STATUS_LOADING_CACHE)
+        self.status(enums.STATUS_LOADING_CACHE)
         try:
             self._cache = apt.Cache(PackageKitOpProgress(self, prange,
                                                          progress))
         except:
-            self.error(ERROR_NO_CACHE, "Package cache could not be opened")
+            self.error(enums.ERROR_NO_CACHE,
+                       "Package cache could not be opened")
         if self._cache.broken_count > 0:
-            self.error(ERROR_DEP_RESOLUTION_FAILED,
+            self.error(enums.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._last_cache_refresh = time.time()
 
     def _recover(self, prange=(95,100)):
-        """
-        Try to recover from a package manager failure
-        """
-        self.status(STATUS_CLEANUP)
+        """Try to recover from a package manager failure."""
+        self.status(enums.STATUS_CLEANUP)
         self.percentage(None)
         try:
             d = PackageKitDpkgInstallProgress(self)
-            d.startUpdate()
+            d.start_update()
             d.recover()
-            d.finishUpdate()
+            d.finish_update()
         except:
             pass
         self._open_cache(prange)
 
     def _check_trusted(self, only_trusted):
-        """Check if only trusted packages are allowed and fail if 
+        """Check if only trusted packages are allowed and fail if
         untrusted packages would be installed in this case.
         """
         untrusted = []
         if only_trusted:
             for pkg in self._cache:
-                if (pkg.markedInstall or pkg.markedUpgrade or
-                    pkg.markedDowngrade or pkg.markedReinstall):
+                if (pkg.marked_install or pkg.marked_upgrade or
+                    pkg.marked_downgrade or pkg.marked_reinstall):
                      trusted = False
                      for origin in pkg.candidate.origins:
                           trusted |= origin.trusted
                      if not trusted:
                          untrusted.append(pkg.name)
             if untrusted:
-                self.error(ERROR_MISSING_GPG_SIGNATURE, " ".join(untrusted))
+                self.error(enums.ERROR_MISSING_GPG_SIGNATURE,
+                           " ".join(untrusted))
 
     def _commit_changes(self, fetch_range=(5,50), install_range=(50,90)):
-        """
-        Commit changes to the cache and handle errors
-        """
+        """Commit changes to the system."""
         try:
-            self._cache.commit(PackageKitFetchProgress(self, fetch_range), 
+            self._cache.commit(PackageKitAcquireProgress(self, fetch_range),
                                PackageKitInstallProgress(self, install_range))
-        except apt.cache.FetchFailedException, err:
+        except apt.cache.FetchFailedException as err:
             self._open_cache(prange=(95,100))
-            pklog.critical(format_string(err.message))
-            self.error(ERROR_PACKAGE_DOWNLOAD_FAILED,
+            pklog.critical(format_string(err))
+            self.error(enums.ERROR_PACKAGE_DOWNLOAD_FAILED,
                        format_string(err.message))
         except apt.cache.FetchCancelledException:
             self._open_cache(prange=(95,100))
-        except InstallTimeOutPKError, err:
+        except InstallTimeOutPKError as err:
             self._recover()
             self._open_cache(prange=(95,100))
             #FIXME: should provide more information
@@ -1862,10 +1832,10 @@ class PackageKitAptBackend(PackageKitBaseBackend):
                   "of a package hung.\n" \
                   "This can be caused by maintainer scripts which " \
                   "require input on the terminal:\n%s" % err.message
-            self.error(ERROR_INTERNAL_ERROR, format_string(msg))
-        except PackageManagerFailedPKError, err:
+            self.error(enums.ERROR_INTERNAL_ERROR, format_string(msg))
+        except PackageManagerFailedPKError as err:
             self._recover()
-            self.error(ERROR_INTERNAL_ERROR,
+            self.error(enums.ERROR_INTERNAL_ERROR,
                        format_string("%s\n%s" % (err.message, err.output)))
         else:
             return True
@@ -1882,23 +1852,22 @@ class PackageKitAptBackend(PackageKitBaseBackend):
         return id
  
     def _check_init(self, prange=(0,10), progress=True):
-        """
-        Check if the backend was initialized well and try to recover from
-        a broken setup
+        """Check if the backend was initialized well and try to recover from
+        a broken setup.
         """
         pklog.debug("Checking apt cache and xapian database")
-        pkg_cache = os.path.join(apt_pkg.Config["Dir"],
-                                 apt_pkg.Config["Dir::Cache"],
-                                 apt_pkg.Config["Dir::Cache::pkgcache"])
-        src_cache = os.path.join(apt_pkg.Config["Dir"],
-                                 apt_pkg.Config["Dir::Cache"],
-                                 apt_pkg.Config["Dir::Cache::srcpkgcache"])
+        pkg_cache = os.path.join(apt_pkg.config["Dir"],
+                                 apt_pkg.config["Dir::Cache"],
+                                 apt_pkg.config["Dir::Cache::pkgcache"])
+        src_cache = os.path.join(apt_pkg.config["Dir"],
+                                 apt_pkg.config["Dir::Cache"],
+                                 apt_pkg.config["Dir::Cache::srcpkgcache"])
         # Check if the cache instance is of the coorect class type, contains
         # any broken packages and if the dpkg status or apt cache files have 
         # been changed since the last refresh
         if not isinstance(self._cache, apt.cache.Cache) or \
            (self._cache.broken_count > 0) or \
-           (os.stat(apt_pkg.Config["Dir::State::status"])[stat.ST_MTIME] > \
+           (os.stat(apt_pkg.config["Dir::State::status"])[stat.ST_MTIME] > \
             self._last_cache_refresh) or \
            (os.stat(pkg_cache)[stat.ST_MTIME] > self._last_cache_refresh) or \
            (os.stat(src_cache)[stat.ST_MTIME] > self._last_cache_refresh):
@@ -1914,12 +1883,10 @@ class PackageKitAptBackend(PackageKitBaseBackend):
         self._cache.clear()
 
     def _emit_package(self, pkg, info=None, force_candidate=False):
-        """
-        Send the Package signal for a given apt package
-        """
-        if (not pkg.isInstalled or force_candidate) and pkg.candidate:
+        """Send the Package signal for a given APT package."""
+        if (not pkg.is_installed or force_candidate) and pkg.candidate:
             self._emit_pkg_version(pkg.candidate, info)
-        elif pkg.isInstalled:
+        elif pkg.is_installed:
             self._emit_pkg_version(pkg.installed, info)
         else:
             pklog.debug("Package %s hasn't got any version." % pkg.name)
@@ -1931,20 +1898,20 @@ class PackageKitAptBackend(PackageKitBaseBackend):
         if not info:
             if version == version.package.installed:
                 if section == "metapackages":
-                    info = INFO_COLLECTION_INSTALLED
+                    info = enums.INFO_COLLECTION_INSTALLED
                 else:
-                    info = INFO_INSTALLED
+                    info = enums.INFO_INSTALLED
             else:
                 if section == "metapackages":
-                    info = INFO_COLLECTION_AVAILABLE
+                    info = enums.INFO_COLLECTION_AVAILABLE
                 else:
-                    info = INFO_AVAILABLE
+                    info = enums.INFO_AVAILABLE
         self.package(id, info, version.summary)
 
     def _emit_all_visible_pkg_versions(self, filters, pkg):
         """Emit all available versions of a package."""
         if self._is_package_visible(pkg, filters):
-            if FILTER_NEWEST in filters:
+            if enums.FILTER_NEWEST in filters:
                 if pkg.candidate:
                     self._emit_pkg_version(pkg.candidate)
                 elif pkg.installed:
@@ -1954,108 +1921,103 @@ class PackageKitAptBackend(PackageKitBaseBackend):
                     self._emit_pkg_version(version)
 
     def _emit_visible_package(self, filters, pkg, info=None):
-        """
-        Filter and emit a package
-        """
+        """Filter and emit a package."""
         if self._is_package_visible(pkg, filters):
             self._emit_package(pkg, info)
 
     def _emit_visible_packages(self, filters, pkgs, info=None):
-        """
-        Filter and emit packages
-        """
+        """Filter and emit packages."""
         for p in pkgs:
             if self._is_package_visible(p, filters):
                 self._emit_package(p, info)
 
     def _emit_visible_packages_by_name(self, filters, pkgs, info=None):
+        """Find the packages with the given namens. Afterwards filter and emit
+        them.
         """
-        Find the packages with the given namens. Afterwards filter and emit
-        them
-        """
-        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)
+        for name in pkgs:
+            pkg = self._cache[name]
+            if self._is_package_visible(pkg, filters):
+                self._emit_package(pkg, info)
 
     def _emit_changes(self, ignore_pkgs=[]):
         """Emit all changed packages."""
         for pkg in self._cache:
             if pkg.name in ignore_pkgs:
                 continue
-            if pkg.markedDelete:
-                self._emit_package(pkg, INFO_REMOVING, False)
-            elif pkg.markedInstall:
-                self._emit_package(pkg, INFO_INSTALLING, True)
-            elif pkg.markedUpgrade:
-                self._emit_package(pkg, INFO_UPDATING, True)
-            elif pkg.markedDowngrade:
-                self._emit_package(pkg, INFO_DOWNGRADING, True)
-            elif pkg.markedReinstall:
-                self._emit_package(pkg, INFO_REINSTALLING, True)
+            if pkg.marked_delete:
+                self._emit_package(pkg, enums.INFO_REMOVING, False)
+            elif pkg.marked_install:
+                self._emit_package(pkg, enums.INFO_INSTALLING, True)
+            elif pkg.marked_upgrade:
+                self._emit_package(pkg, enums.INFO_UPDATING, True)
+            elif pkg.marked_downgrade:
+                self._emit_package(pkg, enums.INFO_DOWNGRADING, True)
+            elif pkg.marked_reinstall:
+                self._emit_package(pkg, enums.INFO_REINSTALLING, True)
 
     def _is_package_visible(self, pkg, filters):
+        """Return True if the package should be shown in the user
+        interface.
         """
-        Return True if the package should be shown in the user interface
-        """
-        if filters == [FILTER_NONE]:
+        if filters == [enums.FILTER_NONE]:
             return True
         for filter in filters:
-            if (filter == FILTER_INSTALLED and not pkg.isInstalled) or \
-               (filter == FILTER_NOT_INSTALLED and pkg.isInstalled) or \
-               (filter == FILTER_SUPPORTED and not \
-                self._is_package_supported(pkg)) or \
-               (filter == FILTER_NOT_SUPPORTED and \
-                self._is_package_supported(pkg)) or \
-               (filter == FILTER_FREE and not self._is_package_free(pkg)) or \
-               (filter == FILTER_NOT_FREE and \
-                not self._is_package_not_free(pkg)) or \
-               (filter == FILTER_GUI and not self._has_package_gui(pkg)) or \
-               (filter == FILTER_NOT_GUI and self._has_package_gui(pkg)) or \
-               (filter == FILTER_COLLECTIONS and not \
-                self._is_package_collection(pkg)) or \
-               (filter == FILTER_NOT_COLLECTIONS and \
-                self._is_package_collection(pkg)) or\
-                (filter == FILTER_DEVELOPMENT and not \
-                self._is_package_devel(pkg)) or \
-               (filter == FILTER_NOT_DEVELOPMENT and \
-                self._is_package_devel(pkg)):
+            if ((filter == enums.FILTER_INSTALLED and not pkg.is_installed) or
+                (filter == enums.FILTER_NOT_INSTALLED and pkg.is_installed) or
+                (filter == enums.FILTER_SUPPORTED and not
+                 self._is_package_supported(pkg)) or
+                (filter == enums.FILTER_NOT_SUPPORTED and
+                 self._is_package_supported(pkg)) or
+                (filter == enums.FILTER_FREE and not
+                 not self._is_package_free(pkg)) or
+                (filter == enums.FILTER_NOT_FREE and
+                 not self._is_package_not_free(pkg)) or
+                (filter == enums.FILTER_GUI and
+                 not self._has_package_gui(pkg)) or
+                (filter == enums.FILTER_NOT_GUI and
+                 self._has_package_gui(pkg)) or
+                (filter == enums.FILTER_COLLECTIONS and not
+                 self._is_package_collection(pkg)) or
+                (filter == enums.FILTER_NOT_COLLECTIONS and
+                 self._is_package_collection(pkg)) or
+                 (filter == enums.FILTER_DEVELOPMENT and not
+                 self._is_package_devel(pkg)) or
+                (filter == enums.FILTER_NOT_DEVELOPMENT and
+                 self._is_package_devel(pkg))):
                 return False
         return True
 
     def _is_package_not_free(self, pkg):
-        """
-        Return True if we can be sure that the package's license isn't any 
+        """Return True if we can be sure that the package's license isn't any 
         free one
         """
-        candidate = pkg.candidateOrigin
-        return candidate != None and \
-               ((candidate[0].origin == "Ubuntu" and \
-                 candidate[0].component in ["multiverse", "restricted"]) or \
-                (candidate[0].origin == "Debian" and \
-                 candidate[0].component in ["contrib", "non-free"])) and \
-               candidate[0].trusted == True
+        #FIXME: Should check every origin
+        origins = pkg.candidate.origins
+        return (origins != None and \
+                ((origins[0].origin == "Ubuntu" and
+                  origins[0].component in ["multiverse", "restricted"]) or
+                 (origins[0].origin == "Debian" and
+                  origins[0].component in ["contrib", "non-free"])) and
+                origins[0].trusted == True)
 
     def _is_package_collection(self, pkg):
-        """
-        Return True if the package is a metapackge
-        """
+        """Return True if the package is a metapackge."""
         section = pkg.section.split("/")[-1]
         return section == "metapackages"
 
     def _is_package_free(self, pkg):
-        """
-        Return True if we can be sure that the package has got a free license
-        """
-        candidate = pkg.candidateOrigin
-        return candidate != None and \
-               ((candidate[0].origin == "Ubuntu" and \
-                 candidate[0].component in ["main", "universe"]) or \
-                (candidate[0].origin == "Debian" and \
-                 candidate[0].component == "main")) and\
-               candidate[0].trusted == True
+        """Return True if we can be sure that the package has got a free
+        license.
+        """
+        #FIXME: Should check every origin
+        origins = pkg.candidate.origins
+        return (origins[0] != None and
+                ((origins[0].origin == "Ubuntu" and
+                  origins[0].component in ["main", "universe"]) or
+                 (origins[0].origin == "Debian" and
+                  origins[0].component == "main")) and
+                origins[0].trusted == True)
 
     def _has_package_gui(self, pkg):
         #FIXME: should go to a modified Package class
@@ -2069,24 +2031,23 @@ class PackageKitAptBackend(PackageKitBaseBackend):
                pkg.section.split('/')[-1].lower() in ['devel', 'libdevel']
 
     def _is_package_supported(self, pkg):
-        candidate = pkg.candidateOrigin[0]
-        return candidate != None and \
-               candidate[0].origin == "Ubuntu" and \
-               candidate[0].component in ["main", "restricted"] and \
-               candidate[0].trusted == True
+        origins = pkg.candidate.origins
+        #FIXME: iterate on all origins
+        return (origins != None and
+                origins[0].origin == "Ubuntu" and
+                origins[0].component in ["main", "restricted"] and
+                origins[0].trusted == True)
 
     def _get_pkg_version_by_id(self, id):
-        """
-        Return a package version matching the given package id or None.
-        """
-        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 a package version matching the given package id or None."""
+        name, version, arch, data = id.split(";", 4)
+        try:
             for pkg_ver in self._cache[name].versions:
                 if pkg_ver.version == version and \
                    pkg_ver.architecture == arch:
                     return pkg_ver
+        except KeyError:
+            pass
         return None
 
     def _get_package_by_id(self, id):
@@ -2108,39 +2069,20 @@ class PackageKitAptBackend(PackageKitBaseBackend):
         try:
             pkg = self._cache[name]
         except:
-            self.error(ERROR_PACKAGE_NOT_FOUND,
+            self.error(enums.ERROR_PACKAGE_NOT_FOUND,
                        "There isn't any package named %s" % name)
-        #FIXME:This requires a not yet released fix in python-apt
         try:
             version = pkg.versions[version_string]
         except:
-            self.error(ERROR_PACKAGE_NOT_FOUND,
+            self.error(enums.ERROR_PACKAGE_NOT_FOUND,
                        "There isn't any verion %s of %s" % (version_string,
                                                             name))
         if version.architecture != arch:
-            self.error(ERROR_PACKAGE_NOT_FOUND,
+            self.error(enums.ERROR_PACKAGE_NOT_FOUND,
                        "Version %s of %s isn't available for architecture "
                        "%s" % (pkg.name, version.version, arch))
         return version
 
-    def _get_installed_files(self, pkg):
-        """
-        Return the list of unicode names of the files which have
-        been installed by the package
-
-        This method should be obsolete by the apt.package.Package.installedFiles
-        attribute as soon as the consolidate branch of python-apt gets merged
-        """
-        path = os.path.join(apt_pkg.Config["Dir"],
-                            "var/lib/dpkg/info/%s.list" % pkg.name)
-        try:
-            list = open(path)
-            files = list.read().decode().split("\n")
-            list.close()
-        except:
-            return []
-        return files
-
     def _get_package_group(self, pkg):
         """
         Return the packagekit group corresponding to the package's section
@@ -2151,15 +2093,14 @@ class PackageKitAptBackend(PackageKitBaseBackend):
         else:
             pklog.debug("Unkown package section %s of %s" % (pkg.section,
                                                              pkg.name))
-            return GROUP_UNKNOWN
+            return enums.GROUP_UNKNOWN
 
     def _sigquit(self, signum, frame):
         self._unlock_cache()
         sys.exit(1)
 
 def debug_exception(type, value, tb):
-    """
-    Provides an interactive debugging session on unhandled exceptions
+    """Provides an interactive debugging session on unhandled exceptions
     See http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65287
     """
     if hasattr(sys, 'ps1') or not sys.stderr.isatty() or \
@@ -2174,9 +2115,7 @@ def debug_exception(type, value, tb):
         pdb.pm()
 
 def run(args, single=False):
-    """
-    Start the apt backend
-    """
+    """Start the apt backend."""
     backend = PackageKitAptBackend("")
     if single == True:
         backend.dispatch_command(args[0], args[1:])
@@ -2208,9 +2147,9 @@ def main():
         sys.excepthook = debug_exception
 
     if options.root:
-        config = apt_pkg.Config
-        config.Set("Dir", options.root)
-        config.Set("Dir::State::status",
+        config = apt_pkg.config
+        config.set("Dir", options.root)
+        config.set("Dir::State::status",
                    os.path.join(options.root, "/var/lib/dpkg/status"))
 
     if options.profile:
commit 836178214b5372576f538e1b17a5af3ab9d388a2
Author: Sebastian Heinlein <devel at glatzor.de>
Date:   Sun Nov 27 16:10:39 2011 +0100

    apt: Start with updating the backend on several places

diff --git a/backends/apt/aptBackend.py b/backends/apt/aptBackend.py
index 8569ced..cd5f668 100755
--- a/backends/apt/aptBackend.py
+++ b/backends/apt/aptBackend.py
@@ -21,6 +21,8 @@ import datetime
 import errno
 import fcntl
 import gdbm
+import glob
+import gzip
 import httplib
 import locale
 import logging
@@ -45,6 +47,7 @@ from packagekit.backend import *
 from packagekit.progress import *
 from packagekit.package import *
 from packagekit.enums import *
+from packagekit import enums
 
 logging.basicConfig(format="%(levelname)s:%(message)s")
 pklog = logging.getLogger("PackageKitBackend")
@@ -521,9 +524,9 @@ if REPOS_SUPPORT == True:
 
 
 class PackageKitAptBackend(PackageKitBaseBackend):
-    """
-    PackageKit backend for apt
-    """
+
+    """PackageKit backend for APT"""
+
     def __init__(self, args):
         pklog.info("Initializing APT backend")
         signal.signal(signal.SIGQUIT, self._sigquit)
@@ -540,10 +543,10 @@ class PackageKitAptBackend(PackageKitBaseBackend):
     def search_file(self, filters, filenames):
         """Search for files in packages.
 
-        Works only for installed file if apt-file isn't installed.
+        Works only for installed files if apt-file isn't installed.
         """
         pklog.info("Searching for file: %s" % filenames)
-        self.status(STATUS_QUERY)
+        self.status(enums.STATUS_QUERY)
         self.percentage(None)
         self._check_init(progress=False)
         self.allow_cancel(True)
@@ -552,8 +555,8 @@ class PackageKitAptBackend(PackageKitBaseBackend):
         # Optionally make use of apt-file's Contents cache to search for not
         # installed files. But still search for installed files additionally
         # to make sure that we provide up-to-date results
-        if os.path.exists("/usr/bin/apt-file") and \
-           FILTER_INSTALLED not in filters:
+        if (os.path.exists("/usr/bin/apt-file") and
+            enums.FILTER_INSTALLED not in filters):
             #FIXME: Make use of rapt-file on Debian if the network is available
             #FIXME: Show a warning to the user if the apt-file cache is several
             #       weeks old
@@ -579,7 +582,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
                 result_names.update(stdout.split())
                 self._emit_visible_packages_by_name(filters, result_names)
             else:
-                self.error(ERROR_INTERNAL_ERROR,
+                self.error(enums.ERROR_INTERNAL_ERROR,
                            format_string("%s %s" % (stdout, stderr)))
         # Search for installed files
         filenames_regex = []
@@ -599,11 +602,9 @@ class PackageKitAptBackend(PackageKitBaseBackend):
                     break
 
     def search_group(self, filters, groups):
-        """
-        Implement the apt2-search-group functionality
-        """
+        """Search packages by their group."""
         pklog.info("Searching for groups: %s" % groups)
-        self.status(STATUS_QUERY)
+        self.status(enums.STATUS_QUERY)
         self.percentage(None)
         self._check_init(progress=False)
         self.allow_cancel(True)
@@ -613,16 +614,14 @@ class PackageKitAptBackend(PackageKitBaseBackend):
                 self._emit_visible_package(filters, pkg)
 
     def search_name(self, filters, values):
-        """
-        Implement the apt2-search-name functionality
-        """
+        """Search packages by name."""
         def matches(searches, text):
             for search in searches:
                 if not search in text:
                     return False
             return True
         pklog.info("Searching for package name: %s" % values)
-        self.status(STATUS_QUERY)
+        self.status(enums.STATUS_QUERY)
         self.percentage(None)
         self._check_init(progress=False)
         self.allow_cancel(True)
@@ -633,11 +632,9 @@ class PackageKitAptBackend(PackageKitBaseBackend):
                                                     self._cache[pkg_name])
 
     def search_details(self, filters, values):
-        """
-        Implement the apt2-search-details functionality
-        """
+        """Search packages by details."""
         pklog.info("Searching for package details: %s" % values)
-        self.status(STATUS_QUERY)
+        self.status(enums.STATUS_QUERY)
         self.percentage(None)
         self._check_init(progress=False)
         self.allow_cancel(True)
@@ -656,8 +653,8 @@ class PackageKitAptBackend(PackageKitBaseBackend):
             enquire = xapian.Enquire(db)
             enquire.set_query(query)
             matches = enquire.get_mset(0, 1000)
-            for pkg_name in (match[xapian.MSET_DOCUMENT].get_data() \
-                             for match in enquire.get_mset(0,1000)):
+            for pkg_name in (match.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:
@@ -683,7 +680,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
         Implement the {backend}-get-distro-upgrades functionality
         """
         pklog.info("Get distro upgrades")
-        self.status(STATUS_INFO)
+        self.status(enums.STATUS_INFO)
         self.allow_cancel(False)
         self.percentage(None)
 
@@ -706,19 +703,13 @@ class PackageKitAptBackend(PackageKitBaseBackend):
             time.sleep(1)
         #FIXME: Add support for description
         if meta_release.new_dist != None:
-            self.distro_upgrade("stable", 
+            self.distro_upgrade("stable",
                                 "%s %s" % (meta_release.new_dist.name,
                                            meta_release.new_dist.version),
                                 "The latest stable release")
 
     def get_updates(self, filters):
-        """
-        Implement the {backend}-get-update functionality.
-
-        Only report updates which can be installed safely: Which can depend
-        on the installation of additional packages but which don't require
-        the removal of already installed packages or block any other update.
-        """
+        """Get available package updates."""
         def succeeds_security_update(pkg):
             """
             Return True if an update succeeds a previous security update
@@ -729,11 +720,11 @@ class PackageKitAptBackend(PackageKitBaseBackend):
             """
             for version in pkg.versions:
                 # Only check versions between the installed and the candidate
-                if pkg.installed and \
-                   apt_pkg.VersionCompare(version.version,
-                                          pkg.installed.version) <= 0 and \
-                   apt_pkg.VersionCompare(version.version,
-                                          pkg.candidate.version) > 0:
+                if (pkg.installed and
+                    apt_pkg.version_compare(version.version,
+                                            pkg.installed.version) <= 0 and
+                    apt_pkg.version_compare(version.version,
+                                            pkg.candidate.version) > 0):
                     continue
                 for origin in version.origins:
                     if origin.origin in ["Debian", "Ubuntu"] and \
@@ -744,17 +735,12 @@ class PackageKitAptBackend(PackageKitBaseBackend):
             return False
         #FIXME: Implment the basename filter
         pklog.info("Get updates")
-        self.status(STATUS_QUERY)
+        self.status(enums.STATUS_QUERY)
         self.allow_cancel(True)
         self.percentage(None)
         self._check_init(progress=False)
         # Start with a safe upgrade
-        self._cache.upgrade()
-        upgrades_safe = self._cache.getChanges()
-        resolver = apt.cache.ProblemResolver(self._cache)
-        for upgrade in upgrades_safe:
-            resolver.clear(upgrade)
-            resolver.protect(upgrade)
+        self._cache.upgrade(dist_upgrade=True)
         # Search for upgrades which are not already part of the safe upgrade
         # but would only require the installation of additional packages
         for pkg in self._cache:
@@ -762,48 +748,33 @@ class PackageKitAptBackend(PackageKitBaseBackend):
                 continue
             # This may occur on pinned packages which have been updated to
             # later version than the pinned one
-            if not pkg.candidateOrigin:
+            if not pkg.candidate.origins:
                 continue
-            pklog.debug("Checking upgrade of %s" % pkg.name)
-            if not pkg in upgrades_safe:
-                # Check if the upgrade would require the removal of an already
-                # installed package. If this is the case it will be skipped
-                resolver.clear(pkg)
-                resolver.protect(pkg)
-                resolver.install_protect()
-                try:
-                    resolver.resolve()
-                except:
-                    self._emit_package(pkg, INFO_BLOCKED, force_candidate=True)
-                    resolver.clear(pkg)
-                    self._cache.clear()
-                    continue
-                if self._cache.delete_count:
-                    self._emit_package(pkg, INFO_BLOCKED, force_candidate=True)
-                    resolver.clear(pkg)
-                    self._cache.clear()
-                    continue
+            if not pkg.marked_upgrade:
+                #FIXME: Would be nice to have a reason here why
+                self._emit_package(pkg, enums.INFO_BLOCKED,
+                                   force_candidate=True)
             # The update can be safely installed
-            info = INFO_NORMAL
+            info = enums.INFO_NORMAL
             # Detect the nature of the upgrade (e.g. security, enhancement)
-            archive = pkg.candidateOrigin[0].archive
-            origin = pkg.candidateOrigin[0].origin
-            trusted = pkg.candidateOrigin[0].trusted
-            label = pkg.candidateOrigin[0].label
+            candidate_origin = pkg.candidate.origins[0]
+            archive = candidate_origin.archive
+            origin = candidate_origin.origin
+            trusted =candidate_origin.trusted
+            label = candidate_origin.label
             if origin in ["Debian", "Ubuntu"] and trusted == True:
-                if archive.endswith("-security") or \
-                    label == "Debian-Security":
-                    info = INFO_SECURITY
+                if archive.endswith("-security") or label == "Debian-Security":
+                    info = enums.INFO_SECURITY
                 elif succeeds_security_update(pkg):
                     pklog.debug("Update of %s succeeds a security update. "
                                 "Raising its priority." % pkg.name)
-                    info = INFO_SECURITY
+                    info = enums.INFO_SECURITY
                 elif archive.endswith("-backports"):
-                    info = INFO_ENHANCEMENT
+                    info = enums.INFO_ENHANCEMENT
                 elif archive.endswith("-updates"):
-                    info = INFO_BUGFIX
+                    info = enums.INFO_BUGFIX
             if origin in ["Backports.org archive"] and trusted == True:
-                info = INFO_ENHANCEMENT
+                info = enums.INFO_ENHANCEMENT
             self._emit_package(pkg, info, force_candidate=True)
         self._cache.clear()
 
@@ -812,8 +783,8 @@ class PackageKitAptBackend(PackageKitBaseBackend):
         Implement the {backend}-get-update-details functionality
         """
         def get_bug_urls(changelog):
-            """
-            Create a list of urls pointing to closed bugs in the changelog
+            """Return a list of urls pointing to closed bugs in the
+            changelog.
             """
             urls = []
             for r in re.findall(MATCH_BUG_CLOSES_DEBIAN, changelog,
@@ -827,22 +798,20 @@ class PackageKitAptBackend(PackageKitBaseBackend):
             return urls
 
         def get_cve_urls(changelog):
-            """
-            Create a list of urls pointing to cves referred in the changelog
+            """Return a list of urls pointing to CVEs reports referred to in
+            the changelog.
             """
             return map(lambda c: HREF_CVE % c,
                        re.findall(MATCH_CVE, changelog, re.MULTILINE))
 
         pklog.info("Get update details of %s" % pkg_ids)
-        self.status(STATUS_DOWNLOAD_CHANGELOG)
+        self.status(enums.STATUS_DOWNLOAD_CHANGELOG)
         self.percentage(0)
         self.allow_cancel(True)
         self._check_init(None)
         total = len(pkg_ids)
-        count = 1
-        for pkg_id in pkg_ids:
+        for count, pkg_id in enumerate(pkg_ids):
             self.percentage(count * 100 / total)
-            count += 1
             pkg = self._get_package_by_id(pkg_id)
             # FIXME add some real data
             if pkg.installed.origins:
@@ -862,13 +831,42 @@ class PackageKitAptBackend(PackageKitBaseBackend):
             #FIXME: make this more configurable. E.g. a dbus update requires
             #       a reboot on Ubuntu but not on Debian
             if pkg.name.startswith("linux-image-") or \
-               pkg.name in ["libc6", "dbus"]:
-                restart == RESTART_SYSTEM
-            changelog_raw = pkg.getChangelog()
-            # The internal download error string of python-apt ist not
-            # provided as unicode object
-            if not isinstance(changelog_raw, unicode):
-                changelog_raw = changelog_raw.decode("UTF-8")
+               pkg.name in ["libc6"]:
+                restart == enums.RESTART_SYSTEM
+            #FIXME: Should be part of python-apt
+            changelog_dir = apt_pkg.config.find_dir("Dir::Cache::Changelogs")
+            if changelog_dir == "/":
+                changelog_dir = os.path.join(apt_pkg.config.find_dir("Dir::"
+                                                                     "Cache"),
+                                             "Changelogs")
+            filename = os.path.join(changelog_dir,
+                                    "%s_%s.gz" % (pkg.name,
+                                                  pkg.candidate.version))
+            changelog_raw = ""
+            if os.path.exists(filename):
+                pklog.debug("Reading changelog from cache")
+                changelog_file = gzip.open(filename, "rb")
+                try:
+                    changelog_raw = changelog_file.read().decode("UTF-8")
+                finally:
+                    changelog_file.close()
+            if not changelog_raw:
+                pklog.debug("Downloading changelog")
+                changelog_raw = pkg.get_changelog()
+                # The internal download error string of python-apt ist not
+                # provided as unicode object
+                if not isinstance(changelog_raw, unicode):
+                    changelog_raw = changelog_raw.decode("UTF-8")
+                else:
+                    # Write the changelog to the cache
+                    if not os.path.exists(changelog_dir):
+                        os.makedirs(changelog_dir)
+                    # Remove obsolete cached changelogs
+                    pattern = os.path.join(changelog_dir, "%s_*.gz" % pkg.name)
+                    for old_changelog in glob.glob(pattern):
+                        os.rm(os.path.join(changelog_dir, old_changelog))
+                    with gzip.open(filename, mode="wb") as changelog_file:
+                        changelog_file.write(changelog_raw.encode("UTF-8"))
             # Convert the changelog to markdown syntax
             changelog = u""
             for line in changelog_raw.split("\n"):
@@ -908,15 +906,15 @@ class PackageKitAptBackend(PackageKitBaseBackend):
                                state, issued, updated)
 
     def get_details(self, pkg_ids):
-        """
-        Implement the {backend}-get-details functionality
-        """
+        """Emit details about packages."""
         pklog.info("Get details of %s" % pkg_ids)
-        self.status(STATUS_INFO)
+        self.status(enums.STATUS_INFO)
         self.percentage(None)
         self.allow_cancel(True)
         self._check_init(progress=False)
-        for pkg_id in pkg_ids:
+        total = len(pkg_ids)
+        for count, pkg_id in enumerate(pkg_ids):
+            self.percentage(count * 100 / total)
             pkg = self._get_package_by_id(pkg_id)
             #FIXME: We need more fine grained license information!
             candidate = pkg.candidateOrigin
@@ -934,80 +932,42 @@ class PackageKitAptBackend(PackageKitBaseBackend):
 
     @lock_cache
     def update_system(self, only_trusted):
-        """
-        Implement the {backend}-update-system functionality
-        """
+        """Upgrade the system."""
         pklog.info("Upgrading system")
-        self.status(STATUS_UPDATE)
+        self.status(enums.STATUS_UPDATE)
         self.allow_cancel(False)
         self.percentage(0)
         self._check_init(prange=(0,5))
         # Start with protecting all safe upgrades
         self._cache.upgrade()
-        upgrades_safe = self._cache.getChanges()
-        resolver = apt.cache.ProblemResolver(self._cache)
-        for upgrade in upgrades_safe:
-            resolver.clear(upgrade)
-            resolver.protect(upgrade)
-        # Search for upgrades which are not already part of the safe upgrade
-        # but would only require the installation of additional packages
-        for pkg in self._cache:
-            if not pkg.isUpgradable or pkg in upgrades_safe:
-                continue
-            pklog.debug("Checking upgrade of %s" % pkg.name)
-            resolver.clear(pkg)
-            resolver.protect(pkg)
-            resolver.install_protect()
-            try:
-                resolver.resolve()
-            except:
-                resolver.clear(pkg)
-                self._cache.clear()
-                continue
-            if self._cache.delete_count:
-                resolver.clear(pkg)
-                self._cache.clear()
-                continue
-        resolver.install_protect()
-        resolver.resolve()
+        #FIXME: Emit message about skipped updates
+#        for pkg in self._cache:
+#            if pkg.is_upgradable and pkg.marked_upgrade:
+#                continue
         self._check_trusted(only_trusted)
         self._commit_changes()
 
     @lock_cache
     def remove_packages(self, allow_deps, auto_remove, ids):
-        """
-        Implement the {backend}-remove functionality
-        """
+        """Remove packages."""
         pklog.info("Removing package(s): id %s" % ids)
-        self.status(STATUS_REMOVE)
+        self.status(enums.STATUS_REMOVE)
         self.allow_cancel(False)
         self.percentage(0)
         self._check_init(prange=(0,10))
         if auto_remove:
             auto_removables = [pkg.name for pkg in self._cache \
-                               if pkg.isAutoRemovable]
+                               if pkg.is_auto_removable]
         pkgs = self._mark_for_removal(ids)
-        # Error out if the installation would the installation or upgrade of
-        # other packages
-        if self._cache.install_count:
-            installed = [pkg.name for pkg in self._cache.getChanges() if \
-                         pkg.markedInstall or pkg.markedUpgrade]
-            self.error(ERROR_DEP_RESOLUTION_FAILED,
-                       "The following packages would have to upgraded or "
-                       "installed and so block the removal: "
-                       "%s" % " ".join(installed))
         # Check if the removal would remove further packages
         if not allow_deps and self._cache.delete_count != len(ids):
-            dependencies = [pkg.name for pkg in self._cache.getChanges() \
+            dependencies = [pkg.name for pkg in self._cache.get_changes() \
                             if pkg.name not in pkgs]
-            self.error(ERROR_DEP_RESOLUTION_FAILED,
+            self.error(enums.ERROR_DEP_RESOLUTION_FAILED,
                        "The following packages would have also to be removed: "
                        "%s" % " ".join(dependencies))
-        # Check for no longer required dependencies which should be removed too
         if auto_remove:
-            for pkg in self._cache:
-                if pkg.isAutoRemovable and pkg.name not in auto_removables:
-                    pkg.markDelete(False)
+            self._check_obsoleted_dependencies()
         #FIXME: Should support only_trusted
         self._commit_changes(fetch_range=(10,10), install_range=(10,90))
         self._open_cache(prange=(90,99))
@@ -1017,10 +977,49 @@ class PackageKitAptBackend(PackageKitBaseBackend):
                            "%s is still installed" % p)
         self.percentage(100)
 
+    def _check_obsoleted_dependencies(self):
+        """Check for no longer required dependencies which should be removed
+        too.
+        """
+        installed_deps = set()
+        with self._cache.actiongroup():
+            for pkg in self._cache:
+                if pkg.marked_delete:
+                    installed_deps = self._installed_dependencies(pkg_names,
+                                                                 installed_deps)
+            for dep_name in installed_deps:
+                if dep_name in self._cache:
+                    pkg = self._cache[dep_name]
+                    if pkg.is_installed and pkg.is_auto_removeable:
+                        pkg.mark_delete(False)
+
+    def _installed_depencencies(self, pkg_name, all_deps=None):
+        """Recursivly return all installed dependencies of a given package."""
+        #FIXME: Should be part of python-apt
+        #       apt.packagek.Version.get_dependencies(recursive=True)
+        if not all_deps:
+            all_deps = set()
+        if not pkg_name in self._cache:
+            return all_deps
+        cur = self._cache[pkg_name]._pkg.current_ver
+        if not cur:
+            return all_deps
+        for sec in ("PreDepends", "Depends", "Recommends"):
+            try:
+                for dep in cur.depends_list[sec]:
+                    dep_name = dep[0].target_pkg.name
+                    if not dep_name in all_deps:
+                        all_deps.add(dep_name)
+                        all_deps |= self._installed_dependencies(dep_name,
+                                                                 all_deps)
+            except KeyError:
+                pass
+        return all_deps
+
     def simulate_remove_packages(self, ids):
         """Emit the change required for the removal of the given packages."""
         pklog.info("Simulating removal of package with id %s" % ids)
-        self.status(STATUS_DEP_RESOLVE)
+        self.status(enums.STATUS_DEP_RESOLVE)
         self.allow_cancel(True)
         self.percentage(None)
         self._check_init(progress=False)
@@ -1030,34 +1029,33 @@ class PackageKitAptBackend(PackageKitBaseBackend):
     def _mark_for_removal(self, ids):
         """Resolve the given package ids and mark the packages for removal."""
         pkgs = []
-        action_group = self._cache.actiongroup()
-        resolver = apt.cache.ProblemResolver(self._cache)
-        for id in ids:
-            version = self._get_version_by_id(id)
-            pkg = version.package
-            if not pkg.isInstalled:
-                self.error(ERROR_PACKAGE_NOT_INSTALLED,
-                           "Package %s isn't installed" % pkg.name)
-            if pkg.installed != version:
-                self.error(ERROR_PACKAGE_NOT_INSTALLED,
-                           "Version %s of %s isn't installed" % \
-                           (version.version, pkg.name))
-            if pkg.essential == True:
-                self.error(ERROR_CANNOT_REMOVE_SYSTEM_PACKAGE,
-                           "Package %s cannot be removed." % pkg.name)
-            pkgs.append(pkg.name[:])
-            pkg.markDelete(False, False)
-            resolver.clear(pkg)
-            resolver.protect(pkg)
-            resolver.remove(pkg)
-        try:
-            resolver.resolve()
-        except SystemError, error:
-            broken = [pkg.name for pkg in self._cache if pkg.is_inst_broken]
-            self.error(ERROR_DEP_RESOLUTION_FAILED,
-                       "The following packages would break and so block the "
-                       "removal: %s" % " ".join(broken))
-        action_group.release()
+        with self._cache.actiongroup():
+            resolver = apt.cache.ProblemResolver(self._cache)
+            for id in ids:
+                version = self._get_version_by_id(id)
+                pkg = version.package
+                if not pkg.isInstalled:
+                    self.error(enums.ERROR_PACKAGE_NOT_INSTALLED,
+                               "Package %s isn't installed" % pkg.name)
+                if pkg.installed != version:
+                    self.error(enums.ERROR_PACKAGE_NOT_INSTALLED,
+                               "Version %s of %s isn't installed" % \
+                               (version.version, pkg.name))
+                if pkg.essential == True:
+                    self.error(enums.ERROR_CANNOT_REMOVE_SYSTEM_PACKAGE,
+                               "Package %s cannot be removed." % pkg.name)
+                pkgs.append(pkg.name[:])
+                pkg.markDelete(False, False)
+                resolver.clear(pkg)
+                resolver.protect(pkg)
+                resolver.remove(pkg)
+            try:
+                resolver.resolve()
+            except SystemError, error:
+                broken = [pkg.name for pkg in self._cache if pkg.is_inst_broken]
+                self.error(enums.ERROR_DEP_RESOLUTION_FAILED,
+                           "The following packages would break and so block"
+                           "the removal: %s" % " ".join(broken))
         return pkgs
 
     def get_repo_list(self, filters):
@@ -1068,17 +1066,17 @@ class PackageKitAptBackend(PackageKitBaseBackend):
                low level access using pure aptsources?
         """
         pklog.info("Getting repository list: %s" % filters)
-        self.status(STATUS_INFO)
+        self.status(enums.STATUS_INFO)
         self.allow_cancel(False)
         self.percentage(0)
         if REPOS_SUPPORT == False:
             if self._cache.has_key("python-software-properties") and \
                self._cache["python-software-properties"].isInstalled == False:
-                self.error(ERROR_INTERNAL_ERROR,
+                self.error(enums.ERROR_INTERNAL_ERROR,
                            "Please install the package "
                            "python-software-properties to handle repositories")
             else:
-                self.error(ERROR_INTERNAL_ERROR,
+                self.error(enums.ERROR_INTERNAL_ERROR,
                            "Please make sure that python-software-properties is"
                            "correctly installed.")
         repos = PackageKitSoftwareProperties()
@@ -1091,7 +1089,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
                                                comp.name)
             #FIXME: There is no inconsitent state in PackageKit
             enabled = repos.get_comp_download_state(comp)[0]
-            if not FILTER_DEVELOPMENT in filters:
+            if not enums.FILTER_DEVELOPMENT in filters:
                 self.repo_detail(repo_id,
                                  description,
                                  enabled)
@@ -1104,13 +1102,13 @@ class PackageKitAptBackend(PackageKitBaseBackend):
                                                template.name)
             #FIXME: There is no inconsitent state in PackageKit
             enabled = repos.get_comp_child_state(template)[0]
-            if not FILTER_DEVELOPMENT in filters:
+            if not enums.FILTER_DEVELOPMENT in filters:
                 self.repo_detail(repo_id,
                                  description,
                                  enabled)
         # Emit distro's cdrom sources
         for source in repos.get_cdrom_sources():
-            if FILTER_NOT_DEVELOPMENT in filters and \
+            if enums.FILTER_NOT_DEVELOPMENT in filters and \
                source.type in ("deb-src", "rpm-src"):
                 continue
             enabled = not source.disabled
@@ -1121,7 +1119,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
             self.repo_detail(repo_id, description,
                              enabled)
         # Emit distro's virtual source code repositoriy
-        if not FILTER_NOT_DEVELOPMENT in filters:
+        if not enums.FILTER_NOT_DEVELOPMENT in filters:
             repo_id = "%s_source" % repos.distro.id
             enabled = repos.get_source_code_state() or False
             #FIXME: no translation :(
@@ -1131,7 +1129,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
                              enabled)
         # Emit third party repositories
         for source in repos.get_isv_sources():
-            if FILTER_NOT_DEVELOPMENT in filters and \
+            if enums.FILTER_NOT_DEVELOPMENT in filters and \
                source.type in ("deb-src", "rpm-src"):
                 continue
             enabled = not source.disabled
@@ -1150,17 +1148,17 @@ class PackageKitAptBackend(PackageKitBaseBackend):
                low level access using pure aptsources?
         """
         pklog.info("Enabling repository: %s %s" % (repo_id, enable))
-        self.status(STATUS_RUNNING)
+        self.status(enums.STATUS_RUNNING)
         self.allow_cancel(False)
         self.percentage(0)
         if REPOS_SUPPORT == False:
             if self._cache.has_key("python-software-properties") and \
                self._cache["python-software-properties"].isInstalled == False:
-                self.error(ERROR_INTERNAL_ERROR,
+                self.error(enums.ERROR_INTERNAL_ERROR,
                            "Please install the package "
                            "python-software-properties to handle repositories")
             else:
-                self.error(ERROR_INTERNAL_ERROR,
+                self.error(enums.ERROR_INTERNAL_ERROR,
                            "Please make sure that python-software-properties is"
                            "correctly installed.")
             return
@@ -1180,7 +1178,8 @@ class PackageKitAptBackend(PackageKitBaseBackend):
                         repos.disable_component(comp.name)
                     found = True
                     break
-        # Check if the repo_id matches a distro child repository, e.g. hardy-updates
+        # Check if the repo_id matches a distro child repository, e.g.
+        # hardy-updates
         elif repo_id.startswith("%s_child_" % repos.distro.id):
             for template in repos.distro.source_template.children:
                 if repo_id == "%s_child_%s" % (repos.distro.id, template.name):
@@ -1220,7 +1219,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
                     found = True
                     break
         if found == False:
-            self.error(ERROR_REPO_NOT_AVAILABLE,
+            self.error(enums.ERROR_REPO_NOT_AVAILABLE,
                        "The repository of the id %s isn't available" % repo_id)
 
     @lock_cache
@@ -1229,19 +1228,11 @@ class PackageKitAptBackend(PackageKitBaseBackend):
         Implement the {backend}-update functionality
         """
         pklog.info("Updating package with id %s" % ids)
-        self.status(STATUS_UPDATE)
+        self.status(enums.STATUS_UPDATE)
         self.allow_cancel(False)
         self.percentage(0)
         self._check_init(prange=(0,10))
         pkgs = self._mark_for_upgrade(ids)
-        # Error out if the updates would require the removal of already
-        # installed packages
-        if self._cache.delete_count:
-            deleted = [pkg.name for pkg in self._cache.getChanges() if \
-                       pkg.markedDelete]
-            self.error(ERROR_DEP_RESOLUTION_FAILED,
-                       "The following packages block the update: "
-                       "%s" % " ".join(deleted))
         self._check_trusted(only_trusted)
         self._commit_changes()
         self._open_cache(prange=(90,100))
@@ -1250,7 +1241,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
         for p in pkgs:
             if not self._cache.has_key(p) or not self._cache[p].isInstalled \
                or self._cache[p].isUpgradable:
-                self.error(ERROR_PACKAGE_FAILED_TO_INSTALL,
+                self.error(enums.ERROR_PACKAGE_FAILED_TO_INSTALL,
                            "%s was not updated" % p)
         pklog.debug("Sending success signal")
 
@@ -1267,36 +1258,33 @@ class PackageKitAptBackend(PackageKitBaseBackend):
     def _mark_for_upgrade(self, ids):
         """Resolve the given package ids and mark the packages for upgrade."""
         pkgs = []
-        ac = self._cache.actiongroup()
-        resolver = apt.cache.ProblemResolver(self._cache)
-        for id in ids:
-            version = self._get_version_by_id(id)
-            pkg = version.package
-            if not pkg.isInstalled:
-                self.error(ERROR_PACKAGE_NOT_INSTALLED,
-                           "%s isn't installed" % pkg.name)
-            # Check if the specified version is an update
-            if apt_pkg.VersionCompare(pkg.installed.version,
-                                      version.version) >= 0:
-                self.error(ERROR_UPDATE_NOT_FOUND,
-                           "The version %s of %s isn't an update to the "
-                           "current %s" % (version.version, pkg.name,
-                                           pkg.installed.version))
-            pkg.candidate = version
-            pkgs.append(pkg.name[:])
-            # Actually should be fixed in python-apt
-            auto = not self._cache._depcache.IsAutoInstalled(pkg._pkg)
-            pkg.markInstall(False, True, auto)
-            resolver.clear(pkg)
-            resolver.protect(pkg)
-        try:
-            resolver.resolve()
-        except SystemError, error:
-            broken = [pkg.name for pkg in self._cache if pkg.is_inst_broken]
-            self.error(ERROR_DEP_RESOLUTION_FAILED,
-                       "The following packages block the installation: "
-                       "%s" % " ".join(broken))
-        ac.release()
+        with self._cache.actiongroup():
+            resolver = apt.cache.ProblemResolver(self._cache)
+            for id in ids:
+                version = self._get_version_by_id(id)
+                pkg = version.package
+                if not pkg.is_installed:
+                    self.error(enums.ERROR_PACKAGE_NOT_INSTALLED,
+                               "%s isn't installed" % pkg.name)
+                # Check if the specified version is an update
+                if apt_pkg.version_compare(pkg.installed.version,
+                                           version.version) >= 0:
+                    self.error(enums.ERROR_UPDATE_NOT_FOUND,
+                               "The version %s of %s isn't an update to the "
+                               "current %s" % (version.version, pkg.name,
+                                               pkg.installed.version))
+                pkg.candidate = version
+                pkgs.append(pkg.name[:])
+                pkg.mark_install(False, True)
+                resolver.clear(pkg)
+                resolver.protect(pkg)
+            try:
+                resolver.resolve()
+            except SystemError, error:
+                broken = [pkg.name for pkg in self._cache if pkg.is_inst_broken]
+                self.error(enums.ERROR_DEP_RESOLUTION_FAILED,
+                           "The following packages block the installation: "
+                           "%s" % " ".join(broken))
         return pkgs
 
     def download_packages(self, dest, ids):
commit 1ef05f36bbb5ca1ff14a46274ed5d1c5d14ba3b1
Author: Sebastian Heinlein <devel at glatzor.de>
Date:   Sun Nov 27 14:35:20 2011 +0100

    apt: remove encoding mangling - should be handled by packagekit.backend
    already

diff --git a/backends/apt/aptBackend.py b/backends/apt/aptBackend.py
index 4cfb2bf..8569ced 100755
--- a/backends/apt/aptBackend.py
+++ b/backends/apt/aptBackend.py
@@ -158,18 +158,12 @@ HREF_CVE="http://web.nvd.nist.gov/view/vuln/detail?vulnId=%s"
 
 SYNAPTIC_PIN_FILE = "/var/lib/synaptic/preferences"
 
-DEFAULT_ENCODING = "UTF-8"
-
 # Required to get translated descriptions
 try:
     locale.setlocale(locale.LC_ALL, "")
 except locale.Error:
     pklog.debug("Failed to unset LC_ALL")
 
-# Allows to write unicode to stdout
-import codecs
-sys.stdout = codecs.getwriter(DEFAULT_ENCODING)(sys.stdout)
-
 # Required to parse RFC822 time stamps
 try:
     locale.setlocale(locale.LC_TIME, "C")
@@ -681,7 +675,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
                     txt += pkg.candidate._translated_records.long_desc.lower()
                 except AttributeError:
                     pass
-                if matches(values, txt.decode(DEFAULT_ENCODING, "replace")):
+                if matches(values, txt):
                     self._emit_visible_package(filters, pkg)
 
     def get_distro_upgrades(self):
@@ -874,7 +868,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
             # The internal download error string of python-apt ist not
             # provided as unicode object
             if not isinstance(changelog_raw, unicode):
-                changelog_raw = changelog_raw.decode(DEFAULT_ENCODING)
+                changelog_raw = changelog_raw.decode("UTF-8")
             # Convert the changelog to markdown syntax
             changelog = u""
             for line in changelog_raw.split("\n"):
@@ -935,7 +929,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
             group = self._get_package_group(pkg)
             self.details(pkg_id, license, group,
                          format_string(pkg.description),
-                         pkg.homepage.decode(DEFAULT_ENCODING),
+                         pkg.homepage,
                          pkg.packageSize)
 
     @lock_cache
@@ -1099,7 +1093,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
             enabled = repos.get_comp_download_state(comp)[0]
             if not FILTER_DEVELOPMENT in filters:
                 self.repo_detail(repo_id,
-                                 description.decode(DEFAULT_ENCODING),
+                                 description,
                                  enabled)
         # Emit distro's virtual update repositories
         for template in repos.distro.source_template.children:
@@ -1112,7 +1106,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
             enabled = repos.get_comp_child_state(template)[0]
             if not FILTER_DEVELOPMENT in filters:
                 self.repo_detail(repo_id,
-                                 description.decode(DEFAULT_ENCODING),
+                                 description,
                                  enabled)
         # Emit distro's cdrom sources
         for source in repos.get_cdrom_sources():
@@ -1124,7 +1118,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
             description = re.sub(r"</?b>", "", repos.render_source(source))
             repo_id = "cdrom_%s_%s" % (source.uri, source.dist)
             repo_id.join(map(lambda c: "_%s" % c, source.comps))
-            self.repo_detail(repo_id, description.decode(DEFAULT_ENCODING),
+            self.repo_detail(repo_id, description,
                              enabled)
         # Emit distro's virtual source code repositoriy
         if not FILTER_NOT_DEVELOPMENT in filters:
@@ -1133,7 +1127,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
             #FIXME: no translation :(
             description = "%s %s - Source code" % (repos.distro.id,
                                                    repos.distro.release)
-            self.repo_detail(repo_id, description.decode(DEFAULT_ENCODING),
+            self.repo_detail(repo_id, description,
                              enabled)
         # Emit third party repositories
         for source in repos.get_isv_sources():
@@ -1145,7 +1139,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
             description = re.sub(r"</?b>", "", repos.render_source(source))
             repo_id = "isv_%s_%s" % (source.uri, source.dist)
             repo_id.join(map(lambda c: "_%s" % c, source.comps))
-            self.repo_detail(repo_id, description.decode(DEFAULT_ENCODING),
+            self.repo_detail(repo_id, description.decode,
                              enabled)
 
     def repo_enable(self, repo_id, enable):
@@ -1462,7 +1456,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
         d = PackageKitDpkgInstallProgress(self)
         try:
             d.startUpdate()
-            d.install([inst.encode(DEFAULT_ENCODING) for inst in inst_files])
+            d.install(inst_files)
             d.finishUpdate()
         except InstallTimeOutPKError, e:
             self._recover()
@@ -1586,7 +1580,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
             else:
                 version = base_dependency.version
             self.package("%s;%s;;" % (base_dependency.name, version),
-                         INFO_BLOCKED, unicode(summary, DEFAULT_ENCODING))
+                         INFO_BLOCKED, summary)
 
         def check_dependency(pkg, base_dep):
             """Check if the given apt.package.Package can satisfy the
@@ -1957,7 +1951,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
                     info = INFO_COLLECTION_AVAILABLE
                 else:
                     info = INFO_AVAILABLE
-        self.package(id, info, unicode(version.summary, DEFAULT_ENCODING))
+        self.package(id, info, version.summary)
 
     def _emit_all_visible_pkg_versions(self, filters, pkg):
         """Emit all available versions of a package."""
commit e9901f6770d2cd2f4491860210368938e4f18ec5
Author: Sebastian Heinlein <devel at glatzor.de>
Date:   Sun Nov 27 14:24:56 2011 +0100

    apt: Port to latest PackageKit API

diff --git a/backends/apt/pk-backend-apt.c b/backends/apt/pk-backend-apt.c
index 6508bf3..aa1db04 100644
--- a/backends/apt/pk-backend-apt.c
+++ b/backends/apt/pk-backend-apt.c
@@ -30,11 +30,13 @@
 
 static PkBackendSpawn *spawn;
 
+static const gchar* BACKEND_FILE = "aptBackend.py";
+
 /**
-  * backend_stderr_cb:
+  * pk_backend_stderr_cb:
   */
 static gboolean
-backend_stderr_cb (PkBackend *backend, const gchar *output)
+pk_backend_stderr_cb (PkBackend *backend, const gchar *output)
 {
 	// APT is a little bit chatty on stderr
 	if (strstr (output, "W:") != NULL)
@@ -48,15 +50,15 @@ backend_stderr_cb (PkBackend *backend, const gchar *output)
 }
 
 /**
- * backend_initialize:
+ * pk_backend_initialize:
  * This should only be run once per backend load, i.e. not every transaction
  */
-static void
-backend_initialize (PkBackend *backend)
+void
+pk_backend_initialize (PkBackend *backend)
 {
 	g_debug ("backend: initialize");
 	spawn = pk_backend_spawn_new ();
-	pk_backend_spawn_set_filter_stderr (spawn, backend_stderr_cb);
+	pk_backend_spawn_set_filter_stderr (spawn, pk_backend_stderr_cb);
 	pk_backend_spawn_set_name (spawn, "apt");
 }
 
@@ -64,8 +66,8 @@ backend_initialize (PkBackend *backend)
  * backend_destroy:
  * This should only be run once per backend load, i.e. not every transaction
  */
-static void
-backend_destroy (PkBackend *backend)
+void
+pk_backend_destroy (PkBackend *backend)
 {
 	g_debug ("backend: destroy");
 	g_object_unref (spawn);
@@ -74,8 +76,8 @@ backend_destroy (PkBackend *backend)
 /**
  * backend_get_mime_types:
  */
-static gchar *
-backend_get_mime_types (PkBackend *backend)
+gchar *
+pk_backend_get_mime_types (PkBackend *backend)
 {
 	return g_strdup ("application/x-deb");
 }
@@ -83,8 +85,8 @@ backend_get_mime_types (PkBackend *backend)
 /**
  * pk_backend_cancel:
  */
-static void
-backend_cancel (PkBackend *backend)
+void
+pk_backend_cancel (PkBackend *backend)
 {
 	/* this feels bad... */
 	pk_backend_spawn_kill (spawn);
@@ -93,28 +95,28 @@ backend_cancel (PkBackend *backend)
 /**
  * backend_download_packages:
  */
-static void
-backend_download_packages (PkBackend *backend, gchar **package_ids, const gchar *directory)
+void
+pk_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_string (package_ids);
-	pk_backend_spawn_helper (spawn, "aptBackend.py", "download-packages", directory, package_ids_temp, NULL);
+	pk_backend_spawn_helper (spawn, BACKEND_FILE, "download-packages", directory, package_ids_temp, NULL);
 	g_free (package_ids_temp);
 }
 
 /**
  * backend_get_depends:
  */
-static void
-backend_get_depends (PkBackend *backend, PkBitfield filters, gchar **package_ids, gboolean recursive)
+void
+pk_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_string (package_ids);
 	filters_text = pk_filter_bitfield_to_string (filters);
-	pk_backend_spawn_helper (spawn, "aptBackend.py", "get-depends", filters_text, package_ids_temp, pk_backend_bool_to_string (recursive), NULL);
+	pk_backend_spawn_helper (spawn, BACKEND_FILE, "get-depends", filters_text, package_ids_temp, pk_backend_bool_to_string (recursive), NULL);
 	g_free (filters_text);
 	g_free (package_ids_temp);
 }
@@ -122,12 +124,12 @@ backend_get_depends (PkBackend *backend, PkBitfield filters, gchar **package_ids
 /**
  * backend_get_details:
  */
-static void
-backend_get_details (PkBackend *backend, gchar **package_ids)
+void
+pk_backend_get_details (PkBackend *backend, gchar **package_ids)
 {
 	gchar *package_ids_temp;
 	package_ids_temp = pk_package_ids_to_string (package_ids);
-	pk_backend_spawn_helper (spawn, "aptBackend.py", "get-details", package_ids_temp, NULL);
+	pk_backend_spawn_helper (spawn, BACKEND_FILE, "get-details", package_ids_temp, NULL);
 	g_free (package_ids_temp);
 }
 
@@ -135,36 +137,36 @@ backend_get_details (PkBackend *backend, gchar **package_ids)
 /**
  * backend_get_distro_upgrades:
  */
-static void
-backend_get_distro_upgrades (PkBackend *backend)
+void
+pk_backend_get_distro_upgrades (PkBackend *backend)
 {
-	pk_backend_spawn_helper (spawn, "aptBackend.py", "get-distro-upgrades", NULL);
+	pk_backend_spawn_helper (spawn, BACKEND_FILE, "get-distro-upgrades", NULL);
 }
 #endif /* HAVE_PYTHON_META_RELEASE */
 
 /**
  * backend_get_files:
  */
-static void
-backend_get_files (PkBackend *backend, gchar **package_ids)
+void
+pk_backend_get_files (PkBackend *backend, gchar **package_ids)
 {
 	gchar *package_ids_temp;
 	package_ids_temp = pk_package_ids_to_string (package_ids);
-	pk_backend_spawn_helper (spawn,  "aptBackend.py", "get-files", package_ids_temp, NULL);
+	pk_backend_spawn_helper (spawn,  BACKEND_FILE, "get-files", package_ids_temp, NULL);
 	g_free (package_ids_temp);
 }
 
 /**
  * backend_get_requires:
  */
-static void
-backend_get_requires (PkBackend *backend, PkBitfield filters, gchar **package_ids, gboolean recursive)
+void
+pk_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_string (package_ids);
 	filters_text = pk_filter_bitfield_to_string (filters);
-	pk_backend_spawn_helper (spawn, "aptBackend.py", "get-requires", filters_text, package_ids_temp, pk_backend_bool_to_string (recursive), NULL);
+	pk_backend_spawn_helper (spawn, BACKEND_FILE, "get-requires", filters_text, package_ids_temp, pk_backend_bool_to_string (recursive), NULL);
 	g_free (filters_text);
 	g_free (package_ids_temp);
 }
@@ -172,120 +174,120 @@ backend_get_requires (PkBackend *backend, PkBitfield filters, gchar **package_id
 /**
  * backend_get_updates:
  */
-static void
-backend_get_updates (PkBackend *backend, PkBitfield filters)
+void
+pk_backend_get_updates (PkBackend *backend, PkBitfield filters)
 {
 	gchar *filters_text;
 	filters_text = pk_filter_bitfield_to_string (filters);
-	pk_backend_spawn_helper (spawn,  "aptBackend.py", "get-updates", filters_text, NULL);
+	pk_backend_spawn_helper (spawn,  BACKEND_FILE, "get-updates", filters_text, NULL);
 	g_free (filters_text);
 }
 
 /**
  * backend_get_packages:
  */
-static void
-backend_get_packages (PkBackend *backend, PkBitfield filters)
+void
+pk_backend_get_packages (PkBackend *backend, PkBitfield filters)
 {
 	gchar *filters_text;
 	filters_text = pk_filter_bitfield_to_string (filters);
-	pk_backend_spawn_helper (spawn, "aptBackend.py", "get-packages", filters_text, NULL);
+	pk_backend_spawn_helper (spawn, BACKEND_FILE, "get-packages", filters_text, NULL);
 	g_free (filters_text);
 }
 
 /**
  * backend_get_update_detail:
  */
-static void
-backend_get_update_detail (PkBackend *backend, gchar **package_ids)
+void
+pk_backend_get_update_detail (PkBackend *backend, gchar **package_ids)
 {
 	gchar *package_ids_temp;
 	package_ids_temp = pk_package_ids_to_string (package_ids);
-	pk_backend_spawn_helper (spawn, "aptBackend.py", "get-update-detail", package_ids_temp, NULL);
+	pk_backend_spawn_helper (spawn, BACKEND_FILE, "get-update-detail", package_ids_temp, NULL);
 	g_free (package_ids_temp);
 }
 
  /**
  * backend_simulate_install_files:
  */
-static void
-backend_simulate_install_files (PkBackend *backend, gchar **full_paths)
+void
+pk_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, "aptBackend.py", "simulate-install-files", package_ids_temp, NULL);
+	pk_backend_spawn_helper (spawn, BACKEND_FILE, "simulate-install-files", package_ids_temp, NULL);
 	g_free (package_ids_temp);
 }
 
 /**
  * backend_simulate_install_packages:
  */
-static void
-backend_simulate_install_packages (PkBackend *backend, gchar **package_ids)
+void
+pk_backend_simulate_install_packages (PkBackend *backend, gchar **package_ids)
 {
 	gchar *package_ids_temp;
 
 	/* send the complete list as stdin */
 	package_ids_temp = pk_package_ids_to_string (package_ids);
-	pk_backend_spawn_helper (spawn, "aptBackend.py", "simulate-install-packages", package_ids_temp, NULL);
+	pk_backend_spawn_helper (spawn, BACKEND_FILE, "simulate-install-packages", package_ids_temp, NULL);
 	g_free (package_ids_temp);
 }
 
 /**
  * backend_simulate_remove_packages:
  */
-static void
-backend_simulate_remove_packages (PkBackend *backend, gchar **package_ids, gboolean autoremove)
+void
+pk_backend_simulate_remove_packages (PkBackend *backend, gchar **package_ids, gboolean autoremove)
 {
 	gchar *package_ids_temp;
 
 	/* send the complete list as stdin */
 	package_ids_temp = pk_package_ids_to_string (package_ids);
-	pk_backend_spawn_helper (spawn, "aptBackend.py", "simulate-remove-packages", package_ids_temp, NULL);
+	pk_backend_spawn_helper (spawn, BACKEND_FILE, "simulate-remove-packages", package_ids_temp, NULL);
 	g_free (package_ids_temp);
 }
 
 /**
  * backend_simulate_update_packages:
  */
-static void
-backend_simulate_update_packages (PkBackend *backend, gchar **package_ids)
+void
+pk_backend_simulate_update_packages (PkBackend *backend, gchar **package_ids)
 {
 	gchar *package_ids_temp;
 
 	/* send the complete list as stdin */
 	package_ids_temp = pk_package_ids_to_string (package_ids);
-	pk_backend_spawn_helper (spawn, "aptBackend.py", "simulate-update-packages", package_ids_temp, NULL);
+	pk_backend_spawn_helper (spawn, BACKEND_FILE, "simulate-update-packages", package_ids_temp, NULL);
 	g_free (package_ids_temp);
 }
 
 /**
  * backend_install_packages:
  */
-static void
-backend_install_packages (PkBackend *backend, gboolean only_trusted, gchar **package_ids)
+void
+pk_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_string (package_ids);
-	pk_backend_spawn_helper (spawn, "aptBackend.py", "install-packages", pk_backend_bool_to_string (only_trusted), package_ids_temp, NULL);
+	pk_backend_spawn_helper (spawn, BACKEND_FILE, "install-packages", pk_backend_bool_to_string (only_trusted), package_ids_temp, NULL);
 	g_free (package_ids_temp);
 }
 
 /**
  * backend_install_files:
  */
-static void
-backend_install_files (PkBackend *backend, gboolean only_trusted, gchar **full_paths)
+void
+pk_backend_install_files (PkBackend *backend, gboolean only_trusted, 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, "aptBackend.py", "install-files", pk_backend_bool_to_string (only_trusted), package_ids_temp, NULL);
+	pk_backend_spawn_helper (spawn, BACKEND_FILE, "install-files", pk_backend_bool_to_string (only_trusted), package_ids_temp, NULL);
 	g_free (package_ids_temp);
 }
 
@@ -294,65 +296,65 @@ backend_install_files (PkBackend *backend, gboolean only_trusted, gchar **full_p
  *
 FIXME: Not implemented
  
-static void
-backend_install_signature (PkBackend *backend, PkSigTypeEnum type,
+void
+pk_backend_install_signature (PkBackend *backend, PkSigTypeEnum type,
 			   const gchar *key_id, const gchar *package_id)
 {
 	const gchar *type_text;
 
 	type_text = pk_sig_type_enum_to_string (type);
-	pk_backend_spawn_helper (spawn, "aptBackend.py", "install-signature", type_text, key_id, package_id, NULL);
+	pk_backend_spawn_helper (spawn, BACKEND_FILE, "install-signature", type_text, key_id, package_id, NULL);
 } */
 
 /**
  * backend_refresh_cache:
  */
-static void
-backend_refresh_cache (PkBackend *backend, gboolean force)
+void
+pk_backend_refresh_cache (PkBackend *backend, gboolean force)
 {
-	pk_backend_spawn_helper (spawn, "aptBackend.py", "refresh-cache", pk_backend_bool_to_string (force), NULL);
+	pk_backend_spawn_helper (spawn, BACKEND_FILE, "refresh-cache", pk_backend_bool_to_string (force), NULL);
 }
 
 /**
  * pk_backend_remove_packages:
  */
-static void
-backend_remove_packages (PkBackend *backend, gchar **package_ids, gboolean allow_deps, gboolean autoremove)
+void
+pk_backend_remove_packages (PkBackend *backend, gchar **package_ids, gboolean allow_deps, gboolean autoremove)
 {
 	gchar *package_ids_temp;
 
 	/* send the complete list as stdin */
 	package_ids_temp = pk_package_ids_to_string (package_ids);
-	pk_backend_spawn_helper (spawn, "aptBackend.py", "remove-packages", pk_backend_bool_to_string (allow_deps), pk_backend_bool_to_string (autoremove), package_ids_temp, NULL);
+	pk_backend_spawn_helper (spawn, BACKEND_FILE, "remove-packages", pk_backend_bool_to_string (allow_deps), pk_backend_bool_to_string (autoremove), package_ids_temp, NULL);
 	g_free (package_ids_temp);
 }
 
 /**
  * pk_backend_search_details:
  */
-static void
-backend_search_details (PkBackend *backend, PkBitfield filters, gchar **values)
+void
+pk_backend_search_details (PkBackend *backend, PkBitfield filters, gchar **values)
 {
 	gchar *filters_text;
 	gchar *search;
 	filters_text = pk_filter_bitfield_to_string (filters);
 	search = g_strjoinv ("&", values);
-	pk_backend_spawn_helper (spawn, "aptBackend.py", "search-details", filters_text, search, NULL);
+	pk_backend_spawn_helper (spawn, BACKEND_FILE, "search-details", filters_text, search, NULL);
 	g_free (filters_text);
 	g_free (search);
 }
 
 /**
- * pk_backend_search_file:
+ * pk_backend_search_files:
  */
-static void
-backend_search_file (PkBackend *backend, PkBitfield filters, gchar **values)
+void
+pk_backend_search_files (PkBackend *backend, PkBitfield filters, gchar **values)
 {
 	gchar *filters_text;
 	gchar *search;
 	filters_text = pk_filter_bitfield_to_string (filters);
 	search = g_strjoinv ("&", values);
-	pk_backend_spawn_helper (spawn, "aptBackend.py", "search-file", filters_text, search, NULL);
+	pk_backend_spawn_helper (spawn, BACKEND_FILE, "search-file", filters_text, search, NULL);
 	g_free (filters_text);
 	g_free (search);
 }
@@ -360,14 +362,14 @@ backend_search_file (PkBackend *backend, PkBitfield filters, gchar **values)
 /**
  * pk_backend_search_group:
  */
-static void
-backend_search_group (PkBackend *backend, PkBitfield filters, gchar **values)
+void
+pk_backend_search_groups (PkBackend *backend, PkBitfield filters, gchar **values)
 {
 	gchar *filters_text;
 	gchar *search;
 	filters_text = pk_filter_bitfield_to_string (filters);
 	search = g_strjoinv ("&", values);
-	pk_backend_spawn_helper (spawn, "aptBackend.py", "search-group", filters_text, search, NULL);
+	pk_backend_spawn_helper (spawn, BACKEND_FILE, "search-group", filters_text, search, NULL);
 	g_free (filters_text);
 	g_free (search);
 }
@@ -375,14 +377,14 @@ backend_search_group (PkBackend *backend, PkBitfield filters, gchar **values)
 /**
  * pk_backend_search_name:
  */
-static void
-backend_search_name (PkBackend *backend, PkBitfield filters, gchar **values)
+void
+pk_backend_search_names (PkBackend *backend, PkBitfield filters, gchar **values)
 {
 	gchar *filters_text;
 	gchar *search;
 	filters_text = pk_filter_bitfield_to_string (filters);
 	search = g_strjoinv ("&", values);
-	pk_backend_spawn_helper (spawn, "aptBackend.py", "search-name", filters_text, search, NULL);
+	pk_backend_spawn_helper (spawn, BACKEND_FILE, "search-name", filters_text, search, NULL);
 	g_free (filters_text);
 	g_free (search);
 }
@@ -390,37 +392,37 @@ backend_search_name (PkBackend *backend, PkBitfield filters, gchar **values)
 /**
  * pk_backend_update_packages:
  */
-static void
-backend_update_packages (PkBackend *backend, gboolean only_trusted, gchar **package_ids)
+void
+pk_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_string (package_ids);
-	pk_backend_spawn_helper (spawn, "aptBackend.py", "update-packages", pk_backend_bool_to_string (only_trusted), package_ids_temp, NULL);
+	pk_backend_spawn_helper (spawn, BACKEND_FILE, "update-packages", pk_backend_bool_to_string (only_trusted), package_ids_temp, NULL);
 	g_free (package_ids_temp);
 }
 
 /**
  * pk_backend_update_system:
  */
-static void
-backend_update_system (PkBackend *backend, gboolean only_trusted)
+void
+pk_backend_update_system (PkBackend *backend, gboolean only_trusted)
 {
-	pk_backend_spawn_helper (spawn, "aptBackend.py", "update-system", pk_backend_bool_to_string (only_trusted), NULL);
+	pk_backend_spawn_helper (spawn, BACKEND_FILE, "update-system", pk_backend_bool_to_string (only_trusted), NULL);
 }
 
 /**
  * pk_backend_resolve:
  */
-static void
-backend_resolve (PkBackend *backend, PkBitfield filters, gchar **package_ids)
+void
+pk_backend_resolve (PkBackend *backend, PkBitfield filters, gchar **package_ids)
 {
 	gchar *filters_text;
 	gchar *package_ids_temp;
 	filters_text = pk_filter_bitfield_to_string (filters);
 	package_ids_temp = pk_package_ids_to_string (package_ids);
-	pk_backend_spawn_helper (spawn, "aptBackend.py", "resolve", filters_text, package_ids_temp, NULL);
+	pk_backend_spawn_helper (spawn, BACKEND_FILE, "resolve", filters_text, package_ids_temp, NULL);
 	g_free (filters_text);
 	g_free (package_ids_temp);
 }
@@ -429,25 +431,25 @@ backend_resolve (PkBackend *backend, PkBitfield filters, gchar **package_ids)
 /**
  * pk_backend_get_repo_list:
  */
-static void
-backend_get_repo_list (PkBackend *backend, PkBitfield filters)
+void
+pk_backend_get_repo_list (PkBackend *backend, PkBitfield filters)
 {
 	gchar *filters_text;
 	filters_text = pk_filter_bitfield_to_string (filters);
-	pk_backend_spawn_helper (spawn, "aptBackend.py", "get-repo-list", filters_text, NULL);
+	pk_backend_spawn_helper (spawn, BACKEND_FILE, "get-repo-list", filters_text, NULL);
 	g_free (filters_text);
 }
 
 /**
  * pk_backend_repo_enable:
  */
-static void
-backend_repo_enable (PkBackend *backend, const gchar *rid, gboolean enabled)
+void
+pk_backend_repo_enable (PkBackend *backend, const gchar *rid, gboolean enabled)
 {
 	if (enabled == TRUE) {
-		pk_backend_spawn_helper (spawn, "aptBackend.py", "repo-enable", rid, "true", NULL);
+		pk_backend_spawn_helper (spawn, BACKEND_FILE, "repo-enable", rid, "true", NULL);
 	} else {
-		pk_backend_spawn_helper (spawn, "aptBackend.py", "repo-enable", rid, "false", NULL);
+		pk_backend_spawn_helper (spawn, BACKEND_FILE, "repo-enable", rid, "false", NULL);
 	}
 }
 
@@ -456,10 +458,10 @@ backend_repo_enable (PkBackend *backend, const gchar *rid, gboolean enabled)
  *
 FIXME: Not implemented
  
-static void
-backend_repo_set_data (PkBackend *backend, const gchar *rid, const gchar *parameter, const gchar *value)
+void
+pk_backend_repo_set_data (PkBackend *backend, const gchar *rid, const gchar *parameter, const gchar *value)
 {
-	pk_backend_spawn_helper (spawn, "aptBackend.py", "repo-set-data", rid, parameter, value, NULL);
+	pk_backend_spawn_helper (spawn, BACKEND_FILE, "repo-set-data", rid, parameter, value, NULL);
 }
 */
 #endif /* HAVE_PYTHON_SOFTWARE_PROPERTIES */
@@ -467,32 +469,36 @@ backend_repo_set_data (PkBackend *backend, const gchar *rid, const gchar *parame
 /**
  * backend_what_provides:
  */
-static void
-backend_what_provides (PkBackend *backend, PkBitfield filters, PkProvidesEnum provides, const gchar *search)
+void
+pk_backend_what_provides (PkBackend *backend, PkBitfield filters, PkProvidesEnum provides, gchar **values)
 {
+	gchar *search_text;
 	gchar *filters_text;
 	const gchar *provides_text;
+
 	provides_text = pk_provides_enum_to_string (provides);
 	filters_text = pk_filter_bitfield_to_string (filters);
-	pk_backend_spawn_helper (spawn, "aptBackend.py", "what-provides", filters_text, provides_text, search, NULL);
+	search_text = g_strjoinv ("&", values);
+	pk_backend_spawn_helper (spawn, BACKEND_FILE, "what-provides", filters_text, provides_text, search_text, NULL);
 	g_free (filters_text);
+	g_free (search_text);
 }
 
 /**
  * pk_backend_get_categories:
  *
 FIXME: Not implemented
-static void
-backend_get_categories (PkBackend *backend)
+void
+pk_backend_get_categories (PkBackend *backend)
 {
-	pk_backend_spawn_helper (spawn, "aptBackend.py", "get-categories", NULL);
+	pk_backend_spawn_helper (spawn, BACKEND_FILE, "get-categories", NULL);
 } */
 
 /**
  * backend_get_groups:
  */
-static PkBitfield
-backend_get_groups (PkBackend *backend)
+PkBitfield
+pk_backend_get_groups (PkBackend *backend)
 {
 	return pk_bitfield_from_enums (
 		PK_GROUP_ENUM_ACCESSORIES,
@@ -523,8 +529,8 @@ backend_get_groups (PkBackend *backend)
 /**
  * backend_get_filters:
  */
-static PkBitfield
-backend_get_filters (PkBackend *backend)
+PkBitfield
+pk_backend_get_filters (PkBackend *backend)
 {
 	return pk_bitfield_from_enums (
 		PK_FILTER_ENUM_GUI,
@@ -536,63 +542,14 @@ backend_get_filters (PkBackend *backend)
 		-1);
 }
 
-/* FIXME: port this away from PK_BACKEND_OPTIONS */
-PK_BACKEND_OPTIONS (
-	"Apt",					/* description */
-	"Sebastian Heinlein <glatzor at ubuntu.com>",	/* author */
-	backend_initialize,			/* initalize */
-	backend_destroy,			/* destroy */
-	backend_get_groups,			/* get_groups */
-	backend_get_filters,			/* get_filters */
-	NULL,					/* get_roles */
-	backend_get_mime_types,			/* get_mime_types */
-	backend_cancel,				/* cancel */
-	backend_download_packages,		/* download_packages */
-	NULL,					/* get_categories */
-	backend_get_depends,			/* get_depends */
-	backend_get_details,			/* get_details */
-#ifdef HAVE_PYTHON_META_RELEASE
-	backend_get_distro_upgrades,		/* get_distro_upgrades */
-#else
-	NULL,					/* get_distro_upgrades */
-#endif /* HAVE_PYTHON_META_RELEASE */
-	backend_get_files,			/* get_files */
-	backend_get_packages,			/* get_packages */
-#ifdef HAVE_PYTHON_SOFTWARE_PROPERTIES
-	backend_get_repo_list,			/* get_repo_list */
-#else
-	NULL,					/* get_repo_list */
-#endif /* HAVE_PYTHON_SOFTWARE_PROPERTIES */
-	backend_get_requires,			/* get_requires */
-	backend_get_update_detail,		/* get_update_detail */
-	backend_get_updates,			/* get_updates */
-	backend_install_files,			/* install_files */
-	backend_install_packages,		/* install_packages */
-	NULL,					/* install_signature */
-	backend_refresh_cache,			/* refresh_cache */
-	backend_remove_packages,		/* remove_packages */
-#ifdef HAVE_PYTHON_SOFTWARE_PROPERTIES
-	backend_repo_enable,			/* repo_enable */
-#else
-	NULL,					/* repo_enable */
-#endif /* HAVE_PYTHON_SOFTWARE_PROPERTIES */
-	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 */
-	backend_update_packages,		/* update_packages */
-	backend_update_system,			/* update_system */
-	backend_what_provides,			/* what_provides */
-	backend_simulate_install_files,		/* simulate_install_files */
-	backend_simulate_install_packages,	/* simulate_install_packages */
-	backend_simulate_remove_packages,	/* simulate_remove_packages */
-	backend_simulate_update_packages,	/* simulate_update_packages */
-	NULL,					/* upgrade_system */
-	NULL,					/* transaction_start */
-	NULL					/* transaction_stop */
-);
-
+gchar *
+pk_backend_get_author (PkBackend *backend)
+{
+	return g_strdup ("Sebastian Heinlein <devel at glatzor.de>");
+}
 
+gchar *
+pk_backend_get_description (PkBackend *backend)
+{
+	return g_strdup ("APT");
+}
commit a31022c729dbcbfc7cd94230666404aaa81401bd
Author: Sebastian Heinlein <devel at glatzor.de>
Date:   Sun Nov 27 13:23:18 2011 +0100

    Revert "apt: Remove the python apt backend, and leave the aptcc backend"
    
    This reverts commit 0c811a55414684f3f2dd5e3f2a1672c2fcce3a98.
    
    Conflicts:
    
    	configure.ac

diff --git a/backends/Makefile.am b/backends/Makefile.am
index 82340d0..ace9e30 100644
--- a/backends/Makefile.am
+++ b/backends/Makefile.am
@@ -4,6 +4,10 @@ if BACKEND_TYPE_ALPM
 SUBDIRS += alpm
 endif
 
+if BACKEND_TYPE_APT
+SUBDIRS += apt
+endif
+
 if BACKEND_TYPE_APTCC
 SUBDIRS += aptcc
 endif
diff --git a/backends/apt/20packagekit b/backends/apt/20packagekit
new file mode 100644
index 0000000..0c6bfb7
--- /dev/null
+++ b/backends/apt/20packagekit
@@ -0,0 +1,12 @@
+// THIS FILE IS USED TO INFORM PACKAGEKIT
+// THAT THE UPDATES MIGHT HAVE CHANGED
+// Whenever the dpkg is called we might have different updates
+// i.e. a user removes a package that had an update
+DPkg::Post-Invoke {
+"/usr/bin/test -e /usr/share/dbus-1/system-services/org.freedesktop.PackageKit.service && /usr/bin/test -S /var/run/dbus/system_bus_socket && /usr/bin/dbus-send --print-reply --system --dest=org.freedesktop.PackageKit --type=method_call /org/freedesktop/PackageKit org.freedesktop.PackageKit.StateHasChanged string:'cache-update' > /dev/null; /bin/echo > /dev/null";
+};
+
+// When the apt cache is updated (i.e. apt-cache update)
+APT::Update::Post-Invoke-Success {
+"/usr/bin/test -e /usr/share/dbus-1/system-services/org.freedesktop.PackageKit.service && /usr/bin/test -S /var/run/dbus/system_bus_socket && /usr/bin/dbus-send --print-reply --system --dest=org.freedesktop.PackageKit --type=method_call /org/freedesktop/PackageKit org.freedesktop.PackageKit.StateHasChanged string:'cache-update' > /dev/null; /bin/echo > /dev/null";
+};
diff --git a/backends/apt/HACKING.apt b/backends/apt/HACKING.apt
new file mode 100644
index 0000000..239700f
--- /dev/null
+++ b/backends/apt/HACKING.apt
@@ -0,0 +1,5 @@
+The backend can be tested by running it as root from the source code and using
+
+  sudo python aptBackend.py --debug
+
+Use the --help command line switch for more details.
diff --git a/backends/apt/Makefile.am b/backends/apt/Makefile.am
new file mode 100644
index 0000000..14e913d
--- /dev/null
+++ b/backends/apt/Makefile.am
@@ -0,0 +1,37 @@
+INCLUDES = \
+	-DG_LOG_DOMAIN=\"PackageKit-Apt\"
+
+plugindir = $(PK_PLUGIN_DIR)
+plugin_LTLIBRARIES = libpk_backend_apt.la
+libpk_backend_apt_la_SOURCES = pk-backend-apt.c
+libpk_backend_apt_la_LIBADD = $(PK_PLUGIN_LIBS)
+libpk_backend_apt_la_LDFLAGS = -module -avoid-version
+libpk_backend_apt_la_CFLAGS = $(PK_PLUGIN_CFLAGS) $(WARNINGFLAGS_C)
+
+aptconfdir = ${SYSCONFDIR}/apt/apt.conf.d
+aptconf_DATA = 20packagekit
+
+helperdir = $(datadir)/PackageKit/helpers/apt
+dist_helper_DATA =					\
+	aptBackend.py					\
+	$(NULL)
+
+sbin_SCRIPTS =						\
+	update-packagekit-app-data			\
+	$(NULL)
+
+EXTRA_DIST =						\
+	20packagekit					\
+	update-packagekit-app-data			\
+	README.apt					\
+	TODO.apt					\
+	$(NULL)
+
+install-data-hook:
+	chmod a+rx $(DESTDIR)$(helperdir)/*.py
+
+clean-local :
+	rm -f *~
+	rm -f *.pyc
+
+-include $(top_srcdir)/git.mk
diff --git a/backends/apt/README.apt b/backends/apt/README.apt
new file mode 100644
index 0000000..beee1e8
--- /dev/null
+++ b/backends/apt/README.apt
@@ -0,0 +1,23 @@
+The name of this backend is apt
+
+It supports the Advanced Packaging Tool used by Debian and its derivates. The
+implementation was done in Python. The communication between the daemon and
+the backend process happens via stdin and stdout, it is a so called spawned
+backend using a dispatcher to allow the execution of several commands in a row.
+
+To provide a tremendously fast search function a Xapian database is used.
+It is provided by Enrico Zini's apt-xapian-index. Debtags will be used to 
+enhance the quality of the search results further.
+
+A list of implemented functions are listed in the PackageKit FAQ:
+
+http://www.packagekit.org/pk-faq.html
+
+You can find packages for Ubuntu here:
+
+https://www.launchpad.net/~packagekit/+ppa
+
+Packages for Debian Unstable will be provided soon.
+
+Feel free to send comments or bug reports to the PackageKit mailing list
+or to the author.
diff --git a/backends/apt/TODO.apt b/backends/apt/TODO.apt
new file mode 100644
index 0000000..affc71b
--- /dev/null
+++ b/backends/apt/TODO.apt
@@ -0,0 +1,27 @@
+ISSUES:
+
+ * Support delayed or hidden debconf questions
+
+Unresolved issues can be discussed at the following wiki page:
+http://wiki.debian.org/PackageKit
+
+
+TODO:
+
+ * Implement all open backend methods. A list of implemented backend methods 
+   can be found in PackageKit FAQ or in pk-backend-apt.c.
+
+ * Blacklist packages requiring input on the terminal and try to change
+   the Debian policy in the long run. Way of automation?
+ 
+ * Allow to reinject debtags into the search results to get 
+   similar software which not matches on the search terms
+
+ * Index file list and add properties for package name and section to
+   the xapian database to also make use of it in search group and 
+   search name (do we want this?)
+
+ * Test and think about packages from cdroms
+
+ * Talk to Sebastian Dröge about his new codec search implementation using
+   debtags
diff --git a/backends/apt/aptBackend.py b/backends/apt/aptBackend.py
new file mode 100755
index 0000000..4cfb2bf
--- /dev/null
+++ b/backends/apt/aptBackend.py
@@ -0,0 +1,2245 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+"""
+Provides an apt backend to PackageKit
+
+Copyright (C) 2007 Ali Sabil <ali.sabil at gmail.com>
+Copyright (C) 2007 Tom Parker <palfrey at tevp.net>
+Copyright (C) 2008-2009 Sebastian Heinlein <glatzor at ubuntu.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.
+"""
+
+__author__  = "Sebastian Heinlein <devel at glatzor.de>"
+
+import datetime
+import errno
+import fcntl
+import gdbm
+import httplib
+import locale
+import logging
+import logging.handlers
+import optparse
+import os
+import pty
+import re
+import signal
+import socket
+import stat
+import string
+import subprocess
+import sys
+import time
+
+import apt
+import apt.debfile
+import apt_pkg
+
+from packagekit.backend import *
+from packagekit.progress import *
+from packagekit.package import *
+from packagekit.enums import *
+
+logging.basicConfig(format="%(levelname)s:%(message)s")
+pklog = logging.getLogger("PackageKitBackend")
+pklog.setLevel(logging.NOTSET)
+
+try:
+    _syslog = logging.handlers.SysLogHandler("/dev/log",
+                                      logging.handlers.SysLogHandler.LOG_DAEMON)
+    formatter = logging.Formatter('PackageKit: %(levelname)s: %(message)s')
+    _syslog.setFormatter(formatter)
+    pklog.addHandler(_syslog)
+except:
+    pass
+
+# Xapian database is optionally used to speed up package description search
+XAPIAN_DB_PATH = os.environ.get("AXI_DB_PATH", "/var/lib/apt-xapian-index")
+XAPIAN_DB = XAPIAN_DB_PATH + "/index"
+XAPIAN_DB_VALUES = XAPIAN_DB_PATH + "/values"
+XAPIAN_SUPPORT = False
+try:
+    import xapian
+except ImportError:
+    pass
+else:
+    if os.access(XAPIAN_DB, os.R_OK):
+        pklog.debug("Use XAPIAN for the search")
+        XAPIAN_SUPPORT = True
+
+# SoftwareProperties is required to proivde information about repositories
+try:
+    import softwareproperties.SoftwareProperties
+except ImportError:
+    REPOS_SUPPORT = False
+else:
+    REPOS_SUPPORT = True
+
+# Check if update-manager-core is installed to get aware of the
+# latest distro releases
+try:
+    from UpdateManager.Core.MetaRelease import MetaReleaseCore
+except ImportError:
+    META_RELEASE_SUPPORT = False
+else:
+    META_RELEASE_SUPPORT = True
+
+
+# Set a timeout for the changelog download
+socket.setdefaulttimeout(2)
+
+# Required for daemon mode
+os.putenv("PATH",
+          "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin")
+# Avoid questions from the maintainer scripts as far as possible
+os.putenv("DEBIAN_FRONTEND", "noninteractive")
+os.putenv("APT_LISTCHANGES_FRONTEND", "none")
+
+# Map Debian sections to the PackageKit group name space
+SECTION_GROUP_MAP = {
+    "admin" : GROUP_ADMIN_TOOLS,
+    "base" : GROUP_SYSTEM,
+    "comm" : GROUP_COMMUNICATION,
+    "devel" : GROUP_PROGRAMMING,
+    "doc" : GROUP_DOCUMENTATION,
+    "editors" : GROUP_PUBLISHING,
+    "electronics" : GROUP_ELECTRONICS,
+    "embedded" : GROUP_SYSTEM,
+    "games" : GROUP_GAMES,
+    "gnome" : GROUP_DESKTOP_GNOME,
+    "graphics" : GROUP_GRAPHICS,
+    "hamradio" : GROUP_COMMUNICATION,
+    "interpreters" : GROUP_PROGRAMMING,
+    "kde" : GROUP_DESKTOP_KDE,
+    "libdevel" : GROUP_PROGRAMMING,
+    "libs" : GROUP_SYSTEM,
+    "mail" : GROUP_INTERNET,
+    "math" : GROUP_SCIENCE,
+    "misc" : GROUP_OTHER,
+    "net" : GROUP_NETWORK,
+    "news" : GROUP_INTERNET,
+    "oldlibs" : GROUP_LEGACY,
+    "otherosfs" : GROUP_SYSTEM,
+    "perl" : GROUP_PROGRAMMING,
+    "python" : GROUP_PROGRAMMING,
+    "science" : GROUP_SCIENCE,
+    "shells" : GROUP_SYSTEM,
+    "sound" : GROUP_MULTIMEDIA,
+    "tex" : GROUP_PUBLISHING,
+    "text" : GROUP_PUBLISHING,
+    "utils" : GROUP_ACCESSORIES,
+    "web" : GROUP_INTERNET,
+    "x11" : GROUP_DESKTOP_OTHER,
+    "unknown" : GROUP_UNKNOWN,
+    "alien" : GROUP_UNKNOWN,
+    "translations" : GROUP_LOCALIZATION,
+    "metapackages" : GROUP_COLLECTIONS }
+
+# Regular expressions to detect bug numbers in changelogs according to the
+# Debian Policy Chapter 4.4. For details see the footnote 16:
+# http://www.debian.org/doc/debian-policy/footnotes.html#f16
+MATCH_BUG_CLOSES_DEBIAN=r"closes:\s*(?:bug)?\#?\s?\d+(?:,\s*(?:bug)?\#?\s?\d+)*"
+MATCH_BUG_NUMBERS=r"\#?\s?(\d+)"
+# URL pointing to a bug in the Debian bug tracker
+HREF_BUG_DEBIAN="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=%s"
+
+MATCH_BUG_CLOSES_UBUNTU = r"lp:\s+\#\d+(?:,\s*\#\d+)*"
+HREF_BUG_UBUNTU = "https://bugs.launchpad.net/bugs/%s"
+
+# Regular expression to find cve references
+MATCH_CVE="CVE-\d{4}-\d{4}"
+HREF_CVE="http://web.nvd.nist.gov/view/vuln/detail?vulnId=%s"
+
+SYNAPTIC_PIN_FILE = "/var/lib/synaptic/preferences"
+
+DEFAULT_ENCODING = "UTF-8"
+
+# Required to get translated descriptions
+try:
+    locale.setlocale(locale.LC_ALL, "")
+except locale.Error:
+    pklog.debug("Failed to unset LC_ALL")
+
+# Allows to write unicode to stdout
+import codecs
+sys.stdout = codecs.getwriter(DEFAULT_ENCODING)(sys.stdout)
+
+# Required to parse RFC822 time stamps
+try:
+    locale.setlocale(locale.LC_TIME, "C")
+except locale.Error:
+    pklog.debug("Failed to unset LC_TIME")
+
+def lock_cache(func):
+    """Lock the system package cache before excuting the decorated function and
+    release the lock afterwards.
+    """
+    def _locked_cache(*args, **kwargs):
+        backend = args[0]
+        backend.status(STATUS_WAITING_FOR_LOCK)
+        while True:
+            try:
+                # see if the lock for the download dir can be acquired
+                # (work around bug in python-apt/apps that call _fetchArchives)
+                lockfile = apt_pkg.Config.FindDir("Dir::Cache::Archives") + \
+                           "lock"
+                lock = apt_pkg.GetLock(lockfile)
+                if lock < 0:
+                    raise SystemError("failed to lock '%s'" % lockfile)
+                else:
+                    os.close(lock)
+                # then lock the main package system
+                apt_pkg.PkgSystemLock()
+            except SystemError:
+                time.sleep(3)
+            else:
+                break
+        try:
+            func(*args, **kwargs)
+        finally:
+            backend._unlock_cache()
+    return _locked_cache
+
+
+class PKError(Exception):
+    pass
+
+class PackageManagerFailedPKError(PKError):
+    def __init__(self, msg, pkg, output):
+        self.message = msg
+        self.package = pkg
+        self.output = output
+
+class InstallTimeOutPKError(PKError):
+    pass
+
+
+class DpkgInstallProgress(apt.progress.InstallProgress):
+    """
+    Class to initiate and monitor installation of local package files with dpkg
+    """
+    #FIXME: Use the merged DpkgInstallProgress of python-apt
+    def recover(self):
+        """
+        Run "dpkg --configure -a"
+        """
+        cmd = ["/usr/bin/dpkg", "--status-fd", str(self.writefd),
+               "--root", apt_pkg.Config["Dir"],
+               "--force-confdef", "--force-confold", 
+               "--configure", "-a"]
+        self.run(cmd)
+
+    def install(self, filenames):
+        """
+        Install the given package using a dpkg command line call
+        """
+        cmd = ["/usr/bin/dpkg", "--force-confdef", "--force-confold",
+               "--status-fd", str(self.writefd), 
+               "--root", apt_pkg.Config["Dir"], "-i"]
+        cmd.extend(map(lambda f: str(f), filenames))
+        self.run(cmd)
+
+    def run(self, cmd):
+        """
+        Run and monitor a dpkg command line call
+        """
+        pklog.debug("Executing: %s" % cmd)
+        (self.master_fd, slave) = pty.openpty()
+        fcntl.fcntl(self.master_fd, fcntl.F_SETFL, os.O_NONBLOCK)
+        p = subprocess.Popen(cmd, stdout=slave, stdin=slave)
+        self.child_pid = p.pid
+        res = self.waitChild()
+        return res
+
+    def updateInterface(self):
+        """
+        Process status messages from dpkg
+        """
+        if self.statusfd == None:
+            return
+        try:
+            while not self.read.endswith("\n"):
+                self.read += os.read(self.statusfd.fileno(), 1)
+        except OSError, (error_no, error_str):
+            # resource temporarly unavailable is ignored
+            if error_no not in [errno.EAGAIN, errno.EWOULDBLOCK]:
+                pklog.warn(error_str)
+        if self.read.endswith("\n"):
+            statusl = string.split(self.read, ":")
+            if len(statusl) < 3:
+                pklog.warn("got garbage from dpkg: '%s'" % self.read)
+                self.read = ""
+            status = statusl[2].strip()
+            pkg = statusl[1].strip()
+            #print status
+            if status == "error":
+                self.error(pkg, format_string(status))
+            elif status == "conffile-prompt":
+                # we get a string like this:
+                # 'current-conffile' 'new-conffile' useredited distedited
+                match = re.search(".+conffile-prompt : '(.+)' '(.+)'",
+                                  self.read)
+                self.conffile(match.group(1), match.group(2))
+            else:
+                pklog.debug("Dpkg status: %s" % status)
+                self.status = status
+            self.read = ""
+
+
+class PackageKitOpProgress(apt.progress.OpProgress):
+    """
+    Handle the cache opening process
+    """
+    def __init__(self, backend, prange=(0,100), progress=True):
+        self._backend = backend
+        apt.progress.OpProgress.__init__(self)
+        self.steps = []
+        for v in [0.12, 0.25, 0.50, 0.75, 1.00]:
+            s = prange[0] + (prange[1] - prange[0]) * v
+            self.steps.append(s)
+        self.pstart = float(prange[0])
+        self.pend = self.steps.pop(0)
+        self.pprev = None
+        self.show_progress = progress
+
+    # OpProgress callbacks
+    def update(self, percent):
+        progress = int(self.pstart + percent / 100 * (self.pend - self.pstart))
+        if self.show_progress == True and self.pprev < progress:
+            self._backend.percentage(progress)
+            self.pprev = progress
+
+    def done(self):
+        self.pstart = self.pend
+        try:
+            self.pend = self.steps.pop(0)
+        except:
+            pklog.warning("An additional step to open the cache is required")
+
+
+class PackageKitFetchProgress(apt.progress.FetchProgress):
+    """
+    Handle the package download process
+    """
+    def __init__(self, backend, prange=(0,100), status=STATUS_DOWNLOAD):
+        self._backend = backend
+        apt.progress.FetchProgress.__init__(self)
+        self.start_progress = prange[0]
+        self.end_progress = prange[1]
+        self.last_progress = None
+        self.last_sub_progress = None
+        self.status = status
+        self.package_states = {}
+
+    def pulse_items(self, items):
+        apt.progress.FetchProgress.pulse(self)
+        progress = int(self.start_progress + self.percent/100 * \
+                       (self.end_progress - self.start_progress))
+        # A backwards running progress is reported as a not available progress
+        if self.last_progress > progress:
+            self._backend.percentage()
+        else:
+            self._backend.percentage(progress)
+            self.last_progress = progress
+        for item in items:
+            uri, desc, shortdesc, file_size, partial_size = item
+            try:
+                pkg = self._backend._cache[shortdesc]
+            except KeyError:
+                pass
+            else:
+                self._backend._emit_package(pkg, INFO_DOWNLOADING, True)
+                sub_progress = partial_size * 100 / file_size
+                if sub_progress > self.last_sub_progress:
+                    self._last_sub_progress = sub_progress
+                    self._backend.sub_percentage(sub_progress)
+        return True
+
+    def updateStatus(self, uri, descr, pkg_name, status):
+        """Callback for a fetcher status update."""
+        # Emit a Package signal for the currently processed package
+        try:
+            pkg = self._backend._cache[pkg_name]
+        except KeyError:
+            pass
+        else:
+            if not pkg_name in self.package_states or \
+               self.package_states[pkg_name] != status:
+                if status == 0:
+                    info = INFO_FINISHED
+                else:
+                    info = INFO_DOWNLOADING
+                self.package_states[pkg_name] = status
+                self._backend._emit_package(pkg, info, True)
+
+    def start(self):
+        self._backend.status(self.status)
+        self._backend.allow_cancel(True)
+
+    def stop(self):
+        self._backend.percentage(self.end_progress)
+        self._backend.allow_cancel(False)
+
+    def mediaChange(self, medium, drive):
+        #FIXME: Perhaps use hal to show a nicer drive name
+        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
+        #        later, but this one will be skipped by the daemon
+        self._backend.error(ERROR_MEDIA_CHANGE_REQUIRED,
+                            "Insert the CDROM or DVD labeled '%s' "
+                            "into drive '%s'" % (medium, drive),
+                            exit=False)
+        return False
+
+
+class PackageKitInstallProgress(apt.progress.InstallProgress):
+    """
+    Handle the installation and removal process. Bits taken from
+    DistUpgradeViewNonInteractive.
+    """
+    def __init__(self, backend, prange=(0,100)):
+        apt.progress.InstallProgress.__init__(self)
+        self._backend = backend
+        self.pstart = prange[0]
+        self.pend = prange[1]
+        self.pprev = None
+        self.last_activity = None
+        self.conffile_prompts = set()
+        # insanly long timeout to be able to kill hanging maintainer scripts
+        self.timeout = 10 * 60
+        self.start_time = None
+        self.output = ""
+        self.master_fd = None
+        self.child_pid = None
+        self.last_pkg = None
+
+    def statusChange(self, pkg_name, percent, status):
+        self.last_activity = time.time()
+        progress = self.pstart + percent/100 * (self.pend - self.pstart)
+        if self.pprev < progress:
+            self._backend.percentage(int(progress))
+            self.pprev = progress
+        # Emit a Package signal for the currently processed package
+        if pkg_name != self.last_pkg and self._backend._cache.has_key(pkg_name):
+            pkg = self._backend._cache[pkg_name]
+            if pkg.markedInstall or pkg.markedReinstall:
+                self._backend._emit_package(pkg, INFO_INSTALLING, True)
+            elif pkg.markedDelete:
+                self._backend._emit_package(pkg, INFO_REMOVING, False)
+            elif pkg.markedUpgrade:
+                self._backend._emit_package(pkg, INFO_UPDATING, True)
+            elif pkg.markedDowngrade:
+                self._backend._emit_package(pkg, INFO_DOWNGRADING, True)
+            self.last_pkg = pkg_name
+        pklog.debug("APT status: %s" % status)
+
+    def startUpdate(self):
+        # The apt system lock was set by _lock_cache() before
+        self._backend._unlock_cache()
+        self._backend.status(STATUS_COMMIT)
+        self.last_activity = time.time()
+        self.start_time = time.time()
+
+    def fork(self):
+        pklog.debug("fork()")
+        (pid, self.master_fd) = pty.fork()
+        if pid != 0:
+            fcntl.fcntl(self.master_fd, fcntl.F_SETFL, os.O_NONBLOCK)
+        return pid
+
+    def updateInterface(self):
+        apt.progress.InstallProgress.updateInterface(self)
+        # Collect the output from the package manager
+        try:
+            out = os.read(self.master_fd, 512)
+            self.output = self.output + out
+            pklog.debug("APT out: %s " % out)
+        except OSError:
+            pass
+        # catch a time out by sending crtl+c
+        if self.last_activity + self.timeout < time.time():
+            pklog.critical("no activity for %s time sending ctrl-c" \
+                           % self.timeout)
+            os.write(self.master_fd, chr(3))
+            #FIXME: include this into the normal install progress and add 
+            #       correct package information
+            raise InstallTimeOutPKError(self.output)
+
+    def conffile(self, current, new):
+        pklog.warning("Config file prompt: '%s' (sending no)" % current)
+        self.conffile_prompts.add(new)
+
+    def error(self, pkg, msg):
+        raise PackageManagerFailedPKError(pkg, msg, self.output)
+
+    def finishUpdate(self):
+        pklog.debug("finishUpdate()")
+        if self.conffile_prompts:
+            self._backend.message(MESSAGE_CONFIG_FILES_CHANGED, 
+                                  "The following conffile prompts were found "
+                                  "and need investigation: %s" % \
+                                  "\n".join(self.conffile_prompts))
+        # Check for required restarts
+        if os.path.exists("/var/run/reboot-required") and \
+           os.path.getmtime("/var/run/reboot-required") > self.start_time:
+            self._backend.require_restart(RESTART_SYSTEM, "")
+
+
+class PackageKitDpkgInstallProgress(DpkgInstallProgress,
+                                    PackageKitInstallProgress):
+    """
+    Class to integrate the progress of core dpkg operations into PackageKit
+    """
+    def run(self, filenames):
+        return DpkgInstallProgress.run(self, filenames)
+
+    def updateInterface(self):
+        DpkgInstallProgress.updateInterface(self)
+        try:
+            out = os.read(self.master_fd, 512)
+            self.output += out
+            if out != "": pklog.debug("Dpkg out: %s" % out)
+        except OSError:
+            pass
+        # we timed out, send ctrl-c
+        if self.last_activity + self.timeout < time.time():
+            pklog.critical("no activity for %s time sending "
+                           "ctrl-c" % self.timeout)
+            os.write(self.master_fd, chr(3))
+            raise InstallTimeOutPKError(self.output)
+
+
+if REPOS_SUPPORT == True:
+    class PackageKitSoftwareProperties(softwareproperties.SoftwareProperties.SoftwareProperties):
+        """
+        Helper class to fix a siily bug in python-software-properties
+        """
+        def set_modified_sourceslist(self):
+            self.save_sourceslist()
+
+
+class PackageKitAptBackend(PackageKitBaseBackend):
+    """
+    PackageKit backend for apt
+    """
+    def __init__(self, args):
+        pklog.info("Initializing APT backend")
+        signal.signal(signal.SIGQUIT, self._sigquit)
+        self._cache = None
+        self._last_cache_refresh = None
+        apt_pkg.InitConfig()
+        apt_pkg.Config.Set("DPkg::Options::", '--force-confdef')
+        apt_pkg.Config.Set("DPkg::Options::", '--force-confold')
+        PackageKitBaseBackend.__init__(self, args)
+        self._open_cache(progress=False)
+
+    # Methods ( client -> engine -> backend )
+
+    def search_file(self, filters, filenames):
+        """Search for files in packages.
+
+        Works only for installed file if apt-file isn't installed.
+        """
+        pklog.info("Searching for file: %s" % filenames)
+        self.status(STATUS_QUERY)
+        self.percentage(None)
+        self._check_init(progress=False)
+        self.allow_cancel(True)
+
+        result_names = set()
+        # Optionally make use of apt-file's Contents cache to search for not
+        # installed files. But still search for installed files additionally
+        # to make sure that we provide up-to-date results
+        if os.path.exists("/usr/bin/apt-file") and \
+           FILTER_INSTALLED not in filters:
+            #FIXME: Make use of rapt-file on Debian if the network is available
+            #FIXME: Show a warning to the user if the apt-file cache is several
+            #       weeks old
+            pklog.debug("Using apt-file")
+            filenames_regex = []
+            for filename in filenames:
+                if filename.startswith("/"):
+                    pattern = "^%s$" % filename[1:].replace("/", "\/")
+                else:
+                    pattern = "\/%s$" % filename
+                filenames_regex.append(pattern)
+            cmd = ["/usr/bin/apt-file", "--regexp", "--non-interactive",
+                   "--package-only", "find", "|".join(filenames_regex)]
+            pklog.debug("Calling: %s" % cmd)
+            apt_file = subprocess.Popen(cmd, stdout=subprocess.PIPE,
+                                        stderr=subprocess.PIPE)
+            stdout, stderr = apt_file.communicate()
+            if apt_file.returncode == 0:
+                #FIXME: Actually we should check if the file is part of the
+                #       candidate, e.g. if unstable and experimental are
+                #       enabled and a file would only be part of the
+                #       experimental version
+                result_names.update(stdout.split())
+                self._emit_visible_packages_by_name(filters, result_names)
+            else:
+                self.error(ERROR_INTERNAL_ERROR,
+                           format_string("%s %s" % (stdout, stderr)))
+        # Search for installed files
+        filenames_regex = []
+        for filename in filenames:
+            if filename.startswith("/"):
+                pattern = "^%s$" % filename.replace("/", "\/")
+            else:
+                pattern = ".*\/%s$" % filename
+            filenames_regex.append(pattern)
+        files_pattern = re.compile("|".join(filenames_regex))
+        for pkg in self._cache:
+            if pkg.name in result_names:
+                continue
+            for installed_file in self._get_installed_files(pkg):
+                if files_pattern.match(installed_file):
+                    self._emit_visible_package(filters, pkg)
+                    break
+
+    def search_group(self, filters, groups):
+        """
+        Implement the apt2-search-group functionality
+        """
+        pklog.info("Searching for groups: %s" % groups)
+        self.status(STATUS_QUERY)
+        self.percentage(None)
+        self._check_init(progress=False)
+        self.allow_cancel(True)
+
+        for pkg in self._cache:
+            if self._get_package_group(pkg) in groups:
+                self._emit_visible_package(filters, pkg)
+
+    def search_name(self, filters, values):
+        """
+        Implement the apt2-search-name functionality
+        """
+        def matches(searches, text):
+            for search in searches:
+                if not search in text:
+                    return False
+            return True
+        pklog.info("Searching for package name: %s" % values)
+        self.status(STATUS_QUERY)
+        self.percentage(None)
+        self._check_init(progress=False)
+        self.allow_cancel(True)
+
+        for pkg_name in self._cache.keys():
+            if matches(values, pkg_name):
+                self._emit_all_visible_pkg_versions(filters,
+                                                    self._cache[pkg_name])
+
+    def search_details(self, filters, values):
+        """
+        Implement the apt2-search-details functionality
+        """
+        pklog.info("Searching for package details: %s" % values)
+        self.status(STATUS_QUERY)
+        self.percentage(None)
+        self._check_init(progress=False)
+        self.allow_cancel(True)
+        results = []
+
+        if XAPIAN_SUPPORT == True:
+            search_flags = (xapian.QueryParser.FLAG_BOOLEAN |
+                            xapian.QueryParser.FLAG_PHRASE |
+                            xapian.QueryParser.FLAG_LOVEHATE |
+                            xapian.QueryParser.FLAG_BOOLEAN_ANY_CASE)
+            pklog.debug("Performing xapian db based search")
+            db = xapian.Database(XAPIAN_DB)
+            parser = xapian.QueryParser()
+            parser.set_default_op(xapian.Query.OP_AND)
+            query = parser.parse_query(u" ".join(values), search_flags)
+            enquire = xapian.Enquire(db)
+            enquire.set_query(query)
+            matches = enquire.get_mset(0, 1000)
+            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:
+            def matches(searches, text):
+                for search in searches:
+                    if not search in text:
+                        return False
+                return True
+            pklog.debug("Performing apt cache based search")
+            values = [val.lower() for val in values]
+            for pkg in self._cache:
+                txt = pkg.name
+                try:
+                    txt += pkg.candidate.raw_description.lower()
+                    txt += pkg.candidate._translated_records.long_desc.lower()
+                except AttributeError:
+                    pass
+                if matches(values, txt.decode(DEFAULT_ENCODING, "replace")):
+                    self._emit_visible_package(filters, pkg)
+
+    def get_distro_upgrades(self):
+        """
+        Implement the {backend}-get-distro-upgrades functionality
+        """
+        pklog.info("Get distro upgrades")
+        self.status(STATUS_INFO)
+        self.allow_cancel(False)
+        self.percentage(None)
+
+        if META_RELEASE_SUPPORT == False:
+            if self._cache.has_key("update-manager-core") and \
+               self._cache["update-manager-core"].isInstalled == False:
+                self.error(ERROR_INTERNAL_ERROR,
+                           "Please install the package update-manager-core to "
+                           "get notified of the latest distribution releases.")
+            else:
+                self.error(ERROR_INTERNAL_ERROR,
+                           "Please make sure that update-manager-core is"
+                           "correctly installed.")
+            return
+
+        #FIXME Evil to start the download during init
+        meta_release = MetaReleaseCore(False, False)
+        #FIXME: should use a lock
+        while meta_release.downloading:
+            time.sleep(1)
+        #FIXME: Add support for description
+        if meta_release.new_dist != None:
+            self.distro_upgrade("stable", 
+                                "%s %s" % (meta_release.new_dist.name,
+                                           meta_release.new_dist.version),
+                                "The latest stable release")
+
+    def get_updates(self, filters):
+        """
+        Implement the {backend}-get-update functionality.
+
+        Only report updates which can be installed safely: Which can depend
+        on the installation of additional packages but which don't require
+        the removal of already installed packages or block any other update.
+        """
+        def succeeds_security_update(pkg):
+            """
+            Return True if an update succeeds a previous security update
+
+            An example would be a package with version 1.1 in the security
+            archive and 1.1.1 in the archive of proposed updates or the
+            same version in both archives.
+            """
+            for version in pkg.versions:
+                # Only check versions between the installed and the candidate
+                if pkg.installed and \
+                   apt_pkg.VersionCompare(version.version,
+                                          pkg.installed.version) <= 0 and \
+                   apt_pkg.VersionCompare(version.version,
+                                          pkg.candidate.version) > 0:
+                    continue
+                for origin in version.origins:
+                    if origin.origin in ["Debian", "Ubuntu"] and \
+                       (origin.archive.endswith("-security") or \
+                        origin.label == "Debian-Security") and \
+                       origin.trusted:
+                        return True
+            return False
+        #FIXME: Implment the basename filter
+        pklog.info("Get updates")
+        self.status(STATUS_QUERY)
+        self.allow_cancel(True)
+        self.percentage(None)
+        self._check_init(progress=False)
+        # Start with a safe upgrade
+        self._cache.upgrade()
+        upgrades_safe = self._cache.getChanges()
+        resolver = apt.cache.ProblemResolver(self._cache)
+        for upgrade in upgrades_safe:
+            resolver.clear(upgrade)
+            resolver.protect(upgrade)
+        # Search for upgrades which are not already part of the safe upgrade
+        # but would only require the installation of additional packages
+        for pkg in self._cache:
+            if not pkg.isUpgradable:
+                continue
+            # This may occur on pinned packages which have been updated to
+            # later version than the pinned one
+            if not pkg.candidateOrigin:
+                continue
+            pklog.debug("Checking upgrade of %s" % pkg.name)
+            if not pkg in upgrades_safe:
+                # Check if the upgrade would require the removal of an already
+                # installed package. If this is the case it will be skipped
+                resolver.clear(pkg)
+                resolver.protect(pkg)
+                resolver.install_protect()
+                try:
+                    resolver.resolve()
+                except:
+                    self._emit_package(pkg, INFO_BLOCKED, force_candidate=True)
+                    resolver.clear(pkg)
+                    self._cache.clear()
+                    continue
+                if self._cache.delete_count:
+                    self._emit_package(pkg, INFO_BLOCKED, force_candidate=True)
+                    resolver.clear(pkg)
+                    self._cache.clear()
+                    continue
+            # The update can be safely installed
+            info = INFO_NORMAL
+            # Detect the nature of the upgrade (e.g. security, enhancement)
+            archive = pkg.candidateOrigin[0].archive
+            origin = pkg.candidateOrigin[0].origin
+            trusted = pkg.candidateOrigin[0].trusted
+            label = pkg.candidateOrigin[0].label
+            if origin in ["Debian", "Ubuntu"] and trusted == True:
+                if archive.endswith("-security") or \
+                    label == "Debian-Security":
+                    info = INFO_SECURITY
+                elif succeeds_security_update(pkg):
+                    pklog.debug("Update of %s succeeds a security update. "
+                                "Raising its priority." % pkg.name)
+                    info = INFO_SECURITY
+                elif archive.endswith("-backports"):
+                    info = INFO_ENHANCEMENT
+                elif archive.endswith("-updates"):
+                    info = INFO_BUGFIX
+            if origin in ["Backports.org archive"] and trusted == True:
+                info = INFO_ENHANCEMENT
+            self._emit_package(pkg, info, force_candidate=True)
+        self._cache.clear()
+
+    def get_update_detail(self, pkg_ids):
+        """
+        Implement the {backend}-get-update-details functionality
+        """
+        def get_bug_urls(changelog):
+            """
+            Create a list of urls pointing to closed bugs in the changelog
+            """
+            urls = []
+            for r in re.findall(MATCH_BUG_CLOSES_DEBIAN, changelog,
+                                re.IGNORECASE | re.MULTILINE):
+                urls.extend([HREF_BUG_DEBIAN % bug for bug in \
+                             re.findall(MATCH_BUG_NUMBERS, r)])
+            for r in re.findall(MATCH_BUG_CLOSES_UBUNTU, changelog,
+                                re.IGNORECASE | re.MULTILINE):
+                urls.extend([HREF_BUG_UBUNTU % bug for bug in \
+                             re.findall(MATCH_BUG_NUMBERS, r)])
+            return urls
+
+        def get_cve_urls(changelog):
+            """
+            Create a list of urls pointing to cves referred in the changelog
+            """
+            return map(lambda c: HREF_CVE % c,
+                       re.findall(MATCH_CVE, changelog, re.MULTILINE))
+
+        pklog.info("Get update details of %s" % pkg_ids)
+        self.status(STATUS_DOWNLOAD_CHANGELOG)
+        self.percentage(0)
+        self.allow_cancel(True)
+        self._check_init(None)
+        total = len(pkg_ids)
+        count = 1
+        for pkg_id in pkg_ids:
+            self.percentage(count * 100 / total)
+            count += 1
+            pkg = self._get_package_by_id(pkg_id)
+            # FIXME add some real data
+            if pkg.installed.origins:
+                installed_origin = pkg.installed.origins[0].label
+            else:
+                installed_origin = ""
+            updates = "%s;%s;%s;%s" % (pkg.name, pkg.installed.version,
+                                       pkg.installed.architecture,
+                                       installed_origin)
+            obsoletes = ""
+            vendor_url = ""
+            restart = "none"
+            update_text = u""
+            state = ""
+            issued = ""
+            updated = ""
+            #FIXME: make this more configurable. E.g. a dbus update requires
+            #       a reboot on Ubuntu but not on Debian
+            if pkg.name.startswith("linux-image-") or \
+               pkg.name in ["libc6", "dbus"]:
+                restart == RESTART_SYSTEM
+            changelog_raw = pkg.getChangelog()
+            # The internal download error string of python-apt ist not
+            # provided as unicode object
+            if not isinstance(changelog_raw, unicode):
+                changelog_raw = changelog_raw.decode(DEFAULT_ENCODING)
+            # Convert the changelog to markdown syntax
+            changelog = u""
+            for line in changelog_raw.split("\n"):
+                if line == "":
+                    changelog += " \n"
+                else:
+                    changelog += u"    %s  \n" % line
+                if line.startswith(pkg.candidate.source_name):
+                    match = re.match(r"(?P<source>.+) \((?P<version>.*)\) "
+                                      "(?P<dist>.+); urgency=(?P<urgency>.+)",
+                                     line)
+                    update_text += u"%s\n%s\n\n" % (match.group("version"),
+                                                    "=" * \
+                                                    len(match.group("version")))
+                elif line.startswith("  "):
+                    update_text += u"  %s  \n" % line
+                elif line.startswith(" --"):
+                    #FIXME: Add %z for the time zone - requires Python 2.6
+                    update_text += u"  \n"
+                    match = re.match("^ -- (?P<maintainer>.+) (?P<mail><.+>)  "
+                                     "(?P<date>.+) (?P<offset>[-\+][0-9]+)$",
+                                     line)
+                    date = datetime.datetime.strptime(match.group("date"),
+                                                      "%a, %d %b %Y %H:%M:%S")
+
+                    issued = date.isoformat()
+                    if not updated:
+                        updated = date.isoformat()
+            if issued == updated:
+                updated = ""
+            bugzilla_url = ";;".join(get_bug_urls(changelog))
+            cve_url = ";;".join(get_cve_urls(changelog))
+            self.update_detail(pkg_id, updates, obsoletes, vendor_url,
+                               bugzilla_url, cve_url, restart,
+                               format_string(update_text),
+                               format_string(changelog),
+                               state, issued, updated)
+
+    def get_details(self, pkg_ids):
+        """
+        Implement the {backend}-get-details functionality
+        """
+        pklog.info("Get details of %s" % pkg_ids)
+        self.status(STATUS_INFO)
+        self.percentage(None)
+        self.allow_cancel(True)
+        self._check_init(progress=False)
+        for pkg_id in pkg_ids:
+            pkg = self._get_package_by_id(pkg_id)
+            #FIXME: We need more fine grained license information!
+            candidate = pkg.candidateOrigin
+            if candidate != None and  \
+               candidate[0].component in ["main", "universe"] and \
+               candidate[0].origin in ["Debian", "Ubuntu"]:
+                license = "free"
+            else:
+                license = "unknown"
+            group = self._get_package_group(pkg)
+            self.details(pkg_id, license, group,
+                         format_string(pkg.description),
+                         pkg.homepage.decode(DEFAULT_ENCODING),
+                         pkg.packageSize)
+
+    @lock_cache
+    def update_system(self, only_trusted):
+        """
+        Implement the {backend}-update-system functionality
+        """
+        pklog.info("Upgrading system")
+        self.status(STATUS_UPDATE)
+        self.allow_cancel(False)
+        self.percentage(0)
+        self._check_init(prange=(0,5))
+        # Start with protecting all safe upgrades
+        self._cache.upgrade()
+        upgrades_safe = self._cache.getChanges()
+        resolver = apt.cache.ProblemResolver(self._cache)
+        for upgrade in upgrades_safe:
+            resolver.clear(upgrade)
+            resolver.protect(upgrade)
+        # Search for upgrades which are not already part of the safe upgrade
+        # but would only require the installation of additional packages
+        for pkg in self._cache:
+            if not pkg.isUpgradable or pkg in upgrades_safe:
+                continue
+            pklog.debug("Checking upgrade of %s" % pkg.name)
+            resolver.clear(pkg)
+            resolver.protect(pkg)
+            resolver.install_protect()
+            try:
+                resolver.resolve()
+            except:
+                resolver.clear(pkg)
+                self._cache.clear()
+                continue
+            if self._cache.delete_count:
+                resolver.clear(pkg)
+                self._cache.clear()
+                continue
+        resolver.install_protect()
+        resolver.resolve()
+        self._check_trusted(only_trusted)
+        self._commit_changes()
+
+    @lock_cache
+    def remove_packages(self, allow_deps, auto_remove, ids):
+        """
+        Implement the {backend}-remove functionality
+        """
+        pklog.info("Removing package(s): id %s" % ids)
+        self.status(STATUS_REMOVE)
+        self.allow_cancel(False)
+        self.percentage(0)
+        self._check_init(prange=(0,10))
+        if auto_remove:
+            auto_removables = [pkg.name for pkg in self._cache \
+                               if pkg.isAutoRemovable]
+        pkgs = self._mark_for_removal(ids)
+        # Error out if the installation would the installation or upgrade of
+        # other packages
+        if self._cache.install_count:
+            installed = [pkg.name for pkg in self._cache.getChanges() if \
+                         pkg.markedInstall or pkg.markedUpgrade]
+            self.error(ERROR_DEP_RESOLUTION_FAILED,
+                       "The following packages would have to upgraded or "
+                       "installed and so block the removal: "
+                       "%s" % " ".join(installed))
+        # Check if the removal would remove further packages
+        if not allow_deps and self._cache.delete_count != len(ids):
+            dependencies = [pkg.name for pkg in self._cache.getChanges() \
+                            if pkg.name not in pkgs]
+            self.error(ERROR_DEP_RESOLUTION_FAILED,
+                       "The following packages would have also to be removed: "
+                       "%s" % " ".join(dependencies))
+        # Check for no longer required dependencies which should be removed too
+        if auto_remove:
+            for pkg in self._cache:
+                if pkg.isAutoRemovable and pkg.name not in auto_removables:
+                    pkg.markDelete(False)
+        #FIXME: Should support only_trusted
+        self._commit_changes(fetch_range=(10,10), install_range=(10,90))
+        self._open_cache(prange=(90,99))
+        for p in pkgs:
+            if self._cache.has_key(p) and self._cache[p].isInstalled:
+                self.error(ERROR_PACKAGE_FAILED_TO_INSTALL,
+                           "%s is still installed" % p)
+        self.percentage(100)
+
+    def simulate_remove_packages(self, ids):
+        """Emit the change required for the removal of the given packages."""
+        pklog.info("Simulating removal of package with id %s" % ids)
+        self.status(STATUS_DEP_RESOLVE)
+        self.allow_cancel(True)
+        self.percentage(None)
+        self._check_init(progress=False)
+        pkgs = self._mark_for_removal(ids)
+        self._emit_changes(pkgs)
+
+    def _mark_for_removal(self, ids):
+        """Resolve the given package ids and mark the packages for removal."""
+        pkgs = []
+        action_group = self._cache.actiongroup()
+        resolver = apt.cache.ProblemResolver(self._cache)
+        for id in ids:
+            version = self._get_version_by_id(id)
+            pkg = version.package
+            if not pkg.isInstalled:
+                self.error(ERROR_PACKAGE_NOT_INSTALLED,
+                           "Package %s isn't installed" % pkg.name)
+            if pkg.installed != version:
+                self.error(ERROR_PACKAGE_NOT_INSTALLED,
+                           "Version %s of %s isn't installed" % \
+                           (version.version, pkg.name))
+            if pkg.essential == True:
+                self.error(ERROR_CANNOT_REMOVE_SYSTEM_PACKAGE,
+                           "Package %s cannot be removed." % pkg.name)
+            pkgs.append(pkg.name[:])
+            pkg.markDelete(False, False)
+            resolver.clear(pkg)
+            resolver.protect(pkg)
+            resolver.remove(pkg)
+        try:
+            resolver.resolve()
+        except SystemError, error:
+            broken = [pkg.name for pkg in self._cache if pkg.is_inst_broken]
+            self.error(ERROR_DEP_RESOLUTION_FAILED,
+                       "The following packages would break and so block the "
+                       "removal: %s" % " ".join(broken))
+        action_group.release()
+        return pkgs
+
+    def get_repo_list(self, filters):
+        """
+        Implement the {backend}-get-repo-list functionality
+
+        FIXME: should we use the abstration of software-properties or provide
+               low level access using pure aptsources?
+        """
+        pklog.info("Getting repository list: %s" % filters)
+        self.status(STATUS_INFO)
+        self.allow_cancel(False)
+        self.percentage(0)
+        if REPOS_SUPPORT == False:
+            if self._cache.has_key("python-software-properties") and \
+               self._cache["python-software-properties"].isInstalled == False:
+                self.error(ERROR_INTERNAL_ERROR,
+                           "Please install the package "
+                           "python-software-properties to handle repositories")
+            else:
+                self.error(ERROR_INTERNAL_ERROR,
+                           "Please make sure that python-software-properties is"
+                           "correctly installed.")
+        repos = PackageKitSoftwareProperties()
+        # Emit distro components as virtual repositories
+        for comp in repos.distro.source_template.components:
+            repo_id = "%s_comp_%s" % (repos.distro.id, comp.name)
+            description = "%s %s - %s (%s)" % (repos.distro.id,
+                                               repos.distro.release,
+                                               comp.get_description(),
+                                               comp.name)
+            #FIXME: There is no inconsitent state in PackageKit
+            enabled = repos.get_comp_download_state(comp)[0]
+            if not FILTER_DEVELOPMENT in filters:
+                self.repo_detail(repo_id,
+                                 description.decode(DEFAULT_ENCODING),
+                                 enabled)
+        # Emit distro's virtual update repositories
+        for template in repos.distro.source_template.children:
+            repo_id = "%s_child_%s" % (repos.distro.id, template.name)
+            description = "%s %s - %s (%s)" % (repos.distro.id,
+                                               repos.distro.release,
+                                               template.description,
+                                               template.name)
+            #FIXME: There is no inconsitent state in PackageKit
+            enabled = repos.get_comp_child_state(template)[0]
+            if not FILTER_DEVELOPMENT in filters:
+                self.repo_detail(repo_id,
+                                 description.decode(DEFAULT_ENCODING),
+                                 enabled)
+        # Emit distro's cdrom sources
+        for source in repos.get_cdrom_sources():
+            if FILTER_NOT_DEVELOPMENT in filters and \
+               source.type in ("deb-src", "rpm-src"):
+                continue
+            enabled = not source.disabled
+            # Remove markups from the description
+            description = re.sub(r"</?b>", "", repos.render_source(source))
+            repo_id = "cdrom_%s_%s" % (source.uri, source.dist)
+            repo_id.join(map(lambda c: "_%s" % c, source.comps))
+            self.repo_detail(repo_id, description.decode(DEFAULT_ENCODING),
+                             enabled)
+        # Emit distro's virtual source code repositoriy
+        if not FILTER_NOT_DEVELOPMENT in filters:
+            repo_id = "%s_source" % repos.distro.id
+            enabled = repos.get_source_code_state() or False
+            #FIXME: no translation :(
+            description = "%s %s - Source code" % (repos.distro.id,
+                                                   repos.distro.release)
+            self.repo_detail(repo_id, description.decode(DEFAULT_ENCODING),
+                             enabled)
+        # Emit third party repositories
+        for source in repos.get_isv_sources():
+            if FILTER_NOT_DEVELOPMENT in filters and \
+               source.type in ("deb-src", "rpm-src"):
+                continue
+            enabled = not source.disabled
+            # Remove markups from the description
+            description = re.sub(r"</?b>", "", repos.render_source(source))
+            repo_id = "isv_%s_%s" % (source.uri, source.dist)
+            repo_id.join(map(lambda c: "_%s" % c, source.comps))
+            self.repo_detail(repo_id, description.decode(DEFAULT_ENCODING),
+                             enabled)
+
+    def repo_enable(self, repo_id, enable):
+        """
+        Implement the {backend}-repo-enable functionality
+
+        FIXME: should we use the abstration of software-properties or provide
+               low level access using pure aptsources?
+        """
+        pklog.info("Enabling repository: %s %s" % (repo_id, enable))
+        self.status(STATUS_RUNNING)
+        self.allow_cancel(False)
+        self.percentage(0)
+        if REPOS_SUPPORT == False:
+            if self._cache.has_key("python-software-properties") and \
+               self._cache["python-software-properties"].isInstalled == False:
+                self.error(ERROR_INTERNAL_ERROR,
+                           "Please install the package "
+                           "python-software-properties to handle repositories")
+            else:
+                self.error(ERROR_INTERNAL_ERROR,
+                           "Please make sure that python-software-properties is"
+                           "correctly installed.")
+            return
+        repos = PackageKitSoftwareProperties()
+
+        found = False
+        # Check if the repo_id matches a distro component, e.g. main
+        if repo_id.startswith("%s_comp_" % repos.distro.id):
+            for comp in repos.distro.source_template.components:
+                if repo_id == "%s_comp_%s" % (repos.distro.id, comp.name):
+                    if enable == repos.get_comp_download_state(comp)[0]:
+                        pklog.debug("Repository is already enabled")
+                        pass
+                    if enable == True:
+                        repos.enable_component(comp.name)
+                    else:
+                        repos.disable_component(comp.name)
+                    found = True
+                    break
+        # Check if the repo_id matches a distro child repository, e.g. hardy-updates
+        elif repo_id.startswith("%s_child_" % repos.distro.id):
+            for template in repos.distro.source_template.children:
+                if repo_id == "%s_child_%s" % (repos.distro.id, template.name):
+                    if enable == repos.get_comp_child_state(template)[0]:
+                        pklog.debug("Repository is already enabled")
+                        pass
+                    elif enable == True:
+                        repos.enable_child_source(template)
+                    else:
+                        repos.disable_child_source(template)
+                    found = True
+                    break
+        # Check if the repo_id matches a cdrom repository
+        elif repo_id.startswith("cdrom_"):
+            for source in repos.get_isv_sources():
+                source_id = "cdrom_%s_%s" % (source.uri, source.dist)
+                source_id.join(map(lambda c: "_%s" % c, source.comps))
+                if repo_id == source_id:
+                    if source.disabled == enable:
+                        source.disabled = not enable
+                        repos.save_sourceslist()
+                    else:
+                        pklog.debug("Repository is already enabled")
+                    found = True
+                    break
+        # Check if the repo_id matches an isv repository
+        elif repo_id.startswith("isv_"):
+            for source in repos.get_isv_sources():
+                source_id = "isv_%s_%s" % (source.uri, source.dist)
+                source_id.join(map(lambda c: "_%s" % c, source.comps))
+                if repo_id == source_id:
+                    if source.disabled == enable:
+                        source.disabled = not enable
+                        repos.save_sourceslist()
+                    else:
+                        pklog.debug("Repository is already enabled")
+                    found = True
+                    break
+        if found == False:
+            self.error(ERROR_REPO_NOT_AVAILABLE,
+                       "The repository of the id %s isn't available" % repo_id)
+
+    @lock_cache
+    def update_packages(self, only_trusted, ids):
+        """
+        Implement the {backend}-update functionality
+        """
+        pklog.info("Updating package with id %s" % ids)
+        self.status(STATUS_UPDATE)
+        self.allow_cancel(False)
+        self.percentage(0)
+        self._check_init(prange=(0,10))
+        pkgs = self._mark_for_upgrade(ids)
+        # Error out if the updates would require the removal of already
+        # installed packages
+        if self._cache.delete_count:
+            deleted = [pkg.name for pkg in self._cache.getChanges() if \
+                       pkg.markedDelete]
+            self.error(ERROR_DEP_RESOLUTION_FAILED,
+                       "The following packages block the update: "
+                       "%s" % " ".join(deleted))
+        self._check_trusted(only_trusted)
+        self._commit_changes()
+        self._open_cache(prange=(90,100))
+        self.percentage(100)
+        pklog.debug("Checking success of operation")
+        for p in pkgs:
+            if not self._cache.has_key(p) or not self._cache[p].isInstalled \
+               or self._cache[p].isUpgradable:
+                self.error(ERROR_PACKAGE_FAILED_TO_INSTALL,
+                           "%s was not updated" % p)
+        pklog.debug("Sending success signal")
+
+    def simulate_update_packages(self, ids):
+        """Emit the changes required for the upgrade of the given packages."""
+        pklog.info("Simulating update of package with id %s" % ids)
+        self.status(STATUS_DEP_RESOLVE)
+        self.allow_cancel(True)
+        self.percentage(None)
+        self._check_init(progress=False)
+        pkgs = self._mark_for_upgrade(ids)
+        self._emit_changes(pkgs)
+
+    def _mark_for_upgrade(self, ids):
+        """Resolve the given package ids and mark the packages for upgrade."""
+        pkgs = []
+        ac = self._cache.actiongroup()
+        resolver = apt.cache.ProblemResolver(self._cache)
+        for id in ids:
+            version = self._get_version_by_id(id)
+            pkg = version.package
+            if not pkg.isInstalled:
+                self.error(ERROR_PACKAGE_NOT_INSTALLED,
+                           "%s isn't installed" % pkg.name)
+            # Check if the specified version is an update
+            if apt_pkg.VersionCompare(pkg.installed.version,
+                                      version.version) >= 0:
+                self.error(ERROR_UPDATE_NOT_FOUND,
+                           "The version %s of %s isn't an update to the "
+                           "current %s" % (version.version, pkg.name,
+                                           pkg.installed.version))
+            pkg.candidate = version
+            pkgs.append(pkg.name[:])
+            # Actually should be fixed in python-apt
+            auto = not self._cache._depcache.IsAutoInstalled(pkg._pkg)
+            pkg.markInstall(False, True, auto)
+            resolver.clear(pkg)
+            resolver.protect(pkg)
+        try:
+            resolver.resolve()
+        except SystemError, error:
+            broken = [pkg.name for pkg in self._cache if pkg.is_inst_broken]
+            self.error(ERROR_DEP_RESOLUTION_FAILED,
+                       "The following packages block the installation: "
+                       "%s" % " ".join(broken))
+        ac.release()
+        return pkgs
+
+    def download_packages(self, dest, ids):
+        """
+        Implement the {backend}-download-packages functionality
+        """
+        def get_download_details(ids):
+            """Calculate the start and end point of a package download
+            progress.
+            """
+            total = 0
+            downloaded = 0
+            versions = []
+            # Check if all ids are vaild and calculate the total download size
+            for id in ids:
+                pkg_ver = self._get_pkg_version_by_id(id)
+                if not pkg_ver.downloadable:
+                    self.error(ERROR_PACKAGE_DOWNLOAD_FAILED,
+                               "package %s isn't downloadable" % id)
+                total += pkg_ver.size
+                versions.append((id, pkg_ver))
+            for id, ver in versions:
+                start = downloaded * 100 / total
+                end = start + ver.size * 100 / total
+                yield id, ver, start, end
+                downloaded += ver.size
+        pklog.info("Downloading packages: %s" % ids)
+        self.status(STATUS_DOWNLOAD)
+        self.allow_cancel(True)
+        self.percentage(0)
+        # Check the destination directory
+        if not os.path.isdir(dest) or not os.access(dest, os.W_OK):
+            self.error(ERROR_INTERNAL_ERROR,
+                       "The directory '%s' is not writable" % dest)
+        # Setup the fetcher
+        self._check_init(prange=(0,10))
+        # Start the download
+        for id, ver, start, end in get_download_details(ids):
+            progress = PackageKitFetchProgress(self, prange=(start, end))
+            self._emit_pkg_version(ver, INFO_DOWNLOADING)
+            try:
+                ver.fetch_binary(dest, progress)
+            except Exception, error:
+                self.error(ERROR_PACKAGE_DOWNLOAD_FAILED,
+                           format_string(error.message))
+            else:
+                self.files(id, os.path.join(dest,
+                                            os.path.basename(ver.filename)))
+                self._emit_pkg_version(ver, INFO_FINISHED)
+        self.percentage(100)
+
+    @lock_cache
+    def install_packages(self, only_trusted, ids):
+        """
+        Implement the {backend}-install functionality
+        """
+        pklog.info("Installing package with id %s" % ids)
+        self.status(STATUS_INSTALL)
+        self.allow_cancel(False)
+        self.percentage(0)
+        self._check_init(prange=(0,10))
+        pkgs = self._mark_for_installation(ids)
+        # Error out if the installation would require the removal of already
+        # installed packages
+        if self._cache.delete_count:
+            deleted = [pkg.name for pkg in self._cache.getChanges() if \
+                       pkg.markedDelete]
+            self.error(ERROR_DEP_RESOLUTION_FAILED,
+                       "The following packages block the update: "
+                       "%s" % " ".join(deleted))
+        self._check_trusted(only_trusted)
+        self._commit_changes()
+        self._open_cache(prange=(90,100))
+        self.percentage(100)
+        pklog.debug("Checking success of operation")
+        for p in pkgs:
+            if not self._cache.has_key(p) or not self._cache[p].isInstalled:
+                self.error(ERROR_PACKAGE_FAILED_TO_INSTALL,
+                           "%s was not installed" % p)
+
+    def simulate_install_packages(self, ids):
+        """Emit the changes required for the installation of the given
+        packages.
+        """
+        pklog.info("Simulating installing package with id %s" % ids)
+        self.status(STATUS_DEP_RESOLVE)
+        self.allow_cancel(True)
+        self.percentage(None)
+        self._check_init(progress=False)
+        pkgs = self._mark_for_installation(ids)
+        self._emit_changes(pkgs)
+
+    def _mark_for_installation(self, ids):
+        """Resolve the given package ids and mark the packages for
+        installation.
+        """
+        pkgs = []
+        ac = self._cache.actiongroup()
+        resolver = apt.cache.ProblemResolver(self._cache)
+        for id in ids:
+            version = self._get_version_by_id(id)
+            pkg = version.package
+            pkg.candidate = version
+            if pkg.installed == version:
+                self.error(ERROR_PACKAGE_ALREADY_INSTALLED,
+                           "Package %s is already installed" % pkg.name)
+            pkgs.append(pkg.name[:])
+            pkg.markInstall(False, True, True)
+            resolver.clear(pkg)
+            resolver.protect(pkg)
+        try:
+            resolver.resolve()
+        except SystemError, error:
+            broken = [pkg.name for pkg in self._cache if pkg.is_inst_broken]
+            self.error(ERROR_DEP_RESOLUTION_FAILED,
+                       "The following packages block the installation: "
+                       "%s" % " ".join(broken))
+        ac.release()
+        return pkgs
+
+    @lock_cache
+    def install_files(self, only_trusted, inst_files):
+        """
+        Implement install-files for the apt backend
+        Install local Debian package files
+        """
+        pklog.info("Installing package files: %s" % inst_files)
+        self.status(STATUS_INSTALL)
+        self.allow_cancel(False)
+        self.percentage(0)
+        self._check_init(prange=(0,10))
+        packages = []
+        # Collect all dependencies which need to be installed
+        self.status(STATUS_DEP_RESOLVE)
+        for path in inst_files:
+            deb = apt.debfile.DebPackage(path, self._cache)
+            packages.append(deb)
+            if not deb.check():
+                self.error(ERROR_LOCAL_INSTALL_FAILED,
+                           format_string(deb._failureString))
+            (install, remove, unauthenticated) = deb.required_changes
+            pklog.debug("Changes: Install %s, Remove %s, Unauthenticated "
+                        "%s" % (install, remove, unauthenticated))
+            if len(remove) > 0:
+                self.error(ERROR_DEP_RESOLUTION_FAILED,
+                           "Remove the following packages "
+                           "before: %s" % remove)
+            if deb.compare_to_version_in_cache() == \
+               apt.debfile.VERSION_OUTDATED:
+                self.message(MESSAGE_NEWER_PACKAGE_EXISTS,
+                             "There is a later version of %s "
+                             "available in the repositories." % deb.pkgname)
+        if self._cache.getChanges():
+            self._check_trusted(only_trusted)
+            self._commit_changes((10,25), (25,50))
+        # Install the Debian package files
+        d = PackageKitDpkgInstallProgress(self)
+        try:
+            d.startUpdate()
+            d.install([inst.encode(DEFAULT_ENCODING) for inst in inst_files])
+            d.finishUpdate()
+        except InstallTimeOutPKError, e:
+            self._recover()
+            #FIXME: should provide more information
+            msg = "Transaction was cancelled since the installation " \
+                  "of a package hung.\n" \
+                  "This can be caused by maintainer scripts which " \
+                  "require input on the terminal:\n%s" % e.message
+            self.error(ERROR_INTERNAL_ERROR, format_string(msg))
+        except PackageManagerFailedPKError, e:
+            self._recover()
+            self.error(ERROR_INTERNAL_ERROR,
+                       format_string("%s\n%s" % (e.message, e.output)))
+        except Exception, e:
+            self._recover()
+            self.error(ERROR_INTERNAL_ERROR, format_string(e.message))
+        self.percentage(100)
+
+    def simulate_install_files(self, inst_files):
+        """Emit the change required for the installation of the given package
+        files.
+        """
+        pklog.info("Simulating installation of the package files: "
+                   "%s" % inst_files)
+        self.status(STATUS_DEP_RESOLVE)
+        self.allow_cancel(True)
+        self.percentage(None)
+        self._check_init(progress=False)
+        pkgs = []
+        for path in inst_files:
+            deb = apt.debfile.DebPackage(path, self._cache)
+            pkgs.append(deb.pkgname)
+            if not deb.check():
+                self.error(ERROR_LOCAL_INSTALL_FAILED,
+                           format_string(deb._failureString))
+        self._emit_changes(pkgs)
+
+    @lock_cache
+    def refresh_cache(self, force):
+        """
+        Implement the {backend}-refresh_cache functionality
+        """
+        # TODO: use force ?
+        pklog.info("Refresh cache")
+        self.status(STATUS_REFRESH_CACHE)
+        self.last_action_time = time.time()
+        self.allow_cancel(False);
+        self.percentage(0)
+        self._check_init((0,10))
+        progress = PackageKitFetchProgress(self, prange=(10,95),
+                                           status=STATUS_DOWNLOAD_REPOSITORY)
+        try:
+            ret = self._cache.update(progress)
+        except Exception, error:
+            # FIXME: Unluckily python-apt doesn't provide a real good error
+            #        reporting. We only receive a failure string.
+            # FIXME: Doesn't detect if all downloads failed - bug in python-apt
+            self.message(MESSAGE_REPO_METADATA_DOWNLOAD_FAILED,
+                         format_string(error.message))
+        self._open_cache(prange=(95,100))
+        self.percentage(100)
+
+    def get_packages(self, filters):
+        """
+        Implement the apt2-get-packages functionality
+        """
+        pklog.info("Get all packages")
+        self.status(STATUS_QUERY)
+        self.percentage(None)
+        self._check_init(progress=False)
+        self.allow_cancel(True)
+
+        for pkg in self._cache:
+            if self._is_package_visible(pkg, filters):
+                self._emit_package(pkg)
+
+    def resolve(self, filters, names):
+        """
+        Implement the apt2-resolve functionality
+        """
+        pklog.info("Resolve")
+        self.status(STATUS_QUERY)
+        self.percentage(None)
+        self._check_init(progress=False)
+        self.allow_cancel(False)
+
+        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:
+                self.error(ERROR_PACKAGE_NOT_FOUND,
+                           "Package name %s could not be resolved" % name)
+
+    def get_depends(self, filters, ids, recursive):
+        """Emit all dependencies of the given package ids.
+
+        Doesn't support recursive dependency resolution.
+        """
+        def emit_blocked_dependency(base_dependency, pkg=None,
+                                    filters=""):
+            """Send a blocked package signal for the given
+            apt.package.BaseDependency.
+            """
+            if FILTER_INSTALLED in filters:
+                return
+            if pkg:
+                summary = pkg.summary
+                try:
+                    filters.remove(FILTER_NOT_INSTALLED)
+                except ValueError:
+                    pass
+                if not self._is_package_visible(pkg, filters):
+                    return
+            else:
+                summary = u""
+            if base_dependency.relation:
+                version = "%s%s" % (base_dependency.relation,
+                                    base_dependency.version)
+            else:
+                version = base_dependency.version
+            self.package("%s;%s;;" % (base_dependency.name, version),
+                         INFO_BLOCKED, unicode(summary, DEFAULT_ENCODING))
+
+        def check_dependency(pkg, base_dep):
+            """Check if the given apt.package.Package can satisfy the
+            BaseDepenendcy and emit the corresponding package signals.
+            """
+            if not self._is_package_visible(pkg, filters):
+                return
+            if base_dep.version:
+                satisfied = False
+                # Sort the version list to check the installed
+                # and candidate before the other ones
+                ver_list = list(pkg.versions)
+                if pkg.installed:
+                    ver_list.remove(pkg.installed)
+                    ver_list.insert(0, pkg.installed)
+                if pkg.candidate:
+                    ver_list.remove(pkg.candidate)
+                    ver_list.insert(0, pkg.candidate)
+                for dep_ver in ver_list:
+                    if apt_pkg.CheckDep(dep_ver.version,
+                                        base_dep.relation,
+                                        base_dep.version):
+                        self._emit_pkg_version(dep_ver)
+                        satisfied = True
+                        break
+                if not satisfied:
+                    emit_blocked_dependency(base_dep, pkg, filters)
+            else:
+                self._emit_package(pkg)
+
+        # Setup the transaction
+        pklog.info("Get depends (%s,%s,%s)" % (filter, ids, recursive))
+        self.status(STATUS_QUERY)
+        self.percentage(None)
+        self._check_init(progress=False)
+        self.allow_cancel(True)
+
+        dependency_types = ["PreDepends", "Depends"]
+        if apt_pkg.Config["APT::Install-Recommends"]:
+            dependency_types.append("Recommends")
+        for id in ids:
+            version = self._get_version_by_id(id)
+            for dependency in version.get_dependencies(*dependency_types):
+                # Walk through all or_dependencies
+                for base_dep in dependency.or_dependencies:
+                    if self._cache.isVirtualPackage(base_dep.name):
+                        # Check each proivider of a virtual package
+                        for provider in \
+                                self._cache.getProvidingPackages(base_dep.name):
+                            check_dependency(provider, base_dep)
+                    elif base_dep.name in self._cache:
+                        check_dependency(self._cache[base_dep.name], base_dep)
+                    else:
+                        # The dependency does not exist
+                        emit_blocked_dependency(base_dep, filters=filters)
+
+    def get_requires(self, filters, ids, recursive):
+        """Emit all packages which depend on the given ids.
+
+        Recursive searching is not supported.
+        """
+        pklog.info("Get requires (%s,%s,%s)" % (filter, ids, recursive))
+        self.status(STATUS_DEP_RESOLVE)
+        self.percentage(None)
+        self._check_init(progress=False)
+        self.allow_cancel(True)
+        for id in ids:
+            version = self._get_version_by_id(id)
+            provided = [pro[0] for pro in version._cand.ProvidesList]
+            for pkg in self._cache:
+                if not self._is_package_visible(pkg, filters):
+                    continue
+                if pkg.isInstalled:
+                    pkg_ver = pkg.installed
+                elif pkg.candidate:
+                    pkg_ver = pkg.candidate
+                for dependency in pkg_ver.dependencies:
+                    satisfied = False
+                    for base_dep in dependency.or_dependencies:
+                        if version.package.name == base_dep.name or \
+                           base_dep.name in provided:
+                            satisfied = True
+                            break
+                    if satisfied:
+                        self._emit_package(pkg)
+                        break
+
+    def what_provides(self, filters, provides_type, search):
+        def get_mapping_db(path):
+            """
+            Return the gdbm database at the given path or send an
+            appropriate error message
+            """
+            if not os.access(path, os.R_OK):
+                if self._cache.has_key("app-install-data") and \
+                   self._cache["app-install-data"].isInstalled == False:
+                    self.error(ERROR_INTERNAL_ERROR,
+                               "Please install the package "
+                               "app-install data for a list of "
+                               "applications that can handle files of "
+                               "the given type")
+                else:
+                    self.error(ERROR_INTERNAL_ERROR,
+                               "The list of applications that can handle "
+                               "files of the given type cannot be opened.\n"
+                               "Try to reinstall the package "
+                               "app-install-data.")
+                return
+            try:
+                db = gdbm.open(path)
+            except:
+                self.error(ERROR_INTERNAL_ERROR,
+                           "The list of applications that can handle "
+                           "files of the given type cannot be opened.\n"
+                           "Try to reinstall the package "
+                           "app-install-data.")
+            else:
+                return db
+        def extract_gstreamer_request(search):
+            # The search term from PackageKit daemon:
+            # gstreamer0.10(urisource-foobar)
+            # gstreamer0.10(decoder-audio/x-wma)(wmaversion=3)
+            match = re.match("^gstreamer(?P<version>[0-9\.]+)"
+                             "\((?P<kind>.+?)-(?P<data>.+?)\)"
+                             "(\((?P<opt>.*)\))?",
+                             search)
+            caps = None
+            if not match:
+                self.error(ERROR_INTERNAL_ERROR,
+                           "The search term is invalid: %s" % search)
+            if match.group("opt"):
+                caps_str = "%s, %s" % (match.group("data"), match.group("opt"))
+                # gst.Caps.__init__ cannot handle unicode instances
+                caps = gst.Caps(str(caps_str))
+            record = GSTREAMER_RECORD_MAP[match.group("kind")]
+            return match.group("version"), record, match.group("data"), caps
+        self.status(STATUS_QUERY)
+        self.percentage(None)
+        self._check_init(progress=False)
+        self.allow_cancel(False)
+        if provides_type == PROVIDES_CODEC:
+            # Search for privided gstreamer plugins using the package
+            # metadata
+            import gst
+            GSTREAMER_RECORD_MAP = {"encoder": "Gstreamer-Encoders",
+                                    "decoder": "Gstreamer-Decoders",
+                                    "urisource": "Gstreamer-Uri-Sources",
+                                    "urisink": "Gstreamer-Uri-Sinks",
+                                    "element": "Gstreamer-Elements"}
+            for pkg in self._cache:
+                if pkg.installed:
+                    version = pkg.installed
+                elif pkg.candidate:
+                    version = pkg.candidate
+                else:
+                    continue
+                if not "Gstreamer-Version" in version.record:
+                    continue
+                gst_version, gst_record, gst_data, gst_caps = \
+                        extract_gstreamer_request(search)
+                if version.record["Gstreamer-Version"] != gst_version:
+                    continue
+                if gst_caps:
+                    try:
+                        pkg_caps = gst.Caps(version.record[gst_record])
+                    except KeyError:
+                        continue
+                    if gst_caps.intersect(pkg_caps):
+                        self._emit_visible_package(filters, pkg)
+                else:
+                    try:
+                        elements = version.record[gst_record]
+                    except KeyError:
+                        continue
+                    if gst_data in elements:
+                        self._emit_visible_package(filters, pkg)
+
+        elif provides_type == PROVIDES_MIMETYPE:
+            # Emit packages that contain an application that can handle
+            # the given mime type
+            handlers = set()
+            db = get_mapping_db("/var/lib/PackageKit/mime-map.gdbm")
+            if db == None:
+                return
+            if db.has_key(search):
+                pklog.debug("Mime type is registered: %s" % db[search])
+                # The mime type handler db stores the packages as a string
+                # separated by spaces. Each package has its section
+                # prefixed and separated by a slash
+                # FIXME: Should make use of the section and emit a 
+                #        RepositoryRequired signal if the package does not exist
+                handlers = map(lambda s: s.split("/")[1],
+                               db[search].split(" "))
+                self._emit_visible_packages_by_name(filters, handlers)
+        else:
+            self.error(ERROR_NOT_SUPPORTED,
+                       "This function is not implemented in this backend")
+
+    def get_files(self, package_ids):
+        """
+        Emit the Files signal which includes the files included in a package
+        Apt only supports this for installed packages
+        """
+        self.status(STATUS_INFO)
+        for id in package_ids:
+            pkg = self._get_package_by_id(id)
+            files = string.join(self._get_installed_files(pkg), ";")
+            self.files(id, files)
+
+    # Helpers
+
+    def _unlock_cache(self):
+        """
+        Unlock the system package cache
+        """
+        try:
+            apt_pkg.PkgSystemUnLock()
+        except SystemError:
+            return False
+        return True
+
+    def _open_cache(self, prange=(0,100), progress=True):
+        """
+        (Re)Open the APT cache
+        """
+        pklog.debug("Open APT cache")
+        self.status(STATUS_LOADING_CACHE)
+        try:
+            self._cache = apt.Cache(PackageKitOpProgress(self, prange,
+                                                         progress))
+        except:
+            self.error(ERROR_NO_CACHE, "Package cache could not be opened")
+        if self._cache.broken_count > 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._last_cache_refresh = time.time()
+
+    def _recover(self, prange=(95,100)):
+        """
+        Try to recover from a package manager failure
+        """
+        self.status(STATUS_CLEANUP)
+        self.percentage(None)
+        try:
+            d = PackageKitDpkgInstallProgress(self)
+            d.startUpdate()
+            d.recover()
+            d.finishUpdate()
+        except:
+            pass
+        self._open_cache(prange)
+
+    def _check_trusted(self, only_trusted):
+        """Check if only trusted packages are allowed and fail if 
+        untrusted packages would be installed in this case.
+        """
+        untrusted = []
+        if only_trusted:
+            for pkg in self._cache:
+                if (pkg.markedInstall or pkg.markedUpgrade or
+                    pkg.markedDowngrade or pkg.markedReinstall):
+                     trusted = False
+                     for origin in pkg.candidate.origins:
+                          trusted |= origin.trusted
+                     if not trusted:
+                         untrusted.append(pkg.name)
+            if untrusted:
+                self.error(ERROR_MISSING_GPG_SIGNATURE, " ".join(untrusted))
+
+    def _commit_changes(self, fetch_range=(5,50), install_range=(50,90)):
+        """
+        Commit changes to the cache and handle errors
+        """
+        try:
+            self._cache.commit(PackageKitFetchProgress(self, fetch_range), 
+                               PackageKitInstallProgress(self, install_range))
+        except apt.cache.FetchFailedException, err:
+            self._open_cache(prange=(95,100))
+            pklog.critical(format_string(err.message))
+            self.error(ERROR_PACKAGE_DOWNLOAD_FAILED,
+                       format_string(err.message))
+        except apt.cache.FetchCancelledException:
+            self._open_cache(prange=(95,100))
+        except InstallTimeOutPKError, err:
+            self._recover()
+            self._open_cache(prange=(95,100))
+            #FIXME: should provide more information
+            msg = "Transaction was cancelled since the installation " \
+                  "of a package hung.\n" \
+                  "This can be caused by maintainer scripts which " \
+                  "require input on the terminal:\n%s" % err.message
+            self.error(ERROR_INTERNAL_ERROR, format_string(msg))
+        except PackageManagerFailedPKError, err:
+            self._recover()
+            self.error(ERROR_INTERNAL_ERROR,
+                       format_string("%s\n%s" % (err.message, err.output)))
+        else:
+            return True
+        return False
+
+    def _get_id_from_version(self, version):
+        """Return the package id of an apt.package.Version instance."""
+        if version.origins:
+            origin = version.origins[0].label
+        else:
+            origin = ""
+        id = "%s;%s;%s;%s" % (version.package.name, version.version,
+                              version.architecture, origin)
+        return id
+ 
+    def _check_init(self, prange=(0,10), progress=True):
+        """
+        Check if the backend was initialized well and try to recover from
+        a broken setup
+        """
+        pklog.debug("Checking apt cache and xapian database")
+        pkg_cache = os.path.join(apt_pkg.Config["Dir"],
+                                 apt_pkg.Config["Dir::Cache"],
+                                 apt_pkg.Config["Dir::Cache::pkgcache"])
+        src_cache = os.path.join(apt_pkg.Config["Dir"],
+                                 apt_pkg.Config["Dir::Cache"],
+                                 apt_pkg.Config["Dir::Cache::srcpkgcache"])
+        # Check if the cache instance is of the coorect class type, contains
+        # any broken packages and if the dpkg status or apt cache files have 
+        # been changed since the last refresh
+        if not isinstance(self._cache, apt.cache.Cache) or \
+           (self._cache.broken_count > 0) or \
+           (os.stat(apt_pkg.Config["Dir::State::status"])[stat.ST_MTIME] > \
+            self._last_cache_refresh) or \
+           (os.stat(pkg_cache)[stat.ST_MTIME] > self._last_cache_refresh) or \
+           (os.stat(src_cache)[stat.ST_MTIME] > self._last_cache_refresh):
+            pklog.debug("Reloading the cache is required")
+            self._open_cache(prange, progress)
+        else:
+            pass
+        # Read the pin file of Synaptic if available
+        self._cache._depcache.ReadPinFile()
+        if os.path.exists(SYNAPTIC_PIN_FILE):
+            self._cache._depcache.ReadPinFile(SYNAPTIC_PIN_FILE)
+        # Reset the depcache
+        self._cache.clear()
+
+    def _emit_package(self, pkg, info=None, force_candidate=False):
+        """
+        Send the Package signal for a given apt package
+        """
+        if (not pkg.isInstalled or force_candidate) and pkg.candidate:
+            self._emit_pkg_version(pkg.candidate, info)
+        elif pkg.isInstalled:
+            self._emit_pkg_version(pkg.installed, info)
+        else:
+            pklog.debug("Package %s hasn't got any version." % pkg.name)
+
+    def _emit_pkg_version(self, version, info=None):
+        """Emit the Package signal of the given apt.package.Version."""
+        id = self._get_id_from_version(version)
+        section = version.section.split("/")[-1]
+        if not info:
+            if version == version.package.installed:
+                if section == "metapackages":
+                    info = INFO_COLLECTION_INSTALLED
+                else:
+                    info = INFO_INSTALLED
+            else:
+                if section == "metapackages":
+                    info = INFO_COLLECTION_AVAILABLE
+                else:
+                    info = INFO_AVAILABLE
+        self.package(id, info, unicode(version.summary, DEFAULT_ENCODING))
+
+    def _emit_all_visible_pkg_versions(self, filters, pkg):
+        """Emit all available versions of a package."""
+        if self._is_package_visible(pkg, filters):
+            if FILTER_NEWEST in filters:
+                if pkg.candidate:
+                    self._emit_pkg_version(pkg.candidate)
+                elif pkg.installed:
+                    self._emit_pkg_version(pkg.installed)
+            else:
+                for version in pkg.versions:
+                    self._emit_pkg_version(version)
+
+    def _emit_visible_package(self, filters, pkg, info=None):
+        """
+        Filter and emit a package
+        """
+        if self._is_package_visible(pkg, filters):
+            self._emit_package(pkg, info)
+
+    def _emit_visible_packages(self, filters, pkgs, info=None):
+        """
+        Filter and emit packages
+        """
+        for p in pkgs:
+            if self._is_package_visible(p, filters):
+                self._emit_package(p, info)
+
+    def _emit_visible_packages_by_name(self, filters, pkgs, info=None):
+        """
+        Find the packages with the given namens. Afterwards filter and emit
+        them
+        """
+        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 _emit_changes(self, ignore_pkgs=[]):
+        """Emit all changed packages."""
+        for pkg in self._cache:
+            if pkg.name in ignore_pkgs:
+                continue
+            if pkg.markedDelete:
+                self._emit_package(pkg, INFO_REMOVING, False)
+            elif pkg.markedInstall:
+                self._emit_package(pkg, INFO_INSTALLING, True)
+            elif pkg.markedUpgrade:
+                self._emit_package(pkg, INFO_UPDATING, True)
+            elif pkg.markedDowngrade:
+                self._emit_package(pkg, INFO_DOWNGRADING, True)
+            elif pkg.markedReinstall:
+                self._emit_package(pkg, INFO_REINSTALLING, True)
+
+    def _is_package_visible(self, pkg, filters):
+        """
+        Return True if the package should be shown in the user interface
+        """
+        if filters == [FILTER_NONE]:
+            return True
+        for filter in filters:
+            if (filter == FILTER_INSTALLED and not pkg.isInstalled) or \
+               (filter == FILTER_NOT_INSTALLED and pkg.isInstalled) or \
+               (filter == FILTER_SUPPORTED and not \
+                self._is_package_supported(pkg)) or \
+               (filter == FILTER_NOT_SUPPORTED and \
+                self._is_package_supported(pkg)) or \
+               (filter == FILTER_FREE and not self._is_package_free(pkg)) or \
+               (filter == FILTER_NOT_FREE and \
+                not self._is_package_not_free(pkg)) or \
+               (filter == FILTER_GUI and not self._has_package_gui(pkg)) or \
+               (filter == FILTER_NOT_GUI and self._has_package_gui(pkg)) or \
+               (filter == FILTER_COLLECTIONS and not \
+                self._is_package_collection(pkg)) or \
+               (filter == FILTER_NOT_COLLECTIONS and \
+                self._is_package_collection(pkg)) or\
+                (filter == FILTER_DEVELOPMENT and not \
+                self._is_package_devel(pkg)) or \
+               (filter == FILTER_NOT_DEVELOPMENT and \
+                self._is_package_devel(pkg)):
+                return False
+        return True
+
+    def _is_package_not_free(self, pkg):
+        """
+        Return True if we can be sure that the package's license isn't any 
+        free one
+        """
+        candidate = pkg.candidateOrigin
+        return candidate != None and \
+               ((candidate[0].origin == "Ubuntu" and \
+                 candidate[0].component in ["multiverse", "restricted"]) or \
+                (candidate[0].origin == "Debian" and \
+                 candidate[0].component in ["contrib", "non-free"])) and \
+               candidate[0].trusted == True
+
+    def _is_package_collection(self, pkg):
+        """
+        Return True if the package is a metapackge
+        """
+        section = pkg.section.split("/")[-1]
+        return section == "metapackages"
+
+    def _is_package_free(self, pkg):
+        """
+        Return True if we can be sure that the package has got a free license
+        """
+        candidate = pkg.candidateOrigin
+        return candidate != None and \
+               ((candidate[0].origin == "Ubuntu" and \
+                 candidate[0].component in ["main", "universe"]) or \
+                (candidate[0].origin == "Debian" and \
+                 candidate[0].component == "main")) and\
+               candidate[0].trusted == True
+
+    def _has_package_gui(self, pkg):
+        #FIXME: should go to a modified Package class
+        #FIXME: take application data into account. perhaps checking for
+        #       property in the xapian database
+        return pkg.section.split('/')[-1].lower() in ['x11', 'gnome', 'kde']
+
+    def _is_package_devel(self, pkg):
+        #FIXME: should go to a modified Package class
+        return pkg.name.endswith("-dev") or pkg.name.endswith("-dbg") or \
+               pkg.section.split('/')[-1].lower() in ['devel', 'libdevel']
+
+    def _is_package_supported(self, pkg):
+        candidate = pkg.candidateOrigin[0]
+        return candidate != None and \
+               candidate[0].origin == "Ubuntu" and \
+               candidate[0].component in ["main", "restricted"] and \
+               candidate[0].trusted == True
+
+    def _get_pkg_version_by_id(self, id):
+        """
+        Return a package version matching the given package id or None.
+        """
+        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 \
+                   pkg_ver.architecture == arch:
+                    return pkg_ver
+        return None
+
+    def _get_package_by_id(self, id):
+        """Return the apt.package.Package corresponding to the given
+        package id.
+
+        If the package isn't available error out.
+        """
+        version = self._get_version_by_id(id)
+        return version.package
+
+    def _get_version_by_id(self, id):
+        """Return the apt.package.Version corresponding to the given
+        package id.
+
+        If the version isn't available error out.
+        """
+        name, version_string, arch, data = id.split(";", 4)
+        try:
+            pkg = self._cache[name]
+        except:
+            self.error(ERROR_PACKAGE_NOT_FOUND,
+                       "There isn't any package named %s" % name)
+        #FIXME:This requires a not yet released fix in python-apt
+        try:
+            version = pkg.versions[version_string]
+        except:
+            self.error(ERROR_PACKAGE_NOT_FOUND,
+                       "There isn't any verion %s of %s" % (version_string,
+                                                            name))
+        if version.architecture != arch:
+            self.error(ERROR_PACKAGE_NOT_FOUND,
+                       "Version %s of %s isn't available for architecture "
+                       "%s" % (pkg.name, version.version, arch))
+        return version
+
+    def _get_installed_files(self, pkg):
+        """
+        Return the list of unicode names of the files which have
+        been installed by the package
+
+        This method should be obsolete by the apt.package.Package.installedFiles
+        attribute as soon as the consolidate branch of python-apt gets merged
+        """
+        path = os.path.join(apt_pkg.Config["Dir"],
+                            "var/lib/dpkg/info/%s.list" % pkg.name)
+        try:
+            list = open(path)
+            files = list.read().decode().split("\n")
+            list.close()
+        except:
+            return []
+        return files
+
+    def _get_package_group(self, pkg):
+        """
+        Return the packagekit group corresponding to the package's section
+        """
+        section = pkg.section.split("/")[-1]
+        if SECTION_GROUP_MAP.has_key(section):
+            return SECTION_GROUP_MAP[section]
+        else:
+            pklog.debug("Unkown package section %s of %s" % (pkg.section,
+                                                             pkg.name))
+            return GROUP_UNKNOWN
+
+    def _sigquit(self, signum, frame):
+        self._unlock_cache()
+        sys.exit(1)
+
+def debug_exception(type, value, tb):
+    """
+    Provides an interactive debugging session on unhandled exceptions
+    See http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65287
+    """
+    if hasattr(sys, 'ps1') or not sys.stderr.isatty() or \
+       not sys.stdin.isatty() or not sys.stdout.isatty() or type==SyntaxError:
+        # Calls the default handler in interactive mode, if output is·
+        # redirected or on syntax errors
+        sys.__excepthook__(type, value, tb)
+    else:
+        import traceback, pdb
+        traceback.print_exception(type, value, tb)
+        print
+        pdb.pm()
+
+def run(args, single=False):
+    """
+    Start the apt backend
+    """
+    backend = PackageKitAptBackend("")
+    if single == True:
+        backend.dispatch_command(args[0], args[1:])
+    else:
+        backend.dispatcher(args)
+
+def main():
+    parser = optparse.OptionParser(description="APT backend for PackageKit")
+    parser.add_option("-r", "--root",
+                      action="store", type="string", dest="root",
+                      help="Use the given directory as the system root "
+                           "(Only needed by developers)")
+    parser.add_option("-p", "--profile",
+                      action="store", type="string", dest="profile",
+                      help="Store profiling stats in the given file "
+                           "(Only needed by developers)")
+    parser.add_option("-d", "--debug",
+                      action="store_true", dest="debug",
+                      help="Show a lot of additional information and drop to "
+                           "a debugging console on unhandled exceptions "
+                           "(Only needed by developers)")
+    parser.add_option("-s", "--single",
+                      action="store_true", dest="single",
+                      help="Only perform one command and don't listen on stdin "
+                           "(Only needed by developers)")
+    (options, args) = parser.parse_args()
+    if options.debug:
+        pklog.setLevel(logging.DEBUG)
+        sys.excepthook = debug_exception
+
+    if options.root:
+        config = apt_pkg.Config
+        config.Set("Dir", options.root)
+        config.Set("Dir::State::status",
+                   os.path.join(options.root, "/var/lib/dpkg/status"))
+
+    if options.profile:
+        import hotshot
+        prof = hotshot.Profile(options.profile)
+        prof.runcall(run, args, options.single)
+        prof.close()
+    else:
+        run(args, options.single)
+
+if __name__ == '__main__':
+    main()
+
+# vim: ts=4 et sts=4
diff --git a/backends/apt/data/Packages b/backends/apt/data/Packages
new file mode 100644
index 0000000..b696056
--- /dev/null
+++ b/backends/apt/data/Packages
@@ -0,0 +1,71 @@
+Package: xterm
+Priority: optional
+Section: x11
+Installed-Size: 1112
+Maintainer: Debian X Strike Force <debian-x at lists.debian.org>
+Architecture: i386
+Version: 237-1
+Provides: x-terminal-emulator
+Suggests: xfonts-cyrillic
+Filename: pool/main/x/xterm/xterm_235-1_i386.deb
+Size: 466530
+MD5sum: ec97de9afffcbc5932dddfa9090f6fbe
+SHA1: 7aedb7fc5dd906ad35246cf7442e250311aa2130
+SHA256: 517f01858734b253584c28bb9951acbb6a082d1274c6ec6c079f7567bf067d71
+Description: X terminal emulator
+ xterm is a terminal emulator for the X Window System.  It provides DEC VT102
+ and Tektronix 4014 compatible terminals for programs that cannot use the
+ window system directly.  This version implements ISO/ANSI colors and most of
+ the control sequences used by DEC VT220 terminals.
+ .
+ This package provides four commands: xterm, which is the traditional
+ terminal emulator; uxterm, which is a wrapper around xterm that is
+ intelligent about locale settings (especially those which use the UTF-8
+ character encoding), but which requires the luit program from the x11-utils
+ package; koi8rxterm, a wrapper similar to uxterm for locales that use the
+ KOI8-R character set; and lxterm, a simple wrapper that chooses which of the
+ previous commands to execute based on the user's locale settings.
+ .
+ A complete list of control sequences supported by the X terminal emulator
+ is provided in /usr/share/doc/xterm.
+ .
+ The xterm program uses bitmap images provided by the xbitmaps package.
+ .
+ Those interested in using koi8rxterm will likely want to install the
+ xfonts-cyrillic package as well.
+Homepage: http://invisible-island.net/xterm/xterm.html
+Tag: implemented-in::c, interface::x11, role::program, scope::utility, uitoolkit::athena, x11::application, x11::terminal
+Task: desktop
+
+Package: synaptic
+Priority: optional
+Section: admin
+Installed-Size: 5812
+Maintainer: Michael Vogt <mvo at debian.org>
+Architecture: i386
+Version: 0.62.1
+Replaces: gsynaptic
+Provides: gsynaptic
+Depends: xterm
+Suggests: dwww
+Conflicts: gsynaptic, menu (<< 2.1.11)
+Filename: pool/main/s/synaptic/synaptic_0.62.1_i386.deb
+Size: 2094122
+MD5sum: 91b86003eea53002e0c2a0ea50596e37
+SHA1: e533c3345911d5c8471b54a8a7b51ae52e59982b
+SHA256: a399168d801efa1616d7b1178b4c3eda70c612716374411708d05956f3c99874
+Description: Graphical package manager
+ Synaptic is a graphical package management tool based on GTK+ and APT.
+ Synaptic enables you to install, upgrade and remove software packages in
+ a user friendly way.
+ .
+ Besides these basic functions the following features are provided:
+  * Search and filter the list of available packages
+  * Perform smart system upgrades
+  * Fix broken package dependencies
+  * Edit the list of used repositories (sources.list)
+  * Download the latest changelog of a package
+  * Configure packages through the debconf system
+  * Browse all available documentation related to a package (dwww is required)
+Tag: admin::package-management, implemented-in::c++, interface::x11, role::program, scope::application, suite::debian, uitoolkit::gtk, works-with::software:package, x11::application
+
diff --git a/backends/apt/data/status b/backends/apt/data/status
new file mode 100644
index 0000000..2bba0ae
--- /dev/null
+++ b/backends/apt/data/status
@@ -0,0 +1,38 @@
+Package: xterm
+Status: install ok installed
+Priority: optional
+Section: x11
+Installed-Size: 1112
+Maintainer: Debian X Strike Force <debian-x at lists.debian.org>
+Architecture: i386
+Version: 235-1
+Provides: x-terminal-emulator
+Suggests: xfonts-cyrillic
+Conffiles:
+ /etc/X11/app-defaults/KOI8RXTerm dd942bff017ee9cfc2bb97bbdd7378b6
+ /etc/X11/app-defaults/UXTerm 952670ddfbb90d0a7c36e87e7a796595
+ /etc/X11/app-defaults/XTerm ec0c680b99b0f69f8d5d3318bd1a862e
+ /etc/X11/app-defaults/XTerm-color 657eb990e33aeddb17c7e2185321878c
+Description: X terminal emulator
+ xterm is a terminal emulator for the X Window System.  It provides DEC VT102
+ and Tektronix 4014 compatible terminals for programs that cannot use the
+ window system directly.  This version implements ISO/ANSI colors and most of
+ the control sequences used by DEC VT220 terminals.
+ .
+ This package provides four commands: xterm, which is the traditional
+ terminal emulator; uxterm, which is a wrapper around xterm that is
+ intelligent about locale settings (especially those which use the UTF-8
+ character encoding), but which requires the luit program from the x11-utils
+ package; koi8rxterm, a wrapper similar to uxterm for locales that use the
+ KOI8-R character set; and lxterm, a simple wrapper that chooses which of the
+ previous commands to execute based on the user's locale settings.
+ .
+ A complete list of control sequences supported by the X terminal emulator
+ is provided in /usr/share/doc/xterm.
+ .
+ The xterm program uses bitmap images provided by the xbitmaps package.
+ .
+ Those interested in using koi8rxterm will likely want to install the
+ xfonts-cyrillic package as well.
+Homepage: http://invisible-island.net/xterm/xterm.html
+
diff --git a/backends/apt/data/xterm.list b/backends/apt/data/xterm.list
new file mode 100644
index 0000000..4afffb9
--- /dev/null
+++ b/backends/apt/data/xterm.list
@@ -0,0 +1,49 @@
+/.
+/usr
+/usr/bin
+/usr/bin/koi8rxterm
+/usr/bin/lxterm
+/usr/bin/resize
+/usr/bin/uxterm
+/usr/bin/xterm
+/usr/share
+/usr/share/man
+/usr/share/man/man1
+/usr/share/man/man1/lxterm.1.gz
+/usr/share/man/man1/uxterm.1.gz
+/usr/share/man/man1/xterm.1.gz
+/usr/share/man/man1/koi8rxterm.1.gz
+/usr/share/man/man1/resize.1.gz
+/usr/share/lintian
+/usr/share/lintian/overrides
+/usr/share/lintian/overrides/xterm
+/usr/share/doc
+/usr/share/doc/xterm
+/usr/share/doc/xterm/ctlseqs.txt.gz
+/usr/share/doc/xterm/xterm.termcap.gz
+/usr/share/doc/xterm/xterm.log.html
+/usr/share/doc/xterm/xterm.faq.html
+/usr/share/doc/xterm/xterm.faq.gz
+/usr/share/doc/xterm/changelog.Debian.gz
+/usr/share/doc/xterm/README.Debian
+/usr/share/doc/xterm/copyright
+/usr/share/doc/xterm/README.i18n.gz
+/usr/share/doc/xterm/ctlseqs.ms.gz
+/usr/share/doc/xterm/xterm.terminfo.gz
+/usr/share/doc-base
+/usr/share/doc-base/xterm-ctlseqs
+/usr/share/doc-base/xterm-faq
+/usr/share/menu
+/usr/share/menu/xterm
+/usr/share/pixmaps
+/usr/share/pixmaps/xterm-color_32x32.xpm
+/usr/share/pixmaps/xterm-color_48x48.xpm
+/usr/share/pixmaps/xterm_32x32.xpm
+/usr/share/pixmaps/xterm_48x48.xpm
+/etc
+/etc/X11
+/etc/X11/app-defaults
+/etc/X11/app-defaults/KOI8RXTerm
+/etc/X11/app-defaults/UXTerm
+/etc/X11/app-defaults/XTerm
+/etc/X11/app-defaults/XTerm-color
diff --git a/backends/apt/hotshot-analyze.py b/backends/apt/hotshot-analyze.py
new file mode 100755
index 0000000..733442c
--- /dev/null
+++ b/backends/apt/hotshot-analyze.py
@@ -0,0 +1,39 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+"""
+Provides an apt backend to PackageKit
+
+Copyright (C) 2008 Sebastian Heinlein <glatzor at ubuntu.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.
+"""
+
+__author__  = "Sebastian Heinlein <devel at glatzor.de>"
+
+import hotshot
+import hotshot.stats
+import optparse
+import sys
+
+def main():
+    parser = optparse.OptionParser(usage="hotshot-analyze.py "
+                                         "PATH_TO_STATS_FILE",
+                                   description="Statistics analyzer for the "
+                                               "HotShot Python profiler")
+    (options, args) = parser.parse_args()
+    if len(args) != 1:
+        parser.print_help()
+        sys.exit(1)
+
+    stats = hotshot.stats.load(args[0])
+    stats.strip_dirs()
+    stats.sort_stats('time', 'calls')
+    stats.print_stats(20)
+
+if __name__ == "__main__":
+    main()
diff --git a/backends/apt/packagekit b/backends/apt/packagekit
new file mode 120000
index 0000000..2e8d949
--- /dev/null
+++ b/backends/apt/packagekit
@@ -0,0 +1 @@
+../../lib/python/packagekit
\ No newline at end of file
diff --git a/backends/apt/pk-backend-apt.c b/backends/apt/pk-backend-apt.c
new file mode 100644
index 0000000..6508bf3
--- /dev/null
+++ b/backends/apt/pk-backend-apt.c
@@ -0,0 +1,598 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2007-2008 Richard Hughes <richard at hughsie.com>
+ * Copyright (C) 2008-2009 Sebastian Heinlein <glatzor at ubuntu.com>
+ * Copyright (C) 2007 Ali Sabil <ali.sabil at gmail.com>
+ * Copyright (C) 2007 Tom Parker <palfrey at tevp.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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include "config.h"
+
+#include <pk-backend.h>
+#include <pk-backend-spawn.h>
+#include <string.h>
+
+static PkBackendSpawn *spawn;
+
+/**
+  * backend_stderr_cb:
+  */
+static gboolean
+backend_stderr_cb (PkBackend *backend, const gchar *output)
+{
+	// APT is a little bit chatty on stderr
+	if (strstr (output, "W:") != NULL)
+		return FALSE;
+	if (strstr (output, "E:") != NULL)
+		return FALSE;
+	// There have been a lot of API changes in python-apt recently
+	if (strstr (output, "DeprecationWarning") != NULL)
+		return FALSE;
+	return TRUE;
+}
+
+/**
+ * backend_initialize:
+ * This should only be run once per backend load, i.e. not every transaction
+ */
+static void
+backend_initialize (PkBackend *backend)
+{
+	g_debug ("backend: initialize");
+	spawn = pk_backend_spawn_new ();
+	pk_backend_spawn_set_filter_stderr (spawn, backend_stderr_cb);
+	pk_backend_spawn_set_name (spawn, "apt");
+}
+
+/**
+ * backend_destroy:
+ * This should only be run once per backend load, i.e. not every transaction
+ */
+static void
+backend_destroy (PkBackend *backend)
+{
+	g_debug ("backend: destroy");
+	g_object_unref (spawn);
+}
+
+/**
+ * backend_get_mime_types:
+ */
+static gchar *
+backend_get_mime_types (PkBackend *backend)
+{
+	return g_strdup ("application/x-deb");
+}
+
+/**
+ * pk_backend_cancel:
+ */
+static void
+backend_cancel (PkBackend *backend)
+{
+	/* this feels bad... */
+	pk_backend_spawn_kill (spawn);
+}
+
+/**
+ * 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_string (package_ids);
+	pk_backend_spawn_helper (spawn, "aptBackend.py", "download-packages", directory, package_ids_temp, NULL);
+	g_free (package_ids_temp);
+}
+
+/**
+ * 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_string (package_ids);
+	filters_text = pk_filter_bitfield_to_string (filters);
+	pk_backend_spawn_helper (spawn, "aptBackend.py", "get-depends", filters_text, package_ids_temp, pk_backend_bool_to_string (recursive), NULL);
+	g_free (filters_text);
+	g_free (package_ids_temp);
+}
+
+/**
+ * backend_get_details:
+ */
+static void
+backend_get_details (PkBackend *backend, gchar **package_ids)
+{
+	gchar *package_ids_temp;
+	package_ids_temp = pk_package_ids_to_string (package_ids);
+	pk_backend_spawn_helper (spawn, "aptBackend.py", "get-details", package_ids_temp, NULL);
+	g_free (package_ids_temp);
+}
+
+#ifdef HAVE_PYTHON_META_RELEASE
+/**
+ * backend_get_distro_upgrades:
+ */
+static void
+backend_get_distro_upgrades (PkBackend *backend)
+{
+	pk_backend_spawn_helper (spawn, "aptBackend.py", "get-distro-upgrades", NULL);
+}
+#endif /* HAVE_PYTHON_META_RELEASE */
+
+/**
+ * backend_get_files:
+ */
+static void
+backend_get_files (PkBackend *backend, gchar **package_ids)
+{
+	gchar *package_ids_temp;
+	package_ids_temp = pk_package_ids_to_string (package_ids);
+	pk_backend_spawn_helper (spawn,  "aptBackend.py", "get-files", package_ids_temp, NULL);
+	g_free (package_ids_temp);
+}
+
+/**
+ * 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_string (package_ids);
+	filters_text = pk_filter_bitfield_to_string (filters);
+	pk_backend_spawn_helper (spawn, "aptBackend.py", "get-requires", filters_text, package_ids_temp, pk_backend_bool_to_string (recursive), NULL);
+	g_free (filters_text);
+	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_string (filters);
+	pk_backend_spawn_helper (spawn,  "aptBackend.py", "get-updates", filters_text, 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_string (filters);
+	pk_backend_spawn_helper (spawn, "aptBackend.py", "get-packages", filters_text, NULL);
+	g_free (filters_text);
+}
+
+/**
+ * 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_string (package_ids);
+	pk_backend_spawn_helper (spawn, "aptBackend.py", "get-update-detail", package_ids_temp, NULL);
+	g_free (package_ids_temp);
+}
+
+ /**
+ * 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, "aptBackend.py", "simulate-install-files", package_ids_temp, NULL);
+	g_free (package_ids_temp);
+}
+
+/**
+ * backend_simulate_install_packages:
+ */
+static void
+backend_simulate_install_packages (PkBackend *backend, gchar **package_ids)
+{
+	gchar *package_ids_temp;
+
+	/* send the complete list as stdin */
+	package_ids_temp = pk_package_ids_to_string (package_ids);
+	pk_backend_spawn_helper (spawn, "aptBackend.py", "simulate-install-packages", package_ids_temp, NULL);
+	g_free (package_ids_temp);
+}
+
+/**
+ * backend_simulate_remove_packages:
+ */
+static void
+backend_simulate_remove_packages (PkBackend *backend, gchar **package_ids, gboolean autoremove)
+{
+	gchar *package_ids_temp;
+
+	/* send the complete list as stdin */
+	package_ids_temp = pk_package_ids_to_string (package_ids);
+	pk_backend_spawn_helper (spawn, "aptBackend.py", "simulate-remove-packages", package_ids_temp, NULL);
+	g_free (package_ids_temp);
+}
+
+/**
+ * backend_simulate_update_packages:
+ */
+static void
+backend_simulate_update_packages (PkBackend *backend, gchar **package_ids)
+{
+	gchar *package_ids_temp;
+
+	/* send the complete list as stdin */
+	package_ids_temp = pk_package_ids_to_string (package_ids);
+	pk_backend_spawn_helper (spawn, "aptBackend.py", "simulate-update-packages", package_ids_temp, NULL);
+	g_free (package_ids_temp);
+}
+
+/**
+ * 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_string (package_ids);
+	pk_backend_spawn_helper (spawn, "aptBackend.py", "install-packages", pk_backend_bool_to_string (only_trusted), package_ids_temp, NULL);
+	g_free (package_ids_temp);
+}
+
+/**
+ * backend_install_files:
+ */
+static void
+backend_install_files (PkBackend *backend, gboolean only_trusted, 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, "aptBackend.py", "install-files", pk_backend_bool_to_string (only_trusted), package_ids_temp, NULL);
+	g_free (package_ids_temp);
+}
+
+/**
+ * backend_install_signature:
+ *
+FIXME: Not implemented
+ 
+static void
+backend_install_signature (PkBackend *backend, PkSigTypeEnum type,
+			   const gchar *key_id, const gchar *package_id)
+{
+	const gchar *type_text;
+
+	type_text = pk_sig_type_enum_to_string (type);
+	pk_backend_spawn_helper (spawn, "aptBackend.py", "install-signature", type_text, key_id, package_id, NULL);
+} */
+
+/**
+ * backend_refresh_cache:
+ */
+static void
+backend_refresh_cache (PkBackend *backend, gboolean force)
+{
+	pk_backend_spawn_helper (spawn, "aptBackend.py", "refresh-cache", pk_backend_bool_to_string (force), NULL);
+}
+
+/**
+ * pk_backend_remove_packages:
+ */
+static void
+backend_remove_packages (PkBackend *backend, gchar **package_ids, gboolean allow_deps, gboolean autoremove)
+{
+	gchar *package_ids_temp;
+
+	/* send the complete list as stdin */
+	package_ids_temp = pk_package_ids_to_string (package_ids);
+	pk_backend_spawn_helper (spawn, "aptBackend.py", "remove-packages", pk_backend_bool_to_string (allow_deps), pk_backend_bool_to_string (autoremove), package_ids_temp, NULL);
+	g_free (package_ids_temp);
+}
+
+/**
+ * pk_backend_search_details:
+ */
+static void
+backend_search_details (PkBackend *backend, PkBitfield filters, gchar **values)
+{
+	gchar *filters_text;
+	gchar *search;
+	filters_text = pk_filter_bitfield_to_string (filters);
+	search = g_strjoinv ("&", values);
+	pk_backend_spawn_helper (spawn, "aptBackend.py", "search-details", filters_text, search, NULL);
+	g_free (filters_text);
+	g_free (search);
+}
+
+/**
+ * pk_backend_search_file:
+ */
+static void
+backend_search_file (PkBackend *backend, PkBitfield filters, gchar **values)
+{
+	gchar *filters_text;
+	gchar *search;
+	filters_text = pk_filter_bitfield_to_string (filters);
+	search = g_strjoinv ("&", values);
+	pk_backend_spawn_helper (spawn, "aptBackend.py", "search-file", filters_text, search, NULL);
+	g_free (filters_text);
+	g_free (search);
+}
+
+/**
+ * pk_backend_search_group:
+ */
+static void
+backend_search_group (PkBackend *backend, PkBitfield filters, gchar **values)
+{
+	gchar *filters_text;
+	gchar *search;
+	filters_text = pk_filter_bitfield_to_string (filters);
+	search = g_strjoinv ("&", values);
+	pk_backend_spawn_helper (spawn, "aptBackend.py", "search-group", filters_text, search, NULL);
+	g_free (filters_text);
+	g_free (search);
+}
+
+/**
+ * pk_backend_search_name:
+ */
+static void
+backend_search_name (PkBackend *backend, PkBitfield filters, gchar **values)
+{
+	gchar *filters_text;
+	gchar *search;
+	filters_text = pk_filter_bitfield_to_string (filters);
+	search = g_strjoinv ("&", values);
+	pk_backend_spawn_helper (spawn, "aptBackend.py", "search-name", filters_text, search, NULL);
+	g_free (filters_text);
+	g_free (search);
+}
+
+/**
+ * pk_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_string (package_ids);
+	pk_backend_spawn_helper (spawn, "aptBackend.py", "update-packages", pk_backend_bool_to_string (only_trusted), package_ids_temp, NULL);
+	g_free (package_ids_temp);
+}
+
+/**
+ * pk_backend_update_system:
+ */
+static void
+backend_update_system (PkBackend *backend, gboolean only_trusted)
+{
+	pk_backend_spawn_helper (spawn, "aptBackend.py", "update-system", pk_backend_bool_to_string (only_trusted), 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_string (filters);
+	package_ids_temp = pk_package_ids_to_string (package_ids);
+	pk_backend_spawn_helper (spawn, "aptBackend.py", "resolve", filters_text, package_ids_temp, NULL);
+	g_free (filters_text);
+	g_free (package_ids_temp);
+}
+
+#ifdef HAVE_PYTHON_SOFTWARE_PROPERTIES
+/**
+ * pk_backend_get_repo_list:
+ */
+static void
+backend_get_repo_list (PkBackend *backend, PkBitfield filters)
+{
+	gchar *filters_text;
+	filters_text = pk_filter_bitfield_to_string (filters);
+	pk_backend_spawn_helper (spawn, "aptBackend.py", "get-repo-list", filters_text, NULL);
+	g_free (filters_text);
+}
+
+/**
+ * pk_backend_repo_enable:
+ */
+static void
+backend_repo_enable (PkBackend *backend, const gchar *rid, gboolean enabled)
+{
+	if (enabled == TRUE) {
+		pk_backend_spawn_helper (spawn, "aptBackend.py", "repo-enable", rid, "true", NULL);
+	} else {
+		pk_backend_spawn_helper (spawn, "aptBackend.py", "repo-enable", rid, "false", NULL);
+	}
+}
+
+/**
+ * pk_backend_repo_set_data:
+ *
+FIXME: Not implemented
+ 
+static void
+backend_repo_set_data (PkBackend *backend, const gchar *rid, const gchar *parameter, const gchar *value)
+{
+	pk_backend_spawn_helper (spawn, "aptBackend.py", "repo-set-data", rid, parameter, value, NULL);
+}
+*/
+#endif /* HAVE_PYTHON_SOFTWARE_PROPERTIES */
+
+/**
+ * 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_string (provides);
+	filters_text = pk_filter_bitfield_to_string (filters);
+	pk_backend_spawn_helper (spawn, "aptBackend.py", "what-provides", filters_text, provides_text, search, NULL);
+	g_free (filters_text);
+}
+
+/**
+ * pk_backend_get_categories:
+ *
+FIXME: Not implemented
+static void
+backend_get_categories (PkBackend *backend)
+{
+	pk_backend_spawn_helper (spawn, "aptBackend.py", "get-categories", NULL);
+} */
+
+/**
+ * backend_get_groups:
+ */
+static PkBitfield
+backend_get_groups (PkBackend *backend)
+{
+	return pk_bitfield_from_enums (
+		PK_GROUP_ENUM_ACCESSORIES,
+		PK_GROUP_ENUM_ADMIN_TOOLS,
+		PK_GROUP_ENUM_COMMUNICATION,
+		PK_GROUP_ENUM_DOCUMENTATION,
+		PK_GROUP_ENUM_DESKTOP_GNOME,
+		PK_GROUP_ENUM_DESKTOP_KDE,
+		PK_GROUP_ENUM_DESKTOP_OTHER,
+		PK_GROUP_ENUM_ELECTRONICS,
+		PK_GROUP_ENUM_GAMES,
+		PK_GROUP_ENUM_GRAPHICS,
+		PK_GROUP_ENUM_INTERNET,
+		PK_GROUP_ENUM_LEGACY,
+		PK_GROUP_ENUM_LOCALIZATION,
+		PK_GROUP_ENUM_MULTIMEDIA,
+		PK_GROUP_ENUM_NETWORK,
+		PK_GROUP_ENUM_OTHER,
+		PK_GROUP_ENUM_PROGRAMMING,
+		PK_GROUP_ENUM_PUBLISHING,
+		PK_GROUP_ENUM_SCIENCE,
+		PK_GROUP_ENUM_SYSTEM,
+		PK_GROUP_ENUM_UNKNOWN,
+		PK_GROUP_ENUM_COLLECTIONS,
+		-1);
+}
+
+/**
+ * backend_get_filters:
+ */
+static PkBitfield
+backend_get_filters (PkBackend *backend)
+{
+	return pk_bitfield_from_enums (
+		PK_FILTER_ENUM_GUI,
+		PK_FILTER_ENUM_INSTALLED,
+		PK_FILTER_ENUM_DEVELOPMENT,
+		PK_FILTER_ENUM_SUPPORTED,
+		PK_FILTER_ENUM_FREE,
+		PK_FILTER_ENUM_COLLECTIONS,
+		-1);
+}
+
+/* FIXME: port this away from PK_BACKEND_OPTIONS */
+PK_BACKEND_OPTIONS (
+	"Apt",					/* description */
+	"Sebastian Heinlein <glatzor at ubuntu.com>",	/* author */
+	backend_initialize,			/* initalize */
+	backend_destroy,			/* destroy */
+	backend_get_groups,			/* get_groups */
+	backend_get_filters,			/* get_filters */
+	NULL,					/* get_roles */
+	backend_get_mime_types,			/* get_mime_types */
+	backend_cancel,				/* cancel */
+	backend_download_packages,		/* download_packages */
+	NULL,					/* get_categories */
+	backend_get_depends,			/* get_depends */
+	backend_get_details,			/* get_details */
+#ifdef HAVE_PYTHON_META_RELEASE
+	backend_get_distro_upgrades,		/* get_distro_upgrades */
+#else
+	NULL,					/* get_distro_upgrades */
+#endif /* HAVE_PYTHON_META_RELEASE */
+	backend_get_files,			/* get_files */
+	backend_get_packages,			/* get_packages */
+#ifdef HAVE_PYTHON_SOFTWARE_PROPERTIES
+	backend_get_repo_list,			/* get_repo_list */
+#else
+	NULL,					/* get_repo_list */
+#endif /* HAVE_PYTHON_SOFTWARE_PROPERTIES */
+	backend_get_requires,			/* get_requires */
+	backend_get_update_detail,		/* get_update_detail */
+	backend_get_updates,			/* get_updates */
+	backend_install_files,			/* install_files */
+	backend_install_packages,		/* install_packages */
+	NULL,					/* install_signature */
+	backend_refresh_cache,			/* refresh_cache */
+	backend_remove_packages,		/* remove_packages */
+#ifdef HAVE_PYTHON_SOFTWARE_PROPERTIES
+	backend_repo_enable,			/* repo_enable */
+#else
+	NULL,					/* repo_enable */
+#endif /* HAVE_PYTHON_SOFTWARE_PROPERTIES */
+	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 */
+	backend_update_packages,		/* update_packages */
+	backend_update_system,			/* update_system */
+	backend_what_provides,			/* what_provides */
+	backend_simulate_install_files,		/* simulate_install_files */
+	backend_simulate_install_packages,	/* simulate_install_packages */
+	backend_simulate_remove_packages,	/* simulate_remove_packages */
+	backend_simulate_update_packages,	/* simulate_update_packages */
+	NULL,					/* upgrade_system */
+	NULL,					/* transaction_start */
+	NULL					/* transaction_stop */
+);
+
+
diff --git a/backends/apt/profiler.py b/backends/apt/profiler.py
new file mode 100644
index 0000000..bc09f9e
--- /dev/null
+++ b/backends/apt/profiler.py
@@ -0,0 +1,40 @@
+#!/usr/bin/env python
+# 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+# Copyright (C) 2008
+#    Sebastian Heinlein <sebi at glatzor.de>
+
+"""
+Allows to start the apt2 backend in a profling mode
+"""
+
+__author__ = "Sebastian Heinlein <devel at glatzor.de>"
+
+
+import hotshot
+import sys
+
+from aptDBUSBackend import main
+
+if len(sys.argv) == 2:
+    profile = sys.argv[1]
+else:
+    profile = "profile"
+
+prof = hotshot.Profile(profile)
+print prof.runcall(main)
+prof.close()
diff --git a/backends/apt/test.sh b/backends/apt/test.sh
new file mode 100755
index 0000000..f6eca2e
--- /dev/null
+++ b/backends/apt/test.sh
@@ -0,0 +1,2 @@
+#!/bin/sh
+nosetests $@ --with-coverage --cover-package=aptDBUSBackend --pdb tests.py
diff --git a/backends/apt/tests.py b/backends/apt/tests.py
new file mode 100755
index 0000000..70accd1
--- /dev/null
+++ b/backends/apt/tests.py
@@ -0,0 +1,155 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+"""
+Provides unit test of the apt backend of PackageKit
+
+Copyright (C) 2008 Sebastian Heinlein <glatzor at ubuntu.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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+Licensed under the GNU General Public License Version 2
+"""
+
+__author__  = "Sebastian Heinlein <devel at glatzor.de>"
+
+import threading
+import time
+import os
+import shutil
+import sys
+import tempfile
+import unittest
+
+import apt
+import apt_pkg
+import mox
+import nose.tools
+
+from aptDBUSBackend import PackageKitAptBackend
+from packagekit.enums import *
+
+TEMPDIR = tempfile.mkdtemp(prefix="apt-backend-test")
+
+class AptBackendTestCase(mox.MoxTestBase):
+    """Test suite for the APT backend"""
+
+    def setUp(self):
+        """Create a mox factory and a backend instance"""
+        mox.MoxTestBase.setUp(self)
+        self.backend = PackageKitAptBackend(None, None)
+        for cb in ["Package", "Finished"]:
+            self.mox.StubOutWithMock(self.backend, cb)
+
+    @nose.tools.timed(10)
+    def test_00_Init(self):
+        """Test the initialization"""
+        self.mox.ReplayAll()
+        self.backend.Init()
+        while threading.activeCount() > 1:
+            time.sleep(0.1)
+        binary = os.path.join(TEMPDIR,
+                              apt_pkg.Config["Dir::Cache"],
+                              apt_pkg.Config["Dir::Cache::pkgcache"])
+        source = os.path.join(TEMPDIR,
+                              apt_pkg.Config["Dir::Cache"],
+                              apt_pkg.Config["Dir::Cache::srcpkgcache"])
+        self.assertTrue(os.path.exists(source))
+        self.assertTrue(os.path.exists(binary))
+        pkg = self.backend._cache["xterm"]
+        self.assertEqual(pkg.candidateVersion, "235-1")
+
+    @nose.tools.timed(10)
+    def test_01_Refresh(self):
+        """Test the Refresh of the cache method"""
+        self.backend.Finished(EXIT_SUCCESS)
+        self.mox.ReplayAll()
+        self.backend.doRefreshCache(False)
+        while threading.activeCount() > 1:
+            time.sleep(0.1)
+        self.assertEqual(self.backend._cache["xterm"].candidateVersion, "237-1")
+        self.assertTrue(self.backend._cache.has_key("synaptic"))
+
+    @nose.tools.timed(10)
+    def test_20_SearchName(self):
+        """Test the doSearchName method"""
+        self.backend.Package(INFO_INSTALLED, "xterm;235-1;i386;",
+                             "X terminal emulator")
+        self.backend.Finished(EXIT_SUCCESS)
+        self.mox.ReplayAll()
+        self.backend.doSearchName(FILTER_NONE, "xterm")
+        while threading.activeCount() > 1:
+            time.sleep(0.1)
+
+    @nose.tools.timed(10)
+    def test_20_SearchFile(self):
+        """Test the doSearchFile method"""
+        self.backend.Package(INFO_INSTALLED, "xterm;235-1;i386;",
+                             "X terminal emulator")
+        self.backend.Finished(EXIT_SUCCESS)
+        self.mox.ReplayAll()
+        self.backend.doSearchFile(FILTER_NONE, "bin/xterm")
+        while threading.activeCount() > 1:
+            time.sleep(0.1)
+
+    @nose.tools.timed(10)
+    def test_20_GetUpdates(self):
+        """Test the doGetUpdates method"""
+        self.backend.Package(INFO_NORMAL, "xterm;237-1;i386;",
+                             "X terminal emulator")
+        self.backend.Finished(EXIT_SUCCESS)
+        self.mox.ReplayAll()
+        self.backend.doGetUpdates(FILTER_NONE)
+        while threading.activeCount() > 1:
+            time.sleep(0.1)
+
+
+def setup():
+    """Create a temporary and very simple chroot for apt"""
+    apt_pkg.InitConfig()
+    config = apt_pkg.Config
+    config.Set("Dir::Etc::sourcelist", 
+               os.path.join(TEMPDIR, "etc/apt/sources.list"))
+    config.Set("Dir::Etc::sourceparts", "")
+    config.Set("Dir", TEMPDIR)
+    config.Set("Dir::State::status",
+               os.path.join(TEMPDIR, "var/lib/dpkg/status"))
+    os.makedirs(os.path.join(TEMPDIR, "var/lib/apt/lists/partial"))
+    os.makedirs(os.path.join(TEMPDIR, "var/cache/apt/archives/partial"))
+    os.makedirs(os.path.join(TEMPDIR, "var/lib/dpkg/info"))
+    os.makedirs(os.path.join(TEMPDIR, "etc/apt"))
+    os.makedirs(os.path.join(TEMPDIR, "repo"))
+    shutil.copy("data/Packages", os.path.join(TEMPDIR, "repo/Packages"))
+    shutil.copy("data/status", os.path.join(TEMPDIR, "var/lib/dpkg/status"))
+    shutil.copy("data/xterm.list", os.path.join(TEMPDIR,
+                                                "var/lib/dpkg/info/xterm.list"))
+    sources = open(os.path.join(TEMPDIR, "etc/apt/sources.list"), "w")
+    sources.write("deb file://%s/repo/ ./\n" % TEMPDIR)
+    sources.close()
+
+
+def teardown():
+    """Clear up temporary files"""
+    if os.path.exists(TEMPDIR):
+        shutil.rmtree(TEMPDIR)
+
+def usage():
+    print "ERROR: Run ./test.sh instead"
+    sys.exit(1)
+
+if __name__ == "__main__":
+    usage()
+
+# vim: ts=4 et sts=4
diff --git a/backends/apt/update-packagekit-app-data b/backends/apt/update-packagekit-app-data
new file mode 100755
index 0000000..b0e6a57
--- /dev/null
+++ b/backends/apt/update-packagekit-app-data
@@ -0,0 +1,86 @@
+#!/usr/bin/env python
+# update-packagekit-app-data - Generate a cache of mime type and codec handlers
+# Authors: Michael Vogt <mvo at ubuntu.com>
+#          Sebastian Heinlein <devel at glatzor.de>
+
+import sys
+import glob
+import os
+import os.path
+import re
+import sys
+
+from optparse import OptionParser
+
+import gdbm
+
+try:
+    import xdg.DesktopEntry
+except ImportError, e:
+    print "WARNING: can not import xdg.DesktopEntry, aborting"
+    sys.exit(0)
+
+def generate_mime_map(desktop_dir, cache_dir):
+    dicts = { 'mime':{}, 'codec':{} }
+
+    def record_provider(de, cp, defield,dictname):
+        try: 
+            keys = de.get(defield, list=True)
+        except keyError: 
+            return
+        if not keys: return
+        dict = dicts[dictname]
+        for key in keys:
+            # gst-caps support
+            if dictname == 'codec' and ',' in key:
+                key = key.split(",")[0]
+            try:
+                l = dict[key]
+            except KeyError:
+                l = []; dict[key] = l
+            l.append(cp)
+
+    for fn in glob.glob(os.path.join(desktop_dir, 'desktop/*.desktop')):
+        try:
+            de = xdg.DesktopEntry.DesktopEntry(fn)
+        except Exception, e:
+            print >>sys.stderr, "bad .desktop file: %s: %s" % (fn, e)
+        try:
+            component = de.get('X-AppInstall-Section')
+            package = de.get('X-AppInstall-Package')
+        except KeyError:
+            continue
+        cp = component+"/"+package
+        record_provider(de, cp, 'MimeType','mime')
+        record_provider(de, cp, 'X-AppInstall-Codecs','codec')
+
+    for (dictname, dict) in dicts.iteritems():
+        g = gdbm.open(os.path.join(cache_dir,
+                                   dictname+"-map.gdbm"),
+                      'nfu')
+        for (key,l) in dict.iteritems():
+            g[key] = ' '.join(l)
+        g.sync()
+        g.close()
+
+def main():
+    parser = OptionParser()
+    parser.add_option ("-d", "--desktop-dir", action="store",
+                       dest="desktop_dir", 
+                       default="/usr/share/app-install",
+                       help="Directory that contains the desktop files "
+                            "of the applications")
+    parser.add_option ("-c", "--cache-dir", action="store",
+                       dest="cache_dir", 
+                       default="/var/lib/PackageKit",
+                       help="Directory where the data should be cached in")
+    (options, args) = parser.parse_args()
+    for path in (options.desktop_dir, options.cache_dir):
+        if not os.path.isdir(path):
+            print "%s is not a valid directory" % path
+            sys.exit(1)
+    print "Generating mime/codec maps..."
+    generate_mime_map(options.desktop_dir, options.cache_dir)
+
+if __name__ == "__main__":
+    main()
diff --git a/configure.ac b/configure.ac
index d2d6389..009af19 100644
--- a/configure.ac
+++ b/configure.ac
@@ -469,6 +469,7 @@ AM_CONDITIONAL(PK_BUILD_PM_UTILS, test $build_pm_utils = "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)
 AC_ARG_ENABLE(aptcc, AS_HELP_STRING([--enable-aptcc],[use the APTcc backend]),enable_aptcc=$enableval,enable_aptcc=no)
 AC_ARG_ENABLE(box, AS_HELP_STRING([--enable-box],[use the BOX backend]),enable_box=$enableval,enable_box=no)
 AC_ARG_ENABLE(conary, AS_HELP_STRING([--enable-conary],[use the CONARY backend]),enable_conary=$enableval,enable_conary=no)
@@ -488,6 +489,7 @@ AC_ARG_ENABLE(zypp, AS_HELP_STRING([--enable-zypp],[use the Zypp backend]),enabl
 
 # export to Makefile.am's
 AM_CONDITIONAL(BACKEND_TYPE_ALPM, [test x$enable_alpm = xyes])
+AM_CONDITIONAL(BACKEND_TYPE_APT, [test x$enable_apt = xyes])
 AM_CONDITIONAL(BACKEND_TYPE_APTCC, [test x$enable_aptcc = xyes])
 AM_CONDITIONAL(BACKEND_TYPE_BOX, [test x$enable_box = xyes])
 AM_CONDITIONAL(BACKEND_TYPE_CONARY, [test x$enable_conary = xyes])
@@ -563,7 +565,7 @@ dnl ---------------------------------------------------------------------------
 AC_ARG_WITH([default_backend],
 	    AS_HELP_STRING([--with-default-backend=<option>],
 			   [Default backend to use
-                           auto,alpm,aptcc,box,conary,dummy,entropy,opkg,pisi,portage,ports,slapt,smart,urpmi,yum,zif,zypp (dummy)]))
+                           auto,alpm,apt,aptcc,box,conary,dummy,entropy,opkg,pisi,portage,ports,slapt,smart,urpmi,yum,zif,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
@@ -573,7 +575,7 @@ if test x$with_default_backend = x; then
 	elif test -f /usr/lib/libalpm.so; then
 		with_default_backend=alpm
 	elif test -f /usr/bin/apt-get ; then
-		with_default_backend=aptcc
+		with_default_backend=apt
 	elif test -f /usr/bin/conary ; then
 		with_default_backend=conary
 	elif test -f /usr/bin/box-repos ; then
@@ -621,6 +623,18 @@ if test x$enable_zif = xyes; then
 fi
 AM_CONDITIONAL(PK_BUILD_ZIF, test $build_zif = "yes")
 
+if test x$enable_apt = xyes; then
+	PY_CHECK_MOD([apt_pkg],,,AC_MSG_ERROR([Apt backend needs python-apt]))
+	PY_CHECK_MOD([UpdateManager.Core.MetaRelease],,
+		     AC_DEFINE(HAVE_PYTHON_META_RELEASE, 1,
+			       "Meta release is available"), 
+		     AC_MSG_WARN([Distro upgrade notification not supported]))
+	PY_CHECK_MOD([softwareproperties.SoftwareProperties],,
+		     AC_DEFINE(HAVE_PYTHON_SOFTWARE_PROPERTIES, 1,
+			       "Python software properties is available"),
+		     AC_MSG_WARN([Repository handling not supported]))
+fi
+
 if test x$enable_aptcc = xyes; then
 	dnl Use C++
 	AC_LANG([C++])
@@ -746,6 +760,7 @@ contrib/device-rebind/Makefile
 contrib/pm-utils/Makefile
 backends/Makefile
 backends/alpm/Makefile
+backends/apt/Makefile
 backends/aptcc/Makefile
 backends/box/Makefile
 backends/conary/Makefile
@@ -819,6 +834,7 @@ echo "
 
         Backends:
         ALPM backend:              ${enable_alpm}
+        APT backend:               ${enable_apt}
         APTcc backend:             ${enable_aptcc}
         BOX backend:               ${enable_box}
         CONARY backend:            ${enable_conary}
commit d635002d4347f038cf979376536bd568f08553b2
Author: Nils Philippsen <nils at redhat.com>
Date:   Thu Nov 24 11:39:59 2011 +0100

    yum: consistently use same logic to determine GPG checking
    
    Always check for existence of _override_sigchecks attribute, in
    _is_package_repo_signed() as well as in _set_only_trusted().

diff --git a/backends/yum/yumBackend.py b/backends/yum/yumBackend.py
index a1f37d9..3975e90 100755
--- a/backends/yum/yumBackend.py
+++ b/backends/yum/yumBackend.py
@@ -1710,10 +1710,12 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
         signed = False
         try:
             repo = self.yumbase.repos.getRepo(pkg.repoid)
-            if hasattr(repo, "gpgcheck"):
-                signed = repo.gpgcheck
-            else:
+            if hasattr(repo, "_override_sigchecks"):
+                # yum >= 3.2.29
                 signed = not repo._override_sigchecks
+            else:
+                # yum < 3.2.29
+                signed = repo.gpgcheck
         except yum.Errors.RepoError, e:
             raise PkError(ERROR_REPO_NOT_AVAILABLE, _to_unicode(e))
         except exceptions.IOError, e:
commit 1055c52d723346006d8bbb7e0f2b324c9de9b82f
Author: Nils Philippsen <nils at redhat.com>
Date:   Wed Nov 23 15:26:41 2011 +0100

    use current yum API for installing untrusted packages
    
    YumBase in yum >= 3.2.29 doesn't use conf objects for setting up
    installation or update of untrusted packages. Consolidate the code
    setting this up in _set_only_trusted(), and set it up the way the yum
    CLI does (since 3.2.29) or respectively did before.

diff --git a/backends/yum/yumBackend.py b/backends/yum/yumBackend.py
index dccb8ae..a1f37d9 100755
--- a/backends/yum/yumBackend.py
+++ b/backends/yum/yumBackend.py
@@ -1710,7 +1710,10 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
         signed = False
         try:
             repo = self.yumbase.repos.getRepo(pkg.repoid)
-            signed = repo.gpgcheck
+            if hasattr(repo, "gpgcheck"):
+                signed = repo.gpgcheck
+            else:
+                signed = not repo._override_sigchecks
         except yum.Errors.RepoError, e:
             raise PkError(ERROR_REPO_NOT_AVAILABLE, _to_unicode(e))
         except exceptions.IOError, e:
@@ -1719,6 +1722,30 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
             raise PkError(ERROR_INTERNAL_ERROR, _format_str(traceback.format_exc()))
         return signed
 
+    def _set_only_trusted(self, only_trusted):
+        # if only_trusted is true, it means that we will only install/update
+        # signed files
+
+        # _override_sigchecks logic is reversed
+        override_sigchecks = not only_trusted
+
+        if hasattr(self.yumbase, "_override_sigchecks"):
+            # yum >= 3.2.29:
+            self.yumbase._override_sigchecks = override_sigchecks
+
+            for repo in self.yumbase.repos.listEnabled():
+                repo._override_sigchecks = override_sigchecks
+
+        else:
+            # yum < 3.2.29:
+            for attrname in ("gpgcheck", "repo_gpgcheck", "localpkg_gpgcheck"):
+                setattr(self.yumbase.conf, attrname, only_trusted)
+
+            for attrname in ("gpgcheck", "repo_gpgcheck"):
+                for repo in self.yumbase.repos.listEnabled():
+                    setattr(repo, attrname, only_trusted)
+
+
     def update_system(self, only_trusted):
         '''
         Implement the update-system functionality
@@ -1733,15 +1760,7 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
         self.percentage(0)
         self.status(STATUS_RUNNING)
 
-        # if only_trusted is true, it means that we will only update signed files
-        if only_trusted:
-            self.yumbase.conf.gpgcheck = 1
-            if hasattr(self.yumbase.conf, 'localpkg_gpgcheck'):
-                self.yumbase.conf.localpkg_gpgcheck = 1
-        else:
-            self.yumbase.conf.gpgcheck = 0
-            if hasattr(self.yumbase.conf, 'localpkg_gpgcheck'):
-                self.yumbase.conf.localpkg_gpgcheck = 0
+        self._set_only_trusted(only_trusted)
 
         self.yumbase.conf.throttle = "60%" # Set bandwidth throttle to 60%
                                            # to avoid taking all the system's bandwidth.
@@ -1961,15 +1980,7 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
         self.status(STATUS_RUNNING)
         txmbrs = []
 
-        # if only_trusted is true, it means that we will only update signed files
-        if only_trusted:
-            self.yumbase.conf.gpgcheck = 1
-            if hasattr(self.yumbase.conf, 'localpkg_gpgcheck'):
-                self.yumbase.conf.localpkg_gpgcheck = 1
-        else:
-            self.yumbase.conf.gpgcheck = 0
-            if hasattr(self.yumbase.conf, 'localpkg_gpgcheck'):
-                self.yumbase.conf.localpkg_gpgcheck = 0
+        self._set_only_trusted(only_trusted)
 
         for package_id in package_ids:
             grp = self._is_meta_package(package_id)
@@ -2158,15 +2169,7 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
             self.error(ERROR_ALL_PACKAGES_ALREADY_INSTALLED,
                        'All of the specified packages have already been installed')
 
-        # If only_trusted is true, it means that we will only install trusted files
-        if only_trusted or simulate:
-            self.yumbase.conf.gpgcheck = 1
-            if hasattr(self.yumbase.conf, 'localpkg_gpgcheck'):
-                self.yumbase.conf.localpkg_gpgcheck = 1
-        else:
-            self.yumbase.conf.gpgcheck = 0
-            if hasattr(self.yumbase.conf, 'localpkg_gpgcheck'):
-                self.yumbase.conf.localpkg_gpgcheck = 0
+        self._set_only_trusted(only_trusted or simulate)
 
         # self.yumbase.installLocal fails for unsigned packages when self.yumbase.conf.gpgcheck = 1
         # This means we don't run runYumTransaction, and don't get the GPG failure in
@@ -2318,15 +2321,7 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
         self.percentage(0)
         self.status(STATUS_RUNNING)
 
-        # if only_trusted is true, it means that we will only update signed files
-        if only_trusted:
-            self.yumbase.conf.gpgcheck = 1
-            if hasattr(self.yumbase.conf, 'localpkg_gpgcheck'):
-                self.yumbase.conf.localpkg_gpgcheck = 1
-        else:
-            self.yumbase.conf.gpgcheck = 0
-            if hasattr(self.yumbase.conf, 'localpkg_gpgcheck'):
-                self.yumbase.conf.localpkg_gpgcheck = 0
+        self._set_only_trusted(only_trusted)
 
         txmbrs = []
         try:
commit 1e89bdb99983f96182e7983f6de07e99db35b4ce
Author: Nils Philippsen <nils at redhat.com>
Date:   Tue Nov 22 15:33:27 2011 +0100

    automatically rebuild moc files with different moc version

diff --git a/Makefile.am b/Makefile.am
index bac22d1..25d90e2 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -15,6 +15,9 @@ SUBDIRS = 						\
 	contrib						\
 	docs
 
+GITIGNOREFILES =				\
+	.moc.version
+
 clean-local :
 	rm -f *~
 
diff --git a/moc.mk b/moc.mk
index 37a27e6..cc681be 100644
--- a/moc.mk
+++ b/moc.mk
@@ -1,8 +1,18 @@
-%.moc : %.h
+%.moc : %.h $(top_srcdir)/.moc.version
 	$(MOC) -i -o "$@" "$<"
 
+$(top_srcdir)/.moc.version : $(MOC)
+	# "moc -v" always fails :-/
+	$(MOC) -v > $@.tmp 2>&1 || :
+	if test ! -f "$@" || test "`cat $@`" != "`cat $@.tmp`"; then \
+		mv -f $@.tmp $@; \
+	else \
+		rm -f $@.tmp; \
+	fi
+
 clean-moc-extra:
 	rm -vf *.moc
+	rm -vf $(top_srcdir)/.moc.version
 
 clean-am: clean-moc-extra
 
commit 57a5fe1147ba269e42b0f52366b5440355e7e82a
Author: Kevin Kofler <kevin.kofler at chello.at>
Date:   Fri Nov 18 00:26:53 2011 +0100

    Allow the Plasma version to be specified for PK_PROVIDES_ENUM_PLASMA_SERVICE.
    
    In order to support both KDE Plasma Workspaces 4 (libplasma 1) and the upcoming
    KDE Plasma Workspaces 5 (libplasma 2), we need to also accept query strings of
    the plasma5(dataengine-weather) format, not just the dataengine-weather format
    implicitly assumed to be plasma4.

diff --git a/backends/yum/yumBackend.py b/backends/yum/yumBackend.py
index 0d7926b..dccb8ae 100755
--- a/backends/yum/yumBackend.py
+++ b/backends/yum/yumBackend.py
@@ -903,6 +903,10 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
         if provides_type == PROVIDES_POSTSCRIPT_DRIVER:
             return [ "postscriptdriver(%s)" % value ]
         if provides_type == PROVIDES_PLASMA_SERVICE:
+            # We need to allow the Plasma version to be specified.
+            if value.startswith("plasma"):
+                return [ value ]
+            # For compatibility, we default to plasma4.
             return [ "plasma4(%s)" % value ]
         if provides_type == PROVIDES_ANY:
             provides = []
diff --git a/backends/zif/pk-backend-zif.c b/backends/zif/pk-backend-zif.c
index 6e7162b..38d9999 100644
--- a/backends/zif/pk-backend-zif.c
+++ b/backends/zif/pk-backend-zif.c
@@ -5347,13 +5347,25 @@ pk_backend_what_provides (PkBackend *backend, PkBitfield filters,
 		} else if (provides == PK_PROVIDES_ENUM_POSTSCRIPT_DRIVER) {
 			g_ptr_array_add (array, g_strdup_printf ("postscriptdriver(%s)", values[i]));
 		} else if (provides == PK_PROVIDES_ENUM_PLASMA_SERVICE) {
-			g_ptr_array_add (array, g_strdup_printf ("plasma4(%s)", values[i]));
+			/* We need to allow the Plasma version to be specified. */
+			if (g_str_has_prefix (values[i], "plasma")) {
+				g_ptr_array_add (array, g_strdup (values[i]));
+			} else {
+				/* For compatibility, we default to plasma4. */
+				g_ptr_array_add (array, g_strdup_printf ("plasma4(%s)", values[i]));
+			}
 		} else if (provides == PK_PROVIDES_ENUM_ANY) {
-			g_ptr_array_add (array, g_strdup_printf ("gstreamer0.10(%s)", values[i]));
-			g_ptr_array_add (array, g_strdup_printf ("font(%s)", values[i]));
-			g_ptr_array_add (array, g_strdup_printf ("mimehandler(%s)", values[i]));
-			g_ptr_array_add (array, g_strdup_printf ("postscriptdriver(%s)", values[i]));
-			g_ptr_array_add (array, g_strdup_printf ("plasma4(%s)", values[i]));
+			/* We need to allow the Plasma version to be specified. */
+			if (g_str_has_prefix (values[i], "plasma")) {
+				g_ptr_array_add (array, g_strdup (values[i]));
+			} else {
+				g_ptr_array_add (array, g_strdup_printf ("gstreamer0.10(%s)", values[i]));
+				g_ptr_array_add (array, g_strdup_printf ("font(%s)", values[i]));
+				g_ptr_array_add (array, g_strdup_printf ("mimehandler(%s)", values[i]));
+				g_ptr_array_add (array, g_strdup_printf ("postscriptdriver(%s)", values[i]));
+				g_ptr_array_add (array, g_strdup_printf ("plasma4(%s)", values[i]));
+				g_ptr_array_add (array, g_strdup_printf ("plasma5(%s)", values[i]));
+			}
 		} else {
 			pk_backend_error_code (backend,
 				       PK_ERROR_ENUM_PROVIDE_TYPE_NOT_SUPPORTED,
diff --git a/docs/provides-component-naming.txt b/docs/provides-component-naming.txt
index 139fc37..393d7ce 100644
--- a/docs/provides-component-naming.txt
+++ b/docs/provides-component-naming.txt
@@ -31,8 +31,12 @@ POSTSCRIPT_DRIVER:
                         to underscores.
                         Example: "postscriptdriver(epson;stylus_d92;)"
 
-PLASMA_SERVICE:         A string in the format of "servicetype-name",
-                        e.g. "plasma4(dataengine-weather)".
+PLASMA_SERVICE:         A string in the format of
+                        "plasma<version>(servicetype-name)" (where <version> is
+                        currently expected to be 4 or 5), e.g.
+                        "plasma4(dataengine-weather)". For backwards
+                        compatibility, "servicetype-name" will be treated the
+                        same as "plasma4(servicetype-name)".
 
 SHARED_LIB:             Name of a shared library
                         Example: "libpackagekit-glib2.so.14"
commit d16ec6c516f23f53857142a496131d6cf3c56e33
Author: Matthias Klumpp <matthias at tenstral.net>
Date:   Sun Nov 20 16:14:33 2011 +0100

    gtk-plugin: Fix name of GTK plugin schema file
    
    It's "settings" not "setttings" :-)

diff --git a/contrib/gtk-module/Makefile.am b/contrib/gtk-module/Makefile.am
index a3f784d..34557e3 100644
--- a/contrib/gtk-module/Makefile.am
+++ b/contrib/gtk-module/Makefile.am
@@ -12,7 +12,7 @@ gtkmoduledir = $(libdir)/gnome-settings-daemon-3.0/gtk-modules
 dist_gtkmodule_DATA = pk-gtk-module.desktop
 
 @GSETTINGS_RULES@
-gsettings_SCHEMAS = org.gnome.setttings-daemon.gtk-modules-packagekit.gschema.xml
+gsettings_SCHEMAS = org.gnome.settings-daemon.gtk-modules-packagekit.gschema.xml
 
 clean-local:
 	rm -f *~
diff --git a/contrib/gtk-module/org.gnome.settings-daemon.gtk-modules-packagekit.gschema.xml b/contrib/gtk-module/org.gnome.settings-daemon.gtk-modules-packagekit.gschema.xml
new file mode 100644
index 0000000..113af61
--- /dev/null
+++ b/contrib/gtk-module/org.gnome.settings-daemon.gtk-modules-packagekit.gschema.xml
@@ -0,0 +1,12 @@
+<schemalist>
+  <schema id="org.gnome.settings-daemon" path="/org/gnome/settings-daemon/">
+    <child name="gtk-modules" schema="gnome-settings-daemon.gtk-modules"/>
+  </schema>
+  <schema id="gnome-settings-daemon.gtk-modules" path="/org/gnome/settings-daemon/gtk-modules/">
+    <key name="pk-gtk-module" type="b">
+      <default>true</default>
+      <summary>PackageKit GTK+ module for font installation</summary>
+      <description>This key determines if applications should be able to prompt for fonts.</description>
+    </key>
+  </schema>
+</schemalist>
diff --git a/contrib/gtk-module/org.gnome.setttings-daemon.gtk-modules-packagekit.gschema.xml b/contrib/gtk-module/org.gnome.setttings-daemon.gtk-modules-packagekit.gschema.xml
deleted file mode 100644
index 113af61..0000000
--- a/contrib/gtk-module/org.gnome.setttings-daemon.gtk-modules-packagekit.gschema.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<schemalist>
-  <schema id="org.gnome.settings-daemon" path="/org/gnome/settings-daemon/">
-    <child name="gtk-modules" schema="gnome-settings-daemon.gtk-modules"/>
-  </schema>
-  <schema id="gnome-settings-daemon.gtk-modules" path="/org/gnome/settings-daemon/gtk-modules/">
-    <key name="pk-gtk-module" type="b">
-      <default>true</default>
-      <summary>PackageKit GTK+ module for font installation</summary>
-      <description>This key determines if applications should be able to prompt for fonts.</description>
-    </key>
-  </schema>
-</schemalist>
commit 382693df684ebe92ce15a032d685ff8819869c33
Author: Matthias Klumpp <matthias at tenstral.net>
Date:   Fri Nov 18 14:23:14 2011 +0100

    browser-plugin: Make it compile with newest xulrunner
    
    Attention! This will make builds with older xulrunner
    versions impossible. I will implement a workaround for
    this later, if it is less invasive or if someone needs it.
    But all distributions shipping PK 0.7.x should also ship
    a new Firefox/Xulrunner version, as the old ones are unsupported.

diff --git a/configure.ac b/configure.ac
index 7b100b3..d2d6389 100644
--- a/configure.ac
+++ b/configure.ac
@@ -354,9 +354,9 @@ AC_ARG_ENABLE(browser_plugin, AS_HELP_STRING([--enable-browser-plugin],[Build br
 	      enable_browser_plugin=$enableval,enable_browser_plugin=yes)
 if test x$enable_browser_plugin = xyes; then
 	PKG_CHECK_MODULES(PK_BROWSER_PLUGIN,	\
-			  mozilla-plugin	\
+			  mozilla-plugin >= 8.0	\
 			  gio-unix-2.0		\
-			  nspr \
+			  nspr >= 4.8		\
 			  cairo			\
 			  pango			\
 			  gtk+-2.0 >= 2.14.0,
@@ -636,7 +636,7 @@ if test x$enable_aptcc = xyes; then
 
 	AC_SUBST(APTCC_CFLAGS)
 	AC_SUBST(APTCC_LIBS)
-	
+
     AC_CHECK_LIB(apt-inst, main, , [AC_MSG_ERROR([Can't find the APT libraries -- please install libapt-pkg-dev])])
     AC_SUBST(APTCC_CFLAGS)
     AC_SUBST(APTCC_LIBS)
diff --git a/contrib/browser-plugin/pk-main.c b/contrib/browser-plugin/pk-main.c
index 5e67112..d9ca164 100644
--- a/contrib/browser-plugin/pk-main.c
+++ b/contrib/browser-plugin/pk-main.c
@@ -503,11 +503,11 @@ NP_Shutdown ()
 /**
  * NP_GetMIMEDescription:
  **/
-char *
+const char *
 NP_GetMIMEDescription (void)
 {
 	g_debug ("NP_GetMIMEDescription");
-	return (gchar*) "application/x-packagekit-plugin:bsc:PackageKit Plugin";
+	return (const gchar*) "application/x-packagekit-plugin:bsc:PackageKit Plugin";
 }
 
 /**
commit b6503838f820fe22b148d33a332723a62ad171c1
Author: Matthias Klumpp <matthias at tenstral.net>
Date:   Thu Nov 17 21:34:31 2011 +0100

    trivial: Update Listaller logo & description

diff --git a/docs/html/img/users-listaller.png b/docs/html/img/users-listaller.png
index 3702823..c3e16f3 100644
Binary files a/docs/html/img/users-listaller.png and b/docs/html/img/users-listaller.png differ
diff --git a/docs/html/pk-users.html b/docs/html/pk-users.html
index ec699a3..56db840 100644
--- a/docs/html/pk-users.html
+++ b/docs/html/pk-users.html
@@ -182,17 +182,17 @@
 </tr>
 <tr>
  <td>
-  <a href="http://listaller.nlinux.org/"><img src="img/users-listaller.png" alt=""/></a>
+  <a href="http://listaller.tenstral.net/"><img src="img/users-listaller.png" alt=""/></a>
  </td>
  <td>
   <h2>Listaller Project - Listaller</h2>
   <p>
-   A cross-distribution software installation- and management tool which
-   uses PackageKit to detect dependencies of executables and for
-   native-package installation.
+   A cross-distribution application management and software installation tool based on PackageKit.
+   Listaller contains a PackageKit plugin which adds support for installing cross-distro packages to PackageKit.
+   It also uses PackageKit to detect dependencies of executables and to install native packages.
   </p>
   <p>
-   Supports PackageKit >= 0.4.6
+   Supports PackageKit >= 0.7.2
   </p>
  </td>
 </tr>
commit 3a66955f225a3cd68fb520ec62a19873543b1441
Author: Daniel Nicoletti <dantti85-pk at yahoo.com.br>
Date:   Thu Nov 17 17:40:03 2011 -0200

    aptcc: Only return GetDistroUpgrades and installFiles if the helpers are available

diff --git a/backends/aptcc/pk-backend-aptcc.cpp b/backends/aptcc/pk-backend-aptcc.cpp
index aafb9f9..e0a2699 100644
--- a/backends/aptcc/pk-backend-aptcc.cpp
+++ b/backends/aptcc/pk-backend-aptcc.cpp
@@ -38,6 +38,9 @@
 #include <pk-backend.h>
 #include <pk-backend-spawn.h>
 
+#define PREUPGRADE_BINARY    "/usr/bin/do-release-upgrade"
+#define GDEBI_BINARY         "/usr/bin/gdebi"
+
 /* static bodges */
 static bool _cancel = false;
 static PkBackendSpawn *spawn;
@@ -1436,3 +1439,54 @@ pk_backend_get_packages (PkBackend *backend, PkBitfield filter)
 {
 	pk_backend_thread_create (backend, backend_get_packages_thread);
 }
+
+/**
+ * pk_backend_get_roles:
+ */
+PkBitfield
+pk_backend_get_roles (PkBackend *backend)
+{
+    PkBitfield roles;
+    roles = pk_bitfield_from_enums (
+        PK_ROLE_ENUM_CANCEL,
+        PK_ROLE_ENUM_GET_DEPENDS,
+        PK_ROLE_ENUM_GET_DETAILS,
+        PK_ROLE_ENUM_GET_FILES,
+        PK_ROLE_ENUM_GET_REQUIRES,
+        PK_ROLE_ENUM_GET_PACKAGES,
+        PK_ROLE_ENUM_WHAT_PROVIDES,
+        PK_ROLE_ENUM_GET_UPDATES,
+        PK_ROLE_ENUM_GET_UPDATE_DETAIL,
+        PK_ROLE_ENUM_INSTALL_PACKAGES,
+        PK_ROLE_ENUM_INSTALL_SIGNATURE,
+        PK_ROLE_ENUM_REFRESH_CACHE,
+        PK_ROLE_ENUM_REMOVE_PACKAGES,
+        PK_ROLE_ENUM_DOWNLOAD_PACKAGES,
+        PK_ROLE_ENUM_RESOLVE,
+        PK_ROLE_ENUM_SEARCH_DETAILS,
+        PK_ROLE_ENUM_SEARCH_FILE,
+        PK_ROLE_ENUM_SEARCH_GROUP,
+        PK_ROLE_ENUM_SEARCH_NAME,
+        PK_ROLE_ENUM_UPDATE_PACKAGES,
+        PK_ROLE_ENUM_UPDATE_SYSTEM,
+        PK_ROLE_ENUM_GET_REPO_LIST,
+        PK_ROLE_ENUM_REPO_ENABLE,
+        PK_ROLE_ENUM_GET_CATEGORIES,
+        PK_ROLE_ENUM_SIMULATE_INSTALL_PACKAGES,
+        PK_ROLE_ENUM_SIMULATE_UPDATE_PACKAGES,
+        PK_ROLE_ENUM_SIMULATE_REMOVE_PACKAGES,
+        -1);
+
+    // only add GetDistroUpgrades if the binary is present
+    if (g_file_test (PREUPGRADE_BINARY, G_FILE_TEST_EXISTS)) {
+        pk_bitfield_add(roles, PK_ROLE_ENUM_GET_DISTRO_UPGRADES);
+    }
+    
+    // only add GetDistroUpgrades if the binary is present
+    if (g_file_test (GDEBI_BINARY, G_FILE_TEST_EXISTS)) {
+        pk_bitfield_add(roles, PK_ROLE_ENUM_SIMULATE_INSTALL_FILES);
+        pk_bitfield_add(roles, PK_ROLE_ENUM_INSTALL_FILES);
+    }
+
+    return roles;
+}
commit aad3517b5c35004117623e9a4d22be9a439464fe
Author: Daniel Nicoletti <dantti85-pk at yahoo.com.br>
Date:   Thu Nov 17 17:20:01 2011 -0200

    aptcc: Properly read GDebi install/remove line

diff --git a/backends/aptcc/apt.cpp b/backends/aptcc/apt.cpp
index 8d8f26b..c7471d0 100644
--- a/backends/aptcc/apt.cpp
+++ b/backends/aptcc/apt.cpp
@@ -1753,7 +1753,7 @@ bool aptcc::markDebFileForInstall(const gchar *file, PkgList &install, PkgList &
                     &status,
                     &gerror);
     int exit_code = WEXITSTATUS(status);
-    cout << "DebStatus " << exit_code << " WEXITSTATUS " << WEXITSTATUS(status) << " ret: "<< ret << endl;
+//     cout << "DebStatus " << exit_code << " WEXITSTATUS " << WEXITSTATUS(status) << " ret: "<< ret << endl;
     cout << "std_out " << strlen(std_out) << std_out << endl;
     cout << "std_err " << strlen(std_err) << std_err << endl;
 
@@ -1766,17 +1766,26 @@ bool aptcc::markDebFileForInstall(const gchar *file, PkgList &install, PkgList &
         }
         return false;
     } else {
-        // TODO parse lines
-        gchar **packages = g_strsplit(std_out, "\n", 2);
-        cout << "install: " << packages[0] << endl;
-        gchar **installPkgs = g_strsplit(packages[0], " ", 0);
-        gchar **removePkgs = g_strsplit(packages[1], " ", 0);
+        // GDebi outputs two lines
+        gchar **lines = g_strsplit(std_out, "\n", 3);
+
+        // The first line contains the packages to install
+        gchar **installPkgs = g_strsplit(lines[0], " ", 0);
+
+        // The second line contains the packages to remove with '-' appended to
+        // the end of the package name
+        gchar *removeStr = g_strndup(lines[1], strlen(lines[1]) - 1);
+        gchar **removePkgs = g_strsplit(removeStr, "- ", 0);
+
+        // Store the changes
         install = resolvePI(installPkgs);
+        remove = resolvePI(removePkgs);
         m_localDebFile = file;
         
-         g_strfreev(packages);
-         g_strfreev(installPkgs);
-         g_strfreev(removePkgs);
+        g_free(removeStr);
+        g_strfreev(lines);
+        g_strfreev(installPkgs);
+        g_strfreev(removePkgs);
     }
 
     return true;
commit 8ae34a3c3797042420d795307e54a8a0e5a7f4ff
Author: Daniel Nicoletti <dantti85-pk at yahoo.com.br>
Date:   Thu Nov 17 16:29:53 2011 -0200

    Use gdebi to resolve local file installation, Fix conffile handlying by interpreting the exit status properly

diff --git a/backends/aptcc/Makefile.am b/backends/aptcc/Makefile.am
index ba59e4b..415cd39 100644
--- a/backends/aptcc/Makefile.am
+++ b/backends/aptcc/Makefile.am
@@ -10,6 +10,7 @@ libpk_backend_aptcc_la_SOURCES = pkg_acqfile.cpp \
 				 apt-utils.cpp \
 				 acqprogress.cpp \
 				 deb-file.cpp \
+				 dpkgpm.cpp \
 				 matcher.cpp \
 				 gstMatcher.cpp \
 				 rsources.cpp \
@@ -29,6 +30,7 @@ EXTRA_DIST = 20packagekit \
 	     gstMatcher.h \
 	     matcher.h \
 	     deb-file.h \
+	     dpkgpm.h \
 	     aptcc_show_broken.h \
 	     acqprogress.h \
 	     aptcc_show_error.h \
diff --git a/backends/aptcc/apt.cpp b/backends/aptcc/apt.cpp
index 136ec27..8d8f26b 100644
--- a/backends/aptcc/apt.cpp
+++ b/backends/aptcc/apt.cpp
@@ -28,6 +28,7 @@
 #include "pkg_acqfile.h"
 #include "aptcc_show_error.h"
 #include "deb-file.h"
+#include "dpkgpm.h"
 
 #include <apt-pkg/error.h>
 #include <apt-pkg/tagfile.h>
@@ -170,6 +171,8 @@ aptcc::~aptcc()
 		delete packageSourceList;
 	}
 
+    pk_backend_finished(m_backend);
+
 	delete Map;
 }
 
@@ -1424,7 +1427,6 @@ void aptcc::updateInterface(int fd, int writeFd)
 
                 gchar *filename;
                 filename = g_build_filename(DATADIR, "PackageKit", "helpers", "aptcc", "pkconffile", NULL);
-                gint exit_code;
                 gchar **argv;
                 gchar **envp;
                 GError *error = NULL;
@@ -1449,6 +1451,7 @@ void aptcc::updateInterface(int fd, int writeFd)
                 }
 
                 gboolean ret;
+                gint exitStatus;
                 ret = g_spawn_sync(NULL, // working dir
                              argv, // argv
                              envp, // envp
@@ -1457,9 +1460,10 @@ void aptcc::updateInterface(int fd, int writeFd)
                              NULL, // user_data
                              NULL, // standard_output
                              NULL, // standard_error
-                             &exit_code,
+                             &exitStatus,
                              &error);
 
+                int exit_code = WEXITSTATUS(exitStatus);
                 cout << filename << " " << exit_code << " ret: "<< ret << endl;
 
                 if (exit_code == 10) {
@@ -1720,91 +1724,65 @@ PkgList aptcc::resolvePI(gchar **package_ids)
     return ret;
 }
 
-bool aptcc::installDebFiles(const gchar *path, bool simulate)
+bool aptcc::markDebFileForInstall(const gchar *file, PkgList &install, PkgList &remove)
 {
-    DebFile deb(path);
-    std::string errorMsg;
-    cout << "Name: " << deb.name() << endl;
-    cout << "Version: " << deb.version() << endl;
-    cout << "Architecture: " << deb.architecture() << endl;
-    cout << "Conflicts: " << deb.conflicts() << endl;
-
-//             m_apt->installPackageFiles();
-    cout << "FULL_PATH: " << path << endl;  
-
-    // check architecture
-    if (deb.architecture().empty()) {
-        errorMsg = "No Architecture field in the package";
+    // We call gdebi to tell us what do we need to install/remove
+    // in order to be able to install this package
+    gint status;
+    gchar **argv;
+    gchar **envp;
+    gchar *std_out;
+    gchar *std_err;
+    GError *gerror = NULL;
+    argv = (gchar **) g_malloc(5 * sizeof(gchar *));
+    argv[0] = g_strdup("/usr/bin/gdebi");
+    argv[1] = g_strdup("-q");
+    argv[2] = g_strdup("--apt-line");
+    argv[3] = g_strdup(file);
+    argv[4] = NULL;
+
+    gboolean ret;
+    ret = g_spawn_sync(NULL, // working dir
+                    argv, // argv
+                    envp, // envp
+                    G_SPAWN_LEAVE_DESCRIPTORS_OPEN,
+                    NULL, // child_setup
+                    NULL, // user_data
+                    &std_out, // standard_output
+                    &std_err, // standard_error
+                    &status,
+                    &gerror);
+    int exit_code = WEXITSTATUS(status);
+    cout << "DebStatus " << exit_code << " WEXITSTATUS " << WEXITSTATUS(status) << " ret: "<< ret << endl;
+    cout << "std_out " << strlen(std_out) << std_out << endl;
+    cout << "std_err " << strlen(std_err) << std_err << endl;
+
+    PkgList pkgs;
+    if (exit_code == 1) {
+        if (strlen(std_out) == 0) {
+            pk_backend_error_code(m_backend, PK_ERROR_ENUM_TRANSACTION_ERROR, std_err);
+        } else {
+            pk_backend_error_code(m_backend, PK_ERROR_ENUM_TRANSACTION_ERROR, std_out);
+        }
         return false;
+    } else {
+        // TODO parse lines
+        gchar **packages = g_strsplit(std_out, "\n", 2);
+        cout << "install: " << packages[0] << endl;
+        gchar **installPkgs = g_strsplit(packages[0], " ", 0);
+        gchar **removePkgs = g_strsplit(packages[1], " ", 0);
+        install = resolvePI(installPkgs);
+        m_localDebFile = file;
+        
+         g_strfreev(packages);
+         g_strfreev(installPkgs);
+         g_strfreev(removePkgs);
     }
 
-    if (deb.architecture().compare("all") != 0 &&
-        deb.architecture().compare(_config->Find("APT::Architecture")) != 0) 
-    {
-        errorMsg = "Wrong architecture ";
-        errorMsg.append(deb.architecture());
-        return false;
-    }
-    
-    gchar *pkgNameArch;
-    pkgNameArch = g_strdup_printf("%s:%s", deb.name().c_str(), deb.architecture().c_str());    
-    
-    // check version
-    pkgCache::PkgIterator pkg = packageCache->FindPkg(pkgNameArch);
-    g_free(pkgNameArch);
-    pkgCache::VerIterator currver = find_ver(pkg);
-    if (currver.end() == false &&
-        currver.VerStr() != NULL &&
-        pkg->CurrentState == pkgCache::State::Installed) {
-        // If the package is already installed compare the versions
-        if (_system != 0) {
-            int ret =
-            _system->VS->DoCmpVersion(currver.VerStr(), currver.VerStr() + strlen(currver.VerStr()),
-                                      deb.version().c_str(), deb.version().c_str() + strlen(deb.version().c_str()));
-            // Don't let the user install older versions
-            errorMsg = "A newer version of ";
-            errorMsg.append(deb.name());
-            errorMsg.append(" is already installed.");
-            cout << "DoCmpVersion" << ret << endl;
-            return false;
-        }
-    }
-  
-    
-// 
-//     // FIXME: this sort of error handling sux
-//     self._failure_string = ""
-// 
-//     // check conflicts
-//     if not self.check_conflicts():
-//         return False
-// 
-//     // check if installing it would break anything on the 
-//     // current system
-//     if not self.check_breaks_existing_packages():
-//         return False
-// 
-//     // try to satisfy the dependencies
-//     if not self._satisfy_depends(self.depends):
-//         return False
-// 
-//     // check for conflicts again (this time with the packages that are
-//     // makeed for install)
-//     if not self.check_conflicts():
-//         return False
-// 
-//     if self._cache._depcache.broken_count > 0:
-//         self._failure_string = _("Failed to satisfy all dependencies "
-//                                     "(broken cache)")
-//         // clean the cache again
-//         self._cache.clear()
-//         return False
-    return true;  
+    return true;
 }
 
-bool aptcc::runTransaction(PkgList &pkgs,
-			   bool simulate,
-			   bool remove)
+bool aptcc::runTransaction(PkgList &install, PkgList &remove, bool simulate)
 {
 	//cout << "runTransaction" << simulate << remove << endl;
 	bool WithLock = !simulate; // Check to see if we are just simulating,
@@ -1841,24 +1819,37 @@ bool aptcc::runTransaction(PkgList &pkgs,
 	// new scope for the ActionGroup
 	{
 		pkgDepCache::ActionGroup group(Cache);
-		for(vector<pair<pkgCache::PkgIterator, pkgCache::VerIterator> >::iterator i=pkgs.begin();
-		    i != pkgs.end();
-		    ++i)
-		{
-			pkgCache::PkgIterator Pkg = i->first;
-			if (_cancel) {
-				break;
-			}
+        for(PkgList::iterator i = install.begin(); i != install.end(); ++i) {
+            pkgCache::PkgIterator Pkg = i->first;
+            if (_cancel) {
+                break;
+            }
 
-			if (TryToInstall(Pkg,
-					 Cache,
-					 Fix,
-					 remove,
-					 BrokenFix,
-					 ExpectedInst) == false) {
-				return false;
-			}
-		}
+            if (TryToInstall(Pkg,
+                     Cache,
+                     Fix,
+                     false, // remove
+                     BrokenFix,
+                     ExpectedInst) == false) {
+                return false;
+            }
+        }
+        
+        for(PkgList::iterator i = remove.begin(); i != remove.end(); ++i) {
+            pkgCache::PkgIterator Pkg = i->first;
+            if (_cancel) {
+                break;
+            }
+
+            if (TryToInstall(Pkg,
+                     Cache,
+                     Fix,
+                     true, // remove
+                     BrokenFix,
+                     ExpectedInst) == false) {
+                return false;
+            }
+        }
 
 		// Call the scored problem resolver
 		Fix.InstallProtect();
@@ -1969,7 +1960,8 @@ bool aptcc::installPackages(pkgCacheFile &Cache)
 	fetcher.Setup(&Stat);
 
 	// Create the package manager and prepare to download
-	SPtr<pkgPackageManager> PM= _system->CreatePM(Cache);
+//     SPtr<pkgPackageManager> PM= _system->CreatePM(Cache);
+    SPtr<pkgPackageManager> PM = new pkgDebDPkgPM(Cache);
 	if (PM->GetArchives(&fetcher, packageSourceList, &Recs) == false ||
 	    _error->PendingError() == true) {
 		return false;
@@ -2091,6 +2083,12 @@ cout << "How odd.. The sizes didn't match, email apt at packages.debian.org";
 	setenv("PATH", "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", 1);
 	_system->UnLock();
 
+    if (!m_localDebFile.empty()) {
+        // add the local file name to be proccessed by the PM queue
+        pkgDebDPkgPM *pm = static_cast<pkgDebDPkgPM*>(&*PM);
+        pm->addDebFile(m_localDebFile);
+    }
+
 	pkgPackageManager::OrderResult res;
 	res = PM->DoInstallPreFork();
 	if (res == pkgPackageManager::Failed) {
diff --git a/backends/aptcc/apt.h b/backends/aptcc/apt.h
index a37065b..53edd75 100644
--- a/backends/aptcc/apt.h
+++ b/backends/aptcc/apt.h
@@ -65,7 +65,7 @@ public:
 	pkgCache::VerIterator find_candidate_ver(const pkgCache::PkgIterator &pkg);
 
     PkgList resolvePI(gchar **package_ids);
-    bool installDebFiles(const gchar *path, bool simulate);
+    bool markDebFileForInstall(const gchar *file, PkgList &install, PkgList &remove);
 
 	/**
 	 *  runs a transaction to install/remove/update packages
@@ -75,9 +75,7 @@ public:
 	 *    \p simulate should be true, in this case packages with
 	 *    what's going to happen will be emitted.
 	 */
-	bool runTransaction(PkgList &pkgs,
-			    bool simulate,
-			    bool remove);
+    bool runTransaction(PkgList &install, PkgList &remove, bool simulate);
 
 	/**
 	 *  Get depends
@@ -168,6 +166,7 @@ private:
 
     bool m_isMultiArch;
 	PkgList m_pkgs;
+    string m_localDebFile;
 	void populateInternalPackages(pkgCacheFile &Cache);
 	void emitTransactionPackage(string name, PkInfoEnum state);
 	time_t     m_lastTermAction;
diff --git a/backends/aptcc/dpkgpm.cpp b/backends/aptcc/dpkgpm.cpp
new file mode 100644
index 0000000..ce490ea
--- /dev/null
+++ b/backends/aptcc/dpkgpm.cpp
@@ -0,0 +1,37 @@
+/*
+ *
+ * Copyright (C) 2011 Daniel Nicoletti <dantti85-pk at yahoo.com.br>
+ *
+ * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include "dpkgpm.h"
+
+#include <iostream>
+
+pkgDebDPkgPM::pkgDebDPkgPM(pkgDepCache *cache) :
+    pkgDPkgPM(cache)
+{
+}
+
+void pkgDebDPkgPM::addDebFile(const std::string &filename)
+{
+    PkgIterator pkg;
+    std::cout << "PkgIterator " << pkg.end() << std::endl;
+    Item item(Item::Install, pkg, filename);
+    List.push_back(item);
+}
diff --git a/backends/aptcc/dpkgpm.h b/backends/aptcc/dpkgpm.h
new file mode 100644
index 0000000..730f29d
--- /dev/null
+++ b/backends/aptcc/dpkgpm.h
@@ -0,0 +1,36 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2011 Daniel Nicoletti <dantti85-pk at yahoo.com.br>
+ *
+ * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifndef DPKG_PM_H
+#define DPKG_PM_H
+
+#include <string>
+#include <apt-pkg/dpkgpm.h>
+
+class pkgDebDPkgPM : public pkgDPkgPM
+{
+public:
+    pkgDebDPkgPM(pkgDepCache *cache);
+
+    void addDebFile(const std::string &filename);
+};
+
+#endif
diff --git a/backends/aptcc/pk-backend-aptcc.cpp b/backends/aptcc/pk-backend-aptcc.cpp
index 4775ad1..aafb9f9 100644
--- a/backends/aptcc/pk-backend-aptcc.cpp
+++ b/backends/aptcc/pk-backend-aptcc.cpp
@@ -183,7 +183,6 @@ backend_get_depends_or_requires_thread (PkBackend *backend)
 	if (m_apt->init()) {
 		g_debug ("Failed to create apt cache");
 		delete m_apt;
-		pk_backend_finished (backend);
 		return false;
 	}
 
@@ -201,7 +200,6 @@ backend_get_depends_or_requires_thread (PkBackend *backend)
 					       PK_ERROR_ENUM_PACKAGE_ID_INVALID,
 					       pi);
 			delete m_apt;
-			pk_backend_finished (backend);
 			return false;
 		}
 
@@ -214,7 +212,6 @@ backend_get_depends_or_requires_thread (PkBackend *backend)
 					       PK_ERROR_ENUM_PACKAGE_NOT_FOUND,
 					       "Couldn't find package");
 			delete m_apt;
-			pk_backend_finished (backend);
 			return false;
 		}
 
@@ -229,7 +226,6 @@ backend_get_depends_or_requires_thread (PkBackend *backend)
 	m_apt->emit_packages(output, filters);
 
 	delete m_apt;
-	pk_backend_finished (backend);
 	return true;
 }
 
@@ -284,7 +280,6 @@ backend_get_files_thread (PkBackend *backend)
 	if (m_apt->init()) {
 		g_debug ("Failed to create apt cache");
 		delete m_apt;
-		pk_backend_finished (backend);
 		return false;
 	}
 
@@ -296,7 +291,6 @@ backend_get_files_thread (PkBackend *backend)
 					       PK_ERROR_ENUM_PACKAGE_ID_INVALID,
 					       pi);
 			delete m_apt;
-			pk_backend_finished (backend);
 			return false;
 		}
 
@@ -307,7 +301,6 @@ backend_get_files_thread (PkBackend *backend)
 		{
 			pk_backend_error_code (backend, PK_ERROR_ENUM_PACKAGE_NOT_FOUND, "Couldn't find package");
 			delete m_apt;
-			pk_backend_finished (backend);
 			return false;
 		}
 
@@ -315,7 +308,6 @@ backend_get_files_thread (PkBackend *backend)
 	}
 
 	delete m_apt;
-	pk_backend_finished (backend);
 	return true;
 }
 
@@ -350,7 +342,6 @@ backend_get_details_thread (PkBackend *backend)
 	if (m_apt->init()) {
 		g_debug ("Failed to create apt cache");
 		delete m_apt;
-		pk_backend_finished (backend);
 		return false;
 	}
 
@@ -370,7 +361,6 @@ backend_get_details_thread (PkBackend *backend)
     }
 
 	delete m_apt;
-	pk_backend_finished (backend);
 	return true;
 }
 
@@ -406,7 +396,6 @@ backend_get_or_update_system_thread (PkBackend *backend)
 	if (m_apt->init()) {
 		g_debug ("Failed to create apt cache");
 		delete m_apt;
-		pk_backend_finished (backend);
 		return false;
 	}
 
@@ -437,7 +426,6 @@ backend_get_or_update_system_thread (PkBackend *backend)
 		show_broken(backend, Cache, false);
 		g_debug ("Internal error, DistUpgrade broke stuff");
 		delete m_apt;
-		pk_backend_finished (backend);
 		return false;
 	}
 
@@ -469,7 +457,6 @@ backend_get_or_update_system_thread (PkBackend *backend)
 	}
 
 	delete m_apt;
-	pk_backend_finished (backend);
 	return res;
 }
 
@@ -519,7 +506,6 @@ backend_what_provides_thread (PkBackend *backend)
 			g_debug ("Failed to create apt cache");
 			g_strfreev (values);
 			delete m_apt;
-			pk_backend_finished (backend);
 			return false;
 		}
 
@@ -581,9 +567,9 @@ backend_what_provides_thread (PkBackend *backend)
 				       PK_ERROR_ENUM_NOT_SUPPORTED,
 				       "Provides %s not supported",
 				       provides_text);
+        pk_backend_finished (backend);
 	}
 
-	pk_backend_finished (backend);
 	return true;
 }
 
@@ -617,7 +603,6 @@ pk_backend_download_packages_thread (PkBackend *backend)
 	if (m_apt->init()) {
 		g_debug ("Failed to create apt cache");
 		delete m_apt;
-		pk_backend_finished (backend);
 		return false;
 	}
 
@@ -658,7 +643,6 @@ pk_backend_download_packages_thread (PkBackend *backend)
 					       PK_ERROR_ENUM_PACKAGE_ID_INVALID,
 					       pi);
 			delete m_apt;
-			pk_backend_finished (backend);
 			return false;
 		}
 
@@ -707,7 +691,6 @@ pk_backend_download_packages_thread (PkBackend *backend)
 	{
 		show_errors(backend, PK_ERROR_ENUM_PACKAGE_DOWNLOAD_FAILED);
 		delete m_apt;
-		pk_backend_finished (backend);
 		return _cancel;
 	}
 
@@ -715,7 +698,6 @@ pk_backend_download_packages_thread (PkBackend *backend)
 	pk_backend_files(backend, NULL, filelist.c_str());
 
 	delete m_apt;
-	pk_backend_finished (backend);
 	return true;
 }
 
@@ -741,7 +723,6 @@ pk_backend_refresh_cache_thread (PkBackend *backend)
 	if (m_apt->init()) {
 		g_debug ("Failed to create apt cache");
 		delete m_apt;
-		pk_backend_finished (backend);
 		return false;
 	}
 
@@ -754,7 +735,6 @@ pk_backend_refresh_cache_thread (PkBackend *backend)
 		if (_error->PendingError() == true) {
 			pk_backend_error_code (backend, PK_ERROR_ENUM_CANNOT_GET_LOCK, "Unable to lock the list directory");
 			delete m_apt;
-			pk_backend_finished (backend);
 			return false;
 	// 	 return _error->Error(_("Unable to lock the list directory"));
 		}
@@ -773,7 +753,6 @@ pk_backend_refresh_cache_thread (PkBackend *backend)
 			show_errors(backend, PK_ERROR_ENUM_CANNOT_FETCH_SOURCES);
 		}
 		delete m_apt;
-		pk_backend_finished (backend);
 		return false;
 	}
 
@@ -783,7 +762,6 @@ pk_backend_refresh_cache_thread (PkBackend *backend)
 		show_warnings(backend, PK_MESSAGE_ENUM_UNTRUSTED_PACKAGE);
 	}
 
-	pk_backend_finished (backend);
 	delete m_apt;
 	return true;
 }
@@ -812,7 +790,6 @@ pk_backend_resolve_thread (PkBackend *backend)
 	if (m_apt->init()) {
 		g_debug ("Failed to create apt cache");
 		delete m_apt;
-		pk_backend_finished (backend);
 		return false;
 	}
 
@@ -822,8 +799,6 @@ pk_backend_resolve_thread (PkBackend *backend)
     m_apt->emit_packages(pkgs, filters);
 
 	delete m_apt;
-
-	pk_backend_finished (backend);
 	return true;
 }
 
@@ -854,7 +829,6 @@ pk_backend_search_files_thread (PkBackend *backend)
 		if (m_apt->init()) {
 			g_debug ("Failed to create apt cache");
 			delete m_apt;
-			pk_backend_finished (backend);
 			return false;
 		}
 
@@ -882,9 +856,10 @@ pk_backend_search_files_thread (PkBackend *backend)
 		m_apt->emit_packages(output, filters);
 
 		delete m_apt;
-	}
+    } else {
+        pk_backend_finished (backend);
+    }
 
-	pk_backend_finished (backend);
 	return true;
 }
 
@@ -926,7 +901,6 @@ backend_search_groups_thread (PkBackend *backend)
 	if (m_apt->init()) {
 		g_debug ("Failed to create apt cache");
 		delete m_apt;
-		pk_backend_finished (backend);
 		return false;
 	}
 
@@ -965,10 +939,8 @@ backend_search_groups_thread (PkBackend *backend)
 	// It's faster to emmit the packages here rather than in the matching part
 	m_apt->emit_packages(output, filters);
 
+    pk_backend_set_percentage (backend, 100);
 	delete m_apt;
-
-	pk_backend_set_percentage (backend, 100);
-	pk_backend_finished (backend);
 	return true;
 }
 
@@ -1010,7 +982,6 @@ backend_search_package_thread (PkBackend *backend)
 		g_debug ("Failed to create apt cache");
 		delete m_matcher;
 		delete m_apt;
-		pk_backend_finished (backend);
 		return false;
 	}
 
@@ -1018,7 +989,6 @@ backend_search_package_thread (PkBackend *backend)
 	{
 		delete m_matcher;
 		delete m_apt;
-		pk_backend_finished (backend);
 		return false;
 	}
 
@@ -1097,10 +1067,8 @@ backend_search_package_thread (PkBackend *backend)
 	m_apt->emit_packages(output, filters);
 
 	delete m_matcher;
+    pk_backend_set_percentage (backend, 100);
 	delete m_apt;
-
-	pk_backend_set_percentage (backend, 100);
-	pk_backend_finished (backend);
 	return true;
 }
 
@@ -1130,6 +1098,7 @@ backend_manage_packages_thread (PkBackend *backend)
     bool simulate = false;
     bool remove = false;
     bool fileInstall = false;
+    gchar **full_paths = NULL;
 
     PkRoleEnum role = pk_backend_get_role (backend);
     if (role == PK_ROLE_ENUM_SIMULATE_INSTALL_FILES ||
@@ -1144,6 +1113,7 @@ backend_manage_packages_thread (PkBackend *backend)
     }
     if (role == PK_ROLE_ENUM_SIMULATE_INSTALL_FILES ||
         role == PK_ROLE_ENUM_INSTALL_FILES) {
+        full_paths = pk_backend_get_strv (backend, "full_paths");
         fileInstall = true;
     }
 cout << "FILE INSTALL: " << fileInstall << endl;
@@ -1154,74 +1124,69 @@ cout << "FILE INSTALL: " << fileInstall << endl;
 	if (m_apt->init()) {
 		g_debug ("Failed to create apt cache");
 		delete m_apt;
-		pk_backend_finished (backend);
 		return false;
 	}
 
 	pk_backend_set_status (backend, PK_STATUS_ENUM_QUERY);
-	PkgList pkgs;
-    
-    if (fileInstall ==  false) { 
-        // Resolve the given packages
-        gchar *pi;
-        gchar **package_ids = pk_backend_get_strv (backend, "package_ids");
-        for (uint i = 0; i < g_strv_length(package_ids); i++) {
-            if (_cancel) {
-                break;
-            }
-
-            pi = package_ids[i];
-            if (pk_package_id_check(pi) == false) {
-                pk_backend_error_code (backend,
-                            PK_ERROR_ENUM_PACKAGE_ID_INVALID,
-                            pi);
-                delete m_apt;
-                pk_backend_finished (backend);
-                return false;
-            }
-
-            pair<pkgCache::PkgIterator, pkgCache::VerIterator> pkg_ver;
-            bool found;
-            pkg_ver = m_apt->find_package_id(pi, found);
-            // Ignore packages that could not be found or that exist only due to dependencies.
-            if (!found)
-            {
-                pk_backend_error_code (backend,
-                            PK_ERROR_ENUM_PACKAGE_NOT_FOUND,
-                            "couldn't find package");
-
-                delete m_apt;
-                pk_backend_finished (backend);
-                return false;
-            } else {
-                pkgs.push_back(pkg_ver);
-            }
+    PkgList installPkgs, removePkgs;
+    if (fileInstall) {
+        // GDebi can not install more than one package at time
+        if (g_strv_length(full_paths) > 1) {
+            pk_backend_error_code(backend,
+                                  PK_ERROR_ENUM_NOT_SUPPORTED,
+                                  "The backend can only proccess one file at time.");
+            delete m_apt;
+            return false;
         }
 
-        // TODO verify if some package was found
-        if (!m_apt->runTransaction(pkgs, simulate, remove)) {
-            // Print transaction errors
-            cout << "runTransaction failed" << endl;
+        // get the list of packages to install
+        if (!m_apt->markDebFileForInstall(full_paths[0], installPkgs, removePkgs)) {
             delete m_apt;
-            pk_backend_finished (backend);
             return false;
         }
+        cout << "installPkgs.size: " << installPkgs.size() << endl;
+        cout << "removePkgs.size: " << removePkgs.size() << endl;
     } else {
-        // File installation EXPERIMENTAL
-        gchar *path;
-        gchar **full_paths = pk_backend_get_strv (backend, "full_paths");
-        for (uint i = 0; i < g_strv_length(full_paths); i++) {
-            if (_cancel) {
-                break;
-            }
-            
-            path = full_paths[i];
-            cout << "InstallFiles: " << m_apt->installDebFiles(path, simulate) << endl;
+        // Resolve the given packages
+        gchar **package_ids = pk_backend_get_strv(backend, "package_ids");
+        if (remove) {
+            removePkgs = m_apt->resolvePI(package_ids);
+        } else {
+            installPkgs = m_apt->resolvePI(package_ids);
+        }
+
+        if (removePkgs.size() == 0 && installPkgs.size() == 0) {
+            pk_backend_error_code(backend,
+                                  PK_ERROR_ENUM_PACKAGE_NOT_FOUND,
+                                  "Could not find package(s)");
+            delete m_apt;
+            return false;
         }
     }
 
+    // Install/Update/Remove packages, or just simulate
+    if (!m_apt->runTransaction(installPkgs, removePkgs, simulate)) {
+        // Print transaction errors
+        cout << "runTransaction failed" << endl;
+        delete m_apt;
+        return false;
+    }
+    
+    if (fileInstall) {
+        // File installation EXPERIMENTAL
+//         gchar *path;
+// 
+//         for (uint i = 0; i < g_strv_length(full_paths); i++) {
+//             if (_cancel) {
+//                 break;
+//             }
+//             
+//             path = full_paths[i];
+//             cout << "InstallFiles: " << m_apt->installDebFiles(path, simulate) << endl;
+//         }
+    }
+
 	delete m_apt;
-	pk_backend_finished (backend);
 	return true;
 }
 
@@ -1433,7 +1398,6 @@ backend_get_packages_thread (PkBackend *backend)
 	if (m_apt->init()) {
 		g_debug ("Failed to create apt cache");
 		delete m_apt;
-		pk_backend_finished (backend);
 		return false;
 	}
 
@@ -1461,8 +1425,6 @@ backend_get_packages_thread (PkBackend *backend)
 	m_apt->emit_packages(output, filters);
 
 	delete m_apt;
-
-	pk_backend_finished (backend);
 	return true;
 }
 
commit 706964f302da88bfd90f8c6cbd3090069b2d6b83
Author: Duncan Mac-Vicar P <dmacvicar at suse.de>
Date:   Mon Nov 14 10:16:42 2011 +0100

    Retrieve url for packages instead of returning "TODO".
    
    Not sure why this was left as "TODO".
    
    In any case, this code needs to be written correctly, using
    zypp::Package instead of the low-level zypp::sat::Solvable
    and then use pkg.url() instead of
    solvable.lookupStringAttribute(SolvAttr::url)
    [A

diff --git a/backends/zypp/pk-backend-zypp.cpp b/backends/zypp/pk-backend-zypp.cpp
index 05cf9e8..27c04dd 100644
--- a/backends/zypp/pk-backend-zypp.cpp
+++ b/backends/zypp/pk-backend-zypp.cpp
@@ -570,7 +570,7 @@ backend_get_details_thread (PkBackend *backend)
 						    package.lookupStrAttribute (sat::SolvAttr::license).c_str (),
 						    group,
 						    package.lookupStrAttribute (sat::SolvAttr::description).c_str (),
-						    "TODO", // pkg->url ().c_str (),
+						    package.lookupStrAttribute (sat::SolvAttr::url).c_str (),
 						    size * 1024);
 			}
 
commit 19a122451148056e924ac929c3a7b22e3c45d9f6
Author: Daniel Nicoletti <dantti85-pk at yahoo.com.br>
Date:   Mon Nov 14 01:37:17 2011 -0200

    aptcc: Add native filter so we do not show i386 packages if we are on amd64 for example

diff --git a/backends/aptcc/apt.cpp b/backends/aptcc/apt.cpp
index e27440b..136ec27 100644
--- a/backends/aptcc/apt.cpp
+++ b/backends/aptcc/apt.cpp
@@ -272,16 +272,15 @@ void aptcc::emit_package(const pkgCache::PkgIterator &pkg,
 		}
 	}
 
-    // Verify if the package supports multiArch
-    // if so we might need to emit
-    bool multiArch;
-    const char *start, *stop;
-    pkgTagSection sec;
-    pkgRecords::Parser &rec = packageRecords->Lookup(ver.FileList());
-    rec.GetRec(start, stop);
-    // add +1 to ensure we have the double lineline in the buffer
-    if (start && sec.Scan(start, stop - start + 1)) {
-        multiArch = sec.FindS("Multi-Arch").empty() ? false : true;
+    if (m_isMultiArch &&
+        (pk_bitfield_contain(filters, PK_FILTER_ENUM_ARCH) &&
+         state == PK_INFO_ENUM_AVAILABLE)) {
+        // don't emit the package if it does not match
+        // the native architecture
+        if (strcmp(ver.Arch(), "all") != 0 &&
+            strcmp(ver.Arch(), _config->Find("APT::Architecture").c_str()) != 0) {
+            return;
+        }
     }
 
 	if (filters != 0) {
diff --git a/backends/aptcc/pk-backend-aptcc.cpp b/backends/aptcc/pk-backend-aptcc.cpp
index 06a596b..4775ad1 100644
--- a/backends/aptcc/pk-backend-aptcc.cpp
+++ b/backends/aptcc/pk-backend-aptcc.cpp
@@ -23,6 +23,7 @@
 #include <stdio.h>
 #include <apt-pkg/init.h>
 #include <apt-pkg/algorithms.h>
+#include <apt-pkg/aptconfiguration.h>
 
 #include "apt.h"
 #include "apt-utils.h"
@@ -126,12 +127,20 @@ pk_backend_get_groups (PkBackend *backend)
 PkBitfield
 pk_backend_get_filters (PkBackend *backend)
 {
-	return pk_bitfield_from_enums (
-		PK_FILTER_ENUM_GUI,
-		PK_FILTER_ENUM_INSTALLED,
-		PK_FILTER_ENUM_DEVELOPMENT,
-		PK_FILTER_ENUM_FREE,
-		-1);
+    PkBitfield filters;
+    filters = pk_bitfield_from_enums (
+        PK_FILTER_ENUM_GUI,
+        PK_FILTER_ENUM_INSTALLED,
+        PK_FILTER_ENUM_DEVELOPMENT,
+        PK_FILTER_ENUM_FREE,
+        -1);
+
+    // if we have multiArch support we add the native filter
+    if (APT::Configuration::getArchitectures(false).size() > 1) {
+        pk_bitfield_add(filters, PK_FILTER_ENUM_ARCH);
+    }
+
+    return filters;
 }
 
 /**
@@ -858,7 +867,6 @@ pk_backend_search_files_thread (PkBackend *backend)
 			if (_cancel) {
 			    break;
 			}
-			std::cout << "filename" << i->c_str() << std::endl;
 			pkgCache::PkgIterator pkg = m_apt->packageCache->FindPkg(i->c_str());
             if (pkg.end() == true) {
                 continue;
commit 6487928f39bbbc5df29b42c9462985a7be78b6a3
Author: Daniel Nicoletti <dantti85-pk at yahoo.com.br>
Date:   Mon Nov 14 01:06:56 2011 -0200

    aptcc: Add Multi-Arch support

diff --git a/backends/aptcc/apt-utils.h b/backends/aptcc/apt-utils.h
index b2d00a3..4b95206 100644
--- a/backends/aptcc/apt-utils.h
+++ b/backends/aptcc/apt-utils.h
@@ -63,7 +63,8 @@ public:
 			const pair<pkgCache::PkgIterator, pkgCache::VerIterator> &b)
 	{
 		return strcmp(a.first.Name(), b.first.Name()) == 0 &&
-		       strcmp(a.second.VerStr(), b.second.VerStr()) == 0;
+		       strcmp(a.second.VerStr(), b.second.VerStr()) == 0 &&
+		       strcmp(a.second.Arch(), b.second.Arch()) == 0;
 	}
 };
 
diff --git a/backends/aptcc/apt.cpp b/backends/aptcc/apt.cpp
index 3d9a4ae..e27440b 100644
--- a/backends/aptcc/apt.cpp
+++ b/backends/aptcc/apt.cpp
@@ -36,6 +36,7 @@
 #include <apt-pkg/sptr.h>
 #include <apt-pkg/pkgsystem.h>
 #include <apt-pkg/version.h>
+#include <apt-pkg/aptconfiguration.h>
 
 #include <sys/statvfs.h>
 #include <sys/statfs.h>
@@ -72,6 +73,8 @@ bool aptcc::init()
 	gchar *http_proxy;
 	gchar *ftp_proxy;
 
+    m_isMultiArch = APT::Configuration::getArchitectures(false).size() > 1;
+
 	// Set PackageKit status
 	pk_backend_set_status(m_backend, PK_STATUS_ENUM_LOADING_CACHE);
 
@@ -191,7 +194,10 @@ pair<pkgCache::PkgIterator, pkgCache::VerIterator>
     found = true;
 
 	parts = pk_package_id_split (package_id);
-	pkg_ver.first = packageCache->FindPkg(parts[PK_PACKAGE_ID_NAME]);
+    gchar *pkgNameArch;
+    pkgNameArch = g_strdup_printf("%s:%s", parts[PK_PACKAGE_ID_NAME], parts[PK_PACKAGE_ID_ARCH]);
+    pkg_ver.first = packageCache->FindPkg(pkgNameArch);
+    g_free(pkgNameArch);
 
 	// Ignore packages that could not be found or that exist only due to dependencies.
 	if (pkg_ver.first.end() == true ||
@@ -266,6 +272,18 @@ void aptcc::emit_package(const pkgCache::PkgIterator &pkg,
 		}
 	}
 
+    // Verify if the package supports multiArch
+    // if so we might need to emit
+    bool multiArch;
+    const char *start, *stop;
+    pkgTagSection sec;
+    pkgRecords::Parser &rec = packageRecords->Lookup(ver.FileList());
+    rec.GetRec(start, stop);
+    // add +1 to ensure we have the double lineline in the buffer
+    if (start && sec.Scan(start, stop - start + 1)) {
+        multiArch = sec.FindS("Multi-Arch").empty() ? false : true;
+    }
+
 	if (filters != 0) {
 		std::string str = ver.Section() == NULL ? "" : ver.Section();
 		std::string section, repo_section;
@@ -580,6 +598,12 @@ void aptcc::emitDetails(const pkgCache::PkgIterator &pkg, const pkgCache::VerIte
 
 void aptcc::emitDetails(PkgList &pkgs)
 {
+    // Sort so we can remove the duplicated entries
+    sort(pkgs.begin(), pkgs.end(), compare());
+    // Remove the duplicated entries
+    pkgs.erase(unique(pkgs.begin(), pkgs.end(), result_equality()),
+               pkgs.end());
+
     for(PkgList::iterator i = pkgs.begin(); i != pkgs.end(); ++i)
     {
         if (_cancel) {
@@ -1027,7 +1051,7 @@ vector<string> searchMimeType (PkBackend *backend, gchar **values, bool &error,
 }
 
 // used to emit files it reads the info directly from the files
-void emit_files (PkBackend *backend, const gchar *pi)
+void aptcc::emitFiles(PkBackend *backend, const gchar *pi)
 {
 	static string filelist;
 	string line;
@@ -1036,13 +1060,22 @@ void emit_files (PkBackend *backend, const gchar *pi)
 	parts = pk_package_id_split (pi);
 	filelist.erase(filelist.begin(), filelist.end());
 
-	string f = "/var/lib/dpkg/info/" +
-		   string(parts[PK_PACKAGE_ID_NAME]) +
-		   ".list";
-	g_strfreev (parts);
+    string fName;
+    if (m_isMultiArch) {
+         fName = "/var/lib/dpkg/info/" +
+                 string(parts[PK_PACKAGE_ID_NAME]) +
+                 ":" +
+                 string(parts[PK_PACKAGE_ID_ARCH]) +
+                 ".list";
+    } else {
+        fName = "/var/lib/dpkg/info/" +
+                string(parts[PK_PACKAGE_ID_NAME]) +
+                ".list";
+    }
+    g_strfreev (parts);
 
-	if (FileExists(f)) {
-		ifstream in(f.c_str());
+	if (FileExists(fName)) {
+		ifstream in(fName.c_str());
 		if (!in != 0) {
 			return;
 		}
@@ -1714,8 +1747,12 @@ bool aptcc::installDebFiles(const gchar *path, bool simulate)
         return false;
     }
     
+    gchar *pkgNameArch;
+    pkgNameArch = g_strdup_printf("%s:%s", deb.name().c_str(), deb.architecture().c_str());    
+    
     // check version
-    pkgCache::PkgIterator pkg = packageCache->FindPkg(deb.name());
+    pkgCache::PkgIterator pkg = packageCache->FindPkg(pkgNameArch);
+    g_free(pkgNameArch);
     pkgCache::VerIterator currver = find_ver(pkg);
     if (currver.end() == false &&
         currver.VerStr() != NULL &&
diff --git a/backends/aptcc/apt.h b/backends/aptcc/apt.h
index a11e2f8..a37065b 100644
--- a/backends/aptcc/apt.h
+++ b/backends/aptcc/apt.h
@@ -34,11 +34,6 @@
 using namespace std;
 
 /**
-*  Emits files of packages
-*/
-void emit_files (PkBackend *backend, const gchar *pi);
-
-/**
 *  returns a list of packages names
 */
 vector<string> search_files (PkBackend *backend, gchar **values, bool &_cancel);
@@ -123,6 +118,11 @@ public:
 	 */
 	void emitUpdateDetails(const pkgCache::PkgIterator &pkg, const pkgCache::VerIterator &ver);
     void emitUpdateDetails(PkgList &pkgs);
+    
+    /**
+     *  Emits files of packages
+     */
+    void emitFiles(PkBackend *backend, const gchar *pi);
 
 	/**
 	 *  seems to install packages
@@ -166,6 +166,7 @@ private:
 	void emitChangedPackages(pkgCacheFile &Cache);
 	bool removingEssentialPackages(pkgCacheFile &Cache);
 
+    bool m_isMultiArch;
 	PkgList m_pkgs;
 	void populateInternalPackages(pkgCacheFile &Cache);
 	void emitTransactionPackage(string name, PkInfoEnum state);
diff --git a/backends/aptcc/pk-backend-aptcc.cpp b/backends/aptcc/pk-backend-aptcc.cpp
index 94891b9..06a596b 100644
--- a/backends/aptcc/pk-backend-aptcc.cpp
+++ b/backends/aptcc/pk-backend-aptcc.cpp
@@ -302,7 +302,7 @@ backend_get_files_thread (PkBackend *backend)
 			return false;
 		}
 
-		emit_files (backend, pi);
+		m_apt->emitFiles(backend, pi);
 	}
 
 	delete m_apt;
@@ -858,6 +858,7 @@ pk_backend_search_files_thread (PkBackend *backend)
 			if (_cancel) {
 			    break;
 			}
+			std::cout << "filename" << i->c_str() << std::endl;
 			pkgCache::PkgIterator pkg = m_apt->packageCache->FindPkg(i->c_str());
             if (pkg.end() == true) {
                 continue;
commit 78b3e9f2091ef6342911ca1c5225cc3d2897e3c7
Author: Daniel Nicoletti <dantti85-pk at yahoo.com.br>
Date:   Sat Nov 12 00:35:49 2011 -0200

    aptcc: forgot to add DebFile class

diff --git a/backends/aptcc/deb-file.cpp b/backends/aptcc/deb-file.cpp
new file mode 100644
index 0000000..68da1d8
--- /dev/null
+++ b/backends/aptcc/deb-file.cpp
@@ -0,0 +1,138 @@
+/*
+ *
+ * Copyright (C) 2011 Daniel Nicoletti <dantti85-pk at yahoo.com.br>
+ *
+ * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include "deb-file.h"
+
+#include <apt-pkg/fileutl.h>
+#include <apt-pkg/tagfile.h>
+#include <apt-pkg/init.h>
+
+#include <iostream>
+
+DebFile::DebFile(const std::string &filename)
+{
+    FileFd in(filename, FileFd::ReadOnly);
+    debDebFile deb(in);
+
+    // Extract control data
+    m_extractor = new debDebFile::MemControlExtract("control");
+    if(!m_extractor->Read(deb)) {
+      m_isValid = false;
+      return;
+    }
+
+    m_controlData = m_extractor->Section;
+}
+
+bool DebFile::isValid() const
+{
+    return m_isValid;
+}
+
+std::string DebFile::name() const
+{
+    return m_controlData.FindS("Package");
+}
+
+std::string DebFile::version() const
+{
+    return m_controlData.FindS("Version");
+}
+
+std::string DebFile::architecture() const
+{
+    return m_controlData.FindS("Architecture");
+}
+
+std::string DebFile::conflicts() const
+{
+    return m_controlData.FindS("Conflicts");
+}
+
+bool DebFile::check()
+{
+    // check arch
+    if (architecture().empty()) {
+        m_errorMsg = "No Architecture field in the package";
+        return false;
+    }
+
+    std::cout << architecture() << std::endl;
+    if (architecture().compare("all") != 0 &&
+        architecture().compare(_config->Find("APT::Architecture")) != 0) 
+    {
+        m_errorMsg = "Wrong architecture ";
+        m_errorMsg.append(architecture());
+        return false;
+    }
+//     if not "Architecture" in self._sections:
+//         self._dbg(1, "ERROR: no architecture field")
+//         self._failure_string = _("No Architecture field in the package")
+//         return False
+//     arch = self._sections["Architecture"]
+//     if  arch != "all" and arch != apt_pkg.config.find("APT::Architecture"):
+//         self._dbg(1, "ERROR: Wrong architecture dude!")
+//         self._failure_string = _("Wrong architecture '%s'") % arch
+//         return False
+// 
+//     // check version
+//     if self.compare_to_version_in_cache() == self.VERSION_OUTDATED:
+//         if self._cache[self.pkgname].installed:
+//             // the deb is older than the installed
+//             self._failure_string = _("A later version is already installed")
+//             return False
+// 
+//     // FIXME: this sort of error handling sux
+//     self._failure_string = ""
+// 
+//     // check conflicts
+//     if not self.check_conflicts():
+//         return False
+// 
+//     // check if installing it would break anything on the 
+//     // current system
+//     if not self.check_breaks_existing_packages():
+//         return False
+// 
+//     // try to satisfy the dependencies
+//     if not self._satisfy_depends(self.depends):
+//         return False
+// 
+//     // check for conflicts again (this time with the packages that are
+//     // makeed for install)
+//     if not self.check_conflicts():
+//         return False
+// 
+//     if self._cache._depcache.broken_count > 0:
+//         self._failure_string = _("Failed to satisfy all dependencies "
+//                                     "(broken cache)")
+//         // clean the cache again
+//         self._cache.clear()
+//         return False
+    return true;
+}
+
+std::string DebFile::errorMsg() const
+{
+    return m_errorMsg;
+}
+
+
diff --git a/backends/aptcc/deb-file.h b/backends/aptcc/deb-file.h
new file mode 100644
index 0000000..84e2ef9
--- /dev/null
+++ b/backends/aptcc/deb-file.h
@@ -0,0 +1,51 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2011 Daniel Nicoletti <dantti85-pk at yahoo.com.br>
+ *
+ * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifndef DEB_FILE_H
+#define DEB_FILE_H
+
+#include <string>
+#include <apt-pkg/debfile.h>
+
+class DebFile
+{
+//     typedef int user_tag_reference;
+public:
+    DebFile(const std::string &filename);
+    bool isValid() const;
+
+    std::string name() const;
+    std::string version() const;
+    std::string architecture() const;
+    std::string conflicts() const;
+    
+    // THIS should be moved to AptCC class
+    bool check();
+    std::string errorMsg() const;
+
+private:
+    debDebFile::MemControlExtract *m_extractor;
+    pkgTagSection m_controlData;
+    std::string m_errorMsg;
+    bool m_isValid;
+};
+
+#endif
commit b176f00589d3d86b05bfbefd71e65ce5796452e2
Merge: 10580a0... 11d68df...
Author: Daniel Nicoletti <dantti85-pk at yahoo.com.br>
Date:   Sat Nov 12 00:25:24 2011 -0200

    Merge branch 'master' of gitorious.org:packagekit/packagekit

commit 10580a087598b27f8b72abcc0f42d5f1790a140c
Author: Daniel Nicoletti <dantti85-pk at yahoo.com.br>
Date:   Sat Nov 12 00:24:05 2011 -0200

    aptcc: Initial commit to support InstallPackageFiles

diff --git a/backends/aptcc/Makefile.am b/backends/aptcc/Makefile.am
index a8993f1..ba59e4b 100644
--- a/backends/aptcc/Makefile.am
+++ b/backends/aptcc/Makefile.am
@@ -9,12 +9,13 @@ libpk_backend_aptcc_la_SOURCES = pkg_acqfile.cpp \
 				 aptcc_show_error.cpp \
 				 apt-utils.cpp \
 				 acqprogress.cpp \
+				 deb-file.cpp \
 				 matcher.cpp \
 				 gstMatcher.cpp \
 				 rsources.cpp \
 				 apt.cpp \
 				 pk-backend-aptcc.cpp
-libpk_backend_aptcc_la_LIBADD = -lcrypt -lapt-pkg $(PK_PLUGIN_LIBS)
+libpk_backend_aptcc_la_LIBADD = -lcrypt -lapt-pkg -lapt-inst $(PK_PLUGIN_LIBS)
 libpk_backend_aptcc_la_LDFLAGS = -module -avoid-version $(APTCC_LIBS) $(GSTREAMER_LIBS)
 libpk_backend_aptcc_la_CFLAGS = $(PK_PLUGIN_CFLAGS)
 libpk_backend_aptcc_la_CPPFLAGS = $(PK_PLUGIN_CFLAGS) $(APTCC_CFLAGS) $(GSTREAMER_CFLAGS)
@@ -27,6 +28,7 @@ EXTRA_DIST = 20packagekit \
 	     apt-utils.h \
 	     gstMatcher.h \
 	     matcher.h \
+	     deb-file.h \
 	     aptcc_show_broken.h \
 	     acqprogress.h \
 	     aptcc_show_error.h \
diff --git a/backends/aptcc/apt.cpp b/backends/aptcc/apt.cpp
index 57cd607..3d9a4ae 100644
--- a/backends/aptcc/apt.cpp
+++ b/backends/aptcc/apt.cpp
@@ -27,6 +27,7 @@
 #include "acqprogress.h"
 #include "pkg_acqfile.h"
 #include "aptcc_show_error.h"
+#include "deb-file.h"
 
 #include <apt-pkg/error.h>
 #include <apt-pkg/tagfile.h>
@@ -355,7 +356,7 @@ void aptcc::emit_package(const pkgCache::PkgIterator &pkg,
         g_free(package_id);
 }
 
-void aptcc::emit_packages(vector<pair<pkgCache::PkgIterator, pkgCache::VerIterator> > &output,
+void aptcc::emit_packages(PkgList &output,
 			  PkBitfield filters,
 			  PkInfoEnum state)
 {
@@ -377,8 +378,7 @@ void aptcc::emit_packages(vector<pair<pkgCache::PkgIterator, pkgCache::VerIterat
 	}
 }
 
-void aptcc::emitUpdates(vector<pair<pkgCache::PkgIterator, pkgCache::VerIterator> > &output,
-			 PkBitfield filters)
+void aptcc::emitUpdates(PkgList &output, PkBitfield filters)
 {
 	PkInfoEnum state;
 	// Sort so we can remove the duplicated entries
@@ -424,8 +424,7 @@ void aptcc::emitUpdates(vector<pair<pkgCache::PkgIterator, pkgCache::VerIterator
 }
 
 // search packages which provide a codec (specified in "values")
-void aptcc::providesCodec(vector<pair<pkgCache::PkgIterator, pkgCache::VerIterator> > &output,
-                         gchar **values)
+void aptcc::providesCodec(PkgList &output, gchar **values)
 {
     GstMatcher *matcher = new GstMatcher(values);
     if (!matcher->hasMatches()) {
@@ -467,8 +466,7 @@ void aptcc::providesCodec(vector<pair<pkgCache::PkgIterator, pkgCache::VerIterat
 }
 
 // search packages which provide the libraries specified in "values"
-void aptcc::providesLibrary(vector<pair<pkgCache::PkgIterator, pkgCache::VerIterator> > &output,
-                         gchar **values)
+void aptcc::providesLibrary(PkgList &output, gchar **values)
 {
 	bool ret = false;
 	// Quick-check for library names
@@ -538,7 +536,7 @@ void aptcc::providesLibrary(vector<pair<pkgCache::PkgIterator, pkgCache::VerIter
 }
 
 // used to emit packages it collects all the needed info
-void aptcc::emit_details(const pkgCache::PkgIterator &pkg, const pkgCache::VerIterator &version)
+void aptcc::emitDetails(const pkgCache::PkgIterator &pkg, const pkgCache::VerIterator &version)
 {
     pkgCache::VerIterator ver;
     if (version.end() == false) {
@@ -580,8 +578,20 @@ void aptcc::emit_details(const pkgCache::PkgIterator &pkg, const pkgCache::VerIt
     g_free(package_id);
 }
 
+void aptcc::emitDetails(PkgList &pkgs)
+{
+    for(PkgList::iterator i = pkgs.begin(); i != pkgs.end(); ++i)
+    {
+        if (_cancel) {
+            break;
+        }
+
+        emitDetails(i->first, i->second);
+    }
+}
+
 // used to emit packages it collects all the needed info
-void aptcc::emit_update_detail(const pkgCache::PkgIterator &pkg, const pkgCache::VerIterator &version)
+void aptcc::emitUpdateDetails(const pkgCache::PkgIterator &pkg, const pkgCache::VerIterator &version)
 {
     // Get the version of the current package
     pkgCache::VerIterator currver = find_ver(pkg);
@@ -821,7 +831,19 @@ void aptcc::emit_update_detail(const pkgCache::PkgIterator &pkg, const pkgCache:
     g_free(package_id);
 }
 
-void aptcc::get_depends(vector<pair<pkgCache::PkgIterator, pkgCache::VerIterator> > &output,
+void aptcc::emitUpdateDetails(PkgList &pkgs)
+{
+    for(PkgList::iterator i = pkgs.begin(); i != pkgs.end(); ++i)
+    {
+        if (_cancel) {
+            break;
+        }
+
+        emitUpdateDetails(i->first, i->second);
+    }
+}
+
+void aptcc::get_depends(PkgList &output,
 			pkgCache::PkgIterator pkg,
 			bool recursive)
 {
@@ -849,7 +871,7 @@ void aptcc::get_depends(vector<pair<pkgCache::PkgIterator, pkgCache::VerIterator
 	}
 }
 
-void aptcc::get_requires(vector<pair<pkgCache::PkgIterator, pkgCache::VerIterator> > &output,
+void aptcc::get_requires(PkgList &output,
 			pkgCache::PkgIterator pkg,
 			bool recursive)
 {
@@ -1621,7 +1643,130 @@ bool aptcc::DoAutomaticRemove(pkgCacheFile &Cache)
 	return true;
 }
 
-bool aptcc::runTransaction(vector<pair<pkgCache::PkgIterator, pkgCache::VerIterator> > &pkgs,
+PkgList aptcc::resolvePI(gchar **package_ids)
+{
+    gchar *pi;
+    PkgList ret;
+
+    pk_backend_set_status (m_backend, PK_STATUS_ENUM_QUERY);
+    for (uint i = 0; i < g_strv_length(package_ids); i++) {
+        if (_cancel) {
+            break;
+        }
+
+        PkgPair pair;
+        pi = package_ids[i];
+
+        if (pk_package_id_check(pi) == false) {
+            pair.first = packageCache->FindPkg(pi);
+            // Ignore packages that could not be found or that exist only due to dependencies.
+            if (pair.first.end() == true ||
+                (pair.first.VersionList().end() && pair.first.ProvidesList().end())) {
+                continue;
+            }
+
+            pair.second = find_ver(pair.first);
+            // check to see if the provided package isn't virtual too
+            if (pair.second.end() == false) {
+                ret.push_back(pair);
+            }
+
+            pair.second = find_candidate_ver(pair.first);
+            // check to see if the provided package isn't virtual too
+            if (pair.second.end() == false) {
+                ret.push_back(pair);
+            }
+        } else {
+            bool found;
+            pair = find_package_id(pi, found);
+            // check to see if we found the package
+            if (found) {
+                ret.push_back(pair);
+            }
+        }
+    }
+    return ret;
+}
+
+bool aptcc::installDebFiles(const gchar *path, bool simulate)
+{
+    DebFile deb(path);
+    std::string errorMsg;
+    cout << "Name: " << deb.name() << endl;
+    cout << "Version: " << deb.version() << endl;
+    cout << "Architecture: " << deb.architecture() << endl;
+    cout << "Conflicts: " << deb.conflicts() << endl;
+
+//             m_apt->installPackageFiles();
+    cout << "FULL_PATH: " << path << endl;  
+
+    // check architecture
+    if (deb.architecture().empty()) {
+        errorMsg = "No Architecture field in the package";
+        return false;
+    }
+
+    if (deb.architecture().compare("all") != 0 &&
+        deb.architecture().compare(_config->Find("APT::Architecture")) != 0) 
+    {
+        errorMsg = "Wrong architecture ";
+        errorMsg.append(deb.architecture());
+        return false;
+    }
+    
+    // check version
+    pkgCache::PkgIterator pkg = packageCache->FindPkg(deb.name());
+    pkgCache::VerIterator currver = find_ver(pkg);
+    if (currver.end() == false &&
+        currver.VerStr() != NULL &&
+        pkg->CurrentState == pkgCache::State::Installed) {
+        // If the package is already installed compare the versions
+        if (_system != 0) {
+            int ret =
+            _system->VS->DoCmpVersion(currver.VerStr(), currver.VerStr() + strlen(currver.VerStr()),
+                                      deb.version().c_str(), deb.version().c_str() + strlen(deb.version().c_str()));
+            // Don't let the user install older versions
+            errorMsg = "A newer version of ";
+            errorMsg.append(deb.name());
+            errorMsg.append(" is already installed.");
+            cout << "DoCmpVersion" << ret << endl;
+            return false;
+        }
+    }
+  
+    
+// 
+//     // FIXME: this sort of error handling sux
+//     self._failure_string = ""
+// 
+//     // check conflicts
+//     if not self.check_conflicts():
+//         return False
+// 
+//     // check if installing it would break anything on the 
+//     // current system
+//     if not self.check_breaks_existing_packages():
+//         return False
+// 
+//     // try to satisfy the dependencies
+//     if not self._satisfy_depends(self.depends):
+//         return False
+// 
+//     // check for conflicts again (this time with the packages that are
+//     // makeed for install)
+//     if not self.check_conflicts():
+//         return False
+// 
+//     if self._cache._depcache.broken_count > 0:
+//         self._failure_string = _("Failed to satisfy all dependencies "
+//                                     "(broken cache)")
+//         // clean the cache again
+//         self._cache.clear()
+//         return False
+    return true;  
+}
+
+bool aptcc::runTransaction(PkgList &pkgs,
 			   bool simulate,
 			   bool remove)
 {
diff --git a/backends/aptcc/apt.h b/backends/aptcc/apt.h
index 3751ae2..a11e2f8 100644
--- a/backends/aptcc/apt.h
+++ b/backends/aptcc/apt.h
@@ -48,6 +48,9 @@ vector<string> search_files (PkBackend *backend, gchar **values, bool &_cancel);
 */
 vector<string> searchMimeType (PkBackend *backend, gchar **values, bool &error, bool &_cancel);
 
+typedef pair<pkgCache::PkgIterator, pkgCache::VerIterator> PkgPair;
+typedef vector<PkgPair> PkgList;
+
 class pkgProblemResolver;
 class aptcc
 {
@@ -66,6 +69,9 @@ public:
 	pkgCache::VerIterator find_ver(const pkgCache::PkgIterator &pkg);
 	pkgCache::VerIterator find_candidate_ver(const pkgCache::PkgIterator &pkg);
 
+    PkgList resolvePI(gchar **package_ids);
+    bool installDebFiles(const gchar *path, bool simulate);
+
 	/**
 	 *  runs a transaction to install/remove/update packages
 	 *  - for install and update, \p remove should be set to false
@@ -74,21 +80,21 @@ public:
 	 *    \p simulate should be true, in this case packages with
 	 *    what's going to happen will be emitted.
 	 */
-	bool runTransaction(vector<pair<pkgCache::PkgIterator, pkgCache::VerIterator> > &pkgs,
+	bool runTransaction(PkgList &pkgs,
 			    bool simulate,
 			    bool remove);
 
 	/**
 	 *  Get depends
 	 */
-	void get_depends(vector<pair<pkgCache::PkgIterator, pkgCache::VerIterator> > &output,
+	void get_depends(PkgList &output,
 			 pkgCache::PkgIterator pkg,
 			 bool recursive);
 
 	/**
 	 *  Get requires
 	 */
-	void get_requires(vector<pair<pkgCache::PkgIterator, pkgCache::VerIterator> > &output,
+	void get_requires(PkgList &output,
 			  pkgCache::PkgIterator pkg,
 			  bool recursive);
 
@@ -100,22 +106,23 @@ public:
 			  PkBitfield filters = PK_FILTER_ENUM_NONE,
 			  PkInfoEnum state = PK_INFO_ENUM_UNKNOWN);
 
-	void emit_packages(vector<pair<pkgCache::PkgIterator, pkgCache::VerIterator> > &output,
+	void emit_packages(PkgList &output,
 			   PkBitfield filters = PK_FILTER_ENUM_NONE,
 			   PkInfoEnum state = PK_INFO_ENUM_UNKNOWN);
 
-	void emitUpdates(vector<pair<pkgCache::PkgIterator, pkgCache::VerIterator> > &output,
-			 PkBitfield filters = PK_FILTER_ENUM_NONE);
+	void emitUpdates(PkgList &output, PkBitfield filters = PK_FILTER_ENUM_NONE);
 
 	/**
 	 *  Emits details
 	 */
-	void emit_details(const pkgCache::PkgIterator &pkg, const pkgCache::VerIterator &ver);
+	void emitDetails(const pkgCache::PkgIterator &pkg, const pkgCache::VerIterator &ver);
+    void emitDetails(PkgList &pkgs);
 
 	/**
 	 *  Emits update detail
 	 */
-	void emit_update_detail(const pkgCache::PkgIterator &pkg, const pkgCache::VerIterator &ver);
+	void emitUpdateDetails(const pkgCache::PkgIterator &pkg, const pkgCache::VerIterator &ver);
+    void emitUpdateDetails(PkgList &pkgs);
 
 	/**
 	 *  seems to install packages
@@ -125,14 +132,12 @@ public:
 	/**
 	 *  check which package provides the codec
 	 */
-	void providesCodec(vector<pair<pkgCache::PkgIterator, pkgCache::VerIterator> > &output,
-			  gchar **values);
+	void providesCodec(PkgList &output, gchar **values);
 
 	/**
 	 *  check which package provides a shared library
 	 */
-	void providesLibrary(vector<pair<pkgCache::PkgIterator, pkgCache::VerIterator> > &output,
-			  gchar **values);
+	void providesLibrary(PkgList &output, gchar **values);
 
 	pkgRecords    *packageRecords;
 	pkgCache      *packageCache;
@@ -161,7 +166,7 @@ private:
 	void emitChangedPackages(pkgCacheFile &Cache);
 	bool removingEssentialPackages(pkgCacheFile &Cache);
 
-	vector<pair<pkgCache::PkgIterator, pkgCache::VerIterator> > m_pkgs;
+	PkgList m_pkgs;
 	void populateInternalPackages(pkgCacheFile &Cache);
 	void emitTransactionPackage(string name, PkInfoEnum state);
 	time_t     m_lastTermAction;
diff --git a/backends/aptcc/pk-backend-aptcc.cpp b/backends/aptcc/pk-backend-aptcc.cpp
index f30601a..94891b9 100644
--- a/backends/aptcc/pk-backend-aptcc.cpp
+++ b/backends/aptcc/pk-backend-aptcc.cpp
@@ -325,7 +325,8 @@ backend_get_details_thread (PkBackend *backend)
 	gchar **package_ids;
 	gchar *pi;
 
-	bool updateDetail = pk_backend_get_bool (backend, "updateDetail");
+    PkRoleEnum role = pk_backend_get_role (backend);
+	bool updateDetail = role == PK_ROLE_ENUM_GET_UPDATE_DETAIL ? true : false;
 	package_ids = pk_backend_get_strv (backend, "package_ids");
 	if (package_ids == NULL) {
 		pk_backend_error_code (backend,
@@ -350,38 +351,14 @@ backend_get_details_thread (PkBackend *backend)
         pkgInitSystem(*_config, _system);
     }
 
-	pk_backend_set_status (backend, PK_STATUS_ENUM_QUERY);
-	for (uint i = 0; i < g_strv_length(package_ids); i++) {
-		pi = package_ids[i];
-		if (pk_package_id_check(pi) == false) {
-			pk_backend_error_code (backend,
-					       PK_ERROR_ENUM_PACKAGE_ID_INVALID,
-					       pi);
-			delete m_apt;
-			pk_backend_finished (backend);
-			return false;
-		}
+    pk_backend_set_status (backend, PK_STATUS_ENUM_QUERY);
+    PkgList pkgs = m_apt->resolvePI(package_ids);
 
-		pair<pkgCache::PkgIterator, pkgCache::VerIterator> pkg_ver;
-        bool found;
-		pkg_ver = m_apt->find_package_id(pi, found);
-		if (!found)
-		{
-			pk_backend_error_code (backend,
-					       PK_ERROR_ENUM_PACKAGE_NOT_FOUND,
-					       "couldn't find package");
-
-			delete m_apt;
-			pk_backend_finished (backend);
-			return false;
-		}
-
-		if (updateDetail) {
-			m_apt->emit_update_detail(pkg_ver.first, pkg_ver.second);
-		} else {
-			m_apt->emit_details(pkg_ver.first, pkg_ver.second);
-		}
-	}
+    if (updateDetail) {
+        m_apt->emitUpdateDetails(pkgs);
+    } else {
+        m_apt->emitDetails(pkgs);
+    }
 
 	delete m_apt;
 	pk_backend_finished (backend);
@@ -394,8 +371,7 @@ backend_get_details_thread (PkBackend *backend)
 void
 pk_backend_get_update_detail (PkBackend *backend, gchar **package_ids)
 {
-	pk_backend_set_bool (backend, "updateDetail", true);
-	pk_backend_thread_create (backend, backend_get_details_thread);
+    pk_backend_thread_create (backend, backend_get_details_thread);
 }
 
 /**
@@ -404,8 +380,7 @@ pk_backend_get_update_detail (PkBackend *backend, gchar **package_ids)
 void
 pk_backend_get_details (PkBackend *backend, gchar **package_ids)
 {
-	pk_backend_set_bool (backend, "updateDetail", false);
-	pk_backend_thread_create (backend, backend_get_details_thread);
+    pk_backend_thread_create (backend, backend_get_details_thread);
 }
 
 static gboolean
@@ -459,8 +434,8 @@ backend_get_or_update_system_thread (PkBackend *backend)
 
 	bool res = true;
 	if (getUpdates) {
-		vector<pair<pkgCache::PkgIterator, pkgCache::VerIterator> > update,
-									    kept;
+		PkgList update;
+		PkgList kept;
 
 		for(pkgCache::PkgIterator pkg=m_apt->packageCache->PkgBegin();
 		    !pkg.end();
@@ -469,12 +444,12 @@ backend_get_or_update_system_thread (PkBackend *backend)
 			if((*Cache)[pkg].Upgrade()    == true &&
 			(*Cache)[pkg].NewInstall() == false) {
 				update.push_back(
-					pair<pkgCache::PkgIterator, pkgCache::VerIterator>(pkg, m_apt->find_candidate_ver(pkg)));
+					PkgPair(pkg, m_apt->find_candidate_ver(pkg)));
 			} else if ((*Cache)[pkg].Upgradable() == true &&
 				pkg->CurrentVer != 0 &&
 				(*Cache)[pkg].Delete() == false) {
 				kept.push_back(
-					pair<pkgCache::PkgIterator, pkgCache::VerIterator>(pkg, m_apt->find_candidate_ver(pkg)));
+					PkgPair(pkg, m_apt->find_candidate_ver(pkg)));
 			}
 		}
 
@@ -813,7 +788,6 @@ pk_backend_refresh_cache (PkBackend *backend, gboolean force)
 	pk_backend_thread_create (backend, pk_backend_refresh_cache_thread);
 }
 
-
 static gboolean
 pk_backend_resolve_thread (PkBackend *backend)
 {
@@ -833,50 +807,10 @@ pk_backend_resolve_thread (PkBackend *backend)
 		return false;
 	}
 
-	pk_backend_set_status (backend, PK_STATUS_ENUM_QUERY);
-	gchar *pi;
-	vector<pair<pkgCache::PkgIterator, pkgCache::VerIterator> > output;
-	for (uint i = 0; i < g_strv_length(package_ids); i++) {
-		if (_cancel) {
-			break;
-		}
-
-		pair<pkgCache::PkgIterator, pkgCache::VerIterator> pkg_ver;
-		pi = package_ids[i];
-		if (pk_package_id_check(pi) == false) {
-			pkg_ver.first = m_apt->packageCache->FindPkg(pi);
-			// Ignore packages that could not be found or that exist only due to dependencies.
-			if (pkg_ver.first.end() == true ||
-			    (pkg_ver.first.VersionList().end() && pkg_ver.first.ProvidesList().end()))
-			{
-				continue;
-			}
+    PkgList pkgs = m_apt->resolvePI(package_ids);
 
-			pkg_ver.second = m_apt->find_ver(pkg_ver.first);
-			// check to see if the provided package isn't virtual too
-			if (pkg_ver.second.end() == false)
-			{
-				output.push_back(pkg_ver);
-			}
-
-			pkg_ver.second = m_apt->find_candidate_ver(pkg_ver.first);
-			// check to see if the provided package isn't virtual too
-			if (pkg_ver.second.end() == false)
-			{
-				output.push_back(pkg_ver);
-			}
-		} else {
-            bool found;
-			pkg_ver = m_apt->find_package_id(pi, found);
-			// check to see if we found the package
-			if (found)
-			{
-				output.push_back(pkg_ver);
-			}
-		}
-	}
-	// It's faster to emmit the packages here rather than in the matching part
-	m_apt->emit_packages(output, filters);
+    // It's faster to emmit the packages here rather than in the matching part
+    m_apt->emit_packages(pkgs, filters);
 
 	delete m_apt;
 
@@ -1184,15 +1118,26 @@ pk_backend_search_details (PkBackend *backend, PkBitfield filters, gchar **value
 static gboolean
 backend_manage_packages_thread (PkBackend *backend)
 {
-	gchar **package_ids;
-	gchar *pi;
-	bool simulate;
-	bool remove;
-
-	package_ids = pk_backend_get_strv (backend, "package_ids");
-	simulate = pk_backend_get_bool (backend, "simulate");
-	remove = pk_backend_get_bool (backend, "remove");
-
+    bool simulate = false;
+    bool remove = false;
+    bool fileInstall = false;
+
+    PkRoleEnum role = pk_backend_get_role (backend);
+    if (role == PK_ROLE_ENUM_SIMULATE_INSTALL_FILES ||
+        role == PK_ROLE_ENUM_SIMULATE_INSTALL_PACKAGES ||
+        role == PK_ROLE_ENUM_SIMULATE_UPDATE_PACKAGES ||
+        role == PK_ROLE_ENUM_SIMULATE_REMOVE_PACKAGES) {
+        simulate = true;
+    }
+    if (role == PK_ROLE_ENUM_SIMULATE_REMOVE_PACKAGES ||
+        role == PK_ROLE_ENUM_REMOVE_PACKAGES) {
+        remove = true;
+    }
+    if (role == PK_ROLE_ENUM_SIMULATE_INSTALL_FILES ||
+        role == PK_ROLE_ENUM_INSTALL_FILES) {
+        fileInstall = true;
+    }
+cout << "FILE INSTALL: " << fileInstall << endl;
 	pk_backend_set_allow_cancel (backend, true);
 
 	aptcc *m_apt = new aptcc(backend, _cancel);
@@ -1205,47 +1150,66 @@ backend_manage_packages_thread (PkBackend *backend)
 	}
 
 	pk_backend_set_status (backend, PK_STATUS_ENUM_QUERY);
-	vector<pair<pkgCache::PkgIterator, pkgCache::VerIterator> > pkgs;
-	for (uint i = 0; i < g_strv_length(package_ids); i++) {
-		if (_cancel) {
-			break;
-		}
-
-		pi = package_ids[i];
-		if (pk_package_id_check(pi) == false) {
-			pk_backend_error_code (backend,
-					       PK_ERROR_ENUM_PACKAGE_ID_INVALID,
-					       pi);
-			delete m_apt;
-			pk_backend_finished (backend);
-			return false;
-		}
-
-		pair<pkgCache::PkgIterator, pkgCache::VerIterator> pkg_ver;
-        bool found;
-		pkg_ver = m_apt->find_package_id(pi, found);
-		// Ignore packages that could not be found or that exist only due to dependencies.
-		if (!found)
-		{
-			pk_backend_error_code (backend,
-					       PK_ERROR_ENUM_PACKAGE_NOT_FOUND,
-					       "couldn't find package");
+	PkgList pkgs;
+    
+    if (fileInstall ==  false) { 
+        // Resolve the given packages
+        gchar *pi;
+        gchar **package_ids = pk_backend_get_strv (backend, "package_ids");
+        for (uint i = 0; i < g_strv_length(package_ids); i++) {
+            if (_cancel) {
+                break;
+            }
 
-			delete m_apt;
-			pk_backend_finished (backend);
-			return false;
-		} else {
-			pkgs.push_back(pkg_ver);
-		}
-	}
+            pi = package_ids[i];
+            if (pk_package_id_check(pi) == false) {
+                pk_backend_error_code (backend,
+                            PK_ERROR_ENUM_PACKAGE_ID_INVALID,
+                            pi);
+                delete m_apt;
+                pk_backend_finished (backend);
+                return false;
+            }
 
-	if (!m_apt->runTransaction(pkgs, simulate, remove)) {
-		// Print transaction errors
-		cout << "runTransaction failed" << endl;
-		delete m_apt;
-		pk_backend_finished (backend);
-		return false;
-	}
+            pair<pkgCache::PkgIterator, pkgCache::VerIterator> pkg_ver;
+            bool found;
+            pkg_ver = m_apt->find_package_id(pi, found);
+            // Ignore packages that could not be found or that exist only due to dependencies.
+            if (!found)
+            {
+                pk_backend_error_code (backend,
+                            PK_ERROR_ENUM_PACKAGE_NOT_FOUND,
+                            "couldn't find package");
+
+                delete m_apt;
+                pk_backend_finished (backend);
+                return false;
+            } else {
+                pkgs.push_back(pkg_ver);
+            }
+        }
+
+        // TODO verify if some package was found
+        if (!m_apt->runTransaction(pkgs, simulate, remove)) {
+            // Print transaction errors
+            cout << "runTransaction failed" << endl;
+            delete m_apt;
+            pk_backend_finished (backend);
+            return false;
+        }
+    } else {
+        // File installation EXPERIMENTAL
+        gchar *path;
+        gchar **full_paths = pk_backend_get_strv (backend, "full_paths");
+        for (uint i = 0; i < g_strv_length(full_paths); i++) {
+            if (_cancel) {
+                break;
+            }
+            
+            path = full_paths[i];
+            cout << "InstallFiles: " << m_apt->installDebFiles(path, simulate) << endl;
+        }
+    }
 
 	delete m_apt;
 	pk_backend_finished (backend);
@@ -1253,58 +1217,57 @@ backend_manage_packages_thread (PkBackend *backend)
 }
 
 /**
+ * pk_backend_simulate_install_packages:
+ */
+void
+pk_backend_simulate_install_packages (PkBackend *backend, gchar **packages)
+{
+    pk_backend_thread_create (backend, backend_manage_packages_thread);
+}
+
+/**
  * pk_backend_install_packages:
  */
 void
 pk_backend_install_packages (PkBackend *backend, gboolean only_trusted, gchar **package_ids)
 {
-	pk_backend_set_bool(backend, "simulate", false);
-	pk_backend_set_bool(backend, "remove", false);
-	pk_backend_thread_create (backend, backend_manage_packages_thread);
+    pk_backend_thread_create (backend, backend_manage_packages_thread);
 }
 
 /**
- * pk_backend_update_packages:
+ * pk_backend_simulate_update_packages:
  */
 void
-pk_backend_update_packages (PkBackend *backend, gboolean only_trusted, gchar **package_ids)
+pk_backend_simulate_update_packages (PkBackend *backend, gchar **packages)
 {
-	pk_backend_set_bool(backend, "simulate", false);
-	pk_backend_set_bool(backend, "remove", false);
-	pk_backend_thread_create (backend, backend_manage_packages_thread);
+    pk_backend_thread_create (backend, backend_manage_packages_thread);
 }
 
 /**
- * pk_backend_simulate_install_packages:
+ * pk_backend_update_packages:
  */
 void
-pk_backend_simulate_install_packages (PkBackend *backend, gchar **packages)
+pk_backend_update_packages (PkBackend *backend, gboolean only_trusted, gchar **package_ids)
 {
-	pk_backend_set_bool(backend, "simulate", true);
-	pk_backend_set_bool(backend, "remove", false);
-	pk_backend_thread_create (backend, backend_manage_packages_thread);
+    pk_backend_thread_create (backend, backend_manage_packages_thread);
 }
 
 /**
- * pk_backend_simulate_update_packages:
+ * pk_backend_simulate_install_files:
  */
 void
-pk_backend_simulate_update_packages (PkBackend *backend, gchar **packages)
+pk_backend_simulate_install_files (PkBackend *backend, gchar **full_paths)
 {
-	pk_backend_set_bool(backend, "simulate", true);
-	pk_backend_set_bool(backend, "remove", false);
-	pk_backend_thread_create (backend, backend_manage_packages_thread);
+    pk_backend_thread_create (backend, backend_manage_packages_thread);
 }
 
 /**
- * pk_backend_remove_packages:
+ * pk_backend_install_files:
  */
 void
-pk_backend_remove_packages (PkBackend *backend, gchar **package_ids, gboolean allow_deps, gboolean autoremove)
+pk_backend_install_files (PkBackend *backend, gboolean only_trusted, gchar **full_paths)
 {
-	pk_backend_set_bool(backend, "simulate", false);
-	pk_backend_set_bool(backend, "remove", true);
-	pk_backend_thread_create (backend, backend_manage_packages_thread);
+    pk_backend_thread_create (backend, backend_manage_packages_thread);
 }
 
 /**
@@ -1313,9 +1276,16 @@ pk_backend_remove_packages (PkBackend *backend, gchar **package_ids, gboolean al
 void
 pk_backend_simulate_remove_packages (PkBackend *backend, gchar **packages, gboolean autoremove)
 {
-	pk_backend_set_bool(backend, "simulate", true);
-	pk_backend_set_bool(backend, "remove", true);
-	pk_backend_thread_create (backend, backend_manage_packages_thread);
+    pk_backend_thread_create (backend, backend_manage_packages_thread);
+}
+
+/**
+ * pk_backend_remove_packages:
+ */
+void
+pk_backend_remove_packages (PkBackend *backend, gchar **package_ids, gboolean allow_deps, gboolean autoremove)
+{
+    pk_backend_thread_create (backend, backend_manage_packages_thread);
 }
 
 static gboolean
diff --git a/configure.ac b/configure.ac
index 7873d77..4e334aa 100644
--- a/configure.ac
+++ b/configure.ac
@@ -636,6 +636,10 @@ if test x$enable_aptcc = xyes; then
 
 	AC_SUBST(APTCC_CFLAGS)
 	AC_SUBST(APTCC_LIBS)
+	
+    AC_CHECK_LIB(apt-inst, main, , [AC_MSG_ERROR([Can't find the APT libraries -- please install libapt-pkg-dev])])
+    AC_SUBST(APTCC_CFLAGS)
+    AC_SUBST(APTCC_LIBS)
 
 	PKG_CHECK_MODULES(GSTREAMER, gstreamer-0.10 gstreamer-base-0.10 gstreamer-plugins-base-0.10,,
 					[AC_MSG_ERROR([Can't find the gstreamer libraries -- please install libgstreamermm-0.10-dev])])
commit 11d68df4533df3b4469768169ef96d5e3cca4146
Author: Matthias Klumpp <matthias at tenstral.net>
Date:   Thu Nov 10 22:30:11 2011 +0100

    trivial: Fix typo (dependant -> dependent)

diff --git a/backends/entropy/entropyBackend.py b/backends/entropy/entropyBackend.py
index d6ce0ed..2a3fdee 100755
--- a/backends/entropy/entropyBackend.py
+++ b/backends/entropy/entropyBackend.py
@@ -440,7 +440,7 @@ class PackageKitEntropyMixin(object):
         @type pkgs: list
         @param allowdep: Either true or false. If true allow other packages
             to be removed with the package, but false should cause the script
-            to abort if other packages are dependant on the package.
+            to abort if other packages are dependent on the package.
         @type allowdep: bool
         @param autoremove: Either true or false. This option is only really
             interesting on embedded devices with a limited amount of flash
@@ -818,7 +818,7 @@ class PkUrlFetcher(UrlFetcher):
             myavg = abs(int(round(float(self.__average), 1)))
             cur_prog = int(float(self.__average)/100)
             PkUrlFetcher._pk_progress(cur_prog)
-            PkUrlFetcher._last_t = time.time()    
+            PkUrlFetcher._last_t = time.time()
 
     def output(self):
         """ backward compatibility """
diff --git a/contrib/debuginfo-install/pk-debuginfo-install.c b/contrib/debuginfo-install/pk-debuginfo-install.c
index 2f94174..daf6072 100644
--- a/contrib/debuginfo-install/pk-debuginfo-install.c
+++ b/contrib/debuginfo-install/pk-debuginfo-install.c
@@ -85,7 +85,7 @@ pk_get_package_name_from_nevra (const gchar *nevra)
 	/* join up name elements */
 	name = g_strjoinv ("-", split);
 out:
-	g_strfreev (split); 
+	g_strfreev (split);
 	return name;
 }
 
@@ -390,7 +390,7 @@ pk_debuginfo_install_add_deps (PkDebuginfoInstallPrivate *priv, GPtrArray *packa
 		goto out;
 	}
 
-	/* add dependant packages */
+	/* add dependent packages */
 	list = pk_results_get_package_array (results);
 	for (i=0; i<list->len; i++) {
 		item = g_ptr_array_index (list, i);
@@ -803,7 +803,7 @@ not_found:
 				g_print ("%s ", _("FAILED."));
 			}
 			/* TRANSLATORS: could not install, detailed error follows */
-			g_print (_("Could not find dependant packages: %s"), error->message);
+			g_print (_("Could not find dependent packages: %s"), error->message);
 			g_print ("\n");
 			g_error_free (error);
 
diff --git a/lib/packagekit-glib2/pk-client.c b/lib/packagekit-glib2/pk-client.c
index d5ba0d2..0bf2247 100644
--- a/lib/packagekit-glib2/pk-client.c
+++ b/lib/packagekit-glib2/pk-client.c
@@ -3193,7 +3193,7 @@ out:
  * pk_client_remove_packages_async:
  * @client: a valid #PkClient instance
  * @package_ids: (array zero-terminated=1): 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
+ * @allow_deps: if other dependent 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: (scope call): the function to run when the progress changes
diff --git a/lib/packagekit-glib2/pk-task-sync.c b/lib/packagekit-glib2/pk-task-sync.c
index a3486ef..ff04ac9 100644
--- a/lib/packagekit-glib2/pk-task-sync.c
+++ b/lib/packagekit-glib2/pk-task-sync.c
@@ -109,7 +109,7 @@ pk_task_update_system_sync (PkTask *task, GCancellable *cancellable,
  * pk_task_remove_packages_sync:
  * @task: a valid #PkTask instance
  * @package_ids: (array zero-terminated=1): 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
+ * @allow_deps: if other dependent 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
@@ -715,7 +715,7 @@ pk_task_get_updates_sync (PkTask *task, PkBitfield filters, GCancellable *cancel
  * @progress_user_data: data to pass to @progress_callback
  * @error: the #GError to store any failure, or %NULL
  *
- * Get the list of dependant packages.
+ * Get the list of dependent packages.
  *
  * Since: 0.6.5
  **/
commit e02a4083a9c242ccf891a81b307c140baa0ac033
Author: Richard Hughes <richard at hughsie.com>
Date:   Thu Nov 10 19:48:19 2011 +0000

    trivial: post release version bump

diff --git a/RELEASE b/RELEASE
index 7c71e6d..c5eb3c8 100644
--- a/RELEASE
+++ b/RELEASE
@@ -2,10 +2,10 @@ PackageKit Release Notes
 
 1. Write NEWS entries for PackageKit in the same format as usual.
 
-git shortlog PACKAGEKIT_0_7_0.. | grep -i -v trivial | grep -v Merge > NEWS.new
+git shortlog PACKAGEKIT_0_7_1.. | grep -i -v trivial | grep -v Merge > NEWS.new
 
 --------------------------------------------------------------------------------
-Version 0.7.1
+Version 0.7.2
 ~~~~~~~~~~~~~
 Released: 2011-xx-xx
 
@@ -30,8 +30,8 @@ tx pull --all
 
 4. Commit changes in PackageKit git:
 
-git commit -a -m "Release version 0.7.1"
-git tag -s -f -m "Release 0.7.1" PACKAGEKIT_0_7_1
+git commit -a -m "Release version 0.7.2"
+git tag -s -f -m "Release 0.7.2" PACKAGEKIT_0_7_2
 <gpg password>
 git push --tags
 git push
@@ -57,7 +57,7 @@ tx push --source
 10. Send an email to packagekit at lists.freedesktop.org
 
 =================================================
-PackageKit 0.7.1 released!
+PackageKit 0.7.2 released!
 
 Tarballs available here: http://www.packagekit.org/releases/
 
diff --git a/configure.ac b/configure.ac
index 3699c86..213d57f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,7 +2,7 @@
 
 m4_define([pk_major_version], [0])
 m4_define([pk_minor_version], [7])
-m4_define([pk_micro_version], [1])
+m4_define([pk_micro_version], [2])
 m4_define([pk_version],
           [pk_major_version.pk_minor_version.pk_micro_version])
 
commit 4c7cb9dc18dcb97de4433454e4d1539329b63fad
Author: Per Øyvind Karlsen <peroyvind at mandriva.org>
Date:   Tue May 24 15:25:18 2011 +0200

    implement 'Free' filter

diff --git a/backends/urpmi/helpers/urpmi-dispatched-backend.pl b/backends/urpmi/helpers/urpmi-dispatched-backend.pl
index 94d58d5..643e2c4 100755
--- a/backends/urpmi/helpers/urpmi-dispatched-backend.pl
+++ b/backends/urpmi/helpers/urpmi-dispatched-backend.pl
@@ -264,7 +264,7 @@ sub get_packages {
   if(not grep(/^${\FILTER_NOT_INSTALLED}$/, @filterstab)) {
     $db->traverse(sub {
         my ($pkg) = @_;
-        if(filter($urpm, $pkg, \@filterstab, {FILTER_DEVELOPMENT => 1, FILTER_GUI => 1, FILTER_SUPPORTED => 1})) {
+        if(filter($urpm, $pkg, \@filterstab, {FILTER_DEVELOPMENT => 1, FILTER_GUI => 1, FILTER_SUPPORTED => 1, FILTER_FREE => 1})) {
           pk_print_package(INFO_INSTALLED, get_package_id($pkg), ensure_utf8($pkg->summary));
         }
       });
@@ -274,7 +274,7 @@ sub get_packages {
   if(not grep(/^${\FILTER_INSTALLED}$/, @filterstab)) {
     foreach my $pkg(@{$urpm->{depslist}}) {
       if($pkg->flag_upgrade) {
-        if(filter($urpm, $pkg, \@filterstab, {FILTER_DEVELOPMENT => 1, FILTER_GUI => 1, FILTER_SUPPORTED => 1})) {
+        if(filter($urpm, $pkg, \@filterstab, {FILTER_DEVELOPMENT => 1, FILTER_GUI => 1, FILTER_SUPPORTED => 1, FILTER_FREE => 1})) {
           pk_print_package(INFO_AVAILABLE, get_package_id($pkg), ensure_utf8($pkg->summary));
         }
       }  
@@ -311,7 +311,7 @@ sub get_requires {
   my @requires = perform_requires_search($urpm, \@pkgnames, $recursive_option);
   
   foreach(@requires) {
-    if(filter($urpm, $_, \@filterstab, { FILTER_GUI => 1, FILTER_DEVELOPMENT => 1, FILTER_SUPPORTED => 1 })) {
+    if(filter($urpm, $_, \@filterstab, { FILTER_GUI => 1, FILTER_DEVELOPMENT => 1, FILTER_SUPPORTED => 1, FILTER_FREE => 1})) {
       if(is_package_installed($_)) {
         grep(/^${\FILTER_NOT_INSTALLED}$/, @filterstab) or pk_print_package(INFO_INSTALLED, get_package_id($_), $_->summary);
       }
@@ -410,7 +410,7 @@ sub search_name {
   if(not grep(/^${\FILTER_NOT_INSTALLED}$/, @filterstab)) {
     $db->traverse(sub {
         my ($pkg) = @_;
-        if(filter($urpm, $pkg, \@filterstab, {FILTER_DEVELOPMENT => 1, FILTER_GUI => 1, FILTER_SUPPORTED => 1})) {
+        if(filter($urpm, $pkg, \@filterstab, {FILTER_DEVELOPMENT => 1, FILTER_GUI => 1, FILTER_SUPPORTED => 1, FILTER_FREE => 1})) {
           if( (!$basename_option && $pkg->name =~ /$search_term/)
             || $pkg->name =~ /^$search_term$/ ) {
             pk_print_package(INFO_INSTALLED, get_package_id($pkg), ensure_utf8($pkg->summary));
@@ -425,7 +425,7 @@ sub search_name {
     and return;
   
   foreach my $pkg(@{$urpm->{depslist}}) {
-    if($pkg->flag_upgrade && filter($urpm, $pkg, \@filterstab, {FILTER_DEVELOPMENT => 1, FILTER_GUI => 1, FILTER_SUPPORTED => 1})) {
+    if($pkg->flag_upgrade && filter($urpm, $pkg, \@filterstab, {FILTER_DEVELOPMENT => 1, FILTER_GUI => 1, FILTER_SUPPORTED => 1, FILTER_FREE => 1})) {
       if( (!$basename_option && $pkg->name =~ /$search_term/)
         || $pkg->name =~ /^$search_term$/ ) {
         pk_print_package(INFO_AVAILABLE, get_package_id($pkg), ensure_utf8($pkg->summary));
@@ -565,7 +565,7 @@ sub resolve {
     ($_ && $pkg) or next;
 
     # We exit the script if found package does not match with specified filters
-    filter($urpm, $pkg, \@filters, {FILTER_DEVELOPMENT => 1, FILTER_GUI => 1, FILTER_SUPPORTED => 1}) or next;
+    filter($urpm, $pkg, \@filters, {FILTER_DEVELOPMENT => 1, FILTER_GUI => 1, FILTER_SUPPORTED => 1, FILTER_FREE => 1}) or next;
 
     if(is_package_installed($pkg)) {
       grep(/^${\FILTER_NOT_INSTALLED}$/, @filters) and next;
@@ -593,7 +593,7 @@ sub search_details {
   if(not grep(/^${\FILTER_NOT_INSTALLED}$/, @filters)) {
     $db->traverse(sub {
         my ($pkg) = @_;
-        if(filter($urpm, $pkg, \@filters, {FILTER_DEVELOPMENT => 1, FILTER_GUI => 1, FILTER_SUPPORTED => 1})) {
+        if(filter($urpm, $pkg, \@filters, {FILTER_DEVELOPMENT => 1, FILTER_GUI => 1, FILTER_SUPPORTED => 1, FILTER_FREE => 1})) {
           if($pkg->name =~ /$search_term/ || $pkg->summary =~ /$search_term/ || $pkg->url =~ /$search_term/) {
             pk_print_package(INFO_INSTALLED, get_package_id($pkg), ensure_utf8($pkg->summary));
           }
@@ -604,7 +604,7 @@ sub search_details {
   if(not grep(/^${\FILTER_INSTALLED}$/, @filters)) {
     foreach my $pkg(@{$urpm->{depslist}}) {
       if($pkg->flag_upgrade) {
-        if(filter($urpm, $pkg, \@filters, {FILTER_DEVELOPMENT => 1, FILTER_GUI => 1, FILTER_SUPPORTED => 1})) {
+        if(filter($urpm, $pkg, \@filters, {FILTER_DEVELOPMENT => 1, FILTER_GUI => 1, FILTER_SUPPORTED => 1, FILTER_FREE => 1})) {
           if($pkg->name =~ /$search_term/ || $pkg->summary =~ /$search_term/ || $pkg->url =~ /$search_term/) {
             pk_print_package(INFO_AVAILABLE, get_package_id($pkg), ensure_utf8($pkg->summary));
           }
@@ -629,7 +629,7 @@ sub search_file {
 
   foreach(keys %requested) {
     my $p = @{$urpm->{depslist}}[$_];
-    if(filter($urpm, $p, \@filters, { FILTER_INSTALLED => 1, FILTER_DEVELOPMENT=> 1, FILTER_GUI => 1, FILTER_SUPPORTED => 1})) {
+    if(filter($urpm, $p, \@filters, { FILTER_INSTALLED => 1, FILTER_DEVELOPMENT=> 1, FILTER_GUI => 1, FILTER_SUPPORTED => 1, FILTER_FREE => 1})) {
       my $version = find_installed_fullname($p);
       if(is_package_installed($p)) {
         pk_print_package(INFO_INSTALLED, get_package_id($p), ensure_utf8($p->summary));
@@ -656,7 +656,7 @@ sub search_group {
   if(not grep(/^${\FILTER_NOT_INSTALLED}$/, @filters)) {
     $db->traverse(sub {
         my ($pkg) = @_;
-        if(filter($urpm, $pkg, \@filters, {FILTER_DEVELOPMENT => 1, FILTER_GUI => 1, FILTER_SUPPORTED => 1})) {
+        if(filter($urpm, $pkg, \@filters, {FILTER_DEVELOPMENT => 1, FILTER_GUI => 1, FILTER_SUPPORTED => 1, FILTER_FREE => 1})) {
           if(package_belongs_to_pk_group($pkg, $pk_group)) {
             pk_print_package(INFO_INSTALLED, get_package_id($pkg), ensure_utf8($pkg->summary));
           }
@@ -667,7 +667,7 @@ sub search_group {
   if(not grep(/^${\FILTER_INSTALLED}$/, @filters)) {
     foreach my $pkg(@{$urpm->{depslist}}) {
       if($pkg->flag_upgrade) {
-        if(filter($urpm, $pkg, \@filters, {FILTER_DEVELOPMENT => 1, FILTER_GUI => 1, FILTER_SUPPORTED => 1})) {
+        if(filter($urpm, $pkg, \@filters, {FILTER_DEVELOPMENT => 1, FILTER_GUI => 1, FILTER_SUPPORTED => 1, FILTER_FREE => 1})) {
           if(package_belongs_to_pk_group($pkg, $pk_group)) {
             pk_print_package(INFO_AVAILABLE, get_package_id($pkg), ensure_utf8($pkg->summary));
           }
diff --git a/backends/urpmi/helpers/urpmi_backend/filters.pm b/backends/urpmi/helpers/urpmi_backend/filters.pm
index 93ba34e..fccc3d3 100644
--- a/backends/urpmi/helpers/urpmi_backend/filters.pm
+++ b/backends/urpmi/helpers/urpmi_backend/filters.pm
@@ -47,6 +47,11 @@ sub filter {
         return 0 if not filter_supported($urpm, $pkg, $filter);
       }
     }
+    elsif($filter eq FILTER_FREE || $filter eq FILTER_NOT_FREE) {
+      if($e_filters{FILTER_FREE}) {
+        return 0 if not filter_free($urpm, $pkg, $filter);
+      }
+    }
   }
   return 1;
 }
@@ -111,4 +116,24 @@ sub filter_supported {
   }
   return 0;
 }
+
+sub filter_free {
+  my ($urpm, $pkg, $filter) = @_;
+  my $media = pkg2medium($pkg, $urpm);
+  return 0 unless defined($media);
+
+  my $medianame = $media->{name};
+  # FIXME: matching against media name is certainly not optimal,
+  #        better heuristics needed...
+  my $free = !($medianame =~ /non-free/i);
+
+  if($filter eq FILTER_FREE && $free) {
+    return 1;
+  }
+  if($filter eq FILTER_NOT_FREE && !$free) {
+    return 1;
+  }
+  return 0;
+}
+
 1;
diff --git a/backends/urpmi/pk-backend-urpmi.c b/backends/urpmi/pk-backend-urpmi.c
index 889b1e9..62a2800 100644
--- a/backends/urpmi/pk-backend-urpmi.c
+++ b/backends/urpmi/pk-backend-urpmi.c
@@ -96,6 +96,7 @@ backend_get_filters (PkBackend *backend)
 		PK_FILTER_ENUM_INSTALLED,
 		PK_FILTER_ENUM_DEVELOPMENT,
 		PK_FILTER_ENUM_SUPPORTED,
+		PK_FILTER_ENUM_FREE,
 		-1);
 }
 
commit abe0967ae35aca7e1309a2903d7c44040e3ebb5b
Author: Per Øyvind Karlsen <peroyvind at mandriva.org>
Date:   Tue May 24 15:02:22 2011 +0200

    use urpm2deium from tools & check if undefined or not..

diff --git a/backends/urpmi/helpers/urpmi_backend/filters.pm b/backends/urpmi/helpers/urpmi_backend/filters.pm
index d0563b0..93ba34e 100644
--- a/backends/urpmi/helpers/urpmi_backend/filters.pm
+++ b/backends/urpmi/helpers/urpmi_backend/filters.pm
@@ -95,7 +95,10 @@ sub filter_gui {
 
 sub filter_supported {
   my ($urpm, $pkg, $filter) = @_;
-  my $medianame = URPM::pkg2media($urpm->{media}, $pkg)->{name};
+  my $media = pkg2medium($pkg, $urpm);
+  return 0 unless defined($media);
+
+  my $medianame = $media->{name};
   # FIXME: matching against media name is certainly not optimal,
   #        better heuristics needed...
   my $supported = ($medianame =~ /^main/i);
commit 7bed77dc9765b6ce7ade9c35111981845f7c31d0
Author: Per Øyvind Karlsen <peroyvind at mandriva.org>
Date:   Tue May 24 15:01:37 2011 +0200

    import urpm::msg for N()

diff --git a/backends/urpmi/helpers/urpmi_backend/tools.pm b/backends/urpmi/helpers/urpmi_backend/tools.pm
index cdb7736..35be13c 100644
--- a/backends/urpmi/helpers/urpmi_backend/tools.pm
+++ b/backends/urpmi/helpers/urpmi_backend/tools.pm
@@ -15,6 +15,7 @@ use strict;
 
 use URPM;
 use urpmi_backend::open_db;
+use urpm::msg;
 
 use Exporter;
 our @ISA = qw(Exporter);
commit 4a6a4d89d147eceff49c5049d9b323d431810abc
Author: Per Øyvind Karlsen <peroyvind at mandriva.org>
Date:   Tue May 24 14:44:13 2011 +0200

    traverse database by name rather than nvra

diff --git a/backends/urpmi/helpers/urpmi_backend/tools.pm b/backends/urpmi/helpers/urpmi_backend/tools.pm
index 00106a2..cdb7736 100644
--- a/backends/urpmi/helpers/urpmi_backend/tools.pm
+++ b/backends/urpmi/helpers/urpmi_backend/tools.pm
@@ -75,9 +75,9 @@ sub ensure_utf8 {
 
 sub find_installed_fullname {
   my ($p) = @_;
-  my @version;
-  URPM::DB::open()->traverse_tag('nvra', [ $p->fullname ], sub { push @version, scalar($_[0]->fullname) });
-  @version ? join(',', sort @version) : "";
+  my @fullname;
+  URPM::DB::open()->traverse_tag('name', [ $p->name ], sub { push @fullname, scalar($_[0]->fullname) });
+  @fullname ? join(',', sort @fullname) : "";
 }
 
 sub is_package_installed {
commit 9c78c0b4a1944344b187729d8fe3e95faed8d3c3
Author: Per Øyvind Karlsen <peroyvind at mandriva.org>
Date:   Tue May 24 14:36:50 2011 +0200

    put 'supported' filter to use..

diff --git a/backends/urpmi/helpers/urpmi-dispatched-backend.pl b/backends/urpmi/helpers/urpmi-dispatched-backend.pl
index 074ba94..94d58d5 100755
--- a/backends/urpmi/helpers/urpmi-dispatched-backend.pl
+++ b/backends/urpmi/helpers/urpmi-dispatched-backend.pl
@@ -264,7 +264,7 @@ sub get_packages {
   if(not grep(/^${\FILTER_NOT_INSTALLED}$/, @filterstab)) {
     $db->traverse(sub {
         my ($pkg) = @_;
-        if(filter($urpm, $pkg, \@filterstab, {FILTER_DEVELOPMENT => 1, FILTER_GUI => 1})) {
+        if(filter($urpm, $pkg, \@filterstab, {FILTER_DEVELOPMENT => 1, FILTER_GUI => 1, FILTER_SUPPORTED => 1})) {
           pk_print_package(INFO_INSTALLED, get_package_id($pkg), ensure_utf8($pkg->summary));
         }
       });
@@ -274,7 +274,7 @@ sub get_packages {
   if(not grep(/^${\FILTER_INSTALLED}$/, @filterstab)) {
     foreach my $pkg(@{$urpm->{depslist}}) {
       if($pkg->flag_upgrade) {
-        if(filter($urpm, $pkg, \@filterstab, {FILTER_DEVELOPMENT => 1, FILTER_GUI => 1})) {
+        if(filter($urpm, $pkg, \@filterstab, {FILTER_DEVELOPMENT => 1, FILTER_GUI => 1, FILTER_SUPPORTED => 1})) {
           pk_print_package(INFO_AVAILABLE, get_package_id($pkg), ensure_utf8($pkg->summary));
         }
       }  
@@ -311,8 +311,8 @@ sub get_requires {
   my @requires = perform_requires_search($urpm, \@pkgnames, $recursive_option);
   
   foreach(@requires) {
-    if(filter($urpm, $_, \@filterstab, { FILTER_GUI => 1, FILTER_DEVELOPMENT => 1 })) {
-      if(is_package_installed($urpm, $_)) {
+    if(filter($urpm, $_, \@filterstab, { FILTER_GUI => 1, FILTER_DEVELOPMENT => 1, FILTER_SUPPORTED => 1 })) {
+      if(is_package_installed($_)) {
         grep(/^${\FILTER_NOT_INSTALLED}$/, @filterstab) or pk_print_package(INFO_INSTALLED, get_package_id($_), $_->summary);
       }
       else {
@@ -565,9 +565,9 @@ sub resolve {
     ($_ && $pkg) or next;
 
     # We exit the script if found package does not match with specified filters
-    filter($urpm, $pkg, \@filters, {FILTER_DEVELOPMENT => 1, FILTER_GUI => 1}) or next;
+    filter($urpm, $pkg, \@filters, {FILTER_DEVELOPMENT => 1, FILTER_GUI => 1, FILTER_SUPPORTED => 1}) or next;
 
-    if(is_package_installed($urpm, $pkg)) {
+    if(is_package_installed($pkg)) {
       grep(/^${\FILTER_NOT_INSTALLED}$/, @filters) and next;
       pk_print_package(INFO_INSTALLED, get_package_id($pkg), $pkg->summary);
     }
@@ -593,7 +593,7 @@ sub search_details {
   if(not grep(/^${\FILTER_NOT_INSTALLED}$/, @filters)) {
     $db->traverse(sub {
         my ($pkg) = @_;
-        if(filter($urpm, $pkg, \@filters, {FILTER_DEVELOPMENT => 1, FILTER_GUI => 1})) {
+        if(filter($urpm, $pkg, \@filters, {FILTER_DEVELOPMENT => 1, FILTER_GUI => 1, FILTER_SUPPORTED => 1})) {
           if($pkg->name =~ /$search_term/ || $pkg->summary =~ /$search_term/ || $pkg->url =~ /$search_term/) {
             pk_print_package(INFO_INSTALLED, get_package_id($pkg), ensure_utf8($pkg->summary));
           }
@@ -604,7 +604,7 @@ sub search_details {
   if(not grep(/^${\FILTER_INSTALLED}$/, @filters)) {
     foreach my $pkg(@{$urpm->{depslist}}) {
       if($pkg->flag_upgrade) {
-        if(filter($urpm, $pkg, \@filters, {FILTER_DEVELOPMENT => 1, FILTER_GUI => 1})) {
+        if(filter($urpm, $pkg, \@filters, {FILTER_DEVELOPMENT => 1, FILTER_GUI => 1, FILTER_SUPPORTED => 1})) {
           if($pkg->name =~ /$search_term/ || $pkg->summary =~ /$search_term/ || $pkg->url =~ /$search_term/) {
             pk_print_package(INFO_AVAILABLE, get_package_id($pkg), ensure_utf8($pkg->summary));
           }
@@ -629,9 +629,9 @@ sub search_file {
 
   foreach(keys %requested) {
     my $p = @{$urpm->{depslist}}[$_];
-    if(filter($urpm, $p, \@filters, { FILTER_INSTALLED => 1, FILTER_DEVELOPMENT=> 1, FILTER_GUI => 1})) {
+    if(filter($urpm, $p, \@filters, { FILTER_INSTALLED => 1, FILTER_DEVELOPMENT=> 1, FILTER_GUI => 1, FILTER_SUPPORTED => 1})) {
       my $version = find_installed_fullname($p);
-      if(is_package_installed($urpm, $p)) {
+      if(is_package_installed($p)) {
         pk_print_package(INFO_INSTALLED, get_package_id($p), ensure_utf8($p->summary));
       }
       else {
@@ -656,7 +656,7 @@ sub search_group {
   if(not grep(/^${\FILTER_NOT_INSTALLED}$/, @filters)) {
     $db->traverse(sub {
         my ($pkg) = @_;
-        if(filter($urpm, $pkg, \@filters, {FILTER_DEVELOPMENT => 1, FILTER_GUI => 1})) {
+        if(filter($urpm, $pkg, \@filters, {FILTER_DEVELOPMENT => 1, FILTER_GUI => 1, FILTER_SUPPORTED => 1})) {
           if(package_belongs_to_pk_group($pkg, $pk_group)) {
             pk_print_package(INFO_INSTALLED, get_package_id($pkg), ensure_utf8($pkg->summary));
           }
@@ -667,7 +667,7 @@ sub search_group {
   if(not grep(/^${\FILTER_INSTALLED}$/, @filters)) {
     foreach my $pkg(@{$urpm->{depslist}}) {
       if($pkg->flag_upgrade) {
-        if(filter($urpm, $pkg, \@filters, {FILTER_DEVELOPMENT => 1, FILTER_GUI => 1})) {
+        if(filter($urpm, $pkg, \@filters, {FILTER_DEVELOPMENT => 1, FILTER_GUI => 1, FILTER_SUPPORTED => 1})) {
           if(package_belongs_to_pk_group($pkg, $pk_group)) {
             pk_print_package(INFO_AVAILABLE, get_package_id($pkg), ensure_utf8($pkg->summary));
           }
@@ -764,7 +764,7 @@ sub what_provides {
   
   foreach(@prov) {
     my $pkg = $_;
-    if(is_package_installed($urpm, $pkg)) {
+    if(is_package_installed($pkg)) {
       grep(/^${\FILTER_NOT_INSTALLED}$/, @filterstab) and next;
       pk_print_package(INFO_INSTALLED, get_package_id($pkg), $pkg->summary);
     }
commit 2155b677925357ada0d393e809735edd5a3e0c98
Author: Per Øyvind Karlsen <peroyvind at mandriva.org>
Date:   Tue May 24 14:36:38 2011 +0200

    missing part of previous commit..

diff --git a/backends/urpmi/helpers/urpmi_backend/filters.pm b/backends/urpmi/helpers/urpmi_backend/filters.pm
index bbcf1f1..d0563b0 100644
--- a/backends/urpmi/helpers/urpmi_backend/filters.pm
+++ b/backends/urpmi/helpers/urpmi_backend/filters.pm
@@ -55,7 +55,7 @@ sub filter_installed {
   my ($urpm, $pkg, $filter) = @_;
   my $installed;
 
-  $installed = 1 if(is_package_installed($urpm, $pkg));
+  $installed = 1 if(is_package_installed($pkg));
   if($filter eq FILTER_INSTALLED && $installed) {
     return 1;
   }
diff --git a/backends/urpmi/helpers/urpmi_backend/tools.pm b/backends/urpmi/helpers/urpmi_backend/tools.pm
index 99bb5cf..00106a2 100644
--- a/backends/urpmi/helpers/urpmi_backend/tools.pm
+++ b/backends/urpmi/helpers/urpmi_backend/tools.pm
@@ -81,9 +81,8 @@ sub find_installed_fullname {
 }
 
 sub is_package_installed {
-    my ($urpm, $pkg) = @_;
-    my $db = urpm::db_open_or_die_($urpm);
-    return URPM::is_package_installed($db, $pkg);
+    my ($pkg) = @_;
+    return URPM::DB::open()->is_package_installed($pkg);
 }
 
 sub get_package_id {
@@ -141,7 +140,7 @@ sub get_installed_fullname {
   my @depslist = @{$urpm->{depslist}};
   my $pkgname = $pkg->name;
   foreach $_ (@depslist) {
-    if($_->name =~ /^$pkgname$/ && is_package_installed($urpm, $_)) {
+    if($_->name =~ /^$pkgname$/ && is_package_installed($_)) {
       return $_;
     }
   }
commit 494ae6f5f4d19a4eb23cc6d334ef105c5ecccc53
Author: Per Øyvind Karlsen <peroyvind at mandriva.org>
Date:   Tue May 24 14:28:43 2011 +0200

    implement is_package_installed() which uses URPM:is_package_installed()

diff --git a/backends/urpmi/helpers/urpmi-dispatched-backend.pl b/backends/urpmi/helpers/urpmi-dispatched-backend.pl
index c738494..074ba94 100755
--- a/backends/urpmi/helpers/urpmi-dispatched-backend.pl
+++ b/backends/urpmi/helpers/urpmi-dispatched-backend.pl
@@ -312,7 +312,7 @@ sub get_requires {
   
   foreach(@requires) {
     if(filter($urpm, $_, \@filterstab, { FILTER_GUI => 1, FILTER_DEVELOPMENT => 1 })) {
-      if(package_fullname_is_installed($_)) {
+      if(is_package_installed($urpm, $_)) {
         grep(/^${\FILTER_NOT_INSTALLED}$/, @filterstab) or pk_print_package(INFO_INSTALLED, get_package_id($_), $_->summary);
       }
       else {
@@ -567,7 +567,7 @@ sub resolve {
     # We exit the script if found package does not match with specified filters
     filter($urpm, $pkg, \@filters, {FILTER_DEVELOPMENT => 1, FILTER_GUI => 1}) or next;
 
-    if(package_fullname_is_installed($pkg)) {
+    if(is_package_installed($urpm, $pkg)) {
       grep(/^${\FILTER_NOT_INSTALLED}$/, @filters) and next;
       pk_print_package(INFO_INSTALLED, get_package_id($pkg), $pkg->summary);
     }
@@ -631,7 +631,7 @@ sub search_file {
     my $p = @{$urpm->{depslist}}[$_];
     if(filter($urpm, $p, \@filters, { FILTER_INSTALLED => 1, FILTER_DEVELOPMENT=> 1, FILTER_GUI => 1})) {
       my $version = find_installed_fullname($p);
-      if(package_fullname_is_installed($p)) {
+      if(is_package_installed($urpm, $p)) {
         pk_print_package(INFO_INSTALLED, get_package_id($p), ensure_utf8($p->summary));
       }
       else {
@@ -764,7 +764,7 @@ sub what_provides {
   
   foreach(@prov) {
     my $pkg = $_;
-    if(package_fullname_is_installed($pkg)) {
+    if(is_package_installed($urpm, $pkg)) {
       grep(/^${\FILTER_NOT_INSTALLED}$/, @filterstab) and next;
       pk_print_package(INFO_INSTALLED, get_package_id($pkg), $pkg->summary);
     }
diff --git a/backends/urpmi/helpers/urpmi_backend/filters.pm b/backends/urpmi/helpers/urpmi_backend/filters.pm
index fcefc9d..bbcf1f1 100644
--- a/backends/urpmi/helpers/urpmi_backend/filters.pm
+++ b/backends/urpmi/helpers/urpmi_backend/filters.pm
@@ -54,7 +54,8 @@ sub filter {
 sub filter_installed {
   my ($urpm, $pkg, $filter) = @_;
   my $installed;
-  $installed = 1 if(find_installed_fullname($pkg));
+
+  $installed = 1 if(is_package_installed($urpm, $pkg));
   if($filter eq FILTER_INSTALLED && $installed) {
     return 1;
   }
diff --git a/backends/urpmi/helpers/urpmi_backend/tools.pm b/backends/urpmi/helpers/urpmi_backend/tools.pm
index db3d650..99bb5cf 100644
--- a/backends/urpmi/helpers/urpmi_backend/tools.pm
+++ b/backends/urpmi/helpers/urpmi_backend/tools.pm
@@ -23,12 +23,12 @@ our @EXPORT = qw(
   rpm_description 
   urpm_name 
   find_installed_fullname 
+  is_package_installed
   get_package_id 
   ensure_utf8 
   pkg2medium 
   fullname_to_package_id
   get_package_by_package_id
-  package_fullname_is_installed
   get_package_upgrade
   get_installed_fullname
   get_installed_fullname_pkid
@@ -80,6 +80,12 @@ sub find_installed_fullname {
   @version ? join(',', sort @version) : "";
 }
 
+sub is_package_installed {
+    my ($urpm, $pkg) = @_;
+    my $db = urpm::db_open_or_die_($urpm);
+    return URPM::is_package_installed($db, $pkg);
+}
+
 sub get_package_id {
   my ($pkg) = @_;
   return $pkg->name.";".$pkg->version."-".$pkg->release.";".$pkg->arch.";mandriva";
@@ -117,11 +123,6 @@ sub get_package_by_package_id {
   return;
 }
 
-sub package_fullname_is_installed {
-  my ($pkg) = @_;
-  return $pkg->fullname eq find_installed_fullname($pkg);
-}
-
 sub get_package_upgrade {
   my ($urpm, $pkg) = @_;
   my $db = open_rpm_db();
@@ -140,7 +141,7 @@ sub get_installed_fullname {
   my @depslist = @{$urpm->{depslist}};
   my $pkgname = $pkg->name;
   foreach $_ (@depslist) {
-    if($_->name =~ /^$pkgname$/ && package_fullname_is_installed($_)) {
+    if($_->name =~ /^$pkgname$/ && is_package_installed($urpm, $_)) {
       return $_;
     }
   }
commit d797385637f6166afe7b078ed80660f1253de78f
Author: Per Øyvind Karlsen <peroyvind at mandriva.org>
Date:   Tue May 24 14:17:33 2011 +0200

    minor cleanup..

diff --git a/backends/urpmi/helpers/urpmi_backend/filters.pm b/backends/urpmi/helpers/urpmi_backend/filters.pm
index 75378e5..fcefc9d 100644
--- a/backends/urpmi/helpers/urpmi_backend/filters.pm
+++ b/backends/urpmi/helpers/urpmi_backend/filters.pm
@@ -94,11 +94,10 @@ sub filter_gui {
 
 sub filter_supported {
   my ($urpm, $pkg, $filter) = @_;
-  my $pkgname = $pkg->name;
-  my $media = URPM::pkg2media($urpm->{media}, $pkg);
+  my $medianame = URPM::pkg2media($urpm->{media}, $pkg)->{name};
   # FIXME: matching against media name is certainly not optimal,
   #        better heuristics needed...
-  my $supported = ($media->{name} =~ /^main/i);
+  my $supported = ($medianame =~ /^main/i);
 
   if($filter eq FILTER_SUPPORTED && $supported) {
     return 1;
commit 188c60b8153fcc6bb8e8366336a91f8145a92433
Author: Per Øyvind Karlsen <peroyvind at mandriva.org>
Date:   Tue May 24 14:16:13 2011 +0200

    implement a 'Supported' filter

diff --git a/backends/urpmi/helpers/urpmi-dispatched-backend.pl b/backends/urpmi/helpers/urpmi-dispatched-backend.pl
index a532a86..c738494 100755
--- a/backends/urpmi/helpers/urpmi-dispatched-backend.pl
+++ b/backends/urpmi/helpers/urpmi-dispatched-backend.pl
@@ -264,7 +264,7 @@ sub get_packages {
   if(not grep(/^${\FILTER_NOT_INSTALLED}$/, @filterstab)) {
     $db->traverse(sub {
         my ($pkg) = @_;
-        if(filter($pkg, \@filterstab, {FILTER_DEVELOPMENT => 1, FILTER_GUI => 1})) {
+        if(filter($urpm, $pkg, \@filterstab, {FILTER_DEVELOPMENT => 1, FILTER_GUI => 1})) {
           pk_print_package(INFO_INSTALLED, get_package_id($pkg), ensure_utf8($pkg->summary));
         }
       });
@@ -274,7 +274,7 @@ sub get_packages {
   if(not grep(/^${\FILTER_INSTALLED}$/, @filterstab)) {
     foreach my $pkg(@{$urpm->{depslist}}) {
       if($pkg->flag_upgrade) {
-        if(filter($pkg, \@filterstab, {FILTER_DEVELOPMENT => 1, FILTER_GUI => 1})) {
+        if(filter($urpm, $pkg, \@filterstab, {FILTER_DEVELOPMENT => 1, FILTER_GUI => 1})) {
           pk_print_package(INFO_AVAILABLE, get_package_id($pkg), ensure_utf8($pkg->summary));
         }
       }  
@@ -311,7 +311,7 @@ sub get_requires {
   my @requires = perform_requires_search($urpm, \@pkgnames, $recursive_option);
   
   foreach(@requires) {
-    if(filter($_, \@filterstab, { FILTER_GUI => 1, FILTER_DEVELOPMENT => 1 })) {
+    if(filter($urpm, $_, \@filterstab, { FILTER_GUI => 1, FILTER_DEVELOPMENT => 1 })) {
       if(package_fullname_is_installed($_)) {
         grep(/^${\FILTER_NOT_INSTALLED}$/, @filterstab) or pk_print_package(INFO_INSTALLED, get_package_id($_), $_->summary);
       }
@@ -410,7 +410,7 @@ sub search_name {
   if(not grep(/^${\FILTER_NOT_INSTALLED}$/, @filterstab)) {
     $db->traverse(sub {
         my ($pkg) = @_;
-        if(filter($pkg, \@filterstab, {FILTER_DEVELOPMENT => 1, FILTER_GUI => 1})) {
+        if(filter($urpm, $pkg, \@filterstab, {FILTER_DEVELOPMENT => 1, FILTER_GUI => 1, FILTER_SUPPORTED => 1})) {
           if( (!$basename_option && $pkg->name =~ /$search_term/)
             || $pkg->name =~ /^$search_term$/ ) {
             pk_print_package(INFO_INSTALLED, get_package_id($pkg), ensure_utf8($pkg->summary));
@@ -425,7 +425,7 @@ sub search_name {
     and return;
   
   foreach my $pkg(@{$urpm->{depslist}}) {
-    if($pkg->flag_upgrade && filter($pkg, \@filterstab, {FILTER_DEVELOPMENT => 1, FILTER_GUI => 1})) {
+    if($pkg->flag_upgrade && filter($urpm, $pkg, \@filterstab, {FILTER_DEVELOPMENT => 1, FILTER_GUI => 1, FILTER_SUPPORTED => 1})) {
       if( (!$basename_option && $pkg->name =~ /$search_term/)
         || $pkg->name =~ /^$search_term$/ ) {
         pk_print_package(INFO_AVAILABLE, get_package_id($pkg), ensure_utf8($pkg->summary));
@@ -565,7 +565,7 @@ sub resolve {
     ($_ && $pkg) or next;
 
     # We exit the script if found package does not match with specified filters
-    filter($pkg, \@filters, {FILTER_DEVELOPMENT => 1, FILTER_GUI => 1}) or next;
+    filter($urpm, $pkg, \@filters, {FILTER_DEVELOPMENT => 1, FILTER_GUI => 1}) or next;
 
     if(package_fullname_is_installed($pkg)) {
       grep(/^${\FILTER_NOT_INSTALLED}$/, @filters) and next;
@@ -593,7 +593,7 @@ sub search_details {
   if(not grep(/^${\FILTER_NOT_INSTALLED}$/, @filters)) {
     $db->traverse(sub {
         my ($pkg) = @_;
-        if(filter($pkg, \@filters, {FILTER_DEVELOPMENT => 1, FILTER_GUI => 1})) {
+        if(filter($urpm, $pkg, \@filters, {FILTER_DEVELOPMENT => 1, FILTER_GUI => 1})) {
           if($pkg->name =~ /$search_term/ || $pkg->summary =~ /$search_term/ || $pkg->url =~ /$search_term/) {
             pk_print_package(INFO_INSTALLED, get_package_id($pkg), ensure_utf8($pkg->summary));
           }
@@ -604,7 +604,7 @@ sub search_details {
   if(not grep(/^${\FILTER_INSTALLED}$/, @filters)) {
     foreach my $pkg(@{$urpm->{depslist}}) {
       if($pkg->flag_upgrade) {
-        if(filter($pkg, \@filters, {FILTER_DEVELOPMENT => 1, FILTER_GUI => 1})) {
+        if(filter($urpm, $pkg, \@filters, {FILTER_DEVELOPMENT => 1, FILTER_GUI => 1})) {
           if($pkg->name =~ /$search_term/ || $pkg->summary =~ /$search_term/ || $pkg->url =~ /$search_term/) {
             pk_print_package(INFO_AVAILABLE, get_package_id($pkg), ensure_utf8($pkg->summary));
           }
@@ -629,7 +629,7 @@ sub search_file {
 
   foreach(keys %requested) {
     my $p = @{$urpm->{depslist}}[$_];
-    if(filter($p, \@filters, { FILTER_INSTALLED => 1, FILTER_DEVELOPMENT=> 1, FILTER_GUI => 1})) {
+    if(filter($urpm, $p, \@filters, { FILTER_INSTALLED => 1, FILTER_DEVELOPMENT=> 1, FILTER_GUI => 1})) {
       my $version = find_installed_fullname($p);
       if(package_fullname_is_installed($p)) {
         pk_print_package(INFO_INSTALLED, get_package_id($p), ensure_utf8($p->summary));
@@ -656,7 +656,7 @@ sub search_group {
   if(not grep(/^${\FILTER_NOT_INSTALLED}$/, @filters)) {
     $db->traverse(sub {
         my ($pkg) = @_;
-        if(filter($pkg, \@filters, {FILTER_DEVELOPMENT => 1, FILTER_GUI => 1})) {
+        if(filter($urpm, $pkg, \@filters, {FILTER_DEVELOPMENT => 1, FILTER_GUI => 1})) {
           if(package_belongs_to_pk_group($pkg, $pk_group)) {
             pk_print_package(INFO_INSTALLED, get_package_id($pkg), ensure_utf8($pkg->summary));
           }
@@ -667,7 +667,7 @@ sub search_group {
   if(not grep(/^${\FILTER_INSTALLED}$/, @filters)) {
     foreach my $pkg(@{$urpm->{depslist}}) {
       if($pkg->flag_upgrade) {
-        if(filter($pkg, \@filters, {FILTER_DEVELOPMENT => 1, FILTER_GUI => 1})) {
+        if(filter($urpm, $pkg, \@filters, {FILTER_DEVELOPMENT => 1, FILTER_GUI => 1})) {
           if(package_belongs_to_pk_group($pkg, $pk_group)) {
             pk_print_package(INFO_AVAILABLE, get_package_id($pkg), ensure_utf8($pkg->summary));
           }
diff --git a/backends/urpmi/helpers/urpmi_backend/filters.pm b/backends/urpmi/helpers/urpmi_backend/filters.pm
index a0094dd..75378e5 100644
--- a/backends/urpmi/helpers/urpmi_backend/filters.pm
+++ b/backends/urpmi/helpers/urpmi_backend/filters.pm
@@ -22,24 +22,29 @@ our @EXPORT = qw(filter);
 my @gui_pkgs = map { chomp; $_ } cat_('/usr/share/rpmdrake/gui.lst');
 
 sub filter {
-  my ($pkg, $filters, $enabled_filters) = @_;
+  my ($urpm, $pkg, $filters, $enabled_filters) = @_;
 
   my %e_filters = %{$enabled_filters};
 
   foreach my $filter (@{$filters}) {
     if($filter eq FILTER_INSTALLED || $filter eq FILTER_NOT_INSTALLED) {
       if($e_filters{FILTER_INSTALLED}) {
-        return 0 if not filter_installed($pkg, $filter);
+        return 0 if not filter_installed($urpm, $pkg, $filter);
       }
     }
     elsif($filter eq FILTER_DEVELOPMENT || $filter eq FILTER_NOT_DEVELOPMENT) {
       if($e_filters{FILTER_DEVELOPMENT}) {
-        return 0 if not filter_devel($pkg, $filter);
+        return 0 if not filter_devel($urpm, $pkg, $filter);
       }
     }
     elsif($filter eq FILTER_GUI || $filter eq FILTER_NOT_GUI) {
       if($e_filters{FILTER_GUI}) {
-        return 0 if not filter_gui($pkg, $filter);
+        return 0 if not filter_gui($urpm, $pkg, $filter);
+      }
+    }
+    elsif($filter eq FILTER_SUPPORTED || $filter eq FILTER_NOT_SUPPORTED) {
+      if($e_filters{FILTER_SUPPORTED}) {
+        return 0 if not filter_supported($urpm, $pkg, $filter);
       }
     }
   }
@@ -47,7 +52,7 @@ sub filter {
 }
 
 sub filter_installed {
-  my ($pkg, $filter) = @_;
+  my ($urpm, $pkg, $filter) = @_;
   my $installed;
   $installed = 1 if(find_installed_fullname($pkg));
   if($filter eq FILTER_INSTALLED && $installed) {
@@ -60,9 +65,10 @@ sub filter_installed {
 }
 
 sub filter_devel {
-  my ($pkg, $filter) = @_;
+  my ($urpm, $pkg, $filter) = @_;
   my $pkgname = $pkg->name;
   my $devel = ($pkgname =~ /-devel$/);
+
   if($filter eq FILTER_DEVELOPMENT && $devel) {
     return 1;
   }
@@ -73,7 +79,7 @@ sub filter_devel {
 }
 
 sub filter_gui {
-  my ($pkg, $filter) = @_;
+  my ($urpm, $pkg, $filter) = @_;
   my $pkgname = $pkg->name;
   my $gui = member($pkgname, @gui_pkgs);
 
@@ -86,4 +92,20 @@ sub filter_gui {
   return 0;
 }
 
+sub filter_supported {
+  my ($urpm, $pkg, $filter) = @_;
+  my $pkgname = $pkg->name;
+  my $media = URPM::pkg2media($urpm->{media}, $pkg);
+  # FIXME: matching against media name is certainly not optimal,
+  #        better heuristics needed...
+  my $supported = ($media->{name} =~ /^main/i);
+
+  if($filter eq FILTER_SUPPORTED && $supported) {
+    return 1;
+  }
+  if($filter eq FILTER_NOT_SUPPORTED && !$supported) {
+    return 1;
+  }
+  return 0;
+}
 1;
diff --git a/backends/urpmi/pk-backend-urpmi.c b/backends/urpmi/pk-backend-urpmi.c
index 9cb277c..889b1e9 100644
--- a/backends/urpmi/pk-backend-urpmi.c
+++ b/backends/urpmi/pk-backend-urpmi.c
@@ -95,6 +95,7 @@ backend_get_filters (PkBackend *backend)
 		PK_FILTER_ENUM_GUI,
 		PK_FILTER_ENUM_INSTALLED,
 		PK_FILTER_ENUM_DEVELOPMENT,
+		PK_FILTER_ENUM_SUPPORTED,
 		-1);
 }
 
commit 413bc96c1482cae2b4400b23b4d048ad0d4396e6
Author: Per Øyvind Karlsen <peroyvind at mandriva.org>
Date:   Tue May 24 13:35:32 2011 +0200

    update to use find_installed_fullname

diff --git a/backends/urpmi/helpers/urpmi_backend/filters.pm b/backends/urpmi/helpers/urpmi_backend/filters.pm
index 7cb064b..a0094dd 100644
--- a/backends/urpmi/helpers/urpmi_backend/filters.pm
+++ b/backends/urpmi/helpers/urpmi_backend/filters.pm
@@ -49,7 +49,7 @@ sub filter {
 sub filter_installed {
   my ($pkg, $filter) = @_;
   my $installed;
-  $installed = 1 if(find_installed_version($pkg));
+  $installed = 1 if(find_installed_fullname($pkg));
   if($filter eq FILTER_INSTALLED && $installed) {
     return 1;
   }
commit 551d1e3d42d060d0b5490dd811f2ab2c53c2d1f5
Author: Per Øyvind Karlsen <peroyvind at mandriva.org>
Date:   Fri May 20 16:10:29 2011 +0200

    sneak myself in as co-author.. :p

diff --git a/backends/urpmi/pk-backend-urpmi.c b/backends/urpmi/pk-backend-urpmi.c
index 7fb8d52..9cb277c 100644
--- a/backends/urpmi/pk-backend-urpmi.c
+++ b/backends/urpmi/pk-backend-urpmi.c
@@ -448,7 +448,7 @@ backend_what_provides (PkBackend *backend, PkBitfield filters, PkProvidesEnum pr
 /* FIXME: port this away from PK_BACKEND_OPTIONS */
 PK_BACKEND_OPTIONS (
 	"URPMI",					/* description */
-	"Aurelien Lefebvre <alkh at mandriva.org>",	/* author */
+	"Aurelien Lefebvre <alkh at mandriva.org>, Per Oyvind Karlsen <peroyvind at mandriva.org>",	/* author */
 	backend_initialize,			/* initalize */
 	backend_destroy,			/* destroy */
 	backend_get_groups,			/* get_groups */
commit 13a23501b4487fb1de8b335163863bfc2144cbc2
Author: Per Øyvind Karlsen <peroyvind at mandriva.org>
Date:   Fri May 20 15:51:25 2011 +0200

    do matching against fullname

diff --git a/backends/urpmi/helpers/urpmi-dispatched-backend.pl b/backends/urpmi/helpers/urpmi-dispatched-backend.pl
index 7ddf0aa..a532a86 100755
--- a/backends/urpmi/helpers/urpmi-dispatched-backend.pl
+++ b/backends/urpmi/helpers/urpmi-dispatched-backend.pl
@@ -312,7 +312,7 @@ sub get_requires {
   
   foreach(@requires) {
     if(filter($_, \@filterstab, { FILTER_GUI => 1, FILTER_DEVELOPMENT => 1 })) {
-      if(package_version_is_installed($_)) {
+      if(package_fullname_is_installed($_)) {
         grep(/^${\FILTER_NOT_INSTALLED}$/, @filterstab) or pk_print_package(INFO_INSTALLED, get_package_id($_), $_->summary);
       }
       else {
@@ -567,7 +567,7 @@ sub resolve {
     # We exit the script if found package does not match with specified filters
     filter($pkg, \@filters, {FILTER_DEVELOPMENT => 1, FILTER_GUI => 1}) or next;
 
-    if($pkg->evr eq find_installed_version($pkg)) {
+    if(package_fullname_is_installed($pkg)) {
       grep(/^${\FILTER_NOT_INSTALLED}$/, @filters) and next;
       pk_print_package(INFO_INSTALLED, get_package_id($pkg), $pkg->summary);
     }
@@ -630,8 +630,8 @@ sub search_file {
   foreach(keys %requested) {
     my $p = @{$urpm->{depslist}}[$_];
     if(filter($p, \@filters, { FILTER_INSTALLED => 1, FILTER_DEVELOPMENT=> 1, FILTER_GUI => 1})) {
-      my $version = find_installed_version($p);
-      if($version eq $p->evr) {
+      my $version = find_installed_fullname($p);
+      if(package_fullname_is_installed($p)) {
         pk_print_package(INFO_INSTALLED, get_package_id($p), ensure_utf8($p->summary));
       }
       else {
@@ -764,7 +764,7 @@ sub what_provides {
   
   foreach(@prov) {
     my $pkg = $_;
-    if($pkg->evr eq find_installed_version($pkg)) {
+    if(package_fullname_is_installed($pkg)) {
       grep(/^${\FILTER_NOT_INSTALLED}$/, @filterstab) and next;
       pk_print_package(INFO_INSTALLED, get_package_id($pkg), $pkg->summary);
     }
@@ -854,7 +854,7 @@ sub _print_package_update_details {
   
   my @to_upgrade_pkids;
   foreach(@to_install) {
-    my $pkid = get_installed_version_pkid($_);
+    my $pkid = get_installed_fullname_pkid($_);
     push @to_upgrade_pkids, $pkid if $pkid;
   }
   
diff --git a/backends/urpmi/helpers/urpmi_backend/tools.pm b/backends/urpmi/helpers/urpmi_backend/tools.pm
index 3e9864b..db3d650 100644
--- a/backends/urpmi/helpers/urpmi_backend/tools.pm
+++ b/backends/urpmi/helpers/urpmi_backend/tools.pm
@@ -22,16 +22,16 @@ our @EXPORT = qw(
   get_update_medias 
   rpm_description 
   urpm_name 
-  find_installed_version 
+  find_installed_fullname 
   get_package_id 
   ensure_utf8 
   pkg2medium 
   fullname_to_package_id
   get_package_by_package_id
-  package_version_is_installed
+  package_fullname_is_installed
   get_package_upgrade
-  get_installed_version
-  get_installed_version_pkid
+  get_installed_fullname
+  get_installed_fullname_pkid
 );
 
 sub get_update_medias {
@@ -73,10 +73,10 @@ sub ensure_utf8 {
     $_[0];
 }
 
-sub find_installed_version {
+sub find_installed_fullname {
   my ($p) = @_;
   my @version;
-  URPM::DB::open()->traverse_tag('name', [ $p->name ], sub { push @version, $_[0]->evr });
+  URPM::DB::open()->traverse_tag('nvra', [ $p->fullname ], sub { push @version, scalar($_[0]->fullname) });
   @version ? join(',', sort @version) : "";
 }
 
@@ -117,9 +117,9 @@ sub get_package_by_package_id {
   return;
 }
 
-sub package_version_is_installed {
+sub package_fullname_is_installed {
   my ($pkg) = @_;
-  return $pkg->evr eq find_installed_version($pkg);
+  return $pkg->fullname eq find_installed_fullname($pkg);
 }
 
 sub get_package_upgrade {
@@ -135,19 +135,19 @@ sub get_package_upgrade {
   }
 }
 
-sub get_installed_version {
+sub get_installed_fullname {
   my ($urpm, $pkg) = @_;
   my @depslist = @{$urpm->{depslist}};
   my $pkgname = $pkg->name;
   foreach $_ (@depslist) {
-    if($_->name =~ /^$pkgname$/ && package_version_is_installed($_)) {
+    if($_->name =~ /^$pkgname$/ && package_fullname_is_installed($_)) {
       return $_;
     }
   }
   return;
 }
 
-sub get_installed_version_pkid {
+sub get_installed_fullname_pkid {
   my ($pkg) = @_;
   my $pkgname = $pkg->name;
   my $db = open_rpm_db();
commit aea09e40382b4a17cae570867e0ce763ac2ae361
Author: Per Øyvind Karlsen <peroyvind at mandriva.org>
Date:   Fri May 20 14:59:54 2011 +0200

    make find_installed_version use EVRD

diff --git a/backends/urpmi/helpers/urpmi-dispatched-backend.pl b/backends/urpmi/helpers/urpmi-dispatched-backend.pl
index c389f2a..7ddf0aa 100755
--- a/backends/urpmi/helpers/urpmi-dispatched-backend.pl
+++ b/backends/urpmi/helpers/urpmi-dispatched-backend.pl
@@ -567,7 +567,7 @@ sub resolve {
     # We exit the script if found package does not match with specified filters
     filter($pkg, \@filters, {FILTER_DEVELOPMENT => 1, FILTER_GUI => 1}) or next;
 
-    if($pkg->version."-".$pkg->release eq find_installed_version($pkg)) {
+    if($pkg->evr eq find_installed_version($pkg)) {
       grep(/^${\FILTER_NOT_INSTALLED}$/, @filters) and next;
       pk_print_package(INFO_INSTALLED, get_package_id($pkg), $pkg->summary);
     }
@@ -631,7 +631,7 @@ sub search_file {
     my $p = @{$urpm->{depslist}}[$_];
     if(filter($p, \@filters, { FILTER_INSTALLED => 1, FILTER_DEVELOPMENT=> 1, FILTER_GUI => 1})) {
       my $version = find_installed_version($p);
-      if($version eq $p->version."-".$p->release) {
+      if($version eq $p->evr) {
         pk_print_package(INFO_INSTALLED, get_package_id($p), ensure_utf8($p->summary));
       }
       else {
@@ -764,7 +764,7 @@ sub what_provides {
   
   foreach(@prov) {
     my $pkg = $_;
-    if($pkg->version."-".$pkg->release eq find_installed_version($pkg)) {
+    if($pkg->evr eq find_installed_version($pkg)) {
       grep(/^${\FILTER_NOT_INSTALLED}$/, @filterstab) and next;
       pk_print_package(INFO_INSTALLED, get_package_id($pkg), $pkg->summary);
     }
diff --git a/backends/urpmi/helpers/urpmi_backend/tools.pm b/backends/urpmi/helpers/urpmi_backend/tools.pm
index bb6d0d1..3e9864b 100644
--- a/backends/urpmi/helpers/urpmi_backend/tools.pm
+++ b/backends/urpmi/helpers/urpmi_backend/tools.pm
@@ -76,7 +76,7 @@ sub ensure_utf8 {
 sub find_installed_version {
   my ($p) = @_;
   my @version;
-  URPM::DB::open()->traverse_tag('name', [ $p->name ], sub { push @version, $_[0]->version . '-' . $_[0]->release });
+  URPM::DB::open()->traverse_tag('name', [ $p->name ], sub { push @version, $_[0]->evr });
   @version ? join(',', sort @version) : "";
 }
 
@@ -119,7 +119,7 @@ sub get_package_by_package_id {
 
 sub package_version_is_installed {
   my ($pkg) = @_;
-  return $pkg->version."-".$pkg->release eq find_installed_version($pkg);
+  return $pkg->evr eq find_installed_version($pkg);
 }
 
 sub get_package_upgrade {
commit bc817a949da6248e8dd1adcf21b0e9c759e6f8a4
Author: Per Øyvind Karlsen <peroyvind at mandriva.org>
Date:   Fri May 20 14:56:40 2011 +0200

    print PK_STATUS_ENUM_REQUEST for what-provides..

diff --git a/backends/urpmi/helpers/urpmi-dispatched-backend.pl b/backends/urpmi/helpers/urpmi-dispatched-backend.pl
index e69566e..c389f2a 100755
--- a/backends/urpmi/helpers/urpmi-dispatched-backend.pl
+++ b/backends/urpmi/helpers/urpmi-dispatched-backend.pl
@@ -731,9 +731,11 @@ sub what_provides {
   my @filterstab = split(/;/, @{$args}[0]);
   my $providestype = @{$args}[1];
   my @packageidstab = split(/&/, @{$args}[2]);
-  
   my @pkgnames;
   my @prov;
+
+  pk_print_status(PK_STATUS_ENUM_REQUEST);
+
   foreach (@packageidstab) {
     my @pkgid = split(/;/, $_);
     # skip if old standard
commit d4f3799051866dfb0fd2f01feabe38fdac13ddfa
Author: Per Øyvind Karlsen <peroyvind at mandriva.org>
Date:   Fri May 20 10:44:08 2011 +0200

    add support for provide type

diff --git a/backends/urpmi/helpers/urpmi-dispatched-backend.pl b/backends/urpmi/helpers/urpmi-dispatched-backend.pl
index 04fa922..e69566e 100755
--- a/backends/urpmi/helpers/urpmi-dispatched-backend.pl
+++ b/backends/urpmi/helpers/urpmi-dispatched-backend.pl
@@ -729,12 +729,27 @@ sub what_provides {
   my ($urpm, $args) = @_;
   
   my @filterstab = split(/;/, @{$args}[0]);
+  my $providestype = @{$args}[1];
   my @packageidstab = split(/&/, @{$args}[2]);
   
   my @pkgnames;
   my @prov;
   foreach (@packageidstab) {
     my @pkgid = split(/;/, $_);
+    # skip if old standard
+    if (not grep(/^gstreamer0.10\(/, $pkgid[0])) {
+	# new standard
+	my $namespace = undef;
+	if ($providestype eq "codec") {
+	    $namespace = "gstreamer0.10";
+	} elsif ($providestype ne "any") {
+	    $namespace = $providestype;
+	}
+	if ($namespace) {
+	    $pkgid[0] = sprintf("%s(%s)", $namespace, $pkgid[0]);
+	}
+    }
+
     push(@pkgnames, $pkgid[0]);
     my @res = $urpm->packages_providing($pkgid[0]);
     foreach(@res) {
commit 368de5752e84571604c98a823f7f75c27b270570
Author: Per Øyvind Karlsen <peroyvind at mandriva.org>
Date:   Thu May 19 23:08:41 2011 +0200

    fix previous commit..

diff --git a/backends/urpmi/helpers/urpmi_backend/groups.pm b/backends/urpmi/helpers/urpmi_backend/groups.pm
index e338355..938990e 100644
--- a/backends/urpmi/helpers/urpmi_backend/groups.pm
+++ b/backends/urpmi/helpers/urpmi_backend/groups.pm
@@ -121,8 +121,8 @@ use constant MDV_GROUPS => {
 sub get_mdv_groups {
   my ($pk_group) = @_;
   my @groups = ();
-  foreach(keys (MDV_GROUPS)) {
-    if(MDV_GROUPS)->{$_} eq $pk_group) {
+  foreach(keys %{(MDV_GROUPS)}) {
+    if((MDV_GROUPS)->{$_} eq $pk_group) {
       push @groups, $_;
     }
   }
commit 77ccb24f90e2bd55c6c7f8effe35d64be080bec9
Author: Per Øyvind Karlsen <peroyvind at mandriva.org>
Date:   Thu May 19 22:38:18 2011 +0200

    fix 'Using a hash as a reference is deprecated' warning

diff --git a/backends/urpmi/helpers/urpmi_backend/groups.pm b/backends/urpmi/helpers/urpmi_backend/groups.pm
index 92b0360..e338355 100644
--- a/backends/urpmi/helpers/urpmi_backend/groups.pm
+++ b/backends/urpmi/helpers/urpmi_backend/groups.pm
@@ -121,8 +121,8 @@ use constant MDV_GROUPS => {
 sub get_mdv_groups {
   my ($pk_group) = @_;
   my @groups = ();
-  foreach(keys %{(MDV_GROUPS)}) {
-    if(%{(MDV_GROUPS)}->{$_} eq $pk_group) {
+  foreach(keys (MDV_GROUPS)) {
+    if(MDV_GROUPS)->{$_} eq $pk_group) {
       push @groups, $_;
     }
   }
@@ -131,10 +131,10 @@ sub get_mdv_groups {
 
 sub get_pk_group {
   my ($mdv_group) = @_;
-  if(%{(MDV_GROUPS)}->{$mdv_group} eq "") {
+  if((MDV_GROUPS)->{$mdv_group} eq "") {
     return GROUP_UNKNOWN;
   }
-  return %{(MDV_GROUPS)}->{$mdv_group};
+  return (MDV_GROUPS)->{$mdv_group};
 }
 
 sub package_belongs_to_pk_group {
commit 244ca47cfe8f165185b688a04c78e40cf5fd7deb
Author: Per Øyvind Karlsen <peroyvind at mandriva.org>
Date:   Thu May 19 22:20:26 2011 +0200

    oops, part of commit forgotten..

diff --git a/backends/urpmi/helpers/urpmi-dispatched-backend.pl b/backends/urpmi/helpers/urpmi-dispatched-backend.pl
index e156dae..04fa922 100755
--- a/backends/urpmi/helpers/urpmi-dispatched-backend.pl
+++ b/backends/urpmi/helpers/urpmi-dispatched-backend.pl
@@ -730,7 +730,6 @@ sub what_provides {
   
   my @filterstab = split(/;/, @{$args}[0]);
   my @packageidstab = split(/&/, @{$args}[2]);
-  my $recursive_option = @{$args}[2] eq "yes" ? 1 : 0;
   
   my @pkgnames;
   my @prov;
commit 6306cbe794e82d4c0ad4d0b6cebbfd9323ac9047
Author: Per Øyvind Karlsen <peroyvind at mandriva.org>
Date:   Thu May 19 22:17:44 2011 +0200

    first shot at what-provides for urpmi...

diff --git a/backends/urpmi/helpers/urpmi-dispatched-backend.pl b/backends/urpmi/helpers/urpmi-dispatched-backend.pl
index 8b709e6..e156dae 100755
--- a/backends/urpmi/helpers/urpmi-dispatched-backend.pl
+++ b/backends/urpmi/helpers/urpmi-dispatched-backend.pl
@@ -120,6 +120,9 @@ sub dispatch_command {
     update_system($urpm, $args);
     urpm::media::configure($urpm);
   }
+  elsif($command eq "what-provides") {
+    what_provides($urpm, $args);
+  }
   elsif($command eq "exit") {
     exit 0;
   }
@@ -721,6 +724,41 @@ sub update_system {
   _finished();
 }
 
+sub what_provides {
+
+  my ($urpm, $args) = @_;
+  
+  my @filterstab = split(/;/, @{$args}[0]);
+  my @packageidstab = split(/&/, @{$args}[2]);
+  my $recursive_option = @{$args}[2] eq "yes" ? 1 : 0;
+  
+  my @pkgnames;
+  my @prov;
+  foreach (@packageidstab) {
+    my @pkgid = split(/;/, $_);
+    push(@pkgnames, $pkgid[0]);
+    my @res = $urpm->packages_providing($pkgid[0]);
+    foreach(@res) {
+	push (@prov, $_);
+    }
+  }
+
+  @prov 
+      or (_finished() and return);
+  
+  foreach(@prov) {
+    my $pkg = $_;
+    if($pkg->version."-".$pkg->release eq find_installed_version($pkg)) {
+      grep(/^${\FILTER_NOT_INSTALLED}$/, @filterstab) and next;
+      pk_print_package(INFO_INSTALLED, get_package_id($pkg), $pkg->summary);
+    }
+    else {
+      grep(/^${\FILTER_INSTALLED}$/, @filterstab) and next;
+      pk_print_package(INFO_AVAILABLE, get_package_id($pkg), $pkg->summary);
+    }
+  }
+  _finished();
+}
 sub _finished {
   pk_print_status(PK_STATUS_ENUM_FINISHED);
 }
diff --git a/backends/urpmi/pk-backend-urpmi.c b/backends/urpmi/pk-backend-urpmi.c
index 6c3da0c..7fb8d52 100644
--- a/backends/urpmi/pk-backend-urpmi.c
+++ b/backends/urpmi/pk-backend-urpmi.c
@@ -112,7 +112,7 @@ backend_get_roles (PkBackend *backend)
 		PK_ROLE_ENUM_GET_FILES,
 		PK_ROLE_ENUM_GET_REQUIRES,
 		PK_ROLE_ENUM_GET_PACKAGES,
-		// PK_ROLE_ENUM_WHAT_PROVIDES,
+		PK_ROLE_ENUM_WHAT_PROVIDES,
 		PK_ROLE_ENUM_GET_UPDATES,
 		PK_ROLE_ENUM_GET_UPDATE_DETAIL,
 		PK_ROLE_ENUM_INSTALL_PACKAGES,
@@ -427,6 +427,24 @@ backend_get_distro_upgrades (PkBackend *backend)
 	pk_backend_spawn_helper (spawn, "urpmi-dispatched-backend.pl", "get-distro-upgrades", NULL);
 }
 
+/**
+ * backend_what_provides:
+ */
+static void
+backend_what_provides (PkBackend *backend, PkBitfield filters, PkProvidesEnum provides, gchar **values)
+{
+	gchar *search_tmp;
+	gchar *filters_text;
+	const gchar *provides_text;
+
+	provides_text = pk_provides_enum_to_string (provides);
+	filters_text = pk_filter_bitfield_to_string (filters);
+	search_tmp = g_strjoinv ("&", values);
+	pk_backend_spawn_helper (spawn, "urpmi-dispatched-backend.pl", "what-provides", filters_text, provides_text, search_tmp, NULL);
+	g_free (filters_text);
+	g_free (search_tmp);
+}
+
 /* FIXME: port this away from PK_BACKEND_OPTIONS */
 PK_BACKEND_OPTIONS (
 	"URPMI",					/* description */
@@ -464,7 +482,7 @@ PK_BACKEND_OPTIONS (
 	backend_search_names,			/* search_names */
 	backend_update_packages,		/* update_packages */
 	backend_update_system,			/* update_system */
-	NULL,					/* what_provides */
+	backend_what_provides,			/* what_provides */
 	NULL,					/* simulate_install_files */
 	NULL,					/* simulate_install_packages */
 	NULL,					/* simulate_remove_packages */
commit 906c3973898f16fcc970c6ee982c927d9e36406e
Author: Per Øyvind Karlsen <peroyvind at mandriva.org>
Date:   Thu May 19 16:24:04 2011 +0200

    add enums for unimplemented features as commented out code

diff --git a/backends/urpmi/pk-backend-urpmi.c b/backends/urpmi/pk-backend-urpmi.c
index 3c236aa..6c3da0c 100644
--- a/backends/urpmi/pk-backend-urpmi.c
+++ b/backends/urpmi/pk-backend-urpmi.c
@@ -130,11 +130,16 @@ backend_get_roles (PkBackend *backend)
 		PK_ROLE_ENUM_UPDATE_SYSTEM,
 		PK_ROLE_ENUM_GET_REPO_LIST,
 		PK_ROLE_ENUM_REPO_ENABLE,
+		// PK_ROLE_ENUM_ROLLBACK,
+		// PK_ROLE_ENUM_ACCEPT_EULA,
+		// 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_UPDATE_PACKAGES,
 		// PK_ROLE_ENUM_SIMULATE_REMOVE_PACKAGES,
+		// PK_ROLE_ENUM_UPGRADE_SYSTEM
 		-1);
 
 	return roles;
commit 47b29380c4000e402d298b75ab1e4b69f01de8ba
Author: Per Øyvind Karlsen <peroyvind at mandriva.org>
Date:   Thu May 19 16:17:23 2011 +0200

    implement get_roles

diff --git a/backends/urpmi/pk-backend-urpmi.c b/backends/urpmi/pk-backend-urpmi.c
index c730c45..3c236aa 100644
--- a/backends/urpmi/pk-backend-urpmi.c
+++ b/backends/urpmi/pk-backend-urpmi.c
@@ -99,6 +99,47 @@ backend_get_filters (PkBackend *backend)
 }
 
 /**
+ * pk_backend_get_roles:
+ */
+static PkBitfield
+backend_get_roles (PkBackend *backend)
+{
+	PkBitfield roles;
+	roles = pk_bitfield_from_enums (
+		PK_ROLE_ENUM_CANCEL,
+		PK_ROLE_ENUM_GET_DEPENDS,
+		PK_ROLE_ENUM_GET_DETAILS,
+		PK_ROLE_ENUM_GET_FILES,
+		PK_ROLE_ENUM_GET_REQUIRES,
+		PK_ROLE_ENUM_GET_PACKAGES,
+		// PK_ROLE_ENUM_WHAT_PROVIDES,
+		PK_ROLE_ENUM_GET_UPDATES,
+		PK_ROLE_ENUM_GET_UPDATE_DETAIL,
+		PK_ROLE_ENUM_INSTALL_PACKAGES,
+		// PK_ROLE_ENUM_INSTALL_FILES,
+		// PK_ROLE_ENUM_INSTALL_SIGNATURE,
+		PK_ROLE_ENUM_REFRESH_CACHE,
+		PK_ROLE_ENUM_REMOVE_PACKAGES,
+		// PK_ROLE_ENUM_DOWNLOAD_PACKAGES,
+		PK_ROLE_ENUM_RESOLVE,
+		PK_ROLE_ENUM_SEARCH_DETAILS,
+		PK_ROLE_ENUM_SEARCH_FILE,
+		PK_ROLE_ENUM_SEARCH_GROUP,
+		PK_ROLE_ENUM_SEARCH_NAME,
+		PK_ROLE_ENUM_UPDATE_PACKAGES,
+		PK_ROLE_ENUM_UPDATE_SYSTEM,
+		PK_ROLE_ENUM_GET_REPO_LIST,
+		PK_ROLE_ENUM_REPO_ENABLE,
+		// PK_ROLE_ENUM_GET_CATEGORIES,
+		// PK_ROLE_ENUM_SIMULATE_INSTALL_FILES,
+		// PK_ROLE_ENUM_SIMULATE_INSTALL_PACKAGES,
+		// PK_ROLE_ENUM_SIMULATE_UPDATE_PACKAGES,
+		// PK_ROLE_ENUM_SIMULATE_REMOVE_PACKAGES,
+		-1);
+
+	return roles;
+}
+/**
  * pk_backend_get_mime_types:
  */
 static gchar *
@@ -389,7 +430,7 @@ PK_BACKEND_OPTIONS (
 	backend_destroy,			/* destroy */
 	backend_get_groups,			/* get_groups */
 	backend_get_filters,			/* get_filters */
-	NULL,					/* get_roles */
+	backend_get_roles,			/* get_roles */
 	backend_get_mime_types,			/* get_mime_types */
 	backend_cancel,				/* cancel */
 	NULL,					/* download_packages */
commit d6d0c355fd575102238a75750e630052a17acdb2
Author: Per Øyvind Karlsen <peroyvind at mandriva.org>
Date:   Thu May 19 16:07:29 2011 +0200

    implement get_mime_types

diff --git a/backends/urpmi/pk-backend-urpmi.c b/backends/urpmi/pk-backend-urpmi.c
index ac3827f..c730c45 100644
--- a/backends/urpmi/pk-backend-urpmi.c
+++ b/backends/urpmi/pk-backend-urpmi.c
@@ -99,6 +99,18 @@ backend_get_filters (PkBackend *backend)
 }
 
 /**
+ * pk_backend_get_mime_types:
+ */
+static gchar *
+backend_get_mime_types (PkBackend *backend)
+{
+	return g_strdup (
+		"application/x-rpm;"
+		"application/x-urpmi"
+		);
+}
+
+/**
  * pk_backend_cancel:
  */
 static void
@@ -378,7 +390,7 @@ PK_BACKEND_OPTIONS (
 	backend_get_groups,			/* get_groups */
 	backend_get_filters,			/* get_filters */
 	NULL,					/* get_roles */
-	NULL,					/* get_mime_types */
+	backend_get_mime_types,			/* get_mime_types */
 	backend_cancel,				/* cancel */
 	NULL,					/* download_packages */
 	NULL,					/* get_categories */
commit 1d0a5af5c0409554895dfeb708d09b44f55b0d45
Author: Per Øyvind Karlsen <peroyvind at mandriva.org>
Date:   Thu May 19 16:03:43 2011 +0200

    implement 'Cancel' feature

diff --git a/backends/urpmi/pk-backend-urpmi.c b/backends/urpmi/pk-backend-urpmi.c
index f3bb943..ac3827f 100644
--- a/backends/urpmi/pk-backend-urpmi.c
+++ b/backends/urpmi/pk-backend-urpmi.c
@@ -99,6 +99,16 @@ backend_get_filters (PkBackend *backend)
 }
 
 /**
+ * pk_backend_cancel:
+ */
+static void
+backend_cancel (PkBackend *backend)
+{
+	/* this feels bad... */
+	pk_backend_spawn_kill (spawn);
+}
+
+/**
  * pk_backend_search_name:
  */
 static void
@@ -369,7 +379,7 @@ PK_BACKEND_OPTIONS (
 	backend_get_filters,			/* get_filters */
 	NULL,					/* get_roles */
 	NULL,					/* get_mime_types */
-	NULL,					/* cancel */
+	backend_cancel,				/* cancel */
 	NULL,					/* download_packages */
 	NULL,					/* get_categories */
 	backend_get_depends,			/* get_depends */


More information about the PackageKit-commit mailing list