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

Richard Hughes hughsient at kemper.freedesktop.org
Mon Sep 7 04:44:47 PDT 2009


 NEWS                                               |  188 +++
 backends/alpm/pk-backend-alpm.c                    |  133 +-
 backends/apt/aptBackend.py                         |   82 -
 backends/aptcc/apt.cpp                             |  353 +++++-
 backends/aptcc/apt.h                               |   29 
 backends/aptcc/pk-backend-aptcc.cpp                |  219 ++-
 backends/ports/portsBackend.rb                     |  425 +++----
 backends/urpmi/helpers/urpmi-dispatched-backend.pl |    2 
 backends/yum/yumBackend.py                         |    6 
 client/Makefile.am                                 |   20 
 client/pk-console-test.c                           | 1006 ++++++++---------
 client/pk-monitor-test.c                           |  342 +++++
 client/pk-task-text.c                              |   32 
 configure.ac                                       |    8 
 contrib/PackageKit.spec.in                         |    2 
 contrib/debuginfo-install/pk-debuginfo-install.c   |    2 
 contrib/device-rebind/pk-device-rebind.c           |    2 
 docs/html/pk-download.html                         |    1 
 docs/html/pk-matrix.html                           |    6 
 lib/packagekit-glib/egg-debug.c                    |    2 
 lib/packagekit-glib/egg-test.c                     |    2 
 lib/packagekit-glib/pk-control.c                   |    1 
 lib/packagekit-glib/pk-enum.c                      |    1 
 lib/packagekit-glib/pk-enum.h                      |    1 
 lib/packagekit-glib2/Makefile.am                   |    4 
 lib/packagekit-glib2/packagekit.h                  |    1 
 lib/packagekit-glib2/pk-bitfield.c                 |  540 +++++++++
 lib/packagekit-glib2/pk-bitfield.h                 |   58 
 lib/packagekit-glib2/pk-client.c                   |  170 +-
 lib/packagekit-glib2/pk-client.h                   |   11 
 lib/packagekit-glib2/pk-common.c                   |  767 +++++++++++++
 lib/packagekit-glib2/pk-common.h                   |  101 +
 lib/packagekit-glib2/pk-control-sync.c             |  188 +--
 lib/packagekit-glib2/pk-control-sync.h             |    8 
 lib/packagekit-glib2/pk-control.c                  |  866 +++-----------
 lib/packagekit-glib2/pk-control.h                  |   35 
 lib/packagekit-glib2/pk-enum.c                     | 1226 ++++++++++++++++++++-
 lib/packagekit-glib2/pk-enum.h                     |  654 +++++++++++
 lib/packagekit-glib2/pk-package-id.c               |    2 
 lib/packagekit-glib2/pk-package-id.h               |    2 
 lib/packagekit-glib2/pk-package-ids.c              |  277 ++++
 lib/packagekit-glib2/pk-package-ids.h              |   62 +
 lib/packagekit-glib2/pk-package-sack.c             |   41 
 lib/packagekit-glib2/pk-package.c                  |   20 
 lib/packagekit-glib2/pk-progress.c                 |    7 
 lib/packagekit-glib2/pk-results.c                  |   68 -
 lib/packagekit-glib2/pk-results.h                  |   35 
 lib/packagekit-glib2/pk-self-test.c                |    2 
 lib/packagekit-glib2/pk-task-wrapper.c             |   17 
 lib/packagekit-glib2/pk-task.c                     |   40 
 lib/packagekit-glib2/pk-task.h                     |   13 
 lib/packagekit-qt/src/client.h                     |    1 
 lib/packagekit-qt/test/Makefile.am                 |    2 
 lib/packagekit-qt/test/transactiontest.cpp         |    2 
 po/POTFILES.in                                     |    1 
 po/bn_IN.po                                        |  531 ++++-----
 po/ca.po                                           |  846 ++++++++------
 po/cs.po                                           |  901 +++++++++------
 po/es.po                                           |  282 ++++
 po/fi.po                                           |  602 ++++++----
 po/gu.po                                           |  373 ++++--
 po/hi.po                                           |  555 +++++----
 po/ml.po                                           |  359 ++++--
 po/mr.po                                           |  631 ++++++----
 po/nl.po                                           |  515 +++++---
 po/or.po                                           |  853 ++++++++------
 po/pl.po                                           |  637 ++++++----
 po/pt.po                                           |  927 ++++++++++-----
 po/sk.po                                           |  864 ++++++++------
 po/ta.po                                           |  604 ++++++----
 src/Makefile.am                                    |    9 
 src/org.freedesktop.PackageKit.Backend.xml         |   95 -
 src/org.freedesktop.PackageKit.xml                 |   97 +
 src/pk-backend-internal.h                          |    9 
 src/pk-backend.c                                   |   53 
 src/pk-engine.c                                    |  114 +
 src/pk-engine.h                                    |    2 
 src/pk-transaction.c                               |    8 
 78 files changed, 12427 insertions(+), 5526 deletions(-)

New commits:
commit f24705bbe16f8e32ba7f48655990169b6c7e9c2f
Author: Richard Hughes <richard at hughsie.com>
Date:   Mon Sep 7 12:42:24 2009 +0100

    Release version 0.5.2

diff --git a/NEWS b/NEWS
index 847b932..39b8315 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,191 @@
+Version 0.5.2
+~~~~~~~~~~~~~
+Released: 2009-09-07
+
+Notes
+ - A new read-only backend for FreeBSD Ports.
+ - New Simulate* methods added to find out what a transaction will do.
+ - Resove() now accepts a package_id as well as a package name.
+ - New properties on the DBus interfaces, with the old methods deprecated.
+ - The new packagekit-glib2 library is experimental and unstable, but is designed to
+   replace the old packagekit-glib library long term. Early testing welcomed.
+
+Translations
+ - Updated translation for Malayalam (anipeter)
+ - Updated translation for Spanish (beckerde)
+ - Updated translation for Greek (charnik)
+ - Updated translation for Korean (eukim)
+ - Updated translation for Czech (hunter688)
+ - Updated translation for Tamil (ifelix)
+ - Updated translation for Brazilian Portuguese (igor)
+ - Updated translation for German (kenda)
+ - Updated translation for Spanish (logan)
+ - Updated translation for Oriya (mgiri)
+ - Updated translation for Ukranian (mvdz)
+ - Updated translation for Slovak (palos)
+ - Updated translation for Hindi (rajesh)
+ - Updated translation for Polish (raven)
+ - Updated translation for Portuguese (ruigo)
+ - Updated translation for Bengali (runab)
+ - Updated translation for Marathi (sandeeps)
+ - Updated translation for Gujarati (swkothar)
+ - Updated translation for Finnish (vpv)
+ - Updated translation for Dutch (warrink)
+ - Updated translation for Catalan (xconde)
+
+New Features
+ - Make the browser plugin interaction better (Matthias Clasen)
+ - Add more plugin polish with coloured backgrounds and curved edges (Matthias Clasen)
+ - Add FreeBSD distro IDs (Anders F Bjorklund)
+ - Add the external D-Bus methods for Simulate (Daniel Nicoletti)
+ - Simulate installing packages and files in pkcon if possible (Daniel Nicoletti)
+ - Use SimulateRemovePackages in preference to GetRequires in pkcon (Daniel Nicoletti)
+ - Print the different types of action from simulate with a different list prefix in pkcon (Richard Hughes)
+ - Add the device rebinding functionality required for the session to install drivers (Richard Hughes)
+ - Add PK_PROVIDES_ENUM_POSTSCRIPT_DRIVER for the new foomatic functionality (Richard Hughes)
+ - Add a very early version of the glib2 asynconous library (Richard Hughes)
+ - Allow resolve to match on an exact package_id (Richard Hughes)
+ - Add properties to the transaction and daemon interface and deprecate the old methods (Richard Hughes)
+ - Property names have to be WindowsStyleCaps (Richard Hughes)
+
+Bugfixes
+ - Avoid realpath segfault on freebsd (Anders F Bjorklund)
+ - Use correct configure test for newer polkit (Christopher Aillon)
+ - Detect the new libnm-glib name as well as the old libnm_glib (Richard Hughes)
+ - Send percentage-invalid when setting up the transaction and waiting for authentication (Richard Hughes)
+ - Create log file with correct permissions (Valeriy Lyasotskiy)
+ - Fixup the package types if we are emulating the simulate methods (Daniel Nicoletti)
+ - PackageKit browser plugin must support windowed mode (Martin Stransky)
+ - The managed library feature needs gapi-sharp to build (Mounir Lamouri)
+ - Remove unused docbook-docs option add man-pages option to build man pages (Mounir Lamouri)
+ - Fix packagekit-qt dep: cppunit is needed only when building tests (Mounir Lamouri)
+ - Add a check for ConsoleKit and warn the user if not found (Mounir Lamouri)
+ - Add some error checking when we try to parse package_ids, to avoid segfaulting on bad backends (Richard Hughes)
+ - Handle not having ConsoleKit available more gracefully (Richard Hughes)
+ - Add some error detection in command-not-found if the daemon cannot be started (Richard Hughes)
+ - Don't run the helper script in command-not-found when dbus is not running. Fixes fd#23149 (Richard Hughes)
+ - Removing packages should invalidate the updates cache. Fixes rh#516457 (Richard Hughes)
+ - If there is no HAL, don't segfault when unloading PkInhibit (Richard Hughes)
+ - Add a CanAuthorize method to the daemon to know if the daemon will show an authentication window (Richard Hughes)
+ - Reduce the amount of GUI interaction in the web plugin (Richard Hughes)
+ - Make 'pkcon update foo' actually work (Richard Hughes)
+ - Change the pkcon repo-list output to be more normal. Fixes rh#520330 (Richard Hughes)
+ - Make the number on the progressbar track the actual percentage in debuginfo-install (Richard Hughes)
+ - Remove the trailing newline from fgetc in pkcon so multiple requests work (Richard Hughes)
+ - For backends without simulate, we need to emit the original packages before we fall back (Richard Hughes)
+ - Fix up some return values in the event of an error. Spotted by clang (Richard Hughes)
+ - Fix up the python example in the FAQ (مؤيد السعدي)
+
+Libraries
+ - glib: Add pk_control_can_authorize() as a client helper (Richard Hughes)
+ - glib: Fix up the self tests after recent error change (Richard Hughes)
+ - glib: Trap errors from simulate clients in the same way as the other methods (Richard Hughes)
+ - glib: Fix up the PkControl properties with the interface change (Richard Hughes)
+ - glib: Fix up a few shared files so glib2 can build with Werror flags set (Richard Hughes)
+ - glib: Don't assert the client if new properties are added to the interface (Richard Hughes)
+ - glib: Add the glib client helpers for Simulate (Daniel Nicoletti)
+ - glib: Add a 'status' property to PkClient (Richard Hughes)
+ - qt: Update the API to match PK 0.5, and handle DBus errors better (Adrien Bustany)
+ - qt: Fix undefined symbol daemonErrorFromDBusReply (Adrien Bustany)
+ - qt: Properly remove the old PolicyKit files (Adrien Bustany)
+ - qt: Never return null when expecting a Transaction (Adrien Bustany)
+ - qt: Fix wrong signal connection in transaction.cpp (Adrien Bustany)
+ - qt: Fix a bug where the error state of a transaction wouldn't be initialized (Adrien Bustany)
+ - qt: Update Transaction::Status enum (Adrien Bustany)
+ - qt: Add simulate support (Adrien Bustany)
+ - qt: Add additionnal methods to preserve API with earlier versions (Adrien Bustany)
+ - qt: Add const qualifier on some methods (Adrien Bustany)
+ - qt: Migrate to the new properties based API (Adrien Bustany)
+ - qt: Remove unused qt-gui dep (Mounir Lamouri)
+ - qt: Removed default values from getDepends, getRequires and removePackages (Daniel Nicoletti)
+ - python: Add the simulate stuff to the common python class (Richard Hughes)
+
+Backends
+ - alpm: Code cleanup in cb_trans_evt; honor dependencies when installing package (Valeriy Lyasotskiy)
+ - alpm: Migrate to pacman 3.3 branch (Valeriy Lyasotskiy)
+ - alpm: Fix GetDepends by removing obsolete code; set correct error when package_id was not correct (Valeriy Lyasotskiy)
+ - alpm: Added support for resolving by package_id (Valeriy Lyasotskiy)
+ - apt: Use dist-upgrade to detect installable upgrades (Sebastian Heinlein)
+ - apt: Do not calculate updates using the dist-upgrade method (Sebastian Heinlein)
+ - apt: UpdatePackages should not fail on already up-to-date packages (Sebastian Heinlein)
+ - apt: Workaround a bug in python-apt which would mark upgraded packages as not automatic installed (Sebastian Heinlein)
+ - apt: Don't allow to install updates in UpdatePackages which would remove already installed packages (Sebastian Heinlein)
+ - apt: Do not allow to update not installed packages (Sebastian Heinlein)
+ - apt: Also use removal detection and action groups for InstallPackages (Sebastian Heinlein)
+ - apt: Make use of the problem resolver to detect conflicting installs/updates (Sebastian Heinlein)
+ - apt: Enhance also the removal of packages by action group and resolver (Sebastian Heinlein)
+ - apt: Use the enhanced safe upgrade for update-system (Sebastian Heinlein)
+ - apt: Don't use the resolver to detect additional safe upgrades since they should not introduce any problems (Sebastian Heinlein)
+ - apt: Emit a warning message if an untrusted package gets installed (Sebastian Heinlein)
+ - apt: Optimize update calculation by using the problem resolver directly (Sebastian Heinlein)
+ - apt: Fix an old reference of a method of the former D-Bus based frontend (RequireRestart) (Sebastian Heinlein)
+ - apt: Only send dbus cache changed signal if system dbus is running. Thanks to Michael Biebl! (Sebastian Heinlein)
+ - apt: Use the resolver in get-requires and get-depends (Sebastian Heinlein)
+ - apt: Fix resolver handling for removing packages. They have to be protected (Sebastian Heinlein)
+ - apt: Fix the not auto installed marking of upgrades (Sebastian Heinlein)
+ - apt: Speed up searching for the package name by creating only the matching packages (Sebastian Heinlein)
+ - apt: Emit results in the details search as soon as possible. Furthermore use a more modern syntax in the xapian search (Sebastian Heinlein)
+ - apt: Improve APT cache based search-details by using a more modern syntax(Sebastian Heinlein)
+ - apt: Workaround a regression in python-apt 0.7.12 which only allows strings as keys for packages in the cache dict (Sebastian Heinlein)
+ - apt: Unset LC_ALL to gain support for translated descriptions (Sebastian Heinlein)
+ - apt: Fix distro upgrade call (Sebastian Heinlein)
+ - apt: Fix wrong media type enum (Sebastian Heinlein)
+ - apt: Remove not required imports (Sebastian Heinlein)
+ - apt: Make use of the new RepoMetadataDownloadFailed message (Sebastian Heinlein)
+ - apt: Do not sort the apt.Cache, since it slows down the whole process a lot (Sebastian Heinlein)
+ - aptcc: Fix search-file to search for just one file (Daniel Nicoletti)
+ - aptcc: Fixed resolve and added simulate (Daniel Nicoletti)
+ - aptcc: Added proxy support and simplified setlocale (Daniel Nicoletti)
+ - aptcc: Added non interactive mode to dpkg (Daniel Nicoletti)
+ - aptcc: Fix to handle packages ids in resolve (Daniel Nicoletti)
+ - dummy: Add simulate-install-packages for testing
+ - dummy: Respect the filter settings (Daniel Nicoletti)
+ - dummy: Support resolve by exact package_id (Richard Hughes)
+ - dummy: Add progress updates to resolve (Richard Hughes)
+ - dummy: Add _use_trusted support to install_files (Richard Hughes)
+ - opkg: Fix installing and removing multiple packages at once (Sebastian Krzyszkowiak)
+ - portage: get-details returns a size when a package is installed (Mounir Lamouri)
+ - portage: Clean lock usage (Mounir Lamouri)
+ - portage: Better managing of cyclic dep in get_requires (Mounir Lamouri)
+ - portage: Search-name is now category aware (Mounir Lamouri)
+ - portage: Fix repo-list (Mounir Lamouri)
+ - portage: Fix search-files doublon results when a package has many files with the key in the name (Mounir Lamouri)
+ - portage: Remove removed packages from world set  by adding them to favorites (Mounir Lamouri)
+ - portage: -get-details show a cleanier LICENSE info -get_metadata is now able to add cache keys -misc cleaning (Mounir Lamouri)
+ - portage: -move id_to_cpv() to the class -call self.error(ERROR_PACKAGE_ID_INVALID) instead of raising exception (Mounir Lamouri)
+ - portage: -search-details now search for real (updated) license -refactoring (Mounir Lamouri)
+ - portage: Block interactive packages to be used via the backend (Mounir Lamouri)
+ - portage: Use MESSAGE_CONFIG_FILES_CHANGED to inform the user about updated configuration files (Mounir Lamouri)
+ - portage: Send an error if an ebuild with RESTRICT='fetch' is in the installation list (Mounir Lamouri)
+ - portage: Add some status info to install-packages, update-packages and update-system (Mounir Lamouri)
+ - portage: Use ERROR_DEP_RESOLUTION_FAILED if generating depgraph fails (Mounir Lamouri)
+ - portage: Show elog messages when installing (Mounir Lamouri)
+ - portage: Use restricted-download error instead of download-failed for fetch restriction (Mounir Lamouri)
+ - portage: Show elog messages when updating packages or system and when removing packages (Mounir Lamouri)
+ - portage: Add error management when install/updating/removing (Mounir Lamouri)
+ - ports: Configure and add backend (Anders F Bjorklund)
+ - ports: Implement the remaining read-write items (Anders F Bjorklund)
+ - ports: Need to use right error code for unsupported only_trusted (Anders F Bjorklund)
+ - ports: Implement download-packages and install-files (Anders F Bjorklund)
+ - ports: Implement the newest group (Anders F Bjorklund)
+ - ports: Implement vuxml for get-update-detail (Anders F Bjorklund)
+ - ports: Use update, not fetch (Anders F Bjorklund)
+ - smart: Fix duplicatation bug with cve/bugzilla urls (Anders F Bjorklund)
+ - smart: Implement only_trusted (Anders F Bjorklund)
+ - smart: Remove the what-provides feature (Anders F Bjorklund)
+ - yum: If we're on RHEL, then preupgrade functionality isn't available (Dennis Gregorovic)
+ - yum: Include the releasever in the updates link. Fixes rh#457358 (Richard Hughes)
+ - yum: Add the PROVIDES_POSTSCRIPT_DRIVER prefix for Fedora (Richard Hughes)
+ - yum: Fix bad date formatting in update descriptions. Fixes rh#516700 (Richard Hughes)
+ - yum: Add a simple implimentation of SimulateInstallFiles (Richard Hughes)
+ - yum: Pretect against broken repo ChangeLog metadata. Fixes rh#519083 (Richard Hughes)
+ - yum: Support SimulateInstallFiles properly (Richard Hughes)
+ - yum: Check for initialisation failures in more cases (Richard Hughes)
+ - yum: Don't check for unfinished transactions when the cache is lazy loaded (Richard Hughes)
+ - yum: Setect yum.Errors.RepoError in more places, rather than backtracing (Richard Hughes)
+ - yum: Use NotImplementedError to fix a backtrace (Tim Lauridsen)
+ - yum: DeviceKit implementation for mediarepo (مؤيد السعدي)
+
 Version 0.5.1
 ~~~~~~~~~~~~~
 Released: 2009-08-03
diff --git a/contrib/PackageKit.spec.in b/contrib/PackageKit.spec.in
index 9531277..453cf96 100644
--- a/contrib/PackageKit.spec.in
+++ b/contrib/PackageKit.spec.in
@@ -377,7 +377,7 @@ update-mime-database %{_datadir}/mime &> /dev/null || :
 %config %{_sysconfdir}/cron.daily/packagekit-background.cron
 %config(noreplace) %{_sysconfdir}/sysconfig/packagekit-background
 
-%files debuginfo-install
+%files debug-install
 %defattr(-,root,root,-)
 %doc README AUTHORS NEWS COPYING
 %{_bindir}/pk-debuginfo-install
diff --git a/docs/html/pk-download.html b/docs/html/pk-download.html
index b601fcd..3dce067 100644
--- a/docs/html/pk-download.html
+++ b/docs/html/pk-download.html
@@ -70,6 +70,7 @@ Releases are normally once every 3-4 weeks.
 <tr><td><b>Version</b></td><td>&nbsp;&nbsp;</td><td><b>Date</b></td></tr>
 <tr><td>0.5.0</td><td></td><td>2009-07-06</td></tr>
 <tr><td>0.5.1</td><td></td><td>2009-08-03</td></tr>
+<tr><td>0.5.2</td><td></td><td>2009-09-07</td></tr>
 </table>
 <h3>
 ABI Stable Versions:
commit 2470e1b3e06593c1d1f26d64585435706fb61eeb
Author: Richard Hughes <richard at hughsie.com>
Date:   Mon Sep 7 12:35:54 2009 +0100

    trivial: fix the packagekit-qt self tests

diff --git a/configure.ac b/configure.ac
index 209ab12..9973a36 100644
--- a/configure.ac
+++ b/configure.ac
@@ -35,7 +35,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=12
-LT_REVISION=1
+LT_REVISION=2
 LT_AGE=0
 AC_SUBST(LT_CURRENT)
 AC_SUBST(LT_REVISION)
@@ -392,11 +392,15 @@ AM_CONDITIONAL(EGG_BUILD_TESTS, test x$enable_tests = xyes)
 if test x$enable_tests = xyes; then
 	AC_DEFINE(EGG_BUILD_TESTS,1,[Build test code])
 
-	# packagekit-qt needs cppunit for tests
+	# packagekit-qt needs cppunit and QtGui for tests
 	if test x$build_qt = xyes; then
 		PKG_CHECK_MODULES(CPPUNIT, cppunit)
 		AC_SUBST(CPPUNIT_CFLAGS)
 		AC_SUBST(CPPUNIT_LIBS)
+
+		PKG_CHECK_MODULES(QTGUI, QtGui >= 4.4.0)
+		AC_SUBST(QTGUI_CFLAGS)
+		AC_SUBST(QTGUI_LIBS)
 	fi
 fi
 
diff --git a/lib/packagekit-qt/test/Makefile.am b/lib/packagekit-qt/test/Makefile.am
index f3c26c7..6f8bfcc 100644
--- a/lib/packagekit-qt/test/Makefile.am
+++ b/lib/packagekit-qt/test/Makefile.am
@@ -4,6 +4,7 @@ NULL =
 
 INCLUDES =						\
 	$(QTCORE_CFLAGS)				\
+	$(QTGUI_CFLAGS)					\
 	$(QTDBUS_CFLAGS)				\
 	$(POLKIT_CFLAGS)				\
 	$(CPPUNIT_CFLAGS)				\
@@ -36,6 +37,7 @@ $(pk_self_test_OBJECTS) :				\
 
 pk_self_test_LDADD =					\
 	$(QTCORE_LIBS)					\
+	$(QTGUI_LIBS)					\
 	$(QTDBUS_LIBS)					\
 	$(POLKIT_LIBS)					\
 	$(CPPUNIT_LIBS)					\
diff --git a/lib/packagekit-qt/test/transactiontest.cpp b/lib/packagekit-qt/test/transactiontest.cpp
index e2a2406..ff97129 100644
--- a/lib/packagekit-qt/test/transactiontest.cpp
+++ b/lib/packagekit-qt/test/transactiontest.cpp
@@ -44,7 +44,7 @@ void TransactionTest::resolveAndInstallAndRemove()
 	el.exec();
 	CPPUNIT_ASSERT_MESSAGE("resolve", success);
 
-	t = c->installPackage(currentPackage);
+	t = c->installPackage(FALSE, currentPackage);
 	CPPUNIT_ASSERT_MESSAGE("installPackages", t != NULL);
 	qDebug() << "Installing";
 	connect(t, SIGNAL(finished(PackageKit::Transaction::ExitStatus, uint)), &el, SLOT(quit()));
commit e7aca9fea493291e989ea698bd5fdcdf4d520e53
Merge: 7f62280... a504e6a...
Author: Richard Hughes <richard at hughsie.com>
Date:   Mon Sep 7 11:20:19 2009 +0100

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

commit a504e6af94ba7087e635c7f9b8005a43f18f22ca
Author: raven <raven at fedoraproject.org>
Date:   Mon Sep 7 10:09:56 2009 +0000

    Sending translation for Polish

diff --git a/po/pl.po b/po/pl.po
index 6c38d33..fd3fe24 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -5,8 +5,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: pl\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-09-04 14:33+0000\n"
-"PO-Revision-Date: 2009-09-04 21:44+0200\n"
+"POT-Creation-Date: 2009-09-07 08:27+0000\n"
+"PO-Revision-Date: 2009-09-07 12:09+0200\n"
 "Last-Translator: Piotr DrÄ…g <piotrdrag at gmail.com>\n"
 "Language-Team: Polish <fedora-trans-pl at redhat.com>\n"
 "MIME-Version: 1.0\n"
@@ -269,12 +269,12 @@ msgid "Application restart required by:"
 msgstr "Ponowne uruchomienie programu jest wymagane przez:"
 
 #. TRANSLATORS: a package needs to restart their system
-#: ../client/pk-console.c:666 ../client/pk-console-test.c:702
+#: ../client/pk-console.c:666 ../client/pk-console-test.c:704
 msgid "Please restart the computer to complete the update."
 msgstr "Proszę uruchomić ponownie komputer, aby zakończyć aktualizację."
 
 #. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:669 ../client/pk-console-test.c:705
+#: ../client/pk-console.c:669 ../client/pk-console-test.c:707
 msgid "Please logout and login to complete the update."
 msgstr "Proszę wylogować się i zalogować, aby zakończyć aktualizację."
 
@@ -284,7 +284,7 @@ msgid "Please restart the application as it is being used."
 msgstr "Proszę uruchomić program ponownie, ponieważ jest używany."
 
 #. TRANSLATORS: a package needs to restart their system (due to security)
-#: ../client/pk-console.c:675 ../client/pk-console-test.c:708
+#: ../client/pk-console.c:675 ../client/pk-console-test.c:710
 msgid ""
 "Please restart the computer to complete the update as important security "
 "updates have been installed."
@@ -293,7 +293,7 @@ msgstr ""
 "zainstalowano aktualizacje bezpieczeństwa."
 
 #. TRANSLATORS: a package needs to restart the session (due to security)
-#: ../client/pk-console.c:678 ../client/pk-console-test.c:711
+#: ../client/pk-console.c:678 ../client/pk-console-test.c:713
 msgid ""
 "Please logout and login to complete the update as important security updates "
 "have been installed."
@@ -569,24 +569,25 @@ msgid "The license was refused."
 msgstr "Odrzucono licencjÄ™."
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1879 ../client/pk-console-test.c:968
+#: ../client/pk-console.c:1879 ../client/pk-console-test.c:972
 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:1932 ../client/pk-console-test.c:1002
+#: ../client/pk-console.c:1932 ../client/pk-console-test.c:1006
 msgid "PackageKit Console Interface"
 msgstr "Interfejs konsoli PackageKit"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1934 ../client/pk-console-test.c:1004
+#: ../client/pk-console.c:1934 ../client/pk-console-test.c:1008
 msgid "Subcommands:"
 msgstr "Podpolecenia:"
 
 #. TRANSLATORS: command line argument, if we should show debugging information
 #. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:2027 ../client/pk-console-test.c:1095
+#: ../client/pk-console.c:2027 ../client/pk-console-test.c:1099
 #: ../client/pk-generate-pack.c:187 ../client/pk-monitor.c:128
+#: ../client/pk-monitor-test.c:282
 #: ../contrib/command-not-found/pk-command-not-found.c:616
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:549
 #: ../contrib/device-rebind/pk-device-rebind.c:293 ../src/pk-main.c:211
@@ -594,18 +595,18 @@ msgid "Show extra debugging information"
 msgstr "Wyświetla dodatkowe informacje o debugowaniu"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:2030 ../client/pk-console-test.c:1098
-#: ../client/pk-monitor.c:130
+#: ../client/pk-console.c:2030 ../client/pk-console-test.c:1102
+#: ../client/pk-monitor.c:130 ../client/pk-monitor-test.c:284
 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:2033 ../client/pk-console-test.c:1101
+#: ../client/pk-console.c:2033 ../client/pk-console-test.c:1105
 msgid "Set the filter, e.g. installed"
 msgstr "Ustawia filtr, np. zainstalowane"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:2036 ../client/pk-console-test.c:1104
+#: ../client/pk-console.c:2036 ../client/pk-console-test.c:1108
 msgid "Exit without waiting for actions to complete"
 msgstr "Wyłącza bez oczekiwania na zakończenie działań"
 
@@ -615,25 +616,25 @@ msgid "This tool could not connect to system DBUS."
 msgstr "Te narzędzie nie może połączyć się z systemowym D-Bus."
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:2153 ../client/pk-console-test.c:1179
+#: ../client/pk-console.c:2153 ../client/pk-console-test.c:1183
 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:2172 ../client/pk-console-test.c:1198
+#: ../client/pk-console.c:2172 ../client/pk-console-test.c:1202
 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:2179 ../client/pk-console.c:2188
 #: ../client/pk-console.c:2197 ../client/pk-console.c:2206
-#: ../client/pk-console-test.c:1205 ../client/pk-console-test.c:1217
-#: ../client/pk-console-test.c:1229 ../client/pk-console-test.c:1241
+#: ../client/pk-console-test.c:1209 ../client/pk-console-test.c:1221
+#: ../client/pk-console-test.c:1233 ../client/pk-console-test.c:1245
 msgid "A search term is required"
 msgstr "Wymagany jest wyszukiwany termin"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:2213 ../client/pk-console-test.c:1251
+#: ../client/pk-console.c:2213 ../client/pk-console-test.c:1255
 msgid "Invalid search type"
 msgstr "Nieprawidłowy typ wyszukiwania"
 
@@ -643,63 +644,63 @@ msgid "A package name or filename to install is required"
 msgstr "Wymagana jest nazwa pakietu lub pliku do zainstalowania"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2228 ../client/pk-console-test.c:1278
+#: ../client/pk-console.c:2228 ../client/pk-console-test.c:1282
 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:2237 ../client/pk-console-test.c:1289
+#: ../client/pk-console.c:2237 ../client/pk-console-test.c:1293
 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:2245 ../client/pk-console-test.c:1298
+#: ../client/pk-console.c:2245 ../client/pk-console-test.c:1302
 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:2252 ../client/pk-console-test.c:1305
+#: ../client/pk-console.c:2252 ../client/pk-console-test.c:1309
 msgid "Directory not found"
 msgstr "Nie znaleziono katalogu"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2260 ../client/pk-console-test.c:1314
+#: ../client/pk-console.c:2260 ../client/pk-console-test.c:1318
 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:2270 ../client/pk-console-test.c:1325
+#: ../client/pk-console.c:2270 ../client/pk-console-test.c:1329
 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:2287 ../client/pk-console-test.c:1346
+#: ../client/pk-console.c:2287 ../client/pk-console-test.c:1350
 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:2296 ../client/pk-console.c:2305
-#: ../client/pk-console-test.c:1357 ../client/pk-console-test.c:1368
+#: ../client/pk-console-test.c:1361 ../client/pk-console-test.c:1372
 msgid "A repository name is required"
 msgstr "Wymagana jest nazwa repozytorium"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2314 ../client/pk-console-test.c:1379
+#: ../client/pk-console.c:2314 ../client/pk-console-test.c:1383
 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:2328 ../client/pk-console-test.c:1397
+#: ../client/pk-console.c:2328 ../client/pk-console-test.c:1401
 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:2335 ../client/pk-console-test.c:1404
+#: ../client/pk-console.c:2335 ../client/pk-console-test.c:1408
 msgid "A correct role is required"
 msgstr "Wymagana jest bieżąca rola"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2342 ../client/pk-console-test.c:1411
+#: ../client/pk-console.c:2342 ../client/pk-console-test.c:1415
 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ę"
@@ -708,15 +709,15 @@ msgstr ""
 #. TRANSLATORS: This is when the user fails to supply the package name
 #: ../client/pk-console.c:2352 ../client/pk-console.c:2364
 #: ../client/pk-console.c:2373 ../client/pk-console.c:2391
-#: ../client/pk-console.c:2400 ../client/pk-console-test.c:1421
-#: ../client/pk-console-test.c:1436 ../client/pk-console-test.c:1445
-#: ../client/pk-console-test.c:1465 ../client/pk-console-test.c:1474
+#: ../client/pk-console.c:2400 ../client/pk-console-test.c:1425
+#: ../client/pk-console-test.c:1440 ../client/pk-console-test.c:1449
+#: ../client/pk-console-test.c:1469 ../client/pk-console-test.c:1478
 #: ../client/pk-generate-pack.c:243
 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:2382 ../client/pk-console-test.c:1454
+#: ../client/pk-console.c:2382 ../client/pk-console-test.c:1458
 msgid "A package provide string is required"
 msgstr "Wymagany jest łańcuch dostarczania pakietu"
 
@@ -731,7 +732,7 @@ msgid "A list file to open is required"
 msgstr "Wymagana jest lista plików do otwarcia"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2483 ../client/pk-console-test.c:1534
+#: ../client/pk-console.c:2483 ../client/pk-console-test.c:1538
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "Opcja \"%s\" nie jest obsługiwana"
@@ -745,34 +746,34 @@ msgstr "Niepoprawne uprawnienia dla tego działania"
 #. /* TRANSLATORS: User does not have permission to do this */
 #. g_print ("%s\n", _("Incorrect privileges for this operation"));
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2499 ../client/pk-console-test.c:1546
+#: ../client/pk-console.c:2499 ../client/pk-console-test.c:1550
 msgid "Command failed"
 msgstr "Polecenie nie powiodło się"
 
 #. TRANSLATORS: more than one package could be found that matched, to follow is a list of possible packages
-#: ../client/pk-console-test.c:521 ../client/pk-tools-common.c:131
+#: ../client/pk-console-test.c:523 ../client/pk-tools-common.c:131
 msgid "More than one package matches:"
 msgstr "Pasuje więcej niż jeden pakiet:"
 
 #. TRANSLATORS: This finds out which package in the list to use
-#: ../client/pk-console-test.c:530 ../client/pk-tools-common.c:138
+#: ../client/pk-console-test.c:532 ../client/pk-tools-common.c:138
 msgid "Please choose the correct package: "
 msgstr "Proszę wybrać poprawny pakiet: "
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console-test.c:730
+#: ../client/pk-console-test.c:734
 #, c-format
 msgid "This tool could not find the available package: %s"
 msgstr "Te narzędzie nie może znaleźć dostępnego pakietu: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console-test.c:758
+#: ../client/pk-console-test.c:762
 #, c-format
 msgid "This tool could not find the installed package: %s"
 msgstr "Te narzędzie nie może znaleźć zainstalowanego pakietu: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console-test.c:786 ../client/pk-console-test.c:814
+#: ../client/pk-console-test.c:790 ../client/pk-console-test.c:818
 #, c-format
 msgid "This tool could not find the package: %s"
 msgstr "Te narzędzie nie może znaleźć pakietu: %s"
@@ -781,20 +782,20 @@ msgstr "Te narzędzie nie może znaleźć pakietu: %s"
 #. 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-test.c:842 ../client/pk-console-test.c:868
-#: ../client/pk-console-test.c:894 ../client/pk-console-test.c:920
-#: ../client/pk-console-test.c:946
+#: ../client/pk-console-test.c:846 ../client/pk-console-test.c:872
+#: ../client/pk-console-test.c:898 ../client/pk-console-test.c:924
+#: ../client/pk-console-test.c:950
 #, c-format
 msgid "This tool could not find all the packages: %s"
 msgstr "Te narzędzie nie może znaleźć wszystkich pakietów: %s"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console-test.c:1257
+#: ../client/pk-console-test.c:1261
 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-test.c:1266
+#: ../client/pk-console-test.c:1270
 msgid "A filename to install is required"
 msgstr "Wymagana jest nazwa pliku do zainstalowania"
 
@@ -920,7 +921,7 @@ msgid "Failed to create '%s': %s"
 msgstr "Utworzenie \"%s\" nie powiodło się: %s"
 
 #. TRANSLATORS: this is a program that monitors PackageKit
-#: ../client/pk-monitor.c:146
+#: ../client/pk-monitor.c:146 ../client/pk-monitor-test.c:299
 msgid "PackageKit Monitor"
 msgstr "Monitor PackageKit"
 
@@ -928,6 +929,14 @@ msgstr "Monitor PackageKit"
 msgid "Cannot show the list of transactions"
 msgstr "Nie można wyświetlić listy transakcji"
 
+#: ../client/pk-monitor-test.c:204
+msgid "Failed to get transaction list"
+msgstr "Uzyskanie listy transakcji nie powiodło się"
+
+#: ../client/pk-monitor-test.c:235
+msgid "Failed to get daemon state"
+msgstr "Uzyskanie stanu demona nie powiodło się"
+
 #. ask the user
 #: ../client/pk-task-text.c:64
 msgid "Do you want to allow installing of unsigned software?"
commit 7f62280c64d1365bfacb0360dea06ede15c381fa
Author: Richard Hughes <richard at hughsie.com>
Date:   Mon Sep 7 11:03:24 2009 +0100

    glib2: fix the method parameters of DownloadPackages

diff --git a/lib/packagekit-glib2/pk-client.c b/lib/packagekit-glib2/pk-client.c
index 1e8a5ef..8906ce3 100644
--- a/lib/packagekit-glib2/pk-client.c
+++ b/lib/packagekit-glib2/pk-client.c
@@ -42,6 +42,7 @@
 #include <packagekit-glib2/pk-common.h>
 #include <packagekit-glib2/pk-enum.h>
 #include <packagekit-glib2/pk-marshal.h>
+#include <packagekit-glib2/pk-package-ids.h>
 
 #include "egg-debug.h"
 
@@ -324,7 +325,7 @@ pk_client_state_finish (PkClientState *state, GError *error)
 	}
 
 	/* remove from list */
-	g_ptr_array_remove (state->client->priv->calls, state);
+	g_ptr_array_remove (priv->calls, state);
 	egg_debug ("state array remove %p", state);
 
 	/* complete */
@@ -911,7 +912,6 @@ pk_client_set_locale_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkClientState
 		state->call = dbus_g_proxy_begin_call (state->proxy, "DownloadPackages",
 						       (DBusGProxyCallNotify) pk_client_method_cb, state, NULL,
 						       G_TYPE_STRV, state->package_ids,
-						       G_TYPE_STRING, state->directory,
 						       G_TYPE_INVALID);
 	} else if (state->role == PK_ROLE_ENUM_GET_UPDATES) {
 		filters_text = pk_filter_bitfield_to_text (state->filters);
@@ -3396,7 +3396,7 @@ pk_client_test (gpointer user_data)
 
 	/************************************************************/
 	egg_test_title (test, "resolve package");
-	package_ids = g_strsplit ("glib2;2.14.0;i386;fedora,powertop", ",", -1);
+	package_ids = pk_package_ids_from_text ("glib2;2.14.0;i386;fedora&powertop");
 	pk_client_resolve_async (client, pk_bitfield_value (PK_FILTER_ENUM_INSTALLED), package_ids, NULL,
 				 (PkProgressCallback) pk_client_test_progress_cb, test,
 				 (GAsyncReadyCallback) pk_client_test_resolve_cb, test);
@@ -3425,7 +3425,7 @@ pk_client_test (gpointer user_data)
 
 	/************************************************************/
 	egg_test_title (test, "get details about package");
-	package_ids = g_strsplit ("powertop;1.8-1.fc8;i386;fedora", ",", -1);
+	package_ids = pk_package_ids_from_id ("powertop;1.8-1.fc8;i386;fedora");
 	pk_client_get_details_async (client, package_ids, NULL,
 				     (PkProgressCallback) pk_client_test_progress_cb, test,
 				     (GAsyncReadyCallback) pk_client_test_get_details_cb, test);
commit 029a597b05b09cc740557be7d6ff8d3e8c336693
Author: mgiri <mgiri at fedoraproject.org>
Date:   Mon Sep 7 09:23:47 2009 +0000

    Sending translation for Oriya

diff --git a/po/or.po b/po/or.po
index a4dd81e..bff4e28 100644
--- a/po/or.po
+++ b/po/or.po
@@ -7,8 +7,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: packagekit.master.or\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-09-01 02:36+0000\n"
-"PO-Revision-Date: 2009-09-07 12:33+0530\n"
+"POT-Creation-Date: 2009-09-07 08:27+0000\n"
+"PO-Revision-Date: 2009-09-07 14:53+0530\n"
 "Last-Translator: Manoj Kumar Giri <mgiri at redhat.com>\n"
 "Language-Team: Oriya <oriya-it at googlegroups.com>\n"
 "MIME-Version: 1.0\n"
@@ -23,277 +23,286 @@ msgstr ""
 "\n"
 "\n"
 "\n"
+"\n"
 
 #. TRANSLATORS: this is an atomic transaction
-#: ../client/pk-console.c:235
+#: ../client/pk-console.c:238 ../client/pk-console-test.c:147
 msgid "Transaction"
 msgstr "କାରବାର"
 
 #. TRANSLATORS: this is the time the transaction was started in system timezone
-#: ../client/pk-console.c:237
+#: ../client/pk-console.c:240 ../client/pk-console-test.c:149
 msgid "System time"
 msgstr "ତନ୍ତ୍ର ସମୟ"
 
 #. TRANSLATORS: this is if the transaction succeeded or not
-#: ../client/pk-console.c:239
+#: ../client/pk-console.c:242 ../client/pk-console-test.c:151
 msgid "Succeeded"
 msgstr "ସଫଳ ହୋଇଛି"
 
-#: ../client/pk-console.c:239
+#: ../client/pk-console.c:242 ../client/pk-console-test.c:151
 msgid "True"
 msgstr "True (ସତ୍ୟ)"
 
-#: ../client/pk-console.c:239
+#: ../client/pk-console.c:242 ../client/pk-console-test.c:151
 msgid "False"
 msgstr "False (ମିଥ୍ୟା)"
 
 #. TRANSLATORS: this is the transactions role, e.g. "update-system"
 #. TRANSLATORS: the trasaction role, e.g. update-system
-#: ../client/pk-console.c:241 ../src/pk-polkit-action-lookup.c:327
+#: ../client/pk-console.c:244 ../client/pk-console-test.c:153
+#: ../src/pk-polkit-action-lookup.c:327
 msgid "Role"
 msgstr "ଭୂମିକା"
 
 #. TRANSLATORS: this is The duration of the transaction
-#: ../client/pk-console.c:246
+#: ../client/pk-console.c:249 ../client/pk-console-test.c:158
 msgid "Duration"
 msgstr "ଅବଧି"
 
-#: ../client/pk-console.c:246
+#: ../client/pk-console.c:249 ../client/pk-console-test.c:158
 msgid "(seconds)"
 msgstr "(ସେକଣ୍ଡ)"
 
 #. TRANSLATORS: this is The command line used to do the action
 #. TRANSLATORS: the command line of the thing that wants the authentication
-#: ../client/pk-console.c:250 ../src/pk-polkit-action-lookup.c:341
+#: ../client/pk-console.c:253 ../client/pk-console-test.c:162
+#: ../src/pk-polkit-action-lookup.c:341
 msgid "Command line"
 msgstr "ପାଠ୍ୟ ନିର୍ଦ୍ଦେଶ"
 
 #. TRANSLATORS: this is the user ID of the user that started the action
-#: ../client/pk-console.c:252
+#: ../client/pk-console.c:255 ../client/pk-console-test.c:164
 msgid "User ID"
 msgstr "ଚାଳକ ID"
 
 #. TRANSLATORS: this is the username, e.g. hughsie
-#: ../client/pk-console.c:259
+#: ../client/pk-console.c:262 ../client/pk-console-test.c:171
 msgid "Username"
 msgstr "ଚାଳକ ନାମ"
 
 #. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
-#: ../client/pk-console.c:263
+#: ../client/pk-console.c:266 ../client/pk-console-test.c:175
 msgid "Real name"
 msgstr "ପ୍ରକୃତ ନାମ"
 
-#: ../client/pk-console.c:271
+#: ../client/pk-console.c:274 ../client/pk-console-test.c:183
 msgid "Affected packages:"
 msgstr "ପ୍ରଭାବିତ ପ୍ୟାକେଜଗୁଡ଼ିକ:"
 
-#: ../client/pk-console.c:273
+#: ../client/pk-console.c:276 ../client/pk-console-test.c:185
 msgid "Affected packages: None"
 msgstr "ପ୍ରଭାବିତ ପ୍ୟାକେଜଗୁଡ଼ିକ: କିଛିନୁହଁ"
 
 #. TRANSLATORS: When processing, we might have to remove other dependencies
-#: ../client/pk-console.c:334
+#: ../client/pk-console.c:337 ../client/pk-task-text.c:220
 msgid "The following packages have to be removed:"
 msgstr "ନିମ୍ନଲିଖିତ ପ୍ୟାକେଜଗୁଡ଼ିକୁ କାଢ଼ିବାକୁ ହେବ:"
 
 #. TRANSLATORS: When processing, we might have to install other dependencies
-#: ../client/pk-console.c:337
+#: ../client/pk-console.c:340 ../client/pk-task-text.c:225
 msgid "The following packages have to be installed:"
 msgstr "ନିମ୍ନଲିଖିତ ପ୍ୟାକେଜଗୁଡ଼ିକୁ ସ୍ଥାପନ କରିବାକୁ ହେବ:"
 
 #. TRANSLATORS: When processing, we might have to update other dependencies
-#: ../client/pk-console.c:340
+#: ../client/pk-console.c:343 ../client/pk-task-text.c:230
 msgid "The following packages have to be updated:"
 msgstr "ନିମ୍ନଲିଖିତ ପ୍ୟାକେଜଗୁଡ଼ିକୁ ଅଦ୍ୟତନ କରିବାକୁ ହେବ:"
 
 #. TRANSLATORS: When processing, we might have to reinstall other dependencies
-#: ../client/pk-console.c:343
+#: ../client/pk-console.c:346 ../client/pk-task-text.c:235
 msgid "The following packages have to be reinstalled:"
 msgstr "ନିମ୍ନଲିଖିତ ପ୍ୟାକେଜଗୁଡ଼ିକୁ ପୁନଃ ସ୍ଥାପନ କରିବାକୁ ହେବ:"
 
 #. TRANSLATORS: When processing, we might have to downgrade other dependencies
-#: ../client/pk-console.c:346
+#: ../client/pk-console.c:349 ../client/pk-task-text.c:240
 msgid "The following packages have to be downgraded:"
 msgstr "ନିମ୍ନଲିଖିତ ପ୍ୟାକେଜଗୁଡ଼ିକୁ ପଦ ଅବନତି କରିବାକୁ ହେବ:"
 
 #. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:360
+#: ../client/pk-console.c:363 ../client/pk-console-test.c:205
 msgid "Distribution"
 msgstr "ବଣ୍ଟନ"
 
 #. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:362
+#: ../client/pk-console.c:365 ../client/pk-console-test.c:207
 msgid "Type"
 msgstr "ପ୍ରକାର"
 
 #. TRANSLATORS: this is any summary text describing the upgrade
 #. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:364 ../client/pk-console.c:387
+#. TRANSLATORS: this is any summary text describing the upgrade
+#. TRANSLATORS: this is the summary of the group
+#: ../client/pk-console.c:367 ../client/pk-console.c:390
+#: ../client/pk-console-test.c:209 ../client/pk-console-test.c:230
 msgid "Summary"
 msgstr "ସାରାଂଶ"
 
 #. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:376
+#: ../client/pk-console.c:379 ../client/pk-console-test.c:219
 msgid "Category"
 msgstr "ବିଭାଗ"
 
 #. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:378
+#: ../client/pk-console.c:381 ../client/pk-console-test.c:221
 msgid "ID"
 msgstr "ID"
 
 #. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:381
+#: ../client/pk-console.c:384 ../client/pk-console-test.c:224
 msgid "Parent"
 msgstr "ମୂଖ୍ୟ"
 
 #. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:384
+#: ../client/pk-console.c:387 ../client/pk-console-test.c:227
 msgid "Name"
 msgstr "ନାମ"
 
 #. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:390
+#: ../client/pk-console.c:393 ../client/pk-console-test.c:233
 msgid "Icon"
 msgstr "ଚିତ୍ରସଂକେତ"
 
 #. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:405
+#: ../client/pk-console.c:408 ../client/pk-console-test.c:247
 msgid "Details about the update:"
 msgstr "ଅଦ୍ୟତନ ବିଷୟରେ ବିସ୍ତୃତ ବିବରଣୀ:"
 
 #. TRANSLATORS: details about the update, package name and version
 #. TRANSLATORS: title, the names of the packages that the method is processing
-#: ../client/pk-console.c:407 ../src/pk-polkit-action-lookup.c:352
+#: ../client/pk-console.c:410 ../client/pk-console-test.c:253
+#: ../client/pk-task-text.c:101 ../client/pk-task-text.c:153
+#: ../src/pk-polkit-action-lookup.c:352
 msgid "Package"
 msgid_plural "Packages"
 msgstr[0] "ପ୍ୟାକେଜ"
 msgstr[1] "ପ୍ୟାକେଜଗୁଡ଼ିକ"
 
 #. TRANSLATORS: details about the update, any packages that this update updates
-#: ../client/pk-console.c:410
+#: ../client/pk-console.c:413 ../client/pk-console-test.c:256
 msgid "Updates"
 msgstr "ଅଦ୍ୟତନଗୁଡ଼ିକ"
 
 #. TRANSLATORS: details about the update, any packages that this update obsoletes
-#: ../client/pk-console.c:414
+#: ../client/pk-console.c:417 ../client/pk-console-test.c:260
 msgid "Obsoletes"
 msgstr "ଅଚଳଗୁଡ଼ିକ"
 
 #. TRANSLATORS: details about the update, the vendor URLs
-#: ../client/pk-console.c:418
+#: ../client/pk-console.c:421 ../client/pk-console-test.c:264
+#: ../client/pk-task-text.c:154
 msgid "Vendor"
 msgstr "ବିକ୍ରେତା"
 
 #. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:422
+#: ../client/pk-console.c:425 ../client/pk-console-test.c:268
 msgid "Bugzilla"
 msgstr "Bugzilla"
 
 #. TRANSLATORS: details about the update, the CVE URLs
-#: ../client/pk-console.c:426
+#: ../client/pk-console.c:429 ../client/pk-console-test.c:272
 msgid "CVE"
 msgstr "CVE"
 
 #. TRANSLATORS: details about the update, if the package requires a restart
-#: ../client/pk-console.c:430
+#: ../client/pk-console.c:433 ../client/pk-console-test.c:276
 msgid "Restart"
 msgstr "ପୁନଃଚାଳନ"
 
 #. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:434
+#: ../client/pk-console.c:437 ../client/pk-console-test.c:280
 msgid "Update text"
 msgstr "ପାଠ୍ୟ ଅଦ୍ୟତନ କରନ୍ତୁ"
 
 #. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:438
+#: ../client/pk-console.c:441 ../client/pk-console-test.c:284
 msgid "Changes"
 msgstr "ପରିବର୍ତ୍ତନଗୁଡ଼ିକ"
 
 #. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:442
+#: ../client/pk-console.c:445 ../client/pk-console-test.c:288
 msgid "State"
 msgstr "ଅବସ୍ଥା"
 
 #. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:447
+#: ../client/pk-console.c:450 ../client/pk-console-test.c:293
 msgid "Issued"
 msgstr "ପ୍ରଦତ୍ତ"
 
 #. TRANSLATORS: details about the update, date the update was updated
-#: ../client/pk-console.c:452
+#: ../client/pk-console.c:455 ../client/pk-console-test.c:298
 msgid "Updated"
 msgstr "ଅଦ୍ୟତିତ"
 
 #. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:472
+#: ../client/pk-console.c:475 ../client/pk-console-test.c:316
 msgid "Enabled"
 msgstr "ସକ୍ରିୟ"
 
 #. TRANSLATORS: if the repo is disabled
-#: ../client/pk-console.c:475
+#: ../client/pk-console.c:478 ../client/pk-console-test.c:319
 msgid "Disabled"
 msgstr "ନିଷ୍କ୍ରିୟ"
 
-#: ../client/pk-console.c:552 ../client/pk-console.c:554
+#: ../client/pk-console.c:555 ../client/pk-console.c:557
 msgid "Percentage"
 msgstr "ଶତକଡ଼ା"
 
-#: ../client/pk-console.c:554
+#: ../client/pk-console.c:557
 msgid "Unknown"
 msgstr "ଅଜଣା"
 
 #. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:596
+#: ../client/pk-console.c:599 ../client/pk-console-test.c:341
 msgid "System restart required by:"
 msgstr "ପାଇଁ ତନ୍ତ୍ର ପୁନଃଚାଳନ ଆବଶ୍ୟକ:"
 
 #. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:599
+#: ../client/pk-console.c:602 ../client/pk-console-test.c:344
 msgid "Session restart required:"
 msgstr "ଅଧିବେଶନ ପୁନଃଚାଳନ ଆବଶ୍ୟକ:"
 
 #. TRANSLATORS: a package requires the system to be restarted due to a security update
-#: ../client/pk-console.c:602
+#: ../client/pk-console.c:605 ../client/pk-console-test.c:347
 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:605
+#: ../client/pk-console.c:608 ../client/pk-console-test.c:350
 msgid "Session restart (security) required:"
 msgstr "ଅଧିବେଶନ ପୁନଃଚାଳନ (ସୁରକ୍ଷା) ଆବଶ୍ୟକ:"
 
 #. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:608
+#: ../client/pk-console.c:611 ../client/pk-console-test.c:353
 msgid "Application restart required by:"
 msgstr "ପାଇଁ ପ୍ରୟୋଗ ପୁନଃଚାଳନ ଆବଶ୍ୟକ:"
 
 #. TRANSLATORS: a package needs to restart their system
-#: ../client/pk-console.c:663
+#: ../client/pk-console.c:666 ../client/pk-console-test.c:704
 msgid "Please restart the computer to complete the update."
 msgstr "ଅଦ୍ୟତନକୁ ସମ୍ପୂର୍ଣ୍ଣ କରିବା ପାଇଁ କମ୍ପୁଟରକୁ ପୁନଃଚାଳନ କରନ୍ତୁ।"
 
 #. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:666
+#: ../client/pk-console.c:669 ../client/pk-console-test.c:707
 msgid "Please logout and login to complete the update."
 msgstr "ଅଦ୍ୟତନକୁ ସମ୍ପୂର୍ଣ୍ଣ କରିବା ପାଇଁ ଦୟାକରି ଲଗଆଉଟ କରିସାରି ପୁଣି ଲଗଇନ କରନ୍ତୁ।"
 
 #. TRANSLATORS: a package needs to restart the application
-#: ../client/pk-console.c:669
+#: ../client/pk-console.c:672
 msgid "Please restart the application as it is being used."
 msgstr "ପ୍ରୟୋଗଟି ବ୍ୟବହୃତ ହେଉଥିବା ପରି ଦୟାକରି ପୁନଃଚାଳନ କରନ୍ତୁ।"
 
 #. TRANSLATORS: a package needs to restart their system (due to security)
-#: ../client/pk-console.c:672
+#: ../client/pk-console.c:675 ../client/pk-console-test.c:710
 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:675
+#: ../client/pk-console.c:678 ../client/pk-console-test.c:713
 msgid ""
 "Please logout and login to complete the update as important security updates "
 "have been installed."
@@ -302,498 +311,560 @@ msgstr ""
 "ଅଦ୍ୟତନଗୁଡ଼ିକ ସ୍ଥାପିତ ହୋଇସାରିଛି।"
 
 #. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:807
+#: ../client/pk-console.c:810
 #, c-format
 msgid "The package %s is already installed"
 msgstr "ପ୍ୟାକେଜ %s ପୂର୍ବରୁ ସ୍ଥାପିତ ହୋଇଛି"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:815
+#: ../client/pk-console.c:818
 #, c-format
 msgid "The package %s could not be installed: %s"
 msgstr "ପ୍ୟାକେଜ %s କୁ ସ୍ଥାପନ କରିହେଲା ନାହିଁ: %s"
 
 #. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
-#: ../client/pk-console.c:841 ../client/pk-console.c:889
-#: ../client/pk-console.c:913 ../client/pk-console.c:961
-#: ../client/pk-console.c:1057 ../client/pk-console.c:1170
-#: ../client/pk-console.c:1231 ../client/pk-tools-common.c:62
-#: ../client/pk-tools-common.c:81 ../client/pk-tools-common.c:89
+#: ../client/pk-console.c:844 ../client/pk-console.c:892
+#: ../client/pk-console.c:916 ../client/pk-console.c:964
+#: ../client/pk-console.c:1060 ../client/pk-console.c:1173
+#: ../client/pk-console.c:1234 ../client/pk-tools-common.c:63
+#: ../client/pk-tools-common.c:82 ../client/pk-tools-common.c:90
 #, c-format
 msgid "Internal error: %s"
 msgstr "ଆଭ୍ୟନ୍ତରିଣ ତ୍ରୁଟି: %s"
 
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:873 ../client/pk-console.c:945
-#: ../client/pk-console.c:1263
+#. ask the user
+#: ../client/pk-console.c:876 ../client/pk-console.c:948
+#: ../client/pk-console.c:1266 ../client/pk-task-text.c:299
 msgid "Proceed with changes?"
 msgstr "ପରିବର୍ତ୍ତନଗୁଡ଼ିକ ସହିତ ଅଗ୍ରସର ହେବେ କି?"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:878 ../client/pk-console.c:950
+#: ../client/pk-console.c:881 ../client/pk-console.c:953
 msgid "The package install was canceled!"
 msgstr "ପ୍ୟାକେଜ ସ୍ଥାପନକୁ ବାତିଲ କରାଯାଇଥିଲା!"
 
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:897 ../client/pk-console.c:1631
+#: ../client/pk-console.c:900 ../client/pk-console.c:1634
 #, c-format
 msgid "This tool could not install the packages: %s"
 msgstr "ଏହା ମଧ୍ୟ ପ୍ୟାକେଜଗୁଡ଼ିକୁ ସ୍ଥାପନ କରିପାରିଲା ନାହିଁ: %s"
 
 #. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:969
+#: ../client/pk-console.c:972
 #, c-format
 msgid "This tool could not install the files: %s"
 msgstr "ଏହା ମଧ୍ୟ ଫାଇଲଗୁଡ଼ିକୁ ସ୍ଥାପନ କରିପାରିଲା ନାହିଁ: %s"
 
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:1025
+#: ../client/pk-console.c:1028
 #, c-format
 msgid "This tool could not remove %s: %s"
 msgstr "ଏହା ମଧ୍ଯ %sକୁ କାଢ଼ିପାରିଲା ନାହିଁ: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:1048 ../client/pk-console.c:1086
-#: ../client/pk-console.c:1115
+#: ../client/pk-console.c:1051 ../client/pk-console.c:1089
+#: ../client/pk-console.c:1118
 #, c-format
 msgid "This tool could not remove the packages: %s"
 msgstr "ଏହା ମଧ୍ଯ ପ୍ୟାକେଜଗୁଡ଼ିକୁ କାଢ଼ିପାରିଲା ନାହିଁ: %s"
 
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:1101
+#: ../client/pk-console.c:1104
 msgid "Proceed with additional packages?"
 msgstr "ଅତିରିକ୍ତ ପ୍ୟାକେଜଗୁଡ଼ିକ ସହିତ ଅଗ୍ରସର ହେବେ କି?"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:1106
+#: ../client/pk-console.c:1109
 msgid "The package removal was canceled!"
 msgstr "ପ୍ୟାକେଜ କାଢ଼ିବାକୁ ବାତିଲ କରାଯାଇଥିଲା!"
 
 #. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:1147
+#: ../client/pk-console.c:1150
 #, c-format
 msgid "This tool could not download the package %s as it could not be found"
 msgstr "ଏହା ମଧ୍ଯ ପ୍ୟାକେଜ %sକୁ ଆହରଣ କରିପାରିଲା ନାହିଁ କାରଣ ଏହା ମିଳିଲା ନାହିଁ"
 
 #. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:1178
+#: ../client/pk-console.c:1181
 #, c-format
 msgid "This tool could not download the packages: %s"
 msgstr "ଏହା ମଧ୍ଯ ପ୍ୟାକେଜଗୁଡ଼ିକୁ ଆହରଣ କରିପାରିଲା ନାହିଁ: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1210 ../client/pk-console.c:1222
-#: ../client/pk-console.c:1277
+#: ../client/pk-console.c:1213 ../client/pk-console.c:1225
+#: ../client/pk-console.c:1280
 #, c-format
 msgid "This tool could not update %s: %s"
 msgstr "ଏହା ମଧ୍ଯ %sକୁ ଅଦ୍ୟତନ କରିପାରିଲା ନାହିଁ: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:1268
+#: ../client/pk-console.c:1271
 msgid "The package update was canceled!"
 msgstr "ପ୍ୟାକେଜ ଅଦ୍ୟତନକୁ ବାତିଲ କରାଯାଇଥିଲା!"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1301 ../client/pk-console.c:1309
+#: ../client/pk-console.c:1304 ../client/pk-console.c:1312
 #, c-format
 msgid "This tool could not get the requirements for %s: %s"
 msgstr "ଏହା ମଧ୍ଯ %s ପାଇଁ ଆବଶ୍ୟକତାଗୁଡ଼ିକୁ ପାଇଲା ନାହିଁ: %s"
 
 #. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:1331 ../client/pk-console.c:1339
+#: ../client/pk-console.c:1334 ../client/pk-console.c:1342
 #, c-format
 msgid "This tool could not get the dependencies for %s: %s"
 msgstr "ଏହା ମଧ୍ଯ %s ପାଇଁ ନିର୍ଭରତାଗୁଡ଼ିକୁ ପାଇଲା ନାହିଁ: %s"
 
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:1361 ../client/pk-console.c:1369
+#: ../client/pk-console.c:1364 ../client/pk-console.c:1372
 #, c-format
 msgid "This tool could not get package details for %s: %s"
 msgstr "ଏହା ମଧ୍ଯ %s ପାଇଁ ପ୍ୟାକେଜ ବିବରଣୀ ପାଇଲା ନାହିଁ: %s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1391
+#: ../client/pk-console.c:1394
 #, c-format
 msgid "This tool could not find the files for %s: %s"
 msgstr "ଏହା ମଧ୍ଯ %s ପାଇଁ ଫାଇଲଗୁଡ଼ିକୁ ପାଇଲା ନାହିଁ: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1399
+#: ../client/pk-console.c:1402
 #, c-format
 msgid "This tool could not get the file list for %s: %s"
 msgstr "ଏହା ମଧ୍ଯ %s ପାଇଁ ଫାଇଲ ତାଲିକା ପାଇଲା ନାହିଁ: %s"
 
 #. TRANSLATORS: There was an error getting the list of packages. The filename follows
-#: ../client/pk-console.c:1421
+#: ../client/pk-console.c:1424
 #, c-format
 msgid "File already exists: %s"
 msgstr "ଫାଇଲ ପୂର୍ବରୁ ଅବସ୍ଥିତ: %s"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1426 ../client/pk-console.c:1482
-#: ../client/pk-console.c:1557
+#: ../client/pk-console.c:1429 ../client/pk-console.c:1485
+#: ../client/pk-console.c:1560
 msgid "Getting package list"
 msgstr "ପ୍ୟାକେଜ ତାଲିକା ଗ୍ରହଣ କରୁଅଛି"
 
 #. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1432 ../client/pk-console.c:1488
-#: ../client/pk-console.c:1563
+#: ../client/pk-console.c:1435 ../client/pk-console.c:1491
+#: ../client/pk-console.c:1566
 #, c-format
 msgid "This tool could not get package list: %s"
 msgstr "ଏହା ମଧ୍ଯ ପ୍ୟାକେଜ ତାଲିକା ପାଇଲା ନାହିଁ: %s"
 
 #. TRANSLATORS: There was an error saving the list
-#: ../client/pk-console.c:1443
+#: ../client/pk-console.c:1446
 #, c-format
 msgid "Failed to save to disk"
 msgstr "ଡିସ୍କରେ ସଂରକ୍ଷଣ କରିବାରେ ବିଫଳ"
 
 #. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1477 ../client/pk-console.c:1552
+#: ../client/pk-console.c:1480 ../client/pk-console.c:1555
 #, c-format
 msgid "File does not exist: %s"
 msgstr "ଫାଇଲ ଅବସ୍ଥିତ ନାହିଁ: %s"
 
 #. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1509
+#: ../client/pk-console.c:1512
 msgid "Packages to add"
 msgstr "ଯୋଗ କରିବା ପାଇଁ ପ୍ୟାକେଜଗୁଡ଼ିକ"
 
 #. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1517
+#: ../client/pk-console.c:1520
 msgid "Packages to remove"
 msgstr "କାଢ଼ାଯିବା ପାଇଁ ପ୍ୟାକେଜଗୁଡ଼ିକ"
 
 #. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1585
+#: ../client/pk-console.c:1588
 #, c-format
 msgid "No new packages need to be installed"
 msgstr "କୌଣସି ନୂତନ ପ୍ୟାକେଜ ସ୍ଥାପନ କରିବା ଆବଶ୍ୟକ ନାହିଁ"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1591
+#: ../client/pk-console.c:1594
 msgid "To install"
 msgstr "ସ୍ଥାପନ କରିବାକୁ"
 
 #. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1603
+#: ../client/pk-console.c:1606
 msgid "Searching for package: "
 msgstr "ପ୍ୟାକେଜ ପାଇଁ ସନ୍ଧାନ କରୁଅଛି: "
 
 #. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1607
+#: ../client/pk-console.c:1610
 msgid "not found."
 msgstr "ମିଳିଲା ନାହିଁ।"
 
 #. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1618
+#: ../client/pk-console.c:1621
 #, c-format
 msgid "No packages can be found to install"
 msgstr "ସ୍ଥାପନ କରିବା ପାଇଁ କୌଣସି ପ୍ୟାକେଜ ମିଳିଲା ନାହିଁ"
 
 #. TRANSLATORS: installing new packages from package list
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
-#: ../client/pk-console.c:1624
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:886
+#: ../client/pk-console.c:1627
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:885
 #, c-format
 msgid "Installing packages"
 msgstr "ପ୍ୟାକେଜଗୁଡ଼ିକୁ ସ୍ଥାପନ କରୁଅଛି"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1660
+#: ../client/pk-console.c:1663
 #, c-format
 msgid "This tool could not find the update details for %s: %s"
 msgstr "ଏହି ଉପକରଣଟି %s ପାଇଁ ଅଦ୍ୟତନ ବିବରଣୀ ଖୋଜି ପାଉନାହିଁ: %s"
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1668
+#: ../client/pk-console.c:1671
 #, c-format
 msgid "This tool could not get the update details for %s: %s"
 msgstr "ଏହି ଉପକରଣଟି %s ପାଇଁ ଅଦ୍ୟତନ ବିବରଣୀ ପାଇଲା ନାହିଁ: %s"
 
 #. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
-#: ../client/pk-console.c:1699
+#: ../client/pk-console.c:1702
 msgid "Error:"
 msgstr "ତ୍ରୁଟି:"
 
 #. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1713
+#: ../client/pk-console.c:1716 ../client/pk-console-test.c:370
 msgid "Package description"
 msgstr "ପ୍ୟାକେଜ ବର୍ଣ୍ଣନା"
 
 #. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
-#: ../client/pk-console.c:1729
+#: ../client/pk-console.c:1732 ../client/pk-console-test.c:388
 msgid "Message:"
 msgstr "ସନ୍ଦେଶ:"
 
 #. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1757
+#: ../client/pk-console.c:1760 ../client/pk-console-test.c:407
 msgid "Package files"
 msgstr "ପ୍ୟାକେଜ ଫାଇଲଗୁଡ଼ିକ"
 
 #. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1765
+#: ../client/pk-console.c:1768 ../client/pk-console-test.c:402
 msgid "No files"
 msgstr "କୌଣସି ଫାଇଲ ନାହିଁ"
 
 #. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1788
+#: ../client/pk-console.c:1791
 msgid "Repository signature required"
 msgstr "ସଂଗ୍ରହାଳୟ ହସ୍ତାକ୍ଷର ଆବଶ୍ୟକ"
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1798
+#. ask the user
+#: ../client/pk-console.c:1801 ../client/pk-task-text.c:113
 msgid "Do you accept this signature?"
 msgstr "ଆପଣ ଏହି ହସ୍ତାକ୍ଷରକୁ ଗ୍ରହଣ କରିବେ କି?"
 
 #. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1802
+#: ../client/pk-console.c:1805 ../client/pk-task-text.c:117
 msgid "The signature was not accepted."
 msgstr "ଏହି ହସ୍ତାକ୍ଷରକୁ ଗ୍ରହଣ କରାଯାଇନାହିଁ।"
 
 #. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1836
+#: ../client/pk-console.c:1839
 msgid "End user license agreement required"
 msgstr "ଚାଳକ ଅନୁମତି ପତ୍ର ଆବଶ୍ୟକ"
 
 #. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1843
+#: ../client/pk-console.c:1846
 msgid "Do you agree to this license?"
 msgstr "ଆପଣ ଏହି ଅନୁମତି ପତ୍ର ସହିତ ସହମତ କି?"
 
 #. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1847
+#: ../client/pk-console.c:1850
 msgid "The license was refused."
 msgstr "ଅନୁମତି ପତ୍ରକୁ ବାରଣ କରାଯାଇଛି।"
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1876
+#: ../client/pk-console.c:1879 ../client/pk-console-test.c:972
 msgid "The daemon crashed mid-transaction!"
 msgstr "ଡେମନ ମଧ୍ଯ-କାରବାରକୁ ନଷ୍ଟ କରିଛି!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1929
+#: ../client/pk-console.c:1932 ../client/pk-console-test.c:1006
 msgid "PackageKit Console Interface"
 msgstr "PackageKit କୋନସୋଲ ଅନ୍ତରାପୃଷ୍ଠ"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1931
+#: ../client/pk-console.c:1934 ../client/pk-console-test.c:1008
 msgid "Subcommands:"
 msgstr "ଉପ ନିର୍ଦ୍ଦେଶଗୁଡ଼ିକ:"
 
 #. TRANSLATORS: command line argument, if we should show debugging information
 #. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:2024 ../client/pk-generate-pack.c:185
-#: ../client/pk-monitor.c:128
+#: ../client/pk-console.c:2027 ../client/pk-console-test.c:1099
+#: ../client/pk-generate-pack.c:187 ../client/pk-monitor.c:128
+#: ../client/pk-monitor-test.c:282
 #: ../contrib/command-not-found/pk-command-not-found.c:616
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:550
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:549
 #: ../contrib/device-rebind/pk-device-rebind.c:293 ../src/pk-main.c:211
 msgid "Show extra debugging information"
 msgstr "ଅତିରିକ୍ତ ତ୍ରୁଟି ନିବାରଣ ସୂଚନା ଦର୍ଶାନ୍ତୁ"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:2027 ../client/pk-monitor.c:130
+#: ../client/pk-console.c:2030 ../client/pk-console-test.c:1102
+#: ../client/pk-monitor.c:130 ../client/pk-monitor-test.c:284
 msgid "Show the program version and exit"
 msgstr "ପ୍ରଗ୍ରାମ ସଂସ୍କରଣ ଦର୍ଶାନ୍ତୁ ଏବଂ ପ୍ରସ୍ଥାନ କରନ୍ତୁ"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:2030
+#: ../client/pk-console.c:2033 ../client/pk-console-test.c:1105
 msgid "Set the filter, e.g. installed"
 msgstr "ଛାଣକ ସେଟ କରନ୍ତୁ, ଯେପରିକି ସ୍ଥାପିତ"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:2033
+#: ../client/pk-console.c:2036 ../client/pk-console-test.c:1108
 msgid "Exit without waiting for actions to complete"
 msgstr "କାର୍ଯ୍ୟ ସମ୍ପୂର୍ଣ୍ଣ ହେବା ପର୍ଯ୍ୟନ୍ତ ଅପେକ୍ଷା ନକରି ପ୍ରସ୍ଥାନ କରନ୍ତୁ"
 
 #. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:2060
+#: ../client/pk-console.c:2063
 msgid "This tool could not connect to system DBUS."
 msgstr "ଏହି ଉପକରଣ ତନ୍ତ୍ର DBUS ସହିତ ସଂଯୁକ୍ତ ହୋଇପାରିଲା ନାହିଁ।"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:2150
+#: ../client/pk-console.c:2153 ../client/pk-console-test.c:1183
 msgid "The filter specified was invalid"
 msgstr "ଉଲ୍ଲିଖିତ ଛାଣକଟି ଅବୈଧ ଅଟେ"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:2169
+#: ../client/pk-console.c:2172 ../client/pk-console-test.c:1202
 msgid "A search type is required, e.g. name"
 msgstr "ଗୋଟିଏ ସନ୍ଧାନ ପ୍ରକାର ଆବଶ୍ୟକ, ଯେପରିକି ନାମ"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:2176 ../client/pk-console.c:2185
-#: ../client/pk-console.c:2194 ../client/pk-console.c:2203
+#: ../client/pk-console.c:2179 ../client/pk-console.c:2188
+#: ../client/pk-console.c:2197 ../client/pk-console.c:2206
+#: ../client/pk-console-test.c:1209 ../client/pk-console-test.c:1221
+#: ../client/pk-console-test.c:1233 ../client/pk-console-test.c:1245
 msgid "A search term is required"
 msgstr "ଗୋଟିଏ ସନ୍ଧାନ ନିତି ଆବଶ୍ୟକ"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:2210
+#: ../client/pk-console.c:2213 ../client/pk-console-test.c:1255
 msgid "Invalid search type"
 msgstr "ଅବୈଧ ସନ୍ଧାନ ପ୍ରକାର"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:2216
+#: ../client/pk-console.c:2219
 msgid "A package name or filename to install is required"
 msgstr "ସ୍ଥାପନ କରିବା ପାଇଁ ଗୋଟିଏ ପ୍ୟାକେଜ ନାମ କିମ୍ବା ଫାଇଲନାମ ଆବଶ୍ୟକ"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2225
+#: ../client/pk-console.c:2228 ../client/pk-console-test.c:1282
 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:2234
+#: ../client/pk-console.c:2237 ../client/pk-console-test.c:1293
 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:2242
+#: ../client/pk-console.c:2245 ../client/pk-console-test.c:1302
 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:2249
+#: ../client/pk-console.c:2252 ../client/pk-console-test.c:1309
 msgid "Directory not found"
 msgstr "ଡିରେକ୍ଟୋରୀ ମିଳୁନାହିଁ"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2257
+#: ../client/pk-console.c:2260 ../client/pk-console-test.c:1318
 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:2267
+#: ../client/pk-console.c:2270 ../client/pk-console-test.c:1329
 msgid "A transaction identifier (tid) is required"
 msgstr "ଗୋଟିଏ କାରବାର ପରିଚାୟକ (tid) ଆବଶ୍ୟକ"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:2284
+#: ../client/pk-console.c:2287 ../client/pk-console-test.c:1350
 msgid "A package name to resolve is required"
 msgstr "ସମାଧାନ କରିବା ପାଇଁ ଗୋଟିଏ ପ୍ୟାକେଜ ନାମ ଆବଶ୍ୟକ"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:2293 ../client/pk-console.c:2302
+#: ../client/pk-console.c:2296 ../client/pk-console.c:2305
+#: ../client/pk-console-test.c:1361 ../client/pk-console-test.c:1372
 msgid "A repository name is required"
 msgstr "ଗୋଟିଏ ସଂଗ୍ରହାଳୟ ନାମ ଆବଶ୍ୟକ"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2311
+#: ../client/pk-console.c:2314 ../client/pk-console-test.c:1383
 msgid "A repo name, parameter and value are required"
 msgstr "ଗୋଟିଏ ସଂଗ୍ରହାଳୟ, ପ୍ରାଚଳ ଏବଂ ମୂଲ୍ୟ ଆବଶ୍ୟକ"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:2325
+#: ../client/pk-console.c:2328 ../client/pk-console-test.c:1401
 msgid "An action, e.g. 'update-system' is required"
 msgstr "ଗୋଟିଏ କାର୍ଯ୍ୟ, ଉଦାହରଣ ସ୍ୱରୂପ 'update-system' ଆବଶ୍ୟକ"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:2332
+#: ../client/pk-console.c:2335 ../client/pk-console-test.c:1408
 msgid "A correct role is required"
 msgstr "ଗୋଟିଏ ସଠିକ ଭୂମିକା ଆବଶ୍ୟକ"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2339
+#: ../client/pk-console.c:2342 ../client/pk-console-test.c:1415
 msgid "Failed to get the time since this action was last completed"
 msgstr "ଏହି କାର୍ଯ୍ୟଟି ଶେଷରେ ସମ୍ପୂର୍ଣ୍ଣ ହୋଇଥିବା ହେତୁ ସମୟ ପାଇବାରେ ବିଫଳ"
 
 #. TRANSLATORS: The user did not provide a package name
 #. TRANSLATORS: This is when the user fails to supply the package name
-#: ../client/pk-console.c:2349 ../client/pk-console.c:2361
-#: ../client/pk-console.c:2370 ../client/pk-console.c:2388
-#: ../client/pk-console.c:2397 ../client/pk-generate-pack.c:241
+#: ../client/pk-console.c:2352 ../client/pk-console.c:2364
+#: ../client/pk-console.c:2373 ../client/pk-console.c:2391
+#: ../client/pk-console.c:2400 ../client/pk-console-test.c:1425
+#: ../client/pk-console-test.c:1440 ../client/pk-console-test.c:1449
+#: ../client/pk-console-test.c:1469 ../client/pk-console-test.c:1478
+#: ../client/pk-generate-pack.c:243
 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:2379
+#: ../client/pk-console.c:2382 ../client/pk-console-test.c:1458
 msgid "A package provide string is required"
 msgstr "ଗୋଟିଏ ପ୍ୟାକେଜ ପ୍ରଦତ୍ତ ବାକ୍ୟଖଣ୍ଡ ଆବଶ୍ୟକ"
 
 #. TRANSLATORS: The user didn't specify a filename to create as a list
-#: ../client/pk-console.c:2406
+#: ../client/pk-console.c:2409
 msgid "A list file name to create is required"
 msgstr "ନିର୍ମାଣ କରିବା ପାଇଁ ଗୋଟିଏ ତାଲିକା ଫାଇଲ ନାମ ଆବଶ୍ୟକ"
 
 #. TRANSLATORS: The user didn't specify a filename to open as a list
-#: ../client/pk-console.c:2416 ../client/pk-console.c:2426
+#: ../client/pk-console.c:2419 ../client/pk-console.c:2429
 msgid "A list file to open is required"
 msgstr "ଖୋଲିବା ପାଇଁ ଗୋଟିଏ ତାଲିକା ଫାଇଲ ଆବଶ୍ୟକ"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2480
+#: ../client/pk-console.c:2483 ../client/pk-console-test.c:1538
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "ବିକଳ୍ପ '%s' ଟି ସମର୍ଥିତ ନୁହଁ"
 
 #. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2493
+#: ../client/pk-console.c:2496
 msgid "Incorrect privileges for this operation"
 msgstr "ଏହି ପ୍ରୟୋଗ ପାଇଁ ଭୁଲ ଅଧିକାର"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2496
+#. /* TRANSLATORS: User does not have permission to do this */
+#. g_print ("%s\n", _("Incorrect privileges for this operation"));
+#. TRANSLATORS: Generic failure of what they asked to do
+#: ../client/pk-console.c:2499 ../client/pk-console-test.c:1550
 msgid "Command failed"
 msgstr "ନିର୍ଦ୍ଦେଶ ବିଫଳ ହୋଇଛି"
 
+#. TRANSLATORS: more than one package could be found that matched, to follow is a list of possible packages
+#: ../client/pk-console-test.c:523 ../client/pk-tools-common.c:131
+msgid "More than one package matches:"
+msgstr "ଗୋଟିଏରୁ ଅଧିକ ପ୍ୟାକେଜ ମେଳ ଖାଉଛି:"
+
+#. TRANSLATORS: This finds out which package in the list to use
+#: ../client/pk-console-test.c:532 ../client/pk-tools-common.c:138
+msgid "Please choose the correct package: "
+msgstr "ଦୟାକରି ସଠିକ ପ୍ୟାକେଜ ବାଛନ୍ତୁ: "
+
+#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
+#: ../client/pk-console-test.c:734
+#, c-format
+msgid "This tool could not find the 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-test.c:762
+#, 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-test.c:790 ../client/pk-console-test.c:818
+#, c-format
+msgid "This tool could not find the package: %s"
+msgstr "ଏହି ସାଧନ ପ୍ୟାକେଜଗୁଡ଼ିକୁ ଖୋଜି ପାଇଲା ନାହିଁ: %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-test.c:846 ../client/pk-console-test.c:872
+#: ../client/pk-console-test.c:898 ../client/pk-console-test.c:924
+#: ../client/pk-console-test.c:950
+#, c-format
+msgid "This tool could not find all the packages: %s"
+msgstr "ଏହି ସାଧନ ସମସ୍ତ ପ୍ୟାକେଜଗୁଡ଼ିକୁ ଖୋଜି ପାଇଲା ନାହିଁ: %s"
+
+#. TRANSLATORS: the user did not specify what they wanted to install
+#: ../client/pk-console-test.c:1261
+msgid "A package name to install is required"
+msgstr "ସ୍ଥାପନ କରିବା ପାଇଁ ଗୋଟିଏ ପ୍ୟାକେଜ ନାମ ଆବଶ୍ୟକ"
+
+#. TRANSLATORS: the user did not specify what they wanted to install
+#: ../client/pk-console-test.c:1270
+msgid "A filename to install is required"
+msgstr "ସ୍ଥାପନ କରିବା ପାଇଁ ଗୋଟିଏ ଫାଇଲ ନାମ ଆବଶ୍ୟକ"
+
 #. TRANSLATORS: This is the state of the transaction
-#: ../client/pk-generate-pack.c:101
+#: ../client/pk-generate-pack.c:103
 msgid "Downloading"
 msgstr "ଆହରଣ କରୁଅଛି"
 
 #. TRANSLATORS: This is when the main packages are being downloaded
-#: ../client/pk-generate-pack.c:121
+#: ../client/pk-generate-pack.c:123
 msgid "Downloading packages"
 msgstr "ପ୍ୟାକେଜ ଆହରଣ କରୁଅଛି"
 
 #. TRANSLATORS: This is when the dependency packages are being downloaded
-#: ../client/pk-generate-pack.c:126
+#: ../client/pk-generate-pack.c:128
 msgid "Downloading dependencies"
 msgstr "ନିର୍ଭରତାଗୁଡ଼ିକୁ ଆହରଣ କରୁଅଛି"
 
 #. TRANSLATORS: we can exclude certain packages (glibc) when we know they'll exist on the target
-#: ../client/pk-generate-pack.c:188
+#: ../client/pk-generate-pack.c:190
 msgid "Set the file name of dependencies to be excluded"
 msgstr "ବାହାର କରିବା ପାଇଁ ନିର୍ଭରତାଗୁଡ଼ିକର ଫାଇଲ ନାମକୁ ସେଟ କରନ୍ତୁ"
 
 #. TRANSLATORS: the output location
-#: ../client/pk-generate-pack.c:191
+#: ../client/pk-generate-pack.c:193
 msgid "The output file or directory (the current directory is used if ommitted)"
 msgstr "ନିର୍ଗମ ଫାଇଲ କିମ୍ବା ଡିରେକ୍ଟୋରୀ (ଛାଡ଼ି ଯାଇଥିଲେ ପ୍ରଚଳିତ ଡିରେକ୍ଟୋରୀକୁ ବ୍ୟବହାର କରାଯାଇଛି)"
 
 #. TRANSLATORS: put a list of packages in the pack
-#: ../client/pk-generate-pack.c:194
+#: ../client/pk-generate-pack.c:196
 msgid "The package to be put into the service pack"
 msgstr "ସର୍ଭିସ ପ୍ୟାକ ମଧ୍ଯରେ ରଖିବାକୁ ଥିବା ପ୍ୟାକେଜ"
 
 #. TRANSLATORS: put all pending updates in the pack
-#: ../client/pk-generate-pack.c:197
+#: ../client/pk-generate-pack.c:199
 msgid "Put all updates available in the service pack"
 msgstr "ସର୍ଭିସ ପ୍ୟାକ ମଧ୍ଯରେ ସମସ୍ତ ଉପଲବ୍ଧ ଅଦ୍ୟତନଗୁଡ଼ିକୁ ରଖନ୍ତୁ"
 
 #. TRANSLATORS: This is when the user fails to supply the correct arguments
-#: ../client/pk-generate-pack.c:225
+#: ../client/pk-generate-pack.c:227
 msgid "Neither --package or --updates option selected."
 msgstr "--package କିମ୍ବା --updates ବିକଳ୍ପକୁ ବଛାହୋଇନାହିଁ।"
 
 #. TRANSLATORS: This is when the user fails to supply just one argument
-#: ../client/pk-generate-pack.c:233
+#: ../client/pk-generate-pack.c:235
 msgid "Both options selected."
 msgstr "ଉଭୟ ବିକଳ୍ପଗୁଡ଼ିକୁ ବଛାହୋଇଛି।"
 
 #. TRANSLATORS: This is when the user fails to supply the output
-#: ../client/pk-generate-pack.c:249
+#: ../client/pk-generate-pack.c:251
 msgid "A output directory or file name is required"
 msgstr "ଗୋଟିଏ ନିର୍ଗମ ଡିରେକ୍ଟୋରୀ କିମ୍ବା ଫାଇଲ ନାମ ଆବଶ୍ୟକ"
 
 #. TRANSLATORS: This is when the backend doesn't have the capability to get-depends
 #. TRANSLATORS: This is when the backend doesn't have the capability to download
-#: ../client/pk-generate-pack.c:267 ../client/pk-generate-pack.c:273
+#: ../client/pk-generate-pack.c:269 ../client/pk-generate-pack.c:275
 msgid "The package manager cannot perform this type of operation."
 msgstr "ପ୍ୟାକେଜ ପରିଚାଳକ ଏହି ପ୍ରକାର ପ୍ରୟୋଗକୁ କାର୍ଯ୍ୟକାରୀ କରିପାରେ ନାହିଁ।"
 
 #. TRANSLATORS: This is when the distro didn't include libarchive support into PK
-#: ../client/pk-generate-pack.c:280
+#: ../client/pk-generate-pack.c:282
 msgid ""
 "Service packs cannot be created as PackageKit was not built with libarchive "
 "support."
@@ -802,60 +873,60 @@ msgstr ""
 "ହୋଇନାହିଁ।"
 
 #. TRANSLATORS: the user specified an absolute path, but didn't get the extension correct
-#: ../client/pk-generate-pack.c:291
+#: ../client/pk-generate-pack.c:293
 msgid "If specifying a file, the service pack name must end with"
 msgstr "ଯଦି ଗୋଟିଏ ଫାଇଲକୁ ଉଲ୍ଲେଖ କରାଯାଏ, ତେବେ ସର୍ଭିସ ପ୍ୟାକ ନାମ ଏହା ସହିତ ସମାପ୍ତ ହୋଇଥାଏ"
 
 #. TRANSLATORS: This is when file already exists
-#: ../client/pk-generate-pack.c:307
+#: ../client/pk-generate-pack.c:309
 msgid "A pack with the same name already exists, do you want to overwrite it?"
 msgstr "ସମାନ ନାମ ବିଶିଷ୍ଟ ଗୋଟିଏ ପ୍ୟାକ ପୂର୍ବରୁ ଅବସ୍ଥିତ, ଆପଣ ଏହାକୁ ନବଲିଖନ କରିବାକୁ ଚାହୁଁଛନ୍ତି କି?"
 
 #. TRANSLATORS: This is when the pack was not overwritten
-#: ../client/pk-generate-pack.c:310
+#: ../client/pk-generate-pack.c:312
 msgid "The pack was not overwritten."
 msgstr "ପ୍ୟାକଟି ନବଲିଖନ ହୋଇନାହିଁ।"
 
 #. TRANSLATORS: This is when the temporary directory cannot be created, the directory name follows
-#: ../client/pk-generate-pack.c:323
+#: ../client/pk-generate-pack.c:325
 msgid "Failed to create directory:"
 msgstr "ଡିରେକ୍ଟୋରୀ ନିର୍ମାଣ କରିବାରେ ବିଫଳ:"
 
 #. TRANSLATORS: This is when the list of packages from the remote computer cannot be opened
-#: ../client/pk-generate-pack.c:333
+#: ../client/pk-generate-pack.c:335
 msgid "Failed to open package list."
 msgstr "ପ୍ୟାକେଜ ତାଲିକା ଖୋଲିବାରେ ବିଫଳ।"
 
 #. TRANSLATORS: The package name is being matched up to available packages
-#: ../client/pk-generate-pack.c:344
+#: ../client/pk-generate-pack.c:346
 msgid "Finding package name."
 msgstr "ପ୍ୟାକେଜ ନାମ ଖୋଜୁଅଛି।"
 
 #. TRANSLATORS: This is when the package cannot be found in any software source. The detailed error follows
-#: ../client/pk-generate-pack.c:348
+#: ../client/pk-generate-pack.c:350
 #, c-format
 msgid "Failed to find package '%s': %s"
 msgstr "ପ୍ୟାକେଜ '%s'କୁ ଖୋଜିବାରେ ବିଫଳ: %s"
 
 #. TRANSLATORS: This is telling the user we are in the process of making the pack
-#: ../client/pk-generate-pack.c:365
+#: ../client/pk-generate-pack.c:367
 msgid "Creating service pack..."
 msgstr "ସର୍ଭିସ ପ୍ୟାକ ନିର୍ମାଣ କରୁଅଛି..."
 
 #. TRANSLATORS: we succeeded in making the file
-#: ../client/pk-generate-pack.c:372
+#: ../client/pk-generate-pack.c:374
 #, c-format
 msgid "Service pack created '%s'"
 msgstr "ସର୍ଭିସ ପ୍ୟାକ ନିର୍ମାଣ ହୋଇଅଛି '%s'"
 
 #. TRANSLATORS: we failed to make te file
-#: ../client/pk-generate-pack.c:377
+#: ../client/pk-generate-pack.c:379
 #, c-format
 msgid "Failed to create '%s': %s"
 msgstr "'%s'କୁ ନିର୍ମାଣ କରିବାରେ ବିଫଳ: %s"
 
 #. TRANSLATORS: this is a program that monitors PackageKit
-#: ../client/pk-monitor.c:146
+#: ../client/pk-monitor.c:146 ../client/pk-monitor-test.c:299
 msgid "PackageKit Monitor"
 msgstr "PackageKit ପ୍ରଦର୍ଶିକା"
 
@@ -863,27 +934,112 @@ msgstr "PackageKit ପ୍ରଦର୍ଶିକା"
 msgid "Cannot show the list of transactions"
 msgstr "କାରବାରଗୁଡ଼ିକର ତାଲିକାକୁ ଦର୍ଶାଇପାରିବେ ନାହିଁ"
 
-#. TRANSLATORS: The package was not found in any software sources
-#: ../client/pk-tools-common.c:118
-#, c-format
-msgid "The package could not be found"
-msgstr "ପ୍ୟାକେଜ ମିଳିଲା ନାହିଁ"
+#: ../client/pk-monitor-test.c:204
+msgid "Failed to get transaction list"
+msgstr "କାରବାର ତାଲିକା ଖୋଲିବାରେ ବିଫଳ"
 
-#. TRANSLATORS: more than one package could be found that matched, to follow is a list of possible packages
-#: ../client/pk-tools-common.c:130
-msgid "More than one package matches:"
-msgstr "ଗୋଟିଏରୁ ଅଧିକ ପ୍ୟାକେଜ ମେଳ ଖାଉଛି:"
+#: ../client/pk-monitor-test.c:235
+msgid "Failed to get daemon state"
+msgstr "ଡେମନ ସ୍ଥିତି ପାଇବାରେ ବିଫଳ"
 
-#. TRANSLATORS: This finds out which package in the list to use
-#: ../client/pk-tools-common.c:137
-msgid "Please choose the correct package: "
-msgstr "ଦୟାକରି ସଠିକ ପ୍ୟାକେଜ ବାଛନ୍ତୁ: "
+#. ask the user
+#: ../client/pk-task-text.c:64
+msgid "Do you want to allow installing of unsigned software?"
+msgstr "ହସ୍ତାକ୍ଷର ହୋଇନଥିବା ସଫ୍ଟୱେରକୁ ସ୍ଥାପନ କରିବା ପାଇଁ ଅନୁମତି ଦେବାକୁ ଚାହୁଁଛନ୍ତି କି?"
+
+#: ../client/pk-task-text.c:68
+msgid "The unsigned software will not be installed."
+msgstr "ହସ୍ତାକ୍ଷର ହୋଇନଥିବା ସଫ୍ଟୱେରକୁ ସ୍ଥାପନ କରାହେବ ନାହିଁ।"
+
+#: ../client/pk-task-text.c:100
+msgid "Software source signature required"
+msgstr "ସଫ୍ଟୱେର ଉତ୍ସ ହସ୍ତାକ୍ଷର ଆବଶ୍ୟକ"
+
+#: ../client/pk-task-text.c:102
+msgid "Software source name"
+msgstr "ସଫ୍ୟୱେର ଉତ୍ସ ନାମ"
+
+#: ../client/pk-task-text.c:103
+msgid "Key URL"
+msgstr "ମୂଖ୍ୟ URL"
+
+#: ../client/pk-task-text.c:104
+msgid "Key user"
+msgstr "ମହତ୍ତ୍ୱପୂର୍ଣ୍ଣ ଚାଳକ"
+
+#: ../client/pk-task-text.c:105
+msgid "Key ID"
+msgstr "ମହତ୍ତ୍ୱପୂର୍ଣ୍ଣ ID"
+
+#: ../client/pk-task-text.c:106
+msgid "Key fingerprint"
+msgstr "ମହତ୍ତ୍ୱପୂର୍ଣ୍ଣ ଅଙ୍ଗୁଳି ଚିହ୍ନ"
+
+#: ../client/pk-task-text.c:107
+msgid "Key Timestamp"
+msgstr "ମହତ୍ତ୍ୱପୂର୍ଣ୍ଣ ଟାଇମଷ୍ଟାମ୍ପ"
 
-#: ../client/pk-tools-common.c:162
+#: ../client/pk-task-text.c:151
+msgid "End user licence agreement required"
+msgstr "ଚାଳକ ଅନୁମତି ପତ୍ର ଆବଶ୍ୟକ"
+
+#: ../client/pk-task-text.c:152
+msgid "EULA ID"
+msgstr "EULA ID"
+
+#: ../client/pk-task-text.c:155
+msgid "Agreement"
+msgstr "ବୁଝାମଣା ପତ୍ର"
+
+#. ask the user
+#: ../client/pk-task-text.c:161
+msgid "Do you accept this agreement?"
+msgstr "ଆପଣ ଏହି ବୁଝାମଣା ପତ୍ରକୁ ଗ୍ରହଣ କରିବେ କି?"
+
+#: ../client/pk-task-text.c:165
+msgid "The agreement was not accepted."
+msgstr "ଏହି ବୁଝାମଣା ପତ୍ରକୁ ଗ୍ରହଣ କରାଯାଇନାହିଁ।"
+
+#: ../client/pk-task-text.c:194
+msgid "Media change required"
+msgstr "ମେଡିଆ ପରିବର୍ତ୍ତନ ଆବଶ୍ୟକ"
+
+#: ../client/pk-task-text.c:195
+msgid "Media type"
+msgstr "ମେଡିଆ ପ୍ରକାର"
+
+#: ../client/pk-task-text.c:196
+msgid "Media ID"
+msgstr "ମେଡିଆ ID"
+
+#: ../client/pk-task-text.c:197
+msgid "Text"
+msgstr "ପାଠ୍ୟ"
+
+#. ask the user
+#: ../client/pk-task-text.c:201
+msgid "Please insert the correct media"
+msgstr "ଦୟାକରି ସଠିକ ମେଡିଆକୁ ବାଛନ୍ତୁ"
+
+#: ../client/pk-task-text.c:205
+msgid "The correct media was not inserted."
+msgstr "ସଠିକ ମେଡିଆକୁ ଭର୍ତ୍ତି କରାଯାଇନାହିଁ।"
+
+#: ../client/pk-task-text.c:303
+msgid "The transaction did not proceed."
+msgstr "କାରବାର ଅଗ୍ରସର ହୋଇନଥିଲା।"
+
+#: ../client/pk-text.c:50
 #, c-format
 msgid "Please enter a number from 1 to %i: "
 msgstr "ଦୟାକରି 1 ରୁ %i ଭିତରେ ଥିବା ଗୋଟିଏ ସଂଖ୍ୟାକୁ ଭରଣ କରନ୍ତୁ: "
 
+#. TRANSLATORS: The package was not found in any software sources
+#: ../client/pk-tools-common.c:119
+#, c-format
+msgid "The package could not be found"
+msgstr "ପ୍ୟାକେଜ ମିଳିଲା ନାହିଁ"
+
 #. TRANSLATORS: when we are getting data from the daemon
 #: ../contrib/browser-plugin/pk-plugin-install.c:466
 msgid "Getting package information..."
@@ -1039,174 +1195,174 @@ msgid "Failed to find the package %s, or already installed: %s"
 msgstr "ପ୍ୟାକେଜ %s କୁ ଖୋଜିପାଇବାରେ ଅସଫଳ, ଅଥବା ପୂର୍ବରୁ ସ୍ଥାପିତ ହୋଇଛି: %s"
 
 #. command line argument, simulate what would be done, but don't actually do it
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:553
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:552
 msgid "Don't actually install any packages, only simulate what would be installed"
 msgstr "ପ୍ରକୃତରେ କୌଣସି ପ୍ୟାକେଜଗୁଡ଼ିକୁ ସ୍ଥାପନ କରିନଥାଏ, କେବଳ ଯାହାକୁ ସ୍ଥାପନ କରିବା ଉଚିତ ତାହାକୁ ସକ୍ରିୟ କରନ୍ତୁ"
 
 #. command line argument, do we skip packages that depend on the ones specified
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:556
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:555
 msgid "Do not install dependencies of the core packages"
 msgstr "ମୂଖ୍ୟ ପ୍ୟାକେଜଗୁଡ଼ିକର ନିର୍ଭରକଗୁଡ଼ିକୁ ସ୍ଥାପନ କରନ୍ତୁ ନାହିଁ"
 
 #. command line argument, do we operate quietly
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:559
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:558
 msgid "Do not display information or progress"
 msgstr "ସୂଚନା ଅଥବା ଉନ୍ନତିକୁ ଦର୍ଶାନ୍ତୁ ନାହିଁ"
 
 #. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:577
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:576
 msgid "PackageKit Debuginfo Installer"
 msgstr "PackageKit ତ୍ରୁଟି ନିବାରଣ ସୂଚନା ସ୍ଥାପକ"
 
 #. TRANSLATORS: the use needs to specify a list of package names on the command line
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:589
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:588
 #, c-format
 msgid "ERROR: Specify package names to install."
 msgstr "ତ୍ରୁଟି: ସ୍ଥାପନ କରିବାକୁ ଥିବା ପ୍ୟାକେଜ ନାମଗୁଡ଼ିକୁ ଉଲ୍ଲେଖ କରନ୍ତୁ।"
 
 #. TRANSLATORS: we are getting the list of repositories
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:623
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:622
 #, c-format
 msgid "Getting sources list"
 msgstr "ଉତ୍ସଗୁଡ଼ିକର ତାଲିକା ଗ୍ରହଣ କରୁଅଛି"
 
 #. TRANSLATORS: all completed 100%
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:641
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:681
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:716
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:800
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:844
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:911
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:955
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:640
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:680
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:715
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:799
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:843
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:910
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:954
 #, c-format
 msgid "OK."
 msgstr "OK."
 
 #. TRANSLATORS: tell the user what we found
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:644
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:643
 #, c-format
 msgid "Found %i enabled and %i disabled sources."
 msgstr "%i ସକ୍ରିୟ ଏବଂ %i ନିଷ୍କ୍ରିୟ ଉତ୍ସଗୁଡ଼ିକୁ ପାଇଛି।"
 
 #. TRANSLATORS: we're finding repositories that match out pattern
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:651
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:650
 #, c-format
 msgid "Finding debugging sources"
 msgstr "ତ୍ରୁଟି ନିବାରଣ ଉତ୍ସଗୁଡ଼ିକୁ ପାଇଅଛି"
 
 #. TRANSLATORS: tell the user what we found
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:684
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:683
 #, c-format
 msgid "Found %i disabled debuginfo repos."
 msgstr "%i ନିଷ୍କ୍ରିୟ ତ୍ରୁଟି ନିବାରଣ ଉତ୍ସ ସଂଗ୍ରହଳୟ ମିଳିଛି।"
 
 #. TRANSLATORS: we're now enabling all the debug sources we found
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:691
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:690
 #, c-format
 msgid "Enabling debugging sources"
 msgstr "ତ୍ରୁଟିନିବାରଣ ଉତ୍ସଗୁଡ଼ିକୁ ସକ୍ରିୟ କରୁଅଛି"
 
 #. TRANSLATORS: operation was not successful
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:701
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:785
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:829
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:896
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:940
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:700
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:784
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:828
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:895
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:939
 msgid "FAILED."
 msgstr "FAILED."
 
 #. TRANSLATORS: tell the user how many we enabled
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:719
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:718
 #, c-format
 msgid "Enabled %i debugging sources."
 msgstr "%i ତ୍ରୁଟିନିବାରଣ ଉତ୍ସଗୁଡ଼ିକୁ ସକ୍ରିୟ କରିଅଛି।"
 
 #. TRANSLATORS: we're now finding packages that match in all the repos
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:726
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:725
 #, c-format
 msgid "Finding debugging packages"
 msgstr "ତ୍ରୁଟି ନିବାରଣ ପ୍ୟାକେଜଗୁଡ଼ିକୁ ଖୋଜୁଅଛି"
 
 #. TRANSLATORS: we couldn't find the package name, non-fatal
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:738
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:737
 #, c-format
 msgid "Failed to find the package %s: %s"
 msgstr "ପ୍ୟାକେଜ %s କୁ ଖୋଜିବାରେ ବିଫଳ: %s"
 
 #. TRANSLATORS: we couldn't find the debuginfo package name, non-fatal
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:761
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:760
 #, c-format
 msgid "Failed to find the debuginfo package %s: %s"
 msgstr "ତ୍ରୁଟିନିବାରଣ ପ୍ୟାକେଜ %sକୁ ଖୋଜିବାରେ ବିଫଳ: %s"
 
 #. TRANSLATORS: no debuginfo packages could be found to be installed
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:789
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:788
 #, c-format
 msgid "Found no packages to install."
 msgstr "ସ୍ଥାପନ କରିବା କୌଣସି ପ୍ୟାକେଜ ମିଳିଲା ନାହିଁ।"
 
 #. TRANSLATORS: tell the user we found some packages, and then list them
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:803
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:802
 #, c-format
 msgid "Found %i packages:"
 msgstr "%i ପ୍ୟାକେଜଗୁଡ଼ିକ ମିଳିଲା:"
 
 #. TRANSLATORS: tell the user we are searching for deps
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:819
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:818
 #, c-format
 msgid "Finding packages that depend on these packages"
 msgstr "ଏହି ପ୍ୟାକେଜଗୁଡ଼ିକ ଉପରେ ନିର୍ଭର କରୁଥିବା ପ୍ୟାକେଜଗୁଡ଼ିକୁ ଖୋଜୁଅଛି"
 
 #. TRANSLATORS: could not install, detailed error follows
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:832
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:831
 #, c-format
 msgid "Could not find dependant packages: %s"
 msgstr "ନିର୍ଭରକ ପ୍ୟାକେଜଗୁଡ଼ିକୁ ଖୋଜି ପାଇଲା ନାହିଁ: %s"
 
 #. TRANSLATORS: tell the user we found some more packages
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:848
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:847
 #, c-format
 msgid "Found %i extra packages."
 msgstr "%i ଅତିରିକ୍ତ ପ୍ୟାକେଜଗୁଡ଼ିକୁ ଖୋଜିପାଇଲା।"
 
 #. TRANSLATORS: tell the user we found some more packages
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:852
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:851
 #, c-format
 msgid "No extra packages required."
 msgstr "କୌଣସି ଅତିରିକ୍ତ ପ୍ୟାକେଜ ଆବଶ୍ୟକ ନାହିଁ।"
 
 #. TRANSLATORS: tell the user we found some packages (and deps), and then list them
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:861
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:860
 #, c-format
 msgid "Found %i packages to install:"
 msgstr "ସ୍ଥାପନ କରିବା ପାଇଁ %i ପ୍ୟାକେଜଗୁଡ଼ିକ ମିଳିଲା:"
 
 #. TRANSLATORS: simulate mode is a testing mode where we quit before the action
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:874
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:873
 #, c-format
 msgid "Not installing packages in simulate mode"
 msgstr "ପ୍ୟାକେଜଗୁଡ଼ିକୁ ସକ୍ରିୟ ଅବସ୍ଥାରେ ସ୍ଥାପନ କରୁନାହିଁ"
 
 #. TRANSLATORS: could not install, detailed error follows
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:899
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:898
 #, c-format
 msgid "Could not install packages: %s"
 msgstr "ପ୍ୟାକେଜଗୁଡ଼ିକୁ ସ୍ଥାପନ କରିପାରିଲା ନାହିଁ: %s"
 
 #. TRANSLATORS: we are now disabling all debuginfo repos we previously enabled
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:931
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:930
 #, c-format
 msgid "Disabling sources previously enabled"
 msgstr "ପୂର୍ବରୁ ସକ୍ରିୟ ଉତ୍ସଗୁଡ଼ିକୁ ନିଷ୍କ୍ରିୟ କରୁଅଛି"
 
 #. TRANSLATORS: no debuginfo packages could be found to be installed, detailed error follows
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:943
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:942
 #, c-format
 msgid "Could not disable the debugging sources: %s"
 msgstr "ତ୍ରୁଟି ନିବାରଣ ଉତ୍ସଗୁଡ଼ିକୁ ନିଷ୍କ୍ରିୟ କରିପାରିଲା ନାହିଁ: %s"
 
 #. TRANSLATORS: we disabled all the debugging repos that we enabled before
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:958
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:957
 #, c-format
 msgid "Disabled %i debugging sources."
 msgstr "%i ତ୍ରୁଟି ନିବାରଣ ଉତ୍ସଗୁଡ଼ିକୁ ନିଷ୍କ୍ରିୟ କରିଥାଏ।"
@@ -1558,26 +1714,26 @@ msgstr "ଏହି ସଫ୍ଟୱେରଟି ବିଶ୍ୱସ୍ତ ଉତ୍
 #: ../src/pk-polkit-action-lookup.c:173
 msgid "Do not update this package unless you are sure it is safe to do so."
 msgstr ""
-"ଏହାକୁ କରିବା ସୁରକ୍ଷିତ କି ନାହିଁ, ତାହା ଯେ ପର୍ଯ୍ୟନ୍ତ ଆପଣ ନିଶ୍ଚିତ ହୋଇନାହାନ୍ତି, "
-"ସେପର୍ଯ୍ୟନ୍ତ ଏହି ପ୍ୟାକେଜକୁ ଅଦ୍ୟତନ କରନ୍ତୁ ନାହିଁ।"
+"ଏହାକୁ କରିବା ସୁରକ୍ଷିତ କି ନାହିଁ, ତାହା ଯେ ପର୍ଯ୍ୟନ୍ତ ଆପଣ ନିଶ୍ଚିତ ହୋଇନାହାନ୍ତି, ସେପର୍ଯ୍ୟନ୍ତ ଏହି "
+"ପ୍ୟାକେଜକୁ ଅଦ୍ୟତନ କରନ୍ତୁ ନାହିଁ।"
 
 #: ../src/pk-polkit-action-lookup.c:174
 msgid "Do not update these packages unless you are sure it is safe to do so."
 msgstr ""
-"ଏହାକୁ କରିବା ସୁରକ୍ଷିତ କି ନାହିଁ, ତାହା ଯେ ପର୍ଯ୍ୟନ୍ତ ଆପଣ ନିଶ୍ଚିତ ହୋଇନାହାନ୍ତି, "
-"ସେପର୍ଯ୍ୟନ୍ତ ଏହି ପ୍ୟାକେଜକୁ ଅଦ୍ୟତନ କରନ୍ତୁ ନାହିଁ।"
+"ଏହାକୁ କରିବା ସୁରକ୍ଷିତ କି ନାହିଁ, ତାହା ଯେ ପର୍ଯ୍ୟନ୍ତ ଆପଣ ନିଶ୍ଚିତ ହୋଇନାହାନ୍ତି, ସେପର୍ଯ୍ୟନ୍ତ ଏହି "
+"ପ୍ୟାକେଜକୁ ଅଦ୍ୟତନ କରନ୍ତୁ ନାହିଁ।"
 
 #: ../src/pk-polkit-action-lookup.c:192
 msgid "Do not install this package unless you are sure it is safe to do so."
 msgstr ""
-"ଏହାକୁ କରିବା ସୁରକ୍ଷିତ କି ନାହିଁ, ତାହା ଯେ ପର୍ଯ୍ୟନ୍ତ ଆପଣ ନିଶ୍ଚିତ ହୋଇନାହାନ୍ତି, "
-"ସେପର୍ଯ୍ୟନ୍ତ ଏହି ପ୍ୟାକେଜକୁ ଅଦ୍ୟତନ କରନ୍ତୁ ନାହିଁ।"
+"ଏହାକୁ କରିବା ସୁରକ୍ଷିତ କି ନାହିଁ, ତାହା ଯେ ପର୍ଯ୍ୟନ୍ତ ଆପଣ ନିଶ୍ଚିତ ହୋଇନାହାନ୍ତି, ସେପର୍ଯ୍ୟନ୍ତ ଏହି "
+"ପ୍ୟାକେଜକୁ ଅଦ୍ୟତନ କରନ୍ତୁ ନାହିଁ।"
 
 #: ../src/pk-polkit-action-lookup.c:193
 msgid "Do not install these packages unless you are sure it is safe to do so."
 msgstr ""
-"ଏହାକୁ କରିବା ସୁରକ୍ଷିତ କି ନାହିଁ, ତାହା ଯେ ପର୍ଯ୍ୟନ୍ତ ଆପଣ ନିଶ୍ଚିତ ହୋଇନାହାନ୍ତି, "
-"ସେପର୍ଯ୍ୟନ୍ତ ଏହି ପ୍ୟାକେଜକୁ ଅଦ୍ୟତନ କରନ୍ତୁ ନାହିଁ।"
+"ଏହାକୁ କରିବା ସୁରକ୍ଷିତ କି ନାହିଁ, ତାହା ଯେ ପର୍ଯ୍ୟନ୍ତ ଆପଣ ନିଶ୍ଚିତ ହୋଇନାହାନ୍ତି, ସେପର୍ଯ୍ୟନ୍ତ ଏହି "
+"ପ୍ୟାକେଜକୁ ଅଦ୍ୟତନ କରନ୍ତୁ ନାହିଁ।"
 
 #. TRANSLATORS: warn the user that all bets are off
 #: ../src/pk-polkit-action-lookup.c:199
commit f6f44b8bbf3a7bfe6fd3a317bb082f3b9df56353
Author: Richard Hughes <richard at hughsie.com>
Date:   Mon Sep 7 10:20:42 2009 +0100

    Fix up some return values in the event of an error. Spotted by clang

diff --git a/client/pk-console-test.c b/client/pk-console-test.c
index 5fd04c6..1a6ac18 100644
--- a/client/pk-console-test.c
+++ b/client/pk-console-test.c
@@ -836,8 +836,8 @@ out:
 static gboolean
 pk_console_get_requires (PkBitfield filters, gchar **packages, GError **error)
 {
-	gboolean ret;
-	gchar **package_ids;
+	gboolean ret = TRUE;
+	gchar **package_ids = NULL;
 	GError *error_local = NULL;
 
 	package_ids = pk_console_perhaps_resolve (pk_bitfield_value (PK_FILTER_ENUM_NONE), packages, &error_local);
@@ -845,13 +845,15 @@ pk_console_get_requires (PkBitfield filters, gchar **packages, GError **error)
 		/* TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows */
 		*error = g_error_new (1, 0, _("This tool could not find all the packages: %s"), error_local->message);
 		g_error_free (error_local);
-		return FALSE;
+		ret = FALSE;
+		goto out;
 	}
 
 	/* do the async action */
 	pk_client_get_requires_async (PK_CLIENT(task), filters, package_ids, TRUE, cancellable,
 				      (PkProgressCallback) pk_console_progress_cb, NULL,
 				      (GAsyncReadyCallback) pk_console_finished_cb, NULL);
+out:
 	g_strfreev (package_ids);
 	return ret;
 }
@@ -862,8 +864,8 @@ pk_console_get_requires (PkBitfield filters, gchar **packages, GError **error)
 static gboolean
 pk_console_get_depends (PkBitfield filters, gchar **packages, GError **error)
 {
-	gboolean ret;
-	gchar **package_ids;
+	gboolean ret = TRUE;
+	gchar **package_ids = NULL;
 	GError *error_local = NULL;
 
 	package_ids = pk_console_perhaps_resolve (pk_bitfield_value (PK_FILTER_ENUM_NONE), packages, &error_local);
@@ -871,13 +873,15 @@ pk_console_get_depends (PkBitfield filters, gchar **packages, GError **error)
 		/* TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows */
 		*error = g_error_new (1, 0, _("This tool could not find all the packages: %s"), error_local->message);
 		g_error_free (error_local);
-		return FALSE;
+		ret = FALSE;
+		goto out;
 	}
 
 	/* do the async action */
 	pk_client_get_depends_async (PK_CLIENT(task), filters, package_ids, FALSE, cancellable,
 				     (PkProgressCallback) pk_console_progress_cb, NULL,
 				     (GAsyncReadyCallback) pk_console_finished_cb, NULL);
+out:
 	g_strfreev (package_ids);
 	return ret;
 }
@@ -888,8 +892,8 @@ pk_console_get_depends (PkBitfield filters, gchar **packages, GError **error)
 static gboolean
 pk_console_get_details (gchar **packages, GError **error)
 {
-	gboolean ret;
-	gchar **package_ids;
+	gboolean ret = TRUE;
+	gchar **package_ids = NULL;
 	GError *error_local = NULL;
 
 	package_ids = pk_console_perhaps_resolve (pk_bitfield_value (PK_FILTER_ENUM_NONE), packages, &error_local);
@@ -897,13 +901,15 @@ pk_console_get_details (gchar **packages, GError **error)
 		/* TRANSLATORS: There was an error getting the details about the package. The detailed error follows */
 		*error = g_error_new (1, 0, _("This tool could not find all the packages: %s"), error_local->message);
 		g_error_free (error_local);
-		return FALSE;
+		ret = FALSE;
+		goto out;
 	}
 
 	/* do the async action */
 	pk_client_get_details_async (PK_CLIENT(task), package_ids, cancellable,
 				     (PkProgressCallback) pk_console_progress_cb, NULL,
 				     (GAsyncReadyCallback) pk_console_finished_cb, NULL);
+out:
 	g_strfreev (package_ids);
 	return ret;
 }
@@ -914,8 +920,8 @@ pk_console_get_details (gchar **packages, GError **error)
 static gboolean
 pk_console_get_files (gchar **packages, GError **error)
 {
-	gboolean ret;
-	gchar **package_ids;
+	gboolean ret = TRUE;
+	gchar **package_ids = NULL;
 	GError *error_local = NULL;
 
 	package_ids = pk_console_perhaps_resolve (pk_bitfield_value (PK_FILTER_ENUM_NONE), packages, &error_local);
@@ -923,13 +929,15 @@ pk_console_get_files (gchar **packages, GError **error)
 		/* TRANSLATORS: The package name was not found in any software sources. The detailed error follows */
 		*error = g_error_new (1, 0, _("This tool could not find all the packages: %s"), error_local->message);
 		g_error_free (error_local);
-		return FALSE;
+		ret = FALSE;
+		goto out;
 	}
 
 	/* do the async action */
 	pk_client_get_files_async (PK_CLIENT(task), package_ids, cancellable,
 				   (PkProgressCallback) pk_console_progress_cb, NULL,
 				   (GAsyncReadyCallback) pk_console_finished_cb, NULL);
+out:
 	g_strfreev (package_ids);
 	return ret;
 }
@@ -940,8 +948,8 @@ pk_console_get_files (gchar **packages, GError **error)
 static gboolean
 pk_console_get_update_detail (gchar **packages, GError **error)
 {
-	gboolean ret;
-	gchar **package_ids;
+	gboolean ret = TRUE;
+	gchar **package_ids = NULL;
 	GError *error_local = NULL;
 
 	package_ids = pk_console_perhaps_resolve (pk_bitfield_value (PK_FILTER_ENUM_NOT_INSTALLED), packages, &error_local);
@@ -949,13 +957,15 @@ pk_console_get_update_detail (gchar **packages, GError **error)
 		/* TRANSLATORS: The package name was not found in any software sources. The detailed error follows */
 		*error = g_error_new (1, 0, _("This tool could not find all the packages: %s"), error_local->message);
 		g_error_free (error_local);
-		return FALSE;
+		ret = FALSE;
+		goto out;
 	}
 
 	/* do the async action */
 	pk_client_get_update_detail_async (PK_CLIENT(task), package_ids, cancellable,
 					   (PkProgressCallback) pk_console_progress_cb, NULL,
 					   (GAsyncReadyCallback) pk_console_finished_cb, NULL);
+out:
 	g_strfreev (package_ids);
 	return ret;
 }
@@ -1310,7 +1320,7 @@ main (int argc, char *argv[])
 			retval = PK_EXIT_CODE_FILE_NOT_FOUND;
 			goto out;
 		}
-		nowait = !pk_console_download_packages (argv+2, value, &error);
+		nowait = !pk_console_download_packages (argv+3, value, &error);
 
 	} else if (strcmp (mode, "accept-eula") == 0) {
 		if (value == NULL) {
commit b53b6400f4a004afa79493b3ff39f853d3c96860
Author: swkothar <swkothar at fedoraproject.org>
Date:   Mon Sep 7 08:13:15 2009 +0000

    Sending translation for Gujarati

diff --git a/po/gu.po b/po/gu.po
index 8323bfc..e9f13dc 100644
--- a/po/gu.po
+++ b/po/gu.po
@@ -1,4 +1,4 @@
-# translation of PackageKit.po to Gujarati
+# translation of packagekit.master.gu.po to Gujarati
 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
 # This file is distributed under the same license as the PACKAGE package.
 #
@@ -6,10 +6,10 @@
 # Sweta Kothari <swkothar at redhat.com>, 2009.
 msgid ""
 msgstr ""
-"Project-Id-Version: PackageKit\n"
+"Project-Id-Version: packagekit.master.gu\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-09-04 02:27+0000\n"
-"PO-Revision-Date: 2009-09-04 11:11+0530\n"
+"POT-Creation-Date: 2009-09-07 02:36+0000\n"
+"PO-Revision-Date: 2009-09-07 13:42+0530\n"
 "Last-Translator: Sweta Kothari <swkothar at redhat.com>\n"
 "Language-Team: Gujarati\n"
 "MIME-Version: 1.0\n"
@@ -21,106 +21,106 @@ msgstr ""
 "\n"
 
 #. TRANSLATORS: this is an atomic transaction
-#: ../client/pk-console.c:238 ../client/pk-console-test.c:146
+#: ../client/pk-console.c:238 ../client/pk-console-test.c:147
 msgid "Transaction"
 msgstr "પરિવહન"
 
 #. TRANSLATORS: this is the time the transaction was started in system timezone
-#: ../client/pk-console.c:240 ../client/pk-console-test.c:148
+#: ../client/pk-console.c:240 ../client/pk-console-test.c:149
 msgid "System time"
 msgstr "સિસ્ટમ સમય"
 
 #. TRANSLATORS: this is if the transaction succeeded or not
-#: ../client/pk-console.c:242 ../client/pk-console-test.c:150
+#: ../client/pk-console.c:242 ../client/pk-console-test.c:151
 msgid "Succeeded"
 msgstr "સફળ થયેલ"
 
-#: ../client/pk-console.c:242 ../client/pk-console-test.c:150
+#: ../client/pk-console.c:242 ../client/pk-console-test.c:151
 msgid "True"
 msgstr "True"
 
-#: ../client/pk-console.c:242 ../client/pk-console-test.c:150
+#: ../client/pk-console.c:242 ../client/pk-console-test.c:151
 msgid "False"
 msgstr "False"
 
 #. TRANSLATORS: this is the transactions role, e.g. "update-system"
 #. TRANSLATORS: the trasaction role, e.g. update-system
-#: ../client/pk-console.c:244 ../client/pk-console-test.c:152
+#: ../client/pk-console.c:244 ../client/pk-console-test.c:153
 #: ../src/pk-polkit-action-lookup.c:327
 msgid "Role"
 msgstr "ભૂમિકા"
 
 #. TRANSLATORS: this is The duration of the transaction
-#: ../client/pk-console.c:249 ../client/pk-console-test.c:157
+#: ../client/pk-console.c:249 ../client/pk-console-test.c:158
 msgid "Duration"
 msgstr "ગાળો"
 
-#: ../client/pk-console.c:249 ../client/pk-console-test.c:157
+#: ../client/pk-console.c:249 ../client/pk-console-test.c:158
 msgid "(seconds)"
 msgstr "(સકંડો)"
 
 #. TRANSLATORS: this is The command line used to do the action
 #. TRANSLATORS: the command line of the thing that wants the authentication
-#: ../client/pk-console.c:253 ../client/pk-console-test.c:161
+#: ../client/pk-console.c:253 ../client/pk-console-test.c:162
 #: ../src/pk-polkit-action-lookup.c:341
 msgid "Command line"
 msgstr "આદેશ વાક્ય"
 
 #. TRANSLATORS: this is the user ID of the user that started the action
-#: ../client/pk-console.c:255 ../client/pk-console-test.c:163
+#: ../client/pk-console.c:255 ../client/pk-console-test.c:164
 msgid "User ID"
 msgstr "વપરાશકર્તા ID"
 
 #. TRANSLATORS: this is the username, e.g. hughsie
-#: ../client/pk-console.c:262 ../client/pk-console-test.c:170
+#: ../client/pk-console.c:262 ../client/pk-console-test.c:171
 msgid "Username"
 msgstr "વપરાશકર્તાનામ"
 
 #. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
-#: ../client/pk-console.c:266 ../client/pk-console-test.c:174
+#: ../client/pk-console.c:266 ../client/pk-console-test.c:175
 msgid "Real name"
 msgstr "સાચુ નામ"
 
-#: ../client/pk-console.c:274 ../client/pk-console-test.c:182
+#: ../client/pk-console.c:274 ../client/pk-console-test.c:183
 msgid "Affected packages:"
 msgstr "અસર થયેલ પેકેજો:"
 
-#: ../client/pk-console.c:276 ../client/pk-console-test.c:184
+#: ../client/pk-console.c:276 ../client/pk-console-test.c:185
 msgid "Affected packages: None"
 msgstr "અસર થયેલ પેકેજો: કંઇ નહિં"
 
 #. TRANSLATORS: When processing, we might have to remove other dependencies
-#: ../client/pk-console.c:337 ../client/pk-task-text.c:208
+#: ../client/pk-console.c:337 ../client/pk-task-text.c:220
 msgid "The following packages have to be removed:"
 msgstr "નીચેના પેકેજો દૂર કરવામાં આવવા જોઈએ:"
 
 #. TRANSLATORS: When processing, we might have to install other dependencies
-#: ../client/pk-console.c:340 ../client/pk-task-text.c:213
+#: ../client/pk-console.c:340 ../client/pk-task-text.c:225
 msgid "The following packages have to be installed:"
 msgstr "નીચેનાં પેકેજોને સ્થાપિત કરવુ જ પડશે:"
 
 #. TRANSLATORS: When processing, we might have to update other dependencies
-#: ../client/pk-console.c:343 ../client/pk-task-text.c:218
+#: ../client/pk-console.c:343 ../client/pk-task-text.c:230
 msgid "The following packages have to be updated:"
 msgstr "નીચેનાં પેકેજોને સુધારવુ જ પડશે:"
 
 #. TRANSLATORS: When processing, we might have to reinstall other dependencies
-#: ../client/pk-console.c:346 ../client/pk-task-text.c:223
+#: ../client/pk-console.c:346 ../client/pk-task-text.c:235
 msgid "The following packages have to be reinstalled:"
 msgstr "નીચેનાં પેકેજોને પુન:સ્થાપિત કરવુ જ પડશે:"
 
 #. TRANSLATORS: When processing, we might have to downgrade other dependencies
-#: ../client/pk-console.c:349 ../client/pk-task-text.c:228
+#: ../client/pk-console.c:349 ../client/pk-task-text.c:240
 msgid "The following packages have to be downgraded:"
 msgstr "નીચેનાં પેકેજોને નીચે ઉતારવા જ પડશે:"
 
 #. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:363 ../client/pk-console-test.c:204
+#: ../client/pk-console.c:363 ../client/pk-console-test.c:205
 msgid "Distribution"
 msgstr "વિતરણ"
 
 #. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:365 ../client/pk-console-test.c:206
+#: ../client/pk-console.c:365 ../client/pk-console-test.c:207
 msgid "Type"
 msgstr "પ્રકાર"
 
@@ -129,44 +129,44 @@ msgstr "પ્રકાર"
 #. TRANSLATORS: this is any summary text describing the upgrade
 #. TRANSLATORS: this is the summary of the group
 #: ../client/pk-console.c:367 ../client/pk-console.c:390
-#: ../client/pk-console-test.c:208 ../client/pk-console-test.c:229
+#: ../client/pk-console-test.c:209 ../client/pk-console-test.c:230
 msgid "Summary"
 msgstr "સારાંશ"
 
 #. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:379 ../client/pk-console-test.c:218
+#: ../client/pk-console.c:379 ../client/pk-console-test.c:219
 msgid "Category"
 msgstr "વર્ગ"
 
 #. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:381 ../client/pk-console-test.c:220
+#: ../client/pk-console.c:381 ../client/pk-console-test.c:221
 msgid "ID"
 msgstr "ID"
 
 #. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:384 ../client/pk-console-test.c:223
+#: ../client/pk-console.c:384 ../client/pk-console-test.c:224
 msgid "Parent"
 msgstr "પિતૃ"
 
 #. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:387 ../client/pk-console-test.c:226
+#: ../client/pk-console.c:387 ../client/pk-console-test.c:227
 msgid "Name"
 msgstr "નામ"
 
 #. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:393 ../client/pk-console-test.c:232
+#: ../client/pk-console.c:393 ../client/pk-console-test.c:233
 msgid "Icon"
 msgstr "ચિહ્ન"
 
 #. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:408 ../client/pk-console-test.c:246
+#: ../client/pk-console.c:408 ../client/pk-console-test.c:247
 msgid "Details about the update:"
 msgstr "સુધારા વિશે વિગતો:"
 
 #. TRANSLATORS: details about the update, package name and version
 #. TRANSLATORS: title, the names of the packages that the method is processing
-#: ../client/pk-console.c:410 ../client/pk-console-test.c:252
-#: ../client/pk-task-text.c:95 ../client/pk-task-text.c:144
+#: ../client/pk-console.c:410 ../client/pk-console-test.c:253
+#: ../client/pk-task-text.c:101 ../client/pk-task-text.c:153
 #: ../src/pk-polkit-action-lookup.c:352
 msgid "Package"
 msgid_plural "Packages"
@@ -174,68 +174,68 @@ msgstr[0] "પેકેજ"
 msgstr[1] "પેકેજો"
 
 #. TRANSLATORS: details about the update, any packages that this update updates
-#: ../client/pk-console.c:413 ../client/pk-console-test.c:255
+#: ../client/pk-console.c:413 ../client/pk-console-test.c:256
 msgid "Updates"
 msgstr "સુધારો"
 
 #. TRANSLATORS: details about the update, any packages that this update obsoletes
-#: ../client/pk-console.c:417 ../client/pk-console-test.c:259
+#: ../client/pk-console.c:417 ../client/pk-console-test.c:260
 msgid "Obsoletes"
 msgstr "અપ્રચલિત"
 
 #. TRANSLATORS: details about the update, the vendor URLs
-#: ../client/pk-console.c:421 ../client/pk-console-test.c:263
-#: ../client/pk-task-text.c:145
+#: ../client/pk-console.c:421 ../client/pk-console-test.c:264
+#: ../client/pk-task-text.c:154
 msgid "Vendor"
 msgstr "વિક્રેતા"
 
 #. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:425 ../client/pk-console-test.c:267
+#: ../client/pk-console.c:425 ../client/pk-console-test.c:268
 msgid "Bugzilla"
 msgstr "બગઝીલા"
 
 #. TRANSLATORS: details about the update, the CVE URLs
-#: ../client/pk-console.c:429 ../client/pk-console-test.c:271
+#: ../client/pk-console.c:429 ../client/pk-console-test.c:272
 msgid "CVE"
 msgstr "CVE"
 
 #. TRANSLATORS: details about the update, if the package requires a restart
-#: ../client/pk-console.c:433 ../client/pk-console-test.c:275
+#: ../client/pk-console.c:433 ../client/pk-console-test.c:276
 msgid "Restart"
 msgstr "પુન:શરૂ કરો"
 
 #. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:437 ../client/pk-console-test.c:279
+#: ../client/pk-console.c:437 ../client/pk-console-test.c:280
 msgid "Update text"
 msgstr "લખાણને સુધારો"
 
 #. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:441 ../client/pk-console-test.c:283
+#: ../client/pk-console.c:441 ../client/pk-console-test.c:284
 msgid "Changes"
 msgstr "બદલાવો"
 
 #. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:445 ../client/pk-console-test.c:287
+#: ../client/pk-console.c:445 ../client/pk-console-test.c:288
 msgid "State"
 msgstr "સ્થિતિ"
 
 #. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:450 ../client/pk-console-test.c:292
+#: ../client/pk-console.c:450 ../client/pk-console-test.c:293
 msgid "Issued"
 msgstr "અદા કરેલ"
 
 #. TRANSLATORS: details about the update, date the update was updated
-#: ../client/pk-console.c:455 ../client/pk-console-test.c:297
+#: ../client/pk-console.c:455 ../client/pk-console-test.c:298
 msgid "Updated"
 msgstr "સુધારેલ"
 
 #. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:475 ../client/pk-console-test.c:315
+#: ../client/pk-console.c:475 ../client/pk-console-test.c:316
 msgid "Enabled"
 msgstr "સક્રિય થયેલ છે"
 
 #. TRANSLATORS: if the repo is disabled
-#: ../client/pk-console.c:478 ../client/pk-console-test.c:318
+#: ../client/pk-console.c:478 ../client/pk-console-test.c:319
 msgid "Disabled"
 msgstr "નિષ્ક્રિય થયેલ"
 
@@ -248,47 +248,47 @@ msgid "Unknown"
 msgstr "અજ્ઞાત"
 
 #. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:599 ../client/pk-console-test.c:340
+#: ../client/pk-console.c:599 ../client/pk-console-test.c:341
 msgid "System restart required by:"
 msgstr "સિસ્ટમ જરૂરિયાત પ્રમાણે પુન:શરૂ થાય છે:"
 
 #. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:602 ../client/pk-console-test.c:343
+#: ../client/pk-console.c:602 ../client/pk-console-test.c:344
 msgid "Session restart required:"
 msgstr "સત્ર પુન:શરૂ કરવુ જરૂરી:"
 
 #. TRANSLATORS: a package requires the system to be restarted due to a security update
-#: ../client/pk-console.c:605 ../client/pk-console-test.c:346
+#: ../client/pk-console.c:605 ../client/pk-console-test.c:347
 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:608 ../client/pk-console-test.c:349
+#: ../client/pk-console.c:608 ../client/pk-console-test.c:350
 msgid "Session restart (security) required:"
 msgstr "સત્ર પુન:શરૂ (સુરક્ષા)કરવુ જરૂરી:"
 
 #. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:611 ../client/pk-console-test.c:352
+#: ../client/pk-console.c:611 ../client/pk-console-test.c:353
 msgid "Application restart required by:"
 msgstr "કાર્યક્રમ એ જરૂરિયાત પ્રમાણે પુન:શરૂ થાય છે:"
 
 #. TRANSLATORS: a package needs to restart their system
-#: ../client/pk-console.c:666 ../client/pk-console-test.c:434
+#: ../client/pk-console.c:666 ../client/pk-console-test.c:704
 msgid "Please restart the computer to complete the update."
 msgstr "સુધારો સમાપ્ત કરવા માટે મહેરબાની કરીને કમ્પ્યૂટર પુનઃશરૂ કરો."
 
 #. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:669 ../client/pk-console-test.c:437
+#: ../client/pk-console.c:669 ../client/pk-console-test.c:707
 msgid "Please logout and login to complete the update."
 msgstr "સુધારો સમાપ્ત કરવા માટે મહેરબાની કરીને બહાર નીકળો અને પછી ફરી પ્રવેશ કરો."
 
 #. TRANSLATORS: a package needs to restart the application
-#: ../client/pk-console.c:672 ../client/pk-console-test.c:440
+#: ../client/pk-console.c:672
 msgid "Please restart the application as it is being used."
 msgstr "મહેરબાની કરીને કાર્યક્રમ ફરી શરૂ કરો કારણ કે તે વપરાઈ રહ્યો છે."
 
 #. TRANSLATORS: a package needs to restart their system (due to security)
-#: ../client/pk-console.c:675 ../client/pk-console-test.c:443
+#: ../client/pk-console.c:675 ../client/pk-console-test.c:710
 msgid ""
 "Please restart the computer to complete the update as important security "
 "updates have been installed."
@@ -297,7 +297,7 @@ msgstr ""
 "સ્થાપિત કરી દેવામાં આવ્યા છે."
 
 #. TRANSLATORS: a package needs to restart the session (due to security)
-#: ../client/pk-console.c:678 ../client/pk-console-test.c:446
+#: ../client/pk-console.c:678 ../client/pk-console-test.c:713
 msgid ""
 "Please logout and login to complete the update as important security updates "
 "have been installed."
@@ -306,13 +306,13 @@ msgstr ""
 "કરી દેવામાં આવ્યા છે."
 
 #. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:810 ../client/pk-console-test.c:541
+#: ../client/pk-console.c:810
 #, c-format
 msgid "The package %s is already installed"
 msgstr "પેકેજ %s પહેલાથી જ સ્થાપિત થયેલ છે"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:818 ../client/pk-console-test.c:549
+#: ../client/pk-console.c:818
 #, c-format
 msgid "The package %s could not be installed: %s"
 msgstr "પેકેજ %s સ્થાપિત કરી શક્યા નહિં: %s"
@@ -330,7 +330,7 @@ msgstr "આંતરિક ભૂલ: %s"
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
 #. ask the user
 #: ../client/pk-console.c:876 ../client/pk-console.c:948
-#: ../client/pk-console.c:1266 ../client/pk-task-text.c:284
+#: ../client/pk-console.c:1266 ../client/pk-task-text.c:299
 msgid "Proceed with changes?"
 msgstr "બદલાવો સાથે આગળ વધો?"
 
@@ -341,26 +341,25 @@ msgstr "પેકેજ સ્થાપન રદ કરેલ હતુ!"
 
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
 #: ../client/pk-console.c:900 ../client/pk-console.c:1634
-#: ../client/pk-console-test.c:572
 #, c-format
 msgid "This tool could not install the packages: %s"
 msgstr "આ સાધન પેકેજો સ્થાપિત કરી શક્યું નહિં: %s"
 
 #. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:972 ../client/pk-console-test.c:586
+#: ../client/pk-console.c:972
 #, c-format
 msgid "This tool could not install the files: %s"
 msgstr "આ સાધન ફાઈલો સ્થાપિત કરી શક્યું નહિં: %s"
 
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:1028 ../client/pk-console-test.c:636
+#: ../client/pk-console.c:1028
 #, c-format
 msgid "This tool could not remove %s: %s"
 msgstr "આ સાધન %s દૂર કરી શક્યું નહિં: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
 #: ../client/pk-console.c:1051 ../client/pk-console.c:1089
-#: ../client/pk-console.c:1118 ../client/pk-console-test.c:657
+#: ../client/pk-console.c:1118
 #, c-format
 msgid "This tool could not remove the packages: %s"
 msgstr "આ સાધન પેકેજો દૂર કરી શક્યું નહિં: %s"
@@ -376,21 +375,20 @@ msgid "The package removal was canceled!"
 msgstr "પેકેજ નિરાકરણ રદ થઈ હતી!"
 
 #. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:1150 ../client/pk-console-test.c:689
+#: ../client/pk-console.c:1150
 #, c-format
 msgid "This tool could not download the package %s as it could not be found"
 msgstr "આ સાધન પેકેજ %s દૂર કરી શક્યું નહિં કારણ કે તે શોધી શકાયું નહિં"
 
 #. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:1181 ../client/pk-console-test.c:711
+#: ../client/pk-console.c:1181
 #, c-format
 msgid "This tool could not download the packages: %s"
 msgstr "આ સાધન પેકેજો ડાઉનલોડ કરી શક્યા નહિં: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
 #: ../client/pk-console.c:1213 ../client/pk-console.c:1225
-#: ../client/pk-console.c:1280 ../client/pk-console-test.c:743
-#: ../client/pk-console-test.c:753
+#: ../client/pk-console.c:1280
 #, c-format
 msgid "This tool could not update %s: %s"
 msgstr "આ સાધન %s સુધારી શક્યું નહિં: %s"
@@ -402,33 +400,30 @@ msgstr "પેકેજ સુધારો રદ થયેલ હતુ!"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
 #: ../client/pk-console.c:1304 ../client/pk-console.c:1312
-#: ../client/pk-console-test.c:779 ../client/pk-console-test.c:787
 #, c-format
 msgid "This tool could not get the requirements for %s: %s"
 msgstr "આ સાધન %s માટેની જરૂરીયાતો મેળવી શક્યું નહિં: %s"
 
 #. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
 #: ../client/pk-console.c:1334 ../client/pk-console.c:1342
-#: ../client/pk-console-test.c:809 ../client/pk-console-test.c:817
 #, c-format
 msgid "This tool could not get the dependencies for %s: %s"
 msgstr "આ સાધન %s માટે આધારભૂતપણાઓ મેળવી શક્યું નહિં: %s"
 
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
 #: ../client/pk-console.c:1364 ../client/pk-console.c:1372
-#: ../client/pk-console-test.c:839 ../client/pk-console-test.c:847
 #, c-format
 msgid "This tool could not get package details for %s: %s"
 msgstr "આ સાધન %s માટે પેકેજ વિગતો મેળવી શક્યું નહિં: %s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1394 ../client/pk-console-test.c:869
+#: ../client/pk-console.c:1394
 #, c-format
 msgid "This tool could not find the files for %s: %s"
 msgstr "આ સાધન %s માટે ફાઈલો શોધી શક્યું નહિં: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1402 ../client/pk-console-test.c:877
+#: ../client/pk-console.c:1402
 #, c-format
 msgid "This tool could not get the file list for %s: %s"
 msgstr "આ સાધન %s માટે ફાઈલ યાદી મેળવી શક્યું નહિં: %s"
@@ -510,13 +505,13 @@ msgid "Installing packages"
 msgstr "પેકેજોને સ્થાપિત કરી રહ્યા છે"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1663 ../client/pk-console-test.c:899
+#: ../client/pk-console.c:1663
 #, c-format
 msgid "This tool could not find the update details for %s: %s"
 msgstr "આ સાધન %s માટે સુધારા વિગતો શોધી શક્યું નહિં: %s"
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1671 ../client/pk-console-test.c:907
+#: ../client/pk-console.c:1671
 #, c-format
 msgid "This tool could not get the update details for %s: %s"
 msgstr "આ સાધન %s માટે સુધારા વિગતો મેળવી શક્યું નહિં: %s"
@@ -527,22 +522,22 @@ msgid "Error:"
 msgstr "ભૂલ:"
 
 #. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1716 ../client/pk-console-test.c:369
+#: ../client/pk-console.c:1716 ../client/pk-console-test.c:370
 msgid "Package description"
 msgstr "પેકેજ વર્ણન"
 
 #. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
-#: ../client/pk-console.c:1732 ../client/pk-console-test.c:387
+#: ../client/pk-console.c:1732 ../client/pk-console-test.c:388
 msgid "Message:"
 msgstr "સંદેશ:"
 
 #. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1760 ../client/pk-console-test.c:415
+#: ../client/pk-console.c:1760 ../client/pk-console-test.c:407
 msgid "Package files"
 msgstr "પેકેજ ફાઈલો"
 
 #. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1768 ../client/pk-console-test.c:410
+#: ../client/pk-console.c:1768 ../client/pk-console-test.c:402
 msgid "No files"
 msgstr "કોઈ ફાઈલો નથી"
 
@@ -553,12 +548,12 @@ msgstr "રીપોઝીટરી સહી જરૂરી"
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
 #. ask the user
-#: ../client/pk-console.c:1801 ../client/pk-task-text.c:107
+#: ../client/pk-console.c:1801 ../client/pk-task-text.c:113
 msgid "Do you accept this signature?"
 msgstr "શું તમે આ સહી સ્વીકારશો?"
 
 #. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1805 ../client/pk-task-text.c:111
+#: ../client/pk-console.c:1805 ../client/pk-task-text.c:117
 msgid "The signature was not accepted."
 msgstr "સહી સ્વીકારાયેલ ન હતી."
 
@@ -578,24 +573,25 @@ msgid "The license was refused."
 msgstr "લાઈસન્સ રદ થયું હતું."
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1879 ../client/pk-console-test.c:925
+#: ../client/pk-console.c:1879 ../client/pk-console-test.c:972
 msgid "The daemon crashed mid-transaction!"
 msgstr "ડિમન મધ્ય-પરિવહન દરમ્યાન ભાંગી પડ્યું!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1932 ../client/pk-console-test.c:969
+#: ../client/pk-console.c:1932 ../client/pk-console-test.c:1006
 msgid "PackageKit Console Interface"
 msgstr "PackageKit કન્સોલ ઈન્ટરફેસ"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1934 ../client/pk-console-test.c:971
+#: ../client/pk-console.c:1934 ../client/pk-console-test.c:1008
 msgid "Subcommands:"
 msgstr "ઉપઆદેશો:"
 
 #. TRANSLATORS: command line argument, if we should show debugging information
 #. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:2027 ../client/pk-console-test.c:1202
+#: ../client/pk-console.c:2027 ../client/pk-console-test.c:1099
 #: ../client/pk-generate-pack.c:187 ../client/pk-monitor.c:128
+#: ../client/pk-monitor-test.c:282
 #: ../contrib/command-not-found/pk-command-not-found.c:616
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:549
 #: ../contrib/device-rebind/pk-device-rebind.c:293 ../src/pk-main.c:211
@@ -603,18 +599,18 @@ msgid "Show extra debugging information"
 msgstr "વધારાની ડિબગીંગ જાણકારી બતાવો"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:2030 ../client/pk-console-test.c:1205
-#: ../client/pk-monitor.c:130
+#: ../client/pk-console.c:2030 ../client/pk-console-test.c:1102
+#: ../client/pk-monitor.c:130 ../client/pk-monitor-test.c:284
 msgid "Show the program version and exit"
 msgstr "કાર્યક્રમ આવૃત્તિ બતાવો અને બહાર નીકળો"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:2033 ../client/pk-console-test.c:1208
+#: ../client/pk-console.c:2033 ../client/pk-console-test.c:1105
 msgid "Set the filter, e.g. installed"
 msgstr "ગાળક સુયોજીત કરો, દા.ત. સ્થાપિત"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:2036 ../client/pk-console-test.c:1211
+#: ../client/pk-console.c:2036 ../client/pk-console-test.c:1108
 msgid "Exit without waiting for actions to complete"
 msgstr "ક્રિયાઓ સમાપ્ત થવાની રાહ જોયા વિના બહાર નીકળો"
 
@@ -624,91 +620,91 @@ msgid "This tool could not connect to system DBUS."
 msgstr "આ સાધન સિસ્ટમ DBUS સાથે જોડી શક્યા નહિં."
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:2153 ../client/pk-console-test.c:1279
+#: ../client/pk-console.c:2153 ../client/pk-console-test.c:1183
 msgid "The filter specified was invalid"
 msgstr "સ્પષ્ટ થયેલ ફિલ્ટર અયોગ્ય હતુ"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:2172 ../client/pk-console-test.c:1298
+#: ../client/pk-console.c:2172 ../client/pk-console-test.c:1202
 msgid "A search type is required, e.g. name"
 msgstr "શોધ પ્રકારની જરૂરિયાત છે, દા.ત. નામ"
 
 #. TRANSLATORS: the user needs to provide a search term
 #: ../client/pk-console.c:2179 ../client/pk-console.c:2188
 #: ../client/pk-console.c:2197 ../client/pk-console.c:2206
-#: ../client/pk-console-test.c:1305 ../client/pk-console-test.c:1317
-#: ../client/pk-console-test.c:1329 ../client/pk-console-test.c:1341
+#: ../client/pk-console-test.c:1209 ../client/pk-console-test.c:1221
+#: ../client/pk-console-test.c:1233 ../client/pk-console-test.c:1245
 msgid "A search term is required"
 msgstr "શોધ ટર્મ જરૂરી છે"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:2213 ../client/pk-console-test.c:1351
+#: ../client/pk-console.c:2213 ../client/pk-console-test.c:1255
 msgid "Invalid search type"
 msgstr "અયોગ્ય શોધ પ્રકાર"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:2219 ../client/pk-console-test.c:1358
+#: ../client/pk-console.c:2219
 msgid "A package name or filename to install is required"
 msgstr "સ્થાપન કરવા માટે પેકેજ નામ અથવા ફાઇલનામ જરૂરી છે"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2228 ../client/pk-console-test.c:1368
+#: ../client/pk-console.c:2228 ../client/pk-console-test.c:1282
 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:2237 ../client/pk-console-test.c:1379
+#: ../client/pk-console.c:2237 ../client/pk-console-test.c:1293
 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:2245 ../client/pk-console-test.c:1387
+#: ../client/pk-console.c:2245 ../client/pk-console-test.c:1302
 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:2252 ../client/pk-console-test.c:1394
+#: ../client/pk-console.c:2252 ../client/pk-console-test.c:1309
 msgid "Directory not found"
 msgstr "ડિરેક્ટરી મળી નહિં"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2260 ../client/pk-console-test.c:1403
+#: ../client/pk-console.c:2260 ../client/pk-console-test.c:1318
 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:2270 ../client/pk-console-test.c:1415
+#: ../client/pk-console.c:2270 ../client/pk-console-test.c:1329
 msgid "A transaction identifier (tid) is required"
 msgstr "પરિવહન ઓળખનાર (tid) જરૂરી છે"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:2287 ../client/pk-console-test.c:1437
+#: ../client/pk-console.c:2287 ../client/pk-console-test.c:1350
 msgid "A package name to resolve is required"
 msgstr "સુધારવા માટે પેકેજ નામ જરૂરી છે"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
 #: ../client/pk-console.c:2296 ../client/pk-console.c:2305
-#: ../client/pk-console-test.c:1448 ../client/pk-console-test.c:1459
+#: ../client/pk-console-test.c:1361 ../client/pk-console-test.c:1372
 msgid "A repository name is required"
 msgstr "રીપોઝીટરી નામ જરૂરી છે"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2314 ../client/pk-console-test.c:1470
+#: ../client/pk-console.c:2314 ../client/pk-console-test.c:1383
 msgid "A repo name, parameter and value are required"
 msgstr "રીપો નામ, પરિમાણ અને કિંમતની જરૂર છે"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:2328 ../client/pk-console-test.c:1488
+#: ../client/pk-console.c:2328 ../client/pk-console-test.c:1401
 msgid "An action, e.g. 'update-system' is required"
 msgstr "ક્રિયા, દા.ત. 'update-system જરૂરી છે"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:2335 ../client/pk-console-test.c:1495
+#: ../client/pk-console.c:2335 ../client/pk-console-test.c:1408
 msgid "A correct role is required"
 msgstr "સાચી ભૂમિકા જરૂરી છે"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2342 ../client/pk-console-test.c:1502
+#: ../client/pk-console.c:2342 ../client/pk-console-test.c:1415
 msgid "Failed to get the time since this action was last completed"
 msgstr "આ ક્રિયા છેલ્લી સમાપ્ત થયેલ હતી ત્યાં સુધી સમયને મેળવવાનું નિષ્ફળ"
 
@@ -716,15 +712,15 @@ msgstr "આ ક્રિયા છેલ્લી સમાપ્ત થયેàª
 #. TRANSLATORS: This is when the user fails to supply the package name
 #: ../client/pk-console.c:2352 ../client/pk-console.c:2364
 #: ../client/pk-console.c:2373 ../client/pk-console.c:2391
-#: ../client/pk-console.c:2400 ../client/pk-console-test.c:1511
-#: ../client/pk-console-test.c:1526 ../client/pk-console-test.c:1535
-#: ../client/pk-console-test.c:1556 ../client/pk-console-test.c:1565
+#: ../client/pk-console.c:2400 ../client/pk-console-test.c:1425
+#: ../client/pk-console-test.c:1440 ../client/pk-console-test.c:1449
+#: ../client/pk-console-test.c:1469 ../client/pk-console-test.c:1478
 #: ../client/pk-generate-pack.c:243
 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:2382 ../client/pk-console-test.c:1545
+#: ../client/pk-console.c:2382 ../client/pk-console-test.c:1458
 msgid "A package provide string is required"
 msgstr "પેકેજ શબ્દમાળાની પૂરી પાડે છે તેની જરૂર છે"
 
@@ -739,7 +735,7 @@ msgid "A list file to open is required"
 msgstr "ખોલવા માટે ફાઇલ યાદી જરૂરી છે"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2483 ../client/pk-console-test.c:1619
+#: ../client/pk-console.c:2483 ../client/pk-console-test.c:1538
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "વિકલ્પ '%s' આધારભૂત નથી"
@@ -753,10 +749,59 @@ msgstr "આ પ્રક્રિયા કરવા માટે અયોગà«
 #. /* TRANSLATORS: User does not have permission to do this */
 #. g_print ("%s\n", _("Incorrect privileges for this operation"));
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2499 ../client/pk-console-test.c:1631
+#: ../client/pk-console.c:2499 ../client/pk-console-test.c:1550
 msgid "Command failed"
 msgstr "આદેશ નિષ્ફળ"
 
+#. TRANSLATORS: more than one package could be found that matched, to follow is a list of possible packages
+#: ../client/pk-console-test.c:523 ../client/pk-tools-common.c:131
+msgid "More than one package matches:"
+msgstr "એક પેકેજ કરતાં વધુ જોડણીઓ:"
+
+#. TRANSLATORS: This finds out which package in the list to use
+#: ../client/pk-console-test.c:532 ../client/pk-tools-common.c:138
+msgid "Please choose the correct package: "
+msgstr "મહેરબાની કરીને યોગ્ય પેકેજ પસંદ કરો: "
+
+#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
+#: ../client/pk-console-test.c:734
+#, c-format
+msgid "This tool could not find the 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-test.c:762
+#, 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-test.c:790 ../client/pk-console-test.c:818
+#, c-format
+msgid "This tool could not find the package: %s"
+msgstr "આ સાધન પેકેજ ને શોધી શક્યુ નહિં: %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-test.c:846 ../client/pk-console-test.c:872
+#: ../client/pk-console-test.c:898 ../client/pk-console-test.c:924
+#: ../client/pk-console-test.c:950
+#, c-format
+msgid "This tool could not find all the packages: %s"
+msgstr "આ સાધન બધા પેકેજોને શોધી શક્યુ નહિં: %s"
+
+#. TRANSLATORS: the user did not specify what they wanted to install
+#: ../client/pk-console-test.c:1261
+msgid "A package name to install is required"
+msgstr "સ્થાપિત કરવા માટે પેકેજ નામ જરૂરી છે"
+
+#. TRANSLATORS: the user did not specify what they wanted to install
+#: ../client/pk-console-test.c:1270
+msgid "A filename to install is required"
+msgstr "સ્થાપન કરવા માટે થવા ફાઇલનામ જરૂરી છે"
+
 #. TRANSLATORS: This is the state of the transaction
 #: ../client/pk-generate-pack.c:103
 msgid "Downloading"
@@ -874,7 +919,7 @@ msgid "Failed to create '%s': %s"
 msgstr "'%s' બનાવવામાં નિષ્ફળ: %s"
 
 #. TRANSLATORS: this is a program that monitors PackageKit
-#: ../client/pk-monitor.c:146
+#: ../client/pk-monitor.c:146 ../client/pk-monitor-test.c:299
 msgid "PackageKit Monitor"
 msgstr "PackageKit મોનીટર"
 
@@ -882,90 +927,98 @@ msgstr "PackageKit મોનીટર"
 msgid "Cannot show the list of transactions"
 msgstr "પરિવહનોની યાદી ને બતાવી શકતા નથી"
 
+#: ../client/pk-monitor-test.c:204
+msgid "Failed to get transaction list"
+msgstr "પરિવહન યાદી મેળવવામાં નિષ્ફળ"
+
+#: ../client/pk-monitor-test.c:235
+msgid "Failed to get daemon state"
+msgstr "ડિમન સ્થિતિ મેળવવામાં નિષ્ફળ"
+
 #. ask the user
-#: ../client/pk-task-text.c:61
+#: ../client/pk-task-text.c:64
 msgid "Do you want to allow installing of unsigned software?"
 msgstr "શું તમે હસ્તાક્ષર ન થયેલ સોફ્ટવેરને સ્થાપિત કરવા માટે પરવાનગી આપવા માંગો છો?"
 
-#: ../client/pk-task-text.c:65
+#: ../client/pk-task-text.c:68
 msgid "The unsigned software will not be installed."
 msgstr "હસ્તાક્ષર ન થયેલ સોફ્ટવેર સ્થાપિત થયેલ હશે નહિં."
 
-#: ../client/pk-task-text.c:94
+#: ../client/pk-task-text.c:100
 msgid "Software source signature required"
 msgstr "સોફ્ટવેર સ્ત્રોત સહી જરૂરી"
 
-#: ../client/pk-task-text.c:96
+#: ../client/pk-task-text.c:102
 msgid "Software source name"
 msgstr "સોફ્ટવેર સ્ત્રોત નામ"
 
-#: ../client/pk-task-text.c:97
+#: ../client/pk-task-text.c:103
 msgid "Key URL"
 msgstr "કી URL"
 
-#: ../client/pk-task-text.c:98
+#: ../client/pk-task-text.c:104
 msgid "Key user"
 msgstr "કી વપરાશકર્તા"
 
-#: ../client/pk-task-text.c:99
+#: ../client/pk-task-text.c:105
 msgid "Key ID"
 msgstr "કી ID"
 
-#: ../client/pk-task-text.c:100
+#: ../client/pk-task-text.c:106
 msgid "Key fingerprint"
 msgstr "કી આંગળી-ચિહ્ન"
 
-#: ../client/pk-task-text.c:101
+#: ../client/pk-task-text.c:107
 msgid "Key Timestamp"
 msgstr "કી ટાઇમસ્ટેમ્પ"
 
-#: ../client/pk-task-text.c:142
+#: ../client/pk-task-text.c:151
 msgid "End user licence agreement required"
 msgstr "અંતિમ વપરાશકર્તા લાઈસન્સ મંજૂરીપત્રક જરૂરી"
 
-#: ../client/pk-task-text.c:143
+#: ../client/pk-task-text.c:152
 msgid "EULA ID"
 msgstr "EULA ID"
 
-#: ../client/pk-task-text.c:146
+#: ../client/pk-task-text.c:155
 msgid "Agreement"
 msgstr "મંજૂરીપત્રક"
 
 #. ask the user
-#: ../client/pk-task-text.c:152
+#: ../client/pk-task-text.c:161
 msgid "Do you accept this agreement?"
 msgstr "શું તમે આ મંજૂરીપત્રક સ્વીકારશો?"
 
-#: ../client/pk-task-text.c:156
+#: ../client/pk-task-text.c:165
 msgid "The agreement was not accepted."
 msgstr "મંજૂરીપત્રક સ્વીકારાયેલ ન હતી."
 
-#: ../client/pk-task-text.c:182
+#: ../client/pk-task-text.c:194
 msgid "Media change required"
 msgstr "મીડિયા બદલાવ જરૂરી"
 
-#: ../client/pk-task-text.c:183
+#: ../client/pk-task-text.c:195
 msgid "Media type"
 msgstr "મીડિયા પ્રકાર"
 
-#: ../client/pk-task-text.c:184
+#: ../client/pk-task-text.c:196
 msgid "Media ID"
 msgstr "મીડિયા ID"
 
-#: ../client/pk-task-text.c:185
+#: ../client/pk-task-text.c:197
 msgid "Text"
 msgstr "લખાણ"
 
 #. ask the user
-#: ../client/pk-task-text.c:189
+#: ../client/pk-task-text.c:201
 msgid "Please insert the correct media"
 msgstr "મહેરબાની કરીને યોગ્ય મીડિયાને દાખલ કરો"
 
-#: ../client/pk-task-text.c:193
+#: ../client/pk-task-text.c:205
 msgid "The correct media was not inserted."
 msgstr "યોગ્ય મીડિયા દાખલ થયલે ન હતુ."
 
-#: ../client/pk-task-text.c:288
+#: ../client/pk-task-text.c:303
 msgid "The transaction did not proceed."
 msgstr "પરિવહનની પ્રક્રિયા કરાઇ નહિં."
 
@@ -980,16 +1033,6 @@ msgstr "મહેરબાની કરીને ૧ થી %i સુધીનà«
 msgid "The package could not be found"
 msgstr "પેકેજ શોધી શક્યા નહિં"
 
-#. TRANSLATORS: more than one package could be found that matched, to follow is a list of possible packages
-#: ../client/pk-tools-common.c:131
-msgid "More than one package matches:"
-msgstr "એક પેકેજ કરતાં વધુ જોડણીઓ:"
-
-#. TRANSLATORS: This finds out which package in the list to use
-#: ../client/pk-tools-common.c:138
-msgid "Please choose the correct package: "
-msgstr "મહેરબાની કરીને યોગ્ય પેકેજ પસંદ કરો: "
-
 #. TRANSLATORS: when we are getting data from the daemon
 #: ../contrib/browser-plugin/pk-plugin-install.c:466
 msgid "Getting package information..."
commit cd0af820eaa04dc614b0b7dd7fd76b1f9b974f9d
Author: sandeeps <sandeeps at fedoraproject.org>
Date:   Mon Sep 7 07:42:44 2009 +0000

    Sending translation for Marathi

diff --git a/po/mr.po b/po/mr.po
index 4b37b2b..c3b7e4f 100644
--- a/po/mr.po
+++ b/po/mr.po
@@ -8,8 +8,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: packagekit.master\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-09-01 02:36+0000\n"
-"PO-Revision-Date: 2009-09-01 09:53+0530\n"
+"POT-Creation-Date: 2009-09-07 02:36+0000\n"
+"PO-Revision-Date: 2009-09-07 13:10+0530\n"
 "Last-Translator: Sandeep Shedmake <sshedmak at redhat.com>\n"
 "Language-Team: Marathi <fedora-trans-mr at redhat.com>\n"
 "MIME-Version: 1.0\n"
@@ -19,266 +19,274 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=(n!=1);\n"
 
 #. TRANSLATORS: this is an atomic transaction
-#: ../client/pk-console.c:235
+#: ../client/pk-console.c:238 ../client/pk-console-test.c:147
 msgid "Transaction"
 msgstr "व्यवहार"
 
 #. TRANSLATORS: this is the time the transaction was started in system timezone
-#: ../client/pk-console.c:237
+#: ../client/pk-console.c:240 ../client/pk-console-test.c:149
 msgid "System time"
 msgstr "प्रणाली वेळ"
 
 #. TRANSLATORS: this is if the transaction succeeded or not
-#: ../client/pk-console.c:239
+#: ../client/pk-console.c:242 ../client/pk-console-test.c:151
 msgid "Succeeded"
 msgstr "यशस्वी"
 
-#: ../client/pk-console.c:239
+#: ../client/pk-console.c:242 ../client/pk-console-test.c:151
 msgid "True"
 msgstr "True"
 
-#: ../client/pk-console.c:239
+#: ../client/pk-console.c:242 ../client/pk-console-test.c:151
 msgid "False"
 msgstr "False"
 
 #. TRANSLATORS: this is the transactions role, e.g. "update-system"
 #. TRANSLATORS: the trasaction role, e.g. update-system
-#: ../client/pk-console.c:241 ../src/pk-polkit-action-lookup.c:327
+#: ../client/pk-console.c:244 ../client/pk-console-test.c:153
+#: ../src/pk-polkit-action-lookup.c:327
 msgid "Role"
 msgstr "Role"
 
 #. TRANSLATORS: this is The duration of the transaction
-#: ../client/pk-console.c:246
+#: ../client/pk-console.c:249 ../client/pk-console-test.c:158
 msgid "Duration"
 msgstr "कालावधी"
 
-#: ../client/pk-console.c:246
+#: ../client/pk-console.c:249 ../client/pk-console-test.c:158
 msgid "(seconds)"
 msgstr "(सेकंद)"
 
 #. TRANSLATORS: this is The command line used to do the action
 #. TRANSLATORS: the command line of the thing that wants the authentication
-#: ../client/pk-console.c:250 ../src/pk-polkit-action-lookup.c:341
+#: ../client/pk-console.c:253 ../client/pk-console-test.c:162
+#: ../src/pk-polkit-action-lookup.c:341
 msgid "Command line"
 msgstr "आदेश ओळ"
 
 #. TRANSLATORS: this is the user ID of the user that started the action
-#: ../client/pk-console.c:252
+#: ../client/pk-console.c:255 ../client/pk-console-test.c:164
 msgid "User ID"
 msgstr "वापरकर्ता ID"
 
 #. TRANSLATORS: this is the username, e.g. hughsie
-#: ../client/pk-console.c:259
+#: ../client/pk-console.c:262 ../client/pk-console-test.c:171
 msgid "Username"
 msgstr "वापरकर्ता नाव"
 
 #. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
-#: ../client/pk-console.c:263
+#: ../client/pk-console.c:266 ../client/pk-console-test.c:175
 msgid "Real name"
 msgstr "वास्तविक नाव"
 
-#: ../client/pk-console.c:271
+#: ../client/pk-console.c:274 ../client/pk-console-test.c:183
 msgid "Affected packages:"
 msgstr "प्रभावीत संकुल:"
 
-#: ../client/pk-console.c:273
+#: ../client/pk-console.c:276 ../client/pk-console-test.c:185
 msgid "Affected packages: None"
 msgstr "प्रभावीत संकुल: काहिच नाही"
 
 #. TRANSLATORS: When processing, we might have to remove other dependencies
-#: ../client/pk-console.c:334
+#: ../client/pk-console.c:337 ../client/pk-task-text.c:220
 msgid "The following packages have to be removed:"
 msgstr "खालिल संकुल काढून टाकणे आवश्यक आहे:"
 
 #. TRANSLATORS: When processing, we might have to install other dependencies
-#: ../client/pk-console.c:337
+#: ../client/pk-console.c:340 ../client/pk-task-text.c:225
 msgid "The following packages have to be installed:"
 msgstr "खालील संकुल प्रतिष्ठापीत करणे आवश्यक आहे:"
 
 #. TRANSLATORS: When processing, we might have to update other dependencies
-#: ../client/pk-console.c:340
+#: ../client/pk-console.c:343 ../client/pk-task-text.c:230
 msgid "The following packages have to be updated:"
 msgstr "खालील संकुल सुधारीत करणे आवश्यक आहे:"
 
 #. TRANSLATORS: When processing, we might have to reinstall other dependencies
-#: ../client/pk-console.c:343
+#: ../client/pk-console.c:346 ../client/pk-task-text.c:235
 msgid "The following packages have to be reinstalled:"
 msgstr "खालील संकुलांचे पुनःप्रतिष्ठापन आवश्यक आहे:"
 
 #. TRANSLATORS: When processing, we might have to downgrade other dependencies
-#: ../client/pk-console.c:346
+#: ../client/pk-console.c:349 ../client/pk-task-text.c:240
 msgid "The following packages have to be downgraded:"
 msgstr "खालील संकुलांची एक आवृत्ती कमी करणे आवश्यक आहे:"
 
 #. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:360
+#: ../client/pk-console.c:363 ../client/pk-console-test.c:205
 msgid "Distribution"
 msgstr "वितरण"
 
 #. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:362
+#: ../client/pk-console.c:365 ../client/pk-console-test.c:207
 msgid "Type"
 msgstr "प्रकार"
 
 #. TRANSLATORS: this is any summary text describing the upgrade
 #. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:364 ../client/pk-console.c:387
+#. TRANSLATORS: this is any summary text describing the upgrade
+#. TRANSLATORS: this is the summary of the group
+#: ../client/pk-console.c:367 ../client/pk-console.c:390
+#: ../client/pk-console-test.c:209 ../client/pk-console-test.c:230
 msgid "Summary"
 msgstr "सारांश"
 
 #. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:376
+#: ../client/pk-console.c:379 ../client/pk-console-test.c:219
 msgid "Category"
 msgstr "प्रवर्ग"
 
 #. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:378
+#: ../client/pk-console.c:381 ../client/pk-console-test.c:221
 msgid "ID"
 msgstr "ID"
 
 #. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:381
+#: ../client/pk-console.c:384 ../client/pk-console-test.c:224
 msgid "Parent"
 msgstr "मुख्य"
 
 #. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:384
+#: ../client/pk-console.c:387 ../client/pk-console-test.c:227
 msgid "Name"
 msgstr "नाव"
 
 #. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:390
+#: ../client/pk-console.c:393 ../client/pk-console-test.c:233
 msgid "Icon"
 msgstr "चिन्ह"
 
 #. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:405
+#: ../client/pk-console.c:408 ../client/pk-console-test.c:247
 msgid "Details about the update:"
 msgstr "अद्ययावत विषयी तपशील:"
 
 #. TRANSLATORS: details about the update, package name and version
 #. TRANSLATORS: title, the names of the packages that the method is processing
-#: ../client/pk-console.c:407 ../src/pk-polkit-action-lookup.c:352
+#: ../client/pk-console.c:410 ../client/pk-console-test.c:253
+#: ../client/pk-task-text.c:101 ../client/pk-task-text.c:153
+#: ../src/pk-polkit-action-lookup.c:352
 msgid "Package"
 msgid_plural "Packages"
 msgstr[0] "संकुल"
 msgstr[1] "संकुले"
 
 #. TRANSLATORS: details about the update, any packages that this update updates
-#: ../client/pk-console.c:410
+#: ../client/pk-console.c:413 ../client/pk-console-test.c:256
 msgid "Updates"
 msgstr "अद्ययावत"
 
 #. TRANSLATORS: details about the update, any packages that this update obsoletes
-#: ../client/pk-console.c:414
+#: ../client/pk-console.c:417 ../client/pk-console-test.c:260
 msgid "Obsoletes"
 msgstr "जुणे"
 
 #. TRANSLATORS: details about the update, the vendor URLs
-#: ../client/pk-console.c:418
+#: ../client/pk-console.c:421 ../client/pk-console-test.c:264
+#: ../client/pk-task-text.c:154
 msgid "Vendor"
 msgstr "विक्रेता"
 
 #. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:422
+#: ../client/pk-console.c:425 ../client/pk-console-test.c:268
 msgid "Bugzilla"
 msgstr "बगजीला"
 
 #. TRANSLATORS: details about the update, the CVE URLs
-#: ../client/pk-console.c:426
+#: ../client/pk-console.c:429 ../client/pk-console-test.c:272
 msgid "CVE"
 msgstr "CVE"
 
 #. TRANSLATORS: details about the update, if the package requires a restart
-#: ../client/pk-console.c:430
+#: ../client/pk-console.c:433 ../client/pk-console-test.c:276
 msgid "Restart"
 msgstr "पुन्हा सुरू करा"
 
 #. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:434
+#: ../client/pk-console.c:437 ../client/pk-console-test.c:280
 msgid "Update text"
 msgstr "अद्ययावत पाठ्य"
 
 #. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:438
+#: ../client/pk-console.c:441 ../client/pk-console-test.c:284
 msgid "Changes"
 msgstr "बदल"
 
 #. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:442
+#: ../client/pk-console.c:445 ../client/pk-console-test.c:288
 msgid "State"
 msgstr "स्तर"
 
 #. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:447
+#: ../client/pk-console.c:450 ../client/pk-console-test.c:293
 msgid "Issued"
 msgstr "वितरण दिनांक"
 
 #. TRANSLATORS: details about the update, date the update was updated
-#: ../client/pk-console.c:452
+#: ../client/pk-console.c:455 ../client/pk-console-test.c:298
 msgid "Updated"
 msgstr "अद्ययावतीत"
 
 #. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:472
+#: ../client/pk-console.c:475 ../client/pk-console-test.c:316
 msgid "Enabled"
 msgstr "कार्यक्षम केले"
 
 #. TRANSLATORS: if the repo is disabled
-#: ../client/pk-console.c:475
+#: ../client/pk-console.c:478 ../client/pk-console-test.c:319
 msgid "Disabled"
 msgstr "अकार्यक्षम केले"
 
-#: ../client/pk-console.c:552 ../client/pk-console.c:554
+#: ../client/pk-console.c:555 ../client/pk-console.c:557
 msgid "Percentage"
 msgstr "टक्केवारी"
 
-#: ../client/pk-console.c:554
+#: ../client/pk-console.c:557
 msgid "Unknown"
 msgstr "अपरिचीत"
 
 #. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:596
+#: ../client/pk-console.c:599 ../client/pk-console-test.c:341
 msgid "System restart required by:"
 msgstr "प्रणाली पुन्हा चालू करणे आवश्यक:"
 
 #. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:599
+#: ../client/pk-console.c:602 ../client/pk-console-test.c:344
 msgid "Session restart required:"
 msgstr "सत्र पुन्हा चालू करणे आवश्यक:"
 
 #. TRANSLATORS: a package requires the system to be restarted due to a security update
-#: ../client/pk-console.c:602
+#: ../client/pk-console.c:605 ../client/pk-console-test.c:347
 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:605
+#: ../client/pk-console.c:608 ../client/pk-console-test.c:350
 msgid "Session restart (security) required:"
 msgstr "सत्र पुनः चालू करणे (सुरक्षा) आवश्यक:"
 
 #. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:608
+#: ../client/pk-console.c:611 ../client/pk-console-test.c:353
 msgid "Application restart required by:"
 msgstr "अनुप्रयोग पुन्हा चालू करणे आवश्यक:"
 
 #. TRANSLATORS: a package needs to restart their system
-#: ../client/pk-console.c:663
+#: ../client/pk-console.c:666 ../client/pk-console-test.c:704
 msgid "Please restart the computer to complete the update."
 msgstr "अद्ययावत पूर्ण करण्याकरीता कृपया संगणक पुन्हा चालू करा."
 
 #. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:666
+#: ../client/pk-console.c:669 ../client/pk-console-test.c:707
 msgid "Please logout and login to complete the update."
 msgstr "कृपया वापरकर्ता बदला व अद्ययावत पूर्ण करण्याकरीता प्रवेश करा."
 
 #. TRANSLATORS: a package needs to restart the application
-#: ../client/pk-console.c:669
+#: ../client/pk-console.c:672
 msgid "Please restart the application as it is being used."
 msgstr "कृपया अनुप्रयोग ज्यानुरूप वापरले जाते त्यानुरूप पुन्हा चालू करा."
 
 #. TRANSLATORS: a package needs to restart their system (due to security)
-#: ../client/pk-console.c:672
+#: ../client/pk-console.c:675 ../client/pk-console-test.c:710
 msgid ""
 "Please restart the computer to complete the update as important security "
 "updates have been installed."
@@ -287,7 +295,7 @@ msgstr ""
 "पुनःचालू करा."
 
 #. TRANSLATORS: a package needs to restart the session (due to security)
-#: ../client/pk-console.c:675
+#: ../client/pk-console.c:678 ../client/pk-console-test.c:713
 msgid ""
 "Please logout and login to complete the update as important security updates "
 "have been installed."
@@ -296,558 +304,620 @@ msgstr ""
 "पुनः प्रवेश करा."
 
 #. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:807
+#: ../client/pk-console.c:810
 #, c-format
 msgid "The package %s is already installed"
 msgstr "संकुल %s आधिपासूनच प्रतिष्ठापीत आहे"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:815
+#: ../client/pk-console.c:818
 #, c-format
 msgid "The package %s could not be installed: %s"
 msgstr "संकुल %s चे प्रतिष्ठापन शक्य नाही: %s"
 
 #. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
-#: ../client/pk-console.c:841 ../client/pk-console.c:889
-#: ../client/pk-console.c:913 ../client/pk-console.c:961
-#: ../client/pk-console.c:1057 ../client/pk-console.c:1170
-#: ../client/pk-console.c:1231 ../client/pk-tools-common.c:62
-#: ../client/pk-tools-common.c:81 ../client/pk-tools-common.c:89
+#: ../client/pk-console.c:844 ../client/pk-console.c:892
+#: ../client/pk-console.c:916 ../client/pk-console.c:964
+#: ../client/pk-console.c:1060 ../client/pk-console.c:1173
+#: ../client/pk-console.c:1234 ../client/pk-tools-common.c:63
+#: ../client/pk-tools-common.c:82 ../client/pk-tools-common.c:90
 #, c-format
 msgid "Internal error: %s"
 msgstr "आंतरीक त्रुटी: %s"
 
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:873 ../client/pk-console.c:945
-#: ../client/pk-console.c:1263
+#. ask the user
+#: ../client/pk-console.c:876 ../client/pk-console.c:948
+#: ../client/pk-console.c:1266 ../client/pk-task-text.c:299
 msgid "Proceed with changes?"
 msgstr "बदलांशी पुढे जायचे?"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:878 ../client/pk-console.c:950
+#: ../client/pk-console.c:881 ../client/pk-console.c:953
 msgid "The package install was canceled!"
 msgstr "संकुल प्रतिष्ठापन रद्द केले गेले!"
 
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:897 ../client/pk-console.c:1631
+#: ../client/pk-console.c:900 ../client/pk-console.c:1634
 #, c-format
 msgid "This tool could not install the packages: %s"
 msgstr "हे साधन संकुल प्रतिष्ठापीत करू शकले नाही: %s"
 
 #. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:969
+#: ../client/pk-console.c:972
 #, c-format
 msgid "This tool could not install the files: %s"
 msgstr "हे साधन फाइल प्रतिष्ठापीत करू शकले नाही: %s"
 
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:1025
+#: ../client/pk-console.c:1028
 #, c-format
 msgid "This tool could not remove %s: %s"
 msgstr "या साधन द्वारे %s काढून टाकणे शक्य नाही: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:1048 ../client/pk-console.c:1086
-#: ../client/pk-console.c:1115
+#: ../client/pk-console.c:1051 ../client/pk-console.c:1089
+#: ../client/pk-console.c:1118
 #, c-format
 msgid "This tool could not remove the packages: %s"
 msgstr "या साधन द्वारे संकुल काढून टाकणे अशक्य: %s"
 
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:1101
+#: ../client/pk-console.c:1104
 msgid "Proceed with additional packages?"
 msgstr "अगाऊ संकुल काढून टाकणे चालू ठेवायचे?"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:1106
+#: ../client/pk-console.c:1109
 msgid "The package removal was canceled!"
 msgstr "संकुल काढून टाकणे रद्द केले गेले!"
 
 #. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:1147
+#: ../client/pk-console.c:1150
 #, c-format
 msgid "This tool could not download the package %s as it could not be found"
 msgstr "हे साधन संकुल %s न आढळल्यामुळे डाऊनलोड करू शकले नाही"
 
 #. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:1178
+#: ../client/pk-console.c:1181
 #, c-format
 msgid "This tool could not download the packages: %s"
 msgstr "हे साधन संकुल डाऊनलोड करू शकले नाही: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1210 ../client/pk-console.c:1222
-#: ../client/pk-console.c:1277
+#: ../client/pk-console.c:1213 ../client/pk-console.c:1225
+#: ../client/pk-console.c:1280
 #, c-format
 msgid "This tool could not update %s: %s"
 msgstr "हे साधन %s अद्ययावतीत करू शकले नाही: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:1268
+#: ../client/pk-console.c:1271
 msgid "The package update was canceled!"
 msgstr "संकुल सुधारीत करणे रद्द केले गेले!"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1301 ../client/pk-console.c:1309
+#: ../client/pk-console.c:1304 ../client/pk-console.c:1312
 #, c-format
 msgid "This tool could not get the requirements for %s: %s"
 msgstr "हे साधन %s करीता आवश्यकता प्राप्त करू शकले नाही: %s"
 
 #. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:1331 ../client/pk-console.c:1339
+#: ../client/pk-console.c:1334 ../client/pk-console.c:1342
 #, c-format
 msgid "This tool could not get the dependencies for %s: %s"
 msgstr "हे साधन %s करीता अवलंबन प्राप्त करू शकने नाही: %s"
 
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:1361 ../client/pk-console.c:1369
+#: ../client/pk-console.c:1364 ../client/pk-console.c:1372
 #, c-format
 msgid "This tool could not get package details for %s: %s"
 msgstr "हे साधन %s करीता संकुल तपशील प्राप्त करू शकले नाही: %s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1391
+#: ../client/pk-console.c:1394
 #, c-format
 msgid "This tool could not find the files for %s: %s"
 msgstr "हे साधन %s करीता फाइल शोधू शकले नाही: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1399
+#: ../client/pk-console.c:1402
 #, c-format
 msgid "This tool could not get the file list for %s: %s"
 msgstr "हे साधन %s करीता फाइल यादी प्राप्त करू शकले नाही: %s"
 
 #. TRANSLATORS: There was an error getting the list of packages. The filename follows
-#: ../client/pk-console.c:1421
+#: ../client/pk-console.c:1424
 #, c-format
 msgid "File already exists: %s"
 msgstr "फाइल आधिपासूनच अस्तित्वात आहे: %s"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1426 ../client/pk-console.c:1482
-#: ../client/pk-console.c:1557
+#: ../client/pk-console.c:1429 ../client/pk-console.c:1485
+#: ../client/pk-console.c:1560
 msgid "Getting package list"
 msgstr "संकुल यादी प्राप्त करत आहे"
 
 #. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1432 ../client/pk-console.c:1488
-#: ../client/pk-console.c:1563
+#: ../client/pk-console.c:1435 ../client/pk-console.c:1491
+#: ../client/pk-console.c:1566
 #, c-format
 msgid "This tool could not get package list: %s"
 msgstr "हे साधन संकुल यादी प्राप्त करू शकले नाही: %s"
 
 #. TRANSLATORS: There was an error saving the list
-#: ../client/pk-console.c:1443
+#: ../client/pk-console.c:1446
 #, c-format
 msgid "Failed to save to disk"
 msgstr "डिस्क वर साठविण्यास अपयशी"
 
 #. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1477 ../client/pk-console.c:1552
+#: ../client/pk-console.c:1480 ../client/pk-console.c:1555
 #, c-format
 msgid "File does not exist: %s"
 msgstr "फाइल अस्तित्वात नाही: %s"
 
 #. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1509
+#: ../client/pk-console.c:1512
 msgid "Packages to add"
 msgstr "समावेष करण्याजोगी संकुल"
 
 #. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1517
+#: ../client/pk-console.c:1520
 msgid "Packages to remove"
 msgstr "काढून टाकण्याजोगी संकुल"
 
 #. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1585
+#: ../client/pk-console.c:1588
 #, c-format
 msgid "No new packages need to be installed"
 msgstr "कुठलेही नवीन संकुल प्रतिष्ठापीत करण्याची आवश्यकता नाही"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1591
+#: ../client/pk-console.c:1594
 msgid "To install"
 msgstr "प्रतिष्ठापन करा"
 
 #. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1603
+#: ../client/pk-console.c:1606
 msgid "Searching for package: "
 msgstr "संकुल करीता शोधत आहे: "
 
 #. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1607
+#: ../client/pk-console.c:1610
 msgid "not found."
 msgstr "आढळले नाही."
 
 #. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1618
+#: ../client/pk-console.c:1621
 #, c-format
 msgid "No packages can be found to install"
 msgstr "प्रतिष्ठापन करीता कुठलेही संकुल आढळले नाही"
 
 #. TRANSLATORS: installing new packages from package list
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
-#: ../client/pk-console.c:1624
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:886
+#: ../client/pk-console.c:1627
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:885
 #, c-format
 msgid "Installing packages"
 msgstr "संकुल प्रतिष्ठापीत करत आहे"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1660
+#: ../client/pk-console.c:1663
 #, c-format
 msgid "This tool could not find the update details for %s: %s"
 msgstr "हे साधन %s करीता अद्ययावत तपशील शोधू शकले नाही: %s"
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1668
+#: ../client/pk-console.c:1671
 #, c-format
 msgid "This tool could not get the update details for %s: %s"
 msgstr "हे साधन %s करीता अद्ययावत तपशील प्राप्त करू शकले नाही: %s"
 
 #. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
-#: ../client/pk-console.c:1699
+#: ../client/pk-console.c:1702
 msgid "Error:"
 msgstr "त्रुटी:"
 
 #. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1713
+#: ../client/pk-console.c:1716 ../client/pk-console-test.c:370
 msgid "Package description"
 msgstr "संकुल वर्णन"
 
 #. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
-#: ../client/pk-console.c:1729
+#: ../client/pk-console.c:1732 ../client/pk-console-test.c:388
 msgid "Message:"
 msgstr "संदेश:"
 
 #. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1757
+#: ../client/pk-console.c:1760 ../client/pk-console-test.c:407
 msgid "Package files"
 msgstr "संकुल फाइल"
 
 #. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1765
+#: ../client/pk-console.c:1768 ../client/pk-console-test.c:402
 msgid "No files"
 msgstr "फाइन नाही"
 
 #. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1788
+#: ../client/pk-console.c:1791
 msgid "Repository signature required"
 msgstr "रेपॉजटरी स्वाक्षरी आवश्यक आहे"
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1798
+#. ask the user
+#: ../client/pk-console.c:1801 ../client/pk-task-text.c:113
 msgid "Do you accept this signature?"
 msgstr "तुम्ही ही स्वाक्षरी स्वीकारता?"
 
 #. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1802
+#: ../client/pk-console.c:1805 ../client/pk-task-text.c:117
 msgid "The signature was not accepted."
 msgstr "स्वाक्षरी स्वीकारली गेली नाही."
 
 #. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1836
+#: ../client/pk-console.c:1839
 msgid "End user license agreement required"
 msgstr "वापरकर्ता परवाना करार आवश्यक आहे"
 
 #. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1843
+#: ../client/pk-console.c:1846
 msgid "Do you agree to this license?"
 msgstr "तुम्ही हा परवाना स्वीकारण्याची खात्री देता?"
 
 #. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1847
+#: ../client/pk-console.c:1850
 msgid "The license was refused."
 msgstr "परवाना फेटाळले गेले."
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1876
+#: ../client/pk-console.c:1879 ../client/pk-console-test.c:972
 msgid "The daemon crashed mid-transaction!"
 msgstr "डिमन व्यवहारच्या मधोमध क्रॅश झाले!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1929
+#: ../client/pk-console.c:1932 ../client/pk-console-test.c:1006
 msgid "PackageKit Console Interface"
 msgstr "PackageKit कन्सोल संवाद"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1931
+#: ../client/pk-console.c:1934 ../client/pk-console-test.c:1008
 msgid "Subcommands:"
 msgstr "उपआदेश:"
 
 #. TRANSLATORS: command line argument, if we should show debugging information
 #. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:2024 ../client/pk-generate-pack.c:185
-#: ../client/pk-monitor.c:128
+#: ../client/pk-console.c:2027 ../client/pk-console-test.c:1099
+#: ../client/pk-generate-pack.c:187 ../client/pk-monitor.c:128
+#: ../client/pk-monitor-test.c:282
 #: ../contrib/command-not-found/pk-command-not-found.c:616
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:550
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:549
 #: ../contrib/device-rebind/pk-device-rebind.c:293 ../src/pk-main.c:211
 msgid "Show extra debugging information"
 msgstr "अगाऊ डिबगींग माहिती दाखवा"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:2027 ../client/pk-monitor.c:130
+#: ../client/pk-console.c:2030 ../client/pk-console-test.c:1102
+#: ../client/pk-monitor.c:130 ../client/pk-monitor-test.c:284
 msgid "Show the program version and exit"
 msgstr "कार्यक्रम आवृत्ती दाखवा व बाहेर पडा"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:2030
+#: ../client/pk-console.c:2033 ../client/pk-console-test.c:1105
 msgid "Set the filter, e.g. installed"
 msgstr "चाळणी निश्चित करा, उ.दा. प्रतिष्ठापीत"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:2033
+#: ../client/pk-console.c:2036 ../client/pk-console-test.c:1108
 msgid "Exit without waiting for actions to complete"
 msgstr "कृती पूर्ण केल्याविना बाहेर पडा"
 
 #. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:2060
+#: ../client/pk-console.c:2063
 msgid "This tool could not connect to system DBUS."
 msgstr "हे साधन प्रणाली DBUS शी जुळवणी स्थापीत करण्यास अशक्य."
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:2150
+#: ../client/pk-console.c:2153 ../client/pk-console-test.c:1183
 msgid "The filter specified was invalid"
 msgstr "निश्चित चाळणी अवैध नुरूप आढळली"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:2169
+#: ../client/pk-console.c:2172 ../client/pk-console-test.c:1202
 msgid "A search type is required, e.g. name"
 msgstr "शोध प्रकार आवश्यक, उ.दा. नाव"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:2176 ../client/pk-console.c:2185
-#: ../client/pk-console.c:2194 ../client/pk-console.c:2203
+#: ../client/pk-console.c:2179 ../client/pk-console.c:2188
+#: ../client/pk-console.c:2197 ../client/pk-console.c:2206
+#: ../client/pk-console-test.c:1209 ../client/pk-console-test.c:1221
+#: ../client/pk-console-test.c:1233 ../client/pk-console-test.c:1245
 msgid "A search term is required"
 msgstr "शोध संज्ञा आवश्यक"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:2210
+#: ../client/pk-console.c:2213 ../client/pk-console-test.c:1255
 msgid "Invalid search type"
 msgstr "अवैध शोध प्रकार"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:2216
+#: ../client/pk-console.c:2219
 msgid "A package name or filename to install is required"
 msgstr "प्रतिष्ठपन करीता संकुल नाव किंवा फाइलनाव आवश्यक आहे"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2225
+#: ../client/pk-console.c:2228 ../client/pk-console-test.c:1282
 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:2234
+#: ../client/pk-console.c:2237 ../client/pk-console-test.c:1293
 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:2242
+#: ../client/pk-console.c:2245 ../client/pk-console-test.c:1302
 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:2249
+#: ../client/pk-console.c:2252 ../client/pk-console-test.c:1309
 msgid "Directory not found"
 msgstr "डिरेक्ट्री आढळली नाही"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2257
+#: ../client/pk-console.c:2260 ../client/pk-console-test.c:1318
 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:2267
+#: ../client/pk-console.c:2270 ../client/pk-console-test.c:1329
 msgid "A transaction identifier (tid) is required"
 msgstr "transaction identifier (tid) आवश्यक आहे"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:2284
+#: ../client/pk-console.c:2287 ../client/pk-console-test.c:1350
 msgid "A package name to resolve is required"
 msgstr "निर्धारण करीता संकुल नाव आवश्यक आहे"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:2293 ../client/pk-console.c:2302
+#: ../client/pk-console.c:2296 ../client/pk-console.c:2305
+#: ../client/pk-console-test.c:1361 ../client/pk-console-test.c:1372
 msgid "A repository name is required"
 msgstr "रेपॉजिटरी नाव आवश्यक आहे"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2311
+#: ../client/pk-console.c:2314 ../client/pk-console-test.c:1383
 msgid "A repo name, parameter and value are required"
 msgstr "रेपो नाव, बाब व मूल्य आवश्यक आहे"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:2325
+#: ../client/pk-console.c:2328 ../client/pk-console-test.c:1401
 msgid "An action, e.g. 'update-system' is required"
 msgstr "कृती, उ.दा. 'update-system' आवश्यक आहे"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:2332
+#: ../client/pk-console.c:2335 ../client/pk-console-test.c:1408
 msgid "A correct role is required"
 msgstr "वर्तमान भूमिका आवश्यक आहे"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2339
+#: ../client/pk-console.c:2342 ../client/pk-console-test.c:1415
 msgid "Failed to get the time since this action was last completed"
 msgstr "शेवटच्यावेळी पूर्ण केलेली कृतीचे वेळ प्राप्त करण्यास अपयशी"
 
 #. TRANSLATORS: The user did not provide a package name
 #. TRANSLATORS: This is when the user fails to supply the package name
-#: ../client/pk-console.c:2349 ../client/pk-console.c:2361
-#: ../client/pk-console.c:2370 ../client/pk-console.c:2388
-#: ../client/pk-console.c:2397 ../client/pk-generate-pack.c:241
+#: ../client/pk-console.c:2352 ../client/pk-console.c:2364
+#: ../client/pk-console.c:2373 ../client/pk-console.c:2391
+#: ../client/pk-console.c:2400 ../client/pk-console-test.c:1425
+#: ../client/pk-console-test.c:1440 ../client/pk-console-test.c:1449
+#: ../client/pk-console-test.c:1469 ../client/pk-console-test.c:1478
+#: ../client/pk-generate-pack.c:243
 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:2379
+#: ../client/pk-console.c:2382 ../client/pk-console-test.c:1458
 msgid "A package provide string is required"
 msgstr "संकुल द्वारे पुरविलेली अक्षरमाळा आवश्यक आहे"
 
 #. TRANSLATORS: The user didn't specify a filename to create as a list
-#: ../client/pk-console.c:2406
+#: ../client/pk-console.c:2409
 msgid "A list file name to create is required"
 msgstr "बनविण्याकरीता यादी फाइल नाव आवश्यक आहे"
 
 #. TRANSLATORS: The user didn't specify a filename to open as a list
-#: ../client/pk-console.c:2416 ../client/pk-console.c:2426
+#: ../client/pk-console.c:2419 ../client/pk-console.c:2429
 msgid "A list file to open is required"
 msgstr "उघडण्याकरीता यादी फाइल आवश्यक आहे"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2480
+#: ../client/pk-console.c:2483 ../client/pk-console-test.c:1538
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "पर्याय '%s' समर्थीत नाही"
 
 #. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2493
+#: ../client/pk-console.c:2496
 msgid "Incorrect privileges for this operation"
 msgstr "या क्रिया करीता अयोग्य परवानगी"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2496
+#. /* TRANSLATORS: User does not have permission to do this */
+#. g_print ("%s\n", _("Incorrect privileges for this operation"));
+#. TRANSLATORS: Generic failure of what they asked to do
+#: ../client/pk-console.c:2499 ../client/pk-console-test.c:1550
 msgid "Command failed"
 msgstr "आदेश अपयशी"
 
+#. TRANSLATORS: more than one package could be found that matched, to follow is a list of possible packages
+#: ../client/pk-console-test.c:523 ../client/pk-tools-common.c:131
+msgid "More than one package matches:"
+msgstr "एकापेक्षा जास्त संकुल जुळवणी:"
+
+#. TRANSLATORS: This finds out which package in the list to use
+#: ../client/pk-console-test.c:532 ../client/pk-tools-common.c:138
+msgid "Please choose the correct package: "
+msgstr "कृपया योग्य संकुल निवडा: "
+
+#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
+#: ../client/pk-console-test.c:734
+#, c-format
+msgid "This tool could not find the 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-test.c:762
+#, 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-test.c:790 ../client/pk-console-test.c:818
+#, c-format
+msgid "This tool could not find the package: %s"
+msgstr "हे साधन संकुल शोधू शकले नाही: %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-test.c:846 ../client/pk-console-test.c:872
+#: ../client/pk-console-test.c:898 ../client/pk-console-test.c:924
+#: ../client/pk-console-test.c:950
+#, c-format
+msgid "This tool could not find all the packages: %s"
+msgstr "हे साधन सर्व संकुल शोधू शकले नाही: %s"
+
+#. TRANSLATORS: the user did not specify what they wanted to install
+#: ../client/pk-console-test.c:1261
+msgid "A package name to install is required"
+msgstr "प्रतिष्ठापनकरीता संकुलचे नाव आवश्यक आहे"
+
+#. TRANSLATORS: the user did not specify what they wanted to install
+#: ../client/pk-console-test.c:1270
+msgid "A filename to install is required"
+msgstr "प्रतिष्ठपन करीता फाइलचेनाव आवश्यक आहे"
+
 #. TRANSLATORS: This is the state of the transaction
-#: ../client/pk-generate-pack.c:101
+#: ../client/pk-generate-pack.c:103
 msgid "Downloading"
 msgstr "डाऊनलोड करत आहे"
 
 #. TRANSLATORS: This is when the main packages are being downloaded
-#: ../client/pk-generate-pack.c:121
+#: ../client/pk-generate-pack.c:123
 msgid "Downloading packages"
 msgstr "संकुल डाऊनलोड करत आहे"
 
 #. TRANSLATORS: This is when the dependency packages are being downloaded
-#: ../client/pk-generate-pack.c:126
+#: ../client/pk-generate-pack.c:128
 msgid "Downloading dependencies"
 msgstr "अवलंबन डाऊनलोड करत आहे"
 
 #. TRANSLATORS: we can exclude certain packages (glibc) when we know they'll exist on the target
-#: ../client/pk-generate-pack.c:188
+#: ../client/pk-generate-pack.c:190
 msgid "Set the file name of dependencies to be excluded"
 msgstr "वगळण्याजोगी अवलंबनचे फाइल नाव निश्चित करा"
 
 #. TRANSLATORS: the output location
-#: ../client/pk-generate-pack.c:191
+#: ../client/pk-generate-pack.c:193
 msgid "The output file or directory (the current directory is used if ommitted)"
 msgstr "आऊटपुट फाइल किंवा डिरेक्ट्री (वगळल्यास वर्तमान डिरेक्ट्रीचा वापर करा)"
 
 #. TRANSLATORS: put a list of packages in the pack
-#: ../client/pk-generate-pack.c:194
+#: ../client/pk-generate-pack.c:196
 msgid "The package to be put into the service pack"
 msgstr "सेवा पॅक अंतर्गत समाविष्ट करण्याजोगी संकुल"
 
 #. TRANSLATORS: put all pending updates in the pack
-#: ../client/pk-generate-pack.c:197
+#: ../client/pk-generate-pack.c:199
 msgid "Put all updates available in the service pack"
 msgstr "सेवा पॅक अंतर्गत सर्व उपलब्ध अद्ययावत समाविष्ट करा"
 
 #. TRANSLATORS: This is when the user fails to supply the correct arguments
-#: ../client/pk-generate-pack.c:225
+#: ../client/pk-generate-pack.c:227
 msgid "Neither --package or --updates option selected."
 msgstr "--package किंवा --updates पर्याय निवडले नाही."
 
 #. TRANSLATORS: This is when the user fails to supply just one argument
-#: ../client/pk-generate-pack.c:233
+#: ../client/pk-generate-pack.c:235
 msgid "Both options selected."
 msgstr "दोन्ही पर्याय निवडले."
 
 #. TRANSLATORS: This is when the user fails to supply the output
-#: ../client/pk-generate-pack.c:249
+#: ../client/pk-generate-pack.c:251
 msgid "A output directory or file name is required"
 msgstr "आऊटपुट डिरेक्ट्री किंवा फाइल नाव आवश्यक आहे"
 
 #. TRANSLATORS: This is when the backend doesn't have the capability to get-depends
 #. TRANSLATORS: This is when the backend doesn't have the capability to download
-#: ../client/pk-generate-pack.c:267 ../client/pk-generate-pack.c:273
+#: ../client/pk-generate-pack.c:269 ../client/pk-generate-pack.c:275
 msgid "The package manager cannot perform this type of operation."
 msgstr "संकुल व्यवस्थापक या प्रकारची कार्य कार्यान्वीत करू शकत नाही."
 
 #. TRANSLATORS: This is when the distro didn't include libarchive support into PK
-#: ../client/pk-generate-pack.c:280
+#: ../client/pk-generate-pack.c:282
 msgid ""
 "Service packs cannot be created as PackageKit was not built with libarchive "
 "support."
 msgstr "PackageKit ला libarchive समर्थन सह बिल्ट न केल्यामुळे Service पैक बनवणे शक्य नाही."
 
 #. TRANSLATORS: the user specified an absolute path, but didn't get the extension correct
-#: ../client/pk-generate-pack.c:291
+#: ../client/pk-generate-pack.c:293
 msgid "If specifying a file, the service pack name must end with"
 msgstr "फाइल निश्चित केल्यास, सेवा पॅक नाव यानुरूप समाप्त व्हायला हवे"
 
 #. TRANSLATORS: This is when file already exists
-#: ../client/pk-generate-pack.c:307
+#: ../client/pk-generate-pack.c:309
 msgid "A pack with the same name already exists, do you want to overwrite it?"
 msgstr "समान नावाचे पॅक आधिपासूनच अस्तित्वात आहे, तुम्हाला खोडून पुन्हा लिहायचे?"
 
 #. TRANSLATORS: This is when the pack was not overwritten
-#: ../client/pk-generate-pack.c:310
+#: ../client/pk-generate-pack.c:312
 msgid "The pack was not overwritten."
 msgstr "पॅक खोडून पुन्हा लिहीले गेले नाही."
 
 #. TRANSLATORS: This is when the temporary directory cannot be created, the directory name follows
-#: ../client/pk-generate-pack.c:323
+#: ../client/pk-generate-pack.c:325
 msgid "Failed to create directory:"
 msgstr "डिरेक्ट्री बनविण्यास अपयशी:"
 
 #. TRANSLATORS: This is when the list of packages from the remote computer cannot be opened
-#: ../client/pk-generate-pack.c:333
+#: ../client/pk-generate-pack.c:335
 msgid "Failed to open package list."
 msgstr "संकुल यादी उघडण्यास अपयशी."
 
 #. TRANSLATORS: The package name is being matched up to available packages
-#: ../client/pk-generate-pack.c:344
+#: ../client/pk-generate-pack.c:346
 msgid "Finding package name."
 msgstr "संकुल नाव शोधत आहे."
 
 #. TRANSLATORS: This is when the package cannot be found in any software source. The detailed error follows
-#: ../client/pk-generate-pack.c:348
+#: ../client/pk-generate-pack.c:350
 #, c-format
 msgid "Failed to find package '%s': %s"
 msgstr "संकुल '%s' आढळले नाही: %s"
 
 #. TRANSLATORS: This is telling the user we are in the process of making the pack
-#: ../client/pk-generate-pack.c:365
+#: ../client/pk-generate-pack.c:367
 msgid "Creating service pack..."
 msgstr "सेवा पॅक बनवत आहे..."
 
 #. TRANSLATORS: we succeeded in making the file
-#: ../client/pk-generate-pack.c:372
+#: ../client/pk-generate-pack.c:374
 #, c-format
 msgid "Service pack created '%s'"
 msgstr "सेवा पॅक '%s' बनविले"
 
 #. TRANSLATORS: we failed to make te file
-#: ../client/pk-generate-pack.c:377
+#: ../client/pk-generate-pack.c:379
 #, c-format
 msgid "Failed to create '%s': %s"
 msgstr "'%s' बनविण्यास अपयशी: %s"
 
 #. TRANSLATORS: this is a program that monitors PackageKit
-#: ../client/pk-monitor.c:146
+#: ../client/pk-monitor.c:146 ../client/pk-monitor-test.c:299
 msgid "PackageKit Monitor"
 msgstr "पॅकेजकिट मॉनिटर"
 
@@ -855,27 +925,112 @@ msgstr "पॅकेजकिट मॉनिटर"
 msgid "Cannot show the list of transactions"
 msgstr "व्यावहारांची सूची दाखवणे अशक्य"
 
-#. TRANSLATORS: The package was not found in any software sources
-#: ../client/pk-tools-common.c:118
-#, c-format
-msgid "The package could not be found"
-msgstr "संकुल आढळले नाही"
+#: ../client/pk-monitor-test.c:204
+msgid "Failed to get transaction list"
+msgstr "व्यवहार सूची प्राप्त करण्यास अपयशी"
 
-#. TRANSLATORS: more than one package could be found that matched, to follow is a list of possible packages
-#: ../client/pk-tools-common.c:130
-msgid "More than one package matches:"
-msgstr "एकापेक्षा जास्त संकुल जुळवणी:"
+#: ../client/pk-monitor-test.c:235
+msgid "Failed to get daemon state"
+msgstr "डीमन स्तर प्राप्त करण्यास अपयशी"
 
-#. TRANSLATORS: This finds out which package in the list to use
-#: ../client/pk-tools-common.c:137
-msgid "Please choose the correct package: "
-msgstr "कृपया योग्य संकुल निवडा: "
+#. ask the user
+#: ../client/pk-task-text.c:64
+msgid "Do you want to allow installing of unsigned software?"
+msgstr "तुम्हाला विनास्वाक्षरी सॉफ्टवेअरचे प्रतिष्ठापन स्वीकारायचे?"
 
-#: ../client/pk-tools-common.c:162
+#: ../client/pk-task-text.c:68
+msgid "The unsigned software will not be installed."
+msgstr "विनास्वाक्षरी सॉफ्टेवअर प्रतिष्ठापीत केले जाणार नाही."
+
+#: ../client/pk-task-text.c:100
+msgid "Software source signature required"
+msgstr "सॉफ्टवेअर स्रोत स्वाक्षरी आवश्यक आहे"
+
+#: ../client/pk-task-text.c:102
+msgid "Software source name"
+msgstr "सॉफ्टवेअर स्रोतचे नाव"
+
+#: ../client/pk-task-text.c:103
+msgid "Key URL"
+msgstr "किचे URL"
+
+#: ../client/pk-task-text.c:104
+msgid "Key user"
+msgstr "किचा वापरकर्ता"
+
+#: ../client/pk-task-text.c:105
+msgid "Key ID"
+msgstr "किचे ID"
+
+#: ../client/pk-task-text.c:106
+msgid "Key fingerprint"
+msgstr "किचे फिंगरप्रिंट"
+
+#: ../client/pk-task-text.c:107
+msgid "Key Timestamp"
+msgstr "किचे टाइमस्टॅम्प"
+
+#: ../client/pk-task-text.c:151
+msgid "End user licence agreement required"
+msgstr "वापरकर्ता परवाना करार आवश्यक आहे"
+
+#: ../client/pk-task-text.c:152
+msgid "EULA ID"
+msgstr "EULA ID"
+
+#: ../client/pk-task-text.c:155
+msgid "Agreement"
+msgstr "करार"
+
+#. ask the user
+#: ../client/pk-task-text.c:161
+msgid "Do you accept this agreement?"
+msgstr "तुम्हाला हे करार स्वीकारायचे?"
+
+#: ../client/pk-task-text.c:165
+msgid "The agreement was not accepted."
+msgstr "करार स्वीकारले गेले नाही."
+
+#: ../client/pk-task-text.c:194
+msgid "Media change required"
+msgstr "मिडीया बदलाव आवश्यक"
+
+#: ../client/pk-task-text.c:195
+msgid "Media type"
+msgstr "मिडीया प्रकार"
+
+#: ../client/pk-task-text.c:196
+msgid "Media ID"
+msgstr "मिडीयाचे ID"
+
+#: ../client/pk-task-text.c:197
+msgid "Text"
+msgstr "मजकूर"
+
+#. ask the user
+#: ../client/pk-task-text.c:201
+msgid "Please insert the correct media"
+msgstr "कृपया योग्य मिडीया अंतर्भूत करा"
+
+#: ../client/pk-task-text.c:205
+msgid "The correct media was not inserted."
+msgstr "योग्य मिडीया अंतर्भूत केले नाही."
+
+#: ../client/pk-task-text.c:303
+msgid "The transaction did not proceed."
+msgstr "व्यवहार पुढे कार्यान्वीत झाले नाही."
+
+#: ../client/pk-text.c:50
 #, c-format
 msgid "Please enter a number from 1 to %i: "
 msgstr "कृपया 1 ते %i क्रमांक निवडा: "
 
+#. TRANSLATORS: The package was not found in any software sources
+#: ../client/pk-tools-common.c:119
+#, c-format
+msgid "The package could not be found"
+msgstr "संकुल आढळले नाही"
+
 #. TRANSLATORS: when we are getting data from the daemon
 #: ../contrib/browser-plugin/pk-plugin-install.c:466
 msgid "Getting package information..."
@@ -1031,177 +1186,177 @@ msgid "Failed to find the package %s, or already installed: %s"
 msgstr "संकुल %s शोधण्यास अपयशी, किंवा आधिपासूनच प्रतिष्ठापीत असेल: %s"
 
 #. command line argument, simulate what would be done, but don't actually do it
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:553
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:552
 msgid "Don't actually install any packages, only simulate what would be installed"
 msgstr "संकुल वास्तविकरित्या प्रतिष्ठापीत करू नका, व फक्त प्रतिष्ठापनजोगी घटक सिम्यूलेट करा"
 
 #. command line argument, do we skip packages that depend on the ones specified
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:556
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:555
 msgid "Do not install dependencies of the core packages"
 msgstr "कोर संकुलचे अवलंबन प्रतिष्ठापीत करू नका"
 
 #. command line argument, do we operate quietly
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:559
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:558
 msgid "Do not display information or progress"
 msgstr "माहिती किंवा प्रगती दाखवू नका"
 
 #. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:577
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:576
 msgid "PackageKit Debuginfo Installer"
 msgstr "पॅकेजकिट डिबगइंफो इन्सटॉलर"
 
 #. TRANSLATORS: the use needs to specify a list of package names on the command line
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:589
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:588
 #, c-format
 msgid "ERROR: Specify package names to install."
 msgstr "ERROR: प्रतिष्ठापनजोगी संकुल नाव निश्चित करा."
 
 #. TRANSLATORS: we are getting the list of repositories
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:623
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:622
 #, c-format
 msgid "Getting sources list"
-msgstr "स्त्रोत यादी प्राप्त करत आहे"
+msgstr "स्रोत यादी प्राप्त करत आहे"
 
 #. TRANSLATORS: all completed 100%
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:641
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:681
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:716
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:800
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:844
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:911
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:955
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:640
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:680
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:715
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:799
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:843
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:910
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:954
 #, c-format
 msgid "OK."
 msgstr "ठिक."
 
 #. TRANSLATORS: tell the user what we found
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:644
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:643
 #, c-format
 msgid "Found %i enabled and %i disabled sources."
-msgstr "%i कार्यान्वीत व %i अकार्यान्वीत स्त्रोत आढळले."
+msgstr "%i कार्यान्वीत व %i अकार्यान्वीत स्रोत आढळले."
 
 #. TRANSLATORS: we're finding repositories that match out pattern
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:651
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:650
 #, c-format
 msgid "Finding debugging sources"
-msgstr "डिबगींग स्त्रोत शोधत आहे"
+msgstr "डिबगींग स्रोत शोधत आहे"
 
 #. TRANSLATORS: tell the user what we found
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:684
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:683
 #, c-format
 msgid "Found %i disabled debuginfo repos."
 msgstr "%i अकार्यान्वीत debuginfo repos आढळले."
 
 #. TRANSLATORS: we're now enabling all the debug sources we found
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:691
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:690
 #, c-format
 msgid "Enabling debugging sources"
-msgstr "डिबगींग स्त्रोत कार्यान्वीत करत आहे"
+msgstr "डिबगींग स्रोत कार्यान्वीत करत आहे"
 
 #. TRANSLATORS: operation was not successful
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:701
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:785
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:829
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:896
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:940
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:700
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:784
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:828
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:895
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:939
 msgid "FAILED."
 msgstr "अपयशी."
 
 #. TRANSLATORS: tell the user how many we enabled
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:719
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:718
 #, c-format
 msgid "Enabled %i debugging sources."
-msgstr "%i डिबगींग स्त्रोत कार्यान्वीत केले."
+msgstr "%i डिबगींग स्रोत कार्यान्वीत केले."
 
 #. TRANSLATORS: we're now finding packages that match in all the repos
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:726
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:725
 #, c-format
 msgid "Finding debugging packages"
 msgstr "डिबगींग संकुल शोधत आहे"
 
 #. TRANSLATORS: we couldn't find the package name, non-fatal
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:738
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:737
 #, c-format
 msgid "Failed to find the package %s: %s"
 msgstr "संकुल %s शोधण्यास अपयशी: %s"
 
 #. TRANSLATORS: we couldn't find the debuginfo package name, non-fatal
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:761
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:760
 #, c-format
 msgid "Failed to find the debuginfo package %s: %s"
 msgstr "debuginfo संकुल %s शोधण्यास अपयशी: %s"
 
 #. TRANSLATORS: no debuginfo packages could be found to be installed
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:789
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:788
 #, c-format
 msgid "Found no packages to install."
 msgstr "प्रतिष्ठापन करीता संकुल आढळले नाही."
 
 #. TRANSLATORS: tell the user we found some packages, and then list them
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:803
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:802
 #, c-format
 msgid "Found %i packages:"
 msgstr "%i संकुल आढळले:"
 
 #. TRANSLATORS: tell the user we are searching for deps
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:819
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:818
 #, c-format
 msgid "Finding packages that depend on these packages"
 msgstr "या संकुलवर अवलंबीत संकुल शोधत आहे"
 
 #. TRANSLATORS: could not install, detailed error follows
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:832
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:831
 #, c-format
 msgid "Could not find dependant packages: %s"
 msgstr "अवलंबन संकुल आढळले नाही: %s"
 
 #. TRANSLATORS: tell the user we found some more packages
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:848
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:847
 #, c-format
 msgid "Found %i extra packages."
 msgstr "%i अगाऊ संकुल शोधत आहे."
 
 #. TRANSLATORS: tell the user we found some more packages
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:852
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:851
 #, c-format
 msgid "No extra packages required."
 msgstr "अगाऊ संकुल आवश्यक नाही."
 
 #. TRANSLATORS: tell the user we found some packages (and deps), and then list them
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:861
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:860
 #, c-format
 msgid "Found %i packages to install:"
 msgstr "प्रतिष्ठापन करीता %i संकुल आढळले:"
 
 #. TRANSLATORS: simulate mode is a testing mode where we quit before the action
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:874
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:873
 #, c-format
 msgid "Not installing packages in simulate mode"
 msgstr "सिम्यूलेट पद्धती नुरूप संकुल प्रतिष्ठापीत करत नाही"
 
 #. TRANSLATORS: could not install, detailed error follows
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:899
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:898
 #, c-format
 msgid "Could not install packages: %s"
 msgstr "संकुल प्रतिष्ठापीत करणे अशक्य: %s"
 
 #. TRANSLATORS: we are now disabling all debuginfo repos we previously enabled
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:931
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:930
 #, c-format
 msgid "Disabling sources previously enabled"
-msgstr "पूर्वी कार्यान्वीत केलेले स्त्रोत अकार्यान्वीत करत आहे"
+msgstr "पूर्वी कार्यान्वीत केलेले स्रोत अकार्यान्वीत करत आहे"
 
 #. TRANSLATORS: no debuginfo packages could be found to be installed, detailed error follows
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:943
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:942
 #, c-format
 msgid "Could not disable the debugging sources: %s"
-msgstr "डिबगींग स्त्रोत अकार्यान्वीत करण्यास अशक्य: %s"
+msgstr "डिबगींग स्रोत अकार्यान्वीत करण्यास अशक्य: %s"
 
 #. TRANSLATORS: we disabled all the debugging repos that we enabled before
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:958
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:957
 #, c-format
 msgid "Disabled %i debugging sources."
-msgstr "%i डिबगींग स्त्रोत अकार्यान्वीत केले."
+msgstr "%i डिबगींग स्रोत अकार्यान्वीत केले."
 
 #. TRANSLATORS: couldn't open device to write
 #: ../contrib/device-rebind/pk-device-rebind.c:61
@@ -1321,7 +1476,7 @@ 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 ""
@@ -1339,7 +1494,7 @@ msgstr "अविश्वारसर्ह संकुल प्रतिषà
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:14
 msgid "Authentication is required to refresh the system sources"
-msgstr "प्रणाली स्त्रोत पुन्ह दाखल करण्याकरीता ओळख पटवणे आवश्यक आहे"
+msgstr "प्रणाली स्रोत पुन्ह दाखल करण्याकरीता ओळख पटवणे आवश्यक आहे"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:15
 msgid "Authentication is required to reload the device with a new driver"
@@ -1379,7 +1534,7 @@ msgstr "बाहेरील कार्य रद्द"
 #.
 #: ../policy/org.freedesktop.packagekit.policy.in.h:31
 msgid "Change software source parameters"
-msgstr "सॉफ्टवेअर स्त्रोत बाब बदला"
+msgstr "सॉफ्टवेअर स्रोत बाब बदला"
 
 #. SECURITY:
 #. - Normal users do not need authentication to install signed packages
@@ -1407,7 +1562,7 @@ msgstr "अविश्वासर्ह स्थानीय फाइल प
 #.
 #: ../policy/org.freedesktop.packagekit.policy.in.h:50
 msgid "Refresh system sources"
-msgstr "प्रणाली स्त्रोत पुन्ह दाखल करा"
+msgstr "प्रणाली स्रोत पुन्ह दाखल करा"
 
 #. SECURITY:
 #. - Normal users require admin authentication to rebind a driver
@@ -1540,12 +1695,12 @@ msgstr "सुरू करतेवेळी त्रुटी आढळली
 
 #: ../src/pk-polkit-action-lookup.c:147
 msgid "To install debugging packages, extra sources need to be enabled"
-msgstr "डिबगींग संकुल प्रतिष्ठापीत करण्याकरीता, अगाऊ स्त्रोत कार्यान्वीत करणे आवश्यक आहे"
+msgstr "डिबगींग संकुल प्रतिष्ठापीत करण्याकरीता, अगाऊ स्रोत कार्यान्वीत करणे आवश्यक आहे"
 
 #. TRANSLATORS: is not GPG signed
 #: ../src/pk-polkit-action-lookup.c:168 ../src/pk-polkit-action-lookup.c:187
 msgid "The software is not from a trusted source."
-msgstr "सॉफ्टवेअरचे स्त्रोत विश्वासर्ह नाही."
+msgstr "सॉफ्टवेअरचे स्रोत विश्वासर्ह नाही."
 
 #: ../src/pk-polkit-action-lookup.c:173
 msgid "Do not update this package unless you are sure it is safe to do so."
commit 3baba48f523fed3e2c9d2e42e763dac9150ba442
Author: mgiri <mgiri at fedoraproject.org>
Date:   Mon Sep 7 07:12:36 2009 +0000

    Sending translation for Oriya

diff --git a/po/or.po b/po/or.po
index 35357a4..a4dd81e 100644
--- a/po/or.po
+++ b/po/or.po
@@ -7,15 +7,19 @@ msgid ""
 msgstr ""
 "Project-Id-Version: packagekit.master.or\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-08-24 11:06+0100\n"
-"PO-Revision-Date: 2009-05-27 17:23+0530\n"
+"POT-Creation-Date: 2009-09-01 02:36+0000\n"
+"PO-Revision-Date: 2009-09-07 12:33+0530\n"
 "Last-Translator: Manoj Kumar Giri <mgiri at redhat.com>\n"
 "Language-Team: Oriya <oriya-it at googlegroups.com>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "X-Generator: KBabel 1.11.4\n"
-"Plural-Forms:  nplurals=2; plural=(n!=1);\n"
+"Plural-Forms:  nplurals=2; plural=(n!=1);\n\n"
+"\n"
+"\n"
+"\n"
+"\n"
 "\n"
 "\n"
 "\n"
@@ -35,12 +39,11 @@ msgstr "ତନ୍ତ୍ର ସମୟ"
 msgid "Succeeded"
 msgstr "ସଫଳ ହୋଇଛି"
 
-#. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:239 ../client/pk-console.c:406
+#: ../client/pk-console.c:239
 msgid "True"
 msgstr "True (ସତ୍ୟ)"
 
-#: ../client/pk-console.c:239 ../client/pk-console.c:406
+#: ../client/pk-console.c:239
 msgid "False"
 msgstr "False (ମିଥ୍ୟା)"
 
@@ -88,452 +91,499 @@ msgstr "ପ୍ରଭାବିତ ପ୍ୟାକେଜଗୁଡ଼ିକ:"
 msgid "Affected packages: None"
 msgstr "ପ୍ରଭାବିତ ପ୍ୟାକେଜଗୁଡ଼ିକ: କିଛିନୁହଁ"
 
+#. TRANSLATORS: When processing, we might have to remove other dependencies
+#: ../client/pk-console.c:334
+msgid "The following packages have to be removed:"
+msgstr "ନିମ୍ନଲିଖିତ ପ୍ୟାକେଜଗୁଡ଼ିକୁ କାଢ଼ିବାକୁ ହେବ:"
+
+#. TRANSLATORS: When processing, we might have to install other dependencies
+#: ../client/pk-console.c:337
+msgid "The following packages have to be installed:"
+msgstr "ନିମ୍ନଲିଖିତ ପ୍ୟାକେଜଗୁଡ଼ିକୁ ସ୍ଥାପନ କରିବାକୁ ହେବ:"
+
+#. TRANSLATORS: When processing, we might have to update other dependencies
+#: ../client/pk-console.c:340
+msgid "The following packages have to be updated:"
+msgstr "ନିମ୍ନଲିଖିତ ପ୍ୟାକେଜଗୁଡ଼ିକୁ ଅଦ୍ୟତନ କରିବାକୁ ହେବ:"
+
+#. TRANSLATORS: When processing, we might have to reinstall other dependencies
+#: ../client/pk-console.c:343
+msgid "The following packages have to be reinstalled:"
+msgstr "ନିମ୍ନଲିଖିତ ପ୍ୟାକେଜଗୁଡ଼ିକୁ ପୁନଃ ସ୍ଥାପନ କରିବାକୁ ହେବ:"
+
+#. TRANSLATORS: When processing, we might have to downgrade other dependencies
+#: ../client/pk-console.c:346
+msgid "The following packages have to be downgraded:"
+msgstr "ନିମ୍ନଲିଖିତ ପ୍ୟାକେଜଗୁଡ଼ିକୁ ପଦ ଅବନତି କରିବାକୁ ହେବ:"
+
 #. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:298
+#: ../client/pk-console.c:360
 msgid "Distribution"
 msgstr "ବଣ୍ଟନ"
 
 #. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:300
+#: ../client/pk-console.c:362
 msgid "Type"
 msgstr "ପ୍ରକାର"
 
 #. TRANSLATORS: this is any summary text describing the upgrade
 #. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:302 ../client/pk-console.c:325
+#: ../client/pk-console.c:364 ../client/pk-console.c:387
 msgid "Summary"
 msgstr "ସାରାଂଶ"
 
 #. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:314
+#: ../client/pk-console.c:376
 msgid "Category"
 msgstr "ବିଭାଗ"
 
 #. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:316
+#: ../client/pk-console.c:378
 msgid "ID"
 msgstr "ID"
 
 #. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:319
+#: ../client/pk-console.c:381
 msgid "Parent"
 msgstr "ମୂଖ୍ୟ"
 
 #. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:322
+#: ../client/pk-console.c:384
 msgid "Name"
 msgstr "ନାମ"
 
 #. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:328
+#: ../client/pk-console.c:390
 msgid "Icon"
 msgstr "ଚିତ୍ରସଂକେତ"
 
 #. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:343
+#: ../client/pk-console.c:405
 msgid "Details about the update:"
 msgstr "ଅଦ୍ୟତନ ବିଷୟରେ ବିସ୍ତୃତ ବିବରଣୀ:"
 
 #. TRANSLATORS: details about the update, package name and version
 #. TRANSLATORS: title, the names of the packages that the method is processing
-#: ../client/pk-console.c:345 ../src/pk-polkit-action-lookup.c:352
-#, fuzzy
+#: ../client/pk-console.c:407 ../src/pk-polkit-action-lookup.c:352
 msgid "Package"
 msgid_plural "Packages"
 msgstr[0] "ପ୍ୟାକେଜ"
-msgstr[1] "ପ୍ୟାକେଜ"
+msgstr[1] "ପ୍ୟାକେଜଗୁଡ଼ିକ"
 
 #. TRANSLATORS: details about the update, any packages that this update updates
-#: ../client/pk-console.c:348
+#: ../client/pk-console.c:410
 msgid "Updates"
 msgstr "ଅଦ୍ୟତନଗୁଡ଼ିକ"
 
 #. TRANSLATORS: details about the update, any packages that this update obsoletes
-#: ../client/pk-console.c:352
+#: ../client/pk-console.c:414
 msgid "Obsoletes"
 msgstr "ଅଚଳଗୁଡ଼ିକ"
 
 #. TRANSLATORS: details about the update, the vendor URLs
-#: ../client/pk-console.c:356
+#: ../client/pk-console.c:418
 msgid "Vendor"
 msgstr "ବିକ୍ରେତା"
 
 #. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:360
+#: ../client/pk-console.c:422
 msgid "Bugzilla"
 msgstr "Bugzilla"
 
 #. TRANSLATORS: details about the update, the CVE URLs
-#: ../client/pk-console.c:364
+#: ../client/pk-console.c:426
 msgid "CVE"
 msgstr "CVE"
 
 #. TRANSLATORS: details about the update, if the package requires a restart
-#: ../client/pk-console.c:368
+#: ../client/pk-console.c:430
 msgid "Restart"
 msgstr "ପୁନଃଚାଳନ"
 
 #. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:372
+#: ../client/pk-console.c:434
 msgid "Update text"
 msgstr "ପାଠ୍ୟ ଅଦ୍ୟତନ କରନ୍ତୁ"
 
 #. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:376
+#: ../client/pk-console.c:438
 msgid "Changes"
 msgstr "ପରିବର୍ତ୍ତନଗୁଡ଼ିକ"
 
 #. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:380
+#: ../client/pk-console.c:442
 msgid "State"
 msgstr "ଅବସ୍ଥା"
 
 #. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:385
+#: ../client/pk-console.c:447
 msgid "Issued"
 msgstr "ପ୍ରଦତ୍ତ"
 
 #. TRANSLATORS: details about the update, date the update was updated
-#: ../client/pk-console.c:390
+#: ../client/pk-console.c:452
 msgid "Updated"
 msgstr "ଅଦ୍ୟତିତ"
 
-#: ../client/pk-console.c:477 ../client/pk-console.c:479
+#. TRANSLATORS: if the repo is enabled
+#: ../client/pk-console.c:472
+msgid "Enabled"
+msgstr "ସକ୍ରିୟ"
+
+#. TRANSLATORS: if the repo is disabled
+#: ../client/pk-console.c:475
+msgid "Disabled"
+msgstr "ନିଷ୍କ୍ରିୟ"
+
+#: ../client/pk-console.c:552 ../client/pk-console.c:554
 msgid "Percentage"
 msgstr "ଶତକଡ଼ା"
 
-#: ../client/pk-console.c:479
+#: ../client/pk-console.c:554
 msgid "Unknown"
 msgstr "ଅଜଣା"
 
 #. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:521
+#: ../client/pk-console.c:596
 msgid "System restart required by:"
 msgstr "ପାଇଁ ତନ୍ତ୍ର ପୁନଃଚାଳନ ଆବଶ୍ୟକ:"
 
 #. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:524
+#: ../client/pk-console.c:599
 msgid "Session restart required:"
 msgstr "ଅଧିବେଶନ ପୁନଃଚାଳନ ଆବଶ୍ୟକ:"
 
 #. TRANSLATORS: a package requires the system to be restarted due to a security update
-#: ../client/pk-console.c:527
-#, fuzzy
+#: ../client/pk-console.c:602
 msgid "System restart (security) required by:"
-msgstr "ପାଇଁ ତନ୍ତ୍ର ପୁନଃଚାଳନ ଆବଶ୍ୟକ:"
+msgstr "ତନ୍ତ୍ର ପୁନଃଚାଳନ (ସୁରକ୍ଷା) ଏହା ଦ୍ୱାରା ଆବଶ୍ୟକ:"
 
 #. TRANSLATORS: a package requires the session to be restarted due to a security update
-#: ../client/pk-console.c:530
-#, fuzzy
+#: ../client/pk-console.c:605
 msgid "Session restart (security) required:"
-msgstr "ଅଧିବେଶନ ପୁନଃଚାଳନ ଆବଶ୍ୟକ:"
+msgstr "ଅଧିବେଶନ ପୁନଃଚାଳନ (ସୁରକ୍ଷା) ଆବଶ୍ୟକ:"
 
 #. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:533
+#: ../client/pk-console.c:608
 msgid "Application restart required by:"
 msgstr "ପାଇଁ ପ୍ରୟୋଗ ପୁନଃଚାଳନ ଆବଶ୍ୟକ:"
 
 #. TRANSLATORS: a package needs to restart their system
-#: ../client/pk-console.c:588
+#: ../client/pk-console.c:663
 msgid "Please restart the computer to complete the update."
 msgstr "ଅଦ୍ୟତନକୁ ସମ୍ପୂର୍ଣ୍ଣ କରିବା ପାଇଁ କମ୍ପୁଟରକୁ ପୁନଃଚାଳନ କରନ୍ତୁ।"
 
 #. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:591
+#: ../client/pk-console.c:666
 msgid "Please logout and login to complete the update."
 msgstr "ଅଦ୍ୟତନକୁ ସମ୍ପୂର୍ଣ୍ଣ କରିବା ପାଇଁ ଦୟାକରି ଲଗଆଉଟ କରିସାରି ପୁଣି ଲଗଇନ କରନ୍ତୁ।"
 
 #. TRANSLATORS: a package needs to restart the application
-#: ../client/pk-console.c:594
+#: ../client/pk-console.c:669
 msgid "Please restart the application as it is being used."
 msgstr "ପ୍ରୟୋଗଟି ବ୍ୟବହୃତ ହେଉଥିବା ପରି ଦୟାକରି ପୁନଃଚାଳନ କରନ୍ତୁ।"
 
 #. TRANSLATORS: a package needs to restart their system (due to security)
-#: ../client/pk-console.c:597
-#, fuzzy
+#: ../client/pk-console.c:672
 msgid ""
 "Please restart the computer to complete the update as important security "
 "updates have been installed."
-msgstr "ଅଦ୍ୟତନକୁ ସମ୍ପୂର୍ଣ୍ଣ କରିବା ପାଇଁ କମ୍ପୁଟରକୁ ପୁନଃଚାଳନ କରନ୍ତୁ।"
+msgstr ""
+"ଅଦ୍ୟତନକୁ ସମ୍ପୂର୍ଣ୍ଣ କରିବା ପାଇଁ କମ୍ପୁଟରକୁ ପୁନଃଚାଳନ କରନ୍ତୁ, ଯେହେତୁ ଆବଶ୍ୟକୀୟ ସୁରକ୍ଷା "
+"ଅଦ୍ୟତନଗୁଡ଼ିକ ସ୍ଥାପିତ ହୋଇସାରିଛି।"
 
 #. TRANSLATORS: a package needs to restart the session (due to security)
-#: ../client/pk-console.c:600
-#, fuzzy
+#: ../client/pk-console.c:675
 msgid ""
 "Please logout and login to complete the update as important security updates "
 "have been installed."
-msgstr "ଅଦ୍ୟତନକୁ ସମ୍ପୂର୍ଣ୍ଣ କରିବା ପାଇଁ ଦୟାକରି ଲଗଆଉଟ କରିସାରି ପୁଣି ଲଗଇନ କରନ୍ତୁ।"
+msgstr ""
+"ଅଦ୍ୟତନକୁ ସମ୍ପୂର୍ଣ୍ଣ କରିବା ପାଇଁ ଦୟାକରି ଲଗଆଉଟ କରିସାରି ପୁଣି ଲଗଇନ କରନ୍ତୁ, ଯେହେତୁ ଆବଶ୍ୟକୀୟ ସୁରକ୍ଷା "
+"ଅଦ୍ୟତନଗୁଡ଼ିକ ସ୍ଥାପିତ ହୋଇସାରିଛି।"
 
 #. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:727
+#: ../client/pk-console.c:807
 #, c-format
 msgid "The package %s is already installed"
 msgstr "ପ୍ୟାକେଜ %s ପୂର୍ବରୁ ସ୍ଥାପିତ ହୋଇଛି"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:735
+#: ../client/pk-console.c:815
 #, c-format
 msgid "The package %s could not be installed: %s"
 msgstr "ପ୍ୟାକେଜ %s କୁ ସ୍ଥାପନ କରିହେଲା ନାହିଁ: %s"
 
 #. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
-#: ../client/pk-console.c:760 ../client/pk-console.c:783
-#: ../client/pk-console.c:879 ../client/pk-console.c:996
-#: ../client/pk-tools-common.c:62 ../client/pk-tools-common.c:81
-#: ../client/pk-tools-common.c:89
+#: ../client/pk-console.c:841 ../client/pk-console.c:889
+#: ../client/pk-console.c:913 ../client/pk-console.c:961
+#: ../client/pk-console.c:1057 ../client/pk-console.c:1170
+#: ../client/pk-console.c:1231 ../client/pk-tools-common.c:62
+#: ../client/pk-tools-common.c:81 ../client/pk-tools-common.c:89
 #, c-format
 msgid "Internal error: %s"
 msgstr "ଆଭ୍ୟନ୍ତରିଣ ତ୍ରୁଟି: %s"
 
+#. TRANSLATORS: We are checking if it's okay to remove a list of packages
+#: ../client/pk-console.c:873 ../client/pk-console.c:945
+#: ../client/pk-console.c:1263
+msgid "Proceed with changes?"
+msgstr "ପରିବର୍ତ୍ତନଗୁଡ଼ିକ ସହିତ ଅଗ୍ରସର ହେବେ କି?"
+
+#. TRANSLATORS: There was an error removing the packages. The detailed error follows
+#: ../client/pk-console.c:878 ../client/pk-console.c:950
+msgid "The package install was canceled!"
+msgstr "ପ୍ୟାକେଜ ସ୍ଥାପନକୁ ବାତିଲ କରାଯାଇଥିଲା!"
+
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:768 ../client/pk-console.c:1392
+#: ../client/pk-console.c:897 ../client/pk-console.c:1631
 #, c-format
 msgid "This tool could not install the packages: %s"
 msgstr "ଏହା ମଧ୍ୟ ପ୍ୟାକେଜଗୁଡ଼ିକୁ ସ୍ଥାପନ କରିପାରିଲା ନାହିଁ: %s"
 
 #. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:791
+#: ../client/pk-console.c:969
 #, c-format
 msgid "This tool could not install the files: %s"
 msgstr "ଏହା ମଧ୍ୟ ଫାଇଲଗୁଡ଼ିକୁ ସ୍ଥାପନ କରିପାରିଲା ନାହିଁ: %s"
 
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:847
+#: ../client/pk-console.c:1025
 #, c-format
 msgid "This tool could not remove %s: %s"
 msgstr "ଏହା ମଧ୍ଯ %sକୁ କାଢ଼ିପାରିଲା ନାହିଁ: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:870 ../client/pk-console.c:908
-#: ../client/pk-console.c:941
+#: ../client/pk-console.c:1048 ../client/pk-console.c:1086
+#: ../client/pk-console.c:1115
 #, c-format
 msgid "This tool could not remove the packages: %s"
 msgstr "ଏହା ମଧ୍ଯ ପ୍ୟାକେଜଗୁଡ଼ିକୁ କାଢ଼ିପାରିଲା ନାହିଁ: %s"
 
-#. TRANSLATORS: When removing, we might have to remove other dependencies
-#: ../client/pk-console.c:920
-msgid "The following packages have to be removed:"
-msgstr "ନିମ୍ନଲିଖିତ ପ୍ୟାକେଜଗୁଡ଼ିକୁ କାଢ଼ିବାକୁ ହେବ:"
-
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:927
-msgid "Proceed removing additional packages?"
-msgstr "ଅତିରିକ୍ତ ପ୍ୟାକେଜଗୁଡ଼ିକୁ କାଢ଼ିସାରି ଅଗ୍ରସର ହେବେ କି?"
+#: ../client/pk-console.c:1101
+msgid "Proceed with additional packages?"
+msgstr "ଅତିରିକ୍ତ ପ୍ୟାକେଜଗୁଡ଼ିକ ସହିତ ଅଗ୍ରସର ହେବେ କି?"
 
-#. TRANSLATORS: We did not remove any packages
-#: ../client/pk-console.c:932
+#. TRANSLATORS: There was an error removing the packages. The detailed error follows
+#: ../client/pk-console.c:1106
 msgid "The package removal was canceled!"
 msgstr "ପ୍ୟାକେଜ କାଢ଼ିବାକୁ ବାତିଲ କରାଯାଇଥିଲା!"
 
 #. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:973
+#: ../client/pk-console.c:1147
 #, c-format
 msgid "This tool could not download the package %s as it could not be found"
 msgstr "ଏହା ମଧ୍ଯ ପ୍ୟାକେଜ %sକୁ ଆହରଣ କରିପାରିଲା ନାହିଁ କାରଣ ଏହା ମିଳିଲା ନାହିଁ"
 
 #. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:1004
+#: ../client/pk-console.c:1178
 #, c-format
 msgid "This tool could not download the packages: %s"
 msgstr "ଏହା ମଧ୍ଯ ପ୍ୟାକେଜଗୁଡ଼ିକୁ ଆହରଣ କରିପାରିଲା ନାହିଁ: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1031 ../client/pk-console.c:1040
+#: ../client/pk-console.c:1210 ../client/pk-console.c:1222
+#: ../client/pk-console.c:1277
 #, c-format
 msgid "This tool could not update %s: %s"
 msgstr "ଏହା ମଧ୍ଯ %sକୁ ଅଦ୍ୟତନ କରିପାରିଲା ନାହିଁ: %s"
 
+#. TRANSLATORS: There was an error removing the packages. The detailed error follows
+#: ../client/pk-console.c:1268
+msgid "The package update was canceled!"
+msgstr "ପ୍ୟାକେଜ ଅଦ୍ୟତନକୁ ବାତିଲ କରାଯାଇଥିଲା!"
+
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1062 ../client/pk-console.c:1070
+#: ../client/pk-console.c:1301 ../client/pk-console.c:1309
 #, c-format
 msgid "This tool could not get the requirements for %s: %s"
 msgstr "ଏହା ମଧ୍ଯ %s ପାଇଁ ଆବଶ୍ୟକତାଗୁଡ଼ିକୁ ପାଇଲା ନାହିଁ: %s"
 
 #. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:1092 ../client/pk-console.c:1100
+#: ../client/pk-console.c:1331 ../client/pk-console.c:1339
 #, c-format
 msgid "This tool could not get the dependencies for %s: %s"
 msgstr "ଏହା ମଧ୍ଯ %s ପାଇଁ ନିର୍ଭରତାଗୁଡ଼ିକୁ ପାଇଲା ନାହିଁ: %s"
 
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:1122 ../client/pk-console.c:1130
+#: ../client/pk-console.c:1361 ../client/pk-console.c:1369
 #, c-format
 msgid "This tool could not get package details for %s: %s"
 msgstr "ଏହା ମଧ୍ଯ %s ପାଇଁ ପ୍ୟାକେଜ ବିବରଣୀ ପାଇଲା ନାହିଁ: %s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1152
+#: ../client/pk-console.c:1391
 #, c-format
 msgid "This tool could not find the files for %s: %s"
 msgstr "ଏହା ମଧ୍ଯ %s ପାଇଁ ଫାଇଲଗୁଡ଼ିକୁ ପାଇଲା ନାହିଁ: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1160
+#: ../client/pk-console.c:1399
 #, c-format
 msgid "This tool could not get the file list for %s: %s"
 msgstr "ଏହା ମଧ୍ଯ %s ପାଇଁ ଫାଇଲ ତାଲିକା ପାଇଲା ନାହିଁ: %s"
 
 #. TRANSLATORS: There was an error getting the list of packages. The filename follows
-#: ../client/pk-console.c:1182
+#: ../client/pk-console.c:1421
 #, c-format
 msgid "File already exists: %s"
 msgstr "ଫାଇଲ ପୂର୍ବରୁ ଅବସ୍ଥିତ: %s"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1187 ../client/pk-console.c:1243
-#: ../client/pk-console.c:1318
+#: ../client/pk-console.c:1426 ../client/pk-console.c:1482
+#: ../client/pk-console.c:1557
 msgid "Getting package list"
 msgstr "ପ୍ୟାକେଜ ତାଲିକା ଗ୍ରହଣ କରୁଅଛି"
 
 #. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1193 ../client/pk-console.c:1249
-#: ../client/pk-console.c:1324
+#: ../client/pk-console.c:1432 ../client/pk-console.c:1488
+#: ../client/pk-console.c:1563
 #, c-format
 msgid "This tool could not get package list: %s"
 msgstr "ଏହା ମଧ୍ଯ ପ୍ୟାକେଜ ତାଲିକା ପାଇଲା ନାହିଁ: %s"
 
 #. TRANSLATORS: There was an error saving the list
-#: ../client/pk-console.c:1204
+#: ../client/pk-console.c:1443
 #, c-format
 msgid "Failed to save to disk"
 msgstr "ଡିସ୍କରେ ସଂରକ୍ଷଣ କରିବାରେ ବିଫଳ"
 
 #. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1238 ../client/pk-console.c:1313
+#: ../client/pk-console.c:1477 ../client/pk-console.c:1552
 #, c-format
 msgid "File does not exist: %s"
 msgstr "ଫାଇଲ ଅବସ୍ଥିତ ନାହିଁ: %s"
 
 #. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1270
+#: ../client/pk-console.c:1509
 msgid "Packages to add"
 msgstr "ଯୋଗ କରିବା ପାଇଁ ପ୍ୟାକେଜଗୁଡ଼ିକ"
 
 #. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1278
+#: ../client/pk-console.c:1517
 msgid "Packages to remove"
 msgstr "କାଢ଼ାଯିବା ପାଇଁ ପ୍ୟାକେଜଗୁଡ଼ିକ"
 
 #. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1346
+#: ../client/pk-console.c:1585
 #, c-format
 msgid "No new packages need to be installed"
 msgstr "କୌଣସି ନୂତନ ପ୍ୟାକେଜ ସ୍ଥାପନ କରିବା ଆବଶ୍ୟକ ନାହିଁ"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1352
+#: ../client/pk-console.c:1591
 msgid "To install"
 msgstr "ସ୍ଥାପନ କରିବାକୁ"
 
 #. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1364
+#: ../client/pk-console.c:1603
 msgid "Searching for package: "
 msgstr "ପ୍ୟାକେଜ ପାଇଁ ସନ୍ଧାନ କରୁଅଛି: "
 
 #. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1368
+#: ../client/pk-console.c:1607
 msgid "not found."
 msgstr "ମିଳିଲା ନାହିଁ।"
 
 #. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1379
+#: ../client/pk-console.c:1618
 #, c-format
 msgid "No packages can be found to install"
 msgstr "ସ୍ଥାପନ କରିବା ପାଇଁ କୌଣସି ପ୍ୟାକେଜ ମିଳିଲା ନାହିଁ"
 
 #. TRANSLATORS: installing new packages from package list
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
-#: ../client/pk-console.c:1385
+#: ../client/pk-console.c:1624
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:886
 #, c-format
 msgid "Installing packages"
 msgstr "ପ୍ୟାକେଜଗୁଡ଼ିକୁ ସ୍ଥାପନ କରୁଅଛି"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1421
+#: ../client/pk-console.c:1660
 #, c-format
 msgid "This tool could not find the update details for %s: %s"
 msgstr "ଏହି ଉପକରଣଟି %s ପାଇଁ ଅଦ୍ୟତନ ବିବରଣୀ ଖୋଜି ପାଉନାହିଁ: %s"
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1429
+#: ../client/pk-console.c:1668
 #, c-format
 msgid "This tool could not get the update details for %s: %s"
 msgstr "ଏହି ଉପକରଣଟି %s ପାଇଁ ଅଦ୍ୟତନ ବିବରଣୀ ପାଇଲା ନାହିଁ: %s"
 
 #. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
-#: ../client/pk-console.c:1460
+#: ../client/pk-console.c:1699
 msgid "Error:"
 msgstr "ତ୍ରୁଟି:"
 
 #. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1474
+#: ../client/pk-console.c:1713
 msgid "Package description"
 msgstr "ପ୍ୟାକେଜ ବର୍ଣ୍ଣନା"
 
 #. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
-#: ../client/pk-console.c:1490
+#: ../client/pk-console.c:1729
 msgid "Message:"
 msgstr "ସନ୍ଦେଶ:"
 
 #. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1518
+#: ../client/pk-console.c:1757
 msgid "Package files"
 msgstr "ପ୍ୟାକେଜ ଫାଇଲଗୁଡ଼ିକ"
 
 #. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1526
+#: ../client/pk-console.c:1765
 msgid "No files"
 msgstr "କୌଣସି ଫାଇଲ ନାହିଁ"
 
 #. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1549
+#: ../client/pk-console.c:1788
 msgid "Repository signature required"
 msgstr "ସଂଗ୍ରହାଳୟ ହସ୍ତାକ୍ଷର ଆବଶ୍ୟକ"
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1559
+#: ../client/pk-console.c:1798
 msgid "Do you accept this signature?"
 msgstr "ଆପଣ ଏହି ହସ୍ତାକ୍ଷରକୁ ଗ୍ରହଣ କରିବେ କି?"
 
 #. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1563
+#: ../client/pk-console.c:1802
 msgid "The signature was not accepted."
 msgstr "ଏହି ହସ୍ତାକ୍ଷରକୁ ଗ୍ରହଣ କରାଯାଇନାହିଁ।"
 
 #. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1597
+#: ../client/pk-console.c:1836
 msgid "End user license agreement required"
 msgstr "ଚାଳକ ଅନୁମତି ପତ୍ର ଆବଶ୍ୟକ"
 
 #. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1604
+#: ../client/pk-console.c:1843
 msgid "Do you agree to this license?"
 msgstr "ଆପଣ ଏହି ଅନୁମତି ପତ୍ର ସହିତ ସହମତ କି?"
 
 #. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1608
+#: ../client/pk-console.c:1847
 msgid "The license was refused."
 msgstr "ଅନୁମତି ପତ୍ରକୁ ବାରଣ କରାଯାଇଛି।"
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1637
+#: ../client/pk-console.c:1876
 msgid "The daemon crashed mid-transaction!"
 msgstr "ଡେମନ ମଧ୍ଯ-କାରବାରକୁ ନଷ୍ଟ କରିଛି!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1690
+#: ../client/pk-console.c:1929
 msgid "PackageKit Console Interface"
 msgstr "PackageKit କୋନସୋଲ ଅନ୍ତରାପୃଷ୍ଠ"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1692
+#: ../client/pk-console.c:1931
 msgid "Subcommands:"
 msgstr "ଉପ ନିର୍ଦ୍ଦେଶଗୁଡ଼ିକ:"
 
 #. TRANSLATORS: command line argument, if we should show debugging information
 #. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:1785 ../client/pk-generate-pack.c:185
+#: ../client/pk-console.c:2024 ../client/pk-generate-pack.c:185
 #: ../client/pk-monitor.c:128
 #: ../contrib/command-not-found/pk-command-not-found.c:616
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:550
@@ -542,148 +592,147 @@ msgid "Show extra debugging information"
 msgstr "ଅତିରିକ୍ତ ତ୍ରୁଟି ନିବାରଣ ସୂଚନା ଦର୍ଶାନ୍ତୁ"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1788 ../client/pk-monitor.c:130
+#: ../client/pk-console.c:2027 ../client/pk-monitor.c:130
 msgid "Show the program version and exit"
 msgstr "ପ୍ରଗ୍ରାମ ସଂସ୍କରଣ ଦର୍ଶାନ୍ତୁ ଏବଂ ପ୍ରସ୍ଥାନ କରନ୍ତୁ"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1791
+#: ../client/pk-console.c:2030
 msgid "Set the filter, e.g. installed"
 msgstr "ଛାଣକ ସେଟ କରନ୍ତୁ, ଯେପରିକି ସ୍ଥାପିତ"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1794
+#: ../client/pk-console.c:2033
 msgid "Exit without waiting for actions to complete"
 msgstr "କାର୍ଯ୍ୟ ସମ୍ପୂର୍ଣ୍ଣ ହେବା ପର୍ଯ୍ୟନ୍ତ ଅପେକ୍ଷା ନକରି ପ୍ରସ୍ଥାନ କରନ୍ତୁ"
 
 #. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:1821
+#: ../client/pk-console.c:2060
 msgid "This tool could not connect to system DBUS."
 msgstr "ଏହି ଉପକରଣ ତନ୍ତ୍ର DBUS ସହିତ ସଂଯୁକ୍ତ ହୋଇପାରିଲା ନାହିଁ।"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1911
+#: ../client/pk-console.c:2150
 msgid "The filter specified was invalid"
 msgstr "ଉଲ୍ଲିଖିତ ଛାଣକଟି ଅବୈଧ ଅଟେ"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1930
+#: ../client/pk-console.c:2169
 msgid "A search type is required, e.g. name"
 msgstr "ଗୋଟିଏ ସନ୍ଧାନ ପ୍ରକାର ଆବଶ୍ୟକ, ଯେପରିକି ନାମ"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1937 ../client/pk-console.c:1946
-#: ../client/pk-console.c:1955 ../client/pk-console.c:1964
+#: ../client/pk-console.c:2176 ../client/pk-console.c:2185
+#: ../client/pk-console.c:2194 ../client/pk-console.c:2203
 msgid "A search term is required"
 msgstr "ଗୋଟିଏ ସନ୍ଧାନ ନିତି ଆବଶ୍ୟକ"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1971
+#: ../client/pk-console.c:2210
 msgid "Invalid search type"
 msgstr "ଅବୈଧ ସନ୍ଧାନ ପ୍ରକାର"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1977
+#: ../client/pk-console.c:2216
 msgid "A package name or filename to install is required"
 msgstr "ସ୍ଥାପନ କରିବା ପାଇଁ ଗୋଟିଏ ପ୍ୟାକେଜ ନାମ କିମ୍ବା ଫାଇଲନାମ ଆବଶ୍ୟକ"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1986
+#: ../client/pk-console.c:2225
 msgid "A type, key_id and package_id are required"
 msgstr "ଗୋଟିଏ ପ୍ରକାର, key_id ଏବଂ package_id ଆବଶ୍ୟକ"
 
 #. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:1995
+#: ../client/pk-console.c:2234
 msgid "A package name to remove is required"
 msgstr "କାଢ଼ିବା ପାଇଁ ଗୋଟିଏ ପ୍ୟାକେଜ ନାମ ଆବଶ୍ୟକ"
 
 #. TRANSLATORS: the user did not specify anything about what to download or where
-#: ../client/pk-console.c:2003
-#, fuzzy
+#: ../client/pk-console.c:2242
 msgid "A destination directory and the package names to download are required"
-msgstr "ଆହରଣ କରିବା ପାଇଁ ଗୋଟିଏ ଲକ୍ଷ୍ଯସ୍ଥଳ ଡିରେକ୍ଟୋରୀ ଏବଂ ତାପରେ ପ୍ୟାକେଜ ନାମ ଆବଶ୍ୟକ"
+msgstr "ଗୋଟିଏ ଲକ୍ଷ୍ଯସ୍ଥଳ ଡିରେକ୍ଟୋରୀ ଏବଂ ଆହରଣ କରିବା ପାଇଁ ପ୍ୟାକେଜ ନାମଗୁଡ଼ିକ ଆବଶ୍ୟକ"
 
 #. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:2010
+#: ../client/pk-console.c:2249
 msgid "Directory not found"
 msgstr "ଡିରେକ୍ଟୋରୀ ମିଳୁନାହିଁ"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2018
+#: ../client/pk-console.c:2257
 msgid "A licence identifier (eula-id) is required"
 msgstr "ଗୋଟିଏ ଅନୁମତିପତ୍ର ପରିଚାୟକ (eula-id) ଆବଶ୍ୟକ"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2028
+#: ../client/pk-console.c:2267
 msgid "A transaction identifier (tid) is required"
 msgstr "ଗୋଟିଏ କାରବାର ପରିଚାୟକ (tid) ଆବଶ୍ୟକ"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:2045
+#: ../client/pk-console.c:2284
 msgid "A package name to resolve is required"
 msgstr "ସମାଧାନ କରିବା ପାଇଁ ଗୋଟିଏ ପ୍ୟାକେଜ ନାମ ଆବଶ୍ୟକ"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:2054 ../client/pk-console.c:2063
+#: ../client/pk-console.c:2293 ../client/pk-console.c:2302
 msgid "A repository name is required"
 msgstr "ଗୋଟିଏ ସଂଗ୍ରହାଳୟ ନାମ ଆବଶ୍ୟକ"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2072
+#: ../client/pk-console.c:2311
 msgid "A repo name, parameter and value are required"
 msgstr "ଗୋଟିଏ ସଂଗ୍ରହାଳୟ, ପ୍ରାଚଳ ଏବଂ ମୂଲ୍ୟ ଆବଶ୍ୟକ"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:2086
+#: ../client/pk-console.c:2325
 msgid "An action, e.g. 'update-system' is required"
 msgstr "ଗୋଟିଏ କାର୍ଯ୍ୟ, ଉଦାହରଣ ସ୍ୱରୂପ 'update-system' ଆବଶ୍ୟକ"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:2093
+#: ../client/pk-console.c:2332
 msgid "A correct role is required"
 msgstr "ଗୋଟିଏ ସଠିକ ଭୂମିକା ଆବଶ୍ୟକ"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2100
+#: ../client/pk-console.c:2339
 msgid "Failed to get the time since this action was last completed"
 msgstr "ଏହି କାର୍ଯ୍ୟଟି ଶେଷରେ ସମ୍ପୂର୍ଣ୍ଣ ହୋଇଥିବା ହେତୁ ସମୟ ପାଇବାରେ ବିଫଳ"
 
 #. TRANSLATORS: The user did not provide a package name
 #. TRANSLATORS: This is when the user fails to supply the package name
-#: ../client/pk-console.c:2110 ../client/pk-console.c:2122
-#: ../client/pk-console.c:2131 ../client/pk-console.c:2149
-#: ../client/pk-console.c:2158 ../client/pk-generate-pack.c:241
+#: ../client/pk-console.c:2349 ../client/pk-console.c:2361
+#: ../client/pk-console.c:2370 ../client/pk-console.c:2388
+#: ../client/pk-console.c:2397 ../client/pk-generate-pack.c:241
 msgid "A package name is required"
 msgstr "ଗୋଟିଏ ପ୍ୟାକେଜ ନାମ ଆବଶ୍ୟକ"
 
 #. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:2140
+#: ../client/pk-console.c:2379
 msgid "A package provide string is required"
 msgstr "ଗୋଟିଏ ପ୍ୟାକେଜ ପ୍ରଦତ୍ତ ବାକ୍ୟଖଣ୍ଡ ଆବଶ୍ୟକ"
 
 #. TRANSLATORS: The user didn't specify a filename to create as a list
-#: ../client/pk-console.c:2167
+#: ../client/pk-console.c:2406
 msgid "A list file name to create is required"
 msgstr "ନିର୍ମାଣ କରିବା ପାଇଁ ଗୋଟିଏ ତାଲିକା ଫାଇଲ ନାମ ଆବଶ୍ୟକ"
 
 #. TRANSLATORS: The user didn't specify a filename to open as a list
-#: ../client/pk-console.c:2177 ../client/pk-console.c:2187
+#: ../client/pk-console.c:2416 ../client/pk-console.c:2426
 msgid "A list file to open is required"
 msgstr "ଖୋଲିବା ପାଇଁ ଗୋଟିଏ ତାଲିକା ଫାଇଲ ଆବଶ୍ୟକ"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2241
+#: ../client/pk-console.c:2480
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "ବିକଳ୍ପ '%s' ଟି ସମର୍ଥିତ ନୁହଁ"
 
 #. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2254
+#: ../client/pk-console.c:2493
 msgid "Incorrect privileges for this operation"
 msgstr "ଏହି ପ୍ରୟୋଗ ପାଇଁ ଭୁଲ ଅଧିକାର"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2257
+#: ../client/pk-console.c:2496
 msgid "Command failed"
 msgstr "ନିର୍ଦ୍ଦେଶ ବିଫଳ ହୋଇଛି"
 
@@ -709,8 +758,7 @@ msgstr "ବାହାର କରିବା ପାଇଁ ନିର୍ଭରତାଗ
 
 #. TRANSLATORS: the output location
 #: ../client/pk-generate-pack.c:191
-msgid ""
-"The output file or directory (the current directory is used if ommitted)"
+msgid "The output file or directory (the current directory is used if ommitted)"
 msgstr "ନିର୍ଗମ ଫାଇଲ କିମ୍ବା ଡିରେକ୍ଟୋରୀ (ଛାଡ଼ି ଯାଇଥିଲେ ପ୍ରଚଳିତ ଡିରେକ୍ଟୋରୀକୁ ବ୍ୟବହାର କରାଯାଇଛି)"
 
 #. TRANSLATORS: put a list of packages in the pack
@@ -813,7 +861,7 @@ msgstr "PackageKit ପ୍ରଦର୍ଶିକା"
 
 #: ../client/pk-monitor.c:183
 msgid "Cannot show the list of transactions"
-msgstr ""
+msgstr "କାରବାରଗୁଡ଼ିକର ତାଲିକାକୁ ଦର୍ଶାଇପାରିବେ ନାହିଁ"
 
 #. TRANSLATORS: The package was not found in any software sources
 #: ../client/pk-tools-common.c:118
@@ -893,24 +941,22 @@ msgstr "ସ୍ଥାପନ କରୁଅଛି..."
 #. TRANSLATORS: downloading repo data so we can search
 #: ../contrib/command-not-found/pk-command-not-found.c:349
 msgid "Downloading details about the software sources."
-msgstr ""
+msgstr "ସଫ୍ଟୱେର ଉତ୍ସଗୁଡ଼ିକ ବିଷୟରେ ବିବରଣୀଗୁଡ଼ିକୁ ଆହରଣ କରୁଅଛି।"
 
 #. TRANSLATORS: downloading file lists so we can search
 #: ../contrib/command-not-found/pk-command-not-found.c:353
 msgid "Downloading filelists (this may take some time to complete)."
-msgstr ""
+msgstr "ଫାଇଲ ତାଲିକାଗୁଡ଼ିକୁ ଆହରଣ କରୁଅଛି (ସମ୍ପୂର୍ଣ୍ଣ ହେବା ପାଇଁ ଏହା କିଛି ସମୟ ନେଇପାରେ)।"
 
 #. TRANSLATORS: waiting for native lock
 #: ../contrib/command-not-found/pk-command-not-found.c:357
-#, fuzzy
 msgid "Waiting for package manager lock."
-msgstr "ପ୍ୟାକେଜ ନାମ ଖୋଜୁଅଛି।"
+msgstr "ପ୍ୟାକେଜ ପରିଚାଳକଙ୍କୁ ଅପେକ୍ଷା କରିଅଛି।"
 
 #. TRANSLATORS: loading package cache so we can search
 #: ../contrib/command-not-found/pk-command-not-found.c:361
-#, fuzzy
 msgid "Loading list of packages."
-msgstr "ପ୍ୟାକେଜ ଆହରଣ କରୁଅଛି"
+msgstr "ପ୍ୟାକେଜ ତାଲିକାଗୁଡ଼ିକୁ ଆହରଣ କରୁଅଛି।"
 
 #. TRANSLATORS: we failed to find the package, this shouldn't happen
 #: ../contrib/command-not-found/pk-command-not-found.c:420
@@ -983,49 +1029,46 @@ msgstr "ସ୍ଥାପନ କରିବା ପାଇଁ ଦୟାକରି ଗà­
 
 #. TRANSLATORS: we are starting to install the packages
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:187
-#, fuzzy
 msgid "Starting install"
-msgstr "ସ୍ଥାପନ କରିବାକୁ"
+msgstr "ସ୍ଥାପନ କ୍ରିୟା ଆରମ୍ଭ କରୁଅଛି"
 
 #. TRANSLATORS: we couldn't find the package name, non-fatal
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:397
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to find the package %s, or already installed: %s"
-msgstr "ପ୍ୟାକେଜ %s ପୂର୍ବରୁ ସ୍ଥାପିତ ହୋଇଛି"
+msgstr "ପ୍ୟାକେଜ %s କୁ ଖୋଜିପାଇବାରେ ଅସଫଳ, ଅଥବା ପୂର୍ବରୁ ସ୍ଥାପିତ ହୋଇଛି: %s"
 
 #. command line argument, simulate what would be done, but don't actually do it
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:553
-msgid ""
-"Don't actually install any packages, only simulate what would be installed"
-msgstr ""
+msgid "Don't actually install any packages, only simulate what would be installed"
+msgstr "ପ୍ରକୃତରେ କୌଣସି ପ୍ୟାକେଜଗୁଡ଼ିକୁ ସ୍ଥାପନ କରିନଥାଏ, କେବଳ ଯାହାକୁ ସ୍ଥାପନ କରିବା ଉଚିତ ତାହାକୁ ସକ୍ରିୟ କରନ୍ତୁ"
 
 #. command line argument, do we skip packages that depend on the ones specified
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:556
 msgid "Do not install dependencies of the core packages"
-msgstr ""
+msgstr "ମୂଖ୍ୟ ପ୍ୟାକେଜଗୁଡ଼ିକର ନିର୍ଭରକଗୁଡ଼ିକୁ ସ୍ଥାପନ କରନ୍ତୁ ନାହିଁ"
 
 #. command line argument, do we operate quietly
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:559
 msgid "Do not display information or progress"
-msgstr ""
+msgstr "ସୂଚନା ଅଥବା ଉନ୍ନତିକୁ ଦର୍ଶାନ୍ତୁ ନାହିଁ"
 
 #. TRANSLATORS: tool that gets called when the command is not found
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:577
-#, fuzzy
 msgid "PackageKit Debuginfo Installer"
-msgstr "PackageKit କୋନସୋଲ ଅନ୍ତରାପୃଷ୍ଠ"
+msgstr "PackageKit ତ୍ରୁଟି ନିବାରଣ ସୂଚନା ସ୍ଥାପକ"
 
 #. TRANSLATORS: the use needs to specify a list of package names on the command line
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:589
-#, fuzzy, c-format
+#, c-format
 msgid "ERROR: Specify package names to install."
-msgstr "କୌଣସି ନୂତନ ପ୍ୟାକେଜ ସ୍ଥାପନ କରିବା ଆବଶ୍ୟକ ନାହିଁ"
+msgstr "ତ୍ରୁଟି: ସ୍ଥାପନ କରିବାକୁ ଥିବା ପ୍ୟାକେଜ ନାମଗୁଡ଼ିକୁ ଉଲ୍ଲେଖ କରନ୍ତୁ।"
 
 #. TRANSLATORS: we are getting the list of repositories
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:623
-#, fuzzy, c-format
+#, c-format
 msgid "Getting sources list"
-msgstr "ପ୍ୟାକେଜ ତାଲିକା ଗ୍ରହଣ କରୁଅଛି"
+msgstr "ଉତ୍ସଗୁଡ଼ିକର ତାଲିକା ଗ୍ରହଣ କରୁଅଛି"
 
 #. TRANSLATORS: all completed 100%
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:641
@@ -1037,31 +1080,31 @@ msgstr "ପ୍ୟାକେଜ ତାଲିକା ଗ୍ରହଣ କରୁଅଛ
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:955
 #, c-format
 msgid "OK."
-msgstr ""
+msgstr "OK."
 
 #. TRANSLATORS: tell the user what we found
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:644
 #, c-format
 msgid "Found %i enabled and %i disabled sources."
-msgstr ""
+msgstr "%i ସକ୍ରିୟ ଏବଂ %i ନିଷ୍କ୍ରିୟ ଉତ୍ସଗୁଡ଼ିକୁ ପାଇଛି।"
 
 #. TRANSLATORS: we're finding repositories that match out pattern
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:651
 #, c-format
 msgid "Finding debugging sources"
-msgstr ""
+msgstr "ତ୍ରୁଟି ନିବାରଣ ଉତ୍ସଗୁଡ଼ିକୁ ପାଇଅଛି"
 
 #. TRANSLATORS: tell the user what we found
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:684
 #, c-format
 msgid "Found %i disabled debuginfo repos."
-msgstr ""
+msgstr "%i ନିଷ୍କ୍ରିୟ ତ୍ରୁଟି ନିବାରଣ ଉତ୍ସ ସଂଗ୍ରହଳୟ ମିଳିଛି।"
 
 #. TRANSLATORS: we're now enabling all the debug sources we found
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:691
 #, c-format
 msgid "Enabling debugging sources"
-msgstr ""
+msgstr "ତ୍ରୁଟିନିବାରଣ ଉତ୍ସଗୁଡ଼ିକୁ ସକ୍ରିୟ କରୁଅଛି"
 
 #. TRANSLATORS: operation was not successful
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:701
@@ -1070,199 +1113,189 @@ msgstr ""
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:896
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:940
 msgid "FAILED."
-msgstr ""
+msgstr "FAILED."
 
 #. TRANSLATORS: tell the user how many we enabled
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:719
 #, c-format
 msgid "Enabled %i debugging sources."
-msgstr ""
+msgstr "%i ତ୍ରୁଟିନିବାରଣ ଉତ୍ସଗୁଡ଼ିକୁ ସକ୍ରିୟ କରିଅଛି।"
 
 #. TRANSLATORS: we're now finding packages that match in all the repos
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:726
-#, fuzzy, c-format
+#, c-format
 msgid "Finding debugging packages"
-msgstr "ପ୍ୟାକେଜ ନାମ ଖୋଜୁଅଛି।"
+msgstr "ତ୍ରୁଟି ନିବାରଣ ପ୍ୟାକେଜଗୁଡ଼ିକୁ ଖୋଜୁଅଛି"
 
 #. TRANSLATORS: we couldn't find the package name, non-fatal
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:738
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to find the package %s: %s"
-msgstr "ପ୍ୟାକେଜ '%s'କୁ ଖୋଜିବାରେ ବିଫଳ: %s"
+msgstr "ପ୍ୟାକେଜ %s କୁ ଖୋଜିବାରେ ବିଫଳ: %s"
 
 #. TRANSLATORS: we couldn't find the debuginfo package name, non-fatal
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:761
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to find the debuginfo package %s: %s"
-msgstr "ପ୍ୟାକେଜ '%s'କୁ ଖୋଜିବାରେ ବିଫଳ: %s"
+msgstr "ତ୍ରୁଟିନିବାରଣ ପ୍ୟାକେଜ %sକୁ ଖୋଜିବାରେ ବିଫଳ: %s"
 
 #. TRANSLATORS: no debuginfo packages could be found to be installed
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:789
-#, fuzzy, c-format
+#, c-format
 msgid "Found no packages to install."
-msgstr "କୌଣସି ନୂତନ ପ୍ୟାକେଜ ସ୍ଥାପନ କରିବା ଆବଶ୍ୟକ ନାହିଁ"
+msgstr "ସ୍ଥାପନ କରିବା କୌଣସି ପ୍ୟାକେଜ ମିଳିଲା ନାହିଁ।"
 
 #. TRANSLATORS: tell the user we found some packages, and then list them
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:803
-#, fuzzy, c-format
+#, c-format
 msgid "Found %i packages:"
-msgstr "ପ୍ୟାକେଜ ଆହରଣ କରୁଅଛି"
+msgstr "%i ପ୍ୟାକେଜଗୁଡ଼ିକ ମିଳିଲା:"
 
 #. TRANSLATORS: tell the user we are searching for deps
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:819
 #, c-format
 msgid "Finding packages that depend on these packages"
-msgstr ""
+msgstr "ଏହି ପ୍ୟାକେଜଗୁଡ଼ିକ ଉପରେ ନିର୍ଭର କରୁଥିବା ପ୍ୟାକେଜଗୁଡ଼ିକୁ ଖୋଜୁଅଛି"
 
 #. TRANSLATORS: could not install, detailed error follows
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:832
-#, fuzzy, c-format
+#, c-format
 msgid "Could not find dependant packages: %s"
-msgstr "ପ୍ୟାକେଜ '%s'କୁ ଖୋଜିବାରେ ବିଫଳ: %s"
+msgstr "ନିର୍ଭରକ ପ୍ୟାକେଜଗୁଡ଼ିକୁ ଖୋଜି ପାଇଲା ନାହିଁ: %s"
 
 #. TRANSLATORS: tell the user we found some more packages
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:848
 #, c-format
 msgid "Found %i extra packages."
-msgstr ""
+msgstr "%i ଅତିରିକ୍ତ ପ୍ୟାକେଜଗୁଡ଼ିକୁ ଖୋଜିପାଇଲା।"
 
 #. TRANSLATORS: tell the user we found some more packages
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:852
-#, fuzzy, c-format
+#, c-format
 msgid "No extra packages required."
-msgstr "ଗୋଟିଏ ପ୍ୟାକେଜ ନାମ ଆବଶ୍ୟକ"
+msgstr "କୌଣସି ଅତିରିକ୍ତ ପ୍ୟାକେଜ ଆବଶ୍ୟକ ନାହିଁ।"
 
 #. TRANSLATORS: tell the user we found some packages (and deps), and then list them
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:861
-#, fuzzy, c-format
+#, c-format
 msgid "Found %i packages to install:"
-msgstr "କୌଣସି ନୂତନ ପ୍ୟାକେଜ ସ୍ଥାପନ କରିବା ଆବଶ୍ୟକ ନାହିଁ"
+msgstr "ସ୍ଥାପନ କରିବା ପାଇଁ %i ପ୍ୟାକେଜଗୁଡ଼ିକ ମିଳିଲା:"
 
 #. TRANSLATORS: simulate mode is a testing mode where we quit before the action
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:874
-#, fuzzy, c-format
+#, c-format
 msgid "Not installing packages in simulate mode"
-msgstr "ପ୍ୟାକେଜଗୁଡ଼ିକୁ ସ୍ଥାପନ କରୁଅଛି"
+msgstr "ପ୍ୟାକେଜଗୁଡ଼ିକୁ ସକ୍ରିୟ ଅବସ୍ଥାରେ ସ୍ଥାପନ କରୁନାହିଁ"
 
 #. TRANSLATORS: could not install, detailed error follows
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:899
-#, fuzzy, c-format
+#, c-format
 msgid "Could not install packages: %s"
-msgstr "ଏହା ମଧ୍ୟ ପ୍ୟାକେଜଗୁଡ଼ିକୁ ସ୍ଥାପନ କରିପାରିଲା ନାହିଁ: %s"
+msgstr "ପ୍ୟାକେଜଗୁଡ଼ିକୁ ସ୍ଥାପନ କରିପାରିଲା ନାହିଁ: %s"
 
 #. TRANSLATORS: we are now disabling all debuginfo repos we previously enabled
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:931
 #, c-format
 msgid "Disabling sources previously enabled"
-msgstr ""
+msgstr "ପୂର୍ବରୁ ସକ୍ରିୟ ଉତ୍ସଗୁଡ଼ିକୁ ନିଷ୍କ୍ରିୟ କରୁଅଛି"
 
 #. TRANSLATORS: no debuginfo packages could be found to be installed, detailed error follows
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:943
 #, c-format
 msgid "Could not disable the debugging sources: %s"
-msgstr ""
+msgstr "ତ୍ରୁଟି ନିବାରଣ ଉତ୍ସଗୁଡ଼ିକୁ ନିଷ୍କ୍ରିୟ କରିପାରିଲା ନାହିଁ: %s"
 
 #. TRANSLATORS: we disabled all the debugging repos that we enabled before
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:958
 #, c-format
 msgid "Disabled %i debugging sources."
-msgstr ""
+msgstr "%i ତ୍ରୁଟି ନିବାରଣ ଉତ୍ସଗୁଡ଼ିକୁ ନିଷ୍କ୍ରିୟ କରିଥାଏ।"
 
 #. TRANSLATORS: couldn't open device to write
 #: ../contrib/device-rebind/pk-device-rebind.c:61
-#, fuzzy
 msgid "Failed to open file"
-msgstr "ଫାଇଲ ସନ୍ଧାନ କରିବାରେ ବିଫଳ"
+msgstr "ଫାଇଲ ଖୋଲିବାରେ ବିଫଳ"
 
 #. TRANSLATORS: could not write to the device
 #: ../contrib/device-rebind/pk-device-rebind.c:70
-#, fuzzy
 msgid "Failed to write to the file"
-msgstr "ଫାଇଲ ସନ୍ଧାନ କରିବାରେ ବିଫଳ"
+msgstr "ଫାଇଲରେ ଲେଖିବାରେ ବିଫଳ"
 
 #. TRANSLATORS: we failed to release the current driver
 #: ../contrib/device-rebind/pk-device-rebind.c:110
 #: ../contrib/device-rebind/pk-device-rebind.c:147
-#, fuzzy
 msgid "Failed to write to device"
-msgstr "ଡିସ୍କରେ ସଂରକ୍ଷଣ କରିବାରେ ବିଫଳ"
+msgstr "ଉପକରଣରେ ଲେଖିବାରେ ବିଫଳ"
 
 #. TRANSLATORS: the device could not be found in sysfs
 #: ../contrib/device-rebind/pk-device-rebind.c:175
-#, fuzzy
 msgid "Device could not be found"
-msgstr "ପ୍ୟାକେଜ ମିଳିଲା ନାହିଁ"
+msgstr "ଉପକରଣକୁ ଖୋଜି ପାରିଲେ ନାହିଁ"
 
 #. TRANSLATORS: we failed to release the current driver
 #: ../contrib/device-rebind/pk-device-rebind.c:202
-#, fuzzy
 msgid "Failed to unregister driver"
-msgstr "ଡିରେକ୍ଟୋରୀ ନିର୍ମାଣ କରିବାରେ ବିଫଳ:"
+msgstr "ଡ୍ରାଇଭରକୁ ପଞ୍ଜିକରଣହୀନ କରିବାରେ ବିଫଳ"
 
 #. TRANSLATORS: we failed to bind the old driver
 #: ../contrib/device-rebind/pk-device-rebind.c:211
-#, fuzzy
 msgid "Failed to register driver"
-msgstr "ଡିରେକ୍ଟୋରୀ ନିର୍ମାଣ କରିବାରେ ବିଫଳ:"
+msgstr "ଡ୍ରାଇଭରକୁ ପଞ୍ଜିକରଣ କରିବାରେ ବିଫଳ"
 
 #. TRANSLATORS: user did not specify a device sysfs path that exists
 #: ../contrib/device-rebind/pk-device-rebind.c:260
-#, fuzzy
 msgid "Device path not found"
-msgstr "ଡିରେକ୍ଟୋରୀ ମିଳୁନାହିଁ"
+msgstr "ଉପକରଣ ପଥ ମିଳିଲା ନାହିଁ"
 
 #. TRANSLATORS: user did not specify a valid device sysfs path
 #: ../contrib/device-rebind/pk-device-rebind.c:268
 msgid "Incorrect device path specified"
-msgstr ""
+msgstr "ଭୁଲ ଉପକରଣ ପଥକୁ ଉଲ୍ଲେଖ କରାଯାଇଛି"
 
 #. command line argument, simulate what would be done, but don't actually do it
 #: ../contrib/device-rebind/pk-device-rebind.c:296
 msgid "Don't actually touch the hardware, only simulate what would be done"
-msgstr ""
+msgstr "ହାର୍ଡୱେରକୁ ପ୍ରକୃତରେ ଛୁଅନ୍ତୁ ନାହିଁ, ଯାହାକୁ କରାସରିଛି ତେହେକୁ କେବଳ ସକ୍ରିୟ କରନ୍ତୁ"
 
 #. TRANSLATORS: command line option: a list of files to install
 #: ../contrib/device-rebind/pk-device-rebind.c:299
 msgid "Device paths"
-msgstr ""
+msgstr "ଉପକରଣ ପଥଗୁଡ଼ିକ"
 
 #. TRANSLATORS: tool that gets called when the device needs reloading after installing firmware
 #: ../contrib/device-rebind/pk-device-rebind.c:314
-#, fuzzy
 msgid "PackageKit Device Reloader"
-msgstr "PackageKit ସର୍ଭିସ ପ୍ୟାକ"
+msgstr "PackageKit ଉପକରଣ ପୁନର୍ଧାରକ"
 
 #. TRANSLATORS: user did not specify a valid device sysfs path
 #: ../contrib/device-rebind/pk-device-rebind.c:322
 msgid "You need to specify at least one valid device path"
-msgstr ""
+msgstr "ଆପଣଙ୍କୁ ଅତିକମରେ ଗୋଟିଏ ବୈଧ ଉପକରଣ ପଥ ଉଲ୍ଲେଖ କରିବା ଆବଶ୍ୟକ"
 
 #. TRANSLATORS: user did not specify a valid device sysfs path
 #: ../contrib/device-rebind/pk-device-rebind.c:332
 msgid "This script can only be used by the root user"
-msgstr ""
+msgstr "ଏହି ସ୍କ୍ରିପ୍ଟକୁ କେବଳ ମୂଖ୍ୟ ଚାଳକଙ୍କ ଦ୍ୱାରା ବ୍ୟବହାର କରିହେବ"
 
 #. TRANSLATORS: we're going to verify the path first
 #: ../contrib/device-rebind/pk-device-rebind.c:341
 msgid "Verifying device path"
-msgstr ""
+msgstr "ଉପକରଣ ପଥକୁ ଯାଞ୍ଚକରୁଅଛି"
 
 #. TRANSLATORS: user did not specify a device sysfs path that exists
 #: ../contrib/device-rebind/pk-device-rebind.c:346
-#, fuzzy
 msgid "Failed to verify device path"
-msgstr "ଫାଇଲ ସନ୍ଧାନ କରିବାରେ ବିଫଳ"
+msgstr "ଉପକରଣ ପଥକୁ ଯାଞ୍ଚ କରିବାରେ ବିଫଳ"
 
 #. TRANSLATORS: we're going to try
 #: ../contrib/device-rebind/pk-device-rebind.c:360
 msgid "Attempting to rebind device"
-msgstr ""
+msgstr "ଉପକରଣକୁ ପୁନଃବନ୍ଧନ କରିବାକୁ ପ୍ରଚେଷ୍ଟା କରୁଅଛି"
 
 #. TRANSLATORS: we failed to release the current driver
 #: ../contrib/device-rebind/pk-device-rebind.c:365
-#, fuzzy
 msgid "Failed to rebind device"
-msgstr "ଡିରେକ୍ଟୋରୀ ନିର୍ମାଣ କରିବାରେ ବିଫଳ:"
+msgstr "ଉପକରଣକୁ ପୁନଃବନ୍ଧନ କରିବାରେ ବିଫଳ"
 
 #: ../data/packagekit-catalog.xml.in.h:1
 msgid "PackageKit Catalog"
@@ -1291,8 +1324,7 @@ msgid "Authentication is required to accept a EULA"
 msgstr "ଗୋଟିଏ EULA ଗ୍ରହଣ କରିବା ପାଇଁ ବୈଧିକରଣ ଆବଶ୍ୟକ"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:9
-msgid ""
-"Authentication is required to cancel a task that was not started by yourself"
+msgid "Authentication is required to cancel a task that was not started by yourself"
 msgstr "ଆପଣଙ୍କ ନିଜ ଦ୍ୱାରା ଆରମ୍ଭ ହୋଇନଥିବା କାର୍ଯ୍ୟଟିକୁ ବାତିଲ କରିବା ପାଇଁ ବୈଧିକରଣ ଆବଶ୍ୟକ"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:10
@@ -1303,8 +1335,7 @@ msgstr "ସଫ୍ଟୱେର ଉତ୍ସ ପ୍ରାଚଳଗୁଡ଼ିକà
 msgid ""
 "Authentication is required to consider a key used for signing packages as "
 "trusted"
-msgstr ""
-"ପ୍ୟାକେଜଗୁଡ଼ିକୁ ବିଶ୍ଵସ୍ତ ଭାବରେ ହସ୍ତାକ୍ଷର କରିବା ପାଇଁ ବ୍ୟବହୃତ କି କୁ ଗ୍ରହଣ କରିବା ପାଇଁ ବୈଧିକରଣ ଆବଶ୍ୟକ"
+msgstr "ପ୍ୟାକେଜଗୁଡ଼ିକୁ ବିଶ୍ଵସ୍ତ ଭାବରେ ହସ୍ତାକ୍ଷର କରିବା ପାଇଁ ବ୍ୟବହୃତ କି କୁ ଗ୍ରହଣ କରିବା ପାଇଁ ବୈଧିକରଣ ଆବଶ୍ୟକ"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:12
 msgid "Authentication is required to install a signed package"
@@ -1319,9 +1350,8 @@ msgid "Authentication is required to refresh the system sources"
 msgstr "ତନ୍ତ୍ର ଉତ୍ସଗୁଡ଼ିକୁ ସତେଜନ କରିବା ପାଇଁ ବୈଧିକରଣ ଆବଶ୍ୟକ"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:15
-#, fuzzy
 msgid "Authentication is required to reload the device with a new driver"
-msgstr "ତନ୍ତ୍ର ଉତ୍ସଗୁଡ଼ିକୁ ସତେଜନ କରିବା ପାଇଁ ବୈଧିକରଣ ଆବଶ୍ୟକ"
+msgstr "ତନ୍ତ୍ରଗୁଡ଼ିକୁ ନୂତନ ଡ୍ରାଇଭର ସହିତ ପୁନର୍ଧାରଣ କରିବା ପାଇଁ ବୈଧିକରଣ ଆବଶ୍ୟକ"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:16
 msgid "Authentication is required to remove packages"
@@ -1396,7 +1426,7 @@ msgstr "ତନ୍ତ୍ର ଉତ୍ସଗୁଡ଼ିକୁ ସତେଜନ କ
 #.
 #: ../policy/org.freedesktop.packagekit.policy.in.h:58
 msgid "Reload a device"
-msgstr ""
+msgstr "ଗୋଟିଏ ଉପକରଣ ଆବଶ୍ୟକ"
 
 #. SECURITY:
 #. - Normal users require admin authentication to remove packages as
@@ -1517,43 +1547,50 @@ msgid "Error trying to start:"
 msgstr "ଆରମ୍ଭ କରିବାକୁ ଚେଷ୍ଟା କରିବାରେ ତ୍ରୁଟି:"
 
 #: ../src/pk-polkit-action-lookup.c:147
-#, fuzzy
 msgid "To install debugging packages, extra sources need to be enabled"
-msgstr "କୌଣସି ନୂତନ ପ୍ୟାକେଜ ସ୍ଥାପନ କରିବା ଆବଶ୍ୟକ ନାହିଁ"
+msgstr "ତ୍ରୁଟି ନିବାରକ ପ୍ୟାକେଜଗୁଡ଼ିକୁ ସ୍ଥାପନ କରିବା ପାଇଁ, ଅତିରିକ୍ତ ଉତ୍ସଗୁଡ଼ିକୁ ସକ୍ରିୟ କରିବା ଆବଶ୍ୟକ"
 
 #. TRANSLATORS: is not GPG signed
 #: ../src/pk-polkit-action-lookup.c:168 ../src/pk-polkit-action-lookup.c:187
 msgid "The software is not from a trusted source."
-msgstr ""
+msgstr "ଏହି ସଫ୍ଟୱେରଟି ବିଶ୍ୱସ୍ତ ଉତ୍ସରୁ ଆସିନାହିଁ।"
 
 #: ../src/pk-polkit-action-lookup.c:173
 msgid "Do not update this package unless you are sure it is safe to do so."
 msgstr ""
+"ଏହାକୁ କରିବା ସୁରକ୍ଷିତ କି ନାହିଁ, ତାହା ଯେ ପର୍ଯ୍ୟନ୍ତ ଆପଣ ନିଶ୍ଚିତ ହୋଇନାହାନ୍ତି, "
+"ସେପର୍ଯ୍ୟନ୍ତ ଏହି ପ୍ୟାକେଜକୁ ଅଦ୍ୟତନ କରନ୍ତୁ ନାହିଁ।"
 
 #: ../src/pk-polkit-action-lookup.c:174
 msgid "Do not update these packages unless you are sure it is safe to do so."
 msgstr ""
+"ଏହାକୁ କରିବା ସୁରକ୍ଷିତ କି ନାହିଁ, ତାହା ଯେ ପର୍ଯ୍ୟନ୍ତ ଆପଣ ନିଶ୍ଚିତ ହୋଇନାହାନ୍ତି, "
+"ସେପର୍ଯ୍ୟନ୍ତ ଏହି ପ୍ୟାକେଜକୁ ଅଦ୍ୟତନ କରନ୍ତୁ ନାହିଁ।"
 
 #: ../src/pk-polkit-action-lookup.c:192
 msgid "Do not install this package unless you are sure it is safe to do so."
 msgstr ""
+"ଏହାକୁ କରିବା ସୁରକ୍ଷିତ କି ନାହିଁ, ତାହା ଯେ ପର୍ଯ୍ୟନ୍ତ ଆପଣ ନିଶ୍ଚିତ ହୋଇନାହାନ୍ତି, "
+"ସେପର୍ଯ୍ୟନ୍ତ ଏହି ପ୍ୟାକେଜକୁ ଅଦ୍ୟତନ କରନ୍ତୁ ନାହିଁ।"
 
 #: ../src/pk-polkit-action-lookup.c:193
 msgid "Do not install these packages unless you are sure it is safe to do so."
 msgstr ""
+"ଏହାକୁ କରିବା ସୁରକ୍ଷିତ କି ନାହିଁ, ତାହା ଯେ ପର୍ଯ୍ୟନ୍ତ ଆପଣ ନିଶ୍ଚିତ ହୋଇନାହାନ୍ତି, "
+"ସେପର୍ଯ୍ୟନ୍ତ ଏହି ପ୍ୟାକେଜକୁ ଅଦ୍ୟତନ କରନ୍ତୁ ନାହିଁ।"
 
 #. TRANSLATORS: warn the user that all bets are off
 #: ../src/pk-polkit-action-lookup.c:199
 msgid "Malicious software can damage your computer or cause other harm."
-msgstr ""
+msgstr "ତ୍ରୁଟିପୂର୍ଣ୍ଣ ସଫ୍ଟୱେର ଆପଣଙ୍କ କମ୍ପୁଟରକୁ ନଷ୍ଟକରିପାରେ କିମ୍ବା ଅନ୍ୟ ପ୍ରକାର କ୍ଷତି କରିପାରେ."
 
 #. TRANSLATORS: too many packages to list each one
 #: ../src/pk-polkit-action-lookup.c:274
-#, fuzzy
 msgid "Many packages"
-msgstr "ପ୍ୟାକେଜଗୁଡ଼ିକୁ ଅଦ୍ୟତନ କରନ୍ତୁ"
+msgstr "ଅନେକ ପ୍ୟାକେଜଗୁଡ଼ିକ"
 
 #. TRANSLATORS: if the transaction is forced to install only trusted packages
 #: ../src/pk-polkit-action-lookup.c:334
 msgid "Only trusted"
-msgstr ""
+msgstr "କେବଳ ବିଶ୍ୱସ୍ତ"
+
commit 59d2c4cbcb461eb6f3108969d70de1a0b4d39deb
Author: ifelix <ifelix at fedoraproject.org>
Date:   Mon Sep 7 06:53:00 2009 +0000

    Sending translation for Tamil

diff --git a/po/ta.po b/po/ta.po
index be2b78b..894ff93 100644
--- a/po/ta.po
+++ b/po/ta.po
@@ -7,8 +7,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: packagekit.master.ta\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-09-01 19:44+0000\n"
-"PO-Revision-Date: 2009-09-02 02:54+0530\n"
+"POT-Creation-Date: 2009-09-07 02:36+0000\n"
+"PO-Revision-Date: 2009-09-07 12:20+0530\n"
 "Last-Translator: I. Felix <ifelix at redhat.com>\n"
 "Language-Team: Tamil <fedora-trans-ta at redhat.com>\n"
 "MIME-Version: 1.0\n"
@@ -26,275 +26,284 @@ msgstr ""
 "\n"
 "\n"
 "\n"
+"\n"
 
 #. TRANSLATORS: this is an atomic transaction
-#: ../client/pk-console.c:235
+#: ../client/pk-console.c:238 ../client/pk-console-test.c:147
 msgid "Transaction"
 msgstr "பரிமாற்றம்"
 
 #. TRANSLATORS: this is the time the transaction was started in system timezone
-#: ../client/pk-console.c:237
+#: ../client/pk-console.c:240 ../client/pk-console-test.c:149
 msgid "System time"
 msgstr "கணினி நேரம்"
 
 #. TRANSLATORS: this is if the transaction succeeded or not
-#: ../client/pk-console.c:239
+#: ../client/pk-console.c:242 ../client/pk-console-test.c:151
 msgid "Succeeded"
 msgstr "வெற்றியடைதல்"
 
-#: ../client/pk-console.c:239
+#: ../client/pk-console.c:242 ../client/pk-console-test.c:151
 msgid "True"
 msgstr "சரி"
 
-#: ../client/pk-console.c:239
+#: ../client/pk-console.c:242 ../client/pk-console-test.c:151
 msgid "False"
 msgstr "தவறு"
 
 #. TRANSLATORS: this is the transactions role, e.g. "update-system"
 #. TRANSLATORS: the trasaction role, e.g. update-system
-#: ../client/pk-console.c:241 ../src/pk-polkit-action-lookup.c:327
+#: ../client/pk-console.c:244 ../client/pk-console-test.c:153
+#: ../src/pk-polkit-action-lookup.c:327
 msgid "Role"
 msgstr "பங்கு"
 
 #. TRANSLATORS: this is The duration of the transaction
-#: ../client/pk-console.c:246
+#: ../client/pk-console.c:249 ../client/pk-console-test.c:158
 msgid "Duration"
 msgstr "இடைவெளி"
 
-#: ../client/pk-console.c:246
+#: ../client/pk-console.c:249 ../client/pk-console-test.c:158
 msgid "(seconds)"
 msgstr "(நொடிகள்"
 
 #. TRANSLATORS: this is The command line used to do the action
 #. TRANSLATORS: the command line of the thing that wants the authentication
-#: ../client/pk-console.c:250 ../src/pk-polkit-action-lookup.c:341
+#: ../client/pk-console.c:253 ../client/pk-console-test.c:162
+#: ../src/pk-polkit-action-lookup.c:341
 msgid "Command line"
 msgstr "கட்டளை வரி"
 
 #. TRANSLATORS: this is the user ID of the user that started the action
-#: ../client/pk-console.c:252
+#: ../client/pk-console.c:255 ../client/pk-console-test.c:164
 msgid "User ID"
 msgstr "பயனர் ஐடி"
 
 #. TRANSLATORS: this is the username, e.g. hughsie
-#: ../client/pk-console.c:259
+#: ../client/pk-console.c:262 ../client/pk-console-test.c:171
 msgid "Username"
 msgstr "பயனர் பெயர்"
 
 #. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
-#: ../client/pk-console.c:263
+#: ../client/pk-console.c:266 ../client/pk-console-test.c:175
 msgid "Real name"
 msgstr "உண்மையான பெயர்"
 
-#: ../client/pk-console.c:271
+#: ../client/pk-console.c:274 ../client/pk-console-test.c:183
 msgid "Affected packages:"
 msgstr "பாதிக்கப்பட்ட தொகுதிகள்:"
 
-#: ../client/pk-console.c:273
+#: ../client/pk-console.c:276 ../client/pk-console-test.c:185
 msgid "Affected packages: None"
 msgstr "பாதிக்கப்பட்ட தொகுதிகள்: ஒன்றுமில்லாத"
 
 #. TRANSLATORS: When processing, we might have to remove other dependencies
-#: ../client/pk-console.c:334
+#: ../client/pk-console.c:337 ../client/pk-task-text.c:220
 msgid "The following packages have to be removed:"
 msgstr "பின்வரும் தொகுப்புகளை நீக்கப்பட வேண்டியவை:"
 
 #. TRANSLATORS: When processing, we might have to install other dependencies
-#: ../client/pk-console.c:337
+#: ../client/pk-console.c:340 ../client/pk-task-text.c:225
 msgid "The following packages have to be installed:"
 msgstr "பின்வரும் தொகுப்புகளை நிறுவப்பட வேண்டியவை:"
 
 #. TRANSLATORS: When processing, we might have to update other dependencies
-#: ../client/pk-console.c:340
+#: ../client/pk-console.c:343 ../client/pk-task-text.c:230
 msgid "The following packages have to be updated:"
 msgstr "பின்வரும் தொகுப்புகள் மேம்படுத்த வேண்டியவை:"
 
 #. TRANSLATORS: When processing, we might have to reinstall other dependencies
-#: ../client/pk-console.c:343
+#: ../client/pk-console.c:346 ../client/pk-task-text.c:235
 msgid "The following packages have to be reinstalled:"
 msgstr "பின்வரும் தொகுப்புகளை மீண்டும் நிறுவப்பட வேண்டியவை:"
 
 #. TRANSLATORS: When processing, we might have to downgrade other dependencies
-#: ../client/pk-console.c:346
+#: ../client/pk-console.c:349 ../client/pk-task-text.c:240
 msgid "The following packages have to be downgraded:"
 msgstr "பின்வரும் தொகுப்புகளை தரமிறக்க வேண்டியவை:"
 
 #. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:360
+#: ../client/pk-console.c:363 ../client/pk-console-test.c:205
 msgid "Distribution"
 msgstr "விநியோகம்"
 
 #. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:362
+#: ../client/pk-console.c:365 ../client/pk-console-test.c:207
 msgid "Type"
 msgstr "வகை"
 
 #. TRANSLATORS: this is any summary text describing the upgrade
 #. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:364 ../client/pk-console.c:387
+#. TRANSLATORS: this is any summary text describing the upgrade
+#. TRANSLATORS: this is the summary of the group
+#: ../client/pk-console.c:367 ../client/pk-console.c:390
+#: ../client/pk-console-test.c:209 ../client/pk-console-test.c:230
 msgid "Summary"
 msgstr "சுருக்கம்"
 
 #. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:376
+#: ../client/pk-console.c:379 ../client/pk-console-test.c:219
 msgid "Category"
 msgstr "வகை"
 
 #. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:378
+#: ../client/pk-console.c:381 ../client/pk-console-test.c:221
 msgid "ID"
 msgstr "ID"
 
 #. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:381
+#: ../client/pk-console.c:384 ../client/pk-console-test.c:224
 msgid "Parent"
 msgstr "பெற்றோர்"
 
 #. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:384
+#: ../client/pk-console.c:387 ../client/pk-console-test.c:227
 msgid "Name"
 msgstr "பெயர்"
 
 #. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:390
+#: ../client/pk-console.c:393 ../client/pk-console-test.c:233
 msgid "Icon"
 msgstr "சின்னம்"
 
 #. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:405
+#: ../client/pk-console.c:408 ../client/pk-console-test.c:247
 msgid "Details about the update:"
 msgstr "மேம்படுத்துதல் பற்றிய விவரங்கள்:"
 
 #. TRANSLATORS: details about the update, package name and version
 #. TRANSLATORS: title, the names of the packages that the method is processing
-#: ../client/pk-console.c:407 ../src/pk-polkit-action-lookup.c:352
+#: ../client/pk-console.c:410 ../client/pk-console-test.c:253
+#: ../client/pk-task-text.c:101 ../client/pk-task-text.c:153
+#: ../src/pk-polkit-action-lookup.c:352
 msgid "Package"
 msgid_plural "Packages"
 msgstr[0] "தொகுப்பு"
 msgstr[1] "தொகுப்புகள்"
 
 #. TRANSLATORS: details about the update, any packages that this update updates
-#: ../client/pk-console.c:410
+#: ../client/pk-console.c:413 ../client/pk-console-test.c:256
 msgid "Updates"
 msgstr "மேம்படுத்தல்கள"
 
 #. TRANSLATORS: details about the update, any packages that this update obsoletes
-#: ../client/pk-console.c:414
+#: ../client/pk-console.c:417 ../client/pk-console-test.c:260
 msgid "Obsoletes"
 msgstr "நீக்கப்பட்டது"
 
 #. TRANSLATORS: details about the update, the vendor URLs
-#: ../client/pk-console.c:418
+#: ../client/pk-console.c:421 ../client/pk-console-test.c:264
+#: ../client/pk-task-text.c:154
 msgid "Vendor"
 msgstr "விற்பனையாளர்"
 
 #. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:422
+#: ../client/pk-console.c:425 ../client/pk-console-test.c:268
 msgid "Bugzilla"
 msgstr "பக்ஸிலா"
 
 #. TRANSLATORS: details about the update, the CVE URLs
-#: ../client/pk-console.c:426
+#: ../client/pk-console.c:429 ../client/pk-console-test.c:272
 msgid "CVE"
 msgstr "CVE"
 
 #. TRANSLATORS: details about the update, if the package requires a restart
-#: ../client/pk-console.c:430
+#: ../client/pk-console.c:433 ../client/pk-console-test.c:276
 msgid "Restart"
 msgstr "மறுதுவக்கு"
 
 #. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:434
+#: ../client/pk-console.c:437 ../client/pk-console-test.c:280
 msgid "Update text"
 msgstr "மேம்படுத்தப்பட்ட உரை"
 
 #. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:438
+#: ../client/pk-console.c:441 ../client/pk-console-test.c:284
 msgid "Changes"
 msgstr "மாற்றங்கள்"
 
 #. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:442
+#: ../client/pk-console.c:445 ../client/pk-console-test.c:288
 msgid "State"
 msgstr "நிலை"
 
 #. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:447
+#: ../client/pk-console.c:450 ../client/pk-console-test.c:293
 msgid "Issued"
 msgstr "வழங்கப்பட்டது"
 
 #. TRANSLATORS: details about the update, date the update was updated
-#: ../client/pk-console.c:452
+#: ../client/pk-console.c:455 ../client/pk-console-test.c:298
 msgid "Updated"
 msgstr "மேம்படுத்தப்பட்டது"
 
 #. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:472
+#: ../client/pk-console.c:475 ../client/pk-console-test.c:316
 msgid "Enabled"
 msgstr "செயல்படுத்தப்பட்டது"
 
 #. TRANSLATORS: if the repo is disabled
-#: ../client/pk-console.c:475
+#: ../client/pk-console.c:478 ../client/pk-console-test.c:319
 msgid "Disabled"
 msgstr "செயல்நீக்கப்பட்டது"
 
-#: ../client/pk-console.c:552 ../client/pk-console.c:554
+#: ../client/pk-console.c:555 ../client/pk-console.c:557
 msgid "Percentage"
 msgstr "சதவீதம்"
 
-#: ../client/pk-console.c:554
+#: ../client/pk-console.c:557
 msgid "Unknown"
 msgstr "தெரியாத"
 
 #. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:596
+#: ../client/pk-console.c:599 ../client/pk-console-test.c:341
 msgid "System restart required by:"
 msgstr "கணினிக்கு மறுதுவக்கம் தேவைப்படுகிறது:"
 
 #. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:599
+#: ../client/pk-console.c:602 ../client/pk-console-test.c:344
 msgid "Session restart required:"
 msgstr "அமர்வுக்கு மறுதுவக்கம் தேவைப்படுகிறது:"
 
 #. TRANSLATORS: a package requires the system to be restarted due to a security update
-#: ../client/pk-console.c:602
+#: ../client/pk-console.c:605 ../client/pk-console-test.c:347
 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:605
+#: ../client/pk-console.c:608 ../client/pk-console-test.c:350
 msgid "Session restart (security) required:"
 msgstr "அமர்வுக்கு மறுதுவக்கம் (பாதுகாப்பு) தேவைப்படுகிறது:"
 
 #. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:608
+#: ../client/pk-console.c:611 ../client/pk-console-test.c:353
 msgid "Application restart required by:"
 msgstr "பயன்பாடிற்கு மறுதுவக்கம் தேவைப்படுகிறது:"
 
 #. TRANSLATORS: a package needs to restart their system
-#: ../client/pk-console.c:663
+#: ../client/pk-console.c:666 ../client/pk-console-test.c:704
 msgid "Please restart the computer to complete the update."
 msgstr "கணினியை மீண்டும் துவக்கி மேம்படுத்துதலை முடிக்கவும்."
 
 #. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:666
+#: ../client/pk-console.c:669 ../client/pk-console-test.c:707
 msgid "Please logout and login to complete the update."
 msgstr "வெளியேறிவிட்டு மற்றும் மேம்படுத்துதலை முடிக்க உள்நுழையவும்."
 
 #. TRANSLATORS: a package needs to restart the application
-#: ../client/pk-console.c:669
+#: ../client/pk-console.c:672
 msgid "Please restart the application as it is being used."
 msgstr "பயன்படுத்தபட்டிருந்தாலும் அதன் பயன்பாட்டை மீண்டும் துவக்கவும்."
 
 #. TRANSLATORS: a package needs to restart their system (due to security)
-#: ../client/pk-console.c:672
+#: ../client/pk-console.c:675 ../client/pk-console-test.c:710
 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:675
+#: ../client/pk-console.c:678 ../client/pk-console-test.c:713
 msgid ""
 "Please logout and login to complete the update as important security updates "
 "have been installed."
@@ -303,558 +312,620 @@ msgstr ""
 "முடிக்க உள்நுழையவும்."
 
 #. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:807
+#: ../client/pk-console.c:810
 #, c-format
 msgid "The package %s is already installed"
 msgstr "தொகுப்பு %s ஏற்கனவே நிறுவப்பட்டது"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:815
+#: ../client/pk-console.c:818
 #, c-format
 msgid "The package %s could not be installed: %s"
 msgstr "தொகுப்பு %s நிறுவப்படவில்லை: %s"
 
 #. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
-#: ../client/pk-console.c:841 ../client/pk-console.c:889
-#: ../client/pk-console.c:913 ../client/pk-console.c:961
-#: ../client/pk-console.c:1057 ../client/pk-console.c:1170
-#: ../client/pk-console.c:1231 ../client/pk-tools-common.c:62
-#: ../client/pk-tools-common.c:81 ../client/pk-tools-common.c:89
+#: ../client/pk-console.c:844 ../client/pk-console.c:892
+#: ../client/pk-console.c:916 ../client/pk-console.c:964
+#: ../client/pk-console.c:1060 ../client/pk-console.c:1173
+#: ../client/pk-console.c:1234 ../client/pk-tools-common.c:63
+#: ../client/pk-tools-common.c:82 ../client/pk-tools-common.c:90
 #, c-format
 msgid "Internal error: %s"
 msgstr "உட்புற பிழை: %s"
 
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:873 ../client/pk-console.c:945
-#: ../client/pk-console.c:1263
+#. ask the user
+#: ../client/pk-console.c:876 ../client/pk-console.c:948
+#: ../client/pk-console.c:1266 ../client/pk-task-text.c:299
 msgid "Proceed with changes?"
 msgstr "மாற்றங்களுடன் தொடர வேண்டுமா?"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:878 ../client/pk-console.c:950
+#: ../client/pk-console.c:881 ../client/pk-console.c:953
 msgid "The package install was canceled!"
 msgstr "தொகுப்புகளை நிறுவல் ரத்து செய்யப்பட்டது!"
 
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:897 ../client/pk-console.c:1631
+#: ../client/pk-console.c:900 ../client/pk-console.c:1634
 #, c-format
 msgid "This tool could not install the packages: %s"
 msgstr "இந்த கருவி இந்த தொகுப்புகளை நிறுவ முடியவில்லை: %s"
 
 #. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:969
+#: ../client/pk-console.c:972
 #, c-format
 msgid "This tool could not install the files: %s"
 msgstr "இந்த கருவியால் கோப்புகளை நிறுவ முடியவில்லை: %s"
 
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:1025
+#: ../client/pk-console.c:1028
 #, c-format
 msgid "This tool could not remove %s: %s"
 msgstr "இந்த கருவியால் %sஐ நீக்க முடியவில்லை: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:1048 ../client/pk-console.c:1086
-#: ../client/pk-console.c:1115
+#: ../client/pk-console.c:1051 ../client/pk-console.c:1089
+#: ../client/pk-console.c:1118
 #, c-format
 msgid "This tool could not remove the packages: %s"
 msgstr "இந்த கருவி தொகுப்புகளை நீக்க முடியவில்லை: %s"
 
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:1101
+#: ../client/pk-console.c:1104
 msgid "Proceed with additional packages?"
 msgstr "கூடுதல் தொகுப்புகளுடன் தொடரவா?"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:1106
+#: ../client/pk-console.c:1109
 msgid "The package removal was canceled!"
 msgstr "தொகுப்புகளை நீக்குவது ரத்து செய்யப்பட்டது!"
 
 #. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:1147
+#: ../client/pk-console.c:1150
 #, c-format
 msgid "This tool could not download the package %s as it could not be found"
 msgstr "இந்த கருவியால் %s தொகுப்புகளை பதிவிறக்க முடியவில்லை அதை கண்டுபிடிக்கவும் முடியவில்லை"
 
 #. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:1178
+#: ../client/pk-console.c:1181
 #, c-format
 msgid "This tool could not download the packages: %s"
 msgstr "இந்த கருவியால் தொகுப்புகளை பதிவிறக்க முடியவில்லை: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1210 ../client/pk-console.c:1222
-#: ../client/pk-console.c:1277
+#: ../client/pk-console.c:1213 ../client/pk-console.c:1225
+#: ../client/pk-console.c:1280
 #, c-format
 msgid "This tool could not update %s: %s"
 msgstr "மேம்பாடு %sஐ இந்த கருவியால் மேம்படுத்த முடியவில்லை : %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:1268
+#: ../client/pk-console.c:1271
 msgid "The package update was canceled!"
 msgstr "தொகுப்புகளை மேம்படுத்தல் ரத்து செய்யப்பட்டது!"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1301 ../client/pk-console.c:1309
+#: ../client/pk-console.c:1304 ../client/pk-console.c:1312
 #, c-format
 msgid "This tool could not get the requirements for %s: %s"
 msgstr "%sக்கு தேவையானவற்றை இந்த கருவியால் பெற முடியவில்லை: %s"
 
 #. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:1331 ../client/pk-console.c:1339
+#: ../client/pk-console.c:1334 ../client/pk-console.c:1342
 #, c-format
 msgid "This tool could not get the dependencies for %s: %s"
 msgstr "%sகான சார்புகளை இந்தக் கருவியால் பெற முடியவில்லை: %s"
 
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:1361 ../client/pk-console.c:1369
+#: ../client/pk-console.c:1364 ../client/pk-console.c:1372
 #, c-format
 msgid "This tool could not get package details for %s: %s"
 msgstr "%sக்கான தொகுப்பு விவரங்களை இந்தக் கருவியால் பெற முடியாது: %s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1391
+#: ../client/pk-console.c:1394
 #, c-format
 msgid "This tool could not find the files for %s: %s"
 msgstr "%sக்கான கோப்புகளை இந்த கருவியால் கண்டுபிடிக்க முடியாது: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1399
+#: ../client/pk-console.c:1402
 #, c-format
 msgid "This tool could not get the file list for %s: %s"
 msgstr "%sகாக கோப்பு பட்டியலை இந்தக் கருவியால் பெற முடியவில்லை: %s"
 
 #. TRANSLATORS: There was an error getting the list of packages. The filename follows
-#: ../client/pk-console.c:1421
+#: ../client/pk-console.c:1424
 #, c-format
 msgid "File already exists: %s"
 msgstr "கோப்பு ஏற்கனவை வெளியேற்றப்பட்டது: %s"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1426 ../client/pk-console.c:1482
-#: ../client/pk-console.c:1557
+#: ../client/pk-console.c:1429 ../client/pk-console.c:1485
+#: ../client/pk-console.c:1560
 msgid "Getting package list"
 msgstr "தொகுப்புகளின் பட்டியல் பெறப்படுகிறது"
 
 #. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1432 ../client/pk-console.c:1488
-#: ../client/pk-console.c:1563
+#: ../client/pk-console.c:1435 ../client/pk-console.c:1491
+#: ../client/pk-console.c:1566
 #, c-format
 msgid "This tool could not get package list: %s"
 msgstr "இந்த கருவியால் தொகுப்பு பட்டியலை பெற இயலாது: %s"
 
 #. TRANSLATORS: There was an error saving the list
-#: ../client/pk-console.c:1443
+#: ../client/pk-console.c:1446
 #, c-format
 msgid "Failed to save to disk"
 msgstr "வட்டில் சேமிப்பதில் தோல்வி"
 
 #. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1477 ../client/pk-console.c:1552
+#: ../client/pk-console.c:1480 ../client/pk-console.c:1555
 #, c-format
 msgid "File does not exist: %s"
 msgstr "கோப்பு வெளியேற்றப்படவில்லை: %s"
 
 #. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1509
+#: ../client/pk-console.c:1512
 msgid "Packages to add"
 msgstr "சேர்ப்பதற்கான தொகுப்புகள்"
 
 #. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1517
+#: ../client/pk-console.c:1520
 msgid "Packages to remove"
 msgstr "நீக்கவேண்டிய தொகுப்புகள்"
 
 #. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1585
+#: ../client/pk-console.c:1588
 #, c-format
 msgid "No new packages need to be installed"
 msgstr "புதிய தொகுப்புகள் நிறுவப்பட வேண்டியுள்ளது"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1591
+#: ../client/pk-console.c:1594
 msgid "To install"
 msgstr "நிறுவுவதற்கு"
 
 #. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1603
+#: ../client/pk-console.c:1606
 msgid "Searching for package: "
 msgstr "தொகுப்பினை தேடுகிறது: "
 
 #. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1607
+#: ../client/pk-console.c:1610
 msgid "not found."
 msgstr "காணப்படவில்லை."
 
 #. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1618
+#: ../client/pk-console.c:1621
 #, c-format
 msgid "No packages can be found to install"
 msgstr "நிறுவுவதற்கு தொகுப்புகள் எதுவும் காணப்படவில்லை"
 
 #. TRANSLATORS: installing new packages from package list
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
-#: ../client/pk-console.c:1624
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:886
+#: ../client/pk-console.c:1627
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:885
 #, c-format
 msgid "Installing packages"
 msgstr "நிறுவப்பட்ட தொகுப்புகள்"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1660
+#: ../client/pk-console.c:1663
 #, c-format
 msgid "This tool could not find the update details for %s: %s"
 msgstr "%sகான விவரங்களை மேம்படுத்த இந்தக் கருவியால் கண்டுபிடிக்க முடியவில்லை: %s"
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1668
+#: ../client/pk-console.c:1671
 #, c-format
 msgid "This tool could not get the update details for %s: %s"
 msgstr "This tool could not get the update details for %s: %s"
 
 #. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
-#: ../client/pk-console.c:1699
+#: ../client/pk-console.c:1702
 msgid "Error:"
 msgstr "பிழை:"
 
 #. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1713
+#: ../client/pk-console.c:1716 ../client/pk-console-test.c:370
 msgid "Package description"
 msgstr "தொகுப்பு விளக்கம்"
 
 #. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
-#: ../client/pk-console.c:1729
+#: ../client/pk-console.c:1732 ../client/pk-console-test.c:388
 msgid "Message:"
 msgstr "செய்தி:"
 
 #. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1757
+#: ../client/pk-console.c:1760 ../client/pk-console-test.c:407
 msgid "Package files"
 msgstr "தொகுப்பு கோப்புகள்"
 
 #. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1765
+#: ../client/pk-console.c:1768 ../client/pk-console-test.c:402
 msgid "No files"
 msgstr "கோப்புகள் இல்லை"
 
 #. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1788
+#: ../client/pk-console.c:1791
 msgid "Repository signature required"
 msgstr "நம்பிக்கையான கையெழுத்து தேவைப்படுகிறது"
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1798
+#. ask the user
+#: ../client/pk-console.c:1801 ../client/pk-task-text.c:113
 msgid "Do you accept this signature?"
 msgstr "நீங்கள் இந்த கையெமுத்து ஏற்றுக் கொள்கிறீர்களா ?"
 
 #. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1802
+#: ../client/pk-console.c:1805 ../client/pk-task-text.c:117
 msgid "The signature was not accepted."
 msgstr "கையேழுத்து ஏற்றுக் கொள்ளப்படவில்லை."
 
 #. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1836
+#: ../client/pk-console.c:1839
 msgid "End user license agreement required"
 msgstr "இறுதியான பயனரின் உரிம ஒப்பந்தம் தேவைப்படுகிறது"
 
 #. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1843
+#: ../client/pk-console.c:1846
 msgid "Do you agree to this license?"
 msgstr "இந்த உரிமத்தை நீங்கள் ஏற்று கொள்கிறீர்களா?"
 
 #. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1847
+#: ../client/pk-console.c:1850
 msgid "The license was refused."
 msgstr "உரிமம் மறுக்கப்பட்டது."
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1876
+#: ../client/pk-console.c:1879 ../client/pk-console-test.c:972
 msgid "The daemon crashed mid-transaction!"
 msgstr "மத்திய பரிமாற்றத்தின் போது டோமோன் நொறுக்கப்பட்டது!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1929
+#: ../client/pk-console.c:1932 ../client/pk-console-test.c:1006
 msgid "PackageKit Console Interface"
 msgstr "PackageKit பணியக முகப்பு"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1931
+#: ../client/pk-console.c:1934 ../client/pk-console-test.c:1008
 msgid "Subcommands:"
 msgstr "துணைக்கட்டளைகள்:"
 
 #. TRANSLATORS: command line argument, if we should show debugging information
 #. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:2024 ../client/pk-generate-pack.c:185
-#: ../client/pk-monitor.c:128
+#: ../client/pk-console.c:2027 ../client/pk-console-test.c:1099
+#: ../client/pk-generate-pack.c:187 ../client/pk-monitor.c:128
+#: ../client/pk-monitor-test.c:282
 #: ../contrib/command-not-found/pk-command-not-found.c:616
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:550
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:549
 #: ../contrib/device-rebind/pk-device-rebind.c:293 ../src/pk-main.c:211
 msgid "Show extra debugging information"
 msgstr "கூடுதல் பிழைதிருத்த தகவலைக் காட்டு"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:2027 ../client/pk-monitor.c:130
+#: ../client/pk-console.c:2030 ../client/pk-console-test.c:1102
+#: ../client/pk-monitor.c:130 ../client/pk-monitor-test.c:284
 msgid "Show the program version and exit"
 msgstr "நிகழ்ச்சி பதிப்பு மற்றும் வெளியேறுவதைக் காட்டு"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:2030
+#: ../client/pk-console.c:2033 ../client/pk-console-test.c:1105
 msgid "Set the filter, e.g. installed"
 msgstr "வடோப்பினை"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:2033
+#: ../client/pk-console.c:2036 ../client/pk-console-test.c:1108
 msgid "Exit without waiting for actions to complete"
 msgstr "செயல் முடிவடை வரை காத்திருக்காமல் வெளியேறு"
 
 #. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:2060
+#: ../client/pk-console.c:2063
 msgid "This tool could not connect to system DBUS."
 msgstr "இந்தக் கருவியால் கணினி DBUSஐ இணைக்க முடியாது."
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:2150
+#: ../client/pk-console.c:2153 ../client/pk-console-test.c:1183
 msgid "The filter specified was invalid"
 msgstr "வடிப்பி குறிப்பிடுவது தவறானது"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:2169
+#: ../client/pk-console.c:2172 ../client/pk-console-test.c:1202
 msgid "A search type is required, e.g. name"
 msgstr "ஒரு தேடும் வகை தேவைப்படுகிறது, எ.கா. பெயர்"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:2176 ../client/pk-console.c:2185
-#: ../client/pk-console.c:2194 ../client/pk-console.c:2203
+#: ../client/pk-console.c:2179 ../client/pk-console.c:2188
+#: ../client/pk-console.c:2197 ../client/pk-console.c:2206
+#: ../client/pk-console-test.c:1209 ../client/pk-console-test.c:1221
+#: ../client/pk-console-test.c:1233 ../client/pk-console-test.c:1245
 msgid "A search term is required"
 msgstr "ஒரு தேடும் சொல் தேவைப்படுகிறது"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:2210
+#: ../client/pk-console.c:2213 ../client/pk-console-test.c:1255
 msgid "Invalid search type"
 msgstr "தவறான தேடும் வகை"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:2216
+#: ../client/pk-console.c:2219
 msgid "A package name or filename to install is required"
 msgstr "ஒரு தொகுப்பு பெயர் அல்லது கோப்பு பெயரை நறுவுவதற்கு தேவைப்படுகிறது"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2225
+#: ../client/pk-console.c:2228 ../client/pk-console-test.c:1282
 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:2234
+#: ../client/pk-console.c:2237 ../client/pk-console-test.c:1293
 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:2242
+#: ../client/pk-console.c:2245 ../client/pk-console-test.c:1302
 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:2249
+#: ../client/pk-console.c:2252 ../client/pk-console-test.c:1309
 msgid "Directory not found"
 msgstr "அடைவு காணப்படவில்லை"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2257
+#: ../client/pk-console.c:2260 ../client/pk-console-test.c:1318
 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:2267
+#: ../client/pk-console.c:2270 ../client/pk-console-test.c:1329
 msgid "A transaction identifier (tid) is required"
 msgstr "பரிமாற்ற கண்டுபிடிப்பாளர் (tid) தேவைப்படுகிறது"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:2284
+#: ../client/pk-console.c:2287 ../client/pk-console-test.c:1350
 msgid "A package name to resolve is required"
 msgstr "தொகுப்பு பெயர் மறுதீர்வுக்கு தேவைப்படுகிறது"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:2293 ../client/pk-console.c:2302
+#: ../client/pk-console.c:2296 ../client/pk-console.c:2305
+#: ../client/pk-console-test.c:1361 ../client/pk-console-test.c:1372
 msgid "A repository name is required"
 msgstr "நம்பகமான ஒரு பெயர் தேவைப்படுகிறது"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2311
+#: ../client/pk-console.c:2314 ../client/pk-console-test.c:1383
 msgid "A repo name, parameter and value are required"
 msgstr "ஒரு ரெபோ பெநர், அளவுரு மற்றும் மதிப்பு தேவைப்படுகிறது"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:2325
+#: ../client/pk-console.c:2328 ../client/pk-console-test.c:1401
 msgid "An action, e.g. 'update-system' is required"
 msgstr "செயலுக்கு, எ.கா. 'மேம்படுத்தப்பட்ட கணினி' தேவைப்படுகிறது"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:2332
+#: ../client/pk-console.c:2335 ../client/pk-console-test.c:1408
 msgid "A correct role is required"
 msgstr "ஒரு சரியான திருப்பம் தேவைப்படுகிறது"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2339
+#: ../client/pk-console.c:2342 ../client/pk-console-test.c:1415
 msgid "Failed to get the time since this action was last completed"
 msgstr "இந்த செயல் கடைசியாக முடிவடையும் வரை நேரத்தை பெற்றிருப்பதில் தோல்வி"
 
 #. TRANSLATORS: The user did not provide a package name
 #. TRANSLATORS: This is when the user fails to supply the package name
-#: ../client/pk-console.c:2349 ../client/pk-console.c:2361
-#: ../client/pk-console.c:2370 ../client/pk-console.c:2388
-#: ../client/pk-console.c:2397 ../client/pk-generate-pack.c:241
+#: ../client/pk-console.c:2352 ../client/pk-console.c:2364
+#: ../client/pk-console.c:2373 ../client/pk-console.c:2391
+#: ../client/pk-console.c:2400 ../client/pk-console-test.c:1425
+#: ../client/pk-console-test.c:1440 ../client/pk-console-test.c:1449
+#: ../client/pk-console-test.c:1469 ../client/pk-console-test.c:1478
+#: ../client/pk-generate-pack.c:243
 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:2379
+#: ../client/pk-console.c:2382 ../client/pk-console-test.c:1458
 msgid "A package provide string is required"
 msgstr "ஒரு தொகுப்பால் வழங்கப்படும் சரம் தேவைப்படுகிறது"
 
 #. TRANSLATORS: The user didn't specify a filename to create as a list
-#: ../client/pk-console.c:2406
+#: ../client/pk-console.c:2409
 msgid "A list file name to create is required"
 msgstr "ஒரு பட்டியல் கோப்பு பெயரை உருவாக்குவது தேவைப்படுகிறது"
 
 #. TRANSLATORS: The user didn't specify a filename to open as a list
-#: ../client/pk-console.c:2416 ../client/pk-console.c:2426
+#: ../client/pk-console.c:2419 ../client/pk-console.c:2429
 msgid "A list file to open is required"
 msgstr "ஒரு பட்டியல் கோப்பினை திறப்பது தேவைப்படுகிறது"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2480
+#: ../client/pk-console.c:2483 ../client/pk-console-test.c:1538
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr " '%s' விருப்பம் துணைபுரியவில்லை"
 
 #. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2493
+#: ../client/pk-console.c:2496
 msgid "Incorrect privileges for this operation"
 msgstr "இந்த செயல்பாடுக்கு தவறான முன்னுரிமைகள்"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2496
+#. /* TRANSLATORS: User does not have permission to do this */
+#. g_print ("%s\n", _("Incorrect privileges for this operation"));
+#. TRANSLATORS: Generic failure of what they asked to do
+#: ../client/pk-console.c:2499 ../client/pk-console-test.c:1550
 msgid "Command failed"
 msgstr "கட்டளை தோல்வியுற்றது"
 
+#. TRANSLATORS: more than one package could be found that matched, to follow is a list of possible packages
+#: ../client/pk-console-test.c:523 ../client/pk-tools-common.c:131
+msgid "More than one package matches:"
+msgstr "ஒன்றுக்கு மேற்பட்ட தொகுப்புகள் பொருந்துகிறது:"
+
+#. TRANSLATORS: This finds out which package in the list to use
+#: ../client/pk-console-test.c:532 ../client/pk-tools-common.c:138
+msgid "Please choose the correct package: "
+msgstr "சரியான தொகுப்பினை தேர்ந்தெடுக்கவும்: "
+
+#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
+#: ../client/pk-console-test.c:734
+#, c-format
+msgid "This tool could not find the 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-test.c:762
+#, 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-test.c:790 ../client/pk-console-test.c:818
+#, c-format
+msgid "This tool could not find the package: %s"
+msgstr "இந்த கருவி தொகுப்பை தேட முடியவில்லை: %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-test.c:846 ../client/pk-console-test.c:872
+#: ../client/pk-console-test.c:898 ../client/pk-console-test.c:924
+#: ../client/pk-console-test.c:950
+#, c-format
+msgid "This tool could not find all the packages: %s"
+msgstr "இந்த கருவி அனைத்து தொகுப்புகளையும் தேட முடியவில்லை: %s"
+
+#. TRANSLATORS: the user did not specify what they wanted to install
+#: ../client/pk-console-test.c:1261
+msgid "A package name to install is required"
+msgstr "தொகுப்பு பெயர் நிறுவ தேவைப்படுகிறது"
+
+#. TRANSLATORS: the user did not specify what they wanted to install
+#: ../client/pk-console-test.c:1270
+msgid "A filename to install is required"
+msgstr "நிறுவ ஒரு கோப்புபெயர் தேவைப்படுகிறது"
+
 #. TRANSLATORS: This is the state of the transaction
-#: ../client/pk-generate-pack.c:101
+#: ../client/pk-generate-pack.c:103
 msgid "Downloading"
 msgstr "பதிவிறக்குகிறது"
 
 #. TRANSLATORS: This is when the main packages are being downloaded
-#: ../client/pk-generate-pack.c:121
+#: ../client/pk-generate-pack.c:123
 msgid "Downloading packages"
 msgstr "தொகுப்புகளை பதிவிறக்குகிறது"
 
 #. TRANSLATORS: This is when the dependency packages are being downloaded
-#: ../client/pk-generate-pack.c:126
+#: ../client/pk-generate-pack.c:128
 msgid "Downloading dependencies"
 msgstr "சார்புகள் பதிவிறக்கப்படுகிறது"
 
 #. TRANSLATORS: we can exclude certain packages (glibc) when we know they'll exist on the target
-#: ../client/pk-generate-pack.c:188
+#: ../client/pk-generate-pack.c:190
 msgid "Set the file name of dependencies to be excluded"
 msgstr "நீக்கப்பட்ட சார்புகளுடைய கோப்பு பெயயை அமை"
 
 #. TRANSLATORS: the output location
-#: ../client/pk-generate-pack.c:191
+#: ../client/pk-generate-pack.c:193
 msgid "The output file or directory (the current directory is used if ommitted)"
 msgstr "வெளியேறும் கோப்பு அல்லது அடைவு (தற்போது பயன்படுத்தப்படுகிற அடைவு தவிர்க்கப்பட்டால்)"
 
 #. TRANSLATORS: put a list of packages in the pack
-#: ../client/pk-generate-pack.c:194
+#: ../client/pk-generate-pack.c:196
 msgid "The package to be put into the service pack"
 msgstr "தொகுப்பு சேவை தொகுப்பில் போடப்பட வேண்டும்"
 
 #. TRANSLATORS: put all pending updates in the pack
-#: ../client/pk-generate-pack.c:197
+#: ../client/pk-generate-pack.c:199
 msgid "Put all updates available in the service pack"
 msgstr "சேவை தொகுப்பிலுள்ள அனைத்து மேம்படுத்துதலையும் போடவும்"
 
 #. TRANSLATORS: This is when the user fails to supply the correct arguments
-#: ../client/pk-generate-pack.c:225
+#: ../client/pk-generate-pack.c:227
 msgid "Neither --package or --updates option selected."
 msgstr " --package அல்லது --updates விருப்பம் தேர்ந்தெடுக்கப்பட்டது."
 
 #. TRANSLATORS: This is when the user fails to supply just one argument
-#: ../client/pk-generate-pack.c:233
+#: ../client/pk-generate-pack.c:235
 msgid "Both options selected."
 msgstr "இரண்டு விருப்பங்களும் தேர்ந்தெடுக்கப்பட்டது."
 
 #. TRANSLATORS: This is when the user fails to supply the output
-#: ../client/pk-generate-pack.c:249
+#: ../client/pk-generate-pack.c:251
 msgid "A output directory or file name is required"
 msgstr "ஒரு வெளிப்பாட அடைவு அல்லது கோப்பு பெயர் தேவைப்படுகிறது"
 
 #. TRANSLATORS: This is when the backend doesn't have the capability to get-depends
 #. TRANSLATORS: This is when the backend doesn't have the capability to download
-#: ../client/pk-generate-pack.c:267 ../client/pk-generate-pack.c:273
+#: ../client/pk-generate-pack.c:269 ../client/pk-generate-pack.c:275
 msgid "The package manager cannot perform this type of operation."
 msgstr "தொகுப்பு மேலாளர் இந்த வகையான செயலை செய்ய முடியாது."
 
 #. TRANSLATORS: This is when the distro didn't include libarchive support into PK
-#: ../client/pk-generate-pack.c:280
+#: ../client/pk-generate-pack.c:282
 msgid ""
 "Service packs cannot be created as PackageKit was not built with libarchive "
 "support."
 msgstr "சேவை பொதிகள் libarchive சேவையுடன் PackageKitஆக உருவாக்க முடியாது"
 
 #. TRANSLATORS: the user specified an absolute path, but didn't get the extension correct
-#: ../client/pk-generate-pack.c:291
+#: ../client/pk-generate-pack.c:293
 msgid "If specifying a file, the service pack name must end with"
 msgstr "ஒரு கோப்பினை குறிப்பிட்டால், இறுதியில் சேவை தொகுப்பு பெயர் வேண்டும்"
 
 #. TRANSLATORS: This is when file already exists
-#: ../client/pk-generate-pack.c:307
+#: ../client/pk-generate-pack.c:309
 msgid "A pack with the same name already exists, do you want to overwrite it?"
 msgstr "ஒரே பெயருடைய தொகுப்பு ஏற்கனவே வெளியேற்றப்பட்டது, அதை மீண்டும் மேலெழுத விரும்புகிறீர்களா?"
 
 #. TRANSLATORS: This is when the pack was not overwritten
-#: ../client/pk-generate-pack.c:310
+#: ../client/pk-generate-pack.c:312
 msgid "The pack was not overwritten."
 msgstr "இந்த தொகுப்பு மேலெழுதப்படவில்லை."
 
 #. TRANSLATORS: This is when the temporary directory cannot be created, the directory name follows
-#: ../client/pk-generate-pack.c:323
+#: ../client/pk-generate-pack.c:325
 msgid "Failed to create directory:"
 msgstr "அடைவினை உருவாக்குவதில் தோல்வி:"
 
 #. TRANSLATORS: This is when the list of packages from the remote computer cannot be opened
-#: ../client/pk-generate-pack.c:333
+#: ../client/pk-generate-pack.c:335
 msgid "Failed to open package list."
 msgstr "தொகுப்பு பட்டியலை திறப்பதில் தோல்வி."
 
 #. TRANSLATORS: The package name is being matched up to available packages
-#: ../client/pk-generate-pack.c:344
+#: ../client/pk-generate-pack.c:346
 msgid "Finding package name."
 msgstr "தொகுப்பு பெயரை தேடுகிறது."
 
 #. TRANSLATORS: This is when the package cannot be found in any software source. The detailed error follows
-#: ../client/pk-generate-pack.c:348
+#: ../client/pk-generate-pack.c:350
 #, c-format
 msgid "Failed to find package '%s': %s"
 msgstr "தொகுப்பு '%s'ஐ காணமுடியவில்லை: %s"
 
 #. TRANSLATORS: This is telling the user we are in the process of making the pack
-#: ../client/pk-generate-pack.c:365
+#: ../client/pk-generate-pack.c:367
 msgid "Creating service pack..."
 msgstr "சேவை தொகுப்பை உருவாக்குகிறது..."
 
 #. TRANSLATORS: we succeeded in making the file
-#: ../client/pk-generate-pack.c:372
+#: ../client/pk-generate-pack.c:374
 #, c-format
 msgid "Service pack created '%s'"
 msgstr "சேவை தொகுப்பு '%s'ஐ உருவாக்கியது"
 
 #. TRANSLATORS: we failed to make te file
-#: ../client/pk-generate-pack.c:377
+#: ../client/pk-generate-pack.c:379
 #, c-format
 msgid "Failed to create '%s': %s"
 msgstr "'%s' உருவாக்குவதில் தோல்வி: %s"
 
 #. TRANSLATORS: this is a program that monitors PackageKit
-#: ../client/pk-monitor.c:146
+#: ../client/pk-monitor.c:146 ../client/pk-monitor-test.c:299
 msgid "PackageKit Monitor"
 msgstr "PackageKit திரை"
 
@@ -862,27 +933,112 @@ msgstr "PackageKit திரை"
 msgid "Cannot show the list of transactions"
 msgstr "பரிமாற்றங்களின் பட்டியலை காட்ட முடியவில்லை"
 
-#. TRANSLATORS: The package was not found in any software sources
-#: ../client/pk-tools-common.c:118
-#, c-format
-msgid "The package could not be found"
-msgstr "தொகுப்புகள் காணப்படவில்லை"
+#: ../client/pk-monitor-test.c:204
+msgid "Failed to get transaction list"
+msgstr "பரிமாற்ற பட்டியலை பெற முடியவில்லை"
 
-#. TRANSLATORS: more than one package could be found that matched, to follow is a list of possible packages
-#: ../client/pk-tools-common.c:130
-msgid "More than one package matches:"
-msgstr "ஒன்றுக்கு மேற்பட்ட தொகுப்புகள் பொருந்துகிறது:"
+#: ../client/pk-monitor-test.c:235
+msgid "Failed to get daemon state"
+msgstr "டீமான் நிலையை பெற முடியவில்லை"
 
-#. TRANSLATORS: This finds out which package in the list to use
-#: ../client/pk-tools-common.c:137
-msgid "Please choose the correct package: "
-msgstr "சரியான தொகுப்பினை தேர்ந்தெடுக்கவும்: "
+#. ask the user
+#: ../client/pk-task-text.c:64
+msgid "Do you want to allow installing of unsigned software?"
+msgstr "கையொப்பமிடாத மென்பொருளை நிறுவ அனுமதிக்கவா?"
 
-#: ../client/pk-tools-common.c:162
+#: ../client/pk-task-text.c:68
+msgid "The unsigned software will not be installed."
+msgstr "கையொப்பமிடப்படாத மென்பொருள் நிறுவப்படவில்லை."
+
+#: ../client/pk-task-text.c:100
+msgid "Software source signature required"
+msgstr "மென்பொருள் மூல கையெழுத்து தேவைப்படுகிறது"
+
+#: ../client/pk-task-text.c:102
+msgid "Software source name"
+msgstr "மென்பொருள் மூல பெயர்"
+
+#: ../client/pk-task-text.c:103
+msgid "Key URL"
+msgstr "விசை URL"
+
+#: ../client/pk-task-text.c:104
+msgid "Key user"
+msgstr "விசை பயனர்"
+
+#: ../client/pk-task-text.c:105
+msgid "Key ID"
+msgstr "விசை ஐடி"
+
+#: ../client/pk-task-text.c:106
+msgid "Key fingerprint"
+msgstr "விசை விரல் ரேகை"
+
+#: ../client/pk-task-text.c:107
+msgid "Key Timestamp"
+msgstr "விசை நேர முத்திரை"
+
+#: ../client/pk-task-text.c:151
+msgid "End user licence agreement required"
+msgstr "இறுதியான பயனரின் உரிம ஒப்பந்தம் தேவைப்படுகிறது"
+
+#: ../client/pk-task-text.c:152
+msgid "EULA ID"
+msgstr "EULA ID"
+
+#: ../client/pk-task-text.c:155
+msgid "Agreement"
+msgstr "ஒப்பந்தம்"
+
+#. ask the user
+#: ../client/pk-task-text.c:161
+msgid "Do you accept this agreement?"
+msgstr "நீங்கள் இந்த ஒப்பந்தத்தை ஏற்றுக் கொள்கிறீர்களா?"
+
+#: ../client/pk-task-text.c:165
+msgid "The agreement was not accepted."
+msgstr "இந்த ஒப்பந்தம் ஏற்றுக் கொள்ளப்படவில்லை."
+
+#: ../client/pk-task-text.c:194
+msgid "Media change required"
+msgstr "ஊடக மாற்றம் தேவைப்படுகிறது"
+
+#: ../client/pk-task-text.c:195
+msgid "Media type"
+msgstr "ஊடக வகை"
+
+#: ../client/pk-task-text.c:196
+msgid "Media ID"
+msgstr "ஊடக ஐடி"
+
+#: ../client/pk-task-text.c:197
+msgid "Text"
+msgstr "உரை"
+
+#. ask the user
+#: ../client/pk-task-text.c:201
+msgid "Please insert the correct media"
+msgstr "சரியான ஊடகத்தை நுழைக்கவும்: "
+
+#: ../client/pk-task-text.c:205
+msgid "The correct media was not inserted."
+msgstr "சரியான ஊடகம் நுழைக்கப்படவில்லை."
+
+#: ../client/pk-task-text.c:303
+msgid "The transaction did not proceed."
+msgstr "பரிமாற்றம் செயல்படவில்லை."
+
+#: ../client/pk-text.c:50
 #, c-format
 msgid "Please enter a number from 1 to %i: "
 msgstr "1 லிருந்து %i வரை எண்னை உள்ளீடவும் : "
 
+#. TRANSLATORS: The package was not found in any software sources
+#: ../client/pk-tools-common.c:119
+#, c-format
+msgid "The package could not be found"
+msgstr "தொகுப்புகள் காணப்படவில்லை"
+
 #. TRANSLATORS: when we are getting data from the daemon
 #: ../contrib/browser-plugin/pk-plugin-install.c:466
 msgid "Getting package information..."
@@ -1038,174 +1194,174 @@ msgid "Failed to find the package %s, or already installed: %s"
 msgstr "தொகுப்பு %sஐ காண முடியவில்லை அல்லது ஏற்கனவே நிறுவப்பட்டது: %s"
 
 #. command line argument, simulate what would be done, but don't actually do it
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:553
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:552
 msgid "Don't actually install any packages, only simulate what would be installed"
 msgstr "எந்த தொகுப்புகளையும் நிறுவவில்லை, என்ன நிறுவ வேண்டும் என கணக்கிடுகிறது"
 
 #. command line argument, do we skip packages that depend on the ones specified
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:556
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:555
 msgid "Do not install dependencies of the core packages"
 msgstr "கோர் தொகுப்புகளின் சார்புகளை நிறுவவில்லை"
 
 #. command line argument, do we operate quietly
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:559
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:558
 msgid "Do not display information or progress"
 msgstr "விவரங்கள் அல்லது முன்னேற்றத்தை காட்ட வேண்டாம்"
 
 #. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:577
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:576
 msgid "PackageKit Debuginfo Installer"
 msgstr "PackageKit Debuginfo நிறுவி"
 
 #. TRANSLATORS: the use needs to specify a list of package names on the command line
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:589
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:588
 #, c-format
 msgid "ERROR: Specify package names to install."
 msgstr "பிழை: நிறுவ தொகுப்பு பெயர்களை குறிப்பிடவும்"
 
 #. TRANSLATORS: we are getting the list of repositories
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:623
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:622
 #, c-format
 msgid "Getting sources list"
 msgstr "மூலங்களின் பட்டியல் பெறப்படுகிறது"
 
 #. TRANSLATORS: all completed 100%
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:641
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:681
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:716
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:800
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:844
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:911
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:955
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:640
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:680
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:715
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:799
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:843
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:910
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:954
 #, c-format
 msgid "OK."
 msgstr "சரி."
 
 #. TRANSLATORS: tell the user what we found
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:644
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:643
 #, c-format
 msgid "Found %i enabled and %i disabled sources."
 msgstr "%i செயல்படுத்தப்பட்டது மற்றும் %i செயல்நீக்கப்பட்ட மூலங்கள் காணப்பட்டது."
 
 #. TRANSLATORS: we're finding repositories that match out pattern
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:651
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:650
 #, c-format
 msgid "Finding debugging sources"
 msgstr "பிழைத்திருத்த மூலங்களை தேடுகிறது"
 
 #. TRANSLATORS: tell the user what we found
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:684
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:683
 #, c-format
 msgid "Found %i disabled debuginfo repos."
 msgstr "%i செயல்நீக்கப்பட்ட debuginfo repoகளை கண்டது."
 
 #. TRANSLATORS: we're now enabling all the debug sources we found
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:691
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:690
 #, c-format
 msgid "Enabling debugging sources"
 msgstr "பிழைத்திருத்த மூலங்களை செயல்படுத்துகிறது"
 
 #. TRANSLATORS: operation was not successful
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:701
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:785
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:829
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:896
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:940
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:700
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:784
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:828
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:895
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:939
 msgid "FAILED."
 msgstr "FAILED."
 
 #. TRANSLATORS: tell the user how many we enabled
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:719
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:718
 #, c-format
 msgid "Enabled %i debugging sources."
 msgstr "செயல்நீக்கப்பட்ட %i பிழைத்திருத்த மூலங்கள்."
 
 #. TRANSLATORS: we're now finding packages that match in all the repos
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:726
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:725
 #, c-format
 msgid "Finding debugging packages"
 msgstr "பிழைத்திருத்த தொகுப்புகளை தேடுகிறது."
 
 #. TRANSLATORS: we couldn't find the package name, non-fatal
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:738
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:737
 #, c-format
 msgid "Failed to find the package %s: %s"
 msgstr "தொகுப்பு %sஐ காண முடியவில்லை: %s"
 
 #. TRANSLATORS: we couldn't find the debuginfo package name, non-fatal
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:761
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:760
 #, c-format
 msgid "Failed to find the debuginfo package %s: %s"
 msgstr "தொகுப்பு %sஐ காண முடியவில்லை: %s"
 
 #. TRANSLATORS: no debuginfo packages could be found to be installed
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:789
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:788
 #, c-format
 msgid "Found no packages to install."
 msgstr "நிறுவ தொகுப்புகள் எதுவும் காணப்படவில்லை."
 
 #. TRANSLATORS: tell the user we found some packages, and then list them
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:803
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:802
 #, c-format
 msgid "Found %i packages:"
 msgstr "%i தொகுப்புகள் காணப்பட்டது:"
 
 #. TRANSLATORS: tell the user we are searching for deps
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:819
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:818
 #, c-format
 msgid "Finding packages that depend on these packages"
 msgstr "இந்த தொகுப்புகளை சார்ந்துள்ள தொகுப்புகளை தேடுகிறது"
 
 #. TRANSLATORS: could not install, detailed error follows
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:832
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:831
 #, c-format
 msgid "Could not find dependant packages: %s"
 msgstr "சார்பு தொகுப்பை காண முடியவில்லை: %s"
 
 #. TRANSLATORS: tell the user we found some more packages
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:848
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:847
 #, c-format
 msgid "Found %i extra packages."
 msgstr "%i கூடுதல் தொகுப்புகள் காணப்பட்டது."
 
 #. TRANSLATORS: tell the user we found some more packages
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:852
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:851
 #, c-format
 msgid "No extra packages required."
 msgstr "கூடுதல் தொகுப்புகள் எதுவும் தேவைப்படவில்லை"
 
 #. TRANSLATORS: tell the user we found some packages (and deps), and then list them
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:861
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:860
 #, c-format
 msgid "Found %i packages to install:"
 msgstr "நிறுவ %i தொகுப்புகள் காணப்பட்டது:"
 
 #. TRANSLATORS: simulate mode is a testing mode where we quit before the action
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:874
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:873
 #, c-format
 msgid "Not installing packages in simulate mode"
 msgstr "கணக்கீடு முறைமையில் தொகுப்புகள் நிறுவப்படவில்லை"
 
 #. TRANSLATORS: could not install, detailed error follows
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:899
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:898
 #, c-format
 msgid "Could not install packages: %s"
 msgstr "தொகுப்புகளை நிறுவ முடியவில்லை: %s"
 
 #. TRANSLATORS: we are now disabling all debuginfo repos we previously enabled
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:931
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:930
 #, c-format
 msgid "Disabling sources previously enabled"
 msgstr "முன்பு செயல்படுத்தப்பட்ட மூலங்களை செயல்நீக்குகிறது"
 
 #. TRANSLATORS: no debuginfo packages could be found to be installed, detailed error follows
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:943
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:942
 #, c-format
 msgid "Could not disable the debugging sources: %s"
 msgstr "பிழைத்திருத்த மூலங்களை செயல்நீக்க முடியவில்லை: %s"
 
 #. TRANSLATORS: we disabled all the debugging repos that we enabled before
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:958
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:957
 #, c-format
 msgid "Disabled %i debugging sources."
 msgstr "செயல்நீக்கப்பட்ட %i பிழைத்திருத்த மூலங்கள்."
commit aee38b61a1f5211a88c27ca8a2b9922b107a2dbc
Author: Anders F Bjorklund <afb at users.sourceforge.net>
Date:   Mon Sep 7 08:46:01 2009 +0200

    ports: use update, not fetch

diff --git a/backends/ports/portsBackend.rb b/backends/ports/portsBackend.rb
index 54fa890..d7d894e 100755
--- a/backends/ports/portsBackend.rb
+++ b/backends/ports/portsBackend.rb
@@ -566,7 +566,7 @@ PORTAUDIT="#{PREFIX}/sbin/portaudit"
   def refresh_cache(force)
     percentage(0)
     status(STATUS_DOWNLOAD_PACKAGELIST)
-    $portsdb.update(fetch=true)
+    system "cd #{$portsdb.abs_ports_dir} && make update"
     if File.exist?(PORTAUDIT)
       status(STATUS_DOWNLOAD_UPDATEINFO)
       system(PORTAUDIT, '-q', '-F')
commit 73104fe0873bcf643ad624e325246e8ec6998b44
Author: xconde <xconde at fedoraproject.org>
Date:   Sun Sep 6 19:52:39 2009 +0000

    Sending translation for Catalan

diff --git a/po/ca.po b/po/ca.po
index 551f343..1fedf86 100644
--- a/po/ca.po
+++ b/po/ca.po
@@ -22,8 +22,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: packagekit\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-08-24 11:06+0100\n"
-"PO-Revision-Date: 2009-03-27 08:46+0100\n"
+"POT-Creation-Date: 2009-09-05 08:29+0000\n"
+"PO-Revision-Date: 2009-09-06 15:46+0100\n"
 "Last-Translator: Xavier Conde Rueda <xavi.conde at gmail.com>\n"
 "Language-Team: Catalan <fedora at softcatala.net>\n"
 "MIME-Version: 1.0\n"
@@ -32,632 +32,688 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
 
 #. TRANSLATORS: this is an atomic transaction
-#: ../client/pk-console.c:235
+#: ../client/pk-console.c:238 ../client/pk-console-test.c:147
 msgid "Transaction"
 msgstr "Transacció"
 
 #. TRANSLATORS: this is the time the transaction was started in system timezone
-#: ../client/pk-console.c:237
+#: ../client/pk-console.c:240 ../client/pk-console-test.c:149
 msgid "System time"
 msgstr "Temps del sistema"
 
 #. TRANSLATORS: this is if the transaction succeeded or not
-#: ../client/pk-console.c:239
+#: ../client/pk-console.c:242 ../client/pk-console-test.c:151
 msgid "Succeeded"
 msgstr "Fet"
 
-#. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:239 ../client/pk-console.c:406
+#: ../client/pk-console.c:242 ../client/pk-console-test.c:151
 msgid "True"
 msgstr "Cert"
 
-#: ../client/pk-console.c:239 ../client/pk-console.c:406
+#: ../client/pk-console.c:242 ../client/pk-console-test.c:151
 msgid "False"
 msgstr "Fals"
 
 #. TRANSLATORS: this is the transactions role, e.g. "update-system"
 #. TRANSLATORS: the trasaction role, e.g. update-system
-#: ../client/pk-console.c:241 ../src/pk-polkit-action-lookup.c:327
+#: ../client/pk-console.c:244 ../client/pk-console-test.c:153
+#: ../src/pk-polkit-action-lookup.c:327
 msgid "Role"
 msgstr "Rol"
 
 #. TRANSLATORS: this is The duration of the transaction
-#: ../client/pk-console.c:246
+#: ../client/pk-console.c:249 ../client/pk-console-test.c:158
 msgid "Duration"
 msgstr "Durada"
 
-#: ../client/pk-console.c:246
+#: ../client/pk-console.c:249 ../client/pk-console-test.c:158
 msgid "(seconds)"
 msgstr "(segons)"
 
 #. TRANSLATORS: this is The command line used to do the action
 #. TRANSLATORS: the command line of the thing that wants the authentication
-#: ../client/pk-console.c:250 ../src/pk-polkit-action-lookup.c:341
+#: ../client/pk-console.c:253 ../client/pk-console-test.c:162
+#: ../src/pk-polkit-action-lookup.c:341
 msgid "Command line"
 msgstr "Línia d'ordres"
 
 #. TRANSLATORS: this is the user ID of the user that started the action
-#: ../client/pk-console.c:252
+#: ../client/pk-console.c:255 ../client/pk-console-test.c:164
 msgid "User ID"
 msgstr "ID d'usuari"
 
 #. TRANSLATORS: this is the username, e.g. hughsie
-#: ../client/pk-console.c:259
+#: ../client/pk-console.c:262 ../client/pk-console-test.c:171
 msgid "Username"
 msgstr "Nom d'usuari"
 
 #. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
-#: ../client/pk-console.c:263
+#: ../client/pk-console.c:266 ../client/pk-console-test.c:175
 msgid "Real name"
 msgstr "Nom real"
 
-#: ../client/pk-console.c:271
+#: ../client/pk-console.c:274 ../client/pk-console-test.c:183
 msgid "Affected packages:"
 msgstr "Paquets afectats:"
 
-#: ../client/pk-console.c:273
+#: ../client/pk-console.c:276 ../client/pk-console-test.c:185
 msgid "Affected packages: None"
 msgstr "Paquets afectats: cap"
 
+#. TRANSLATORS: When processing, we might have to remove other dependencies
+#: ../client/pk-console.c:337 ../client/pk-task-text.c:220
+msgid "The following packages have to be removed:"
+msgstr "S'han de suprimir els següents paquets:"
+
+#. TRANSLATORS: When processing, we might have to install other dependencies
+#: ../client/pk-console.c:340 ../client/pk-task-text.c:225
+msgid "The following packages have to be installed:"
+msgstr "S'han d'instal·lar els següents paquets:"
+
+#. TRANSLATORS: When processing, we might have to update other dependencies
+#: ../client/pk-console.c:343 ../client/pk-task-text.c:230
+msgid "The following packages have to be updated:"
+msgstr "S'han d'actualitzar els següents paquets:"
+
+#. TRANSLATORS: When processing, we might have to reinstall other dependencies
+#: ../client/pk-console.c:346 ../client/pk-task-text.c:235
+msgid "The following packages have to be reinstalled:"
+msgstr "S'han de reinstal·lar els següents paquets:"
+
+#. TRANSLATORS: When processing, we might have to downgrade other dependencies
+#: ../client/pk-console.c:349 ../client/pk-task-text.c:240
+msgid "The following packages have to be downgraded:"
+msgstr "S'ha de desfer l'actualització dels següents paquets:"
+
 #. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:298
+#: ../client/pk-console.c:363 ../client/pk-console-test.c:205
 msgid "Distribution"
 msgstr "Distribució"
 
 #. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:300
+#: ../client/pk-console.c:365 ../client/pk-console-test.c:207
 msgid "Type"
 msgstr "Tipus"
 
 #. TRANSLATORS: this is any summary text describing the upgrade
 #. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:302 ../client/pk-console.c:325
+#. TRANSLATORS: this is any summary text describing the upgrade
+#. TRANSLATORS: this is the summary of the group
+#: ../client/pk-console.c:367 ../client/pk-console.c:390
+#: ../client/pk-console-test.c:209 ../client/pk-console-test.c:230
 msgid "Summary"
 msgstr "Resum"
 
 #. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:314
+#: ../client/pk-console.c:379 ../client/pk-console-test.c:219
 msgid "Category"
 msgstr "Categoria"
 
 #. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:316
+#: ../client/pk-console.c:381 ../client/pk-console-test.c:221
 msgid "ID"
 msgstr "ID"
 
 #. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:319
+#: ../client/pk-console.c:384 ../client/pk-console-test.c:224
 msgid "Parent"
 msgstr "Pare"
 
 #. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:322
+#: ../client/pk-console.c:387 ../client/pk-console-test.c:227
 msgid "Name"
 msgstr "Nom"
 
 #. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:328
+#: ../client/pk-console.c:393 ../client/pk-console-test.c:233
 msgid "Icon"
 msgstr "Icona"
 
 #. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:343
+#: ../client/pk-console.c:408 ../client/pk-console-test.c:247
 msgid "Details about the update:"
 msgstr "Detalls quant a l'actualització:"
 
 #. TRANSLATORS: details about the update, package name and version
 #. TRANSLATORS: title, the names of the packages that the method is processing
-#: ../client/pk-console.c:345 ../src/pk-polkit-action-lookup.c:352
-#, fuzzy
+#: ../client/pk-console.c:410 ../client/pk-console-test.c:253
+#: ../client/pk-task-text.c:101 ../client/pk-task-text.c:153
+#: ../src/pk-polkit-action-lookup.c:352
 msgid "Package"
 msgid_plural "Packages"
 msgstr[0] "Paquet"
-msgstr[1] "Paquet"
+msgstr[1] "Paquets"
 
 #. TRANSLATORS: details about the update, any packages that this update updates
-#: ../client/pk-console.c:348
+#: ../client/pk-console.c:413 ../client/pk-console-test.c:256
 msgid "Updates"
 msgstr "Actualitzacions"
 
 #. TRANSLATORS: details about the update, any packages that this update obsoletes
-#: ../client/pk-console.c:352
+#: ../client/pk-console.c:417 ../client/pk-console-test.c:260
 msgid "Obsoletes"
 msgstr "Obsolets"
 
 #. TRANSLATORS: details about the update, the vendor URLs
-#: ../client/pk-console.c:356
+#: ../client/pk-console.c:421 ../client/pk-console-test.c:264
+#: ../client/pk-task-text.c:154
 msgid "Vendor"
 msgstr "Proveïdor"
 
 #. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:360
+#: ../client/pk-console.c:425 ../client/pk-console-test.c:268
 msgid "Bugzilla"
 msgstr "Bugzilla"
 
 #. TRANSLATORS: details about the update, the CVE URLs
-#: ../client/pk-console.c:364
+#: ../client/pk-console.c:429 ../client/pk-console-test.c:272
 msgid "CVE"
 msgstr "CVE"
 
 #. TRANSLATORS: details about the update, if the package requires a restart
-#: ../client/pk-console.c:368
+#: ../client/pk-console.c:433 ../client/pk-console-test.c:276
 msgid "Restart"
 msgstr "Reinicia"
 
 #. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:372
+#: ../client/pk-console.c:437 ../client/pk-console-test.c:280
 msgid "Update text"
 msgstr "Actualitza el text"
 
 #. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:376
+#: ../client/pk-console.c:441 ../client/pk-console-test.c:284
 msgid "Changes"
 msgstr "Canvis"
 
 #. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:380
+#: ../client/pk-console.c:445 ../client/pk-console-test.c:288
 msgid "State"
 msgstr "Estat"
 
 #. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:385
+#: ../client/pk-console.c:450 ../client/pk-console-test.c:293
 msgid "Issued"
 msgstr "Emès"
 
 #. TRANSLATORS: details about the update, date the update was updated
-#: ../client/pk-console.c:390
+#: ../client/pk-console.c:455 ../client/pk-console-test.c:298
 msgid "Updated"
 msgstr "Actualitzat"
 
-#: ../client/pk-console.c:477 ../client/pk-console.c:479
+#. TRANSLATORS: if the repo is enabled
+#: ../client/pk-console.c:475 ../client/pk-console-test.c:316
+msgid "Enabled"
+msgstr "Habilitat"
+
+#. TRANSLATORS: if the repo is disabled
+#: ../client/pk-console.c:478 ../client/pk-console-test.c:319
+msgid "Disabled"
+msgstr "Inhabilitat"
+
+#: ../client/pk-console.c:555 ../client/pk-console.c:557
 msgid "Percentage"
 msgstr "Percentatge"
 
-#: ../client/pk-console.c:479
+#: ../client/pk-console.c:557
 msgid "Unknown"
 msgstr "Desconegut"
 
 #. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:521
+#: ../client/pk-console.c:599 ../client/pk-console-test.c:341
 msgid "System restart required by:"
-msgstr "Es requereix reiniciar el sistema per:"
+msgstr "Es requereix reiniciar el sistema:"
 
 #. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:524
+#: ../client/pk-console.c:602 ../client/pk-console-test.c:344
 msgid "Session restart required:"
 msgstr "Es requereix reiniciar la sessió:"
 
 #. TRANSLATORS: a package requires the system to be restarted due to a security update
-#: ../client/pk-console.c:527
-#, fuzzy
+#: ../client/pk-console.c:605 ../client/pk-console-test.c:347
 msgid "System restart (security) required by:"
-msgstr "Es requereix reiniciar el sistema per:"
+msgstr "Es requereix reiniciar el sistema (seguretat):"
 
 #. TRANSLATORS: a package requires the session to be restarted due to a security update
-#: ../client/pk-console.c:530
-#, fuzzy
+#: ../client/pk-console.c:608 ../client/pk-console-test.c:350
 msgid "Session restart (security) required:"
-msgstr "Es requereix reiniciar la sessió:"
+msgstr "Es requereix reiniciar la sessió (seguretat):"
 
 #. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:533
+#: ../client/pk-console.c:611 ../client/pk-console-test.c:353
 msgid "Application restart required by:"
 msgstr "Es requereix reiniciar l'aplicació per:"
 
 #. TRANSLATORS: a package needs to restart their system
-#: ../client/pk-console.c:588
+#: ../client/pk-console.c:666 ../client/pk-console-test.c:704
 msgid "Please restart the computer to complete the update."
 msgstr "Reinicieu l'ordinador per completar l'actualització."
 
 #. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:591
+#: ../client/pk-console.c:669 ../client/pk-console-test.c:707
 msgid "Please logout and login to complete the update."
 msgstr "Sortiu i torneu a entrar per completar l'actualització."
 
 #. TRANSLATORS: a package needs to restart the application
-#: ../client/pk-console.c:594
+#: ../client/pk-console.c:672
 msgid "Please restart the application as it is being used."
 msgstr "Cal que reinicieu l'aplicació perquè s'està fent servir."
 
 #. TRANSLATORS: a package needs to restart their system (due to security)
-#: ../client/pk-console.c:597
-#, fuzzy
+#: ../client/pk-console.c:675 ../client/pk-console-test.c:710
 msgid ""
 "Please restart the computer to complete the update as important security "
 "updates have been installed."
-msgstr "Reinicieu l'ordinador per completar l'actualització."
+msgstr "S'han instal·lat actualitzacions de seguretat importants. Reinicieu l'ordinador per completar l'actualització."
 
 #. TRANSLATORS: a package needs to restart the session (due to security)
-#: ../client/pk-console.c:600
-#, fuzzy
+#: ../client/pk-console.c:678 ../client/pk-console-test.c:713
 msgid ""
 "Please logout and login to complete the update as important security updates "
 "have been installed."
-msgstr "Sortiu i torneu a entrar per completar l'actualització."
+msgstr "S'han instal·lat actualitzacions de seguretat importants. Sortiu i torneu a entrar per completar l'actualització."
 
 #. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:727
+#: ../client/pk-console.c:810
 #, c-format
 msgid "The package %s is already installed"
 msgstr "El paquet %s ja està instal·lat"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:735
+#: ../client/pk-console.c:818
 #, c-format
 msgid "The package %s could not be installed: %s"
 msgstr "El paquet %s no s'ha pogut instal·lar: %s"
 
 #. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
-#: ../client/pk-console.c:760 ../client/pk-console.c:783
-#: ../client/pk-console.c:879 ../client/pk-console.c:996
-#: ../client/pk-tools-common.c:62 ../client/pk-tools-common.c:81
-#: ../client/pk-tools-common.c:89
+#: ../client/pk-console.c:844 ../client/pk-console.c:892
+#: ../client/pk-console.c:916 ../client/pk-console.c:964
+#: ../client/pk-console.c:1060 ../client/pk-console.c:1173
+#: ../client/pk-console.c:1234 ../client/pk-tools-common.c:63
+#: ../client/pk-tools-common.c:82 ../client/pk-tools-common.c:90
 #, c-format
 msgid "Internal error: %s"
 msgstr "Error intern: %s"
 
+#. TRANSLATORS: We are checking if it's okay to remove a list of packages
+#. ask the user
+#: ../client/pk-console.c:876 ../client/pk-console.c:948
+#: ../client/pk-console.c:1266 ../client/pk-task-text.c:299
+msgid "Proceed with changes?"
+msgstr "Voleu aplicar els canvis?"
+
+#. TRANSLATORS: There was an error removing the packages. The detailed error follows
+#: ../client/pk-console.c:881 ../client/pk-console.c:953
+msgid "The package install was canceled!"
+msgstr "S'ha cancel·lat la instal·lació de paquets!"
+
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:768 ../client/pk-console.c:1392
+#: ../client/pk-console.c:900 ../client/pk-console.c:1634
 #, c-format
 msgid "This tool could not install the packages: %s"
 msgstr "No s'ha pogut instal·lar els paquets: %s"
 
 #. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:791
+#: ../client/pk-console.c:972
 #, c-format
 msgid "This tool could not install the files: %s"
 msgstr "No s'ha pogut instal·lar els fitxers: %s"
 
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:847
+#: ../client/pk-console.c:1028
 #, c-format
 msgid "This tool could not remove %s: %s"
 msgstr "No s'ha pogut esborrar %s: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:870 ../client/pk-console.c:908
-#: ../client/pk-console.c:941
+#: ../client/pk-console.c:1051 ../client/pk-console.c:1089
+#: ../client/pk-console.c:1118
 #, c-format
 msgid "This tool could not remove the packages: %s"
 msgstr "No s'han pogut esborrar els paquets: %s"
 
-#. TRANSLATORS: When removing, we might have to remove other dependencies
-#: ../client/pk-console.c:920
-msgid "The following packages have to be removed:"
-msgstr "Els següents paquets s'han d'esborrar:"
-
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:927
-msgid "Proceed removing additional packages?"
-msgstr "Voleu esborrar paquets adicionals?"
+#: ../client/pk-console.c:1104
+msgid "Proceed with additional packages?"
+msgstr "Voleu continuar amb els paquets addicionals?"
 
-#. TRANSLATORS: We did not remove any packages
-#: ../client/pk-console.c:932
+#. TRANSLATORS: There was an error removing the packages. The detailed error follows
+#: ../client/pk-console.c:1109
 msgid "The package removal was canceled!"
-msgstr "L'esborrament dels paquets s'ha cancel·lat!"
+msgstr "S'ha cancel·lat la supressió dels paquets"
 
 #. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:973
+#: ../client/pk-console.c:1150
 #, c-format
 msgid "This tool could not download the package %s as it could not be found"
 msgstr "No s'ha pogut baixar el paquet %s perquè no s'ha trobat"
 
 #. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:1004
+#: ../client/pk-console.c:1181
 #, c-format
 msgid "This tool could not download the packages: %s"
 msgstr "No s'han pogut baixar els paquets: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1031 ../client/pk-console.c:1040
+#: ../client/pk-console.c:1213 ../client/pk-console.c:1225
+#: ../client/pk-console.c:1280
 #, c-format
 msgid "This tool could not update %s: %s"
 msgstr "No s'ha pogut actualitzar %s: %s"
 
+#. TRANSLATORS: There was an error removing the packages. The detailed error follows
+#: ../client/pk-console.c:1271
+msgid "The package update was canceled!"
+msgstr "S'ha cancel·lat l'actualització de paquets!"
+
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1062 ../client/pk-console.c:1070
+#: ../client/pk-console.c:1304 ../client/pk-console.c:1312
 #, c-format
 msgid "This tool could not get the requirements for %s: %s"
 msgstr "No s'han pogut obtenir els requeriments per a %s: %s"
 
 #. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:1092 ../client/pk-console.c:1100
+#: ../client/pk-console.c:1334 ../client/pk-console.c:1342
 #, c-format
 msgid "This tool could not get the dependencies for %s: %s"
 msgstr "No s'han pogut obtenir les dependències per a %s: %s"
 
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:1122 ../client/pk-console.c:1130
+#: ../client/pk-console.c:1364 ../client/pk-console.c:1372
 #, c-format
 msgid "This tool could not get package details for %s: %s"
 msgstr "No s'ha pogut obtenir els detalls del paquet %s: %s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1152
+#: ../client/pk-console.c:1394
 #, c-format
 msgid "This tool could not find the files for %s: %s"
 msgstr "No s'han pogut trobar els fitxers %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1160
+#: ../client/pk-console.c:1402
 #, c-format
 msgid "This tool could not get the file list for %s: %s"
 msgstr "No s'ha pogut obtenir la llista de fitxers per a %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of packages. The filename follows
-#: ../client/pk-console.c:1182
+#: ../client/pk-console.c:1424
 #, c-format
 msgid "File already exists: %s"
 msgstr "El fitxer ja existeix: %s"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1187 ../client/pk-console.c:1243
-#: ../client/pk-console.c:1318
+#: ../client/pk-console.c:1429 ../client/pk-console.c:1485
+#: ../client/pk-console.c:1560
 msgid "Getting package list"
 msgstr "S'està obtenint la llista de paquets"
 
 #. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1193 ../client/pk-console.c:1249
-#: ../client/pk-console.c:1324
+#: ../client/pk-console.c:1435 ../client/pk-console.c:1491
+#: ../client/pk-console.c:1566
 #, c-format
 msgid "This tool could not get package list: %s"
 msgstr "No s'ha pogut obtenir la llista de paquets: %s"
 
 #. TRANSLATORS: There was an error saving the list
-#: ../client/pk-console.c:1204
+#: ../client/pk-console.c:1446
 #, c-format
 msgid "Failed to save to disk"
 msgstr "S'ha produït un error en desar al disc"
 
 #. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1238 ../client/pk-console.c:1313
+#: ../client/pk-console.c:1480 ../client/pk-console.c:1555
 #, c-format
 msgid "File does not exist: %s"
 msgstr "El fitxer no existeix: %s"
 
 #. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1270
+#: ../client/pk-console.c:1512
 msgid "Packages to add"
 msgstr "Paquets a afegir"
 
 #. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1278
+#: ../client/pk-console.c:1520
 msgid "Packages to remove"
 msgstr "Paquets a esborrar"
 
 #. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1346
+#: ../client/pk-console.c:1588
 #, c-format
 msgid "No new packages need to be installed"
 msgstr "No és necessari instal·lar paquets nous"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1352
+#: ../client/pk-console.c:1594
 msgid "To install"
 msgstr "Per a instal·lar"
 
 #. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1364
+#: ../client/pk-console.c:1606
 msgid "Searching for package: "
 msgstr "S'està cercant el paquet:"
 
 #. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1368
+#: ../client/pk-console.c:1610
 msgid "not found."
 msgstr "no s'ha trobat."
 
 #. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1379
+#: ../client/pk-console.c:1621
 #, c-format
 msgid "No packages can be found to install"
 msgstr "No s'han trobat paquets per a instal·lar"
 
 #. TRANSLATORS: installing new packages from package list
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
-#: ../client/pk-console.c:1385
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:886
+#: ../client/pk-console.c:1627
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:885
 #, c-format
 msgid "Installing packages"
 msgstr "S'estan instal·lant els paquets"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1421
+#: ../client/pk-console.c:1663
 #, c-format
 msgid "This tool could not find the update details for %s: %s"
 msgstr "No s'han trobat els detalls per a actualitzar %s: %s"
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1429
+#: ../client/pk-console.c:1671
 #, c-format
 msgid "This tool could not get the update details for %s: %s"
 msgstr "No s'han pogut obtenir els detalls per a actualitzar %s: %s"
 
 #. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
-#: ../client/pk-console.c:1460
+#: ../client/pk-console.c:1702
 msgid "Error:"
 msgstr "S'ha produït un error:"
 
 #. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1474
+#: ../client/pk-console.c:1716 ../client/pk-console-test.c:370
 msgid "Package description"
 msgstr "Descripció del paquet"
 
 #. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
-#: ../client/pk-console.c:1490
+#: ../client/pk-console.c:1732 ../client/pk-console-test.c:388
 msgid "Message:"
-msgstr ""
+msgstr "Missatge:"
 
 #. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1518
+#: ../client/pk-console.c:1760 ../client/pk-console-test.c:407
 msgid "Package files"
 msgstr "Fitxers del paquet"
 
 #. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1526
+#: ../client/pk-console.c:1768 ../client/pk-console-test.c:402
 msgid "No files"
 msgstr "Sense fitxers"
 
 #. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1549
+#: ../client/pk-console.c:1791
 msgid "Repository signature required"
 msgstr "Es requereix la firma del repositori"
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1559
+#. ask the user
+#: ../client/pk-console.c:1801 ../client/pk-task-text.c:113
 msgid "Do you accept this signature?"
 msgstr "Accepteu aquesta firma?"
 
 #. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1563
+#: ../client/pk-console.c:1805 ../client/pk-task-text.c:117
 msgid "The signature was not accepted."
 msgstr "No s'ha acceptat la firma."
 
 #. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1597
+#: ../client/pk-console.c:1839
 msgid "End user license agreement required"
 msgstr "Es requeriex l'acord de llicència d'usuari final"
 
 #. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1604
+#: ../client/pk-console.c:1846
 msgid "Do you agree to this license?"
 msgstr "Esteu d'acord amb aquesta llicència?"
 
 #. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1608
+#: ../client/pk-console.c:1850
 msgid "The license was refused."
 msgstr "La llicència s'ha rebutjat."
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1637
+#: ../client/pk-console.c:1879 ../client/pk-console-test.c:972
 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:1690
+#: ../client/pk-console.c:1932 ../client/pk-console-test.c:1006
 msgid "PackageKit Console Interface"
 msgstr "Interfície de consola de PackageKit"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1692
+#: ../client/pk-console.c:1934 ../client/pk-console-test.c:1008
 msgid "Subcommands:"
 msgstr "Subordres:"
 
 #. TRANSLATORS: command line argument, if we should show debugging information
 #. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:1785 ../client/pk-generate-pack.c:185
-#: ../client/pk-monitor.c:128
+#: ../client/pk-console.c:2027 ../client/pk-console-test.c:1099
+#: ../client/pk-generate-pack.c:187 ../client/pk-monitor.c:128
+#: ../client/pk-monitor-test.c:282
 #: ../contrib/command-not-found/pk-command-not-found.c:616
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:550
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:549
 #: ../contrib/device-rebind/pk-device-rebind.c:293 ../src/pk-main.c:211
 msgid "Show extra debugging information"
 msgstr "Mostra informació extra de depuració"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1788 ../client/pk-monitor.c:130
+#: ../client/pk-console.c:2030 ../client/pk-console-test.c:1102
+#: ../client/pk-monitor.c:130 ../client/pk-monitor-test.c:284
 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:1791
+#: ../client/pk-console.c:2033 ../client/pk-console-test.c:1105
 msgid "Set the filter, e.g. installed"
 msgstr "Configura el filtre, p.e. instal·lats"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1794
+#: ../client/pk-console.c:2036 ../client/pk-console-test.c:1108
 msgid "Exit without waiting for actions to complete"
 msgstr "Surt sense esperar que les accions es completin"
 
 #. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:1821
+#: ../client/pk-console.c:2063
 msgid "This tool could not connect to system DBUS."
 msgstr "No s'ha pogut connectar amb el sistema DBUS."
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1911
+#: ../client/pk-console.c:2153 ../client/pk-console-test.c:1183
 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:1930
+#: ../client/pk-console.c:2172 ../client/pk-console-test.c:1202
 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:1937 ../client/pk-console.c:1946
-#: ../client/pk-console.c:1955 ../client/pk-console.c:1964
+#: ../client/pk-console.c:2179 ../client/pk-console.c:2188
+#: ../client/pk-console.c:2197 ../client/pk-console.c:2206
+#: ../client/pk-console-test.c:1209 ../client/pk-console-test.c:1221
+#: ../client/pk-console-test.c:1233 ../client/pk-console-test.c:1245
 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:1971
+#: ../client/pk-console.c:2213 ../client/pk-console-test.c:1255
 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:1977
+#: ../client/pk-console.c:2219
 msgid "A package name or filename to install is required"
 msgstr "Es requreix un nom de paquet o fitxer per instal·lar"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1986
+#: ../client/pk-console.c:2228 ../client/pk-console-test.c:1282
 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:1995
+#: ../client/pk-console.c:2237 ../client/pk-console-test.c:1293
 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:2003
-#, fuzzy
+#: ../client/pk-console.c:2245 ../client/pk-console-test.c:1302
 msgid "A destination directory and the package names to download are required"
 msgstr ""
-"Us cal especificar el directori destí i els noms des paquets per a "
-"descarregar"
+"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:2010
+#: ../client/pk-console.c:2252 ../client/pk-console-test.c:1309
 msgid "Directory not found"
-msgstr "No s'ha trobar el directori"
+msgstr "No s'ha trobat el directori"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2018
+#: ../client/pk-console.c:2260 ../client/pk-console-test.c:1318
 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:2028
+#: ../client/pk-console.c:2270 ../client/pk-console-test.c:1329
 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:2045
+#: ../client/pk-console.c:2287 ../client/pk-console-test.c:1350
 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:2054 ../client/pk-console.c:2063
+#: ../client/pk-console.c:2296 ../client/pk-console.c:2305
+#: ../client/pk-console-test.c:1361 ../client/pk-console-test.c:1372
 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:2072
+#: ../client/pk-console.c:2314 ../client/pk-console-test.c:1383
 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:2086
+#: ../client/pk-console.c:2328 ../client/pk-console-test.c:1401
 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:2093
+#: ../client/pk-console.c:2335 ../client/pk-console-test.c:1408
 msgid "A correct role is required"
 msgstr "Es requereix un rol correcte"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2100
+#: ../client/pk-console.c:2342 ../client/pk-console-test.c:1415
 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 "
@@ -665,190 +721,332 @@ msgstr ""
 
 #. TRANSLATORS: The user did not provide a package name
 #. TRANSLATORS: This is when the user fails to supply the package name
-#: ../client/pk-console.c:2110 ../client/pk-console.c:2122
-#: ../client/pk-console.c:2131 ../client/pk-console.c:2149
-#: ../client/pk-console.c:2158 ../client/pk-generate-pack.c:241
+#: ../client/pk-console.c:2352 ../client/pk-console.c:2364
+#: ../client/pk-console.c:2373 ../client/pk-console.c:2391
+#: ../client/pk-console.c:2400 ../client/pk-console-test.c:1425
+#: ../client/pk-console-test.c:1440 ../client/pk-console-test.c:1449
+#: ../client/pk-console-test.c:1469 ../client/pk-console-test.c:1478
+#: ../client/pk-generate-pack.c:243
 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:2140
+#: ../client/pk-console.c:2382 ../client/pk-console-test.c:1458
 msgid "A package provide string is required"
 msgstr "Es requreix una cadena de proveïdor de paquet"
 
 #. TRANSLATORS: The user didn't specify a filename to create as a list
-#: ../client/pk-console.c:2167
+#: ../client/pk-console.c:2409
 msgid "A list file name to create is required"
 msgstr "Es requreix un fitxer de llista per crear"
 
 #. TRANSLATORS: The user didn't specify a filename to open as a list
-#: ../client/pk-console.c:2177 ../client/pk-console.c:2187
+#: ../client/pk-console.c:2419 ../client/pk-console.c:2429
 msgid "A list file to open is required"
 msgstr "Es requereix un fitxer de llista per obrir"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2241
+#: ../client/pk-console.c:2483 ../client/pk-console-test.c:1538
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "L'opció '%s' no està disponible"
 
 #. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2254
+#: ../client/pk-console.c:2496
 msgid "Incorrect privileges for this operation"
 msgstr "No teniu els privilegis necessaris per a aquesta operació"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2257
+#. /* TRANSLATORS: User does not have permission to do this */
+#. g_print ("%s\n", _("Incorrect privileges for this operation"));
+#. TRANSLATORS: Generic failure of what they asked to do
+#: ../client/pk-console.c:2499 ../client/pk-console-test.c:1550
 msgid "Command failed"
 msgstr "Ha fallat l'ordre"
 
+#. TRANSLATORS: more than one package could be found that matched, to follow is a list of possible packages
+#: ../client/pk-console-test.c:523 ../client/pk-tools-common.c:131
+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
+#: ../client/pk-console-test.c:532 ../client/pk-tools-common.c:138
+msgid "Please choose the correct package: "
+msgstr "Escolliu el paquet correcte:"
+
+#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
+#: ../client/pk-console-test.c:734
+#, c-format
+msgid "This tool could not find the available package: %s"
+msgstr "No s'han trobat els paquets disponibles: %s"
+
+#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
+#: ../client/pk-console-test.c:762
+#, 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-test.c:790 ../client/pk-console-test.c:818
+#, c-format
+msgid "This tool could not find the package: %s"
+msgstr "No s'ha trobat el paquet: %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-test.c:846 ../client/pk-console-test.c:872
+#: ../client/pk-console-test.c:898 ../client/pk-console-test.c:924
+#: ../client/pk-console-test.c:950
+#, c-format
+msgid "This tool could not find all the packages: %s"
+msgstr "No s'han trobat tots els paquets: %s"
+
+#. TRANSLATORS: the user did not specify what they wanted to install
+#: ../client/pk-console-test.c:1261
+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-test.c:1270
+msgid "A filename to install is required"
+msgstr "Es requreix un nom de fitxer per instal·lar"
+
 #. TRANSLATORS: This is the state of the transaction
-#: ../client/pk-generate-pack.c:101
+#: ../client/pk-generate-pack.c:103
 msgid "Downloading"
-msgstr "S'està descarregant"
+msgstr "Baixant"
 
 #. TRANSLATORS: This is when the main packages are being downloaded
-#: ../client/pk-generate-pack.c:121
+#: ../client/pk-generate-pack.c:123
 msgid "Downloading packages"
-msgstr "S'estàn baixant els paquets"
+msgstr "S'estan baixant els paquets"
 
 #. TRANSLATORS: This is when the dependency packages are being downloaded
-#: ../client/pk-generate-pack.c:126
+#: ../client/pk-generate-pack.c:128
 msgid "Downloading dependencies"
-msgstr "S'estàn baixant les dependències"
+msgstr "S'estan baixant les dependències"
 
 #. TRANSLATORS: we can exclude certain packages (glibc) when we know they'll exist on the target
-#: ../client/pk-generate-pack.c:188
+#: ../client/pk-generate-pack.c:190
 msgid "Set the file name of dependencies to be excluded"
 msgstr "Configureu els noms dels fitxers de dependències que s'han d'excloure"
 
 #. TRANSLATORS: the output location
-#: ../client/pk-generate-pack.c:191
+#: ../client/pk-generate-pack.c:193
 msgid ""
 "The output file or directory (the current directory is used if ommitted)"
 msgstr "El directori de sortida (per omissió s'utilitzarà el directori actual)"
 
 #. TRANSLATORS: put a list of packages in the pack
-#: ../client/pk-generate-pack.c:194
+#: ../client/pk-generate-pack.c:196
 msgid "The package to be put into the service pack"
 msgstr "El paquet que s'ha d'incloure en el service pack"
 
 #. TRANSLATORS: put all pending updates in the pack
-#: ../client/pk-generate-pack.c:197
+#: ../client/pk-generate-pack.c:199
 msgid "Put all updates available in the service pack"
 msgstr "Inclou totes les actualitzacions disponibles en el service pack"
 
 #. TRANSLATORS: This is when the user fails to supply the correct arguments
-#: ../client/pk-generate-pack.c:225
+#: ../client/pk-generate-pack.c:227
 msgid "Neither --package or --updates option selected."
 msgstr "Ni l'opció --package ni --updates s'han seleccionat."
 
 #. TRANSLATORS: This is when the user fails to supply just one argument
-#: ../client/pk-generate-pack.c:233
+#: ../client/pk-generate-pack.c:235
 msgid "Both options selected."
 msgstr "S'han seleccionat les dues opcions."
 
 #. TRANSLATORS: This is when the user fails to supply the output
-#: ../client/pk-generate-pack.c:249
+#: ../client/pk-generate-pack.c:251
 msgid "A output directory or file name is required"
 msgstr "Es requreix un directori de sortida o un nom de fitxer"
 
 #. TRANSLATORS: This is when the backend doesn't have the capability to get-depends
 #. TRANSLATORS: This is when the backend doesn't have the capability to download
-#: ../client/pk-generate-pack.c:267 ../client/pk-generate-pack.c:273
+#: ../client/pk-generate-pack.c:269 ../client/pk-generate-pack.c:275
 msgid "The package manager cannot perform this type of operation."
 msgstr "El gestor de paquets no pot dur a terme aquest tipus d'operació."
 
 #. TRANSLATORS: This is when the distro didn't include libarchive support into PK
-#: ../client/pk-generate-pack.c:280
+#: ../client/pk-generate-pack.c:282
 msgid ""
 "Service packs cannot be created as PackageKit was not built with libarchive "
 "support."
 msgstr ""
+"No es poden crear sevice packs perquè el PackageKit s'ha muntat sense la "
+"libarchive." 
 
 #. TRANSLATORS: the user specified an absolute path, but didn't get the extension correct
-#: ../client/pk-generate-pack.c:291
+#: ../client/pk-generate-pack.c:293
 msgid "If specifying a file, the service pack name must end with"
 msgstr "Si s'especifica un fitxer, el nom de paquet de servei ha d'acabar amb"
 
 #. TRANSLATORS: This is when file already exists
-#: ../client/pk-generate-pack.c:307
+#: ../client/pk-generate-pack.c:309
 msgid "A pack with the same name already exists, do you want to overwrite it?"
 msgstr "Ja existeix un paquet amb el mateix nom, desitgeu sobreescriure'l?"
 
 #. TRANSLATORS: This is when the pack was not overwritten
-#: ../client/pk-generate-pack.c:310
+#: ../client/pk-generate-pack.c:312
 msgid "The pack was not overwritten."
 msgstr "No s'ha sobreescrit el paquet"
 
 #. TRANSLATORS: This is when the temporary directory cannot be created, the directory name follows
-#: ../client/pk-generate-pack.c:323
+#: ../client/pk-generate-pack.c:325
 msgid "Failed to create directory:"
 msgstr "Ha fallat la creació del directori:"
 
 #. TRANSLATORS: This is when the list of packages from the remote computer cannot be opened
-#: ../client/pk-generate-pack.c:333
+#: ../client/pk-generate-pack.c:335
 msgid "Failed to open package list."
 msgstr "S'ha produït un error en obrir la llista de paquets."
 
 #. TRANSLATORS: The package name is being matched up to available packages
-#: ../client/pk-generate-pack.c:344
+#: ../client/pk-generate-pack.c:346
 msgid "Finding package name."
 msgstr "S'està cercant el nom del paquet."
 
 #. TRANSLATORS: This is when the package cannot be found in any software source. The detailed error follows
-#: ../client/pk-generate-pack.c:348
+#: ../client/pk-generate-pack.c:350
 #, c-format
 msgid "Failed to find package '%s': %s"
 msgstr "Ha fallat en trobar el paquet '%s': %s"
 
 #. TRANSLATORS: This is telling the user we are in the process of making the pack
-#: ../client/pk-generate-pack.c:365
+#: ../client/pk-generate-pack.c:367
 msgid "Creating service pack..."
 msgstr "S'està creant el service pack..."
 
 #. TRANSLATORS: we succeeded in making the file
-#: ../client/pk-generate-pack.c:372
+#: ../client/pk-generate-pack.c:374
 #, c-format
 msgid "Service pack created '%s'"
 msgstr "S'ha creat el service pack '%s'"
 
 #. TRANSLATORS: we failed to make te file
-#: ../client/pk-generate-pack.c:377
+#: ../client/pk-generate-pack.c:379
 #, c-format
 msgid "Failed to create '%s': %s"
 msgstr "Ha fallat la creació de '%s': %s"
 
 #. TRANSLATORS: this is a program that monitors PackageKit
-#: ../client/pk-monitor.c:146
+#: ../client/pk-monitor.c:146 ../client/pk-monitor-test.c:299
 msgid "PackageKit Monitor"
 msgstr "Monitor de PackageKit"
 
 #: ../client/pk-monitor.c:183
 msgid "Cannot show the list of transactions"
-msgstr ""
+msgstr "No es pot mostrar la llista de transaccions"
 
-#. TRANSLATORS: The package was not found in any software sources
-#: ../client/pk-tools-common.c:118
-#, c-format
-msgid "The package could not be found"
-msgstr "No s'ha pogut trobar el paquet"
+#: ../client/pk-monitor-test.c:204
+msgid "Failed to get transaction list"
+msgstr "S'ha produït un error en obtenir la llista de transaccions"
 
-#. TRANSLATORS: more than one package could be found that matched, to follow is a list of possible packages
-#: ../client/pk-tools-common.c:130
-msgid "More than one package matches:"
-msgstr "S'han trobat més d'un paquet que coincideixen amb:"
+#: ../client/pk-monitor-test.c:235
+msgid "Failed to get daemon state"
+msgstr "S'ha produït un error en obtenir l'estat del dimoni"
 
-#. TRANSLATORS: This finds out which package in the list to use
-#: ../client/pk-tools-common.c:137
-msgid "Please choose the correct package: "
-msgstr "Escolliu el paquet correcte:"
+#. ask the user
+#: ../client/pk-task-text.c:64
+msgid "Do you want to allow installing of unsigned software?"
+msgstr "Voleu permetre la instal·lació de programari no signat?"
+
+#: ../client/pk-task-text.c:68
+msgid "The unsigned software will not be installed."
+msgstr "No s'instal·larà el programari no signat."
+
+#: ../client/pk-task-text.c:100
+msgid "Software source signature required"
+msgstr "Cal la signatura de la font de programari"
+
+#: ../client/pk-task-text.c:102
+msgid "Software source name"
+msgstr "Nom de la font de programari"
+
+#: ../client/pk-task-text.c:103
+msgid "Key URL"
+msgstr "URL de la clau"
+
+#: ../client/pk-task-text.c:104
+msgid "Key user"
+msgstr "Usuari de la clau"
+
+#: ../client/pk-task-text.c:105
+msgid "Key ID"
+msgstr "ID de la clau"
+
+#: ../client/pk-task-text.c:106
+msgid "Key fingerprint"
+msgstr "Empremta de la clau"
+
+#: ../client/pk-task-text.c:107
+msgid "Key Timestamp"
+msgstr "Marca de temps de la clau"
+
+#: ../client/pk-task-text.c:151
+msgid "End user licence agreement required"
+msgstr "Es requeriex l'acord de llicència d'usuari final"
+
+#: ../client/pk-task-text.c:152
+msgid "EULA ID"
+msgstr "ID de l'EULA"
+
+#: ../client/pk-task-text.c:155
+msgid "Agreement"
+msgstr "Acord"
+
+#. ask the user
+#: ../client/pk-task-text.c:161
+msgid "Do you accept this agreement?"
+msgstr "Voleu acceptar aquest acord?"
+
+#: ../client/pk-task-text.c:165
+msgid "The agreement was not accepted."
+msgstr "No s'ha acceptat l'acord."
 
-#: ../client/pk-tools-common.c:162
+#: ../client/pk-task-text.c:194
+msgid "Media change required"
+msgstr "Cal canviar el medi"
+
+#: ../client/pk-task-text.c:195
+msgid "Media type"
+msgstr "Tipus de medi"
+
+#: ../client/pk-task-text.c:196
+msgid "Media ID"
+msgstr "ID del medi"
+
+#: ../client/pk-task-text.c:197
+msgid "Text"
+msgstr "Text"
+
+#. ask the user
+#: ../client/pk-task-text.c:201
+msgid "Please insert the correct media"
+msgstr "Inseriu el medi correcte"
+
+#: ../client/pk-task-text.c:205
+msgid "The correct media was not inserted."
+msgstr "No s'ha inserit el medi correcte."
+
+#: ../client/pk-task-text.c:303
+msgid "The transaction did not proceed."
+msgstr "No s'ha continuat amb la transacció."
+
+#: ../client/pk-text.c:50
 #, c-format
 msgid "Please enter a number from 1 to %i: "
 msgstr "Introduïu un número de l'1 fins al %i:"
 
+#. TRANSLATORS: The package was not found in any software sources
+#: ../client/pk-tools-common.c:119
+#, c-format
+msgid "The package could not be found"
+msgstr "No s'ha pogut trobar el paquet"
+
 #. TRANSLATORS: when we are getting data from the daemon
 #: ../contrib/browser-plugin/pk-plugin-install.c:466
 msgid "Getting package information..."
@@ -906,24 +1104,22 @@ msgstr "S'està instal·lant..."
 #. TRANSLATORS: downloading repo data so we can search
 #: ../contrib/command-not-found/pk-command-not-found.c:349
 msgid "Downloading details about the software sources."
-msgstr ""
+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:353
 msgid "Downloading filelists (this may take some time to complete)."
-msgstr ""
+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:357
-#, fuzzy
 msgid "Waiting for package manager lock."
-msgstr "S'està cercant el nom del paquet."
+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:361
-#, fuzzy
 msgid "Loading list of packages."
-msgstr "S'estàn baixant els paquets"
+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:420
@@ -996,287 +1192,275 @@ msgstr "Seleccioneu el paquet a instal·lar"
 
 #. TRANSLATORS: we are starting to install the packages
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:187
-#, fuzzy
 msgid "Starting install"
-msgstr "Per a instal·lar"
+msgstr "Comença la instal·lació"
 
 #. TRANSLATORS: we couldn't find the package name, non-fatal
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:397
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to find the package %s, or already installed: %s"
-msgstr "El paquet %s ja està instal·lat"
+msgstr "No s'ha trobat el paquet %s, o ja està instal·lat: %s"
 
 #. command line argument, simulate what would be done, but don't actually do it
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:553
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:552
 msgid ""
 "Don't actually install any packages, only simulate what would be installed"
 msgstr ""
+"No instal·lis cap paquet, només simula'n la insta·lació" 
 
 #. command line argument, do we skip packages that depend on the ones specified
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:556
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:555
 msgid "Do not install dependencies of the core packages"
-msgstr ""
+msgstr "No instal·lis les dependències dels paquets principals"
 
 #. command line argument, do we operate quietly
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:559
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:558
 msgid "Do not display information or progress"
-msgstr ""
+msgstr "No mostris informació ni progrès"
 
 #. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:577
-#, fuzzy
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:576
 msgid "PackageKit Debuginfo Installer"
-msgstr "Interfície de consola de PackageKit"
+msgstr "Instal·lador de la informació de depuració del PackageKit"
 
 #. TRANSLATORS: the use needs to specify a list of package names on the command line
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:589
-#, fuzzy, c-format
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:588
+#, c-format
 msgid "ERROR: Specify package names to install."
-msgstr "Us cal especificar un paquet o fitxer per a instal·lar"
+msgstr "Error: Us cal especificar els noms de paquet a instal·lar"
 
 #. TRANSLATORS: we are getting the list of repositories
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:623
-#, fuzzy, c-format
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:622
+#, c-format
 msgid "Getting sources list"
-msgstr "S'està obtenint la llista de paquets"
+msgstr "S'està obtenint la llista de fonts"
 
 #. TRANSLATORS: all completed 100%
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:641
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:681
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:716
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:800
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:844
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:911
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:955
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:640
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:680
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:715
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:799
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:843
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:910
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:954
 #, c-format
 msgid "OK."
-msgstr ""
+msgstr "D'acord."
 
 #. TRANSLATORS: tell the user what we found
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:644
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:643
 #, c-format
 msgid "Found %i enabled and %i disabled sources."
-msgstr ""
+msgstr "S'han trobat %i fonts habilitades i %i deshabilitades."
 
 #. TRANSLATORS: we're finding repositories that match out pattern
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:651
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:650
 #, c-format
 msgid "Finding debugging sources"
-msgstr ""
+msgstr "S'estan cercant les fonts de depuració"
 
 #. TRANSLATORS: tell the user what we found
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:684
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:683
 #, c-format
 msgid "Found %i disabled debuginfo repos."
-msgstr ""
+msgstr "S'han trobat %i repositoris amb informació de depuració."
 
 #. TRANSLATORS: we're now enabling all the debug sources we found
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:691
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:690
 #, c-format
 msgid "Enabling debugging sources"
-msgstr ""
+msgstr "S'han habilitat les fonts de depuració"
 
 #. TRANSLATORS: operation was not successful
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:701
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:785
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:829
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:896
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:940
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:700
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:784
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:828
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:895
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:939
 msgid "FAILED."
-msgstr ""
+msgstr "Ha fallat."
 
 #. TRANSLATORS: tell the user how many we enabled
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:719
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:718
 #, c-format
 msgid "Enabled %i debugging sources."
-msgstr ""
+msgstr "S'han habilitat %i fonts de depuració."
 
 #. TRANSLATORS: we're now finding packages that match in all the repos
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:726
-#, fuzzy, c-format
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:725
+#, c-format
 msgid "Finding debugging packages"
-msgstr "S'està cercant el nom del paquet."
+msgstr "S'està cercant els paquets de depuració"
 
 #. TRANSLATORS: we couldn't find the package name, non-fatal
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:738
-#, fuzzy, c-format
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:737
+#, c-format
 msgid "Failed to find the package %s: %s"
-msgstr "Ha fallat en trobar el paquet '%s': %s"
+msgstr "No s'ha trobat el paquet %s: %s"
 
 #. TRANSLATORS: we couldn't find the debuginfo package name, non-fatal
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:761
-#, fuzzy, c-format
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:760
+#, c-format
 msgid "Failed to find the debuginfo package %s: %s"
-msgstr "Ha fallat en trobar el paquet '%s': %s"
+msgstr "No s'ha trobat el paquet amb informació de depuració %s: %s"
 
 #. TRANSLATORS: no debuginfo packages could be found to be installed
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:789
-#, fuzzy, c-format
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:788
+#, c-format
 msgid "Found no packages to install."
-msgstr "No és necessari instal·lar paquets nous"
+msgstr "No és necessari instal·lar cap paquet."
 
 #. TRANSLATORS: tell the user we found some packages, and then list them
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:803
-#, fuzzy, c-format
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:802
+#, c-format
 msgid "Found %i packages:"
-msgstr "S'estàn baixant els paquets"
+msgstr "S'han trobat %i paquets:"
 
 #. TRANSLATORS: tell the user we are searching for deps
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:819
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:818
 #, c-format
 msgid "Finding packages that depend on these packages"
-msgstr ""
+msgstr "S'estan cercant paquets que en depenguin"
 
 #. TRANSLATORS: could not install, detailed error follows
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:832
-#, fuzzy, c-format
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:831
+#, c-format
 msgid "Could not find dependant packages: %s"
-msgstr "No s'han trobat coincidències en cap paquet"
+msgstr "No s'han trobat paquets depenents: %s"
 
 #. TRANSLATORS: tell the user we found some more packages
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:848
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:847
 #, c-format
 msgid "Found %i extra packages."
-msgstr ""
+msgstr "S'han trobat %i paquets addicionals."
 
 #. TRANSLATORS: tell the user we found some more packages
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:852
-#, fuzzy, c-format
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:851
+#, c-format
 msgid "No extra packages required."
-msgstr "Es requreix un nom del paquet"
+msgstr "No calen paquets addicionals."
 
 #. TRANSLATORS: tell the user we found some packages (and deps), and then list them
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:861
-#, fuzzy, c-format
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:860
+#, c-format
 msgid "Found %i packages to install:"
-msgstr "No és necessari instal·lar paquets nous"
+msgstr "Cal instal·lar %i paquets nous:"
 
 #. TRANSLATORS: simulate mode is a testing mode where we quit before the action
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:874
-#, fuzzy, c-format
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:873
+#, c-format
 msgid "Not installing packages in simulate mode"
-msgstr "S'estan instal·lant els paquets"
+msgstr "No s'instal·laran paquets en el mode simulat"
 
 #. TRANSLATORS: could not install, detailed error follows
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:899
-#, fuzzy, c-format
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:898
+#, c-format
 msgid "Could not install packages: %s"
 msgstr "No s'ha pogut instal·lar els paquets: %s"
 
 #. TRANSLATORS: we are now disabling all debuginfo repos we previously enabled
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:931
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:930
 #, c-format
 msgid "Disabling sources previously enabled"
-msgstr ""
+msgstr "S'estan deshabilitant les fonts habilitades anteriorment"
 
 #. TRANSLATORS: no debuginfo packages could be found to be installed, detailed error follows
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:943
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:942
 #, c-format
 msgid "Could not disable the debugging sources: %s"
-msgstr ""
+msgstr "No es poden deshabilitar les fonts per a depuració: %s"
 
 #. TRANSLATORS: we disabled all the debugging repos that we enabled before
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:958
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:957
 #, c-format
 msgid "Disabled %i debugging sources."
-msgstr ""
+msgstr "S'han deshabilitat %i fonts de depuració."
 
 #. TRANSLATORS: couldn't open device to write
 #: ../contrib/device-rebind/pk-device-rebind.c:61
-#, fuzzy
 msgid "Failed to open file"
-msgstr "S'ha produït un error en cercar el fitxer"
+msgstr "No s'ha pogut obrir el fitxer"
 
 #. TRANSLATORS: could not write to the device
 #: ../contrib/device-rebind/pk-device-rebind.c:70
-#, fuzzy
 msgid "Failed to write to the file"
-msgstr "S'ha produït un error en cercar el fitxer"
+msgstr "No s'ha pogut escriure al fitxer"
 
 #. TRANSLATORS: we failed to release the current driver
 #: ../contrib/device-rebind/pk-device-rebind.c:110
 #: ../contrib/device-rebind/pk-device-rebind.c:147
-#, fuzzy
 msgid "Failed to write to device"
-msgstr "S'ha produït un error en desar al disc"
+msgstr "No s'ha pogut escriure al dispositiu"
 
 #. TRANSLATORS: the device could not be found in sysfs
 #: ../contrib/device-rebind/pk-device-rebind.c:175
-#, fuzzy
 msgid "Device could not be found"
-msgstr "No s'ha pogut trobar el paquet"
+msgstr "No s'ha trobat el dispositiu"
 
 #. TRANSLATORS: we failed to release the current driver
 #: ../contrib/device-rebind/pk-device-rebind.c:202
-#, fuzzy
 msgid "Failed to unregister driver"
-msgstr "Ha fallat la creació del directori:"
+msgstr "No s'ha pogut desregistrar el controlador"
 
 #. TRANSLATORS: we failed to bind the old driver
 #: ../contrib/device-rebind/pk-device-rebind.c:211
-#, fuzzy
 msgid "Failed to register driver"
-msgstr "Ha fallat la creació del directori:"
+msgstr "No s'ha pogut registrar el controlador"
 
 #. TRANSLATORS: user did not specify a device sysfs path that exists
 #: ../contrib/device-rebind/pk-device-rebind.c:260
-#, fuzzy
 msgid "Device path not found"
-msgstr "No s'ha trobar el directori"
+msgstr "No s'ha trobat el camí al directori"
 
 #. TRANSLATORS: user did not specify a valid device sysfs path
 #: ../contrib/device-rebind/pk-device-rebind.c:268
 msgid "Incorrect device path specified"
-msgstr ""
+msgstr "El camí al dispositiu especificat és incorrecte"
 
 #. command line argument, simulate what would be done, but don't actually do it
 #: ../contrib/device-rebind/pk-device-rebind.c:296
 msgid "Don't actually touch the hardware, only simulate what would be done"
-msgstr ""
+msgstr "No modifiquis el maquinari, només simula el que succeiria"
 
 #. TRANSLATORS: command line option: a list of files to install
 #: ../contrib/device-rebind/pk-device-rebind.c:299
 msgid "Device paths"
-msgstr ""
+msgstr "Camins a dispositius"
 
 #. TRANSLATORS: tool that gets called when the device needs reloading after installing firmware
 #: ../contrib/device-rebind/pk-device-rebind.c:314
-#, fuzzy
 msgid "PackageKit Device Reloader"
-msgstr "Service Pack de PackageKit"
+msgstr "Recarregador de dispositius del PackageKit"
 
 #. TRANSLATORS: user did not specify a valid device sysfs path
 #: ../contrib/device-rebind/pk-device-rebind.c:322
-#, fuzzy
 msgid "You need to specify at least one valid device path"
-msgstr "Us cal especificar una llista de fitxers a crear"
+msgstr "Heu d'especificar almenys un camí de dispositiu vàlid"
 
 #. TRANSLATORS: user did not specify a valid device sysfs path
 #: ../contrib/device-rebind/pk-device-rebind.c:332
 msgid "This script can only be used by the root user"
-msgstr ""
+msgstr "Aquest script només el pot emprar l'usuari root"
 
 #. TRANSLATORS: we're going to verify the path first
 #: ../contrib/device-rebind/pk-device-rebind.c:341
 msgid "Verifying device path"
-msgstr ""
+msgstr "S'està verificant el camí al dispositiu"
 
 #. TRANSLATORS: user did not specify a device sysfs path that exists
 #: ../contrib/device-rebind/pk-device-rebind.c:346
-#, fuzzy
 msgid "Failed to verify device path"
-msgstr "S'ha produït un error en cercar el fitxer"
+msgstr "S'ha produït un error en verificar el camí al dispositiu"
 
 #. TRANSLATORS: we're going to try
 #: ../contrib/device-rebind/pk-device-rebind.c:360
 msgid "Attempting to rebind device"
-msgstr ""
+msgstr "S'està intentant vincular de nou el dispositiu"
 
 #. TRANSLATORS: we failed to release the current driver
 #: ../contrib/device-rebind/pk-device-rebind.c:365
-#, fuzzy
 msgid "Failed to rebind device"
-msgstr "Ha fallat la creació del directori:"
+msgstr "No s'ha pogut vincular de nou el dispositiu"
 
 #: ../data/packagekit-catalog.xml.in.h:1
 msgid "PackageKit Catalog"
@@ -1334,9 +1518,8 @@ msgid "Authentication is required to refresh the system sources"
 msgstr "Cal autenticació per a actualitzar les fonts del sistema"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:15
-#, fuzzy
 msgid "Authentication is required to reload the device with a new driver"
-msgstr "Cal autenticació per a actualitzar les fonts del sistema"
+msgstr "Cal autenticació per a recarregar el dispositiu amb un nou controlador"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:16
 msgid "Authentication is required to remove packages"
@@ -1412,7 +1595,7 @@ msgstr "Actualitza les fonts del sistema"
 #.
 #: ../policy/org.freedesktop.packagekit.policy.in.h:58
 msgid "Reload a device"
-msgstr ""
+msgstr "Recarrega un dispositiu"
 
 #. SECURITY:
 #. - Normal users require admin authentication to remove packages as
@@ -1536,46 +1719,45 @@ msgid "Error trying to start:"
 msgstr "Ha fallat en intentar executar:"
 
 #: ../src/pk-polkit-action-lookup.c:147
-#, fuzzy
 msgid "To install debugging packages, extra sources need to be enabled"
-msgstr "No és necessari instal·lar paquets nous"
+msgstr "Per instal·lar paquets de depuració, cal habilitar fonts addicionals"
 
 #. TRANSLATORS: is not GPG signed
 #: ../src/pk-polkit-action-lookup.c:168 ../src/pk-polkit-action-lookup.c:187
 msgid "The software is not from a trusted source."
-msgstr ""
+msgstr "El programari no prové d'una font de confiança."
 
 #: ../src/pk-polkit-action-lookup.c:173
 msgid "Do not update this package unless you are sure it is safe to do so."
-msgstr ""
+msgstr "Actualitzeu aquest paquet només si esteu segurs que cal fer-ho."
 
 #: ../src/pk-polkit-action-lookup.c:174
 msgid "Do not update these packages unless you are sure it is safe to do so."
-msgstr ""
+msgstr "Actualitzeu aquests paquets només si esteu segurs que cal fer-ho."
 
 #: ../src/pk-polkit-action-lookup.c:192
 msgid "Do not install this package unless you are sure it is safe to do so."
-msgstr ""
+msgstr "Instal·leu aquest paquet només si esteu segurs que cal fer-ho."
 
 #: ../src/pk-polkit-action-lookup.c:193
 msgid "Do not install these packages unless you are sure it is safe to do so."
-msgstr ""
+msgstr "Instal·leu aquests paquets només si esteu segurs que cal fer-ho."
 
 #. TRANSLATORS: warn the user that all bets are off
 #: ../src/pk-polkit-action-lookup.c:199
 msgid "Malicious software can damage your computer or cause other harm."
-msgstr ""
+msgstr "El programari maliciós pot fer malbé el vostre ordinador o causar "
+"altres greuges."
 
 #. TRANSLATORS: too many packages to list each one
 #: ../src/pk-polkit-action-lookup.c:274
-#, fuzzy
 msgid "Many packages"
-msgstr "Actualitza paquets"
+msgstr "Massa paquets"
 
 #. TRANSLATORS: if the transaction is forced to install only trusted packages
 #: ../src/pk-polkit-action-lookup.c:334
 msgid "Only trusted"
-msgstr ""
+msgstr "Només els de confiança"
 
 #~ msgid "The action, one of 'create', 'add', or 'remove'"
 #~ msgstr "L'acció, una de 'crea', 'afegeix' o 'elimina'"
commit a0bc26d36d5daa9a7b4d3b60078094d51daf3bc9
Author: beckerde <beckerde at fedoraproject.org>
Date:   Sun Sep 6 17:10:01 2009 +0000

    Sending translation for Spanish

diff --git a/po/es.po b/po/es.po
index 203586f..fd7696b 100644
--- a/po/es.po
+++ b/po/es.po
@@ -9,9 +9,9 @@ msgid ""
 msgstr ""
 "Project-Id-Version: packagekit\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-09-04 08:25+0000\n"
-"PO-Revision-Date: 2009-09-04 10:25-0300\n"
-"Last-Translator: Héctor Daniel Cabrera <h.daniel.cabrera at gmail.com>\n"
+"POT-Creation-Date: 2009-09-06 16:39+0000\n"
+"PO-Revision-Date: 2009-09-06 14:01-0300\n"
+"Last-Translator: Domingo Becker <domingobecker at gmail.com>\n"
 "Language-Team: Fedora Spanish <fedora-trans-es at redhat.com>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -21,126 +21,126 @@ msgstr ""
 
 #. TRANSLATORS: this is an atomic transaction
 #: ../client/pk-console.c:238
-#: ../client/pk-console-test.c:146
+#: ../client/pk-console-test.c:147
 msgid "Transaction"
 msgstr "Transacción"
 
 #. TRANSLATORS: this is the time the transaction was started in system timezone
 #: ../client/pk-console.c:240
-#: ../client/pk-console-test.c:148
+#: ../client/pk-console-test.c:149
 msgid "System time"
 msgstr "Hora del sistema"
 
 #. TRANSLATORS: this is if the transaction succeeded or not
 #: ../client/pk-console.c:242
-#: ../client/pk-console-test.c:150
+#: ../client/pk-console-test.c:151
 msgid "Succeeded"
 msgstr "Existosa"
 
 #: ../client/pk-console.c:242
-#: ../client/pk-console-test.c:150
+#: ../client/pk-console-test.c:151
 msgid "True"
 msgstr "Verdadero"
 
 #: ../client/pk-console.c:242
-#: ../client/pk-console-test.c:150
+#: ../client/pk-console-test.c:151
 msgid "False"
 msgstr "Falso"
 
 #. TRANSLATORS: this is the transactions role, e.g. "update-system"
 #. TRANSLATORS: the trasaction role, e.g. update-system
 #: ../client/pk-console.c:244
-#: ../client/pk-console-test.c:152
+#: ../client/pk-console-test.c:153
 #: ../src/pk-polkit-action-lookup.c:327
 msgid "Role"
 msgstr "Rol"
 
 #. TRANSLATORS: this is The duration of the transaction
 #: ../client/pk-console.c:249
-#: ../client/pk-console-test.c:157
+#: ../client/pk-console-test.c:158
 msgid "Duration"
 msgstr "Duración"
 
 #: ../client/pk-console.c:249
-#: ../client/pk-console-test.c:157
+#: ../client/pk-console-test.c:158
 msgid "(seconds)"
 msgstr "(segundos)"
 
 #. TRANSLATORS: this is The command line used to do the action
 #. TRANSLATORS: the command line of the thing that wants the authentication
 #: ../client/pk-console.c:253
-#: ../client/pk-console-test.c:161
+#: ../client/pk-console-test.c:162
 #: ../src/pk-polkit-action-lookup.c:341
 msgid "Command line"
 msgstr "Línea de comandos"
 
 #. TRANSLATORS: this is the user ID of the user that started the action
 #: ../client/pk-console.c:255
-#: ../client/pk-console-test.c:163
+#: ../client/pk-console-test.c:164
 msgid "User ID"
 msgstr "ID del usuario"
 
 #. TRANSLATORS: this is the username, e.g. hughsie
 #: ../client/pk-console.c:262
-#: ../client/pk-console-test.c:170
+#: ../client/pk-console-test.c:171
 msgid "Username"
 msgstr "Nombre de usuario"
 
 #. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
 #: ../client/pk-console.c:266
-#: ../client/pk-console-test.c:174
+#: ../client/pk-console-test.c:175
 msgid "Real name"
 msgstr "Nombre real"
 
 #: ../client/pk-console.c:274
-#: ../client/pk-console-test.c:182
+#: ../client/pk-console-test.c:183
 msgid "Affected packages:"
 msgstr "Paquete afectados:"
 
 #: ../client/pk-console.c:276
-#: ../client/pk-console-test.c:184
+#: ../client/pk-console-test.c:185
 msgid "Affected packages: None"
 msgstr "Paquetes afectados: Ninguno"
 
 #. TRANSLATORS: When processing, we might have to remove other dependencies
 #: ../client/pk-console.c:337
-#: ../client/pk-task-text.c:208
+#: ../client/pk-task-text.c:220
 msgid "The following packages have to be removed:"
 msgstr "Se eliminarán los siguientes paquetes:"
 
 #. TRANSLATORS: When processing, we might have to install other dependencies
 #: ../client/pk-console.c:340
-#: ../client/pk-task-text.c:213
+#: ../client/pk-task-text.c:225
 msgid "The following packages have to be installed:"
 msgstr "Los siguientes paquetes se deben instalar:"
 
 #. TRANSLATORS: When processing, we might have to update other dependencies
 #: ../client/pk-console.c:343
-#: ../client/pk-task-text.c:218
+#: ../client/pk-task-text.c:230
 msgid "The following packages have to be updated:"
 msgstr "Los siguientes paquetes se deben actualizar:"
 
 #. TRANSLATORS: When processing, we might have to reinstall other dependencies
 #: ../client/pk-console.c:346
-#: ../client/pk-task-text.c:223
+#: ../client/pk-task-text.c:235
 msgid "The following packages have to be reinstalled:"
 msgstr "Los siguientes paquetes se deben reinstalar:"
 
 #. TRANSLATORS: When processing, we might have to downgrade other dependencies
 #: ../client/pk-console.c:349
-#: ../client/pk-task-text.c:228
+#: ../client/pk-task-text.c:240
 msgid "The following packages have to be downgraded:"
 msgstr "Los siguientes paquetes se deben desactualizar:"
 
 #. TRANSLATORS: this is the distro, e.g. Fedora 10
 #: ../client/pk-console.c:363
-#: ../client/pk-console-test.c:204
+#: ../client/pk-console-test.c:205
 msgid "Distribution"
 msgstr "Distribución"
 
 #. TRANSLATORS: this is type of update, stable or testing
 #: ../client/pk-console.c:365
-#: ../client/pk-console-test.c:206
+#: ../client/pk-console-test.c:207
 msgid "Type"
 msgstr "Tipo"
 
@@ -150,53 +150,53 @@ msgstr "Tipo"
 #. TRANSLATORS: this is the summary of the group
 #: ../client/pk-console.c:367
 #: ../client/pk-console.c:390
-#: ../client/pk-console-test.c:208
-#: ../client/pk-console-test.c:229
+#: ../client/pk-console-test.c:209
+#: ../client/pk-console-test.c:230
 msgid "Summary"
 msgstr "Resúmen"
 
 #. TRANSLATORS: this is the group category name
 #: ../client/pk-console.c:379
-#: ../client/pk-console-test.c:218
+#: ../client/pk-console-test.c:219
 msgid "Category"
 msgstr "Categoría"
 
 #. TRANSLATORS: this is group identifier
 #: ../client/pk-console.c:381
-#: ../client/pk-console-test.c:220
+#: ../client/pk-console-test.c:221
 msgid "ID"
 msgstr "ID"
 
 #. TRANSLATORS: this is the parent group
 #: ../client/pk-console.c:384
-#: ../client/pk-console-test.c:223
+#: ../client/pk-console-test.c:224
 msgid "Parent"
 msgstr "Padre"
 
 #. TRANSLATORS: this is the name of the parent group
 #: ../client/pk-console.c:387
-#: ../client/pk-console-test.c:226
+#: ../client/pk-console-test.c:227
 msgid "Name"
 msgstr "Nombre"
 
 #. TRANSLATORS: this is preferred icon for the group
 #: ../client/pk-console.c:393
-#: ../client/pk-console-test.c:232
+#: ../client/pk-console-test.c:233
 msgid "Icon"
 msgstr "Icono"
 
 #. TRANSLATORS: this is a header for the package that can be updated
 #: ../client/pk-console.c:408
-#: ../client/pk-console-test.c:246
+#: ../client/pk-console-test.c:247
 msgid "Details about the update:"
 msgstr "Detalles acerca de la actualización:"
 
 #. TRANSLATORS: details about the update, package name and version
 #. TRANSLATORS: title, the names of the packages that the method is processing
 #: ../client/pk-console.c:410
-#: ../client/pk-console-test.c:252
-#: ../client/pk-task-text.c:95
-#: ../client/pk-task-text.c:144
+#: ../client/pk-console-test.c:253
+#: ../client/pk-task-text.c:101
+#: ../client/pk-task-text.c:153
 #: ../src/pk-polkit-action-lookup.c:352
 msgid "Package"
 msgid_plural "Packages"
@@ -205,80 +205,80 @@ msgstr[1] "Paquetes"
 
 #. TRANSLATORS: details about the update, any packages that this update updates
 #: ../client/pk-console.c:413
-#: ../client/pk-console-test.c:255
+#: ../client/pk-console-test.c:256
 msgid "Updates"
 msgstr "Actualizaciones"
 
 #. TRANSLATORS: details about the update, any packages that this update obsoletes
 #: ../client/pk-console.c:417
-#: ../client/pk-console-test.c:259
+#: ../client/pk-console-test.c:260
 msgid "Obsoletes"
 msgstr "Sustituye"
 
 #. TRANSLATORS: details about the update, the vendor URLs
 #: ../client/pk-console.c:421
-#: ../client/pk-console-test.c:263
-#: ../client/pk-task-text.c:145
+#: ../client/pk-console-test.c:264
+#: ../client/pk-task-text.c:154
 msgid "Vendor"
 msgstr "Fabricante"
 
 #. TRANSLATORS: details about the update, the bugzilla URLs
 #: ../client/pk-console.c:425
-#: ../client/pk-console-test.c:267
+#: ../client/pk-console-test.c:268
 msgid "Bugzilla"
 msgstr "Bugzilla"
 
 #. TRANSLATORS: details about the update, the CVE URLs
 #: ../client/pk-console.c:429
-#: ../client/pk-console-test.c:271
+#: ../client/pk-console-test.c:272
 msgid "CVE"
 msgstr "CVE"
 
 #. TRANSLATORS: details about the update, if the package requires a restart
 #: ../client/pk-console.c:433
-#: ../client/pk-console-test.c:275
+#: ../client/pk-console-test.c:276
 msgid "Restart"
 msgstr "Reiniciar"
 
 #. TRANSLATORS: details about the update, any description of the update
 #: ../client/pk-console.c:437
-#: ../client/pk-console-test.c:279
+#: ../client/pk-console-test.c:280
 msgid "Update text"
 msgstr "Texto de actualización"
 
 #. TRANSLATORS: details about the update, the changelog for the package
 #: ../client/pk-console.c:441
-#: ../client/pk-console-test.c:283
+#: ../client/pk-console-test.c:284
 msgid "Changes"
 msgstr "Cambios"
 
 #. TRANSLATORS: details about the update, the ongoing state of the update
 #: ../client/pk-console.c:445
-#: ../client/pk-console-test.c:287
+#: ../client/pk-console-test.c:288
 msgid "State"
 msgstr "Estado"
 
 #. TRANSLATORS: details about the update, date the update was issued
 #: ../client/pk-console.c:450
-#: ../client/pk-console-test.c:292
+#: ../client/pk-console-test.c:293
 msgid "Issued"
 msgstr "Emitido"
 
 #. TRANSLATORS: details about the update, date the update was updated
 #: ../client/pk-console.c:455
-#: ../client/pk-console-test.c:297
+#: ../client/pk-console-test.c:298
 msgid "Updated"
 msgstr "Actualizado"
 
 #. TRANSLATORS: if the repo is enabled
 #: ../client/pk-console.c:475
-#: ../client/pk-console-test.c:315
+#: ../client/pk-console-test.c:316
 msgid "Enabled"
 msgstr "Habilitado"
 
 #. TRANSLATORS: if the repo is disabled
 #: ../client/pk-console.c:478
-#: ../client/pk-console-test.c:318
+#: ../client/pk-console-test.c:319
 msgid "Disabled"
 msgstr "Deshabilitado"
 
@@ -293,74 +293,71 @@ msgstr "Desconocido"
 
 #. TRANSLATORS: a package requires the system to be restarted
 #: ../client/pk-console.c:599
-#: ../client/pk-console-test.c:340
+#: ../client/pk-console-test.c:341
 msgid "System restart required by:"
 msgstr "Se necesita reiniciar el sistema debido a:"
 
 #. TRANSLATORS: a package requires the session to be restarted
 #: ../client/pk-console.c:602
-#: ../client/pk-console-test.c:343
+#: ../client/pk-console-test.c:344
 msgid "Session restart required:"
 msgstr "Se necesita reiniciar la sesión:"
 
 #. TRANSLATORS: a package requires the system to be restarted due to a security update
 #: ../client/pk-console.c:605
-#: ../client/pk-console-test.c:346
+#: ../client/pk-console-test.c:347
 msgid "System restart (security) required by:"
 msgstr "Reinicio del sistema (seguridad) solicitado por:"
 
 #. TRANSLATORS: a package requires the session to be restarted due to a security update
 #: ../client/pk-console.c:608
-#: ../client/pk-console-test.c:349
+#: ../client/pk-console-test.c:350
 msgid "Session restart (security) required:"
 msgstr "Reinicio de la sesión (seguridad) solicitado por:"
 
 #. TRANSLATORS: a package requires the application to be restarted
 #: ../client/pk-console.c:611
-#: ../client/pk-console-test.c:352
+#: ../client/pk-console-test.c:353
 msgid "Application restart required by:"
 msgstr "Se necesita reiniciar una aplicación debido a:"
 
 #. TRANSLATORS: a package needs to restart their system
 #: ../client/pk-console.c:666
-#: ../client/pk-console-test.c:434
+#: ../client/pk-console-test.c:704
 msgid "Please restart the computer to complete the update."
 msgstr "Reinicie el equipo para completar la actualización."
 
 #. TRANSLATORS: a package needs to restart the session
 #: ../client/pk-console.c:669
-#: ../client/pk-console-test.c:437
+#: ../client/pk-console-test.c:707
 msgid "Please logout and login to complete the update."
 msgstr "Cierre la sesión y vuelva a entrar para completar la actualización."
 
 #. TRANSLATORS: a package needs to restart the application
 #: ../client/pk-console.c:672
-#: ../client/pk-console-test.c:440
 msgid "Please restart the application as it is being used."
 msgstr "Reinicie la aplicación que está usando."
 
 #. TRANSLATORS: a package needs to restart their system (due to security)
 #: ../client/pk-console.c:675
-#: ../client/pk-console-test.c:443
+#: ../client/pk-console-test.c:710
 msgid "Please restart the computer to complete the update as important security updates have been installed."
 msgstr "Por favor, reinicie el equipo para completar la actualización, ya que se han instalado actualizaciones de seguridad importantes."
 
 #. TRANSLATORS: a package needs to restart the session (due to security)
 #: ../client/pk-console.c:678
-#: ../client/pk-console-test.c:446
+#: ../client/pk-console-test.c:713
 msgid "Please logout and login to complete the update as important security updates have been installed."
 msgstr "Por favor, cierre la sesión y vuelva a registrarse para completar la actualización, ya que se han instalado actualizaciones de seguridad importantes."
 
 #. TRANSLATORS: The package is already installed on the system
 #: ../client/pk-console.c:810
-#: ../client/pk-console-test.c:541
 #, c-format
 msgid "The package %s is already installed"
 msgstr "El paquete %s ya está instalado"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
 #: ../client/pk-console.c:818
-#: ../client/pk-console-test.c:549
 #, c-format
 msgid "The package %s could not be installed: %s"
 msgstr "No se pudo instalar el paquete %s: %s"
@@ -385,7 +382,7 @@ msgstr "Error interno: %s"
 #: ../client/pk-console.c:876
 #: ../client/pk-console.c:948
 #: ../client/pk-console.c:1266
-#: ../client/pk-task-text.c:284
+#: ../client/pk-task-text.c:299
 msgid "Proceed with changes?"
 msgstr "¿Proceder con los cambios?"
 
@@ -398,21 +395,18 @@ msgstr "¡Se canceló la instalación del paquete!"
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
 #: ../client/pk-console.c:900
 #: ../client/pk-console.c:1634
-#: ../client/pk-console-test.c:572
 #, c-format
 msgid "This tool could not install the packages: %s"
 msgstr "Esta herramienta no pudo instalar los paquetes: %s"
 
 #. TRANSLATORS: There was an error installing the files. The detailed error follows
 #: ../client/pk-console.c:972
-#: ../client/pk-console-test.c:586
 #, c-format
 msgid "This tool could not install the files: %s"
 msgstr "Esta herramienta no pudo instalar los archivos: %s"
 
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
 #: ../client/pk-console.c:1028
-#: ../client/pk-console-test.c:636
 #, c-format
 msgid "This tool could not remove %s: %s"
 msgstr "Esta herramienta no pudo eliminar %s: %s"
@@ -421,7 +415,6 @@ msgstr "Esta herramienta no pudo eliminar %s: %s"
 #: ../client/pk-console.c:1051
 #: ../client/pk-console.c:1089
 #: ../client/pk-console.c:1118
-#: ../client/pk-console-test.c:657
 #, c-format
 msgid "This tool could not remove the packages: %s"
 msgstr "Esta herramienta no pudo eliminar los paquetes: %s"
@@ -438,14 +431,12 @@ msgstr "Se canceló la eliminación de paquetes"
 
 #. TRANSLATORS: The package name was not found in any software sources
 #: ../client/pk-console.c:1150
-#: ../client/pk-console-test.c:689
 #, c-format
 msgid "This tool could not download the package %s as it could not be found"
 msgstr "Esta herramienta no pudo descargar el paquete %s debido a que no se encontró"
 
 #. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
 #: ../client/pk-console.c:1181
-#: ../client/pk-console-test.c:711
 #, c-format
 msgid "This tool could not download the packages: %s"
 msgstr "Esta herramienta no pudo descargar los paquetes: %s"
@@ -454,8 +445,6 @@ msgstr "Esta herramienta no pudo descargar los paquetes: %s"
 #: ../client/pk-console.c:1213
 #: ../client/pk-console.c:1225
 #: ../client/pk-console.c:1280
-#: ../client/pk-console-test.c:743
-#: ../client/pk-console-test.c:753
 #, c-format
 msgid "This tool could not update %s: %s"
 msgstr "Esta herramienta no pudo actualizar %s: %s"
@@ -468,8 +457,6 @@ msgstr "¡Se canceló la actualización del paquete!"
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
 #: ../client/pk-console.c:1304
 #: ../client/pk-console.c:1312
-#: ../client/pk-console-test.c:779
-#: ../client/pk-console-test.c:787
 #, c-format
 msgid "This tool could not get the requirements for %s: %s"
 msgstr "Esta herramienta no pudo obtener los requerimientos de %s: %s"
@@ -477,8 +464,6 @@ msgstr "Esta herramienta no pudo obtener los requerimientos de %s: %s"
 #. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
 #: ../client/pk-console.c:1334
 #: ../client/pk-console.c:1342
-#: ../client/pk-console-test.c:809
-#: ../client/pk-console-test.c:817
 #, c-format
 msgid "This tool could not get the dependencies for %s: %s"
 msgstr "Esta herramienta no pudo obtener las dependencias de %s: %s"
@@ -486,22 +471,18 @@ msgstr "Esta herramienta no pudo obtener las dependencias de %s: %s"
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
 #: ../client/pk-console.c:1364
 #: ../client/pk-console.c:1372
-#: ../client/pk-console-test.c:839
-#: ../client/pk-console-test.c:847
 #, c-format
 msgid "This tool could not get package details for %s: %s"
 msgstr "Esta herramienta no pudo obtener los detalles del paquete %s: %s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
 #: ../client/pk-console.c:1394
-#: ../client/pk-console-test.c:869
 #, c-format
 msgid "This tool could not find the files for %s: %s"
 msgstr "Esta herramienta no pudo encontrar los archivos de %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
 #: ../client/pk-console.c:1402
-#: ../client/pk-console-test.c:877
 #, c-format
 msgid "This tool could not get the file list for %s: %s"
 msgstr "Esta herramienta no pudo obtener la lista de archivos de %s: %s"
@@ -587,14 +568,12 @@ msgstr "Instalando paquetes"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
 #: ../client/pk-console.c:1663
-#: ../client/pk-console-test.c:899
 #, c-format
 msgid "This tool could not find the update details for %s: %s"
 msgstr "Esta herramienta no pudo encontrar los detalles de actualización de %s: %s"
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
 #: ../client/pk-console.c:1671
-#: ../client/pk-console-test.c:907
 #, c-format
 msgid "This tool could not get the update details for %s: %s"
 msgstr "Esta herramienta no pudo obtener los detalles de actualización de %s: %s"
@@ -606,25 +585,25 @@ msgstr "Error:"
 
 #. TRANSLATORS: This a list of details about the package
 #: ../client/pk-console.c:1716
-#: ../client/pk-console-test.c:369
+#: ../client/pk-console-test.c:370
 msgid "Package description"
 msgstr "Descripción del paquete"
 
 #. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
 #: ../client/pk-console.c:1732
-#: ../client/pk-console-test.c:387
+#: ../client/pk-console-test.c:388
 msgid "Message:"
 msgstr "Mensaje:"
 
 #. TRANSLATORS: This a list files contained in the package
 #: ../client/pk-console.c:1760
-#: ../client/pk-console-test.c:415
+#: ../client/pk-console-test.c:407
 msgid "Package files"
 msgstr "Archivos del paquete"
 
 #. TRANSLATORS: This where the package has no files
 #: ../client/pk-console.c:1768
-#: ../client/pk-console-test.c:410
+#: ../client/pk-console-test.c:402
 msgid "No files"
 msgstr "No hay archivos"
 
@@ -636,13 +615,13 @@ msgstr "Se requiere la firma del repositorio"
 #. TRANSLATORS: This a prompt asking the user to import the security key
 #. ask the user
 #: ../client/pk-console.c:1801
-#: ../client/pk-task-text.c:107
+#: ../client/pk-task-text.c:113
 msgid "Do you accept this signature?"
 msgstr "¿Acepta esta firma?"
 
 #. TRANSLATORS: This is where the user declined the security key
 #: ../client/pk-console.c:1805
-#: ../client/pk-task-text.c:111
+#: ../client/pk-task-text.c:117
 msgid "The signature was not accepted."
 msgstr "No se aceptó la firma."
 
@@ -663,28 +642,29 @@ msgstr "Se rechazó la licencia."
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
 #: ../client/pk-console.c:1879
-#: ../client/pk-console-test.c:925
+#: ../client/pk-console-test.c:972
 msgid "The daemon crashed mid-transaction!"
 msgstr "El demonio se colgó en medio de una transacción."
 
 #. TRANSLATORS: This is the header to the --help menu
 #: ../client/pk-console.c:1932
-#: ../client/pk-console-test.c:969
+#: ../client/pk-console-test.c:1006
 msgid "PackageKit Console Interface"
 msgstr "Interfaz de consola de PackageKit"
 
 #. these are commands we can use with pkcon
 #: ../client/pk-console.c:1934
-#: ../client/pk-console-test.c:971
+#: ../client/pk-console-test.c:1008
 msgid "Subcommands:"
 msgstr "Subcomandos:"
 
 #. TRANSLATORS: command line argument, if we should show debugging information
 #. TRANSLATORS: if we should show debugging data
 #: ../client/pk-console.c:2027
-#: ../client/pk-console-test.c:1202
+#: ../client/pk-console-test.c:1099
 #: ../client/pk-generate-pack.c:187
 #: ../client/pk-monitor.c:128
+#: ../client/pk-monitor-test.c:282
 #: ../contrib/command-not-found/pk-command-not-found.c:616
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:549
 #: ../contrib/device-rebind/pk-device-rebind.c:293
@@ -694,20 +674,21 @@ msgstr "Mostrar información extra de depuración"
 
 #. TRANSLATORS: command line argument, just show the version string
 #: ../client/pk-console.c:2030
-#: ../client/pk-console-test.c:1205
+#: ../client/pk-console-test.c:1102
 #: ../client/pk-monitor.c:130
+#: ../client/pk-monitor-test.c:284
 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:2033
-#: ../client/pk-console-test.c:1208
+#: ../client/pk-console-test.c:1105
 msgid "Set the filter, e.g. installed"
 msgstr "Establecer el filtro, ej. instalado"
 
 #. TRANSLATORS: command line argument, work asynchronously
 #: ../client/pk-console.c:2036
-#: ../client/pk-console-test.c:1211
+#: ../client/pk-console-test.c:1108
 msgid "Exit without waiting for actions to complete"
 msgstr "Salir sin esperar que las acciones se completen"
 
@@ -718,13 +699,13 @@ msgstr "Esta herramienta no se pudo conectar al DBUS del sistema."
 
 #. TRANSLATORS: The user specified an incorrect filter
 #: ../client/pk-console.c:2153
-#: ../client/pk-console-test.c:1279
+#: ../client/pk-console-test.c:1183
 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:2172
-#: ../client/pk-console-test.c:1298
+#: ../client/pk-console-test.c:1202
 msgid "A search type is required, e.g. name"
 msgstr "Se necesita un tipo de búsqueda, por ejemplo, nombre"
 
@@ -733,96 +714,95 @@ msgstr "Se necesita un tipo de búsqueda, por ejemplo, nombre"
 #: ../client/pk-console.c:2188
 #: ../client/pk-console.c:2197
 #: ../client/pk-console.c:2206
-#: ../client/pk-console-test.c:1305
-#: ../client/pk-console-test.c:1317
-#: ../client/pk-console-test.c:1329
-#: ../client/pk-console-test.c:1341
+#: ../client/pk-console-test.c:1209
+#: ../client/pk-console-test.c:1221
+#: ../client/pk-console-test.c:1233
+#: ../client/pk-console-test.c:1245
 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:2213
-#: ../client/pk-console-test.c:1351
+#: ../client/pk-console-test.c:1255
 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:2219
-#: ../client/pk-console-test.c:1358
 msgid "A package name or filename to install is required"
 msgstr "Se requiere un nombre de paquete o nombre de archivo para instalar"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
 #: ../client/pk-console.c:2228
-#: ../client/pk-console-test.c:1368
+#: ../client/pk-console-test.c:1282
 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:2237
-#: ../client/pk-console-test.c:1379
+#: ../client/pk-console-test.c:1293
 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:2245
-#: ../client/pk-console-test.c:1387
+#: ../client/pk-console-test.c:1302
 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:2252
-#: ../client/pk-console-test.c:1394
+#: ../client/pk-console-test.c:1309
 msgid "Directory not found"
 msgstr "Directorio no encontrado"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
 #: ../client/pk-console.c:2260
-#: ../client/pk-console-test.c:1403
+#: ../client/pk-console-test.c:1318
 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:2270
-#: ../client/pk-console-test.c:1415
+#: ../client/pk-console-test.c:1329
 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:2287
-#: ../client/pk-console-test.c:1437
+#: ../client/pk-console-test.c:1350
 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:2296
 #: ../client/pk-console.c:2305
-#: ../client/pk-console-test.c:1448
-#: ../client/pk-console-test.c:1459
+#: ../client/pk-console-test.c:1361
+#: ../client/pk-console-test.c:1372
 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:2314
-#: ../client/pk-console-test.c:1470
+#: ../client/pk-console-test.c:1383
 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:2328
-#: ../client/pk-console-test.c:1488
+#: ../client/pk-console-test.c:1401
 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:2335
-#: ../client/pk-console-test.c:1495
+#: ../client/pk-console-test.c:1408
 msgid "A correct role is required"
 msgstr "Se necesita un rol correcto"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was last executed
 #: ../client/pk-console.c:2342
-#: ../client/pk-console-test.c:1502
+#: ../client/pk-console-test.c:1415
 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"
 
@@ -833,18 +813,18 @@ msgstr "Falló al obtener la hora de la última vez que se completó esta acció
 #: ../client/pk-console.c:2373
 #: ../client/pk-console.c:2391
 #: ../client/pk-console.c:2400
-#: ../client/pk-console-test.c:1511
-#: ../client/pk-console-test.c:1526
-#: ../client/pk-console-test.c:1535
-#: ../client/pk-console-test.c:1556
-#: ../client/pk-console-test.c:1565
+#: ../client/pk-console-test.c:1425
+#: ../client/pk-console-test.c:1440
+#: ../client/pk-console-test.c:1449
+#: ../client/pk-console-test.c:1469
+#: ../client/pk-console-test.c:1478
 #: ../client/pk-generate-pack.c:243
 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:2382
-#: ../client/pk-console-test.c:1545
+#: ../client/pk-console-test.c:1458
 msgid "A package provide string is required"
 msgstr "Se necesita la cadena de lo que proporciona el paquete"
 
@@ -861,7 +841,7 @@ msgstr "Se necesita un archivo de lista para abrir"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
 #: ../client/pk-console.c:2483
-#: ../client/pk-console-test.c:1619
+#: ../client/pk-console-test.c:1538
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "La opción «%s» no está soportada"
@@ -876,10 +856,64 @@ msgstr "Privilegios incorrectos para esta operación"
 #. g_print ("%s\n", _("Incorrect privileges for this operation"));
 #. TRANSLATORS: Generic failure of what they asked to do
 #: ../client/pk-console.c:2499
-#: ../client/pk-console-test.c:1631
+#: ../client/pk-console-test.c:1550
 msgid "Command failed"
 msgstr "Falló el comando"
 
+#. TRANSLATORS: more than one package could be found that matched, to follow is a list of possible packages
+#: ../client/pk-console-test.c:523
+#: ../client/pk-tools-common.c:131
+msgid "More than one package matches:"
+msgstr "Coincide más de un paquete:"
+
+#. TRANSLATORS: This finds out which package in the list to use
+#: ../client/pk-console-test.c:532
+#: ../client/pk-tools-common.c:138
+msgid "Please choose the correct package: "
+msgstr "Elija el paquete correcto: "
+
+#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
+#: ../client/pk-console-test.c:734
+#, c-format
+msgid "This tool could not find the available package: %s"
+msgstr "Esta herramienta no pudo encontrar el paquete disponible: %s"
+
+#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
+#: ../client/pk-console-test.c:762
+#, 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-test.c:790
+#: ../client/pk-console-test.c:818
+#, c-format
+msgid "This tool could not find the package: %s"
+msgstr "Esta herramienta no pudo encontrar el paquete: %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-test.c:846
+#: ../client/pk-console-test.c:872
+#: ../client/pk-console-test.c:898
+#: ../client/pk-console-test.c:924
+#: ../client/pk-console-test.c:950
+#, c-format
+msgid "This tool could not find all the packages: %s"
+msgstr "Esta herramienta no pudo encontrar todos los paquetes: %s"
+
+#. TRANSLATORS: the user did not specify what they wanted to install
+#: ../client/pk-console-test.c:1261
+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-test.c:1270
+msgid "A filename to install is required"
+msgstr "Se requiere un nombre de archivo a instalar"
+
 #. TRANSLATORS: This is the state of the transaction
 #: ../client/pk-generate-pack.c:103
 msgid "Downloading"
@@ -997,6 +1031,7 @@ msgstr "Falló al crear «%s»: %s"
 
 #. TRANSLATORS: this is a program that monitors PackageKit
 #: ../client/pk-monitor.c:146
+#: ../client/pk-monitor-test.c:299
 msgid "PackageKit Monitor"
 msgstr "Monitor de PackageKit"
 
@@ -1004,90 +1039,98 @@ msgstr "Monitor de PackageKit"
 msgid "Cannot show the list of transactions"
 msgstr "No es posible mostrar la lista de transacciones"
 
+#: ../client/pk-monitor-test.c:204
+msgid "Failed to get transaction list"
+msgstr "Falló al obtener la lista de transacciones"
+
+#: ../client/pk-monitor-test.c:235
+msgid "Failed to get daemon state"
+msgstr "Falló al obtener el estado del demonio"
+
 #. ask the user
-#: ../client/pk-task-text.c:61
+#: ../client/pk-task-text.c:64
 msgid "Do you want to allow installing of unsigned software?"
 msgstr "¿Desea permitir la instalación de software que no esté identificado?"
 
-#: ../client/pk-task-text.c:65
+#: ../client/pk-task-text.c:68
 msgid "The unsigned software will not be installed."
 msgstr "El software no identificado no será instalado."
 
-#: ../client/pk-task-text.c:94
+#: ../client/pk-task-text.c:100
 msgid "Software source signature required"
 msgstr "Se necesita la firma de la fuente del software"
 
-#: ../client/pk-task-text.c:96
+#: ../client/pk-task-text.c:102
 msgid "Software source name"
 msgstr "Nombre de la fuente del software"
 
-#: ../client/pk-task-text.c:97
+#: ../client/pk-task-text.c:103
 msgid "Key URL"
 msgstr "URL de la clave"
 
-#: ../client/pk-task-text.c:98
+#: ../client/pk-task-text.c:104
 msgid "Key user"
 msgstr "Usuario de la clave"
 
-#: ../client/pk-task-text.c:99
+#: ../client/pk-task-text.c:105
 msgid "Key ID"
 msgstr "ID de la clave"
 
-#: ../client/pk-task-text.c:100
+#: ../client/pk-task-text.c:106
 msgid "Key fingerprint"
 msgstr "Huella digital de la clave"
 
-#: ../client/pk-task-text.c:101
+#: ../client/pk-task-text.c:107
 msgid "Key Timestamp"
 msgstr "Fecha y hora de la clave"
 
-#: ../client/pk-task-text.c:142
+#: ../client/pk-task-text.c:151
 msgid "End user licence agreement required"
 msgstr "Se necesita un acuerdo de licencia de usuario final"
 
-#: ../client/pk-task-text.c:143
+#: ../client/pk-task-text.c:152
 msgid "EULA ID"
 msgstr "ID del acuerdo de licencia de usuario final (EULA) "
 
-#: ../client/pk-task-text.c:146
+#: ../client/pk-task-text.c:155
 msgid "Agreement"
 msgstr "Acuerdo"
 
 #. ask the user
-#: ../client/pk-task-text.c:152
+#: ../client/pk-task-text.c:161
 msgid "Do you accept this agreement?"
 msgstr "¿Acepta este acuerdo?"
 
-#: ../client/pk-task-text.c:156
+#: ../client/pk-task-text.c:165
 msgid "The agreement was not accepted."
 msgstr "El acuerdo no fue aceptado."
 
-#: ../client/pk-task-text.c:182
+#: ../client/pk-task-text.c:194
 msgid "Media change required"
 msgstr "Es necesario cambiar el medio"
 
-#: ../client/pk-task-text.c:183
+#: ../client/pk-task-text.c:195
 msgid "Media type"
 msgstr "Tipo de medio"
 
-#: ../client/pk-task-text.c:184
+#: ../client/pk-task-text.c:196
 msgid "Media ID"
 msgstr "ID de medio"
 
-#: ../client/pk-task-text.c:185
+#: ../client/pk-task-text.c:197
 msgid "Text"
 msgstr "TExto"
 
 #. ask the user
-#: ../client/pk-task-text.c:189
+#: ../client/pk-task-text.c:201
 msgid "Please insert the correct media"
 msgstr "Por favor, inserte el medio correcto "
 
-#: ../client/pk-task-text.c:193
+#: ../client/pk-task-text.c:205
 msgid "The correct media was not inserted."
 msgstr "El medio correcto no fue insertado."
 
-#: ../client/pk-task-text.c:288
+#: ../client/pk-task-text.c:303
 msgid "The transaction did not proceed."
 msgstr "La transacción no pudo realizarse."
 
@@ -1102,16 +1145,6 @@ msgstr "Introduzca un número de 1 a %i: "
 msgid "The package could not be found"
 msgstr "No se pudo encontrar el paquete"
 
-#. TRANSLATORS: more than one package could be found that matched, to follow is a list of possible packages
-#: ../client/pk-tools-common.c:131
-msgid "More than one package matches:"
-msgstr "Coincide más de un paquete:"
-
-#. TRANSLATORS: This finds out which package in the list to use
-#: ../client/pk-tools-common.c:138
-msgid "Please choose the correct package: "
-msgstr "Elija el paquete correcto: "
-
 #. TRANSLATORS: when we are getting data from the daemon
 #: ../contrib/browser-plugin/pk-plugin-install.c:466
 msgid "Getting package information..."
@@ -1837,8 +1870,6 @@ msgstr "Solo confiable"
 #~ msgstr "Debe especificar un nombre de repositorio"
 #~ msgid "You need to specify a correct role"
 #~ msgstr "Debe especificar un rol correcto"
-#~ msgid "Failed to get last time"
-#~ msgstr "Fállo al obtener última hora"
 #~ msgid "You need to specify a package to find the details for"
 #~ msgstr "Debe especificar un paquete para el que buscar la descripción"
 #~ msgid "You need to specify a package to find the files for"
commit 302a68ccc3611ceac0b5c5ce34ede9ff42c8a183
Author: Richard Hughes <richard at hughsie.com>
Date:   Sun Sep 6 16:58:51 2009 +0100

    Fix up two issues reported by clang in the contrib tools

diff --git a/contrib/debuginfo-install/pk-debuginfo-install.c b/contrib/debuginfo-install/pk-debuginfo-install.c
index f0c72de..00b0c4a 100644
--- a/contrib/debuginfo-install/pk-debuginfo-install.c
+++ b/contrib/debuginfo-install/pk-debuginfo-install.c
@@ -357,7 +357,7 @@ pk_debuginfo_install_add_deps (PkDebuginfoInstallPrivate *priv, GPtrArray *packa
 	gchar *package_id = NULL;
 	PkPackageList *list = NULL;
 	GError *error_local = NULL;
-	gchar **package_ids;
+	gchar **package_ids = NULL;
 	gchar *name_debuginfo;
 	guint len;
 	guint i;
diff --git a/contrib/device-rebind/pk-device-rebind.c b/contrib/device-rebind/pk-device-rebind.c
index 09b355d..b3ef15e 100644
--- a/contrib/device-rebind/pk-device-rebind.c
+++ b/contrib/device-rebind/pk-device-rebind.c
@@ -165,7 +165,7 @@ pk_device_rebind (GUdevClient *client, const gchar *path, GError **error)
 	gboolean ret = FALSE;
 	const gchar *driver;
 	const gchar *subsystem;
-	gchar *bus_id;
+	gchar *bus_id = NULL;
 	GError *error_local = NULL;
 
 	/* get device */
commit b6284cd1a6950a1206c727d0a5a897eec69bd8a2
Author: Richard Hughes <richard at hughsie.com>
Date:   Sun Sep 6 16:39:23 2009 +0100

    Fix build by defining PK_MESSAGE_ENUM_REPO_METADATA_DOWNLOAD_FAILED

diff --git a/lib/packagekit-glib/pk-enum.h b/lib/packagekit-glib/pk-enum.h
index 6101d6e..04bcc60 100644
--- a/lib/packagekit-glib/pk-enum.h
+++ b/lib/packagekit-glib/pk-enum.h
@@ -243,6 +243,7 @@ typedef enum {
 	PK_MESSAGE_ENUM_CONFIG_FILES_CHANGED,
 	PK_MESSAGE_ENUM_PACKAGE_ALREADY_INSTALLED,
 	PK_MESSAGE_ENUM_AUTOREMOVE_IGNORED,
+	PK_MESSAGE_ENUM_REPO_METADATA_DOWNLOAD_FAILED,
 	PK_MESSAGE_ENUM_UNKNOWN
 } PkMessageEnum;
 
diff --git a/lib/packagekit-glib2/pk-package-ids.c b/lib/packagekit-glib2/pk-package-ids.c
index 2966d37..933b623 100644
--- a/lib/packagekit-glib2/pk-package-ids.c
+++ b/lib/packagekit-glib2/pk-package-ids.c
@@ -113,6 +113,123 @@ pk_package_ids_to_text (gchar **package_ids)
 	return g_strjoinv (PK_PACKAGE_IDS_DELIM, package_ids);
 }
 
+/**
+ * pk_package_ids_present_id:
+ * @package_ids: a string array of package_id's
+ * @package_id: a single package_id
+ *
+ * Finds out if a package ID is present in the list.
+ *
+ * Return value: %TRUE if the package ID is present
+ **/
+gboolean
+pk_package_ids_present_id (gchar **package_ids, const gchar *package_id)
+{
+	guint i;
+
+	g_return_val_if_fail (package_ids != NULL, FALSE);
+	g_return_val_if_fail (package_id != NULL, FALSE);
+
+	/* iterate */
+	for (i=0; package_ids[i] != NULL; i++) {
+		if (g_strcmp0 (package_id, package_ids[i]) == 0)
+			return TRUE;
+	}
+	return FALSE;
+}
+
+/**
+ * pk_package_ids_add_id:
+ * @package_ids: a string array of package_id's
+ * @package_id: a single package_id
+ *
+ * Adds a package_id to an existing list.
+ *
+ * Return value: the new list, free g_strfreev()
+ **/
+gchar **
+pk_package_ids_add_id (gchar **package_ids, const gchar *package_id)
+{
+	guint i;
+	guint len;
+	gchar **result;
+
+	g_return_val_if_fail (package_ids != NULL, NULL);
+	g_return_val_if_fail (package_id != NULL, NULL);
+
+	len = g_strv_length (package_ids);
+	result = g_new0 (gchar *, len+2);
+
+	/* iterate */
+	for (i=0; package_ids[i] != NULL; i++)
+		result[i] = g_strdup (package_ids[i]);
+	result[i] = g_strdup (package_id);
+	return result;
+}
+
+/**
+ * pk_package_ids_add_ids:
+ * @package_ids: a string array of package_id's
+ * @package_ids_new: a string array of package_id's
+ *
+ * Adds a package_id to an existing list.
+ *
+ * Return value: the new list, free g_strfreev()
+ **/
+gchar **
+pk_package_ids_add_ids (gchar **package_ids, gchar **package_ids_new)
+{
+	guint i;
+	guint j = 0;
+	guint len;
+	gchar **result;
+
+	g_return_val_if_fail (package_ids != NULL, NULL);
+	g_return_val_if_fail (package_ids_new != NULL, NULL);
+
+	/* get length of both arrays */
+	len = g_strv_length (package_ids) + g_strv_length (package_ids_new);
+	result = g_new0 (gchar *, len+1);
+
+	/* iterate */
+	for (i=0; package_ids[i] != NULL; i++)
+		result[j++] = g_strdup (package_ids[i]);
+	for (i=0; package_ids_new[i] != NULL; i++)
+		result[j++] = g_strdup (package_ids_new[i]);
+	return result;
+}
+
+/**
+ * pk_package_ids_remove_id:
+ * @package_ids: a string array of package_id's
+ * @package_id: a single package_id
+ *
+ * Removes a package ID from the the list.
+ *
+ * Return value: the new list, free g_strfreev()
+ **/
+gchar **
+pk_package_ids_remove_id (gchar **package_ids, const gchar *package_id)
+{
+	guint i;
+	guint j = 0;
+	guint len;
+	gchar **result;
+
+	g_return_val_if_fail (package_ids != NULL, NULL);
+	g_return_val_if_fail (package_id != NULL, NULL);
+
+	len = g_strv_length (package_ids);
+	result = g_new0 (gchar *, len+1);
+
+	/* iterate */
+	for (i=0; package_ids[i] != NULL; i++) {
+		if (g_strcmp0 (package_id, package_ids[i]) != 0)
+			result[j++] = g_strdup (package_ids[i]);
+	}
+	return result;
+}
+
 /***************************************************************************
  ***                          MAKE CHECK TESTS                           ***
  ***************************************************************************/
diff --git a/lib/packagekit-glib2/pk-package-ids.h b/lib/packagekit-glib2/pk-package-ids.h
index 67b176a..6e77aa9 100644
--- a/lib/packagekit-glib2/pk-package-ids.h
+++ b/lib/packagekit-glib2/pk-package-ids.h
@@ -48,6 +48,14 @@ gchar		**pk_package_ids_from_id		(const gchar	*package_id);
 gchar		**pk_package_ids_from_text		(const gchar	*package_id);
 gboolean	 pk_package_ids_check			(gchar		**package_ids);
 gchar		*pk_package_ids_to_text			(gchar		**package_ids);
+gboolean	 pk_package_ids_present_id		(gchar		**package_ids,
+							 const gchar	*package_id);
+gchar		**pk_package_ids_add_id			(gchar		**package_ids,
+							 const gchar	*package_id);
+gchar		**pk_package_ids_add_ids		(gchar		**package_ids,
+							 gchar		**package_ids_new);
+gchar		**pk_package_ids_remove_id		(gchar		**package_ids,
+							 const gchar	*package_id);
 
 G_END_DECLS
 
commit c6986daa6ba7b96a397cca60bf8a47f0c310974c
Merge: e100e14... e0d77ce...
Author: Sebastian Heinlein <devel at glatzor.de>
Date:   Sun Aug 30 12:06:45 2009 +0200

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

commit e0d77ce3b05a2113561ea03657cb12ba5ee8a365
Author: anipeter <anipeter at fedoraproject.org>
Date:   Sat Sep 5 18:54:43 2009 +0000

    Sending translation for Malayalam

diff --git a/po/ml.po b/po/ml.po
index d79097c..00a1238 100644
--- a/po/ml.po
+++ b/po/ml.po
@@ -7,8 +7,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: packagekit.master.ml\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-09-04 02:27+0000\n"
-"PO-Revision-Date: 2009-09-04 08:08+0530\n"
+"POT-Creation-Date: 2009-09-05 08:29+0000\n"
+"PO-Revision-Date: 2009-09-05 19:25+0530\n"
 "Last-Translator: \n"
 "Language-Team:  <en at li.org>\n"
 "MIME-Version: 1.0\n"
@@ -18,106 +18,106 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
 #. TRANSLATORS: this is an atomic transaction
-#: ../client/pk-console.c:238 ../client/pk-console-test.c:146
+#: ../client/pk-console.c:238 ../client/pk-console-test.c:147
 msgid "Transaction"
 msgstr "ഇടപാടു്"
 
 #. TRANSLATORS: this is the time the transaction was started in system timezone
-#: ../client/pk-console.c:240 ../client/pk-console-test.c:148
+#: ../client/pk-console.c:240 ../client/pk-console-test.c:149
 msgid "System time"
 msgstr "സിസ്റ്റം സമയം"
 
 #. TRANSLATORS: this is if the transaction succeeded or not
-#: ../client/pk-console.c:242 ../client/pk-console-test.c:150
+#: ../client/pk-console.c:242 ../client/pk-console-test.c:151
 msgid "Succeeded"
 msgstr "ഇടപാടു് പൂര്‍ത്തിയായി"
 
-#: ../client/pk-console.c:242 ../client/pk-console-test.c:150
+#: ../client/pk-console.c:242 ../client/pk-console-test.c:151
 msgid "True"
 msgstr "True"
 
-#: ../client/pk-console.c:242 ../client/pk-console-test.c:150
+#: ../client/pk-console.c:242 ../client/pk-console-test.c:151
 msgid "False"
 msgstr "False"
 
 #. TRANSLATORS: this is the transactions role, e.g. "update-system"
 #. TRANSLATORS: the trasaction role, e.g. update-system
-#: ../client/pk-console.c:244 ../client/pk-console-test.c:152
+#: ../client/pk-console.c:244 ../client/pk-console-test.c:153
 #: ../src/pk-polkit-action-lookup.c:327
 msgid "Role"
 msgstr "റോള്‍"
 
 #. TRANSLATORS: this is The duration of the transaction
-#: ../client/pk-console.c:249 ../client/pk-console-test.c:157
+#: ../client/pk-console.c:249 ../client/pk-console-test.c:158
 msgid "Duration"
 msgstr "സമയം"
 
-#: ../client/pk-console.c:249 ../client/pk-console-test.c:157
+#: ../client/pk-console.c:249 ../client/pk-console-test.c:158
 msgid "(seconds)"
 msgstr "(സെക്കന്‍ഡുകള്‍)"
 
 #. TRANSLATORS: this is The command line used to do the action
 #. TRANSLATORS: the command line of the thing that wants the authentication
-#: ../client/pk-console.c:253 ../client/pk-console-test.c:161
+#: ../client/pk-console.c:253 ../client/pk-console-test.c:162
 #: ../src/pk-polkit-action-lookup.c:341
 msgid "Command line"
 msgstr "കമാന്‍ഡ് ലൈന്‍"
 
 #. TRANSLATORS: this is the user ID of the user that started the action
-#: ../client/pk-console.c:255 ../client/pk-console-test.c:163
+#: ../client/pk-console.c:255 ../client/pk-console-test.c:164
 msgid "User ID"
 msgstr "ഉപയോക്താവിനുള്ള ID"
 
 #. TRANSLATORS: this is the username, e.g. hughsie
-#: ../client/pk-console.c:262 ../client/pk-console-test.c:170
+#: ../client/pk-console.c:262 ../client/pk-console-test.c:171
 msgid "Username"
 msgstr "ഉപയോക്തൃനാമം"
 
 #. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
-#: ../client/pk-console.c:266 ../client/pk-console-test.c:174
+#: ../client/pk-console.c:266 ../client/pk-console-test.c:175
 msgid "Real name"
 msgstr "യഥാര്‍ത്ഥ പേരു്"
 
-#: ../client/pk-console.c:274 ../client/pk-console-test.c:182
+#: ../client/pk-console.c:274 ../client/pk-console-test.c:183
 msgid "Affected packages:"
 msgstr "ബാധിച്ച പാക്കേജുകള്‍:"
 
-#: ../client/pk-console.c:276 ../client/pk-console-test.c:184
+#: ../client/pk-console.c:276 ../client/pk-console-test.c:185
 msgid "Affected packages: None"
 msgstr "ബാധിച്ച പാക്കേജുകള്‍: ഒന്നുമില്ല"
 
 #. TRANSLATORS: When processing, we might have to remove other dependencies
-#: ../client/pk-console.c:337 ../client/pk-task-text.c:208
+#: ../client/pk-console.c:337 ../client/pk-task-text.c:220
 msgid "The following packages have to be removed:"
 msgstr "താഴെ പറയുന്ന പാക്കേജുകള്‍ നീക്കം ചെയ്യേണ്ടതുണ്ടു്."
 
 #. TRANSLATORS: When processing, we might have to install other dependencies
-#: ../client/pk-console.c:340 ../client/pk-task-text.c:213
+#: ../client/pk-console.c:340 ../client/pk-task-text.c:225
 msgid "The following packages have to be installed:"
 msgstr "താഴെ പറയുന്ന പാക്കേജുകള്‍ ഇന്‍സ്റ്റോള്‍ ചെയ്യേണ്ടതാണു്:"
 
 #. TRANSLATORS: When processing, we might have to update other dependencies
-#: ../client/pk-console.c:343 ../client/pk-task-text.c:218
+#: ../client/pk-console.c:343 ../client/pk-task-text.c:230
 msgid "The following packages have to be updated:"
 msgstr "താഴെ പറയുന്ന പാക്കേജുകള്‍ പരിഷ്കരിക്കേണ്ടതുണ്ടു്:"
 
 #. TRANSLATORS: When processing, we might have to reinstall other dependencies
-#: ../client/pk-console.c:346 ../client/pk-task-text.c:223
+#: ../client/pk-console.c:346 ../client/pk-task-text.c:235
 msgid "The following packages have to be reinstalled:"
 msgstr "താഴെ പറയുന്ന പാക്കേജുകള്‍ വീണ്ടും ഇന്‍സ്റ്റോള്‍ ചെയ്യേണ്ടതുണ്ടു്:"
 
 #. TRANSLATORS: When processing, we might have to downgrade other dependencies
-#: ../client/pk-console.c:349 ../client/pk-task-text.c:228
+#: ../client/pk-console.c:349 ../client/pk-task-text.c:240
 msgid "The following packages have to be downgraded:"
 msgstr "താഴെ പറയുന്ന പാക്കേജുകള്‍ ഡൌണ്‍ഗ്രേഡ് ചെയ്യേണ്ടതുണ്ടു്:"
 
 #. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:363 ../client/pk-console-test.c:204
+#: ../client/pk-console.c:363 ../client/pk-console-test.c:205
 msgid "Distribution"
 msgstr "വിതരണം"
 
 #. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:365 ../client/pk-console-test.c:206
+#: ../client/pk-console.c:365 ../client/pk-console-test.c:207
 msgid "Type"
 msgstr "തരം"
 
@@ -126,44 +126,44 @@ msgstr "തരം"
 #. TRANSLATORS: this is any summary text describing the upgrade
 #. TRANSLATORS: this is the summary of the group
 #: ../client/pk-console.c:367 ../client/pk-console.c:390
-#: ../client/pk-console-test.c:208 ../client/pk-console-test.c:229
+#: ../client/pk-console-test.c:209 ../client/pk-console-test.c:230
 msgid "Summary"
 msgstr "സമ്മറി"
 
 #. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:379 ../client/pk-console-test.c:218
+#: ../client/pk-console.c:379 ../client/pk-console-test.c:219
 msgid "Category"
 msgstr "വിഭാഗം"
 
 #. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:381 ../client/pk-console-test.c:220
+#: ../client/pk-console.c:381 ../client/pk-console-test.c:221
 msgid "ID"
 msgstr "ID"
 
 #. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:384 ../client/pk-console-test.c:223
+#: ../client/pk-console.c:384 ../client/pk-console-test.c:224
 msgid "Parent"
 msgstr "പേരന്റ്"
 
 #. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:387 ../client/pk-console-test.c:226
+#: ../client/pk-console.c:387 ../client/pk-console-test.c:227
 msgid "Name"
 msgstr "പേരു്"
 
 #. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:393 ../client/pk-console-test.c:232
+#: ../client/pk-console.c:393 ../client/pk-console-test.c:233
 msgid "Icon"
 msgstr "ചിഹ്നം"
 
 #. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:408 ../client/pk-console-test.c:246
+#: ../client/pk-console.c:408 ../client/pk-console-test.c:247
 msgid "Details about the update:"
 msgstr "പരിഷ്കരണങ്ങള്‍ സംബന്ധിച്ചുള്ള വിശദാംശങ്ങള്‍:"
 
 #. TRANSLATORS: details about the update, package name and version
 #. TRANSLATORS: title, the names of the packages that the method is processing
-#: ../client/pk-console.c:410 ../client/pk-console-test.c:252
-#: ../client/pk-task-text.c:95 ../client/pk-task-text.c:144
+#: ../client/pk-console.c:410 ../client/pk-console-test.c:253
+#: ../client/pk-task-text.c:101 ../client/pk-task-text.c:153
 #: ../src/pk-polkit-action-lookup.c:352
 msgid "Package"
 msgid_plural "Packages"
@@ -171,68 +171,68 @@ msgstr[0] "പാക്കേജ്"
 msgstr[1] "പാക്കേജുകള്‍"
 
 #. TRANSLATORS: details about the update, any packages that this update updates
-#: ../client/pk-console.c:413 ../client/pk-console-test.c:255
+#: ../client/pk-console.c:413 ../client/pk-console-test.c:256
 msgid "Updates"
 msgstr "പരിഷ്കരണങ്ങള്‍"
 
 #. TRANSLATORS: details about the update, any packages that this update obsoletes
-#: ../client/pk-console.c:417 ../client/pk-console-test.c:259
+#: ../client/pk-console.c:417 ../client/pk-console-test.c:260
 msgid "Obsoletes"
 msgstr "വേണ്ടെന്നു് വച്ചവ"
 
 #. TRANSLATORS: details about the update, the vendor URLs
-#: ../client/pk-console.c:421 ../client/pk-console-test.c:263
-#: ../client/pk-task-text.c:145
+#: ../client/pk-console.c:421 ../client/pk-console-test.c:264
+#: ../client/pk-task-text.c:154
 msgid "Vendor"
 msgstr "കച്ചവടക്കാരന്‍"
 
 #. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:425 ../client/pk-console-test.c:267
+#: ../client/pk-console.c:425 ../client/pk-console-test.c:268
 msgid "Bugzilla"
 msgstr "Bugzilla"
 
 #. TRANSLATORS: details about the update, the CVE URLs
-#: ../client/pk-console.c:429 ../client/pk-console-test.c:271
+#: ../client/pk-console.c:429 ../client/pk-console-test.c:272
 msgid "CVE"
 msgstr "CVE"
 
 #. TRANSLATORS: details about the update, if the package requires a restart
-#: ../client/pk-console.c:433 ../client/pk-console-test.c:275
+#: ../client/pk-console.c:433 ../client/pk-console-test.c:276
 msgid "Restart"
 msgstr "വീണ്ടും ആരംഭിക്കുക"
 
 #. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:437 ../client/pk-console-test.c:279
+#: ../client/pk-console.c:437 ../client/pk-console-test.c:280
 msgid "Update text"
 msgstr "പരിഷ്കരിച്ച വാചകം"
 
 #. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:441 ../client/pk-console-test.c:283
+#: ../client/pk-console.c:441 ../client/pk-console-test.c:284
 msgid "Changes"
 msgstr "മാറ്റങ്ങള്‍"
 
 #. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:445 ../client/pk-console-test.c:287
+#: ../client/pk-console.c:445 ../client/pk-console-test.c:288
 msgid "State"
 msgstr "അവസ്ഥ"
 
 #. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:450 ../client/pk-console-test.c:292
+#: ../client/pk-console.c:450 ../client/pk-console-test.c:293
 msgid "Issued"
 msgstr "നല്‍കിയതു്"
 
 #. TRANSLATORS: details about the update, date the update was updated
-#: ../client/pk-console.c:455 ../client/pk-console-test.c:297
+#: ../client/pk-console.c:455 ../client/pk-console-test.c:298
 msgid "Updated"
 msgstr "പരിഷ്കരിച്ചിരിക്കുന്നു"
 
 #. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:475 ../client/pk-console-test.c:315
+#: ../client/pk-console.c:475 ../client/pk-console-test.c:316
 msgid "Enabled"
 msgstr "പ്രവര്‍ത്തന സജ്ജം"
 
 #. TRANSLATORS: if the repo is disabled
-#: ../client/pk-console.c:478 ../client/pk-console-test.c:318
+#: ../client/pk-console.c:478 ../client/pk-console-test.c:319
 msgid "Disabled"
 msgstr "പ്രവര്‍ത്തന രഹിതം"
 
@@ -245,47 +245,47 @@ msgid "Unknown"
 msgstr "അപരിചിതം"
 
 #. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:599 ../client/pk-console-test.c:340
+#: ../client/pk-console.c:599 ../client/pk-console-test.c:341
 msgid "System restart required by:"
 msgstr "സിസ്റ്റം വീണ്ടും ആരംഭിക്കുന്നതു് ആവശ്യമുള്ളതു്:"
 
 #. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:602 ../client/pk-console-test.c:343
+#: ../client/pk-console.c:602 ../client/pk-console-test.c:344
 msgid "Session restart required:"
 msgstr "സെഷന്‍ വീണ്ടും ആരംഭിക്കേണ്ടതുണ്ടു്:"
 
 #. TRANSLATORS: a package requires the system to be restarted due to a security update
-#: ../client/pk-console.c:605 ../client/pk-console-test.c:346
+#: ../client/pk-console.c:605 ../client/pk-console-test.c:347
 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:608 ../client/pk-console-test.c:349
+#: ../client/pk-console.c:608 ../client/pk-console-test.c:350
 msgid "Session restart (security) required:"
 msgstr "സെഷന്‍ വീണ്ടും ആരംഭിക്കുന്നതു് (സുരക്ഷാ പരിഷ്കരണം) ആവശ്യമുള്ളതു്:"
 
 #. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:611 ../client/pk-console-test.c:352
+#: ../client/pk-console.c:611 ../client/pk-console-test.c:353
 msgid "Application restart required by:"
 msgstr "പ്രയോഗം വീണ്ടും ആരംഭിക്കേണ്ടതു് ആവശ്യമുള്ളതു്:"
 
 #. TRANSLATORS: a package needs to restart their system
-#: ../client/pk-console.c:666 ../client/pk-console-test.c:434
+#: ../client/pk-console.c:666 ../client/pk-console-test.c:704
 msgid "Please restart the computer to complete the update."
 msgstr "പരിഷ്കരണങ്ങള്‍ പൂര്‍ത്തിയാക്കുന്നതിനായി ദയവായി നിങ്ങളുടെ കമ്പ്യൂട്ടര്‍ വീണ്ടും ആരംഭിക്കുക."
 
 #. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:669 ../client/pk-console-test.c:437
+#: ../client/pk-console.c:669 ../client/pk-console-test.c:707
 msgid "Please logout and login to complete the update."
 msgstr "പരിഷ്കരണങ്ങള്‍ പൂര്‍ത്തിയാക്കുന്നതിനായി ദയവായി ലോഗൌട്ട് ചെയ്ത് ലോഗിന്‍ ചെയ്യുക."
 
 #. TRANSLATORS: a package needs to restart the application
-#: ../client/pk-console.c:672 ../client/pk-console-test.c:440
+#: ../client/pk-console.c:672
 msgid "Please restart the application as it is being used."
 msgstr "ഈ പ്രയോഗം ഉപയോഗിക്കേണ്ടപ്പോള്‍ തന്നെ വീണ്ടും ആരംഭിക്കുക."
 
 #. TRANSLATORS: a package needs to restart their system (due to security)
-#: ../client/pk-console.c:675 ../client/pk-console-test.c:443
+#: ../client/pk-console.c:675 ../client/pk-console-test.c:710
 msgid ""
 "Please restart the computer to complete the update as important security "
 "updates have been installed."
@@ -294,7 +294,7 @@ msgstr ""
 "വീണ്ടും ആരംഭിക്കുക."
 
 #. TRANSLATORS: a package needs to restart the session (due to security)
-#: ../client/pk-console.c:678 ../client/pk-console-test.c:446
+#: ../client/pk-console.c:678 ../client/pk-console-test.c:713
 msgid ""
 "Please logout and login to complete the update as important security updates "
 "have been installed."
@@ -303,13 +303,13 @@ msgstr ""
 "ചെയ്യുക."
 
 #. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:810 ../client/pk-console-test.c:541
+#: ../client/pk-console.c:810
 #, c-format
 msgid "The package %s is already installed"
 msgstr "%s എന്ന പാക്കേജ് നിലവില്‍ കമ്പ്യൂട്ടറില്‍ ഇന്‍സ്റ്റോള്‍ ചെയ്തിരിക്കുന്നു."
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:818 ../client/pk-console-test.c:549
+#: ../client/pk-console.c:818
 #, c-format
 msgid "The package %s could not be installed: %s"
 msgstr "%s എന്ന പാക്കേജ് നിങ്ങളുടെ കമ്പ്യൂട്ടറില്‍ ഇന്‍സ്റ്റോള്‍ ചെയ്യുവാന്‍ സാധ്യമായില്ല: %s"
@@ -327,7 +327,7 @@ msgstr "ആന്തരിക പിശക്: %s"
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
 #. ask the user
 #: ../client/pk-console.c:876 ../client/pk-console.c:948
-#: ../client/pk-console.c:1266 ../client/pk-task-text.c:284
+#: ../client/pk-console.c:1266 ../client/pk-task-text.c:299
 msgid "Proceed with changes?"
 msgstr "മാറ്റങ്ങളുമായി മുമ്പോട്ട് പോകണമോ?"
 
@@ -338,26 +338,25 @@ msgstr "പാക്കേജ് ഇന്‍സ്റ്റോള്‍ ചെà
 
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
 #: ../client/pk-console.c:900 ../client/pk-console.c:1634
-#: ../client/pk-console-test.c:572
 #, c-format
 msgid "This tool could not install the packages: %s"
 msgstr "ഈ പ്രയോഗത്തിനു് പാക്കേജുകള്‍ ഇന്‍സ്റ്റോള്‍ ചെയ്യുവാന്‍ സാധ്യമല്ല: %s"
 
 #. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:972 ../client/pk-console-test.c:586
+#: ../client/pk-console.c:972
 #, c-format
 msgid "This tool could not install the files: %s"
 msgstr "ഈ പ്രയോഗത്തിനു് ഫയലുകള്‍ ഇന്‍സ്റ്റോള്‍ ചെയ്യുവാന്‍ സാധ്യമല്ല: %s"
 
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:1028 ../client/pk-console-test.c:636
+#: ../client/pk-console.c:1028
 #, c-format
 msgid "This tool could not remove %s: %s"
 msgstr "ഈ പ്രയോഗത്തിനു് %s നീക്കം ചെയ്യുവാന്‍ സാധ്യമായില്ല: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
 #: ../client/pk-console.c:1051 ../client/pk-console.c:1089
-#: ../client/pk-console.c:1118 ../client/pk-console-test.c:657
+#: ../client/pk-console.c:1118
 #, c-format
 msgid "This tool could not remove the packages: %s"
 msgstr "ഈ പ്രയോഗത്തിനു് പാക്കേജുകള്‍ നീക്കം ചെയ്യുവാന്‍ സാധ്യമല്ല: %s"
@@ -373,21 +372,20 @@ msgid "The package removal was canceled!"
 msgstr "പാക്കേജ് നീക്കം ചെയ്യല്‍ റദ്ദാക്കിയിരിക്കുന്നു!"
 
 #. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:1150 ../client/pk-console-test.c:689
+#: ../client/pk-console.c:1150
 #, c-format
 msgid "This tool could not download the package %s as it could not be found"
 msgstr "%s പാക്കേജ് ലഭ്യമല്ലാത്തതിനാല്‍ ഈ പ്രയോഗത്തിനു് അതു് ഇന്‍സ്റ്റോള്‍ ചെയ്യുവാന്‍ സാധ്യമായില്ല"
 
 #. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:1181 ../client/pk-console-test.c:711
+#: ../client/pk-console.c:1181
 #, c-format
 msgid "This tool could not download the packages: %s"
 msgstr "ഈ പ്രയോഗത്തിനു് പാക്കേജുകള്‍ ഡൌണ്‍ലോട് ചെയ്യുവാന്‍ സാധ്യമല്ല: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
 #: ../client/pk-console.c:1213 ../client/pk-console.c:1225
-#: ../client/pk-console.c:1280 ../client/pk-console-test.c:743
-#: ../client/pk-console-test.c:753
+#: ../client/pk-console.c:1280
 #, c-format
 msgid "This tool could not update %s: %s"
 msgstr "ഈ പ്രയോഗത്തിനു് %s പരിഷ്കരിക്കുവാന്‍ സാധ്യമല്ല: %s"
@@ -399,33 +397,30 @@ msgstr "പാക്കേജ് പുതുക്കല്‍ റദ്ദാà
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
 #: ../client/pk-console.c:1304 ../client/pk-console.c:1312
-#: ../client/pk-console-test.c:779 ../client/pk-console-test.c:787
 #, c-format
 msgid "This tool could not get the requirements for %s: %s"
 msgstr "%s-നു് ആവശ്യമുള്ളവ ലഭ്യമാക്കുവാന്‍ ഈ പ്രയോഗത്തിനു് സാധ്യമായില്ല: %s"
 
 #. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
 #: ../client/pk-console.c:1334 ../client/pk-console.c:1342
-#: ../client/pk-console-test.c:809 ../client/pk-console-test.c:817
 #, c-format
 msgid "This tool could not get the dependencies for %s: %s"
 msgstr "%s-നുള്ള ഡിപന്‍ഡന്‍സികള്‍ ലഭ്യമാക്കുവാന്‍ ഈ പ്രയോഗത്തിനു് സാധ്യമായില്ല: %s"
 
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
 #: ../client/pk-console.c:1364 ../client/pk-console.c:1372
-#: ../client/pk-console-test.c:839 ../client/pk-console-test.c:847
 #, c-format
 msgid "This tool could not get package details for %s: %s"
 msgstr "%s-നുള്ള പാക്കേജിന്റെ വിശദാംശങ്ങള്‍ ലഭ്യമാക്കുവാന്‍ ഈ പ്രയോഗത്തിനു് സാധ്യമായില്ല: %s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1394 ../client/pk-console-test.c:869
+#: ../client/pk-console.c:1394
 #, c-format
 msgid "This tool could not find the files for %s: %s"
 msgstr "%s-നുള്ള ഫയലുകള്‍ ലഭ്യമാക്കുവാന്‍ ഈ പ്രയോഗത്തിനു് സാധ്യമായില്ല: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1402 ../client/pk-console-test.c:877
+#: ../client/pk-console.c:1402
 #, c-format
 msgid "This tool could not get the file list for %s: %s"
 msgstr "%s-നുള്ള ഫയലുകളുടെ പട്ടിക ലഭ്യമാക്കുവാന്‍ ഈ പ്രയോഗത്തിനു് സാധ്യമായില്ല: %s"
@@ -507,13 +502,13 @@ msgid "Installing packages"
 msgstr "പാക്കേജുകള്‍ ഇന്‍സ്റ്റോള്‍ ചെയ്യുന്നു"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1663 ../client/pk-console-test.c:899
+#: ../client/pk-console.c:1663
 #, c-format
 msgid "This tool could not find the update details for %s: %s"
 msgstr "%s-നു് പരിഷ്കരണത്തിനുള്ള വിശദാംശങ്ങള്‍ ലഭ്യമാക്കുവാന്‍ ഈ പ്രയോഗത്തിനു് സാധ്യമായില്ല: %s"
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1671 ../client/pk-console-test.c:907
+#: ../client/pk-console.c:1671
 #, c-format
 msgid "This tool could not get the update details for %s: %s"
 msgstr "%s-നു് പരിഷ്കരണത്തിനുള്ള വിശദാംശങ്ങള്‍ ലഭ്യമാക്കുവാന്‍ ഈ പ്രയോഗത്തിനു് സാധ്യമായില്ല: %s"
@@ -524,22 +519,22 @@ msgid "Error:"
 msgstr "പിശക്:"
 
 #. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1716 ../client/pk-console-test.c:369
+#: ../client/pk-console.c:1716 ../client/pk-console-test.c:370
 msgid "Package description"
 msgstr "പാക്കേജ് വിശദാംശങ്ങള്‍"
 
 #. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
-#: ../client/pk-console.c:1732 ../client/pk-console-test.c:387
+#: ../client/pk-console.c:1732 ../client/pk-console-test.c:388
 msgid "Message:"
 msgstr "സന്ദേശം:"
 
 #. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1760 ../client/pk-console-test.c:415
+#: ../client/pk-console.c:1760 ../client/pk-console-test.c:407
 msgid "Package files"
 msgstr "പാക്കേജിലുള്ള ഫയലുകള്‍"
 
 #. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1768 ../client/pk-console-test.c:410
+#: ../client/pk-console.c:1768 ../client/pk-console-test.c:402
 msgid "No files"
 msgstr "ഫയലുകള്‍ ലഭ്യമല്ല"
 
@@ -550,12 +545,12 @@ msgstr "സംഭരണിയ്ക്കുള്ള ജിപിജി à´’à´ªà
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
 #. ask the user
-#: ../client/pk-console.c:1801 ../client/pk-task-text.c:107
+#: ../client/pk-console.c:1801 ../client/pk-task-text.c:113
 msgid "Do you accept this signature?"
 msgstr "ഈ ഓപ്പ് നിങ്ങള്‍ അംഗീകരിക്കുന്നുവോ?"
 
 #. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1805 ../client/pk-task-text.c:111
+#: ../client/pk-console.c:1805 ../client/pk-task-text.c:117
 msgid "The signature was not accepted."
 msgstr "ഒപ്പ് സ്വീകരിക്കുന്നില്ല."
 
@@ -575,24 +570,25 @@ msgid "The license was refused."
 msgstr "ലൈസന്‍സ് നിഷേധിച്ചിരിക്കുന്നു."
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1879 ../client/pk-console-test.c:925
+#: ../client/pk-console.c:1879 ../client/pk-console-test.c:972
 msgid "The daemon crashed mid-transaction!"
 msgstr "ഡെമണ്‍ തകര്‍ന്നിരിക്കുന്നു!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1932 ../client/pk-console-test.c:969
+#: ../client/pk-console.c:1932 ../client/pk-console-test.c:1006
 msgid "PackageKit Console Interface"
 msgstr "പാക്കേജ്കിറ്റ് കണ്‍സോള്‍ ഇന്റര്‍ഫെയിസ്"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1934 ../client/pk-console-test.c:971
+#: ../client/pk-console.c:1934 ../client/pk-console-test.c:1008
 msgid "Subcommands:"
 msgstr "സബ്കമാന്‍ഡുകള്‍:"
 
 #. TRANSLATORS: command line argument, if we should show debugging information
 #. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:2027 ../client/pk-console-test.c:1202
+#: ../client/pk-console.c:2027 ../client/pk-console-test.c:1099
 #: ../client/pk-generate-pack.c:187 ../client/pk-monitor.c:128
+#: ../client/pk-monitor-test.c:282
 #: ../contrib/command-not-found/pk-command-not-found.c:616
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:549
 #: ../contrib/device-rebind/pk-device-rebind.c:293 ../src/pk-main.c:211
@@ -600,18 +596,18 @@ msgid "Show extra debugging information"
 msgstr "കൂടുതല്‍ ഡീബഗ്ഗിങ് വിവരം കാണിക്കുക"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:2030 ../client/pk-console-test.c:1205
-#: ../client/pk-monitor.c:130
+#: ../client/pk-console.c:2030 ../client/pk-console-test.c:1102
+#: ../client/pk-monitor.c:130 ../client/pk-monitor-test.c:284
 msgid "Show the program version and exit"
 msgstr "പ്രോഗ്രാമിന്റെ പതിപ്പ് കാണിച്ചശേഷം പുറത്ത് കടക്കുക"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:2033 ../client/pk-console-test.c:1208
+#: ../client/pk-console.c:2033 ../client/pk-console-test.c:1105
 msgid "Set the filter, e.g. installed"
 msgstr "ഫില്‍‌റ്റര്‍ ക്രമികരിക്കുക, e.g. ഇന്‍സ്റ്റോള്‍ ചെയ്തിരിക്കുന്നു"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:2036 ../client/pk-console-test.c:1211
+#: ../client/pk-console.c:2036 ../client/pk-console-test.c:1108
 msgid "Exit without waiting for actions to complete"
 msgstr "പൂര്‍ത്തിയാകുന്നതിനുള്ള പ്രവര്‍ത്തികള്‍ക്കായി കാത്തിരിക്കാതെ പുറത്ത് കടക്കുക"
 
@@ -621,91 +617,91 @@ msgid "This tool could not connect to system DBUS."
 msgstr "സിസ്റ്റം ഡീബസിലേക്ക് കണക്ട് ചെയ്യുവാന്‍ ഈ പ്രയോഗത്തിനു് സാധ്യമല്ല."
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:2153 ../client/pk-console-test.c:1279
+#: ../client/pk-console.c:2153 ../client/pk-console-test.c:1183
 msgid "The filter specified was invalid"
 msgstr "നല്‍കിയ ഫില്‍‌റ്റര്‍ തെറ്റാണു്"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:2172 ../client/pk-console-test.c:1298
+#: ../client/pk-console.c:2172 ../client/pk-console-test.c:1202
 msgid "A search type is required, e.g. name"
 msgstr "തെരയുന്നതിനുള്ള തരം ആവശ്യമുണ്ടു്, ഉദാ. പേരു്"
 
 #. TRANSLATORS: the user needs to provide a search term
 #: ../client/pk-console.c:2179 ../client/pk-console.c:2188
 #: ../client/pk-console.c:2197 ../client/pk-console.c:2206
-#: ../client/pk-console-test.c:1305 ../client/pk-console-test.c:1317
-#: ../client/pk-console-test.c:1329 ../client/pk-console-test.c:1341
+#: ../client/pk-console-test.c:1209 ../client/pk-console-test.c:1221
+#: ../client/pk-console-test.c:1233 ../client/pk-console-test.c:1245
 msgid "A search term is required"
 msgstr "തെരയുന്നതിനുള്ള വാചകം ആവശ്യമുണ്ടു്"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:2213 ../client/pk-console-test.c:1351
+#: ../client/pk-console.c:2213 ../client/pk-console-test.c:1255
 msgid "Invalid search type"
 msgstr "തെറ്റായ തരത്തിലുള്ള തെരച്ചില്‍"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:2219 ../client/pk-console-test.c:1358
+#: ../client/pk-console.c:2219
 msgid "A package name or filename to install is required"
 msgstr "ഇന്‍സ്റ്റോള്‍ ചെയ്യുന്നതിനുള്ള പാക്കേജിന്റെ പേരു് അല്ലെങ്കില്‍ ഫയലിന്റെ പേരു് ആവശ്യമുണ്ടു്"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2228 ../client/pk-console-test.c:1368
+#: ../client/pk-console.c:2228 ../client/pk-console-test.c:1282
 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:2237 ../client/pk-console-test.c:1379
+#: ../client/pk-console.c:2237 ../client/pk-console-test.c:1293
 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:2245 ../client/pk-console-test.c:1387
+#: ../client/pk-console.c:2245 ../client/pk-console-test.c:1302
 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:2252 ../client/pk-console-test.c:1394
+#: ../client/pk-console.c:2252 ../client/pk-console-test.c:1309
 msgid "Directory not found"
 msgstr "ഡയറക്ടറി ലഭ്യമല്ല"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2260 ../client/pk-console-test.c:1403
+#: ../client/pk-console.c:2260 ../client/pk-console-test.c:1318
 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:2270 ../client/pk-console-test.c:1415
+#: ../client/pk-console.c:2270 ../client/pk-console-test.c:1329
 msgid "A transaction identifier (tid) is required"
 msgstr "ഒരു ട്രാന്‍സാക്ഷന്‍ ഐഡന്റിഫയര്‍ (tid) ആവശ്യമുണ്ടു്"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:2287 ../client/pk-console-test.c:1437
+#: ../client/pk-console.c:2287 ../client/pk-console-test.c:1350
 msgid "A package name to resolve is required"
 msgstr "റിസോള്‍വ് ചെയ്യുവാനുള്ള പാക്കേജിന്റെ പേരു് ആവശ്യമുണ്ടു്"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
 #: ../client/pk-console.c:2296 ../client/pk-console.c:2305
-#: ../client/pk-console-test.c:1448 ../client/pk-console-test.c:1459
+#: ../client/pk-console-test.c:1361 ../client/pk-console-test.c:1372
 msgid "A repository name is required"
 msgstr "സംഭരണിയ്ക്കുള്ള പേരു് ആവശ്യമുണ്ടു്"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2314 ../client/pk-console-test.c:1470
+#: ../client/pk-console.c:2314 ../client/pk-console-test.c:1383
 msgid "A repo name, parameter and value are required"
 msgstr "ഒരു റിപ്പോയുടെ പേരും പരാമീറ്റരും മൂല്ല്യവും ആവശ്യമുണ്ടു്"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:2328 ../client/pk-console-test.c:1488
+#: ../client/pk-console.c:2328 ../client/pk-console-test.c:1401
 msgid "An action, e.g. 'update-system' is required"
 msgstr "ഒരു പ്രവര്‍ത്തി ആവശ്യമുണ്ടു്, ഉദാ. 'update-system'"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:2335 ../client/pk-console-test.c:1495
+#: ../client/pk-console.c:2335 ../client/pk-console-test.c:1408
 msgid "A correct role is required"
 msgstr "ശരിയായ റോള്‍ ആവശ്യമുണ്ടു്"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2342 ../client/pk-console-test.c:1502
+#: ../client/pk-console.c:2342 ../client/pk-console-test.c:1415
 msgid "Failed to get the time since this action was last completed"
 msgstr "ഈ പ്രവര്‍ത്തി അവസാനമായി പൂര്‍ത്തിയാക്കിയ സമയം ലഭ്യമായില്ല"
 
@@ -713,15 +709,15 @@ msgstr "ഈ പ്രവര്‍ത്തി അവസാനമായി പൂ
 #. TRANSLATORS: This is when the user fails to supply the package name
 #: ../client/pk-console.c:2352 ../client/pk-console.c:2364
 #: ../client/pk-console.c:2373 ../client/pk-console.c:2391
-#: ../client/pk-console.c:2400 ../client/pk-console-test.c:1511
-#: ../client/pk-console-test.c:1526 ../client/pk-console-test.c:1535
-#: ../client/pk-console-test.c:1556 ../client/pk-console-test.c:1565
+#: ../client/pk-console.c:2400 ../client/pk-console-test.c:1425
+#: ../client/pk-console-test.c:1440 ../client/pk-console-test.c:1449
+#: ../client/pk-console-test.c:1469 ../client/pk-console-test.c:1478
 #: ../client/pk-generate-pack.c:243
 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:2382 ../client/pk-console-test.c:1545
+#: ../client/pk-console.c:2382 ../client/pk-console-test.c:1458
 msgid "A package provide string is required"
 msgstr "പാക്കേജ് ലഭ്യമാക്കുന്ന സ്ട്രിങ് ആവശ്യമുണ്ടു്"
 
@@ -736,7 +732,7 @@ msgid "A list file to open is required"
 msgstr "ലിസ്റ്റായി തുറക്കുവാനുള്ള ഫയലിന്റെ നാമം ആവശ്യമുണ്ടു്"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2483 ../client/pk-console-test.c:1619
+#: ../client/pk-console.c:2483 ../client/pk-console-test.c:1538
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "'%s' എന്ന ഐച്ഛികത്തിനുള്ള പിന്തുണ ലഭ്യമല്ല"
@@ -750,10 +746,59 @@ msgstr "à´ˆ പ്രക്രിയ നടപ്പിലാക്കുന്à
 #. /* TRANSLATORS: User does not have permission to do this */
 #. g_print ("%s\n", _("Incorrect privileges for this operation"));
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2499 ../client/pk-console-test.c:1631
+#: ../client/pk-console.c:2499 ../client/pk-console-test.c:1550
 msgid "Command failed"
 msgstr "നിര്‍ദ്ദേശം പരാജയപ്പെട്ടു"
 
+#. TRANSLATORS: more than one package could be found that matched, to follow is a list of possible packages
+#: ../client/pk-console-test.c:523 ../client/pk-tools-common.c:131
+msgid "More than one package matches:"
+msgstr "ഒന്നില്‍ കൂടുതല്‍ ചേരുന്ന പാക്കേജുകള്‍:"
+
+#. TRANSLATORS: This finds out which package in the list to use
+#: ../client/pk-console-test.c:532 ../client/pk-tools-common.c:138
+msgid "Please choose the correct package: "
+msgstr "ദയവായി ശരിയായ പാക്കേജ് തെരഞ്ഞെടുക്കുക: "
+
+#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
+#: ../client/pk-console-test.c:734
+#, c-format
+msgid "This tool could not find the 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-test.c:762
+#, 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-test.c:790 ../client/pk-console-test.c:818
+#, c-format
+msgid "This tool could not find the package: %s"
+msgstr "പാക്കേജ് കണ്ടുപിടിക്കുവാന്‍ ഈ പ്രയോഗത്തിനു് സാധ്യമായില്ല: %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-test.c:846 ../client/pk-console-test.c:872
+#: ../client/pk-console-test.c:898 ../client/pk-console-test.c:924
+#: ../client/pk-console-test.c:950
+#, c-format
+msgid "This tool could not find all the packages: %s"
+msgstr "എല്ലാ പാക്കേജുകളും കണ്ടുപിടിക്കുവാന്‍ ഈ പ്രയോഗത്തിനു് സാധ്യമായില്ല: %s"
+
+#. TRANSLATORS: the user did not specify what they wanted to install
+#: ../client/pk-console-test.c:1261
+msgid "A package name to install is required"
+msgstr "ഇന്‍സ്റ്റോള്‍ ചെയ്യുവാനുള്ള പാക്കേജിന്റെ പേരു് ആവശ്യമുണ്ടു്"
+
+#. TRANSLATORS: the user did not specify what they wanted to install
+#: ../client/pk-console-test.c:1270
+msgid "A filename to install is required"
+msgstr "ഇന്‍സ്റ്റോള്‍ ചെയ്യുവാനുള്ള ഫയലിന്റെ പേരു് ആവശ്യമുണ്ടു്"
+
 #. TRANSLATORS: This is the state of the transaction
 #: ../client/pk-generate-pack.c:103
 msgid "Downloading"
@@ -873,7 +918,7 @@ msgid "Failed to create '%s': %s"
 msgstr "'%s' ഉണ്ടാക്കുന്നതില്‍ പരാജയം: %s"
 
 #. TRANSLATORS: this is a program that monitors PackageKit
-#: ../client/pk-monitor.c:146
+#: ../client/pk-monitor.c:146 ../client/pk-monitor-test.c:299
 msgid "PackageKit Monitor"
 msgstr "പാക്കേജ്കിറ്റ് നിരീക്ഷകന്‍"
 
@@ -881,90 +926,98 @@ msgstr "പാക്കേജ്കിറ്റ് നിരീക്ഷകനàµ
 msgid "Cannot show the list of transactions"
 msgstr "ഇടപാടുകള്‍ കാണിക്കുവാന്‍ സാധ്യമല്ല"
 
+#: ../client/pk-monitor-test.c:204
+msgid "Failed to get transaction list"
+msgstr "ഇടപാടുകളുടെ പട്ടിക ലഭ്യമാക്കുന്നതില്‍ പരാജയം"
+
+#: ../client/pk-monitor-test.c:235
+msgid "Failed to get daemon state"
+msgstr "ഡെമണ്‍ അവസ്ഥ ലഭ്യമാക്കുന്നതില്‍ പരാജയം"
+
 #. ask the user
-#: ../client/pk-task-text.c:61
+#: ../client/pk-task-text.c:64
 msgid "Do you want to allow installing of unsigned software?"
 msgstr "ഒപ്പില്ലാത്ത സോഫ്റ്റ്‌വെയര്‍ നിങ്ങള്‍ക്കു് ഇന്‍സ്റ്റോള്‍ ചെയ്യണമോ?"
 
-#: ../client/pk-task-text.c:65
+#: ../client/pk-task-text.c:68
 msgid "The unsigned software will not be installed."
 msgstr "ഒപ്പിട്ടിട്ടില്ലാത്ത സോഫ്റ്റ്‌വെയര്‍ ഇന്‍സ്റ്റോള്‍ ചെയ്യുന്നതല്ല."
 
-#: ../client/pk-task-text.c:94
+#: ../client/pk-task-text.c:100
 msgid "Software source signature required"
 msgstr "സോഫ്റ്റ്‌വെയര്‍ സോഴ്സ് ഒപ്പു് ആവശ്യമുണ്ടു്"
 
-#: ../client/pk-task-text.c:96
+#: ../client/pk-task-text.c:102
 msgid "Software source name"
 msgstr "സോഫ്റ്റ്‌വെയര്‍ സോഴ്സിന്റെ പേരു്"
 
-#: ../client/pk-task-text.c:97
+#: ../client/pk-task-text.c:103
 msgid "Key URL"
 msgstr "കീ യുആര്‍എല്‍"
 
-#: ../client/pk-task-text.c:98
+#: ../client/pk-task-text.c:104
 msgid "Key user"
 msgstr "കീ ഉപയോക്താവു്"
 
-#: ../client/pk-task-text.c:99
+#: ../client/pk-task-text.c:105
 msgid "Key ID"
 msgstr "കീ ID"
 
-#: ../client/pk-task-text.c:100
+#: ../client/pk-task-text.c:106
 msgid "Key fingerprint"
 msgstr "കീ വിരലടയാളം"
 
-#: ../client/pk-task-text.c:101
+#: ../client/pk-task-text.c:107
 msgid "Key Timestamp"
 msgstr "കീ ടൈംസ്ടാമ്പ്"
 
-#: ../client/pk-task-text.c:142
+#: ../client/pk-task-text.c:151
 msgid "End user licence agreement required"
 msgstr "ഉപയോക്താവിനുള്ള ലൈസന്‍സ് സമ്മതപ്പത്രം ആവശ്യമുണ്ടു്"
 
-#: ../client/pk-task-text.c:143
+#: ../client/pk-task-text.c:152
 msgid "EULA ID"
 msgstr "EULA ID"
 
-#: ../client/pk-task-text.c:146
+#: ../client/pk-task-text.c:155
 msgid "Agreement"
 msgstr "സമ്മതപ്പത്രം"
 
 #. ask the user
-#: ../client/pk-task-text.c:152
+#: ../client/pk-task-text.c:161
 msgid "Do you accept this agreement?"
 msgstr "ഈ സമ്മതപ്പത്രം നിങ്ങള്‍ അംഗീകരിക്കുന്നുവോ?"
 
-#: ../client/pk-task-text.c:156
+#: ../client/pk-task-text.c:165
 msgid "The agreement was not accepted."
 msgstr "സമ്മതപ്പത്രം സ്വീകരിക്കുന്നില്ല."
 
-#: ../client/pk-task-text.c:182
+#: ../client/pk-task-text.c:194
 msgid "Media change required"
 msgstr "മീഡിയാ മാറ്റേണ്ടതുണ്ടു്"
 
-#: ../client/pk-task-text.c:183
+#: ../client/pk-task-text.c:195
 msgid "Media type"
 msgstr "മീഡിയാ തരം"
 
-#: ../client/pk-task-text.c:184
+#: ../client/pk-task-text.c:196
 msgid "Media ID"
 msgstr "മീഡിയാ ID "
 
-#: ../client/pk-task-text.c:185
+#: ../client/pk-task-text.c:197
 msgid "Text"
 msgstr "വാക്യം"
 
 #. ask the user
-#: ../client/pk-task-text.c:189
+#: ../client/pk-task-text.c:201
 msgid "Please insert the correct media"
 msgstr "ദയവായി ശരിയായ മീഡിയാ തെരഞ്ഞെടുക്കുക"
 
-#: ../client/pk-task-text.c:193
+#: ../client/pk-task-text.c:205
 msgid "The correct media was not inserted."
 msgstr "ശരിയായ മീഡിയാ നല്‍കിയിട്ടില്ല."
 
-#: ../client/pk-task-text.c:288
+#: ../client/pk-task-text.c:303
 msgid "The transaction did not proceed."
 msgstr "ഇടപാടു് തുടര്‍ന്നില്ല."
 
@@ -979,16 +1032,6 @@ msgstr "ദയവായി 1 മുതല്‍ %i വരെയുള്ള à´’à
 msgid "The package could not be found"
 msgstr "പാക്കേജ് ലഭ്യമായില്ല"
 
-#. TRANSLATORS: more than one package could be found that matched, to follow is a list of possible packages
-#: ../client/pk-tools-common.c:131
-msgid "More than one package matches:"
-msgstr "ഒന്നില്‍ കൂടുതല്‍ ചേരുന്ന പാക്കേജുകള്‍:"
-
-#. TRANSLATORS: This finds out which package in the list to use
-#: ../client/pk-tools-common.c:138
-msgid "Please choose the correct package: "
-msgstr "ദയവായി ശരിയായ പാക്കേജ് തെരഞ്ഞെടുക്കുക: "
-
 #. TRANSLATORS: when we are getting data from the daemon
 #: ../contrib/browser-plugin/pk-plugin-install.c:466
 msgid "Getting package information..."
commit 32ec2fb4742b3a1866f5bf81cae9f8625f6acaf4
Author: palos <palos at fedoraproject.org>
Date:   Sat Sep 5 16:05:33 2009 +0000

    Sending translation for Slovak

diff --git a/po/sk.po b/po/sk.po
index ac9c4cc..068036f 100644
--- a/po/sk.po
+++ b/po/sk.po
@@ -11,705 +11,820 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-08-24 11:06+0100\n"
+"POT-Creation-Date: 2009-09-05 08:29+0000\n"
 "PO-Revision-Date: 2009-03-24 23:07+0100\n"
 "Last-Translator: Pavol Å imo <palo.simo at gmail.com>\n"
 "Language-Team: Fedora Project <fedora-cs-list at redhat.com>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=utf-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural= (n==1) ? 1 : (n>=2 && n<=4) ? 2 : 0;\n"
 
 #. TRANSLATORS: this is an atomic transaction
-#: ../client/pk-console.c:235
+#: ../client/pk-console.c:238 ../client/pk-console-test.c:147
 msgid "Transaction"
 msgstr "Transakcia"
 
 #. TRANSLATORS: this is the time the transaction was started in system timezone
-#: ../client/pk-console.c:237
+#: ../client/pk-console.c:240 ../client/pk-console-test.c:149
 msgid "System time"
 msgstr "Čas systému"
 
 #. TRANSLATORS: this is if the transaction succeeded or not
-#: ../client/pk-console.c:239
+#: ../client/pk-console.c:242 ../client/pk-console-test.c:151
 msgid "Succeeded"
 msgstr "Úspešná"
 
-#. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:239 ../client/pk-console.c:406
+#: ../client/pk-console.c:242 ../client/pk-console-test.c:151
 msgid "True"
 msgstr "Áno"
 
-#: ../client/pk-console.c:239 ../client/pk-console.c:406
+#: ../client/pk-console.c:242 ../client/pk-console-test.c:151
 msgid "False"
 msgstr "Nie"
 
 #. TRANSLATORS: this is the transactions role, e.g. "update-system"
 #. TRANSLATORS: the trasaction role, e.g. update-system
-#: ../client/pk-console.c:241 ../src/pk-polkit-action-lookup.c:327
+#: ../client/pk-console.c:244 ../client/pk-console-test.c:153
+#: ../src/pk-polkit-action-lookup.c:327
 msgid "Role"
 msgstr "Rola"
 
 #. TRANSLATORS: this is The duration of the transaction
-#: ../client/pk-console.c:246
+#: ../client/pk-console.c:249 ../client/pk-console-test.c:158
 msgid "Duration"
 msgstr "Trvanie"
 
-#: ../client/pk-console.c:246
+#: ../client/pk-console.c:249 ../client/pk-console-test.c:158
 msgid "(seconds)"
 msgstr "(sekúnd)"
 
 #. TRANSLATORS: this is The command line used to do the action
 #. TRANSLATORS: the command line of the thing that wants the authentication
-#: ../client/pk-console.c:250 ../src/pk-polkit-action-lookup.c:341
+#: ../client/pk-console.c:253 ../client/pk-console-test.c:162
+#: ../src/pk-polkit-action-lookup.c:341
 msgid "Command line"
 msgstr "Príkazový riadok"
 
 #. TRANSLATORS: this is the user ID of the user that started the action
-#: ../client/pk-console.c:252
+#: ../client/pk-console.c:255 ../client/pk-console-test.c:164
 msgid "User ID"
 msgstr "ID používateľa"
 
 #. TRANSLATORS: this is the username, e.g. hughsie
-#: ../client/pk-console.c:259
+#: ../client/pk-console.c:262 ../client/pk-console-test.c:171
 msgid "Username"
 msgstr "Používateľské meno"
 
 #. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
-#: ../client/pk-console.c:263
+#: ../client/pk-console.c:266 ../client/pk-console-test.c:175
 msgid "Real name"
 msgstr "Plné meno"
 
-#: ../client/pk-console.c:271
+#: ../client/pk-console.c:274 ../client/pk-console-test.c:183
 msgid "Affected packages:"
 msgstr "Ovplyvnené balíčky:"
 
-#: ../client/pk-console.c:273
+#: ../client/pk-console.c:276 ../client/pk-console-test.c:185
 msgid "Affected packages: None"
 msgstr "Ovplyvnené balíčky: Žiadne"
 
+#. TRANSLATORS: When processing, we might have to remove other dependencies
+#: ../client/pk-console.c:337 ../client/pk-task-text.c:220
+msgid "The following packages have to be removed:"
+msgstr "Nasledujúce balíčky budú musieť byť odstránené:"
+
+#. TRANSLATORS: When processing, we might have to install other dependencies
+#: ../client/pk-console.c:340 ../client/pk-task-text.c:225
+msgid "The following packages have to be installed:"
+msgstr "Nasledujúce balíčky budú musieť byť nainštalované:"
+
+#. TRANSLATORS: When processing, we might have to update other dependencies
+#: ../client/pk-console.c:343 ../client/pk-task-text.c:230
+msgid "The following packages have to be updated:"
+msgstr "Nasledujúce balíčky budú musieť byť aktualizované:"
+
+#. TRANSLATORS: When processing, we might have to reinstall other dependencies
+#: ../client/pk-console.c:346 ../client/pk-task-text.c:235
+msgid "The following packages have to be reinstalled:"
+msgstr "Nasledujúce balíčky budú musieť byť preinštalované:"
+
+#. TRANSLATORS: When processing, we might have to downgrade other dependencies
+#: ../client/pk-console.c:349 ../client/pk-task-text.c:240
+msgid "The following packages have to be downgraded:"
+msgstr "Nasledujúcim balíčkom bude musieť byť znížené číslo verzie:"
+
 #. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:298
+#: ../client/pk-console.c:363 ../client/pk-console-test.c:205
 msgid "Distribution"
 msgstr "Distribúcia"
 
 #. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:300
+#: ../client/pk-console.c:365 ../client/pk-console-test.c:207
 msgid "Type"
 msgstr "Typ"
 
 #. TRANSLATORS: this is any summary text describing the upgrade
 #. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:302 ../client/pk-console.c:325
+#. TRANSLATORS: this is any summary text describing the upgrade
+#. TRANSLATORS: this is the summary of the group
+#: ../client/pk-console.c:367 ../client/pk-console.c:390
+#: ../client/pk-console-test.c:209 ../client/pk-console-test.c:230
 msgid "Summary"
 msgstr "Zhrnutie"
 
 #. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:314
+#: ../client/pk-console.c:379 ../client/pk-console-test.c:219
 msgid "Category"
 msgstr "Kategória"
 
 #. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:316
+#: ../client/pk-console.c:381 ../client/pk-console-test.c:221
 msgid "ID"
 msgstr "ID"
 
 #. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:319
+#: ../client/pk-console.c:384 ../client/pk-console-test.c:224
 msgid "Parent"
 msgstr "Rodič"
 
 #. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:322
+#: ../client/pk-console.c:387 ../client/pk-console-test.c:227
 msgid "Name"
 msgstr "Názov"
 
 #. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:328
+#: ../client/pk-console.c:393 ../client/pk-console-test.c:233
 msgid "Icon"
 msgstr "Ikona"
 
 #. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:343
+#: ../client/pk-console.c:408 ../client/pk-console-test.c:247
 msgid "Details about the update:"
 msgstr "Podrobnosti o aktualizácii:"
 
 #. TRANSLATORS: details about the update, package name and version
 #. TRANSLATORS: title, the names of the packages that the method is processing
-#: ../client/pk-console.c:345 ../src/pk-polkit-action-lookup.c:352
-#, fuzzy
+#: ../client/pk-console.c:410 ../client/pk-console-test.c:253
+#: ../client/pk-task-text.c:101 ../client/pk-task-text.c:153
+#: ../src/pk-polkit-action-lookup.c:352
 msgid "Package"
 msgid_plural "Packages"
-msgstr[0] "Balíček"
+msgstr[0] "Balíčky"
 msgstr[1] "Balíček"
+msgstr[2] "Balíčky"
 
 #. TRANSLATORS: details about the update, any packages that this update updates
-#: ../client/pk-console.c:348
+#: ../client/pk-console.c:413 ../client/pk-console-test.c:256
 msgid "Updates"
 msgstr "Aktualizuje"
 
 #. TRANSLATORS: details about the update, any packages that this update obsoletes
-#: ../client/pk-console.c:352
+#: ../client/pk-console.c:417 ../client/pk-console-test.c:260
 msgid "Obsoletes"
 msgstr "Nahrádza"
 
 #. TRANSLATORS: details about the update, the vendor URLs
-#: ../client/pk-console.c:356
+#: ../client/pk-console.c:421 ../client/pk-console-test.c:264
+#: ../client/pk-task-text.c:154
 msgid "Vendor"
 msgstr "Dodávateľ"
 
 #. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:360
+#: ../client/pk-console.c:425 ../client/pk-console-test.c:268
 msgid "Bugzilla"
 msgstr "Bugzilla"
 
 #. TRANSLATORS: details about the update, the CVE URLs
-#: ../client/pk-console.c:364
+#: ../client/pk-console.c:429 ../client/pk-console-test.c:272
 msgid "CVE"
 msgstr "CVE"
 
 #. TRANSLATORS: details about the update, if the package requires a restart
-#: ../client/pk-console.c:368
+#: ../client/pk-console.c:433 ../client/pk-console-test.c:276
 msgid "Restart"
 msgstr "Reštart"
 
 #. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:372
+#: ../client/pk-console.c:437 ../client/pk-console-test.c:280
 msgid "Update text"
 msgstr "Text aktualizácie"
 
 #. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:376
+#: ../client/pk-console.c:441 ../client/pk-console-test.c:284
 msgid "Changes"
 msgstr "Zmeny"
 
 #. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:380
+#: ../client/pk-console.c:445 ../client/pk-console-test.c:288
 msgid "State"
 msgstr "Stav"
 
 #. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:385
+#: ../client/pk-console.c:450 ../client/pk-console-test.c:293
 msgid "Issued"
 msgstr "Vydané"
 
 #. TRANSLATORS: details about the update, date the update was updated
-#: ../client/pk-console.c:390
+#: ../client/pk-console.c:455 ../client/pk-console-test.c:298
 msgid "Updated"
 msgstr "Aktualizované"
 
-#: ../client/pk-console.c:477 ../client/pk-console.c:479
+#. TRANSLATORS: if the repo is enabled
+#: ../client/pk-console.c:475 ../client/pk-console-test.c:316
+msgid "Enabled"
+msgstr "Povolený"
+
+#. TRANSLATORS: if the repo is disabled
+#: ../client/pk-console.c:478 ../client/pk-console-test.c:319
+msgid "Disabled"
+msgstr "Zakázaný"
+
+#: ../client/pk-console.c:555 ../client/pk-console.c:557
 msgid "Percentage"
 msgstr "Počet percent"
 
-#: ../client/pk-console.c:479
+#: ../client/pk-console.c:557
 msgid "Unknown"
 msgstr "Neznámy"
 
 #. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:521
+#: ../client/pk-console.c:599 ../client/pk-console-test.c:341
 msgid "System restart required by:"
 msgstr "Reštart systému vyžaduje:"
 
 #. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:524
+#: ../client/pk-console.c:602 ../client/pk-console-test.c:344
 msgid "Session restart required:"
 msgstr "Reštart relácie vyžaduje:"
 
 #. TRANSLATORS: a package requires the system to be restarted due to a security update
-#: ../client/pk-console.c:527
-#, fuzzy
+#: ../client/pk-console.c:605 ../client/pk-console-test.c:347
 msgid "System restart (security) required by:"
-msgstr "Reštart systému vyžaduje:"
+msgstr "Reštart systému (kvôli bezpečnosti) vyžaduje:"
 
 #. TRANSLATORS: a package requires the session to be restarted due to a security update
-#: ../client/pk-console.c:530
-#, fuzzy
+#: ../client/pk-console.c:608 ../client/pk-console-test.c:350
 msgid "Session restart (security) required:"
-msgstr "Reštart relácie vyžaduje:"
+msgstr "Reštart relácie (kvôli bezpečnosti) vyžaduje:"
 
 #. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:533
+#: ../client/pk-console.c:611 ../client/pk-console-test.c:353
 msgid "Application restart required by:"
 msgstr "Reštart aplikácie vyžaduje:"
 
 #. TRANSLATORS: a package needs to restart their system
-#: ../client/pk-console.c:588
+#: ../client/pk-console.c:666 ../client/pk-console-test.c:704
 msgid "Please restart the computer to complete the update."
 msgstr "Pre dokončenie aktualizácie reštartujte počítač."
 
 #. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:591
+#: ../client/pk-console.c:669 ../client/pk-console-test.c:707
 msgid "Please logout and login to complete the update."
 msgstr "Pre dokončenie aktualizácie sa odhláste a znovu prihláste."
 
 #. TRANSLATORS: a package needs to restart the application
-#: ../client/pk-console.c:594
+#: ../client/pk-console.c:672
 msgid "Please restart the application as it is being used."
 msgstr "Reštartujte aplikáciu, pretože sa momentálne používa."
 
 #. TRANSLATORS: a package needs to restart their system (due to security)
-#: ../client/pk-console.c:597
-#, fuzzy
+#: ../client/pk-console.c:675 ../client/pk-console-test.c:710
 msgid ""
 "Please restart the computer to complete the update as important security "
 "updates have been installed."
-msgstr "Pre dokončenie aktualizácie reštartujte počítač."
+msgstr "Na dokončenie aktualizácie prosím reštartujte počítač, pretože boli "
+"nainštalované dôležité bezpečnostné aktualizácie."
 
 #. TRANSLATORS: a package needs to restart the session (due to security)
-#: ../client/pk-console.c:600
-#, fuzzy
+#: ../client/pk-console.c:678 ../client/pk-console-test.c:713
 msgid ""
 "Please logout and login to complete the update as important security updates "
 "have been installed."
-msgstr "Pre dokončenie aktualizácie sa odhláste a znovu prihláste."
+msgstr ""
+"Na dokončenie aktualizácie sa prosím odhláste a znovu prihláste, pretože boli "
+"nainštalované dôležité bezpečnostné aktualizácie."
 
 #. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:727
+#: ../client/pk-console.c:810
 #, c-format
 msgid "The package %s is already installed"
 msgstr "Balíček %s je už nainštalovaný"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:735
+#: ../client/pk-console.c:818
 #, c-format
 msgid "The package %s could not be installed: %s"
 msgstr "Balíček %s nemôže byť nainštalovaný: %s"
 
 #. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
-#: ../client/pk-console.c:760 ../client/pk-console.c:783
-#: ../client/pk-console.c:879 ../client/pk-console.c:996
-#: ../client/pk-tools-common.c:62 ../client/pk-tools-common.c:81
-#: ../client/pk-tools-common.c:89
+#: ../client/pk-console.c:844 ../client/pk-console.c:892
+#: ../client/pk-console.c:916 ../client/pk-console.c:964
+#: ../client/pk-console.c:1060 ../client/pk-console.c:1173
+#: ../client/pk-console.c:1234 ../client/pk-tools-common.c:63
+#: ../client/pk-tools-common.c:82 ../client/pk-tools-common.c:90
 #, c-format
 msgid "Internal error: %s"
 msgstr "Vnútorná chyba: %s"
 
+#. TRANSLATORS: We are checking if it's okay to remove a list of packages
+#. ask the user
+#: ../client/pk-console.c:876 ../client/pk-console.c:948
+#: ../client/pk-console.c:1266 ../client/pk-task-text.c:299
+msgid "Proceed with changes?"
+msgstr "Vykonať zmeny?"
+
+#. TRANSLATORS: There was an error removing the packages. The detailed error follows
+#: ../client/pk-console.c:881 ../client/pk-console.c:953
+msgid "The package install was canceled!"
+msgstr "Inštalovanie balíčkov bolo zrušené!"
+
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:768 ../client/pk-console.c:1392
+#: ../client/pk-console.c:900 ../client/pk-console.c:1634
 #, c-format
 msgid "This tool could not install the packages: %s"
 msgstr "Nepodarilo sa nainštalovať balíčky: %s"
 
 #. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:791
+#: ../client/pk-console.c:972
 #, c-format
 msgid "This tool could not install the files: %s"
 msgstr "Nepodarilo sa nainštalovať súbory: %s"
 
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:847
+#: ../client/pk-console.c:1028
 #, c-format
 msgid "This tool could not remove %s: %s"
 msgstr "Nepodarilo sa odstrániť %s: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:870 ../client/pk-console.c:908
-#: ../client/pk-console.c:941
+#: ../client/pk-console.c:1051 ../client/pk-console.c:1089
+#: ../client/pk-console.c:1118
 #, c-format
 msgid "This tool could not remove the packages: %s"
 msgstr "Nepodarilo sa odstrániť balíčky: %s"
 
-#. TRANSLATORS: When removing, we might have to remove other dependencies
-#: ../client/pk-console.c:920
-msgid "The following packages have to be removed:"
-msgstr "Nasledujúce balíčky budú musieť byť odstránené:"
-
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:927
-msgid "Proceed removing additional packages?"
-msgstr "Pokračovať a odstrániť doplnkové balíčky?"
+#: ../client/pk-console.c:1104
+msgid "Proceed with additional packages?"
+msgstr "Pokračovať s doplnkovými balíčkami?"
 
-#. TRANSLATORS: We did not remove any packages
-#: ../client/pk-console.c:932
+#. TRANSLATORS: There was an error removing the packages. The detailed error follows
+#: ../client/pk-console.c:1109
 msgid "The package removal was canceled!"
 msgstr "Odstránenie balíčkov bolo zrušené!"
 
 #. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:973
+#: ../client/pk-console.c:1150
 #, c-format
 msgid "This tool could not download the package %s as it could not be found"
 msgstr "Nepodarilo sa získať balíček %s, balíček nebol nájdený"
 
 #. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:1004
+#: ../client/pk-console.c:1181
 #, c-format
 msgid "This tool could not download the packages: %s"
 msgstr "Nepodarilo sa získať balíčky: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1031 ../client/pk-console.c:1040
+#: ../client/pk-console.c:1213 ../client/pk-console.c:1225
+#: ../client/pk-console.c:1280
 #, c-format
 msgid "This tool could not update %s: %s"
 msgstr "Nepodarilo sa aktualizovať %s: %s"
 
+#. TRANSLATORS: There was an error removing the packages. The detailed error follows
+#: ../client/pk-console.c:1271
+msgid "The package update was canceled!"
+msgstr "Aktualizácia balíčkov bola zrušená!"
+
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1062 ../client/pk-console.c:1070
+#: ../client/pk-console.c:1304 ../client/pk-console.c:1312
 #, c-format
 msgid "This tool could not get the requirements for %s: %s"
 msgstr "Nepodarilo sa získať požiadavky balíčka %s: %s"
 
 #. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:1092 ../client/pk-console.c:1100
+#: ../client/pk-console.c:1334 ../client/pk-console.c:1342
 #, c-format
 msgid "This tool could not get the dependencies for %s: %s"
 msgstr "Nepodarilo sa získať závislosti pre %s: %s"
 
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:1122 ../client/pk-console.c:1130
+#: ../client/pk-console.c:1364 ../client/pk-console.c:1372
 #, c-format
 msgid "This tool could not get package details for %s: %s"
 msgstr "Nepodarilo sa získať detaily o balíčku %s: %s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1152
+#: ../client/pk-console.c:1394
 #, c-format
 msgid "This tool could not find the files for %s: %s"
 msgstr "Nepodarilo sa nájsť zoznam súborov balíčka %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1160
+#: ../client/pk-console.c:1402
 #, c-format
 msgid "This tool could not get the file list for %s: %s"
 msgstr "Nepodarilo sa získať zoznam súborov balíčka %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of packages. The filename follows
-#: ../client/pk-console.c:1182
+#: ../client/pk-console.c:1424
 #, c-format
 msgid "File already exists: %s"
 msgstr "Súbor už existuje: %s"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1187 ../client/pk-console.c:1243
-#: ../client/pk-console.c:1318
+#: ../client/pk-console.c:1429 ../client/pk-console.c:1485
+#: ../client/pk-console.c:1560
 msgid "Getting package list"
 msgstr "Získavanie zoznamu balíčkov"
 
 #. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1193 ../client/pk-console.c:1249
-#: ../client/pk-console.c:1324
+#: ../client/pk-console.c:1435 ../client/pk-console.c:1491
+#: ../client/pk-console.c:1566
 #, c-format
 msgid "This tool could not get package list: %s"
 msgstr "Nepodarilo sa získať zoznam balíčkov: %s"
 
 # XXX
 #. TRANSLATORS: There was an error saving the list
-#: ../client/pk-console.c:1204
+#: ../client/pk-console.c:1446
 #, c-format
 msgid "Failed to save to disk"
 msgstr "Nebolo možné uložiť na disk"
 
 #. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1238 ../client/pk-console.c:1313
+#: ../client/pk-console.c:1480 ../client/pk-console.c:1555
 #, c-format
 msgid "File does not exist: %s"
 msgstr "Súbor neexistuje: %s"
 
 #. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1270
+#: ../client/pk-console.c:1512
 msgid "Packages to add"
 msgstr "Balíčky na pridanie"
 
 #. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1278
+#: ../client/pk-console.c:1520
 msgid "Packages to remove"
 msgstr "Balíčky na odobratie"
 
 #. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1346
+#: ../client/pk-console.c:1588
 #, c-format
 msgid "No new packages need to be installed"
 msgstr "Žiadne nové balíčky nemusia byť nainštalované"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1352
+#: ../client/pk-console.c:1594
 msgid "To install"
 msgstr "Nainštalovať"
 
 #. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1364
+#: ../client/pk-console.c:1606
 msgid "Searching for package: "
 msgstr "Vyhľadávanie balíčka: "
 
 #. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1368
+#: ../client/pk-console.c:1610
 msgid "not found."
 msgstr "nenájdený."
 
 #. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1379
+#: ../client/pk-console.c:1621
 #, c-format
 msgid "No packages can be found to install"
 msgstr "Neboli nájdené žiadne balíčky pre nainštalovanie"
 
 #. TRANSLATORS: installing new packages from package list
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
-#: ../client/pk-console.c:1385
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:886
+#: ../client/pk-console.c:1627
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:885
 #, c-format
 msgid "Installing packages"
 msgstr "Inštalovanie balíčkov"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1421
+#: ../client/pk-console.c:1663
 #, c-format
 msgid "This tool could not find the update details for %s: %s"
 msgstr "Nepodarilo sa nájsť detaily aktualizácie pre %s: %s"
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1429
+#: ../client/pk-console.c:1671
 #, c-format
 msgid "This tool could not get the update details for %s: %s"
 msgstr "Nepodarilo sa získať detaily aktualizácie pre %s: %s"
 
 #. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
-#: ../client/pk-console.c:1460
+#: ../client/pk-console.c:1702
 msgid "Error:"
 msgstr "Chyba:"
 
 #. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1474
+#: ../client/pk-console.c:1716 ../client/pk-console-test.c:370
 msgid "Package description"
 msgstr "Popis balíčka"
 
 #. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
-#: ../client/pk-console.c:1490
+#: ../client/pk-console.c:1732 ../client/pk-console-test.c:388
 msgid "Message:"
-msgstr ""
+msgstr "Správa:"
 
 #. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1518
+#: ../client/pk-console.c:1760 ../client/pk-console-test.c:407
 msgid "Package files"
 msgstr "Zonam súborov v balíčku"
 
 #. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1526
+#: ../client/pk-console.c:1768 ../client/pk-console-test.c:402
 msgid "No files"
 msgstr "Žiadne súbory"
 
 #. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1549
+#: ../client/pk-console.c:1791
 msgid "Repository signature required"
 msgstr "Požadovaný podpis repozitára"
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1559
+#. ask the user
+#: ../client/pk-console.c:1801 ../client/pk-task-text.c:113
 msgid "Do you accept this signature?"
 msgstr "Akceptujete tento podpis?"
 
 #. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1563
+#: ../client/pk-console.c:1805 ../client/pk-task-text.c:117
 msgid "The signature was not accepted."
 msgstr "Podpis nebol prijatý."
 
 #. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1597
+#: ../client/pk-console.c:1839
 msgid "End user license agreement required"
 msgstr "Požadovaný je súhlas s licenciou"
 
 #. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1604
+#: ../client/pk-console.c:1846
 msgid "Do you agree to this license?"
 msgstr "Súhlasíte s touto licenciou?"
 
 #. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1608
+#: ../client/pk-console.c:1850
 msgid "The license was refused."
 msgstr "Licencia bola odmietnutá."
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1637
+#: ../client/pk-console.c:1879 ../client/pk-console-test.c:972
 msgid "The daemon crashed mid-transaction!"
 msgstr "Služba na pozadí neočakávne skončila počas transakcie!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1690
+#: ../client/pk-console.c:1932 ../client/pk-console-test.c:1006
 msgid "PackageKit Console Interface"
 msgstr "Konzola PackageKit"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1692
+#: ../client/pk-console.c:1934 ../client/pk-console-test.c:1008
 msgid "Subcommands:"
 msgstr "Podpríkazy:"
 
 #. TRANSLATORS: command line argument, if we should show debugging information
 #. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:1785 ../client/pk-generate-pack.c:185
-#: ../client/pk-monitor.c:128
+#: ../client/pk-console.c:2027 ../client/pk-console-test.c:1099
+#: ../client/pk-generate-pack.c:187 ../client/pk-monitor.c:128
+#: ../client/pk-monitor-test.c:282
 #: ../contrib/command-not-found/pk-command-not-found.c:616
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:550
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:549
 #: ../contrib/device-rebind/pk-device-rebind.c:293 ../src/pk-main.c:211
 msgid "Show extra debugging information"
 msgstr "Zobrazovať dodatočné ladiace informácie"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1788 ../client/pk-monitor.c:130
+#: ../client/pk-console.c:2030 ../client/pk-console-test.c:1102
+#: ../client/pk-monitor.c:130 ../client/pk-monitor-test.c:284
 msgid "Show the program version and exit"
 msgstr "Zobraziť verziu programu a skončiť"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1791
+#: ../client/pk-console.c:2033 ../client/pk-console-test.c:1105
 msgid "Set the filter, e.g. installed"
 msgstr "Nastaviť filter, napríklad \"nainštalované\""
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1794
+#: ../client/pk-console.c:2036 ../client/pk-console-test.c:1108
 msgid "Exit without waiting for actions to complete"
 msgstr "Nečakať na dokončenie úloh a skončiť"
 
 #. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:1821
+#: ../client/pk-console.c:2063
 msgid "This tool could not connect to system DBUS."
 msgstr "Pokus o pripojenie k systémovej zbernici DBUS neuspel."
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1911
+#: ../client/pk-console.c:2153 ../client/pk-console-test.c:1183
 msgid "The filter specified was invalid"
 msgstr "Zadaný filter nebol platný"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1930
+#: ../client/pk-console.c:2172 ../client/pk-console-test.c:1202
 msgid "A search type is required, e.g. name"
 msgstr "Je potrebný typ hľadania, napr. názov"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1937 ../client/pk-console.c:1946
-#: ../client/pk-console.c:1955 ../client/pk-console.c:1964
+#: ../client/pk-console.c:2179 ../client/pk-console.c:2188
+#: ../client/pk-console.c:2197 ../client/pk-console.c:2206
+#: ../client/pk-console-test.c:1209 ../client/pk-console-test.c:1221
+#: ../client/pk-console-test.c:1233 ../client/pk-console-test.c:1245
 msgid "A search term is required"
 msgstr "Je potrebný vyhľadávací reťazec"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1971
+#: ../client/pk-console.c:2213 ../client/pk-console-test.c:1255
 msgid "Invalid search type"
 msgstr "Neplatný typ vyhľadávania"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1977
+#: ../client/pk-console.c:2219
 msgid "A package name or filename to install is required"
 msgstr "Je potrebný názov balíčka alebo súboru na inštalovanie"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1986
+#: ../client/pk-console.c:2228 ../client/pk-console-test.c:1282
 msgid "A type, key_id and package_id are required"
 msgstr "Je potrebné určiť typ, key_id a package_id"
 
 #. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:1995
+#: ../client/pk-console.c:2237 ../client/pk-console-test.c:1293
 msgid "A package name to remove is required"
 msgstr "Je potrebný názov balíčka na odstránenie"
 
 #. TRANSLATORS: the user did not specify anything about what to download or where
-#: ../client/pk-console.c:2003
-#, fuzzy
+#: ../client/pk-console.c:2245 ../client/pk-console-test.c:1302
 msgid "A destination directory and the package names to download are required"
-msgstr ""
-"Je potrebné určiť cieľový priečinok a následne názvy balíčkov na stiahnutie"
+msgstr "Je potrebné určiť cieľový priečinok a názvy balíčkov na stiahnutie"
 
 #. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:2010
+#: ../client/pk-console.c:2252 ../client/pk-console-test.c:1309
 msgid "Directory not found"
 msgstr "Priečinok nenájdený"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2018
+#: ../client/pk-console.c:2260 ../client/pk-console-test.c:1318
 msgid "A licence identifier (eula-id) is required"
 msgstr "Je potrebný identifikátor licencie (eula-id)"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2028
+#: ../client/pk-console.c:2270 ../client/pk-console-test.c:1329
 msgid "A transaction identifier (tid) is required"
 msgstr "Je potrebný identifikátor transakcie (tid)"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:2045
+#: ../client/pk-console.c:2287 ../client/pk-console-test.c:1350
 msgid "A package name to resolve is required"
 msgstr "Je potrebný názov balíčka na rozvinutie"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:2054 ../client/pk-console.c:2063
+#: ../client/pk-console.c:2296 ../client/pk-console.c:2305
+#: ../client/pk-console-test.c:1361 ../client/pk-console-test.c:1372
 msgid "A repository name is required"
 msgstr "Je potrebný názov repozitára"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2072
+#: ../client/pk-console.c:2314 ../client/pk-console-test.c:1383
 msgid "A repo name, parameter and value are required"
 msgstr "Je potrebné určiť názov repozitára, parameter a hodnotu"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:2086
+#: ../client/pk-console.c:2328 ../client/pk-console-test.c:1401
 msgid "An action, e.g. 'update-system' is required"
 msgstr "Je potrebná akcia, napr. 'update-system'"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:2093
+#: ../client/pk-console.c:2335 ../client/pk-console-test.c:1408
 msgid "A correct role is required"
 msgstr "Je potrebná správna rola"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2100
+#: ../client/pk-console.c:2342 ../client/pk-console-test.c:1415
 msgid "Failed to get the time since this action was last completed"
 msgstr "Získanie času od ukončenia tejto akcie zlyhalo"
 
 #. TRANSLATORS: The user did not provide a package name
 #. TRANSLATORS: This is when the user fails to supply the package name
-#: ../client/pk-console.c:2110 ../client/pk-console.c:2122
-#: ../client/pk-console.c:2131 ../client/pk-console.c:2149
-#: ../client/pk-console.c:2158 ../client/pk-generate-pack.c:241
+#: ../client/pk-console.c:2352 ../client/pk-console.c:2364
+#: ../client/pk-console.c:2373 ../client/pk-console.c:2391
+#: ../client/pk-console.c:2400 ../client/pk-console-test.c:1425
+#: ../client/pk-console-test.c:1440 ../client/pk-console-test.c:1449
+#: ../client/pk-console-test.c:1469 ../client/pk-console-test.c:1478
+#: ../client/pk-generate-pack.c:243
 msgid "A package name is required"
 msgstr "Je potrebný názov balíčka"
 
 #. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:2140
+#: ../client/pk-console.c:2382 ../client/pk-console-test.c:1458
 msgid "A package provide string is required"
 msgstr "Je potrebný reťazec poskytovania"
 
 #. TRANSLATORS: The user didn't specify a filename to create as a list
-#: ../client/pk-console.c:2167
+#: ../client/pk-console.c:2409
 msgid "A list file name to create is required"
 msgstr "Je potrebný názov súboru zoznamu na vytvorenie"
 
 #. TRANSLATORS: The user didn't specify a filename to open as a list
-#: ../client/pk-console.c:2177 ../client/pk-console.c:2187
+#: ../client/pk-console.c:2419 ../client/pk-console.c:2429
 msgid "A list file to open is required"
 msgstr "Je potrebný názov súboru zoznamu na otvorenie"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2241
+#: ../client/pk-console.c:2483 ../client/pk-console-test.c:1538
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "Voľba '%s' nie je podporovaná"
 
 #. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2254
+#: ../client/pk-console.c:2496
 msgid "Incorrect privileges for this operation"
 msgstr "Nedostatočné privilégiá na vykonanie tejto úlohy"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2257
+#. /* TRANSLATORS: User does not have permission to do this */
+#. g_print ("%s\n", _("Incorrect privileges for this operation"));
+#. TRANSLATORS: Generic failure of what they asked to do
+#: ../client/pk-console.c:2499 ../client/pk-console-test.c:1550
 msgid "Command failed"
 msgstr "Príkaz neuspel"
 
+#. TRANSLATORS: more than one package could be found that matched, to follow is a list of possible packages
+#: ../client/pk-console-test.c:523 ../client/pk-tools-common.c:131
+msgid "More than one package matches:"
+msgstr "Zadaniu vyhovuje viac balíčkov:"
+
+#. TRANSLATORS: This finds out which package in the list to use
+#: ../client/pk-console-test.c:532 ../client/pk-tools-common.c:138
+msgid "Please choose the correct package: "
+msgstr "Zadajte prosím správny balíček: "
+
+#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
+#: ../client/pk-console-test.c:734
+#, c-format
+msgid "This tool could not find the available package: %s"
+msgstr "Nepodarilo sa nájsť dostupný balíček: %s"
+
+#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
+#: ../client/pk-console-test.c:762
+#, c-format
+msgid "This tool could not find the installed package: %s"
+msgstr "Nepodarilo sa nájsť nainštalovaný balíček: %s"
+
+#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
+#: ../client/pk-console-test.c:790 ../client/pk-console-test.c:818
+#, c-format
+msgid "This tool could not find the package: %s"
+msgstr "Nepodarilo sa nájsť balíček: %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-test.c:846 ../client/pk-console-test.c:872
+#: ../client/pk-console-test.c:898 ../client/pk-console-test.c:924
+#: ../client/pk-console-test.c:950
+#, c-format
+msgid "This tool could not find all the packages: %s"
+msgstr "Nepodarilo sa nájsť všetky balíčky: %s"
+
+#. TRANSLATORS: the user did not specify what they wanted to install
+#: ../client/pk-console-test.c:1261
+msgid "A package name to install is required"
+msgstr "Je potrebný názov balíčka na inštalovanie"
+
+#. TRANSLATORS: the user did not specify what they wanted to install
+#: ../client/pk-console-test.c:1270
+msgid "A filename to install is required"
+msgstr "Je potrebný názov súboru na inštalovanie"
+
 #. TRANSLATORS: This is the state of the transaction
-#: ../client/pk-generate-pack.c:101
+#: ../client/pk-generate-pack.c:103
 msgid "Downloading"
 msgstr "Získavanie"
 
 #. TRANSLATORS: This is when the main packages are being downloaded
-#: ../client/pk-generate-pack.c:121
+#: ../client/pk-generate-pack.c:123
 msgid "Downloading packages"
 msgstr "Získavanie balíčkov"
 
 #. TRANSLATORS: This is when the dependency packages are being downloaded
-#: ../client/pk-generate-pack.c:126
+#: ../client/pk-generate-pack.c:128
 msgid "Downloading dependencies"
 msgstr "Získavanie závislostí"
 
 #. TRANSLATORS: we can exclude certain packages (glibc) when we know they'll exist on the target
-#: ../client/pk-generate-pack.c:188
+#: ../client/pk-generate-pack.c:190
 msgid "Set the file name of dependencies to be excluded"
 msgstr "Nastavte názov súboru so závislosťami, ktoré sa majú vynechať"
 
 #. TRANSLATORS: the output location
-#: ../client/pk-generate-pack.c:191
+#: ../client/pk-generate-pack.c:193
 msgid ""
 "The output file or directory (the current directory is used if ommitted)"
 msgstr ""
@@ -717,128 +832,216 @@ msgstr ""
 "priečinok)"
 
 #. TRANSLATORS: put a list of packages in the pack
-#: ../client/pk-generate-pack.c:194
+#: ../client/pk-generate-pack.c:196
 msgid "The package to be put into the service pack"
 msgstr "Balíček ktorý sa má uložiť do servisného archívu"
 
 #. TRANSLATORS: put all pending updates in the pack
-#: ../client/pk-generate-pack.c:197
+#: ../client/pk-generate-pack.c:199
 msgid "Put all updates available in the service pack"
 msgstr "Vložiť do servisného archívu všetky dostupné aktualizácie"
 
 #. TRANSLATORS: This is when the user fails to supply the correct arguments
-#: ../client/pk-generate-pack.c:225
+#: ../client/pk-generate-pack.c:227
 msgid "Neither --package or --updates option selected."
 msgstr "Nezvolená ani voľba --package ani voľba --updates."
 
 #. TRANSLATORS: This is when the user fails to supply just one argument
-#: ../client/pk-generate-pack.c:233
+#: ../client/pk-generate-pack.c:235
 msgid "Both options selected."
 msgstr "Obidve voľby boli určené."
 
 #. TRANSLATORS: This is when the user fails to supply the output
-#: ../client/pk-generate-pack.c:249
+#: ../client/pk-generate-pack.c:251
 msgid "A output directory or file name is required"
 msgstr "Je potrebný názov výstupného priečinka alebo súboru"
 
 #. TRANSLATORS: This is when the backend doesn't have the capability to get-depends
 #. TRANSLATORS: This is when the backend doesn't have the capability to download
-#: ../client/pk-generate-pack.c:267 ../client/pk-generate-pack.c:273
+#: ../client/pk-generate-pack.c:269 ../client/pk-generate-pack.c:275
 msgid "The package manager cannot perform this type of operation."
 msgstr "Správca balíčkov nemôže vykonať tento druh operácie."
 
 #. TRANSLATORS: This is when the distro didn't include libarchive support into PK
-#: ../client/pk-generate-pack.c:280
+#: ../client/pk-generate-pack.c:282
 msgid ""
 "Service packs cannot be created as PackageKit was not built with libarchive "
 "support."
-msgstr ""
+msgstr "Nie je možné vytvárať servisné archívy, pretože PackageKit nebol "
+"zostavený s podporou libarchive."
 
 #. TRANSLATORS: the user specified an absolute path, but didn't get the extension correct
-#: ../client/pk-generate-pack.c:291
+#: ../client/pk-generate-pack.c:293
 msgid "If specifying a file, the service pack name must end with"
 msgstr "Pri určovaní súboru musí názov servisného archívu končiť na"
 
 #. TRANSLATORS: This is when file already exists
-#: ../client/pk-generate-pack.c:307
+#: ../client/pk-generate-pack.c:309
 msgid "A pack with the same name already exists, do you want to overwrite it?"
 msgstr "Archív s rovnakým názvom už existuje, chcete ho nahradiť?"
 
 #. TRANSLATORS: This is when the pack was not overwritten
-#: ../client/pk-generate-pack.c:310
+#: ../client/pk-generate-pack.c:312
 msgid "The pack was not overwritten."
 msgstr "Archív nebol prepísaný."
 
 # XXX
 #. TRANSLATORS: This is when the temporary directory cannot be created, the directory name follows
-#: ../client/pk-generate-pack.c:323
+#: ../client/pk-generate-pack.c:325
 msgid "Failed to create directory:"
 msgstr "Nepodarilo sa vytvoriť priečinok:"
 
 # XXX
 #. TRANSLATORS: This is when the list of packages from the remote computer cannot be opened
-#: ../client/pk-generate-pack.c:333
+#: ../client/pk-generate-pack.c:335
 msgid "Failed to open package list."
 msgstr "Nepodarilo sa otvoriť zoznam balíčkov."
 
 #. TRANSLATORS: The package name is being matched up to available packages
-#: ../client/pk-generate-pack.c:344
+#: ../client/pk-generate-pack.c:346
 msgid "Finding package name."
 msgstr "Hľadanie názvu balíčka."
 
 #. TRANSLATORS: This is when the package cannot be found in any software source. The detailed error follows
-#: ../client/pk-generate-pack.c:348
+#: ../client/pk-generate-pack.c:350
 #, c-format
 msgid "Failed to find package '%s': %s"
 msgstr "Nepodarilo sa nájsť balíček '%s': %s"
 
 #. TRANSLATORS: This is telling the user we are in the process of making the pack
-#: ../client/pk-generate-pack.c:365
+#: ../client/pk-generate-pack.c:367
 msgid "Creating service pack..."
 msgstr "Vytváranie servisného archívu..."
 
 #. TRANSLATORS: we succeeded in making the file
-#: ../client/pk-generate-pack.c:372
+#: ../client/pk-generate-pack.c:374
 #, c-format
 msgid "Service pack created '%s'"
 msgstr "Vytvorený servisný archív '%s'"
 
 #. TRANSLATORS: we failed to make te file
-#: ../client/pk-generate-pack.c:377
+#: ../client/pk-generate-pack.c:379
 #, c-format
 msgid "Failed to create '%s': %s"
 msgstr "Nepodarilo sa vytvoriť '%s': %s"
 
 #. TRANSLATORS: this is a program that monitors PackageKit
-#: ../client/pk-monitor.c:146
+#: ../client/pk-monitor.c:146 ../client/pk-monitor-test.c:299
 msgid "PackageKit Monitor"
 msgstr "Monitor PackageKit"
 
 #: ../client/pk-monitor.c:183
 msgid "Cannot show the list of transactions"
-msgstr ""
-
-#. TRANSLATORS: The package was not found in any software sources
-#: ../client/pk-tools-common.c:118
-#, c-format
-msgid "The package could not be found"
-msgstr "Balíček sa nepodarilo nájsť"
-
-#. TRANSLATORS: more than one package could be found that matched, to follow is a list of possible packages
-#: ../client/pk-tools-common.c:130
-msgid "More than one package matches:"
-msgstr "Zadaniu vyhovuje viac balíčkov:"
+msgstr "Nie je možné zobraziť zoznam transakcií"
 
-#. TRANSLATORS: This finds out which package in the list to use
-#: ../client/pk-tools-common.c:137
-msgid "Please choose the correct package: "
-msgstr "Zadajte prosím správny balíček: "
+# XXX
+#: ../client/pk-monitor-test.c:204
+msgid "Failed to get transaction list"
+msgstr "Nepodarilo sa získať zoznam transakcií"
 
-#: ../client/pk-tools-common.c:162
+# XXX
+#: ../client/pk-monitor-test.c:235
+msgid "Failed to get daemon state"
+msgstr "Nepodarilo sa zistiť stav démona"
+
+#. ask the user
+#: ../client/pk-task-text.c:64
+msgid "Do you want to allow installing of unsigned software?"
+msgstr "Chcete povoliť inštalovanie nepodpísaného softvéru?"
+
+#: ../client/pk-task-text.c:68
+msgid "The unsigned software will not be installed."
+msgstr "Nepodpísaný softvér nebude nainštalovaný."
+
+#: ../client/pk-task-text.c:100
+msgid "Software source signature required"
+msgstr "Požadovaný je podpis zdroja softvéru"
+
+#: ../client/pk-task-text.c:102
+msgid "Software source name"
+msgstr "Názov zdroja softvéru"
+
+#: ../client/pk-task-text.c:103
+msgid "Key URL"
+msgstr "URL kľúča"
+
+#: ../client/pk-task-text.c:104
+msgid "Key user"
+msgstr "Užívateľ kľúča"
+
+#: ../client/pk-task-text.c:105
+msgid "Key ID"
+msgstr "ID kľúča"
+
+#: ../client/pk-task-text.c:106
+msgid "Key fingerprint"
+msgstr "Odtlačok kľúča"
+
+#: ../client/pk-task-text.c:107
+msgid "Key Timestamp"
+msgstr "Časová značka kľúča"
+
+#: ../client/pk-task-text.c:151
+msgid "End user licence agreement required"
+msgstr "Požadovaný je súhlas s licenciou koncového používateľa"
+
+#: ../client/pk-task-text.c:152
+msgid "EULA ID"
+msgstr "EULA ID"
+
+#: ../client/pk-task-text.c:155
+msgid "Agreement"
+msgstr "Dohoda"
+
+#. ask the user
+#: ../client/pk-task-text.c:161
+msgid "Do you accept this agreement?"
+msgstr "Akceptujete túto dohodu?"
+
+#: ../client/pk-task-text.c:165
+msgid "The agreement was not accepted."
+msgstr "Dohoda nebola prijatá."
+
+#: ../client/pk-task-text.c:194
+msgid "Media change required"
+msgstr "Je potrebná zmena média"
+
+#: ../client/pk-task-text.c:195
+msgid "Media type"
+msgstr "Typ média"
+
+#: ../client/pk-task-text.c:196
+msgid "Media ID"
+msgstr "ID média"
+
+#: ../client/pk-task-text.c:197
+msgid "Text"
+msgstr "Text"
+
+#. ask the user
+#: ../client/pk-task-text.c:201
+msgid "Please insert the correct media"
+msgstr "Vložte prosím správne médium"
+
+#: ../client/pk-task-text.c:205
+msgid "The correct media was not inserted."
+msgstr "Nebolo vložené správne médium."
+
+#: ../client/pk-task-text.c:303
+msgid "The transaction did not proceed."
+msgstr "Transakcia neprešla."
+
+#: ../client/pk-text.c:50
 #, c-format
 msgid "Please enter a number from 1 to %i: "
 msgstr "Zadajte prosím číslo od 1 do %i: "
 
+#. TRANSLATORS: The package was not found in any software sources
+#: ../client/pk-tools-common.c:119
+#, c-format
+msgid "The package could not be found"
+msgstr "Balíček sa nepodarilo nájsť"
+
 #. TRANSLATORS: when we are getting data from the daemon
 #: ../contrib/browser-plugin/pk-plugin-install.c:466
 msgid "Getting package information..."
@@ -896,24 +1099,22 @@ msgstr "Inštalovanie..."
 #. TRANSLATORS: downloading repo data so we can search
 #: ../contrib/command-not-found/pk-command-not-found.c:349
 msgid "Downloading details about the software sources."
-msgstr ""
+msgstr "Získavanie detailov o zdrojoch softvéru."
 
 #. TRANSLATORS: downloading file lists so we can search
 #: ../contrib/command-not-found/pk-command-not-found.c:353
 msgid "Downloading filelists (this may take some time to complete)."
-msgstr ""
+msgstr "Získavanie zoznamov súborov (dokončenie môže chvíľu trvať)."
 
 #. TRANSLATORS: waiting for native lock
 #: ../contrib/command-not-found/pk-command-not-found.c:357
-#, fuzzy
 msgid "Waiting for package manager lock."
-msgstr "Hľadanie názvu balíčka."
+msgstr "Čakanie na zámok správcu balíčkov."
 
 #. TRANSLATORS: loading package cache so we can search
 #: ../contrib/command-not-found/pk-command-not-found.c:361
-#, fuzzy
 msgid "Loading list of packages."
-msgstr "Získavanie balíčkov"
+msgstr "Načítavanie zoznamu balíčkov."
 
 # XXX
 #. TRANSLATORS: we failed to find the package, this shouldn't happen
@@ -988,294 +1189,282 @@ msgstr "Zvoľte, prosím, balíček na inštalovanie"
 
 #. TRANSLATORS: we are starting to install the packages
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:187
-#, fuzzy
 msgid "Starting install"
-msgstr "Nainštalovať"
+msgstr "Spúšťanie inštalácie"
 
 #. TRANSLATORS: we couldn't find the package name, non-fatal
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:397
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to find the package %s, or already installed: %s"
-msgstr "Balíček %s je už nainštalovaný"
+msgstr "Balíček %s sa nenašiel, alebo už je nainštalovaný: %s"
 
 #. command line argument, simulate what would be done, but don't actually do it
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:553
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:552
 msgid ""
 "Don't actually install any packages, only simulate what would be installed"
-msgstr ""
+msgstr "V skutočnosti neinštalovať žiadne balíčky, len simulovať, čo by mohlo "
+"byť nainštalované"
 
 #. command line argument, do we skip packages that depend on the ones specified
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:556
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:555
 msgid "Do not install dependencies of the core packages"
-msgstr ""
+msgstr "Neinštalovať závislosti hlavných balíčkov"
 
 #. command line argument, do we operate quietly
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:559
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:558
 msgid "Do not display information or progress"
-msgstr ""
+msgstr "Nezobrazovať informácie ani priebeh"
 
 #. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:577
-#, fuzzy
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:576
 msgid "PackageKit Debuginfo Installer"
-msgstr "Konzola PackageKit"
+msgstr "PackageKit inštalátor pre debuginfo"
 
 #. TRANSLATORS: the use needs to specify a list of package names on the command line
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:589
-#, fuzzy, c-format
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:588
+#, c-format
 msgid "ERROR: Specify package names to install."
-msgstr "Je potrebné určiť balíček alebo súbor na inštaláciu"
+msgstr "CHYBA: Je potrebné určiť názvy balíčkov na inštaláciu."
 
 #. TRANSLATORS: we are getting the list of repositories
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:623
-#, fuzzy, c-format
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:622
+#, c-format
 msgid "Getting sources list"
-msgstr "Získavanie zoznamu balíčkov"
+msgstr "Získavanie zoznamu zdrojov"
 
 #. TRANSLATORS: all completed 100%
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:641
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:681
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:716
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:800
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:844
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:911
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:955
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:640
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:680
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:715
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:799
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:843
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:910
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:954
 #, c-format
 msgid "OK."
-msgstr ""
+msgstr "Ok."
 
 #. TRANSLATORS: tell the user what we found
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:644
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:643
 #, c-format
 msgid "Found %i enabled and %i disabled sources."
-msgstr ""
+msgstr "Nájdených %i povolených a %i zakázaných zdrojov."
 
 #. TRANSLATORS: we're finding repositories that match out pattern
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:651
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:650
 #, c-format
 msgid "Finding debugging sources"
-msgstr ""
+msgstr "Vyhľadanie ladiacich zdrojov"
 
 #. TRANSLATORS: tell the user what we found
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:684
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:683
 #, c-format
 msgid "Found %i disabled debuginfo repos."
-msgstr ""
+msgstr "Nájdených %i zakázaných debuginfo zdrojov."
 
 #. TRANSLATORS: we're now enabling all the debug sources we found
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:691
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:690
 #, c-format
 msgid "Enabling debugging sources"
-msgstr ""
+msgstr "Povoľovanie ladiacich zdrojov"
 
 #. TRANSLATORS: operation was not successful
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:701
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:785
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:829
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:896
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:940
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:700
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:784
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:828
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:895
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:939
 msgid "FAILED."
-msgstr ""
+msgstr "ZLYHALO."
 
 #. TRANSLATORS: tell the user how many we enabled
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:719
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:718
 #, c-format
 msgid "Enabled %i debugging sources."
-msgstr ""
+msgstr "Povolených %i ladiacich zdrojov."
 
 #. TRANSLATORS: we're now finding packages that match in all the repos
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:726
-#, fuzzy, c-format
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:725
+#, c-format
 msgid "Finding debugging packages"
-msgstr "Hľadanie názvu balíčka."
+msgstr "Hľadanie ladiacich balíčkov"
 
 #. TRANSLATORS: we couldn't find the package name, non-fatal
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:738
-#, fuzzy, c-format
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:737
+#, c-format
 msgid "Failed to find the package %s: %s"
 msgstr "Nepodarilo sa nájsť balíček '%s': %s"
 
 #. TRANSLATORS: we couldn't find the debuginfo package name, non-fatal
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:761
-#, fuzzy, c-format
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:760
+#, c-format
 msgid "Failed to find the debuginfo package %s: %s"
-msgstr "Nepodarilo sa nájsť balíček '%s': %s"
+msgstr "Nepodarilo sa nájsť ladiaci balíček '%s': %s"
 
 #. TRANSLATORS: no debuginfo packages could be found to be installed
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:789
-#, fuzzy, c-format
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:788
+#, c-format
 msgid "Found no packages to install."
-msgstr "Žiadne nové balíčky nemusia byť nainštalované"
+msgstr "Žiadne balíčky na inštalovanie."
 
 #. TRANSLATORS: tell the user we found some packages, and then list them
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:803
-#, fuzzy, c-format
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:802
+#, c-format
 msgid "Found %i packages:"
-msgstr "Získavanie balíčkov"
+msgstr "Nájdených %i balíčkov:"
 
 #. TRANSLATORS: tell the user we are searching for deps
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:819
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:818
 #, c-format
 msgid "Finding packages that depend on these packages"
-msgstr ""
+msgstr "Hľadanie balíčkov závisiacich na týchto balíčkoch"
 
 #. TRANSLATORS: could not install, detailed error follows
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:832
-#, fuzzy, c-format
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:831
+#, c-format
 msgid "Could not find dependant packages: %s"
-msgstr "Nebolo močné nájsť zodpovedajúci balíček"
+msgstr "Nebolo možné nájsť závislé balíčky: %s"
 
 #. TRANSLATORS: tell the user we found some more packages
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:848
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:847
 #, c-format
 msgid "Found %i extra packages."
-msgstr ""
+msgstr "Nájdených %i extra balíčkov."
 
 #. TRANSLATORS: tell the user we found some more packages
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:852
-#, fuzzy, c-format
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:851
+#, c-format
 msgid "No extra packages required."
-msgstr "Je potrebný názov balíčka"
+msgstr "Nie sú potrebné žiadne extra balíčky."
 
 #. TRANSLATORS: tell the user we found some packages (and deps), and then list them
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:861
-#, fuzzy, c-format
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:860
+#, c-format
 msgid "Found %i packages to install:"
-msgstr "Žiadne nové balíčky nemusia byť nainštalované"
+msgstr "Nájdených %i balíčkov na inštalovanie:"
 
 #. TRANSLATORS: simulate mode is a testing mode where we quit before the action
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:874
-#, fuzzy, c-format
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:873
+#, c-format
 msgid "Not installing packages in simulate mode"
-msgstr "Inštalovanie balíčkov"
+msgstr "V režime simulácie sa balíčky nebudú inštalovať"
 
 #. TRANSLATORS: could not install, detailed error follows
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:899
-#, fuzzy, c-format
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:898
+#, c-format
 msgid "Could not install packages: %s"
 msgstr "Nepodarilo sa nainštalovať balíčky: %s"
 
 #. TRANSLATORS: we are now disabling all debuginfo repos we previously enabled
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:931
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:930
 #, c-format
 msgid "Disabling sources previously enabled"
-msgstr ""
+msgstr "Zakázanie predtým povolených zdrojov"
 
 #. TRANSLATORS: no debuginfo packages could be found to be installed, detailed error follows
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:943
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:942
 #, c-format
 msgid "Could not disable the debugging sources: %s"
-msgstr ""
+msgstr "Nepodarilo sa zakázať ladiace zdroje: %s"
 
 #. TRANSLATORS: we disabled all the debugging repos that we enabled before
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:958
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:957
 #, c-format
 msgid "Disabled %i debugging sources."
-msgstr ""
+msgstr "Zakázaných %i ladiacich zdrojov."
 
 # XXX
 #. TRANSLATORS: couldn't open device to write
 #: ../contrib/device-rebind/pk-device-rebind.c:61
-#, fuzzy
 msgid "Failed to open file"
-msgstr "Vyhľadanie súboru zlyhalo"
+msgstr "Otvorenie súboru zlyhalo"
 
 # XXX
 #. TRANSLATORS: could not write to the device
 #: ../contrib/device-rebind/pk-device-rebind.c:70
-#, fuzzy
 msgid "Failed to write to the file"
-msgstr "Vyhľadanie súboru zlyhalo"
+msgstr "Zápis do súboru zlyhal"
 
 # XXX
 #. TRANSLATORS: we failed to release the current driver
 #: ../contrib/device-rebind/pk-device-rebind.c:110
 #: ../contrib/device-rebind/pk-device-rebind.c:147
-#, fuzzy
 msgid "Failed to write to device"
-msgstr "Nebolo možné uložiť na disk"
+msgstr "Zápis na zariadenie zlyhal"
 
 #. TRANSLATORS: the device could not be found in sysfs
 #: ../contrib/device-rebind/pk-device-rebind.c:175
-#, fuzzy
 msgid "Device could not be found"
-msgstr "Balíček sa nepodarilo nájsť"
+msgstr "Zariadenie sa nepodarilo nájsť"
 
 # XXX
 #. TRANSLATORS: we failed to release the current driver
 #: ../contrib/device-rebind/pk-device-rebind.c:202
-#, fuzzy
 msgid "Failed to unregister driver"
-msgstr "Nepodarilo sa vytvoriť priečinok:"
+msgstr "Nepodarilo sa odregistrovať ovládač"
 
 # XXX
 #. TRANSLATORS: we failed to bind the old driver
 #: ../contrib/device-rebind/pk-device-rebind.c:211
-#, fuzzy
 msgid "Failed to register driver"
-msgstr "Nepodarilo sa vytvoriť priečinok:"
+msgstr "Nepodarilo sa zaregistrovať ovládač"
 
 #. TRANSLATORS: user did not specify a device sysfs path that exists
 #: ../contrib/device-rebind/pk-device-rebind.c:260
-#, fuzzy
 msgid "Device path not found"
-msgstr "Priečinok nenájdený"
+msgstr "Cesta k zariadeniu nenájdená"
 
 #. TRANSLATORS: user did not specify a valid device sysfs path
 #: ../contrib/device-rebind/pk-device-rebind.c:268
 msgid "Incorrect device path specified"
-msgstr ""
+msgstr "Určená nesprávna cesta k zariadeniu"
 
 #. command line argument, simulate what would be done, but don't actually do it
 #: ../contrib/device-rebind/pk-device-rebind.c:296
 msgid "Don't actually touch the hardware, only simulate what would be done"
-msgstr ""
+msgstr "V skutočnosti sa nedotýkať hardvéru, len simulovať, čo by sa udialo"
 
 #. TRANSLATORS: command line option: a list of files to install
 #: ../contrib/device-rebind/pk-device-rebind.c:299
 msgid "Device paths"
-msgstr ""
+msgstr "Cesty k zariadeniu"
 
 #. TRANSLATORS: tool that gets called when the device needs reloading after installing firmware
 #: ../contrib/device-rebind/pk-device-rebind.c:314
-#, fuzzy
 msgid "PackageKit Device Reloader"
-msgstr "Servisný archív PackageKit"
+msgstr "PackageKit obnovenie zariadenia"
 
 #. TRANSLATORS: user did not specify a valid device sysfs path
 #: ../contrib/device-rebind/pk-device-rebind.c:322
-#, fuzzy
 msgid "You need to specify at least one valid device path"
-msgstr "Je potrebné určiť súbor zoznamu pre vytvorenie"
+msgstr "Je potrebné určiť aspoň jednu platnú cestu k zariadeniu"
 
 #. TRANSLATORS: user did not specify a valid device sysfs path
 #: ../contrib/device-rebind/pk-device-rebind.c:332
 msgid "This script can only be used by the root user"
-msgstr ""
+msgstr "Tento skript môže používať len používateľ root"
 
 #. TRANSLATORS: we're going to verify the path first
 #: ../contrib/device-rebind/pk-device-rebind.c:341
 msgid "Verifying device path"
-msgstr ""
+msgstr "Overovanie cesty k zariadeniu"
 
 # XXX
 #. TRANSLATORS: user did not specify a device sysfs path that exists
 #: ../contrib/device-rebind/pk-device-rebind.c:346
-#, fuzzy
 msgid "Failed to verify device path"
-msgstr "Vyhľadanie súboru zlyhalo"
+msgstr "Overovanie cesty k zariadeniu zlyhalo"
 
 #. TRANSLATORS: we're going to try
 #: ../contrib/device-rebind/pk-device-rebind.c:360
 msgid "Attempting to rebind device"
-msgstr ""
+msgstr "Pokus o obnovenie spojenia k zariadeniu"
 
 # XXX
 #. TRANSLATORS: we failed to release the current driver
 #: ../contrib/device-rebind/pk-device-rebind.c:365
-#, fuzzy
 msgid "Failed to rebind device"
-msgstr "Nepodarilo sa vytvoriť priečinok:"
+msgstr "Nepodarilo sa obnoviť spojenie k zariadeniu"
 
 #: ../data/packagekit-catalog.xml.in.h:1
 msgid "PackageKit Catalog"
@@ -1301,17 +1490,17 @@ msgstr "Prijať licenčné podmienky"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:8
 msgid "Authentication is required to accept a EULA"
-msgstr "Na prijatie licenčných podmienok je potrebné overenie"
+msgstr "Na prijatie licenčných podmienok je potrebné overenie totožnosti"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:9
 msgid ""
 "Authentication is required to cancel a task that was not started by yourself"
 msgstr ""
-"Na zrušenie úlohy, ktorá nebola naštartovaná vami, je potrebné overenie"
+"Na zrušenie úlohy, ktorá nebola naštartovaná vami, je potrebné overenie totožnosti"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:10
 msgid "Authentication is required to change software source parameters"
-msgstr "Na zmenu parametrov softvérového zdroja je potrebné overenie"
+msgstr "Na zmenu parametrov softvérového zdroja je potrebné overenie totožnosti"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:11
 msgid ""
@@ -1319,43 +1508,42 @@ msgid ""
 "trusted"
 msgstr ""
 "Na vyjadrenie dôvery kľúču používaného na podpisovanie balíčkov je potrebné "
-"overenie"
+"overenie totožnosti"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:12
 msgid "Authentication is required to install a signed package"
-msgstr "Na inštalovanie podpísaného balíčka je potrebné overenie"
+msgstr "Na inštalovanie podpísaného balíčka je potrebné overenie totožnosti"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:13
 msgid "Authentication is required to install an untrusted package"
-msgstr "Na inštaláciu nedôveryhodného balíčka je potrebné overenie"
+msgstr "Na inštaláciu nedôveryhodného balíčka je potrebné overenie totožnosti"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:14
 msgid "Authentication is required to refresh the system sources"
-msgstr "Na obnovenie zdrojov pre systém je potrebné overenie"
+msgstr "Na obnovenie zdrojov pre systém je potrebné overenie totožnosti"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:15
-#, fuzzy
 msgid "Authentication is required to reload the device with a new driver"
-msgstr "Na obnovenie zdrojov pre systém je potrebné overenie"
+msgstr "Na obnovenie zariadenia s novým ovládačom je potrebné overenie totožnosti"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:16
 msgid "Authentication is required to remove packages"
-msgstr "Na odstránenie balíčkov je potrebné overenie"
+msgstr "Na odstránenie balíčkov je potrebné overenie totožnosti"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:17
 msgid "Authentication is required to rollback a transaction"
-msgstr "Na navrátenie transakcie je potrebné overenie"
+msgstr "Na navrátenie transakcie je potrebné overenie totožnosti"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:18
 msgid ""
 "Authentication is required to set the network proxy used for downloading "
 "packages"
 msgstr ""
-"Na nastavenie sieťového proxy pre získavanie balíčkov je potrebné overenie"
+"Na nastavenie sieťového proxy pre získavanie balíčkov je potrebné overenie totožnosti"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:19
 msgid "Authentication is required to update packages"
-msgstr "Na aktualizáciu balíčkov je potrebné overenie"
+msgstr "Na aktualizáciu balíčkov je potrebné overenie totožnosti"
 
 #. SECURITY:
 #. - Normal users are allowed to cancel their own task without
@@ -1412,7 +1600,7 @@ msgstr "Obnoviť zdroje pre systém"
 #.
 #: ../policy/org.freedesktop.packagekit.policy.in.h:58
 msgid "Reload a device"
-msgstr ""
+msgstr "Obnoviť zariadenie"
 
 #. SECURITY:
 #. - Normal users require admin authentication to remove packages as
@@ -1536,46 +1724,44 @@ msgid "Error trying to start:"
 msgstr "Chyba pri pokuse o spustenie:"
 
 #: ../src/pk-polkit-action-lookup.c:147
-#, fuzzy
 msgid "To install debugging packages, extra sources need to be enabled"
-msgstr "Žiadne nové balíčky nemusia byť nainštalované"
+msgstr "Na inštalovanie ladiacich balíčkov je potrebné povoliť extra zdroje"
 
 #. TRANSLATORS: is not GPG signed
 #: ../src/pk-polkit-action-lookup.c:168 ../src/pk-polkit-action-lookup.c:187
 msgid "The software is not from a trusted source."
-msgstr ""
+msgstr "Tento softvér nepochádza z dôveryhodného zdroja."
 
 #: ../src/pk-polkit-action-lookup.c:173
 msgid "Do not update this package unless you are sure it is safe to do so."
-msgstr ""
+msgstr "Neaktualizujte tento balíček, pokiaľ nie ste si istý, že to je bezpečné."
 
 #: ../src/pk-polkit-action-lookup.c:174
 msgid "Do not update these packages unless you are sure it is safe to do so."
-msgstr ""
+msgstr "Neaktualizujte tieto balíčky, pokiaľ nie ste si istý, že to je bezpečné."
 
 #: ../src/pk-polkit-action-lookup.c:192
 msgid "Do not install this package unless you are sure it is safe to do so."
-msgstr ""
+msgstr "Neinštalujte tento balíček, pokiaľ nie ste si istý, že to je bezpečné."
 
 #: ../src/pk-polkit-action-lookup.c:193
 msgid "Do not install these packages unless you are sure it is safe to do so."
-msgstr ""
+msgstr "Neinštalujte tieto balíčky, pokiaľ nie ste si istý, že to je bezpečné."
 
 #. TRANSLATORS: warn the user that all bets are off
 #: ../src/pk-polkit-action-lookup.c:199
 msgid "Malicious software can damage your computer or cause other harm."
-msgstr ""
+msgstr "Zákerný softvér môže poškodiť váš počítač alebo spôsobiť iné škody."
 
 #. TRANSLATORS: too many packages to list each one
 #: ../src/pk-polkit-action-lookup.c:274
-#, fuzzy
 msgid "Many packages"
-msgstr "Aktualizovať balíčky"
+msgstr "Priveľa balíčkov"
 
 #. TRANSLATORS: if the transaction is forced to install only trusted packages
 #: ../src/pk-polkit-action-lookup.c:334
 msgid "Only trusted"
-msgstr ""
+msgstr "Len dôveryhodné"
 
 #~ msgid "You need to specify a search type, e.g. name"
 #~ msgstr "Je potrebné určiť typ vyhľadávania, napríklad názov"
commit a798935e66d112832915b0437d9c10a40702f716
Author: Richard Hughes <richard at hughsie.com>
Date:   Sat Sep 5 09:19:10 2009 +0100

    glib2: get rid of library includes that are not needed

diff --git a/lib/packagekit-glib/egg-test.c b/lib/packagekit-glib/egg-test.c
index ee79c67..ef4eef3 100644
--- a/lib/packagekit-glib/egg-test.c
+++ b/lib/packagekit-glib/egg-test.c
@@ -22,8 +22,6 @@
 #include <stdlib.h>
 #include <glib.h>
 #include <string.h>
-#include <glib/gi18n.h>
-#include <glib-object.h>
 #include <glib/gprintf.h>
 
 #include "egg-test.h"
diff --git a/lib/packagekit-glib2/pk-bitfield.c b/lib/packagekit-glib2/pk-bitfield.c
deleted file mode 120000
index d2bcbbe..3fff654
--- a/lib/packagekit-glib2/pk-bitfield.c
+++ /dev/null
@@ -1 +0,0 @@
-../packagekit-glib/pk-bitfield.c
\ No newline at end of file
diff --git a/lib/packagekit-glib2/pk-bitfield.c b/lib/packagekit-glib2/pk-bitfield.c
new file mode 100644
index d2bcbbe..3fff654
--- /dev/null
+++ b/lib/packagekit-glib2/pk-bitfield.c
@@ -0,0 +1,539 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2007-2008 Richard Hughes <richard at hughsie.com>
+ *
+ * Licensed under the GNU General Public License Version 2
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+/**
+ * SECTION:pk-enum
+ * @short_description: Functions for converting strings to enum and vice-versa
+ *
+ * This file contains functions to convert to and from enumerated types.
+ */
+
+#include "config.h"
+
+#include <glib.h>
+#include <packagekit-glib2/pk-enum.h>
+#include <packagekit-glib2/pk-bitfield.h>
+
+#include "egg-debug.h"
+
+/**
+ * pk_bitfield_contain_priority:
+ * @values: a valid bitfield instance
+ * @value: the values we are searching for
+ *
+ * Finds elements in a list, but with priority going to the preceeding entry
+ *
+ * Return value: The return enumerated type, or -1 if none are found
+ **/
+gint
+pk_bitfield_contain_priority (PkBitfield values, gint value, ...)
+{
+	va_list args;
+	guint i;
+	gint value_temp;
+	gint retval = -1;
+
+	/* we must query at least one thing */
+	if (pk_bitfield_contain (values, value))
+		return value;
+
+	/* process the valist */
+	va_start (args, value);
+	for (i=0;; i++) {
+		value_temp = va_arg (args, gint);
+		/* do we have this one? */
+		if (pk_bitfield_contain (values, value_temp)) {
+			retval = value_temp;
+			break;
+		}
+		/* end of the list */
+		if (value_temp == -1)
+			break;
+	}
+	va_end (args);
+
+	return retval;
+}
+
+/**
+ * pk_bitfield_from_enums:
+ * @value: the values we want to add to the bitfield
+ *
+ * Return value: The return bitfield, or 0 if invalid
+ **/
+PkBitfield
+pk_bitfield_from_enums (gint value, ...)
+{
+	va_list args;
+	guint i;
+	gint value_temp;
+	PkBitfield values;
+
+	/* we must query at least one thing */
+	values = pk_bitfield_value (value);
+
+	/* process the valist */
+	va_start (args, value);
+	for (i=0;; i++) {
+		value_temp = va_arg (args, gint);
+		if (value_temp == -1)
+			break;
+		values += pk_bitfield_value (value_temp);
+	}
+	va_end (args);
+
+	return values;
+}
+
+/**
+ * pk_role_bitfield_to_text:
+ * @roles: The enumerated type values
+ *
+ * Converts a enumerated type bitfield to its text representation
+ *
+ * Return value: the enumerated constant value, e.g. "install-file;update-system"
+ **/
+gchar *
+pk_role_bitfield_to_text (PkBitfield roles)
+{
+	GString *string;
+	guint i;
+
+	string = g_string_new ("");
+	for (i=0; i<=PK_ROLE_ENUM_UNKNOWN; i++) {
+		if ((roles & pk_bitfield_value (i)) == 0)
+			continue;
+		g_string_append_printf (string, "%s;", pk_role_enum_to_text (i));
+	}
+	/* do we have a no bitfield? \n */
+	if (string->len == 0) {
+		egg_warning ("not valid!");
+		g_string_append (string, pk_role_enum_to_text (PK_ROLE_ENUM_UNKNOWN));
+	} else {
+		/* remove last \n */
+		g_string_set_size (string, string->len - 1);
+	}
+	return g_string_free (string, FALSE);
+}
+
+/**
+ * pk_role_bitfield_from_text:
+ * @roles: the enumerated constant value, e.g. "available;~gui"
+ *
+ * Converts text representation to its enumerated type bitfield
+ *
+ * Return value: The enumerated type values, or 0 for invalid
+ **/
+PkBitfield
+pk_role_bitfield_from_text (const gchar *roles)
+{
+	PkBitfield roles_enum = 0;
+	gchar **split;
+	guint length;
+	guint i;
+	PkRoleEnum role;
+
+	split = g_strsplit (roles, ";", 0);
+	if (split == NULL) {
+		egg_warning ("unable to split");
+		goto out;
+	}
+
+	length = g_strv_length (split);
+	for (i=0; i<length; i++) {
+		role = pk_role_enum_from_text (split[i]);
+		if (role == PK_ROLE_ENUM_UNKNOWN) {
+			roles_enum = 0;
+			break;
+		}
+		roles_enum += pk_bitfield_value (role);
+	}
+out:
+	g_strfreev (split);
+	return roles_enum;
+}
+
+/**
+ * pk_groups_bitfield_to_text:
+ * @groups: The enumerated type values
+ *
+ * Converts a enumerated type bitfield to its text representation
+ *
+ * Return value: the enumerated constant value, e.g. "gnome;kde"
+ **/
+gchar *
+pk_group_bitfield_to_text (PkBitfield groups)
+{
+	GString *string;
+	guint i;
+
+	string = g_string_new ("");
+	for (i=0; i<=PK_GROUP_ENUM_UNKNOWN; i++) {
+		if ((groups & pk_bitfield_value (i)) == 0)
+			continue;
+		g_string_append_printf (string, "%s;", pk_group_enum_to_text (i));
+	}
+	/* do we have a no bitfield? \n */
+	if (string->len == 0) {
+		egg_warning ("not valid!");
+		g_string_append (string, pk_group_enum_to_text (PK_GROUP_ENUM_UNKNOWN));
+	} else {
+		/* remove last \n */
+		g_string_set_size (string, string->len - 1);
+	}
+	return g_string_free (string, FALSE);
+}
+
+/**
+ * pk_group_bitfield_from_text:
+ * @groups: the enumerated constant value, e.g. "available;~gui"
+ *
+ * Converts text representation to its enumerated type bitfield
+ *
+ * Return value: The enumerated type values, or 0 for invalid
+ **/
+PkBitfield
+pk_group_bitfield_from_text (const gchar *groups)
+{
+	PkBitfield groups_enum = 0;
+	gchar **split;
+	guint length;
+	guint i;
+	PkGroupEnum group;
+
+	split = g_strsplit (groups, ";", 0);
+	if (split == NULL) {
+		egg_warning ("unable to split");
+		goto out;
+	}
+
+	length = g_strv_length (split);
+	for (i=0; i<length; i++) {
+		group = pk_group_enum_from_text (split[i]);
+		if (group == PK_GROUP_ENUM_UNKNOWN) {
+			groups_enum = 0;
+			break;
+		}
+		groups_enum += pk_bitfield_value (group);
+	}
+out:
+	g_strfreev (split);
+	return groups_enum;
+}
+
+/**
+ * pk_filter_bitfield_to_text:
+ * @filters: The enumerated type values
+ *
+ * Converts a enumerated type bitfield to its text representation
+ *
+ * Return value: the enumerated constant value, e.g. "available;~gui"
+ **/
+gchar *
+pk_filter_bitfield_to_text (PkBitfield filters)
+{
+	GString *string;
+	guint i;
+
+	/* shortcut */
+	if (filters == 0)
+		return g_strdup (pk_filter_enum_to_text (filters));
+
+	string = g_string_new ("");
+	for (i=0; i<=PK_FILTER_ENUM_UNKNOWN; i++) {
+		if ((filters & pk_bitfield_value (i)) == 0)
+			continue;
+		g_string_append_printf (string, "%s;", pk_filter_enum_to_text (i));
+	}
+	/* do we have a 'none' filter? \n */
+	if (string->len == 0) {
+		egg_warning ("not valid!");
+		g_string_append (string, pk_filter_enum_to_text (PK_FILTER_ENUM_NONE));
+	} else {
+		/* remove last \n */
+		g_string_set_size (string, string->len - 1);
+	}
+	return g_string_free (string, FALSE);
+}
+
+/**
+ * pk_filter_bitfield_from_text:
+ * @filters: the enumerated constant value, e.g. "available;~gui"
+ *
+ * Converts text representation to its enumerated type bitfield, or 0 for invalid
+ *
+ * Return value: The enumerated type values
+ **/
+PkBitfield
+pk_filter_bitfield_from_text (const gchar *filters)
+{
+	PkBitfield filters_enum = PK_FILTER_ENUM_NONE;
+	gchar **split;
+	guint length;
+	guint i;
+	PkFilterEnum filter;
+
+	split = g_strsplit (filters, ";", 0);
+	if (split == NULL) {
+		egg_warning ("unable to split");
+		goto out;
+	}
+
+	length = g_strv_length (split);
+	for (i=0; i<length; i++) {
+		filter = pk_filter_enum_from_text (split[i]);
+		if (filter == PK_FILTER_ENUM_UNKNOWN) {
+			filters_enum = 0;
+			break;
+		}
+		filters_enum += pk_bitfield_value (filter);
+	}
+out:
+	g_strfreev (split);
+	return filters_enum;
+}
+
+/***************************************************************************
+ ***                          MAKE CHECK TESTS                           ***
+ ***************************************************************************/
+#ifdef EGG_TEST
+#include "egg-test.h"
+
+void
+pk_bitfield_test (gpointer user_data)
+{
+	EggTest *test = (EggTest *) user_data;
+	gchar *text;
+	PkBitfield filter;
+	gint value;
+	PkBitfield values;
+
+	if (!egg_test_start (test, "PkBitfield"))
+		return;
+
+	/************************************************************/
+	egg_test_title (test, "check we can convert filter bitfield to text (none)");
+	text = pk_filter_bitfield_to_text (pk_bitfield_value (PK_FILTER_ENUM_NONE));
+	if (g_strcmp0 (text, "none") == 0)
+		egg_test_success (test, NULL);
+	else
+		egg_test_failed (test, "text was %s", text);
+	g_free (text);
+
+	/************************************************************/
+	egg_test_title (test, "check we can invert a bit 1 -> 0");
+	values = pk_bitfield_value (PK_FILTER_ENUM_NOT_DEVELOPMENT) | pk_bitfield_value (PK_FILTER_ENUM_NOT_NEWEST);
+	pk_bitfield_invert (values, PK_FILTER_ENUM_NOT_DEVELOPMENT);
+	if (values == pk_bitfield_value (PK_FILTER_ENUM_NOT_NEWEST))
+		egg_test_success (test, NULL);
+	else
+		egg_test_failed (test, "values were %" PK_BITFIELD_FORMAT, values);
+
+	/************************************************************/
+	egg_test_title (test, "check we can invert a bit 0 -> 1");
+	values = 0;
+	pk_bitfield_invert (values, PK_FILTER_ENUM_NOT_DEVELOPMENT);
+	if (values == pk_bitfield_value (PK_FILTER_ENUM_NOT_DEVELOPMENT))
+		egg_test_success (test, NULL);
+	else
+		egg_test_failed (test, "values were %" PK_BITFIELD_FORMAT, values);
+
+	/************************************************************/
+	egg_test_title (test, "check we can convert filter bitfield to text (single)");
+	text = pk_filter_bitfield_to_text (pk_bitfield_value (PK_FILTER_ENUM_NOT_DEVELOPMENT));
+	if (g_strcmp0 (text, "~devel") == 0)
+		egg_test_success (test, NULL);
+	else
+		egg_test_failed (test, "text was %s", text);
+	g_free (text);
+
+	/************************************************************/
+	egg_test_title (test, "check we can convert filter bitfield to text (plural)");
+	text = pk_filter_bitfield_to_text (pk_bitfield_value (PK_FILTER_ENUM_NOT_DEVELOPMENT) |
+					   pk_bitfield_value (PK_FILTER_ENUM_GUI) |
+					   pk_bitfield_value (PK_FILTER_ENUM_NEWEST));
+	if (g_strcmp0 (text, "~devel;gui;newest") == 0)
+		egg_test_success (test, NULL);
+	else
+		egg_test_failed (test, "text was %s", text);
+	g_free (text);
+
+	/************************************************************/
+	egg_test_title (test, "check we can convert filter text to bitfield (none)");
+	filter = pk_filter_bitfield_from_text ("none");
+	if (filter == pk_bitfield_value (PK_FILTER_ENUM_NONE))
+		egg_test_success (test, NULL);
+	else
+		egg_test_failed (test, "filter was %" PK_BITFIELD_FORMAT, filter);
+
+	/************************************************************/
+	egg_test_title (test, "check we can convert filter text to bitfield (single)");
+	filter = pk_filter_bitfield_from_text ("~devel");
+	if (filter == pk_bitfield_value (PK_FILTER_ENUM_NOT_DEVELOPMENT))
+		egg_test_success (test, NULL);
+	else
+		egg_test_failed (test, "filter was %" PK_BITFIELD_FORMAT, filter);
+
+	/************************************************************/
+	egg_test_title (test, "check we can convert filter text to bitfield (plural)");
+	filter = pk_filter_bitfield_from_text ("~devel;gui;newest");
+	if (filter == (pk_bitfield_value (PK_FILTER_ENUM_NOT_DEVELOPMENT) |
+		       pk_bitfield_value (PK_FILTER_ENUM_GUI) |
+		       pk_bitfield_value (PK_FILTER_ENUM_NEWEST)))
+		egg_test_success (test, NULL);
+	else
+		egg_test_failed (test, "filter was %" PK_BITFIELD_FORMAT, filter);
+
+	/************************************************************/
+	egg_test_title (test, "check we can add / remove bitfield");
+	filter = pk_bitfield_value (PK_FILTER_ENUM_NOT_DEVELOPMENT) |
+		 pk_bitfield_value (PK_FILTER_ENUM_GUI) |
+		 pk_bitfield_value (PK_FILTER_ENUM_NEWEST);
+	pk_bitfield_add (filter, PK_FILTER_ENUM_NOT_FREE);
+	pk_bitfield_remove (filter, PK_FILTER_ENUM_NOT_DEVELOPMENT);
+	text = pk_filter_bitfield_to_text (filter);
+	if (g_strcmp0 (text, "gui;~free;newest") == 0)
+		egg_test_success (test, NULL);
+	else
+		egg_test_failed (test, "text was %s", text);
+	g_free (text);
+
+	/************************************************************/
+	egg_test_title (test, "check we can test enum presence");
+	filter = pk_bitfield_value (PK_FILTER_ENUM_NOT_DEVELOPMENT) |
+		 pk_bitfield_value (PK_FILTER_ENUM_GUI) |
+		 pk_bitfield_value (PK_FILTER_ENUM_NEWEST);
+	if (pk_bitfield_contain (filter, PK_FILTER_ENUM_NOT_DEVELOPMENT))
+		egg_test_success (test, NULL);
+	else
+		egg_test_failed (test, "wrong boolean");
+
+	/************************************************************/
+	egg_test_title (test, "check we can test enum false-presence");
+	if (!pk_bitfield_contain (filter, PK_FILTER_ENUM_FREE))
+		egg_test_success (test, NULL);
+	else
+		egg_test_failed (test, "wrong boolean");
+
+	/************************************************************/
+	egg_test_title (test, "check we can add / remove bitfield to nothing");
+	filter = pk_bitfield_value (PK_FILTER_ENUM_NOT_DEVELOPMENT);
+	pk_bitfield_remove (filter, PK_FILTER_ENUM_NOT_DEVELOPMENT);
+	text = pk_filter_bitfield_to_text (filter);
+	if (g_strcmp0 (text, "none") == 0)
+		egg_test_success (test, NULL);
+	else
+		egg_test_failed (test, "text was %s", text);
+	g_free (text);
+
+	/************************************************************/
+	egg_test_title (test, "role bitfield from enums (unknown)");
+	values = pk_bitfield_from_enums (PK_ROLE_ENUM_UNKNOWN, -1);
+	if (values == pk_bitfield_value (PK_ROLE_ENUM_UNKNOWN))
+		egg_test_success (test, NULL);
+	else
+		egg_test_failed (test, "returned bitfield %" PK_BITFIELD_FORMAT, values);
+
+	/************************************************************/
+	egg_test_title (test, "role bitfield from enums (random)");
+	values = pk_bitfield_from_enums (PK_ROLE_ENUM_SEARCH_GROUP, PK_ROLE_ENUM_SEARCH_DETAILS, -1);
+	if (values == (pk_bitfield_value (PK_ROLE_ENUM_SEARCH_DETAILS) |
+		       pk_bitfield_value (PK_ROLE_ENUM_SEARCH_GROUP)))
+		egg_test_success (test, NULL);
+	else
+		egg_test_failed (test, "returned bitfield %" PK_BITFIELD_FORMAT, values);
+
+	/************************************************************/
+	egg_test_title (test, "group bitfield from enums (unknown)");
+	values = pk_bitfield_from_enums (PK_GROUP_ENUM_UNKNOWN, -1);
+	if (values == pk_bitfield_value (PK_GROUP_ENUM_UNKNOWN))
+		egg_test_success (test, NULL);
+	else
+		egg_test_failed (test, "returned bitfield %" PK_BITFIELD_FORMAT, values);
+
+	/************************************************************/
+	egg_test_title (test, "group bitfield from enums (random)");
+	values = pk_bitfield_from_enums (PK_GROUP_ENUM_ACCESSIBILITY, -1);
+	if (values == (pk_bitfield_value (PK_GROUP_ENUM_ACCESSIBILITY)))
+		egg_test_success (test, NULL);
+	else
+		egg_test_failed (test, "returned bitfield %" PK_BITFIELD_FORMAT, values);
+
+	/************************************************************/
+	egg_test_title (test, "group bitfield to text (unknown)");
+	values = pk_bitfield_from_enums (PK_GROUP_ENUM_UNKNOWN, -1);
+	text = pk_group_bitfield_to_text (values);
+	if (g_strcmp0 (text, "unknown") == 0)
+		egg_test_success (test, NULL);
+	else
+		egg_test_failed (test, "returned bitfield text %s (%" PK_BITFIELD_FORMAT ")", text, values);
+	g_free (text);
+
+	/************************************************************/
+	egg_test_title (test, "group bitfield to text (first and last)");
+	values = pk_bitfield_from_enums (PK_GROUP_ENUM_ACCESSIBILITY, PK_GROUP_ENUM_UNKNOWN, -1);
+	text = pk_group_bitfield_to_text (values);
+	if (g_strcmp0 (text, "accessibility;unknown") == 0)
+		egg_test_success (test, NULL);
+	else
+		egg_test_failed (test, "returned bitfield text %s (%" PK_BITFIELD_FORMAT ")", text, values);
+	g_free (text);
+
+	/************************************************************/
+	egg_test_title (test, "group bitfield to text (random)");
+	values = pk_bitfield_from_enums (PK_GROUP_ENUM_UNKNOWN, PK_GROUP_ENUM_REPOS, -1);
+	text = pk_group_bitfield_to_text (values);
+	if (g_strcmp0 (text, "repos;unknown") == 0)
+		egg_test_success (test, NULL);
+	else
+		egg_test_failed (test, "returned bitfield text %s (%" PK_BITFIELD_FORMAT ")", text, values);
+	g_free (text);
+
+	/************************************************************/
+	egg_test_title (test, "priority check missing");
+	values = pk_bitfield_value (PK_ROLE_ENUM_SEARCH_DETAILS) |
+		 pk_bitfield_value (PK_ROLE_ENUM_SEARCH_GROUP);
+	value = pk_bitfield_contain_priority (values, PK_ROLE_ENUM_SEARCH_FILE, -1);
+	if (value == -1)
+		egg_test_success (test, NULL);
+	else
+		egg_test_failed (test, "returned priority %i when should be missing", value);
+
+	/************************************************************/
+	egg_test_title (test, "priority check first");
+	value = pk_bitfield_contain_priority (values, PK_ROLE_ENUM_SEARCH_GROUP, -1);
+	if (value == PK_ROLE_ENUM_SEARCH_GROUP)
+		egg_test_success (test, NULL);
+	else
+		egg_test_failed (test, "returned wrong value; %i", value);
+
+	/************************************************************/
+	egg_test_title (test, "priority check second, correct");
+	value = pk_bitfield_contain_priority (values, PK_ROLE_ENUM_SEARCH_FILE, PK_ROLE_ENUM_SEARCH_GROUP, -1);
+	if (value == PK_ROLE_ENUM_SEARCH_GROUP)
+		egg_test_success (test, NULL);
+	else
+		egg_test_failed (test, "returned wrong value; %i", value);
+
+	egg_test_end (test);
+}
+#endif
+
diff --git a/lib/packagekit-glib2/pk-bitfield.h b/lib/packagekit-glib2/pk-bitfield.h
deleted file mode 120000
index 3873a63..01d9cee
--- a/lib/packagekit-glib2/pk-bitfield.h
+++ /dev/null
@@ -1 +0,0 @@
-../packagekit-glib/pk-bitfield.h
\ No newline at end of file
diff --git a/lib/packagekit-glib2/pk-bitfield.h b/lib/packagekit-glib2/pk-bitfield.h
new file mode 100644
index 3873a63..01d9cee
--- /dev/null
+++ b/lib/packagekit-glib2/pk-bitfield.h
@@ -0,0 +1,57 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2007-2008 Richard Hughes <richard at hughsie.com>
+ *
+ * Licensed under the GNU General Public License Version 2
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#if !defined (__PACKAGEKIT_H_INSIDE__) && !defined (PK_COMPILATION)
+#error "Only <packagekit.h> can be included directly."
+#endif
+
+#ifndef __PK_BITFIELD_H
+#define __PK_BITFIELD_H
+
+#include <glib.h>
+
+G_BEGIN_DECLS
+
+typedef guint64 PkBitfield;
+#define PK_BITFIELD_FORMAT G_GUINT64_FORMAT
+
+/* convenience functions as it's easy to forget the bitwise operators */
+#define pk_bitfield_add(bitfield,enum)		do { ((bitfield) |= (pk_bitfield_value(enum))); } while (0)
+#define pk_bitfield_remove(bitfield,enum)	do { ((bitfield) &= ~(pk_bitfield_value(enum))); } while (0)
+#define pk_bitfield_invert(bitfield,enum)	do { ((bitfield) ^= (pk_bitfield_value(enum))); } while (0)
+#define pk_bitfield_contain(bitfield,enum)	(((bitfield) & (pk_bitfield_value(enum))) > 0)
+#define pk_bitfield_value(enum)			((PkBitfield) 1 << (enum))
+
+gint		 pk_bitfield_contain_priority		(PkBitfield	 values,
+							 gint		 value, ...);
+PkBitfield	 pk_bitfield_from_enums			(gint		 value, ...);
+PkBitfield	 pk_role_bitfield_from_text 		(const gchar	*roles);
+gchar		*pk_role_bitfield_to_text		(PkBitfield	 roles);
+PkBitfield	 pk_group_bitfield_from_text 		(const gchar	*groups);
+gchar		*pk_group_bitfield_to_text		(PkBitfield	 groups);
+PkBitfield	 pk_filter_bitfield_from_text 		(const gchar	*filters);
+gchar		*pk_filter_bitfield_to_text		(PkBitfield	 filters);
+void		 pk_bitfield_test			(gpointer	 user_data);
+
+G_END_DECLS
+
+#endif /* __PK_BITFIELD_H */
+
diff --git a/lib/packagekit-glib2/pk-client.c b/lib/packagekit-glib2/pk-client.c
index d763e9d..1e8a5ef 100644
--- a/lib/packagekit-glib2/pk-client.c
+++ b/lib/packagekit-glib2/pk-client.c
@@ -31,26 +31,11 @@
 
 #include "config.h"
 
-#include <stdlib.h>
-#include <stdio.h>
-#include <time.h>
-#include <errno.h>
-
-#include <string.h>
-#include <locale.h>
-#include <sys/time.h>
-#include <sys/types.h>
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif /* HAVE_UNISTD_H */
-
-#include <sys/wait.h>
-#include <fcntl.h>
-
-#include <glib/gi18n.h>
-#include <glib/gprintf.h>
 #include <dbus/dbus-glib.h>
 #include <gio/gio.h>
+#include <glib-object.h>
+#include <locale.h>
+#include <stdlib.h>
 
 #include <packagekit-glib2/pk-client.h>
 #include <packagekit-glib2/pk-control.h>
diff --git a/lib/packagekit-glib2/pk-client.h b/lib/packagekit-glib2/pk-client.h
index 8e454a6..a77306b 100644
--- a/lib/packagekit-glib2/pk-client.h
+++ b/lib/packagekit-glib2/pk-client.h
@@ -32,6 +32,7 @@
 #define __PK_CLIENT_H
 
 #include <glib-object.h>
+#include <gio/gio.h>
 
 #include <packagekit-glib2/pk-results.h>
 #include <packagekit-glib2/pk-progress.h>
diff --git a/lib/packagekit-glib2/pk-common.c b/lib/packagekit-glib2/pk-common.c
deleted file mode 120000
index 2650e3d..d9d1f5a
--- a/lib/packagekit-glib2/pk-common.c
+++ /dev/null
@@ -1 +0,0 @@
-../packagekit-glib/pk-common.c
\ No newline at end of file
diff --git a/lib/packagekit-glib2/pk-common.c b/lib/packagekit-glib2/pk-common.c
new file mode 100644
index 2650e3d..d9d1f5a
--- /dev/null
+++ b/lib/packagekit-glib2/pk-common.c
@@ -0,0 +1,766 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2007-2008 Richard Hughes <richard at hughsie.com>
+ *
+ * Licensed under the GNU General Public License Version 2
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+/**
+ * SECTION:pk-common
+ * @short_description: Common utility functions for PackageKit
+ *
+ * This file contains functions that may be useful.
+ */
+
+#include "config.h"
+
+#include <stdlib.h>
+#include <stdio.h>
+
+#include <string.h>
+#include <sys/types.h>
+#include <sys/utsname.h>
+#include <sys/stat.h>
+
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif /* HAVE_UNISTD_H */
+
+#include <glib.h>
+#include <packagekit-glib2/pk-common.h>
+#include <packagekit-glib2/pk-enum.h>
+
+#include "egg-debug.h"
+#include "egg-string.h"
+
+/**
+ * pk_get_os_release:
+ *
+ * Return value: The current OS release, e.g. "7.2-RELEASE"
+ * Note: Don't use this function if you can get this data from /etc/foo
+ **/
+static gchar *
+pk_get_os_release (void)
+{
+	gint retval;
+	struct utsname buf;
+
+	retval = uname (&buf);
+	if (retval != 0)
+		return g_strdup ("unknown");
+	return g_strdup (buf.release);
+}
+
+/**
+ * pk_get_machine_type:
+ *
+ * Return value: The current machine ID, e.g. "i386"
+ * Note: Don't use this function if you can get this data from /etc/foo
+ **/
+static gchar *
+pk_get_machine_type (void)
+{
+	gint retval;
+	struct utsname buf;
+
+	retval = uname (&buf);
+	if (retval != 0)
+		return g_strdup ("unknown");
+	return g_strdup (buf.machine);
+}
+
+/**
+ * pk_get_distro_id:
+ *
+ * Return value: The current distro-id, e.g. fedora-8-i386, or %NULL for an
+ * error or not known
+ **/
+gchar *
+pk_get_distro_id (void)
+{
+	guint i;
+	gboolean ret;
+	gchar *contents = NULL;
+	gchar *distro = NULL;
+	gchar *arch = NULL;
+	gchar *version = NULL;
+	gchar **split = NULL;
+
+	/* check for fedora */
+	ret = g_file_get_contents ("/etc/fedora-release", &contents, NULL, NULL);
+	if (ret) {
+		/* Fedora release 8.92 (Rawhide) */
+		split = g_strsplit (contents, " ", 0);
+		if (split == NULL)
+			goto out;
+
+		/* we can't get arch from /etc */
+		arch = pk_get_machine_type ();
+		if (arch == NULL)
+			goto out;
+
+		/* complete! */
+		distro = g_strdup_printf ("fedora-%s-%s", split[2], arch);
+		goto out;
+	}
+
+	/* check for suse */
+	ret = g_file_get_contents ("/etc/SuSE-release", &contents, NULL, NULL);
+	if (ret) {
+		/* replace with spaces: openSUSE 11.0 (i586) Alpha3\nVERSION = 11.0 */
+		g_strdelimit (contents, "()\n", ' ');
+
+		/* openSUSE 11.0  i586  Alpha3 VERSION = 11.0 */
+		split = g_strsplit (contents, " ", 0);
+		if (split == NULL)
+			goto out;
+
+		/* complete! */
+		distro = g_strdup_printf ("suse-%s-%s", split[1], split[3]);
+		goto out;
+	}
+
+	/* check for foresight or foresight derivatives */
+	ret = g_file_get_contents ("/etc/distro-release", &contents, NULL, NULL);
+	if (ret) {
+		/* Foresight Linux 2 */
+		split = g_strsplit (contents, " ", 0);
+		if (split == NULL)
+			goto out;
+
+		/* complete! */
+		distro = g_strdup_printf ("foresight-%s", split[2]);
+		goto out;
+	}
+
+	/* check for PLD */
+	ret = g_file_get_contents ("/etc/pld-release", &contents, NULL, NULL);
+	if (ret) {
+		/* 2.99 PLD Linux (Th) */
+		split = g_strsplit (contents, " ", 0);
+		if (split == NULL)
+			goto out;
+
+		/* we can't get arch from /etc */
+		arch = pk_get_machine_type ();
+		if (arch == NULL)
+			goto out;
+
+		/* complete! */
+		distro = g_strdup_printf ("pld-%s-%s", split[0], arch);
+		goto out;
+	}
+
+	/* check for Arch */
+	ret = g_file_test ("/etc/arch-release", G_FILE_TEST_EXISTS);
+	if (ret) {
+		/* we can't get arch from /etc */
+		arch = pk_get_machine_type ();
+		if (arch == NULL)
+			goto out;
+
+		/* complete! */
+		distro = g_strdup_printf ("arch-current-%s", arch);
+		goto out;
+	}
+
+	/* check for LSB */
+	ret = g_file_get_contents ("/etc/lsb-release", &contents, NULL, NULL);
+	if (ret) {
+		/* we can't get arch from /etc */
+		arch = pk_get_machine_type ();
+		if (arch == NULL)
+			goto out;
+
+		/* split by lines */
+		split = g_strsplit (contents, "\n", -1);
+		for (i=0; split[i] != NULL; i++) {
+			if (g_str_has_prefix (split[i], "DISTRIB_ID="))
+				distro = g_ascii_strdown (&split[i][11], -1);
+			if (g_str_has_prefix (split[i], "DISTRIB_RELEASE="))
+				version = g_ascii_strdown (&split[i][16], -1);
+		}
+
+		/* complete! */
+		distro = g_strdup_printf ("%s-%s-%s", distro, version, arch);
+		goto out;
+	}
+
+	/* check for Debian or Debian derivatives */
+	ret = g_file_get_contents ("/etc/debian_version", &contents, NULL, NULL);
+	if (ret) {
+		/* remove "\n": "squeeze/sid\n" */
+		g_strdelimit (contents, "\n", '\0');
+		/* removes leading and trailing whitespace */
+		g_strstrip (contents);
+
+		/* complete! */
+		distro = g_strdup_printf ("debian-(%s)", contents);
+		goto out;
+	}
+
+#ifdef __FreeBSD__
+	ret = TRUE;
+#endif
+	/* FreeBSD */
+	if (ret) {
+		/* we can't get version from /etc */
+		version = pk_get_os_release ();
+		if (version == NULL)
+			goto out;
+
+		/* 7.2-RELEASE */
+		split = g_strsplit (version, "-", 0);
+		if (split == NULL)
+			goto out;
+
+		/* we can't get arch from /etc */
+		arch = pk_get_machine_type ();
+		if (arch == NULL)
+			goto out;
+
+		/* complete! */
+		distro = g_strdup_printf ("freebsd-%s-%s", split[0], arch);
+		goto out;
+	}
+out:
+	g_strfreev (split);
+	g_free (version);
+	g_free (arch);
+	g_free (contents);
+	return distro;
+}
+
+/**
+ * pk_iso8601_present:
+ *
+ * Return value: The current iso8601 date and time
+ **/
+gchar *
+pk_iso8601_present (void)
+{
+	GTimeVal timeval;
+	gchar *timespec;
+
+	/* get current time */
+	g_get_current_time (&timeval);
+	timespec = g_time_val_to_iso8601 (&timeval);
+
+	return timespec;
+}
+
+/**
+ * pk_iso8601_difference:
+ * @isodate: The ISO8601 date to compare
+ *
+ * Return value: The difference in seconds between the iso8601 date and current
+ **/
+guint
+pk_iso8601_difference (const gchar *isodate)
+{
+	GTimeVal timeval_then;
+	GTimeVal timeval_now;
+	gboolean ret;
+	guint time_s;
+
+	g_return_val_if_fail (isodate != NULL, 0);
+
+	/* convert date */
+	ret = g_time_val_from_iso8601 (isodate, &timeval_then);
+	if (!ret) {
+		egg_warning ("failed to parse '%s'", isodate);
+		return 0;
+	}
+	g_get_current_time (&timeval_now);
+
+	/* work out difference */
+	time_s = timeval_now.tv_sec - timeval_then.tv_sec;
+
+	return time_s;
+}
+
+/**
+ * pk_iso8601_from_date:
+ * @date: a %GDate to convert
+ *
+ * Return value: If valid then a new ISO8601 date, else NULL
+ **/
+gchar *
+pk_iso8601_from_date (const GDate *date)
+{
+	gsize retval;
+	gchar iso_date[128];
+
+	if (date == NULL)
+		return NULL;
+	retval = g_date_strftime (iso_date, 128, "%F", date);
+	if (retval == 0)
+		return NULL;
+	return g_strdup (iso_date);
+}
+
+/**
+ * pk_iso8601_to_date:
+ * @iso_date: The ISO8601 date to convert
+ *
+ * Return value: If valid then a new %GDate, else NULL
+ **/
+GDate *
+pk_iso8601_to_date (const gchar *iso_date)
+{
+	gboolean ret;
+	guint retval;
+	guint d = 0;
+	guint m = 0;
+	guint y = 0;
+	GTimeVal time_val;
+	GDate *date = NULL;
+
+	if (egg_strzero (iso_date))
+		goto out;
+
+	/* try to parse complete ISO8601 date */
+	ret = g_time_val_from_iso8601 (iso_date, &time_val);
+	if (ret) {
+		date = g_date_new ();
+		g_date_set_time_val (date, &time_val);
+		goto out;
+	}
+
+	/* g_time_val_from_iso8601() blows goats and won't
+	 * accept a valid ISO8601 formatted date without a
+	 * time value - try and parse this case */
+	retval = sscanf (iso_date, "%u-%u-%u", &y, &m, &d);
+	if (retval != 3) {
+		egg_warning ("could not parse '%s'", iso_date);
+		goto out;
+	}
+
+	/* check it's valid */
+	ret = g_date_valid_dmy (d, m, y);
+	if (!ret) {
+		egg_warning ("invalid date %i/%i/%i from '%s'", y, m, d, iso_date);
+		goto out;
+	}
+
+	/* create valid object */
+	date = g_date_new_dmy (d, m, y);
+out:
+	return date;
+}
+
+/**
+ * pk_strvalidate_char:
+ * @item: A single char to test
+ *
+ * Tests a char to see if it may be dangerous.
+ *
+ * Return value: %TRUE if the char is valid
+ **/
+static gboolean
+pk_strvalidate_char (gchar item)
+{
+	switch (item) {
+	case '$':
+	case '`':
+	case '\'':
+	case '"':
+	case '^':
+	case '[':
+	case ']':
+	case '{':
+	case '}':
+	case '\\':
+	case '<':
+	case '>':
+		return FALSE;
+	}
+	return TRUE;
+}
+
+/**
+ * pk_strsafe:
+ * @text: The input text to make safe
+ *
+ * Replaces chars in the text that may be dangerous, or that may print
+ * incorrectly. These chars include new lines, tabs and line feed, and are
+ * replaced by spaces.
+ *
+ * Return value: the new string with no insane chars
+ **/
+gchar *
+pk_strsafe (const gchar *text)
+{
+	gchar *text_safe;
+	gboolean ret;
+	const gchar *delimiters;
+
+	if (text == NULL)
+		return NULL;
+
+	/* is valid UTF8? */
+	ret = g_utf8_validate (text, -1, NULL);
+	if (!ret) {
+		egg_warning ("text '%s' was not valid UTF8!", text);
+		return NULL;
+	}
+
+	/* rip out any insane characters */
+	delimiters = "\\\f\r\t";
+	text_safe = g_strdup (text);
+	g_strdelimit (text_safe, delimiters, ' ');
+	return text_safe;
+}
+
+/**
+ * pk_strvalidate:
+ * @text: The text to check for validity
+ *
+ * Tests a string to see if it may be dangerous or invalid.
+ *
+ * Return value: %TRUE if the string is valid
+ **/
+gboolean
+pk_strvalidate (const gchar *text)
+{
+	guint i;
+	guint length;
+
+	/* maximum size is 1024 */
+	length = egg_strlen (text, 1024);
+	if (length > 1024) {
+		egg_warning ("input too long: %u", length);
+		return FALSE;
+	}
+
+	for (i=0; i<length; i++) {
+		if (pk_strvalidate_char (text[i]) == FALSE) {
+			egg_warning ("invalid char '%c' in text!", text[i]);
+			return FALSE;
+		}
+	}
+	return TRUE;
+}
+
+/**
+ * pk_ptr_array_to_strv:
+ * @array: the GPtrArray of strings
+ *
+ * Form a composite string array of strings.
+ * The data in the GPtrArray is copied.
+ *
+ * Return value: the string array, or %NULL if invalid
+ **/
+gchar **
+pk_ptr_array_to_strv (GPtrArray *array)
+{
+	gchar **strv_array;
+	const gchar *value_temp;
+	guint i;
+
+	g_return_val_if_fail (array != NULL, NULL);
+
+	/* copy the array to a strv */
+	strv_array = g_new0 (gchar *, array->len + 2);
+	for (i=0; i<array->len; i++) {
+		value_temp = (const gchar *) g_ptr_array_index (array, i);
+		strv_array[i] = g_strdup (value_temp);
+	}
+	/* set the last element to NULL */
+	strv_array[i] = NULL;
+
+	return strv_array;
+}
+
+/**
+ * pk_strv_to_ptr_array:
+ * @array: the gchar** array of strings
+ *
+ * Form a GPtrArray array of strings.
+ * The data in the array is copied.
+ *
+ * Return value: the string array, or %NULL if invalid
+ **/
+GPtrArray *
+pk_strv_to_ptr_array (gchar **array)
+{
+	guint i;
+	guint length;
+	GPtrArray *parray;
+
+	g_return_val_if_fail (array != NULL, NULL);
+
+	parray = g_ptr_array_new ();
+	length = g_strv_length (array);
+	for (i=0; i<length; i++)
+		g_ptr_array_add (parray, g_strdup (array[i]));
+	return parray;
+}
+
+/**
+ * pk_va_list_to_argv:
+ * @string_first: the first string
+ * @args: any subsequant string's
+ *
+ * Form a composite string array of the va_list
+ *
+ * Return value: the string array, or %NULL if invalid
+ **/
+gchar **
+pk_va_list_to_argv (const gchar *string_first, va_list *args)
+{
+	GPtrArray *ptr_array;
+	gchar **array;
+	gchar *value_temp;
+	guint i;
+
+	g_return_val_if_fail (args != NULL, NULL);
+	g_return_val_if_fail (string_first != NULL, NULL);
+
+	/* find how many elements we have in a temp array */
+	ptr_array = g_ptr_array_new ();
+	g_ptr_array_add (ptr_array, g_strdup (string_first));
+
+	/* process all the va_list entries */
+	for (i=0;; i++) {
+		value_temp = va_arg (*args, gchar *);
+		if (value_temp == NULL)
+			break;
+		g_ptr_array_add (ptr_array, g_strdup (value_temp));
+	}
+
+	/* convert the array to a strv type */
+	array = pk_ptr_array_to_strv (ptr_array);
+
+	/* get rid of the array, and free the contents */
+	g_ptr_array_foreach (ptr_array, (GFunc) g_free, NULL);
+	g_ptr_array_free (ptr_array, TRUE);
+	return array;
+}
+
+/**
+ * pk_error_code_is_need_untrusted:
+ * @error_code: the transactions #PkErrorCodeEnum
+ *
+ * Is this error could be handled with retrying with only_trusted %FALSE.
+ *
+ * Return value: if the error code suggests to try with only_trusted %FALSE
+ **/
+gboolean
+pk_error_code_is_need_untrusted (PkErrorCodeEnum error_code)
+{
+	gboolean ret = FALSE;
+	switch (error_code) {
+		case PK_ERROR_ENUM_GPG_FAILURE:
+		case PK_ERROR_ENUM_BAD_GPG_SIGNATURE:
+		case PK_ERROR_ENUM_MISSING_GPG_SIGNATURE:
+		case PK_ERROR_ENUM_CANNOT_INSTALL_REPO_UNSIGNED:
+		case PK_ERROR_ENUM_CANNOT_UPDATE_REPO_UNSIGNED:
+			ret = TRUE;
+			break;
+		default:
+			break;
+	}
+	return ret;
+}
+
+/***************************************************************************
+ ***                          MAKE CHECK TESTS                           ***
+ ***************************************************************************/
+#ifdef EGG_TEST
+#include "egg-test.h"
+
+static gchar **
+pk_va_list_to_argv_test (const gchar *first_element, ...)
+{
+	va_list args;
+	gchar **array;
+
+	/* get the argument list */
+	va_start (args, first_element);
+	array = pk_va_list_to_argv (first_element, &args);
+	va_end (args);
+
+	return array;
+}
+
+void
+pk_common_test (gpointer user_data)
+{
+	EggTest *test = (EggTest *) user_data;
+	gboolean ret;
+	gchar **array;
+	gchar *text_safe;
+	gchar *present;
+	guint seconds;
+	GDate *date;
+
+	if (!egg_test_start (test, "PkCommon"))
+		return;
+
+	/************************************************************
+	 ****************        test distro-id        **************
+	 ************************************************************/
+	egg_test_title (test, "get distro id");
+	text_safe = pk_get_distro_id ();
+	if (text_safe != NULL)
+		egg_test_success (test, "distro_id=%s", text_safe);
+	else
+		egg_test_failed (test, NULL);
+	g_free (text_safe);
+
+	/************************************************************
+	 ****************      splitting va_list       **************
+	 ************************************************************/
+	egg_test_title (test, "va_list_to_argv single");
+	array = pk_va_list_to_argv_test ("richard", NULL);
+	if (g_strcmp0 (array[0], "richard") == 0 &&
+	    array[1] == NULL)
+		egg_test_success (test, NULL);
+	else
+		egg_test_failed (test, "incorrect array '%s'", array[0]);
+	g_strfreev (array);
+
+	/************************************************************/
+	egg_test_title (test, "va_list_to_argv triple");
+	array = pk_va_list_to_argv_test ("richard", "phillip", "hughes", NULL);
+	if (g_strcmp0 (array[0], "richard") == 0 &&
+	    g_strcmp0 (array[1], "phillip") == 0 &&
+	    g_strcmp0 (array[2], "hughes") == 0 &&
+	    array[3] == NULL)
+		egg_test_success (test, NULL);
+	else
+		egg_test_failed (test, "incorrect array '%s','%s','%s'", array[0], array[1], array[2]);
+	g_strfreev (array);
+
+	/************************************************************
+	 ****************        validate text         **************
+	 ************************************************************/
+	egg_test_title (test, "validate correct char 1");
+	ret = pk_strvalidate_char ('a');
+	egg_test_assert (test, ret);
+
+	/************************************************************/
+	egg_test_title (test, "validate correct char 2");
+	ret = pk_strvalidate_char ('~');
+	egg_test_assert (test, ret);
+
+	/************************************************************/
+	egg_test_title (test, "validate incorrect char");
+	ret = pk_strvalidate_char ('$');
+	egg_test_assert (test, !ret);
+
+	/************************************************************/
+	egg_test_title (test, "validate incorrect text");
+	ret = pk_strvalidate ("richard$hughes");
+	egg_test_assert (test, !ret);
+
+	/************************************************************/
+	egg_test_title (test, "validate correct text");
+	ret = pk_strvalidate ("richardhughes");
+	egg_test_assert (test, ret);
+
+	/************************************************************
+	 ****************       REPLACE CHARS      ******************
+	 ************************************************************/
+	egg_test_title (test, "test replace unsafe (okay)");
+	text_safe = pk_strsafe ("Richard Hughes");
+	if (g_strcmp0 (text_safe, "Richard Hughes") == 0)
+		egg_test_success (test, NULL);
+	else
+		egg_test_failed (test, "failed the replace unsafe '%s'", text_safe);
+	g_free (text_safe);
+
+	/************************************************************/
+	egg_test_title (test, "test replace UTF8 unsafe (okay)");
+	text_safe = pk_strsafe ("Gölas");
+	if (g_strcmp0 (text_safe, "Gölas") == 0)
+		egg_test_success (test, NULL);
+	else
+		egg_test_failed (test, "failed the replace unsafe '%s'", text_safe);
+	g_free (text_safe);
+
+	/************************************************************/
+	egg_test_title (test, "test replace unsafe (one invalid)");
+	text_safe = pk_strsafe ("Richard\rHughes");
+	if (g_strcmp0 (text_safe, "Richard Hughes") == 0)
+		egg_test_success (test, NULL);
+	else
+		egg_test_failed (test, "failed the replace unsafe '%s'", text_safe);
+	g_free (text_safe);
+
+	/************************************************************/
+	egg_test_title (test, "test replace unsafe (multiple invalid)");
+	text_safe = pk_strsafe (" Richard\rHughes\f");
+	if (g_strcmp0 (text_safe, " Richard Hughes ") == 0)
+		egg_test_success (test, NULL);
+	else
+		egg_test_failed (test, "failed the replace unsafe '%s'", text_safe);
+	g_free (text_safe);
+
+	/************************************************************
+	 **************            iso8601           ****************
+	 ************************************************************/
+	egg_test_title (test, "get present iso8601");
+	present = pk_iso8601_present ();
+	if (present != NULL)
+		egg_test_success (test, NULL);
+	else
+		egg_test_failed (test, "present is NULL");
+
+	g_usleep (2000000);
+
+	/************************************************************/
+	egg_test_title (test, "get difference in iso8601");
+	seconds = pk_iso8601_difference (present);
+	if (seconds == 2)
+		egg_test_success (test, NULL);
+	else
+		egg_test_failed (test, "seconds is wrong, %i", seconds);
+
+	/************************************************************/
+	g_free (present);
+
+
+	/************************************************************
+	 **************        Date handling         ****************
+	 ************************************************************/
+	egg_test_title (test, "zero length date");
+	date = pk_iso8601_to_date ("");
+	egg_test_assert (test, (date == NULL));
+
+	/************************************************************/
+	egg_test_title (test, "no day specified");
+	date = pk_iso8601_to_date ("2004-01");
+	egg_test_assert (test, (date == NULL));
+
+	/************************************************************/
+	egg_test_title (test, "date _and_ time specified");
+	date = pk_iso8601_to_date ("2009-05-08 13:11:12");
+	egg_test_assert (test, (date->day == 8 && date->month == 5 && date->year == 2009));
+	g_date_free (date);
+
+	/************************************************************/
+	egg_test_title (test, "correct date format");
+	date = pk_iso8601_to_date ("2004-02-01");
+	egg_test_assert (test, (date->day == 1 && date->month == 2 && date->year == 2004));
+	g_date_free (date);
+
+	egg_test_end (test);
+}
+#endif
+
diff --git a/lib/packagekit-glib2/pk-common.h b/lib/packagekit-glib2/pk-common.h
deleted file mode 120000
index 2ca1197..27fd225
--- a/lib/packagekit-glib2/pk-common.h
+++ /dev/null
@@ -1 +0,0 @@
-../packagekit-glib/pk-common.h
\ No newline at end of file
diff --git a/lib/packagekit-glib2/pk-common.h b/lib/packagekit-glib2/pk-common.h
new file mode 100644
index 2ca1197..27fd225
--- /dev/null
+++ b/lib/packagekit-glib2/pk-common.h
@@ -0,0 +1,100 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2007-2008 Richard Hughes <richard at hughsie.com>
+ *
+ * Licensed under the GNU General Public License Version 2
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#if !defined (__PACKAGEKIT_H_INSIDE__) && !defined (PK_COMPILATION)
+#error "Only <packagekit.h> can be included directly."
+#endif
+
+#ifndef __PK_COMMON_H
+#define __PK_COMMON_H
+
+#include <glib.h>
+
+#include "pk-enum.h"
+
+G_BEGIN_DECLS
+
+/**
+ * PK_DBUS_SERVICE:
+ *
+ * The SYSTEM service DBUS name
+ */
+#define	PK_DBUS_SERVICE			"org.freedesktop.PackageKit"
+
+/**
+ * PK_DBUS_PATH:
+ *
+ * The DBUS path
+ */
+#define	PK_DBUS_PATH			"/org/freedesktop/PackageKit"
+
+/**
+ * PK_DBUS_INTERFACE:
+ *
+ * The DBUS interface
+ */
+#define	PK_DBUS_INTERFACE		"org.freedesktop.PackageKit"
+
+/**
+ * PK_DBUS_INTERFACE_TRANSACTION:
+ *
+ * The DBUS interface for the transactions
+ */
+#define	PK_DBUS_INTERFACE_TRANSACTION	"org.freedesktop.PackageKit.Transaction"
+
+/**
+ * PK_SERVICE_PACK_GROUP_NAME:
+ *
+ * The group name of the Service Pack config file
+ */
+#define	PK_SERVICE_PACK_GROUP_NAME	"PackageKit Service Pack"
+
+/**
+ * PK_PACKAGE_LIST_FILENAME:
+ *
+ * The default location of the package list
+ */
+#define	PK_SYSTEM_PACKAGE_LIST_FILENAME	"/var/lib/PackageKit/system.package-list"
+
+void		 pk_common_test				(gpointer	 user_data);
+gboolean	 pk_strvalidate				(const gchar	*text)
+							 G_GNUC_WARN_UNUSED_RESULT;
+gchar		*pk_strsafe				(const gchar	*text)
+							 G_GNUC_WARN_UNUSED_RESULT;
+gchar		**pk_ptr_array_to_strv			(GPtrArray	*array)
+							 G_GNUC_WARN_UNUSED_RESULT;
+GPtrArray	*pk_strv_to_ptr_array			(gchar		**array)
+							 G_GNUC_WARN_UNUSED_RESULT;
+gchar		**pk_va_list_to_argv			(const gchar	*string_first,
+							 va_list	*args)
+							 G_GNUC_WARN_UNUSED_RESULT;
+gchar		*pk_iso8601_present			(void)
+							 G_GNUC_WARN_UNUSED_RESULT;
+guint		 pk_iso8601_difference			(const gchar	*isodate);
+gchar		*pk_iso8601_from_date			(const GDate	*date);
+GDate		*pk_iso8601_to_date			(const gchar	*iso_date);
+gchar		*pk_get_distro_id			(void)
+							 G_GNUC_WARN_UNUSED_RESULT;
+gboolean	 pk_error_code_is_need_untrusted	(PkErrorCodeEnum error_code);
+
+G_END_DECLS
+
+#endif /* __PK_COMMON_H */
diff --git a/lib/packagekit-glib2/pk-control-sync.c b/lib/packagekit-glib2/pk-control-sync.c
index a877ec8..c298716 100644
--- a/lib/packagekit-glib2/pk-control-sync.c
+++ b/lib/packagekit-glib2/pk-control-sync.c
@@ -21,7 +21,6 @@
 
 #include "config.h"
 
-#include <string.h>
 #include <glib-object.h>
 #include <dbus/dbus-glib.h>
 #include <gio/gio.h>
@@ -29,6 +28,7 @@
 #include <packagekit-glib2/pk-control-sync.h>
 #include <packagekit-glib2/pk-common.h>
 #include <packagekit-glib2/pk-version.h>
+#include <packagekit-glib2/pk-bitfield.h>
 
 #include "egg-debug.h"
 
diff --git a/lib/packagekit-glib2/pk-control-sync.h b/lib/packagekit-glib2/pk-control-sync.h
index 342911d..b20df0b 100644
--- a/lib/packagekit-glib2/pk-control-sync.h
+++ b/lib/packagekit-glib2/pk-control-sync.h
@@ -35,7 +35,6 @@
 
 #include <packagekit-glib2/pk-enum.h>
 #include <packagekit-glib2/pk-control.h>
-#include <packagekit-glib2/pk-bitfield.h>
 
 G_BEGIN_DECLS
 
diff --git a/lib/packagekit-glib2/pk-control.c b/lib/packagekit-glib2/pk-control.c
index c4bcd47..c2b2df6 100644
--- a/lib/packagekit-glib2/pk-control.c
+++ b/lib/packagekit-glib2/pk-control.c
@@ -26,8 +26,9 @@
 #include <dbus/dbus-glib.h>
 #include <gio/gio.h>
 
-#include <packagekit-glib2/pk-control.h>
+#include <packagekit-glib2/pk-bitfield.h>
 #include <packagekit-glib2/pk-common.h>
+#include <packagekit-glib2/pk-control.h>
 #include <packagekit-glib2/pk-version.h>
 
 #include "egg-debug.h"
diff --git a/lib/packagekit-glib2/pk-control.h b/lib/packagekit-glib2/pk-control.h
index 53cc578..2cad94f 100644
--- a/lib/packagekit-glib2/pk-control.h
+++ b/lib/packagekit-glib2/pk-control.h
@@ -32,9 +32,9 @@
 #define __PK_CONTROL_H
 
 #include <glib-object.h>
+#include <gio/gio.h>
 
 #include <packagekit-glib2/pk-enum.h>
-#include <packagekit-glib2/pk-bitfield.h>
 
 G_BEGIN_DECLS
 
diff --git a/lib/packagekit-glib2/pk-enum.c b/lib/packagekit-glib2/pk-enum.c
deleted file mode 120000
index 6d8595a..b68b0e6
--- a/lib/packagekit-glib2/pk-enum.c
+++ /dev/null
@@ -1 +0,0 @@
-../packagekit-glib/pk-enum.c
\ No newline at end of file
diff --git a/lib/packagekit-glib2/pk-enum.c b/lib/packagekit-glib2/pk-enum.c
new file mode 100644
index 6d8595a..b68b0e6
--- /dev/null
+++ b/lib/packagekit-glib2/pk-enum.c
@@ -0,0 +1,1225 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2007-2008 Richard Hughes <richard at hughsie.com>
+ *
+ * Licensed under the GNU General Public License Version 2
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+/**
+ * SECTION:pk-enum
+ * @short_description: Functions for converting strings to enum and vice-versa
+ *
+ * This file contains functions to convert to and from enumerated types.
+ */
+
+#include "config.h"
+
+#include <string.h>
+#include <glib.h>
+
+#include "egg-debug.h"
+#include "egg-string.h"
+
+#include <packagekit-glib2/pk-common.h>
+#include <packagekit-glib2/pk-enum.h>
+
+static const PkEnumMatch enum_exit[] = {
+	{PK_EXIT_ENUM_UNKNOWN,			"unknown"},	/* fall though value */
+	{PK_EXIT_ENUM_SUCCESS,			"success"},
+	{PK_EXIT_ENUM_FAILED,			"failed"},
+	{PK_EXIT_ENUM_CANCELLED,		"cancelled"},
+	{PK_EXIT_ENUM_KEY_REQUIRED,		"key-required"},
+	{PK_EXIT_ENUM_EULA_REQUIRED,		"eula-required"},
+	{PK_EXIT_ENUM_MEDIA_CHANGE_REQUIRED,	"media-change-required"},
+	{PK_EXIT_ENUM_KILLED,			"killed"},
+	{PK_EXIT_ENUM_NEED_UNTRUSTED,		"need-untrusted"},
+	{0, NULL}
+};
+
+static const PkEnumMatch enum_status[] = {
+	{PK_STATUS_ENUM_UNKNOWN,		"unknown"},	/* fall though value */
+	{PK_STATUS_ENUM_WAIT,			"wait"},
+	{PK_STATUS_ENUM_SETUP,			"setup"},
+	{PK_STATUS_ENUM_RUNNING,		"running"},
+	{PK_STATUS_ENUM_QUERY,			"query"},
+	{PK_STATUS_ENUM_INFO,			"info"},
+	{PK_STATUS_ENUM_REFRESH_CACHE,		"refresh-cache"},
+	{PK_STATUS_ENUM_REMOVE,			"remove"},
+	{PK_STATUS_ENUM_DOWNLOAD,		"download"},
+	{PK_STATUS_ENUM_INSTALL,		"install"},
+	{PK_STATUS_ENUM_UPDATE,			"update"},
+	{PK_STATUS_ENUM_CLEANUP,		"cleanup"},
+	{PK_STATUS_ENUM_OBSOLETE,		"obsolete"},
+	{PK_STATUS_ENUM_DEP_RESOLVE,		"dep-resolve"},
+	{PK_STATUS_ENUM_SIG_CHECK,		"sig-check"},
+	{PK_STATUS_ENUM_ROLLBACK,		"rollback"},
+	{PK_STATUS_ENUM_TEST_COMMIT,		"test-commit"},
+	{PK_STATUS_ENUM_COMMIT,			"commit"},
+	{PK_STATUS_ENUM_REQUEST,		"request"},
+	{PK_STATUS_ENUM_FINISHED,		"finished"},
+	{PK_STATUS_ENUM_CANCEL,			"cancel"},
+	{PK_STATUS_ENUM_DOWNLOAD_REPOSITORY,	"download-repository"},
+	{PK_STATUS_ENUM_DOWNLOAD_PACKAGELIST,	"download-packagelist"},
+	{PK_STATUS_ENUM_DOWNLOAD_FILELIST,	"download-filelist"},
+	{PK_STATUS_ENUM_DOWNLOAD_CHANGELOG,	"download-changelog"},
+	{PK_STATUS_ENUM_DOWNLOAD_GROUP,		"download-group"},
+	{PK_STATUS_ENUM_DOWNLOAD_UPDATEINFO,	"download-updateinfo"},
+	{PK_STATUS_ENUM_REPACKAGING,		"repackaging"},
+	{PK_STATUS_ENUM_LOADING_CACHE,		"loading-cache"},
+	{PK_STATUS_ENUM_SCAN_APPLICATIONS,	"scan-applications"},
+	{PK_STATUS_ENUM_GENERATE_PACKAGE_LIST,	"generate-package-list"},
+	{PK_STATUS_ENUM_WAITING_FOR_LOCK,	"waiting-for-lock"},
+	{PK_STATUS_ENUM_WAITING_FOR_AUTH,	"waiting-for-auth"},
+	{PK_STATUS_ENUM_SCAN_PROCESS_LIST,	"scan-process-list"},
+	{PK_STATUS_ENUM_CHECK_EXECUTABLE_FILES,	"check-executable-files"},
+	{PK_STATUS_ENUM_CHECK_LIBRARIES,	"check-libraries"},
+	{0, NULL}
+};
+
+static const PkEnumMatch enum_role[] = {
+	{PK_ROLE_ENUM_UNKNOWN,				"unknown"},	/* fall though value */
+	{PK_ROLE_ENUM_CANCEL,				"cancel"},
+	{PK_ROLE_ENUM_GET_DEPENDS,			"get-depends"},
+	{PK_ROLE_ENUM_GET_DETAILS,			"get-details"},
+	{PK_ROLE_ENUM_GET_FILES,			"get-files"},
+	{PK_ROLE_ENUM_GET_PACKAGES,			"get-packages"},
+	{PK_ROLE_ENUM_GET_REPO_LIST,			"get-repo-list"},
+	{PK_ROLE_ENUM_GET_REQUIRES,			"get-requires"},
+	{PK_ROLE_ENUM_GET_UPDATE_DETAIL,		"get-update-detail"},
+	{PK_ROLE_ENUM_GET_UPDATES,			"get-updates"},
+	{PK_ROLE_ENUM_INSTALL_FILES,			"install-files"},
+	{PK_ROLE_ENUM_INSTALL_PACKAGES,			"install-packages"},
+	{PK_ROLE_ENUM_INSTALL_SIGNATURE,		"install-signature"},
+	{PK_ROLE_ENUM_REFRESH_CACHE,			"refresh-cache"},
+	{PK_ROLE_ENUM_REMOVE_PACKAGES,			"remove-packages"},
+	{PK_ROLE_ENUM_REPO_ENABLE,			"repo-enable"},
+	{PK_ROLE_ENUM_REPO_SET_DATA,			"repo-set-data"},
+	{PK_ROLE_ENUM_RESOLVE,				"resolve"},
+	{PK_ROLE_ENUM_ROLLBACK,				"rollback"},
+	{PK_ROLE_ENUM_SEARCH_DETAILS,			"search-details"},
+	{PK_ROLE_ENUM_SEARCH_FILE,			"search-file"},
+	{PK_ROLE_ENUM_SEARCH_GROUP,			"search-group"},
+	{PK_ROLE_ENUM_SEARCH_NAME,			"search-name"},
+	{PK_ROLE_ENUM_UPDATE_PACKAGES,			"update-packages"},
+	{PK_ROLE_ENUM_UPDATE_SYSTEM,			"update-system"},
+	{PK_ROLE_ENUM_WHAT_PROVIDES,			"what-provides"},
+	{PK_ROLE_ENUM_ACCEPT_EULA,			"accept-eula"},
+	{PK_ROLE_ENUM_DOWNLOAD_PACKAGES,		"download-packages"},
+	{PK_ROLE_ENUM_GET_DISTRO_UPGRADES,		"get-distro-upgrades"},
+	{PK_ROLE_ENUM_GET_CATEGORIES,			"get-categories"},
+	{PK_ROLE_ENUM_GET_OLD_TRANSACTIONS,		"get-old-transactions"},
+	{PK_ROLE_ENUM_SIMULATE_INSTALL_FILES,		"simulate-install-files"},
+	{PK_ROLE_ENUM_SIMULATE_INSTALL_PACKAGES,	"simulate-install-packages"},
+	{PK_ROLE_ENUM_SIMULATE_REMOVE_PACKAGES,		"simulate-remove-packages"},
+	{PK_ROLE_ENUM_SIMULATE_UPDATE_PACKAGES,		"simulate-update-packages"},
+	{0, NULL}
+};
+
+static const PkEnumMatch enum_error[] = {
+	{PK_ERROR_ENUM_UNKNOWN,			"unknown"},	/* fall though value */
+	{PK_ERROR_ENUM_OOM,			"out-of-memory"},
+	{PK_ERROR_ENUM_NO_CACHE,		"no-cache"},
+	{PK_ERROR_ENUM_NO_NETWORK,		"no-network"},
+	{PK_ERROR_ENUM_NOT_SUPPORTED,		"not-supported"},
+	{PK_ERROR_ENUM_INTERNAL_ERROR,		"internal-error"},
+	{PK_ERROR_ENUM_GPG_FAILURE,		"gpg-failure"},
+	{PK_ERROR_ENUM_FILTER_INVALID,		"filter-invalid"},
+	{PK_ERROR_ENUM_PACKAGE_ID_INVALID,	"package-id-invalid"},
+	{PK_ERROR_ENUM_TRANSACTION_ERROR,	"transaction-error"},
+	{PK_ERROR_ENUM_TRANSACTION_CANCELLED,	"transaction-cancelled"},
+	{PK_ERROR_ENUM_PACKAGE_NOT_INSTALLED,	"package-not-installed"},
+	{PK_ERROR_ENUM_PACKAGE_NOT_FOUND,	"package-not-found"},
+	{PK_ERROR_ENUM_PACKAGE_ALREADY_INSTALLED,	"package-already-installed"},
+	{PK_ERROR_ENUM_PACKAGE_DOWNLOAD_FAILED,	"package-download-failed"},
+	{PK_ERROR_ENUM_GROUP_NOT_FOUND,		"group-not-found"},
+	{PK_ERROR_ENUM_GROUP_LIST_INVALID,	"group-list-invalid"},
+	{PK_ERROR_ENUM_DEP_RESOLUTION_FAILED,	"dep-resolution-failed"},
+	{PK_ERROR_ENUM_CREATE_THREAD_FAILED,	"create-thread-failed"},
+	{PK_ERROR_ENUM_REPO_NOT_FOUND,		"repo-not-found"},
+	{PK_ERROR_ENUM_CANNOT_REMOVE_SYSTEM_PACKAGE,	"cannot-remove-system-package"},
+	{PK_ERROR_ENUM_PROCESS_KILL,		"process-kill"},
+	{PK_ERROR_ENUM_FAILED_INITIALIZATION,	"failed-initialization"},
+	{PK_ERROR_ENUM_FAILED_FINALISE,		"failed-finalise"},
+	{PK_ERROR_ENUM_FAILED_CONFIG_PARSING,	"failed-config-parsing"},
+	{PK_ERROR_ENUM_CANNOT_CANCEL,		"cannot-cancel"},
+	{PK_ERROR_ENUM_CANNOT_GET_LOCK,		"cannot-get-lock"},
+	{PK_ERROR_ENUM_NO_PACKAGES_TO_UPDATE,	"no-packages-to-update"},
+	{PK_ERROR_ENUM_CANNOT_WRITE_REPO_CONFIG, "cannot-write-repo-config"},
+	{PK_ERROR_ENUM_LOCAL_INSTALL_FAILED,	"local-install-failed"},
+	{PK_ERROR_ENUM_BAD_GPG_SIGNATURE,	"bad-gpg-signature"},
+	{PK_ERROR_ENUM_MISSING_GPG_SIGNATURE,	"missing-gpg-signature"},
+	{PK_ERROR_ENUM_CANNOT_INSTALL_SOURCE_PACKAGE,	"cannot-install-source-package"},
+	{PK_ERROR_ENUM_REPO_CONFIGURATION_ERROR,	"repo-configuration-error"},
+	{PK_ERROR_ENUM_NO_LICENSE_AGREEMENT,	"no-license-agreement"},
+	{PK_ERROR_ENUM_FILE_CONFLICTS,		"file-conflicts"},
+	{PK_ERROR_ENUM_PACKAGE_CONFLICTS,	"package-conflicts"},
+	{PK_ERROR_ENUM_REPO_NOT_AVAILABLE,	"repo-not-available"},
+	{PK_ERROR_ENUM_INVALID_PACKAGE_FILE,	"invalid-package-file"},
+	{PK_ERROR_ENUM_PACKAGE_INSTALL_BLOCKED, "package-install-blocked"},
+	{PK_ERROR_ENUM_PACKAGE_CORRUPT,		"package-corrupt"},
+	{PK_ERROR_ENUM_ALL_PACKAGES_ALREADY_INSTALLED, "all-packages-already-installed"},
+	{PK_ERROR_ENUM_FILE_NOT_FOUND,		"file-not-found"},
+	{PK_ERROR_ENUM_NO_MORE_MIRRORS_TO_TRY,	"no-more-mirrors-to-try"},
+	{PK_ERROR_ENUM_NO_DISTRO_UPGRADE_DATA,	"no-distro-upgrade-data"},
+	{PK_ERROR_ENUM_INCOMPATIBLE_ARCHITECTURE,	"incompatible-architecture"},
+	{PK_ERROR_ENUM_NO_SPACE_ON_DEVICE,	"no-space-on-device"},
+	{PK_ERROR_ENUM_MEDIA_CHANGE_REQUIRED,	"media-change-required"},
+	{PK_ERROR_ENUM_NOT_AUTHORIZED,		"not-authorized"},
+	{PK_ERROR_ENUM_UPDATE_NOT_FOUND,	"update-not-found"},
+	{PK_ERROR_ENUM_CANNOT_INSTALL_REPO_UNSIGNED,	"cannot-install-repo-unsigned"},
+	{PK_ERROR_ENUM_CANNOT_UPDATE_REPO_UNSIGNED,	"cannot-update-repo-unsigned"},
+	{PK_ERROR_ENUM_CANNOT_GET_FILELIST, "cannot-get-filelist"},
+	{PK_ERROR_ENUM_CANNOT_GET_REQUIRES, "cannot-get-requires"},
+	{PK_ERROR_ENUM_CANNOT_DISABLE_REPOSITORY, "cannot-disable-repository"},
+	{PK_ERROR_ENUM_RESTRICTED_DOWNLOAD, "restricted-download"},
+	{PK_ERROR_ENUM_PACKAGE_FAILED_TO_CONFIGURE, "package-failed-to-configure"},
+	{PK_ERROR_ENUM_PACKAGE_FAILED_TO_BUILD, "package-failed-to-build"},
+	{PK_ERROR_ENUM_PACKAGE_FAILED_TO_INSTALL, "package-failed-to-install"},
+	{PK_ERROR_ENUM_PACKAGE_FAILED_TO_REMOVE, "package-failed-to-remove"},
+	{0, NULL}
+};
+
+static const PkEnumMatch enum_restart[] = {
+	{PK_RESTART_ENUM_UNKNOWN,		"unknown"},	/* fall though value */
+	{PK_RESTART_ENUM_NONE,			"none"},
+	{PK_RESTART_ENUM_SYSTEM,		"system"},
+	{PK_RESTART_ENUM_SESSION,		"session"},
+	{PK_RESTART_ENUM_APPLICATION,		"application"},
+	{PK_RESTART_ENUM_SECURITY_SYSTEM,	"security-system"},
+	{PK_RESTART_ENUM_SECURITY_SESSION,	"security-session"},
+	{0, NULL}
+};
+
+static const PkEnumMatch enum_message[] = {
+	{PK_MESSAGE_ENUM_UNKNOWN,		"unknown"},	/* fall though value */
+	{PK_MESSAGE_ENUM_BROKEN_MIRROR,		"broken-mirror"},
+	{PK_MESSAGE_ENUM_CONNECTION_REFUSED,	"connection-refused"},
+	{PK_MESSAGE_ENUM_PARAMETER_INVALID,	"parameter-invalid"},
+	{PK_MESSAGE_ENUM_PRIORITY_INVALID,	"priority-invalid"},
+	{PK_MESSAGE_ENUM_BACKEND_ERROR,		"backend-error"},
+	{PK_MESSAGE_ENUM_DAEMON_ERROR,		"daemon-error"},
+	{PK_MESSAGE_ENUM_CACHE_BEING_REBUILT,	"cache-being-rebuilt"},
+	{PK_MESSAGE_ENUM_UNTRUSTED_PACKAGE,	"untrusted-package"},
+	{PK_MESSAGE_ENUM_NEWER_PACKAGE_EXISTS,	"newer-package-exists"},
+	{PK_MESSAGE_ENUM_COULD_NOT_FIND_PACKAGE,	"could-not-find-package"},
+	{PK_MESSAGE_ENUM_CONFIG_FILES_CHANGED,	"config-files-changed"},
+	{PK_MESSAGE_ENUM_PACKAGE_ALREADY_INSTALLED, "package-already-installed"},
+	{PK_MESSAGE_ENUM_AUTOREMOVE_IGNORED, "autoremove-ignored"},
+	{0, NULL}
+};
+
+static const PkEnumMatch enum_filter[] = {
+	{PK_FILTER_ENUM_UNKNOWN,		"unknown"},	/* fall though value */
+	{PK_FILTER_ENUM_NONE,			"none"},
+	{PK_FILTER_ENUM_INSTALLED,		"installed"},
+	{PK_FILTER_ENUM_NOT_INSTALLED,		"~installed"},
+	{PK_FILTER_ENUM_DEVELOPMENT,		"devel"},
+	{PK_FILTER_ENUM_NOT_DEVELOPMENT,	"~devel"},
+	{PK_FILTER_ENUM_GUI,			"gui"},
+	{PK_FILTER_ENUM_NOT_GUI,		"~gui"},
+	{PK_FILTER_ENUM_FREE,			"free"},
+	{PK_FILTER_ENUM_NOT_FREE,		"~free"},
+	{PK_FILTER_ENUM_VISIBLE,		"visible"},
+	{PK_FILTER_ENUM_NOT_VISIBLE,		"~visible"},
+	{PK_FILTER_ENUM_SUPPORTED,		"supported"},
+	{PK_FILTER_ENUM_NOT_SUPPORTED,		"~supported"},
+	{PK_FILTER_ENUM_BASENAME,		"basename"},
+	{PK_FILTER_ENUM_NOT_BASENAME,		"~basename"},
+	{PK_FILTER_ENUM_NEWEST,			"newest"},
+	{PK_FILTER_ENUM_NOT_NEWEST,		"~newest"},
+	{PK_FILTER_ENUM_ARCH,			"arch"},
+	{PK_FILTER_ENUM_NOT_ARCH,		"~arch"},
+	{PK_FILTER_ENUM_SOURCE,			"source"},
+	{PK_FILTER_ENUM_NOT_SOURCE,		"~source"},
+	{PK_FILTER_ENUM_COLLECTIONS,		"collections"},
+	{PK_FILTER_ENUM_NOT_COLLECTIONS,	"~collections"},
+	{PK_FILTER_ENUM_APPLICATION,		"application"},
+	{PK_FILTER_ENUM_NOT_APPLICATION,	"~application"},
+	{0, NULL}
+};
+
+static const PkEnumMatch enum_group[] = {
+	{PK_GROUP_ENUM_UNKNOWN,			"unknown"},	/* fall though value */
+	{PK_GROUP_ENUM_ACCESSIBILITY,		"accessibility"},
+	{PK_GROUP_ENUM_ACCESSORIES,		"accessories"},
+	{PK_GROUP_ENUM_EDUCATION,		"education"},
+	{PK_GROUP_ENUM_GAMES,			"games"},
+	{PK_GROUP_ENUM_GRAPHICS,		"graphics"},
+	{PK_GROUP_ENUM_INTERNET,		"internet"},
+	{PK_GROUP_ENUM_OFFICE,			"office"},
+	{PK_GROUP_ENUM_OTHER,			"other"},
+	{PK_GROUP_ENUM_PROGRAMMING,		"programming"},
+	{PK_GROUP_ENUM_MULTIMEDIA,		"multimedia"},
+	{PK_GROUP_ENUM_SYSTEM,			"system"},
+	{PK_GROUP_ENUM_DESKTOP_GNOME,		"desktop-gnome"},
+	{PK_GROUP_ENUM_DESKTOP_KDE,		"desktop-kde"},
+	{PK_GROUP_ENUM_DESKTOP_XFCE,		"desktop-xfce"},
+	{PK_GROUP_ENUM_DESKTOP_OTHER,		"desktop-other"},
+	{PK_GROUP_ENUM_PUBLISHING,		"publishing"},
+	{PK_GROUP_ENUM_SERVERS,			"servers"},
+	{PK_GROUP_ENUM_FONTS,			"fonts"},
+	{PK_GROUP_ENUM_ADMIN_TOOLS,		"admin-tools"},
+	{PK_GROUP_ENUM_LEGACY,			"legacy"},
+	{PK_GROUP_ENUM_LOCALIZATION,		"localization"},
+	{PK_GROUP_ENUM_VIRTUALIZATION,		"virtualization"},
+	{PK_GROUP_ENUM_POWER_MANAGEMENT,	"power-management"},
+	{PK_GROUP_ENUM_SECURITY,		"security"},
+	{PK_GROUP_ENUM_COMMUNICATION,		"communication"},
+	{PK_GROUP_ENUM_NETWORK,			"network"},
+	{PK_GROUP_ENUM_MAPS,			"maps"},
+	{PK_GROUP_ENUM_REPOS,			"repos"},
+	{PK_GROUP_ENUM_SCIENCE,			"science"},
+	{PK_GROUP_ENUM_DOCUMENTATION,		"documentation"},
+	{PK_GROUP_ENUM_ELECTRONICS,		"electronics"},
+	{PK_GROUP_ENUM_COLLECTIONS,		"collections"},
+	{PK_GROUP_ENUM_VENDOR,			"vendor"},
+	{PK_GROUP_ENUM_NEWEST,			"newest"},
+	{0, NULL}
+};
+
+static const PkEnumMatch enum_update_state[] = {
+	{PK_UPDATE_STATE_ENUM_UNKNOWN,		"unknown"},	/* fall though value */
+	{PK_UPDATE_STATE_ENUM_TESTING,		"testing"},
+	{PK_UPDATE_STATE_ENUM_UNSTABLE,		"unstable"},
+	{PK_UPDATE_STATE_ENUM_STABLE,		"stable"},
+	{0, NULL}
+};
+
+static const PkEnumMatch enum_info[] = {
+	{PK_INFO_ENUM_UNKNOWN,			"unknown"},	/* fall though value */
+	{PK_INFO_ENUM_INSTALLED,		"installed"},
+	{PK_INFO_ENUM_AVAILABLE,		"available"},
+	{PK_INFO_ENUM_LOW,			"low"},
+	{PK_INFO_ENUM_NORMAL,			"normal"},
+	{PK_INFO_ENUM_IMPORTANT,		"important"},
+	{PK_INFO_ENUM_SECURITY,			"security"},
+	{PK_INFO_ENUM_BUGFIX,			"bugfix"},
+	{PK_INFO_ENUM_ENHANCEMENT,		"enhancement"},
+	{PK_INFO_ENUM_BLOCKED,			"blocked"},
+	{PK_INFO_ENUM_DOWNLOADING,		"downloading"},
+	{PK_INFO_ENUM_UPDATING,			"updating"},
+	{PK_INFO_ENUM_INSTALLING,		"installing"},
+	{PK_INFO_ENUM_REMOVING,			"removing"},
+	{PK_INFO_ENUM_CLEANUP,			"cleanup"},
+	{PK_INFO_ENUM_OBSOLETING,		"obsoleting"},
+	{PK_INFO_ENUM_COLLECTION_INSTALLED,	"collection-installed"},
+	{PK_INFO_ENUM_COLLECTION_AVAILABLE,	"collection-available"},
+	{PK_INFO_ENUM_FINISHED,			"finished"},
+	{PK_INFO_ENUM_REINSTALLING,		"reinstalling"},
+	{PK_INFO_ENUM_DOWNGRADING,		"downgrading"},
+	{0, NULL}
+};
+
+static const PkEnumMatch enum_sig_type[] = {
+	{PK_SIGTYPE_ENUM_UNKNOWN,		"unknown"},	/* fall though value */
+	{PK_SIGTYPE_ENUM_GPG,			"gpg"},
+	{0, NULL}
+};
+
+static const PkEnumMatch enum_upgrade[] = {
+	{PK_DISTRO_UPGRADE_ENUM_UNKNOWN,	"unknown"},	/* fall though value */
+	{PK_DISTRO_UPGRADE_ENUM_STABLE,		"stable"},
+	{PK_DISTRO_UPGRADE_ENUM_UNSTABLE,		"unstable"},
+	{0, NULL}
+};
+
+static const PkEnumMatch enum_provides[] = {
+	{PK_PROVIDES_ENUM_UNKNOWN,		"unknown"},	/* fall though value */
+	{PK_PROVIDES_ENUM_ANY,			"any"},
+	{PK_PROVIDES_ENUM_MODALIAS,		"modalias"},
+	{PK_PROVIDES_ENUM_CODEC,		"codec"},
+	{PK_PROVIDES_ENUM_MIMETYPE,		"mimetype"},
+	{PK_PROVIDES_ENUM_HARDWARE_DRIVER,	"driver"},
+	{PK_PROVIDES_ENUM_FONT,			"font"},
+	{PK_PROVIDES_ENUM_POSTSCRIPT_DRIVER,	"postscript-driver"},
+	{0, NULL}
+};
+
+static const PkEnumMatch enum_network[] = {
+	{PK_NETWORK_ENUM_UNKNOWN,		"unknown"},	/* fall though value */
+	{PK_NETWORK_ENUM_OFFLINE,		"offline"},
+	{PK_NETWORK_ENUM_ONLINE,		"online"},
+	{PK_NETWORK_ENUM_WIRED,			"wired"},
+	{PK_NETWORK_ENUM_WIFI,			"wifi"},
+	{PK_NETWORK_ENUM_MOBILE,		"mobile"},
+	{0, NULL}
+};
+
+static const PkEnumMatch enum_free_licenses[] = {
+	{PK_LICENSE_ENUM_UNKNOWN,		"unknown"},	/* fall though value */
+	{PK_LICENSE_ENUM_GLIDE,			"Glide"},
+	{PK_LICENSE_ENUM_AFL,			"AFL"},
+	{PK_LICENSE_ENUM_AMPAS_BSD,		"AMPAS BSD"},
+	{PK_LICENSE_ENUM_AMAZON_DSL,		"ADSL"},
+	{PK_LICENSE_ENUM_ADOBE,			"Adobe"},
+	{PK_LICENSE_ENUM_AGPLV1,		"AGPLv1"},
+	{PK_LICENSE_ENUM_AGPLV3,		"AGPLv3"},
+	{PK_LICENSE_ENUM_ASL_1_DOT_0,		"ASL 1.0"},
+	{PK_LICENSE_ENUM_ASL_1_DOT_1,		"ASL 1.1"},
+	{PK_LICENSE_ENUM_ASL_2_DOT_0,		"ASL 2.0"},
+	{PK_LICENSE_ENUM_APSL_2_DOT_0,		"APSL 2.0"},
+	{PK_LICENSE_ENUM_ARTISTIC_CLARIFIED,	"Artistic clarified"},
+	{PK_LICENSE_ENUM_ARTISTIC_2_DOT_0,	"Artistic 2.0"},
+	{PK_LICENSE_ENUM_ARL,			"ARL"},
+	{PK_LICENSE_ENUM_BITTORRENT,		"BitTorrent"},
+	{PK_LICENSE_ENUM_BOOST,			"Boost"},
+	{PK_LICENSE_ENUM_BSD_WITH_ADVERTISING,	"BSD with advertising"},
+	{PK_LICENSE_ENUM_BSD,			"BSD"},
+	{PK_LICENSE_ENUM_CECILL,		"CeCILL"},
+	{PK_LICENSE_ENUM_CDDL,			"CDDL"},
+	{PK_LICENSE_ENUM_CPL,			"CPL"},
+	{PK_LICENSE_ENUM_CONDOR,		"Condor"},
+	{PK_LICENSE_ENUM_COPYRIGHT_ONLY,	"Copyright only"},
+	{PK_LICENSE_ENUM_CRYPTIX,		"Cryptix"},
+	{PK_LICENSE_ENUM_CRYSTAL_STACKER,	"Crystal Stacker"},
+	{PK_LICENSE_ENUM_DOC,			"DOC"},
+	{PK_LICENSE_ENUM_WTFPL,			"WTFPL"},
+	{PK_LICENSE_ENUM_EPL,			"EPL"},
+	{PK_LICENSE_ENUM_ECOS,			"eCos"},
+	{PK_LICENSE_ENUM_EFL_2_DOT_0,		"EFL 2.0"},
+	{PK_LICENSE_ENUM_EU_DATAGRID,		"EU Datagrid"},
+	{PK_LICENSE_ENUM_LGPLV2_WITH_EXCEPTIONS,"LGPLv2 with exceptions"},
+	{PK_LICENSE_ENUM_FTL,			"FTL"},
+	{PK_LICENSE_ENUM_GIFTWARE,		"Giftware"},
+	{PK_LICENSE_ENUM_GPLV2,			"GPLv2"},
+	{PK_LICENSE_ENUM_GPLV2_WITH_EXCEPTIONS,	"GPLv2 with exceptions"},
+	{PK_LICENSE_ENUM_GPLV2_PLUS_WITH_EXCEPTIONS, "GPLv2+ with exceptions"},
+	{PK_LICENSE_ENUM_GPLV3,			"GPLv3"},
+	{PK_LICENSE_ENUM_GPLV3_WITH_EXCEPTIONS,	"GPLv3 with exceptions"},
+	{PK_LICENSE_ENUM_GPLV3_PLUS_WITH_EXCEPTIONS, "GPLv3+ with exceptions"},
+	{PK_LICENSE_ENUM_LGPLV2,		"LGPLv2"},
+	{PK_LICENSE_ENUM_LGPLV3,		"LGPLv3"},
+	{PK_LICENSE_ENUM_GNUPLOT,		"gnuplot"},
+	{PK_LICENSE_ENUM_IBM,			"IBM"},
+	{PK_LICENSE_ENUM_IMATIX,		"iMatix"},
+	{PK_LICENSE_ENUM_IMAGEMAGICK,		"ImageMagick"},
+	{PK_LICENSE_ENUM_IMLIB2,		"Imlib2"},
+	{PK_LICENSE_ENUM_IJG,			"IJG"},
+	{PK_LICENSE_ENUM_INTEL_ACPI,		"Intel ACPI"},
+	{PK_LICENSE_ENUM_INTERBASE,		"Interbase"},
+	{PK_LICENSE_ENUM_ISC,			"ISC"},
+	{PK_LICENSE_ENUM_JABBER,		"Jabber"},
+	{PK_LICENSE_ENUM_JASPER,		"JasPer"},
+	{PK_LICENSE_ENUM_LPPL,			"LPPL"},
+	{PK_LICENSE_ENUM_LIBTIFF,		"libtiff"},
+	{PK_LICENSE_ENUM_LPL,			"LPL"},
+	{PK_LICENSE_ENUM_MECAB_IPADIC,		"mecab-ipadic"},
+	{PK_LICENSE_ENUM_MIT,			"MIT"},
+	{PK_LICENSE_ENUM_MIT_WITH_ADVERTISING,	"MIT with advertising"},
+	{PK_LICENSE_ENUM_MPLV1_DOT_0,		"MPLv1.0"},
+	{PK_LICENSE_ENUM_MPLV1_DOT_1,		"MPLv1.1"},
+	{PK_LICENSE_ENUM_NCSA,			"NCSA"},
+	{PK_LICENSE_ENUM_NGPL,			"NGPL"},
+	{PK_LICENSE_ENUM_NOSL,			"NOSL"},
+	{PK_LICENSE_ENUM_NETCDF,		"NetCDF"},
+	{PK_LICENSE_ENUM_NETSCAPE,		"Netscape"},
+	{PK_LICENSE_ENUM_NOKIA,			"Nokia"},
+	{PK_LICENSE_ENUM_OPENLDAP,		"OpenLDAP"},
+	{PK_LICENSE_ENUM_OPENPBS,		"OpenPBS"},
+	{PK_LICENSE_ENUM_OSL_1_DOT_0,		"OSL 1.0"},
+	{PK_LICENSE_ENUM_OSL_1_DOT_1,		"OSL 1.1"},
+	{PK_LICENSE_ENUM_OSL_2_DOT_0,		"OSL 2.0"},
+	{PK_LICENSE_ENUM_OSL_3_DOT_0,		"OSL 3.0"},
+	{PK_LICENSE_ENUM_OPENSSL,		"OpenSSL"},
+	{PK_LICENSE_ENUM_OREILLY,		"OReilly"},
+	{PK_LICENSE_ENUM_PHORUM,		"Phorum"},
+	{PK_LICENSE_ENUM_PHP,			"PHP"},
+	{PK_LICENSE_ENUM_PUBLIC_DOMAIN,		"Public Domain"},
+	{PK_LICENSE_ENUM_PYTHON,		"Python"},
+	{PK_LICENSE_ENUM_QPL,			"QPL"},
+	{PK_LICENSE_ENUM_RPSL,			"RPSL"},
+	{PK_LICENSE_ENUM_RUBY,			"Ruby"},
+	{PK_LICENSE_ENUM_SENDMAIL,		"Sendmail"},
+	{PK_LICENSE_ENUM_SLEEPYCAT,		"Sleepycat"},
+	{PK_LICENSE_ENUM_SLIB,			"SLIB"},
+	{PK_LICENSE_ENUM_SISSL,			"SISSL"},
+	{PK_LICENSE_ENUM_SPL,			"SPL"},
+	{PK_LICENSE_ENUM_TCL,			"TCL"},
+	{PK_LICENSE_ENUM_UCD,			"UCD"},
+	{PK_LICENSE_ENUM_VIM,			"Vim"},
+	{PK_LICENSE_ENUM_VNLSL,			"VNLSL"},
+	{PK_LICENSE_ENUM_VSL,			"VSL"},
+	{PK_LICENSE_ENUM_W3C,			"W3C"},
+	{PK_LICENSE_ENUM_WXWIDGETS,		"wxWidgets"},
+	{PK_LICENSE_ENUM_XINETD,		"xinetd"},
+	{PK_LICENSE_ENUM_ZEND,			"Zend"},
+	{PK_LICENSE_ENUM_ZPLV1_DOT_0,		"ZPLv1.0"},
+	{PK_LICENSE_ENUM_ZPLV2_DOT_0,		"ZPLv2.0"},
+	{PK_LICENSE_ENUM_ZPLV2_DOT_1,		"ZPLv2.1"},
+	{PK_LICENSE_ENUM_ZLIB,			"zlib"},
+	{PK_LICENSE_ENUM_ZLIB_WITH_ACK,		"zlib with acknowledgement"},
+	{PK_LICENSE_ENUM_CDL,			"CDL"},
+	{PK_LICENSE_ENUM_FBSDDL,		"FBSDDL"},
+	{PK_LICENSE_ENUM_GFDL,			"GFDL"},
+	{PK_LICENSE_ENUM_IEEE,			"IEEE"},
+	{PK_LICENSE_ENUM_OFSFDL,		"OFSFDL"},
+	{PK_LICENSE_ENUM_OPEN_PUBLICATION,	"Open Publication"},
+	{PK_LICENSE_ENUM_CC_BY,			"CC-BY"},
+	{PK_LICENSE_ENUM_CC_BY_SA,		"CC-BY-SA"},
+	{PK_LICENSE_ENUM_CC_BY_ND,		"CC-BY-ND"},
+	{PK_LICENSE_ENUM_DSL,			"DSL"},
+	{PK_LICENSE_ENUM_FREE_ART,		"Free Art"},
+	{PK_LICENSE_ENUM_OFL,			"OFL"},
+	{PK_LICENSE_ENUM_UTOPIA,		"Utopia"},
+	{PK_LICENSE_ENUM_ARPHIC,		"Arphic"},
+	{PK_LICENSE_ENUM_BAEKMUK,		"Baekmuk"},
+	{PK_LICENSE_ENUM_BITSTREAM_VERA,	"Bitstream Vera"},
+	{PK_LICENSE_ENUM_LUCIDA,		"Lucida"},
+	{PK_LICENSE_ENUM_MPLUS,			"mplus"},
+	{PK_LICENSE_ENUM_STIX,			"STIX"},
+	{PK_LICENSE_ENUM_XANO,			"XANO"},
+	{PK_LICENSE_ENUM_VOSTROM,		"VOSTROM"},
+	{PK_LICENSE_ENUM_XEROX,			"Xerox License"},
+	{PK_LICENSE_ENUM_RICEBSD,		"RiceBSD"},
+	{PK_LICENSE_ENUM_QHULL,			"Qhull"},
+	{0, NULL}
+};
+
+static const PkEnumMatch enum_media_type[] = {
+	{PK_MEDIA_TYPE_ENUM_UNKNOWN,		"unknown"},	/* fall though value */
+	{PK_MEDIA_TYPE_ENUM_CD,			"cd"},
+	{PK_MEDIA_TYPE_ENUM_DVD,		"dvd"},
+	{PK_MEDIA_TYPE_ENUM_DISC,		"disc"},
+	{0, NULL}
+};
+
+static const PkEnumMatch enum_authorize_type[] = {
+	{PK_AUTHORIZE_ENUM_UNKNOWN,		"unknown"},	/* fall though value */
+	{PK_AUTHORIZE_ENUM_YES,			"yes"},
+	{PK_AUTHORIZE_ENUM_NO,			"no"},
+	{PK_AUTHORIZE_ENUM_INTERACTIVE,		"interactive"},
+	{0, NULL}
+};
+
+/**
+ * pk_enum_find_value:
+ * @table: A #PkEnumMatch enum table of values
+ * @string: the string constant to search for, e.g. "desktop-gnome"
+ *
+ * Search for a string value in a table of constants.
+ *
+ * Return value: the enumerated constant value, e.g. PK_SIGTYPE_ENUM_GPG
+ */
+guint
+pk_enum_find_value (const PkEnumMatch *table, const gchar *string)
+{
+	guint i;
+	const gchar *string_tmp;
+
+	/* return the first entry on non-found or error */
+	if (string == NULL) {
+		return table[0].value;
+	}
+	for (i=0;;i++) {
+		string_tmp = table[i].string;
+		if (string_tmp == NULL)
+			break;
+		/* keep strcmp for speed */
+		if (strcmp (string, string_tmp) == 0)
+			return table[i].value;
+	}
+	return table[0].value;
+}
+
+/**
+ * pk_enum_find_string:
+ * @table: A #PkEnumMatch enum table of values
+ * @value: the enumerated constant value, e.g. PK_SIGTYPE_ENUM_GPG
+ *
+ * Search for a enum value in a table of constants.
+ *
+ * Return value: the string constant, e.g. "desktop-gnome"
+ */
+const gchar *
+pk_enum_find_string (const PkEnumMatch *table, guint value)
+{
+	guint i;
+	guint tmp;
+	const gchar *string_tmp;
+
+	for (i=0;;i++) {
+		string_tmp = table[i].string;
+		if (string_tmp == NULL)
+			break;
+		tmp = table[i].value;
+		if (tmp == value)
+			return table[i].string;
+	}
+	return table[0].string;
+}
+
+/**
+ * pk_sig_type_enum_from_text:
+ * @sig_type: Text describing the enumerated type
+ *
+ * Converts a text enumerated type to its unsigned integer representation
+ *
+ * Return value: the enumerated constant value, e.g. PK_SIGTYPE_ENUM_GPG
+ */
+PkSigTypeEnum
+pk_sig_type_enum_from_text (const gchar *sig_type)
+{
+	return pk_enum_find_value (enum_sig_type, sig_type);
+}
+
+/**
+ * pk_sig_type_enum_to_text:
+ * @sig_type: The enumerated type value
+ *
+ * Converts a enumerated type to its text representation
+ *
+ * Return value: the enumerated constant value, e.g. "available"
+ **/
+const gchar *
+pk_sig_type_enum_to_text (PkSigTypeEnum sig_type)
+{
+	return pk_enum_find_string (enum_sig_type, sig_type);
+}
+
+/**
+ * pk_distro_upgrade_enum_from_text:
+ * @upgrade: Text describing the enumerated type
+ *
+ * Converts a text enumerated type to its unsigned integer representation
+ *
+ * Return value: the enumerated constant value, e.g. PK_DISTRO_UPGRADE_ENUM_STABLE
+ */
+PkDistroUpgradeEnum
+pk_distro_upgrade_enum_from_text (const gchar *upgrade)
+{
+	return pk_enum_find_value (enum_upgrade, upgrade);
+}
+
+/**
+ * pk_distro_upgrade_enum_to_text:
+ * @upgrade: The enumerated type value
+ *
+ * Converts a enumerated type to its text representation
+ *
+ * Return value: the enumerated constant value, e.g. "stable"
+ **/
+const gchar *
+pk_distro_upgrade_enum_to_text (PkDistroUpgradeEnum upgrade)
+{
+	return pk_enum_find_string (enum_upgrade, upgrade);
+}
+
+/**
+ * pk_provides_enum_from_text:
+ * @provides: Text describing the enumerated type
+ *
+ * Converts a text enumerated type to its unsigned integer representation
+ *
+ * Return value: the enumerated constant value, e.g. PK_PROVIDES_ENUM_MODALIAS
+ */
+PkProvidesEnum
+pk_provides_enum_from_text (const gchar *provides)
+{
+	return pk_enum_find_value (enum_provides, provides);
+}
+
+/**
+ * pk_provides_enum_to_text:
+ * @provides: The enumerated type value
+ *
+ * Converts a enumerated type to its text representation
+ *
+ * Return value: the enumerated constant value, e.g. "codec"
+ **/
+const gchar *
+pk_provides_enum_to_text (PkProvidesEnum provides)
+{
+	return pk_enum_find_string (enum_provides, provides);
+}
+
+/**
+ * pk_info_enum_from_text:
+ * @info: Text describing the enumerated type
+ *
+ * Converts a text enumerated type to its unsigned integer representation
+ *
+ * Return value: the enumerated constant value, e.g. PK_SIGTYPE_ENUM_GPG
+ */
+PkInfoEnum
+pk_info_enum_from_text (const gchar *info)
+{
+	return pk_enum_find_value (enum_info, info);
+}
+
+/**
+ * pk_info_enum_to_text:
+ * @info: The enumerated type value
+ *
+ * Converts a enumerated type to its text representation
+ *
+ * Return value: the enumerated constant value, e.g. "available"
+ **/
+const gchar *
+pk_info_enum_to_text (PkInfoEnum info)
+{
+	return pk_enum_find_string (enum_info, info);
+}
+
+/**
+ * pk_exit_enum_from_text:
+ * @exit: Text describing the enumerated type
+ *
+ * Converts a text enumerated type to its unsigned integer representation
+ *
+ * Return value: the enumerated constant value, e.g. PK_SIGTYPE_ENUM_GPG
+ */
+PkExitEnum
+pk_exit_enum_from_text (const gchar *exit_text)
+{
+	return pk_enum_find_value (enum_exit, exit_text);
+}
+
+/**
+ * pk_exit_enum_to_text:
+ * @exit: The enumerated type value
+ *
+ * Converts a enumerated type to its text representation
+ *
+ * Return value: the enumerated constant value, e.g. "available"
+ **/
+const gchar *
+pk_exit_enum_to_text (PkExitEnum exit_enum)
+{
+	return pk_enum_find_string (enum_exit, exit_enum);
+}
+
+/**
+ * pk_network_enum_from_text:
+ * @network: Text describing the enumerated type
+ *
+ * Converts a text enumerated type to its unsigned integer representation
+ *
+ * Return value: the enumerated constant value, e.g. PK_SIGTYPE_ENUM_GPG
+ */
+PkNetworkEnum
+pk_network_enum_from_text (const gchar *network)
+{
+	return pk_enum_find_value (enum_network, network);
+}
+
+/**
+ * pk_network_enum_to_text:
+ * @network: The enumerated type value
+ *
+ * Converts a enumerated type to its text representation
+ *
+ * Return value: the enumerated constant value, e.g. "available"
+ **/
+const gchar *
+pk_network_enum_to_text (PkNetworkEnum network)
+{
+	return pk_enum_find_string (enum_network, network);
+}
+
+/**
+ * pk_status_enum_from_text:
+ * @status: Text describing the enumerated type
+ *
+ * Converts a text enumerated type to its unsigned integer representation
+ *
+ * Return value: the enumerated constant value, e.g. PK_SIGTYPE_ENUM_GPG
+ **/
+PkStatusEnum
+pk_status_enum_from_text (const gchar *status)
+{
+	return pk_enum_find_value (enum_status, status);
+}
+
+/**
+ * pk_status_enum_to_text:
+ * @status: The enumerated type value
+ *
+ * Converts a enumerated type to its text representation
+ *
+ * Return value: the enumerated constant value, e.g. "available"
+ **/
+const gchar *
+pk_status_enum_to_text (PkStatusEnum status)
+{
+	return pk_enum_find_string (enum_status, status);
+}
+
+/**
+ * pk_role_enum_from_text:
+ * @role: Text describing the enumerated type
+ *
+ * Converts a text enumerated type to its unsigned integer representation
+ *
+ * Return value: the enumerated constant value, e.g. PK_SIGTYPE_ENUM_GPG
+ **/
+PkRoleEnum
+pk_role_enum_from_text (const gchar *role)
+{
+	return pk_enum_find_value (enum_role, role);
+}
+
+/**
+ * pk_role_enum_to_text:
+ * @role: The enumerated type value
+ *
+ * Converts a enumerated type to its text representation
+ *
+ * Return value: the enumerated constant value, e.g. "available"
+ **/
+const gchar *
+pk_role_enum_to_text (PkRoleEnum role)
+{
+	return pk_enum_find_string (enum_role, role);
+}
+
+/**
+ * pk_error_enum_from_text:
+ * @code: Text describing the enumerated type
+ *
+ * Converts a text enumerated type to its unsigned integer representation
+ *
+ * Return value: the enumerated constant value, e.g. PK_SIGTYPE_ENUM_GPG
+ **/
+PkErrorCodeEnum
+pk_error_enum_from_text (const gchar *code)
+{
+	return pk_enum_find_value (enum_error, code);
+}
+
+/**
+ * pk_error_enum_to_text:
+ * @code: The enumerated type value
+ *
+ * Converts a enumerated type to its text representation
+ *
+ * Return value: the enumerated constant value, e.g. "available"
+ **/
+const gchar *
+pk_error_enum_to_text (PkErrorCodeEnum code)
+{
+	return pk_enum_find_string (enum_error, code);
+}
+
+/**
+ * pk_restart_enum_from_text:
+ * @restart: Text describing the enumerated type
+ *
+ * Converts a text enumerated type to its unsigned integer representation
+ *
+ * Return value: the enumerated constant value, e.g. PK_SIGTYPE_ENUM_GPG
+ **/
+PkRestartEnum
+pk_restart_enum_from_text (const gchar *restart)
+{
+	return pk_enum_find_value (enum_restart, restart);
+}
+
+/**
+ * pk_restart_enum_to_text:
+ * @restart: The enumerated type value
+ *
+ * Converts a enumerated type to its text representation
+ *
+ * Return value: the enumerated constant value, e.g. "available"
+ **/
+const gchar *
+pk_restart_enum_to_text (PkRestartEnum restart)
+{
+	return pk_enum_find_string (enum_restart, restart);
+}
+
+/**
+ * pk_message_enum_from_text:
+ * @message: Text describing the enumerated type
+ *
+ * Converts a text enumerated type to its unsigned integer representation
+ *
+ * Return value: the enumerated constant value, e.g. PK_SIGTYPE_ENUM_GPG
+ **/
+PkMessageEnum
+pk_message_enum_from_text (const gchar *message)
+{
+	return pk_enum_find_value (enum_message, message);
+}
+
+/**
+ * pk_message_enum_to_text:
+ * @message: The enumerated type value
+ *
+ * Converts a enumerated type to its text representation
+ *
+ * Return value: the enumerated constant value, e.g. "available"
+ **/
+const gchar *
+pk_message_enum_to_text (PkMessageEnum message)
+{
+	return pk_enum_find_string (enum_message, message);
+}
+
+/**
+ * pk_group_enum_from_text:
+ * @group: Text describing the enumerated type
+ *
+ * Converts a text enumerated type to its unsigned integer representation
+ *
+ * Return value: the enumerated constant value, e.g. PK_SIGTYPE_ENUM_GPG
+ **/
+PkGroupEnum
+pk_group_enum_from_text (const gchar *group)
+{
+	return pk_enum_find_value (enum_group, group);
+}
+
+/**
+ * pk_group_enum_to_text:
+ * @group: The enumerated type value
+ *
+ * Converts a enumerated type to its text representation
+ *
+ * Return value: the enumerated constant value, e.g. "available"
+ **/
+const gchar *
+pk_group_enum_to_text (PkGroupEnum group)
+{
+	return pk_enum_find_string (enum_group, group);
+}
+
+/**
+ * pk_update_state_enum_from_text:
+ * @update_state: Text describing the enumerated type
+ *
+ * Converts a text enumerated type to its unsigned integer representation
+ *
+ * Return value: the enumerated constant value, e.g. %PK_UPDATE_STATE_ENUM_STABLE
+ **/
+PkUpdateStateEnum
+pk_update_state_enum_from_text (const gchar *update_state)
+{
+	return pk_enum_find_value (enum_update_state, update_state);
+}
+
+/**
+ * pk_update_state_enum_to_text:
+ * @update_state: The enumerated type value
+ *
+ * Converts a enumerated type to its text representation
+ *
+ * Return value: the enumerated constant value, e.g. "testing"
+ **/
+const gchar *
+pk_update_state_enum_to_text (PkUpdateStateEnum update_state)
+{
+	return pk_enum_find_string (enum_update_state, update_state);
+}
+
+/**
+ * pk_filter_enum_from_text:
+ * @filter: Text describing the enumerated type
+ *
+ * Converts a text enumerated type to its unsigned integer representation
+ *
+ * Return value: the enumerated constant value, e.g. PK_SIGTYPE_ENUM_GPG
+ **/
+PkFilterEnum
+pk_filter_enum_from_text (const gchar *filter)
+{
+	return pk_enum_find_value (enum_filter, filter);
+}
+
+/**
+ * pk_filter_enum_to_text:
+ * @filter: The enumerated type value
+ *
+ * Converts a enumerated type to its text representation
+ *
+ * Return value: the enumerated constant value, e.g. "available"
+ **/
+const gchar *
+pk_filter_enum_to_text (PkFilterEnum filter)
+{
+	return pk_enum_find_string (enum_filter, filter);
+}
+
+/**
+ * pk_license_enum_from_text:
+ * @license: Text describing the enumerated type
+ *
+ * Converts a text enumerated type to its unsigned integer representation
+ *
+ * Return value: the enumerated constant value, e.g. PK_SIGTYPE_ENUM_GPG
+ **/
+PkLicenseEnum
+pk_license_enum_from_text (const gchar *license)
+{
+	return pk_enum_find_value (enum_free_licenses, license);
+}
+
+/**
+ * pk_license_enum_to_text:
+ * @license: The enumerated type value
+ *
+ * Converts a enumerated type to its text representation
+ *
+ * Return value: the enumerated constant value, e.g. "available"
+ **/
+const gchar *
+pk_license_enum_to_text (PkLicenseEnum license)
+{
+	return pk_enum_find_string (enum_free_licenses, license);
+}
+
+/**
+ * pk_media_type_enum_from_text:
+ * @code: Text describing the enumerated type
+ *
+ * Converts a text enumerated type to its unsigned integer representation
+ *
+ * Return value: the enumerated constant value, e.g. PK_MEDIA_TYPE_ENUM_CD
+ **/
+PkMediaTypeEnum
+pk_media_type_enum_from_text (const gchar *media_type)
+{
+	return pk_enum_find_value (enum_media_type, media_type);
+}
+
+/**
+ * pk_media_type_enum_to_text:
+ * @code: The enumerated type value
+ *
+ * Converts a enumerated type to its text representation
+ *
+ * Return value: the enumerated constant value, e.g. "dvd"
+ **/
+const gchar *
+pk_media_type_enum_to_text (PkMediaTypeEnum media_type)
+{
+	return pk_enum_find_string (enum_media_type, media_type);
+}
+
+/**
+ * pk_authorize_type_enum_from_text:
+ * @code: Text describing the enumerated type
+ *
+ * Converts a text enumerated type to its unsigned integer representation
+ *
+ * Return value: the enumerated constant value, e.g. PK_AUTHORIZE_ENUM_YES
+ **/
+PkAuthorizeEnum
+pk_authorize_type_enum_from_text (const gchar *authorize_type)
+{
+	return pk_enum_find_value (enum_authorize_type, authorize_type);
+}
+
+/**
+ * pk_authorize_type_enum_to_text:
+ * @code: The enumerated type value
+ *
+ * Converts a enumerated type to its text representation
+ *
+ * Return value: the enumerated constant value, e.g. "yes"
+ **/
+const gchar *
+pk_authorize_type_enum_to_text (PkAuthorizeEnum authorize_type)
+{
+	return pk_enum_find_string (enum_authorize_type, authorize_type);
+}
+
+/***************************************************************************
+ ***                          MAKE CHECK TESTS                           ***
+ ***************************************************************************/
+#ifdef EGG_TEST
+#include "egg-test.h"
+
+void
+pk_enum_test (gpointer user_data)
+{
+	EggTest *test = (EggTest *) user_data;
+	const gchar *string;
+	PkRoleEnum role_value;
+	guint i;
+
+	if (!egg_test_start (test, "PkEnum"))
+		return;
+
+	/************************************************************/
+	egg_test_title (test, "find role_value");
+	role_value = pk_enum_find_value (enum_role, "search-file");
+	if (role_value == PK_ROLE_ENUM_SEARCH_FILE)
+		egg_test_success (test, NULL);
+	else
+		egg_test_failed (test, NULL);
+
+	/************************************************************/
+	egg_test_title (test, "find string");
+	string = pk_enum_find_string (enum_role, PK_ROLE_ENUM_SEARCH_FILE);
+	if (g_strcmp0 (string, "search-file") == 0)
+		egg_test_success (test, NULL);
+	else
+		egg_test_failed (test, NULL);
+
+	/************************************************************/
+	egg_test_title (test, "find value");
+	role_value = pk_role_enum_from_text ("search-file");
+	if (role_value == PK_ROLE_ENUM_SEARCH_FILE)
+		egg_test_success (test, NULL);
+	else
+		egg_test_failed (test, NULL);
+
+	/************************************************************/
+	egg_test_title (test, "find string");
+	string = pk_role_enum_to_text (PK_ROLE_ENUM_SEARCH_FILE);
+	if (g_strcmp0 (string, "search-file") == 0)
+		egg_test_success (test, NULL);
+	else
+		egg_test_failed (test, NULL);
+
+	/************************************************************/
+	egg_test_title (test, "check we convert all the role bitfield");
+	for (i=1; i<=PK_ROLE_ENUM_UNKNOWN; i++) {
+		string = pk_role_enum_to_text (i);
+		if (string == NULL) {
+			egg_test_failed (test, "failed to get %i", i);
+			break;
+		}
+	}
+	egg_test_success (test, NULL);
+
+	/************************************************************/
+	egg_test_title (test, "check we convert all the status bitfield");
+	for (i=1; i<=PK_STATUS_ENUM_UNKNOWN; i++) {
+		string = pk_status_enum_to_text (i);
+		if (string == NULL) {
+			egg_test_failed (test, "failed to get %i", i);
+			break;
+		}
+	}
+	egg_test_success (test, NULL);
+
+	/************************************************************/
+	egg_test_title (test, "check we convert all the exit bitfield");
+	for (i=0; i<=PK_EXIT_ENUM_UNKNOWN; i++) {
+		string = pk_exit_enum_to_text (i);
+		if (string == NULL) {
+			egg_test_failed (test, "failed to get %i", i);
+			break;
+		}
+	}
+	egg_test_success (test, NULL);
+
+	/************************************************************/
+	egg_test_title (test, "check we convert all the filter bitfield");
+	for (i=0; i<=PK_FILTER_ENUM_UNKNOWN; i++) {
+		string = pk_filter_enum_to_text (i);
+		if (string == NULL) {
+			egg_test_failed (test, "failed to get %i", i);
+			break;
+		}
+	}
+	egg_test_success (test, NULL);
+
+	/************************************************************/
+	egg_test_title (test, "check we convert all the restart bitfield");
+	for (i=0; i<=PK_RESTART_ENUM_UNKNOWN; i++) {
+		string = pk_restart_enum_to_text (i);
+		if (string == NULL) {
+			egg_test_failed (test, "failed to get %i", i);
+			break;
+		}
+	}
+	egg_test_success (test, NULL);
+
+	/************************************************************/
+	egg_test_title (test, "check we convert all the error_code bitfield");
+	for (i=0; i<=PK_ERROR_ENUM_UNKNOWN; i++) {
+		string = pk_error_enum_to_text (i);
+		if (string == NULL) {
+			egg_test_failed (test, "failed to get %i", i);
+			break;
+		}
+	}
+	egg_test_success (test, NULL);
+
+	/************************************************************/
+	egg_test_title (test, "check we convert all the group bitfield");
+	for (i=1; i<=PK_GROUP_ENUM_UNKNOWN; i++) {
+		string = pk_group_enum_to_text (i);
+		if (string == NULL) {
+			egg_test_failed (test, "failed to get %i", i);
+			break;
+		}
+	}
+	egg_test_success (test, NULL);
+
+	/************************************************************/
+	egg_test_title (test, "check we convert all the info bitfield");
+	for (i=1; i<=PK_INFO_ENUM_UNKNOWN; i++) {
+		string = pk_info_enum_to_text (i);
+		if (string == NULL) {
+			egg_test_failed (test, "failed to get %i", i);
+			break;
+		}
+	}
+	egg_test_success (test, NULL);
+
+	/************************************************************/
+	egg_test_title (test, "check we convert all the sig_type bitfield");
+	for (i=0; i<=PK_SIGTYPE_ENUM_UNKNOWN; i++) {
+		string = pk_sig_type_enum_to_text (i);
+		if (string == NULL) {
+			egg_test_failed (test, "failed to get %i", i);
+			break;
+		}
+	}
+	egg_test_success (test, NULL);
+
+	/************************************************************/
+	egg_test_title (test, "check we convert all the upgrade bitfield");
+	for (i=0; i<=PK_DISTRO_UPGRADE_ENUM_UNKNOWN; i++) {
+		string = pk_distro_upgrade_enum_to_text (i);
+		if (string == NULL) {
+			egg_test_failed (test, "failed to get %i", i);
+			break;
+		}
+	}
+	egg_test_success (test, NULL);
+
+	/************************************************************/
+	egg_test_title (test, "check we convert all the license bitfield");
+	for (i=0; i<=PK_LICENSE_ENUM_UNKNOWN; i++) {
+		string = pk_license_enum_to_text (i);
+		if (string == NULL) {
+			egg_test_failed (test, "failed to get %i", i);
+			break;
+		}
+	}
+	egg_test_success (test, NULL);
+
+	/************************************************************/
+	egg_test_title (test, "check we convert all the media type bitfield");
+	for (i=0; i<=PK_MEDIA_TYPE_ENUM_UNKNOWN; i++) {
+		string = pk_media_type_enum_to_text (i);
+		if (string == NULL) {
+			egg_test_failed (test, "failed to get %i", i);
+			break;
+		}
+	}
+	egg_test_success (test, NULL);
+
+	egg_test_end (test);
+}
+#endif
+
diff --git a/lib/packagekit-glib2/pk-enum.h b/lib/packagekit-glib2/pk-enum.h
deleted file mode 120000
index 083e2a5..3b1a60f
--- a/lib/packagekit-glib2/pk-enum.h
+++ /dev/null
@@ -1 +0,0 @@
-../packagekit-glib/pk-enum.h
\ No newline at end of file
diff --git a/lib/packagekit-glib2/pk-enum.h b/lib/packagekit-glib2/pk-enum.h
new file mode 100644
index 083e2a5..3b1a60f
--- /dev/null
+++ b/lib/packagekit-glib2/pk-enum.h
@@ -0,0 +1,653 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2007-2008 Richard Hughes <richard at hughsie.com>
+ *
+ * Licensed under the GNU General Public License Version 2
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#if !defined (__PACKAGEKIT_H_INSIDE__) && !defined (PK_COMPILATION)
+#error "Only <packagekit.h> can be included directly."
+#endif
+
+#ifndef __PK_ENUM_H
+#define __PK_ENUM_H
+
+#include <glib.h>
+
+G_BEGIN_DECLS
+
+/**
+ * PkEnumMatch:
+ *
+ * Matching an enumerated type to a string
+ **/
+typedef struct {
+	guint		 value;
+	const gchar	*string;
+} PkEnumMatch;
+
+/**
+ * PkRoleEnum:
+ *
+ * What we were asked to do, this never changes for the lifetime of the
+ * transaction.
+ * Icons that have to represent the whole "aim" of the transaction will use
+ * these constants
+ **/
+typedef enum {
+	PK_ROLE_ENUM_CANCEL,
+	PK_ROLE_ENUM_GET_DEPENDS,
+	PK_ROLE_ENUM_GET_DETAILS,
+	PK_ROLE_ENUM_GET_FILES,
+	PK_ROLE_ENUM_GET_PACKAGES,
+	PK_ROLE_ENUM_GET_REPO_LIST,
+	PK_ROLE_ENUM_GET_REQUIRES,
+	PK_ROLE_ENUM_GET_UPDATE_DETAIL,
+	PK_ROLE_ENUM_GET_UPDATES,
+	PK_ROLE_ENUM_INSTALL_FILES,
+	PK_ROLE_ENUM_INSTALL_PACKAGES,
+	PK_ROLE_ENUM_INSTALL_SIGNATURE,
+	PK_ROLE_ENUM_REFRESH_CACHE,
+	PK_ROLE_ENUM_REMOVE_PACKAGES,
+	PK_ROLE_ENUM_REPO_ENABLE,
+	PK_ROLE_ENUM_REPO_SET_DATA,
+	PK_ROLE_ENUM_RESOLVE,
+	PK_ROLE_ENUM_ROLLBACK,
+	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_WHAT_PROVIDES,
+	PK_ROLE_ENUM_ACCEPT_EULA,
+	PK_ROLE_ENUM_DOWNLOAD_PACKAGES,
+	PK_ROLE_ENUM_GET_DISTRO_UPGRADES,
+	PK_ROLE_ENUM_GET_CATEGORIES,
+	PK_ROLE_ENUM_GET_OLD_TRANSACTIONS,
+	PK_ROLE_ENUM_SIMULATE_INSTALL_FILES,
+	PK_ROLE_ENUM_SIMULATE_INSTALL_PACKAGES,
+	PK_ROLE_ENUM_SIMULATE_REMOVE_PACKAGES,
+	PK_ROLE_ENUM_SIMULATE_UPDATE_PACKAGES,
+	PK_ROLE_ENUM_UNKNOWN
+} PkRoleEnum;
+
+/**
+ * PkStatusEnum:
+ *
+ * What status we are now; this can change for each transaction giving a
+ * status of what sort of thing is happening
+ * Icons that change to represent the current status of the transaction will
+ * use these constants
+ * If you add to these, make sure you add filenames in gpk-watch.c also
+ *
+ * A typical transaction will do:
+ * - schedule task
+ *	WAIT
+ * - run task
+ *	SETUP
+ * - wait for lock
+ *	RUNNING
+ *
+ * This means that backends should run pk_backend_set_status (backend, PK_STATUS_ENUM_RUNNING)
+ * when they are ready to start running the transaction and after a lock has been got.
+ **/
+typedef enum {
+	PK_STATUS_ENUM_WAIT,
+	PK_STATUS_ENUM_SETUP,
+	PK_STATUS_ENUM_RUNNING,
+	PK_STATUS_ENUM_QUERY,
+	PK_STATUS_ENUM_INFO,
+	PK_STATUS_ENUM_REMOVE,
+	PK_STATUS_ENUM_REFRESH_CACHE,
+	PK_STATUS_ENUM_DOWNLOAD,
+	PK_STATUS_ENUM_INSTALL,
+	PK_STATUS_ENUM_UPDATE,
+	PK_STATUS_ENUM_CLEANUP,
+	PK_STATUS_ENUM_OBSOLETE,
+	PK_STATUS_ENUM_DEP_RESOLVE,
+	PK_STATUS_ENUM_SIG_CHECK,
+	PK_STATUS_ENUM_ROLLBACK,
+	PK_STATUS_ENUM_TEST_COMMIT,
+	PK_STATUS_ENUM_COMMIT,
+	PK_STATUS_ENUM_REQUEST,
+	PK_STATUS_ENUM_FINISHED,
+	PK_STATUS_ENUM_CANCEL,
+	PK_STATUS_ENUM_DOWNLOAD_REPOSITORY,
+	PK_STATUS_ENUM_DOWNLOAD_PACKAGELIST,
+	PK_STATUS_ENUM_DOWNLOAD_FILELIST,
+	PK_STATUS_ENUM_DOWNLOAD_CHANGELOG,
+	PK_STATUS_ENUM_DOWNLOAD_GROUP,
+	PK_STATUS_ENUM_DOWNLOAD_UPDATEINFO,
+	PK_STATUS_ENUM_REPACKAGING,
+	PK_STATUS_ENUM_LOADING_CACHE,
+	PK_STATUS_ENUM_SCAN_APPLICATIONS,
+	PK_STATUS_ENUM_GENERATE_PACKAGE_LIST,
+	PK_STATUS_ENUM_WAITING_FOR_LOCK,
+	PK_STATUS_ENUM_WAITING_FOR_AUTH,
+	PK_STATUS_ENUM_SCAN_PROCESS_LIST,
+	PK_STATUS_ENUM_CHECK_EXECUTABLE_FILES,
+	PK_STATUS_ENUM_CHECK_LIBRARIES,
+	PK_STATUS_ENUM_UNKNOWN
+} PkStatusEnum;
+
+/**
+ * PkExitEnum:
+ *
+ * How the backend exited
+ **/
+typedef enum {
+	PK_EXIT_ENUM_SUCCESS,
+	PK_EXIT_ENUM_FAILED,
+	PK_EXIT_ENUM_CANCELLED,
+	PK_EXIT_ENUM_KEY_REQUIRED,
+	PK_EXIT_ENUM_EULA_REQUIRED,
+	PK_EXIT_ENUM_KILLED, /* when we forced the cancel, but had to SIGKILL */
+	PK_EXIT_ENUM_MEDIA_CHANGE_REQUIRED,
+	PK_EXIT_ENUM_NEED_UNTRUSTED,
+	PK_EXIT_ENUM_UNKNOWN
+} PkExitEnum;
+
+/**
+ * PkNetworkEnum:
+ **/
+typedef enum {
+	PK_NETWORK_ENUM_OFFLINE,
+	PK_NETWORK_ENUM_ONLINE,
+	PK_NETWORK_ENUM_WIRED,
+	PK_NETWORK_ENUM_WIFI,
+	PK_NETWORK_ENUM_MOBILE,
+	PK_NETWORK_ENUM_UNKNOWN
+} PkNetworkEnum;
+
+/**
+ * PkFilterEnum:
+ *
+ * The filter types
+ **/
+typedef enum {
+	PK_FILTER_ENUM_NONE,
+	PK_FILTER_ENUM_INSTALLED,
+	PK_FILTER_ENUM_NOT_INSTALLED,
+	PK_FILTER_ENUM_DEVELOPMENT,
+	PK_FILTER_ENUM_NOT_DEVELOPMENT,
+	PK_FILTER_ENUM_GUI,
+	PK_FILTER_ENUM_NOT_GUI,
+	PK_FILTER_ENUM_FREE,
+	PK_FILTER_ENUM_NOT_FREE,
+	PK_FILTER_ENUM_VISIBLE,
+	PK_FILTER_ENUM_NOT_VISIBLE,
+	PK_FILTER_ENUM_SUPPORTED,
+	PK_FILTER_ENUM_NOT_SUPPORTED,
+	PK_FILTER_ENUM_BASENAME,
+	PK_FILTER_ENUM_NOT_BASENAME,
+	PK_FILTER_ENUM_NEWEST,
+	PK_FILTER_ENUM_NOT_NEWEST,
+	PK_FILTER_ENUM_ARCH,
+	PK_FILTER_ENUM_NOT_ARCH,
+	PK_FILTER_ENUM_SOURCE,
+	PK_FILTER_ENUM_NOT_SOURCE,
+	PK_FILTER_ENUM_COLLECTIONS,
+	PK_FILTER_ENUM_NOT_COLLECTIONS,
+	PK_FILTER_ENUM_APPLICATION,
+	PK_FILTER_ENUM_NOT_APPLICATION,
+	PK_FILTER_ENUM_UNKNOWN
+} PkFilterEnum;
+
+/**
+ * PkRestartEnum:
+ *
+ * What restart we need to after a transaction, ordered by severity
+ **/
+typedef enum {
+	PK_RESTART_ENUM_NONE,
+	PK_RESTART_ENUM_APPLICATION,
+	PK_RESTART_ENUM_SESSION,
+	PK_RESTART_ENUM_SYSTEM,
+	PK_RESTART_ENUM_SECURITY_SESSION,	/* a library that is being used by this package has been updated for security */
+	PK_RESTART_ENUM_SECURITY_SYSTEM,
+	PK_RESTART_ENUM_UNKNOWN
+} PkRestartEnum;
+
+/**
+ * PkMessageEnum:
+ *
+ * What message type we need to show
+ **/
+typedef enum {
+	PK_MESSAGE_ENUM_BROKEN_MIRROR,
+	PK_MESSAGE_ENUM_CONNECTION_REFUSED,
+	PK_MESSAGE_ENUM_PARAMETER_INVALID,
+	PK_MESSAGE_ENUM_PRIORITY_INVALID,
+	PK_MESSAGE_ENUM_BACKEND_ERROR,
+	PK_MESSAGE_ENUM_DAEMON_ERROR,
+	PK_MESSAGE_ENUM_CACHE_BEING_REBUILT,
+	PK_MESSAGE_ENUM_UNTRUSTED_PACKAGE,
+	PK_MESSAGE_ENUM_NEWER_PACKAGE_EXISTS,
+	PK_MESSAGE_ENUM_COULD_NOT_FIND_PACKAGE,
+	PK_MESSAGE_ENUM_CONFIG_FILES_CHANGED,
+	PK_MESSAGE_ENUM_PACKAGE_ALREADY_INSTALLED,
+	PK_MESSAGE_ENUM_AUTOREMOVE_IGNORED,
+	PK_MESSAGE_ENUM_UNKNOWN
+} PkMessageEnum;
+
+/**
+ * PkErrorCodeEnum:
+ *
+ * The error type
+ **/
+typedef enum {
+	PK_ERROR_ENUM_OOM,
+	PK_ERROR_ENUM_NO_NETWORK,
+	PK_ERROR_ENUM_NOT_SUPPORTED,
+	PK_ERROR_ENUM_INTERNAL_ERROR,
+	PK_ERROR_ENUM_GPG_FAILURE,
+	PK_ERROR_ENUM_PACKAGE_ID_INVALID,
+	PK_ERROR_ENUM_PACKAGE_NOT_INSTALLED,
+	PK_ERROR_ENUM_PACKAGE_NOT_FOUND,
+	PK_ERROR_ENUM_PACKAGE_ALREADY_INSTALLED,
+	PK_ERROR_ENUM_PACKAGE_DOWNLOAD_FAILED,
+	PK_ERROR_ENUM_GROUP_NOT_FOUND,
+	PK_ERROR_ENUM_GROUP_LIST_INVALID,
+	PK_ERROR_ENUM_DEP_RESOLUTION_FAILED,
+	PK_ERROR_ENUM_FILTER_INVALID,
+	PK_ERROR_ENUM_CREATE_THREAD_FAILED,
+	PK_ERROR_ENUM_TRANSACTION_ERROR,
+	PK_ERROR_ENUM_TRANSACTION_CANCELLED,
+	PK_ERROR_ENUM_NO_CACHE,
+	PK_ERROR_ENUM_REPO_NOT_FOUND,
+	PK_ERROR_ENUM_CANNOT_REMOVE_SYSTEM_PACKAGE,
+	PK_ERROR_ENUM_PROCESS_KILL,
+	PK_ERROR_ENUM_FAILED_INITIALIZATION,
+	PK_ERROR_ENUM_FAILED_FINALISE,
+	PK_ERROR_ENUM_FAILED_CONFIG_PARSING,
+	PK_ERROR_ENUM_CANNOT_CANCEL,
+	PK_ERROR_ENUM_CANNOT_GET_LOCK,
+	PK_ERROR_ENUM_NO_PACKAGES_TO_UPDATE,
+	PK_ERROR_ENUM_CANNOT_WRITE_REPO_CONFIG,
+	PK_ERROR_ENUM_LOCAL_INSTALL_FAILED,
+	PK_ERROR_ENUM_BAD_GPG_SIGNATURE,
+	PK_ERROR_ENUM_MISSING_GPG_SIGNATURE,
+	PK_ERROR_ENUM_CANNOT_INSTALL_SOURCE_PACKAGE,
+	PK_ERROR_ENUM_REPO_CONFIGURATION_ERROR,
+	PK_ERROR_ENUM_NO_LICENSE_AGREEMENT,
+	PK_ERROR_ENUM_FILE_CONFLICTS,
+	PK_ERROR_ENUM_PACKAGE_CONFLICTS,
+	PK_ERROR_ENUM_REPO_NOT_AVAILABLE,
+	PK_ERROR_ENUM_INVALID_PACKAGE_FILE,
+	PK_ERROR_ENUM_PACKAGE_INSTALL_BLOCKED,
+	PK_ERROR_ENUM_PACKAGE_CORRUPT,
+	PK_ERROR_ENUM_ALL_PACKAGES_ALREADY_INSTALLED,
+	PK_ERROR_ENUM_FILE_NOT_FOUND,
+	PK_ERROR_ENUM_NO_MORE_MIRRORS_TO_TRY,
+	PK_ERROR_ENUM_NO_DISTRO_UPGRADE_DATA,
+	PK_ERROR_ENUM_INCOMPATIBLE_ARCHITECTURE,
+	PK_ERROR_ENUM_NO_SPACE_ON_DEVICE,
+	PK_ERROR_ENUM_MEDIA_CHANGE_REQUIRED,
+	PK_ERROR_ENUM_NOT_AUTHORIZED,
+	PK_ERROR_ENUM_UPDATE_NOT_FOUND,
+	PK_ERROR_ENUM_CANNOT_INSTALL_REPO_UNSIGNED,
+	PK_ERROR_ENUM_CANNOT_UPDATE_REPO_UNSIGNED,
+	PK_ERROR_ENUM_CANNOT_GET_FILELIST,
+	PK_ERROR_ENUM_CANNOT_GET_REQUIRES,
+	PK_ERROR_ENUM_CANNOT_DISABLE_REPOSITORY,
+	PK_ERROR_ENUM_RESTRICTED_DOWNLOAD,
+	PK_ERROR_ENUM_PACKAGE_FAILED_TO_CONFIGURE,
+	PK_ERROR_ENUM_PACKAGE_FAILED_TO_BUILD,
+	PK_ERROR_ENUM_PACKAGE_FAILED_TO_INSTALL,
+	PK_ERROR_ENUM_PACKAGE_FAILED_TO_REMOVE,
+	PK_ERROR_ENUM_UNKNOWN
+} PkErrorCodeEnum;
+
+/**
+ * PkGroupEnum:
+ *
+ * The group type
+ **/
+typedef enum {
+	PK_GROUP_ENUM_ACCESSIBILITY,
+	PK_GROUP_ENUM_ACCESSORIES,
+	PK_GROUP_ENUM_ADMIN_TOOLS,
+	PK_GROUP_ENUM_COMMUNICATION,
+	PK_GROUP_ENUM_DESKTOP_GNOME,
+	PK_GROUP_ENUM_DESKTOP_KDE,
+	PK_GROUP_ENUM_DESKTOP_OTHER,
+	PK_GROUP_ENUM_DESKTOP_XFCE,
+	PK_GROUP_ENUM_EDUCATION,
+	PK_GROUP_ENUM_FONTS,
+	PK_GROUP_ENUM_GAMES,
+	PK_GROUP_ENUM_GRAPHICS,
+	PK_GROUP_ENUM_INTERNET,
+	PK_GROUP_ENUM_LEGACY,
+	PK_GROUP_ENUM_LOCALIZATION,
+	PK_GROUP_ENUM_MAPS,
+	PK_GROUP_ENUM_MULTIMEDIA,
+	PK_GROUP_ENUM_NETWORK,
+	PK_GROUP_ENUM_OFFICE,
+	PK_GROUP_ENUM_OTHER,
+	PK_GROUP_ENUM_POWER_MANAGEMENT,
+	PK_GROUP_ENUM_PROGRAMMING,
+	PK_GROUP_ENUM_PUBLISHING,
+	PK_GROUP_ENUM_REPOS,
+	PK_GROUP_ENUM_SECURITY,
+	PK_GROUP_ENUM_SERVERS,
+	PK_GROUP_ENUM_SYSTEM,
+	PK_GROUP_ENUM_VIRTUALIZATION,
+	PK_GROUP_ENUM_SCIENCE,
+	PK_GROUP_ENUM_DOCUMENTATION,
+	PK_GROUP_ENUM_ELECTRONICS,
+	PK_GROUP_ENUM_COLLECTIONS,
+	PK_GROUP_ENUM_VENDOR,
+	PK_GROUP_ENUM_NEWEST,
+	PK_GROUP_ENUM_UNKNOWN
+} PkGroupEnum;
+
+/**
+ * PkUpdateStateEnum:
+ *
+ * What state the update is in
+ **/
+typedef enum {
+	PK_UPDATE_STATE_ENUM_STABLE,
+	PK_UPDATE_STATE_ENUM_UNSTABLE,
+	PK_UPDATE_STATE_ENUM_TESTING,
+	PK_UPDATE_STATE_ENUM_UNKNOWN
+} PkUpdateStateEnum;
+
+/**
+ * PkInfoEnum:
+ *
+ * The enumerated types used in Package() - these have to refer to a specific
+ * package action, rather than a general state
+ **/
+typedef enum {
+	PK_INFO_ENUM_INSTALLED,
+	PK_INFO_ENUM_AVAILABLE,
+	PK_INFO_ENUM_LOW,
+	PK_INFO_ENUM_ENHANCEMENT,
+	PK_INFO_ENUM_NORMAL,
+	PK_INFO_ENUM_BUGFIX,
+	PK_INFO_ENUM_IMPORTANT,
+	PK_INFO_ENUM_SECURITY,
+	PK_INFO_ENUM_BLOCKED,
+	PK_INFO_ENUM_DOWNLOADING,
+	PK_INFO_ENUM_UPDATING,
+	PK_INFO_ENUM_INSTALLING,
+	PK_INFO_ENUM_REMOVING,
+	PK_INFO_ENUM_CLEANUP,
+	PK_INFO_ENUM_OBSOLETING,
+	PK_INFO_ENUM_COLLECTION_INSTALLED,
+	PK_INFO_ENUM_COLLECTION_AVAILABLE,
+	PK_INFO_ENUM_FINISHED,
+	PK_INFO_ENUM_REINSTALLING,
+	PK_INFO_ENUM_DOWNGRADING,
+	PK_INFO_ENUM_UNKNOWN
+} PkInfoEnum;
+
+/**
+ * PkDistroUpgradeEnum:
+ *
+ * The distro upgrade status
+ **/
+typedef enum {
+	PK_DISTRO_UPGRADE_ENUM_STABLE,
+	PK_DISTRO_UPGRADE_ENUM_UNSTABLE,
+	PK_DISTRO_UPGRADE_ENUM_UNKNOWN
+} PkDistroUpgradeEnum;
+
+/**
+ * PkSigTypeEnum:
+ *
+ * The signature type type
+ **/
+typedef enum {
+	PK_SIGTYPE_ENUM_GPG,
+	PK_SIGTYPE_ENUM_UNKNOWN
+} PkSigTypeEnum;
+
+/**
+ * PkProvidesEnum:
+ *
+ * The signature type type
+ **/
+typedef enum {
+	PK_PROVIDES_ENUM_ANY,
+	PK_PROVIDES_ENUM_MODALIAS,
+	PK_PROVIDES_ENUM_CODEC,
+	PK_PROVIDES_ENUM_MIMETYPE,
+	PK_PROVIDES_ENUM_FONT,
+	PK_PROVIDES_ENUM_HARDWARE_DRIVER,
+	PK_PROVIDES_ENUM_POSTSCRIPT_DRIVER,
+	PK_PROVIDES_ENUM_UNKNOWN
+} PkProvidesEnum;
+
+typedef enum {
+	PK_LICENSE_ENUM_GLIDE,
+	PK_LICENSE_ENUM_AFL,
+	PK_LICENSE_ENUM_AMPAS_BSD,
+	PK_LICENSE_ENUM_AMAZON_DSL,
+	PK_LICENSE_ENUM_ADOBE,
+	PK_LICENSE_ENUM_AGPLV1,
+	PK_LICENSE_ENUM_AGPLV3,
+	PK_LICENSE_ENUM_ASL_1_DOT_0,
+	PK_LICENSE_ENUM_ASL_1_DOT_1,
+	PK_LICENSE_ENUM_ASL_2_DOT_0,
+	PK_LICENSE_ENUM_APSL_2_DOT_0,
+	PK_LICENSE_ENUM_ARTISTIC_CLARIFIED,
+	PK_LICENSE_ENUM_ARTISTIC_2_DOT_0,
+	PK_LICENSE_ENUM_ARL,
+	PK_LICENSE_ENUM_BITTORRENT,
+	PK_LICENSE_ENUM_BOOST,
+	PK_LICENSE_ENUM_BSD_WITH_ADVERTISING,
+	PK_LICENSE_ENUM_BSD,
+	PK_LICENSE_ENUM_CECILL,
+	PK_LICENSE_ENUM_CDDL,
+	PK_LICENSE_ENUM_CPL,
+	PK_LICENSE_ENUM_CONDOR,
+	PK_LICENSE_ENUM_COPYRIGHT_ONLY,
+	PK_LICENSE_ENUM_CRYPTIX,
+	PK_LICENSE_ENUM_CRYSTAL_STACKER,
+	PK_LICENSE_ENUM_DOC,
+	PK_LICENSE_ENUM_WTFPL,
+	PK_LICENSE_ENUM_EPL,
+	PK_LICENSE_ENUM_ECOS,
+	PK_LICENSE_ENUM_EFL_2_DOT_0,
+	PK_LICENSE_ENUM_EU_DATAGRID,
+	PK_LICENSE_ENUM_LGPLV2_WITH_EXCEPTIONS,
+	PK_LICENSE_ENUM_FTL,
+	PK_LICENSE_ENUM_GIFTWARE,
+	PK_LICENSE_ENUM_GPLV2,
+	PK_LICENSE_ENUM_GPLV2_WITH_EXCEPTIONS,
+	PK_LICENSE_ENUM_GPLV2_PLUS_WITH_EXCEPTIONS,
+	PK_LICENSE_ENUM_GPLV3,
+	PK_LICENSE_ENUM_GPLV3_WITH_EXCEPTIONS,
+	PK_LICENSE_ENUM_GPLV3_PLUS_WITH_EXCEPTIONS,
+	PK_LICENSE_ENUM_LGPLV2,
+	PK_LICENSE_ENUM_LGPLV3,
+	PK_LICENSE_ENUM_GNUPLOT,
+	PK_LICENSE_ENUM_IBM,
+	PK_LICENSE_ENUM_IMATIX,
+	PK_LICENSE_ENUM_IMAGEMAGICK,
+	PK_LICENSE_ENUM_IMLIB2,
+	PK_LICENSE_ENUM_IJG,
+	PK_LICENSE_ENUM_INTEL_ACPI,
+	PK_LICENSE_ENUM_INTERBASE,
+	PK_LICENSE_ENUM_ISC,
+	PK_LICENSE_ENUM_JABBER,
+	PK_LICENSE_ENUM_JASPER,
+	PK_LICENSE_ENUM_LPPL,
+	PK_LICENSE_ENUM_LIBTIFF,
+	PK_LICENSE_ENUM_LPL,
+	PK_LICENSE_ENUM_MECAB_IPADIC,
+	PK_LICENSE_ENUM_MIT,
+	PK_LICENSE_ENUM_MIT_WITH_ADVERTISING,
+	PK_LICENSE_ENUM_MPLV1_DOT_0,
+	PK_LICENSE_ENUM_MPLV1_DOT_1,
+	PK_LICENSE_ENUM_NCSA,
+	PK_LICENSE_ENUM_NGPL,
+	PK_LICENSE_ENUM_NOSL,
+	PK_LICENSE_ENUM_NETCDF,
+	PK_LICENSE_ENUM_NETSCAPE,
+	PK_LICENSE_ENUM_NOKIA,
+	PK_LICENSE_ENUM_OPENLDAP,
+	PK_LICENSE_ENUM_OPENPBS,
+	PK_LICENSE_ENUM_OSL_1_DOT_0,
+	PK_LICENSE_ENUM_OSL_1_DOT_1,
+	PK_LICENSE_ENUM_OSL_2_DOT_0,
+	PK_LICENSE_ENUM_OSL_3_DOT_0,
+	PK_LICENSE_ENUM_OPENSSL,
+	PK_LICENSE_ENUM_OREILLY,
+	PK_LICENSE_ENUM_PHORUM,
+	PK_LICENSE_ENUM_PHP,
+	PK_LICENSE_ENUM_PUBLIC_DOMAIN,
+	PK_LICENSE_ENUM_PYTHON,
+	PK_LICENSE_ENUM_QPL,
+	PK_LICENSE_ENUM_RPSL,
+	PK_LICENSE_ENUM_RUBY,
+	PK_LICENSE_ENUM_SENDMAIL,
+	PK_LICENSE_ENUM_SLEEPYCAT,
+	PK_LICENSE_ENUM_SLIB,
+	PK_LICENSE_ENUM_SISSL,
+	PK_LICENSE_ENUM_SPL,
+	PK_LICENSE_ENUM_TCL,
+	PK_LICENSE_ENUM_UCD,
+	PK_LICENSE_ENUM_VIM,
+	PK_LICENSE_ENUM_VNLSL,
+	PK_LICENSE_ENUM_VSL,
+	PK_LICENSE_ENUM_W3C,
+	PK_LICENSE_ENUM_WXWIDGETS,
+	PK_LICENSE_ENUM_XINETD,
+	PK_LICENSE_ENUM_ZEND,
+	PK_LICENSE_ENUM_ZPLV1_DOT_0,
+	PK_LICENSE_ENUM_ZPLV2_DOT_0,
+	PK_LICENSE_ENUM_ZPLV2_DOT_1,
+	PK_LICENSE_ENUM_ZLIB,
+	PK_LICENSE_ENUM_ZLIB_WITH_ACK,
+	PK_LICENSE_ENUM_CDL,
+	PK_LICENSE_ENUM_FBSDDL,
+	PK_LICENSE_ENUM_GFDL,
+	PK_LICENSE_ENUM_IEEE,
+	PK_LICENSE_ENUM_OFSFDL,
+	PK_LICENSE_ENUM_OPEN_PUBLICATION,
+	PK_LICENSE_ENUM_CC_BY,
+	PK_LICENSE_ENUM_CC_BY_SA,
+	PK_LICENSE_ENUM_CC_BY_ND,
+	PK_LICENSE_ENUM_DSL,
+	PK_LICENSE_ENUM_FREE_ART,
+	PK_LICENSE_ENUM_OFL,
+	PK_LICENSE_ENUM_UTOPIA,
+	PK_LICENSE_ENUM_ARPHIC,
+	PK_LICENSE_ENUM_BAEKMUK,
+	PK_LICENSE_ENUM_BITSTREAM_VERA,
+	PK_LICENSE_ENUM_LUCIDA,
+	PK_LICENSE_ENUM_MPLUS,
+	PK_LICENSE_ENUM_STIX,
+	PK_LICENSE_ENUM_XANO,
+	PK_LICENSE_ENUM_VOSTROM,
+	PK_LICENSE_ENUM_XEROX,
+	PK_LICENSE_ENUM_RICEBSD,
+	PK_LICENSE_ENUM_QHULL,
+	PK_LICENSE_ENUM_UNKNOWN
+} PkLicenseEnum;
+
+/**
+ * PkMediaTypeEnum:
+ *
+ * The media type
+ **/
+typedef enum {
+	PK_MEDIA_TYPE_ENUM_CD,
+	PK_MEDIA_TYPE_ENUM_DVD,
+	PK_MEDIA_TYPE_ENUM_DISC,
+	PK_MEDIA_TYPE_ENUM_UNKNOWN
+} PkMediaTypeEnum;
+
+/**
+ * PkAuthorizeEnum:
+ *
+ * The authorization result
+ **/
+typedef enum {
+	PK_AUTHORIZE_ENUM_YES,
+	PK_AUTHORIZE_ENUM_NO,
+	PK_AUTHORIZE_ENUM_INTERACTIVE,
+	PK_AUTHORIZE_ENUM_UNKNOWN
+} PkAuthorizeEnum;
+
+/* general */
+void		 pk_enum_test				(gpointer	 user_data);
+guint		 pk_enum_find_value			(const PkEnumMatch *table,
+							 const gchar	*string)
+							 G_GNUC_WARN_UNUSED_RESULT;
+const gchar	*pk_enum_find_string			(const PkEnumMatch *table,
+							 guint		 value)
+							 G_GNUC_WARN_UNUSED_RESULT;
+
+PkSigTypeEnum	 pk_sig_type_enum_from_text		(const gchar	*sig_type);
+const gchar	*pk_sig_type_enum_to_text		(PkSigTypeEnum	 sig_type);
+
+PkInfoEnum	 pk_info_enum_from_text			(const gchar	*info);
+const gchar	*pk_info_enum_to_text			(PkInfoEnum	 info);
+
+PkUpdateStateEnum  pk_update_state_enum_from_text	(const gchar	*update_state);
+const gchar	*pk_update_state_enum_to_text		(PkUpdateStateEnum update_state);
+
+PkExitEnum	 pk_exit_enum_from_text			(const gchar	*exit);
+const gchar	*pk_exit_enum_to_text			(PkExitEnum	 exit);
+
+PkNetworkEnum	 pk_network_enum_from_text		(const gchar	*network);
+const gchar	*pk_network_enum_to_text		(PkNetworkEnum	 network);
+
+PkStatusEnum	 pk_status_enum_from_text		(const gchar	*status);
+const gchar	*pk_status_enum_to_text			(PkStatusEnum	 status);
+
+PkRoleEnum	 pk_role_enum_from_text			(const gchar	*role);
+const gchar	*pk_role_enum_to_text			(PkRoleEnum	 role);
+
+PkErrorCodeEnum	 pk_error_enum_from_text		(const gchar	*code);
+const gchar	*pk_error_enum_to_text			(PkErrorCodeEnum code);
+
+PkRestartEnum	 pk_restart_enum_from_text		(const gchar	*restart);
+const gchar	*pk_restart_enum_to_text		(PkRestartEnum	 restart);
+
+PkMessageEnum	 pk_message_enum_from_text		(const gchar	*message);
+const gchar	*pk_message_enum_to_text		(PkMessageEnum	 message);
+
+PkGroupEnum	 pk_group_enum_from_text		(const gchar	*group);
+const gchar	*pk_group_enum_to_text			(PkGroupEnum	 group);
+
+PkFilterEnum	 pk_filter_enum_from_text		(const gchar	*filter);
+const gchar	*pk_filter_enum_to_text			(PkFilterEnum	 filter);
+
+PkProvidesEnum	 pk_provides_enum_from_text		(const gchar	*provides);
+const gchar	*pk_provides_enum_to_text		(PkProvidesEnum	 provides);
+
+PkLicenseEnum	 pk_license_enum_from_text		(const gchar	*license);
+const gchar	*pk_license_enum_to_text		(PkLicenseEnum	 license);
+
+PkDistroUpgradeEnum pk_distro_upgrade_enum_from_text	(const gchar	*upgrade);
+const gchar	*pk_distro_upgrade_enum_to_text		(PkDistroUpgradeEnum upgrade);
+
+PkMediaTypeEnum  pk_media_type_enum_from_text		(const gchar	*media_type);
+const gchar	*pk_media_type_enum_to_text		(PkMediaTypeEnum media_type);
+
+PkAuthorizeEnum  pk_authorize_type_enum_from_text	(const gchar	*auth_type);
+const gchar	*pk_authorize_type_enum_to_text		(PkAuthorizeEnum auth_type);
+
+G_END_DECLS
+
+#endif /* __PK_ENUM_H */
diff --git a/lib/packagekit-glib2/pk-package-id.c b/lib/packagekit-glib2/pk-package-id.c
index 2eb6397..173324c 100644
--- a/lib/packagekit-glib2/pk-package-id.c
+++ b/lib/packagekit-glib2/pk-package-id.c
@@ -29,6 +29,7 @@
 #include "egg-debug.h"
 
 #include <glib.h>
+
 #include <packagekit-glib2/pk-package-id.h>
 
 /**
diff --git a/lib/packagekit-glib2/pk-package-id.h b/lib/packagekit-glib2/pk-package-id.h
index 0bb2e0d..b2bb8e0 100644
--- a/lib/packagekit-glib2/pk-package-id.h
+++ b/lib/packagekit-glib2/pk-package-id.h
@@ -26,7 +26,7 @@
 #ifndef __PK_PACKAGE_ID_H
 #define __PK_PACKAGE_ID_H
 
-#include <glib-object.h>
+#include <glib.h>
 
 G_BEGIN_DECLS
 
diff --git a/lib/packagekit-glib2/pk-package-ids.c b/lib/packagekit-glib2/pk-package-ids.c
index d47bcaa..2966d37 100644
--- a/lib/packagekit-glib2/pk-package-ids.c
+++ b/lib/packagekit-glib2/pk-package-ids.c
@@ -140,7 +140,7 @@ pk_package_ids_test (gpointer user_data)
 
 	/************************************************************/
 	egg_test_title (test, "verify size");
-	egg_test_assert (test, (g_strv_length (package_ids) == 2);
+	egg_test_assert (test, (g_strv_length (package_ids) == 2));
 
 	/************************************************************/
 	egg_test_title (test, "verify blank");
diff --git a/lib/packagekit-glib2/pk-package-sack.c b/lib/packagekit-glib2/pk-package-sack.c
index 2b8de04..e5a9f99 100644
--- a/lib/packagekit-glib2/pk-package-sack.c
+++ b/lib/packagekit-glib2/pk-package-sack.c
@@ -26,25 +26,8 @@
 
 #include "config.h"
 
-#include <stdlib.h>
-#include <stdio.h>
-#include <time.h>
-#include <errno.h>
-
-#include <string.h>
-#include <locale.h>
-#include <sys/time.h>
-#include <sys/types.h>
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif /* HAVE_UNISTD_H */
-
-#include <sys/wait.h>
-#include <fcntl.h>
-
-#include <glib/gi18n.h>
-#include <glib/gprintf.h>
-#include <dbus/dbus-glib.h>
+#include <glib-object.h>
+#include <gio/gio.h>
 
 #include <packagekit-glib2/pk-package-sack.h>
 #include <packagekit-glib2/pk-client.h>
diff --git a/lib/packagekit-glib2/pk-package.c b/lib/packagekit-glib2/pk-package.c
index b95503a..0ffd3e8 100644
--- a/lib/packagekit-glib2/pk-package.c
+++ b/lib/packagekit-glib2/pk-package.c
@@ -26,25 +26,7 @@
 
 #include "config.h"
 
-#include <stdlib.h>
-#include <stdio.h>
-#include <time.h>
-#include <errno.h>
-
-#include <string.h>
-#include <locale.h>
-#include <sys/time.h>
-#include <sys/types.h>
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif /* HAVE_UNISTD_H */
-
-#include <sys/wait.h>
-#include <fcntl.h>
-
-#include <glib/gi18n.h>
-#include <glib/gprintf.h>
-#include <dbus/dbus-glib.h>
+#include <glib-object.h>
 
 #include <packagekit-glib2/pk-package.h>
 #include <packagekit-glib2/pk-common.h>
diff --git a/lib/packagekit-glib2/pk-task.c b/lib/packagekit-glib2/pk-task.c
index 8846385..9430048 100644
--- a/lib/packagekit-glib2/pk-task.c
+++ b/lib/packagekit-glib2/pk-task.c
@@ -21,6 +21,8 @@
 
 #include "config.h"
 
+#include <gio/gio.h>
+
 #include <packagekit-glib2/pk-task.h>
 #include <packagekit-glib2/pk-common.h>
 #include <packagekit-glib2/pk-enum.h>
diff --git a/lib/packagekit-glib2/pk-task.h b/lib/packagekit-glib2/pk-task.h
index abe5882..768459c 100644
--- a/lib/packagekit-glib2/pk-task.h
+++ b/lib/packagekit-glib2/pk-task.h
@@ -34,6 +34,7 @@
 
 #include <glib-object.h>
 #include <gio/gio.h>
+
 #include <packagekit-glib2/pk-progress.h>
 #include <packagekit-glib2/pk-results.h>
 #include <packagekit-glib2/pk-client.h>
commit dab522a0b88dde8ddc0e8f07914523eaaad6ad22
Merge: ebd6441... c7c010b...
Author: Richard Hughes <richard at hughsie.com>
Date:   Sat Sep 5 08:55:44 2009 +0100

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

commit c7c010b4b65507e98d62a015b5b8f32cd300890b
Author: Richard Hughes <richard at hughsie.com>
Date:   Sat Sep 5 08:39:43 2009 +0100

    glib2: Copy pk_package_ids_x functionality from glib1

diff --git a/lib/packagekit-glib2/Makefile.am b/lib/packagekit-glib2/Makefile.am
index 9e34f70..b2296cd 100644
--- a/lib/packagekit-glib2/Makefile.am
+++ b/lib/packagekit-glib2/Makefile.am
@@ -37,6 +37,8 @@ libpackagekit_glib2_include_HEADERS =				\
 	pk-control.h						\
 	pk-control-sync.h					\
 	pk-package.h						\
+	pk-package-id.h						\
+	pk-package-ids.h					\
 	pk-package-sack.h					\
 	pk-progress.h						\
 	pk-results.h						\
@@ -67,6 +69,8 @@ libpackagekit_glib2_la_SOURCES =				\
 	pk-package.h						\
 	pk-package-id.c						\
 	pk-package-id.h						\
+	pk-package-ids.c					\
+	pk-package-ids.h					\
 	pk-package-sack.c					\
 	pk-package-sack.h					\
 	pk-progress.c						\
diff --git a/lib/packagekit-glib2/packagekit.h b/lib/packagekit-glib2/packagekit.h
index d1baec7..36c2a14 100644
--- a/lib/packagekit-glib2/packagekit.h
+++ b/lib/packagekit-glib2/packagekit.h
@@ -30,6 +30,7 @@
 #include <packagekit-glib2/pk-control-sync.h>
 #include <packagekit-glib2/pk-enum.h>
 #include <packagekit-glib2/pk-package-id.h>
+#include <packagekit-glib2/pk-package-ids.h>
 #include <packagekit-glib2/pk-package-sack.h>
 #include <packagekit-glib2/pk-results.h>
 #include <packagekit-glib2/pk-task.h>
diff --git a/lib/packagekit-glib2/pk-package-id.c b/lib/packagekit-glib2/pk-package-id.c
index 2424376..2eb6397 100644
--- a/lib/packagekit-glib2/pk-package-id.c
+++ b/lib/packagekit-glib2/pk-package-id.c
@@ -28,6 +28,7 @@
 
 #include "egg-debug.h"
 
+#include <glib.h>
 #include <packagekit-glib2/pk-package-id.h>
 
 /**
diff --git a/lib/packagekit-glib2/pk-package-ids.c b/lib/packagekit-glib2/pk-package-ids.c
new file mode 100644
index 0000000..d47bcaa
--- /dev/null
+++ b/lib/packagekit-glib2/pk-package-ids.c
@@ -0,0 +1,160 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2008-2009 Richard Hughes <richard at hughsie.com>
+ *
+ * Licensed under the GNU General Public License Version 2
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+/**
+ * SECTION:pk-package-ids
+ * @short_description: Functionality to modify multiple PackageIDs
+ *
+ * Composite PackageId's are difficult to read and create.
+ */
+
+#include "config.h"
+
+#include <glib.h>
+#include <packagekit-glib2/pk-package-id.h>
+#include <packagekit-glib2/pk-package-ids.h>
+
+#include "egg-debug.h"
+
+/**
+ * pk_package_ids_from_id:
+ * @package_id: A single package_id
+ *
+ * Form a composite string array of package_id's from
+ * a single package_id
+ *
+ * Return value: the string array, or %NULL if invalid, free with g_strfreev()
+ **/
+gchar **
+pk_package_ids_from_id (const gchar *package_id)
+{
+	g_return_val_if_fail (package_id != NULL, NULL);
+	return g_strsplit (package_id, PK_PACKAGE_IDS_DELIM, 1);
+}
+
+/**
+ * pk_package_ids_from_text:
+ * @package_id: A single package_id
+ *
+ * Form a composite string array of package_id's from
+ * a delimited string
+ *
+ * Return value: the string array, or %NULL if invalid, free with g_strfreev()
+ **/
+gchar **
+pk_package_ids_from_text (const gchar *package_id)
+{
+	g_return_val_if_fail (package_id != NULL, NULL);
+	return g_strsplit (package_id, PK_PACKAGE_IDS_DELIM, 0);
+}
+
+/**
+ * pk_package_ids_check:
+ * @package_ids: a string array of package_id's
+ *
+ * Check the string array of package_id's for validity
+ *
+ * Return value: %TRUE if the package_ids are all valid.
+ **/
+gboolean
+pk_package_ids_check (gchar **package_ids)
+{
+	guint i;
+	guint size;
+	gboolean ret = FALSE;
+	const gchar *package_id;
+
+	g_return_val_if_fail (package_ids != NULL, FALSE);
+
+	/* check all */
+	size = g_strv_length (package_ids);
+	for (i=0; i<size; i++) {
+		package_id = package_ids[i];
+		ret = pk_package_id_check (package_id);
+		if (!ret)
+			goto out;
+	}
+out:
+	return ret;
+}
+
+/**
+ * pk_package_ids_to_text:
+ * @package_ids: a string array of package_id's
+ *
+ * Cats the string array of package_id's into one delimited string
+ *
+ * Return value: a string representation of all the package_id's.
+ **/
+gchar *
+pk_package_ids_to_text (gchar **package_ids)
+{
+	/* special case as this is allowed */
+	if (package_ids == NULL)
+		return NULL;
+	return g_strjoinv (PK_PACKAGE_IDS_DELIM, package_ids);
+}
+
+/***************************************************************************
+ ***                          MAKE CHECK TESTS                           ***
+ ***************************************************************************/
+#ifdef EGG_TEST
+#include "egg-test.h"
+
+void
+pk_package_ids_test (gpointer user_data)
+{
+	EggTest *test = (EggTest *) user_data;
+	gboolean ret;
+	gchar *package_ids_blank[] = {};
+	gchar **package_ids;
+
+	if (!egg_test_start (test, "PkPackageIds"))
+		return;
+
+	/************************************************************
+	 ****************          IDENTS          ******************
+	 ************************************************************/
+
+	egg_test_title (test, "parse va_list");
+	package_ids = pk_package_ids_from_text ("foo;0.0.1;i386;fedora&bar;0.1.1;noarch;livna");
+	egg_test_assert (test, package_ids != NULL);
+
+	/************************************************************/
+	egg_test_title (test, "verify size");
+	egg_test_assert (test, (g_strv_length (package_ids) == 2);
+
+	/************************************************************/
+	egg_test_title (test, "verify blank");
+	ret = pk_package_ids_check (package_ids_blank);
+	egg_test_assert (test, !ret);
+
+	/************************************************************/
+	egg_test_title (test, "verify");
+	ret = pk_package_ids_check (package_ids);
+	egg_test_assert (test, ret);
+
+	g_strfreev (package_ids);
+
+	egg_test_end (test);
+}
+#endif
+
diff --git a/lib/packagekit-glib2/pk-package-ids.h b/lib/packagekit-glib2/pk-package-ids.h
new file mode 100644
index 0000000..67b176a
--- /dev/null
+++ b/lib/packagekit-glib2/pk-package-ids.h
@@ -0,0 +1,54 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2008-2009 Richard Hughes <richard at hughsie.com>
+ *
+ * Licensed under the GNU General Public License Version 2
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#if !defined (__PACKAGEKIT_H_INSIDE__) && !defined (PK_COMPILATION)
+#error "Only <packagekit.h> can be included directly."
+#endif
+
+#ifndef __PK_PACKAGE_IDS_H
+#define __PK_PACKAGE_IDS_H
+
+#include <glib.h>
+
+G_BEGIN_DECLS
+
+/* rationalle:
+ *
+ * '%': breaks printf
+ * '|': used as the filename seporator
+ * '~': conary
+ * '@': conary
+ *
+ * If this has to be changed, also change:
+ * - backends/urpmi/helpers/urpmi-dispatched-backend.pl
+ * - python/packagekit/backend.py
+ */
+#define PK_PACKAGE_IDS_DELIM	"&"
+
+void		 pk_package_ids_test			(gpointer	 user_data);
+gchar		**pk_package_ids_from_id		(const gchar	*package_id);
+gchar		**pk_package_ids_from_text		(const gchar	*package_id);
+gboolean	 pk_package_ids_check			(gchar		**package_ids);
+gchar		*pk_package_ids_to_text			(gchar		**package_ids);
+
+G_END_DECLS
+
+#endif /* __PK_PACKAGE_IDS_H */
diff --git a/lib/packagekit-glib2/pk-self-test.c b/lib/packagekit-glib2/pk-self-test.c
index 9ccf59d..984e3a7 100644
--- a/lib/packagekit-glib2/pk-self-test.c
+++ b/lib/packagekit-glib2/pk-self-test.c
@@ -33,6 +33,7 @@
 #include "pk-enum.h"
 #include "pk-package.h"
 #include "pk-package-id.h"
+#include "pk-package-ids.h"
 #include "pk-package-sack.h"
 #include "pk-results.h"
 #include "pk-task.h"
@@ -54,6 +55,7 @@ main (int argc, char **argv)
 	pk_enum_test (test);
 	pk_bitfield_test (test);
 	pk_package_id_test (test);
+	pk_package_ids_test (test);
 	pk_progress_test (test);
 	pk_results_test (test);
 	pk_package_test (test);
commit fc7e6822083c7c8daf48da972c0eb18e36932a05
Author: ruigo <ruigo at fedoraproject.org>
Date:   Sat Sep 5 02:48:54 2009 +0000

    Sending translation for Portuguese

diff --git a/po/pt.po b/po/pt.po
index 138b073..0844b8d 100644
--- a/po/pt.po
+++ b/po/pt.po
@@ -2,7 +2,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: packagekit\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-08-24 11:06+0100\n"
+"POT-Creation-Date: 2009-09-04 14:33+0000\n"
 "PO-Revision-Date: \n"
 "Last-Translator: Rui Gouveia <rui.gouveia at globaltek.pt>\n"
 "Language-Team: pt <fedora-trans-pt at redhat.com>\n"
@@ -15,798 +15,1009 @@ msgstr ""
 "X-Poedit-Basepath: /home/ruigo/src/PackageKit/po/\n"
 
 #. TRANSLATORS: this is an atomic transaction
-#: ../client/pk-console.c:235
+#: ../client/pk-console.c:238
+#: ../client/pk-console-test.c:147
 msgid "Transaction"
 msgstr "Transacção"
 
 #. TRANSLATORS: this is the time the transaction was started in system timezone
-#: ../client/pk-console.c:237
+#: ../client/pk-console.c:240
+#: ../client/pk-console-test.c:149
 msgid "System time"
 msgstr "Hora do sistema"
 
 #. TRANSLATORS: this is if the transaction succeeded or not
-#: ../client/pk-console.c:239
+#: ../client/pk-console.c:242
+#: ../client/pk-console-test.c:151
 msgid "Succeeded"
 msgstr "Sucesso"
 
-#. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:239 ../client/pk-console.c:406
+#: ../client/pk-console.c:242
+#: ../client/pk-console-test.c:151
 msgid "True"
 msgstr "Verdadeiro"
 
-#: ../client/pk-console.c:239 ../client/pk-console.c:406
+#: ../client/pk-console.c:242
+#: ../client/pk-console-test.c:151
 msgid "False"
 msgstr "Falso"
 
 #. TRANSLATORS: this is the transactions role, e.g. "update-system"
 #. TRANSLATORS: the trasaction role, e.g. update-system
-#: ../client/pk-console.c:241 ../src/pk-polkit-action-lookup.c:327
+#: ../client/pk-console.c:244
+#: ../client/pk-console-test.c:153
+#: ../src/pk-polkit-action-lookup.c:327
 msgid "Role"
 msgstr "Função"
 
 #. TRANSLATORS: this is The duration of the transaction
-#: ../client/pk-console.c:246
+#: ../client/pk-console.c:249
+#: ../client/pk-console-test.c:158
 msgid "Duration"
 msgstr "Duração"
 
-#: ../client/pk-console.c:246
+#: ../client/pk-console.c:249
+#: ../client/pk-console-test.c:158
 msgid "(seconds)"
 msgstr "(segundos)"
 
 #. TRANSLATORS: this is The command line used to do the action
 #. TRANSLATORS: the command line of the thing that wants the authentication
-#: ../client/pk-console.c:250 ../src/pk-polkit-action-lookup.c:341
+#: ../client/pk-console.c:253
+#: ../client/pk-console-test.c:162
+#: ../src/pk-polkit-action-lookup.c:341
 msgid "Command line"
 msgstr "Linha de comando"
 
 #. TRANSLATORS: this is the user ID of the user that started the action
-#: ../client/pk-console.c:252
+#: ../client/pk-console.c:255
+#: ../client/pk-console-test.c:164
 msgid "User ID"
 msgstr "ID de Utilizador"
 
 #. TRANSLATORS: this is the username, e.g. hughsie
-#: ../client/pk-console.c:259
+#: ../client/pk-console.c:262
+#: ../client/pk-console-test.c:171
 msgid "Username"
 msgstr "Nome do utilizador"
 
 #. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
-#: ../client/pk-console.c:263
+#: ../client/pk-console.c:266
+#: ../client/pk-console-test.c:175
 msgid "Real name"
 msgstr "Nome real"
 
-#: ../client/pk-console.c:271
+#: ../client/pk-console.c:274
+#: ../client/pk-console-test.c:183
 msgid "Affected packages:"
 msgstr "Pacotes afectados"
 
-#: ../client/pk-console.c:273
+#: ../client/pk-console.c:276
+#: ../client/pk-console-test.c:185
 msgid "Affected packages: None"
 msgstr "Pacotes afectados: Nenhum"
 
+#. TRANSLATORS: When processing, we might have to remove other dependencies
+#: ../client/pk-console.c:337
+#: ../client/pk-task-text.c:220
+msgid "The following packages have to be removed:"
+msgstr "Os seguintes pacotes precisam de ser removidos:"
+
+#. TRANSLATORS: When processing, we might have to install other dependencies
+#: ../client/pk-console.c:340
+#: ../client/pk-task-text.c:225
+msgid "The following packages have to be installed:"
+msgstr "Os seguintes pacotes precisam de ser instalados:"
+
+#. TRANSLATORS: When processing, we might have to update other dependencies
+#: ../client/pk-console.c:343
+#: ../client/pk-task-text.c:230
+msgid "The following packages have to be updated:"
+msgstr "Os seguintes pacotes precisam de ser actualizados:"
+
+#. TRANSLATORS: When processing, we might have to reinstall other dependencies
+#: ../client/pk-console.c:346
+#: ../client/pk-task-text.c:235
+msgid "The following packages have to be reinstalled:"
+msgstr "Os seguintes pacotes precisam de ser reinstalados:"
+
+#. TRANSLATORS: When processing, we might have to downgrade other dependencies
+#: ../client/pk-console.c:349
+#: ../client/pk-task-text.c:240
+msgid "The following packages have to be downgraded:"
+msgstr "Os seguintes pacotes precisam de ser desactualizados:"
+
 #. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:298
+#: ../client/pk-console.c:363
+#: ../client/pk-console-test.c:205
 msgid "Distribution"
 msgstr "Distribuição"
 
 #. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:300
+#: ../client/pk-console.c:365
+#: ../client/pk-console-test.c:207
 msgid "Type"
 msgstr "Tipo"
 
 #. TRANSLATORS: this is any summary text describing the upgrade
 #. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:302 ../client/pk-console.c:325
+#. TRANSLATORS: this is any summary text describing the upgrade
+#. TRANSLATORS: this is the summary of the group
+#: ../client/pk-console.c:367
+#: ../client/pk-console.c:390
+#: ../client/pk-console-test.c:209
+#: ../client/pk-console-test.c:230
 msgid "Summary"
 msgstr "Sumário"
 
 #. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:314
+#: ../client/pk-console.c:379
+#: ../client/pk-console-test.c:219
 msgid "Category"
 msgstr "Categori­a"
 
 #. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:316
+#: ../client/pk-console.c:381
+#: ../client/pk-console-test.c:221
 msgid "ID"
 msgstr "ID"
 
 #. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:319
+#: ../client/pk-console.c:384
+#: ../client/pk-console-test.c:224
 msgid "Parent"
 msgstr "Pai"
 
 #. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:322
+#: ../client/pk-console.c:387
+#: ../client/pk-console-test.c:227
 msgid "Name"
 msgstr "Nome"
 
 #. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:328
+#: ../client/pk-console.c:393
+#: ../client/pk-console-test.c:233
 msgid "Icon"
 msgstr "Ícone"
 
 #. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:343
+#: ../client/pk-console.c:408
+#: ../client/pk-console-test.c:247
 msgid "Details about the update:"
 msgstr "Detalhes acerca da actualização:"
 
 #. TRANSLATORS: details about the update, package name and version
 #. TRANSLATORS: title, the names of the packages that the method is processing
-#: ../client/pk-console.c:345 ../src/pk-polkit-action-lookup.c:352
+#: ../client/pk-console.c:410
+#: ../client/pk-console-test.c:253
+#: ../client/pk-task-text.c:101
+#: ../client/pk-task-text.c:153
+#: ../src/pk-polkit-action-lookup.c:352
 msgid "Package"
 msgid_plural "Packages"
 msgstr[0] "Pacote"
 msgstr[1] "Pacotes"
 
 #. TRANSLATORS: details about the update, any packages that this update updates
-#: ../client/pk-console.c:348
+#: ../client/pk-console.c:413
+#: ../client/pk-console-test.c:256
 msgid "Updates"
 msgstr "Actualizações"
 
 #. TRANSLATORS: details about the update, any packages that this update obsoletes
-#: ../client/pk-console.c:352
+#: ../client/pk-console.c:417
+#: ../client/pk-console-test.c:260
 msgid "Obsoletes"
 msgstr "Torna absoleto"
 
 #. TRANSLATORS: details about the update, the vendor URLs
-#: ../client/pk-console.c:356
+#: ../client/pk-console.c:421
+#: ../client/pk-console-test.c:264
+#: ../client/pk-task-text.c:154
 msgid "Vendor"
 msgstr "Fabricante"
 
 #. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:360
+#: ../client/pk-console.c:425
+#: ../client/pk-console-test.c:268
 msgid "Bugzilla"
 msgstr "Bugzilla"
 
 #. TRANSLATORS: details about the update, the CVE URLs
-#: ../client/pk-console.c:364
+#: ../client/pk-console.c:429
+#: ../client/pk-console-test.c:272
 msgid "CVE"
 msgstr "CVE"
 
 #. TRANSLATORS: details about the update, if the package requires a restart
-#: ../client/pk-console.c:368
+#: ../client/pk-console.c:433
+#: ../client/pk-console-test.c:276
 msgid "Restart"
 msgstr "Reiniciar"
 
 #. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:372
+#: ../client/pk-console.c:437
+#: ../client/pk-console-test.c:280
 msgid "Update text"
 msgstr "Actualizar texto"
 
 #. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:376
+#: ../client/pk-console.c:441
+#: ../client/pk-console-test.c:284
 msgid "Changes"
 msgstr "Alterações"
 
 #. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:380
+#: ../client/pk-console.c:445
+#: ../client/pk-console-test.c:288
 msgid "State"
 msgstr "Estado"
 
 #. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:385
+#: ../client/pk-console.c:450
+#: ../client/pk-console-test.c:293
 msgid "Issued"
 msgstr "Emitido"
 
 #. TRANSLATORS: details about the update, date the update was updated
-#: ../client/pk-console.c:390
+#: ../client/pk-console.c:455
+#: ../client/pk-console-test.c:298
 msgid "Updated"
 msgstr "Actualizado"
 
-#: ../client/pk-console.c:477 ../client/pk-console.c:479
+#. TRANSLATORS: if the repo is enabled
+#: ../client/pk-console.c:475
+#: ../client/pk-console-test.c:316
+msgid "Enabled"
+msgstr "Activado"
+
+#. TRANSLATORS: if the repo is disabled
+#: ../client/pk-console.c:478
+#: ../client/pk-console-test.c:319
+msgid "Disabled"
+msgstr "Inactivo"
+
+#: ../client/pk-console.c:555
+#: ../client/pk-console.c:557
 msgid "Percentage"
 msgstr "Percentagem"
 
-#: ../client/pk-console.c:479
+#: ../client/pk-console.c:557
 msgid "Unknown"
 msgstr "Desconhecido"
 
 #. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:521
+#: ../client/pk-console.c:599
+#: ../client/pk-console-test.c:341
 msgid "System restart required by:"
 msgstr "Reinicialização do sistema requerida por:"
 
 #. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:524
+#: ../client/pk-console.c:602
+#: ../client/pk-console-test.c:344
 msgid "Session restart required:"
 msgstr "Reinicialização da sessão requerida:"
 
 #. TRANSLATORS: a package requires the system to be restarted due to a security update
-#: ../client/pk-console.c:527
+#: ../client/pk-console.c:605
+#: ../client/pk-console-test.c:347
 msgid "System restart (security) required by:"
 msgstr "Reinicialização do sistema (segurança) requerida por:"
 
 #. TRANSLATORS: a package requires the session to be restarted due to a security update
-#: ../client/pk-console.c:530
+#: ../client/pk-console.c:608
+#: ../client/pk-console-test.c:350
 msgid "Session restart (security) required:"
 msgstr "Reinicialização da sessão (segurança) requerida:"
 
 #. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:533
+#: ../client/pk-console.c:611
+#: ../client/pk-console-test.c:353
 msgid "Application restart required by:"
 msgstr "Reinicialização da aplicação requerida por:"
 
 #. TRANSLATORS: a package needs to restart their system
-#: ../client/pk-console.c:588
+#: ../client/pk-console.c:666
+#: ../client/pk-console-test.c:702
 msgid "Please restart the computer to complete the update."
 msgstr "Por favor, reinicie o computador para completar a actualização."
 
 #. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:591
+#: ../client/pk-console.c:669
+#: ../client/pk-console-test.c:705
 msgid "Please logout and login to complete the update."
-msgstr ""
-"Por favor, termine e volte a iniciar a sessão para completar a actualização."
+msgstr "Por favor, termine e volte a iniciar a sessão para completar a actualização."
 
 #. TRANSLATORS: a package needs to restart the application
-#: ../client/pk-console.c:594
+#: ../client/pk-console.c:672
 msgid "Please restart the application as it is being used."
 msgstr "Por favor, reinicie a aplicação para completar a actualização."
 
 #. TRANSLATORS: a package needs to restart their system (due to security)
-#: ../client/pk-console.c:597
-msgid ""
-"Please restart the computer to complete the update as important security "
-"updates have been installed."
-msgstr ""
-"Por favor, reinicie o computador para completar a actualização, pois foram "
-"instaladas importantes actualizações de segurança."
+#: ../client/pk-console.c:675
+#: ../client/pk-console-test.c:708
+msgid "Please restart the computer to complete the update as important security updates have been installed."
+msgstr "Por favor, reinicie o computador para completar a actualização, pois foram instaladas importantes actualizações de segurança."
 
 #. TRANSLATORS: a package needs to restart the session (due to security)
-#: ../client/pk-console.c:600
-msgid ""
-"Please logout and login to complete the update as important security updates "
-"have been installed."
-msgstr ""
-"Por favor, termine e volte a iniciar a sessão para completar a actualização, "
-"pois foram instaladas importantes actualizações de segurança."
+#: ../client/pk-console.c:678
+#: ../client/pk-console-test.c:711
+msgid "Please logout and login to complete the update as important security updates have been installed."
+msgstr "Por favor, termine e volte a iniciar a sessão para completar a actualização, pois foram instaladas importantes actualizações de segurança."
 
 #. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:727
+#: ../client/pk-console.c:810
 #, c-format
 msgid "The package %s is already installed"
 msgstr "O pacote %s já está instalado"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:735
+#: ../client/pk-console.c:818
 #, c-format
 msgid "The package %s could not be installed: %s"
 msgstr "Não foi possível instalar o pacote %s: %s"
 
 #. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
-#: ../client/pk-console.c:760 ../client/pk-console.c:783
-#: ../client/pk-console.c:879 ../client/pk-console.c:996
-#: ../client/pk-tools-common.c:62 ../client/pk-tools-common.c:81
-#: ../client/pk-tools-common.c:89
+#: ../client/pk-console.c:844
+#: ../client/pk-console.c:892
+#: ../client/pk-console.c:916
+#: ../client/pk-console.c:964
+#: ../client/pk-console.c:1060
+#: ../client/pk-console.c:1173
+#: ../client/pk-console.c:1234
+#: ../client/pk-tools-common.c:63
+#: ../client/pk-tools-common.c:82
+#: ../client/pk-tools-common.c:90
 #, c-format
 msgid "Internal error: %s"
 msgstr "Erro interno: %s"
 
+#. TRANSLATORS: We are checking if it's okay to remove a list of packages
+#. ask the user
+#: ../client/pk-console.c:876
+#: ../client/pk-console.c:948
+#: ../client/pk-console.c:1266
+#: ../client/pk-task-text.c:299
+msgid "Proceed with changes?"
+msgstr "Continuar com as alterações?"
+
+#. TRANSLATORS: There was an error removing the packages. The detailed error follows
+#: ../client/pk-console.c:881
+#: ../client/pk-console.c:953
+msgid "The package install was canceled!"
+msgstr "A instalação dos pacotes foi cancelada!"
+
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:768 ../client/pk-console.c:1392
+#: ../client/pk-console.c:900
+#: ../client/pk-console.c:1634
 #, c-format
 msgid "This tool could not install the packages: %s"
 msgstr "Esta ferramenta não conseguiu instalar os pacotes: %s"
 
 #. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:791
+#: ../client/pk-console.c:972
 #, c-format
 msgid "This tool could not install the files: %s"
 msgstr "Esta ferramenta não conseguiu instalar os ficheiros: %s"
 
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:847
+#: ../client/pk-console.c:1028
 #, c-format
 msgid "This tool could not remove %s: %s"
 msgstr "Esta ferramenta não conseguiu remover %s: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:870 ../client/pk-console.c:908
-#: ../client/pk-console.c:941
+#: ../client/pk-console.c:1051
+#: ../client/pk-console.c:1089
+#: ../client/pk-console.c:1118
 #, c-format
 msgid "This tool could not remove the packages: %s"
 msgstr "Esta ferramenta não conseguiu remover os pacotes: %s"
 
-#. TRANSLATORS: When removing, we might have to remove other dependencies
-#: ../client/pk-console.c:920
-msgid "The following packages have to be removed:"
-msgstr "Os seguintes pacotes precisam de ser removidos:"
-
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:927
-msgid "Proceed removing additional packages?"
-msgstr "Continuar com a remoção dos pacotes adicionais?"
+#: ../client/pk-console.c:1104
+msgid "Proceed with additional packages?"
+msgstr "Continuar com os pacotes adicionais?"
 
-#. TRANSLATORS: We did not remove any packages
-#: ../client/pk-console.c:932
+#. TRANSLATORS: There was an error removing the packages. The detailed error follows
+#: ../client/pk-console.c:1109
 msgid "The package removal was canceled!"
 msgstr "A remoção dos pacotes foi cancelada!"
 
 #. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:973
+#: ../client/pk-console.c:1150
 #, c-format
 msgid "This tool could not download the package %s as it could not be found"
-msgstr ""
-"Esta ferramenta não conseguiu transferir o pacote %s pois não o conseguiu "
-"encontrar"
+msgstr "Esta ferramenta não conseguiu transferir o pacote %s pois não o conseguiu encontrar"
 
 #. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:1004
+#: ../client/pk-console.c:1181
 #, c-format
 msgid "This tool could not download the packages: %s"
 msgstr "Esta ferramenta não conseguiu transferir os pacotes: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1031 ../client/pk-console.c:1040
+#: ../client/pk-console.c:1213
+#: ../client/pk-console.c:1225
+#: ../client/pk-console.c:1280
 #, c-format
 msgid "This tool could not update %s: %s"
 msgstr "Esta ferramenta não conseguiu actualizar %s: %s"
 
+#. TRANSLATORS: There was an error removing the packages. The detailed error follows
+#: ../client/pk-console.c:1271
+msgid "The package update was canceled!"
+msgstr "A actualização dos pacotes foi cancelada!"
+
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1062 ../client/pk-console.c:1070
+#: ../client/pk-console.c:1304
+#: ../client/pk-console.c:1312
 #, c-format
 msgid "This tool could not get the requirements for %s: %s"
 msgstr "Esta ferramenta não conseguiu obter os requisitos para %s: %s"
 
 #. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:1092 ../client/pk-console.c:1100
+#: ../client/pk-console.c:1334
+#: ../client/pk-console.c:1342
 #, c-format
 msgid "This tool could not get the dependencies for %s: %s"
 msgstr "Esta ferramenta não conseguiu obter as dependências para %s: %s"
 
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:1122 ../client/pk-console.c:1130
+#: ../client/pk-console.c:1364
+#: ../client/pk-console.c:1372
 #, c-format
 msgid "This tool could not get package details for %s: %s"
 msgstr "Esta ferramenta não conseguiu obter os detalhes para %s: %s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1152
+#: ../client/pk-console.c:1394
 #, c-format
 msgid "This tool could not find the files for %s: %s"
 msgstr "Esta ferramenta não conseguiu encontrar os ficheiros para %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1160
+#: ../client/pk-console.c:1402
 #, c-format
 msgid "This tool could not get the file list for %s: %s"
 msgstr "Esta ferramenta não conseguiu obter a lista de ficheiros para %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of packages. The filename follows
-#: ../client/pk-console.c:1182
+#: ../client/pk-console.c:1424
 #, c-format
 msgid "File already exists: %s"
 msgstr "Ficheiro já existe: %s"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1187 ../client/pk-console.c:1243
-#: ../client/pk-console.c:1318
+#: ../client/pk-console.c:1429
+#: ../client/pk-console.c:1485
+#: ../client/pk-console.c:1560
 msgid "Getting package list"
 msgstr "A obter lista de pacotes"
 
 #. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1193 ../client/pk-console.c:1249
-#: ../client/pk-console.c:1324
+#: ../client/pk-console.c:1435
+#: ../client/pk-console.c:1491
+#: ../client/pk-console.c:1566
 #, c-format
 msgid "This tool could not get package list: %s"
 msgstr "Esta ferramenta não conseguiu obter a lista de pacotes: %s"
 
 #. TRANSLATORS: There was an error saving the list
-#: ../client/pk-console.c:1204
+#: ../client/pk-console.c:1446
 #, c-format
 msgid "Failed to save to disk"
 msgstr "A gravação para disco falhou"
 
 #. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1238 ../client/pk-console.c:1313
+#: ../client/pk-console.c:1480
+#: ../client/pk-console.c:1555
 #, c-format
 msgid "File does not exist: %s"
 msgstr "Ficheiro não existe: %s"
 
 #. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1270
+#: ../client/pk-console.c:1512
 msgid "Packages to add"
 msgstr "Pacotes para adicionar"
 
 #. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1278
+#: ../client/pk-console.c:1520
 msgid "Packages to remove"
 msgstr "Pacotes para remover"
 
 #. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1346
+#: ../client/pk-console.c:1588
 #, c-format
 msgid "No new packages need to be installed"
 msgstr "Não existem pacotes novos para instalar"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1352
+#: ../client/pk-console.c:1594
 msgid "To install"
 msgstr "Para instalar"
 
 #. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1364
+#: ../client/pk-console.c:1606
 msgid "Searching for package: "
 msgstr "Pesquisar por pacote:"
 
 #. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1368
+#: ../client/pk-console.c:1610
 msgid "not found."
 msgstr "não encontrado."
 
 #. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1379
+#: ../client/pk-console.c:1621
 #, c-format
 msgid "No packages can be found to install"
 msgstr "Não foram encontrados pacotes para instalar"
 
 #. TRANSLATORS: installing new packages from package list
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
-#: ../client/pk-console.c:1385
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:886
+#: ../client/pk-console.c:1627
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:885
 #, c-format
 msgid "Installing packages"
 msgstr "A instalar pacotes"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1421
+#: ../client/pk-console.c:1663
 #, c-format
 msgid "This tool could not find the update details for %s: %s"
-msgstr ""
-"Esta ferramenta não conseguiu encontrar os detalhes de actualização para %s: "
-"%s"
+msgstr "Esta ferramenta não conseguiu encontrar os detalhes de actualização para %s: %s"
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1429
+#: ../client/pk-console.c:1671
 #, c-format
 msgid "This tool could not get the update details for %s: %s"
-msgstr ""
-"Esta ferramenta não conseguiu obter os detalhes de actualização para %s: %s"
+msgstr "Esta ferramenta não conseguiu obter os detalhes de actualização para %s: %s"
 
 #. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
-#: ../client/pk-console.c:1460
+#: ../client/pk-console.c:1702
 msgid "Error:"
 msgstr "Erro:"
 
 #. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1474
+#: ../client/pk-console.c:1716
+#: ../client/pk-console-test.c:370
 msgid "Package description"
 msgstr "Descrição do pacote"
 
 #. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
-#: ../client/pk-console.c:1490
+#: ../client/pk-console.c:1732
+#: ../client/pk-console-test.c:388
 msgid "Message:"
 msgstr "Mensagem:"
 
 #. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1518
+#: ../client/pk-console.c:1760
+#: ../client/pk-console-test.c:407
 msgid "Package files"
 msgstr "Ficheiros do pacote"
 
 #. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1526
+#: ../client/pk-console.c:1768
+#: ../client/pk-console-test.c:402
 msgid "No files"
 msgstr "Sem ficheiros"
 
 #. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1549
+#: ../client/pk-console.c:1791
 msgid "Repository signature required"
 msgstr "A assinatura do repositório é necessária"
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1559
+#. ask the user
+#: ../client/pk-console.c:1801
+#: ../client/pk-task-text.c:113
 msgid "Do you accept this signature?"
 msgstr "Aceita esta assinatura?"
 
 #. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1563
+#: ../client/pk-console.c:1805
+#: ../client/pk-task-text.c:117
 msgid "The signature was not accepted."
 msgstr "A assinatura não foi aceite."
 
 #. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1597
+#: ../client/pk-console.c:1839
 msgid "End user license agreement required"
 msgstr "O acordo de licenciamento com o utilizador final é necessário"
 
 #. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1604
+#: ../client/pk-console.c:1846
 msgid "Do you agree to this license?"
 msgstr "Concorda com esta licença?"
 
 #. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1608
+#: ../client/pk-console.c:1850
 msgid "The license was refused."
 msgstr "A licença foi recusada."
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1637
+#: ../client/pk-console.c:1879
+#: ../client/pk-console-test.c:968
 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:1690
+#: ../client/pk-console.c:1932
+#: ../client/pk-console-test.c:1002
 msgid "PackageKit Console Interface"
 msgstr "Consola do PackaheKit"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1692
+#: ../client/pk-console.c:1934
+#: ../client/pk-console-test.c:1004
 msgid "Subcommands:"
 msgstr "Sub-comandos:"
 
 #. TRANSLATORS: command line argument, if we should show debugging information
 #. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:1785 ../client/pk-generate-pack.c:185
+#: ../client/pk-console.c:2027
+#: ../client/pk-console-test.c:1095
+#: ../client/pk-generate-pack.c:187
 #: ../client/pk-monitor.c:128
 #: ../contrib/command-not-found/pk-command-not-found.c:616
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:550
-#: ../contrib/device-rebind/pk-device-rebind.c:293 ../src/pk-main.c:211
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:549
+#: ../contrib/device-rebind/pk-device-rebind.c:293
+#: ../src/pk-main.c:211
 msgid "Show extra debugging information"
 msgstr "Mostrar informação de depuração adicional"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1788 ../client/pk-monitor.c:130
+#: ../client/pk-console.c:2030
+#: ../client/pk-console-test.c:1098
+#: ../client/pk-monitor.c:130
 msgid "Show the program version and exit"
 msgstr "Mostrar a versão da aplicação e terminar"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1791
+#: ../client/pk-console.c:2033
+#: ../client/pk-console-test.c:1101
 msgid "Set the filter, e.g. installed"
 msgstr "Configurar o filtro, exemplo, instalado"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1794
+#: ../client/pk-console.c:2036
+#: ../client/pk-console-test.c:1104
 msgid "Exit without waiting for actions to complete"
 msgstr "Sair sem esperar que as acções completem"
 
 #. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:1821
+#: ../client/pk-console.c:2063
 msgid "This tool could not connect to system DBUS."
 msgstr "Esta ferramenta não conseguiu ligar ao sistema DBUS."
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1911
+#: ../client/pk-console.c:2153
+#: ../client/pk-console-test.c:1179
 msgid "The filter specified was invalid"
 msgstr "O filtro especificado era inválido"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1930
+#: ../client/pk-console.c:2172
+#: ../client/pk-console-test.c:1198
 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:1937 ../client/pk-console.c:1946
-#: ../client/pk-console.c:1955 ../client/pk-console.c:1964
+#: ../client/pk-console.c:2179
+#: ../client/pk-console.c:2188
+#: ../client/pk-console.c:2197
+#: ../client/pk-console.c:2206
+#: ../client/pk-console-test.c:1205
+#: ../client/pk-console-test.c:1217
+#: ../client/pk-console-test.c:1229
+#: ../client/pk-console-test.c:1241
 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:1971
+#: ../client/pk-console.c:2213
+#: ../client/pk-console-test.c:1251
 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:1977
+#: ../client/pk-console.c:2219
 msgid "A package name or filename to install is required"
 msgstr "É necessário um nome de pacote ou nome de ficheiro a instalar"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1986
+#: ../client/pk-console.c:2228
+#: ../client/pk-console-test.c:1278
 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:1995
+#: ../client/pk-console.c:2237
+#: ../client/pk-console-test.c:1289
 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:2003
+#: ../client/pk-console.c:2245
+#: ../client/pk-console-test.c:1298
 msgid "A destination directory and the package names to download are required"
-msgstr ""
-"São necessários uma directoria de destino assim como os nomes dos pacotes a "
-"transferir"
+msgstr "São necessários uma directoria de destino assim como os nomes dos pacotes a transferir"
 
 #. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:2010
+#: ../client/pk-console.c:2252
+#: ../client/pk-console-test.c:1305
 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:2018
+#: ../client/pk-console.c:2260
+#: ../client/pk-console-test.c:1314
 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:2028
+#: ../client/pk-console.c:2270
+#: ../client/pk-console-test.c:1325
 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:2045
+#: ../client/pk-console.c:2287
+#: ../client/pk-console-test.c:1346
 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:2054 ../client/pk-console.c:2063
+#: ../client/pk-console.c:2296
+#: ../client/pk-console.c:2305
+#: ../client/pk-console-test.c:1357
+#: ../client/pk-console-test.c:1368
 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:2072
+#: ../client/pk-console.c:2314
+#: ../client/pk-console-test.c:1379
 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:2086
+#: ../client/pk-console.c:2328
+#: ../client/pk-console-test.c:1397
 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:2093
+#: ../client/pk-console.c:2335
+#: ../client/pk-console-test.c:1404
 msgid "A correct role is required"
 msgstr "É necessária uma função correcta"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2100
+#: ../client/pk-console.c:2342
+#: ../client/pk-console-test.c:1411
 msgid "Failed to get the time since this action was last completed"
-msgstr ""
-"Não foi possível obter a hora da última vez que esta acção foi concluída"
+msgstr "Não foi possível obter a hora da última vez que esta acção foi concluída"
 
 #. TRANSLATORS: The user did not provide a package name
 #. TRANSLATORS: This is when the user fails to supply the package name
-#: ../client/pk-console.c:2110 ../client/pk-console.c:2122
-#: ../client/pk-console.c:2131 ../client/pk-console.c:2149
-#: ../client/pk-console.c:2158 ../client/pk-generate-pack.c:241
+#: ../client/pk-console.c:2352
+#: ../client/pk-console.c:2364
+#: ../client/pk-console.c:2373
+#: ../client/pk-console.c:2391
+#: ../client/pk-console.c:2400
+#: ../client/pk-console-test.c:1421
+#: ../client/pk-console-test.c:1436
+#: ../client/pk-console-test.c:1445
+#: ../client/pk-console-test.c:1465
+#: ../client/pk-console-test.c:1474
+#: ../client/pk-generate-pack.c:243
 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:2140
+#: ../client/pk-console.c:2382
+#: ../client/pk-console-test.c:1454
 msgid "A package provide string is required"
-msgstr ""
-"É necessário especificar a string que define o que o pacote disponibiliza"
+msgstr "É necessário especificar a string que define o que o pacote disponibiliza"
 
 #. TRANSLATORS: The user didn't specify a filename to create as a list
-#: ../client/pk-console.c:2167
+#: ../client/pk-console.c:2409
 msgid "A list file name to create is required"
 msgstr "É necessário indicar o nome do ficheiro a criar com a lista"
 
 #. TRANSLATORS: The user didn't specify a filename to open as a list
-#: ../client/pk-console.c:2177 ../client/pk-console.c:2187
+#: ../client/pk-console.c:2419
+#: ../client/pk-console.c:2429
 msgid "A list file to open is required"
 msgstr "É necessária uma lista de ficheiros"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2241
+#: ../client/pk-console.c:2483
+#: ../client/pk-console-test.c:1534
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "A opção '%s' não é suportada"
 
 #. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2254
+#: ../client/pk-console.c:2496
 msgid "Incorrect privileges for this operation"
 msgstr "Privilégios incorrectos para esta operação"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2257
+#. /* TRANSLATORS: User does not have permission to do this */
+#. g_print ("%s\n", _("Incorrect privileges for this operation"));
+#. TRANSLATORS: Generic failure of what they asked to do
+#: ../client/pk-console.c:2499
+#: ../client/pk-console-test.c:1546
 msgid "Command failed"
 msgstr "Comando falhou"
 
+#. TRANSLATORS: more than one package could be found that matched, to follow is a list of possible packages
+#: ../client/pk-console-test.c:521
+#: ../client/pk-tools-common.c:131
+msgid "More than one package matches:"
+msgstr "Mais do que um pacote corresponde:"
+
+#. TRANSLATORS: This finds out which package in the list to use
+#: ../client/pk-console-test.c:530
+#: ../client/pk-tools-common.c:138
+msgid "Please choose the correct package: "
+msgstr "Por favor, escolha o pacote correcto:"
+
+#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
+#: ../client/pk-console-test.c:730
+#, c-format
+msgid "This tool could not find the available package: %s"
+msgstr "Esta ferramenta não conseguiu encontrar o pacote: %s"
+
+#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
+#: ../client/pk-console-test.c:758
+#, 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-test.c:786
+#: ../client/pk-console-test.c:814
+#, c-format
+msgid "This tool could not find the package: %s"
+msgstr "Esta ferramenta não conseguiu encontrar o pacote: %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-test.c:842
+#: ../client/pk-console-test.c:868
+#: ../client/pk-console-test.c:894
+#: ../client/pk-console-test.c:920
+#: ../client/pk-console-test.c:946
+#, c-format
+msgid "This tool could not find all the packages: %s"
+msgstr "Esta ferramenta não conseguiu encontrar todos os pacotes: %s"
+
+#. TRANSLATORS: the user did not specify what they wanted to install
+#: ../client/pk-console-test.c:1257
+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-test.c:1266
+msgid "A filename to install is required"
+msgstr "É necessário um nome de ficheiro a instalar"
+
 #. TRANSLATORS: This is the state of the transaction
-#: ../client/pk-generate-pack.c:101
+#: ../client/pk-generate-pack.c:103
 msgid "Downloading"
 msgstr "A transferir"
 
 #. TRANSLATORS: This is when the main packages are being downloaded
-#: ../client/pk-generate-pack.c:121
+#: ../client/pk-generate-pack.c:123
 msgid "Downloading packages"
 msgstr "A transferir pacotes"
 
 #. TRANSLATORS: This is when the dependency packages are being downloaded
-#: ../client/pk-generate-pack.c:126
+#: ../client/pk-generate-pack.c:128
 msgid "Downloading dependencies"
 msgstr "A transferir dependências"
 
 #. TRANSLATORS: we can exclude certain packages (glibc) when we know they'll exist on the target
-#: ../client/pk-generate-pack.c:188
+#: ../client/pk-generate-pack.c:190
 msgid "Set the file name of dependencies to be excluded"
 msgstr "Indique o nome do ficheiro para a lista de dependências a excluir"
 
 #. TRANSLATORS: the output location
-#: ../client/pk-generate-pack.c:191
-msgid ""
-"The output file or directory (the current directory is used if ommitted)"
-msgstr ""
-"O ficheiro ou directório de destino (se omitido, é utilizado o directório "
-"actual)"
+#: ../client/pk-generate-pack.c:193
+msgid "The output file or directory (the current directory is used if ommitted)"
+msgstr "O ficheiro ou directório de destino (se omitido, é utilizado o directório actual)"
 
 #. TRANSLATORS: put a list of packages in the pack
-#: ../client/pk-generate-pack.c:194
+#: ../client/pk-generate-pack.c:196
 msgid "The package to be put into the service pack"
 msgstr "O pacote para colocar no \"service pack\""
 
 #. TRANSLATORS: put all pending updates in the pack
-#: ../client/pk-generate-pack.c:197
+#: ../client/pk-generate-pack.c:199
 msgid "Put all updates available in the service pack"
 msgstr "Colocar todas as actualizações disponíveis no \"service pack\""
 
 #. TRANSLATORS: This is when the user fails to supply the correct arguments
-#: ../client/pk-generate-pack.c:225
+#: ../client/pk-generate-pack.c:227
 msgid "Neither --package or --updates option selected."
 msgstr "Nenhuma das opções, --package ou --updates, foi seleccionada."
 
 #. TRANSLATORS: This is when the user fails to supply just one argument
-#: ../client/pk-generate-pack.c:233
+#: ../client/pk-generate-pack.c:235
 msgid "Both options selected."
 msgstr "Seleccionou ambas as opções"
 
 #. TRANSLATORS: This is when the user fails to supply the output
-#: ../client/pk-generate-pack.c:249
+#: ../client/pk-generate-pack.c:251
 msgid "A output directory or file name is required"
 msgstr "É necessário um directório de destino ou nome de ficheiro"
 
 #. TRANSLATORS: This is when the backend doesn't have the capability to get-depends
 #. TRANSLATORS: This is when the backend doesn't have the capability to download
-#: ../client/pk-generate-pack.c:267 ../client/pk-generate-pack.c:273
+#: ../client/pk-generate-pack.c:269
+#: ../client/pk-generate-pack.c:275
 msgid "The package manager cannot perform this type of operation."
 msgstr "O gestor de pacotes não pode realizar este tipo de operação."
 
 #. TRANSLATORS: This is when the distro didn't include libarchive support into PK
-#: ../client/pk-generate-pack.c:280
-msgid ""
-"Service packs cannot be created as PackageKit was not built with libarchive "
-"support."
-msgstr ""
-"\"Service packs\" não podem ser criados pois o PackageKit não foi criado com "
-"suporte a libarchive."
+#: ../client/pk-generate-pack.c:282
+msgid "Service packs cannot be created as PackageKit was not built with libarchive support."
+msgstr "\"Service packs\" não podem ser criados pois o PackageKit não foi criado com suporte a libarchive."
 
 #. TRANSLATORS: the user specified an absolute path, but didn't get the extension correct
-#: ../client/pk-generate-pack.c:291
+#: ../client/pk-generate-pack.c:293
 msgid "If specifying a file, the service pack name must end with"
-msgstr ""
-"Se especificar um ficheiro, o nome do \"service pack\" tem de terminar com"
+msgstr "Se especificar um ficheiro, o nome do \"service pack\" tem de terminar com"
 
 #. TRANSLATORS: This is when file already exists
-#: ../client/pk-generate-pack.c:307
+#: ../client/pk-generate-pack.c:309
 msgid "A pack with the same name already exists, do you want to overwrite it?"
 msgstr "Um \"service pack\" com esse nome já existe. Deseja substituí-lo?"
 
 #. TRANSLATORS: This is when the pack was not overwritten
-#: ../client/pk-generate-pack.c:310
+#: ../client/pk-generate-pack.c:312
 msgid "The pack was not overwritten."
 msgstr "O \"service pack\" não foi substituído."
 
 #. TRANSLATORS: This is when the temporary directory cannot be created, the directory name follows
-#: ../client/pk-generate-pack.c:323
+#: ../client/pk-generate-pack.c:325
 msgid "Failed to create directory:"
 msgstr "Criação da directoria falhou:"
 
 #. TRANSLATORS: This is when the list of packages from the remote computer cannot be opened
-#: ../client/pk-generate-pack.c:333
+#: ../client/pk-generate-pack.c:335
 msgid "Failed to open package list."
 msgstr "Impossível abrir a lista de pacotes"
 
 #. TRANSLATORS: The package name is being matched up to available packages
-#: ../client/pk-generate-pack.c:344
+#: ../client/pk-generate-pack.c:346
 msgid "Finding package name."
 msgstr "A procurar o nome do pacote."
 
 #. TRANSLATORS: This is when the package cannot be found in any software source. The detailed error follows
-#: ../client/pk-generate-pack.c:348
+#: ../client/pk-generate-pack.c:350
 #, c-format
 msgid "Failed to find package '%s': %s"
 msgstr "Não foi possível encontrar o pacote '%s': %s"
 
 #. TRANSLATORS: This is telling the user we are in the process of making the pack
-#: ../client/pk-generate-pack.c:365
+#: ../client/pk-generate-pack.c:367
 msgid "Creating service pack..."
 msgstr "A criar o \"service pack\"..."
 
 #. TRANSLATORS: we succeeded in making the file
-#: ../client/pk-generate-pack.c:372
+#: ../client/pk-generate-pack.c:374
 #, c-format
 msgid "Service pack created '%s'"
 msgstr "\"Service pack\" criado '%s'"
 
 #. TRANSLATORS: we failed to make te file
-#: ../client/pk-generate-pack.c:377
+#: ../client/pk-generate-pack.c:379
 #, c-format
 msgid "Failed to create '%s': %s"
 msgstr "Não foi possível criar '%s': %s"
@@ -820,27 +1031,104 @@ msgstr "Monitorizar o PackageKit"
 msgid "Cannot show the list of transactions"
 msgstr "Impossível mostrar a lista de transacções"
 
-#. TRANSLATORS: The package was not found in any software sources
-#: ../client/pk-tools-common.c:118
-#, c-format
-msgid "The package could not be found"
-msgstr "O pacote não foi encontrado"
+#. ask the user
+#: ../client/pk-task-text.c:64
+msgid "Do you want to allow installing of unsigned software?"
+msgstr "Deseja permitir a instalação de software não assinado?"
 
-#. TRANSLATORS: more than one package could be found that matched, to follow is a list of possible packages
-#: ../client/pk-tools-common.c:130
-msgid "More than one package matches:"
-msgstr "Mais do que um pacote corresponde:"
+#: ../client/pk-task-text.c:68
+msgid "The unsigned software will not be installed."
+msgstr "O software não assinado não será instalado."
 
-#. TRANSLATORS: This finds out which package in the list to use
-#: ../client/pk-tools-common.c:137
-msgid "Please choose the correct package: "
-msgstr "Por favor, escolha o pacote correcto:"
+#: ../client/pk-task-text.c:100
+msgid "Software source signature required"
+msgstr "A assinatura do repositório é necessária"
+
+#: ../client/pk-task-text.c:102
+msgid "Software source name"
+msgstr "O nome da origem do software"
+
+#: ../client/pk-task-text.c:103
+msgid "Key URL"
+msgstr "URL Chave"
+
+#: ../client/pk-task-text.c:104
+msgid "Key user"
+msgstr "Utilizador Chave"
+
+#: ../client/pk-task-text.c:105
+msgid "Key ID"
+msgstr "ID da Chave"
+
+#: ../client/pk-task-text.c:106
+msgid "Key fingerprint"
+msgstr "Impressão Digital da Chave"
+
+#: ../client/pk-task-text.c:107
+msgid "Key Timestamp"
+msgstr "timestamp da Chave"
+
+#: ../client/pk-task-text.c:151
+msgid "End user licence agreement required"
+msgstr "O acordo de licenciamento com o utilizador final é necessário"
+
+#: ../client/pk-task-text.c:152
+msgid "EULA ID"
+msgstr "ID da EULA"
 
-#: ../client/pk-tools-common.c:162
+#: ../client/pk-task-text.c:155
+msgid "Agreement"
+msgstr "Acordo"
+
+#. ask the user
+#: ../client/pk-task-text.c:161
+msgid "Do you accept this agreement?"
+msgstr "Aceita este acordo?"
+
+#: ../client/pk-task-text.c:165
+msgid "The agreement was not accepted."
+msgstr "O acordo não foi aceite."
+
+#: ../client/pk-task-text.c:194
+msgid "Media change required"
+msgstr "É necessário mudar o suporte"
+
+#: ../client/pk-task-text.c:195
+msgid "Media type"
+msgstr "Tipo de Suporte"
+
+#: ../client/pk-task-text.c:196
+msgid "Media ID"
+msgstr "ID do Suporte:"
+
+#: ../client/pk-task-text.c:197
+msgid "Text"
+msgstr "Texto"
+
+#. ask the user
+#: ../client/pk-task-text.c:201
+msgid "Please insert the correct media"
+msgstr "Por favor, insira o suporte correcto"
+
+#: ../client/pk-task-text.c:205
+msgid "The correct media was not inserted."
+msgstr "Não foi inserido o suporte correcto."
+
+#: ../client/pk-task-text.c:303
+msgid "The transaction did not proceed."
+msgstr "A transacção não prosseguiu."
+
+#: ../client/pk-text.c:50
 #, c-format
 msgid "Please enter a number from 1 to %i: "
 msgstr "Por favor insira um número de 1 a %i: "
 
+#. TRANSLATORS: The package was not found in any software sources
+#: ../client/pk-tools-common.c:119
+#, c-format
+msgid "The package could not be found"
+msgstr "O pacote não foi encontrado"
+
 #. TRANSLATORS: when we are getting data from the daemon
 #: ../contrib/browser-plugin/pk-plugin-install.c:466
 msgid "Getting package information..."
@@ -903,9 +1191,7 @@ msgstr "A descarregar detalhes acerca das fontes do software."
 #. TRANSLATORS: downloading file lists so we can search
 #: ../contrib/command-not-found/pk-command-not-found.c:353
 msgid "Downloading filelists (this may take some time to complete)."
-msgstr ""
-"A descarregar lista de ficheiros (isto pode demorar algum tempo para "
-"concluir)."
+msgstr "A descarregar lista de ficheiros (isto pode demorar algum tempo para concluir)."
 
 #. TRANSLATORS: waiting for native lock
 #: ../contrib/command-not-found/pk-command-not-found.c:357
@@ -998,277 +1284,263 @@ msgid "Failed to find the package %s, or already installed: %s"
 msgstr "Não foi possível encontrar o pacote %s, ou já está instalado: %s"
 
 #. command line argument, simulate what would be done, but don't actually do it
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:553
-msgid ""
-"Don't actually install any packages, only simulate what would be installed"
-msgstr ""
-"Não instala realmente nenhum pacote, apenas simula o que seria instalado."
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:552
+msgid "Don't actually install any packages, only simulate what would be installed"
+msgstr "Não instala realmente nenhum pacote, apenas simula o que seria instalado."
 
 #. command line argument, do we skip packages that depend on the ones specified
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:556
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:555
 msgid "Do not install dependencies of the core packages"
 msgstr "Não instala dependências dos pacotes principais."
 
 #. command line argument, do we operate quietly
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:559
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:558
 msgid "Do not display information or progress"
 msgstr "Não apresenta informação ou progresso"
 
 #. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:577
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:576
 msgid "PackageKit Debuginfo Installer"
 msgstr "Instalador de Dados de Depuração do PackageKit"
 
 #. TRANSLATORS: the use needs to specify a list of package names on the command line
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:589
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:588
 #, c-format
 msgid "ERROR: Specify package names to install."
 msgstr "ERRO: Especifique nomes de pacotes para instalar."
 
 #. TRANSLATORS: we are getting the list of repositories
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:623
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:622
 #, c-format
 msgid "Getting sources list"
 msgstr "A obter a lista de fontes"
 
 #. TRANSLATORS: all completed 100%
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:641
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:681
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:716
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:800
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:844
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:911
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:955
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:640
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:680
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:715
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:799
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:843
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:910
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:954
 #, c-format
 msgid "OK."
 msgstr "OK."
 
 #. TRANSLATORS: tell the user what we found
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:644
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:643
 #, c-format
 msgid "Found %i enabled and %i disabled sources."
 msgstr "foram encontradas %i fontes activas e %i desactivadas."
 
 #. TRANSLATORS: we're finding repositories that match out pattern
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:651
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:650
 #, c-format
 msgid "Finding debugging sources"
 msgstr "A procurar fontes de depuração"
 
 #. TRANSLATORS: tell the user what we found
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:684
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:683
 #, c-format
 msgid "Found %i disabled debuginfo repos."
 msgstr "Foram encontrados %i repositórios desactivados de dados de depuração."
 
 #. TRANSLATORS: we're now enabling all the debug sources we found
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:691
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:690
 #, c-format
 msgid "Enabling debugging sources"
 msgstr "A activar fontes de depuração"
 
 #. TRANSLATORS: operation was not successful
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:701
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:785
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:829
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:896
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:940
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:700
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:784
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:828
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:895
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:939
 msgid "FAILED."
 msgstr "FALHOU."
 
 #. TRANSLATORS: tell the user how many we enabled
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:719
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:718
 #, c-format
 msgid "Enabled %i debugging sources."
 msgstr "Activadas %i fontes de depuração."
 
 #. TRANSLATORS: we're now finding packages that match in all the repos
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:726
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:725
 #, c-format
 msgid "Finding debugging packages"
 msgstr "A procurar pacotes de depuração"
 
 #. TRANSLATORS: we couldn't find the package name, non-fatal
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:738
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:737
 #, c-format
 msgid "Failed to find the package %s: %s"
 msgstr "Não foi possível encontrar o pacote %s: %s"
 
 #. TRANSLATORS: we couldn't find the debuginfo package name, non-fatal
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:761
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:760
 #, c-format
 msgid "Failed to find the debuginfo package %s: %s"
 msgstr "Não foi possível encontrar o pacote de dados de depuração %s: %s"
 
 #. TRANSLATORS: no debuginfo packages could be found to be installed
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:789
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:788
 #, c-format
 msgid "Found no packages to install."
 msgstr "Não foram encontrados pacotes para instalar."
 
 #. TRANSLATORS: tell the user we found some packages, and then list them
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:803
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:802
 #, c-format
 msgid "Found %i packages:"
 msgstr "Encontrados %i pacotes:"
 
 #. TRANSLATORS: tell the user we are searching for deps
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:819
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:818
 #, c-format
 msgid "Finding packages that depend on these packages"
 msgstr "Procura pacotes que dependem destes pacotes"
 
 #. TRANSLATORS: could not install, detailed error follows
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:832
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:831
 #, c-format
 msgid "Could not find dependant packages: %s"
 msgstr "Não foi possível encontrar pacotes de dependências: %s"
 
 #. TRANSLATORS: tell the user we found some more packages
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:848
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:847
 #, c-format
 msgid "Found %i extra packages."
 msgstr "Encontrados %i pacotes extra."
 
 #. TRANSLATORS: tell the user we found some more packages
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:852
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:851
 #, c-format
 msgid "No extra packages required."
 msgstr "Não são necessários pacotes extra."
 
 #. TRANSLATORS: tell the user we found some packages (and deps), and then list them
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:861
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:860
 #, c-format
 msgid "Found %i packages to install:"
 msgstr "Encontrados %i pacotes para instalar:"
 
 #. TRANSLATORS: simulate mode is a testing mode where we quit before the action
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:874
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:873
 #, c-format
 msgid "Not installing packages in simulate mode"
 msgstr "No modo de simulação não se instalam pacotes"
 
 #. TRANSLATORS: could not install, detailed error follows
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:899
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:898
 #, c-format
 msgid "Could not install packages: %s"
 msgstr "Não foi possível instalar pacotes: %s"
 
 #. TRANSLATORS: we are now disabling all debuginfo repos we previously enabled
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:931
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:930
 #, c-format
 msgid "Disabling sources previously enabled"
 msgstr "A desactivar fontes previamente activas"
 
 #. TRANSLATORS: no debuginfo packages could be found to be installed, detailed error follows
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:943
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:942
 #, c-format
 msgid "Could not disable the debugging sources: %s"
 msgstr "Não foi possível desactivar as fontes de dados de depuração: %s"
 
 #. TRANSLATORS: we disabled all the debugging repos that we enabled before
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:958
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:957
 #, c-format
 msgid "Disabled %i debugging sources."
 msgstr "Desactivadas %i fontes de depuração."
 
 #. TRANSLATORS: couldn't open device to write
 #: ../contrib/device-rebind/pk-device-rebind.c:61
-#, fuzzy
 msgid "Failed to open file"
-msgstr "Não foi possível encontrar o ficheiro"
+msgstr "Falha ao abrir ficheiro"
 
 #. TRANSLATORS: could not write to the device
 #: ../contrib/device-rebind/pk-device-rebind.c:70
-#, fuzzy
 msgid "Failed to write to the file"
-msgstr "Não foi possível encontrar o ficheiro"
+msgstr "Falha ao escrever para o ficheiro"
 
 #. TRANSLATORS: we failed to release the current driver
 #: ../contrib/device-rebind/pk-device-rebind.c:110
 #: ../contrib/device-rebind/pk-device-rebind.c:147
-#, fuzzy
 msgid "Failed to write to device"
-msgstr "A gravação para disco falhou"
+msgstr "Incapaz de escrever no dispositivo"
 
 #. TRANSLATORS: the device could not be found in sysfs
 #: ../contrib/device-rebind/pk-device-rebind.c:175
-#, fuzzy
 msgid "Device could not be found"
-msgstr "O pacote não foi encontrado"
+msgstr "O dispositivo não foi encontrado"
 
 #. TRANSLATORS: we failed to release the current driver
 #: ../contrib/device-rebind/pk-device-rebind.c:202
-#, fuzzy
 msgid "Failed to unregister driver"
-msgstr "Criação da directoria falhou:"
+msgstr "Falhou a remoção do controlador"
 
 #. TRANSLATORS: we failed to bind the old driver
 #: ../contrib/device-rebind/pk-device-rebind.c:211
-#, fuzzy
 msgid "Failed to register driver"
-msgstr "Criação da directoria falhou:"
+msgstr "Falhou o registo do controlador."
 
 #. TRANSLATORS: user did not specify a device sysfs path that exists
 #: ../contrib/device-rebind/pk-device-rebind.c:260
-#, fuzzy
 msgid "Device path not found"
-msgstr "Directório não encontrado"
+msgstr "Caminho do dispositivo não encontrado"
 
 #. TRANSLATORS: user did not specify a valid device sysfs path
 #: ../contrib/device-rebind/pk-device-rebind.c:268
 msgid "Incorrect device path specified"
-msgstr ""
+msgstr "Foi especificado um caminho incorrecto para o dispositivo"
 
 #. command line argument, simulate what would be done, but don't actually do it
 #: ../contrib/device-rebind/pk-device-rebind.c:296
-#, fuzzy
 msgid "Don't actually touch the hardware, only simulate what would be done"
-msgstr ""
-"Não instala realmente nenhum pacote, apenas simula o que seria instalado."
+msgstr "Não altera realmente o hardware, apenas simula o que seria feito"
 
 #. TRANSLATORS: command line option: a list of files to install
 #: ../contrib/device-rebind/pk-device-rebind.c:299
 msgid "Device paths"
-msgstr ""
+msgstr "Caminhos dos dispositivos"
 
 #. TRANSLATORS: tool that gets called when the device needs reloading after installing firmware
 #: ../contrib/device-rebind/pk-device-rebind.c:314
-#, fuzzy
 msgid "PackageKit Device Reloader"
-msgstr "PackageKit Service Pack"
+msgstr ""
 
 #. TRANSLATORS: user did not specify a valid device sysfs path
 #: ../contrib/device-rebind/pk-device-rebind.c:322
 msgid "You need to specify at least one valid device path"
-msgstr ""
+msgstr "Tem de especificar pelo menos um caminho válido para um dispositivo"
 
 #. TRANSLATORS: user did not specify a valid device sysfs path
 #: ../contrib/device-rebind/pk-device-rebind.c:332
 msgid "This script can only be used by the root user"
-msgstr ""
+msgstr "Este script apenas pode ser utilizado pelo utilizador root"
 
 #. TRANSLATORS: we're going to verify the path first
 #: ../contrib/device-rebind/pk-device-rebind.c:341
 msgid "Verifying device path"
-msgstr ""
+msgstr "A verificar o caminho para o dispositivo"
 
 #. TRANSLATORS: user did not specify a device sysfs path that exists
 #: ../contrib/device-rebind/pk-device-rebind.c:346
-#, fuzzy
 msgid "Failed to verify device path"
-msgstr "Não foi possível encontrar o ficheiro"
+msgstr "Falha ao verificar caminho do dispositivo"
 
 #. TRANSLATORS: we're going to try
 #: ../contrib/device-rebind/pk-device-rebind.c:360
 msgid "Attempting to rebind device"
-msgstr ""
+msgstr "A tentar re-associar dispositivo"
 
 #. TRANSLATORS: we failed to release the current driver
 #: ../contrib/device-rebind/pk-device-rebind.c:365
-#, fuzzy
 msgid "Failed to rebind device"
-msgstr "Criação da directoria falhou:"
+msgstr "Falha ao recarregar o dispositivo"
 
 #: ../data/packagekit-catalog.xml.in.h:1
 msgid "PackageKit Catalog"
@@ -1297,23 +1569,16 @@ msgid "Authentication is required to accept a EULA"
 msgstr "Autenticação é necessária para aceitar a EULA"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:9
-msgid ""
-"Authentication is required to cancel a task that was not started by yourself"
-msgstr ""
-"Autenticação é necessária para cancelar uma tarefa que não foi iniciada por "
-"si"
+msgid "Authentication is required to cancel a task that was not started by yourself"
+msgstr "Autenticação é necessária para cancelar uma tarefa que não foi iniciada por si"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:10
 msgid "Authentication is required to change software source parameters"
 msgstr "Autenticação é necessária para alterar parâmetros do código fonte"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:11
-msgid ""
-"Authentication is required to consider a key used for signing packages as "
-"trusted"
-msgstr ""
-"Autenticação é necessária para considerar segura uma chave utilizada para "
-"assinar pacotes"
+msgid "Authentication is required to consider a key used for signing packages as trusted"
+msgstr "Autenticação é necessária para considerar segura uma chave utilizada para assinar pacotes"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:12
 msgid "Authentication is required to install a signed package"
@@ -1328,9 +1593,8 @@ msgid "Authentication is required to refresh the system sources"
 msgstr "Autenticação é necessária para actualizar as fontes do sistema"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:15
-#, fuzzy
 msgid "Authentication is required to reload the device with a new driver"
-msgstr "Autenticação é necessária para actualizar as fontes do sistema"
+msgstr "Autenticação é necessária para recarregar o dispositivo com o novo controlador"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:16
 msgid "Authentication is required to remove packages"
@@ -1341,12 +1605,8 @@ msgid "Authentication is required to rollback a transaction"
 msgstr "Autenticação é necessária para voltar atrás uma transacção"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:18
-msgid ""
-"Authentication is required to set the network proxy used for downloading "
-"packages"
-msgstr ""
-"Autenticação é necessária para configurar o proxy de rede utilizado para "
-"transferir pacotes"
+msgid "Authentication is required to set the network proxy used for downloading packages"
+msgstr "Autenticação é necessária para configurar o proxy de rede utilizado para transferir pacotes"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:19
 msgid "Authentication is required to update packages"
@@ -1407,7 +1667,7 @@ msgstr "Actualizar fontes do sistema"
 #.
 #: ../policy/org.freedesktop.packagekit.policy.in.h:58
 msgid "Reload a device"
-msgstr ""
+msgstr "Recarregar dispositivo"
 
 #. SECURITY:
 #. - Normal users require admin authentication to remove packages as
@@ -1473,18 +1733,12 @@ msgstr "Isto pode acontecer por duas razões:"
 #. TRANSLATORS: only allowed to be owned by root
 #: ../src/pk-main.c:91
 msgid "The correct user is not launching the executable (usually root)"
-msgstr ""
-"O executável não está a ser executado pelo utilizador correcto (usualmente, "
-"o root)"
+msgstr "O executável não está a ser executado pelo utilizador correcto (usualmente, o root)"
 
 #. TRANSLATORS: or we are installed in a prefix
 #: ../src/pk-main.c:93
-msgid ""
-"The org.freedesktop.PackageKit.conf file is not installed in the system "
-"directory:"
-msgstr ""
-"O ficheiro org.freedesktop.PackageKit.conf não está instalado no directório "
-"do sistema:"
+msgid "The org.freedesktop.PackageKit.conf file is not installed in the system directory:"
+msgstr "O ficheiro org.freedesktop.PackageKit.conf não está instalado no directório do sistema:"
 
 #. TRANSLATORS: a backend is the system package tool, e.g. yum, apt
 #: ../src/pk-main.c:205
@@ -1533,40 +1787,34 @@ msgstr "Erro ao tentar iniciar:"
 
 #: ../src/pk-polkit-action-lookup.c:147
 msgid "To install debugging packages, extra sources need to be enabled"
-msgstr ""
-"Para instalar pacotes de depuração, fontes extra precisam de ser activadas"
+msgstr "Para instalar pacotes de depuração, fontes extra precisam de ser activadas"
 
 #. TRANSLATORS: is not GPG signed
-#: ../src/pk-polkit-action-lookup.c:168 ../src/pk-polkit-action-lookup.c:187
+#: ../src/pk-polkit-action-lookup.c:168
+#: ../src/pk-polkit-action-lookup.c:187
 msgid "The software is not from a trusted source."
 msgstr "O software não é de uma origem de confiança."
 
 #: ../src/pk-polkit-action-lookup.c:173
 msgid "Do not update this package unless you are sure it is safe to do so."
-msgstr ""
-"Não actualize este pacote a não ser que tenha a certeza que é seguro fazê-lo."
+msgstr "Não actualize este pacote a não ser que tenha a certeza que é seguro fazê-lo."
 
 #: ../src/pk-polkit-action-lookup.c:174
 msgid "Do not update these packages unless you are sure it is safe to do so."
-msgstr ""
-"Não actualize estes pacotes a não ser que tenha a certeza que é seguro fazê-"
-"lo."
+msgstr "Não actualize estes pacotes a não ser que tenha a certeza que é seguro fazê-lo."
 
 #: ../src/pk-polkit-action-lookup.c:192
 msgid "Do not install this package unless you are sure it is safe to do so."
-msgstr ""
-"Não instale este pacote a não ser que tenha a certeza que é seguro fazê-lo."
+msgstr "Não instale este pacote a não ser que tenha a certeza que é seguro fazê-lo."
 
 #: ../src/pk-polkit-action-lookup.c:193
 msgid "Do not install these packages unless you are sure it is safe to do so."
-msgstr ""
-"Não instale estes pacotes a não ser que tenha a certeza que é seguro fazê-lo."
+msgstr "Não instale estes pacotes a não ser que tenha a certeza que é seguro fazê-lo."
 
 #. TRANSLATORS: warn the user that all bets are off
 #: ../src/pk-polkit-action-lookup.c:199
 msgid "Malicious software can damage your computer or cause other harm."
-msgstr ""
-"Software malicioso pode danificar o seu computador ou causar outros danos."
+msgstr "Software malicioso pode danificar o seu computador ou causar outros danos."
 
 #. TRANSLATORS: too many packages to list each one
 #: ../src/pk-polkit-action-lookup.c:274
@@ -1577,3 +1825,4 @@ msgstr "Muitos pacotes"
 #: ../src/pk-polkit-action-lookup.c:334
 msgid "Only trusted"
 msgstr "Apenas de confiança"
+
commit cde9d5e8b7cacf015ebcb45f660d03d7b07df209
Merge: bec3832... 7fabf88...
Author: Valeriy Lyasotskiy <onestep at ukr.net>
Date:   Sat Sep 5 03:33:11 2009 +0300

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

commit 7fabf88087e2439a55bfcc6e8241db313dcc9e2f
Author: Anders F Bjorklund <afb at users.sourceforge.net>
Date:   Sat Sep 5 00:16:51 2009 +0200

    trivial: even more indentation fixups

diff --git a/backends/ports/portsBackend.rb b/backends/ports/portsBackend.rb
index 340d666..54fa890 100755
--- a/backends/ports/portsBackend.rb
+++ b/backends/ports/portsBackend.rb
@@ -275,21 +275,21 @@ GROUPS = {
        STDERR.puts e.message
        exit 1
     end
-rescue PortsDB::IndexFileError
-  error(ERROR_INTERNAL_ERROR, "Error reading the ports INDEX.", false)
-rescue PortsDB::DBError
-  error(ERROR_INTERNAL_ERROR, "Error reading the ports database.", false)
-end
+  rescue PortsDB::IndexFileError
+    error(ERROR_INTERNAL_ERROR, "Error reading the ports INDEX.", false)
+  rescue PortsDB::DBError
+    error(ERROR_INTERNAL_ERROR, "Error reading the ports database.", false)
+  end
 
-def get_repo_list(filters)
+  def get_repo_list(filters)
     status(STATUS_INFO)
     repo_detail("ports", "FreeBSD Ports", enabled=true)
-end
+  end
 
-def resolve(filters, packages)
+  def resolve(filters, packages)
     status(STATUS_QUERY)
     _resolve(filters, packages)
-end
+  end
 
   def _resolve(filters, packages)
     filterlist = filters.split(';')
@@ -584,13 +584,13 @@ VXQUERY = "#{PREFIX}/bin/vxquery"
 VULN_XML = 'vuln.xml'
 
   def _match_range(range, version)
-   cmp = PkgVersion.new(version.to_s) <=> PkgVersion.new(range.text)
-   return true if range.name == 'lt' && cmp <  0
-   return true if range.name == 'le' && cmp <= 0
-   return true if range.name == 'eq' && cmp == 0
-   return true if range.name == 'ge' && cmp >= 0
-   return true if range.name == 'gt' && cmp >  0
-   return false
+    cmp = PkgVersion.new(version.to_s) <=> PkgVersion.new(range.text)
+    return true if range.name == 'lt' && cmp <  0
+    return true if range.name == 'le' && cmp <= 0
+    return true if range.name == 'eq' && cmp == 0
+    return true if range.name == 'ge' && cmp >= 0
+    return true if range.name == 'gt' && cmp >  0
+    return false
   end
 
   def _vuxml(name, oldversion=nil, newversion=nil)
@@ -1021,31 +1021,31 @@ end
 #######################################################################
 
 def to_b(string)
-    return true if string == true || string =~ /^true$/i
-    return false if string == false || string.nil? || string =~ /^false$/i
-    return true if string == "yes"
-    return false if string == "no"
-    raise ArgumentError.new("invalid value for bool: \"#{string}\"")
+  return true if string == true || string =~ /^true$/i
+  return false if string == false || string.nil? || string =~ /^false$/i
+  return true if string == "yes"
+  return false if string == "no"
+  raise ArgumentError.new("invalid value for bool: \"#{string}\"")
 end
 
 # Returns a package id.
 def get_package_id(name, version, arch, data)
-    return [name, version, arch, data].join(';')
+  return [name, version, arch, data].join(';')
 end
 
 # Returns an array with the name, version, arch, data of a package id.
 def split_package_id(id)
-    return id.split(';', 4)
+  return id.split(';', 4)
 end
 
 #######################################################################
 
 def main(argv)
-    init_global
-    init_pkgtools_global
-    backend = PackageKitPortsBackend.new
-    backend.dispatcher(argv)
-    0
+  init_global
+  init_pkgtools_global
+  backend = PackageKitPortsBackend.new
+  backend.dispatcher(argv)
+  0
 end
 
 if $0 == __FILE__
commit c6904e377f04ebda9bf46363ce15f49ed10ee2ad
Author: Anders F Bjorklund <afb at users.sourceforge.net>
Date:   Sat Sep 5 00:05:34 2009 +0200

    trivial: rearrange in ugly order

diff --git a/backends/ports/portsBackend.rb b/backends/ports/portsBackend.rb
index e1f36b6..340d666 100755
--- a/backends/ports/portsBackend.rb
+++ b/backends/ports/portsBackend.rb
@@ -31,18 +31,122 @@ require 'ruby_packagekit/prints'
 PACKAGE_IDS_DELIM = '&'
 FILENAME_DELIM = '|'
 
-# Returns a package id.
-def get_package_id(name, version, arch, data)
-    return [name, version, arch, data].join(';')
+def init_global
+    $pkg_arch = PkgConfig::OS_PLATFORM
 end
 
-# Returns an array with the name, version, arch, data of a package id.
-def split_package_id(id)
-    return id.split(';', 4)
-end
+class PackageKitBaseBackend
+
+  def dispatch_command(cmd, args)
+    case
+    when cmd == 'download-packages'
+        directory = args[0]
+        package_ids = args[1].split(PACKAGE_IDS_DELIM)
+        download_packages(directory, package_ids)
+        finished()
+    when cmd == 'get-packages'
+        filters = args[0]
+        get_packages(filters)
+        finished()
+    when cmd == 'get-repo-list'
+        filters = args[0]
+        get_repo_list(filters)
+        finished()
+    when cmd == 'resolve'
+        filters = args[0]
+        package_ids = args[1].split(PACKAGE_IDS_DELIM)
+        resolve(filters, package_ids)
+        finished()
+    when cmd == 'search-details'
+        options = args[0]
+        searchterms = args[1]
+        search_details(options, searchterms)
+        finished()
+    when cmd == 'search-file'
+        options = args[0]
+        searchterms = args[1]
+        search_file(options, searchterms)
+        finished()
+    when cmd == 'search-group'
+        options = args[0]
+        searchterms = args[1]
+        search_group(options, searchterms)
+        finished()
+    when cmd == 'search-name'
+        options = args[0]
+        searchterms = args[1]
+        search_name(options, searchterms)
+        finished()
+    when cmd == 'get-depends'
+        filters = args[0]
+        package_ids = args[1].split(PACKAGE_IDS_DELIM)
+        recursive = to_b(args[2])
+        get_depends(filters, package_ids, recursive)
+        finished()
+    when cmd == 'get-details'
+        package_ids = args[0].split(PACKAGE_IDS_DELIM)
+        get_details(package_ids)
+        finished()
+    when cmd == 'get-files'
+        package_ids = args[0].split(PACKAGE_IDS_DELIM)
+        get_files(package_ids)
+        finished()
+    when cmd == 'get-requires'
+        filters = args[0]
+        package_ids = args[1].split(PACKAGE_IDS_DELIM)
+        recursive = to_b(args[2])
+        get_requires(filters, package_ids, recursive)
+        finished()
+    when cmd == 'get-update-detail'
+        package_ids = args[0].split(PACKAGE_IDS_DELIM)
+        get_update_detail(package_ids)
+        finished()
+    when cmd == 'get-updates'
+        filters = args[0]
+        get_updates(filters)
+        finished()
+    when cmd == 'install-files'
+        only_trusted = to_b(args[0])
+        files_to_inst = args[1].split(FILENAME_DELIM)
+        install_files(only_trusted, files_to_inst)
+        finished()
+    when cmd == 'install-packages'
+        only_trusted = to_b(args[0])
+        package_ids = args[1].split(PACKAGE_IDS_DELIM)
+        install_packages(only_trusted, package_ids)
+        finished()
+    when cmd == 'refresh-cache'
+        force = to_b(args[0])
+        refresh_cache(force)
+        finished()
+    when cmd == 'remove-packages'
+        allowdeps = to_b(args[0])
+        autoremove = to_b(args[1])
+        package_ids = args[2].split(PACKAGE_IDS_DELIM)
+        remove_packages(allowdeps, autoremove, package_ids)
+        finished()
+    when cmd == 'update-system'
+        only_trusted = to_b(args[0])
+        update_system(only_trusted)
+        finished()
+    else
+        errmsg = "command '#{cmd}' is not known"
+        error(ERROR_INTERNAL_ERROR, errmsg, exit=false)
+        finished()
+    end
+  end
+
+  def dispatcher(args)
+    if args.size > 0
+      dispatch_command(args[0], args[1..-1])
+    else
+      $stdin.each_line do |line|
+        args = line.chomp.split('\t')
+        dispatch_command(args[0], args[1..-1])
+      end
+    end
+  end
 
-def init_global
-    $pkg_arch = PkgConfig::OS_PLATFORM
 end
 
 class PackageKitPortsBackend < PackageKitBaseBackend
@@ -924,118 +1028,14 @@ def to_b(string)
     raise ArgumentError.new("invalid value for bool: \"#{string}\"")
 end
 
-class PackageKitBaseBackend
-
-  def dispatch_command(cmd, args)
-    case
-    when cmd == 'download-packages'
-        directory = args[0]
-        package_ids = args[1].split(PACKAGE_IDS_DELIM)
-        download_packages(directory, package_ids)
-        finished()
-    when cmd == 'get-packages'
-        filters = args[0]
-        get_packages(filters)
-        finished()
-    when cmd == 'get-repo-list'
-        filters = args[0]
-        get_repo_list(filters)
-        finished()
-    when cmd == 'resolve'
-        filters = args[0]
-        package_ids = args[1].split(PACKAGE_IDS_DELIM)
-        resolve(filters, package_ids)
-        finished()
-    when cmd == 'search-details'
-        options = args[0]
-        searchterms = args[1]
-        search_details(options, searchterms)
-        finished()
-    when cmd == 'search-file'
-        options = args[0]
-        searchterms = args[1]
-        search_file(options, searchterms)
-        finished()
-    when cmd == 'search-group'
-        options = args[0]
-        searchterms = args[1]
-        search_group(options, searchterms)
-        finished()
-    when cmd == 'search-name'
-        options = args[0]
-        searchterms = args[1]
-        search_name(options, searchterms)
-        finished()
-    when cmd == 'get-depends'
-        filters = args[0]
-        package_ids = args[1].split(PACKAGE_IDS_DELIM)
-        recursive = to_b(args[2])
-        get_depends(filters, package_ids, recursive)
-        finished()
-    when cmd == 'get-details'
-        package_ids = args[0].split(PACKAGE_IDS_DELIM)
-        get_details(package_ids)
-        finished()
-    when cmd == 'get-files'
-        package_ids = args[0].split(PACKAGE_IDS_DELIM)
-        get_files(package_ids)
-        finished()
-    when cmd == 'get-requires'
-        filters = args[0]
-        package_ids = args[1].split(PACKAGE_IDS_DELIM)
-        recursive = to_b(args[2])
-        get_requires(filters, package_ids, recursive)
-        finished()
-    when cmd == 'get-update-detail'
-        package_ids = args[0].split(PACKAGE_IDS_DELIM)
-        get_update_detail(package_ids)
-        finished()
-    when cmd == 'get-updates'
-        filters = args[0]
-        get_updates(filters)
-        finished()
-    when cmd == 'install-files'
-        only_trusted = to_b(args[0])
-        files_to_inst = args[1].split(FILENAME_DELIM)
-        install_files(only_trusted, files_to_inst)
-        finished()
-    when cmd == 'install-packages'
-        only_trusted = to_b(args[0])
-        package_ids = args[1].split(PACKAGE_IDS_DELIM)
-        install_packages(only_trusted, package_ids)
-        finished()
-    when cmd == 'refresh-cache'
-        force = to_b(args[0])
-        refresh_cache(force)
-        finished()
-    when cmd == 'remove-packages'
-        allowdeps = to_b(args[0])
-        autoremove = to_b(args[1])
-        package_ids = args[2].split(PACKAGE_IDS_DELIM)
-        remove_packages(allowdeps, autoremove, package_ids)
-        finished()
-    when cmd == 'update-system'
-        only_trusted = to_b(args[0])
-        update_system(only_trusted)
-        finished()
-    else
-        errmsg = "command '#{cmd}' is not known"
-        error(ERROR_INTERNAL_ERROR, errmsg, exit=false)
-        finished()
-    end
-  end
-
-  def dispatcher(args)
-    if args.size > 0
-      dispatch_command(args[0], args[1..-1])
-    else
-      $stdin.each_line do |line|
-        args = line.chomp.split('\t')
-        dispatch_command(args[0], args[1..-1])
-      end
-    end
-  end
+# Returns a package id.
+def get_package_id(name, version, arch, data)
+    return [name, version, arch, data].join(';')
+end
 
+# Returns an array with the name, version, arch, data of a package id.
+def split_package_id(id)
+    return id.split(';', 4)
 end
 
 #######################################################################
commit 3c8146491f140ad1dbeebffa0b6c2e4ffce97578
Author: Anders F Bjorklund <afb at users.sourceforge.net>
Date:   Fri Sep 4 23:55:33 2009 +0200

    trivial: move groups to class

diff --git a/backends/ports/portsBackend.rb b/backends/ports/portsBackend.rb
index 162693a..e1f36b6 100755
--- a/backends/ports/portsBackend.rb
+++ b/backends/ports/portsBackend.rb
@@ -41,6 +41,12 @@ def split_package_id(id)
     return id.split(';', 4)
 end
 
+def init_global
+    $pkg_arch = PkgConfig::OS_PLATFORM
+end
+
+class PackageKitPortsBackend < PackageKitBaseBackend
+
 # maps Ports group to PackageKit group
 GROUPS = {
 "accessibility" => GROUP_ACCESSIBILITY,
@@ -136,11 +142,6 @@ GROUPS = {
 "zope" => GROUP_UNKNOWN,
 }
 
-def init_global
-    $pkg_arch = PkgConfig::OS_PLATFORM
-end
-
-class PackageKitPortsBackend < PackageKitBaseBackend
   def get_packages(filters)
     status(STATUS_QUERY)
     filterlist = filters.split(';')
@@ -924,6 +925,7 @@ def to_b(string)
 end
 
 class PackageKitBaseBackend
+
   def dispatch_command(cmd, args)
     case
     when cmd == 'download-packages'
@@ -1033,6 +1035,7 @@ class PackageKitBaseBackend
       end
     end
   end
+
 end
 
 #######################################################################
commit ca2eeff908305237fb888f79e92ca80747c5a9bf
Author: Anders F Bjorklund <afb at users.sourceforge.net>
Date:   Fri Sep 4 23:50:57 2009 +0200

    ports: oopify backend

diff --git a/backends/ports/portsBackend.rb b/backends/ports/portsBackend.rb
index d722b27..162693a 100755
--- a/backends/ports/portsBackend.rb
+++ b/backends/ports/portsBackend.rb
@@ -140,7 +140,8 @@ def init_global
     $pkg_arch = PkgConfig::OS_PLATFORM
 end
 
-def get_packages(filters)
+class PackageKitPortsBackend < PackageKitBaseBackend
+  def get_packages(filters)
     status(STATUS_QUERY)
     filterlist = filters.split(';')
     begin
@@ -185,7 +186,7 @@ def resolve(filters, packages)
     _resolve(filters, packages)
 end
 
-def _resolve(filters, packages)
+  def _resolve(filters, packages)
     filterlist = filters.split(';')
     packages.each do |package|
       portnames = $portsdb.glob(package)
@@ -213,9 +214,9 @@ def _resolve(filters, packages)
         error(ERROR_PACKAGE_NOT_FOUND, "Package #{package} was not found")
       end
     end
-end
+  end
 
-def search_group(filters, key)
+  def search_group(filters, key)
     status(STATUS_QUERY)
     filterlist = filters.split(';')
     if key == GROUP_NEWEST
@@ -251,9 +252,9 @@ def search_group(filters, key)
         package(package_id, status, summary)
       end
     end
-end
+  end
 
-def search_name(filters, key)
+  def search_name(filters, key)
     status(STATUS_QUERY)
     filterlist = filters.split(';')
     name = key
@@ -273,9 +274,9 @@ def search_name(filters, key)
         package(package_id, status, summary)
       end
     end
-end
+  end
 
-def search_details(filters, key)
+  def search_details(filters, key)
     status(STATUS_QUERY)
     filterlist = filters.split(';')
     begin
@@ -297,9 +298,9 @@ def search_details(filters, key)
         end
       end
     end
-end
+  end
 
-def search_file(filters, key)
+  def search_file(filters, key)
     status(STATUS_QUERY)
     filterlist = filters.split(';')
     if filterlist.include? FILTER_NOT_INSTALLED
@@ -344,9 +345,9 @@ def search_file(filters, key)
         package(package_id, status, summary)
       end
     end
-end
+  end
 
-def get_depends(filters, package_ids, recursive)
+  def get_depends(filters, package_ids, recursive)
     status(STATUS_INFO)
     filterlist = filters.split(';')
     package_ids.each do |package|
@@ -372,9 +373,9 @@ def get_depends(filters, package_ids, recursive)
         error(ERROR_PACKAGE_NOT_FOUND, "Package #{package} was not found")
       end
     end
-end
+  end
 
-def get_details(package_ids)
+  def get_details(package_ids)
     status(STATUS_INFO)
     package_ids.each do |package|
       name, version, arch, data = split_package_id(package)
@@ -407,9 +408,9 @@ def get_details(package_ids)
         error(ERROR_PACKAGE_NOT_FOUND, "Package #{package} was not found")
       end
     end
-end
+  end
 
-def get_files(package_ids)
+  def get_files(package_ids)
     status(STATUS_INFO)
     package_ids.each do |package|
       name, version, arch, data = split_package_id(package)
@@ -429,9 +430,9 @@ def get_files(package_ids)
         error(ERROR_PACKAGE_NOT_FOUND, "Package #{package} was not found")
       end
     end
-end
+  end
 
-def get_requires(filters, package_ids, recursive)
+  def get_requires(filters, package_ids, recursive)
     status(STATUS_INFO)
     package_ids.each do |package|
       name, version, arch, data = split_package_id(package)
@@ -452,12 +453,12 @@ def get_requires(filters, package_ids, recursive)
         error(ERROR_PACKAGE_NOT_FOUND, "Package #{package} was not found")
       end
     end
-end
+  end
 
 # (ports-mgmt/portaudit)
 PORTAUDIT="#{PREFIX}/sbin/portaudit"
 
-def refresh_cache(force)
+  def refresh_cache(force)
     percentage(0)
     status(STATUS_DOWNLOAD_PACKAGELIST)
     $portsdb.update(fetch=true)
@@ -469,7 +470,7 @@ def refresh_cache(force)
     status(STATUS_REFRESH_CACHE)
     $portsdb.update_db(force)
     percentage(100)
-end
+  end
 
 # (security/vxquery)
 VXQUERY = "#{PREFIX}/bin/vxquery"
@@ -477,7 +478,7 @@ VXQUERY = "#{PREFIX}/bin/vxquery"
 # http://www.vuxml.org
 VULN_XML = 'vuln.xml'
 
-def _match_range(range, version)
+  def _match_range(range, version)
    cmp = PkgVersion.new(version.to_s) <=> PkgVersion.new(range.text)
    return true if range.name == 'lt' && cmp <  0
    return true if range.name == 'le' && cmp <= 0
@@ -485,9 +486,9 @@ def _match_range(range, version)
    return true if range.name == 'ge' && cmp >= 0
    return true if range.name == 'gt' && cmp >  0
    return false
-end
+  end
 
-def _vuxml(name, oldversion=nil, newversion=nil)
+  def _vuxml(name, oldversion=nil, newversion=nil)
     vulnxml = File.join($portsdb.portdir('security/vuxml'), VULN_XML)
     vulns = []
     if File.exist?(VXQUERY) and File.exist?(vulnxml)
@@ -519,9 +520,9 @@ def _vuxml(name, oldversion=nil, newversion=nil)
       end
     end
     return vulns
-end
+  end
 
-def get_updates(filters)
+  def get_updates(filters)
     status(STATUS_DEP_RESOLVE)
     filterlist = filters.split(';')
     list = []
@@ -559,9 +560,9 @@ def get_updates(filters)
             end
         end
     end
-end
+  end
 
-def get_update_detail(package_ids)
+  def get_update_detail(package_ids)
     status(STATUS_INFO)
     package_ids.each do |package|
       name, version, arch, data = split_package_id(package)
@@ -644,7 +645,7 @@ def get_update_detail(package_ids)
         error(ERROR_PACKAGE_NOT_FOUND, "Package #{package} was not found")
       end
     end
-end
+  end
 
 # (ports-mgmt/portupgrade)
 PORTUPGRADE="#{PREFIX}/sbin/portupgrade"
@@ -673,7 +674,7 @@ USE_PKG = true
 # build packages
 BIN_PKG = true
 
-def update_system(only_trusted)
+  def update_system(only_trusted)
     if only_trusted
         error(ERROR_MISSING_GPG_SIGNATURE, "Trusted packages not available.")
         return
@@ -710,9 +711,9 @@ def update_system(only_trusted)
           message(MESSAGE_BACKEND_ERROR, line.chomp)
         end
     end
-end
+  end
 
-def download_packages(directory, package_ids)
+  def download_packages(directory, package_ids)
     pkgnames = []
     package_ids.each do |package|
       name, version, arch, data = split_package_id(package)
@@ -759,9 +760,9 @@ def download_packages(directory, package_ids)
         end
     end
     ENV['PACKAGES'] = packages
-end
+  end
 
-def install_files(only_trusted, inst_files)
+  def install_files(only_trusted, inst_files)
     if only_trusted
         error(ERROR_MISSING_GPG_SIGNATURE, "Trusted packages not available.")
         return
@@ -791,9 +792,9 @@ def install_files(only_trusted, inst_files)
     ENV['PKG_PATH'] = path.join(':')
     _install(pkgnames)
     ENV['PKG_PATH'] = pkg_path
-end
+  end
 
-def install_packages(only_trusted, package_ids)
+  def install_packages(only_trusted, package_ids)
     if only_trusted
         error(ERROR_MISSING_GPG_SIGNATURE, "Trusted packages not available.")
         return
@@ -815,9 +816,9 @@ def install_packages(only_trusted, package_ids)
         end
     end
     _install(pkgnames)
-end
+  end
 
-def _install(pkgnames)
+  def _install(pkgnames)
     return if pkgnames.empty?
     args = ['-M', 'DIALOG='+DIALOG]
     args << '-P' if USE_PKG
@@ -854,9 +855,9 @@ def _install(pkgnames)
     pkgnames.each do |pkgname|
       _resolve(FILTER_INSTALLED, pkgname)
     end
-end
+  end
 
-def remove_packages(allowdep, autoremove, package_ids)
+  def remove_packages(allowdep, autoremove, package_ids)
     if autoremove
         error(ERROR_NOT_SUPPORTED, "Automatic removal not available.", exit=false)
     end
@@ -907,6 +908,9 @@ def remove_packages(allowdep, autoremove, package_ids)
       pkgname = "#{name}-#{version}"
       _resolve(FILTER_NOT_INSTALLED, pkgname)
     end
+  end
+
+  protected :_resolve, :_match_range, :_vuxml, :_install
 end
 
 #######################################################################
@@ -919,7 +923,8 @@ def to_b(string)
     raise ArgumentError.new("invalid value for bool: \"#{string}\"")
 end
 
-def dispatch_command(cmd, args)
+class PackageKitBaseBackend
+  def dispatch_command(cmd, args)
     case
     when cmd == 'download-packages'
         directory = args[0]
@@ -1016,9 +1021,9 @@ def dispatch_command(cmd, args)
         error(ERROR_INTERNAL_ERROR, errmsg, exit=false)
         finished()
     end
-end
+  end
 
-def dispatcher(args)
+  def dispatcher(args)
     if args.size > 0
       dispatch_command(args[0], args[1..-1])
     else
@@ -1027,6 +1032,7 @@ def dispatcher(args)
         dispatch_command(args[0], args[1..-1])
       end
     end
+  end
 end
 
 #######################################################################
@@ -1034,7 +1040,8 @@ end
 def main(argv)
     init_global
     init_pkgtools_global
-    dispatcher(argv)
+    backend = PackageKitPortsBackend.new
+    backend.dispatcher(argv)
     0
 end
 
commit c44a389565a6082c8ee4735cdb589d4855b6b56e
Author: Anders F Bjorklund <afb at users.sourceforge.net>
Date:   Fri Sep 4 23:22:33 2009 +0200

    trivial: clean up comments, for ruby doc

diff --git a/backends/ports/portsBackend.rb b/backends/ports/portsBackend.rb
index 8019364..d722b27 100755
--- a/backends/ports/portsBackend.rb
+++ b/backends/ports/portsBackend.rb
@@ -652,9 +652,6 @@ PORTUPGRADE="#{PREFIX}/sbin/portupgrade"
 # use a non-interactive (default) dialog program
 DIALOG="#{PROGRAM_DIR}/helpers/default-dialog"
 
-USE_PKG = true # use packages
-BIN_PKG = true # build packages
-
 # Here are the extra subphases used, when:
 # ---> Using the port instead of a package
 
@@ -670,6 +667,12 @@ BIN_PKG = true # build packages
 # ===> Building package for #{pkgname}
 # ===> Cleaning for #{pkgname}
 
+# use packages
+USE_PKG = true
+
+# build packages
+BIN_PKG = true
+
 def update_system(only_trusted)
     if only_trusted
         error(ERROR_MISSING_GPG_SIGNATURE, "Trusted packages not available.")
commit 9299ca40d146ad7906c41aec656a864bfdb13445
Author: Anders F Bjorklund <afb at users.sourceforge.net>
Date:   Fri Sep 4 23:18:30 2009 +0200

    trivial: use helpers like in the python backend

diff --git a/backends/ports/portsBackend.rb b/backends/ports/portsBackend.rb
index b6e1f24..8019364 100755
--- a/backends/ports/portsBackend.rb
+++ b/backends/ports/portsBackend.rb
@@ -31,6 +31,16 @@ require 'ruby_packagekit/prints'
 PACKAGE_IDS_DELIM = '&'
 FILENAME_DELIM = '|'
 
+# Returns a package id.
+def get_package_id(name, version, arch, data)
+    return [name, version, arch, data].join(';')
+end
+
+# Returns an array with the name, version, arch, data of a package id.
+def split_package_id(id)
+    return id.split(';', 4)
+end
+
 # maps Ports group to PackageKit group
 GROUPS = {
 "accessibility" => GROUP_ACCESSIBILITY,
@@ -144,7 +154,7 @@ def get_packages(filters)
             next
         end
         data = installed ? "installed" : "ports"
-        package_id = sprintf "%s;%s;%s;%s", pkg.name, pkg.version, $pkg_arch, data
+        package_id = get_package_id(pkg.name, pkg.version, $pkg_arch, data)
         status = installed ? INFO_INSTALLED : INFO_AVAILABLE
         summary = port.comment
         if summary
@@ -189,7 +199,7 @@ def _resolve(filters, packages)
             next
         end
         data = installed ? "installed" : "ports"
-        package_id = sprintf "%s;%s;%s;%s", pkg.name, pkg.version, $pkg_arch, data
+        package_id = get_package_id(pkg.name, pkg.version, $pkg_arch, data)
         status = installed ? INFO_INSTALLED : INFO_AVAILABLE
         summary = port.comment
         if summary
@@ -229,7 +239,7 @@ def search_group(filters, key)
             next
         end
         data = installed ? "installed" : "ports"
-        package_id = sprintf "%s;%s;%s;%s", pkg.name, pkg.version, $pkg_arch, data
+        package_id = get_package_id(pkg.name, pkg.version, $pkg_arch, data)
         status = installed ? INFO_INSTALLED : INFO_AVAILABLE
         summary = port.comment
         if summary
@@ -252,7 +262,7 @@ def search_name(filters, key)
         pkg = PkgInfo.new(port.pkgname)
         installed = pkg.installed?
         data = installed ? "installed" : "ports"
-        package_id = sprintf "%s;%s;%s;%s", pkg.name, pkg.version, $pkg_arch, data
+        package_id = get_package_id(pkg.name, pkg.version, $pkg_arch, data)
         status = installed ? INFO_INSTALLED : INFO_AVAILABLE
         summary = port.comment
         if summary
@@ -275,7 +285,7 @@ def search_details(filters, key)
         if port.comment and port.comment.match(key)
         installed = pkg.installed?
         data = installed ? "installed" : "ports"
-        package_id = sprintf "%s;%s;%s;%s", pkg.name, pkg.version, $pkg_arch, data
+        package_id = get_package_id(pkg.name, pkg.version, $pkg_arch, data)
         status = installed ? INFO_INSTALLED : INFO_AVAILABLE
         summary = pkg.comment
         if summary
@@ -303,7 +313,7 @@ def search_file(filters, key)
         pkg = $pkgdb.pkg(pkgname)
         installed = true
         data = installed ? "installed" : "ports"
-        package_id = sprintf "%s;%s;%s;%s", pkg.name, pkg.version, $pkg_arch, data
+        package_id = get_package_id(pkg.name, pkg.version, $pkg_arch, data)
         status = installed ? INFO_INSTALLED : INFO_AVAILABLE
         summary = pkg.comment
         if summary
@@ -323,7 +333,7 @@ def search_file(filters, key)
         next unless match
         installed = true
         data = installed ? "installed" : "ports"
-        package_id = sprintf "%s;%s;%s;%s", pkg.name, pkg.version, $pkg_arch, data
+        package_id = get_package_id(pkg.name, pkg.version, $pkg_arch, data)
         status = installed ? INFO_INSTALLED : INFO_AVAILABLE
         summary = pkg.comment
         if summary
@@ -340,7 +350,7 @@ def get_depends(filters, package_ids, recursive)
     status(STATUS_INFO)
     filterlist = filters.split(';')
     package_ids.each do |package|
-      name, version, arch, data = package.split(';')
+      name, version, arch, data = split_package_id(package)
 
       pkgnames = $portsdb.glob(name)
       if pkgnames
@@ -367,7 +377,7 @@ end
 def get_details(package_ids)
     status(STATUS_INFO)
     package_ids.each do |package|
-      name, version, arch, data = package.split(';')
+      name, version, arch, data = split_package_id(package)
 
       pkgnames = $portsdb.glob(name)
       if pkgnames
@@ -402,7 +412,7 @@ end
 def get_files(package_ids)
     status(STATUS_INFO)
     package_ids.each do |package|
-      name, version, arch, data = package.split(';')
+      name, version, arch, data = split_package_id(package)
 
       pkgnames = $portsdb.glob(name)
       if pkgnames
@@ -424,7 +434,7 @@ end
 def get_requires(filters, package_ids, recursive)
     status(STATUS_INFO)
     package_ids.each do |package|
-      name, version, arch, data = package.split(';')
+      name, version, arch, data = split_package_id(package)
 
      pkgnames = $portsdb.glob(name)
       if pkgnames
@@ -533,7 +543,7 @@ def get_updates(filters)
             end
             if newpkg.version > pkg.version
               data = "ports"
-              package_id = sprintf "%s;%s;%s;%s", pkg.name, pkg.version, $pkg_arch, data
+              package_id = get_package_id(pkg.name, pkg.version, $pkg_arch, data)
               status = INFO_NORMAL
               if File.exist?(PORTAUDIT)
                 system("PATH=/sbin:$PATH #{PORTAUDIT} -q '#{pkg.fullname}'") # /sbin/md5
@@ -554,7 +564,7 @@ end
 def get_update_detail(package_ids)
     status(STATUS_INFO)
     package_ids.each do |package|
-      name, version, arch, data = package.split(';')
+      name, version, arch, data = split_package_id(package)
 
      pkgnames = $portsdb.glob(name)
       if pkgnames
@@ -569,9 +579,9 @@ def get_update_detail(package_ids)
         if oldpkg
           next if oldpkg.version != version
           data = 'ports'
-          package = sprintf "%s;%s;%s;%s", pkg.name, pkg.version, $pkg_arch, data
+          package = get_package_id(pkg.name, pkg.version, $pkg_arch, data)
           data = oldpkg.installed? ? 'installed' : 'ports'
-          updates = sprintf "%s;%s;%s;%s", oldpkg.name, oldpkg.version, $pkg_arch, data
+          updates = get_package_id(oldpkg.name, oldpkg.version, $pkg_arch, data)
         else
           pkgnames = $portsdb.glob(name)
           pkgnames.each do |oldport|
@@ -579,7 +589,7 @@ def get_update_detail(package_ids)
             next if oldpkg.version != version
           end
           data = oldpkg.installed? ? 'installed' : 'ports'
-          obsoletes = sprintf "%s;%s;%s;%s", oldpkg.name, oldpkg.version, $pkg_arch, data
+          obsoletes = get_package_id(oldpkg.name, oldpkg.version, $pkg_arch, data)
         end
 
         state = UPDATE_STATE_STABLE
@@ -702,7 +712,7 @@ end
 def download_packages(directory, package_ids)
     pkgnames = []
     package_ids.each do |package|
-      name, version, arch, data = package.split(';')
+      name, version, arch, data = split_package_id(package)
       if not $portsdb.glob(name)
         error(ERROR_PACKAGE_NOT_FOUND, "Package #{name} was not found", exit=false)
         next
@@ -729,7 +739,7 @@ def download_packages(directory, package_ids)
                 pkg = PkgInfo.new(pkgname)
                 file_list = $1
                 data = pkg.installed? ? "installed" : "ports"
-                package_id = sprintf "%s;%s;%s;%s", pkg.name, pkg.version, $pkg_arch, data
+                package_id = get_package_id(pkg.name, pkg.version, $pkg_arch, data)
                 files(package_id, file_list)
                 pkgname = nil
             end
@@ -787,7 +797,7 @@ def install_packages(only_trusted, package_ids)
     end
     pkgnames = []
     package_ids.each do |package|
-        name, version, arch, data = package.split(';')
+        name, version, arch, data = split_package_id(package)
         if $portsdb.glob(name)
             pkgname = "#{name}-#{version}"
             pkg = PkgInfo.new(pkgname)
@@ -849,7 +859,7 @@ def remove_packages(allowdep, autoremove, package_ids)
     end
     pkgnames = []
     package_ids.each do |package|
-      name, version, arch, data = package.split(';')
+      name, version, arch, data = split_package_id(package)
       if not $portsdb.glob(name)
         error(ERROR_PACKAGE_NOT_FOUND, "Package #{name} was not found", exit=false)
         next
@@ -890,7 +900,7 @@ def remove_packages(allowdep, autoremove, package_ids)
         end
     end
     package_ids.each do |package|
-      name, version, arch, data = package.split(';')
+      name, version, arch, data = split_package_id(package)
       pkgname = "#{name}-#{version}"
       _resolve(FILTER_NOT_INSTALLED, pkgname)
     end
commit ebd64412bd643dc8ef42b6352fbda6fea4798513
Merge: e94d3d1... 4e661fc...
Author: Richard Hughes <richard at hughsie.com>
Date:   Fri Sep 4 22:10:42 2009 +0100

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

commit 4e661fc8789f4361778626ee9180725784dbb306
Author: vpv <vpv at fedoraproject.org>
Date:   Fri Sep 4 20:14:49 2009 +0000

    Sending translation for Finnish

diff --git a/po/fi.po b/po/fi.po
index 07465be..3e3a0b9 100644
--- a/po/fi.po
+++ b/po/fi.po
@@ -6,8 +6,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: packagekit\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-08-30 02:50+0000\n"
-"PO-Revision-Date: 2009-08-30 13:01+0300\n"
+"POT-Creation-Date: 2009-09-04 14:33+0000\n"
+"PO-Revision-Date: 2009-09-04 23:14+0300\n"
 "Last-Translator: Ville-Pekka Vainio <vpivaini at cs.helsinki.fi>\n"
 "Language-Team: Finnish <laatu at lokalisointi.org>\n"
 "MIME-Version: 1.0\n"
@@ -16,257 +16,274 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
 #. TRANSLATORS: this is an atomic transaction
-#: ../client/pk-console.c:235
+#: ../client/pk-console.c:238 ../client/pk-console-test.c:147
 msgid "Transaction"
 msgstr "Transaktio"
 
 #. TRANSLATORS: this is the time the transaction was started in system timezone
-#: ../client/pk-console.c:237
+#: ../client/pk-console.c:240 ../client/pk-console-test.c:149
 msgid "System time"
 msgstr "Järjestelmän aika"
 
 #. TRANSLATORS: this is if the transaction succeeded or not
-#: ../client/pk-console.c:239
+#: ../client/pk-console.c:242 ../client/pk-console-test.c:151
 msgid "Succeeded"
 msgstr "Onnistui"
 
-#. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:239 ../client/pk-console.c:468
+#: ../client/pk-console.c:242 ../client/pk-console-test.c:151
 msgid "True"
 msgstr "Tosi"
 
-#: ../client/pk-console.c:239 ../client/pk-console.c:468
+#: ../client/pk-console.c:242 ../client/pk-console-test.c:151
 msgid "False"
 msgstr "Epätosi"
 
 #. TRANSLATORS: this is the transactions role, e.g. "update-system"
 #. TRANSLATORS: the trasaction role, e.g. update-system
-#: ../client/pk-console.c:241 ../src/pk-polkit-action-lookup.c:327
+#: ../client/pk-console.c:244 ../client/pk-console-test.c:153
+#: ../src/pk-polkit-action-lookup.c:327
 msgid "Role"
 msgstr "Rooli"
 
 #. TRANSLATORS: this is The duration of the transaction
-#: ../client/pk-console.c:246
+#: ../client/pk-console.c:249 ../client/pk-console-test.c:158
 msgid "Duration"
 msgstr "Kesto"
 
-#: ../client/pk-console.c:246
+#: ../client/pk-console.c:249 ../client/pk-console-test.c:158
 msgid "(seconds)"
 msgstr "(sekuntia)"
 
 #. TRANSLATORS: this is The command line used to do the action
 #. TRANSLATORS: the command line of the thing that wants the authentication
-#: ../client/pk-console.c:250 ../src/pk-polkit-action-lookup.c:341
+#: ../client/pk-console.c:253 ../client/pk-console-test.c:162
+#: ../src/pk-polkit-action-lookup.c:341
 msgid "Command line"
 msgstr "Komentorivi"
 
 #. TRANSLATORS: this is the user ID of the user that started the action
-#: ../client/pk-console.c:252
+#: ../client/pk-console.c:255 ../client/pk-console-test.c:164
 msgid "User ID"
 msgstr "Käyttäjän tunniste"
 
 #. TRANSLATORS: this is the username, e.g. hughsie
-#: ../client/pk-console.c:259
+#: ../client/pk-console.c:262 ../client/pk-console-test.c:171
 msgid "Username"
 msgstr "Käyttäjätunnus"
 
 #. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
-#: ../client/pk-console.c:263
+#: ../client/pk-console.c:266 ../client/pk-console-test.c:175
 msgid "Real name"
 msgstr "Oikea nimi"
 
-#: ../client/pk-console.c:271
+#: ../client/pk-console.c:274 ../client/pk-console-test.c:183
 msgid "Affected packages:"
 msgstr "Käsiteltävät paketit:"
 
-#: ../client/pk-console.c:273
+#: ../client/pk-console.c:276 ../client/pk-console-test.c:185
 msgid "Affected packages: None"
 msgstr "Käsiteltävät paketit: Ei yhtään"
 
 #. TRANSLATORS: When processing, we might have to remove other dependencies
-#: ../client/pk-console.c:334
+#: ../client/pk-console.c:337 ../client/pk-task-text.c:220
 msgid "The following packages have to be removed:"
 msgstr "Seuraavat paketit on poistettava:"
 
 #. TRANSLATORS: When processing, we might have to install other dependencies
-#: ../client/pk-console.c:337
+#: ../client/pk-console.c:340 ../client/pk-task-text.c:225
 msgid "The following packages have to be installed:"
 msgstr "Seuraavat paketit on asennettava:"
 
 #. TRANSLATORS: When processing, we might have to update other dependencies
-#: ../client/pk-console.c:340
+#: ../client/pk-console.c:343 ../client/pk-task-text.c:230
 msgid "The following packages have to be updated:"
 msgstr "Seuraavat paketit on päivitettävä:"
 
 #. TRANSLATORS: When processing, we might have to reinstall other dependencies
-#: ../client/pk-console.c:343
+#: ../client/pk-console.c:346 ../client/pk-task-text.c:235
 msgid "The following packages have to be reinstalled:"
 msgstr "Seuraavat paketit on asennettava uudelleen:"
 
 #. TRANSLATORS: When processing, we might have to downgrade other dependencies
-#: ../client/pk-console.c:346
+#: ../client/pk-console.c:349 ../client/pk-task-text.c:240
 msgid "The following packages have to be downgraded:"
 msgstr "Seuraavat paketit on vaihdettava vanhempaan versioon:"
 
 #. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:360
+#: ../client/pk-console.c:363 ../client/pk-console-test.c:205
 msgid "Distribution"
 msgstr "Jakeluversio"
 
 #. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:362
+#: ../client/pk-console.c:365 ../client/pk-console-test.c:207
 msgid "Type"
 msgstr "Tyyppi"
 
 #. TRANSLATORS: this is any summary text describing the upgrade
 #. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:364 ../client/pk-console.c:387
+#. TRANSLATORS: this is any summary text describing the upgrade
+#. TRANSLATORS: this is the summary of the group
+#: ../client/pk-console.c:367 ../client/pk-console.c:390
+#: ../client/pk-console-test.c:209 ../client/pk-console-test.c:230
 msgid "Summary"
 msgstr "Yhteenveto"
 
 #. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:376
+#: ../client/pk-console.c:379 ../client/pk-console-test.c:219
 msgid "Category"
 msgstr "Luokka"
 
 #. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:378
+#: ../client/pk-console.c:381 ../client/pk-console-test.c:221
 msgid "ID"
 msgstr "Tunniste"
 
 #. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:381
+#: ../client/pk-console.c:384 ../client/pk-console-test.c:224
 msgid "Parent"
 msgstr "Pääluokka"
 
 #. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:384
+#: ../client/pk-console.c:387 ../client/pk-console-test.c:227
 msgid "Name"
 msgstr "Nimi"
 
 #. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:390
+#: ../client/pk-console.c:393 ../client/pk-console-test.c:233
 msgid "Icon"
 msgstr "Kuvake"
 
 #. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:405
+#: ../client/pk-console.c:408 ../client/pk-console-test.c:247
 msgid "Details about the update:"
 msgstr "Tietoja päivityksestä:"
 
 #. TRANSLATORS: details about the update, package name and version
 #. TRANSLATORS: title, the names of the packages that the method is processing
-#: ../client/pk-console.c:407 ../src/pk-polkit-action-lookup.c:352
+#: ../client/pk-console.c:410 ../client/pk-console-test.c:253
+#: ../client/pk-task-text.c:101 ../client/pk-task-text.c:153
+#: ../src/pk-polkit-action-lookup.c:352
 msgid "Package"
 msgid_plural "Packages"
 msgstr[0] "Paketti"
 msgstr[1] "Paketit"
 
 #. TRANSLATORS: details about the update, any packages that this update updates
-#: ../client/pk-console.c:410
+#: ../client/pk-console.c:413 ../client/pk-console-test.c:256
 msgid "Updates"
 msgstr "Päivitykset"
 
 #. TRANSLATORS: details about the update, any packages that this update obsoletes
-#: ../client/pk-console.c:414
+#: ../client/pk-console.c:417 ../client/pk-console-test.c:260
 msgid "Obsoletes"
 msgstr "Vanhentaa"
 
 #. TRANSLATORS: details about the update, the vendor URLs
-#: ../client/pk-console.c:418
+#: ../client/pk-console.c:421 ../client/pk-console-test.c:264
+#: ../client/pk-task-text.c:154
 msgid "Vendor"
 msgstr "Toimittaja"
 
 #. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:422
+#: ../client/pk-console.c:425 ../client/pk-console-test.c:268
 msgid "Bugzilla"
 msgstr "Bugzilla"
 
 #. TRANSLATORS: details about the update, the CVE URLs
-#: ../client/pk-console.c:426
+#: ../client/pk-console.c:429 ../client/pk-console-test.c:272
 msgid "CVE"
 msgstr "CVE"
 
 #. TRANSLATORS: details about the update, if the package requires a restart
-#: ../client/pk-console.c:430
+#: ../client/pk-console.c:433 ../client/pk-console-test.c:276
 msgid "Restart"
 msgstr "Uudelleenkäynnistys"
 
 #. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:434
+#: ../client/pk-console.c:437 ../client/pk-console-test.c:280
 msgid "Update text"
 msgstr "Päivityksen kuvaus"
 
 #. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:438
+#: ../client/pk-console.c:441 ../client/pk-console-test.c:284
 msgid "Changes"
 msgstr "Muutokset"
 
 #. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:442
+#: ../client/pk-console.c:445 ../client/pk-console-test.c:288
 msgid "State"
 msgstr "Tila"
 
 #. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:447
+#: ../client/pk-console.c:450 ../client/pk-console-test.c:293
 msgid "Issued"
 msgstr "Julkaistu"
 
 #. TRANSLATORS: details about the update, date the update was updated
-#: ../client/pk-console.c:452
+#: ../client/pk-console.c:455 ../client/pk-console-test.c:298
 msgid "Updated"
 msgstr "Päivitetty"
 
-#: ../client/pk-console.c:539 ../client/pk-console.c:541
+#. TRANSLATORS: if the repo is enabled
+#: ../client/pk-console.c:475 ../client/pk-console-test.c:316
+msgid "Enabled"
+msgstr "Käytössä"
+
+#. TRANSLATORS: if the repo is disabled
+#: ../client/pk-console.c:478 ../client/pk-console-test.c:319
+msgid "Disabled"
+msgstr "Poissa käytöstä"
+
+#: ../client/pk-console.c:555 ../client/pk-console.c:557
 msgid "Percentage"
 msgstr "Prosentti"
 
-#: ../client/pk-console.c:541
+#: ../client/pk-console.c:557
 msgid "Unknown"
 msgstr "Tuntematon"
 
 #. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:583
+#: ../client/pk-console.c:599 ../client/pk-console-test.c:341
 msgid "System restart required by:"
 msgstr "Järjestelmän uudelleenkäynnistyksen tarvitsee:"
 
 #. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:586
+#: ../client/pk-console.c:602 ../client/pk-console-test.c:344
 msgid "Session restart required:"
 msgstr "Istunnon uudelleenkäynnistyksen tarvitsee"
 
 #. TRANSLATORS: a package requires the system to be restarted due to a security update
-#: ../client/pk-console.c:589
+#: ../client/pk-console.c:605 ../client/pk-console-test.c:347
 msgid "System restart (security) required by:"
 msgstr "Järjestelmän uudelleenkäynnistyksen (turvallisuussyistä) tarvitsee:"
 
 #. TRANSLATORS: a package requires the session to be restarted due to a security update
-#: ../client/pk-console.c:592
+#: ../client/pk-console.c:608 ../client/pk-console-test.c:350
 msgid "Session restart (security) required:"
 msgstr "Istunnon uudelleenkäynnistyksen (turvallisuussyistä) tarvitsee:"
 
 #. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:595
+#: ../client/pk-console.c:611 ../client/pk-console-test.c:353
 msgid "Application restart required by:"
 msgstr "Sovelluksen uudelleenkäynnistyksen tarvitsee"
 
 #. TRANSLATORS: a package needs to restart their system
-#: ../client/pk-console.c:650
+#: ../client/pk-console.c:666 ../client/pk-console-test.c:702
 msgid "Please restart the computer to complete the update."
 msgstr "Käynnistä tietokone uudelleen päivityksen viimeistelemiseksi."
 
 #. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:653
+#: ../client/pk-console.c:669 ../client/pk-console-test.c:705
 msgid "Please logout and login to complete the update."
 msgstr "Kirjaudu ulos ja takaisin sisään päivityksen viimeistelemiseksi."
 
 #. TRANSLATORS: a package needs to restart the application
-#: ../client/pk-console.c:656
+#: ../client/pk-console.c:672
 msgid "Please restart the application as it is being used."
 msgstr "Ohjelmaa käytetään tällä hetkellä, käynnistä se uudelleen."
 
 #. TRANSLATORS: a package needs to restart their system (due to security)
-#: ../client/pk-console.c:659
+#: ../client/pk-console.c:675 ../client/pk-console-test.c:708
 msgid ""
 "Please restart the computer to complete the update as important security "
 "updates have been installed."
@@ -275,7 +292,7 @@ msgstr ""
 "turvallisuuspäivityksiä on asennettu."
 
 #. TRANSLATORS: a package needs to restart the session (due to security)
-#: ../client/pk-console.c:662
+#: ../client/pk-console.c:678 ../client/pk-console-test.c:711
 msgid ""
 "Please logout and login to complete the update as important security updates "
 "have been installed."
@@ -284,465 +301,526 @@ msgstr ""
 "turvallisuuspäivityksiä on asennettu."
 
 #. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:794
+#: ../client/pk-console.c:810
 #, c-format
 msgid "The package %s is already installed"
 msgstr "Paketti %s on jo asennettu"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:802
+#: ../client/pk-console.c:818
 #, c-format
 msgid "The package %s could not be installed: %s"
 msgstr "Pakettia %s ei voitu asentaa: %s"
 
 #. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
-#: ../client/pk-console.c:828 ../client/pk-console.c:876
-#: ../client/pk-console.c:900 ../client/pk-console.c:948
-#: ../client/pk-console.c:1044 ../client/pk-console.c:1157
-#: ../client/pk-console.c:1218 ../client/pk-tools-common.c:62
-#: ../client/pk-tools-common.c:81 ../client/pk-tools-common.c:89
+#: ../client/pk-console.c:844 ../client/pk-console.c:892
+#: ../client/pk-console.c:916 ../client/pk-console.c:964
+#: ../client/pk-console.c:1060 ../client/pk-console.c:1173
+#: ../client/pk-console.c:1234 ../client/pk-tools-common.c:63
+#: ../client/pk-tools-common.c:82 ../client/pk-tools-common.c:90
 #, c-format
 msgid "Internal error: %s"
 msgstr "Sisäinen virhe: %s"
 
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:860 ../client/pk-console.c:932
-#: ../client/pk-console.c:1250
+#. ask the user
+#: ../client/pk-console.c:876 ../client/pk-console.c:948
+#: ../client/pk-console.c:1266 ../client/pk-task-text.c:299
 msgid "Proceed with changes?"
 msgstr "Tehdäänkö muutokset?"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:865 ../client/pk-console.c:937
+#: ../client/pk-console.c:881 ../client/pk-console.c:953
 msgid "The package install was canceled!"
 msgstr "Pakettien asennus peruttiin!"
 
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:884 ../client/pk-console.c:1618
+#: ../client/pk-console.c:900 ../client/pk-console.c:1634
 #, c-format
 msgid "This tool could not install the packages: %s"
 msgstr "Tämä työkalu ei voinut asentaa paketteja: %s"
 
 #. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:956
+#: ../client/pk-console.c:972
 #, c-format
 msgid "This tool could not install the files: %s"
 msgstr "Tämä työkalu ei voinut asentaa tiedostoja: %s"
 
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:1012
+#: ../client/pk-console.c:1028
 #, c-format
 msgid "This tool could not remove %s: %s"
 msgstr "Tämä työkalu ei voinut poistaa pakettia %s: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:1035 ../client/pk-console.c:1073
-#: ../client/pk-console.c:1102
+#: ../client/pk-console.c:1051 ../client/pk-console.c:1089
+#: ../client/pk-console.c:1118
 #, c-format
 msgid "This tool could not remove the packages: %s"
 msgstr "Tämä työkalu ei voinut poistaa paketteja: %s"
 
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:1088
+#: ../client/pk-console.c:1104
 msgid "Proceed with additional packages?"
 msgstr "Poistetaanko lisäpaketteja?"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:1093
+#: ../client/pk-console.c:1109
 msgid "The package removal was canceled!"
 msgstr "Pakettien poisto peruttiin!"
 
 #. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:1134
+#: ../client/pk-console.c:1150
 #, c-format
 msgid "This tool could not download the package %s as it could not be found"
 msgstr "Ladattavaksi pyydettyä pakettia %s ei löytynyt"
 
 #. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:1165
+#: ../client/pk-console.c:1181
 #, c-format
 msgid "This tool could not download the packages: %s"
 msgstr "Tämä työkalu ei voinut ladata paketteja: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1197 ../client/pk-console.c:1209
-#: ../client/pk-console.c:1264
+#: ../client/pk-console.c:1213 ../client/pk-console.c:1225
+#: ../client/pk-console.c:1280
 #, c-format
 msgid "This tool could not update %s: %s"
 msgstr "Tämä työkalu ei voinut päivittää pakettia %s: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:1255
+#: ../client/pk-console.c:1271
 msgid "The package update was canceled!"
 msgstr "Pakettien päivitys peruttiin!"
 
 # TODO: tarkista
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1288 ../client/pk-console.c:1296
+#: ../client/pk-console.c:1304 ../client/pk-console.c:1312
 #, c-format
 msgid "This tool could not get the requirements for %s: %s"
 msgstr "Tämä työkalu ei voinut hakea vaatijoita paketille %s: %s"
 
 # TODO: tarkista
 #. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:1318 ../client/pk-console.c:1326
+#: ../client/pk-console.c:1334 ../client/pk-console.c:1342
 #, c-format
 msgid "This tool could not get the dependencies for %s: %s"
 msgstr "Tämä työkalu ei voinut hakea riippuvuuksia paketille %s: %s"
 
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:1348 ../client/pk-console.c:1356
+#: ../client/pk-console.c:1364 ../client/pk-console.c:1372
 #, c-format
 msgid "This tool could not get package details for %s: %s"
 msgstr "Tämä työkalu ei voinut hakea tietoja paketista %s: %s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1378
+#: ../client/pk-console.c:1394
 #, c-format
 msgid "This tool could not find the files for %s: %s"
 msgstr "Tämä työkalu ei löytänyt paketin %s tiedostoja: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1386
+#: ../client/pk-console.c:1402
 #, c-format
 msgid "This tool could not get the file list for %s: %s"
 msgstr "Tämä työkalu ei voinut hakea paketin %s tiedostoluetteloa: %s"
 
 #. TRANSLATORS: There was an error getting the list of packages. The filename follows
-#: ../client/pk-console.c:1408
+#: ../client/pk-console.c:1424
 #, c-format
 msgid "File already exists: %s"
 msgstr "Tiedosto on jo olemassa: %s"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1413 ../client/pk-console.c:1469
-#: ../client/pk-console.c:1544
+#: ../client/pk-console.c:1429 ../client/pk-console.c:1485
+#: ../client/pk-console.c:1560
 msgid "Getting package list"
 msgstr "Haetaan pakettiluetteloa"
 
 #. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1419 ../client/pk-console.c:1475
-#: ../client/pk-console.c:1550
+#: ../client/pk-console.c:1435 ../client/pk-console.c:1491
+#: ../client/pk-console.c:1566
 #, c-format
 msgid "This tool could not get package list: %s"
 msgstr "Tämä työkalu ei voinut hakea pakettiluetteloa: %s"
 
 #. TRANSLATORS: There was an error saving the list
-#: ../client/pk-console.c:1430
+#: ../client/pk-console.c:1446
 #, c-format
 msgid "Failed to save to disk"
 msgstr "Tallennus epäonnistui"
 
 #. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1464 ../client/pk-console.c:1539
+#: ../client/pk-console.c:1480 ../client/pk-console.c:1555
 #, c-format
 msgid "File does not exist: %s"
 msgstr "Tiedostoa ei ole olemassa: %s"
 
 #. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1496
+#: ../client/pk-console.c:1512
 msgid "Packages to add"
 msgstr "Lisättävät paketit"
 
 #. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1504
+#: ../client/pk-console.c:1520
 msgid "Packages to remove"
 msgstr "Poistettavat paketit"
 
 #. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1572
+#: ../client/pk-console.c:1588
 #, c-format
 msgid "No new packages need to be installed"
 msgstr "Yhtään uutta pakettia ei tarvitse asentaa"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1578
+#: ../client/pk-console.c:1594
 msgid "To install"
 msgstr "Asennetaan"
 
 #. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1590
+#: ../client/pk-console.c:1606
 msgid "Searching for package: "
 msgstr "Etsitään pakettia: "
 
 #. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1594
+#: ../client/pk-console.c:1610
 msgid "not found."
 msgstr "ei löytynyt."
 
 #. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1605
+#: ../client/pk-console.c:1621
 #, c-format
 msgid "No packages can be found to install"
 msgstr "Asennettavia paketteja ei löytynyt"
 
 #. TRANSLATORS: installing new packages from package list
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
-#: ../client/pk-console.c:1611
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:886
+#: ../client/pk-console.c:1627
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:885
 #, c-format
 msgid "Installing packages"
 msgstr "Asennetaan paketteja"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1647
+#: ../client/pk-console.c:1663
 #, c-format
 msgid "This tool could not find the update details for %s: %s"
 msgstr "Tämä työkalu ei löytänyt paketin %s päivitystietoja: %s"
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1655
+#: ../client/pk-console.c:1671
 #, c-format
 msgid "This tool could not get the update details for %s: %s"
 msgstr "Tämä työkalu ei voinut hakea paketin %s päivitystietoja: %s"
 
 #. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
-#: ../client/pk-console.c:1686
+#: ../client/pk-console.c:1702
 msgid "Error:"
 msgstr "Virhe:"
 
 #. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1700
+#: ../client/pk-console.c:1716 ../client/pk-console-test.c:370
 msgid "Package description"
 msgstr "Paketin kuvaus"
 
 #. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
-#: ../client/pk-console.c:1716
+#: ../client/pk-console.c:1732 ../client/pk-console-test.c:388
 msgid "Message:"
 msgstr "Viesti:"
 
 #. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1744
+#: ../client/pk-console.c:1760 ../client/pk-console-test.c:407
 msgid "Package files"
 msgstr "Paketin tiedostot"
 
 #. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1752
+#: ../client/pk-console.c:1768 ../client/pk-console-test.c:402
 msgid "No files"
 msgstr "Ei tiedostoja"
 
 #. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1775
+#: ../client/pk-console.c:1791
 msgid "Repository signature required"
 msgstr "Asennuslähteen allekirjoitus vaaditaan"
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1785
+#. ask the user
+#: ../client/pk-console.c:1801 ../client/pk-task-text.c:113
 msgid "Do you accept this signature?"
 msgstr "Hyväksytkö tämän allekirjoituksen?"
 
 #. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1789
+#: ../client/pk-console.c:1805 ../client/pk-task-text.c:117
 msgid "The signature was not accepted."
 msgstr "Allekirjoitusta ei hyväksytty."
 
 #. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1823
+#: ../client/pk-console.c:1839
 msgid "End user license agreement required"
 msgstr "Käyttöoikeussopimus vaaditaan"
 
 #. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1830
+#: ../client/pk-console.c:1846
 msgid "Do you agree to this license?"
 msgstr "Hyväksytkö tämän käyttöoikeussopimuksen?"
 
 #. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1834
+#: ../client/pk-console.c:1850
 msgid "The license was refused."
 msgstr "Käyttöoikeussopimusta ei hyväksytty"
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1863
+#: ../client/pk-console.c:1879 ../client/pk-console-test.c:968
 msgid "The daemon crashed mid-transaction!"
 msgstr "Taustaprosessi kaatui kesken toimenpiteen"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1916
+#: ../client/pk-console.c:1932 ../client/pk-console-test.c:1002
 msgid "PackageKit Console Interface"
 msgstr "PackageKitin konsolikäyttöliittymä"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1918
+#: ../client/pk-console.c:1934 ../client/pk-console-test.c:1004
 msgid "Subcommands:"
 msgstr "Alikomennot:"
 
 #. TRANSLATORS: command line argument, if we should show debugging information
 #. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:2011 ../client/pk-generate-pack.c:185
-#: ../client/pk-monitor.c:128
+#: ../client/pk-console.c:2027 ../client/pk-console-test.c:1095
+#: ../client/pk-generate-pack.c:187 ../client/pk-monitor.c:128
 #: ../contrib/command-not-found/pk-command-not-found.c:616
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:550
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:549
 #: ../contrib/device-rebind/pk-device-rebind.c:293 ../src/pk-main.c:211
 msgid "Show extra debugging information"
 msgstr "Näytä ylimääräisiä virheenjäljitystietoja"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:2014 ../client/pk-monitor.c:130
+#: ../client/pk-console.c:2030 ../client/pk-console-test.c:1098
+#: ../client/pk-monitor.c:130
 msgid "Show the program version and exit"
 msgstr "Näytä ohjelman versio ja lopeta"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:2017
+#: ../client/pk-console.c:2033 ../client/pk-console-test.c:1101
 msgid "Set the filter, e.g. installed"
 msgstr "Aseta suodin, esim. asennettu"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:2020
+#: ../client/pk-console.c:2036 ../client/pk-console-test.c:1104
 msgid "Exit without waiting for actions to complete"
 msgstr "Lopeta odottamatta toimintojen valmistumista"
 
 #. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:2047
+#: ../client/pk-console.c:2063
 msgid "This tool could not connect to system DBUS."
 msgstr "Tämä työkalu ei voinut yhdistää järjestelmän DBUSiin."
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:2137
+#: ../client/pk-console.c:2153 ../client/pk-console-test.c:1179
 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:2156
+#: ../client/pk-console.c:2172 ../client/pk-console-test.c:1198
 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:2163 ../client/pk-console.c:2172
-#: ../client/pk-console.c:2181 ../client/pk-console.c:2190
+#: ../client/pk-console.c:2179 ../client/pk-console.c:2188
+#: ../client/pk-console.c:2197 ../client/pk-console.c:2206
+#: ../client/pk-console-test.c:1205 ../client/pk-console-test.c:1217
+#: ../client/pk-console-test.c:1229 ../client/pk-console-test.c:1241
 msgid "A search term is required"
 msgstr "Hakutermi on annettava"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:2197
+#: ../client/pk-console.c:2213 ../client/pk-console-test.c:1251
 msgid "Invalid search type"
 msgstr "Virheellinen haun tyyppi"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:2203
+#: ../client/pk-console.c:2219
 msgid "A package name or filename to install is required"
 msgstr "Paketin nimi tai asennettavan tiedoston nimi on annettava"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2212
+#: ../client/pk-console.c:2228 ../client/pk-console-test.c:1278
 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:2221
+#: ../client/pk-console.c:2237 ../client/pk-console-test.c:1289
 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:2229
+#: ../client/pk-console.c:2245 ../client/pk-console-test.c:1298
 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:2236
+#: ../client/pk-console.c:2252 ../client/pk-console-test.c:1305
 msgid "Directory not found"
 msgstr "Hakemistoa ei löytynyt"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2244
+#: ../client/pk-console.c:2260 ../client/pk-console-test.c:1314
 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:2254
+#: ../client/pk-console.c:2270 ../client/pk-console-test.c:1325
 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:2271
+#: ../client/pk-console.c:2287 ../client/pk-console-test.c:1346
 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:2280 ../client/pk-console.c:2289
+#: ../client/pk-console.c:2296 ../client/pk-console.c:2305
+#: ../client/pk-console-test.c:1357 ../client/pk-console-test.c:1368
 msgid "A repository name is required"
 msgstr "Asennuslähteen nimi on annettava"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2298
+#: ../client/pk-console.c:2314 ../client/pk-console-test.c:1379
 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:2312
+#: ../client/pk-console.c:2328 ../client/pk-console-test.c:1397
 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:2319
+#: ../client/pk-console.c:2335 ../client/pk-console-test.c:1404
 msgid "A correct role is required"
 msgstr "Sopiva rooli on annettava"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2326
+#: ../client/pk-console.c:2342 ../client/pk-console-test.c:1411
 msgid "Failed to get the time since this action was last completed"
 msgstr "Tämän toiminnon edellisen suorittamisen aikaa ei saatu"
 
 #. TRANSLATORS: The user did not provide a package name
 #. TRANSLATORS: This is when the user fails to supply the package name
-#: ../client/pk-console.c:2336 ../client/pk-console.c:2348
-#: ../client/pk-console.c:2357 ../client/pk-console.c:2375
-#: ../client/pk-console.c:2384 ../client/pk-generate-pack.c:241
+#: ../client/pk-console.c:2352 ../client/pk-console.c:2364
+#: ../client/pk-console.c:2373 ../client/pk-console.c:2391
+#: ../client/pk-console.c:2400 ../client/pk-console-test.c:1421
+#: ../client/pk-console-test.c:1436 ../client/pk-console-test.c:1445
+#: ../client/pk-console-test.c:1465 ../client/pk-console-test.c:1474
+#: ../client/pk-generate-pack.c:243
 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:2366
+#: ../client/pk-console.c:2382 ../client/pk-console-test.c:1454
 msgid "A package provide string is required"
 msgstr "Paketin tarjoaja-merkkijono on annettava"
 
 #. TRANSLATORS: The user didn't specify a filename to create as a list
-#: ../client/pk-console.c:2393
+#: ../client/pk-console.c:2409
 msgid "A list file name to create is required"
 msgstr "Luotavan luettelotiedoston nimi on annetta"
 
 #. TRANSLATORS: The user didn't specify a filename to open as a list
-#: ../client/pk-console.c:2403 ../client/pk-console.c:2413
+#: ../client/pk-console.c:2419 ../client/pk-console.c:2429
 msgid "A list file to open is required"
 msgstr "Avattavan luettelotiedoston nimi on annettava"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2467
+#: ../client/pk-console.c:2483 ../client/pk-console-test.c:1534
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "Valitsinta ”%s” ei tueta"
 
 #. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2480
+#: ../client/pk-console.c:2496
 msgid "Incorrect privileges for this operation"
 msgstr "Sinulla ei ole tähän toimintoon tarvittavia oikeuksia"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2483
+#. /* TRANSLATORS: User does not have permission to do this */
+#. g_print ("%s\n", _("Incorrect privileges for this operation"));
+#. TRANSLATORS: Generic failure of what they asked to do
+#: ../client/pk-console.c:2499 ../client/pk-console-test.c:1546
 msgid "Command failed"
 msgstr "Komento epäonnistui"
 
+#. TRANSLATORS: more than one package could be found that matched, to follow is a list of possible packages
+#: ../client/pk-console-test.c:521 ../client/pk-tools-common.c:131
+msgid "More than one package matches:"
+msgstr "Useita vastaavia paketteja saatavilla:"
+
+#. TRANSLATORS: This finds out which package in the list to use
+#: ../client/pk-console-test.c:530 ../client/pk-tools-common.c:138
+msgid "Please choose the correct package: "
+msgstr "Valitse oikea paketti:"
+
+#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
+#: ../client/pk-console-test.c:730
+#, c-format
+msgid "This tool could not find the 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-test.c:758
+#, 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-test.c:786 ../client/pk-console-test.c:814
+#, c-format
+msgid "This tool could not find the package: %s"
+msgstr "Tämä työkalu ei löytänyt pakettia: %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-test.c:842 ../client/pk-console-test.c:868
+#: ../client/pk-console-test.c:894 ../client/pk-console-test.c:920
+#: ../client/pk-console-test.c:946
+#, c-format
+msgid "This tool could not find all the packages: %s"
+msgstr "Tämä työkalu ei löytänyt paketteja: %s"
+
+#. TRANSLATORS: the user did not specify what they wanted to install
+#: ../client/pk-console-test.c:1257
+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-test.c:1266
+msgid "A filename to install is required"
+msgstr "Asennettavan tiedoston nimi on annettava"
+
 #. TRANSLATORS: This is the state of the transaction
-#: ../client/pk-generate-pack.c:101
+#: ../client/pk-generate-pack.c:103
 msgid "Downloading"
 msgstr "Ladataan"
 
 #. TRANSLATORS: This is when the main packages are being downloaded
-#: ../client/pk-generate-pack.c:121
+#: ../client/pk-generate-pack.c:123
 msgid "Downloading packages"
 msgstr "Ladataan paketteja"
 
 #. TRANSLATORS: This is when the dependency packages are being downloaded
-#: ../client/pk-generate-pack.c:126
+#: ../client/pk-generate-pack.c:128
 msgid "Downloading dependencies"
 msgstr "Ladataan riippuvuuksia"
 
 #. TRANSLATORS: we can exclude certain packages (glibc) when we know they'll exist on the target
-#: ../client/pk-generate-pack.c:188
+#: ../client/pk-generate-pack.c:190
 msgid "Set the file name of dependencies to be excluded"
 msgstr ""
 "Aseta pois jätettävien riippuvuuksien luettelon sisältävän tiedoston nimi"
 
 #. TRANSLATORS: the output location
-#: ../client/pk-generate-pack.c:191
+#: ../client/pk-generate-pack.c:193
 msgid ""
 "The output file or directory (the current directory is used if ommitted)"
 msgstr ""
@@ -750,38 +828,38 @@ msgstr ""
 "automaattisesti nykyinen hakemisto."
 
 #. TRANSLATORS: put a list of packages in the pack
-#: ../client/pk-generate-pack.c:194
+#: ../client/pk-generate-pack.c:196
 msgid "The package to be put into the service pack"
 msgstr "Paketti joka laitetaan huoltopakkaukseen"
 
 #. TRANSLATORS: put all pending updates in the pack
-#: ../client/pk-generate-pack.c:197
+#: ../client/pk-generate-pack.c:199
 msgid "Put all updates available in the service pack"
 msgstr "Laita kaikki saatavilla olevat päivitykset huoltopakkaukseen"
 
 #. TRANSLATORS: This is when the user fails to supply the correct arguments
-#: ../client/pk-generate-pack.c:225
+#: ../client/pk-generate-pack.c:227
 msgid "Neither --package or --updates option selected."
 msgstr "Kumpaakaan valitsimista --package tai --updates ei ole käytetty."
 
 #. TRANSLATORS: This is when the user fails to supply just one argument
-#: ../client/pk-generate-pack.c:233
+#: ../client/pk-generate-pack.c:235
 msgid "Both options selected."
 msgstr "Molempia valitsimia on käytetty."
 
 #. TRANSLATORS: This is when the user fails to supply the output
-#: ../client/pk-generate-pack.c:249
+#: ../client/pk-generate-pack.c:251
 msgid "A output directory or file name is required"
 msgstr "Kohdehakemiston tai -tiedoston nimi on annettava"
 
 #. TRANSLATORS: This is when the backend doesn't have the capability to get-depends
 #. TRANSLATORS: This is when the backend doesn't have the capability to download
-#: ../client/pk-generate-pack.c:267 ../client/pk-generate-pack.c:273
+#: ../client/pk-generate-pack.c:269 ../client/pk-generate-pack.c:275
 msgid "The package manager cannot perform this type of operation."
 msgstr "Paketinhallinta ei voi suorittaa tämäntyyppistä toimintoa."
 
 #. TRANSLATORS: This is when the distro didn't include libarchive support into PK
-#: ../client/pk-generate-pack.c:280
+#: ../client/pk-generate-pack.c:282
 msgid ""
 "Service packs cannot be created as PackageKit was not built with libarchive "
 "support."
@@ -790,54 +868,54 @@ msgstr ""
 "tuella."
 
 #. TRANSLATORS: the user specified an absolute path, but didn't get the extension correct
-#: ../client/pk-generate-pack.c:291
+#: ../client/pk-generate-pack.c:293
 msgid "If specifying a file, the service pack name must end with"
 msgstr "Annettaessa tiedosto nimen on päätyttävä"
 
 #. TRANSLATORS: This is when file already exists
-#: ../client/pk-generate-pack.c:307
+#: ../client/pk-generate-pack.c:309
 msgid "A pack with the same name already exists, do you want to overwrite it?"
 msgstr "Samalla nimellä on jo olemassa pakkaus, haluatko korvata sen?"
 
 #. TRANSLATORS: This is when the pack was not overwritten
-#: ../client/pk-generate-pack.c:310
+#: ../client/pk-generate-pack.c:312
 msgid "The pack was not overwritten."
 msgstr "Pakkausta ei korvattu."
 
 #. TRANSLATORS: This is when the temporary directory cannot be created, the directory name follows
-#: ../client/pk-generate-pack.c:323
+#: ../client/pk-generate-pack.c:325
 msgid "Failed to create directory:"
 msgstr "Hakemiston luominen epäonnistui:"
 
 #. TRANSLATORS: This is when the list of packages from the remote computer cannot be opened
-#: ../client/pk-generate-pack.c:333
+#: ../client/pk-generate-pack.c:335
 msgid "Failed to open package list."
 msgstr "Pakettiluettelon luominen epäonnistui."
 
 #. TRANSLATORS: The package name is being matched up to available packages
-#: ../client/pk-generate-pack.c:344
+#: ../client/pk-generate-pack.c:346
 msgid "Finding package name."
 msgstr "Etsitään paketin nimeä."
 
 #. TRANSLATORS: This is when the package cannot be found in any software source. The detailed error follows
-#: ../client/pk-generate-pack.c:348
+#: ../client/pk-generate-pack.c:350
 #, c-format
 msgid "Failed to find package '%s': %s"
 msgstr "Pakettia ”%s” ei löytynyt: %s"
 
 #. TRANSLATORS: This is telling the user we are in the process of making the pack
-#: ../client/pk-generate-pack.c:365
+#: ../client/pk-generate-pack.c:367
 msgid "Creating service pack..."
 msgstr "Luodaan huoltopakkausta..."
 
 #. TRANSLATORS: we succeeded in making the file
-#: ../client/pk-generate-pack.c:372
+#: ../client/pk-generate-pack.c:374
 #, c-format
 msgid "Service pack created '%s'"
 msgstr "Huoltopakkaus ”%s” on luotu"
 
 #. TRANSLATORS: we failed to make te file
-#: ../client/pk-generate-pack.c:377
+#: ../client/pk-generate-pack.c:379
 #, c-format
 msgid "Failed to create '%s': %s"
 msgstr "Huoltopakkauksen ”%s” luominen epäonnistui: %s"
@@ -851,27 +929,104 @@ msgstr "PackageKit-tarkkailija"
 msgid "Cannot show the list of transactions"
 msgstr "Transaktioluetteloa ei voida näyttää"
 
-#. TRANSLATORS: The package was not found in any software sources
-#: ../client/pk-tools-common.c:118
-#, c-format
-msgid "The package could not be found"
-msgstr "Pakettia ei löytynyt"
+#. ask the user
+#: ../client/pk-task-text.c:64
+msgid "Do you want to allow installing of unsigned software?"
+msgstr "Sallitaanko allekirjoittamattomien ohjelmistojen asentaminen?"
 
-#. TRANSLATORS: more than one package could be found that matched, to follow is a list of possible packages
-#: ../client/pk-tools-common.c:130
-msgid "More than one package matches:"
-msgstr "Useita vastaavia paketteja saatavilla:"
+#: ../client/pk-task-text.c:68
+msgid "The unsigned software will not be installed."
+msgstr "Allekirjoittamatonta ohjelmistoa ei asenneta."
 
-#. TRANSLATORS: This finds out which package in the list to use
-#: ../client/pk-tools-common.c:137
-msgid "Please choose the correct package: "
-msgstr "Valitse oikea paketti:"
+#: ../client/pk-task-text.c:100
+msgid "Software source signature required"
+msgstr "Ohjelmistolähteen allekirjoitus vaaditaan"
+
+#: ../client/pk-task-text.c:102
+msgid "Software source name"
+msgstr "Ohjelmistolähteen nimi"
+
+#: ../client/pk-task-text.c:103
+msgid "Key URL"
+msgstr "Avaimen osoite"
+
+#: ../client/pk-task-text.c:104
+msgid "Key user"
+msgstr "Avaimen käyttäjä"
+
+#: ../client/pk-task-text.c:105
+msgid "Key ID"
+msgstr "Avaimen tunniste"
+
+#: ../client/pk-task-text.c:106
+msgid "Key fingerprint"
+msgstr "Avaimen sormenjälki"
+
+#: ../client/pk-task-text.c:107
+msgid "Key Timestamp"
+msgstr "Avaimen aikaleima"
+
+#: ../client/pk-task-text.c:151
+msgid "End user licence agreement required"
+msgstr "Käyttöoikeussopimus vaaditaan"
 
-#: ../client/pk-tools-common.c:162
+#: ../client/pk-task-text.c:152
+msgid "EULA ID"
+msgstr "Käyttöoikeussopimuksen tunniste"
+
+#: ../client/pk-task-text.c:155
+msgid "Agreement"
+msgstr "Sopimus"
+
+#. ask the user
+#: ../client/pk-task-text.c:161
+msgid "Do you accept this agreement?"
+msgstr "Hyväksytkö tämän sopimuksen?"
+
+#: ../client/pk-task-text.c:165
+msgid "The agreement was not accepted."
+msgstr "Sopimusta ei hyväksytty."
+
+#: ../client/pk-task-text.c:194
+msgid "Media change required"
+msgstr "Tallennusvälinettä on vaihdettava"
+
+#: ../client/pk-task-text.c:195
+msgid "Media type"
+msgstr "Tallennusvälineen tyyppi"
+
+#: ../client/pk-task-text.c:196
+msgid "Media ID"
+msgstr "Tallennusvälineen tunniste"
+
+#: ../client/pk-task-text.c:197
+msgid "Text"
+msgstr "Teksti"
+
+#. ask the user
+#: ../client/pk-task-text.c:201
+msgid "Please insert the correct media"
+msgstr "Syötä oikea tallennusväline"
+
+#: ../client/pk-task-text.c:205
+msgid "The correct media was not inserted."
+msgstr "Oikeaa tallennusvälinettä ei syötetty."
+
+#: ../client/pk-task-text.c:303
+msgid "The transaction did not proceed."
+msgstr "Transaktiota ei jatkettu."
+
+#: ../client/pk-text.c:50
 #, c-format
 msgid "Please enter a number from 1 to %i: "
 msgstr "Anna numero väliltä 1-%i: "
 
+#. TRANSLATORS: The package was not found in any software sources
+#: ../client/pk-tools-common.c:119
+#, c-format
+msgid "The package could not be found"
+msgstr "Pakettia ei löytynyt"
+
 #. TRANSLATORS: when we are getting data from the daemon
 #: ../contrib/browser-plugin/pk-plugin-install.c:466
 msgid "Getting package information..."
@@ -1027,175 +1182,175 @@ msgid "Failed to find the package %s, or already installed: %s"
 msgstr "Pakettia %s ei löytynyt tai se on jo asennettu: %s"
 
 #. command line argument, simulate what would be done, but don't actually do it
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:553
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:552
 msgid ""
 "Don't actually install any packages, only simulate what would be installed"
 msgstr "Älä oikeasti asenna paketteja, simuloi asennus"
 
 #. command line argument, do we skip packages that depend on the ones specified
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:556
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:555
 msgid "Do not install dependencies of the core packages"
 msgstr "Älä asenna annettujen pakettien riippuvuuksia"
 
 #. command line argument, do we operate quietly
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:559
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:558
 msgid "Do not display information or progress"
 msgstr "Älä näytä tietoja tai edistymistä"
 
 #. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:577
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:576
 msgid "PackageKit Debuginfo Installer"
 msgstr "PackageKitin debuginfo-asennin"
 
 #. TRANSLATORS: the use needs to specify a list of package names on the command line
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:589
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:588
 #, c-format
 msgid "ERROR: Specify package names to install."
 msgstr "VIRHE: Asennettavien pakettien nimet on annettava"
 
 #. TRANSLATORS: we are getting the list of repositories
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:623
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:622
 #, c-format
 msgid "Getting sources list"
 msgstr "Haetaan lähdeluetteloa"
 
 #. TRANSLATORS: all completed 100%
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:641
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:681
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:716
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:800
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:844
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:911
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:955
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:640
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:680
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:715
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:799
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:843
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:910
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:954
 #, c-format
 msgid "OK."
 msgstr "OK."
 
 #. TRANSLATORS: tell the user what we found
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:644
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:643
 #, c-format
 msgid "Found %i enabled and %i disabled sources."
 msgstr "Löydettiin %i käytössä olevaa ja %i käytöstä poistettua lähdettä."
 
 #. TRANSLATORS: we're finding repositories that match out pattern
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:651
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:650
 #, c-format
 msgid "Finding debugging sources"
 msgstr "Etsitään virheenjäljityslähteitä"
 
 #. TRANSLATORS: tell the user what we found
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:684
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:683
 #, c-format
 msgid "Found %i disabled debuginfo repos."
 msgstr "Löydettiin %i käytöstä poistettua debuginfo-asennuslähdettä."
 
 #. TRANSLATORS: we're now enabling all the debug sources we found
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:691
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:690
 #, c-format
 msgid "Enabling debugging sources"
 msgstr "Otetaan virheenjäljityslähteet käyttöön"
 
 #. TRANSLATORS: operation was not successful
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:701
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:785
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:829
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:896
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:940
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:700
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:784
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:828
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:895
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:939
 msgid "FAILED."
 msgstr "EPÄONNISTUI."
 
 #. TRANSLATORS: tell the user how many we enabled
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:719
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:718
 #, c-format
 msgid "Enabled %i debugging sources."
 msgstr "Otettiin %i virheenjäljityslähdettä käyttöön."
 
 #. TRANSLATORS: we're now finding packages that match in all the repos
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:726
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:725
 #, c-format
 msgid "Finding debugging packages"
 msgstr "Etsitään virheenjäljityspaketteja"
 
 #. TRANSLATORS: we couldn't find the package name, non-fatal
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:738
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:737
 #, c-format
 msgid "Failed to find the package %s: %s"
 msgstr "Pakettia ”%s” ei löytynyt: %s"
 
 #. TRANSLATORS: we couldn't find the debuginfo package name, non-fatal
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:761
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:760
 #, c-format
 msgid "Failed to find the debuginfo package %s: %s"
 msgstr "Debuginfo-pakettia ”%s” ei löytynyt: %s"
 
 #. TRANSLATORS: no debuginfo packages could be found to be installed
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:789
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:788
 #, c-format
 msgid "Found no packages to install."
 msgstr "Yhtään asennettavaa pakettia ei löytynyt."
 
 #. TRANSLATORS: tell the user we found some packages, and then list them
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:803
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:802
 #, c-format
 msgid "Found %i packages:"
 msgstr "Löytyi %i pakettia:"
 
 #. TRANSLATORS: tell the user we are searching for deps
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:819
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:818
 #, c-format
 msgid "Finding packages that depend on these packages"
 msgstr "Etsitään näistä paketeista riippuvia paketteja"
 
 #. TRANSLATORS: could not install, detailed error follows
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:832
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:831
 #, c-format
 msgid "Could not find dependant packages: %s"
 msgstr "Riippuvia paketteja ei löytynyt: %s"
 
 #. TRANSLATORS: tell the user we found some more packages
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:848
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:847
 #, c-format
 msgid "Found %i extra packages."
 msgstr "Löydettiin %i lisäpakettia."
 
 #. TRANSLATORS: tell the user we found some more packages
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:852
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:851
 #, c-format
 msgid "No extra packages required."
 msgstr "Lisäpaketteja ei tarvita."
 
 #. TRANSLATORS: tell the user we found some packages (and deps), and then list them
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:861
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:860
 #, c-format
 msgid "Found %i packages to install:"
 msgstr "Löydettiin %i asennettavaa pakettia:"
 
 #. TRANSLATORS: simulate mode is a testing mode where we quit before the action
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:874
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:873
 #, c-format
 msgid "Not installing packages in simulate mode"
 msgstr "Simulointitilassa ei asenneta paketteja"
 
 #. TRANSLATORS: could not install, detailed error follows
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:899
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:898
 #, c-format
 msgid "Could not install packages: %s"
 msgstr "Paketteja ei voitu asentaa: %s"
 
 #. TRANSLATORS: we are now disabling all debuginfo repos we previously enabled
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:931
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:930
 #, c-format
 msgid "Disabling sources previously enabled"
 msgstr "Poistetaan käytöstä aiemmin käyttöönotetut lähteet"
 
 #. TRANSLATORS: no debuginfo packages could be found to be installed, detailed error follows
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:943
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:942
 #, c-format
 msgid "Could not disable the debugging sources: %s"
 msgstr "Virheenjäljityslähteitä ei voitu poistaa käytöstä: %s"
 
 #. TRANSLATORS: we disabled all the debugging repos that we enabled before
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:958
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:957
 #, c-format
 msgid "Disabled %i debugging sources."
 msgstr "Poistettiin käytöstä %i virheenjäljityslähdettä."
@@ -1345,7 +1500,8 @@ msgstr "Järjestelmälähteiden virkistäminen vaatii tunnistautumisen"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:15
 msgid "Authentication is required to reload the device with a new driver"
-msgstr "Laitteen liittäminen uudelleen uudella ajurilla vaatii tunnistautumisen"
+msgstr ""
+"Laitteen liittäminen uudelleen uudella ajurilla vaatii tunnistautumisen"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:16
 msgid "Authentication is required to remove packages"
commit 4b216617dcb987c6fba402d00d42abb4d75a1349
Author: raven <raven at fedoraproject.org>
Date:   Fri Sep 4 19:44:44 2009 +0000

    Sending translation for Polish

diff --git a/po/pl.po b/po/pl.po
index c023799..6c38d33 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -6,9 +6,9 @@ msgstr ""
 "Project-Id-Version: pl\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2009-09-04 14:33+0000\n"
-"PO-Revision-Date: 2009-09-04 21:24+0200\n"
+"PO-Revision-Date: 2009-09-04 21:44+0200\n"
 "Last-Translator: Piotr DrÄ…g <piotrdrag at gmail.com>\n"
-"Language-Team: Polish <fedora-trans-list at redhat.com>\n"
+"Language-Team: Polish <fedora-trans-pl at redhat.com>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
commit 84b3b4d0b1731336f61e1d348aae73f050c0bf6d
Author: raven <raven at fedoraproject.org>
Date:   Fri Sep 4 19:25:01 2009 +0000

    Sending translation for Polish

diff --git a/po/pl.po b/po/pl.po
index 1d04e58..c023799 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -5,10 +5,10 @@ msgid ""
 msgstr ""
 "Project-Id-Version: pl\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-09-01 14:44+0000\n"
-"PO-Revision-Date: 2009-09-01 20:51+0200\n"
+"POT-Creation-Date: 2009-09-04 14:33+0000\n"
+"PO-Revision-Date: 2009-09-04 21:24+0200\n"
 "Last-Translator: Piotr DrÄ…g <piotrdrag at gmail.com>\n"
-"Language-Team: Polish <pl at li.org>\n"
+"Language-Team: Polish <fedora-trans-list at redhat.com>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -16,146 +16,153 @@ msgstr ""
 "|| n%100>=20) ? 1 : 2);\n"
 
 #. TRANSLATORS: this is an atomic transaction
-#: ../client/pk-console.c:235
+#: ../client/pk-console.c:238 ../client/pk-console-test.c:147
 msgid "Transaction"
 msgstr "Transakcja"
 
 #. TRANSLATORS: this is the time the transaction was started in system timezone
-#: ../client/pk-console.c:237
+#: ../client/pk-console.c:240 ../client/pk-console-test.c:149
 msgid "System time"
 msgstr "Czas systemowy"
 
 #. TRANSLATORS: this is if the transaction succeeded or not
-#: ../client/pk-console.c:239
+#: ../client/pk-console.c:242 ../client/pk-console-test.c:151
 msgid "Succeeded"
 msgstr "Powodzenie"
 
-#: ../client/pk-console.c:239
+#: ../client/pk-console.c:242 ../client/pk-console-test.c:151
 msgid "True"
 msgstr "Prawda"
 
-#: ../client/pk-console.c:239
+#: ../client/pk-console.c:242 ../client/pk-console-test.c:151
 msgid "False"
 msgstr "Fałsz"
 
 #. TRANSLATORS: this is the transactions role, e.g. "update-system"
 #. TRANSLATORS: the trasaction role, e.g. update-system
-#: ../client/pk-console.c:241 ../src/pk-polkit-action-lookup.c:327
+#: ../client/pk-console.c:244 ../client/pk-console-test.c:153
+#: ../src/pk-polkit-action-lookup.c:327
 msgid "Role"
 msgstr "Rola"
 
 #. TRANSLATORS: this is The duration of the transaction
-#: ../client/pk-console.c:246
+#: ../client/pk-console.c:249 ../client/pk-console-test.c:158
 msgid "Duration"
 msgstr "Czas trwania"
 
-#: ../client/pk-console.c:246
+#: ../client/pk-console.c:249 ../client/pk-console-test.c:158
 msgid "(seconds)"
 msgstr "(sekundy)"
 
 #. TRANSLATORS: this is The command line used to do the action
 #. TRANSLATORS: the command line of the thing that wants the authentication
-#: ../client/pk-console.c:250 ../src/pk-polkit-action-lookup.c:341
+#: ../client/pk-console.c:253 ../client/pk-console-test.c:162
+#: ../src/pk-polkit-action-lookup.c:341
 msgid "Command line"
 msgstr "Wiersz poleceń"
 
 #. TRANSLATORS: this is the user ID of the user that started the action
-#: ../client/pk-console.c:252
+#: ../client/pk-console.c:255 ../client/pk-console-test.c:164
 msgid "User ID"
 msgstr "Identyfikator użytkownika"
 
 #. TRANSLATORS: this is the username, e.g. hughsie
-#: ../client/pk-console.c:259
+#: ../client/pk-console.c:262 ../client/pk-console-test.c:171
 msgid "Username"
 msgstr "Nazwa użytkownika"
 
 #. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
-#: ../client/pk-console.c:263
+#: ../client/pk-console.c:266 ../client/pk-console-test.c:175
 msgid "Real name"
 msgstr "ImiÄ™ i nazwisko"
 
-#: ../client/pk-console.c:271
+#: ../client/pk-console.c:274 ../client/pk-console-test.c:183
 msgid "Affected packages:"
 msgstr "Dotyczy pakietów:"
 
-#: ../client/pk-console.c:273
+#: ../client/pk-console.c:276 ../client/pk-console-test.c:185
 msgid "Affected packages: None"
 msgstr "Dotyczy pakietów: żadnych"
 
 #. TRANSLATORS: When processing, we might have to remove other dependencies
-#: ../client/pk-console.c:334
+#: ../client/pk-console.c:337 ../client/pk-task-text.c:220
 msgid "The following packages have to be removed:"
 msgstr "Następujące pakiety muszą zostać usunięte:"
 
 #. TRANSLATORS: When processing, we might have to install other dependencies
-#: ../client/pk-console.c:337
+#: ../client/pk-console.c:340 ../client/pk-task-text.c:225
 msgid "The following packages have to be installed:"
 msgstr "Następujące pakiety muszą zostać zainstalowane:"
 
 #. TRANSLATORS: When processing, we might have to update other dependencies
-#: ../client/pk-console.c:340
+#: ../client/pk-console.c:343 ../client/pk-task-text.c:230
 msgid "The following packages have to be updated:"
 msgstr "Następujące pakiety muszą zostać zaktualizowane:"
 
 #. TRANSLATORS: When processing, we might have to reinstall other dependencies
-#: ../client/pk-console.c:343
+#: ../client/pk-console.c:346 ../client/pk-task-text.c:235
 msgid "The following packages have to be reinstalled:"
 msgstr "Następujące pakiety muszą zostać ponownie zainstalowane:"
 
 #. TRANSLATORS: When processing, we might have to downgrade other dependencies
-#: ../client/pk-console.c:346
+#: ../client/pk-console.c:349 ../client/pk-task-text.c:240
 msgid "The following packages have to be downgraded:"
 msgstr "Następujące pakiety muszą zostać zainstalowane w starszych wersjach:"
 
 #. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:360
+#: ../client/pk-console.c:363 ../client/pk-console-test.c:205
 msgid "Distribution"
 msgstr "Dystrybucja"
 
 #. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:362
+#: ../client/pk-console.c:365 ../client/pk-console-test.c:207
 msgid "Type"
 msgstr "Typ"
 
 #. TRANSLATORS: this is any summary text describing the upgrade
 #. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:364 ../client/pk-console.c:387
+#. TRANSLATORS: this is any summary text describing the upgrade
+#. TRANSLATORS: this is the summary of the group
+#: ../client/pk-console.c:367 ../client/pk-console.c:390
+#: ../client/pk-console-test.c:209 ../client/pk-console-test.c:230
 msgid "Summary"
 msgstr "Podsumowanie"
 
 #. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:376
+#: ../client/pk-console.c:379 ../client/pk-console-test.c:219
 msgid "Category"
 msgstr "Kategoria"
 
 #. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:378
+#: ../client/pk-console.c:381 ../client/pk-console-test.c:221
 msgid "ID"
 msgstr "Identyfikator"
 
 #. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:381
+#: ../client/pk-console.c:384 ../client/pk-console-test.c:224
 msgid "Parent"
 msgstr "Nadrzędna"
 
 #. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:384
+#: ../client/pk-console.c:387 ../client/pk-console-test.c:227
 msgid "Name"
 msgstr "Nazwa"
 
 #. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:390
+#: ../client/pk-console.c:393 ../client/pk-console-test.c:233
 msgid "Icon"
 msgstr "Ikona"
 
 #. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:405
+#: ../client/pk-console.c:408 ../client/pk-console-test.c:247
 msgid "Details about the update:"
 msgstr "Szczegóły aktualizacji:"
 
 #. TRANSLATORS: details about the update, package name and version
 #. TRANSLATORS: title, the names of the packages that the method is processing
-#: ../client/pk-console.c:407 ../src/pk-polkit-action-lookup.c:352
+#: ../client/pk-console.c:410 ../client/pk-console-test.c:253
+#: ../client/pk-task-text.c:101 ../client/pk-task-text.c:153
+#: ../src/pk-polkit-action-lookup.c:352
 msgid "Package"
 msgid_plural "Packages"
 msgstr[0] "Pakiet"
@@ -163,120 +170,121 @@ msgstr[1] "Pakiety"
 msgstr[2] "Pakietów"
 
 #. TRANSLATORS: details about the update, any packages that this update updates
-#: ../client/pk-console.c:410
+#: ../client/pk-console.c:413 ../client/pk-console-test.c:256
 msgid "Updates"
 msgstr "Aktualizuje"
 
 #. TRANSLATORS: details about the update, any packages that this update obsoletes
-#: ../client/pk-console.c:414
+#: ../client/pk-console.c:417 ../client/pk-console-test.c:260
 msgid "Obsoletes"
 msgstr "Zastępuje"
 
 #. TRANSLATORS: details about the update, the vendor URLs
-#: ../client/pk-console.c:418
+#: ../client/pk-console.c:421 ../client/pk-console-test.c:264
+#: ../client/pk-task-text.c:154
 msgid "Vendor"
 msgstr "Producent"
 
 #. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:422
+#: ../client/pk-console.c:425 ../client/pk-console-test.c:268
 msgid "Bugzilla"
 msgstr "Bugzilla"
 
 #. TRANSLATORS: details about the update, the CVE URLs
-#: ../client/pk-console.c:426
+#: ../client/pk-console.c:429 ../client/pk-console-test.c:272
 msgid "CVE"
 msgstr "CVE"
 
 #. TRANSLATORS: details about the update, if the package requires a restart
-#: ../client/pk-console.c:430
+#: ../client/pk-console.c:433 ../client/pk-console-test.c:276
 msgid "Restart"
 msgstr "Uruchom ponownie"
 
 #. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:434
+#: ../client/pk-console.c:437 ../client/pk-console-test.c:280
 msgid "Update text"
 msgstr "Tekst aktualizacji"
 
 #. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:438
+#: ../client/pk-console.c:441 ../client/pk-console-test.c:284
 msgid "Changes"
 msgstr "Zmiany"
 
 #. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:442
+#: ../client/pk-console.c:445 ../client/pk-console-test.c:288
 msgid "State"
 msgstr "Stan"
 
 #. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:447
+#: ../client/pk-console.c:450 ../client/pk-console-test.c:293
 msgid "Issued"
 msgstr "Wydano"
 
 #. TRANSLATORS: details about the update, date the update was updated
-#: ../client/pk-console.c:452
+#: ../client/pk-console.c:455 ../client/pk-console-test.c:298
 msgid "Updated"
 msgstr "Zaktualizowano"
 
 #. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:472
+#: ../client/pk-console.c:475 ../client/pk-console-test.c:316
 msgid "Enabled"
 msgstr "WÅ‚Ä…czone"
 
 #. TRANSLATORS: if the repo is disabled
-#: ../client/pk-console.c:475
+#: ../client/pk-console.c:478 ../client/pk-console-test.c:319
 msgid "Disabled"
 msgstr "Wyłączone"
 
-#: ../client/pk-console.c:552 ../client/pk-console.c:554
+#: ../client/pk-console.c:555 ../client/pk-console.c:557
 msgid "Percentage"
 msgstr "Procentowo"
 
-#: ../client/pk-console.c:554
+#: ../client/pk-console.c:557
 msgid "Unknown"
 msgstr "Nieznane"
 
 #. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:596
+#: ../client/pk-console.c:599 ../client/pk-console-test.c:341
 msgid "System restart required by:"
 msgstr "Ponowne uruchomienie systemu jest wymagane przez:"
 
 #. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:599
+#: ../client/pk-console.c:602 ../client/pk-console-test.c:344
 msgid "Session restart required:"
 msgstr "Wymagane jest ponowne uruchomienie sesji:"
 
 #. TRANSLATORS: a package requires the system to be restarted due to a security update
-#: ../client/pk-console.c:602
+#: ../client/pk-console.c:605 ../client/pk-console-test.c:347
 msgid "System restart (security) required by:"
 msgstr "Ponowne uruchomienie systemu jest wymagane przez:"
 
 #. TRANSLATORS: a package requires the session to be restarted due to a security update
-#: ../client/pk-console.c:605
+#: ../client/pk-console.c:608 ../client/pk-console-test.c:350
 msgid "Session restart (security) required:"
 msgstr "Wymagane jest ponowne uruchomienie sesji (z powodu bezpieczeństwa):"
 
 #. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:608
+#: ../client/pk-console.c:611 ../client/pk-console-test.c:353
 msgid "Application restart required by:"
 msgstr "Ponowne uruchomienie programu jest wymagane przez:"
 
 #. TRANSLATORS: a package needs to restart their system
-#: ../client/pk-console.c:663
+#: ../client/pk-console.c:666 ../client/pk-console-test.c:702
 msgid "Please restart the computer to complete the update."
 msgstr "Proszę uruchomić ponownie komputer, aby zakończyć aktualizację."
 
 #. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:666
+#: ../client/pk-console.c:669 ../client/pk-console-test.c:705
 msgid "Please logout and login to complete the update."
 msgstr "Proszę wylogować się i zalogować, aby zakończyć aktualizację."
 
 #. TRANSLATORS: a package needs to restart the application
-#: ../client/pk-console.c:669
+#: ../client/pk-console.c:672
 msgid "Please restart the application as it is being used."
 msgstr "Proszę uruchomić program ponownie, ponieważ jest używany."
 
 #. TRANSLATORS: a package needs to restart their system (due to security)
-#: ../client/pk-console.c:672
+#: ../client/pk-console.c:675 ../client/pk-console-test.c:708
 msgid ""
 "Please restart the computer to complete the update as important security "
 "updates have been installed."
@@ -285,7 +293,7 @@ msgstr ""
 "zainstalowano aktualizacje bezpieczeństwa."
 
 #. TRANSLATORS: a package needs to restart the session (due to security)
-#: ../client/pk-console.c:675
+#: ../client/pk-console.c:678 ../client/pk-console-test.c:711
 msgid ""
 "Please logout and login to complete the update as important security updates "
 "have been installed."
@@ -294,463 +302,524 @@ msgstr ""
 "zainstalowano aktualizacje bezpieczeństwa."
 
 #. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:807
+#: ../client/pk-console.c:810
 #, c-format
 msgid "The package %s is already installed"
 msgstr "Pakiet %s jest już zainstalowany"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:815
+#: ../client/pk-console.c:818
 #, c-format
 msgid "The package %s could not be installed: %s"
 msgstr "Nie można zainstalować pakietu %s: %s"
 
 #. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
-#: ../client/pk-console.c:841 ../client/pk-console.c:889
-#: ../client/pk-console.c:913 ../client/pk-console.c:961
-#: ../client/pk-console.c:1057 ../client/pk-console.c:1170
-#: ../client/pk-console.c:1231 ../client/pk-tools-common.c:62
-#: ../client/pk-tools-common.c:81 ../client/pk-tools-common.c:89
+#: ../client/pk-console.c:844 ../client/pk-console.c:892
+#: ../client/pk-console.c:916 ../client/pk-console.c:964
+#: ../client/pk-console.c:1060 ../client/pk-console.c:1173
+#: ../client/pk-console.c:1234 ../client/pk-tools-common.c:63
+#: ../client/pk-tools-common.c:82 ../client/pk-tools-common.c:90
 #, c-format
 msgid "Internal error: %s"
 msgstr "Wewnętrzny błąd: %s"
 
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:873 ../client/pk-console.c:945
-#: ../client/pk-console.c:1263
+#. ask the user
+#: ../client/pk-console.c:876 ../client/pk-console.c:948
+#: ../client/pk-console.c:1266 ../client/pk-task-text.c:299
 msgid "Proceed with changes?"
 msgstr "Kontynuować wprowadzanie zmian?"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:878 ../client/pk-console.c:950
+#: ../client/pk-console.c:881 ../client/pk-console.c:953
 msgid "The package install was canceled!"
 msgstr "Anulowano instalacjÄ™ pakietu!"
 
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:897 ../client/pk-console.c:1631
+#: ../client/pk-console.c:900 ../client/pk-console.c:1634
 #, c-format
 msgid "This tool could not install the packages: %s"
-msgstr "To narzędzie nie może zainstalować pakietów: %s"
+msgstr "Te narzędzie nie może zainstalować pakietów: %s"
 
 #. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:969
+#: ../client/pk-console.c:972
 #, c-format
 msgid "This tool could not install the files: %s"
-msgstr "To narzędzie nie może zainstalować plików: %s"
+msgstr "Te narzędzie nie może zainstalować plików: %s"
 
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:1025
+#: ../client/pk-console.c:1028
 #, c-format
 msgid "This tool could not remove %s: %s"
-msgstr "To narzędzie nie może usunąć %s: %s"
+msgstr "Te narzędzie nie może usunąć %s: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:1048 ../client/pk-console.c:1086
-#: ../client/pk-console.c:1115
+#: ../client/pk-console.c:1051 ../client/pk-console.c:1089
+#: ../client/pk-console.c:1118
 #, c-format
 msgid "This tool could not remove the packages: %s"
-msgstr "To narzędzie nie może usunąć pakietów: %s"
+msgstr "Te narzędzie nie może usunąć pakietów: %s"
 
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:1101
+#: ../client/pk-console.c:1104
 msgid "Proceed with additional packages?"
 msgstr "Kontynuować usuwanie dodatkowych pakietów?"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:1106
+#: ../client/pk-console.c:1109
 msgid "The package removal was canceled!"
 msgstr "Anulowano usunięcie pakietu!"
 
 #. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:1147
+#: ../client/pk-console.c:1150
 #, c-format
 msgid "This tool could not download the package %s as it could not be found"
-msgstr "To narzędzie nie może pobrać pakietu %s, ponieważ nie można go znaleźć"
+msgstr "Te narzędzie nie może pobrać pakietu %s, ponieważ nie można go znaleźć"
 
 #. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:1178
+#: ../client/pk-console.c:1181
 #, c-format
 msgid "This tool could not download the packages: %s"
-msgstr "To narzędzie nie może pobrać pakietów: %s"
+msgstr "Te narzędzie nie może pobrać pakietów: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1210 ../client/pk-console.c:1222
-#: ../client/pk-console.c:1277
+#: ../client/pk-console.c:1213 ../client/pk-console.c:1225
+#: ../client/pk-console.c:1280
 #, c-format
 msgid "This tool could not update %s: %s"
-msgstr "To narzędzie nie może zaktualizować %s: %s"
+msgstr "Te narzędzie nie może zaktualizować %s: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:1268
+#: ../client/pk-console.c:1271
 msgid "The package update was canceled!"
 msgstr "Anulowano aktualizacjÄ™ pakietu!"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1301 ../client/pk-console.c:1309
+#: ../client/pk-console.c:1304 ../client/pk-console.c:1312
 #, c-format
 msgid "This tool could not get the requirements for %s: %s"
-msgstr "To narzędzie nie może uzyskać wymagań dla %s: %s"
+msgstr "Te narzędzie nie może uzyskać wymagań dla %s: %s"
 
 #. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:1331 ../client/pk-console.c:1339
+#: ../client/pk-console.c:1334 ../client/pk-console.c:1342
 #, c-format
 msgid "This tool could not get the dependencies for %s: %s"
-msgstr "To narzędzie nie może uzyskać zależności dla %s: %s"
+msgstr "Te narzędzie nie może uzyskać zależności dla %s: %s"
 
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:1361 ../client/pk-console.c:1369
+#: ../client/pk-console.c:1364 ../client/pk-console.c:1372
 #, c-format
 msgid "This tool could not get package details for %s: %s"
-msgstr "To narzędzie nie może uzyskać szczegółów pakietu %s: %s"
+msgstr "Te narzędzie nie może uzyskać szczegółów pakietu %s: %s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1391
+#: ../client/pk-console.c:1394
 #, c-format
 msgid "This tool could not find the files for %s: %s"
-msgstr "To narzędzie nie może znaleźć plików dla %s: %s"
+msgstr "Te narzędzie nie może znaleźć plików dla %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1399
+#: ../client/pk-console.c:1402
 #, c-format
 msgid "This tool could not get the file list for %s: %s"
-msgstr "To narzędzie nie może uzyskać listy plików dla %s: %s"
+msgstr "Te narzędzie nie może uzyskać listy plików dla %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of packages. The filename follows
-#: ../client/pk-console.c:1421
+#: ../client/pk-console.c:1424
 #, c-format
 msgid "File already exists: %s"
 msgstr "Plik już istnieje: %s"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1426 ../client/pk-console.c:1482
-#: ../client/pk-console.c:1557
+#: ../client/pk-console.c:1429 ../client/pk-console.c:1485
+#: ../client/pk-console.c:1560
 msgid "Getting package list"
 msgstr "Pobieranie listy pakietów"
 
 #. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1432 ../client/pk-console.c:1488
-#: ../client/pk-console.c:1563
+#: ../client/pk-console.c:1435 ../client/pk-console.c:1491
+#: ../client/pk-console.c:1566
 #, c-format
 msgid "This tool could not get package list: %s"
-msgstr "To narzędzie nie może pobrać listy pakietów: %s"
+msgstr "Te narzędzie nie może pobrać listy pakietów: %s"
 
 #. TRANSLATORS: There was an error saving the list
-#: ../client/pk-console.c:1443
+#: ../client/pk-console.c:1446
 #, c-format
 msgid "Failed to save to disk"
 msgstr "Zapisanie na dysku nie powiodło się"
 
 #. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1477 ../client/pk-console.c:1552
+#: ../client/pk-console.c:1480 ../client/pk-console.c:1555
 #, c-format
 msgid "File does not exist: %s"
 msgstr "Plik nie istnieje: %s"
 
 #. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1509
+#: ../client/pk-console.c:1512
 msgid "Packages to add"
 msgstr "Pakiety do dodania"
 
 #. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1517
+#: ../client/pk-console.c:1520
 msgid "Packages to remove"
 msgstr "Pakiety do usunięcia"
 
 #. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1585
+#: ../client/pk-console.c:1588
 #, c-format
 msgid "No new packages need to be installed"
 msgstr "Nie trzeba instalować nowych pakietów"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1591
+#: ../client/pk-console.c:1594
 msgid "To install"
 msgstr "Do zainstalowania"
 
 #. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1603
+#: ../client/pk-console.c:1606
 msgid "Searching for package: "
 msgstr "Wyszukiwanie pakietu: "
 
 #. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1607
+#: ../client/pk-console.c:1610
 msgid "not found."
 msgstr "nie znaleziono."
 
 #. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1618
+#: ../client/pk-console.c:1621
 #, c-format
 msgid "No packages can be found to install"
 msgstr "Nie można znaleźć pakietów do zainstalowania"
 
 #. TRANSLATORS: installing new packages from package list
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
-#: ../client/pk-console.c:1624
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:886
+#: ../client/pk-console.c:1627
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:885
 #, c-format
 msgid "Installing packages"
 msgstr "Instalowanie pakietów"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1660
+#: ../client/pk-console.c:1663
 #, c-format
 msgid "This tool could not find the update details for %s: %s"
-msgstr "To narzędzie nie może znaleźć szczegółów aktualizacji dla %s: %s"
+msgstr "Te narzędzie nie może znaleźć szczegółów aktualizacji dla %s: %s"
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1668
+#: ../client/pk-console.c:1671
 #, c-format
 msgid "This tool could not get the update details for %s: %s"
-msgstr "To narzędzie nie może uzyskać szczegółów aktualizacji dla %s: %s"
+msgstr "Te narzędzie nie może uzyskać szczegółów aktualizacji dla %s: %s"
 
 #. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
-#: ../client/pk-console.c:1699
+#: ../client/pk-console.c:1702
 msgid "Error:"
 msgstr "BÅ‚Ä…d:"
 
 #. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1713
+#: ../client/pk-console.c:1716 ../client/pk-console-test.c:370
 msgid "Package description"
 msgstr "Opis pakietu"
 
 #. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
-#: ../client/pk-console.c:1729
+#: ../client/pk-console.c:1732 ../client/pk-console-test.c:388
 msgid "Message:"
 msgstr "Komunikat:"
 
 #. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1757
+#: ../client/pk-console.c:1760 ../client/pk-console-test.c:407
 msgid "Package files"
 msgstr "Pliki pakietu"
 
 #. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1765
+#: ../client/pk-console.c:1768 ../client/pk-console-test.c:402
 msgid "No files"
 msgstr "Brak plików"
 
 #. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1788
+#: ../client/pk-console.c:1791
 msgid "Repository signature required"
 msgstr "Wymagany jest podpis repozytorium"
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1798
+#. ask the user
+#: ../client/pk-console.c:1801 ../client/pk-task-text.c:113
 msgid "Do you accept this signature?"
 msgstr "Zaakceptować ten podpis?"
 
 #. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1802
+#: ../client/pk-console.c:1805 ../client/pk-task-text.c:117
 msgid "The signature was not accepted."
 msgstr "Podpis nie został zaakceptowany."
 
 #. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1836
+#: ../client/pk-console.c:1839
 msgid "End user license agreement required"
 msgstr "Licencja jest wymagana"
 
 #. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1843
+#: ../client/pk-console.c:1846
 msgid "Do you agree to this license?"
 msgstr "Zaakceptować tę licencję?"
 
 #. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1847
+#: ../client/pk-console.c:1850
 msgid "The license was refused."
 msgstr "Odrzucono licencjÄ™."
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1876
+#: ../client/pk-console.c:1879 ../client/pk-console-test.c:968
 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:1929
+#: ../client/pk-console.c:1932 ../client/pk-console-test.c:1002
 msgid "PackageKit Console Interface"
 msgstr "Interfejs konsoli PackageKit"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1931
+#: ../client/pk-console.c:1934 ../client/pk-console-test.c:1004
 msgid "Subcommands:"
 msgstr "Podpolecenia:"
 
 #. TRANSLATORS: command line argument, if we should show debugging information
 #. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:2024 ../client/pk-generate-pack.c:185
-#: ../client/pk-monitor.c:128
+#: ../client/pk-console.c:2027 ../client/pk-console-test.c:1095
+#: ../client/pk-generate-pack.c:187 ../client/pk-monitor.c:128
 #: ../contrib/command-not-found/pk-command-not-found.c:616
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:550
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:549
 #: ../contrib/device-rebind/pk-device-rebind.c:293 ../src/pk-main.c:211
 msgid "Show extra debugging information"
 msgstr "Wyświetla dodatkowe informacje o debugowaniu"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:2027 ../client/pk-monitor.c:130
+#: ../client/pk-console.c:2030 ../client/pk-console-test.c:1098
+#: ../client/pk-monitor.c:130
 msgid "Show the program version and exit"
 msgstr "Wyświetla wersję programu i wyłącza"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:2030
+#: ../client/pk-console.c:2033 ../client/pk-console-test.c:1101
 msgid "Set the filter, e.g. installed"
 msgstr "Ustawia filtr, np. zainstalowane"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:2033
+#: ../client/pk-console.c:2036 ../client/pk-console-test.c:1104
 msgid "Exit without waiting for actions to complete"
 msgstr "Wyłącza bez oczekiwania na zakończenie działań"
 
 #. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:2060
+#: ../client/pk-console.c:2063
 msgid "This tool could not connect to system DBUS."
-msgstr "To narzędzie nie może połączyć się z systemowym D-Bus."
+msgstr "Te narzędzie nie może połączyć się z systemowym D-Bus."
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:2150
+#: ../client/pk-console.c:2153 ../client/pk-console-test.c:1179
 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:2169
+#: ../client/pk-console.c:2172 ../client/pk-console-test.c:1198
 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:2176 ../client/pk-console.c:2185
-#: ../client/pk-console.c:2194 ../client/pk-console.c:2203
+#: ../client/pk-console.c:2179 ../client/pk-console.c:2188
+#: ../client/pk-console.c:2197 ../client/pk-console.c:2206
+#: ../client/pk-console-test.c:1205 ../client/pk-console-test.c:1217
+#: ../client/pk-console-test.c:1229 ../client/pk-console-test.c:1241
 msgid "A search term is required"
 msgstr "Wymagany jest wyszukiwany termin"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:2210
+#: ../client/pk-console.c:2213 ../client/pk-console-test.c:1251
 msgid "Invalid search type"
 msgstr "Nieprawidłowy typ wyszukiwania"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:2216
+#: ../client/pk-console.c:2219
 msgid "A package name or filename to install is required"
 msgstr "Wymagana jest nazwa pakietu lub pliku do zainstalowania"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2225
+#: ../client/pk-console.c:2228 ../client/pk-console-test.c:1278
 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:2234
+#: ../client/pk-console.c:2237 ../client/pk-console-test.c:1289
 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:2242
+#: ../client/pk-console.c:2245 ../client/pk-console-test.c:1298
 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:2249
+#: ../client/pk-console.c:2252 ../client/pk-console-test.c:1305
 msgid "Directory not found"
 msgstr "Nie znaleziono katalogu"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2257
+#: ../client/pk-console.c:2260 ../client/pk-console-test.c:1314
 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:2267
+#: ../client/pk-console.c:2270 ../client/pk-console-test.c:1325
 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:2284
+#: ../client/pk-console.c:2287 ../client/pk-console-test.c:1346
 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:2293 ../client/pk-console.c:2302
+#: ../client/pk-console.c:2296 ../client/pk-console.c:2305
+#: ../client/pk-console-test.c:1357 ../client/pk-console-test.c:1368
 msgid "A repository name is required"
 msgstr "Wymagana jest nazwa repozytorium"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2311
+#: ../client/pk-console.c:2314 ../client/pk-console-test.c:1379
 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:2325
+#: ../client/pk-console.c:2328 ../client/pk-console-test.c:1397
 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:2332
+#: ../client/pk-console.c:2335 ../client/pk-console-test.c:1404
 msgid "A correct role is required"
 msgstr "Wymagana jest bieżąca rola"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2339
+#: ../client/pk-console.c:2342 ../client/pk-console-test.c:1411
 msgid "Failed to get the time since this action was last completed"
 msgstr ""
 "Uzyskanie czasu od ostatniego zakończenia tego działania nie powiodło się"
 
 #. TRANSLATORS: The user did not provide a package name
 #. TRANSLATORS: This is when the user fails to supply the package name
-#: ../client/pk-console.c:2349 ../client/pk-console.c:2361
-#: ../client/pk-console.c:2370 ../client/pk-console.c:2388
-#: ../client/pk-console.c:2397 ../client/pk-generate-pack.c:241
+#: ../client/pk-console.c:2352 ../client/pk-console.c:2364
+#: ../client/pk-console.c:2373 ../client/pk-console.c:2391
+#: ../client/pk-console.c:2400 ../client/pk-console-test.c:1421
+#: ../client/pk-console-test.c:1436 ../client/pk-console-test.c:1445
+#: ../client/pk-console-test.c:1465 ../client/pk-console-test.c:1474
+#: ../client/pk-generate-pack.c:243
 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:2379
+#: ../client/pk-console.c:2382 ../client/pk-console-test.c:1454
 msgid "A package provide string is required"
 msgstr "Wymagany jest łańcuch dostarczania pakietu"
 
 #. TRANSLATORS: The user didn't specify a filename to create as a list
-#: ../client/pk-console.c:2406
+#: ../client/pk-console.c:2409
 msgid "A list file name to create is required"
 msgstr "Wymagana jest lista nazw plików do utworzenia"
 
 #. TRANSLATORS: The user didn't specify a filename to open as a list
-#: ../client/pk-console.c:2416 ../client/pk-console.c:2426
+#: ../client/pk-console.c:2419 ../client/pk-console.c:2429
 msgid "A list file to open is required"
 msgstr "Wymagana jest lista plików do otwarcia"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2480
+#: ../client/pk-console.c:2483 ../client/pk-console-test.c:1534
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "Opcja \"%s\" nie jest obsługiwana"
 
 #. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2493
+#: ../client/pk-console.c:2496
 msgid "Incorrect privileges for this operation"
 msgstr "Niepoprawne uprawnienia dla tego działania"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2496
+#. /* TRANSLATORS: User does not have permission to do this */
+#. g_print ("%s\n", _("Incorrect privileges for this operation"));
+#. TRANSLATORS: Generic failure of what they asked to do
+#: ../client/pk-console.c:2499 ../client/pk-console-test.c:1546
 msgid "Command failed"
 msgstr "Polecenie nie powiodło się"
 
+#. TRANSLATORS: more than one package could be found that matched, to follow is a list of possible packages
+#: ../client/pk-console-test.c:521 ../client/pk-tools-common.c:131
+msgid "More than one package matches:"
+msgstr "Pasuje więcej niż jeden pakiet:"
+
+#. TRANSLATORS: This finds out which package in the list to use
+#: ../client/pk-console-test.c:530 ../client/pk-tools-common.c:138
+msgid "Please choose the correct package: "
+msgstr "Proszę wybrać poprawny pakiet: "
+
+#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
+#: ../client/pk-console-test.c:730
+#, c-format
+msgid "This tool could not find the available package: %s"
+msgstr "Te narzędzie nie może znaleźć dostępnego pakietu: %s"
+
+#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
+#: ../client/pk-console-test.c:758
+#, c-format
+msgid "This tool could not find the installed package: %s"
+msgstr "Te narzędzie nie może znaleźć zainstalowanego pakietu: %s"
+
+#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
+#: ../client/pk-console-test.c:786 ../client/pk-console-test.c:814
+#, c-format
+msgid "This tool could not find the package: %s"
+msgstr "Te narzędzie nie może znaleźć pakietu: %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-test.c:842 ../client/pk-console-test.c:868
+#: ../client/pk-console-test.c:894 ../client/pk-console-test.c:920
+#: ../client/pk-console-test.c:946
+#, c-format
+msgid "This tool could not find all the packages: %s"
+msgstr "Te narzędzie nie może znaleźć wszystkich pakietów: %s"
+
+#. TRANSLATORS: the user did not specify what they wanted to install
+#: ../client/pk-console-test.c:1257
+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-test.c:1266
+msgid "A filename to install is required"
+msgstr "Wymagana jest nazwa pliku do zainstalowania"
+
 #. TRANSLATORS: This is the state of the transaction
-#: ../client/pk-generate-pack.c:101
+#: ../client/pk-generate-pack.c:103
 msgid "Downloading"
 msgstr "Pobieranie"
 
 #. TRANSLATORS: This is when the main packages are being downloaded
-#: ../client/pk-generate-pack.c:121
+#: ../client/pk-generate-pack.c:123
 msgid "Downloading packages"
 msgstr "Pobieranie pakietów"
 
 #. TRANSLATORS: This is when the dependency packages are being downloaded
-#: ../client/pk-generate-pack.c:126
+#: ../client/pk-generate-pack.c:128
 msgid "Downloading dependencies"
 msgstr "Pobieranie zależności"
 
 #. TRANSLATORS: we can exclude certain packages (glibc) when we know they'll exist on the target
-#: ../client/pk-generate-pack.c:188
+#: ../client/pk-generate-pack.c:190
 msgid "Set the file name of dependencies to be excluded"
 msgstr "Proszę ustawić nazwy plików zależności do wykluczenia"
 
 #. TRANSLATORS: the output location
-#: ../client/pk-generate-pack.c:191
+#: ../client/pk-generate-pack.c:193
 msgid ""
 "The output file or directory (the current directory is used if ommitted)"
 msgstr ""
@@ -758,38 +827,38 @@ msgstr ""
 "pominięte)"
 
 #. TRANSLATORS: put a list of packages in the pack
-#: ../client/pk-generate-pack.c:194
+#: ../client/pk-generate-pack.c:196
 msgid "The package to be put into the service pack"
 msgstr "Pakiet do umieszczenia w pakiecie serwisowym"
 
 #. TRANSLATORS: put all pending updates in the pack
-#: ../client/pk-generate-pack.c:197
+#: ../client/pk-generate-pack.c:199
 msgid "Put all updates available in the service pack"
 msgstr "Wszystkie dostępne aktualizacje w pakiecie serwisowym"
 
 #. TRANSLATORS: This is when the user fails to supply the correct arguments
-#: ../client/pk-generate-pack.c:225
+#: ../client/pk-generate-pack.c:227
 msgid "Neither --package or --updates option selected."
 msgstr "Nie wybrano żadnej z opcji --package lub --updates."
 
 #. TRANSLATORS: This is when the user fails to supply just one argument
-#: ../client/pk-generate-pack.c:233
+#: ../client/pk-generate-pack.c:235
 msgid "Both options selected."
 msgstr "Wybrano obie opcje."
 
 #. TRANSLATORS: This is when the user fails to supply the output
-#: ../client/pk-generate-pack.c:249
+#: ../client/pk-generate-pack.c:251
 msgid "A output directory or file name is required"
 msgstr "Wymagany jest katalog lub nazwa pliku wyjścia"
 
 #. TRANSLATORS: This is when the backend doesn't have the capability to get-depends
 #. TRANSLATORS: This is when the backend doesn't have the capability to download
-#: ../client/pk-generate-pack.c:267 ../client/pk-generate-pack.c:273
+#: ../client/pk-generate-pack.c:269 ../client/pk-generate-pack.c:275
 msgid "The package manager cannot perform this type of operation."
 msgstr "Menedżer pakietów nie może wykonać tego typu działania."
 
 #. TRANSLATORS: This is when the distro didn't include libarchive support into PK
-#: ../client/pk-generate-pack.c:280
+#: ../client/pk-generate-pack.c:282
 msgid ""
 "Service packs cannot be created as PackageKit was not built with libarchive "
 "support."
@@ -798,54 +867,54 @@ msgstr ""
 "obsługi libarchive."
 
 #. TRANSLATORS: the user specified an absolute path, but didn't get the extension correct
-#: ../client/pk-generate-pack.c:291
+#: ../client/pk-generate-pack.c:293
 msgid "If specifying a file, the service pack name must end with"
 msgstr "Jeśli podano plik, nazwa pakietu serwisowego musi kończyć się"
 
 #. TRANSLATORS: This is when file already exists
-#: ../client/pk-generate-pack.c:307
+#: ../client/pk-generate-pack.c:309
 msgid "A pack with the same name already exists, do you want to overwrite it?"
 msgstr "Pakiet serwisowy o tej samej nazwie już istnieje, zastąpić go?"
 
 #. TRANSLATORS: This is when the pack was not overwritten
-#: ../client/pk-generate-pack.c:310
+#: ../client/pk-generate-pack.c:312
 msgid "The pack was not overwritten."
 msgstr "Pakiet nie został zastąpiony."
 
 #. TRANSLATORS: This is when the temporary directory cannot be created, the directory name follows
-#: ../client/pk-generate-pack.c:323
+#: ../client/pk-generate-pack.c:325
 msgid "Failed to create directory:"
 msgstr "Utworzenie katalogu nie powiodło się:"
 
 #. TRANSLATORS: This is when the list of packages from the remote computer cannot be opened
-#: ../client/pk-generate-pack.c:333
+#: ../client/pk-generate-pack.c:335
 msgid "Failed to open package list."
 msgstr "Otwarcie listy pakietów nie powiodło się."
 
 #. TRANSLATORS: The package name is being matched up to available packages
-#: ../client/pk-generate-pack.c:344
+#: ../client/pk-generate-pack.c:346
 msgid "Finding package name."
 msgstr "Wyszukiwanie nazwy pakietu."
 
 #. TRANSLATORS: This is when the package cannot be found in any software source. The detailed error follows
-#: ../client/pk-generate-pack.c:348
+#: ../client/pk-generate-pack.c:350
 #, c-format
 msgid "Failed to find package '%s': %s"
 msgstr "Nie można znaleźć pakietu \"%s\": %s"
 
 #. TRANSLATORS: This is telling the user we are in the process of making the pack
-#: ../client/pk-generate-pack.c:365
+#: ../client/pk-generate-pack.c:367
 msgid "Creating service pack..."
 msgstr "Tworzenie pakietu serwisowego..."
 
 #. TRANSLATORS: we succeeded in making the file
-#: ../client/pk-generate-pack.c:372
+#: ../client/pk-generate-pack.c:374
 #, c-format
 msgid "Service pack created '%s'"
 msgstr "Utworzono pakiet serwisowy \"%s\""
 
 #. TRANSLATORS: we failed to make te file
-#: ../client/pk-generate-pack.c:377
+#: ../client/pk-generate-pack.c:379
 #, c-format
 msgid "Failed to create '%s': %s"
 msgstr "Utworzenie \"%s\" nie powiodło się: %s"
@@ -859,27 +928,104 @@ msgstr "Monitor PackageKit"
 msgid "Cannot show the list of transactions"
 msgstr "Nie można wyświetlić listy transakcji"
 
-#. TRANSLATORS: The package was not found in any software sources
-#: ../client/pk-tools-common.c:118
-#, c-format
-msgid "The package could not be found"
-msgstr "Nie można znaleźć pakietu"
+#. ask the user
+#: ../client/pk-task-text.c:64
+msgid "Do you want to allow installing of unsigned software?"
+msgstr "Pozwolić na instalowanie niepodpisanego oprogramowania?"
 
-#. TRANSLATORS: more than one package could be found that matched, to follow is a list of possible packages
-#: ../client/pk-tools-common.c:130
-msgid "More than one package matches:"
-msgstr "Pasuje więcej niż jeden pakiet:"
+#: ../client/pk-task-text.c:68
+msgid "The unsigned software will not be installed."
+msgstr "Niepodpisane oprogramowanie nie zostanie zainstalowane."
 
-#. TRANSLATORS: This finds out which package in the list to use
-#: ../client/pk-tools-common.c:137
-msgid "Please choose the correct package: "
-msgstr "Proszę wybrać poprawny pakiet: "
+#: ../client/pk-task-text.c:100
+msgid "Software source signature required"
+msgstr "Wymagany jest podpis źródła oprogramowania"
+
+#: ../client/pk-task-text.c:102
+msgid "Software source name"
+msgstr "Nazwa źródła oprogramowania"
+
+#: ../client/pk-task-text.c:103
+msgid "Key URL"
+msgstr "Adres URL klucza"
+
+#: ../client/pk-task-text.c:104
+msgid "Key user"
+msgstr "Użytkownika klucza"
+
+#: ../client/pk-task-text.c:105
+msgid "Key ID"
+msgstr "Identyfikator klucza"
+
+#: ../client/pk-task-text.c:106
+msgid "Key fingerprint"
+msgstr "Odcisk klucza"
+
+#: ../client/pk-task-text.c:107
+msgid "Key Timestamp"
+msgstr "Czas klucza"
+
+#: ../client/pk-task-text.c:151
+msgid "End user licence agreement required"
+msgstr "Wymagana jest umowa licencyjna użytkownika końcowego"
 
-#: ../client/pk-tools-common.c:162
+#: ../client/pk-task-text.c:152
+msgid "EULA ID"
+msgstr "Identyfikator licencji"
+
+#: ../client/pk-task-text.c:155
+msgid "Agreement"
+msgstr "Umowa"
+
+#. ask the user
+#: ../client/pk-task-text.c:161
+msgid "Do you accept this agreement?"
+msgstr "Zaakceptować tę umowę?"
+
+#: ../client/pk-task-text.c:165
+msgid "The agreement was not accepted."
+msgstr "Umowa nie została zaakceptowana."
+
+#: ../client/pk-task-text.c:194
+msgid "Media change required"
+msgstr "Wymagana jest zmiana nośnika"
+
+#: ../client/pk-task-text.c:195
+msgid "Media type"
+msgstr "Typ nośnika"
+
+#: ../client/pk-task-text.c:196
+msgid "Media ID"
+msgstr "Identyfikator nośnika"
+
+#: ../client/pk-task-text.c:197
+msgid "Text"
+msgstr "Tekst"
+
+#. ask the user
+#: ../client/pk-task-text.c:201
+msgid "Please insert the correct media"
+msgstr "Proszę włożyć poprawny nośnik"
+
+#: ../client/pk-task-text.c:205
+msgid "The correct media was not inserted."
+msgstr "Nie włożono poprawnego nośnika."
+
+#: ../client/pk-task-text.c:303
+msgid "The transaction did not proceed."
+msgstr "Transakcja nie będzie kontynuowana."
+
+#: ../client/pk-text.c:50
 #, c-format
 msgid "Please enter a number from 1 to %i: "
 msgstr "Proszę podać numer od 1 do %i: "
 
+#. TRANSLATORS: The package was not found in any software sources
+#: ../client/pk-tools-common.c:119
+#, c-format
+msgid "The package could not be found"
+msgstr "Nie można znaleźć pakietu"
+
 #. TRANSLATORS: when we are getting data from the daemon
 #: ../contrib/browser-plugin/pk-plugin-install.c:466
 msgid "Getting package information..."
@@ -1035,175 +1181,175 @@ msgid "Failed to find the package %s, or already installed: %s"
 msgstr "Znalezienie pakietu %s nie powiodło się lub jest już zainstalowany: %s"
 
 #. command line argument, simulate what would be done, but don't actually do it
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:553
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:552
 msgid ""
 "Don't actually install any packages, only simulate what would be installed"
 msgstr "Nie instaluje żadnych pakietów, tylko symuluje instalację"
 
 #. command line argument, do we skip packages that depend on the ones specified
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:556
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:555
 msgid "Do not install dependencies of the core packages"
 msgstr "Nie instaluje zależności podstawowych pakietów"
 
 #. command line argument, do we operate quietly
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:559
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:558
 msgid "Do not display information or progress"
 msgstr "Nie wyświetla informacji lub postępu"
 
 #. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:577
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:576
 msgid "PackageKit Debuginfo Installer"
 msgstr "Instalator pakietów debugowania PackageKit"
 
 #. TRANSLATORS: the use needs to specify a list of package names on the command line
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:589
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:588
 #, c-format
 msgid "ERROR: Specify package names to install."
 msgstr "BŁĄD: proszę podać nazwy pakietów do zainstalowania."
 
 #. TRANSLATORS: we are getting the list of repositories
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:623
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:622
 #, c-format
 msgid "Getting sources list"
 msgstr "Pobieranie listy źródeł"
 
 #. TRANSLATORS: all completed 100%
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:641
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:681
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:716
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:800
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:844
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:911
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:955
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:640
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:680
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:715
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:799
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:843
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:910
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:954
 #, c-format
 msgid "OK."
 msgstr "OK."
 
 #. TRANSLATORS: tell the user what we found
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:644
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:643
 #, c-format
 msgid "Found %i enabled and %i disabled sources."
 msgstr "Znaleziono %i włączone i %i wyłączone źródła."
 
 #. TRANSLATORS: we're finding repositories that match out pattern
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:651
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:650
 #, c-format
 msgid "Finding debugging sources"
 msgstr "Wyszukiwanie źródeł pakietów debugowania"
 
 #. TRANSLATORS: tell the user what we found
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:684
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:683
 #, c-format
 msgid "Found %i disabled debuginfo repos."
 msgstr "Znaleziono %i wyłączone repozytoria pakietów debugowania."
 
 #. TRANSLATORS: we're now enabling all the debug sources we found
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:691
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:690
 #, c-format
 msgid "Enabling debugging sources"
 msgstr "Włączanie źródeł pakietów debugowania"
 
 #. TRANSLATORS: operation was not successful
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:701
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:785
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:829
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:896
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:940
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:700
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:784
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:828
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:895
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:939
 msgid "FAILED."
 msgstr "NIEUDANE."
 
 #. TRANSLATORS: tell the user how many we enabled
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:719
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:718
 #, c-format
 msgid "Enabled %i debugging sources."
 msgstr "Włączono %i źródła pakietów debugowania."
 
 #. TRANSLATORS: we're now finding packages that match in all the repos
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:726
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:725
 #, c-format
 msgid "Finding debugging packages"
 msgstr "Wyszukiwanie źródeł pakietów debugowania"
 
 #. TRANSLATORS: we couldn't find the package name, non-fatal
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:738
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:737
 #, c-format
 msgid "Failed to find the package %s: %s"
 msgstr "Znalezienie pakietu %s nie powiodło się: %s"
 
 #. TRANSLATORS: we couldn't find the debuginfo package name, non-fatal
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:761
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:760
 #, c-format
 msgid "Failed to find the debuginfo package %s: %s"
 msgstr "Znalezienie pakietu debugowania %s nie powiodło się: %s"
 
 #. TRANSLATORS: no debuginfo packages could be found to be installed
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:789
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:788
 #, c-format
 msgid "Found no packages to install."
 msgstr "Nie znaleziono pakietów do zainstalowania."
 
 #. TRANSLATORS: tell the user we found some packages, and then list them
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:803
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:802
 #, c-format
 msgid "Found %i packages:"
 msgstr "Znaleziono %i pakiety:"
 
 #. TRANSLATORS: tell the user we are searching for deps
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:819
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:818
 #, c-format
 msgid "Finding packages that depend on these packages"
 msgstr "Wyszukiwanie pakietów zależnych od tych pakietów"
 
 #. TRANSLATORS: could not install, detailed error follows
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:832
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:831
 #, c-format
 msgid "Could not find dependant packages: %s"
 msgstr "Nie można znaleźć zależnych pakietów: %s"
 
 #. TRANSLATORS: tell the user we found some more packages
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:848
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:847
 #, c-format
 msgid "Found %i extra packages."
 msgstr "Znaleziono %i dodatkowe pakiety."
 
 #. TRANSLATORS: tell the user we found some more packages
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:852
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:851
 #, c-format
 msgid "No extra packages required."
 msgstr "Dodatkowe pakiety nie sÄ… wymagane."
 
 #. TRANSLATORS: tell the user we found some packages (and deps), and then list them
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:861
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:860
 #, c-format
 msgid "Found %i packages to install:"
 msgstr "Znaleziono %i pakiety do zainstalowania:"
 
 #. TRANSLATORS: simulate mode is a testing mode where we quit before the action
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:874
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:873
 #, c-format
 msgid "Not installing packages in simulate mode"
 msgstr "Pakiety nie zostanÄ… zainstalowane w trybie symulacji"
 
 #. TRANSLATORS: could not install, detailed error follows
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:899
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:898
 #, c-format
 msgid "Could not install packages: %s"
 msgstr "Nie można zainstalować pakietów: %s"
 
 #. TRANSLATORS: we are now disabling all debuginfo repos we previously enabled
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:931
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:930
 #, c-format
 msgid "Disabling sources previously enabled"
 msgstr "Wyłączanie źródeł poprzednio włączonych"
 
 #. TRANSLATORS: no debuginfo packages could be found to be installed, detailed error follows
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:943
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:942
 #, c-format
 msgid "Could not disable the debugging sources: %s"
 msgstr "Nie można wyłączyć źródeł pakietów debugowania: %s"
 
 #. TRANSLATORS: we disabled all the debugging repos that we enabled before
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:958
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:957
 #, c-format
 msgid "Disabled %i debugging sources."
 msgstr "Wyłączono %i źródła pakietów debugowania."
commit 4121a972843d0a70c37da747bfffe1d0bbf882ae
Merge: e40c209... 49fda24...
Author: Daniel Nicoletti <dantti85-pk at yahoo.com.br>
Date:   Fri Sep 4 16:09:59 2009 -0300

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

commit e40c2097b59226bf81ae866de6340396300add01
Author: Daniel Nicoletti <dantti85-pk at yahoo.com.br>
Date:   Fri Sep 4 16:09:07 2009 -0300

    aptcc: fix to handle packages ids in resolve

diff --git a/backends/aptcc/pk-backend-aptcc.cpp b/backends/aptcc/pk-backend-aptcc.cpp
index a472a02..8994035 100644
--- a/backends/aptcc/pk-backend-aptcc.cpp
+++ b/backends/aptcc/pk-backend-aptcc.cpp
@@ -826,12 +826,20 @@ backend_resolve_thread (PkBackend *backend)
 		return false;
 	}
 
+	PkPackageId *pi;
 	for (uint i = 0; i < g_strv_length(package_ids); i++) {
 		if (_cancel) {
 			break;
 		}
 
-		pkgCache::PkgIterator pkg = m_apt->packageCache->FindPkg(package_ids[i]);
+		pkgCache::PkgIterator pkg;
+		pi = pk_package_id_new_from_string (package_ids[i]);
+		if (pi == NULL) {
+			pkg = m_apt->packageCache->FindPkg(package_ids[i]);
+		} else {
+			pkg = m_apt->packageCache->FindPkg(pi->name);
+		}
+
 		// Ignore packages that could not be found or that exist only due to dependencies.
 		if (pkg.end() == true || (pkg.VersionList().end() && pkg.ProvidesList().end()))
 		{
@@ -843,14 +851,26 @@ backend_resolve_thread (PkBackend *backend)
 		// check to see if the provided package isn't virtual too
 		if (ver.end() == false)
 		{
-			m_apt->emit_package(pkg, ver, filters);
+			if (pi == NULL) {
+				m_apt->emit_package(pkg, ver, filters);
+			} else {
+				if (strcmp(ver.VerStr(), pi->version) == 0) {
+					m_apt->emit_package(pkg, ver, filters);
+				}
+			}
 		}
 
 		ver = m_apt->find_candidate_ver(pkg);
 		// check to see if the provided package isn't virtual too
 		if (ver.end() == false)
 		{
-			m_apt->emit_package(pkg, ver, filters);
+			if (pi == NULL) {
+				m_apt->emit_package(pkg, ver, filters);
+			} else {
+				if (strcmp(ver.VerStr(), pi->version) == 0) {
+					m_apt->emit_package(pkg, ver, filters);
+				}
+			}
 		}
 	}
 
commit 49fda24cedf9f08b395bb60ae811e78156b3d2ec
Author: warrink <warrink at fedoraproject.org>
Date:   Fri Sep 4 18:10:51 2009 +0000

    Sending translation for Dutch

diff --git a/po/nl.po b/po/nl.po
index 1419bc3..3cf937b 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -1,13 +1,12 @@
 # translation of packagekit.master.po to Dutch
 # R.E. van der Luit <nippur at fedoraproject.org>, 2009.
 # Geert Warrink <geert.warrink at onsnet.nu>, 2009.
-# Geert Warrink <geert.warrink at onsnet.nu>, 2009.
 msgid ""
 msgstr ""
 "Project-Id-Version: packagekit.master.nl\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-09-02 14:45+0000\n"
-"PO-Revision-Date: 2009-09-02 21:48+0200\n"
+"POT-Creation-Date: 2009-09-04 14:33+0000\n"
+"PO-Revision-Date: 2009-09-04 20:10+0200\n"
 "Last-Translator: Geert Warrink <geert.warrink at onsnet.nu>\n"
 "Language-Team: nl <nl at li.org>\n"
 "MIME-Version: 1.0\n"
@@ -18,266 +17,274 @@ msgstr ""
 "X-Generator: KBabel 1.11.4\n"
 
 #. TRANSLATORS: this is an atomic transaction
-#: ../client/pk-console.c:235
+#: ../client/pk-console.c:238 ../client/pk-console-test.c:147
 msgid "Transaction"
 msgstr "Transactie"
 
 #. TRANSLATORS: this is the time the transaction was started in system timezone
-#: ../client/pk-console.c:237
+#: ../client/pk-console.c:240 ../client/pk-console-test.c:149
 msgid "System time"
 msgstr "Systeemtijd"
 
 #. TRANSLATORS: this is if the transaction succeeded or not
-#: ../client/pk-console.c:239
+#: ../client/pk-console.c:242 ../client/pk-console-test.c:151
 msgid "Succeeded"
 msgstr "Geslaagd"
 
-#: ../client/pk-console.c:239
+#: ../client/pk-console.c:242 ../client/pk-console-test.c:151
 msgid "True"
 msgstr "Waar"
 
-#: ../client/pk-console.c:239
+#: ../client/pk-console.c:242 ../client/pk-console-test.c:151
 msgid "False"
 msgstr "Niet waar"
 
 #. TRANSLATORS: this is the transactions role, e.g. "update-system"
 #. TRANSLATORS: the trasaction role, e.g. update-system
-#: ../client/pk-console.c:241 ../src/pk-polkit-action-lookup.c:327
+#: ../client/pk-console.c:244 ../client/pk-console-test.c:153
+#: ../src/pk-polkit-action-lookup.c:327
 msgid "Role"
 msgstr "Rol"
 
 #. TRANSLATORS: this is The duration of the transaction
-#: ../client/pk-console.c:246
+#: ../client/pk-console.c:249 ../client/pk-console-test.c:158
 msgid "Duration"
 msgstr "Duur"
 
-#: ../client/pk-console.c:246
+#: ../client/pk-console.c:249 ../client/pk-console-test.c:158
 msgid "(seconds)"
 msgstr "(seconden)"
 
 #. TRANSLATORS: this is The command line used to do the action
 #. TRANSLATORS: the command line of the thing that wants the authentication
-#: ../client/pk-console.c:250 ../src/pk-polkit-action-lookup.c:341
+#: ../client/pk-console.c:253 ../client/pk-console-test.c:162
+#: ../src/pk-polkit-action-lookup.c:341
 msgid "Command line"
 msgstr "Commando regel"
 
 #. TRANSLATORS: this is the user ID of the user that started the action
-#: ../client/pk-console.c:252
+#: ../client/pk-console.c:255 ../client/pk-console-test.c:164
 msgid "User ID"
 msgstr "Gebruiker ID"
 
 #. TRANSLATORS: this is the username, e.g. hughsie
-#: ../client/pk-console.c:259
+#: ../client/pk-console.c:262 ../client/pk-console-test.c:171
 msgid "Username"
 msgstr "Gebruikernaam"
 
 #. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
-#: ../client/pk-console.c:263
+#: ../client/pk-console.c:266 ../client/pk-console-test.c:175
 msgid "Real name"
 msgstr "Werkelijke naam"
 
-#: ../client/pk-console.c:271
+#: ../client/pk-console.c:274 ../client/pk-console-test.c:183
 msgid "Affected packages:"
 msgstr "Betreffende pakketten"
 
-#: ../client/pk-console.c:273
+#: ../client/pk-console.c:276 ../client/pk-console-test.c:185
 msgid "Affected packages: None"
 msgstr "Betreffende pakketten: Geen"
 
 #. TRANSLATORS: When processing, we might have to remove other dependencies
-#: ../client/pk-console.c:334
+#: ../client/pk-console.c:337 ../client/pk-task-text.c:220
 msgid "The following packages have to be removed:"
 msgstr "De volgende pakketten moeten worden verwijderd:"
 
 #. TRANSLATORS: When processing, we might have to install other dependencies
-#: ../client/pk-console.c:337
+#: ../client/pk-console.c:340 ../client/pk-task-text.c:225
 msgid "The following packages have to be installed:"
 msgstr "De volgende pakketten moeten worden geïnstalleerd"
 
 #. TRANSLATORS: When processing, we might have to update other dependencies
-#: ../client/pk-console.c:340
+#: ../client/pk-console.c:343 ../client/pk-task-text.c:230
 msgid "The following packages have to be updated:"
 msgstr "De volgende pakketten moeten worden vernieuwd:"
 
 #. TRANSLATORS: When processing, we might have to reinstall other dependencies
-#: ../client/pk-console.c:343
+#: ../client/pk-console.c:346 ../client/pk-task-text.c:235
 msgid "The following packages have to be reinstalled:"
 msgstr "De volgende pakketten moeten opnieuw geïnstalleerd worden:"
 
 #. TRANSLATORS: When processing, we might have to downgrade other dependencies
-#: ../client/pk-console.c:346
+#: ../client/pk-console.c:349 ../client/pk-task-text.c:240
 msgid "The following packages have to be downgraded:"
 msgstr "De volgende pakketten moeten gedegradeerd worden:"
 
 #. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:360
+#: ../client/pk-console.c:363 ../client/pk-console-test.c:205
 msgid "Distribution"
 msgstr "Distributie"
 
 #. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:362
+#: ../client/pk-console.c:365 ../client/pk-console-test.c:207
 msgid "Type"
 msgstr "Type"
 
 #. TRANSLATORS: this is any summary text describing the upgrade
 #. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:364 ../client/pk-console.c:387
+#. TRANSLATORS: this is any summary text describing the upgrade
+#. TRANSLATORS: this is the summary of the group
+#: ../client/pk-console.c:367 ../client/pk-console.c:390
+#: ../client/pk-console-test.c:209 ../client/pk-console-test.c:230
 msgid "Summary"
 msgstr "Samenvatting"
 
 #. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:376
+#: ../client/pk-console.c:379 ../client/pk-console-test.c:219
 msgid "Category"
 msgstr "Categorie"
 
 #. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:378
+#: ../client/pk-console.c:381 ../client/pk-console-test.c:221
 msgid "ID"
 msgstr "ID"
 
 #. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:381
+#: ../client/pk-console.c:384 ../client/pk-console-test.c:224
 msgid "Parent"
 msgstr "Ouder"
 
 #. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:384
+#: ../client/pk-console.c:387 ../client/pk-console-test.c:227
 msgid "Name"
 msgstr "Naam"
 
 #. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:390
+#: ../client/pk-console.c:393 ../client/pk-console-test.c:233
 msgid "Icon"
 msgstr "Icoon"
 
 #. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:405
+#: ../client/pk-console.c:408 ../client/pk-console-test.c:247
 msgid "Details about the update:"
 msgstr "Details van de vernieuwing:"
 
 #. TRANSLATORS: details about the update, package name and version
 #. TRANSLATORS: title, the names of the packages that the method is processing
-#: ../client/pk-console.c:407 ../src/pk-polkit-action-lookup.c:352
+#: ../client/pk-console.c:410 ../client/pk-console-test.c:253
+#: ../client/pk-task-text.c:101 ../client/pk-task-text.c:153
+#: ../src/pk-polkit-action-lookup.c:352
 msgid "Package"
 msgid_plural "Packages"
 msgstr[0] "Pakket"
 msgstr[1] "Pakketten"
 
 #. TRANSLATORS: details about the update, any packages that this update updates
-#: ../client/pk-console.c:410
+#: ../client/pk-console.c:413 ../client/pk-console-test.c:256
 msgid "Updates"
 msgstr "Vernieuwingen"
 
 #. TRANSLATORS: details about the update, any packages that this update obsoletes
-#: ../client/pk-console.c:414
+#: ../client/pk-console.c:417 ../client/pk-console-test.c:260
 msgid "Obsoletes"
 msgstr "Verouderde pakketten"
 
 #. TRANSLATORS: details about the update, the vendor URLs
-#: ../client/pk-console.c:418
+#: ../client/pk-console.c:421 ../client/pk-console-test.c:264
+#: ../client/pk-task-text.c:154
 msgid "Vendor"
 msgstr "Verkoper"
 
 #. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:422
+#: ../client/pk-console.c:425 ../client/pk-console-test.c:268
 msgid "Bugzilla"
 msgstr "Bugzilla"
 
 #. TRANSLATORS: details about the update, the CVE URLs
-#: ../client/pk-console.c:426
+#: ../client/pk-console.c:429 ../client/pk-console-test.c:272
 msgid "CVE"
 msgstr "CVE"
 
 #. TRANSLATORS: details about the update, if the package requires a restart
-#: ../client/pk-console.c:430
+#: ../client/pk-console.c:433 ../client/pk-console-test.c:276
 msgid "Restart"
 msgstr "Herstarten"
 
 #. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:434
+#: ../client/pk-console.c:437 ../client/pk-console-test.c:280
 msgid "Update text"
 msgstr "Vernieuw tekst"
 
 #. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:438
+#: ../client/pk-console.c:441 ../client/pk-console-test.c:284
 msgid "Changes"
 msgstr "Veranderingen"
 
 #. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:442
+#: ../client/pk-console.c:445 ../client/pk-console-test.c:288
 msgid "State"
 msgstr "Status"
 
 #. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:447
+#: ../client/pk-console.c:450 ../client/pk-console-test.c:293
 msgid "Issued"
 msgstr "Uitgegeven"
 
 #. TRANSLATORS: details about the update, date the update was updated
-#: ../client/pk-console.c:452
+#: ../client/pk-console.c:455 ../client/pk-console-test.c:298
 msgid "Updated"
 msgstr "Vernieuwd"
 
 #. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:472
+#: ../client/pk-console.c:475 ../client/pk-console-test.c:316
 msgid "Enabled"
 msgstr "Aangezit"
 
 #. TRANSLATORS: if the repo is disabled
-#: ../client/pk-console.c:475
+#: ../client/pk-console.c:478 ../client/pk-console-test.c:319
 msgid "Disabled"
 msgstr "Uitgezet"
 
-#: ../client/pk-console.c:552 ../client/pk-console.c:554
+#: ../client/pk-console.c:555 ../client/pk-console.c:557
 msgid "Percentage"
 msgstr "Percentage"
 
-#: ../client/pk-console.c:554
+#: ../client/pk-console.c:557
 msgid "Unknown"
 msgstr "Onbekend"
 
 #. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:596
+#: ../client/pk-console.c:599 ../client/pk-console-test.c:341
 msgid "System restart required by:"
 msgstr "Herstart systeem vereist door:"
 
 #. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:599
+#: ../client/pk-console.c:602 ../client/pk-console-test.c:344
 msgid "Session restart required:"
 msgstr "Het is vereist het systeem te herstarten:"
 
 #. TRANSLATORS: a package requires the system to be restarted due to a security update
-#: ../client/pk-console.c:602
+#: ../client/pk-console.c:605 ../client/pk-console-test.c:347
 msgid "System restart (security) required by:"
 msgstr "Herstart systeem (beveiliging) vereist door:"
 
 #. TRANSLATORS: a package requires the session to be restarted due to a security update
-#: ../client/pk-console.c:605
+#: ../client/pk-console.c:608 ../client/pk-console-test.c:350
 msgid "Session restart (security) required:"
 msgstr "Herstart sessie (beveiliging) vereist door:"
 
 #. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:608
+#: ../client/pk-console.c:611 ../client/pk-console-test.c:353
 msgid "Application restart required by:"
 msgstr "Herstart vereist door toepassing:"
 
 #. TRANSLATORS: a package needs to restart their system
-#: ../client/pk-console.c:663
+#: ../client/pk-console.c:666 ../client/pk-console-test.c:702
 msgid "Please restart the computer to complete the update."
 msgstr "Herstart a.u.b de computer om de verneuwing af te maken."
 
 #. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:666
+#: ../client/pk-console.c:669 ../client/pk-console-test.c:705
 msgid "Please logout and login to complete the update."
 msgstr "Log a.u.b uit en weer in om de vernieuwing af te maken."
 
 #. TRANSLATORS: a package needs to restart the application
-#: ../client/pk-console.c:669
+#: ../client/pk-console.c:672
 msgid "Please restart the application as it is being used."
 msgstr "Herstart a.ub. de toepassing omdat deze in gebruik was."
 
 #. TRANSLATORS: a package needs to restart their system (due to security)
-#: ../client/pk-console.c:672
+#: ../client/pk-console.c:675 ../client/pk-console-test.c:708
 msgid ""
 "Please restart the computer to complete the update as important security "
 "updates have been installed."
@@ -286,82 +293,83 @@ msgstr ""
 "beveiligings vernieuwingen geïnstaleerd zijn."
 
 #. TRANSLATORS: a package needs to restart the session (due to security)
-#: ../client/pk-console.c:675
+#: ../client/pk-console.c:678 ../client/pk-console-test.c:711
 msgid ""
 "Please logout and login to complete the update as important security updates "
 "have been installed."
 msgstr "Log a.u.b. uit en weer in om de verniewing af te maken."
 
 #. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:807
+#: ../client/pk-console.c:810
 #, c-format
 msgid "The package %s is already installed"
 msgstr "Het pakket %s is reeds geïnstalleerd"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:815
+#: ../client/pk-console.c:818
 #, c-format
 msgid "The package %s could not be installed: %s"
 msgstr "Het pakket %s kon niet worden geïnstalleerd: %s"
 
 #. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
-#: ../client/pk-console.c:841 ../client/pk-console.c:889
-#: ../client/pk-console.c:913 ../client/pk-console.c:961
-#: ../client/pk-console.c:1057 ../client/pk-console.c:1170
-#: ../client/pk-console.c:1231 ../client/pk-tools-common.c:62
-#: ../client/pk-tools-common.c:81 ../client/pk-tools-common.c:89
+#: ../client/pk-console.c:844 ../client/pk-console.c:892
+#: ../client/pk-console.c:916 ../client/pk-console.c:964
+#: ../client/pk-console.c:1060 ../client/pk-console.c:1173
+#: ../client/pk-console.c:1234 ../client/pk-tools-common.c:63
+#: ../client/pk-tools-common.c:82 ../client/pk-tools-common.c:90
 #, c-format
 msgid "Internal error: %s"
 msgstr "Interne fout: %s"
 
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:873 ../client/pk-console.c:945
-#: ../client/pk-console.c:1263
+#. ask the user
+#: ../client/pk-console.c:876 ../client/pk-console.c:948
+#: ../client/pk-console.c:1266 ../client/pk-task-text.c:299
 msgid "Proceed with changes?"
 msgstr "Doorgaan met veranderingen?"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:878 ../client/pk-console.c:950
+#: ../client/pk-console.c:881 ../client/pk-console.c:953
 msgid "The package install was canceled!"
 msgstr "De pakket installatie is afgebroken!"
 
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:897 ../client/pk-console.c:1631
+#: ../client/pk-console.c:900 ../client/pk-console.c:1634
 #, c-format
 msgid "This tool could not install the packages: %s"
 msgstr "Dit programma kon niet de pakketten %s installeren."
 
 #. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:969
+#: ../client/pk-console.c:972
 #, c-format
 msgid "This tool could not install the files: %s"
 msgstr "De bestanden %s konden niet worden geïnstalleerd."
 
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:1025
+#: ../client/pk-console.c:1028
 #, c-format
 msgid "This tool could not remove %s: %s"
 msgstr "Dit programma kon %s niet verwijderen: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:1048 ../client/pk-console.c:1086
-#: ../client/pk-console.c:1115
+#: ../client/pk-console.c:1051 ../client/pk-console.c:1089
+#: ../client/pk-console.c:1118
 #, c-format
 msgid "This tool could not remove the packages: %s"
 msgstr "Dit programma kon het pakket %s niet verwijderen."
 
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:1101
+#: ../client/pk-console.c:1104
 msgid "Proceed with additional packages?"
 msgstr "Doorgaan met additionele pakketten?"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:1106
+#: ../client/pk-console.c:1109
 msgid "The package removal was canceled!"
 msgstr "Het verwijderen van pakketten is afgebroken!"
 
 #. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:1147
+#: ../client/pk-console.c:1150
 #, c-format
 msgid "This tool could not download the package %s as it could not be found"
 msgstr ""
@@ -369,215 +377,216 @@ msgstr ""
 "kon worden."
 
 #. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:1178
+#: ../client/pk-console.c:1181
 #, c-format
 msgid "This tool could not download the packages: %s"
 msgstr "Dit programma kon de pakketten niet downloaden: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1210 ../client/pk-console.c:1222
-#: ../client/pk-console.c:1277
+#: ../client/pk-console.c:1213 ../client/pk-console.c:1225
+#: ../client/pk-console.c:1280
 #, c-format
 msgid "This tool could not update %s: %s"
 msgstr "Dit programma kon %s niet updaten: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:1268
+#: ../client/pk-console.c:1271
 msgid "The package update was canceled!"
 msgstr "De pakket vernieuwing is afgebroken!"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1301 ../client/pk-console.c:1309
+#: ../client/pk-console.c:1304 ../client/pk-console.c:1312
 #, c-format
 msgid "This tool could not get the requirements for %s: %s"
 msgstr "Dit programma kon niet de benodigdheden voor %s vinden: %s"
 
 #. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:1331 ../client/pk-console.c:1339
+#: ../client/pk-console.c:1334 ../client/pk-console.c:1342
 #, c-format
 msgid "This tool could not get the dependencies for %s: %s"
 msgstr "De afhankelijkheden voor %s konden niet worden verkregen: %s"
 
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:1361 ../client/pk-console.c:1369
+#: ../client/pk-console.c:1364 ../client/pk-console.c:1372
 #, c-format
 msgid "This tool could not get package details for %s: %s"
 msgstr "Dit programma kon geen pakketdetails vinden voor %s: %s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1391
+#: ../client/pk-console.c:1394
 #, c-format
 msgid "This tool could not find the files for %s: %s"
 msgstr "Dit programma kon de bestanden voor %s niet vinden: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1399
+#: ../client/pk-console.c:1402
 #, c-format
 msgid "This tool could not get the file list for %s: %s"
 msgstr "Dit programma kon de bestandenlijst voor %s niet vinden: %s"
 
 #. TRANSLATORS: There was an error getting the list of packages. The filename follows
-#: ../client/pk-console.c:1421
+#: ../client/pk-console.c:1424
 #, c-format
 msgid "File already exists: %s"
 msgstr "Bestand bestaat reeds: %s"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1426 ../client/pk-console.c:1482
-#: ../client/pk-console.c:1557
+#: ../client/pk-console.c:1429 ../client/pk-console.c:1485
+#: ../client/pk-console.c:1560
 msgid "Getting package list"
 msgstr "Ophalen Pakketlijst"
 
 #. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1432 ../client/pk-console.c:1488
-#: ../client/pk-console.c:1563
+#: ../client/pk-console.c:1435 ../client/pk-console.c:1491
+#: ../client/pk-console.c:1566
 #, c-format
 msgid "This tool could not get package list: %s"
 msgstr "Dit programma kon de pakketlijst niet vinden: %s"
 
 #. TRANSLATORS: There was an error saving the list
-#: ../client/pk-console.c:1443
+#: ../client/pk-console.c:1446
 #, c-format
 msgid "Failed to save to disk"
 msgstr "Vastleggen op schijf niet gelukt"
 
 #. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1477 ../client/pk-console.c:1552
+#: ../client/pk-console.c:1480 ../client/pk-console.c:1555
 #, c-format
 msgid "File does not exist: %s"
 msgstr "Bestand bestaat niet: %s"
 
 #. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1509
+#: ../client/pk-console.c:1512
 msgid "Packages to add"
 msgstr "Toe te voegen pakketten"
 
 #. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1517
+#: ../client/pk-console.c:1520
 msgid "Packages to remove"
 msgstr "Te verwijderen pakketten"
 
 #. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1585
+#: ../client/pk-console.c:1588
 #, c-format
 msgid "No new packages need to be installed"
 msgstr "Er hoeven geen nieuwe pakketten te worden toegevoegd"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1591
+#: ../client/pk-console.c:1594
 msgid "To install"
 msgstr "Te installeren"
 
 #. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1603
+#: ../client/pk-console.c:1606
 msgid "Searching for package: "
 msgstr "Pakketten worden gezocht (kan even duren): "
 
 #. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1607
+#: ../client/pk-console.c:1610
 msgid "not found."
 msgstr "niet gevonden."
 
 #. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1618
+#: ../client/pk-console.c:1621
 #, c-format
 msgid "No packages can be found to install"
 msgstr "Er kunnen geen pakketten worden gevonden om te installeren"
 
 #. TRANSLATORS: installing new packages from package list
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
-#: ../client/pk-console.c:1624
+#: ../client/pk-console.c:1627
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:885
 #, c-format
 msgid "Installing packages"
 msgstr "Pakketten installeren"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1660
+#: ../client/pk-console.c:1663
 #, c-format
 msgid "This tool could not find the update details for %s: %s"
 msgstr "Dit programma kon de update-details voor %s niet vinden: %s"
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1668
+#: ../client/pk-console.c:1671
 #, c-format
 msgid "This tool could not get the update details for %s: %s"
 msgstr "Dit programma kon de update-details voor %s niet verkrijgen: %s"
 
 #. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
-#: ../client/pk-console.c:1699
+#: ../client/pk-console.c:1702
 msgid "Error:"
 msgstr "Fout:"
 
 #. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1713
+#: ../client/pk-console.c:1716 ../client/pk-console-test.c:370
 msgid "Package description"
 msgstr "Pakketomschrijving"
 
 #. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
-#: ../client/pk-console.c:1729
+#: ../client/pk-console.c:1732 ../client/pk-console-test.c:388
 msgid "Message:"
 msgstr "Bericht:"
 
 #. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1757
+#: ../client/pk-console.c:1760 ../client/pk-console-test.c:407
 msgid "Package files"
 msgstr "Pakketbestanden"
 
 #. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1765
+#: ../client/pk-console.c:1768 ../client/pk-console-test.c:402
 msgid "No files"
 msgstr "Geen bestanden"
 
 #. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1788
+#: ../client/pk-console.c:1791
 msgid "Repository signature required"
 msgstr "Repository signatuur vereist"
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1798
+#. ask the user
+#: ../client/pk-console.c:1801 ../client/pk-task-text.c:113
 msgid "Do you accept this signature?"
 msgstr "Accepteert u deze signatuur?"
 
 #. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1802
+#: ../client/pk-console.c:1805 ../client/pk-task-text.c:117
 msgid "The signature was not accepted."
 msgstr "De signatuur werd niet geaccepteerd"
 
 #. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1836
+#: ../client/pk-console.c:1839
 msgid "End user license agreement required"
 msgstr "Eindgebruiker licentie overeenkomst vereist"
 
 #. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1843
+#: ../client/pk-console.c:1846
 msgid "Do you agree to this license?"
 msgstr "Gaat u accoord met deze licentie?"
 
 #. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1847
+#: ../client/pk-console.c:1850
 msgid "The license was refused."
 msgstr "De licentie werd geweigerd."
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1876
+#: ../client/pk-console.c:1879 ../client/pk-console-test.c:968
 msgid "The daemon crashed mid-transaction!"
 msgstr "De service is midden in de transactie gecrashed!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1929
+#: ../client/pk-console.c:1932 ../client/pk-console-test.c:1002
 msgid "PackageKit Console Interface"
 msgstr "PackageKit console-interface"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1931
+#: ../client/pk-console.c:1934 ../client/pk-console-test.c:1004
 msgid "Subcommands:"
 msgstr "Subopdrachten:"
 
 #. TRANSLATORS: command line argument, if we should show debugging information
 #. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:2024 ../client/pk-generate-pack.c:185
-#: ../client/pk-monitor.c:128
+#: ../client/pk-console.c:2027 ../client/pk-console-test.c:1095
+#: ../client/pk-generate-pack.c:187 ../client/pk-monitor.c:128
 #: ../contrib/command-not-found/pk-command-not-found.c:616
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:549
 #: ../contrib/device-rebind/pk-device-rebind.c:293 ../src/pk-main.c:211
@@ -585,174 +594,233 @@ msgid "Show extra debugging information"
 msgstr "Extra debuginformatie tonen"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:2027 ../client/pk-monitor.c:130
+#: ../client/pk-console.c:2030 ../client/pk-console-test.c:1098
+#: ../client/pk-monitor.c:130
 msgid "Show the program version and exit"
 msgstr "Programmaversie tonen en sluiten"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:2030
+#: ../client/pk-console.c:2033 ../client/pk-console-test.c:1101
 msgid "Set the filter, e.g. installed"
 msgstr "Filter instellen, bijvoorbeeld geïnstalleerd"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:2033
+#: ../client/pk-console.c:2036 ../client/pk-console-test.c:1104
 msgid "Exit without waiting for actions to complete"
 msgstr "Afsluiten zonder te wachten tot de transacties zijn afgerond"
 
 #. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:2060
+#: ../client/pk-console.c:2063
 msgid "This tool could not connect to system DBUS."
 msgstr "Er kon geen verbinding worden gelegd met system DBUS"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:2150
+#: ../client/pk-console.c:2153 ../client/pk-console-test.c:1179
 msgid "The filter specified was invalid"
 msgstr "De opgegeven filter was ongeldig"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:2169
+#: ../client/pk-console.c:2172 ../client/pk-console-test.c:1198
 msgid "A search type is required, e.g. name"
 msgstr "Een zoektype is verplicht, b.v. naam"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:2176 ../client/pk-console.c:2185
-#: ../client/pk-console.c:2194 ../client/pk-console.c:2203
+#: ../client/pk-console.c:2179 ../client/pk-console.c:2188
+#: ../client/pk-console.c:2197 ../client/pk-console.c:2206
+#: ../client/pk-console-test.c:1205 ../client/pk-console-test.c:1217
+#: ../client/pk-console-test.c:1229 ../client/pk-console-test.c:1241
 msgid "A search term is required"
 msgstr "Een zoekterm is vereist"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:2210
+#: ../client/pk-console.c:2213 ../client/pk-console-test.c:1251
 msgid "Invalid search type"
 msgstr "Ongeldig zoektype"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:2216
+#: ../client/pk-console.c:2219
 msgid "A package name or filename to install is required"
 msgstr "Een pakketnaam of bestandsnaam om te installeren is vereist"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2225
+#: ../client/pk-console.c:2228 ../client/pk-console-test.c:1278
 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:2234
+#: ../client/pk-console.c:2237 ../client/pk-console-test.c:1289
 msgid "A package name to remove is required"
 msgstr "Een te verwijderen pakketnaam is vereist"
 
 #. TRANSLATORS: the user did not specify anything about what to download or where
-#: ../client/pk-console.c:2242
+#: ../client/pk-console.c:2245 ../client/pk-console-test.c:1298
 msgid "A destination directory and the package names to download are required"
 msgstr "Een doelmap en dan de namen van te downloaden pakketten zijn vereist"
 
 #. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:2249
+#: ../client/pk-console.c:2252 ../client/pk-console-test.c:1305
 msgid "Directory not found"
 msgstr "Map niet gevonden"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2257
+#: ../client/pk-console.c:2260 ../client/pk-console-test.c:1314
 msgid "A licence identifier (eula-id) is required"
 msgstr "Een licentie indentificatie (eula-id) is vereis"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2267
+#: ../client/pk-console.c:2270 ../client/pk-console-test.c:1325
 msgid "A transaction identifier (tid) is required"
 msgstr "Een transactie indentificatie (tid) is vereist"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:2284
+#: ../client/pk-console.c:2287 ../client/pk-console-test.c:1346
 msgid "A package name to resolve is required"
 msgstr "Een pakketnaam om te gebruiken is vereist"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:2293 ../client/pk-console.c:2302
+#: ../client/pk-console.c:2296 ../client/pk-console.c:2305
+#: ../client/pk-console-test.c:1357 ../client/pk-console-test.c:1368
 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:2311
+#: ../client/pk-console.c:2314 ../client/pk-console-test.c:1379
 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:2325
+#: ../client/pk-console.c:2328 ../client/pk-console-test.c:1397
 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:2332
+#: ../client/pk-console.c:2335 ../client/pk-console-test.c:1404
 msgid "A correct role is required"
 msgstr "Een correcte rol is vereist"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2339
+#: ../client/pk-console.c:2342 ../client/pk-console-test.c:1411
 msgid "Failed to get the time since this action was last completed"
 msgstr ""
 "Verkrijgen van de tijd tussen laatste actie en deze actie is niet gelukt"
 
 #. 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:2349 ../client/pk-console.c:2361
-#: ../client/pk-console.c:2370 ../client/pk-console.c:2388
-#: ../client/pk-console.c:2397 ../client/pk-generate-pack.c:241
+#: ../client/pk-console.c:2352 ../client/pk-console.c:2364
+#: ../client/pk-console.c:2373 ../client/pk-console.c:2391
+#: ../client/pk-console.c:2400 ../client/pk-console-test.c:1421
+#: ../client/pk-console-test.c:1436 ../client/pk-console-test.c:1445
+#: ../client/pk-console-test.c:1465 ../client/pk-console-test.c:1474
+#: ../client/pk-generate-pack.c:243
 msgid "A package name is required"
 msgstr "Een pakketnaam is vereist"
 
 #. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:2379
+#: ../client/pk-console.c:2382 ../client/pk-console-test.c:1454
 msgid "A package provide string is required"
 msgstr "Een pakket geleverde string is vereist"
 
 #. TRANSLATORS: The user didn't specify a filename to create as a list
-#: ../client/pk-console.c:2406
+#: ../client/pk-console.c:2409
 msgid "A list file name to create is required"
 msgstr "Een lijstbestandsnaam om aan te maken is vereist"
 
 #. TRANSLATORS: The user didn't specify a filename to open as a list
-#: ../client/pk-console.c:2416 ../client/pk-console.c:2426
+#: ../client/pk-console.c:2419 ../client/pk-console.c:2429
 msgid "A list file to open is required"
 msgstr "Een lijstbestand om te open is vereist"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2480
+#: ../client/pk-console.c:2483 ../client/pk-console-test.c:1534
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "Optie '%s' wordt niet ondersteund"
 
 #. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2493
+#: ../client/pk-console.c:2496
 msgid "Incorrect privileges for this operation"
 msgstr "Onjuiste privileges voor deze operatie"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2496
+#. /* TRANSLATORS: User does not have permission to do this */
+#. g_print ("%s\n", _("Incorrect privileges for this operation"));
+#. TRANSLATORS: Generic failure of what they asked to do
+#: ../client/pk-console.c:2499 ../client/pk-console-test.c:1546
 msgid "Command failed"
 msgstr "Opdracht mislukt"
 
+#. TRANSLATORS: more than one package could be found that matched, to follow is a list of possible packages
+#: ../client/pk-console-test.c:521 ../client/pk-tools-common.c:131
+msgid "More than one package matches:"
+msgstr "Er zijn meerdere pakketten die overeenkomen:"
+
+#. TRANSLATORS: This finds out which package in the list to use
+#: ../client/pk-console-test.c:530 ../client/pk-tools-common.c:138
+msgid "Please choose the correct package: "
+msgstr "Kies alstublieft het juiste pakket: "
+
+#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
+#: ../client/pk-console-test.c:730
+#, c-format
+msgid "This tool could not find the available package: %s"
+msgstr "Dit programma kon het beschikbare pakket %s niet vinden."
+
+#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
+#: ../client/pk-console-test.c:758
+#, c-format
+msgid "This tool could not find the installed package: %s"
+msgstr "Dit programma kon het geïinstallerde pakket %s niet vinden."
+
+#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
+#: ../client/pk-console-test.c:786 ../client/pk-console-test.c:814
+#, c-format
+msgid "This tool could not find the package: %s"
+msgstr "Dit programma kon het pakket %s niet vinden."
+
+#. 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-test.c:842 ../client/pk-console-test.c:868
+#: ../client/pk-console-test.c:894 ../client/pk-console-test.c:920
+#: ../client/pk-console-test.c:946
+#, c-format
+msgid "This tool could not find all the packages: %s"
+msgstr "Dit programma kon niet alle pakketten vinden: %s"
+
+#. TRANSLATORS: the user did not specify what they wanted to install
+#: ../client/pk-console-test.c:1257
+msgid "A package name to install is required"
+msgstr "Een pakketnaam om te installeren is vereist"
+
+#. TRANSLATORS: the user did not specify what they wanted to install
+#: ../client/pk-console-test.c:1266
+msgid "A filename to install is required"
+msgstr "Een bestandsnaam om te installeren is vereist"
+
 #. TRANSLATORS: This is the state of the transaction
-#: ../client/pk-generate-pack.c:101
+#: ../client/pk-generate-pack.c:103
 msgid "Downloading"
 msgstr "Aan het downloaden"
 
 #. TRANSLATORS: This is when the main packages are being downloaded
-#: ../client/pk-generate-pack.c:121
+#: ../client/pk-generate-pack.c:123
 msgid "Downloading packages"
 msgstr "Pakketten aan het downloaden"
 
 #. TRANSLATORS: This is when the dependency packages are being downloaded
-#: ../client/pk-generate-pack.c:126
+#: ../client/pk-generate-pack.c:128
 msgid "Downloading dependencies"
 msgstr "Afhankelijkheden aan het downloaden"
 
 #. TRANSLATORS: we can exclude certain packages (glibc) when we know they'll exist on the target
-#: ../client/pk-generate-pack.c:188
+#: ../client/pk-generate-pack.c:190
 msgid "Set the file name of dependencies to be excluded"
 msgstr ""
 "Zet de bestandsnamen van afhankelijkheden die moeten worden uitgesloten"
 
 #. TRANSLATORS: the output location
-#: ../client/pk-generate-pack.c:191
+#: ../client/pk-generate-pack.c:193
 msgid ""
 "The output file or directory (the current directory is used if ommitted)"
 msgstr ""
@@ -760,38 +828,38 @@ msgstr ""
 "opgegeven)"
 
 #. TRANSLATORS: put a list of packages in the pack
-#: ../client/pk-generate-pack.c:194
+#: ../client/pk-generate-pack.c:196
 msgid "The package to be put into the service pack"
 msgstr "Het pakket dat in het servicepack zal worden opgenomen"
 
 #. TRANSLATORS: put all pending updates in the pack
-#: ../client/pk-generate-pack.c:197
+#: ../client/pk-generate-pack.c:199
 msgid "Put all updates available in the service pack"
 msgstr "Doe alle beschikbare updates in het servicepack"
 
 #. TRANSLATORS: This is when the user fails to supply the correct arguments
-#: ../client/pk-generate-pack.c:225
+#: ../client/pk-generate-pack.c:227
 msgid "Neither --package or --updates option selected."
 msgstr "Noch --package noch --updates als optie geselecteerd."
 
 #. TRANSLATORS: This is when the user fails to supply just one argument
-#: ../client/pk-generate-pack.c:233
+#: ../client/pk-generate-pack.c:235
 msgid "Both options selected."
 msgstr "Beide opties geselecteerd."
 
 #. TRANSLATORS: This is when the user fails to supply the output
-#: ../client/pk-generate-pack.c:249
+#: ../client/pk-generate-pack.c:251
 msgid "A output directory or file name is required"
 msgstr "Een doelmap of bestandsnaam is vereist"
 
 #. TRANSLATORS: This is when the backend doesn't have the capability to get-depends
 #. TRANSLATORS: This is when the backend doesn't have the capability to download
-#: ../client/pk-generate-pack.c:267 ../client/pk-generate-pack.c:273
+#: ../client/pk-generate-pack.c:269 ../client/pk-generate-pack.c:275
 msgid "The package manager cannot perform this type of operation."
 msgstr "De package manager kan dit type operatie niet uitvoeren."
 
 #. TRANSLATORS: This is when the distro didn't include libarchive support into PK
-#: ../client/pk-generate-pack.c:280
+#: ../client/pk-generate-pack.c:282
 msgid ""
 "Service packs cannot be created as PackageKit was not built with libarchive "
 "support."
@@ -800,55 +868,55 @@ msgstr ""
 "ondersteuning is gebouwd."
 
 #. TRANSLATORS: the user specified an absolute path, but didn't get the extension correct
-#: ../client/pk-generate-pack.c:291
+#: ../client/pk-generate-pack.c:293
 msgid "If specifying a file, the service pack name must end with"
 msgstr ""
 "Bij het specificeren van een bestand moet de servicepacknaam eindigen met"
 
 #. TRANSLATORS: This is when file already exists
-#: ../client/pk-generate-pack.c:307
+#: ../client/pk-generate-pack.c:309
 msgid "A pack with the same name already exists, do you want to overwrite it?"
 msgstr "Een pack met dezelfde naam bestaat reeds, wilt u deze overschrijven?"
 
 #. TRANSLATORS: This is when the pack was not overwritten
-#: ../client/pk-generate-pack.c:310
+#: ../client/pk-generate-pack.c:312
 msgid "The pack was not overwritten."
 msgstr "Het pack werd niet overschreven."
 
 #. TRANSLATORS: This is when the temporary directory cannot be created, the directory name follows
-#: ../client/pk-generate-pack.c:323
+#: ../client/pk-generate-pack.c:325
 msgid "Failed to create directory:"
 msgstr "Aanmaken map mislukt:"
 
 #. TRANSLATORS: This is when the list of packages from the remote computer cannot be opened
-#: ../client/pk-generate-pack.c:333
+#: ../client/pk-generate-pack.c:335
 msgid "Failed to open package list."
 msgstr "Pakketlijst openen is niet gelukt."
 
 #. TRANSLATORS: The package name is being matched up to available packages
-#: ../client/pk-generate-pack.c:344
+#: ../client/pk-generate-pack.c:346
 msgid "Finding package name."
 msgstr "Pakketnaam wordt opgezocht."
 
 #. TRANSLATORS: This is when the package cannot be found in any software source. The detailed error follows
-#: ../client/pk-generate-pack.c:348
+#: ../client/pk-generate-pack.c:350
 #, c-format
 msgid "Failed to find package '%s': %s"
 msgstr "Pakket '%s' niet gevonden: %s"
 
 #. TRANSLATORS: This is telling the user we are in the process of making the pack
-#: ../client/pk-generate-pack.c:365
+#: ../client/pk-generate-pack.c:367
 msgid "Creating service pack..."
 msgstr "Servicepack wordt aangemaakt...."
 
 #. TRANSLATORS: we succeeded in making the file
-#: ../client/pk-generate-pack.c:372
+#: ../client/pk-generate-pack.c:374
 #, c-format
 msgid "Service pack created '%s'"
 msgstr "Servicepack aangemaakt '%s'"
 
 #. TRANSLATORS: we failed to make te file
-#: ../client/pk-generate-pack.c:377
+#: ../client/pk-generate-pack.c:379
 #, c-format
 msgid "Failed to create '%s': %s"
 msgstr "'%s' aanmaken niet gelukt: %s"
@@ -862,27 +930,104 @@ msgstr "PackageKit-monitor"
 msgid "Cannot show the list of transactions"
 msgstr "Kan de lijst van transacties niet laten zien"
 
-#. TRANSLATORS: The package was not found in any software sources
-#: ../client/pk-tools-common.c:118
-#, c-format
-msgid "The package could not be found"
-msgstr "Het pakket kon niet worden gevonden"
+#. ask the user
+#: ../client/pk-task-text.c:64
+msgid "Do you want to allow installing of unsigned software?"
+msgstr "Wil het installeren van niet ondertekende software toestaan?"
 
-#. TRANSLATORS: more than one package could be found that matched, to follow is a list of possible packages
-#: ../client/pk-tools-common.c:130
-msgid "More than one package matches:"
-msgstr "Er zijn meerdere pakketten die overeenkomen:"
+#: ../client/pk-task-text.c:68
+msgid "The unsigned software will not be installed."
+msgstr "De niet ondertekende software wordt niet geïnstalleerd."
 
-#. TRANSLATORS: This finds out which package in the list to use
-#: ../client/pk-tools-common.c:137
-msgid "Please choose the correct package: "
-msgstr "Kies alstublieft het juiste pakket: "
+#: ../client/pk-task-text.c:100
+msgid "Software source signature required"
+msgstr "Softeare bron ondertekening vereist"
+
+#: ../client/pk-task-text.c:102
+msgid "Software source name"
+msgstr "Softwarebron naam"
+
+#: ../client/pk-task-text.c:103
+msgid "Key URL"
+msgstr "Sleutel URL"
+
+#: ../client/pk-task-text.c:104
+msgid "Key user"
+msgstr "Sleutel gebruiker"
+
+#: ../client/pk-task-text.c:105
+msgid "Key ID"
+msgstr "Sleutel ID"
+
+#: ../client/pk-task-text.c:106
+msgid "Key fingerprint"
+msgstr "Sleutel vingerafdruk"
+
+#: ../client/pk-task-text.c:107
+msgid "Key Timestamp"
+msgstr "Sleutel tijdstempel"
+
+#: ../client/pk-task-text.c:151
+msgid "End user licence agreement required"
+msgstr "Eindgebruiker licentie overeenkomst vereist"
+
+#: ../client/pk-task-text.c:152
+msgid "EULA ID"
+msgstr "EULA ID"
+
+#: ../client/pk-task-text.c:155
+msgid "Agreement"
+msgstr "Overeenkomst"
+
+#. ask the user
+#: ../client/pk-task-text.c:161
+msgid "Do you accept this agreement?"
+msgstr "Accepteer je deze overeenkomst?"
+
+#: ../client/pk-task-text.c:165
+msgid "The agreement was not accepted."
+msgstr "De overeenkomst werd niet geaccepteerd"
+
+#: ../client/pk-task-text.c:194
+msgid "Media change required"
+msgstr "Media verandering vereist."
+
+#: ../client/pk-task-text.c:195
+msgid "Media type"
+msgstr "Media type"
+
+#: ../client/pk-task-text.c:196
+msgid "Media ID"
+msgstr "Media ID"
+
+#: ../client/pk-task-text.c:197
+msgid "Text"
+msgstr "Tekst"
 
-#: ../client/pk-tools-common.c:162
+#. ask the user
+#: ../client/pk-task-text.c:201
+msgid "Please insert the correct media"
+msgstr "Breng a.u.b de juiste media in"
+
+#: ../client/pk-task-text.c:205
+msgid "The correct media was not inserted."
+msgstr "De juiste media was niet ingebracht."
+
+#: ../client/pk-task-text.c:303
+msgid "The transaction did not proceed."
+msgstr "De transactie ging niet verder."
+
+#: ../client/pk-text.c:50
 #, c-format
 msgid "Please enter a number from 1 to %i: "
 msgstr "Voer een nummer in van 1 tot %i: "
 
+#. TRANSLATORS: The package was not found in any software sources
+#: ../client/pk-tools-common.c:119
+#, c-format
+msgid "The package could not be found"
+msgstr "Het pakket kon niet worden gevonden"
+
 #. TRANSLATORS: when we are getting data from the daemon
 #: ../contrib/browser-plugin/pk-plugin-install.c:466
 msgid "Getting package information..."
@@ -1042,7 +1187,7 @@ msgstr "Pakket %s vinden is mislukt, of is reeds geïnstalleerd: %s"
 msgid ""
 "Don't actually install any packages, only simulate what would be installed"
 msgstr ""
-"Ik installeer geen pakketten, ik simuleer alleen maar wat geïinstallerd moet "
+"Ik installeer geen pakketten, ik simuleer alleen maar wat geïnstallerd moet "
 "worden"
 
 #. command line argument, do we skip packages that depend on the ones specified
commit e94d3d19650b9571dbe95799d0e87e5aa55d1ab6
Author: Richard Hughes <richard at hughsie.com>
Date:   Fri Sep 4 16:23:33 2009 +0100

    glib2: add a glib2-ified pkmon test program

diff --git a/client/Makefile.am b/client/Makefile.am
index d8cb840..8e95476 100644
--- a/client/Makefile.am
+++ b/client/Makefile.am
@@ -65,15 +65,13 @@ PK_GLIB2_LIBS =						\
 	$(top_builddir)/lib/packagekit-glib2/libpackagekit-glib2.la	\
 	$(NULL)
 
-noinst_PROGRAMS = pkcon-test
+noinst_PROGRAMS = pkcon-test pkmon-test
 
 # TODO: private library
 
 pkcon_test_SOURCES =					\
 	egg-debug.c					\
 	egg-debug.h					\
-	egg-string.c					\
-	egg-string.h					\
 	pk-console-test.c				\
 	pk-task-text.c					\
 	pk-task-text.h					\
@@ -92,6 +90,22 @@ pkcon_test_LDADD =					\
 pkcon_test_CFLAGS =					\
 	$(WARNINGFLAGS_C)				\
 	$(NULL)
+
+pkmon_test_SOURCES =					\
+	egg-debug.c					\
+	egg-debug.h					\
+	pk-monitor-test.c				\
+	$(NULL)
+
+pkmon_test_LDADD =					\
+	$(GLIB_LIBS)					\
+	$(DBUS_LIBS)					\
+	$(PK_GLIB2_LIBS)				\
+	$(NULL)
+
+pkmon_test_CFLAGS =					\
+	$(WARNINGFLAGS_C)				\
+	$(NULL)
 endif
 
 pkcon_SOURCES =						\
diff --git a/client/pk-monitor-test.c b/client/pk-monitor-test.c
new file mode 100644
index 0000000..59b2b76
--- /dev/null
+++ b/client/pk-monitor-test.c
@@ -0,0 +1,342 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2007-2009 Richard Hughes <richard at hughsie.com>
+ *
+ * Licensed under the GNU General Public License Version 2
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#include "config.h"
+
+#include <stdlib.h>
+#include <locale.h>
+#include <glib.h>
+#include <glib/gi18n.h>
+#include <packagekit-glib2/packagekit.h>
+
+#include "egg-debug.h"
+
+static gboolean verbose = FALSE;
+static PkClient *client = NULL;
+static GPtrArray *array = NULL;
+
+/**
+ * pk_monitor_repo_list_changed_cb:
+ **/
+static void
+pk_monitor_repo_list_changed_cb (PkControl *control, gpointer data)
+{
+	g_print ("repo-list-changed\n");
+}
+
+/**
+ * pk_monitor_updates_changed_cb:
+ **/
+static void
+pk_monitor_updates_changed_cb (PkControl *control, gpointer data)
+{
+	g_print ("updates-changed\n");
+}
+
+/**
+ * pk_connection_changed_cb:
+ **/
+static void
+pk_connection_changed_cb (PkControl *control, gboolean connected, gpointer data)
+{
+	g_print ("daemon connected=%i\n", connected);
+}
+
+/**
+ * pk_monitor_locked_cb:
+ **/
+static void
+pk_monitor_locked_cb (PkControl *control, gboolean is_locked, gpointer data)
+{
+	if (is_locked)
+		g_print ("backend locked\n");
+	else
+		g_print ("backend unlocked\n");
+}
+
+/**
+ * pk_monitor_adopt_cb:
+ **/
+static void
+pk_monitor_adopt_cb (PkClient *_client, GAsyncResult *res, const gchar *tid)
+{
+	GError *error = NULL;
+	PkResults *results = NULL;
+	PkExitEnum exit_enum;
+
+	/* get the results */
+	results = pk_client_generic_finish (client, res, &error);
+	if (results == NULL) {
+		egg_warning ("failed to adopt: %s", error->message);
+		g_error_free (error);
+		goto out;
+	}
+
+	exit_enum = pk_results_get_exit_code (results);
+	g_print ("%s\texit code: %s\n", tid, pk_exit_enum_to_text (exit_enum));
+out:
+	if (results != NULL)
+		g_object_unref (results);
+}
+
+/**
+ * pk_monitor_progress_cb:
+ **/
+static void
+pk_monitor_progress_cb (PkProgress *progress, PkProgressType type, const gchar *tid)
+{
+	PkRoleEnum role;
+	PkStatusEnum status;
+	guint percentage;
+	gboolean allow_cancel;
+	gchar *package_id;
+
+	/* get data */
+	g_object_get (progress,
+		      "role", &role,
+		      "status", &status,
+		      "percentage", &percentage,
+		      "allow-cancel", &allow_cancel,
+		      "package-id", &package_id,
+		      NULL);
+
+	if (type == PK_PROGRESS_TYPE_ROLE) {
+		g_print ("%s\trole         %s\n", tid, pk_role_enum_to_text (role));
+	} else if (type == PK_PROGRESS_TYPE_PACKAGE_ID) {
+		g_print ("%s\tpackage      %s\n", tid, package_id);
+	} else if (type == PK_PROGRESS_TYPE_PERCENTAGE) {
+		g_print ("%s\tpercentage   %i\n", tid, percentage);
+	} else if (type == PK_PROGRESS_TYPE_ALLOW_CANCEL) {
+		g_print ("%s\tallow_cancel %i\n", tid, allow_cancel);
+	} else if (type == PK_PROGRESS_TYPE_STATUS) {
+		g_print ("%s\tstatus       %s\n", tid, pk_status_enum_to_text (status));
+	}
+	g_free (package_id);
+}
+
+/**
+ * pk_monitor_list_add:
+ **/
+static void
+pk_monitor_list_add (const gchar *transaction_id)
+{
+	gchar *tid;
+
+	/* adopt client */
+	tid = g_strdup (transaction_id);
+	pk_client_adopt_async (client, transaction_id, NULL,
+			       (PkProgressCallback) pk_monitor_progress_cb, tid,
+			       (GAsyncReadyCallback) pk_monitor_adopt_cb, tid);
+	/* add tid to array */
+	g_ptr_array_add (array, tid);
+}
+
+/**
+ * pk_monitor_in_array:
+ **/
+static gboolean
+pk_monitor_in_array (GPtrArray *_array, const gchar *text)
+{
+	guint i;
+	const gchar *tmp;
+	for (i=0; i<_array->len; i++) {
+		tmp = g_ptr_array_index (_array, i);
+		if (g_strcmp0 (text, tmp) == 0)
+			return TRUE;
+	}
+	return FALSE;
+}
+
+/**
+ * pk_monitor_list_print:
+ **/
+static void
+pk_monitor_list_print (gchar **list)
+{
+	guint i;
+	gboolean ret;
+
+	g_print ("Transactions:\n");
+	if (list[0] == NULL) {
+		g_print (" [none]\n");
+		return;
+	}
+	for (i=0; list[i] != NULL; i++) {
+		g_print (" %i\t%s\n", i+1, list[i]);
+
+		/* check to see if tid is in array */
+		ret = pk_monitor_in_array (array, list[i]);
+		if (!ret)
+			pk_monitor_list_add (list[i]);
+	}
+}
+
+/**
+ * pk_monitor_get_transaction_list_cb:
+ **/
+static void
+pk_monitor_get_transaction_list_cb (PkControl *control, GAsyncResult *res, gpointer user_data)
+{
+	GError *error = NULL;
+	gchar **list;
+
+	/* get the result */
+	list = pk_control_get_transaction_list_finish (control, res, &error);
+	if (list == NULL) {
+		g_print ("%s: %s", _("Failed to get transaction list"), error->message);
+		g_error_free (error);
+		return;
+	}
+	pk_monitor_list_print (list);
+	g_strfreev (list);
+}
+
+/**
+ * pk_monitor_get_transaction_list:
+ **/
+static void
+pk_monitor_get_transaction_list (PkControl *control)
+{
+	egg_debug ("refreshing task list");
+	pk_control_get_transaction_list_async (control, NULL,
+					       (GAsyncReadyCallback) pk_monitor_get_transaction_list_cb, NULL);
+}
+
+/**
+ * pk_monitor_get_daemon_state_cb:
+ **/
+static void
+pk_monitor_get_daemon_state_cb (PkControl *control, GAsyncResult *res, gpointer user_data)
+{
+	GError *error = NULL;
+	gchar *state;
+
+	/* get the result */
+	state = pk_control_get_daemon_state_finish (control, res, &error);
+	if (state == NULL) {
+		g_print ("%s: %s", _("Failed to get daemon state"), error->message);
+		g_error_free (error);
+		goto out;
+	}
+	g_print ("Daemon state: '%s'\n", state);
+out:
+	g_free (state);
+}
+
+/**
+ * pk_monitor_get_daemon_state:
+ **/
+static void
+pk_monitor_get_daemon_state (PkControl *control)
+{
+	pk_control_get_daemon_state_async (control, NULL,
+					   (GAsyncReadyCallback) pk_monitor_get_daemon_state_cb, NULL);
+}
+
+
+/**
+ * pk_monitor_task_list_changed_cb:
+ **/
+static void
+pk_monitor_task_list_changed_cb (PkControl *control)
+{
+	pk_monitor_get_transaction_list (control);
+
+	/* only print state when verbose */
+	if (verbose)
+		pk_monitor_get_daemon_state (control);
+}
+
+/**
+ * main:
+ **/
+int
+main (int argc, char *argv[])
+{
+	GMainLoop *loop;
+	gboolean program_version = FALSE;
+	GOptionContext *context;
+	gint retval = EXIT_SUCCESS;
+	PkControl *control;
+
+	const GOptionEntry options[] = {
+		{ "verbose", 'v', 0, G_OPTION_ARG_NONE, &verbose,
+			_("Show extra debugging information"), NULL },
+		{ "version", '\0', 0, G_OPTION_ARG_NONE, &program_version,
+			_("Show the program version and exit"), NULL},
+		{ NULL}
+	};
+
+	setlocale (LC_ALL, "");
+	bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR);
+	bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
+	textdomain (GETTEXT_PACKAGE);
+
+	if (! g_thread_supported ())
+		g_thread_init (NULL);
+	g_type_init ();
+
+	context = g_option_context_new (NULL);
+	/* TRANSLATORS: this is a program that monitors PackageKit */
+	g_option_context_set_summary (context, _("PackageKit Monitor"));
+	g_option_context_add_main_entries (context, options, NULL);
+	g_option_context_parse (context, &argc, &argv, NULL);
+	g_option_context_free (context);
+
+	if (program_version) {
+		g_print (VERSION "\n");
+		goto out;
+	}
+
+	egg_debug_init (verbose);
+
+	loop = g_main_loop_new (NULL, FALSE);
+
+	control = pk_control_new ();
+	client = pk_client_new ();
+	array = g_ptr_array_new_with_free_func (g_free);
+	g_signal_connect (control, "locked",
+			  G_CALLBACK (pk_monitor_locked_cb), NULL);
+	g_signal_connect (control, "repo-list-changed",
+			  G_CALLBACK (pk_monitor_repo_list_changed_cb), NULL);
+	g_signal_connect (control, "updates-changed",
+			  G_CALLBACK (pk_monitor_updates_changed_cb), NULL);
+	g_signal_connect (control, "transaction-list-changed",
+			  G_CALLBACK (pk_monitor_task_list_changed_cb), NULL);
+	g_signal_connect (control, "connection-changed",
+			  G_CALLBACK (pk_connection_changed_cb), NULL);
+
+	/* coldplug */
+	pk_monitor_get_transaction_list (control);
+
+	/* only print state when verbose */
+	if (verbose)
+		pk_monitor_get_daemon_state (control);
+
+	/* spin */
+	g_main_loop_run (loop);
+
+	g_object_unref (control);
+	g_object_unref (client);
+	g_ptr_array_unref (array);
+out:
+	return retval;
+}
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 94a5b47..0d1e85e 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -5,6 +5,7 @@ client/pk-console.c
 client/pk-console-test.c
 client/pk-generate-pack.c
 client/pk-monitor.c
+client/pk-monitor-test.c
 client/pk-task-text.c
 client/pk-text.c
 client/pk-tools-common.c
commit 468b9156fe92898fcd92221690644316bfb7a679
Author: Richard Hughes <richard at hughsie.com>
Date:   Fri Sep 4 16:16:13 2009 +0100

    glib2: alex tells me the async methods should return a copy, not const

diff --git a/client/pk-console-test.c b/client/pk-console-test.c
index 119ea1a..5fd04c6 100644
--- a/client/pk-console-test.c
+++ b/client/pk-console-test.c
@@ -423,11 +423,13 @@ typedef struct {
 static void
 pk_console_sync_resolve_cb (PkClient *client, GAsyncResult *res, PkConsoleSyncHelper *helper)
 {
-	const PkResults *results;
+	PkResults *results;
 	/* get the result */
 	results = pk_client_generic_finish (client, res, helper->error);
-	if (results != NULL)
+	if (results != NULL) {
+		g_object_unref (results);
 		helper->results = g_object_ref (G_OBJECT (results));
+	}
 	g_main_loop_quit (helper->loop);
 }
 
@@ -606,7 +608,7 @@ static void
 pk_console_finished_cb (GObject *object, GAsyncResult *res, gpointer data)
 {
 	const PkResultItemErrorCode *error_item;
-	const PkResults *results;
+	PkResults *results;
 	GError *error = NULL;
 	GPtrArray *array;
 	PkExitEnum exit_enum;
@@ -711,6 +713,8 @@ pk_console_finished_cb (GObject *object, GAsyncResult *res, gpointer data)
 		g_print ("%s\n", _("Please logout and login to complete the update as important security updates have been installed."));
 	}
 out:
+	if (results != NULL)
+		g_object_unref (results);
 	g_main_loop_quit (loop);
 }
 
diff --git a/client/pk-task-text.c b/client/pk-task-text.c
index a0e4f7e..3ec7480 100644
--- a/client/pk-task-text.c
+++ b/client/pk-task-text.c
@@ -49,7 +49,7 @@ G_DEFINE_TYPE (PkTaskText, pk_task_text, PK_TYPE_TASK)
  * pk_task_text_untrusted_question:
  **/
 static void
-dkp_task_text_untrusted_question (PkTask *task, guint request, const PkResults *results)
+dkp_task_text_untrusted_question (PkTask *task, guint request, PkResults *results)
 {
 	gboolean ret;
 	PkTaskTextPrivate *priv = PK_TASK_TEXT(task)->priv;
@@ -74,7 +74,7 @@ dkp_task_text_untrusted_question (PkTask *task, guint request, const PkResults *
  * pk_task_text_key_question:
  **/
 static void
-dkp_task_text_key_question (PkTask *task, guint request, const PkResults *results)
+dkp_task_text_key_question (PkTask *task, guint request, PkResults *results)
 {
 	guint i;
 	gboolean ret;
@@ -125,7 +125,7 @@ dkp_task_text_key_question (PkTask *task, guint request, const PkResults *result
  * pk_task_text_eula_question:
  **/
 static void
-dkp_task_text_eula_question (PkTask *task, guint request, const PkResults *results)
+dkp_task_text_eula_question (PkTask *task, guint request, PkResults *results)
 {
 	guint i;
 	gboolean ret;
@@ -173,7 +173,7 @@ dkp_task_text_eula_question (PkTask *task, guint request, const PkResults *resul
  * pk_task_text_media_change_question:
  **/
 static void
-dkp_task_text_media_change_question (PkTask *task, guint request, const PkResults *results)
+dkp_task_text_media_change_question (PkTask *task, guint request, PkResults *results)
 {
 	guint i;
 	gboolean ret;
@@ -248,7 +248,7 @@ dkp_task_text_simulate_question_type_to_text (PkInfoEnum info)
  * pk_task_text_simulate_question:
  **/
 static void
-dkp_task_text_simulate_question (PkTask *task, guint request, const PkResults *results)
+dkp_task_text_simulate_question (PkTask *task, guint request, PkResults *results)
 {
 	guint i;
 	guint len;
@@ -373,7 +373,7 @@ pk_task_text_test_install_packages_cb (GObject *object, GAsyncResult *res, EggTe
 {
 	PkTaskText *task = PK_TASK_TEXT (object);
 	GError *error = NULL;
-	const PkResults *results = NULL;
+	PkResults *results;
 	PkExitEnum exit_enum;
 	GPtrArray *packages;
 	const PkResultItemPackage *item;
@@ -384,7 +384,7 @@ pk_task_text_test_install_packages_cb (GObject *object, GAsyncResult *res, EggTe
 	if (results == NULL) {
 		egg_test_failed (test, "failed to resolve: %s", error->message);
 		g_error_free (error);
-		return;
+		goto out;
 	}
 
 	exit_enum = pk_results_get_exit_code (results);
@@ -407,6 +407,9 @@ pk_task_text_test_install_packages_cb (GObject *object, GAsyncResult *res, EggTe
 	g_ptr_array_unref (packages);
 
 	egg_debug ("results exit enum = %s", pk_exit_enum_to_text (exit_enum));
+out:
+	if (results != NULL)
+		g_object_unref (results);
 	egg_test_loop_quit (test);
 }
 
diff --git a/lib/packagekit-glib2/pk-client.c b/lib/packagekit-glib2/pk-client.c
index 6c7016c..d763e9d 100644
--- a/lib/packagekit-glib2/pk-client.c
+++ b/lib/packagekit-glib2/pk-client.c
@@ -1096,24 +1096,22 @@ pk_client_get_tid_cb (GObject *object, GAsyncResult *res, PkClientState *state)
 {
 	PkControl *control = PK_CONTROL (object);
 	GError *error = NULL;
-	const gchar *tid = NULL;
 	const gchar *locale;
 
-	tid = pk_control_get_tid_finish (control, res, &error);
-	if (tid == NULL) {
+	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;
 	}
 
-	egg_debug ("tid = %s", tid);
-	state->tid = g_strdup (tid);
+	egg_debug ("tid = %s", state->tid);
 
 	/* get a connection to the transaction interface */
 	state->proxy = dbus_g_proxy_new_for_name (state->client->priv->connection,
-						  PK_DBUS_SERVICE, tid, PK_DBUS_INTERFACE_TRANSACTION);
+						  PK_DBUS_SERVICE, state->tid, PK_DBUS_INTERFACE_TRANSACTION);
 	if (state->proxy == NULL)
-		egg_error ("Cannot connect to PackageKit on %s", tid);
+		egg_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);
@@ -1141,9 +1139,9 @@ pk_client_get_tid_cb (GObject *object, GAsyncResult *res, PkClientState *state)
  *
  * Gets the result from the asynchronous function.
  *
- * Return value: the #PkResults, or %NULL
+ * Return value: the #PkResults, or %NULL. Free with g_object_unref()
  **/
-const PkResults *
+PkResults *
 pk_client_generic_finish (PkClient *client, GAsyncResult *res, GError **error)
 {
 	GSimpleAsyncResult *simple;
@@ -1156,7 +1154,7 @@ pk_client_generic_finish (PkClient *client, GAsyncResult *res, GError **error)
 	if (g_simple_async_result_propagate_error (simple, error))
 		return NULL;
 
-	return g_simple_async_result_get_op_res_gpointer (simple);
+	return g_object_ref (g_simple_async_result_get_op_res_gpointer (simple));
 }
 
 /**
@@ -3182,7 +3180,7 @@ pk_client_test_resolve_cb (GObject *object, GAsyncResult *res, EggTest *test)
 {
 	PkClient *client = PK_CLIENT (object);
 	GError *error = NULL;
-	const PkResults *results = NULL;
+	PkResults *results = NULL;
 	PkExitEnum exit_enum;
 	GPtrArray *packages;
 	const PkResultItemPackage *item;
@@ -3193,7 +3191,7 @@ pk_client_test_resolve_cb (GObject *object, GAsyncResult *res, EggTest *test)
 	if (results == NULL) {
 		egg_test_failed (test, "failed to resolve: %s", error->message);
 		g_error_free (error);
-		return;
+		goto out;
 	}
 
 	exit_enum = pk_results_get_exit_code (results);
@@ -3216,6 +3214,9 @@ pk_client_test_resolve_cb (GObject *object, GAsyncResult *res, EggTest *test)
 	g_ptr_array_unref (packages);
 
 	egg_debug ("results exit enum = %s", pk_exit_enum_to_text (exit_enum));
+out:
+	if (results != NULL)
+		g_object_unref (results);
 	egg_test_loop_quit (test);
 }
 
@@ -3224,7 +3225,7 @@ pk_client_test_get_details_cb (GObject *object, GAsyncResult *res, EggTest *test
 {
 	PkClient *client = PK_CLIENT (object);
 	GError *error = NULL;
-	const PkResults *results = NULL;
+	PkResults *results = NULL;
 	PkExitEnum exit_enum;
 	GPtrArray *details;
 	const PkResultItemDetails *item;
@@ -3235,7 +3236,7 @@ pk_client_test_get_details_cb (GObject *object, GAsyncResult *res, EggTest *test
 	if (results == NULL) {
 		egg_test_failed (test, "failed to resolve: %s", error->message);
 		g_error_free (error);
-		return;
+		goto out;
 	}
 
 	exit_enum = pk_results_get_exit_code (results);
@@ -3258,6 +3259,9 @@ pk_client_test_get_details_cb (GObject *object, GAsyncResult *res, EggTest *test
 	g_ptr_array_unref (details);
 
 	egg_debug ("results exit enum = %s", pk_exit_enum_to_text (exit_enum));
+out:
+	if (results != NULL)
+		g_object_unref (results);
 	egg_test_loop_quit (test);
 }
 
@@ -3266,7 +3270,7 @@ pk_client_test_get_updates_cb (GObject *object, GAsyncResult *res, EggTest *test
 {
 	PkClient *client = PK_CLIENT (object);
 	GError *error = NULL;
-	const PkResults *results = NULL;
+	PkResults *results = NULL;
 	PkExitEnum exit_enum;
 	PkPackageSack *sack;
 	guint size;
@@ -3276,7 +3280,7 @@ pk_client_test_get_updates_cb (GObject *object, GAsyncResult *res, EggTest *test
 	if (results == NULL) {
 		egg_test_failed (test, "failed to resolve: %s", error->message);
 		g_error_free (error);
-		return;
+		goto out;
 	}
 
 	exit_enum = pk_results_get_exit_code (results);
@@ -3295,6 +3299,9 @@ pk_client_test_get_updates_cb (GObject *object, GAsyncResult *res, EggTest *test
 	g_object_unref (sack);
 
 	egg_debug ("results exit enum = %s", pk_exit_enum_to_text (exit_enum));
+out:
+	if (results != NULL)
+		g_object_unref (results);
 	egg_test_loop_quit (test);
 }
 
@@ -3303,7 +3310,7 @@ pk_client_test_search_name_cb (GObject *object, GAsyncResult *res, EggTest *test
 {
 	PkClient *client = PK_CLIENT (object);
 	GError *error = NULL;
-	const PkResults *results = NULL;
+	PkResults *results = NULL;
 	PkExitEnum exit_enum;
 	const PkResultItemErrorCode *error_item;
 
@@ -3312,7 +3319,7 @@ pk_client_test_search_name_cb (GObject *object, GAsyncResult *res, EggTest *test
 	if (results == NULL) {
 		egg_test_failed (test, "failed to resolve: %s", error->message);
 		g_error_free (error);
-		return;
+		goto out;
 	}
 
 	exit_enum = pk_results_get_exit_code (results);
@@ -3325,7 +3332,9 @@ pk_client_test_search_name_cb (GObject *object, GAsyncResult *res, EggTest *test
 		egg_test_failed (test, "failed to get error code: %i", error_item->code);
 	if (g_strcmp0 (error_item->details, "The task was stopped successfully") != 0)
 		egg_test_failed (test, "failed to get error message: %s", error_item->details);
-
+out:
+	if (results != NULL)
+		g_object_unref (results);
 	egg_test_loop_quit (test);
 }
 
diff --git a/lib/packagekit-glib2/pk-client.h b/lib/packagekit-glib2/pk-client.h
index ef8a77d..8e454a6 100644
--- a/lib/packagekit-glib2/pk-client.h
+++ b/lib/packagekit-glib2/pk-client.h
@@ -103,7 +103,7 @@ PkClient	*pk_client_new				(void);
 void		 pk_client_test				(gpointer	 user_data);
 
 /* get transaction results */
-const PkResults	*pk_client_generic_finish		(PkClient		*client,
+PkResults	*pk_client_generic_finish		(PkClient		*client,
 							 GAsyncResult		*res,
 							 GError			**error);
 
diff --git a/lib/packagekit-glib2/pk-control.c b/lib/packagekit-glib2/pk-control.c
index c4c9dba..c4bcd47 100644
--- a/lib/packagekit-glib2/pk-control.c
+++ b/lib/packagekit-glib2/pk-control.c
@@ -254,7 +254,7 @@ pk_control_get_tid_async (PkControl *control, GCancellable *cancellable, GAsyncR
  *
  * Gets the result from the asynchronous function.
  *
- * Return value: the ID, or %NULL if unset
+ * Return value: the ID, or %NULL if unset, free with g_free()
  **/
 gchar *
 pk_control_get_tid_finish (PkControl *control, GAsyncResult *res, GError **error)
@@ -274,7 +274,7 @@ pk_control_get_tid_finish (PkControl *control, GAsyncResult *res, GError **error
 	if (g_simple_async_result_propagate_error (simple, error))
 		return NULL;
 
-	return g_simple_async_result_get_op_res_gpointer (simple);
+	return g_strdup (g_simple_async_result_get_op_res_gpointer (simple));
 }
 
 /***************************************************************************************************/
@@ -392,7 +392,7 @@ pk_control_get_daemon_state_async (PkControl *control, GCancellable *cancellable
  *
  * Gets the result from the asynchronous function.
  *
- * Return value: the ID, or %NULL if unset
+ * Return value: the ID, or %NULL if unset, free with g_free()
  **/
 gchar *
 pk_control_get_daemon_state_finish (PkControl *control, GAsyncResult *res, GError **error)
@@ -412,7 +412,7 @@ pk_control_get_daemon_state_finish (PkControl *control, GAsyncResult *res, GErro
 	if (g_simple_async_result_propagate_error (simple, error))
 		return NULL;
 
-	return g_simple_async_result_get_op_res_gpointer (simple);
+	return g_strdup (g_simple_async_result_get_op_res_gpointer (simple));
 }
 
 /***************************************************************************************************/
@@ -669,7 +669,7 @@ pk_control_get_transaction_list_async (PkControl *control, GCancellable *cancell
  *
  * Gets the result from the asynchronous function.
  *
- * Return value: A GStrv list of transaction ID's
+ * Return value: A GStrv list of transaction ID's, free with g_strfreev()
  **/
 gchar **
 pk_control_get_transaction_list_finish (PkControl *control, GAsyncResult *res, GError **error)
@@ -689,7 +689,7 @@ pk_control_get_transaction_list_finish (PkControl *control, GAsyncResult *res, G
 	if (g_simple_async_result_propagate_error (simple, error))
 		return NULL;
 
-	return g_simple_async_result_get_op_res_gpointer (simple);
+	return g_strdupv (g_simple_async_result_get_op_res_gpointer (simple));
 }
 
 /***************************************************************************************************/
@@ -1860,7 +1860,7 @@ pk_control_test_get_tid_cb (GObject *object, GAsyncResult *res, EggTest *test)
 {
 	PkControl *control = PK_CONTROL (object);
 	GError *error = NULL;
-	const gchar *tid;
+	gchar *tid;
 
 	/* get the result */
 	tid = pk_control_get_tid_finish (control, res, &error);
@@ -1871,6 +1871,7 @@ pk_control_test_get_tid_cb (GObject *object, GAsyncResult *res, EggTest *test)
 	}
 
 	egg_debug ("tid = %s", tid);
+	g_free (tid);
 	egg_test_loop_quit (test);
 }
 
diff --git a/lib/packagekit-glib2/pk-package-sack.c b/lib/packagekit-glib2/pk-package-sack.c
index bd34f98..2b8de04 100644
--- a/lib/packagekit-glib2/pk-package-sack.c
+++ b/lib/packagekit-glib2/pk-package-sack.c
@@ -454,7 +454,7 @@ pk_package_sack_merge_resolve_cb (GObject *source_object, GAsyncResult *res, PkP
 {
 	PkClient *client = PK_CLIENT (source_object);
 	GError *error = NULL;
-	const PkResults *results;
+	PkResults *results;
 	GPtrArray *packages = NULL;
 	const PkResultItemPackage *item;
 	guint i;
@@ -506,6 +506,8 @@ pk_package_sack_merge_resolve_cb (GObject *source_object, GAsyncResult *res, PkP
 	/* we're done */
 	pk_package_sack_merge_bool_state_finish (state, error);
 out:
+	if (results != NULL)
+		g_object_unref (results);
 	if (packages != NULL)
 		g_ptr_array_unref (packages);
 }
@@ -589,7 +591,7 @@ pk_package_sack_merge_details_cb (GObject *source_object, GAsyncResult *res, PkP
 {
 	PkClient *client = PK_CLIENT (source_object);
 	GError *error = NULL;
-	const PkResults *results;
+	PkResults *results;
 	GPtrArray *details = NULL;
 	const PkResultItemDetails *item;
 	guint i;
@@ -643,6 +645,8 @@ pk_package_sack_merge_details_cb (GObject *source_object, GAsyncResult *res, PkP
 	/* we're done */
 	pk_package_sack_merge_bool_state_finish (state, error);
 out:
+	if (results != NULL)
+		g_object_unref (results);
 	if (details != NULL)
 		g_ptr_array_unref (details);
 }
@@ -700,7 +704,7 @@ pk_package_sack_merge_update_detail_cb (GObject *source_object, GAsyncResult *re
 {
 	PkClient *client = PK_CLIENT (source_object);
 	GError *error = NULL;
-	const PkResults *results;
+	PkResults *results;
 	GPtrArray *update_details = NULL;
 	const PkResultItemUpdateDetail *item;
 	guint i;
@@ -760,6 +764,8 @@ pk_package_sack_merge_update_detail_cb (GObject *source_object, GAsyncResult *re
 	/* we're done */
 	pk_package_sack_merge_bool_state_finish (state, error);
 out:
+	if (results != NULL)
+		g_object_unref (results);
 	if (update_details != NULL)
 		g_ptr_array_unref (update_details);
 }
diff --git a/lib/packagekit-glib2/pk-results.c b/lib/packagekit-glib2/pk-results.c
index 3d562b3..35a29df 100644
--- a/lib/packagekit-glib2/pk-results.c
+++ b/lib/packagekit-glib2/pk-results.c
@@ -744,7 +744,7 @@ pk_results_add_message (PkResults *results, PkMessageEnum message_enum, const gc
  * Return value: The #PkExitEnum or %PK_EXIT_ENUM_UNKNOWN for error or if it was not set
  **/
 PkExitEnum
-pk_results_get_exit_code (const PkResults *results)
+pk_results_get_exit_code (PkResults *results)
 {
 	g_return_val_if_fail (PK_IS_RESULTS (results), PK_EXIT_ENUM_UNKNOWN);
 	return results->priv->exit_enum;
@@ -759,7 +759,7 @@ pk_results_get_exit_code (const PkResults *results)
  * Return value: A #GPtrArray array of #PkResultItemDetails's, free with g_ptr_array_unref().
  **/
 GPtrArray *
-pk_results_get_package_array (const PkResults *results)
+pk_results_get_package_array (PkResults *results)
 {
 	g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
 	return g_ptr_array_ref (results->priv->package_array);
@@ -774,7 +774,7 @@ pk_results_get_package_array (const PkResults *results)
  * Return value: A #PkPackageSack of data.
  **/
 PkPackageSack *
-pk_results_get_package_sack (const PkResults *results)
+pk_results_get_package_sack (PkResults *results)
 {
 	PkPackage *package;
 	PkPackageSack *sack;
@@ -822,7 +822,7 @@ pk_results_get_package_sack (const PkResults *results)
  * Return value: A #GPtrArray array of #PkResultItemPackage's, free with g_ptr_array_unref().
  **/
 GPtrArray *
-pk_results_get_details_array (const PkResults *results)
+pk_results_get_details_array (PkResults *results)
 {
 	g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
 	return g_ptr_array_ref (results->priv->details_array);
@@ -837,7 +837,7 @@ pk_results_get_details_array (const PkResults *results)
  * Return value: A #GPtrArray array of #PkResultItemUpdateDetail's, free with g_ptr_array_unref().
  **/
 GPtrArray *
-pk_results_get_update_detail_array (const PkResults *results)
+pk_results_get_update_detail_array (PkResults *results)
 {
 	g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
 	return g_ptr_array_ref (results->priv->update_detail_array);
@@ -852,7 +852,7 @@ pk_results_get_update_detail_array (const PkResults *results)
  * Return value: A #GPtrArray array of #PkResultItemCategory's, free with g_ptr_array_unref().
  **/
 GPtrArray *
-pk_results_get_category_array (const PkResults *results)
+pk_results_get_category_array (PkResults *results)
 {
 	g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
 	return g_ptr_array_ref (results->priv->category_array);
@@ -867,7 +867,7 @@ pk_results_get_category_array (const PkResults *results)
  * Return value: A #GPtrArray array of #PkResultItemDistroUpgrade's, free with g_ptr_array_unref().
  **/
 GPtrArray *
-pk_results_get_distro_upgrade_array (const PkResults *results)
+pk_results_get_distro_upgrade_array (PkResults *results)
 {
 	g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
 	return g_ptr_array_ref (results->priv->distro_upgrade_array);
@@ -882,7 +882,7 @@ pk_results_get_distro_upgrade_array (const PkResults *results)
  * Return value: A #GPtrArray array of #PkResultItemRequireRestart's, free with g_ptr_array_unref().
  **/
 GPtrArray *
-pk_results_get_require_restart_array (const PkResults *results)
+pk_results_get_require_restart_array (PkResults *results)
 {
 	g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
 	return g_ptr_array_ref (results->priv->require_restart_array);
@@ -903,7 +903,7 @@ pk_results_get_require_restart_array (const PkResults *results)
  * Return value: a #PkRestartEnum value, e.g. PK_RESTART_ENUM_SYSTEM
  **/
 PkRestartEnum
-pk_results_get_require_restart_worst (const PkResults *results)
+pk_results_get_require_restart_worst (PkResults *results)
 {
 	GPtrArray *array;
 	PkRestartEnum worst = 0;
@@ -931,7 +931,7 @@ pk_results_get_require_restart_worst (const PkResults *results)
  * Return value: A #GPtrArray array of #PkResultItemTransaction's, free with g_ptr_array_unref().
  **/
 GPtrArray *
-pk_results_get_transaction_array (const PkResults *results)
+pk_results_get_transaction_array (PkResults *results)
 {
 	g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
 	return g_ptr_array_ref (results->priv->transaction_array);
@@ -946,7 +946,7 @@ pk_results_get_transaction_array (const PkResults *results)
  * Return value: A #GPtrArray array of #PkResultItemFiles's, free with g_ptr_array_unref().
  **/
 GPtrArray *
-pk_results_get_files_array (const PkResults *results)
+pk_results_get_files_array (PkResults *results)
 {
 	g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
 	return g_ptr_array_ref (results->priv->files_array);
@@ -961,7 +961,7 @@ pk_results_get_files_array (const PkResults *results)
  * Return value: A #GPtrArray array of #PkResultItemRepoSignatureRequired's, free with g_ptr_array_unref().
  **/
 GPtrArray *
-pk_results_get_repo_signature_required_array (const PkResults *results)
+pk_results_get_repo_signature_required_array (PkResults *results)
 {
 	g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
 	return g_ptr_array_ref (results->priv->repo_signature_required_array);
@@ -976,7 +976,7 @@ pk_results_get_repo_signature_required_array (const PkResults *results)
  * Return value: A #GPtrArray array of #PkResultItemEulaRequired's, free with g_ptr_array_unref().
  **/
 GPtrArray *
-pk_results_get_eula_required_array (const PkResults *results)
+pk_results_get_eula_required_array (PkResults *results)
 {
 	g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
 	return g_ptr_array_ref (results->priv->eula_required_array);
@@ -991,7 +991,7 @@ pk_results_get_eula_required_array (const PkResults *results)
  * Return value: A #GPtrArray array of #PkResultItemMediaChangeRequired's, free with g_ptr_array_unref().
  **/
 GPtrArray *
-pk_results_get_media_change_required_array (const PkResults *results)
+pk_results_get_media_change_required_array (PkResults *results)
 {
 	g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
 	return g_ptr_array_ref (results->priv->media_change_required_array);
@@ -1006,7 +1006,7 @@ pk_results_get_media_change_required_array (const PkResults *results)
  * Return value: A #GPtrArray array of #PkResultItemRepoDetail's, free with g_ptr_array_unref().
  **/
 GPtrArray *
-pk_results_get_repo_detail_array (const PkResults *results)
+pk_results_get_repo_detail_array (PkResults *results)
 {
 	g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
 	return g_ptr_array_ref (results->priv->repo_detail_array);
@@ -1021,7 +1021,7 @@ pk_results_get_repo_detail_array (const PkResults *results)
  * Return value: A #GPtrArray array of #PkResultItemErrorCode's, free with g_ptr_array_unref().
  **/
 GPtrArray *
-pk_results_get_error_code_array (const PkResults *results)
+pk_results_get_error_code_array (PkResults *results)
 {
 	g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
 	return g_ptr_array_ref (results->priv->error_code_array);
@@ -1036,7 +1036,7 @@ pk_results_get_error_code_array (const PkResults *results)
  * Return value: A #PkResultItemErrorCode, or %NULL
  **/
 const PkResultItemErrorCode *
-pk_results_get_error_code (const PkResults *results)
+pk_results_get_error_code (PkResults *results)
 {
 	GPtrArray *array;
 
@@ -1057,7 +1057,7 @@ pk_results_get_error_code (const PkResults *results)
  * Return value: A #GPtrArray array of #PkResultItemMessage's, free with g_ptr_array_unref().
  **/
 GPtrArray *
-pk_results_get_message_array (const PkResults *results)
+pk_results_get_message_array (PkResults *results)
 {
 	g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
 	return g_ptr_array_ref (results->priv->message_array);
diff --git a/lib/packagekit-glib2/pk-results.h b/lib/packagekit-glib2/pk-results.h
index 4f8da12..62ef683 100644
--- a/lib/packagekit-glib2/pk-results.h
+++ b/lib/packagekit-glib2/pk-results.h
@@ -342,26 +342,26 @@ gboolean	 pk_results_add_message 		(PkResults		*results,
 							 const gchar		*details);
 
 /* get single data */
-PkExitEnum	 pk_results_get_exit_code		(const PkResults	*results);
-PkPackageSack	*pk_results_get_package_sack		(const PkResults	*results);
-const PkResultItemErrorCode *pk_results_get_error_code	(const PkResults	*results);
-PkRestartEnum	 pk_results_get_require_restart_worst	(const PkResults	*results);
+PkExitEnum	 pk_results_get_exit_code		(PkResults		*results);
+PkPackageSack	*pk_results_get_package_sack		(PkResults		*results);
+const PkResultItemErrorCode *pk_results_get_error_code	(PkResults		*results);
+PkRestartEnum	 pk_results_get_require_restart_worst	(PkResults		*results);
 
 /* get array objects */
-GPtrArray	*pk_results_get_package_array		(const PkResults	*results);
-GPtrArray	*pk_results_get_details_array		(const PkResults	*results);
-GPtrArray	*pk_results_get_update_detail_array	(const PkResults	*results);
-GPtrArray	*pk_results_get_category_array		(const PkResults	*results);
-GPtrArray	*pk_results_get_distro_upgrade_array	(const PkResults	*results);
-GPtrArray	*pk_results_get_require_restart_array	(const PkResults	*results);
-GPtrArray	*pk_results_get_transaction_array	(const PkResults	*results);
-GPtrArray	*pk_results_get_files_array		(const PkResults	*results);
-GPtrArray	*pk_results_get_repo_signature_required_array (const PkResults	*results);
-GPtrArray	*pk_results_get_eula_required_array	(const PkResults	*results);
-GPtrArray	*pk_results_get_media_change_required_array (const PkResults	*results);
-GPtrArray	*pk_results_get_repo_detail_array	(const PkResults	*results);
-GPtrArray	*pk_results_get_error_code_array	(const PkResults	*results);
-GPtrArray	*pk_results_get_message_array		(const PkResults	*results);
+GPtrArray	*pk_results_get_package_array		(PkResults		*results);
+GPtrArray	*pk_results_get_details_array		(PkResults		*results);
+GPtrArray	*pk_results_get_update_detail_array	(PkResults		*results);
+GPtrArray	*pk_results_get_category_array		(PkResults		*results);
+GPtrArray	*pk_results_get_distro_upgrade_array	(PkResults		*results);
+GPtrArray	*pk_results_get_require_restart_array	(PkResults		*results);
+GPtrArray	*pk_results_get_transaction_array	(PkResults		*results);
+GPtrArray	*pk_results_get_files_array		(PkResults		*results);
+GPtrArray	*pk_results_get_repo_signature_required_array (PkResults	*results);
+GPtrArray	*pk_results_get_eula_required_array	(PkResults		*results);
+GPtrArray	*pk_results_get_media_change_required_array (PkResults		*results);
+GPtrArray	*pk_results_get_repo_detail_array	(PkResults		*results);
+GPtrArray	*pk_results_get_error_code_array	(PkResults		*results);
+GPtrArray	*pk_results_get_message_array		(PkResults		*results);
 
 G_END_DECLS
 
diff --git a/lib/packagekit-glib2/pk-task-wrapper.c b/lib/packagekit-glib2/pk-task-wrapper.c
index 0d25a29..438ecc7 100644
--- a/lib/packagekit-glib2/pk-task-wrapper.c
+++ b/lib/packagekit-glib2/pk-task-wrapper.c
@@ -49,7 +49,7 @@ G_DEFINE_TYPE (PkTaskWrapper, pk_task_wrapper, PK_TYPE_TASK)
  * pk_task_wrapper_untrusted_question:
  **/
 static void
-dkp_task_wrapper_untrusted_question (PkTask *task, guint request, const PkResults *results)
+dkp_task_wrapper_untrusted_question (PkTask *task, guint request, PkResults *results)
 {
 	PkTaskWrapperPrivate *priv = PK_TASK_WRAPPER(task)->priv;
 
@@ -66,7 +66,7 @@ dkp_task_wrapper_untrusted_question (PkTask *task, guint request, const PkResult
  * pk_task_wrapper_key_question:
  **/
 static void
-dkp_task_wrapper_key_question (PkTask *task, guint request, const PkResults *results)
+dkp_task_wrapper_key_question (PkTask *task, guint request, PkResults *results)
 {
 	guint i;
 	GPtrArray *array;
@@ -100,7 +100,7 @@ dkp_task_wrapper_key_question (PkTask *task, guint request, const PkResults *res
  * pk_task_wrapper_eula_question:
  **/
 static void
-dkp_task_wrapper_eula_question (PkTask *task, guint request, const PkResults *results)
+dkp_task_wrapper_eula_question (PkTask *task, guint request, PkResults *results)
 {
 	guint i;
 	GPtrArray *array;
@@ -131,7 +131,7 @@ dkp_task_wrapper_eula_question (PkTask *task, guint request, const PkResults *re
  * pk_task_wrapper_media_change_question:
  **/
 static void
-dkp_task_wrapper_media_change_question (PkTask *task, guint request, const PkResults *results)
+dkp_task_wrapper_media_change_question (PkTask *task, guint request, PkResults *results)
 {
 	guint i;
 	GPtrArray *array;
@@ -161,7 +161,7 @@ dkp_task_wrapper_media_change_question (PkTask *task, guint request, const PkRes
  * pk_task_wrapper_simulate_question:
  **/
 static void
-dkp_task_wrapper_simulate_question (PkTask *task, guint request, const PkResults *results)
+dkp_task_wrapper_simulate_question (PkTask *task, guint request, PkResults *results)
 {
 	guint i;
 	guint len;
@@ -268,7 +268,7 @@ pk_task_wrapper_test_install_packages_cb (GObject *object, GAsyncResult *res, Eg
 {
 	PkTaskWrapper *task = PK_TASK_WRAPPER (object);
 	GError *error = NULL;
-	const PkResults *results = NULL;
+	PkResults *results;
 	PkExitEnum exit_enum;
 	GPtrArray *packages;
 	const PkResultItemPackage *item;
@@ -279,7 +279,7 @@ pk_task_wrapper_test_install_packages_cb (GObject *object, GAsyncResult *res, Eg
 	if (results == NULL) {
 		egg_test_failed (test, "failed to install: %s", error->message);
 		g_error_free (error);
-		return;
+		goto out;
 	}
 
 	exit_enum = pk_results_get_exit_code (results);
@@ -302,6 +302,9 @@ pk_task_wrapper_test_install_packages_cb (GObject *object, GAsyncResult *res, Eg
 	g_ptr_array_unref (packages);
 
 	egg_debug ("results exit enum = %s", pk_exit_enum_to_text (exit_enum));
+out:
+	if (results != NULL)
+		g_object_unref (results);
 	egg_test_loop_quit (test);
 }
 
diff --git a/lib/packagekit-glib2/pk-task.c b/lib/packagekit-glib2/pk-task.c
index b00d656..8846385 100644
--- a/lib/packagekit-glib2/pk-task.c
+++ b/lib/packagekit-glib2/pk-task.c
@@ -193,7 +193,7 @@ pk_task_simulate_ready_cb (GObject *source_object, GAsyncResult *res, PkTaskStat
 {
 	PkTaskClass *klass = PK_TASK_GET_CLASS (state->task);
 	GError *error = NULL;
-	const PkResults *results;
+	PkResults *results;
 	PkPackageSack *sack = NULL;
 	guint length;
 
@@ -255,6 +255,8 @@ pk_task_simulate_ready_cb (GObject *source_object, GAsyncResult *res, PkTaskStat
 	/* run the callback */
 	klass->simulate_question (state->task, state->request, state->results);
 out:
+	if (results != NULL)
+		g_object_unref (results);
 	if (sack != NULL)
 		g_object_unref (sack);
 	return;
@@ -307,7 +309,7 @@ pk_task_install_signatures_ready_cb (GObject *source_object, GAsyncResult *res,
 {
 	PkTask *task = PK_TASK (source_object);
 	GError *error = NULL;
-	const PkResults *results;
+	PkResults *results;
 
 	/* old results no longer valid */
 	if (state->results != NULL)
@@ -338,6 +340,8 @@ pk_task_install_signatures_ready_cb (GObject *source_object, GAsyncResult *res,
 	/* now try the action again */
 	pk_task_do_async_action (state);
 out:
+	if (results != NULL)
+		g_object_unref (results);
 	return;
 }
 
@@ -392,7 +396,7 @@ pk_task_accept_eulas_ready_cb (GObject *source_object, GAsyncResult *res, PkTask
 {
 	PkTask *task = PK_TASK (source_object);
 	GError *error = NULL;
-	const PkResults *results;
+	PkResults *results;
 
 	/* old results no longer valid */
 	if (state->results != NULL)
@@ -423,6 +427,8 @@ pk_task_accept_eulas_ready_cb (GObject *source_object, GAsyncResult *res, PkTask
 	/* now try the action again */
 	pk_task_do_async_action (state);
 out:
+	if (results != NULL)
+		g_object_unref (results);
 	return;
 }
 
@@ -572,7 +578,7 @@ pk_task_ready_cb (GObject *source_object, GAsyncResult *res, PkTaskState *state)
 	PkTask *task = PK_TASK (source_object);
 	PkTaskClass *klass = PK_TASK_GET_CLASS (task);
 	GError *error = NULL;
-	const PkResults *results;
+	PkResults *results;
 
 	/* old results no longer valid */
 	if (state->results != NULL)
@@ -664,6 +670,8 @@ pk_task_ready_cb (GObject *source_object, GAsyncResult *res, PkTaskState *state)
 	/* we're done */
 	pk_task_generic_state_finish (state, error);
 out:
+	if (results != NULL)
+		g_object_unref (results);
 	return;
 }
 
@@ -940,7 +948,7 @@ pk_task_update_system_async (PkTask *task, GCancellable *cancellable,
  *
  * Return value: %TRUE for success
  **/
-const PkResults *
+PkResults *
 pk_task_generic_finish (PkTask *task, GAsyncResult *res, GError **error)
 {
 	GSimpleAsyncResult *simple;
@@ -954,7 +962,7 @@ pk_task_generic_finish (PkTask *task, GAsyncResult *res, GError **error)
 	if (g_simple_async_result_propagate_error (simple, error))
 		return FALSE;
 
-	return g_simple_async_result_get_op_res_gpointer (simple);
+	return g_object_ref (g_simple_async_result_get_op_res_gpointer (simple));
 }
 
 /**
@@ -1014,23 +1022,25 @@ pk_task_test_install_packages_cb (GObject *object, GAsyncResult *res, EggTest *t
 {
 	PkTask *task = PK_TASK (object);
 	GError *error = NULL;
-	const PkResults *results = NULL;
+	PkResults *results;
 
 	/* get the results */
 	results = pk_task_generic_finish (task, res, &error);
 	if (results != NULL) {
 		egg_test_failed (test, "finish should fail!");
-		return;
+		goto out;
 	}
 
 	/* check error */
 	if (g_strcmp0 (error->message, "could not do untrusted question as no klass support") != 0) {
 		egg_test_failed (test, "wrong message: %s", error->message);
 		g_error_free (error);
-		return;
+		goto out;
 	}
-
+out:
 	g_error_free (error);
+	if (results != NULL)
+		g_object_unref (results);
 	egg_test_loop_quit (test);
 }
 
diff --git a/lib/packagekit-glib2/pk-task.h b/lib/packagekit-glib2/pk-task.h
index 13ab41e..abe5882 100644
--- a/lib/packagekit-glib2/pk-task.h
+++ b/lib/packagekit-glib2/pk-task.h
@@ -64,19 +64,19 @@ struct _PkTaskClass
 	PkClientClass		parent_class;
 	void	 (*untrusted_question)			(PkTask			*task,
 							 guint			 request,
-							 const PkResults	*results);
+							 PkResults		*results);
 	void	 (*key_question)			(PkTask			*task,
 							 guint			 request,
-							 const PkResults	*results);
+							 PkResults		*results);
 	void	 (*eula_question)			(PkTask			*task,
 							 guint			 request,
-							 const PkResults	*results);
+							 PkResults		*results);
 	void	 (*media_change_question)		(PkTask			*task,
 							 guint			 request,
-							 const PkResults	*results);
+							 PkResults		*results);
 	void	 (*simulate_question)			(PkTask			*task,
 							 guint			 request,
-							 const PkResults	*results);
+							 PkResults		*results);
 	/* padding for future expansion */
 	void (*_pk_reserved1)	(void);
 	void (*_pk_reserved2)	(void);
@@ -90,7 +90,7 @@ GType		 pk_task_get_type			(void);
 PkTask		*pk_task_new				(void);
 void		 pk_task_test				(gpointer		 user_data);
 
-const PkResults	*pk_task_generic_finish			(PkTask			*task,
+PkResults	*pk_task_generic_finish			(PkTask			*task,
 							 GAsyncResult		*res,
 							 GError			**error);
 
commit b1f75e4a5ac7abce6f034f1a14c0a33046d189e4
Author: Richard Hughes <richard at hughsie.com>
Date:   Fri Sep 4 15:44:31 2009 +0100

    glib2: add pk_control_get_daemon_state_async()

diff --git a/lib/packagekit-glib2/pk-control.c b/lib/packagekit-glib2/pk-control.c
index 08e438a..c4c9dba 100644
--- a/lib/packagekit-glib2/pk-control.c
+++ b/lib/packagekit-glib2/pk-control.c
@@ -95,6 +95,7 @@ typedef struct {
 	gboolean		 ret;
 	gchar			*tid;
 	gchar			**transaction_list;
+	gchar			*daemon_state;
 	guint			 time;
 	DBusGProxyCall		*call;
 	GCancellable		*cancellable;
@@ -279,6 +280,144 @@ pk_control_get_tid_finish (PkControl *control, GAsyncResult *res, GError **error
 /***************************************************************************************************/
 
 /**
+ * pk_control_get_daemon_state_state_finish:
+ **/
+static void
+pk_control_get_daemon_state_state_finish (PkControlState *state, GError *error)
+{
+	/* remove weak ref */
+	if (state->control != NULL)
+		g_object_remove_weak_pointer (G_OBJECT (state->control), (gpointer) &state->control);
+
+	/* get result */
+	if (state->daemon_state != NULL) {
+		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);
+		g_error_free (error);
+	}
+
+	/* remove from list */
+	g_ptr_array_remove (state->control->priv->calls, state);
+
+	/* complete */
+	g_simple_async_result_complete_in_idle (state->res);
+
+	/* deallocate */
+	if (state->cancellable != NULL)
+		g_object_unref (state->cancellable);
+	g_free (state->daemon_state);
+	g_object_unref (state->res);
+	g_slice_free (PkControlState, state);
+}
+
+/**
+ * pk_control_get_daemon_state_cb:
+ **/
+static void
+pk_control_get_daemon_state_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkControlState *state)
+{
+	GError *error = NULL;
+	gchar *daemon_state = NULL;
+	gboolean ret;
+
+	/* finished this call */
+	state->call = NULL;
+
+	/* get the result */
+	ret = dbus_g_proxy_end_call (proxy, call, &error,
+				     G_TYPE_STRING, &daemon_state,
+				     G_TYPE_INVALID);
+	if (!ret) {
+		/* fix up the D-Bus error */
+		pk_control_fixup_dbus_error (error);
+		egg_warning ("failed: %s", error->message);
+		pk_control_get_daemon_state_state_finish (state, error);
+		goto out;
+	}
+
+	/* save results */
+	state->daemon_state = g_strdup (daemon_state);
+
+	/* we're done */
+	pk_control_get_daemon_state_state_finish (state, error);
+out:
+	g_free (daemon_state);
+}
+
+/**
+ * pk_control_get_daemon_state_async:
+ * @control: a valid #PkControl instance
+ * @cancellable: a #GCancellable or %NULL
+ * @callback: the function to run on completion
+ * @user_data: the data to pass to @callback
+ *
+ * Gets the debugging state from the daemon.
+ **/
+void
+pk_control_get_daemon_state_async (PkControl *control, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data)
+{
+	GSimpleAsyncResult *res;
+	PkControlState *state;
+
+	g_return_if_fail (PK_IS_CONTROL (control));
+	g_return_if_fail (callback != NULL);
+
+	res = g_simple_async_result_new (G_OBJECT (control), callback, user_data, pk_control_get_daemon_state_async);
+
+	/* save state */
+	state = g_slice_new0 (PkControlState);
+	state->res = g_object_ref (res);
+	if (cancellable != NULL)
+		state->cancellable = g_object_ref (cancellable);
+	state->control = control;
+	g_object_add_weak_pointer (G_OBJECT (state->control), (gpointer) &state->control);
+
+	/* call D-Bus 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);
+
+	/* track state */
+	g_ptr_array_add (control->priv->calls, state);
+
+	g_object_unref (res);
+}
+
+/**
+ * pk_control_get_daemon_state_finish:
+ * @control: a valid #PkControl instance
+ * @res: the #GAsyncResult
+ * @error: A #GError or %NULL
+ *
+ * Gets the result from the asynchronous function.
+ *
+ * Return value: the ID, or %NULL if unset
+ **/
+gchar *
+pk_control_get_daemon_state_finish (PkControl *control, GAsyncResult *res, GError **error)
+{
+	GSimpleAsyncResult *simple;
+	gpointer source_tag;
+
+	g_return_val_if_fail (PK_IS_CONTROL (control), NULL);
+	g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (res), NULL);
+	g_return_val_if_fail (error == NULL || *error == NULL, NULL);
+
+	simple = G_SIMPLE_ASYNC_RESULT (res);
+	source_tag = g_simple_async_result_get_source_tag (simple);
+
+	g_return_val_if_fail (source_tag == pk_control_get_daemon_state_async, NULL);
+
+	if (g_simple_async_result_propagate_error (simple, error))
+		return NULL;
+
+	return g_simple_async_result_get_op_res_gpointer (simple);
+}
+
+/***************************************************************************************************/
+
+/**
  * pk_control_set_proxy_state_finish:
  **/
 static void
diff --git a/lib/packagekit-glib2/pk-control.h b/lib/packagekit-glib2/pk-control.h
index 9f977e6..53cc578 100644
--- a/lib/packagekit-glib2/pk-control.h
+++ b/lib/packagekit-glib2/pk-control.h
@@ -103,6 +103,13 @@ void		 pk_control_get_tid_async		(PkControl		*control,
 gchar		*pk_control_get_tid_finish		(PkControl		*control,
 							 GAsyncResult		*res,
 							 GError			**error);
+void		 pk_control_get_daemon_state_async	(PkControl		*control,
+							 GCancellable		*cancellable,
+							 GAsyncReadyCallback	 callback,
+							 gpointer		 user_data);
+gchar		*pk_control_get_daemon_state_finish	(PkControl		*control,
+							 GAsyncResult		*res,
+							 GError			**error);
 void		 pk_control_set_proxy_async		(PkControl		*control,
 							 const gchar		*proxy_http,
 							 const gchar		*proxy_ftp,
commit bec38327fbbf463d3fb517401c56d7866a221775
Author: Valeriy Lyasotskiy <onestep at ukr.net>
Date:   Fri Sep 4 17:34:06 2009 +0300

    alpm: added support for resolving by package_id

diff --git a/backends/alpm/pk-backend-alpm.c b/backends/alpm/pk-backend-alpm.c
index 2c6dbdc..aa0c96a 100644
--- a/backends/alpm/pk-backend-alpm.c
+++ b/backends/alpm/pk-backend-alpm.c
@@ -73,46 +73,6 @@ typedef enum {
 	PK_ALPM_SEARCH_TYPE_PROVIDES
 } PkAlpmSearchType;
 
-static gchar *
-pkg_to_package_id_str (pmpkg_t *pkg, const gchar *repo)
-{
-	gchar *arch = (gchar *) alpm_pkg_get_arch (pkg);
-	if (arch == NULL)
-		arch = (gchar *) "unknown";
-
-	return pk_package_id_build (alpm_pkg_get_name (pkg), alpm_pkg_get_version (pkg), arch, repo);
-}
-
-static pmpkg_t *
-pkg_from_package_id_str (const gchar *package_id_str)
-{
-	pmdb_t *repo = NULL;
-	pmpkg_t *pkg;
-	PkPackageId *pkg_id = pk_package_id_new_from_string (package_id_str);
-
-	/* do all this fancy stuff */
-	if (g_strcmp0 (ALPM_LOCAL_DB_ALIAS, pk_package_id_get_data(pkg_id)) == 0)
-		repo = alpm_option_get_localdb ();
-	else {
-		alpm_list_t *iterator;
-		for (iterator = alpm_option_get_syncdbs (); iterator; iterator = alpm_list_next (iterator)) {
-			repo = alpm_list_getdata (iterator);
-			if (g_strcmp0 (alpm_db_get_name(repo), pk_package_id_get_data(pkg_id)) == 0)
-				break;
-		}
-	}
-
-	if (repo != NULL)
-		pkg = alpm_db_get_pkg (repo, pk_package_id_get_name (pkg_id));
-	else
-		pkg = NULL;
-
-	/* free package id as we no longer need it */
-	pk_package_id_free (pkg_id);
-
-	return pkg;
-}
-
 static int
 pkg_cmp (pmpkg_t *pkg1, pmpkg_t *pkg2) {
 	int comparison;
@@ -144,10 +104,13 @@ pkg_equal (pmpkg_t *p1, pmpkg_t *p2)
 		return FALSE;
 	return TRUE;
 }
+*/
 
 static gboolean
 pkg_equals_to (pmpkg_t *pkg, const gchar *name, const gchar *version)
 {
+	if (pkg == NULL)
+		return FALSE;
 	if (g_strcmp0 (alpm_pkg_get_name (pkg), name) != 0)
 		return FALSE;
 	if (version != NULL)
@@ -155,7 +118,50 @@ pkg_equals_to (pmpkg_t *pkg, const gchar *name, const gchar *version)
 			return FALSE;
 	return TRUE;
 }
-*/
+
+static gchar *
+pkg_to_package_id_str (pmpkg_t *pkg, const gchar *repo)
+{
+	gchar *arch = (gchar *) alpm_pkg_get_arch (pkg);
+	if (arch == NULL)
+		arch = (gchar *) "unknown";
+
+	return pk_package_id_build (alpm_pkg_get_name (pkg), alpm_pkg_get_version (pkg), arch, repo);
+}
+
+static pmpkg_t *
+pkg_from_package_id_str (const gchar *package_id_str)
+{
+	pmdb_t *repo = NULL;
+	pmpkg_t *result;
+	PkPackageId *package_id = pk_package_id_new_from_string (package_id_str);
+
+	/* do all this fancy stuff */
+	if (g_strcmp0 (ALPM_LOCAL_DB_ALIAS, pk_package_id_get_data (package_id)) == 0)
+		repo = alpm_option_get_localdb ();
+	else {
+		alpm_list_t *iterator;
+		for (iterator = alpm_option_get_syncdbs (); iterator; iterator = alpm_list_next (iterator)) {
+			repo = alpm_list_getdata (iterator);
+			if (g_strcmp0 (alpm_db_get_name(repo), pk_package_id_get_data (package_id)) == 0)
+				break;
+		}
+	}
+
+	if (repo != NULL) {
+		pmpkg_t *pkg = alpm_db_get_pkg (repo, pk_package_id_get_name (package_id));
+		if (pkg_equals_to (pkg, pk_package_id_get_name (package_id), pk_package_id_get_version (package_id)))
+			result = pkg;
+		else
+			result = NULL;
+	} else
+		result = NULL;
+
+	/* free package id as we no longer need it */
+	pk_package_id_free (package_id);
+
+	return result;
+}
 
 static void
 emit_package (PkBackend *backend, pmpkg_t *pkg, const gchar *repo, PkInfoEnum info)
@@ -994,7 +1000,7 @@ backend_search (PkBackend *backend, pmdb_t *repo, const gchar *needle, PkAlpmSea
 				match = TRUE;
 				break;
 			case PK_ALPM_SEARCH_TYPE_RESOLVE:
-				match = (g_strcmp0 (alpm_pkg_get_name(pkg), needle) == 0);
+				match = g_strcmp0 (alpm_pkg_get_name(pkg), needle) == 0;
 				break;
 			case PK_ALPM_SEARCH_TYPE_NAME:
 				match = strstr (alpm_pkg_get_name (pkg), needle) != NULL;
@@ -1387,21 +1393,40 @@ backend_resolve_thread (PkBackend *backend)
 	gchar **package_ids = pk_backend_get_strv (backend, "package_ids");
 	PkBitfield filters = pk_backend_get_uint (backend, "filters");
 
+	gboolean search_installed = pk_bitfield_contain (filters, PK_FILTER_ENUM_INSTALLED);
+	gboolean search_not_installed = pk_bitfield_contain (filters, PK_FILTER_ENUM_NOT_INSTALLED);
+
 	for (iterator = 0; iterator < g_strv_length (package_ids); ++iterator) {
-		gboolean search_installed = pk_bitfield_contain (filters, PK_FILTER_ENUM_INSTALLED);
-		gboolean search_not_installed = pk_bitfield_contain (filters, PK_FILTER_ENUM_NOT_INSTALLED);
+		if (pk_package_id_check (package_ids[iterator])) {
+			/* skip all the db iterations and so on - we already know everything */
+			pmpkg_t *pkg = pkg_from_package_id_str (package_ids[iterator]);
 
-		if (!search_not_installed) {
-			/* search in local db */
-			backend_search (backend, alpm_option_get_localdb (), package_ids[iterator], PK_ALPM_SEARCH_TYPE_RESOLVE);
-		}
+			if (pkg != NULL) {
+				PkPackageId *package_id = pk_package_id_new_from_string (package_ids[iterator]);
+				const gchar *repo = pk_package_id_get_data (package_id);
 
-		if (!search_installed) {
-			/* search in sync repos */
-			alpm_list_t *repos;
-			/* iterate repos */
-			for (repos = alpm_option_get_syncdbs (); repos; repos = alpm_list_next (repos))
-				backend_search (backend, alpm_list_getdata (repos), package_ids[iterator], PK_ALPM_SEARCH_TYPE_RESOLVE);
+				if (!search_not_installed && g_strcmp0 (repo, ALPM_LOCAL_DB_ALIAS) == 0)
+					emit_package (backend, pkg, ALPM_LOCAL_DB_ALIAS, PK_INFO_ENUM_INSTALLED);
+
+				if (!search_installed && g_strcmp0 (repo, ALPM_LOCAL_DB_ALIAS) != 0)
+					emit_package (backend, pkg, repo, PK_INFO_ENUM_INSTALLED);
+
+				pk_package_id_free (package_id);
+			}
+		} else {
+			/* good old way with backend_search */
+			if (!search_not_installed) {
+				/* search in local db */
+				backend_search (backend, alpm_option_get_localdb (), package_ids[iterator], PK_ALPM_SEARCH_TYPE_RESOLVE);
+			}
+
+			if (!search_installed) {
+				/* search in sync repos */
+				alpm_list_t *repos;
+				/* iterate repos */
+				for (repos = alpm_option_get_syncdbs (); repos; repos = alpm_list_next (repos))
+					backend_search (backend, alpm_list_getdata (repos), package_ids[iterator], PK_ALPM_SEARCH_TYPE_RESOLVE);
+			}
 		}
 	}
 
commit b41ad92c50bc15a2844d847fbf04e1d09ad798a4
Merge: 302bbef... b444f05...
Author: Aurelien Lefebvre <alefebvre at mandriva.com>
Date:   Fri Sep 4 16:29:04 2009 +0200

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

commit 302bbeff2508cc1e2cf81657f6b366360561570c
Author: Aurelien Lefebvre <alefebvre at mandriva.com>
Date:   Fri Sep 4 16:27:36 2009 +0200

    urpmi: trivial fix for restart enum use

diff --git a/backends/urpmi/helpers/urpmi-dispatched-backend.pl b/backends/urpmi/helpers/urpmi-dispatched-backend.pl
index 9387b1e..d305a4a 100755
--- a/backends/urpmi/helpers/urpmi-dispatched-backend.pl
+++ b/backends/urpmi/helpers/urpmi-dispatched-backend.pl
@@ -771,7 +771,7 @@ sub _print_package_update_details {
     "http://qa.mandriva.com",
     "http://qa.mandriva.com",
     "http://qa.mandriva.com",
-    $restart ? PK_RESTART_ENUM_SYSTEM : PK_RESTART_ENUM_APPLICATION,
+    $restart ? PK_RESTART_ENUM_SYSTEM : PK_RESTART_ENUM_NONE,
     $desc);
 }
 
commit f95adf0888a0790f59eda9ed758500b1db597b26
Author: Richard Hughes <richard at hughsie.com>
Date:   Fri Sep 4 15:05:25 2009 +0100

    glib2: Fix getting values from pk_client_adopt_async()

diff --git a/lib/packagekit-glib2/pk-client.c b/lib/packagekit-glib2/pk-client.c
index 5792a0d..6c7016c 100644
--- a/lib/packagekit-glib2/pk-client.c
+++ b/lib/packagekit-glib2/pk-client.c
@@ -2898,14 +2898,13 @@ static void
 pk_client_get_properties_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkClientState *state)
 {
 	GError *error = NULL;
-	gboolean ret;
 	GHashTable *hash;
 
 	/* get the result */
-	ret = dbus_g_proxy_end_call (proxy, call, &error,
-				     dbus_g_type_get_map ("GHashTable", G_TYPE_STRING, G_TYPE_VALUE), &hash,
-				     G_TYPE_INVALID);
-	if (!ret) {
+	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) {
 		pk_client_state_finish (state, error);
 		return;
 	}
commit b444f05b5d3a535c1c6b743bb21e9d2bcac0f0c4
Author: hunter688 <hunter688 at fedoraproject.org>
Date:   Fri Sep 4 13:39:26 2009 +0000

    Sending translation for Czech

diff --git a/po/cs.po b/po/cs.po
index 4a5c3c8..438256f 100644
--- a/po/cs.po
+++ b/po/cs.po
@@ -9,7 +9,7 @@ msgstr ""
 "Project-Id-Version: packagekit.master.cs\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2009-09-04 08:25+0000\n"
-"PO-Revision-Date: 2009-09-04 15:30+0100\n"
+"PO-Revision-Date: 2009-09-04 15:38+0100\n"
 "Last-Translator: Dušan Hokův <dusan at mirc.cz>\n"
 "Language-Team: Czech <fedora-cs-list at redhat.com>\n"
 "MIME-Version: 1.0\n"
@@ -344,16 +344,14 @@ msgstr "Prosím restartujte aplikaci, protože je právě používána."
 #. TRANSLATORS: a package needs to restart their system (due to security)
 #: ../client/pk-console.c:675
 #: ../client/pk-console-test.c:443
-#, fuzzy
 msgid "Please restart the computer to complete the update as important security updates have been installed."
-msgstr "Prosím restartujte počítač pro dokončení aktualizace."
+msgstr "Prosím restartujte počítač pro dokončení aktualizace kvůli nainstalovaným důležitým bezpečnostním aktualizacím ."
 
 #. TRANSLATORS: a package needs to restart the session (due to security)
 #: ../client/pk-console.c:678
 #: ../client/pk-console-test.c:446
-#, fuzzy
 msgid "Please logout and login to complete the update as important security updates have been installed."
-msgstr "Prosím odhlaste se a znovu se přihlašte pro dokončení aktualizace."
+msgstr "Prosím odhlaste se a znovu se přihlašte pro dokončení aktualizace kvůli nainstalovaným důležitým bezpečnostním aktualizacím."
 
 #. TRANSLATORS: The package is already installed on the system
 #: ../client/pk-console.c:810
@@ -443,9 +441,9 @@ msgstr "Odstranění baličku bylo zrušeno!"
 #. TRANSLATORS: The package name was not found in any software sources
 #: ../client/pk-console.c:1150
 #: ../client/pk-console-test.c:689
-#, fuzzy, c-format
+#, c-format
 msgid "This tool could not download the package %s as it could not be found"
-msgstr "Tento nástroj nemůže stáhnout balík '%s', protože nemůže být nalezen"
+msgstr "Tento nástroj nemůže stáhnout balík %s, protože nemůže být nalezen"
 
 #. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
 #: ../client/pk-console.c:1181
@@ -460,15 +458,14 @@ msgstr "Tento nástroj nemůže stáhnout balíky: %s"
 #: ../client/pk-console.c:1280
 #: ../client/pk-console-test.c:743
 #: ../client/pk-console-test.c:753
-#, fuzzy, c-format
+#, c-format
 msgid "This tool could not update %s: %s"
-msgstr "Tento nástroj nemůže aktualizovat '%s': %s"
+msgstr "Tento nástroj nemůže aktualizovat %s: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
 #: ../client/pk-console.c:1271
-#, fuzzy
 msgid "The package update was canceled!"
-msgstr "Odstranění baličku bylo zrušeno!"
+msgstr "Aktualizace balíčku byla zrušena!"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
 #: ../client/pk-console.c:1304
@@ -547,15 +544,13 @@ msgstr "Soubor neexistuje: %s"
 
 #. TRANSLATORS: header to a list of packages newly added
 #: ../client/pk-console.c:1512
-#, fuzzy
 msgid "Packages to add"
-msgstr "PackageKit Monitor"
+msgstr "Balíčky k přidání"
 
 #. TRANSLATORS: header to a list of packages removed
 #: ../client/pk-console.c:1520
-#, fuzzy
 msgid "Packages to remove"
-msgstr "Služba PackageKit"
+msgstr "Balíčky k odebrání"
 
 #. TRANSLATORS: We didn't find any differences
 #: ../client/pk-console.c:1588
@@ -1079,7 +1074,7 @@ msgstr "EULA ID"
 
 #: ../client/pk-task-text.c:146
 msgid "Agreement"
-msgstr ""
+msgstr "Ujednání"
 
 #. ask the user
 #: ../client/pk-task-text.c:152
@@ -1097,11 +1092,11 @@ msgstr "Nemohu zjistit, které balíky jsou vyžadovány"
 
 #: ../client/pk-task-text.c:183
 msgid "Media type"
-msgstr ""
+msgstr "typ Média"
 
 #: ../client/pk-task-text.c:184
 msgid "Media ID"
-msgstr ""
+msgstr "ID Média"
 
 #: ../client/pk-task-text.c:185
 msgid "Text"
@@ -1316,7 +1311,7 @@ msgstr ""
 #. command line argument, do we operate quietly
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:558
 msgid "Do not display information or progress"
-msgstr ""
+msgstr "nezobrazovat informace nebo půběh"
 
 #. TRANSLATORS: tool that gets called when the command is not found
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:576
@@ -1433,7 +1428,7 @@ msgstr "Nemohu najít odpovídající balík"
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:847
 #, c-format
 msgid "Found %i extra packages."
-msgstr ""
+msgstr "Nalezeno %i extra balíčků."
 
 #. TRANSLATORS: tell the user we found some more packages
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:851
@@ -1832,7 +1827,7 @@ msgstr "Balík '%s' nemůže být nainstalován: %s"
 #: ../src/pk-polkit-action-lookup.c:168
 #: ../src/pk-polkit-action-lookup.c:187
 msgid "The software is not from a trusted source."
-msgstr ""
+msgstr "Software není z důvěryhodného zdroje."
 
 #: ../src/pk-polkit-action-lookup.c:173
 msgid "Do not update this package unless you are sure it is safe to do so."
@@ -1853,7 +1848,7 @@ msgstr ""
 #. TRANSLATORS: warn the user that all bets are off
 #: ../src/pk-polkit-action-lookup.c:199
 msgid "Malicious software can damage your computer or cause other harm."
-msgstr ""
+msgstr "Škodlivý software může poškodit váš počítač nebo způsobit jiné škody."
 
 #. TRANSLATORS: too many packages to list each one
 #: ../src/pk-polkit-action-lookup.c:274
commit baac06a0d1f5c92e4d615cb5903a4e41aa519484
Author: Richard Hughes <richard at hughsie.com>
Date:   Fri Sep 4 14:34:19 2009 +0100

    glib2: use the new property names on the client

diff --git a/lib/packagekit-glib2/pk-client.c b/lib/packagekit-glib2/pk-client.c
index 26aed7d..5792a0d 100644
--- a/lib/packagekit-glib2/pk-client.c
+++ b/lib/packagekit-glib2/pk-client.c
@@ -2821,7 +2821,7 @@ pk_client_get_properties_collect_cb (const char *key, const GValue *value, PkCli
 		return;
 
 	/* role */
-	if (g_strcmp0 (key, "role") == 0) {
+	if (g_strcmp0 (key, "Role") == 0) {
 		tmp_str = g_value_get_string (value);
 		tmp = pk_role_enum_from_text (tmp_str);
 		g_object_set (state->progress, "role", tmp, NULL);
@@ -2830,7 +2830,7 @@ pk_client_get_properties_collect_cb (const char *key, const GValue *value, PkCli
 	}
 
 	/* status */
-	if (g_strcmp0 (key, "status") == 0) {
+	if (g_strcmp0 (key, "Status") == 0) {
 		tmp_str = g_value_get_string (value);
 		tmp = pk_status_enum_from_text (tmp_str);
 		g_object_set (state->progress, "status", tmp, NULL);
@@ -2839,7 +2839,7 @@ pk_client_get_properties_collect_cb (const char *key, const GValue *value, PkCli
 	}
 
 	/* last-package */
-	if (g_strcmp0 (key, "last-package") == 0) {
+	if (g_strcmp0 (key, "LastPackage") == 0) {
 		tmp_str = g_value_get_string (value);
 		g_object_set (state->progress, "package-id", tmp_str, NULL);
 		state->progress_callback (state->progress, PK_PROGRESS_TYPE_PACKAGE_ID, state->progress_user_data);
@@ -2848,7 +2848,7 @@ pk_client_get_properties_collect_cb (const char *key, const GValue *value, PkCli
 
 #if 0
 	/* uid */
-	if (g_strcmp0 (key, "uid") == 0) {
+	if (g_strcmp0 (key, "Uid") == 0) {
 		tmp = g_value_get_uint (value);
 		g_object_set (state->progress, "uid", tmp, NULL);
 		state->progress_callback (state->progress, PK_PROGRESS_TYPE_UID, state->progress_user_data);
@@ -2857,7 +2857,7 @@ pk_client_get_properties_collect_cb (const char *key, const GValue *value, PkCli
 #endif
 
 	/* percentage */
-	if (g_strcmp0 (key, "percentage") == 0) {
+	if (g_strcmp0 (key, "Percentage") == 0) {
 		tmp = g_value_get_uint (value);
 		g_object_set (state->progress, "percentage", pk_client_percentage_to_signed (tmp), NULL);
 		state->progress_callback (state->progress, PK_PROGRESS_TYPE_PERCENTAGE, state->progress_user_data);
@@ -2865,7 +2865,7 @@ pk_client_get_properties_collect_cb (const char *key, const GValue *value, PkCli
 	}
 
 	/* subpercentage */
-	if (g_strcmp0 (key, "subpercentage") == 0) {
+	if (g_strcmp0 (key, "Subpercentage") == 0) {
 		tmp = g_value_get_uint (value);
 		g_object_set (state->progress, "subpercentage", pk_client_percentage_to_signed (tmp), NULL);
 		state->progress_callback (state->progress, PK_PROGRESS_TYPE_SUBPERCENTAGE, state->progress_user_data);
@@ -2873,7 +2873,7 @@ pk_client_get_properties_collect_cb (const char *key, const GValue *value, PkCli
 	}
 
 	/* allow-cancel */
-	if (g_strcmp0 (key, "allow-cancel") == 0) {
+	if (g_strcmp0 (key, "AllowCancel") == 0) {
 		ret = g_value_get_boolean (value);
 		g_object_set (state->progress, "allow-cancel", ret, NULL);
 		state->progress_callback (state->progress, PK_PROGRESS_TYPE_ALLOW_CANCEL, state->progress_user_data);
@@ -2881,7 +2881,7 @@ pk_client_get_properties_collect_cb (const char *key, const GValue *value, PkCli
 	}
 
 	/* caller-active */
-	if (g_strcmp0 (key, "caller-active") == 0) {
+	if (g_strcmp0 (key, "CallerActive") == 0) {
 		ret = g_value_get_boolean (value);
 		g_object_set (state->progress, "caller-active", ret, NULL);
 		state->progress_callback (state->progress, PK_PROGRESS_TYPE_CALLER_ACTIVE, state->progress_user_data);
commit 3a0b3a48a9bc6b17155ceca50a275441e8d66e32
Author: hunter688 <hunter688 at fedoraproject.org>
Date:   Fri Sep 4 13:32:18 2009 +0000

    Sending translation for Czech

diff --git a/po/cs.po b/po/cs.po
index 243e80a..4a5c3c8 100644
--- a/po/cs.po
+++ b/po/cs.po
@@ -9,7 +9,7 @@ msgstr ""
 "Project-Id-Version: packagekit.master.cs\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2009-09-04 08:25+0000\n"
-"PO-Revision-Date: 2009-09-04 15:04+0100\n"
+"PO-Revision-Date: 2009-09-04 15:30+0100\n"
 "Last-Translator: Dušan Hokův <dusan at mirc.cz>\n"
 "Language-Team: Czech <fedora-cs-list at redhat.com>\n"
 "MIME-Version: 1.0\n"
@@ -93,9 +93,8 @@ msgstr "Skutečné jméno"
 
 #: ../client/pk-console.c:274
 #: ../client/pk-console-test.c:182
-#, fuzzy
 msgid "Affected packages:"
-msgstr "Aktualizovat balík"
+msgstr "Ovlivněné balíky:"
 
 #: ../client/pk-console.c:276
 #: ../client/pk-console-test.c:184
@@ -111,30 +110,26 @@ msgstr "Následující balíky musí být odstraněny:"
 #. TRANSLATORS: When processing, we might have to install other dependencies
 #: ../client/pk-console.c:340
 #: ../client/pk-task-text.c:213
-#, fuzzy
 msgid "The following packages have to be installed:"
-msgstr "Následující balíky musí být odstraněny:"
+msgstr "Následující balíky musí být instalovány:"
 
 #. TRANSLATORS: When processing, we might have to update other dependencies
 #: ../client/pk-console.c:343
 #: ../client/pk-task-text.c:218
-#, fuzzy
 msgid "The following packages have to be updated:"
-msgstr "Následující balíky musí být odstraněny:"
+msgstr "Následující balíky musí být aktualizovány:"
 
 #. TRANSLATORS: When processing, we might have to reinstall other dependencies
 #: ../client/pk-console.c:346
 #: ../client/pk-task-text.c:223
-#, fuzzy
 msgid "The following packages have to be reinstalled:"
-msgstr "Následující balíky musí být odstraněny:"
+msgstr "Následující balíky musí být reinstalovány:"
 
 #. TRANSLATORS: When processing, we might have to downgrade other dependencies
 #: ../client/pk-console.c:349
 #: ../client/pk-task-text.c:228
-#, fuzzy
 msgid "The following packages have to be downgraded:"
-msgstr "Následující balíky musí být odstraněny:"
+msgstr "Následující balíky musí být vráceny na předchozí verzi:"
 
 #. TRANSLATORS: this is the distro, e.g. Fedora 10
 #: ../client/pk-console.c:363
@@ -210,9 +205,8 @@ msgstr[1] "Balíky"
 #. TRANSLATORS: details about the update, any packages that this update updates
 #: ../client/pk-console.c:413
 #: ../client/pk-console-test.c:255
-#, fuzzy
 msgid "Updates"
-msgstr "Aktualizovat balík"
+msgstr "Aktualizace"
 
 #. TRANSLATORS: details about the update, any packages that this update obsoletes
 #: ../client/pk-console.c:417
@@ -248,9 +242,8 @@ msgstr "Restart"
 #. TRANSLATORS: details about the update, any description of the update
 #: ../client/pk-console.c:437
 #: ../client/pk-console-test.c:279
-#, fuzzy
 msgid "Update text"
-msgstr "Aktualizovat podrobnosti"
+msgstr "Text aktualizace"
 
 #. TRANSLATORS: details about the update, the changelog for the package
 #: ../client/pk-console.c:441
@@ -273,9 +266,8 @@ msgstr ""
 #. TRANSLATORS: details about the update, date the update was updated
 #: ../client/pk-console.c:455
 #: ../client/pk-console-test.c:297
-#, fuzzy
 msgid "Updated"
-msgstr "Aktualizovat podrobnosti"
+msgstr "Aktualizován"
 
 #. TRANSLATORS: if the repo is enabled
 #: ../client/pk-console.c:475
@@ -301,9 +293,8 @@ msgstr "Neznámý"
 #. TRANSLATORS: a package requires the system to be restarted
 #: ../client/pk-console.c:599
 #: ../client/pk-console-test.c:340
-#, fuzzy
 msgid "System restart required by:"
-msgstr "Je požadován restart systému"
+msgstr "Restart systému požaduje:"
 
 #. TRANSLATORS: a package requires the session to be restarted
 #: ../client/pk-console.c:602
@@ -329,9 +320,8 @@ msgstr "Je požadován restart systému"
 #. TRANSLATORS: a package requires the application to be restarted
 #: ../client/pk-console.c:611
 #: ../client/pk-console-test.c:352
-#, fuzzy
 msgid "Application restart required by:"
-msgstr "Je vyžadován restart aplikace"
+msgstr "Restart aplikace vyžaduje:"
 
 #. TRANSLATORS: a package needs to restart their system
 #: ../client/pk-console.c:666
@@ -368,16 +358,16 @@ msgstr "Prosím odhlaste se a znovu se přihlašte pro dokončení aktualizace."
 #. TRANSLATORS: The package is already installed on the system
 #: ../client/pk-console.c:810
 #: ../client/pk-console-test.c:541
-#, fuzzy, c-format
+#, c-format
 msgid "The package %s is already installed"
-msgstr "Balík '%s' je již nainstalován"
+msgstr "Balík %s je již nainstalován"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
 #: ../client/pk-console.c:818
 #: ../client/pk-console-test.c:549
-#, fuzzy, c-format
+#, c-format
 msgid "The package %s could not be installed: %s"
-msgstr "Balík '%s' nemůže být nainstalován: %s"
+msgstr "Balík %s nemůže být nainstalován: %s"
 
 #. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
 #: ../client/pk-console.c:844
@@ -406,9 +396,8 @@ msgstr ""
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
 #: ../client/pk-console.c:881
 #: ../client/pk-console.c:953
-#, fuzzy
 msgid "The package install was canceled!"
-msgstr "Odstranění baličku bylo zrušeno!"
+msgstr "Instalace baličku byla zrušena!"
 
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
 #: ../client/pk-console.c:900
@@ -428,9 +417,9 @@ msgstr "Tento nástroj není schopen nainstalovat soubory: %s"
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
 #: ../client/pk-console.c:1028
 #: ../client/pk-console-test.c:636
-#, fuzzy, c-format
+#, c-format
 msgid "This tool could not remove %s: %s"
-msgstr "Tento nástroj nemůže odstranit '%s': %s"
+msgstr "Tento nástroj nemůže odstranit %s: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
 #: ../client/pk-console.c:1051
@@ -443,9 +432,8 @@ msgstr "Tento nástroj nemůže odstranit balíky: %s"
 
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
 #: ../client/pk-console.c:1104
-#, fuzzy
 msgid "Proceed with additional packages?"
-msgstr "Souhlasíte s odstraněním doplňkových balíků? "
+msgstr "Pokračovat s doplňkovými balíky? "
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
 #: ../client/pk-console.c:1109
@@ -587,9 +575,8 @@ msgstr ""
 
 #. TRANSLATORS: package was not found -- this is the end of a string ended in ...
 #: ../client/pk-console.c:1610
-#, fuzzy
 msgid "not found."
-msgstr "Adresář nenalezen"
+msgstr "nenalezen."
 
 #. TRANSLATORS: We didn't find any packages to install
 #: ../client/pk-console.c:1621
@@ -601,9 +588,9 @@ msgstr "Pro váš systém nebyly nalezeny žádné balíky"
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
 #: ../client/pk-console.c:1627
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:885
-#, fuzzy, c-format
+#, c-format
 msgid "Installing packages"
-msgstr "Nainstalovat balík"
+msgstr "Instalace balíků"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
 #: ../client/pk-console.c:1663
@@ -1088,7 +1075,7 @@ msgstr "Vyžaduje souhlas s licencí koncového uživatele"
 
 #: ../client/pk-task-text.c:143
 msgid "EULA ID"
-msgstr ""
+msgstr "EULA ID"
 
 #: ../client/pk-task-text.c:146
 msgid "Agreement"
@@ -1118,7 +1105,7 @@ msgstr ""
 
 #: ../client/pk-task-text.c:185
 msgid "Text"
-msgstr ""
+msgstr "Text"
 
 #. ask the user
 #: ../client/pk-task-text.c:189
@@ -1263,7 +1250,7 @@ msgstr "Podobný příkaz je:"
 #. TRANSLATORS: Ask the user if we should run the similar command
 #: ../contrib/command-not-found/pk-command-not-found.c:674
 msgid "Run similar command:"
-msgstr ""
+msgstr "Spustit podobný příkaz:"
 
 #. TRANSLATORS: show the user a list of commands that they could have meant
 #. TRANSLATORS: show the user a list of commands we could run
@@ -1275,7 +1262,7 @@ msgstr "Podobné příkazy jsou:"
 #. TRANSLATORS: ask the user to choose a file to run
 #: ../contrib/command-not-found/pk-command-not-found.c:702
 msgid "Please choose a command to run"
-msgstr ""
+msgstr "Prosím vyberte příkaz ke spuštění"
 
 #. TRANSLATORS: tell the user what package provides the command
 #: ../contrib/command-not-found/pk-command-not-found.c:721
@@ -1308,7 +1295,7 @@ msgstr "Nemohu najít balík, který se má instalovat"
 #. TRANSLATORS: we are starting to install the packages
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:187
 msgid "Starting install"
-msgstr ""
+msgstr "Spouším instalaci"
 
 #. TRANSLATORS: we couldn't find the package name, non-fatal
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:397
@@ -1545,7 +1532,7 @@ msgstr ""
 #. TRANSLATORS: command line option: a list of files to install
 #: ../contrib/device-rebind/pk-device-rebind.c:299
 msgid "Device paths"
-msgstr ""
+msgstr "Cesty zařízení"
 
 #. TRANSLATORS: tool that gets called when the device needs reloading after installing firmware
 #: ../contrib/device-rebind/pk-device-rebind.c:314
@@ -1562,7 +1549,7 @@ msgstr "Je nutné určit časový termín"
 #. TRANSLATORS: user did not specify a valid device sysfs path
 #: ../contrib/device-rebind/pk-device-rebind.c:332
 msgid "This script can only be used by the root user"
-msgstr ""
+msgstr "Tento skript může být použit pouze uživatelem root"
 
 #. TRANSLATORS: we're going to verify the path first
 #: ../contrib/device-rebind/pk-device-rebind.c:341
commit 24ca6db804ab6659825bd6bb9b2780884089150b
Author: Richard Hughes <richard at hughsie.com>
Date:   Fri Sep 4 14:31:04 2009 +0100

    yum: detect yum.Errors.RepoError in more places, rather than backtracing

diff --git a/backends/yum/yumBackend.py b/backends/yum/yumBackend.py
index 9cfe4d2..903ea26 100755
--- a/backends/yum/yumBackend.py
+++ b/backends/yum/yumBackend.py
@@ -1058,6 +1058,8 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
         if len(self.yumbase.tsInfo) > 0  and recursive:
             try:
                 rc, msgs =  self.yumbase.buildTransaction()
+            except yum.Errors.RepoError, e:
+                self.error(ERROR_REPO_NOT_AVAILABLE, _to_unicode(e))
             except Exception, e:
                 self.error(ERROR_INTERNAL_ERROR, _format_str(traceback.format_exc()))
             if rc != 2:
@@ -1302,6 +1304,8 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
         if len(self.yumbase.tsInfo) > 0 and recursive:
             try:
                 rc, msgs =  self.yumbase.buildTransaction()
+            except yum.Errors.RepoError, e:
+                self.error(ERROR_REPO_NOT_AVAILABLE, _to_unicode(e))
             except Exception, e:
                 self.error(ERROR_INTERNAL_ERROR, _format_str(traceback.format_exc()))
             if rc != 2:
@@ -2558,6 +2562,8 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
         # do the depsolve to pull in deps
         try:
             rc, msgs =  self.yumbase.buildTransaction()
+        except yum.Errors.RepoError, e:
+            self.error(ERROR_REPO_NOT_AVAILABLE, _to_unicode(e))
         except Exception, e:
             self.error(ERROR_INTERNAL_ERROR, _format_str(traceback.format_exc()))
         if rc != 2:
commit 6e049c9fb994d01c04d65ae9743546e630708d20
Author: logan <logan at fedoraproject.org>
Date:   Fri Sep 4 13:26:49 2009 +0000

    Sending translation for Spanish

diff --git a/po/es.po b/po/es.po
index fac8600..203586f 100644
--- a/po/es.po
+++ b/po/es.po
@@ -9,9 +9,9 @@ msgid ""
 msgstr ""
 "Project-Id-Version: packagekit\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-09-03 08:34+0000\n"
-"PO-Revision-Date: 2009-09-03 09:35-0300\n"
-"Last-Translator: Domingo Becker <domingobecker at gmail.com>\n"
+"POT-Creation-Date: 2009-09-04 08:25+0000\n"
+"PO-Revision-Date: 2009-09-04 10:25-0300\n"
+"Last-Translator: Héctor Daniel Cabrera <h.daniel.cabrera at gmail.com>\n"
 "Language-Team: Fedora Spanish <fedora-trans-es at redhat.com>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -21,148 +21,182 @@ msgstr ""
 
 #. TRANSLATORS: this is an atomic transaction
 #: ../client/pk-console.c:238
+#: ../client/pk-console-test.c:146
 msgid "Transaction"
 msgstr "Transacción"
 
 #. TRANSLATORS: this is the time the transaction was started in system timezone
 #: ../client/pk-console.c:240
+#: ../client/pk-console-test.c:148
 msgid "System time"
 msgstr "Hora del sistema"
 
 #. TRANSLATORS: this is if the transaction succeeded or not
 #: ../client/pk-console.c:242
+#: ../client/pk-console-test.c:150
 msgid "Succeeded"
 msgstr "Existosa"
 
 #: ../client/pk-console.c:242
+#: ../client/pk-console-test.c:150
 msgid "True"
 msgstr "Verdadero"
 
 #: ../client/pk-console.c:242
+#: ../client/pk-console-test.c:150
 msgid "False"
 msgstr "Falso"
 
 #. TRANSLATORS: this is the transactions role, e.g. "update-system"
 #. TRANSLATORS: the trasaction role, e.g. update-system
 #: ../client/pk-console.c:244
+#: ../client/pk-console-test.c:152
 #: ../src/pk-polkit-action-lookup.c:327
 msgid "Role"
 msgstr "Rol"
 
 #. TRANSLATORS: this is The duration of the transaction
 #: ../client/pk-console.c:249
+#: ../client/pk-console-test.c:157
 msgid "Duration"
 msgstr "Duración"
 
 #: ../client/pk-console.c:249
+#: ../client/pk-console-test.c:157
 msgid "(seconds)"
 msgstr "(segundos)"
 
 #. TRANSLATORS: this is The command line used to do the action
 #. TRANSLATORS: the command line of the thing that wants the authentication
 #: ../client/pk-console.c:253
+#: ../client/pk-console-test.c:161
 #: ../src/pk-polkit-action-lookup.c:341
 msgid "Command line"
 msgstr "Línea de comandos"
 
 #. TRANSLATORS: this is the user ID of the user that started the action
 #: ../client/pk-console.c:255
+#: ../client/pk-console-test.c:163
 msgid "User ID"
 msgstr "ID del usuario"
 
 #. TRANSLATORS: this is the username, e.g. hughsie
 #: ../client/pk-console.c:262
+#: ../client/pk-console-test.c:170
 msgid "Username"
 msgstr "Nombre de usuario"
 
 #. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
 #: ../client/pk-console.c:266
+#: ../client/pk-console-test.c:174
 msgid "Real name"
 msgstr "Nombre real"
 
 #: ../client/pk-console.c:274
+#: ../client/pk-console-test.c:182
 msgid "Affected packages:"
 msgstr "Paquete afectados:"
 
 #: ../client/pk-console.c:276
+#: ../client/pk-console-test.c:184
 msgid "Affected packages: None"
 msgstr "Paquetes afectados: Ninguno"
 
 #. TRANSLATORS: When processing, we might have to remove other dependencies
 #: ../client/pk-console.c:337
+#: ../client/pk-task-text.c:208
 msgid "The following packages have to be removed:"
 msgstr "Se eliminarán los siguientes paquetes:"
 
 #. TRANSLATORS: When processing, we might have to install other dependencies
 #: ../client/pk-console.c:340
+#: ../client/pk-task-text.c:213
 msgid "The following packages have to be installed:"
 msgstr "Los siguientes paquetes se deben instalar:"
 
 #. TRANSLATORS: When processing, we might have to update other dependencies
 #: ../client/pk-console.c:343
+#: ../client/pk-task-text.c:218
 msgid "The following packages have to be updated:"
 msgstr "Los siguientes paquetes se deben actualizar:"
 
 #. TRANSLATORS: When processing, we might have to reinstall other dependencies
 #: ../client/pk-console.c:346
+#: ../client/pk-task-text.c:223
 msgid "The following packages have to be reinstalled:"
 msgstr "Los siguientes paquetes se deben reinstalar:"
 
 #. TRANSLATORS: When processing, we might have to downgrade other dependencies
 #: ../client/pk-console.c:349
+#: ../client/pk-task-text.c:228
 msgid "The following packages have to be downgraded:"
 msgstr "Los siguientes paquetes se deben desactualizar:"
 
 #. TRANSLATORS: this is the distro, e.g. Fedora 10
 #: ../client/pk-console.c:363
+#: ../client/pk-console-test.c:204
 msgid "Distribution"
 msgstr "Distribución"
 
 #. TRANSLATORS: this is type of update, stable or testing
 #: ../client/pk-console.c:365
+#: ../client/pk-console-test.c:206
 msgid "Type"
 msgstr "Tipo"
 
 #. TRANSLATORS: this is any summary text describing the upgrade
 #. TRANSLATORS: this is the summary of the group
+#. TRANSLATORS: this is any summary text describing the upgrade
+#. TRANSLATORS: this is the summary of the group
 #: ../client/pk-console.c:367
 #: ../client/pk-console.c:390
+#: ../client/pk-console-test.c:208
+#: ../client/pk-console-test.c:229
 msgid "Summary"
 msgstr "Resúmen"
 
 #. TRANSLATORS: this is the group category name
 #: ../client/pk-console.c:379
+#: ../client/pk-console-test.c:218
 msgid "Category"
 msgstr "Categoría"
 
 #. TRANSLATORS: this is group identifier
 #: ../client/pk-console.c:381
+#: ../client/pk-console-test.c:220
 msgid "ID"
 msgstr "ID"
 
 #. TRANSLATORS: this is the parent group
 #: ../client/pk-console.c:384
+#: ../client/pk-console-test.c:223
 msgid "Parent"
 msgstr "Padre"
 
 #. TRANSLATORS: this is the name of the parent group
 #: ../client/pk-console.c:387
+#: ../client/pk-console-test.c:226
 msgid "Name"
 msgstr "Nombre"
 
 #. TRANSLATORS: this is preferred icon for the group
 #: ../client/pk-console.c:393
+#: ../client/pk-console-test.c:232
 msgid "Icon"
 msgstr "Icono"
 
 #. TRANSLATORS: this is a header for the package that can be updated
 #: ../client/pk-console.c:408
+#: ../client/pk-console-test.c:246
 msgid "Details about the update:"
 msgstr "Detalles acerca de la actualización:"
 
 #. TRANSLATORS: details about the update, package name and version
 #. TRANSLATORS: title, the names of the packages that the method is processing
 #: ../client/pk-console.c:410
+#: ../client/pk-console-test.c:252
+#: ../client/pk-task-text.c:95
+#: ../client/pk-task-text.c:144
 #: ../src/pk-polkit-action-lookup.c:352
 msgid "Package"
 msgid_plural "Packages"
@@ -171,66 +205,80 @@ msgstr[1] "Paquetes"
 
 #. TRANSLATORS: details about the update, any packages that this update updates
 #: ../client/pk-console.c:413
+#: ../client/pk-console-test.c:255
 msgid "Updates"
 msgstr "Actualizaciones"
 
 #. TRANSLATORS: details about the update, any packages that this update obsoletes
 #: ../client/pk-console.c:417
+#: ../client/pk-console-test.c:259
 msgid "Obsoletes"
 msgstr "Sustituye"
 
 #. TRANSLATORS: details about the update, the vendor URLs
 #: ../client/pk-console.c:421
+#: ../client/pk-console-test.c:263
+#: ../client/pk-task-text.c:145
 msgid "Vendor"
 msgstr "Fabricante"
 
 #. TRANSLATORS: details about the update, the bugzilla URLs
 #: ../client/pk-console.c:425
+#: ../client/pk-console-test.c:267
 msgid "Bugzilla"
 msgstr "Bugzilla"
 
 #. TRANSLATORS: details about the update, the CVE URLs
 #: ../client/pk-console.c:429
+#: ../client/pk-console-test.c:271
 msgid "CVE"
 msgstr "CVE"
 
 #. TRANSLATORS: details about the update, if the package requires a restart
 #: ../client/pk-console.c:433
+#: ../client/pk-console-test.c:275
 msgid "Restart"
 msgstr "Reiniciar"
 
 #. TRANSLATORS: details about the update, any description of the update
 #: ../client/pk-console.c:437
+#: ../client/pk-console-test.c:279
 msgid "Update text"
 msgstr "Texto de actualización"
 
 #. TRANSLATORS: details about the update, the changelog for the package
 #: ../client/pk-console.c:441
+#: ../client/pk-console-test.c:283
 msgid "Changes"
 msgstr "Cambios"
 
 #. TRANSLATORS: details about the update, the ongoing state of the update
 #: ../client/pk-console.c:445
+#: ../client/pk-console-test.c:287
 msgid "State"
 msgstr "Estado"
 
 #. TRANSLATORS: details about the update, date the update was issued
 #: ../client/pk-console.c:450
+#: ../client/pk-console-test.c:292
 msgid "Issued"
 msgstr "Emitido"
 
 #. TRANSLATORS: details about the update, date the update was updated
 #: ../client/pk-console.c:455
+#: ../client/pk-console-test.c:297
 msgid "Updated"
 msgstr "Actualizado"
 
 #. TRANSLATORS: if the repo is enabled
 #: ../client/pk-console.c:475
+#: ../client/pk-console-test.c:315
 msgid "Enabled"
 msgstr "Habilitado"
 
 #. TRANSLATORS: if the repo is disabled
 #: ../client/pk-console.c:478
+#: ../client/pk-console-test.c:318
 msgid "Disabled"
 msgstr "Deshabilitado"
 
@@ -245,62 +293,74 @@ msgstr "Desconocido"
 
 #. TRANSLATORS: a package requires the system to be restarted
 #: ../client/pk-console.c:599
+#: ../client/pk-console-test.c:340
 msgid "System restart required by:"
 msgstr "Se necesita reiniciar el sistema debido a:"
 
 #. TRANSLATORS: a package requires the session to be restarted
 #: ../client/pk-console.c:602
+#: ../client/pk-console-test.c:343
 msgid "Session restart required:"
 msgstr "Se necesita reiniciar la sesión:"
 
 #. TRANSLATORS: a package requires the system to be restarted due to a security update
 #: ../client/pk-console.c:605
+#: ../client/pk-console-test.c:346
 msgid "System restart (security) required by:"
 msgstr "Reinicio del sistema (seguridad) solicitado por:"
 
 #. TRANSLATORS: a package requires the session to be restarted due to a security update
 #: ../client/pk-console.c:608
+#: ../client/pk-console-test.c:349
 msgid "Session restart (security) required:"
 msgstr "Reinicio de la sesión (seguridad) solicitado por:"
 
 #. TRANSLATORS: a package requires the application to be restarted
 #: ../client/pk-console.c:611
+#: ../client/pk-console-test.c:352
 msgid "Application restart required by:"
 msgstr "Se necesita reiniciar una aplicación debido a:"
 
 #. TRANSLATORS: a package needs to restart their system
 #: ../client/pk-console.c:666
+#: ../client/pk-console-test.c:434
 msgid "Please restart the computer to complete the update."
 msgstr "Reinicie el equipo para completar la actualización."
 
 #. TRANSLATORS: a package needs to restart the session
 #: ../client/pk-console.c:669
+#: ../client/pk-console-test.c:437
 msgid "Please logout and login to complete the update."
 msgstr "Cierre la sesión y vuelva a entrar para completar la actualización."
 
 #. TRANSLATORS: a package needs to restart the application
 #: ../client/pk-console.c:672
+#: ../client/pk-console-test.c:440
 msgid "Please restart the application as it is being used."
 msgstr "Reinicie la aplicación que está usando."
 
 #. TRANSLATORS: a package needs to restart their system (due to security)
 #: ../client/pk-console.c:675
+#: ../client/pk-console-test.c:443
 msgid "Please restart the computer to complete the update as important security updates have been installed."
 msgstr "Por favor, reinicie el equipo para completar la actualización, ya que se han instalado actualizaciones de seguridad importantes."
 
 #. TRANSLATORS: a package needs to restart the session (due to security)
 #: ../client/pk-console.c:678
+#: ../client/pk-console-test.c:446
 msgid "Please logout and login to complete the update as important security updates have been installed."
 msgstr "Por favor, cierre la sesión y vuelva a registrarse para completar la actualización, ya que se han instalado actualizaciones de seguridad importantes."
 
 #. TRANSLATORS: The package is already installed on the system
 #: ../client/pk-console.c:810
+#: ../client/pk-console-test.c:541
 #, c-format
 msgid "The package %s is already installed"
 msgstr "El paquete %s ya está instalado"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
 #: ../client/pk-console.c:818
+#: ../client/pk-console-test.c:549
 #, c-format
 msgid "The package %s could not be installed: %s"
 msgstr "No se pudo instalar el paquete %s: %s"
@@ -321,9 +381,11 @@ msgid "Internal error: %s"
 msgstr "Error interno: %s"
 
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
+#. ask the user
 #: ../client/pk-console.c:876
 #: ../client/pk-console.c:948
 #: ../client/pk-console.c:1266
+#: ../client/pk-task-text.c:284
 msgid "Proceed with changes?"
 msgstr "¿Proceder con los cambios?"
 
@@ -336,18 +398,21 @@ msgstr "¡Se canceló la instalación del paquete!"
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
 #: ../client/pk-console.c:900
 #: ../client/pk-console.c:1634
+#: ../client/pk-console-test.c:572
 #, c-format
 msgid "This tool could not install the packages: %s"
 msgstr "Esta herramienta no pudo instalar los paquetes: %s"
 
 #. TRANSLATORS: There was an error installing the files. The detailed error follows
 #: ../client/pk-console.c:972
+#: ../client/pk-console-test.c:586
 #, c-format
 msgid "This tool could not install the files: %s"
 msgstr "Esta herramienta no pudo instalar los archivos: %s"
 
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
 #: ../client/pk-console.c:1028
+#: ../client/pk-console-test.c:636
 #, c-format
 msgid "This tool could not remove %s: %s"
 msgstr "Esta herramienta no pudo eliminar %s: %s"
@@ -356,6 +421,7 @@ msgstr "Esta herramienta no pudo eliminar %s: %s"
 #: ../client/pk-console.c:1051
 #: ../client/pk-console.c:1089
 #: ../client/pk-console.c:1118
+#: ../client/pk-console-test.c:657
 #, c-format
 msgid "This tool could not remove the packages: %s"
 msgstr "Esta herramienta no pudo eliminar los paquetes: %s"
@@ -372,12 +438,14 @@ msgstr "Se canceló la eliminación de paquetes"
 
 #. TRANSLATORS: The package name was not found in any software sources
 #: ../client/pk-console.c:1150
+#: ../client/pk-console-test.c:689
 #, c-format
 msgid "This tool could not download the package %s as it could not be found"
 msgstr "Esta herramienta no pudo descargar el paquete %s debido a que no se encontró"
 
 #. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
 #: ../client/pk-console.c:1181
+#: ../client/pk-console-test.c:711
 #, c-format
 msgid "This tool could not download the packages: %s"
 msgstr "Esta herramienta no pudo descargar los paquetes: %s"
@@ -386,6 +454,8 @@ msgstr "Esta herramienta no pudo descargar los paquetes: %s"
 #: ../client/pk-console.c:1213
 #: ../client/pk-console.c:1225
 #: ../client/pk-console.c:1280
+#: ../client/pk-console-test.c:743
+#: ../client/pk-console-test.c:753
 #, c-format
 msgid "This tool could not update %s: %s"
 msgstr "Esta herramienta no pudo actualizar %s: %s"
@@ -398,6 +468,8 @@ msgstr "¡Se canceló la actualización del paquete!"
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
 #: ../client/pk-console.c:1304
 #: ../client/pk-console.c:1312
+#: ../client/pk-console-test.c:779
+#: ../client/pk-console-test.c:787
 #, c-format
 msgid "This tool could not get the requirements for %s: %s"
 msgstr "Esta herramienta no pudo obtener los requerimientos de %s: %s"
@@ -405,6 +477,8 @@ msgstr "Esta herramienta no pudo obtener los requerimientos de %s: %s"
 #. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
 #: ../client/pk-console.c:1334
 #: ../client/pk-console.c:1342
+#: ../client/pk-console-test.c:809
+#: ../client/pk-console-test.c:817
 #, c-format
 msgid "This tool could not get the dependencies for %s: %s"
 msgstr "Esta herramienta no pudo obtener las dependencias de %s: %s"
@@ -412,18 +486,22 @@ msgstr "Esta herramienta no pudo obtener las dependencias de %s: %s"
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
 #: ../client/pk-console.c:1364
 #: ../client/pk-console.c:1372
+#: ../client/pk-console-test.c:839
+#: ../client/pk-console-test.c:847
 #, c-format
 msgid "This tool could not get package details for %s: %s"
 msgstr "Esta herramienta no pudo obtener los detalles del paquete %s: %s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
 #: ../client/pk-console.c:1394
+#: ../client/pk-console-test.c:869
 #, c-format
 msgid "This tool could not find the files for %s: %s"
 msgstr "Esta herramienta no pudo encontrar los archivos de %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
 #: ../client/pk-console.c:1402
+#: ../client/pk-console-test.c:877
 #, c-format
 msgid "This tool could not get the file list for %s: %s"
 msgstr "Esta herramienta no pudo obtener la lista de archivos de %s: %s"
@@ -509,12 +587,14 @@ msgstr "Instalando paquetes"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
 #: ../client/pk-console.c:1663
+#: ../client/pk-console-test.c:899
 #, c-format
 msgid "This tool could not find the update details for %s: %s"
 msgstr "Esta herramienta no pudo encontrar los detalles de actualización de %s: %s"
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
 #: ../client/pk-console.c:1671
+#: ../client/pk-console-test.c:907
 #, c-format
 msgid "This tool could not get the update details for %s: %s"
 msgstr "Esta herramienta no pudo obtener los detalles de actualización de %s: %s"
@@ -526,21 +606,25 @@ msgstr "Error:"
 
 #. TRANSLATORS: This a list of details about the package
 #: ../client/pk-console.c:1716
+#: ../client/pk-console-test.c:369
 msgid "Package description"
 msgstr "Descripción del paquete"
 
 #. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
 #: ../client/pk-console.c:1732
+#: ../client/pk-console-test.c:387
 msgid "Message:"
 msgstr "Mensaje:"
 
 #. TRANSLATORS: This a list files contained in the package
 #: ../client/pk-console.c:1760
+#: ../client/pk-console-test.c:415
 msgid "Package files"
 msgstr "Archivos del paquete"
 
 #. TRANSLATORS: This where the package has no files
 #: ../client/pk-console.c:1768
+#: ../client/pk-console-test.c:410
 msgid "No files"
 msgstr "No hay archivos"
 
@@ -550,12 +634,15 @@ msgid "Repository signature required"
 msgstr "Se requiere la firma del repositorio"
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
+#. ask the user
 #: ../client/pk-console.c:1801
+#: ../client/pk-task-text.c:107
 msgid "Do you accept this signature?"
 msgstr "¿Acepta esta firma?"
 
 #. TRANSLATORS: This is where the user declined the security key
 #: ../client/pk-console.c:1805
+#: ../client/pk-task-text.c:111
 msgid "The signature was not accepted."
 msgstr "No se aceptó la firma."
 
@@ -576,22 +663,26 @@ msgstr "Se rechazó la licencia."
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
 #: ../client/pk-console.c:1879
+#: ../client/pk-console-test.c:925
 msgid "The daemon crashed mid-transaction!"
 msgstr "El demonio se colgó en medio de una transacción."
 
 #. TRANSLATORS: This is the header to the --help menu
 #: ../client/pk-console.c:1932
+#: ../client/pk-console-test.c:969
 msgid "PackageKit Console Interface"
 msgstr "Interfaz de consola de PackageKit"
 
 #. these are commands we can use with pkcon
 #: ../client/pk-console.c:1934
+#: ../client/pk-console-test.c:971
 msgid "Subcommands:"
 msgstr "Subcomandos:"
 
 #. TRANSLATORS: command line argument, if we should show debugging information
 #. TRANSLATORS: if we should show debugging data
 #: ../client/pk-console.c:2027
+#: ../client/pk-console-test.c:1202
 #: ../client/pk-generate-pack.c:187
 #: ../client/pk-monitor.c:128
 #: ../contrib/command-not-found/pk-command-not-found.c:616
@@ -603,17 +694,20 @@ msgstr "Mostrar información extra de depuración"
 
 #. TRANSLATORS: command line argument, just show the version string
 #: ../client/pk-console.c:2030
+#: ../client/pk-console-test.c:1205
 #: ../client/pk-monitor.c:130
 msgid "Show the program version and exit"
 msgstr "Mostrar la versión del programa y salir"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
 #: ../client/pk-console.c:2033
+#: ../client/pk-console-test.c:1208
 msgid "Set the filter, e.g. installed"
 msgstr "Establecer el filtro, ej. instalado"
 
 #. TRANSLATORS: command line argument, work asynchronously
 #: ../client/pk-console.c:2036
+#: ../client/pk-console-test.c:1211
 msgid "Exit without waiting for actions to complete"
 msgstr "Salir sin esperar que las acciones se completen"
 
@@ -624,11 +718,13 @@ msgstr "Esta herramienta no se pudo conectar al DBUS del sistema."
 
 #. TRANSLATORS: The user specified an incorrect filter
 #: ../client/pk-console.c:2153
+#: ../client/pk-console-test.c:1279
 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:2172
+#: ../client/pk-console-test.c:1298
 msgid "A search type is required, e.g. name"
 msgstr "Se necesita un tipo de búsqueda, por ejemplo, nombre"
 
@@ -637,77 +733,96 @@ msgstr "Se necesita un tipo de búsqueda, por ejemplo, nombre"
 #: ../client/pk-console.c:2188
 #: ../client/pk-console.c:2197
 #: ../client/pk-console.c:2206
+#: ../client/pk-console-test.c:1305
+#: ../client/pk-console-test.c:1317
+#: ../client/pk-console-test.c:1329
+#: ../client/pk-console-test.c:1341
 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:2213
+#: ../client/pk-console-test.c:1351
 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:2219
+#: ../client/pk-console-test.c:1358
 msgid "A package name or filename to install is required"
 msgstr "Se requiere un nombre de paquete o nombre de archivo para instalar"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
 #: ../client/pk-console.c:2228
+#: ../client/pk-console-test.c:1368
 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:2237
+#: ../client/pk-console-test.c:1379
 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:2245
+#: ../client/pk-console-test.c:1387
 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:2252
+#: ../client/pk-console-test.c:1394
 msgid "Directory not found"
 msgstr "Directorio no encontrado"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
 #: ../client/pk-console.c:2260
+#: ../client/pk-console-test.c:1403
 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:2270
+#: ../client/pk-console-test.c:1415
 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:2287
+#: ../client/pk-console-test.c:1437
 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:2296
 #: ../client/pk-console.c:2305
+#: ../client/pk-console-test.c:1448
+#: ../client/pk-console-test.c:1459
 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:2314
+#: ../client/pk-console-test.c:1470
 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:2328
+#: ../client/pk-console-test.c:1488
 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:2335
+#: ../client/pk-console-test.c:1495
 msgid "A correct role is required"
 msgstr "Se necesita un rol correcto"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was last executed
 #: ../client/pk-console.c:2342
+#: ../client/pk-console-test.c:1502
 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"
 
@@ -718,12 +833,18 @@ msgstr "Falló al obtener la hora de la última vez que se completó esta acció
 #: ../client/pk-console.c:2373
 #: ../client/pk-console.c:2391
 #: ../client/pk-console.c:2400
+#: ../client/pk-console-test.c:1511
+#: ../client/pk-console-test.c:1526
+#: ../client/pk-console-test.c:1535
+#: ../client/pk-console-test.c:1556
+#: ../client/pk-console-test.c:1565
 #: ../client/pk-generate-pack.c:243
 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:2382
+#: ../client/pk-console-test.c:1545
 msgid "A package provide string is required"
 msgstr "Se necesita la cadena de lo que proporciona el paquete"
 
@@ -740,6 +861,7 @@ msgstr "Se necesita un archivo de lista para abrir"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
 #: ../client/pk-console.c:2483
+#: ../client/pk-console-test.c:1619
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "La opción «%s» no está soportada"
@@ -750,7 +872,11 @@ msgid "Incorrect privileges for this operation"
 msgstr "Privilegios incorrectos para esta operación"
 
 #. TRANSLATORS: Generic failure of what they asked to do
+#. /* TRANSLATORS: User does not have permission to do this */
+#. g_print ("%s\n", _("Incorrect privileges for this operation"));
+#. TRANSLATORS: Generic failure of what they asked to do
 #: ../client/pk-console.c:2499
+#: ../client/pk-console-test.c:1631
 msgid "Command failed"
 msgstr "Falló el comando"
 
@@ -878,6 +1004,98 @@ msgstr "Monitor de PackageKit"
 msgid "Cannot show the list of transactions"
 msgstr "No es posible mostrar la lista de transacciones"
 
+#. ask the user
+#: ../client/pk-task-text.c:61
+msgid "Do you want to allow installing of unsigned software?"
+msgstr "¿Desea permitir la instalación de software que no esté identificado?"
+
+#: ../client/pk-task-text.c:65
+msgid "The unsigned software will not be installed."
+msgstr "El software no identificado no será instalado."
+
+#: ../client/pk-task-text.c:94
+msgid "Software source signature required"
+msgstr "Se necesita la firma de la fuente del software"
+
+#: ../client/pk-task-text.c:96
+msgid "Software source name"
+msgstr "Nombre de la fuente del software"
+
+#: ../client/pk-task-text.c:97
+msgid "Key URL"
+msgstr "URL de la clave"
+
+#: ../client/pk-task-text.c:98
+msgid "Key user"
+msgstr "Usuario de la clave"
+
+#: ../client/pk-task-text.c:99
+msgid "Key ID"
+msgstr "ID de la clave"
+
+#: ../client/pk-task-text.c:100
+msgid "Key fingerprint"
+msgstr "Huella digital de la clave"
+
+#: ../client/pk-task-text.c:101
+msgid "Key Timestamp"
+msgstr "Fecha y hora de la clave"
+
+#: ../client/pk-task-text.c:142
+msgid "End user licence agreement required"
+msgstr "Se necesita un acuerdo de licencia de usuario final"
+
+#: ../client/pk-task-text.c:143
+msgid "EULA ID"
+msgstr "ID del acuerdo de licencia de usuario final (EULA) "
+
+#: ../client/pk-task-text.c:146
+msgid "Agreement"
+msgstr "Acuerdo"
+
+#. ask the user
+#: ../client/pk-task-text.c:152
+msgid "Do you accept this agreement?"
+msgstr "¿Acepta este acuerdo?"
+
+#: ../client/pk-task-text.c:156
+msgid "The agreement was not accepted."
+msgstr "El acuerdo no fue aceptado."
+
+#: ../client/pk-task-text.c:182
+msgid "Media change required"
+msgstr "Es necesario cambiar el medio"
+
+#: ../client/pk-task-text.c:183
+msgid "Media type"
+msgstr "Tipo de medio"
+
+#: ../client/pk-task-text.c:184
+msgid "Media ID"
+msgstr "ID de medio"
+
+#: ../client/pk-task-text.c:185
+msgid "Text"
+msgstr "TExto"
+
+#. ask the user
+#: ../client/pk-task-text.c:189
+msgid "Please insert the correct media"
+msgstr "Por favor, inserte el medio correcto "
+
+#: ../client/pk-task-text.c:193
+msgid "The correct media was not inserted."
+msgstr "El medio correcto no fue insertado."
+
+#: ../client/pk-task-text.c:288
+msgid "The transaction did not proceed."
+msgstr "La transacción no pudo realizarse."
+
+#: ../client/pk-text.c:50
+#, c-format
+msgid "Please enter a number from 1 to %i: "
+msgstr "Introduzca un número de 1 a %i: "
+
 #. TRANSLATORS: The package was not found in any software sources
 #: ../client/pk-tools-common.c:119
 #, c-format
@@ -1591,11 +1809,6 @@ msgstr "Varios paquetes"
 msgid "Only trusted"
 msgstr "Solo confiable"
 
-#: ../client/pk-text.c:50
-#, c-format
-msgid "Please enter a number from 1 to %i: "
-msgstr "Introduzca un número de 1 a %i: "
-
 #~ msgid "Main cache file to use (if not specififed, default is used)"
 #~ msgstr ""
 #~ "Archivo caché principal a usar (si no se especifica, se usará el "
commit 7693670c86b177b48c057e6d3b9400e665f45c89
Author: Valeriy Lyasotskiy <onestep at ukr.net>
Date:   Fri Sep 4 16:10:30 2009 +0300

    egg-debug: create log file with correct permissions

diff --git a/lib/packagekit-glib/egg-debug.c b/lib/packagekit-glib/egg-debug.c
index dff185e..2b12504 100644
--- a/lib/packagekit-glib/egg-debug.c
+++ b/lib/packagekit-glib/egg-debug.c
@@ -114,7 +114,7 @@ pk_log_line (const gchar *buffer)
 	/* open a file */
 	if (fd == -1) {
 		/* ITS4: ignore, /var/log/foo is owned by root, and this is just debug text */
-		fd = open (EGG_LOG_FILE, O_WRONLY|O_APPEND|O_CREAT, 0777);
+		fd = open (EGG_LOG_FILE, O_WRONLY|O_APPEND|O_CREAT, 0644);
 		if (fd == -1)
 			g_error ("could not open log: '%s'", EGG_LOG_FILE);
 	}
commit e8ce485cab321baf605b2fc475112246084eceb8
Author: hunter688 <hunter688 at fedoraproject.org>
Date:   Fri Sep 4 13:05:31 2009 +0000

    Sending translation for Czech

diff --git a/po/cs.po b/po/cs.po
index 7ec773d..243e80a 100644
--- a/po/cs.po
+++ b/po/cs.po
@@ -8,8 +8,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: packagekit.master.cs\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-08-24 11:06+0100\n"
-"PO-Revision-Date: 2009-07-01 14:04+0100\n"
+"POT-Creation-Date: 2009-09-04 08:25+0000\n"
+"PO-Revision-Date: 2009-09-04 15:04+0100\n"
 "Last-Translator: Dušan Hokův <dusan at mirc.cz>\n"
 "Language-Team: Czech <fedora-cs-list at redhat.com>\n"
 "MIME-Version: 1.0\n"
@@ -19,810 +19,1014 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
 #. TRANSLATORS: this is an atomic transaction
-#: ../client/pk-console.c:235
+#: ../client/pk-console.c:238
+#: ../client/pk-console-test.c:146
 msgid "Transaction"
 msgstr "Transakce"
 
 #. TRANSLATORS: this is the time the transaction was started in system timezone
-#: ../client/pk-console.c:237
+#: ../client/pk-console.c:240
+#: ../client/pk-console-test.c:148
 msgid "System time"
 msgstr "Systémový čas"
 
 #. TRANSLATORS: this is if the transaction succeeded or not
-#: ../client/pk-console.c:239
+#: ../client/pk-console.c:242
+#: ../client/pk-console-test.c:150
 msgid "Succeeded"
 msgstr ""
 
-#. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:239 ../client/pk-console.c:406
+#: ../client/pk-console.c:242
+#: ../client/pk-console-test.c:150
 msgid "True"
 msgstr ""
 
-#: ../client/pk-console.c:239 ../client/pk-console.c:406
+#: ../client/pk-console.c:242
+#: ../client/pk-console-test.c:150
 msgid "False"
 msgstr ""
 
 #. TRANSLATORS: this is the transactions role, e.g. "update-system"
 #. TRANSLATORS: the trasaction role, e.g. update-system
-#: ../client/pk-console.c:241 ../src/pk-polkit-action-lookup.c:327
+#: ../client/pk-console.c:244
+#: ../client/pk-console-test.c:152
+#: ../src/pk-polkit-action-lookup.c:327
 msgid "Role"
 msgstr ""
 
 #. TRANSLATORS: this is The duration of the transaction
-#: ../client/pk-console.c:246
+#: ../client/pk-console.c:249
+#: ../client/pk-console-test.c:157
 msgid "Duration"
 msgstr ""
 
-#: ../client/pk-console.c:246
+#: ../client/pk-console.c:249
+#: ../client/pk-console-test.c:157
 msgid "(seconds)"
 msgstr "(sekund)"
 
 #. TRANSLATORS: this is The command line used to do the action
 #. TRANSLATORS: the command line of the thing that wants the authentication
-#: ../client/pk-console.c:250 ../src/pk-polkit-action-lookup.c:341
+#: ../client/pk-console.c:253
+#: ../client/pk-console-test.c:161
+#: ../src/pk-polkit-action-lookup.c:341
 msgid "Command line"
 msgstr "Příkazový řádek"
 
 #. TRANSLATORS: this is the user ID of the user that started the action
-#: ../client/pk-console.c:252
+#: ../client/pk-console.c:255
+#: ../client/pk-console-test.c:163
 msgid "User ID"
 msgstr "Uživatelské ID"
 
 #. TRANSLATORS: this is the username, e.g. hughsie
-#: ../client/pk-console.c:259
+#: ../client/pk-console.c:262
+#: ../client/pk-console-test.c:170
 msgid "Username"
 msgstr "Uživatelské jméno"
 
 #. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
-#: ../client/pk-console.c:263
+#: ../client/pk-console.c:266
+#: ../client/pk-console-test.c:174
 msgid "Real name"
 msgstr "Skutečné jméno"
 
-#: ../client/pk-console.c:271
+#: ../client/pk-console.c:274
+#: ../client/pk-console-test.c:182
 #, fuzzy
 msgid "Affected packages:"
 msgstr "Aktualizovat balík"
 
-#: ../client/pk-console.c:273
+#: ../client/pk-console.c:276
+#: ../client/pk-console-test.c:184
 msgid "Affected packages: None"
 msgstr ""
 
+#. TRANSLATORS: When processing, we might have to remove other dependencies
+#: ../client/pk-console.c:337
+#: ../client/pk-task-text.c:208
+msgid "The following packages have to be removed:"
+msgstr "Následující balíky musí být odstraněny:"
+
+#. TRANSLATORS: When processing, we might have to install other dependencies
+#: ../client/pk-console.c:340
+#: ../client/pk-task-text.c:213
+#, fuzzy
+msgid "The following packages have to be installed:"
+msgstr "Následující balíky musí být odstraněny:"
+
+#. TRANSLATORS: When processing, we might have to update other dependencies
+#: ../client/pk-console.c:343
+#: ../client/pk-task-text.c:218
+#, fuzzy
+msgid "The following packages have to be updated:"
+msgstr "Následující balíky musí být odstraněny:"
+
+#. TRANSLATORS: When processing, we might have to reinstall other dependencies
+#: ../client/pk-console.c:346
+#: ../client/pk-task-text.c:223
+#, fuzzy
+msgid "The following packages have to be reinstalled:"
+msgstr "Následující balíky musí být odstraněny:"
+
+#. TRANSLATORS: When processing, we might have to downgrade other dependencies
+#: ../client/pk-console.c:349
+#: ../client/pk-task-text.c:228
+#, fuzzy
+msgid "The following packages have to be downgraded:"
+msgstr "Následující balíky musí být odstraněny:"
+
 #. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:298
+#: ../client/pk-console.c:363
+#: ../client/pk-console-test.c:204
 msgid "Distribution"
 msgstr "Distribuce"
 
 #. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:300
+#: ../client/pk-console.c:365
+#: ../client/pk-console-test.c:206
 msgid "Type"
 msgstr "Typ"
 
 #. TRANSLATORS: this is any summary text describing the upgrade
 #. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:302 ../client/pk-console.c:325
+#. TRANSLATORS: this is any summary text describing the upgrade
+#. TRANSLATORS: this is the summary of the group
+#: ../client/pk-console.c:367
+#: ../client/pk-console.c:390
+#: ../client/pk-console-test.c:208
+#: ../client/pk-console-test.c:229
 msgid "Summary"
 msgstr "Souhrn"
 
 #. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:314
+#: ../client/pk-console.c:379
+#: ../client/pk-console-test.c:218
 msgid "Category"
 msgstr "Kategorie"
 
 #. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:316
+#: ../client/pk-console.c:381
+#: ../client/pk-console-test.c:220
 msgid "ID"
 msgstr "ID"
 
 #. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:319
+#: ../client/pk-console.c:384
+#: ../client/pk-console-test.c:223
 msgid "Parent"
 msgstr ""
 
 #. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:322
+#: ../client/pk-console.c:387
+#: ../client/pk-console-test.c:226
 msgid "Name"
 msgstr "Název"
 
 #. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:328
+#: ../client/pk-console.c:393
+#: ../client/pk-console-test.c:232
 msgid "Icon"
 msgstr "Ikona"
 
 #. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:343
+#: ../client/pk-console.c:408
+#: ../client/pk-console-test.c:246
 msgid "Details about the update:"
 msgstr "Detaily o aktualizaci:"
 
 #. TRANSLATORS: details about the update, package name and version
 #. TRANSLATORS: title, the names of the packages that the method is processing
-#: ../client/pk-console.c:345 ../src/pk-polkit-action-lookup.c:352
-#, fuzzy
+#: ../client/pk-console.c:410
+#: ../client/pk-console-test.c:252
+#: ../client/pk-task-text.c:95
+#: ../client/pk-task-text.c:144
+#: ../src/pk-polkit-action-lookup.c:352
 msgid "Package"
 msgid_plural "Packages"
 msgstr[0] "Balík"
-msgstr[1] "Balík"
+msgstr[1] "Balíky"
 
 #. TRANSLATORS: details about the update, any packages that this update updates
-#: ../client/pk-console.c:348
+#: ../client/pk-console.c:413
+#: ../client/pk-console-test.c:255
 #, fuzzy
 msgid "Updates"
 msgstr "Aktualizovat balík"
 
 #. TRANSLATORS: details about the update, any packages that this update obsoletes
-#: ../client/pk-console.c:352
+#: ../client/pk-console.c:417
+#: ../client/pk-console-test.c:259
 msgid "Obsoletes"
 msgstr "Zastarává"
 
 #. TRANSLATORS: details about the update, the vendor URLs
-#: ../client/pk-console.c:356
+#: ../client/pk-console.c:421
+#: ../client/pk-console-test.c:263
+#: ../client/pk-task-text.c:145
 msgid "Vendor"
 msgstr "Výrobce"
 
 #. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:360
+#: ../client/pk-console.c:425
+#: ../client/pk-console-test.c:267
 msgid "Bugzilla"
 msgstr "Bugzilla"
 
 #. TRANSLATORS: details about the update, the CVE URLs
-#: ../client/pk-console.c:364
+#: ../client/pk-console.c:429
+#: ../client/pk-console-test.c:271
 msgid "CVE"
 msgstr "CVE"
 
 #. TRANSLATORS: details about the update, if the package requires a restart
-#: ../client/pk-console.c:368
+#: ../client/pk-console.c:433
+#: ../client/pk-console-test.c:275
 msgid "Restart"
 msgstr "Restart"
 
 #. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:372
+#: ../client/pk-console.c:437
+#: ../client/pk-console-test.c:279
 #, fuzzy
 msgid "Update text"
 msgstr "Aktualizovat podrobnosti"
 
 #. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:376
+#: ../client/pk-console.c:441
+#: ../client/pk-console-test.c:283
 msgid "Changes"
 msgstr ""
 
 #. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:380
+#: ../client/pk-console.c:445
+#: ../client/pk-console-test.c:287
 msgid "State"
 msgstr "Stav"
 
 #. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:385
+#: ../client/pk-console.c:450
+#: ../client/pk-console-test.c:292
 msgid "Issued"
 msgstr ""
 
 #. TRANSLATORS: details about the update, date the update was updated
-#: ../client/pk-console.c:390
+#: ../client/pk-console.c:455
+#: ../client/pk-console-test.c:297
 #, fuzzy
 msgid "Updated"
 msgstr "Aktualizovat podrobnosti"
 
-#: ../client/pk-console.c:477 ../client/pk-console.c:479
+#. TRANSLATORS: if the repo is enabled
+#: ../client/pk-console.c:475
+#: ../client/pk-console-test.c:315
+msgid "Enabled"
+msgstr ""
+
+#. TRANSLATORS: if the repo is disabled
+#: ../client/pk-console.c:478
+#: ../client/pk-console-test.c:318
+msgid "Disabled"
+msgstr ""
+
+#: ../client/pk-console.c:555
+#: ../client/pk-console.c:557
 msgid "Percentage"
 msgstr ""
 
-#: ../client/pk-console.c:479
+#: ../client/pk-console.c:557
 msgid "Unknown"
 msgstr "Neznámý"
 
 #. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:521
+#: ../client/pk-console.c:599
+#: ../client/pk-console-test.c:340
 #, fuzzy
 msgid "System restart required by:"
 msgstr "Je požadován restart systému"
 
 #. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:524
+#: ../client/pk-console.c:602
+#: ../client/pk-console-test.c:343
 #, fuzzy
 msgid "Session restart required:"
 msgstr "Je požadován restart systému"
 
 #. TRANSLATORS: a package requires the system to be restarted due to a security update
-#: ../client/pk-console.c:527
+#: ../client/pk-console.c:605
+#: ../client/pk-console-test.c:346
 #, fuzzy
 msgid "System restart (security) required by:"
 msgstr "Je požadován restart systému"
 
 #. TRANSLATORS: a package requires the session to be restarted due to a security update
-#: ../client/pk-console.c:530
+#: ../client/pk-console.c:608
+#: ../client/pk-console-test.c:349
 #, fuzzy
 msgid "Session restart (security) required:"
 msgstr "Je požadován restart systému"
 
 #. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:533
+#: ../client/pk-console.c:611
+#: ../client/pk-console-test.c:352
 #, fuzzy
 msgid "Application restart required by:"
 msgstr "Je vyžadován restart aplikace"
 
 #. TRANSLATORS: a package needs to restart their system
-#: ../client/pk-console.c:588
+#: ../client/pk-console.c:666
+#: ../client/pk-console-test.c:434
 msgid "Please restart the computer to complete the update."
 msgstr "Prosím restartujte počítač pro dokončení aktualizace."
 
 #. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:591
+#: ../client/pk-console.c:669
+#: ../client/pk-console-test.c:437
 msgid "Please logout and login to complete the update."
 msgstr "Prosím odhlaste se a znovu se přihlašte pro dokončení aktualizace."
 
 #. TRANSLATORS: a package needs to restart the application
-#: ../client/pk-console.c:594
+#: ../client/pk-console.c:672
+#: ../client/pk-console-test.c:440
 msgid "Please restart the application as it is being used."
 msgstr "Prosím restartujte aplikaci, protože je právě používána."
 
 #. TRANSLATORS: a package needs to restart their system (due to security)
-#: ../client/pk-console.c:597
+#: ../client/pk-console.c:675
+#: ../client/pk-console-test.c:443
 #, fuzzy
-msgid ""
-"Please restart the computer to complete the update as important security "
-"updates have been installed."
+msgid "Please restart the computer to complete the update as important security updates have been installed."
 msgstr "Prosím restartujte počítač pro dokončení aktualizace."
 
 #. TRANSLATORS: a package needs to restart the session (due to security)
-#: ../client/pk-console.c:600
+#: ../client/pk-console.c:678
+#: ../client/pk-console-test.c:446
 #, fuzzy
-msgid ""
-"Please logout and login to complete the update as important security updates "
-"have been installed."
+msgid "Please logout and login to complete the update as important security updates have been installed."
 msgstr "Prosím odhlaste se a znovu se přihlašte pro dokončení aktualizace."
 
 #. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:727
+#: ../client/pk-console.c:810
+#: ../client/pk-console-test.c:541
 #, fuzzy, c-format
 msgid "The package %s is already installed"
 msgstr "Balík '%s' je již nainstalován"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:735
+#: ../client/pk-console.c:818
+#: ../client/pk-console-test.c:549
 #, fuzzy, c-format
 msgid "The package %s could not be installed: %s"
 msgstr "Balík '%s' nemůže být nainstalován: %s"
 
 #. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
-#: ../client/pk-console.c:760 ../client/pk-console.c:783
-#: ../client/pk-console.c:879 ../client/pk-console.c:996
-#: ../client/pk-tools-common.c:62 ../client/pk-tools-common.c:81
-#: ../client/pk-tools-common.c:89
+#: ../client/pk-console.c:844
+#: ../client/pk-console.c:892
+#: ../client/pk-console.c:916
+#: ../client/pk-console.c:964
+#: ../client/pk-console.c:1060
+#: ../client/pk-console.c:1173
+#: ../client/pk-console.c:1234
+#: ../client/pk-tools-common.c:63
+#: ../client/pk-tools-common.c:82
+#: ../client/pk-tools-common.c:90
 #, c-format
 msgid "Internal error: %s"
 msgstr "Interní chyba: %s"
 
+#. TRANSLATORS: We are checking if it's okay to remove a list of packages
+#. ask the user
+#: ../client/pk-console.c:876
+#: ../client/pk-console.c:948
+#: ../client/pk-console.c:1266
+#: ../client/pk-task-text.c:284
+msgid "Proceed with changes?"
+msgstr ""
+
+#. TRANSLATORS: There was an error removing the packages. The detailed error follows
+#: ../client/pk-console.c:881
+#: ../client/pk-console.c:953
+#, fuzzy
+msgid "The package install was canceled!"
+msgstr "Odstranění baličku bylo zrušeno!"
+
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:768 ../client/pk-console.c:1392
+#: ../client/pk-console.c:900
+#: ../client/pk-console.c:1634
+#: ../client/pk-console-test.c:572
 #, c-format
 msgid "This tool could not install the packages: %s"
 msgstr "Tento nástroj není schopen nainstalovat balíky: %s"
 
 #. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:791
+#: ../client/pk-console.c:972
+#: ../client/pk-console-test.c:586
 #, c-format
 msgid "This tool could not install the files: %s"
 msgstr "Tento nástroj není schopen nainstalovat soubory: %s"
 
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:847
+#: ../client/pk-console.c:1028
+#: ../client/pk-console-test.c:636
 #, fuzzy, c-format
 msgid "This tool could not remove %s: %s"
 msgstr "Tento nástroj nemůže odstranit '%s': %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:870 ../client/pk-console.c:908
-#: ../client/pk-console.c:941
+#: ../client/pk-console.c:1051
+#: ../client/pk-console.c:1089
+#: ../client/pk-console.c:1118
+#: ../client/pk-console-test.c:657
 #, c-format
 msgid "This tool could not remove the packages: %s"
 msgstr "Tento nástroj nemůže odstranit balíky: %s"
 
-#. TRANSLATORS: When removing, we might have to remove other dependencies
-#: ../client/pk-console.c:920
-msgid "The following packages have to be removed:"
-msgstr "Následující balíky musí být odstraněny:"
-
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:927
-msgid "Proceed removing additional packages?"
+#: ../client/pk-console.c:1104
+#, fuzzy
+msgid "Proceed with additional packages?"
 msgstr "Souhlasíte s odstraněním doplňkových balíků? "
 
-#. TRANSLATORS: We did not remove any packages
-#: ../client/pk-console.c:932
+#. TRANSLATORS: There was an error removing the packages. The detailed error follows
+#: ../client/pk-console.c:1109
 msgid "The package removal was canceled!"
 msgstr "Odstranění baličku bylo zrušeno!"
 
 #. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:973
+#: ../client/pk-console.c:1150
+#: ../client/pk-console-test.c:689
 #, fuzzy, c-format
 msgid "This tool could not download the package %s as it could not be found"
 msgstr "Tento nástroj nemůže stáhnout balík '%s', protože nemůže být nalezen"
 
 #. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:1004
+#: ../client/pk-console.c:1181
+#: ../client/pk-console-test.c:711
 #, c-format
 msgid "This tool could not download the packages: %s"
 msgstr "Tento nástroj nemůže stáhnout balíky: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1031 ../client/pk-console.c:1040
+#: ../client/pk-console.c:1213
+#: ../client/pk-console.c:1225
+#: ../client/pk-console.c:1280
+#: ../client/pk-console-test.c:743
+#: ../client/pk-console-test.c:753
 #, fuzzy, c-format
 msgid "This tool could not update %s: %s"
 msgstr "Tento nástroj nemůže aktualizovat '%s': %s"
 
+#. TRANSLATORS: There was an error removing the packages. The detailed error follows
+#: ../client/pk-console.c:1271
+#, fuzzy
+msgid "The package update was canceled!"
+msgstr "Odstranění baličku bylo zrušeno!"
+
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1062 ../client/pk-console.c:1070
+#: ../client/pk-console.c:1304
+#: ../client/pk-console.c:1312
+#: ../client/pk-console-test.c:779
+#: ../client/pk-console-test.c:787
 #, fuzzy, c-format
 msgid "This tool could not get the requirements for %s: %s"
 msgstr "Tento nástroj nemůže získat  požadavky pro '%s': %s"
 
 #. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:1092 ../client/pk-console.c:1100
+#: ../client/pk-console.c:1334
+#: ../client/pk-console.c:1342
+#: ../client/pk-console-test.c:809
+#: ../client/pk-console-test.c:817
 #, fuzzy, c-format
 msgid "This tool could not get the dependencies for %s: %s"
 msgstr "Tento nástroj nemůže získat závislosti pro '%s': %s"
 
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:1122 ../client/pk-console.c:1130
+#: ../client/pk-console.c:1364
+#: ../client/pk-console.c:1372
+#: ../client/pk-console-test.c:839
+#: ../client/pk-console-test.c:847
 #, fuzzy, c-format
 msgid "This tool could not get package details for %s: %s"
 msgstr "Tento nástroj nemůže získat detaily o '%s': %s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1152
+#: ../client/pk-console.c:1394
+#: ../client/pk-console-test.c:869
 #, fuzzy, c-format
 msgid "This tool could not find the files for %s: %s"
 msgstr "Tento nástroj nemůže najít soubory pro '%s': %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1160
+#: ../client/pk-console.c:1402
+#: ../client/pk-console-test.c:877
 #, fuzzy, c-format
 msgid "This tool could not get the file list for %s: %s"
 msgstr "Tento nástroj nemůže získat seznam souborů pro '%s': %s"
 
 #. TRANSLATORS: There was an error getting the list of packages. The filename follows
-#: ../client/pk-console.c:1182
+#: ../client/pk-console.c:1424
 #, c-format
 msgid "File already exists: %s"
 msgstr "Soubor již existuje: %s"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1187 ../client/pk-console.c:1243
-#: ../client/pk-console.c:1318
+#: ../client/pk-console.c:1429
+#: ../client/pk-console.c:1485
+#: ../client/pk-console.c:1560
 msgid "Getting package list"
 msgstr "Získávám seznam balíků"
 
 #. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1193 ../client/pk-console.c:1249
-#: ../client/pk-console.c:1324
+#: ../client/pk-console.c:1435
+#: ../client/pk-console.c:1491
+#: ../client/pk-console.c:1566
 #, fuzzy, c-format
 msgid "This tool could not get package list: %s"
 msgstr "Tento nástroj nemůže odstranit balíky: %s"
 
 #. TRANSLATORS: There was an error saving the list
-#: ../client/pk-console.c:1204
+#: ../client/pk-console.c:1446
 #, c-format
 msgid "Failed to save to disk"
 msgstr "Selhalo uložení na disk"
 
 #. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1238 ../client/pk-console.c:1313
+#: ../client/pk-console.c:1480
+#: ../client/pk-console.c:1555
 #, c-format
 msgid "File does not exist: %s"
 msgstr "Soubor neexistuje: %s"
 
 #. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1270
+#: ../client/pk-console.c:1512
 #, fuzzy
 msgid "Packages to add"
 msgstr "PackageKit Monitor"
 
 #. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1278
+#: ../client/pk-console.c:1520
 #, fuzzy
 msgid "Packages to remove"
 msgstr "Služba PackageKit"
 
 #. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1346
+#: ../client/pk-console.c:1588
 #, fuzzy, c-format
 msgid "No new packages need to be installed"
 msgstr "Balík '%s' nemůže být nainstalován: %s"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1352
+#: ../client/pk-console.c:1594
 msgid "To install"
 msgstr ""
 
 #. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1364
+#: ../client/pk-console.c:1606
 msgid "Searching for package: "
 msgstr ""
 
 #. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1368
+#: ../client/pk-console.c:1610
 #, fuzzy
 msgid "not found."
 msgstr "Adresář nenalezen"
 
 #. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1379
+#: ../client/pk-console.c:1621
 #, fuzzy, c-format
 msgid "No packages can be found to install"
 msgstr "Pro váš systém nebyly nalezeny žádné balíky"
 
 #. TRANSLATORS: installing new packages from package list
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
-#: ../client/pk-console.c:1385
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:886
+#: ../client/pk-console.c:1627
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:885
 #, fuzzy, c-format
 msgid "Installing packages"
 msgstr "Nainstalovat balík"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1421
+#: ../client/pk-console.c:1663
+#: ../client/pk-console-test.c:899
 #, fuzzy, c-format
 msgid "This tool could not find the update details for %s: %s"
 msgstr "Tento nástroj nemůže najít podrobnosti o aktualizaci pro '%s': %s"
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1429
+#: ../client/pk-console.c:1671
+#: ../client/pk-console-test.c:907
 #, fuzzy, c-format
 msgid "This tool could not get the update details for %s: %s"
 msgstr "Tento nástroj nemůže získat podrobnosti o aktualizaci pro '%s': %s"
 
 #. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
-#: ../client/pk-console.c:1460
+#: ../client/pk-console.c:1702
 msgid "Error:"
 msgstr "Chyba: "
 
 #. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1474
+#: ../client/pk-console.c:1716
+#: ../client/pk-console-test.c:369
 msgid "Package description"
 msgstr "Popis balíku"
 
 #. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
-#: ../client/pk-console.c:1490
+#: ../client/pk-console.c:1732
+#: ../client/pk-console-test.c:387
 msgid "Message:"
 msgstr "Zpráva:"
 
 #. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1518
+#: ../client/pk-console.c:1760
+#: ../client/pk-console-test.c:415
 msgid "Package files"
 msgstr "Soubory v balíku"
 
 #. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1526
+#: ../client/pk-console.c:1768
+#: ../client/pk-console-test.c:410
 msgid "No files"
 msgstr "Žádné soubory"
 
 #. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1549
+#: ../client/pk-console.c:1791
 msgid "Repository signature required"
 msgstr "Vyžaduje podpis repozitáře"
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1559
+#. ask the user
+#: ../client/pk-console.c:1801
+#: ../client/pk-task-text.c:107
 #, fuzzy
 msgid "Do you accept this signature?"
 msgstr "Příjímáte tento podpis?"
 
 #. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1563
+#: ../client/pk-console.c:1805
+#: ../client/pk-task-text.c:111
 msgid "The signature was not accepted."
 msgstr "Podpis nebyl přijat."
 
 #. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1597
+#: ../client/pk-console.c:1839
 msgid "End user license agreement required"
 msgstr "Vyžaduje souhlas s licencí koncového uživatele"
 
 #. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1604
+#: ../client/pk-console.c:1846
 msgid "Do you agree to this license?"
 msgstr "Souhlasíte s touto licencí?"
 
 #. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1608
+#: ../client/pk-console.c:1850
 msgid "The license was refused."
 msgstr "Licence byla odmítnuta."
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1637
+#: ../client/pk-console.c:1879
+#: ../client/pk-console-test.c:925
 msgid "The daemon crashed mid-transaction!"
 msgstr "Démon havaroval během činnosti!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1690
+#: ../client/pk-console.c:1932
+#: ../client/pk-console-test.c:969
 msgid "PackageKit Console Interface"
 msgstr "Konzolové rozhraní PackageKitu"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1692
+#: ../client/pk-console.c:1934
+#: ../client/pk-console-test.c:971
 msgid "Subcommands:"
 msgstr "Dílčí příkazy:"
 
 #. TRANSLATORS: command line argument, if we should show debugging information
 #. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:1785 ../client/pk-generate-pack.c:185
+#: ../client/pk-console.c:2027
+#: ../client/pk-console-test.c:1202
+#: ../client/pk-generate-pack.c:187
 #: ../client/pk-monitor.c:128
 #: ../contrib/command-not-found/pk-command-not-found.c:616
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:550
-#: ../contrib/device-rebind/pk-device-rebind.c:293 ../src/pk-main.c:211
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:549
+#: ../contrib/device-rebind/pk-device-rebind.c:293
+#: ../src/pk-main.c:211
 msgid "Show extra debugging information"
 msgstr "Zobrazit dodatečné ladící informace"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1788 ../client/pk-monitor.c:130
+#: ../client/pk-console.c:2030
+#: ../client/pk-console-test.c:1205
+#: ../client/pk-monitor.c:130
 msgid "Show the program version and exit"
 msgstr "Zobrazit verzi programu a ukončit se"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1791
+#: ../client/pk-console.c:2033
+#: ../client/pk-console-test.c:1208
 msgid "Set the filter, e.g. installed"
 msgstr "Nastavit filtr, např. nainstalované"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1794
+#: ../client/pk-console.c:2036
+#: ../client/pk-console-test.c:1211
 msgid "Exit without waiting for actions to complete"
 msgstr "Ukončit bez varovaní o nedokončených akcích"
 
 #. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:1821
+#: ../client/pk-console.c:2063
 msgid "This tool could not connect to system DBUS."
 msgstr "Tento nástroj se nemůže připojit k systému DBUS"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1911
+#: ../client/pk-console.c:2153
+#: ../client/pk-console-test.c:1279
 msgid "The filter specified was invalid"
 msgstr ""
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1930
+#: ../client/pk-console.c:2172
+#: ../client/pk-console-test.c:1298
 msgid "A search type is required, e.g. name"
 msgstr ""
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1937 ../client/pk-console.c:1946
-#: ../client/pk-console.c:1955 ../client/pk-console.c:1964
+#: ../client/pk-console.c:2179
+#: ../client/pk-console.c:2188
+#: ../client/pk-console.c:2197
+#: ../client/pk-console.c:2206
+#: ../client/pk-console-test.c:1305
+#: ../client/pk-console-test.c:1317
+#: ../client/pk-console-test.c:1329
+#: ../client/pk-console-test.c:1341
 msgid "A search term is required"
 msgstr ""
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1971
+#: ../client/pk-console.c:2213
+#: ../client/pk-console-test.c:1351
 msgid "Invalid search type"
 msgstr "Neplatný typ vyhledávání"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1977
+#: ../client/pk-console.c:2219
+#: ../client/pk-console-test.c:1358
 msgid "A package name or filename to install is required"
 msgstr ""
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1986
+#: ../client/pk-console.c:2228
+#: ../client/pk-console-test.c:1368
 #, fuzzy
 msgid "A type, key_id and package_id are required"
 msgstr "Je nutné určit typ, key_id a package_id"
 
 #. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:1995
+#: ../client/pk-console.c:2237
+#: ../client/pk-console-test.c:1379
 #, fuzzy
 msgid "A package name to remove is required"
 msgstr "Následující balíky musí být odstraněny"
 
 #. TRANSLATORS: the user did not specify anything about what to download or where
-#: ../client/pk-console.c:2003
+#: ../client/pk-console.c:2245
+#: ../client/pk-console-test.c:1387
 #, fuzzy
 msgid "A destination directory and the package names to download are required"
 msgstr "Je nutné určit cílový adresář a poté balík, který se má stáhnout"
 
 #. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:2010
+#: ../client/pk-console.c:2252
+#: ../client/pk-console-test.c:1394
 msgid "Directory not found"
 msgstr "Adresář nenalezen"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2018
+#: ../client/pk-console.c:2260
+#: ../client/pk-console-test.c:1403
 #, fuzzy
 msgid "A licence identifier (eula-id) is required"
 msgstr "Musíte zadat identifikaci licence (eula-id)"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2028
+#: ../client/pk-console.c:2270
+#: ../client/pk-console-test.c:1415
 msgid "A transaction identifier (tid) is required"
 msgstr ""
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:2045
+#: ../client/pk-console.c:2287
+#: ../client/pk-console-test.c:1437
 #, fuzzy
 msgid "A package name to resolve is required"
 msgstr "Následující balíky musí být odstraněny"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:2054 ../client/pk-console.c:2063
+#: ../client/pk-console.c:2296
+#: ../client/pk-console.c:2305
+#: ../client/pk-console-test.c:1448
+#: ../client/pk-console-test.c:1459
 #, fuzzy
 msgid "A repository name is required"
 msgstr "Vyžaduje podpis repozitáře"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2072
+#: ../client/pk-console.c:2314
+#: ../client/pk-console-test.c:1470
 #, fuzzy
 msgid "A repo name, parameter and value are required"
 msgstr "Je nutné určit název/parametr a hodnotu repozitáře"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:2086
+#: ../client/pk-console.c:2328
+#: ../client/pk-console-test.c:1488
 #, fuzzy
 msgid "An action, e.g. 'update-system' is required"
 msgstr "Je nutné zadat akci, např. 'update-system'"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:2093
+#: ../client/pk-console.c:2335
+#: ../client/pk-console-test.c:1495
 #, fuzzy
 msgid "A correct role is required"
 msgstr "Je požadováno odhlášení a přihlášení"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2100
+#: ../client/pk-console.c:2342
+#: ../client/pk-console-test.c:1502
 msgid "Failed to get the time since this action was last completed"
 msgstr ""
 
 #. TRANSLATORS: The user did not provide a package name
 #. TRANSLATORS: This is when the user fails to supply the package name
-#: ../client/pk-console.c:2110 ../client/pk-console.c:2122
-#: ../client/pk-console.c:2131 ../client/pk-console.c:2149
-#: ../client/pk-console.c:2158 ../client/pk-generate-pack.c:241
+#: ../client/pk-console.c:2352
+#: ../client/pk-console.c:2364
+#: ../client/pk-console.c:2373
+#: ../client/pk-console.c:2391
+#: ../client/pk-console.c:2400
+#: ../client/pk-console-test.c:1511
+#: ../client/pk-console-test.c:1526
+#: ../client/pk-console-test.c:1535
+#: ../client/pk-console-test.c:1556
+#: ../client/pk-console-test.c:1565
+#: ../client/pk-generate-pack.c:243
 #, fuzzy
 msgid "A package name is required"
 msgstr "Je požadováno odhlášení a přihlášení"
 
 #. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:2140
+#: ../client/pk-console.c:2382
+#: ../client/pk-console-test.c:1545
 #, fuzzy
 msgid "A package provide string is required"
 msgstr "Je požadováno odhlášení a přihlášení"
 
 #. TRANSLATORS: The user didn't specify a filename to create as a list
-#: ../client/pk-console.c:2167
+#: ../client/pk-console.c:2409
 msgid "A list file name to create is required"
 msgstr ""
 
 #. TRANSLATORS: The user didn't specify a filename to open as a list
-#: ../client/pk-console.c:2177 ../client/pk-console.c:2187
+#: ../client/pk-console.c:2419
+#: ../client/pk-console.c:2429
 #, fuzzy
 msgid "A list file to open is required"
 msgstr "Je požadováno odhlášení a přihlášení"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2241
+#: ../client/pk-console.c:2483
+#: ../client/pk-console-test.c:1619
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "Volba '%s' není podporována "
 
 #. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2254
+#: ../client/pk-console.c:2496
 #, fuzzy
 msgid "Incorrect privileges for this operation"
 msgstr "Nemáte nezbytné oprávnění pro tuto operaci"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2257
+#. /* TRANSLATORS: User does not have permission to do this */
+#. g_print ("%s\n", _("Incorrect privileges for this operation"));
+#. TRANSLATORS: Generic failure of what they asked to do
+#: ../client/pk-console.c:2499
+#: ../client/pk-console-test.c:1631
 msgid "Command failed"
 msgstr "Příkaz selhal"
 
 #. TRANSLATORS: This is the state of the transaction
-#: ../client/pk-generate-pack.c:101
+#: ../client/pk-generate-pack.c:103
 msgid "Downloading"
 msgstr "Stahuji"
 
 #. TRANSLATORS: This is when the main packages are being downloaded
-#: ../client/pk-generate-pack.c:121
+#: ../client/pk-generate-pack.c:123
 msgid "Downloading packages"
 msgstr "Stahuji balíky"
 
 #. TRANSLATORS: This is when the dependency packages are being downloaded
-#: ../client/pk-generate-pack.c:126
+#: ../client/pk-generate-pack.c:128
 msgid "Downloading dependencies"
 msgstr "Stahuji závislosti"
 
 #. TRANSLATORS: we can exclude certain packages (glibc) when we know they'll exist on the target
-#: ../client/pk-generate-pack.c:188
+#: ../client/pk-generate-pack.c:190
 msgid "Set the file name of dependencies to be excluded"
 msgstr "Nastavte soubor se závislostmi, které mají být vynechány"
 
 #. TRANSLATORS: the output location
-#: ../client/pk-generate-pack.c:191
+#: ../client/pk-generate-pack.c:193
 #, fuzzy
-msgid ""
-"The output file or directory (the current directory is used if ommitted)"
+msgid "The output file or directory (the current directory is used if ommitted)"
 msgstr "Výstupní adresář (aktuální adresář, pokud není žádný uveden)"
 
 #. TRANSLATORS: put a list of packages in the pack
-#: ../client/pk-generate-pack.c:194
+#: ../client/pk-generate-pack.c:196
 msgid "The package to be put into the service pack"
 msgstr "Balíky zahrnuté do servisního balíku"
 
 #. TRANSLATORS: put all pending updates in the pack
-#: ../client/pk-generate-pack.c:197
+#: ../client/pk-generate-pack.c:199
 msgid "Put all updates available in the service pack"
 msgstr "Přidej dostupné aktualizace do servisního balíku"
 
 #. TRANSLATORS: This is when the user fails to supply the correct arguments
-#: ../client/pk-generate-pack.c:225
+#: ../client/pk-generate-pack.c:227
 msgid "Neither --package or --updates option selected."
 msgstr "Nebylo vybráno ani --package ani --updates."
 
 #. TRANSLATORS: This is when the user fails to supply just one argument
-#: ../client/pk-generate-pack.c:233
+#: ../client/pk-generate-pack.c:235
 msgid "Both options selected."
 msgstr "Obě volby vybrány."
 
 #. TRANSLATORS: This is when the user fails to supply the output
-#: ../client/pk-generate-pack.c:249
+#: ../client/pk-generate-pack.c:251
 #, fuzzy
 msgid "A output directory or file name is required"
 msgstr "Je požadováno odhlášení a přihlášení"
 
 #. TRANSLATORS: This is when the backend doesn't have the capability to get-depends
 #. TRANSLATORS: This is when the backend doesn't have the capability to download
-#: ../client/pk-generate-pack.c:267 ../client/pk-generate-pack.c:273
+#: ../client/pk-generate-pack.c:269
+#: ../client/pk-generate-pack.c:275
 msgid "The package manager cannot perform this type of operation."
 msgstr ""
 
 #. TRANSLATORS: This is when the distro didn't include libarchive support into PK
-#: ../client/pk-generate-pack.c:280
-msgid ""
-"Service packs cannot be created as PackageKit was not built with libarchive "
-"support."
+#: ../client/pk-generate-pack.c:282
+msgid "Service packs cannot be created as PackageKit was not built with libarchive support."
 msgstr ""
 
 #. TRANSLATORS: the user specified an absolute path, but didn't get the extension correct
-#: ../client/pk-generate-pack.c:291
+#: ../client/pk-generate-pack.c:293
 msgid "If specifying a file, the service pack name must end with"
 msgstr ""
 
 #. TRANSLATORS: This is when file already exists
-#: ../client/pk-generate-pack.c:307
+#: ../client/pk-generate-pack.c:309
 msgid "A pack with the same name already exists, do you want to overwrite it?"
 msgstr "Balík se stejným jménem už existuje, chcete jej přepsat?"
 
 #. TRANSLATORS: This is when the pack was not overwritten
-#: ../client/pk-generate-pack.c:310
+#: ../client/pk-generate-pack.c:312
 msgid "The pack was not overwritten."
 msgstr "Balík nebyl přepsán."
 
 #. TRANSLATORS: This is when the temporary directory cannot be created, the directory name follows
-#: ../client/pk-generate-pack.c:323
+#: ../client/pk-generate-pack.c:325
 msgid "Failed to create directory:"
 msgstr "Nepodařilo se vytvořit adresář."
 
 #. TRANSLATORS: This is when the list of packages from the remote computer cannot be opened
-#: ../client/pk-generate-pack.c:333
+#: ../client/pk-generate-pack.c:335
 msgid "Failed to open package list."
 msgstr "Nepodařilo se otevřít seznam balíku."
 
 #. TRANSLATORS: The package name is being matched up to available packages
-#: ../client/pk-generate-pack.c:344
+#: ../client/pk-generate-pack.c:346
 msgid "Finding package name."
 msgstr "Hledám jméno balíku."
 
 #. TRANSLATORS: This is when the package cannot be found in any software source. The detailed error follows
-#: ../client/pk-generate-pack.c:348
+#: ../client/pk-generate-pack.c:350
 #, c-format
 msgid "Failed to find package '%s': %s"
 msgstr "Nemohu najít balík '%s': %s"
 
 #. TRANSLATORS: This is telling the user we are in the process of making the pack
-#: ../client/pk-generate-pack.c:365
+#: ../client/pk-generate-pack.c:367
 msgid "Creating service pack..."
 msgstr "Vytvářím servisní balík..."
 
 #. TRANSLATORS: we succeeded in making the file
-#: ../client/pk-generate-pack.c:372
+#: ../client/pk-generate-pack.c:374
 #, c-format
 msgid "Service pack created '%s'"
 msgstr "Servisní balík vytvořen '%s'"
 
 #. TRANSLATORS: we failed to make te file
-#: ../client/pk-generate-pack.c:377
+#: ../client/pk-generate-pack.c:379
 #, c-format
 msgid "Failed to create '%s': %s"
 msgstr "Nemohu vytvořit '%s': %s"
@@ -836,27 +1040,122 @@ msgstr "PackageKit Monitor"
 msgid "Cannot show the list of transactions"
 msgstr ""
 
+#. ask the user
+#: ../client/pk-task-text.c:61
+msgid "Do you want to allow installing of unsigned software?"
+msgstr ""
+
+#: ../client/pk-task-text.c:65
+#, fuzzy
+msgid "The unsigned software will not be installed."
+msgstr "Balík '%s' nemůže být nainstalován: %s"
+
+#: ../client/pk-task-text.c:94
+#, fuzzy
+msgid "Software source signature required"
+msgstr "Vyžaduje podpis repozitáře"
+
+#: ../client/pk-task-text.c:96
+#, fuzzy
+msgid "Software source name"
+msgstr "Změnit parametry zdrojů softwaru"
+
+#: ../client/pk-task-text.c:97
+msgid "Key URL"
+msgstr ""
+
+#: ../client/pk-task-text.c:98
+msgid "Key user"
+msgstr ""
+
+#: ../client/pk-task-text.c:99
+#, fuzzy
+msgid "Key ID"
+msgstr "Uživatelské ID"
+
+#: ../client/pk-task-text.c:100
+msgid "Key fingerprint"
+msgstr ""
+
+#: ../client/pk-task-text.c:101
+msgid "Key Timestamp"
+msgstr ""
+
+#: ../client/pk-task-text.c:142
+#, fuzzy
+msgid "End user licence agreement required"
+msgstr "Vyžaduje souhlas s licencí koncového uživatele"
+
+#: ../client/pk-task-text.c:143
+msgid "EULA ID"
+msgstr ""
+
+#: ../client/pk-task-text.c:146
+msgid "Agreement"
+msgstr ""
+
+#. ask the user
+#: ../client/pk-task-text.c:152
+msgid "Do you accept this agreement?"
+msgstr "Příjímáte toto ujednání?"
+
+#: ../client/pk-task-text.c:156
+msgid "The agreement was not accepted."
+msgstr "Ujednání nebylo přijato."
+
+#: ../client/pk-task-text.c:182
+#, fuzzy
+msgid "Media change required"
+msgstr "Nemohu zjistit, které balíky jsou vyžadovány"
+
+#: ../client/pk-task-text.c:183
+msgid "Media type"
+msgstr ""
+
+#: ../client/pk-task-text.c:184
+msgid "Media ID"
+msgstr ""
+
+#: ../client/pk-task-text.c:185
+msgid "Text"
+msgstr ""
+
+#. ask the user
+#: ../client/pk-task-text.c:189
+#, fuzzy
+msgid "Please insert the correct media"
+msgstr "Prosím vyberte správný balík: "
+
+#: ../client/pk-task-text.c:193
+#, fuzzy
+msgid "The correct media was not inserted."
+msgstr "Podpis nebyl přijat."
+
+#: ../client/pk-task-text.c:288
+msgid "The transaction did not proceed."
+msgstr ""
+
+#: ../client/pk-text.c:50
+#, c-format
+msgid "Please enter a number from 1 to %i: "
+msgstr "Prosím zadejte číslo od 1 do %i: "
+
 #. TRANSLATORS: The package was not found in any software sources
-#: ../client/pk-tools-common.c:118
+#: ../client/pk-tools-common.c:119
 #, c-format
 msgid "The package could not be found"
 msgstr "Balík nebyl nalezen."
 
 #. TRANSLATORS: more than one package could be found that matched, to follow is a list of possible packages
-#: ../client/pk-tools-common.c:130
+#: ../client/pk-tools-common.c:131
 msgid "More than one package matches:"
 msgstr "Danému výrazu odpovídá více balíků:"
 
 #. TRANSLATORS: This finds out which package in the list to use
-#: ../client/pk-tools-common.c:137
+#: ../client/pk-tools-common.c:138
 msgid "Please choose the correct package: "
 msgstr "Prosím vyberte správný balík: "
 
-#: ../client/pk-tools-common.c:162
-#, c-format
-msgid "Please enter a number from 1 to %i: "
-msgstr "Prosím zadejte číslo od 1 do %i: "
-
 #. TRANSLATORS: when we are getting data from the daemon
 #: ../contrib/browser-plugin/pk-plugin-install.c:466
 msgid "Getting package information..."
@@ -929,9 +1228,8 @@ msgstr "Hledám jméno balíku."
 
 #. TRANSLATORS: loading package cache so we can search
 #: ../contrib/command-not-found/pk-command-not-found.c:361
-#, fuzzy
 msgid "Loading list of packages."
-msgstr "Stahuji balíky"
+msgstr "Načítám seznam balíků."
 
 #. TRANSLATORS: we failed to find the package, this shouldn't happen
 #: ../contrib/command-not-found/pk-command-not-found.c:420
@@ -959,9 +1257,8 @@ msgstr "Adresář nenalezen"
 
 #. TRANSLATORS: tell the user what we think the command is
 #: ../contrib/command-not-found/pk-command-not-found.c:665
-#, fuzzy
 msgid "Similar command is:"
-msgstr "Dílčí příkazy:"
+msgstr "Podobný příkaz je:"
 
 #. TRANSLATORS: Ask the user if we should run the similar command
 #: ../contrib/command-not-found/pk-command-not-found.c:674
@@ -972,9 +1269,8 @@ msgstr ""
 #. TRANSLATORS: show the user a list of commands we could run
 #: ../contrib/command-not-found/pk-command-not-found.c:686
 #: ../contrib/command-not-found/pk-command-not-found.c:695
-#, fuzzy
 msgid "Similar commands are:"
-msgstr "Dílčí příkazy:"
+msgstr "Podobné příkazy jsou:"
 
 #. TRANSLATORS: ask the user to choose a file to run
 #: ../contrib/command-not-found/pk-command-not-found.c:702
@@ -1021,185 +1317,183 @@ msgid "Failed to find the package %s, or already installed: %s"
 msgstr "Balík '%s' je již nainstalován"
 
 #. command line argument, simulate what would be done, but don't actually do it
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:553
-msgid ""
-"Don't actually install any packages, only simulate what would be installed"
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:552
+msgid "Don't actually install any packages, only simulate what would be installed"
 msgstr ""
 
 #. command line argument, do we skip packages that depend on the ones specified
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:556
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:555
 msgid "Do not install dependencies of the core packages"
 msgstr ""
 
 #. command line argument, do we operate quietly
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:559
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:558
 msgid "Do not display information or progress"
 msgstr ""
 
 #. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:577
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:576
 #, fuzzy
 msgid "PackageKit Debuginfo Installer"
 msgstr "Konzolové rozhraní PackageKitu"
 
 #. TRANSLATORS: the use needs to specify a list of package names on the command line
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:589
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:588
 #, fuzzy, c-format
 msgid "ERROR: Specify package names to install."
 msgstr "Vyberte balík nebo soubor, která se bude instalovat"
 
 #. TRANSLATORS: we are getting the list of repositories
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:623
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:622
 #, fuzzy, c-format
 msgid "Getting sources list"
 msgstr "Zjišťuji informace o balících..."
 
 #. TRANSLATORS: all completed 100%
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:641
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:681
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:716
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:800
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:844
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:911
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:955
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:640
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:680
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:715
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:799
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:843
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:910
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:954
 #, c-format
 msgid "OK."
 msgstr "OK."
 
 #. TRANSLATORS: tell the user what we found
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:644
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:643
 #, c-format
 msgid "Found %i enabled and %i disabled sources."
 msgstr ""
 
 #. TRANSLATORS: we're finding repositories that match out pattern
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:651
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:650
 #, c-format
 msgid "Finding debugging sources"
 msgstr ""
 
 #. TRANSLATORS: tell the user what we found
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:684
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:683
 #, c-format
 msgid "Found %i disabled debuginfo repos."
 msgstr ""
 
 #. TRANSLATORS: we're now enabling all the debug sources we found
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:691
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:690
 #, c-format
 msgid "Enabling debugging sources"
 msgstr ""
 
 #. TRANSLATORS: operation was not successful
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:701
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:785
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:829
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:896
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:940
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:700
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:784
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:828
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:895
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:939
 msgid "FAILED."
 msgstr "SELHALO."
 
 #. TRANSLATORS: tell the user how many we enabled
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:719
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:718
 #, c-format
 msgid "Enabled %i debugging sources."
 msgstr ""
 
 #. TRANSLATORS: we're now finding packages that match in all the repos
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:726
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:725
 #, fuzzy, c-format
 msgid "Finding debugging packages"
 msgstr "Hledám jméno balíku."
 
 #. TRANSLATORS: we couldn't find the package name, non-fatal
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:738
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:737
 #, fuzzy, c-format
 msgid "Failed to find the package %s: %s"
 msgstr "Nemohu najít balík '%s': %s"
 
 #. TRANSLATORS: we couldn't find the debuginfo package name, non-fatal
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:761
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:760
 #, fuzzy, c-format
 msgid "Failed to find the debuginfo package %s: %s"
 msgstr "Nemohu najít balík '%s': %s"
 
 #. TRANSLATORS: no debuginfo packages could be found to be installed
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:789
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:788
 #, fuzzy, c-format
 msgid "Found no packages to install."
 msgstr "Balík '%s' nemůže být nainstalován: %s"
 
 #. TRANSLATORS: tell the user we found some packages, and then list them
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:803
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:802
 #, fuzzy, c-format
 msgid "Found %i packages:"
 msgstr "Stahuji"
 
 #. TRANSLATORS: tell the user we are searching for deps
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:819
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:818
 #, c-format
 msgid "Finding packages that depend on these packages"
 msgstr ""
 
 #. TRANSLATORS: could not install, detailed error follows
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:832
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:831
 #, fuzzy, c-format
 msgid "Could not find dependant packages: %s"
 msgstr "Nemohu najít odpovídající balík"
 
 #. TRANSLATORS: tell the user we found some more packages
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:848
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:847
 #, c-format
 msgid "Found %i extra packages."
 msgstr ""
 
 #. TRANSLATORS: tell the user we found some more packages
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:852
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:851
 #, fuzzy, c-format
 msgid "No extra packages required."
 msgstr "Nemohu zjistit, které balíky jsou vyžadovány"
 
 #. TRANSLATORS: tell the user we found some packages (and deps), and then list them
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:861
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:860
 #, fuzzy, c-format
 msgid "Found %i packages to install:"
 msgstr "Balík '%s' nemůže být nainstalován: %s"
 
 #. TRANSLATORS: simulate mode is a testing mode where we quit before the action
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:874
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:873
 #, fuzzy, c-format
 msgid "Not installing packages in simulate mode"
 msgstr "Nainstalovat balík"
 
 #. TRANSLATORS: could not install, detailed error follows
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:899
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:898
 #, fuzzy, c-format
 msgid "Could not install packages: %s"
 msgstr "Tento nástroj není schopen nainstalovat balíky: %s"
 
 #. TRANSLATORS: we are now disabling all debuginfo repos we previously enabled
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:931
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:930
 #, c-format
 msgid "Disabling sources previously enabled"
 msgstr ""
 
 #. TRANSLATORS: no debuginfo packages could be found to be installed, detailed error follows
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:943
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:942
 #, c-format
 msgid "Could not disable the debugging sources: %s"
 msgstr ""
 
 #. TRANSLATORS: we disabled all the debugging repos that we enabled before
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:958
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:957
 #, c-format
 msgid "Disabled %i debugging sources."
 msgstr ""
 
 #. TRANSLATORS: couldn't open device to write
 #: ../contrib/device-rebind/pk-device-rebind.c:61
-#, fuzzy
 msgid "Failed to open file"
-msgstr "Nepodařilo se získat poslední čas"
+msgstr "Selhalo otevření souboru"
 
 #. TRANSLATORS: could not write to the device
 #: ../contrib/device-rebind/pk-device-rebind.c:70
@@ -1320,8 +1614,7 @@ msgstr "Pro přijetí licenční smlouvy je vyžadováno oprávnění"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:9
 #, fuzzy
-msgid ""
-"Authentication is required to cancel a task that was not started by yourself"
+msgid "Authentication is required to cancel a task that was not started by yourself"
 msgstr "Pro změnu parametrů zdrojů softwaru je vyžádováno oprávnění"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:10
@@ -1330,9 +1623,7 @@ msgstr "Pro změnu parametrů zdrojů softwaru je vyžádováno oprávnění"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:11
 #, fuzzy
-msgid ""
-"Authentication is required to consider a key used for signing packages as "
-"trusted"
+msgid "Authentication is required to consider a key used for signing packages as trusted"
 msgstr "K obnovení seznamů balíků je vyžadováno oprávnění"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:12
@@ -1365,9 +1656,7 @@ msgstr "K vrácení akce je vyžadováno oprávnění"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:18
 #, fuzzy
-msgid ""
-"Authentication is required to set the network proxy used for downloading "
-"packages"
+msgid "Authentication is required to set the network proxy used for downloading packages"
 msgstr "K odstranění balíků je vyžadováno oprávnění"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:19
@@ -1479,9 +1768,8 @@ msgstr ""
 #. updates.
 #.
 #: ../policy/org.freedesktop.packagekit.policy.in.h:94
-#, fuzzy
 msgid "Update packages"
-msgstr "Aktualizovat balík"
+msgstr "Aktualizovat balíky"
 
 #. TRANSLATORS: failed due to DBus security
 #: ../src/pk-main.c:87
@@ -1500,12 +1788,8 @@ msgstr "Aplikace není spuštěna pod správným uživatelem (obvykle superuživ
 
 #. TRANSLATORS: or we are installed in a prefix
 #: ../src/pk-main.c:93
-msgid ""
-"The org.freedesktop.PackageKit.conf file is not installed in the system "
-"directory:"
-msgstr ""
-"Soubor org.freedesktop.PackageKit.conf není nainstalován v systémovém "
-"adresáři:"
+msgid "The org.freedesktop.PackageKit.conf file is not installed in the system directory:"
+msgstr "Soubor org.freedesktop.PackageKit.conf není nainstalován v systémovém adresáři:"
 
 #. TRANSLATORS: a backend is the system package tool, e.g. yum, apt
 #: ../src/pk-main.c:205
@@ -1558,7 +1842,8 @@ msgid "To install debugging packages, extra sources need to be enabled"
 msgstr "Balík '%s' nemůže být nainstalován: %s"
 
 #. TRANSLATORS: is not GPG signed
-#: ../src/pk-polkit-action-lookup.c:168 ../src/pk-polkit-action-lookup.c:187
+#: ../src/pk-polkit-action-lookup.c:168
+#: ../src/pk-polkit-action-lookup.c:187
 msgid "The software is not from a trusted source."
 msgstr ""
 
@@ -1596,161 +1881,121 @@ msgstr "Pouze důvěryhodné"
 
 #~ msgid "You need to specify a search type, e.g. name"
 #~ msgstr "Je nutné stanovit typ vyhledávání, např. jméno"
-
 #~ msgid "You need to specify a search term"
 #~ msgstr "Je nutné uvést termín, který se bude hledat"
-
 #~ msgid "You need to specify a package to remove"
 #~ msgstr "Vyberte balík, který se má odstranit"
-
 #~ msgid "You need to specify a package name to resolve"
 #~ msgstr "K vyřešení je nutné uvést název balíku"
-
 #~ msgid "You need to specify a repository name"
 #~ msgstr "Je nutné zadat název repozitáře"
-
 #~ msgid "You need to specify a correct role"
 #~ msgstr "Je nutné určit správnou roli"
-
 #~ msgid "Failed to get last time"
 #~ msgstr "Nepodařilo se získat poslední čas"
-
 #~ msgid "You need to specify a package to find the details for"
 #~ msgstr "Je nutné určit balík, pro který se mají najít podrobnosti"
-
 #~ msgid "You need to specify a package to find the files for"
 #~ msgstr "Je nutné určit balík, pro který se mají najít soubory"
 
 #, fuzzy
 #~ msgid "You need to specify a list file to open"
 #~ msgstr "Je nutné určit časový termín"
-
 #~ msgid "This tool could not remove the packages: '%s'"
 #~ msgstr "Tento nástroj nemůže odstranit balíky: '%s'"
-
 #~ msgid "Install local file"
 #~ msgstr "Nainstalovat místní soubor"
-
 #~ msgid "Okay to import key?"
 #~ msgstr "Chcete importovat klíč?"
-
 #~ msgid "Did not import key"
 #~ msgstr "Klíč nebyl importován"
-
 #~ msgid "Do you agree?"
 #~ msgstr "Souhlasíte?"
-
 #~ msgid "Could not find package to remove"
 #~ msgstr "Nemohu najít balík, který se má odstranit"
-
 #~ msgid "Cancelled!"
 #~ msgstr "Zrušeno!"
-
 #~ msgid "Could not find package to update"
 #~ msgstr "Nemohu najít balík, který se má aktualizovat"
-
 #~ msgid "Could not find details for"
 #~ msgstr "Nemohu zjistit detaily pro"
 
 #, fuzzy
 #~ msgid "Could not set database readonly"
 #~ msgstr "Nemohu otevřít databázi: %s"
-
 #~ msgid "Could not open database: %s"
 #~ msgstr "Nemohu otevřít databázi: %s"
-
 #~ msgid "You probably need to run this program as the root user"
 #~ msgstr "Nejspíše budete muset spustit tento program jako superuživatel"
-
 #~ msgid "<span color='#%06x' underline='single' size='larger'>Run %s</span>"
 #~ msgstr ""
 #~ "<span color='#%06x' underline='single' size='larger'>Spustit %s</span>"
-
 #~ msgid "<big>%s</big>"
 #~ msgstr "<big>%s</big>"
-
 #~ msgid ""
 #~ "\n"
 #~ "<span color='#%06x' underline='single'>Run version %s now</span>"
 #~ msgstr ""
 #~ "\n"
 #~ "<span color='#%06x' underline='single'>Ihned spustit verzi %s</span>"
-
 #~ msgid ""
 #~ "\n"
 #~ "<span color='#%06x' underline='single'>Run now</span>"
 #~ msgstr ""
 #~ "\n"
 #~ "<span color='#%06x' underline='single'>Ihned spustit</span>"
-
 #~ msgid ""
 #~ "\n"
 #~ "<span color='#%06x' underline='single'>Upgrade to version %s</span>"
 #~ msgstr ""
 #~ "\n"
 #~ "<span color='#%06x' underline='single'>Aktualizovat na verzi %s</span>"
-
 #~ msgid ""
 #~ "<span color='#%06x' underline='single' size='larger'>Install %s Now</span>"
 #~ msgstr ""
 #~ "<span color='#%06x' underline='single' size='larger'>Ihned instalovat %s</"
 #~ "span>"
-
 #~ msgid ""
 #~ "\n"
 #~ "<small>Version: %s</small>"
 #~ msgstr ""
 #~ "\n"
 #~ "<small>Verze: %s</small>"
-
 #~ msgid "failed to download: invalid package_id and/or directory"
 #~ msgstr "stahování selhala: neplatné package_id a/nebo adresář"
-
 #~ msgid "Could not find a valid metadata file"
 #~ msgstr "Nemohu najít platný soubor metadat"
-
 #~ msgid "Okay to download the additional packages"
 #~ msgstr "Souhlasíte s stažením doplňkových balíků"
-
 #~ msgid "You need to specify the pack name and packages to be packed\n"
 #~ msgstr "Musíte určit jméno balíku a balíčky, které mají být zabaleny\n"
-
 #~ msgid ""
 #~ "Invalid name for the service pack, Specify a name with .servicepack "
 #~ "extension\n"
 #~ msgstr ""
 #~ "Neplatné jméno opravného balíčku. Zadejte jméno s příponou .servicepack\n"
-
 #~ msgid "Authentication is required to install a local file"
 #~ msgstr "K instalaci místního souboru je vyžadováno oprávnění"
-
 #~ msgid "Authentication is required to install a security signature"
 #~ msgstr "K instalaci bezpečnostního podpisu je vyžadováno oprávnění"
-
 #~ msgid "Authentication is required to update all packages"
 #~ msgstr "K aktualizaci všech balíků je vyžadováno oprávnění"
-
 #~ msgid "Install security signature"
 #~ msgstr "Nainstalovat bezpečnostní podpis"
-
 #~ msgid "Refresh package lists"
 #~ msgstr "Obnovit seznam balíků"
-
 #~ msgid "Update all packages"
 #~ msgstr "Aktualizovat všechny balíky"
-
 #~ msgid ""
 #~ "Could not find a package with that name to install, or package already "
 #~ "installed"
 #~ msgstr ""
 #~ "K danému názvu nemohu najít balík k nainstalovaní ani balík, který už je "
 #~ "nainstalovaný"
-
 #~ msgid "Could not find a package with that name to update"
 #~ msgstr "K daného názvu nemohu najít balík, který se má aktualizovat"
-
 #~ msgid "Could not find a description for this package"
 #~ msgstr "Nemohu získat popis tohoto balíku"
-
 #~ msgid "You need to specify a package to find the description for"
 #~ msgstr "Je nutné určit balík, pro který se má najít popis"
+
commit f2254e9a597c7fd6f17a04f89d187b07dfb9c492
Author: Richard Hughes <richard at hughsie.com>
Date:   Fri Sep 4 14:03:25 2009 +0100

    trivial: add some debugging

diff --git a/src/pk-transaction.c b/src/pk-transaction.c
index 485ebc2..ce00100 100644
--- a/src/pk-transaction.c
+++ b/src/pk-transaction.c
@@ -4104,6 +4104,8 @@ pk_transaction_set_locale (PkTransaction *transaction, const gchar *code, DBusGM
 	g_return_if_fail (PK_IS_TRANSACTION (transaction));
 	g_return_if_fail (transaction->priv->tid != NULL);
 
+	egg_debug ("SetLocale method called: %s", code);
+
 	/* check if the sender is the same */
 	ret = pk_transaction_verify_sender (transaction, context, &error);
 	if (!ret) {
commit 885895328821dba9885d4b47e995ddd235ae7ee9
Author: Richard Hughes <richard at hughsie.com>
Date:   Fri Sep 4 12:57:05 2009 +0100

    glib2: finish porting pkcon-test to glib2

diff --git a/client/pk-console-test.c b/client/pk-console-test.c
index c3f27ee..119ea1a 100644
--- a/client/pk-console-test.c
+++ b/client/pk-console-test.c
@@ -48,7 +48,8 @@ static gboolean is_console = FALSE;
 static gboolean nowait = FALSE;
 static PkControlSync *control = NULL;
 static PkTaskText *task = NULL;
-PkProgressBar *progressbar = NULL;
+static PkProgressBar *progressbar = NULL;
+static GCancellable *cancellable = NULL;
 
 /**
  * pk_strpad:
@@ -394,16 +395,7 @@ static void
 pk_console_files_cb (PkResultItemFiles *obj, gpointer data)
 {
 	guint i;
-#if 0
-	PkRoleEnum role;
 
-	/* don't print if we are DownloadPackages */
-	pk_client_get_role (PK_CLIENT(task), &role, NULL, NULL);
-	if (role == PK_ROLE_ENUM_DOWNLOAD_PACKAGES) {
-		egg_debug ("ignoring ::files");
-		return;
-	}
-#endif
 	/* empty */
 	if (obj->files == NULL || obj->files[0] == NULL) {
 		/* TRANSLATORS: This where the package has no files */
@@ -418,195 +410,336 @@ pk_console_files_cb (PkResultItemFiles *obj, gpointer data)
 	}
 }
 
-#if 0
+/* tiny helper to help us do the async operation */
+typedef struct {
+	GError		**error;
+	GMainLoop	*loop;
+	PkResults	*results;
+} PkConsoleSyncHelper;
+
 /**
- * pk_console_finished_cb:
+ * pk_console_sync_resolve_cb:
  **/
 static void
-pk_console_finished_cb (PkExitEnum exit_enum, guint runtime, gpointer data)
+pk_console_sync_resolve_cb (PkClient *client, GAsyncResult *res, PkConsoleSyncHelper *helper)
 {
-	PkRestartEnum restart;
+	const PkResults *results;
+	/* get the result */
+	results = pk_client_generic_finish (client, res, helper->error);
+	if (results != NULL)
+		helper->results = g_object_ref (G_OBJECT (results));
+	g_main_loop_quit (helper->loop);
+}
 
-	/* is there any restart to notify the user? */
-	restart = pk_client_get_require_restart (client);
-	if (restart == PK_RESTART_ENUM_SYSTEM) {
-		/* TRANSLATORS: a package needs to restart their system */
-		g_print ("%s\n", _("Please restart the computer to complete the update."));
-	} else if (restart == PK_RESTART_ENUM_SESSION) {
-		/* TRANSLATORS: a package needs to restart the session */
-		g_print ("%s\n", _("Please logout and login to complete the update."));
-	} else if (restart == PK_RESTART_ENUM_APPLICATION) {
-		/* TRANSLATORS: a package needs to restart the application */
-		g_print ("%s\n", _("Please restart the application as it is being used."));
-	} else if (restart == PK_RESTART_ENUM_SECURITY_SYSTEM) {
-		/* TRANSLATORS: a package needs to restart their system (due to security) */
-		g_print ("%s\n", _("Please restart the computer to complete the update as important security updates have been installed."));
-	} else if (restart == PK_RESTART_ENUM_SECURITY_SESSION) {
-		/* TRANSLATORS: a package needs to restart the session (due to security) */
-		g_print ("%s\n", _("Please logout and login to complete the update as important security updates have been installed."));
-	}
+/**
+ * pk_console_sync_resolve:
+ * @console: a valid #PkClient instance
+ * @error: A #GError or %NULL
+ *
+ * Resolves a package to a Package ID.
+ * Warning: this function is synchronous, and may block. Do not use it in GUI
+ * applications.
+ *
+ * Return value: a %PkResults object, or NULL for error
+ **/
+static PkResults *
+pk_console_sync_resolve (PkClient *client, PkFilterEnum filter, gchar **packages, GError **error)
+{
+	PkConsoleSyncHelper *helper;
+	PkResults *results;
+
+	g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+
+	/* create temp object */
+	helper = g_new0 (PkConsoleSyncHelper, 1);
+	helper->loop = g_main_loop_new (NULL, FALSE);
+	helper->error = error;
+
+	/* run async method */
+	pk_client_resolve_async (client, filter, packages, cancellable, NULL, NULL,
+				 (GAsyncReadyCallback) pk_console_sync_resolve_cb, 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_console_perhaps_resolve:
+ * pk_console_perhaps_resolve_package:
  **/
 static gchar *
-pk_console_perhaps_resolve (PkBitfield filter, const gchar *package, GError **error)
+pk_console_perhaps_resolve_package (PkBitfield filter, const gchar *package, GError **error)
 {
-	PkPackageSack *list;
 	gchar *package_id = NULL;
 	gboolean valid;
+	gchar **tmp;
+	PkResults *results;
+	GPtrArray *array = NULL;
+	guint i;
+	gchar *printable;
+	const PkResultItemPackage *item;
 
 	/* have we passed a complete package_id? */
 	valid = pk_package_id_check (package);
 	if (valid)
 		return g_strdup (package);
 
+	/* split */
+	tmp = g_strsplit (package, ",", -1);
+
 	/* get the list of possibles */
-	list = pk_console_resolve (filter, package, error);
-	if (list == NULL)
+	results = pk_console_sync_resolve (PK_CLIENT(task), filter, tmp, error);
+	if (results == NULL)
+		goto out;
+
+	/* get the packages returned */
+	array = pk_results_get_package_array (results);
+	if (array == NULL) {
+		*error = g_error_new (1, 0, "did not get package struct for %s", package);
 		goto out;
+	}
 
-	/* else list the options if multiple matches found */
+	/* nothing found */
+	if (array->len == 0) {
+		*error = g_error_new (1, 0, "could not find %s", package);
+		goto out;
+	}
 
-	/* ask the user to select the right one */
-	package_id = pk_console_resolve_package_id (list, error);
+	/* just one thing found */
+	if (array->len == 1) {
+		item = g_ptr_array_index (array, 0);
+		package_id = g_strdup (item->package_id);
+		goto out;
+	}
+
+	/* TRANSLATORS: more than one package could be found that matched, to follow is a list of possible packages  */
+	g_print ("%s\n", _("More than one package matches:"));
+	for (i=0; i<array->len; i++) {
+		item = g_ptr_array_index (array, i);
+		printable = pk_package_id_to_printable (item->package_id);
+		g_print ("%i. %s\n", i+1, printable);
+		g_free (printable);
+	}
+
+	/* TRANSLATORS: This finds out which package in the list to use */
+	i = pk_console_get_number (_("Please choose the correct package: "), array->len);
+	item = g_ptr_array_index (array, i-1);
+	package_id = g_strdup (item->package_id);
 out:
-	if (list != NULL)
-		g_object_unref (list);
+	if (results != NULL)
+		g_object_unref (results);
+	if (array != NULL)
+		g_ptr_array_unref (array);
+	g_strfreev (tmp);
 	return package_id;
 }
 
 /**
- * pk_console_is_installed:
+ * pk_console_perhaps_resolve:
  **/
-static gboolean
-pk_console_is_installed (const gchar *package)
+static gchar **
+pk_console_perhaps_resolve (PkBitfield filter, gchar **packages, GError **error)
 {
-	PkPackageSack *list;
-	GError *error;
-	gboolean ret = FALSE;
-
-	/* get the list of possibles */
-	list = pk_console_resolve (pk_bitfield_value (PK_FILTER_ENUM_INSTALLED), package, &error);
-	if (list == NULL) {
-		egg_debug ("not installed: %s", error->message);
-		g_error_free (error);
-		goto out;
+	gchar **package_ids;
+	guint i;
+	guint len;
+
+	/* get length */
+	len = g_strv_length (packages);
+	egg_debug ("resolving %i packages", len);
+
+	/* create output array*/
+	package_ids = g_new0 (gchar *, len+1);
+
+	/* resolve each package */
+	for (i=0; i<len; i++) {
+		package_ids[i] = pk_console_perhaps_resolve_package (filter, packages[i], error);
+		if (package_ids[i] == NULL) {
+			/* destroy state */
+			g_strfreev (package_ids);
+			package_ids = NULL;
+			break;
+		}
 	}
-	/* true if any installed */
-	ret = PK_OBJ_LIST(list)->len > 0;
-out:
-	if (list != NULL)
-		g_object_unref (list);
-	return ret;
+	return package_ids;
 }
 
+
 /**
- * pk_console_install_stuff:
+ * pk_console_progress_cb:
  **/
-static gboolean
-pk_console_install_stuff (gchar **packages, GError **error)
+static void
+pk_console_progress_cb (PkProgress *progress, PkProgressType type, gpointer data)
 {
-	gboolean ret = TRUE;
-	gboolean installed;
-	gboolean is_local;
-	gboolean accept_changes;
-	gchar *package_id = NULL;
-	gchar **package_ids = NULL;
-	gchar **files = NULL;
-	guint i;
-	guint length;
-	PkPackageSack *list;
-	PkPackageSack *list_single;
-	GPtrArray *array_packages;
-	GPtrArray *array_files;
-	GError *error_local = NULL;
+	gint percentage;
+	PkStatusEnum status;
 
-	array_packages = g_ptr_array_new ();
-	array_files = g_ptr_array_new ();
-	length = g_strv_length (packages);
-	list = pk_package_list_new ();
+	/* percentage */
+	if (type == PK_PROGRESS_TYPE_PERCENTAGE) {
+		g_object_get (progress,
+			      "percentage", &percentage,
+			      NULL);
+		pk_progress_bar_set_percentage (progressbar, percentage);
+	}
 
-	for (i=2; i<length; i++) {
-		/* are we a local file */
-		is_local = g_file_test (packages[i], G_FILE_TEST_EXISTS | G_FILE_TEST_IS_REGULAR);
-		if (is_local) {
-			g_ptr_array_add (array_files, g_strdup (packages[i]));
-		} else {
-			/* if already installed, then abort */
-			installed = pk_console_is_installed (packages[i]);
-			if (installed) {
-				/* TRANSLATORS: The package is already installed on the system */
-				*error = g_error_new (1, 0, _("The package %s is already installed"), packages[i]);
-				ret = FALSE;
-				break;
-			}
-			/* try and find a package */
-			package_id = pk_console_perhaps_resolve (PK_CLIENT(task), pk_bitfield_value (PK_FILTER_ENUM_NOT_INSTALLED), packages[i], &error_local);
-			if (package_id == NULL) {
-				/* TRANSLATORS: The package name was not found in any software sources. The detailed error follows */
-				*error = g_error_new (1, 0, _("The package %s could not be installed: %s"), packages[i], error_local->message);
-				g_error_free (error_local);
-				ret = FALSE;
-				break;
-			}
-			g_ptr_array_add (array_packages, package_id);
-		}
+	/* status */
+	if (type == PK_PROGRESS_TYPE_STATUS) {
+		g_object_get (progress,
+			      "status", &status,
+			      NULL);
+		if (status == PK_STATUS_ENUM_FINISHED)
+			return;
+		/* TODO: translate */
+		pk_progress_bar_start (progressbar, pk_status_enum_to_text (status));
 	}
+}
 
-	/* one of the resolves failed */
-	if (!ret) {
-		egg_warning ("resolve failed");
+/**
+ * pk_console_finished_cb:
+ **/
+static void
+pk_console_finished_cb (GObject *object, GAsyncResult *res, gpointer data)
+{
+	const PkResultItemErrorCode *error_item;
+	const PkResults *results;
+	GError *error = NULL;
+	GPtrArray *array;
+	PkExitEnum exit_enum;
+	PkRestartEnum restart;
+	PkRoleEnum role;
+
+	/* no more progress */
+	pk_progress_bar_end (progressbar);
+
+	/* get the results */
+	results = pk_client_generic_finish (PK_CLIENT(task), res, &error);
+	if (results == NULL) {
+		g_print ("Failed to complete: %s\n", error->message);
+		g_error_free (error);
 		goto out;
 	}
 
-	/* any to process? */
-	if (array_packages->len > 0) {
-		/* convert to strv */
-		package_ids = pk_ptr_array_to_strv (array_packages);
+	/* get the role */
+	g_object_get (G_OBJECT(results), "role", &role, NULL);
 
-		ret = pk_client_install_packages (PK_CLIENT(task), TRUE, package_ids, &error_local);
-		if (!ret) {
-			/* TRANSLATORS: There was an error installing the packages. The detailed error follows */
-			*error = g_error_new (1, 0, _("This tool could not install the packages: %s"), error_local->message);
-			g_error_free (error_local);
-			goto out;
-		}
+	exit_enum = pk_results_get_exit_code (results);
+//	if (exit_enum != PK_EXIT_ENUM_CANCELLED)
+//		egg_test_failed (test, "failed to cancel search: %s", pk_exit_enum_to_text (exit_enum));
+
+	/* check error code */
+	error_item = pk_results_get_error_code (results);
+//	if (error_item->code != PK_ERROR_ENUM_TRANSACTION_CANCELLED)
+//		egg_test_failed (test, "failed to get error code: %i", error_item->code);
+//	if (g_strcmp0 (error_item->details, "The task was stopped successfully") != 0)
+//		egg_test_failed (test, "failed to get error message: %s", error_item->details);
+
+	/* package */
+	if (role != PK_ROLE_ENUM_INSTALL_PACKAGES &&
+	    role != PK_ROLE_ENUM_UPDATE_PACKAGES &&
+	    role != PK_ROLE_ENUM_UPDATE_SYSTEM &&
+	    role != PK_ROLE_ENUM_REMOVE_PACKAGES) {
+		array = pk_results_get_package_array (results);
+		g_ptr_array_foreach (array, (GFunc) pk_console_package_cb, NULL);
+		g_ptr_array_unref (array);
 	}
 
-	/* any to process? */
-	if (array_files->len > 0) {
-		/* convert to strv */
-		files = pk_ptr_array_to_strv (array_files);
+	/* transaction */
+	array = pk_results_get_transaction_array (results);
+	g_ptr_array_foreach (array, (GFunc) pk_console_transaction_cb, NULL);
+	g_ptr_array_unref (array);
 
-		ret = pk_client_install_files (PK_CLIENT(task), TRUE, files, &error_local);
-		if (!ret) {
-			/* TRANSLATORS: There was an error installing the files. The detailed error follows */
-			*error = g_error_new (1, 0, _("This tool could not install the files: %s"), error_local->message);
-			g_error_free (error_local);
-			goto out;
-		}
+	/* distro_upgrade */
+	array = pk_results_get_distro_upgrade_array (results);
+	g_ptr_array_foreach (array, (GFunc) pk_console_distro_upgrade_cb, NULL);
+	g_ptr_array_unref (array);
+
+	/* category */
+	array = pk_results_get_category_array (results);
+	g_ptr_array_foreach (array, (GFunc) pk_console_category_cb, NULL);
+	g_ptr_array_unref (array);
+
+	/* update_detail */
+	array = pk_results_get_update_detail_array (results);
+	g_ptr_array_foreach (array, (GFunc) pk_console_update_detail_cb, NULL);
+	g_ptr_array_unref (array);
+
+	/* repo_detail */
+	array = pk_results_get_repo_detail_array (results);
+	g_ptr_array_foreach (array, (GFunc) pk_console_repo_detail_cb, NULL);
+	g_ptr_array_unref (array);
+
+	/* require_restart */
+	array = pk_results_get_require_restart_array (results);
+	g_ptr_array_foreach (array, (GFunc) pk_console_require_restart_cb, NULL);
+	g_ptr_array_unref (array);
+
+	/* details */
+	array = pk_results_get_details_array (results);
+	g_ptr_array_foreach (array, (GFunc) pk_console_details_cb, NULL);
+	g_ptr_array_unref (array);
+
+	/* message */
+	array = pk_results_get_message_array (results);
+	g_ptr_array_foreach (array, (GFunc) pk_console_message_cb, NULL);
+	g_ptr_array_unref (array);
+
+	/* don't print files if we are DownloadPackages */
+	if (role != PK_ROLE_ENUM_DOWNLOAD_PACKAGES) {
+		array = pk_results_get_files_array (results);
+		g_ptr_array_foreach (array, (GFunc) pk_console_files_cb, NULL);
+		g_ptr_array_unref (array);
 	}
 
+	/* is there any restart to notify the user? */
+	restart = pk_results_get_require_restart_worst (results);
+	if (restart == PK_RESTART_ENUM_SYSTEM) {
+		/* TRANSLATORS: a package needs to restart their system */
+		g_print ("%s\n", _("Please restart the computer to complete the update."));
+	} else if (restart == PK_RESTART_ENUM_SESSION) {
+		/* TRANSLATORS: a package needs to restart the session */
+		g_print ("%s\n", _("Please logout and login to complete the update."));
+	} else if (restart == PK_RESTART_ENUM_SECURITY_SYSTEM) {
+		/* TRANSLATORS: a package needs to restart their system (due to security) */
+		g_print ("%s\n", _("Please restart the computer to complete the update as important security updates have been installed."));
+	} else if (restart == PK_RESTART_ENUM_SECURITY_SESSION) {
+		/* TRANSLATORS: a package needs to restart the session (due to security) */
+		g_print ("%s\n", _("Please logout and login to complete the update as important security updates have been installed."));
+	}
 out:
-	g_object_unref (list);
-	g_strfreev (package_ids);
-	g_strfreev (files);
-	g_ptr_array_foreach (array_files, (GFunc) g_free, NULL);
-	g_ptr_array_free (array_files, TRUE);
-	g_ptr_array_foreach (array_packages, (GFunc) g_free, NULL);
-	g_ptr_array_free (array_packages, TRUE);
-	return ret;
+	g_main_loop_quit (loop);
 }
 
 /**
- * pk_console_remove_only:
+ * pk_console_install_packages:
  **/
 static gboolean
-pk_console_remove_only (gchar **package_ids, gboolean force, GError **error)
+pk_console_install_packages (gchar **packages, GError **error)
 {
-	return pk_client_remove_packages (PK_CLIENT(task), package_ids, force, FALSE, error);
+	gboolean ret = TRUE;
+	gchar **package_ids;
+	GError *error_local = NULL;
+
+	package_ids = pk_console_perhaps_resolve (pk_bitfield_value (PK_FILTER_ENUM_NOT_INSTALLED), packages, &error_local);
+	if (package_ids == NULL) {
+		/* TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows */
+		*error = g_error_new (1, 0, _("This tool could not find the available package: %s"), error_local->message);
+		g_error_free (error_local);
+		ret = FALSE;
+		goto out;
+	}
+
+	/* do the async action */
+	pk_task_install_packages_async (PK_TASK(task), package_ids, cancellable,
+				        (PkProgressCallback) pk_console_progress_cb, NULL,
+				        (GAsyncReadyCallback) pk_console_finished_cb, NULL);
+out:
+	g_strfreev (package_ids);
+	return ret;
 }
 
 /**
@@ -615,54 +748,25 @@ pk_console_remove_only (gchar **package_ids, gboolean force, GError **error)
 static gboolean
 pk_console_remove_packages (gchar **packages, GError **error)
 {
-	gchar *package_id;
 	gboolean ret = TRUE;
-	guint i;
-	guint length;
-	gboolean remove_deps;
-	GPtrArray *array;
-	gchar **package_ids = NULL;
-	PkPackageSack *list;
-	PkPackageSack *list_single;
+	gchar **package_ids;
 	GError *error_local = NULL;
 
-	array = g_ptr_array_new ();
-	list = pk_package_list_new ();
-	length = g_strv_length (packages);
-	for (i=2; i<length; i++) {
-		package_id = pk_console_perhaps_resolve (PK_CLIENT(task), pk_bitfield_value (PK_FILTER_ENUM_INSTALLED), packages[i], &error_local);
-		if (package_id == NULL) {
-			/* TRANSLATORS: The package name was not found in the installed list. The detailed error follows */
-			*error = g_error_new (1, 0, _("This tool could not remove %s: %s"), packages[i], error_local->message);
-			g_error_free (error_local);
-			ret = FALSE;
-			break;
-		}
-		g_ptr_array_add (array, g_strdup (package_id));
-		egg_debug ("resolved to %s", package_id);
-		g_free (package_id);
-	}
-
-	/* one of the resolves failed */
-	if (!ret)
-		goto out;
-
-	/* convert to strv */
-	package_ids = pk_ptr_array_to_strv (array);
-
-	/* no, just try to remove it without deps */
-	ret = pk_console_remove_only (PK_CLIENT(task), package_ids, FALSE, &error_local);
-	if (!ret) {
-		/* TRANSLATORS: There was an error removing the packages. The detailed error follows */
-		*error = g_error_new (1, 0, _("This tool could not remove the packages: %s"), error_local->message);
+	package_ids = pk_console_perhaps_resolve (pk_bitfield_value (PK_FILTER_ENUM_INSTALLED), packages, &error_local);
+	if (package_ids == NULL) {
+		/* TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows */
+		*error = g_error_new (1, 0, _("This tool could not find the installed package: %s"), error_local->message);
 		g_error_free (error_local);
+		ret = FALSE;
+		goto out;
 	}
 
+	/* do the async action */
+	pk_task_remove_packages_async (PK_TASK(task), package_ids, FALSE, FALSE, cancellable,
+				       (PkProgressCallback) pk_console_progress_cb, NULL,
+				       (GAsyncReadyCallback) pk_console_finished_cb, NULL);
 out:
-	g_object_unref (list);
 	g_strfreev (package_ids);
-	g_ptr_array_foreach (array, (GFunc) g_free, NULL);
-	g_ptr_array_free (array, TRUE);
 	return ret;
 }
 
@@ -673,92 +777,52 @@ static gboolean
 pk_console_download_packages (gchar **packages, const gchar *directory, GError **error)
 {
 	gboolean ret = TRUE;
-	gchar *package_id = NULL;
-	gchar **package_ids = NULL;
-	guint i;
-	guint length;
-	GPtrArray *array_packages;
+	gchar **package_ids;
 	GError *error_local = NULL;
 
-	array_packages = g_ptr_array_new ();
-	length = g_strv_length (packages);
-	for (i=3; i<length; i++) {
-			package_id = pk_console_perhaps_resolve (PK_CLIENT(task), pk_bitfield_value (PK_FILTER_ENUM_NONE), packages[i], &error_local);
-			if (package_id == NULL) {
-				/* TRANSLATORS: The package name was not found in any software sources */
-				*error = g_error_new (1, 0, _("This tool could not download the package %s as it could not be found"), packages[i]);
-				g_error_free (error_local);
-				ret = FALSE;
-				break;
-			}
-			g_ptr_array_add (array_packages, package_id);
-		}
-	
-	/* one of the resolves failed */
-	if (!ret) {
-		egg_warning ("resolve failed");
+	package_ids = pk_console_perhaps_resolve (pk_bitfield_value (PK_FILTER_ENUM_NONE), packages, &error_local);
+	if (package_ids == NULL) {
+		/* TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows */
+		*error = g_error_new (1, 0, _("This tool could not find the package: %s"), error_local->message);
+		g_error_free (error_local);
+		ret = FALSE;
 		goto out;
 	}
 
-	/* any to process? */
-	if (array_packages->len > 0) {
-		/* convert to strv */
-		package_ids = pk_ptr_array_to_strv (array_packages);
-
-		ret = pk_client_download_packages (PK_CLIENT(task), package_ids, directory, error);
-		if (!ret) {
-			/* TRANSLATORS: Could not download the packages for some reason. The detailed error follows */
-			*error = g_error_new (1, 0, _("This tool could not download the packages: %s"), error_local->message);
-			g_error_free (error_local);
-			goto out;
-		}
-	}
-
+	/* do the async action */
+	pk_client_download_packages_async (PK_CLIENT(task), package_ids, directory, cancellable,
+				           (PkProgressCallback) pk_console_progress_cb, NULL,
+				           (GAsyncReadyCallback) pk_console_finished_cb, NULL);
 out:
 	g_strfreev (package_ids);
-	g_ptr_array_foreach (array_packages, (GFunc) g_free, NULL);
-	g_ptr_array_free (array_packages, TRUE);
 	return ret;
 }
 
 /**
- * pk_console_update_package:
+ * pk_console_update_packages:
  **/
 static gboolean
-pk_console_update_package (const gchar *package, GError **error)
+pk_console_update_packages (gchar **packages, GError **error)
 {
-	gboolean ret;
-	gchar *package_id;
+	gboolean ret = TRUE;
 	gchar **package_ids;
-	guint length;
 	GError *error_local = NULL;
-	gboolean accept_changes;
-	PkPackageSack *list;
-	PkPackageSack *list_single;
-
-	list = pk_package_list_new ();
-	package_id = pk_console_perhaps_resolve (PK_CLIENT(task), pk_bitfield_value (PK_FILTER_ENUM_NOT_INSTALLED), package, &error_local);
-	if (package_id == NULL) {
-		/* TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows */
-		*error = g_error_new (1, 0, _("This tool could not update %s: %s"), package, error_local->message);
-		g_error_free (error_local);
-		return FALSE;
-	}
-	package_ids = pk_package_ids_from_id (package_id);
 
-	/* no, just try to update it without deps */
-	ret = pk_client_update_packages (PK_CLIENT(task), TRUE, package_ids, error);
-	if (!ret) {
+	package_ids = pk_console_perhaps_resolve (pk_bitfield_value (PK_FILTER_ENUM_NOT_INSTALLED), packages, &error_local);
+	if (package_ids == NULL) {
 		/* TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows */
-		*error = g_error_new (1, 0, _("This tool could not update %s: %s"), package, error_local->message);
+		*error = g_error_new (1, 0, _("This tool could not find the package: %s"), error_local->message);
 		g_error_free (error_local);
+		ret = FALSE;
+		goto out;
 	}
-	goto out;
 
+	/* do the async action */
+	pk_task_update_packages_async (PK_TASK(task), package_ids, cancellable,
+				       (PkProgressCallback) pk_console_progress_cb, NULL,
+				       (GAsyncReadyCallback) pk_console_finished_cb, NULL);
 out:
-	g_object_unref (list);
 	g_strfreev (package_ids);
-	g_free (package_id);
 	return ret;
 }
 
@@ -766,29 +830,25 @@ out:
  * pk_console_get_requires:
  **/
 static gboolean
-pk_console_get_requires (PkBitfield filters, const gchar *package, GError **error)
+pk_console_get_requires (PkBitfield filters, gchar **packages, GError **error)
 {
 	gboolean ret;
-	gchar *package_id;
 	gchar **package_ids;
 	GError *error_local = NULL;
 
-	package_id = pk_console_perhaps_resolve (PK_CLIENT(task), pk_bitfield_value (PK_FILTER_ENUM_NONE), package, &error_local);
-	if (package_id == NULL) {
+	package_ids = pk_console_perhaps_resolve (pk_bitfield_value (PK_FILTER_ENUM_NONE), packages, &error_local);
+	if (package_ids == NULL) {
 		/* TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows */
-		*error = g_error_new (1, 0, _("This tool could not get the requirements for %s: %s"), package, error_local->message);
+		*error = g_error_new (1, 0, _("This tool could not find all the packages: %s"), error_local->message);
 		g_error_free (error_local);
 		return FALSE;
 	}
-	package_ids = pk_package_ids_from_id (package_id);
-	ret = pk_client_get_requires (PK_CLIENT(task), filters, package_ids, TRUE, &error_local);
-	if (!ret) {
-		/* TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows */
-		*error = g_error_new (1, 0, _("This tool could not get the requirements for %s: %s"), package, error_local->message);
-		g_error_free (error_local);
-	}
+
+	/* do the async action */
+	pk_client_get_requires_async (PK_CLIENT(task), filters, package_ids, TRUE, cancellable,
+				      (PkProgressCallback) pk_console_progress_cb, NULL,
+				      (GAsyncReadyCallback) pk_console_finished_cb, NULL);
 	g_strfreev (package_ids);
-	g_free (package_id);
 	return ret;
 }
 
@@ -796,29 +856,25 @@ pk_console_get_requires (PkBitfield filters, const gchar *package, GError **erro
  * pk_console_get_depends:
  **/
 static gboolean
-pk_console_get_depends (PkBitfield filters, const gchar *package, GError **error)
+pk_console_get_depends (PkBitfield filters, gchar **packages, GError **error)
 {
 	gboolean ret;
-	gchar *package_id;
 	gchar **package_ids;
 	GError *error_local = NULL;
 
-	package_id = pk_console_perhaps_resolve (PK_CLIENT(task), pk_bitfield_value (PK_FILTER_ENUM_NONE), package, &error_local);
-	if (package_id == NULL) {
+	package_ids = pk_console_perhaps_resolve (pk_bitfield_value (PK_FILTER_ENUM_NONE), packages, &error_local);
+	if (package_ids == NULL) {
 		/* TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows */
-		*error = g_error_new (1, 0, _("This tool could not get the dependencies for %s: %s"), package, error_local->message);
+		*error = g_error_new (1, 0, _("This tool could not find all the packages: %s"), error_local->message);
 		g_error_free (error_local);
 		return FALSE;
 	}
-	package_ids = pk_package_ids_from_id (package_id);
-	ret = pk_client_get_depends (PK_CLIENT(task), filters, package_ids, FALSE, &error_local);
-	if (!ret) {
-		/* TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows */
-		*error = g_error_new (1, 0, _("This tool could not get the dependencies for %s: %s"), package, error_local->message);
-		g_error_free (error_local);
-	}
+
+	/* do the async action */
+	pk_client_get_depends_async (PK_CLIENT(task), filters, package_ids, FALSE, cancellable,
+				     (PkProgressCallback) pk_console_progress_cb, NULL,
+				     (GAsyncReadyCallback) pk_console_finished_cb, NULL);
 	g_strfreev (package_ids);
-	g_free (package_id);
 	return ret;
 }
 
@@ -826,29 +882,25 @@ pk_console_get_depends (PkBitfield filters, const gchar *package, GError **error
  * pk_console_get_details:
  **/
 static gboolean
-pk_console_get_details (const gchar *package, GError **error)
+pk_console_get_details (gchar **packages, GError **error)
 {
 	gboolean ret;
-	gchar *package_id;
 	gchar **package_ids;
 	GError *error_local = NULL;
 
-	package_id = pk_console_perhaps_resolve (PK_CLIENT(task), pk_bitfield_value (PK_FILTER_ENUM_NONE), package, &error_local);
-	if (package_id == NULL) {
+	package_ids = pk_console_perhaps_resolve (pk_bitfield_value (PK_FILTER_ENUM_NONE), packages, &error_local);
+	if (package_ids == NULL) {
 		/* TRANSLATORS: There was an error getting the details about the package. The detailed error follows */
-		*error = g_error_new (1, 0, _("This tool could not get package details for %s: %s"), package, error_local->message);
+		*error = g_error_new (1, 0, _("This tool could not find all the packages: %s"), error_local->message);
 		g_error_free (error_local);
 		return FALSE;
 	}
-	package_ids = pk_package_ids_from_id (package_id);
-	ret = pk_client_get_details (PK_CLIENT(task), package_ids, &error_local);
-	if (!ret) {
-		/* TRANSLATORS: There was an error getting the details about the package. The detailed error follows */
-		*error = g_error_new (1, 0, _("This tool could not get package details for %s: %s"), package, error_local->message);
-		g_error_free (error_local);
-	}
+
+	/* do the async action */
+	pk_client_get_details_async (PK_CLIENT(task), package_ids, cancellable,
+				     (PkProgressCallback) pk_console_progress_cb, NULL,
+				     (GAsyncReadyCallback) pk_console_finished_cb, NULL);
 	g_strfreev (package_ids);
-	g_free (package_id);
 	return ret;
 }
 
@@ -856,29 +908,25 @@ pk_console_get_details (const gchar *package, GError **error)
  * pk_console_get_files:
  **/
 static gboolean
-pk_console_get_files (const gchar *package, GError **error)
+pk_console_get_files (gchar **packages, GError **error)
 {
 	gboolean ret;
-	gchar *package_id;
 	gchar **package_ids;
 	GError *error_local = NULL;
 
-	package_id = pk_console_perhaps_resolve (PK_CLIENT(task), pk_bitfield_value (PK_FILTER_ENUM_NONE), package, &error_local);
-	if (package_id == NULL) {
+	package_ids = pk_console_perhaps_resolve (pk_bitfield_value (PK_FILTER_ENUM_NONE), packages, &error_local);
+	if (package_ids == NULL) {
 		/* TRANSLATORS: The package name was not found in any software sources. The detailed error follows */
-		*error = g_error_new (1, 0, _("This tool could not find the files for %s: %s"), package, error_local->message);
+		*error = g_error_new (1, 0, _("This tool could not find all the packages: %s"), error_local->message);
 		g_error_free (error_local);
 		return FALSE;
 	}
-	package_ids = pk_package_ids_from_id (package_id);
-	ret = pk_client_get_files (PK_CLIENT(task), package_ids, error);
-	if (!ret) {
-		/* TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows */
-		*error = g_error_new (1, 0, _("This tool could not get the file list for %s: %s"), package, error_local->message);
-		g_error_free (error_local);
-	}
+
+	/* do the async action */
+	pk_client_get_files_async (PK_CLIENT(task), package_ids, cancellable,
+				   (PkProgressCallback) pk_console_progress_cb, NULL,
+				   (GAsyncReadyCallback) pk_console_finished_cb, NULL);
 	g_strfreev (package_ids);
-	g_free (package_id);
 	return ret;
 }
 
@@ -886,32 +934,27 @@ pk_console_get_files (const gchar *package, GError **error)
  * pk_console_get_update_detail
  **/
 static gboolean
-pk_console_get_update_detail (const gchar *package, GError **error)
+pk_console_get_update_detail (gchar **packages, GError **error)
 {
 	gboolean ret;
-	gchar *package_id;
 	gchar **package_ids;
 	GError *error_local = NULL;
 
-	package_id = pk_console_perhaps_resolve (PK_CLIENT(task), pk_bitfield_value (PK_FILTER_ENUM_NOT_INSTALLED), package, &error_local);
-	if (package_id == NULL) {
+	package_ids = pk_console_perhaps_resolve (pk_bitfield_value (PK_FILTER_ENUM_NOT_INSTALLED), packages, &error_local);
+	if (package_ids == NULL) {
 		/* TRANSLATORS: The package name was not found in any software sources. The detailed error follows */
-		*error = g_error_new (1, 0, _("This tool could not find the update details for %s: %s"), package, error_local->message);
+		*error = g_error_new (1, 0, _("This tool could not find all the packages: %s"), error_local->message);
 		g_error_free (error_local);
 		return FALSE;
 	}
-	package_ids = pk_package_ids_from_id (package_id);
-	ret = pk_client_get_update_detail (PK_CLIENT(task), package_ids, &error_local);
-	if (!ret) {
-		/* TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows */
-		*error = g_error_new (1, 0, _("This tool could not get the update details for %s: %s"), package, error_local->message);
-		g_error_free (error_local);
-	}
+
+	/* do the async action */
+	pk_client_get_update_detail_async (PK_CLIENT(task), package_ids, cancellable,
+					   (PkProgressCallback) pk_console_progress_cb, NULL,
+					   (GAsyncReadyCallback) pk_console_finished_cb, NULL);
 	g_strfreev (package_ids);
-	g_free (package_id);
 	return ret;
 }
-#endif
 
 /**
  * pk_connection_changed_cb:
@@ -933,23 +976,13 @@ pk_connection_changed_cb (PkControl *control_, gboolean connected, gpointer data
 static void
 pk_console_sigint_handler (int sig)
 {
-//	PkRoleEnum role;
-//	gboolean ret;
-//	GError *error = NULL;
 	egg_debug ("Handling SIGINT");
 
 	/* restore default ASAP, as the cancels might hang */
 	signal (SIGINT, SIG_DFL);
 
-#if 0
-	/* cancel any tasks */
-	ret = pk_client_cancel (PK_CLIENT(task), &error);
-	if (!ret) {
-		egg_warning ("failed to cancel normal client: %s", error->message);
-		g_error_free (error);
-		error = NULL;
-	}
-#endif
+	/* cancel any tasks still running */
+	g_cancellable_cancel (cancellable);
 
 	/* kill ourselves */
 	egg_debug ("Retrying SIGINT");
@@ -982,9 +1015,10 @@ pk_console_get_summary (void)
 	    pk_bitfield_contain (roles, PK_ROLE_ENUM_SEARCH_GROUP) ||
 	    pk_bitfield_contain (roles, PK_ROLE_ENUM_SEARCH_FILE))
 		g_string_append_printf (string, "  %s\n", "search [name|details|group|file] [data]");
-	if (pk_bitfield_contain (roles, PK_ROLE_ENUM_INSTALL_PACKAGES) ||
-	    pk_bitfield_contain (roles, PK_ROLE_ENUM_INSTALL_FILES))
-		g_string_append_printf (string, "  %s\n", "install [packages|files]");
+	if (pk_bitfield_contain (roles, PK_ROLE_ENUM_INSTALL_PACKAGES))
+		g_string_append_printf (string, "  %s\n", "install [packages]");
+	if (pk_bitfield_contain (roles, PK_ROLE_ENUM_INSTALL_FILES))
+		g_string_append_printf (string, "  %s\n", "install-local [files]");
 	if (pk_bitfield_contain (roles, PK_ROLE_ENUM_DOWNLOAD_PACKAGES))
 		g_string_append_printf (string, "  %s\n", "download [directory] [packages]");
 	if (pk_bitfield_contain (roles, PK_ROLE_ENUM_INSTALL_SIGNATURE))
@@ -1033,147 +1067,6 @@ pk_console_get_summary (void)
 }
 
 /**
- * pk_console_progress_cb:
- **/
-static void
-pk_console_progress_cb (PkProgress *progress, PkProgressType type, gpointer data)
-{
-	gint percentage;
-	PkRoleEnum role;
-	PkStatusEnum status;
-	gchar *package_id;
-	gchar *text;
-
-	/* packages */
-	if (type == PK_PROGRESS_TYPE_PACKAGE_ID) {
-		g_object_get (progress,
-			      "role", &role,
-			      NULL);
-		if (role == PK_ROLE_ENUM_SEARCH_NAME ||
-		    role == PK_ROLE_ENUM_SEARCH_DETAILS ||
-		    role == PK_ROLE_ENUM_SEARCH_GROUP ||
-		    role == PK_ROLE_ENUM_SEARCH_FILE ||
-		    role == PK_ROLE_ENUM_RESOLVE ||
-		    role == PK_ROLE_ENUM_GET_UPDATES ||
-		    role == PK_ROLE_ENUM_WHAT_PROVIDES ||
-		    role == PK_ROLE_ENUM_GET_PACKAGES)
-			return;
-		g_object_get (progress,
-			      "package-id", &package_id,
-			      NULL);
-		text = pk_package_id_to_printable (package_id);
-		pk_progress_bar_start (progressbar, text);
-		g_free (package_id);
-		g_free (text);
-	}
-
-	/* percentage */
-	if (type == PK_PROGRESS_TYPE_PERCENTAGE) {
-		g_object_get (progress,
-			      "percentage", &percentage,
-			      NULL);
-		pk_progress_bar_set_percentage (progressbar, percentage);
-	}
-
-	/* status */
-	if (type == PK_PROGRESS_TYPE_STATUS) {
-		g_object_get (progress,
-			      "status", &status,
-			      NULL);
-		/* TODO: translate */
-		pk_progress_bar_start (progressbar, pk_status_enum_to_text (status));
-	}
-}
-
-/**
- * pk_console_finished_cb:
- **/
-static void
-pk_console_finished_cb (GObject *object, GAsyncResult *res, gpointer data)
-{
-//	PkClient *client = PK_CLIENT (object);
-	GError *error = NULL;
-	const PkResults *results;
-	PkExitEnum exit_enum;
-	const PkResultItemErrorCode *error_item;
-	GPtrArray *array;
-
-	/* no more progress */
-	pk_progress_bar_end (progressbar);
-
-	/* get the results */
-	results = pk_client_generic_finish (PK_CLIENT(task), res, &error);
-	if (results == NULL) {
-		g_print ("Failed to complete: %s\n", error->message);
-		g_error_free (error);
-		goto out;
-	}
-
-	exit_enum = pk_results_get_exit_code (results);
-//	if (exit_enum != PK_EXIT_ENUM_CANCELLED)
-//		egg_test_failed (test, "failed to cancel search: %s", pk_exit_enum_to_text (exit_enum));
-
-	/* check error code */
-	error_item = pk_results_get_error_code (results);
-//	if (error_item->code != PK_ERROR_ENUM_TRANSACTION_CANCELLED)
-//		egg_test_failed (test, "failed to get error code: %i", error_item->code);
-//	if (g_strcmp0 (error_item->details, "The task was stopped successfully") != 0)
-//		egg_test_failed (test, "failed to get error message: %s", error_item->details);
-
-	/* package */
-	array = pk_results_get_package_array (results);
-	g_ptr_array_foreach (array, (GFunc) pk_console_package_cb, NULL);
-	g_ptr_array_unref (array);
-
-	/* transaction */
-	array = pk_results_get_transaction_array (results);
-	g_ptr_array_foreach (array, (GFunc) pk_console_transaction_cb, NULL);
-	g_ptr_array_unref (array);
-
-	/* distro_upgrade */
-	array = pk_results_get_distro_upgrade_array (results);
-	g_ptr_array_foreach (array, (GFunc) pk_console_distro_upgrade_cb, NULL);
-	g_ptr_array_unref (array);
-
-	/* category */
-	array = pk_results_get_category_array (results);
-	g_ptr_array_foreach (array, (GFunc) pk_console_category_cb, NULL);
-	g_ptr_array_unref (array);
-
-	/* update_detail */
-	array = pk_results_get_update_detail_array (results);
-	g_ptr_array_foreach (array, (GFunc) pk_console_update_detail_cb, NULL);
-	g_ptr_array_unref (array);
-
-	/* repo_detail */
-	array = pk_results_get_repo_detail_array (results);
-	g_ptr_array_foreach (array, (GFunc) pk_console_repo_detail_cb, NULL);
-	g_ptr_array_unref (array);
-
-	/* require_restart */
-	array = pk_results_get_require_restart_array (results);
-	g_ptr_array_foreach (array, (GFunc) pk_console_require_restart_cb, NULL);
-	g_ptr_array_unref (array);
-
-	/* details */
-	array = pk_results_get_details_array (results);
-	g_ptr_array_foreach (array, (GFunc) pk_console_details_cb, NULL);
-	g_ptr_array_unref (array);
-
-	/* message */
-	array = pk_results_get_message_array (results);
-	g_ptr_array_foreach (array, (GFunc) pk_console_message_cb, NULL);
-	g_ptr_array_unref (array);
-
-	/* files */
-	array = pk_results_get_files_array (results);
-	g_ptr_array_foreach (array, (GFunc) pk_console_files_cb, NULL);
-	g_ptr_array_unref (array);
-out:
-	g_main_loop_quit (loop);
-}
-
-/**
  * main:
  **/
 int
@@ -1193,7 +1086,6 @@ main (int argc, char *argv[])
 	const gchar *parameter = NULL;
 	PkBitfield groups;
 	gchar *text;
-//	gboolean maybe_sync = TRUE;
 	PkBitfield filters = 0;
 	gint retval = EXIT_SUCCESS;
 
@@ -1247,6 +1139,7 @@ main (int argc, char *argv[])
 	pk_progress_bar_set_size (progressbar, 25);
 	pk_progress_bar_set_padding (progressbar, 20);
 
+	cancellable = g_cancellable_new ();
 	context = g_option_context_new ("PackageKit Console Program");
 	g_option_context_set_summary (context, summary) ;
 	g_option_context_add_main_entries (context, options, NULL);
@@ -1314,7 +1207,7 @@ main (int argc, char *argv[])
 				goto out;
 			}
 			/* fire off an async request */
-			pk_client_search_name_async (PK_CLIENT(task), filters, details, NULL,
+			pk_client_search_name_async (PK_CLIENT(task), filters, details, cancellable,
 						     (PkProgressCallback) pk_console_progress_cb, NULL,
 						     (GAsyncReadyCallback) pk_console_finished_cb, NULL);
 
@@ -1326,7 +1219,7 @@ main (int argc, char *argv[])
 				goto out;
 			}
 			/* fire off an async request */
-			pk_client_search_details_async (PK_CLIENT(task), filters, details, NULL,
+			pk_client_search_details_async (PK_CLIENT(task), filters, details, cancellable,
 						        (PkProgressCallback) pk_console_progress_cb, NULL,
 						        (GAsyncReadyCallback) pk_console_finished_cb, NULL);
 
@@ -1338,7 +1231,7 @@ main (int argc, char *argv[])
 				goto out;
 			}
 			/* fire off an async request */
-			pk_client_search_group_async (PK_CLIENT(task), filters, details, NULL,
+			pk_client_search_group_async (PK_CLIENT(task), filters, details, cancellable,
 						      (PkProgressCallback) pk_console_progress_cb, NULL,
 						      (GAsyncReadyCallback) pk_console_finished_cb, NULL);
 
@@ -1350,24 +1243,34 @@ main (int argc, char *argv[])
 				goto out;
 			}
 			/* fire off an async request */
-			pk_client_search_file_async (PK_CLIENT(task), filters, details, NULL,
+			pk_client_search_file_async (PK_CLIENT(task), filters, details, cancellable,
 						     (PkProgressCallback) pk_console_progress_cb, NULL,
 						     (GAsyncReadyCallback) pk_console_finished_cb, NULL);
 		} else {
 			/* TRANSLATORS: the search type was provided, but invalid */
 			error = g_error_new (1, 0, "%s", _("Invalid search type"));
 		}
-#if 0
 
 	} else if (strcmp (mode, "install") == 0) {
 		if (value == NULL) {
 			/* TRANSLATORS: the user did not specify what they wanted to install */
-			error = g_error_new (1, 0, "%s", _("A package name or filename to install is required"));
+			error = g_error_new (1, 0, "%s", _("A package name to install is required"));
 			retval = PK_EXIT_CODE_SYNTAX_INVALID;
 			goto out;
 		}
-		ret = pk_console_install_stuff (PK_CLIENT(task), argv, &error);
-#endif
+		nowait = !pk_console_install_packages (argv+2, &error);
+
+	} else if (strcmp (mode, "install-local") == 0) {
+		if (value == NULL) {
+			/* TRANSLATORS: the user did not specify what they wanted to install */
+			error = g_error_new (1, 0, "%s", _("A filename to install is required"));
+			retval = PK_EXIT_CODE_SYNTAX_INVALID;
+			goto out;
+		}
+		pk_task_install_files_async (PK_TASK(task), argv+2, cancellable,
+					     (PkProgressCallback) pk_console_progress_cb, NULL,
+					     (GAsyncReadyCallback) pk_console_finished_cb, NULL);
+
 
 	} else if (strcmp (mode, "install-sig") == 0) {
 		if (value == NULL || details == NULL || parameter == NULL) {
@@ -1376,10 +1279,10 @@ main (int argc, char *argv[])
 			retval = PK_EXIT_CODE_SYNTAX_INVALID;
 			goto out;
 		}
-		pk_client_install_signature_async (PK_CLIENT(task), PK_SIGTYPE_ENUM_GPG, details, parameter, NULL,
+		pk_client_install_signature_async (PK_CLIENT(task), PK_SIGTYPE_ENUM_GPG, details, parameter, cancellable,
 						   (PkProgressCallback) pk_console_progress_cb, NULL,
 						   (GAsyncReadyCallback) pk_console_finished_cb, NULL);
-#if 0
+
 	} else if (strcmp (mode, "remove") == 0) {
 		if (value == NULL) {
 			/* TRANSLATORS: the user did not specify what they wanted to remove */
@@ -1387,7 +1290,8 @@ main (int argc, char *argv[])
 			retval = PK_EXIT_CODE_SYNTAX_INVALID;
 			goto out;
 		}
-		ret = pk_console_remove_packages (PK_CLIENT(task), argv, &error);
+		nowait = !pk_console_remove_packages (argv+2, &error);
+
 	} else if (strcmp (mode, "download") == 0) {
 		if (value == NULL || details == NULL) {
 			/* TRANSLATORS: the user did not specify anything about what to download or where */
@@ -1402,8 +1306,8 @@ main (int argc, char *argv[])
 			retval = PK_EXIT_CODE_FILE_NOT_FOUND;
 			goto out;
 		}
-		ret = pk_console_download_packages (PK_CLIENT(task), argv, value, &error);
-#endif
+		nowait = !pk_console_download_packages (argv+2, value, &error);
+
 	} else if (strcmp (mode, "accept-eula") == 0) {
 		if (value == NULL) {
 			/* TRANSLATORS: geeky error, 99.9999% of users won't see this */
@@ -1411,11 +1315,10 @@ main (int argc, char *argv[])
 			retval = PK_EXIT_CODE_SYNTAX_INVALID;
 			goto out;
 		}
-		pk_client_accept_eula_async (PK_CLIENT(task), value, NULL,
+		pk_client_accept_eula_async (PK_CLIENT(task), value, cancellable,
 					     (PkProgressCallback) pk_console_progress_cb, NULL,
 					     (GAsyncReadyCallback) pk_console_finished_cb, NULL);
 
-#if 0
 	} else if (strcmp (mode, "rollback") == 0) {
 		if (value == NULL) {
 			/* TRANSLATORS: geeky error, 99.9999% of users won't see this */
@@ -1423,20 +1326,19 @@ main (int argc, char *argv[])
 			retval = PK_EXIT_CODE_SYNTAX_INVALID;
 			goto out;
 		}
-		pk_client_rollback_async (PK_CLIENT(task), value, NULL,
+		pk_client_rollback_async (PK_CLIENT(task), value, cancellable,
 					  (PkProgressCallback) pk_console_progress_cb, NULL,
 					  (GAsyncReadyCallback) pk_console_finished_cb, NULL);
 
 	} else if (strcmp (mode, "update") == 0) {
 		if (value == NULL) {
 			/* do the system update */
-			pk_client_update_system_async (PK_CLIENT(task), TRUE, NULL,
-						       (PkProgressCallback) pk_console_progress_cb, NULL,
-						       (GAsyncReadyCallback) pk_console_finished_cb, NULL);
+			pk_task_update_system_async (PK_TASK(task), cancellable,
+						     (PkProgressCallback) pk_console_progress_cb, NULL,
+						     (GAsyncReadyCallback) pk_console_finished_cb, NULL);
 		} else {
-			ret = pk_console_update_package (PK_CLIENT(task), value, &error);
+			nowait = !pk_console_update_packages (argv+2, &error);
 		}
-#endif
 
 	} else if (strcmp (mode, "resolve") == 0) {
 		if (value == NULL) {
@@ -1445,7 +1347,7 @@ main (int argc, char *argv[])
 			retval = PK_EXIT_CODE_SYNTAX_INVALID;
 			goto out;
 		}
-		pk_client_resolve_async (PK_CLIENT(task), filters, argv+2, NULL,
+		pk_client_resolve_async (PK_CLIENT(task), filters, argv+2, cancellable,
 				         (PkProgressCallback) pk_console_progress_cb, NULL,
 					 (GAsyncReadyCallback) pk_console_finished_cb, NULL);
 
@@ -1456,7 +1358,7 @@ main (int argc, char *argv[])
 			retval = PK_EXIT_CODE_SYNTAX_INVALID;
 			goto out;
 		}
-		pk_client_repo_enable_async (PK_CLIENT(task), value, TRUE, NULL,
+		pk_client_repo_enable_async (PK_CLIENT(task), value, TRUE, cancellable,
 					     (PkProgressCallback) pk_console_progress_cb, NULL,
 					     (GAsyncReadyCallback) pk_console_finished_cb, NULL);
 
@@ -1467,7 +1369,7 @@ main (int argc, char *argv[])
 			retval = PK_EXIT_CODE_SYNTAX_INVALID;
 			goto out;
 		}
-		pk_client_repo_enable_async (PK_CLIENT(task), value, FALSE, NULL,
+		pk_client_repo_enable_async (PK_CLIENT(task), value, FALSE, cancellable,
 					     (PkProgressCallback) pk_console_progress_cb, NULL,
 					     (GAsyncReadyCallback) pk_console_finished_cb, NULL);
 
@@ -1478,12 +1380,12 @@ main (int argc, char *argv[])
 			retval = PK_EXIT_CODE_SYNTAX_INVALID;
 			goto out;
 		}
-		pk_client_repo_set_data_async (PK_CLIENT(task), value, details, parameter, NULL,
+		pk_client_repo_set_data_async (PK_CLIENT(task), value, details, parameter, cancellable,
 					       (PkProgressCallback) pk_console_progress_cb, NULL,
 					       (GAsyncReadyCallback) pk_console_finished_cb, NULL);
 
 	} else if (strcmp (mode, "repo-list") == 0) {
-		pk_client_get_repo_list_async (PK_CLIENT(task), filters, NULL,
+		pk_client_get_repo_list_async (PK_CLIENT(task), filters, cancellable,
 					       (PkProgressCallback) pk_console_progress_cb, NULL,
 					       (GAsyncReadyCallback) pk_console_finished_cb, NULL);
 
@@ -1512,7 +1414,7 @@ main (int argc, char *argv[])
 		}
 		g_print ("time since %s is %is\n", value, time_ms);
 		nowait = TRUE;
-#if 0
+
 	} else if (strcmp (mode, "get-depends") == 0) {
 		if (value == NULL) {
 			/* TRANSLATORS: The user did not provide a package name */
@@ -1520,14 +1422,14 @@ main (int argc, char *argv[])
 			retval = PK_EXIT_CODE_SYNTAX_INVALID;
 			goto out;
 		}
-		ret = pk_console_get_depends (PK_CLIENT(task), filters, value, &error);
-#endif
+		nowait = !pk_console_get_depends (filters, argv+2, &error);
+
 	} else if (strcmp (mode, "get-distro-upgrades") == 0) {
-		pk_client_get_distro_upgrades_async (PK_CLIENT(task), NULL,
+		pk_client_get_distro_upgrades_async (PK_CLIENT(task), cancellable,
 						     (PkProgressCallback) pk_console_progress_cb, NULL,
 						     (GAsyncReadyCallback) pk_console_finished_cb, NULL);
 
-#if 0
+
 	} else if (strcmp (mode, "get-update-detail") == 0) {
 		if (value == NULL) {
 			/* TRANSLATORS: The user did not provide a package name */
@@ -1535,7 +1437,7 @@ main (int argc, char *argv[])
 			retval = PK_EXIT_CODE_SYNTAX_INVALID;
 			goto out;
 		}
-		ret = pk_console_get_update_detail (PK_CLIENT(task), value, &error);
+		nowait = !pk_console_get_update_detail (argv+2, &error);
 
 	} else if (strcmp (mode, "get-requires") == 0) {
 		if (value == NULL) {
@@ -1544,8 +1446,7 @@ main (int argc, char *argv[])
 			retval = PK_EXIT_CODE_SYNTAX_INVALID;
 			goto out;
 		}
-		ret = pk_console_get_requires (PK_CLIENT(task), filters, value, &error);
-#endif
+		nowait = !pk_console_get_requires (filters, argv+2, &error);
 
 	} else if (strcmp (mode, "what-provides") == 0) {
 		if (value == NULL) {
@@ -1554,10 +1455,10 @@ main (int argc, char *argv[])
 			retval = PK_EXIT_CODE_SYNTAX_INVALID;
 			goto out;
 		}
-		pk_client_what_provides_async (PK_CLIENT(task), filters, PK_PROVIDES_ENUM_CODEC, value, NULL,
+		pk_client_what_provides_async (PK_CLIENT(task), filters, PK_PROVIDES_ENUM_CODEC, value, cancellable,
 					       (PkProgressCallback) pk_console_progress_cb, NULL,
 					       (GAsyncReadyCallback) pk_console_finished_cb, NULL);
-#if 0
+
 	} else if (strcmp (mode, "get-details") == 0) {
 		if (value == NULL) {
 			/* TRANSLATORS: The user did not provide a package name */
@@ -1565,7 +1466,7 @@ main (int argc, char *argv[])
 			retval = PK_EXIT_CODE_SYNTAX_INVALID;
 			goto out;
 		}
-		ret = pk_console_get_details (PK_CLIENT(task), value, &error);
+		nowait = !pk_console_get_details (argv+2, &error);
 
 	} else if (strcmp (mode, "get-files") == 0) {
 		if (value == NULL) {
@@ -1574,20 +1475,20 @@ main (int argc, char *argv[])
 			retval = PK_EXIT_CODE_SYNTAX_INVALID;
 			goto out;
 		}
-		ret = pk_console_get_files (PK_CLIENT(task), value, &error);
-#endif
+		nowait = !pk_console_get_files (argv+2, &error);
+
 	} else if (strcmp (mode, "get-updates") == 0) {
-		pk_client_get_updates_async (PK_CLIENT(task), filters, NULL,
+		pk_client_get_updates_async (PK_CLIENT(task), filters, cancellable,
 					     (PkProgressCallback) pk_console_progress_cb, NULL,
 					     (GAsyncReadyCallback) pk_console_finished_cb, NULL);
 
 	} else if (strcmp (mode, "get-categories") == 0) {
-		pk_client_get_categories_async (PK_CLIENT(task), NULL,
+		pk_client_get_categories_async (PK_CLIENT(task), cancellable,
 						(PkProgressCallback) pk_console_progress_cb, NULL,
 						(GAsyncReadyCallback) pk_console_finished_cb, NULL);
 
 	} else if (strcmp (mode, "get-packages") == 0) {
-		pk_client_get_packages_async (PK_CLIENT(task), filters, NULL,
+		pk_client_get_packages_async (PK_CLIENT(task), filters, cancellable,
 					      (PkProgressCallback) pk_console_progress_cb, NULL,
 					      (GAsyncReadyCallback) pk_console_finished_cb, NULL);
 
@@ -1619,12 +1520,12 @@ main (int argc, char *argv[])
 		nowait = TRUE;
 
 	} else if (strcmp (mode, "get-transactions") == 0) {
-		pk_client_get_old_transactions_async (PK_CLIENT(task), 10, NULL,
+		pk_client_get_old_transactions_async (PK_CLIENT(task), 10, cancellable,
 						      (PkProgressCallback) pk_console_progress_cb, NULL,
 						      (GAsyncReadyCallback) pk_console_finished_cb, NULL);
 
 	} else if (strcmp (mode, "refresh") == 0) {
-		pk_client_refresh_cache_async (PK_CLIENT(task), FALSE, NULL,
+		pk_client_refresh_cache_async (PK_CLIENT(task), FALSE, cancellable,
 					       (PkProgressCallback) pk_console_progress_cb, NULL,
 					       (GAsyncReadyCallback) pk_console_finished_cb, NULL);
 
@@ -1653,6 +1554,7 @@ out:
 	g_object_unref (progressbar);
 	g_object_unref (control);
 	g_object_unref (task);
+	g_object_unref (cancellable);
 out_last:
 	return retval;
 }
diff --git a/client/pk-task-text.c b/client/pk-task-text.c
index f85ca2e..a0e4f7e 100644
--- a/client/pk-task-text.c
+++ b/client/pk-task-text.c
@@ -57,6 +57,9 @@ dkp_task_text_untrusted_question (PkTask *task, guint request, const PkResults *
 	/* set some user data, for no reason */
 	priv->user_data = NULL;
 
+	/* clear new line */
+	g_print ("\n");
+
 	/* ask the user */
 	ret = pk_console_get_prompt (_("Do you want to allow installing of unsigned software?"), FALSE);
 	if (ret) {
@@ -83,6 +86,9 @@ dkp_task_text_key_question (PkTask *task, guint request, const PkResults *result
 	/* set some user data, for no reason */
 	priv->user_data = NULL;
 
+	/* clear new line */
+	g_print ("\n");
+
 	/* get data */
 	array = pk_results_get_repo_signature_required_array (results);
 	for (i=0; i<array->len; i++) {
@@ -131,6 +137,9 @@ dkp_task_text_eula_question (PkTask *task, guint request, const PkResults *resul
 	/* set some user data, for no reason */
 	priv->user_data = NULL;
 
+	/* clear new line */
+	g_print ("\n");
+
 	/* get data */
 	array = pk_results_get_eula_required_array (results);
 	for (i=0; i<array->len; i++) {
@@ -175,6 +184,9 @@ dkp_task_text_media_change_question (PkTask *task, guint request, const PkResult
 	/* set some user data, for no reason */
 	priv->user_data = NULL;
 
+	/* clear new line */
+	g_print ("\n");
+
 	/* get data */
 	array = pk_results_get_media_change_required_array (results);
 	for (i=0; i<array->len; i++) {
@@ -254,6 +266,9 @@ dkp_task_text_simulate_question (PkTask *task, guint request, const PkResults *r
 	/* set some user data, for no reason */
 	priv->user_data = NULL;
 
+	/* clear new line */
+	g_print ("\n");
+
 	/* get data */
 	sack = pk_results_get_package_sack (results);
 
commit aaf6228da47f0850e266ab209038172234914f6d
Author: Richard Hughes <richard at hughsie.com>
Date:   Fri Sep 4 12:56:37 2009 +0100

    trivial: add some new debugging to PkProgress

diff --git a/lib/packagekit-glib2/pk-progress.c b/lib/packagekit-glib2/pk-progress.c
index c391233..7cb7594 100644
--- a/lib/packagekit-glib2/pk-progress.c
+++ b/lib/packagekit-glib2/pk-progress.c
@@ -117,24 +117,31 @@ pk_progress_set_property (GObject *object, guint prop_id, const GValue *value, G
 	case PROP_PACKAGE_ID:
 		g_free (priv->package_id);
 		priv->package_id = g_strdup (g_value_get_string (value));
+		egg_debug ("package_id now %s", priv->package_id);
 		break;
 	case PROP_PERCENTAGE:
 		priv->percentage = g_value_get_int (value);
+		egg_debug ("percentage now %i", priv->percentage);
 		break;
 	case PROP_SUBPERCENTAGE:
 		priv->subpercentage = g_value_get_int (value);
+		egg_debug ("subpercentage now %i", priv->subpercentage);
 		break;
 	case PROP_ALLOW_CANCEL:
 		priv->allow_cancel = g_value_get_boolean (value);
+		egg_debug ("allow-cancel now %i", priv->allow_cancel);
 		break;
 	case PROP_STATUS:
 		priv->status = g_value_get_uint (value);
+		egg_debug ("status now %s", pk_status_enum_to_text (priv->status));
 		break;
 	case PROP_ROLE:
 		priv->role = g_value_get_uint (value);
+		egg_debug ("role now %s", pk_role_enum_to_text (priv->role));
 		break;
 	case PROP_CALLER_ACTIVE:
 		priv->caller_active = g_value_get_boolean (value);
+		egg_debug ("caller-active now %i", priv->caller_active);
 		break;
 	default:
 		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
commit 0971a9c37dd4298c2b1b1da66000aead09e40ff2
Author: Richard Hughes <richard at hughsie.com>
Date:   Fri Sep 4 12:56:11 2009 +0100

    bugfix: Send percentage-invalid when setting up the transaction and waiting for authentication

diff --git a/src/pk-transaction.c b/src/pk-transaction.c
index 09da9c6..485ebc2 100644
--- a/src/pk-transaction.c
+++ b/src/pk-transaction.c
@@ -1332,6 +1332,7 @@ pk_transaction_set_running (PkTransaction *transaction)
 
 	/* we are no longer waiting, we are setting up */
 	pk_backend_set_status (priv->backend, PK_STATUS_ENUM_SETUP);
+	pk_backend_set_percentage (priv->backend, PK_BACKEND_PERCENTAGE_INVALID);
 
 	/* set all possible arguments for backend */
 	store = pk_backend_get_store (priv->backend);
@@ -1866,6 +1867,7 @@ pk_transaction_obtain_authorization (PkTransaction *transaction, gboolean only_t
 
 	/* emit status for GUIs */
 	pk_transaction_status_changed_emit (transaction, PK_STATUS_ENUM_WAITING_FOR_AUTH);
+	pk_transaction_progress_changed_emit (transaction, PK_BACKEND_PERCENTAGE_INVALID, PK_BACKEND_PERCENTAGE_INVALID, 0, 0);
 
 	/* check subject */
 	transaction->priv->waiting_for_auth = TRUE;
@@ -4767,7 +4769,7 @@ pk_transaction_class_init (PkTransactionClass *klass)
 	 */
 	spec = g_param_spec_uint ("percentage",
 				  "Percentage", "Percentage transaction complete",
-				  0, 101, 0,
+				  0, PK_BACKEND_PERCENTAGE_INVALID, 0,
 				  G_PARAM_READABLE);
 	g_object_class_install_property (object_class, PROP_PERCENTAGE, spec);
 
@@ -4776,7 +4778,7 @@ pk_transaction_class_init (PkTransactionClass *klass)
 	 */
 	spec = g_param_spec_uint ("subpercentage",
 				  "Sub-percentage", "Percentage sub-transaction complete",
-				  0, 101, 0,
+				  0, PK_BACKEND_PERCENTAGE_INVALID, 0,
 				  G_PARAM_READABLE);
 	g_object_class_install_property (object_class, PROP_SUBPERCENTAGE, spec);
 
commit ea63b5544ab5e12d0aa85b43155e1ce5f7f512e4
Author: Richard Hughes <richard at hughsie.com>
Date:   Fri Sep 4 12:34:14 2009 +0100

    glib2: don't cancel all pending requests on finalize

diff --git a/lib/packagekit-glib2/pk-client.c b/lib/packagekit-glib2/pk-client.c
index 1fac943..26aed7d 100644
--- a/lib/packagekit-glib2/pk-client.c
+++ b/lib/packagekit-glib2/pk-client.c
@@ -287,8 +287,17 @@ static void
 pk_client_cancellable_cancel_cb (GCancellable *cancellable, PkClientState *state)
 {
 	/* dbus method has not yet fired */
-	if (state->call != NULL)
-		egg_warning ("DBus method not yet fired, not sure what to do here");
+	if (state->proxy == NULL) {
+		egg_warning ("Cancelled, but no proxy, not sure what to do here");
+		return;
+	}
+
+	/* dbus method is pending now, just cancel */
+	if (state->call != NULL) {
+		dbus_g_proxy_cancel_call (state->proxy, state->call);
+		state->call = NULL;
+		return;
+	}
 
 	/* takeover the call with the cancel method */
 	state->call = dbus_g_proxy_begin_call (state->proxy, "Cancel",
@@ -311,7 +320,6 @@ pk_client_state_finish (PkClientState *state, GError *error)
 
 	if (state->cancellable != NULL) {
 		g_cancellable_disconnect (state->cancellable, state->cancellable_id);
-		g_cancellable_cancel (state->cancellable);
 		g_object_unref (state->cancellable);
 	}
 
diff --git a/lib/packagekit-glib2/pk-control.c b/lib/packagekit-glib2/pk-control.c
index 562c20b..08e438a 100644
--- a/lib/packagekit-glib2/pk-control.c
+++ b/lib/packagekit-glib2/pk-control.c
@@ -150,12 +150,6 @@ pk_control_get_tid_state_finish (PkControlState *state, GError *error)
 	if (state->control != NULL)
 		g_object_remove_weak_pointer (G_OBJECT (state->control), (gpointer) &state->control);
 
-	/* cancel */
-	if (state->cancellable != NULL) {
-		g_cancellable_cancel (state->cancellable);
-		g_object_unref (state->cancellable);
-	}
-
 	/* get result */
 	if (state->tid != NULL) {
 		g_simple_async_result_set_op_res_gpointer (state->res, g_strdup (state->tid), g_free);
@@ -171,6 +165,8 @@ pk_control_get_tid_state_finish (PkControlState *state, GError *error)
 	g_simple_async_result_complete_in_idle (state->res);
 
 	/* deallocate */
+	if (state->cancellable != NULL)
+		g_object_unref (state->cancellable);
 	g_free (state->tid);
 	g_object_unref (state->res);
 	g_slice_free (PkControlState, state);
@@ -292,12 +288,6 @@ pk_control_set_proxy_state_finish (PkControlState *state, GError *error)
 	if (state->control != NULL)
 		g_object_remove_weak_pointer (G_OBJECT (state->control), (gpointer) &state->control);
 
-	/* cancel */
-	if (state->cancellable != NULL) {
-		g_cancellable_cancel (state->cancellable);
-		g_object_unref (state->cancellable);
-	}
-
 	/* get result */
 	if (state->ret) {
 		g_simple_async_result_set_op_res_gboolean (state->res, state->ret);
@@ -313,6 +303,8 @@ pk_control_set_proxy_state_finish (PkControlState *state, GError *error)
 	g_simple_async_result_complete_in_idle (state->res);
 
 	/* deallocate */
+	if (state->cancellable != NULL)
+		g_object_unref (state->cancellable);
 	g_object_unref (state->res);
 	g_slice_free (PkControlState, state);
 }
@@ -435,12 +427,6 @@ pk_control_get_transaction_list_state_finish (PkControlState *state, GError *err
 	if (state->control != NULL)
 		g_object_remove_weak_pointer (G_OBJECT (state->control), (gpointer) &state->control);
 
-	/* cancel */
-	if (state->cancellable != NULL) {
-		g_cancellable_cancel (state->cancellable);
-		g_object_unref (state->cancellable);
-	}
-
 	/* get result */
 	if (state->transaction_list != NULL) {
 		g_simple_async_result_set_op_res_gpointer (state->res, g_strdupv (state->transaction_list), (GDestroyNotify) g_strfreev);
@@ -456,6 +442,8 @@ pk_control_get_transaction_list_state_finish (PkControlState *state, GError *err
 	g_simple_async_result_complete_in_idle (state->res);
 
 	/* deallocate */
+	if (state->cancellable != NULL)
+		g_object_unref (state->cancellable);
 	g_strfreev (state->transaction_list);
 	g_object_unref (state->res);
 	g_slice_free (PkControlState, state);
@@ -577,12 +565,6 @@ pk_control_get_time_since_action_state_finish (PkControlState *state, GError *er
 	if (state->control != NULL)
 		g_object_remove_weak_pointer (G_OBJECT (state->control), (gpointer) &state->control);
 
-	/* cancel */
-	if (state->cancellable != NULL) {
-		g_cancellable_cancel (state->cancellable);
-		g_object_unref (state->cancellable);
-	}
-
 	/* get result */
 	if (state->time != 0) {
 		g_simple_async_result_set_op_res_gssize (state->res, state->time);
@@ -598,6 +580,8 @@ pk_control_get_time_since_action_state_finish (PkControlState *state, GError *er
 	g_simple_async_result_complete_in_idle (state->res);
 
 	/* deallocate */
+	if (state->cancellable != NULL)
+		g_object_unref (state->cancellable);
 	g_object_unref (state->res);
 	g_slice_free (PkControlState, state);
 }
@@ -727,12 +711,6 @@ pk_control_get_network_state_state_finish (PkControlState *state, GError *error)
 	if (state->control != NULL)
 		g_object_remove_weak_pointer (G_OBJECT (state->control), (gpointer) &state->control);
 
-	/* cancel */
-	if (state->cancellable != NULL) {
-		g_cancellable_cancel (state->cancellable);
-		g_object_unref (state->cancellable);
-	}
-
 	/* get result */
 	if (state->network != PK_NETWORK_ENUM_UNKNOWN) {
 		g_simple_async_result_set_op_res_gssize (state->res, state->network);
@@ -748,6 +726,8 @@ pk_control_get_network_state_state_finish (PkControlState *state, GError *error)
 	g_simple_async_result_complete_in_idle (state->res);
 
 	/* deallocate */
+	if (state->cancellable != NULL)
+		g_object_unref (state->cancellable);
 	g_object_unref (state->res);
 	g_slice_free (PkControlState, state);
 }
@@ -874,12 +854,6 @@ pk_control_can_authorize_state_finish (PkControlState *state, GError *error)
 	if (state->control != NULL)
 		g_object_remove_weak_pointer (G_OBJECT (state->control), (gpointer) &state->control);
 
-	/* cancel */
-	if (state->cancellable != NULL) {
-		g_cancellable_cancel (state->cancellable);
-		g_object_unref (state->cancellable);
-	}
-
 	/* get result */
 	if (state->authorize != PK_AUTHORIZE_ENUM_UNKNOWN) {
 		g_simple_async_result_set_op_res_gssize (state->res, state->authorize);
@@ -895,6 +869,8 @@ pk_control_can_authorize_state_finish (PkControlState *state, GError *error)
 	g_simple_async_result_complete_in_idle (state->res);
 
 	/* deallocate */
+	if (state->cancellable != NULL)
+		g_object_unref (state->cancellable);
 	g_object_unref (state->res);
 	g_slice_free (PkControlState, state);
 }
@@ -1023,12 +999,6 @@ pk_control_get_properties_state_finish (PkControlState *state, GError *error)
 	if (state->control != NULL)
 		g_object_remove_weak_pointer (G_OBJECT (state->control), (gpointer) &state->control);
 
-	/* cancel */
-	if (state->cancellable != NULL) {
-		g_cancellable_cancel (state->cancellable);
-		g_object_unref (state->cancellable);
-	}
-
 	/* get result */
 	if (state->ret) {
 		g_simple_async_result_set_op_res_gboolean (state->res, state->ret);
@@ -1044,6 +1014,8 @@ pk_control_get_properties_state_finish (PkControlState *state, GError *error)
 	g_simple_async_result_complete_in_idle (state->res);
 
 	/* deallocate */
+	if (state->cancellable != NULL)
+		g_object_unref (state->cancellable);
 	g_object_unref (state->res);
 	g_slice_free (PkControlState, state);
 }
diff --git a/lib/packagekit-glib2/pk-package-sack.c b/lib/packagekit-glib2/pk-package-sack.c
index 970a71a..bd34f98 100644
--- a/lib/packagekit-glib2/pk-package-sack.c
+++ b/lib/packagekit-glib2/pk-package-sack.c
@@ -428,12 +428,6 @@ pk_package_sack_merge_bool_state_finish (PkPackageSackState *state, const GError
 	if (state->sack != NULL)
 		g_object_remove_weak_pointer (G_OBJECT (state->sack), (gpointer) &state->sack);
 
-	/* cancel */
-	if (state->cancellable != NULL) {
-		g_cancellable_cancel (state->cancellable);
-		g_object_unref (state->cancellable);
-	}
-
 	/* get result */
 	if (state->ret) {
 		g_simple_async_result_set_op_res_gboolean (state->res, state->ret);
@@ -446,6 +440,8 @@ pk_package_sack_merge_bool_state_finish (PkPackageSackState *state, const GError
 	g_simple_async_result_complete_in_idle (state->res);
 
 	/* deallocate */
+	if (state->cancellable != NULL)
+		g_object_unref (state->cancellable);
 	g_object_unref (state->res);
 	g_slice_free (PkPackageSackState, state);
 }
diff --git a/lib/packagekit-glib2/pk-task.c b/lib/packagekit-glib2/pk-task.c
index 4662925..b00d656 100644
--- a/lib/packagekit-glib2/pk-task.c
+++ b/lib/packagekit-glib2/pk-task.c
@@ -114,12 +114,6 @@ pk_task_generic_state_finish (PkTaskState *state, const GError *error)
 	if (state->task != NULL)
 		g_object_remove_weak_pointer (G_OBJECT (state->task), (gpointer) &state->task);
 
-	/* cancel */
-	if (state->cancellable != NULL) {
-		g_cancellable_cancel (state->cancellable);
-		g_object_unref (state->cancellable);
-	}
-
 	/* get result */
 	if (state->ret) {
 		g_simple_async_result_set_op_res_gpointer (state->res, g_object_ref ((GObject*) state->results), g_object_unref);
@@ -136,6 +130,8 @@ pk_task_generic_state_finish (PkTaskState *state, const GError *error)
 	g_ptr_array_remove (state->task->priv->array, state);
 
 	/* deallocate */
+	if (state->cancellable != NULL)
+		g_object_unref (state->cancellable);
 	if (state->results != NULL)
 		g_object_unref (state->results);
 	g_strfreev (state->package_ids);
commit f41bab86b8d2dac1431e2939b1e9df52ff6d669b
Author: Richard Hughes <richard at hughsie.com>
Date:   Fri Sep 4 12:33:29 2009 +0100

    glib2: Add pk_results_get_require_restart_worst()

diff --git a/lib/packagekit-glib2/pk-results.c b/lib/packagekit-glib2/pk-results.c
index cea84df..3d562b3 100644
--- a/lib/packagekit-glib2/pk-results.c
+++ b/lib/packagekit-glib2/pk-results.c
@@ -889,6 +889,40 @@ pk_results_get_require_restart_array (const PkResults *results)
 }
 
 /**
+ * pk_results_get_require_restart_worst:
+ * @results: a valid #PkResults instance
+ *
+ * This method returns the 'worst' restart of all the transactions.
+ * It is needed as multiple sub-transactions may emit require-restart with
+ * different values, and we always want to get the most invasive of all.
+ *
+ * For instance, if a transaction emits RequireRestart(system) and then
+ * RequireRestart(session) then pk_client_get_require_restart will return
+ * system as a session restart is implied with a system restart.
+ *
+ * Return value: a #PkRestartEnum value, e.g. PK_RESTART_ENUM_SYSTEM
+ **/
+PkRestartEnum
+pk_results_get_require_restart_worst (const PkResults *results)
+{
+	GPtrArray *array;
+	PkRestartEnum worst = 0;
+	guint i;
+	const PkResultItemRequireRestart *item;
+
+	g_return_val_if_fail (PK_IS_RESULTS (results), 0);
+
+	array = results->priv->require_restart_array;
+	for (i=0; i<array->len; i++) {
+		item = g_ptr_array_index (array, i);
+		if (item->restart > worst)
+			worst = item->restart;
+	}
+
+	return worst;
+}
+
+/**
  * pk_results_get_transaction_array:
  * @results: a valid #PkResults instance
  *
diff --git a/lib/packagekit-glib2/pk-results.h b/lib/packagekit-glib2/pk-results.h
index 949ab52..4f8da12 100644
--- a/lib/packagekit-glib2/pk-results.h
+++ b/lib/packagekit-glib2/pk-results.h
@@ -345,6 +345,7 @@ gboolean	 pk_results_add_message 		(PkResults		*results,
 PkExitEnum	 pk_results_get_exit_code		(const PkResults	*results);
 PkPackageSack	*pk_results_get_package_sack		(const PkResults	*results);
 const PkResultItemErrorCode *pk_results_get_error_code	(const PkResults	*results);
+PkRestartEnum	 pk_results_get_require_restart_worst	(const PkResults	*results);
 
 /* get array objects */
 GPtrArray	*pk_results_get_package_array		(const PkResults	*results);
commit 0e0326cdaa894903a38dd1926e040962c95ac414
Author: Richard Hughes <richard at hughsie.com>
Date:   Fri Sep 4 12:19:40 2009 +0100

    glib2: add pk_client_rollback_async() as it looks like Rollback is going to be used after all

diff --git a/lib/packagekit-glib2/pk-client.c b/lib/packagekit-glib2/pk-client.c
index 0363b6e..1fac943 100644
--- a/lib/packagekit-glib2/pk-client.c
+++ b/lib/packagekit-glib2/pk-client.c
@@ -96,6 +96,7 @@ typedef struct {
 	gchar				*repo_id;
 	gchar				*search;
 	gchar				*tid;
+	gchar				*transaction_id;
 	gchar				*value;
 	gpointer			 progress_user_data;
 	gpointer			 user_data;
@@ -346,6 +347,7 @@ pk_client_state_finish (PkClientState *state, GError *error)
 	g_free (state->search);
 	g_free (state->value);
 	g_free (state->tid);
+	g_free (state->transaction_id);
 	g_strfreev (state->files);
 	g_strfreev (state->package_ids);
 	g_object_unref (state->progress);
@@ -1016,6 +1018,11 @@ pk_client_set_locale_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkClientState
 						       (DBusGProxyCallNotify) pk_client_method_cb, state, NULL,
 						       G_TYPE_STRING, state->eula_id,
 						       G_TYPE_INVALID);
+	} 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);
 	} else if (state->role == PK_ROLE_ENUM_GET_REPO_LIST) {
 		filters_text = pk_filter_bitfield_to_text (state->filters);
 		state->call = dbus_g_proxy_begin_call (state->proxy, "GetRepoList",
@@ -2399,6 +2406,54 @@ pk_client_accept_eula_async (PkClient *client, const gchar *eula_id, GCancellabl
 }
 
 /**
+ * pk_client_rollback_async:
+ * @client: a valid #PkClient instance
+ * @transaction_id: the <literal>transaction_id</literal> we want to return to
+ * @cancellable: a #GCancellable or %NULL
+ * @progress_callback: the function to run when the progress changes
+ * @progress_user_data: data to pass to @progress_callback
+ * @callback_ready: the function to run on completion
+ * @user_data: the data to pass to @callback_ready
+ *
+ * We may want to agree to a EULA dialog if one is presented.
+ **/
+void
+pk_client_rollback_async (PkClient *client, const gchar *transaction_id, GCancellable *cancellable,
+			  PkProgressCallback progress_callback, gpointer progress_user_data,
+			  GAsyncReadyCallback callback_ready, gpointer user_data)
+{
+	GSimpleAsyncResult *res;
+	PkClientState *state;
+
+	g_return_if_fail (PK_IS_CLIENT (client));
+	g_return_if_fail (callback_ready != NULL);
+
+	res = g_simple_async_result_new (G_OBJECT (client), callback_ready, user_data, pk_client_accept_eula_async);
+
+	/* save state */
+	state = g_slice_new0 (PkClientState);
+	state->role = PK_ROLE_ENUM_ROLLBACK;
+	state->res = g_object_ref (res);
+	if (cancellable != NULL) {
+		state->cancellable = g_object_ref (cancellable);
+		state->cancellable_id = g_cancellable_connect (cancellable, G_CALLBACK (pk_client_cancellable_cancel_cb), state, NULL);
+	}
+	state->client = client;
+	state->transaction_id = g_strdup (transaction_id);
+	state->progress_callback = progress_callback;
+	state->progress_user_data = progress_user_data;
+	state->progress = pk_progress_new ();
+	g_object_set (state->progress,
+		      "role", state->role,
+		      NULL);
+	g_object_add_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
+
+	/* get tid */
+	pk_control_get_tid_async (client->priv->control, NULL, (GAsyncReadyCallback) pk_client_get_tid_cb, state);
+	g_object_unref (res);
+}
+
+/**
  * pk_client_get_repo_list_async:
  * @client: a valid #PkClient instance
  * @filters: a %PkBitfield such as %PK_FILTER_ENUM_DEVEL or %PK_FILTER_ENUM_NONE
diff --git a/lib/packagekit-glib2/pk-client.h b/lib/packagekit-glib2/pk-client.h
index bc81d9d..ef8a77d 100644
--- a/lib/packagekit-glib2/pk-client.h
+++ b/lib/packagekit-glib2/pk-client.h
@@ -324,6 +324,14 @@ void		 pk_client_accept_eula_async		(PkClient		*client,
 							 GAsyncReadyCallback	 callback_ready,
 							 gpointer		 user_data);
 
+void		 pk_client_rollback_async		(PkClient		*client,
+							 const gchar		*transaction_id,
+							 GCancellable		*cancellable,
+							 PkProgressCallback	 progress_callback,
+							 gpointer		 progress_user_data,
+							 GAsyncReadyCallback	 callback_ready,
+							 gpointer		 user_data);
+
 void		 pk_client_get_repo_list_async		(PkClient		*client,
 							 PkBitfield		 filters,
 							 GCancellable		*cancellable,
commit 16623a71b25edc4947e8185fe9ba1d13d28eadc8
Author: Richard Hughes <richard at hughsie.com>
Date:   Fri Sep 4 10:36:23 2009 +0100

    glib2: Add pk_control_sync_get_time_since_action()

diff --git a/client/pk-console-test.c b/client/pk-console-test.c
index 47ebadf..c3f27ee 100644
--- a/client/pk-console-test.c
+++ b/client/pk-console-test.c
@@ -1486,7 +1486,7 @@ main (int argc, char *argv[])
 		pk_client_get_repo_list_async (PK_CLIENT(task), filters, NULL,
 					       (PkProgressCallback) pk_console_progress_cb, NULL,
 					       (GAsyncReadyCallback) pk_console_finished_cb, NULL);
-#if 0
+
 	} else if (strcmp (mode, "get-time") == 0) {
 		PkRoleEnum role;
 		guint time_ms;
@@ -1503,15 +1503,16 @@ main (int argc, char *argv[])
 			retval = PK_EXIT_CODE_SYNTAX_INVALID;
 			goto out;
 		}
-		ret = pk_control_get_time_since_action (control, role, &time_ms, &error);
-		if (!ret) {
+		time_ms = pk_control_sync_get_time_since_action (control, role, &error);
+		if (time_ms == 0) {
 			/* TRANSLATORS: we keep a database updated with the time that an action was last executed */
-			error = g_error_new (1, 0, "%s", _("Failed to get the time since this action was last completed"));
+			error = g_error_new (1, 0, "%s: %s", _("Failed to get the time since this action was last completed"), error->message);
 			retval = EXIT_FAILURE;
 			goto out;
 		}
 		g_print ("time since %s is %is\n", value, time_ms);
-
+		nowait = TRUE;
+#if 0
 	} else if (strcmp (mode, "get-depends") == 0) {
 		if (value == NULL) {
 			/* TRANSLATORS: The user did not provide a package name */
diff --git a/lib/packagekit-glib2/pk-control-sync.c b/lib/packagekit-glib2/pk-control-sync.c
index 36b47e8..a877ec8 100644
--- a/lib/packagekit-glib2/pk-control-sync.c
+++ b/lib/packagekit-glib2/pk-control-sync.c
@@ -106,6 +106,7 @@ typedef struct {
 	GError		**error;
 	GMainLoop	*loop;
 	gboolean	 ret;
+	guint		 seconds;
 } PkControlSyncHelper;
 
 /**
@@ -158,6 +159,54 @@ pk_control_sync_get_properties (PkControlSync *control, GError **error)
 }
 
 /**
+ * pk_control_sync_time_since_action_cb:
+ **/
+static void
+pk_control_sync_time_since_action_cb (PkControlSync *control, GAsyncResult *res, PkControlSyncHelper *sync)
+{
+	/* get the result */
+	sync->seconds = pk_control_get_time_since_action_finish (PK_CONTROL(control), res, sync->error);
+	g_main_loop_quit (sync->loop);
+}
+
+/**
+ * pk_control_sync_get_time_since_action:
+ * @control: a valid #PkControlSync instance
+ * @error: A #GError or %NULL
+ *
+ * We may want to know how long it has been since we refreshed the cache or
+ * retrieved the update list.
+ *
+ * Return value: The number of seconds, or 0 for error
+ **/
+guint
+pk_control_sync_get_time_since_action (PkControlSync *control, PkRoleEnum role, GError **error)
+{
+	guint seconds;
+	PkControlSyncHelper *sync;
+
+	g_return_val_if_fail (PK_IS_CONTROL_SYNC (control), FALSE);
+	g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+
+	/* create temp object */
+	sync = g_new0 (PkControlSyncHelper, 1);
+	sync->loop = g_main_loop_new (NULL, FALSE);
+	sync->error = error;
+
+	/* run async method */
+	pk_control_get_time_since_action_async (PK_CONTROL(control), role, NULL, (GAsyncReadyCallback) pk_control_sync_time_since_action_cb, sync);
+	g_main_loop_run (sync->loop);
+
+	seconds = sync->seconds;
+
+	/* free temp object */
+	g_main_loop_unref (sync->loop);
+	g_free (sync);
+
+	return seconds;
+}
+
+/**
  * pk_control_sync_class_init:
  * @klass: The PkControlSyncClass
  **/
diff --git a/lib/packagekit-glib2/pk-control-sync.h b/lib/packagekit-glib2/pk-control-sync.h
index bbfaa48..342911d 100644
--- a/lib/packagekit-glib2/pk-control-sync.h
+++ b/lib/packagekit-glib2/pk-control-sync.h
@@ -66,6 +66,9 @@ GType		 pk_control_sync_get_type		(void);
 PkControlSync	*pk_control_sync_new			(void);
 void		 pk_control_sync_test			(gpointer		 user_data);
 
+guint		 pk_control_sync_get_time_since_action	(PkControlSync		*control,
+							 PkRoleEnum		 role,
+							 GError			**error);
 gchar		*pk_control_sync_get_daemon_state	(PkControlSync		*control,
 							 GError			**error);
 gboolean	 pk_control_sync_get_properties		(PkControlSync		*control,
commit 2540a7912d08f046cccd234cd6bc70204018fb7a
Author: runab <runab at fedoraproject.org>
Date:   Fri Sep 4 10:36:40 2009 +0000

    Sending translation for Bengali (India)

diff --git a/po/bn_IN.po b/po/bn_IN.po
index 62810da..2a47929 100644
--- a/po/bn_IN.po
+++ b/po/bn_IN.po
@@ -1,17 +1,17 @@
-# translation of packagekit.master.po to Bengali INDIA
+# translation of packagekit.master.bn_IN.po to Bengali INDIA
 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
 # This file is distributed under the same license as the PACKAGE package.
 #
-# Runa Bhattacharjee <runab at redhat.com>, 2008.
+# Runa Bhattacharjee <runab at redhat.com>, 2008, 2009.
 # Runa Bhattacharjee <runab at fedoraproject.org>, 2009.
 msgid ""
 msgstr ""
-"Project-Id-Version: packagekit.master\n"
+"Project-Id-Version: packagekit.master.bn_IN\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-08-24 11:06+0100\n"
-"PO-Revision-Date: 2009-05-27 12:33+0530\n"
-"Last-Translator: Runa Bhattacharjee <runab at fedoraproject.org>\n"
-"Language-Team: Bengali INDIA <fedora-trans-bn_in at redhat.com>\n"
+"POT-Creation-Date: 2009-09-02 02:37+0000\n"
+"PO-Revision-Date: 2009-09-04 16:05+0530\n"
+"Last-Translator: Runa Bhattacharjee <runab at redhat.com>\n"
+"Language-Team: Bengali INDIA <anubad at lists.ankur.org.in>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -33,12 +33,11 @@ msgstr "সিস্টেমের সময়"
 msgid "Succeeded"
 msgstr "সফল"
 
-#. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:239 ../client/pk-console.c:406
+#: ../client/pk-console.c:239
 msgid "True"
 msgstr "সত্য (true)"
 
-#: ../client/pk-console.c:239 ../client/pk-console.c:406
+#: ../client/pk-console.c:239
 msgid "False"
 msgstr "অসত্য (false)"
 
@@ -86,452 +85,495 @@ msgstr "প্রভাবিত প্যাকেজ:"
 msgid "Affected packages: None"
 msgstr "প্রভাবিত প্যাকেজ: একটিও নয়"
 
+#. TRANSLATORS: When processing, we might have to remove other dependencies
+#: ../client/pk-console.c:334
+msgid "The following packages have to be removed:"
+msgstr "নিম্নলিখিত প্যাকেজগুলি অপসারণ করা আবশ্যক:"
+
+#. TRANSLATORS: When processing, we might have to install other dependencies
+#: ../client/pk-console.c:337
+msgid "The following packages have to be installed:"
+msgstr "নিম্নলিখিত প্যাকেজগুলি ইনস্টল করা আবশ্যক:"
+
+#. TRANSLATORS: When processing, we might have to update other dependencies
+#: ../client/pk-console.c:340
+msgid "The following packages have to be updated:"
+msgstr "নিম্নলিখিত প্যাকেজগুলি আপডেট করা আবশ্যক:"
+
+#. TRANSLATORS: When processing, we might have to reinstall other dependencies
+#: ../client/pk-console.c:343
+msgid "The following packages have to be reinstalled:"
+msgstr "নিম্নলিখিত প্যাকেজগুলি পুনরায় ইনস্টল করা আবশ্যক:"
+
+#. TRANSLATORS: When processing, we might have to downgrade other dependencies
+#: ../client/pk-console.c:346
+msgid "The following packages have to be downgraded:"
+msgstr "নিম্নলিখিত প্যাকেজগুলি ডাউনগ্রেড করা আবশ্যক:"
+
 #. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:298
+#: ../client/pk-console.c:360
 msgid "Distribution"
 msgstr "ডিস্ট্রিবিউশন"
 
 #. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:300
+#: ../client/pk-console.c:362
 msgid "Type"
 msgstr "ধরন"
 
 #. TRANSLATORS: this is any summary text describing the upgrade
 #. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:302 ../client/pk-console.c:325
+#: ../client/pk-console.c:364 ../client/pk-console.c:387
 msgid "Summary"
 msgstr "সার-সংক্ষেপ"
 
 #. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:314
+#: ../client/pk-console.c:376
 msgid "Category"
 msgstr "শ্রেণী"
 
 #. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:316
+#: ../client/pk-console.c:378
 msgid "ID"
 msgstr "ID"
 
 #. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:319
+#: ../client/pk-console.c:381
 msgid "Parent"
 msgstr "ঊর্ধ্বতন"
 
 #. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:322
+#: ../client/pk-console.c:384
 msgid "Name"
 msgstr "নাম"
 
 #. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:328
+#: ../client/pk-console.c:390
 msgid "Icon"
 msgstr "আইকন"
 
 #. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:343
+#: ../client/pk-console.c:405
 msgid "Details about the update:"
 msgstr "আপডেট সংক্রান্ত বিবরণ:"
 
 #. TRANSLATORS: details about the update, package name and version
 #. TRANSLATORS: title, the names of the packages that the method is processing
-#: ../client/pk-console.c:345 ../src/pk-polkit-action-lookup.c:352
-#, fuzzy
+#: ../client/pk-console.c:407 ../src/pk-polkit-action-lookup.c:352
 msgid "Package"
 msgid_plural "Packages"
 msgstr[0] "প্যাকেজ"
 msgstr[1] "প্যাকেজ"
 
 #. TRANSLATORS: details about the update, any packages that this update updates
-#: ../client/pk-console.c:348
+#: ../client/pk-console.c:410
 msgid "Updates"
 msgstr "আপডেট"
 
 #. TRANSLATORS: details about the update, any packages that this update obsoletes
-#: ../client/pk-console.c:352
+#: ../client/pk-console.c:414
 msgid "Obsoletes"
 msgstr "অবচিত"
 
 #. TRANSLATORS: details about the update, the vendor URLs
-#: ../client/pk-console.c:356
+#: ../client/pk-console.c:418
 msgid "Vendor"
 msgstr "বিক্রেতা"
 
 #. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:360
+#: ../client/pk-console.c:422
 msgid "Bugzilla"
 msgstr "Bugzilla"
 
 #. TRANSLATORS: details about the update, the CVE URLs
-#: ../client/pk-console.c:364
+#: ../client/pk-console.c:426
 msgid "CVE"
 msgstr "CVE"
 
 #. TRANSLATORS: details about the update, if the package requires a restart
-#: ../client/pk-console.c:368
+#: ../client/pk-console.c:430
 msgid "Restart"
 msgstr "পুনরারম্ভ"
 
 #. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:372
+#: ../client/pk-console.c:434
 msgid "Update text"
 msgstr "আপডেট সংক্রান্ত টেক্সট"
 
 #. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:376
+#: ../client/pk-console.c:438
 msgid "Changes"
 msgstr "পরিবর্তন"
 
 #. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:380
+#: ../client/pk-console.c:442
 msgid "State"
 msgstr "অবস্থা"
 
 #. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:385
+#: ../client/pk-console.c:447
 msgid "Issued"
 msgstr "প্রকাশনার সময়ক্ষণ"
 
 #. TRANSLATORS: details about the update, date the update was updated
-#: ../client/pk-console.c:390
+#: ../client/pk-console.c:452
 msgid "Updated"
 msgstr "আপডেটের সময়ক্ষণ"
 
-#: ../client/pk-console.c:477 ../client/pk-console.c:479
+#. TRANSLATORS: if the repo is enabled
+#: ../client/pk-console.c:472
+msgid "Enabled"
+msgstr "সক্রিয়"
+
+#. TRANSLATORS: if the repo is disabled
+#: ../client/pk-console.c:475
+msgid "Disabled"
+msgstr "নিষ্ক্রিয়"
+
+#: ../client/pk-console.c:552 ../client/pk-console.c:554
 msgid "Percentage"
 msgstr "শতাংশ"
 
-#: ../client/pk-console.c:479
+#: ../client/pk-console.c:554
 msgid "Unknown"
 msgstr "অজানা"
 
 #. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:521
+#: ../client/pk-console.c:596
 msgid "System restart required by:"
 msgstr "চিহ্নিত প্যাকেজের ক্ষেত্রে সিস্টেম পুনরারম্ভ করা আবশ্যক:"
 
 #. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:524
+#: ../client/pk-console.c:599
 msgid "Session restart required:"
 msgstr "সেশান পুনরারম্ভ করা আবশ্যক:"
 
 #. TRANSLATORS: a package requires the system to be restarted due to a security update
-#: ../client/pk-console.c:527
-#, fuzzy
+#: ../client/pk-console.c:602
 msgid "System restart (security) required by:"
-msgstr "চিহ্নিত প্যাকেজের ক্ষেত্রে সিস্টেম পুনরারম্ভ করা আবশ্যক:"
+msgstr "চিহ্নিত প্যাকেজের ক্ষেত্রে সিস্টেম পুনরারম্ভ (নিরাপত্তা) করা আবশ্যক:"
 
 #. TRANSLATORS: a package requires the session to be restarted due to a security update
-#: ../client/pk-console.c:530
-#, fuzzy
+#: ../client/pk-console.c:605
 msgid "Session restart (security) required:"
-msgstr "সেশান পুনরারম্ভ করা আবশ্যক:"
+msgstr "সেশান পুনরারম্ভ (নিরাপত্তা) করা আবশ্যক:"
 
 #. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:533
+#: ../client/pk-console.c:608
 msgid "Application restart required by:"
 msgstr "চিহ্নিত প্যাকেজের ক্ষেত্রে অ্যাপ্লিকেশন পুনরারম্ভ করা আবশ্যক:"
 
 #. TRANSLATORS: a package needs to restart their system
-#: ../client/pk-console.c:588
+#: ../client/pk-console.c:663
 msgid "Please restart the computer to complete the update."
 msgstr "আপডেট সম্পূর্ণ করার জন্য অনুগ্রহ করে কম্পিউটার পুনরায় আরম্ভ করুন।"
 
 #. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:591
+#: ../client/pk-console.c:666
 msgid "Please logout and login to complete the update."
 msgstr "আপডেট সম্পন্ন করার জন্য অনুগ্রহ করে লগ-আউট করে পুনরায় লগ-ইন করুন।"
 
 #. TRANSLATORS: a package needs to restart the application
-#: ../client/pk-console.c:594
+#: ../client/pk-console.c:669
 msgid "Please restart the application as it is being used."
 msgstr "অ্যাপ্লিকেশনটি বর্তমানে চলছে, অনুগ্রহ করে এটি পুনরারম্ভ করুন।"
 
 #. TRANSLATORS: a package needs to restart their system (due to security)
-#: ../client/pk-console.c:597
-#, fuzzy
+#: ../client/pk-console.c:672
 msgid ""
 "Please restart the computer to complete the update as important security "
 "updates have been installed."
-msgstr "আপডেট সম্পূর্ণ করার জন্য অনুগ্রহ করে কম্পিউটার পুনরায় আরম্ভ করুন।"
+msgstr "নিরাপত্তা বিষয়ক গুরুত্বপূর্ণ আপডেট ইনস্টল করা হয়েছে। আপডেট সম্পূর্ণ করার জন্য অনুগ্রহ করে কম্পিউটার পুনরায় আরম্ভ করুন।"
 
 #. TRANSLATORS: a package needs to restart the session (due to security)
-#: ../client/pk-console.c:600
-#, fuzzy
+#: ../client/pk-console.c:675
 msgid ""
 "Please logout and login to complete the update as important security updates "
 "have been installed."
-msgstr "আপডেট সম্পন্ন করার জন্য অনুগ্রহ করে লগ-আউট করে পুনরায় লগ-ইন করুন।"
+msgstr "নিরাপত্তা বিষয়ক গুরুত্বপূর্ণ আপডেট ইনস্টল করা হয়েছে। ।আপডেট সম্পন্ন করার জন্য অনুগ্রহ করে লগ-আউট করে পুনরায় লগ-ইন করুন।"
 
 #. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:727
+#: ../client/pk-console.c:807
 #, c-format
 msgid "The package %s is already installed"
 msgstr "%s প্যাকেজটি বর্তমানে ইনস্টল করা রয়েছে"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:735
+#: ../client/pk-console.c:815
 #, c-format
 msgid "The package %s could not be installed: %s"
 msgstr "%s প্যাকেজ ইনস্টল করা যায়নি: %s"
 
 #. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
-#: ../client/pk-console.c:760 ../client/pk-console.c:783
-#: ../client/pk-console.c:879 ../client/pk-console.c:996
-#: ../client/pk-tools-common.c:62 ../client/pk-tools-common.c:81
-#: ../client/pk-tools-common.c:89
+#: ../client/pk-console.c:841 ../client/pk-console.c:889
+#: ../client/pk-console.c:913 ../client/pk-console.c:961
+#: ../client/pk-console.c:1057 ../client/pk-console.c:1170
+#: ../client/pk-console.c:1231 ../client/pk-tools-common.c:62
+#: ../client/pk-tools-common.c:81 ../client/pk-tools-common.c:89
 #, c-format
 msgid "Internal error: %s"
 msgstr "অভ্যন্তরীণ ত্রুটি: %s"
 
+#. TRANSLATORS: We are checking if it's okay to remove a list of packages
+#: ../client/pk-console.c:873 ../client/pk-console.c:945
+#: ../client/pk-console.c:1263
+msgid "Proceed with changes?"
+msgstr "পরিবর্তনগুলি প্রয়োগ করা হবে কি?"
+
+#. TRANSLATORS: There was an error removing the packages. The detailed error follows
+#: ../client/pk-console.c:878 ../client/pk-console.c:950
+msgid "The package install was canceled!"
+msgstr "প্যাকেজ ইনস্টলেশনের কর্ম বাতিল করা হয়েছে!"
+
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:768 ../client/pk-console.c:1392
+#: ../client/pk-console.c:897 ../client/pk-console.c:1631
 #, c-format
 msgid "This tool could not install the packages: %s"
 msgstr "এই সামগ্রী দ্বারা প্যাকেজগুলি ইনস্টল করা যায়নি: %s"
 
 #. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:791
+#: ../client/pk-console.c:969
 #, c-format
 msgid "This tool could not install the files: %s"
 msgstr "এই সামগ্রী দ্বারা ফাইল ইনস্টল করা যায়নি: %s"
 
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:847
+#: ../client/pk-console.c:1025
 #, c-format
 msgid "This tool could not remove %s: %s"
 msgstr "এই সামগ্রী দ্বারা %s মুছে ফেলা যায়নি: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:870 ../client/pk-console.c:908
-#: ../client/pk-console.c:941
+#: ../client/pk-console.c:1048 ../client/pk-console.c:1086
+#: ../client/pk-console.c:1115
 #, c-format
 msgid "This tool could not remove the packages: %s"
 msgstr "এই সামগ্রী দ্বারা প্যাকেজ মুছে ফেলা যায়নি: %s"
 
-#. TRANSLATORS: When removing, we might have to remove other dependencies
-#: ../client/pk-console.c:920
-msgid "The following packages have to be removed:"
-msgstr "নিম্নলিখিত প্যাকেজগুলি অপসারণ করা আবশ্যক:"
-
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:927
-msgid "Proceed removing additional packages?"
+#: ../client/pk-console.c:1101
+msgid "Proceed with additional packages?"
 msgstr "অতিরিক্ত প্যাকেজ অপসারণ করা হবে কি?"
 
-#. TRANSLATORS: We did not remove any packages
-#: ../client/pk-console.c:932
+#. TRANSLATORS: There was an error removing the packages. The detailed error follows
+#: ../client/pk-console.c:1106
 msgid "The package removal was canceled!"
 msgstr "প্যাকেজ অপসারণের কর্ম বাতিল করা হয়েছে!"
 
 #. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:973
+#: ../client/pk-console.c:1147
 #, c-format
 msgid "This tool could not download the package %s as it could not be found"
 msgstr "%s প্যাকেজ পাওয়া না যাওয়ার ফলে এই সামগ্রী দ্বারা তা ডাউনলোড করা যায়নি"
 
 #. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:1004
+#: ../client/pk-console.c:1178
 #, c-format
 msgid "This tool could not download the packages: %s"
 msgstr "এই সামগ্রী দ্বারা প্যাকেজ ডাউনলোড করা যায়নি: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1031 ../client/pk-console.c:1040
+#: ../client/pk-console.c:1210 ../client/pk-console.c:1222
+#: ../client/pk-console.c:1277
 #, c-format
 msgid "This tool could not update %s: %s"
 msgstr "এই সামগ্রী দ্বারা %s আপডেট করা যায়নি: %s"
 
+#. TRANSLATORS: There was an error removing the packages. The detailed error follows
+#: ../client/pk-console.c:1268
+msgid "The package update was canceled!"
+msgstr "প্যাকেজ আপডেটের কর্ম বাতিল করা হয়েছে!"
+
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1062 ../client/pk-console.c:1070
+#: ../client/pk-console.c:1301 ../client/pk-console.c:1309
 #, c-format
 msgid "This tool could not get the requirements for %s: %s"
 msgstr "এই সামগ্রী দ্বারা %s-র ক্ষেত্রে আবশ্যক মান পাওয়া যায়নি: %s"
 
 #. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:1092 ../client/pk-console.c:1100
+#: ../client/pk-console.c:1331 ../client/pk-console.c:1339
 #, c-format
 msgid "This tool could not get the dependencies for %s: %s"
 msgstr "এই সামগ্রী দ্বারা %s-র ক্ষেত্রে প্রয়োজনীয় নির্ভরতা পাওয়া যায়নি: %s"
 
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:1122 ../client/pk-console.c:1130
+#: ../client/pk-console.c:1361 ../client/pk-console.c:1369
 #, c-format
 msgid "This tool could not get package details for %s: %s"
 msgstr "এই সামগ্রী দ্বারা %s প্যাকেজ সংক্রান্ত বিবরণ পাওয়া যায়নি: %s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1152
+#: ../client/pk-console.c:1391
 #, c-format
 msgid "This tool could not find the files for %s: %s"
 msgstr "এই সামগ্রী দ্বারা %s প্যাকেজের ফাইল পাওয়া যায়নি: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1160
+#: ../client/pk-console.c:1399
 #, c-format
 msgid "This tool could not get the file list for %s: %s"
 msgstr "এই সামগ্রী দ্বারা %s-র ফাইলের তালিকা পাওয়া যায়নি: %s"
 
 #. TRANSLATORS: There was an error getting the list of packages. The filename follows
-#: ../client/pk-console.c:1182
+#: ../client/pk-console.c:1421
 #, c-format
 msgid "File already exists: %s"
 msgstr "উল্লিখিত ফাইল বর্তমানে উপস্থিত রয়েছে: %s"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1187 ../client/pk-console.c:1243
-#: ../client/pk-console.c:1318
+#: ../client/pk-console.c:1426 ../client/pk-console.c:1482
+#: ../client/pk-console.c:1557
 msgid "Getting package list"
 msgstr "প্যাকেজের তালিকা প্রাপ্ত করা হচ্ছে"
 
 #. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1193 ../client/pk-console.c:1249
-#: ../client/pk-console.c:1324
+#: ../client/pk-console.c:1432 ../client/pk-console.c:1488
+#: ../client/pk-console.c:1563
 #, c-format
 msgid "This tool could not get package list: %s"
 msgstr "এই সামগ্রী দ্বারা প্যাকেজের তালিকা তৈরি করা যায়নি: %s"
 
 #. TRANSLATORS: There was an error saving the list
-#: ../client/pk-console.c:1204
+#: ../client/pk-console.c:1443
 #, c-format
 msgid "Failed to save to disk"
 msgstr "ডিস্কে সংরক্ষণ করতে ব্যর্থ"
 
 #. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1238 ../client/pk-console.c:1313
+#: ../client/pk-console.c:1477 ../client/pk-console.c:1552
 #, c-format
 msgid "File does not exist: %s"
 msgstr "ফাইল উপস্থিত নেই: %s"
 
 #. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1270
+#: ../client/pk-console.c:1509
 msgid "Packages to add"
 msgstr "যোগ করার উদ্দেশ্যে চিহ্নিত প্যাকেজ"
 
 #. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1278
+#: ../client/pk-console.c:1517
 msgid "Packages to remove"
 msgstr "অপসারণের উদ্দেশ্যে চিহ্নিত প্যাকেজ"
 
 #. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1346
+#: ../client/pk-console.c:1585
 #, c-format
 msgid "No new packages need to be installed"
 msgstr "কোনো নতুন প্যাকেজ ইনস্টল করা যায়নি"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1352
+#: ../client/pk-console.c:1591
 msgid "To install"
 msgstr "ইনস্টলেশনের জন্য চিহ্নিত"
 
 #. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1364
+#: ../client/pk-console.c:1603
 msgid "Searching for package: "
 msgstr "প্যাকেজ অনুসন্ধান করা হচ্ছে: "
 
 #. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1368
+#: ../client/pk-console.c:1607
 msgid "not found."
 msgstr "পাওয়া যায়নি।"
 
 #. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1379
+#: ../client/pk-console.c:1618
 #, c-format
 msgid "No packages can be found to install"
 msgstr "ইনস্টলেশনের জন্য কোনো প্যাকেজ পাওয়া যায়নি"
 
 #. TRANSLATORS: installing new packages from package list
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
-#: ../client/pk-console.c:1385
+#: ../client/pk-console.c:1624
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:886
 #, c-format
 msgid "Installing packages"
 msgstr "প্যাকেজ ইনস্টল করা হচ্ছে"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1421
+#: ../client/pk-console.c:1660
 #, c-format
 msgid "This tool could not find the update details for %s: %s"
 msgstr "এই সামগ্রী দ্বারা %s প্যাকেজের আপডেট সংক্রান্ত বিবরণ পাওয়া যায়নি: %s"
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1429
+#: ../client/pk-console.c:1668
 #, c-format
 msgid "This tool could not get the update details for %s: %s"
 msgstr "এই সামগ্রী দ্বারা %s প্যাকেজের আপডেট সংক্রান্ত বিবরণ প্রাপ্ত হয়নি: %s"
 
 #. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
-#: ../client/pk-console.c:1460
+#: ../client/pk-console.c:1699
 msgid "Error:"
 msgstr "ত্রুটি:"
 
 #. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1474
+#: ../client/pk-console.c:1713
 msgid "Package description"
 msgstr "প্যাকেজের বিবরণ"
 
 #. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
-#: ../client/pk-console.c:1490
+#: ../client/pk-console.c:1729
 msgid "Message:"
 msgstr "বার্তা:"
 
 #. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1518
+#: ../client/pk-console.c:1757
 msgid "Package files"
 msgstr "প্যাকেজের ফাইল"
 
 #. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1526
+#: ../client/pk-console.c:1765
 msgid "No files"
 msgstr "কোনো ফাইল উপস্থিত নেই"
 
 #. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1549
+#: ../client/pk-console.c:1788
 msgid "Repository signature required"
 msgstr "সংগ্রহস্থলের স্বাক্ষর আবশ্যক"
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1559
+#: ../client/pk-console.c:1798
 msgid "Do you accept this signature?"
 msgstr "এই স্বাক্ষর গ্রহণ করা হবে কি?"
 
 #. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1563
+#: ../client/pk-console.c:1802
 msgid "The signature was not accepted."
 msgstr "স্বাক্ষর গ্রহণ করা হয়নি।"
 
 #. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1597
+#: ../client/pk-console.c:1836
 msgid "End user license agreement required"
 msgstr "ব্যবহারকারীদের লাইসেন্স সংক্রান্ত চুক্তিপত্র আবশ্যক"
 
 #. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1604
+#: ../client/pk-console.c:1843
 msgid "Do you agree to this license?"
 msgstr "লাইসেন্স অনুযায়ী আপনি সম্মত কি?"
 
 #. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1608
+#: ../client/pk-console.c:1847
 msgid "The license was refused."
 msgstr "লাইসেন্স প্রত্যাখ্যান করা হয়েছে।"
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1637
+#: ../client/pk-console.c:1876
 msgid "The daemon crashed mid-transaction!"
 msgstr "সম্প্রচার চলাকালে ডেমন বিপর্যস্ত হয়েছে!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1690
+#: ../client/pk-console.c:1929
 msgid "PackageKit Console Interface"
 msgstr "PackageKit কনসোল ইন্টারফেস"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1692
+#: ../client/pk-console.c:1931
 msgid "Subcommands:"
 msgstr "সাব-কমান্ড:"
 
 #. TRANSLATORS: command line argument, if we should show debugging information
 #. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:1785 ../client/pk-generate-pack.c:185
+#: ../client/pk-console.c:2024 ../client/pk-generate-pack.c:185
 #: ../client/pk-monitor.c:128
 #: ../contrib/command-not-found/pk-command-not-found.c:616
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:550
@@ -540,148 +582,147 @@ msgid "Show extra debugging information"
 msgstr "ডিবাগ সংক্রান্ত অতিরিক্ত তথ্য প্রদর্শন করা হবে"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1788 ../client/pk-monitor.c:130
+#: ../client/pk-console.c:2027 ../client/pk-monitor.c:130
 msgid "Show the program version and exit"
 msgstr "প্রোগ্রামের সংস্করণ প্রদর্শন করে প্রস্থান করা হবে"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1791
+#: ../client/pk-console.c:2030
 msgid "Set the filter, e.g. installed"
 msgstr "ফিল্টার নির্ধারণ করুন, উদাহরণ, installed"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1794
+#: ../client/pk-console.c:2033
 msgid "Exit without waiting for actions to complete"
 msgstr "কর্ম সমাপ্তির অপেক্ষা না করে প্রস্থান করা হবে"
 
 #. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:1821
+#: ../client/pk-console.c:2060
 msgid "This tool could not connect to system DBUS."
 msgstr "এই সামগ্রী দ্বারা সিস্টেম DBUS-র সাথে সংযোগ স্থাপন করতে ব্যর্থ।"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1911
+#: ../client/pk-console.c:2150
 msgid "The filter specified was invalid"
 msgstr "নির্ধারিত ফিল্টার বৈধ নয়"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1930
+#: ../client/pk-console.c:2169
 msgid "A search type is required, e.g. name"
 msgstr "অনুসন্ধানের ধরন আবশ্যক, উদাহরণ নাম (name)"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1937 ../client/pk-console.c:1946
-#: ../client/pk-console.c:1955 ../client/pk-console.c:1964
+#: ../client/pk-console.c:2176 ../client/pk-console.c:2185
+#: ../client/pk-console.c:2194 ../client/pk-console.c:2203
 msgid "A search term is required"
 msgstr "অনুসন্ধানের উদ্দেশ্যে কিছু তথ্য লেখা আবশ্যক"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1971
+#: ../client/pk-console.c:2210
 msgid "Invalid search type"
 msgstr "অনুসন্ধানের ধরন বৈধ নয়"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1977
+#: ../client/pk-console.c:2216
 msgid "A package name or filename to install is required"
 msgstr "ইনস্টলেশনের জন্য প্যাকেজের নাম অথবা ফাইলের নাম উল্লেখ করা আবশ্যক"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1986
+#: ../client/pk-console.c:2225
 msgid "A type, key_id and package_id are required"
 msgstr "ধরন, key_id ও package_id উল্লেখ করা আবশ্যক"
 
 #. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:1995
+#: ../client/pk-console.c:2234
 msgid "A package name to remove is required"
 msgstr "অপসারণের জন্য প্যাকেজের নাম উল্লেখ করা আবশ্যক"
 
 #. TRANSLATORS: the user did not specify anything about what to download or where
-#: ../client/pk-console.c:2003
-#, fuzzy
+#: ../client/pk-console.c:2242
 msgid "A destination directory and the package names to download are required"
-msgstr "উদ্দিষ্ট ডিরেক্টরি ও ডাউনলোড করার উদ্দেশ্যে প্যাকেজ উল্লেখ করা আবশ্যক"
+msgstr "উদ্দিষ্ট ডিরেক্টরি ও ডাউনলোড করার উদ্দেশ্যে প্যাকেজের নাম উল্লেখ করা আবশ্যক"
 
 #. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:2010
+#: ../client/pk-console.c:2249
 msgid "Directory not found"
 msgstr "ডিরেক্টরি পাওয়া যায়নি"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2018
+#: ../client/pk-console.c:2257
 msgid "A licence identifier (eula-id) is required"
 msgstr "লাইসেন্স পরিচয়কারী (eula-id) উল্লেখ করা আবশ্যক"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2028
+#: ../client/pk-console.c:2267
 msgid "A transaction identifier (tid) is required"
 msgstr "ট্রানসাকশন পরিচয়কারী (tid) উল্লেখ করা আবশ্যক"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:2045
+#: ../client/pk-console.c:2284
 msgid "A package name to resolve is required"
 msgstr "মীমাংসা করার উদ্দেশ্যে প্যাকেজের নাম উল্লেখ করা আবশ্যক"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:2054 ../client/pk-console.c:2063
+#: ../client/pk-console.c:2293 ../client/pk-console.c:2302
 msgid "A repository name is required"
 msgstr "সংগ্রহস্থলের নাম উল্লেখ আবশ্যক"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2072
+#: ../client/pk-console.c:2311
 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:2086
+#: ../client/pk-console.c:2325
 msgid "An action, e.g. 'update-system' is required"
 msgstr "কর্ম নির্ধারণ করা আবশ্যক, উদাহরণ 'update-system'"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:2093
+#: ../client/pk-console.c:2332
 msgid "A correct role is required"
 msgstr "সঠিক ভূমিকা উল্লেখ করা আবশ্যক"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2100
+#: ../client/pk-console.c:2339
 msgid "Failed to get the time since this action was last completed"
 msgstr "চিহ্নিত কর্ম সর্বশেষ সমাপ্তির সময়ের পরে অতিবাহিত সময় প্রাপ্ত করা যায়নি"
 
 #. TRANSLATORS: The user did not provide a package name
 #. TRANSLATORS: This is when the user fails to supply the package name
-#: ../client/pk-console.c:2110 ../client/pk-console.c:2122
-#: ../client/pk-console.c:2131 ../client/pk-console.c:2149
-#: ../client/pk-console.c:2158 ../client/pk-generate-pack.c:241
+#: ../client/pk-console.c:2349 ../client/pk-console.c:2361
+#: ../client/pk-console.c:2370 ../client/pk-console.c:2388
+#: ../client/pk-console.c:2397 ../client/pk-generate-pack.c:241
 msgid "A package name is required"
 msgstr "প্যাকেজের নাম উল্লেখ করা আবশ্যক"
 
 #. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:2140
+#: ../client/pk-console.c:2379
 msgid "A package provide string is required"
 msgstr "প্যাকেজ দ্বারা উপলব্ধ (provides) সামগ্রী সংক্রান্ত তথ্য উল্লেখ করা আবশ্যক"
 
 #. TRANSLATORS: The user didn't specify a filename to create as a list
-#: ../client/pk-console.c:2167
+#: ../client/pk-console.c:2406
 msgid "A list file name to create is required"
 msgstr "তালিকা রূপে নির্মাণের জন্য ফাইলের নাম উল্লেখ করা আবশ্যক"
 
 #. TRANSLATORS: The user didn't specify a filename to open as a list
-#: ../client/pk-console.c:2177 ../client/pk-console.c:2187
+#: ../client/pk-console.c:2416 ../client/pk-console.c:2426
 msgid "A list file to open is required"
 msgstr "তালিকা রূপে প্রদর্শনের জন্য ফাইলের নাম উল্লেখ করা আবশ্যক"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2241
+#: ../client/pk-console.c:2480
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "'%s' বিকল্পটি সমর্থিত নয়"
 
 #. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2254
+#: ../client/pk-console.c:2493
 msgid "Incorrect privileges for this operation"
 msgstr "এই কর্মের জন্য প্রয়োজনীয় অনুমতি আপনার জন্য উপলব্ধ নয়"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2257
+#: ../client/pk-console.c:2496
 msgid "Command failed"
 msgstr "কমান্ড বিফল"
 
@@ -707,10 +748,8 @@ msgstr "উপেক্ষা করার উদ্দেশ্যে নির
 
 #. TRANSLATORS: the output location
 #: ../client/pk-generate-pack.c:191
-msgid ""
-"The output file or directory (the current directory is used if ommitted)"
-msgstr ""
-"আউটপুট ফাইল অথবা ডিরেক্টরি (মান লেখা না হলে বর্তমান ডিরেক্টরি প্রয়োগ করা হবে)"
+msgid "The output file or directory (the current directory is used if ommitted)"
+msgstr "আউটপুট ফাইল অথবা ডিরেক্টরি (মান লেখা না হলে বর্তমান ডিরেক্টরি প্রয়োগ করা হবে)"
 
 #. TRANSLATORS: put a list of packages in the pack
 #: ../client/pk-generate-pack.c:194
@@ -755,14 +794,12 @@ msgstr ""
 #. TRANSLATORS: the user specified an absolute path, but didn't get the extension correct
 #: ../client/pk-generate-pack.c:291
 msgid "If specifying a file, the service pack name must end with"
-msgstr ""
-"ফাইল নির্ধারণ করা হলে, সার্ভিস প্যাকের নামের শেষ চিহ্নিত মান উপস্থিত থাকা আবশ্যক"
+msgstr "ফাইল নির্ধারণ করা হলে, সার্ভিস প্যাকের নামের শেষ চিহ্নিত মান উপস্থিত থাকা আবশ্যক"
 
 #. TRANSLATORS: This is when file already exists
 #: ../client/pk-generate-pack.c:307
 msgid "A pack with the same name already exists, do you want to overwrite it?"
-msgstr ""
-"এই নামের একটি প্যাক বর্তমানে উপস্থিত রয়েছে, আপনি কি এটি নতুন করে লিখতে ইচ্ছুক?"
+msgstr "এই নামের একটি প্যাক বর্তমানে উপস্থিত রয়েছে, আপনি কি এটি নতুন করে লিখতে ইচ্ছুক?"
 
 #. TRANSLATORS: This is when the pack was not overwritten
 #: ../client/pk-generate-pack.c:310
@@ -814,7 +851,7 @@ msgstr "PackageKit Monitor"
 
 #: ../client/pk-monitor.c:183
 msgid "Cannot show the list of transactions"
-msgstr ""
+msgstr "ট্রাসাকশনের তালিকা প্রদর্শন করতে ব্যর্থ"
 
 #. TRANSLATORS: The package was not found in any software sources
 #: ../client/pk-tools-common.c:118
@@ -894,24 +931,22 @@ msgstr "ইনস্টল করা হচ্ছে..."
 #. TRANSLATORS: downloading repo data so we can search
 #: ../contrib/command-not-found/pk-command-not-found.c:349
 msgid "Downloading details about the software sources."
-msgstr ""
+msgstr "সফ্টওয়্যারের উৎসস্থল সম্পর্কে বিরবণ ডাউনলোড করা হচ্ছে।"
 
 #. TRANSLATORS: downloading file lists so we can search
 #: ../contrib/command-not-found/pk-command-not-found.c:353
 msgid "Downloading filelists (this may take some time to complete)."
-msgstr ""
+msgstr "ফাইলের তালিকা ডাউনলোড করা হচ্ছে (এই কাজে কিছু সময় ব্যয় হওয়ার সম্ভাবনা রয়েছে)।"
 
 #. TRANSLATORS: waiting for native lock
 #: ../contrib/command-not-found/pk-command-not-found.c:357
-#, fuzzy
 msgid "Waiting for package manager lock."
-msgstr "প্যাকেজের নাম অনুসন্ধান করা হচ্ছে।"
+msgstr "প্যাকেজ পরিচালনব্যবস্থার লক প্রাপ্ত করার অপেক্ষা চলছে।"
 
 #. TRANSLATORS: loading package cache so we can search
 #: ../contrib/command-not-found/pk-command-not-found.c:361
-#, fuzzy
 msgid "Loading list of packages."
-msgstr "প্যাকেজ ডাউনলোড করা হচ্ছে"
+msgstr "প্যাকেজের তালিকা লোড করা হচ্ছ।"
 
 #. TRANSLATORS: we failed to find the package, this shouldn't happen
 #: ../contrib/command-not-found/pk-command-not-found.c:420
@@ -986,49 +1021,46 @@ msgstr "অনুগ্রহ করে ইনস্টল করার জনà§
 
 #. TRANSLATORS: we are starting to install the packages
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:187
-#, fuzzy
 msgid "Starting install"
-msgstr "ইনস্টলেশনের জন্য চিহ্নিত"
+msgstr "ইনস্টলেশন আরম্ভ করা হচ্ছে"
 
 #. TRANSLATORS: we couldn't find the package name, non-fatal
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:397
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to find the package %s, or already installed: %s"
-msgstr "%s প্যাকেজটি বর্তমানে ইনস্টল করা রয়েছে"
+msgstr "%s প্যাকেজটি পাওয়া যায়নি, অথবা পূর্বেই ইনস্টল করা হয়েছে: %s"
 
 #. command line argument, simulate what would be done, but don't actually do it
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:553
-msgid ""
-"Don't actually install any packages, only simulate what would be installed"
-msgstr ""
+msgid "Don't actually install any packages, only simulate what would be installed"
+msgstr "কোনো প্যাকেজ ইনস্টল করা হবে না, শুধুমাত্র নির্ধারিত ইনস্টলেশনের অনুকরণ করা হবে"
 
 #. command line argument, do we skip packages that depend on the ones specified
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:556
 msgid "Do not install dependencies of the core packages"
-msgstr ""
+msgstr "মূল প্যাকেজের নির্ভরতার প্যাকেজগুলি ইনস্টল করা হবে না"
 
 #. command line argument, do we operate quietly
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:559
 msgid "Do not display information or progress"
-msgstr ""
+msgstr "তথ্য অথবা প্রগতি প্রদর্শন করা হবে না"
 
 #. TRANSLATORS: tool that gets called when the command is not found
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:577
-#, fuzzy
 msgid "PackageKit Debuginfo Installer"
-msgstr "PackageKit কনসোল ইন্টারফেস"
+msgstr "PackageKit Debuginfo ইনস্টলার"
 
 #. TRANSLATORS: the use needs to specify a list of package names on the command line
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:589
-#, fuzzy, c-format
+#, c-format
 msgid "ERROR: Specify package names to install."
-msgstr "কোনো নতুন প্যাকেজ ইনস্টল করা যায়নি"
+msgstr "ERROR: ইনস্টলেশনের জন্য প্যাকেজের নাম নির্ধারণ করুন।"
 
 #. TRANSLATORS: we are getting the list of repositories
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:623
-#, fuzzy, c-format
+#, c-format
 msgid "Getting sources list"
-msgstr "প্যাকেজের তালিকা প্রাপ্ত করা হচ্ছে"
+msgstr "উৎসের তালিকা প্রাপ্ত করা হচ্ছে"
 
 #. TRANSLATORS: all completed 100%
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:641
@@ -1040,31 +1072,31 @@ msgstr "প্যাকেজের তালিকা প্রাপ্ত ক
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:955
 #, c-format
 msgid "OK."
-msgstr ""
+msgstr "ঠিক আছে।"
 
 #. TRANSLATORS: tell the user what we found
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:644
 #, c-format
 msgid "Found %i enabled and %i disabled sources."
-msgstr ""
+msgstr "%i-টি সক্রিয় ও %i-টি নিষ্ক্রিয় উৎসস্থল পাওয়া গিয়েছে।"
 
 #. TRANSLATORS: we're finding repositories that match out pattern
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:651
 #, c-format
 msgid "Finding debugging sources"
-msgstr ""
+msgstr "ডিবাগ করতে ব্যবহারযোগ্য উৎসস্থল অনুসন্ধান করা হচ্ছে"
 
 #. TRANSLATORS: tell the user what we found
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:684
 #, c-format
 msgid "Found %i disabled debuginfo repos."
-msgstr ""
+msgstr "%i-টি নিষ্ক্রিয় debuginfo উৎসস্থল পাওয়া গিয়েছে।"
 
 #. TRANSLATORS: we're now enabling all the debug sources we found
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:691
 #, c-format
 msgid "Enabling debugging sources"
-msgstr ""
+msgstr "ডিবাগ করতে ব্যবহারযোগ্য উৎসস্থল সক্রিয় করা হচ্ছে"
 
 #. TRANSLATORS: operation was not successful
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:701
@@ -1073,199 +1105,189 @@ msgstr ""
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:896
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:940
 msgid "FAILED."
-msgstr ""
+msgstr "বিফল।"
 
 #. TRANSLATORS: tell the user how many we enabled
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:719
 #, c-format
 msgid "Enabled %i debugging sources."
-msgstr ""
+msgstr "ডিবাগের জন্য %i-টি উৎসস্থল সক্রিয় করা হয়েছে।"
 
 #. TRANSLATORS: we're now finding packages that match in all the repos
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:726
-#, fuzzy, c-format
+#, c-format
 msgid "Finding debugging packages"
-msgstr "প্যাকেজের নাম অনুসন্ধান করা হচ্ছে।"
+msgstr "ডিবাগের জন্য প্যাকেজ অনুসন্ধান করা হচ্ছে"
 
 #. TRANSLATORS: we couldn't find the package name, non-fatal
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:738
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to find the package %s: %s"
-msgstr "'%s' প্যাকেজ পাওয়া যায়নি: %s"
+msgstr "%s প্যাকেজ পাওয়া যায়নি: %s"
 
 #. TRANSLATORS: we couldn't find the debuginfo package name, non-fatal
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:761
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to find the debuginfo package %s: %s"
-msgstr "'%s' প্যাকেজ পাওয়া যায়নি: %s"
+msgstr "%s debuginfo প্যাকেজ পাওয়া যায়নি: %s"
 
 #. TRANSLATORS: no debuginfo packages could be found to be installed
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:789
-#, fuzzy, c-format
+#, c-format
 msgid "Found no packages to install."
-msgstr "কোনো নতুন প্যাকেজ ইনস্টল করা যায়নি"
+msgstr "ইনস্টল করার জন্য কোনো প্যাকেজ পাওয়া যায়নি।"
 
 #. TRANSLATORS: tell the user we found some packages, and then list them
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:803
-#, fuzzy, c-format
+#, c-format
 msgid "Found %i packages:"
-msgstr "প্যাকেজ ডাউনলোড করা হচ্ছে"
+msgstr "%i-টি প্যাকেজ পাওয়া যায়নি:"
 
 #. TRANSLATORS: tell the user we are searching for deps
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:819
 #, c-format
 msgid "Finding packages that depend on these packages"
-msgstr ""
+msgstr "এই প্যাকেজগুলির উপর নির্ভরশীল প্যাকেজ অনুসন্ধান করা হচ্ছে"
 
 #. TRANSLATORS: could not install, detailed error follows
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:832
-#, fuzzy, c-format
+#, c-format
 msgid "Could not find dependant packages: %s"
-msgstr "'%s' প্যাকেজ পাওয়া যায়নি: %s"
+msgstr "নির্ভরশীল প্যাকেজ পাওয়া যায়নি: %s"
 
 #. TRANSLATORS: tell the user we found some more packages
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:848
 #, c-format
 msgid "Found %i extra packages."
-msgstr ""
+msgstr "%i-টি অতিরিক্ত প্যাকেজ পাওয়া গিয়েছে।"
 
 #. TRANSLATORS: tell the user we found some more packages
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:852
-#, fuzzy, c-format
+#, c-format
 msgid "No extra packages required."
-msgstr "প্যাকেজের নাম উল্লেখ করা আবশ্যক"
+msgstr "অতিরিক্ত কোনো প্যাকেজের প্রয়োজন নেই।"
 
 #. TRANSLATORS: tell the user we found some packages (and deps), and then list them
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:861
-#, fuzzy, c-format
+#, c-format
 msgid "Found %i packages to install:"
-msgstr "কোনো নতুন প্যাকেজ ইনস্টল করা যায়নি"
+msgstr "ইনস্টল করার যোগ্য %i-টি প্যাকেজ পাওয়া গিয়েছে:"
 
 #. TRANSLATORS: simulate mode is a testing mode where we quit before the action
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:874
-#, fuzzy, c-format
+#, c-format
 msgid "Not installing packages in simulate mode"
-msgstr "প্যাকেজ ইনস্টল করা হচ্ছে"
+msgstr "অনুকরণের মোডে কোনো প্যাকেজ ইনস্টল করা হচ্ছে না"
 
 #. TRANSLATORS: could not install, detailed error follows
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:899
-#, fuzzy, c-format
+#, c-format
 msgid "Could not install packages: %s"
-msgstr "এই সামগ্রী দ্বারা প্যাকেজগুলি ইনস্টল করা যায়নি: %s"
+msgstr "প্যাকেজ ইনস্টল করা যায়নি: %s"
 
 #. TRANSLATORS: we are now disabling all debuginfo repos we previously enabled
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:931
 #, c-format
 msgid "Disabling sources previously enabled"
-msgstr ""
+msgstr "পূর্বে সক্রিয় করা উৎসস্থল নিষ্ক্রিয় করা হচ্ছে"
 
 #. TRANSLATORS: no debuginfo packages could be found to be installed, detailed error follows
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:943
 #, c-format
 msgid "Could not disable the debugging sources: %s"
-msgstr ""
+msgstr "ডিবাগের জন্য ব্যবহারযোগ্য উৎসস্থল নিষ্ক্রিয় করা যায়নি: %s"
 
 #. TRANSLATORS: we disabled all the debugging repos that we enabled before
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:958
 #, c-format
 msgid "Disabled %i debugging sources."
-msgstr ""
+msgstr "ডিবাগের জন্য ব্যবহারযোগ্য %i-টি উৎসস্থল নিষ্ক্রিয় করা হয়েছে।"
 
 #. TRANSLATORS: couldn't open device to write
 #: ../contrib/device-rebind/pk-device-rebind.c:61
-#, fuzzy
 msgid "Failed to open file"
-msgstr "ফাইল অনুসন্ধান করতে ব্যর্থ"
+msgstr "ফাইল খুলতে ব্যর্থ"
 
 #. TRANSLATORS: could not write to the device
 #: ../contrib/device-rebind/pk-device-rebind.c:70
-#, fuzzy
 msgid "Failed to write to the file"
-msgstr "ফাইল অনুসন্ধান করতে ব্যর্থ"
+msgstr "ফাইলে লিখতে ব্যর্থ"
 
 #. TRANSLATORS: we failed to release the current driver
 #: ../contrib/device-rebind/pk-device-rebind.c:110
 #: ../contrib/device-rebind/pk-device-rebind.c:147
-#, fuzzy
 msgid "Failed to write to device"
-msgstr "ডিস্কে সংরক্ষণ করতে ব্যর্থ"
+msgstr "ডিভাইসে লিখতে ব্যর্থ"
 
 #. TRANSLATORS: the device could not be found in sysfs
 #: ../contrib/device-rebind/pk-device-rebind.c:175
-#, fuzzy
 msgid "Device could not be found"
-msgstr "প্যাকেজ পাওয়া যায়নি"
+msgstr "ডিভাইস পাওয়া যায়নি"
 
 #. TRANSLATORS: we failed to release the current driver
 #: ../contrib/device-rebind/pk-device-rebind.c:202
-#, fuzzy
 msgid "Failed to unregister driver"
-msgstr "ডিরেক্টরি নির্মাণ করতে ব্যর্থ:"
+msgstr "ড্রাইভারের নিবন্ধন বাতিল করতে ব্যর্থ"
 
 #. TRANSLATORS: we failed to bind the old driver
 #: ../contrib/device-rebind/pk-device-rebind.c:211
-#, fuzzy
 msgid "Failed to register driver"
-msgstr "ডিরেক্টরি নির্মাণ করতে ব্যর্থ:"
+msgstr "ড্রাইভার নিবন্ধন করতে ব্যর্থ"
 
 #. TRANSLATORS: user did not specify a device sysfs path that exists
 #: ../contrib/device-rebind/pk-device-rebind.c:260
-#, fuzzy
 msgid "Device path not found"
-msgstr "ডিরেক্টরি পাওয়া যায়নি"
+msgstr "ডিভাইসের পাথ পাওয়া যায়নি"
 
 #. TRANSLATORS: user did not specify a valid device sysfs path
 #: ../contrib/device-rebind/pk-device-rebind.c:268
 msgid "Incorrect device path specified"
-msgstr ""
+msgstr "ডিভাইসের ভুল পাথ নির্ধারিত হয়েছে"
 
 #. command line argument, simulate what would be done, but don't actually do it
 #: ../contrib/device-rebind/pk-device-rebind.c:296
 msgid "Don't actually touch the hardware, only simulate what would be done"
-msgstr ""
+msgstr "হার্ডওয়্যারে কোনো পরিবর্তন করা হবে না, নির্ধারিত কর্মের শুধুমাত্র অনুকরণ করা হবে"
 
 #. TRANSLATORS: command line option: a list of files to install
 #: ../contrib/device-rebind/pk-device-rebind.c:299
 msgid "Device paths"
-msgstr ""
+msgstr "ডিভাইসের পাথ"
 
 #. TRANSLATORS: tool that gets called when the device needs reloading after installing firmware
 #: ../contrib/device-rebind/pk-device-rebind.c:314
-#, fuzzy
 msgid "PackageKit Device Reloader"
-msgstr "PackageKit সার্ভিস প্যাক"
+msgstr "PackageKit ডিভাইস রি-লোডার"
 
 #. TRANSLATORS: user did not specify a valid device sysfs path
 #: ../contrib/device-rebind/pk-device-rebind.c:322
 msgid "You need to specify at least one valid device path"
-msgstr ""
+msgstr "অন্তত একটি বৈধ ডিভাইস পাথ উল্লেখ করা আবশ্যক"
 
 #. TRANSLATORS: user did not specify a valid device sysfs path
 #: ../contrib/device-rebind/pk-device-rebind.c:332
 msgid "This script can only be used by the root user"
-msgstr ""
+msgstr "শুধুমাত্র root ব্যবহারকারী দ্বারা এই স্ক্রিপ্ট ব্যবহার করা যাবে"
 
 #. TRANSLATORS: we're going to verify the path first
 #: ../contrib/device-rebind/pk-device-rebind.c:341
 msgid "Verifying device path"
-msgstr ""
+msgstr "ডিভাইসের পাথ যাচাই করা হচ্ছে"
 
 #. TRANSLATORS: user did not specify a device sysfs path that exists
 #: ../contrib/device-rebind/pk-device-rebind.c:346
-#, fuzzy
 msgid "Failed to verify device path"
-msgstr "ফাইল অনুসন্ধান করতে ব্যর্থ"
+msgstr "ডিভাইসের পাথ যাচাই করতে ব্যর্থ"
 
 #. TRANSLATORS: we're going to try
 #: ../contrib/device-rebind/pk-device-rebind.c:360
 msgid "Attempting to rebind device"
-msgstr ""
+msgstr "ডিভাইস rebind করার প্রচেষ্ট করা হচ্ছে"
 
 #. TRANSLATORS: we failed to release the current driver
 #: ../contrib/device-rebind/pk-device-rebind.c:365
-#, fuzzy
 msgid "Failed to rebind device"
-msgstr "ডিরেক্টরি নির্মাণ করতে ব্যর্থ:"
+msgstr "ডিভাইস rebind করতে ব্যর্থ"
 
 #: ../data/packagekit-catalog.xml.in.h:1
 msgid "PackageKit Catalog"
@@ -1294,8 +1316,7 @@ msgid "Authentication is required to accept a EULA"
 msgstr "EULA-র শর্তাবলী গ্রহণ করার জন্য অনুমোদন প্রয়োজন"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:9
-msgid ""
-"Authentication is required to cancel a task that was not started by yourself"
+msgid "Authentication is required to cancel a task that was not started by yourself"
 msgstr "আপনার দ্বারা আরম্ভ না করা কোনো কর্ম বন্ধ করার জন্য অনুমোদন প্রয়োজন"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:10
@@ -1306,8 +1327,7 @@ msgstr "সফ্টওয়্যারের উৎস সংক্রান্à
 msgid ""
 "Authentication is required to consider a key used for signing packages as "
 "trusted"
-msgstr ""
-"প্যাকেজ স্বাক্ষর করার জন্য ব্যবহৃত কোনো কি-কে বিশ্বস্ত ধার্য করার জন্য অনুমোদন প্রয়োজন"
+msgstr "প্যাকেজ স্বাক্ষর করার জন্য ব্যবহৃত কোনো কি-কে বিশ্বস্ত ধার্য করার জন্য অনুমোদন প্রয়োজন"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:12
 msgid "Authentication is required to install a signed package"
@@ -1322,9 +1342,8 @@ msgid "Authentication is required to refresh the system sources"
 msgstr "সিস্টেমের উৎস নতুন করে প্রদর্শনের জন্য অনুমোদন আবশ্যক"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:15
-#, fuzzy
 msgid "Authentication is required to reload the device with a new driver"
-msgstr "সিস্টেমের উৎস নতুন করে প্রদর্শনের জন্য অনুমোদন আবশ্যক"
+msgstr "নতুন ড্রাইভার সহ ডিভাইসটি পুনরায় লোড করার জন্য অনুমোদন প্রয়োজন"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:16
 msgid "Authentication is required to remove packages"
@@ -1338,8 +1357,7 @@ msgstr "ট্রানসাকশন রোল-ব্যাক করার à¦
 msgid ""
 "Authentication is required to set the network proxy used for downloading "
 "packages"
-msgstr ""
-"প্যাকেজ ডাউনলোড করার জন্য ব্যবহৃত নেটওয়ার্ক প্রক্সি নির্ধারণের জন্য অনুমোদন প্রয়োজন"
+msgstr "প্যাকেজ ডাউনলোড করার জন্য ব্যবহৃত নেটওয়ার্ক প্রক্সি নির্ধারণের জন্য অনুমোদন প্রয়োজন"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:19
 msgid "Authentication is required to update packages"
@@ -1400,7 +1418,7 @@ msgstr "সিস্টেমের উৎস নতুন করে পড়া à
 #.
 #: ../policy/org.freedesktop.packagekit.policy.in.h:58
 msgid "Reload a device"
-msgstr ""
+msgstr "ডিভাইস পুনরায় লোড করুন"
 
 #. SECURITY:
 #. - Normal users require admin authentication to remove packages as
@@ -1456,8 +1474,7 @@ msgstr "প্যাকেজ আপডেট করুন"
 #. TRANSLATORS: failed due to DBus security
 #: ../src/pk-main.c:87
 msgid "Startup failed due to security policies on this machine."
-msgstr ""
-"এই মেশিনের জন্য নির্ধারিত নিরাপত্তা সংক্রান্ত নিয়মনীতির কারণে প্রারম্ভ করতে ব্যর্থ।"
+msgstr "এই মেশিনের জন্য নির্ধারিত নিরাপত্তা সংক্রান্ত নিয়মনীতির কারণে প্রারম্ভ করতে ব্যর্থ।"
 
 #. TRANSLATORS: only two ways this can fail...
 #: ../src/pk-main.c:89
@@ -1474,8 +1491,7 @@ msgstr "সঠিক ব্যবহারকারী (সাধারণত ro
 msgid ""
 "The org.freedesktop.PackageKit.conf file is not installed in the system "
 "directory:"
-msgstr ""
-"সিস্টেম ডিরেক্টরির মধ্যে org.freedesktop.PackageKit.conf ফাইলটি ইনস্টল করা হয়নি:"
+msgstr "সিস্টেম ডিরেক্টরির মধ্যে org.freedesktop.PackageKit.conf ফাইলটি ইনস্টল করা হয়নি:"
 
 #. TRANSLATORS: a backend is the system package tool, e.g. yum, apt
 #: ../src/pk-main.c:205
@@ -1523,43 +1539,42 @@ msgid "Error trying to start:"
 msgstr "আরম্ভ করতে সমস্যা:"
 
 #: ../src/pk-polkit-action-lookup.c:147
-#, fuzzy
 msgid "To install debugging packages, extra sources need to be enabled"
-msgstr "কোনো নতুন প্যাকেজ ইনস্টল করা যায়নি"
+msgstr "ডিবাগের জন্য ব্যবহারযোগ্য প্যাকেজ ইনস্টল করার জন্য অতিরিক্ত উৎসস্থল সক্রিয় করা আবশ্যক"
 
 #. TRANSLATORS: is not GPG signed
 #: ../src/pk-polkit-action-lookup.c:168 ../src/pk-polkit-action-lookup.c:187
 msgid "The software is not from a trusted source."
-msgstr ""
+msgstr "বিশ্বস্ত উৎসস্থল থেকে সফ্টওয়্যারটি প্রাপ্ত করা হয়নি।"
 
 #: ../src/pk-polkit-action-lookup.c:173
 msgid "Do not update this package unless you are sure it is safe to do so."
-msgstr ""
+msgstr "প্যাকেজের নিরাপত্তা সম্পর্কের সম্পূর্ণরূপে নিশ্চিত না হলে এই প্যাকেজটি আপডেট না করা উচিত।"
 
 #: ../src/pk-polkit-action-lookup.c:174
 msgid "Do not update these packages unless you are sure it is safe to do so."
-msgstr ""
+msgstr "প্যাকেজের নিরাপত্তা সম্পর্কের সম্পূর্ণরূপে নিশ্চিত না হলে এই প্যাকেজগুলি আপডেট না করা উচিত।"
 
 #: ../src/pk-polkit-action-lookup.c:192
 msgid "Do not install this package unless you are sure it is safe to do so."
-msgstr ""
+msgstr "প্যাকেজের নিরাপত্তা সম্পর্কের সম্পূর্ণরূপে নিশ্চিত না হলে এই প্যাকেজটি ইনস্টল না করা উচিত।"
 
 #: ../src/pk-polkit-action-lookup.c:193
 msgid "Do not install these packages unless you are sure it is safe to do so."
-msgstr ""
+msgstr "প্যাকেজের নিরাপত্তা সম্পর্কের সম্পূর্ণরূপে নিশ্চিত না হলে এই প্যাকেজটি আপডেট না করা উচিত।"
 
 #. TRANSLATORS: warn the user that all bets are off
 #: ../src/pk-polkit-action-lookup.c:199
 msgid "Malicious software can damage your computer or cause other harm."
-msgstr ""
+msgstr "ক্ষতিকারণ সফ্টওয়্যারের ফলে কম্পিউটারে সমস্যা দেখা দিতে পারে ও অন্যান্য বিপদের আশঙ্কা রয়েছে।"
 
 #. TRANSLATORS: too many packages to list each one
 #: ../src/pk-polkit-action-lookup.c:274
-#, fuzzy
 msgid "Many packages"
-msgstr "প্যাকেজ আপডেট করুন"
+msgstr "অত্যাধিক প্যাকেজ"
 
 #. TRANSLATORS: if the transaction is forced to install only trusted packages
 #: ../src/pk-polkit-action-lookup.c:334
 msgid "Only trusted"
-msgstr ""
+msgstr "শুধুমাত্র বিশ্বস্ত"
+
commit b67f3135e8bb5d15cb4944438a8833c984736fd7
Author: Richard Hughes <richard at hughsie.com>
Date:   Fri Sep 4 10:23:45 2009 +0100

    glib2: Use the new daemon properties rather than discrete methods

diff --git a/client/pk-console-test.c b/client/pk-console-test.c
index fe97457..47ebadf 100644
--- a/client/pk-console-test.c
+++ b/client/pk-console-test.c
@@ -1179,6 +1179,7 @@ out:
 int
 main (int argc, char *argv[])
 {
+	gboolean ret;
 	GError *error = NULL;
 	gboolean verbose = FALSE;
 	gboolean program_version = FALSE;
@@ -1190,7 +1191,7 @@ main (int argc, char *argv[])
 	const gchar *value = NULL;
 	const gchar *details = NULL;
 	const gchar *parameter = NULL;
-//	PkBitfield groups;
+	PkBitfield groups;
 	gchar *text;
 //	gboolean maybe_sync = TRUE;
 	PkBitfield filters = 0;
@@ -1230,11 +1231,17 @@ main (int argc, char *argv[])
 
 	/* we need the roles early, as we only show the user only what they can do */
 	control = pk_control_sync_new ();
-	roles = pk_control_sync_get_roles (control, &error);
-	if (roles == 0) {
+	ret = pk_control_sync_get_properties (control, &error);
+	if (!ret) {
 		g_print ("Failed to startup: %s\n", error->message);
 		goto out_last;
 	}
+
+	/* get data */
+	g_object_get (control,
+		      "roles", &roles,
+		      NULL);
+
 	summary = pk_console_get_summary ();
 	progressbar = pk_progress_bar_new ();
 	pk_progress_bar_set_size (progressbar, 25);
@@ -1589,21 +1596,27 @@ main (int argc, char *argv[])
 		g_print ("%s\n", text);
 		g_free (text);
 		nowait = TRUE;
-#if 0
+
 	} else if (strcmp (mode, "get-filters") == 0) {
-		filters = pk_control_get_filters (control, NULL);
+		g_object_get (control,
+			      "filters", &filters,
+			      NULL);
 		text = pk_filter_bitfield_to_text (filters);
 		g_strdelimit (text, ";", '\n');
 		g_print ("%s\n", text);
 		g_free (text);
+		nowait = TRUE;
 
 	} else if (strcmp (mode, "get-groups") == 0) {
-		groups = pk_control_get_groups (control, NULL);
+		g_object_get (control,
+			      "groups", &groups,
+			      NULL);
 		text = pk_group_bitfield_to_text (groups);
 		g_strdelimit (text, ";", '\n');
 		g_print ("%s\n", text);
 		g_free (text);
-#endif
+		nowait = TRUE;
+
 	} else if (strcmp (mode, "get-transactions") == 0) {
 		pk_client_get_old_transactions_async (PK_CLIENT(task), 10, NULL,
 						      (PkProgressCallback) pk_console_progress_cb, NULL,
diff --git a/lib/packagekit-glib2/pk-control-sync.c b/lib/packagekit-glib2/pk-control-sync.c
index 8256488..36b47e8 100644
--- a/lib/packagekit-glib2/pk-control-sync.c
+++ b/lib/packagekit-glib2/pk-control-sync.c
@@ -69,46 +69,6 @@ pk_control_sync_fixup_dbus_error (GError *error)
 }
 
 /**
- * pk_control_sync_get_roles:
- * @control_sync: a valid #PkControlSync instance
- * @error: A #GError or %NULL
- *
- * Gets the roles the daemon supports.
- * Warning: this function is synchronous, and may block. Do not use it in GUI
- * applications.
- *
- * Return value: an enumerated list of the actions the backend supports, or 0 for error
- **/
-PkBitfield
-pk_control_sync_get_roles (PkControlSync *control, GError **error)
-{
-	gboolean ret;
-	gchar *roles;
-	PkBitfield roles_enum = 0;
-
-	g_return_val_if_fail (PK_IS_CONTROL_SYNC (control), PK_GROUP_ENUM_UNKNOWN);
-	g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
-
-	/* not GetRoles, get over it */
-	ret = dbus_g_proxy_call (control->priv->proxy, "GetActions", error,
-				 G_TYPE_INVALID,
-				 G_TYPE_STRING, &roles,
-				 G_TYPE_INVALID);
-	if (!ret) {
-		/* fix up the D-Bus error */
-		if (error != NULL)
-			pk_control_sync_fixup_dbus_error (*error);
-		goto out;
-	}
-
-	/* convert to enumerated types */
-	roles_enum = pk_role_bitfield_from_text (roles);
-	g_free (roles);
-out:
-	return roles_enum;
-}
-
-/**
  * pk_control_sync_get_daemon_state:
  * @control_sync: a valid #PkControlSync instance
  * @error: a %GError to put the error code and message in, or %NULL
@@ -141,52 +101,59 @@ out:
 	return state;
 }
 
+/* tiny helper to help us do the async operation */
+typedef struct {
+	GError		**error;
+	GMainLoop	*loop;
+	gboolean	 ret;
+} PkControlSyncHelper;
+
 /**
- * pk_control_sync_get_backend_detail:
- * @control_sync: a valid #PkControlSync instance
- * @name: the name of the backend
- * @author: the author of the backend
- * @error: a %GError to put the error code and message in, or %NULL
+ * pk_control_sync_properties_cb:
+ **/
+static void
+pk_control_sync_properties_cb (PkControlSync *control, GAsyncResult *res, PkControlSyncHelper *sync)
+{
+	/* get the result */
+	sync->ret = pk_control_get_properties_finish (PK_CONTROL(control), res, sync->error);
+	g_main_loop_quit (sync->loop);
+}
+
+/**
+ * pk_control_sync_get_properties:
+ * @control: a valid #PkControlSync instance
+ * @error: A #GError or %NULL
  *
- * The backend detail is useful for the pk-backend-status program, or for
- * automatic bugreports.
+ * Gets the properties the daemon supports.
+ * Warning: this function is synchronous, and may block. Do not use it in GUI
+ * applications.
  *
- * Return value: %TRUE if the daemon serviced the request
+ * Return value: %TRUE if the properties were set correctly
  **/
 gboolean
-pk_control_sync_get_backend_detail (PkControlSync *control, gchar **name, gchar **author, GError **error)
+pk_control_sync_get_properties (PkControlSync *control, GError **error)
 {
 	gboolean ret;
-	gchar *tname;
-	gchar *tauthor;
+	PkControlSyncHelper *sync;
 
 	g_return_val_if_fail (PK_IS_CONTROL_SYNC (control), FALSE);
 	g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
 
-	/* call D-Bus sync */
-	ret = dbus_g_proxy_call (control->priv->proxy, "GetBackendDetail", error,
-				 G_TYPE_INVALID,
-				 G_TYPE_STRING, &tname,
-				 G_TYPE_STRING, &tauthor,
-				 G_TYPE_INVALID);
-	if (!ret) {
-		/* fix up the D-Bus error */
-		if (error != NULL)
-			pk_control_sync_fixup_dbus_error (*error);
-		goto out;
-	}
+	/* create temp object */
+	sync = g_new0 (PkControlSyncHelper, 1);
+	sync->loop = g_main_loop_new (NULL, FALSE);
+	sync->error = error;
+
+	/* run async method */
+	pk_control_get_properties_async (PK_CONTROL(control), NULL, (GAsyncReadyCallback) pk_control_sync_properties_cb, sync);
+	g_main_loop_run (sync->loop);
+
+	ret = sync->ret;
+
+	/* free temp object */
+	g_main_loop_unref (sync->loop);
+	g_free (sync);
 
-	/* copy needed bits */
-	if (name != NULL)
-		*name = tname;
-	else
-		g_free (tname);
-	/* copy needed bits */
-	if (author != NULL)
-		*author = tauthor;
-	else
-		g_free (tauthor);
-out:
 	return ret;
 }
 
@@ -271,8 +238,9 @@ pk_control_sync_test (gpointer user_data)
 	EggTest *test = (EggTest *) user_data;
 	PkControlSync *control;
 	GError *error = NULL;
-	PkBitfield bitfield;
+	gboolean ret;
 	gchar *text;
+	PkBitfield roles;
 
 	if (!egg_test_start (test, "PkControlSync"))
 		return;
@@ -283,11 +251,18 @@ pk_control_sync_test (gpointer user_data)
 	egg_test_assert (test, control != NULL);
 
 	/************************************************************/
-	egg_test_title (test, "get roles sync");
-	bitfield = pk_control_sync_get_roles (control, &error);
-	if (bitfield == 0)
-		egg_test_failed (test, "no data: %s", error->message);
-	text = pk_role_bitfield_to_text (bitfield);
+	egg_test_title (test, "get properties sync");
+	ret = pk_control_sync_get_properties (control, &error);
+	if (!ret)
+		egg_test_failed (test, "failed to get properties: %s", error->message);
+
+	/* get data */
+	g_object_get (control,
+		      "roles", &roles,
+		      NULL);
+
+	/* check data */
+	text = pk_role_bitfield_to_text (roles);
 	if (g_strcmp0 (text, "cancel;get-depends;get-details;get-files;get-packages;get-repo-list;"
 			     "get-requires;get-update-detail;get-updates;install-files;install-packages;"
 			     "refresh-cache;remove-packages;repo-enable;repo-set-data;resolve;rollback;"
@@ -296,7 +271,7 @@ pk_control_sync_test (gpointer user_data)
 			     "simulate-remove-packages;simulate-update-packages") != 0) {
 		egg_test_failed (test, "data incorrect: %s", text);
 	}
-	egg_test_success (test, "got roles");
+	egg_test_success (test, "got correct roles");
 	g_free (text);
 
 	g_object_unref (control);
diff --git a/lib/packagekit-glib2/pk-control-sync.h b/lib/packagekit-glib2/pk-control-sync.h
index f9c3b3b..bbfaa48 100644
--- a/lib/packagekit-glib2/pk-control-sync.h
+++ b/lib/packagekit-glib2/pk-control-sync.h
@@ -66,13 +66,9 @@ GType		 pk_control_sync_get_type		(void);
 PkControlSync	*pk_control_sync_new			(void);
 void		 pk_control_sync_test			(gpointer		 user_data);
 
-PkBitfield	 pk_control_sync_get_roles		(PkControlSync		*control,
-							 GError			**error);
 gchar		*pk_control_sync_get_daemon_state	(PkControlSync		*control,
 							 GError			**error);
-gboolean	 pk_control_sync_get_backend_detail	(PkControlSync		*control,
-							 gchar			**name,
-							 gchar			**author,
+gboolean	 pk_control_sync_get_properties		(PkControlSync		*control,
 							 GError			**error);
 
 G_END_DECLS
diff --git a/lib/packagekit-glib2/pk-control.c b/lib/packagekit-glib2/pk-control.c
index 9b39586..562c20b 100644
--- a/lib/packagekit-glib2/pk-control.c
+++ b/lib/packagekit-glib2/pk-control.c
@@ -51,6 +51,13 @@ struct _PkControlPrivate
 	gboolean		 version_major;
 	gboolean		 version_minor;
 	gboolean		 version_micro;
+	gchar			*backend_name;
+	gchar			*backend_description;
+	gchar			*backend_author;
+	PkBitfield		 roles;
+	PkBitfield		 groups;
+	PkBitfield		 filters;
+	gchar			*mime_types;
 };
 
 enum {
@@ -69,6 +76,13 @@ enum {
 	PROP_VERSION_MAJOR,
 	PROP_VERSION_MINOR,
 	PROP_VERSION_MICRO,
+	PROP_BACKEND_NAME,
+	PROP_BACKEND_DESCRIPTION,
+	PROP_BACKEND_AUTHOR,
+	PROP_ROLES,
+	PROP_GROUPS,
+	PROP_FILTERS,
+	PROP_MIME_TYPES,
 	PROP_LAST
 };
 
@@ -79,7 +93,6 @@ G_DEFINE_TYPE (PkControl, pk_control, G_TYPE_OBJECT)
 
 typedef struct {
 	gboolean		 ret;
-	gchar			**mime_types;
 	gchar			*tid;
 	gchar			**transaction_list;
 	guint			 time;
@@ -87,7 +100,6 @@ typedef struct {
 	GCancellable		*cancellable;
 	GSimpleAsyncResult	*res;
 	PkAuthorizeEnum		 authorize;
-	PkBitfield		*bitfield;
 	PkControl		*control;
 	PkNetworkEnum		 network;
 } PkControlState;
@@ -271,149 +283,6 @@ pk_control_get_tid_finish (PkControl *control, GAsyncResult *res, GError **error
 /***************************************************************************************************/
 
 /**
- * pk_control_get_mime_types_state_finish:
- **/
-static void
-pk_control_get_mime_types_state_finish (PkControlState *state, GError *error)
-{
-	/* remove weak ref */
-	if (state->control != NULL)
-		g_object_remove_weak_pointer (G_OBJECT (state->control), (gpointer) &state->control);
-
-	/* cancel */
-	if (state->cancellable != NULL) {
-		g_cancellable_cancel (state->cancellable);
-		g_object_unref (state->cancellable);
-	}
-
-	/* get result */
-	if (state->mime_types != NULL) {
-		g_simple_async_result_set_op_res_gpointer (state->res, g_strdupv (state->mime_types), (GDestroyNotify) g_strfreev);
-	} else {
-		g_simple_async_result_set_from_error (state->res, error);
-		g_error_free (error);
-	}
-
-	/* remove from list */
-	g_ptr_array_remove (state->control->priv->calls, state);
-
-	/* complete */
-	g_simple_async_result_complete_in_idle (state->res);
-
-	/* deallocate */
-	g_strfreev (state->mime_types);
-	g_object_unref (state->res);
-	g_slice_free (PkControlState, state);
-}
-
-/**
- * pk_control_get_mime_types_cb:
- **/
-static void
-pk_control_get_mime_types_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkControlState *state)
-{
-	GError *error = NULL;
-	gchar *temp = NULL;
-	gboolean ret;
-
-	/* finished this call */
-	state->call = NULL;
-
-	/* get the result */
-	ret = dbus_g_proxy_end_call (proxy, call, &error,
-				     G_TYPE_STRING, &temp,
-				     G_TYPE_INVALID);
-	if (!ret) {
-		/* fix up the D-Bus error */
-		pk_control_fixup_dbus_error (error);
-		egg_warning ("failed: %s", error->message);
-		pk_control_get_mime_types_state_finish (state, error);
-		goto out;
-	}
-
-	/* save data */
-	state->mime_types = g_strsplit (temp, ";", -1);
-
-	/* we're done */
-	pk_control_get_mime_types_state_finish (state, error);
-out:
-	g_free (temp);
-}
-
-/**
- * pk_control_get_mime_types_async:
- * @control: a valid #PkControl instance
- * @cancellable: a #GCancellable or %NULL
- * @callback: the function to run on completion
- * @user_data: the data to pass to @callback
- *
- * The MIME list is the supported package formats.
- **/
-void
-pk_control_get_mime_types_async (PkControl *control, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data)
-{
-	GSimpleAsyncResult *res;
-	PkControlState *state;
-
-	g_return_if_fail (PK_IS_CONTROL (control));
-	g_return_if_fail (callback != NULL);
-
-	res = g_simple_async_result_new (G_OBJECT (control), callback, user_data, pk_control_get_mime_types_async);
-
-	/* save state */
-	state = g_slice_new0 (PkControlState);
-	state->res = g_object_ref (res);
-	if (cancellable != NULL)
-		state->cancellable = g_object_ref (cancellable);
-	state->control = control;
-	g_object_add_weak_pointer (G_OBJECT (state->control), (gpointer) &state->control);
-
-	/* call D-Bus get_mime_types async */
-	state->call = dbus_g_proxy_begin_call (control->priv->proxy, "GetMimeTypes",
-					       (DBusGProxyCallNotify) pk_control_get_mime_types_cb, state,
-					       NULL, G_TYPE_INVALID);
-
-	/* track state */
-	g_ptr_array_add (control->priv->calls, state);
-
-	g_object_unref (res);
-}
-
-/**
- * pk_control_get_mime_types_finish:
- * @control: a valid #PkControl instance
- * @res: the #GAsyncResult
- * @error: A #GError or %NULL
- *
- * Gets the result from the asynchronous function.
- *
- * Return value: an GStrv list of the formats the backend supports,
- * or %NULL if unknown
- **/
-gchar **
-pk_control_get_mime_types_finish (PkControl *control, GAsyncResult *res, GError **error)
-{
-	GSimpleAsyncResult *simple;
-	gpointer source_tag;
-
-	g_return_val_if_fail (PK_IS_CONTROL (control), NULL);
-	g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (res), NULL);
-	g_return_val_if_fail (error == NULL || *error == NULL, NULL);
-
-	simple = G_SIMPLE_ASYNC_RESULT (res);
-	source_tag = g_simple_async_result_get_source_tag (simple);
-
-	g_return_val_if_fail (source_tag == pk_control_get_mime_types_async, NULL);
-
-	if (g_simple_async_result_propagate_error (simple, error))
-		return NULL;
-
-	return g_simple_async_result_get_op_res_gpointer (simple);
-}
-
-/***************************************************************************************************/
-
-/**
  * pk_control_set_proxy_state_finish:
  **/
 static void
@@ -557,450 +426,6 @@ pk_control_set_proxy_finish (PkControl *control, GAsyncResult *res, GError **err
 /***************************************************************************************************/
 
 /**
- * pk_control_bitfield_copy:
- **/
-static PkBitfield *
-pk_control_bitfield_copy (PkBitfield *value)
-{
-	PkBitfield *new;
-	new = g_new0 (PkBitfield, 1);
-	*new = *value;
-	return new;
-}
-
-/**
- * pk_control_get_roles_state_finish:
- **/
-static void
-pk_control_get_roles_state_finish (PkControlState *state, GError *error)
-{
-	/* remove weak ref */
-	if (state->control != NULL)
-		g_object_remove_weak_pointer (G_OBJECT (state->control), (gpointer) &state->control);
-
-	/* cancel */
-	if (state->cancellable != NULL) {
-		g_cancellable_cancel (state->cancellable);
-		g_object_unref (state->cancellable);
-	}
-
-	/* get result */
-	if (state->bitfield != NULL) {
-		g_simple_async_result_set_op_res_gpointer (state->res, pk_control_bitfield_copy (state->bitfield), g_free);
-	} else {
-		g_simple_async_result_set_from_error (state->res, error);
-		g_error_free (error);
-	}
-
-	/* remove from list */
-	g_ptr_array_remove (state->control->priv->calls, state);
-
-	/* complete */
-	g_simple_async_result_complete_in_idle (state->res);
-
-	/* deallocate */
-	g_free (state->bitfield);
-	g_object_unref (state->res);
-	g_slice_free (PkControlState, state);
-}
-
-/**
- * pk_control_get_roles_cb:
- **/
-static void
-pk_control_get_roles_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkControlState *state)
-{
-	GError *error = NULL;
-	gchar *roles = NULL;
-	gboolean ret;
-	PkBitfield bitfield;
-
-	/* finished this call */
-	state->call = NULL;
-
-	/* get the result */
-	ret = dbus_g_proxy_end_call (proxy, call, &error,
-				     G_TYPE_STRING, &roles,
-				     G_TYPE_INVALID);
-	if (!ret) {
-		/* fix up the D-Bus error */
-		pk_control_fixup_dbus_error (error);
-		egg_warning ("failed: %s", error->message);
-		pk_control_get_roles_state_finish (state, error);
-		goto out;
-	}
-
-	/* save data */
-	bitfield = pk_role_bitfield_from_text (roles);
-	state->bitfield = pk_control_bitfield_copy (&bitfield);
-
-	/* we're done */
-	pk_control_get_roles_state_finish (state, error);
-out:
-	g_free (roles);
-}
-
-/**
- * pk_control_get_roles_async:
- * @control: a valid #PkControl instance
- * @cancellable: a #GCancellable or %NULL
- * @callback: the function to run on completion
- * @user_data: the data to pass to @callback
- *
- * Get what methods the daemon can do with the current backend.
- **/
-void
-pk_control_get_roles_async (PkControl *control, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data)
-{
-	GSimpleAsyncResult *res;
-	PkControlState *state;
-
-	g_return_if_fail (PK_IS_CONTROL (control));
-	g_return_if_fail (callback != NULL);
-
-	res = g_simple_async_result_new (G_OBJECT (control), callback, user_data, pk_control_get_roles_async);
-
-	/* save state */
-	state = g_slice_new0 (PkControlState);
-	state->res = g_object_ref (res);
-	if (cancellable != NULL)
-		state->cancellable = g_object_ref (cancellable);
-	state->control = control;
-	g_object_add_weak_pointer (G_OBJECT (state->control), (gpointer) &state->control);
-
-	/* call D-Bus get_roles async */
-	state->call = dbus_g_proxy_begin_call (control->priv->proxy, "GetActions", /* not GetRoles, just get over it... */
-					       (DBusGProxyCallNotify) pk_control_get_roles_cb, state,
-					       NULL, G_TYPE_INVALID);
-
-	/* track state */
-	g_ptr_array_add (control->priv->calls, state);
-
-	g_object_unref (res);
-}
-
-/**
- * pk_control_get_roles_finish:
- * @control: a valid #PkControl instance
- * @res: the #GAsyncResult
- * @error: A #GError or %NULL
- *
- * Gets the result from the asynchronous function.
- *
- * Return value: an enumerated list of the actions the backend supports, or 0 for error. Free with g_free()
- **/
-PkBitfield *
-pk_control_get_roles_finish (PkControl *control, GAsyncResult *res, GError **error)
-{
-	GSimpleAsyncResult *simple;
-	gpointer source_tag;
-
-	g_return_val_if_fail (PK_IS_CONTROL (control), NULL);
-	g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (res), NULL);
-	g_return_val_if_fail (error == NULL || *error == NULL, NULL);
-
-	simple = G_SIMPLE_ASYNC_RESULT (res);
-	source_tag = g_simple_async_result_get_source_tag (simple);
-
-	g_return_val_if_fail (source_tag == pk_control_get_roles_async, NULL);
-
-	if (g_simple_async_result_propagate_error (simple, error))
-		return NULL;
-
-	return g_simple_async_result_get_op_res_gpointer (simple);
-}
-
-/***************************************************************************************************/
-/**
- * pk_control_get_filters_state_finish:
- **/
-static void
-pk_control_get_filters_state_finish (PkControlState *state, GError *error)
-{
-	/* remove weak ref */
-	if (state->control != NULL)
-		g_object_remove_weak_pointer (G_OBJECT (state->control), (gpointer) &state->control);
-
-	/* cancel */
-	if (state->cancellable != NULL) {
-		g_cancellable_cancel (state->cancellable);
-		g_object_unref (state->cancellable);
-	}
-
-	/* get result */
-	if (state->bitfield != NULL) {
-		g_simple_async_result_set_op_res_gpointer (state->res, pk_control_bitfield_copy (state->bitfield), g_free);
-	} else {
-		g_simple_async_result_set_from_error (state->res, error);
-		g_error_free (error);
-	}
-
-	/* remove from list */
-	g_ptr_array_remove (state->control->priv->calls, state);
-
-	/* complete */
-	g_simple_async_result_complete_in_idle (state->res);
-
-	/* deallocate */
-	g_free (state->bitfield);
-	g_object_unref (state->res);
-	g_slice_free (PkControlState, state);
-}
-
-/**
- * pk_control_get_filters_cb:
- **/
-static void
-pk_control_get_filters_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkControlState *state)
-{
-	GError *error = NULL;
-	gchar *filters = NULL;
-	gboolean ret;
-	PkBitfield bitfield;
-
-	/* finished this call */
-	state->call = NULL;
-
-	/* get the result */
-	ret = dbus_g_proxy_end_call (proxy, call, &error,
-				     G_TYPE_STRING, &filters,
-				     G_TYPE_INVALID);
-	if (!ret) {
-		/* fix up the D-Bus error */
-		pk_control_fixup_dbus_error (error);
-		egg_warning ("failed: %s", error->message);
-		pk_control_get_filters_state_finish (state, error);
-		goto out;
-	}
-
-	/* save data */
-	bitfield = pk_filter_bitfield_from_text (filters);
-	state->bitfield = pk_control_bitfield_copy (&bitfield);
-
-	/* we're done */
-	pk_control_get_filters_state_finish (state, error);
-out:
-	g_free (filters);
-}
-
-/**
- * pk_control_get_filters_async:
- * @control: a valid #PkControl instance
- * @cancellable: a #GCancellable or %NULL
- * @callback: the function to run on completion
- * @user_data: the data to pass to @callback
- *
- * Filters are how the backend can specify what type of package is returned.
- **/
-void
-pk_control_get_filters_async (PkControl *control, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data)
-{
-	GSimpleAsyncResult *res;
-	PkControlState *state;
-
-	g_return_if_fail (PK_IS_CONTROL (control));
-	g_return_if_fail (callback != NULL);
-
-	res = g_simple_async_result_new (G_OBJECT (control), callback, user_data, pk_control_get_filters_async);
-
-	/* save state */
-	state = g_slice_new0 (PkControlState);
-	state->res = g_object_ref (res);
-	if (cancellable != NULL)
-		state->cancellable = g_object_ref (cancellable);
-	state->control = control;
-	g_object_add_weak_pointer (G_OBJECT (state->control), (gpointer) &state->control);
-
-	/* call D-Bus get_filters async */
-	state->call = dbus_g_proxy_begin_call (control->priv->proxy, "GetFilters",
-					       (DBusGProxyCallNotify) pk_control_get_filters_cb, state,
-					       NULL, G_TYPE_INVALID);
-
-	/* track state */
-	g_ptr_array_add (control->priv->calls, state);
-
-	g_object_unref (res);
-}
-
-/**
- * pk_control_get_filters_finish:
- * @control: a valid #PkControl instance
- * @res: the #GAsyncResult
- * @error: A #GError or %NULL
- *
- * Gets the result from the asynchronous function.
- *
- * Return value: an enumerated list of the filters the backend supports, free with g_free()
- **/
-PkBitfield *
-pk_control_get_filters_finish (PkControl *control, GAsyncResult *res, GError **error)
-{
-	GSimpleAsyncResult *simple;
-	gpointer source_tag;
-
-	g_return_val_if_fail (PK_IS_CONTROL (control), NULL);
-	g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (res), NULL);
-	g_return_val_if_fail (error == NULL || *error == NULL, NULL);
-
-	simple = G_SIMPLE_ASYNC_RESULT (res);
-	source_tag = g_simple_async_result_get_source_tag (simple);
-
-	g_return_val_if_fail (source_tag == pk_control_get_filters_async, NULL);
-
-	if (g_simple_async_result_propagate_error (simple, error))
-		return NULL;
-
-	return g_simple_async_result_get_op_res_gpointer (simple);
-}
-
-/***************************************************************************************************/
-/**
- * pk_control_get_groups_state_finish:
- **/
-static void
-pk_control_get_groups_state_finish (PkControlState *state, GError *error)
-{
-	/* remove weak ref */
-	if (state->control != NULL)
-		g_object_remove_weak_pointer (G_OBJECT (state->control), (gpointer) &state->control);
-
-	/* cancel */
-	if (state->cancellable != NULL) {
-		g_cancellable_cancel (state->cancellable);
-		g_object_unref (state->cancellable);
-	}
-
-	/* get result */
-	if (state->bitfield != NULL) {
-		g_simple_async_result_set_op_res_gpointer (state->res, pk_control_bitfield_copy (state->bitfield), g_free);
-	} else {
-		g_simple_async_result_set_from_error (state->res, error);
-		g_error_free (error);
-	}
-
-	/* remove from list */
-	g_ptr_array_remove (state->control->priv->calls, state);
-
-	/* complete */
-	g_simple_async_result_complete_in_idle (state->res);
-
-	/* deallocate */
-	g_free (state->bitfield);
-	g_object_unref (state->res);
-	g_slice_free (PkControlState, state);
-}
-
-/**
- * pk_control_get_groups_cb:
- **/
-static void
-pk_control_get_groups_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkControlState *state)
-{
-	GError *error = NULL;
-	gchar *groups = NULL;
-	gboolean ret;
-	PkBitfield bitfield;
-
-	/* finished this call */
-	state->call = NULL;
-
-	/* get the result */
-	ret = dbus_g_proxy_end_call (proxy, call, &error,
-				     G_TYPE_STRING, &groups,
-				     G_TYPE_INVALID);
-	if (!ret) {
-		/* fix up the D-Bus error */
-		pk_control_fixup_dbus_error (error);
-		egg_warning ("failed: %s", error->message);
-		pk_control_get_groups_state_finish (state, error);
-		goto out;
-	}
-
-	/* save data */
-	bitfield = pk_group_bitfield_from_text (groups);
-	state->bitfield = pk_control_bitfield_copy (&bitfield);
-
-	/* we're done */
-	pk_control_get_groups_state_finish (state, error);
-out:
-	g_free (groups);
-}
-
-/**
- * pk_control_get_groups_async:
- * @control: a valid #PkControl instance
- * @cancellable: a #GCancellable or %NULL
- * @callback: the function to run on completion
- * @user_data: the data to pass to @callback
- *
- * The group list is enumerated so it can be localised and have deep
- * integration with desktops.
- * This method allows a frontend to only display the groups that are supported.
- **/
-void
-pk_control_get_groups_async (PkControl *control, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data)
-{
-	GSimpleAsyncResult *res;
-	PkControlState *state;
-
-	g_return_if_fail (PK_IS_CONTROL (control));
-	g_return_if_fail (callback != NULL);
-
-	res = g_simple_async_result_new (G_OBJECT (control), callback, user_data, pk_control_get_groups_async);
-
-	/* save state */
-	state = g_slice_new0 (PkControlState);
-	state->res = g_object_ref (res);
-	if (cancellable != NULL)
-		state->cancellable = g_object_ref (cancellable);
-	state->control = control;
-	g_object_add_weak_pointer (G_OBJECT (state->control), (gpointer) &state->control);
-
-	/* call D-Bus get_groups async */
-	state->call = dbus_g_proxy_begin_call (control->priv->proxy, "GetGroups",
-					       (DBusGProxyCallNotify) pk_control_get_groups_cb, state,
-					       NULL, G_TYPE_INVALID);
-
-	/* track state */
-	g_ptr_array_add (control->priv->calls, state);
-
-	g_object_unref (res);
-}
-
-/**
- * pk_control_get_groups_finish:
- * @control: a valid #PkControl instance
- * @res: the #GAsyncResult
- * @error: A #GError or %NULL
- *
- * Gets the result from the asynchronous function.
- *
- * Return value: an enumerated list of the groups the backend supports, free with g_free()
- **/
-PkBitfield *
-pk_control_get_groups_finish (PkControl *control, GAsyncResult *res, GError **error)
-{
-	GSimpleAsyncResult *simple;
-	gpointer source_tag;
-
-	g_return_val_if_fail (PK_IS_CONTROL (control), NULL);
-	g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (res), NULL);
-	g_return_val_if_fail (error == NULL || *error == NULL, NULL);
-
-	simple = G_SIMPLE_ASYNC_RESULT (res);
-	source_tag = g_simple_async_result_get_source_tag (simple);
-
-	g_return_val_if_fail (source_tag == pk_control_get_groups_async, NULL);
-
-	if (g_simple_async_result_propagate_error (simple, error))
-		return NULL;
-
-	return g_simple_async_result_get_op_res_gpointer (simple);
-}
-
-/***************************************************************************************************/
-
-/**
  * pk_control_get_transaction_list_state_finish:
  **/
 static void
@@ -1629,14 +1054,38 @@ pk_control_get_properties_state_finish (PkControlState *state, GError *error)
 static void
 pk_control_get_properties_collect_cb (const char *key, const GValue *value, PkControl *control)
 {
-	if (g_strcmp0 (key, "version-major") == 0 || g_strcmp0 (key, "VersionMajor") == 0)
+	const gchar *tmp;
+
+	if (g_strcmp0 (key, "version-major") == 0 || g_strcmp0 (key, "VersionMajor") == 0) {
 		control->priv->version_major = g_value_get_uint (value);
-	else if (g_strcmp0 (key, "version-minor") == 0 || g_strcmp0 (key, "VersionMinor") == 0)
+	} else if (g_strcmp0 (key, "version-minor") == 0 || g_strcmp0 (key, "VersionMinor") == 0) {
 		control->priv->version_minor = g_value_get_uint (value);
-	else if (g_strcmp0 (key, "version-micro") == 0 || g_strcmp0 (key, "VersionMicro") == 0)
+	} else if (g_strcmp0 (key, "version-micro") == 0 || g_strcmp0 (key, "VersionMicro") == 0) {
 		control->priv->version_micro = g_value_get_uint (value);
-	else
+	} else if (g_strcmp0 (key, "BackendName") == 0) {
+		g_free (control->priv->backend_name);
+		control->priv->backend_name = g_strdup (g_value_get_string (value));
+	} else if (g_strcmp0 (key, "BackendDescription") == 0) {
+		g_free (control->priv->backend_description);
+		control->priv->backend_description = g_strdup (g_value_get_string (value));
+	} else if (g_strcmp0 (key, "BackendAuthor") == 0) {
+		g_free (control->priv->backend_author);
+		control->priv->backend_author = g_strdup (g_value_get_string (value));
+	} else if (g_strcmp0 (key, "MimeTypes") == 0) {
+		g_free (control->priv->mime_types);
+		control->priv->mime_types = g_strdup (g_value_get_string (value));
+	} else if (g_strcmp0 (key, "Roles") == 0) {
+		tmp = g_value_get_string (value);
+		control->priv->roles = pk_role_bitfield_from_text (tmp);
+	} else if (g_strcmp0 (key, "Groups") == 0) {
+		tmp = g_value_get_string (value);
+		control->priv->groups = pk_group_bitfield_from_text (tmp);
+	} else if (g_strcmp0 (key, "Filters") == 0) {
+		tmp = g_value_get_string (value);
+		control->priv->filters = pk_filter_bitfield_from_text (tmp);
+	} else {
 		egg_warning ("unhandled property '%s'", key);
+	}
 }
 
 /**
@@ -1906,6 +1355,27 @@ pk_control_get_property (GObject *object, guint prop_id, GValue *value, GParamSp
 	case PROP_VERSION_MICRO:
 		g_value_set_uint (value, priv->version_micro);
 		break;
+	case PROP_BACKEND_NAME:
+		g_value_set_string (value, priv->backend_name);
+		break;
+	case PROP_BACKEND_DESCRIPTION:
+		g_value_set_string (value, priv->backend_description);
+		break;
+	case PROP_BACKEND_AUTHOR:
+		g_value_set_string (value, priv->backend_author);
+		break;
+	case PROP_ROLES:
+		g_value_set_uint64 (value, priv->roles);
+		break;
+	case PROP_GROUPS:
+		g_value_set_uint64 (value, priv->groups);
+		break;
+	case PROP_FILTERS:
+		g_value_set_uint64 (value, priv->filters);
+		break;
+	case PROP_MIME_TYPES:
+		g_value_set_string (value, priv->mime_types);
+		break;
 	default:
 		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
 		break;
@@ -1963,6 +1433,62 @@ pk_control_class_init (PkControlClass *klass)
 	g_object_class_install_property (object_class, PROP_VERSION_MICRO, pspec);
 
 	/**
+	 * PkControl:backend-name:
+	 */
+	pspec = g_param_spec_string ("backend-name", NULL, NULL,
+				     NULL,
+				     G_PARAM_READWRITE);
+	g_object_class_install_property (object_class, PROP_BACKEND_NAME, pspec);
+
+	/**
+	 * PkControl:backend-description:
+	 */
+	pspec = g_param_spec_string ("backend-description", NULL, NULL,
+				     NULL,
+				     G_PARAM_READWRITE);
+	g_object_class_install_property (object_class, PROP_BACKEND_DESCRIPTION, pspec);
+
+	/**
+	 * PkControl:backend-author:
+	 */
+	pspec = g_param_spec_string ("backend-author", NULL, NULL,
+				     NULL,
+				     G_PARAM_READWRITE);
+	g_object_class_install_property (object_class, PROP_BACKEND_AUTHOR, pspec);
+
+	/**
+	 * PkControl:roles:
+	 */
+	pspec = g_param_spec_uint64 ("roles", NULL, NULL,
+				     0, G_MAXUINT64, 0,
+				     G_PARAM_READWRITE);
+	g_object_class_install_property (object_class, PROP_ROLES, pspec);
+
+	/**
+	 * PkControl:groups:
+	 */
+	pspec = g_param_spec_uint64 ("groups", NULL, NULL,
+				     0, G_MAXUINT64, 0,
+				     G_PARAM_READWRITE);
+	g_object_class_install_property (object_class, PROP_GROUPS, pspec);
+
+	/**
+	 * PkControl:filters:
+	 */
+	pspec = g_param_spec_uint64 ("filters", NULL, NULL,
+				     0, G_MAXUINT64, 0,
+				     G_PARAM_READWRITE);
+	g_object_class_install_property (object_class, PROP_FILTERS, pspec);
+
+	/**
+	 * PkControl:mime-types:
+	 */
+	pspec = g_param_spec_string ("mime-types", NULL, NULL,
+				     NULL,
+				     G_PARAM_READWRITE);
+	g_object_class_install_property (object_class, PROP_MIME_TYPES, pspec);
+
+	/**
 	 * PkControl::updates-changed:
 	 * @control: the #PkControl instance that emitted the signal
 	 *
@@ -2073,6 +1599,10 @@ 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->calls = g_ptr_array_new ();
 
 	/* check dbus connections, exit if not valid */
@@ -2179,6 +1709,10 @@ pk_control_finalize (GObject *object)
 	dbus_g_proxy_disconnect_signal (control->priv->proxy_dbus, "NameOwnerChanged",
 				        G_CALLBACK (pk_control_name_owner_changed_cb), control);
 
+	g_free (priv->backend_name);
+	g_free (priv->backend_description);
+	g_free (priv->backend_author);
+	g_free (priv->mime_types);
 	g_object_unref (G_OBJECT (priv->proxy));
 	g_object_unref (G_OBJECT (priv->proxy_props));
 	g_object_unref (G_OBJECT (priv->proxy_dbus));
@@ -2230,55 +1764,41 @@ pk_control_test_get_tid_cb (GObject *object, GAsyncResult *res, EggTest *test)
 }
 
 static void
-pk_control_test_get_mime_types_cb (GObject *object, GAsyncResult *res, EggTest *test)
+pk_control_test_get_properties_cb (GObject *object, GAsyncResult *res, EggTest *test)
 {
 	PkControl *control = PK_CONTROL (object);
 	GError *error = NULL;
-	gchar **types;
-	guint len;
+	gboolean ret;
+	PkBitfield roles;
+	PkBitfield filters;
+	PkBitfield groups;
+	gchar *text;
 
 	/* get the result */
-	types = pk_control_get_mime_types_finish (control, res, &error);
-	if (types == NULL) {
-		egg_test_failed (test, "failed to get mime types: %s", error->message);
+	ret = pk_control_get_properties_finish (control, res, &error);
+	if (!ret) {
+		egg_test_failed (test, "failed to get properties: %s", error->message);
 		g_error_free (error);
 		return;
 	}
 
-	/* check size */
-	len = g_strv_length (types);
-	if (len != 2) {
-		egg_test_failed (test, "length incorrect: %i", len);
-		return;
-	}
-
-	/* check value */
-	if (g_strcmp0 (types[0], "application/x-rpm") != 0) {
-		egg_test_failed (test, "data incorrect: %s", types[0]);
-		return;
-	}
-
-	egg_test_loop_quit (test);
-}
-
-static void
-pk_control_test_get_roles_cb (GObject *object, GAsyncResult *res, EggTest *test)
-{
-	PkControl *control = PK_CONTROL (object);
-	GError *error = NULL;
-	PkBitfield *roles;
-	gchar *text;
+	/* get values */
+	g_object_get (control,
+		      "mime-types", &text,
+		      "roles", &roles,
+		      "filters", &filters,
+		      "groups", &groups,
+		      NULL);
 
-	/* get the result */
-	roles = pk_control_get_roles_finish (control, res, &error);
-	if (roles == NULL) {
-		egg_test_failed (test, "failed to get roles: %s", error->message);
-		g_error_free (error);
+	/* check mime_types */
+	if (g_strcmp0 (text, "application/x-rpm;application/x-deb") != 0) {
+		egg_test_failed (test, "data incorrect: %s", text);
 		return;
 	}
+	g_free (text);
 
-	/* check value */
-	text = pk_role_bitfield_to_text (*roles);
+	/* check roles */
+	text = pk_role_bitfield_to_text (roles);
 	if (g_strcmp0 (text, "cancel;get-depends;get-details;get-files;get-packages;get-repo-list;"
 			     "get-requires;get-update-detail;get-updates;install-files;install-packages;"
 			     "refresh-cache;remove-packages;repo-enable;repo-set-data;resolve;rollback;"
@@ -2288,62 +1808,24 @@ pk_control_test_get_roles_cb (GObject *object, GAsyncResult *res, EggTest *test)
 		egg_test_failed (test, "data incorrect: %s", text);
 		return;
 	}
-
 	g_free (text);
-	egg_test_loop_quit (test);
-}
 
-static void
-pk_control_test_get_filters_cb (GObject *object, GAsyncResult *res, EggTest *test)
-{
-	PkControl *control = PK_CONTROL (object);
-	GError *error = NULL;
-	PkBitfield *filters;
-	gchar *text;
-
-	/* get the result */
-	filters = pk_control_get_filters_finish (control, res, &error);
-	if (filters == NULL) {
-		egg_test_failed (test, "failed to get filters: %s", error->message);
-		g_error_free (error);
-		return;
-	}
-
-	/* check value */
-	text = pk_filter_bitfield_to_text (*filters);
+	/* check filters */
+	text = pk_filter_bitfield_to_text (filters);
 	if (g_strcmp0 (text, "installed;devel;gui") != 0) {
 		egg_test_failed (test, "data incorrect: %s", text);
 		return;
 	}
-
 	g_free (text);
-	egg_test_loop_quit (test);
-}
-
-static void
-pk_control_test_get_groups_cb (GObject *object, GAsyncResult *res, EggTest *test)
-{
-	PkControl *control = PK_CONTROL (object);
-	GError *error = NULL;
-	PkBitfield *groups;
-	gchar *text;
 
-	/* get the result */
-	groups = pk_control_get_groups_finish (control, res, &error);
-	if (groups == NULL) {
-		egg_test_failed (test, "failed to get groups: %s", error->message);
-		g_error_free (error);
-		return;
-	}
-
-	/* check value */
-	text = pk_group_bitfield_to_text (*groups);
+	/* check groups */
+	text = pk_group_bitfield_to_text (groups);
 	if (g_strcmp0 (text, "accessibility;games;system") != 0) {
 		egg_test_failed (test, "data incorrect: %s", text);
 		return;
 	}
-
 	g_free (text);
+
 	egg_test_loop_quit (test);
 }
 
@@ -2401,24 +1883,6 @@ pk_control_test_can_authorize_cb (GObject *object, GAsyncResult *res, EggTest *t
 	egg_test_loop_quit (test);
 }
 
-static void
-pk_control_test_get_properties_cb (GObject *object, GAsyncResult *res, EggTest *test)
-{
-	PkControl *control = PK_CONTROL (object);
-	GError *error = NULL;
-	gboolean ret;
-
-	/* get the result */
-	ret = pk_control_get_properties_finish (control, res, &error);
-	if (!ret) {
-		egg_test_failed (test, "failed to get properties: %s", error->message);
-		g_error_free (error);
-		return;
-	}
-
-	egg_test_loop_quit (test);
-}
-
 void
 pk_control_test (gpointer user_data)
 {
@@ -2441,28 +1905,16 @@ pk_control_test (gpointer user_data)
 	egg_test_success (test, "got tid in %i", egg_test_elapsed (test));
 
 	/************************************************************/
-	egg_test_title (test, "get mime-types async");
-	pk_control_get_mime_types_async (control, NULL, (GAsyncReadyCallback) pk_control_test_get_mime_types_cb, test);
-	egg_test_loop_wait (test, 5000);
-	egg_test_success (test, "got mime types in %i", egg_test_elapsed (test));
-
-	/************************************************************/
-	egg_test_title (test, "get roles async");
-	pk_control_get_roles_async (control, NULL, (GAsyncReadyCallback) pk_control_test_get_roles_cb, test);
-	egg_test_loop_wait (test, 5000);
-	egg_test_success (test, "got roles in %i", egg_test_elapsed (test));
-
-	/************************************************************/
-	egg_test_title (test, "get filters async");
-	pk_control_get_filters_async (control, NULL, (GAsyncReadyCallback) pk_control_test_get_filters_cb, test);
+	egg_test_title (test, "get properties async");
+	pk_control_get_properties_async (control, NULL, (GAsyncReadyCallback) pk_control_test_get_properties_cb, test);
 	egg_test_loop_wait (test, 5000);
-	egg_test_success (test, "got filters in %i", egg_test_elapsed (test));
+	egg_test_success (test, "got properties types in %i", egg_test_elapsed (test));
 
 	/************************************************************/
-	egg_test_title (test, "get groups async");
-	pk_control_get_groups_async (control, NULL, (GAsyncReadyCallback) pk_control_test_get_groups_cb, test);
+	egg_test_title (test, "get properties async (again, to test caching)");
+	pk_control_get_properties_async (control, NULL, (GAsyncReadyCallback) pk_control_test_get_properties_cb, test);
 	egg_test_loop_wait (test, 5000);
-	egg_test_success (test, "got groups in %i", egg_test_elapsed (test));
+	egg_test_success (test, "got properties in %i", egg_test_elapsed (test));
 
 	/************************************************************/
 	egg_test_title (test, "get time since async");
@@ -2484,13 +1936,6 @@ pk_control_test (gpointer user_data)
 	egg_test_success (test, "get auth state in %i", egg_test_elapsed (test));
 
 	/************************************************************/
-	egg_test_title (test, "get properties async");
-	pk_control_get_properties_async (control, NULL,
-					 (GAsyncReadyCallback) pk_control_test_get_properties_cb, test);
-	egg_test_loop_wait (test, 5000);
-	egg_test_success (test, "get properties in %i", egg_test_elapsed (test));
-
-	/************************************************************/
 	egg_test_title (test, "version major");
 	g_object_get (control, "version-major", &version, NULL);
 	egg_test_assert (test, (version == PK_MAJOR_VERSION));
diff --git a/lib/packagekit-glib2/pk-control.h b/lib/packagekit-glib2/pk-control.h
index d708b75..9f977e6 100644
--- a/lib/packagekit-glib2/pk-control.h
+++ b/lib/packagekit-glib2/pk-control.h
@@ -112,34 +112,6 @@ void		 pk_control_set_proxy_async		(PkControl		*control,
 gboolean	 pk_control_set_proxy_finish		(PkControl		*control,
 							 GAsyncResult		*res,
 							 GError			**error);
-void		 pk_control_get_roles_async		(PkControl		*control,
-							 GCancellable		*cancellable,
-							 GAsyncReadyCallback	 callback,
-							 gpointer		 user_data);
-PkBitfield	*pk_control_get_roles_finish		(PkControl		*control,
-							 GAsyncResult		*res,
-							 GError			**error);
-void		 pk_control_get_filters_async		(PkControl		*control,
-							 GCancellable		*cancellable,
-							 GAsyncReadyCallback	 callback,
-							 gpointer		 user_data);
-PkBitfield	*pk_control_get_filters_finish		(PkControl		*control,
-							 GAsyncResult		*res,
-							 GError			**error);
-void		 pk_control_get_groups_async		(PkControl		*control,
-							 GCancellable		*cancellable,
-							 GAsyncReadyCallback	 callback,
-							 gpointer		 user_data);
-PkBitfield	*pk_control_get_groups_finish		(PkControl		*control,
-							 GAsyncResult		*res,
-							 GError			**error);
-void		 pk_control_get_mime_types_async	(PkControl		*control,
-							 GCancellable		*cancellable,
-							 GAsyncReadyCallback	 callback,
-							 gpointer		 user_data);
-gchar		**pk_control_get_mime_types_finish	(PkControl		*control,
-							 GAsyncResult		*res,
-							 GError			**error);
 void		 pk_control_get_network_state_async	(PkControl		*control,
 							 GCancellable		*cancellable,
 							 GAsyncReadyCallback	 callback,
commit eb5ed3a9cee0578d9cc1055d30726ce5e7044cec
Author: Richard Hughes <richard at hughsie.com>
Date:   Fri Sep 4 09:39:36 2009 +0100

    glib: Don't assert the client if new properties are added to the interface

diff --git a/lib/packagekit-glib/pk-control.c b/lib/packagekit-glib/pk-control.c
index bfba90f..66b133d 100644
--- a/lib/packagekit-glib/pk-control.c
+++ b/lib/packagekit-glib/pk-control.c
@@ -1102,7 +1102,6 @@ pk_control_collect_props_cb (const char *key, const GValue *value, PkControl *co
 		control->priv->version_micro = g_value_get_uint (value);
 	else {
 		egg_warning ("unhandled property '%s'", key);
-		g_assert_not_reached ();
 	}
 }
 
commit e381956427e93379156564f0478bf8a191a6a14a
Author: Richard Hughes <richard at hughsie.com>
Date:   Fri Sep 4 09:33:22 2009 +0100

    spec: Deprecate some methods on the mail interface, replacing them with properties

diff --git a/src/Makefile.am b/src/Makefile.am
index fb7e8f4..48895f7 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -152,7 +152,6 @@ BUILT_SOURCES =						\
 	pk-marshal.h					\
 	org.freedesktop.PackageKit.h			\
 	org.freedesktop.PackageKit.Transaction.h	\
-	org.freedesktop.PackageKit.Backend.h		\
 	$(NULL)
 
 pk-marshal.c: pk-marshal.list
@@ -176,13 +175,6 @@ org.freedesktop.PackageKit.Transaction.h: org.freedesktop.PackageKit.Transaction
 		--output=org.freedesktop.PackageKit.Transaction.h	\
 		$(srcdir)/org.freedesktop.PackageKit.Transaction.xml
 
-org.freedesktop.PackageKit.Backend.h: org.freedesktop.PackageKit.Backend.xml
-	$(LIBTOOL) --mode=execute dbus-binding-tool	\
-		--prefix=pk_backend			\
-		--mode=glib-server			\
-		--output=org.freedesktop.PackageKit.Backend.h	\
-		$(srcdir)/org.freedesktop.PackageKit.Backend.xml
-
 if SECURITY_TYPE_POLKIT
 # provide a PolicyKit extensions to make the authorization dialogs better
 polkitmodulesdir = $(libdir)/polkit-1/extensions
@@ -250,7 +242,6 @@ EXTRA_DIST =						\
 	pk-marshal.list					\
 	org.freedesktop.PackageKit.xml			\
 	org.freedesktop.PackageKit.Transaction.xml	\
-	org.freedesktop.PackageKit.Backend.xml		\
 	$(NULL)
 
 clean-local:
diff --git a/src/org.freedesktop.PackageKit.Backend.xml b/src/org.freedesktop.PackageKit.Backend.xml
deleted file mode 100644
index 3376e63..0000000
--- a/src/org.freedesktop.PackageKit.Backend.xml
+++ /dev/null
@@ -1,95 +0,0 @@
-<!DOCTYPE node PUBLIC
-"-//freedesktop//DTD D-BUS Object Introspection 1.0//EN"
-"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd" [
-  <!ENTITY ERROR_GENERAL "org.freedesktop.packagekit.Denied">
-]>
-<node name="/" xmlns:doc="http://www.freedesktop.org/dbus/1.0/doc.dtd">
-  <interface name="org.freedesktop.PackageKit.Backend">
-    <doc:doc>
-      <doc:description>
-        <doc:para>
-          This interface is used for getting information about the loaded backend.
-        </doc:para>
-      </doc:description>
-    </doc:doc>
-
-    <!--*****************************************************************************************-->
-    <property name="name" type="s" access="read">
-      <doc:doc>
-        <doc:description>
-          <doc:para>
-            The backend name, e.g. <doc:tt>"yum"</doc:tt>.
-          </doc:para>
-        </doc:description>
-      </doc:doc>
-    </property>
-
-    <!--*****************************************************************************************-->
-    <property name="description" type="s" access="read">
-      <doc:doc>
-        <doc:description>
-          <doc:para>
-            The backend name, e.g. <doc:tt>"Yellow Dog Update Modifier"</doc:tt>.
-          </doc:para>
-        </doc:description>
-      </doc:doc>
-    </property>
-
-    <!--*****************************************************************************************-->
-    <property name="author" type="s" access="read">
-      <doc:doc>
-        <doc:description>
-          <doc:para>
-            The backend author, e.g. <doc:tt>"Joe Bloggs &lt;joe&amp;blogs.com&gt;"</doc:tt>.
-          </doc:para>
-        </doc:description>
-      </doc:doc>
-    </property>
-
-    <!--*****************************************************************************************-->
-    <property name="roles" type="as" access="read">
-      <doc:doc>
-        <doc:description>
-          <doc:para>
-            The roles the backend supports, e.g. <doc:tt>["search-name", "refresh-cache"]</doc:tt>.
-          </doc:para>
-        </doc:description>
-      </doc:doc>
-    </property>
-
-    <!--*****************************************************************************************-->
-    <property name="groups" type="as" access="read">
-      <doc:doc>
-        <doc:description>
-          <doc:para>
-            The groups the backend supports, e.g. <doc:tt>["accessories", "games"]</doc:tt>.
-          </doc:para>
-        </doc:description>
-      </doc:doc>
-    </property>
-
-    <!--*****************************************************************************************-->
-    <property name="filters" type="as" access="read">
-      <doc:doc>
-        <doc:description>
-          <doc:para>
-            The filters the backend supports, e.g. <doc:tt>["installed", "newest"]</doc:tt>.
-          </doc:para>
-        </doc:description>
-      </doc:doc>
-    </property>
-
-    <!--*****************************************************************************************-->
-    <property name="mime-types" type="as" access="read">
-      <doc:doc>
-        <doc:description>
-          <doc:para>
-            The mime-types the backend supports, e.g. <doc:tt>["application/x-rpm", "application/x-deb"]</doc:tt>.
-          </doc:para>
-        </doc:description>
-      </doc:doc>
-    </property>
-
-  </interface>
-</node>
-
diff --git a/src/org.freedesktop.PackageKit.xml b/src/org.freedesktop.PackageKit.xml
index 6992c86..8aa93f3 100644
--- a/src/org.freedesktop.PackageKit.xml
+++ b/src/org.freedesktop.PackageKit.xml
@@ -43,6 +43,83 @@
     </property>
 
     <!--*****************************************************************************************-->
+    <property name="BackendName" type="s" access="read">
+      <doc:doc>
+        <doc:description>
+          <doc:para>
+            The backend name, e.g. <doc:tt>"yum"</doc:tt>.
+          </doc:para>
+        </doc:description>
+      </doc:doc>
+    </property>
+
+    <!--*****************************************************************************************-->
+    <property name="BackendDescription" type="s" access="read">
+      <doc:doc>
+        <doc:description>
+          <doc:para>
+            The backend description, e.g. <doc:tt>"Yellow Dog Update Modifier"</doc:tt>.
+          </doc:para>
+        </doc:description>
+      </doc:doc>
+    </property>
+
+    <!--*****************************************************************************************-->
+    <property name="BackendAuthor" type="s" access="read">
+      <doc:doc>
+        <doc:description>
+          <doc:para>
+            The backend author, e.g. <doc:tt>"Joe Bloggs &lt;joe&amp;blogs.com&gt;"</doc:tt>.
+          </doc:para>
+        </doc:description>
+      </doc:doc>
+    </property>
+
+    <!--*****************************************************************************************-->
+    <property name="Roles" type="s" access="read">
+      <doc:doc>
+        <doc:description>
+          <doc:para>
+            The roles the backend supports, e.g. <doc:tt>"search-name;refresh-cache"</doc:tt>.
+          </doc:para>
+        </doc:description>
+      </doc:doc>
+    </property>
+
+    <!--*****************************************************************************************-->
+    <property name="Groups" type="s" access="read">
+      <doc:doc>
+        <doc:description>
+          <doc:para>
+            The groups the backend supports, e.g. <doc:tt>"accessories;games"</doc:tt>.
+          </doc:para>
+        </doc:description>
+      </doc:doc>
+    </property>
+
+    <!--*****************************************************************************************-->
+    <property name="Filters" type="s" access="read">
+      <doc:doc>
+        <doc:description>
+          <doc:para>
+            The filters the backend supports, e.g. <doc:tt>"installed;newest"</doc:tt>.
+          </doc:para>
+        </doc:description>
+      </doc:doc>
+    </property>
+
+    <!--*****************************************************************************************-->
+    <property name="MimeTypes" type="s" access="read">
+      <doc:doc>
+        <doc:description>
+          <doc:para>
+            The mime-types the backend supports, e.g. <doc:tt>"application/x-rpm;application/x-deb"</doc:tt>.
+          </doc:para>
+        </doc:description>
+      </doc:doc>
+    </property>
+
+    <!--*****************************************************************************************-->
     <method name="CanAuthorize">
       <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
       <doc:doc>
@@ -79,6 +156,10 @@
           <doc:para>
             Gets a list of all the actions that are supported by the backend.
           </doc:para>
+          <doc:para>
+            THIS FUNCTION IS DEPRECATED. It will be removed in a future release.
+            Use the properties interface for the transaction instead.
+          </doc:para>
         </doc:description>
       </doc:doc>
       <arg type="s" name="actions" direction="out">
@@ -99,6 +180,10 @@
           <doc:para>
             Gets any details about the backend being used by PackageKit
           </doc:para>
+          <doc:para>
+            THIS FUNCTION IS DEPRECATED. It will be removed in a future release.
+            Use the properties interface for the transaction instead.
+          </doc:para>
         </doc:description>
       </doc:doc>
       <arg type="s" name="name" direction="out">
@@ -128,6 +213,10 @@
           <doc:para>
             Gets the list of filters that the backend supports
           </doc:para>
+          <doc:para>
+            THIS FUNCTION IS DEPRECATED. It will be removed in a future release.
+            Use the properties interface for the transaction instead.
+          </doc:para>
         </doc:description>
       </doc:doc>
       <arg type="s" name="filters" direction="out">
@@ -148,6 +237,10 @@
           <doc:para>
             Gets the groups that are supported
           </doc:para>
+          <doc:para>
+            THIS FUNCTION IS DEPRECATED. It will be removed in a future release.
+            Use the properties interface for the transaction instead.
+          </doc:para>
         </doc:description>
       </doc:doc>
       <arg type="s" name="groups" direction="out">
@@ -168,6 +261,10 @@
           <doc:para>
             Gets the MIME types of packages that are supported
           </doc:para>
+          <doc:para>
+            THIS FUNCTION IS DEPRECATED. It will be removed in a future release.
+            Use the properties interface for the transaction instead.
+          </doc:para>
         </doc:description>
       </doc:doc>
       <arg type="s" name="types" direction="out">
diff --git a/src/pk-backend-internal.h b/src/pk-backend-internal.h
index a497f0b..3fb8ac6 100644
--- a/src/pk-backend-internal.h
+++ b/src/pk-backend-internal.h
@@ -68,12 +68,13 @@ gboolean	 pk_backend_set_proxy			(PkBackend	*backend,
 							 const gchar	*proxy_ftp);
 gchar		*pk_backend_get_name			(PkBackend	*backend)
 							 G_GNUC_WARN_UNUSED_RESULT;
-gboolean	 pk_backend_get_backend_detail		(PkBackend	*backend,
-							 gchar		**name,
-							 gchar		**author);
+gchar		*pk_backend_get_description		(PkBackend	*backend)
+							 G_GNUC_WARN_UNUSED_RESULT;
+gchar		*pk_backend_get_author			(PkBackend	*backend)
+							 G_GNUC_WARN_UNUSED_RESULT;
 PkBitfield	 pk_backend_get_groups			(PkBackend	*backend);
 PkBitfield	 pk_backend_get_filters			(PkBackend	*backend);
-PkBitfield	 pk_backend_get_actions			(PkBackend	*backend);
+PkBitfield	 pk_backend_get_roles			(PkBackend	*backend);
 PkStore		*pk_backend_get_store			(PkBackend	*backend);
 gchar		*pk_backend_get_mime_types		(PkBackend	*backend);
 
diff --git a/src/pk-backend.c b/src/pk-backend.c
index 0a95267..b7f656a 100644
--- a/src/pk-backend.c
+++ b/src/pk-backend.c
@@ -191,10 +191,10 @@ pk_backend_get_filters (PkBackend *backend)
 }
 
 /**
- * pk_backend_get_actions:
+ * pk_backend_get_roles:
  **/
 PkBitfield
-pk_backend_get_actions (PkBackend *backend)
+pk_backend_get_roles (PkBackend *backend)
 {
 	PkBitfield roles = 0;
 	PkBackendDesc *desc;
@@ -581,16 +581,6 @@ pk_backend_unlock (PkBackend *backend)
 }
 
 /**
- * pk_backend_get_name:
- **/
-gchar *
-pk_backend_get_name (PkBackend *backend)
-{
-	g_return_val_if_fail (PK_IS_BACKEND (backend), NULL);
-	return g_strdup (backend->priv->name);
-}
-
-/**
  * pk_backend_emit_progress_changed:
  **/
 static gboolean
@@ -1802,20 +1792,39 @@ pk_backend_thread_create (PkBackend *backend, PkBackendThreadFunc func)
 }
 
 /**
- * pk_backend_get_backend_detail:
- */
-gboolean
-pk_backend_get_backend_detail (PkBackend *backend, gchar **name, gchar **author)
+ * pk_backend_get_name:
+ **/
+gchar *
+pk_backend_get_name (PkBackend *backend)
 {
-	g_return_val_if_fail (PK_IS_BACKEND (backend), FALSE);
+	g_return_val_if_fail (PK_IS_BACKEND (backend), NULL);
 	g_return_val_if_fail (backend->desc != NULL, FALSE);
 	g_return_val_if_fail (backend->priv->locked != FALSE, FALSE);
+	return g_strdup (backend->priv->name);
+}
 
-	if (name != NULL && backend->desc->description != NULL)
-		*name = g_strdup (backend->desc->description);
-	if (author != NULL && backend->desc->author != NULL)
-		*author = g_strdup (backend->desc->author);
-	return TRUE;
+/**
+ * pk_backend_get_description:
+ **/
+gchar *
+pk_backend_get_description (PkBackend *backend)
+{
+	g_return_val_if_fail (PK_IS_BACKEND (backend), NULL);
+	g_return_val_if_fail (backend->desc != NULL, FALSE);
+	g_return_val_if_fail (backend->priv->locked != FALSE, FALSE);
+	return g_strdup (backend->desc->description);
+}
+
+/**
+ * pk_backend_get_author:
+ **/
+gchar *
+pk_backend_get_author (PkBackend *backend)
+{
+	g_return_val_if_fail (PK_IS_BACKEND (backend), NULL);
+	g_return_val_if_fail (backend->desc != NULL, FALSE);
+	g_return_val_if_fail (backend->priv->locked != FALSE, FALSE);
+	return g_strdup (backend->desc->author);
 }
 
 /**
diff --git a/src/pk-engine.c b/src/pk-engine.c
index c77d5dd..c308b9e 100644
--- a/src/pk-engine.c
+++ b/src/pk-engine.c
@@ -81,10 +81,13 @@ struct PkEnginePrivate
 	PkDbus			*dbus;
 	PkFileMonitor		*file_monitor_conf;
 	PkFileMonitor		*file_monitor_binary;
-	PkBitfield		 actions;
+	PkBitfield		 roles;
 	PkBitfield		 groups;
 	PkBitfield		 filters;
 	gchar			*mime_types;
+	gchar			*backend_name;
+	gchar			*backend_description;
+	gchar			*backend_author;
 	guint			 timeout_priority;
 	guint			 timeout_normal;
 	guint			 timeout_priority_id;
@@ -113,6 +116,13 @@ enum {
 	PROP_VERSION_MAJOR,
 	PROP_VERSION_MINOR,
 	PROP_VERSION_MICRO,
+	PROP_BACKEND_NAME,
+	PROP_BACKEND_DESCRIPTION,
+	PROP_BACKEND_AUTHOR,
+	PROP_ROLES,
+	PROP_GROUPS,
+	PROP_FILTERS,
+	PROP_MIME_TYPES,
 	PROP_LAST,
 };
 
@@ -415,10 +425,10 @@ out:
  * pk_engine_get_actions:
  **/
 gboolean
-pk_engine_get_actions (PkEngine *engine, gchar **actions, GError **error)
+pk_engine_get_actions (PkEngine *engine, gchar **roles, GError **error)
 {
 	g_return_val_if_fail (PK_IS_ENGINE (engine), FALSE);
-	*actions = pk_role_bitfield_to_text (engine->priv->actions);
+	*roles = pk_role_bitfield_to_text (engine->priv->roles);
 
 	/* reset the timer */
 	pk_engine_reset_timer (engine);
@@ -488,7 +498,8 @@ pk_engine_get_backend_detail (PkEngine *engine, gchar **name, gchar **author, GE
 	g_return_val_if_fail (PK_IS_ENGINE (engine), FALSE);
 
 	egg_debug ("GetBackendDetail method called");
-	pk_backend_get_backend_detail (engine->priv->backend, name, author);
+	*name = pk_backend_get_description (engine->priv->backend);
+	*author = pk_backend_get_author (engine->priv->backend);
 
 	/* reset the timer */
 	pk_engine_reset_timer (engine);
@@ -831,6 +842,9 @@ pk_engine_can_authorize (PkEngine *engine, const gchar *action_id, DBusGMethodIn
 static void
 pk_engine_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec)
 {
+	PkEngine *engine = PK_ENGINE(object);
+	gchar *tmp = NULL;
+
 	switch (prop_id) {
 	case PROP_VERSION_MAJOR:
 		g_value_set_uint (value, PK_MAJOR_VERSION);
@@ -841,10 +855,35 @@ pk_engine_get_property (GObject *object, guint prop_id, GValue *value, GParamSpe
 	case PROP_VERSION_MICRO:
 		g_value_set_uint (value, PK_MICRO_VERSION);
 		break;
+	case PROP_BACKEND_NAME:
+		g_value_set_string (value, engine->priv->backend_name);
+		break;
+	case PROP_BACKEND_DESCRIPTION:
+		g_value_set_string (value, engine->priv->backend_description);
+		break;
+	case PROP_BACKEND_AUTHOR:
+		g_value_set_string (value, engine->priv->backend_author);
+		break;
+	case PROP_ROLES:
+		tmp = pk_role_bitfield_to_text (engine->priv->roles);
+		g_value_set_string (value, tmp);
+		break;
+	case PROP_GROUPS:
+		tmp = pk_group_bitfield_to_text (engine->priv->groups);
+		g_value_set_string (value, tmp);
+		break;
+	case PROP_FILTERS:
+		tmp = pk_filter_bitfield_to_text (engine->priv->filters);
+		g_value_set_string (value, tmp);
+		break;
+	case PROP_MIME_TYPES:
+		g_value_set_string (value, engine->priv->mime_types);
+		break;
 	default:
 		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
 		break;
 	}
+	g_free (tmp);
 }
 
 /**
@@ -898,6 +937,62 @@ pk_engine_class_init (PkEngineClass *klass)
 				   G_PARAM_READWRITE);
 	g_object_class_install_property (object_class, PROP_VERSION_MICRO, pspec);
 
+	/**
+	 * PkEngine:backend-name:
+	 */
+	pspec = g_param_spec_string ("backend-name", NULL, NULL,
+				     NULL,
+				     G_PARAM_READWRITE);
+	g_object_class_install_property (object_class, PROP_BACKEND_NAME, pspec);
+
+	/**
+	 * PkEngine:backend-description:
+	 */
+	pspec = g_param_spec_string ("backend-description", NULL, NULL,
+				     NULL,
+				     G_PARAM_READWRITE);
+	g_object_class_install_property (object_class, PROP_BACKEND_DESCRIPTION, pspec);
+
+	/**
+	 * PkEngine:backend-author:
+	 */
+	pspec = g_param_spec_string ("backend-author", NULL, NULL,
+				     NULL,
+				     G_PARAM_READWRITE);
+	g_object_class_install_property (object_class, PROP_BACKEND_AUTHOR, pspec);
+
+	/**
+	 * PkEngine:roles:
+	 */
+	pspec = g_param_spec_string ("roles", NULL, NULL,
+				     NULL,
+				     G_PARAM_READWRITE);
+	g_object_class_install_property (object_class, PROP_ROLES, pspec);
+
+	/**
+	 * PkEngine:groups:
+	 */
+	pspec = g_param_spec_string ("groups", NULL, NULL,
+				     NULL,
+				     G_PARAM_READWRITE);
+	g_object_class_install_property (object_class, PROP_GROUPS, pspec);
+
+	/**
+	 * PkEngine:filters:
+	 */
+	pspec = g_param_spec_string ("filters", NULL, NULL,
+				     NULL,
+				     G_PARAM_READWRITE);
+	g_object_class_install_property (object_class, PROP_FILTERS, pspec);
+
+	/**
+	 * PkEngine:mime-types:
+	 */
+	pspec = g_param_spec_string ("mime-types", NULL, NULL,
+				     NULL,
+				     G_PARAM_READWRITE);
+	g_object_class_install_property (object_class, PROP_MIME_TYPES, pspec);
+
 	/* signals */
 	signals [PK_ENGINE_LOCKED] =
 		g_signal_new ("locked",
@@ -989,6 +1084,9 @@ pk_engine_init (PkEngine *engine)
 	engine->priv->notify_clients_of_upgrade = FALSE;
 	engine->priv->shutdown_as_soon_as_possible = FALSE;
 	engine->priv->mime_types = NULL;
+	engine->priv->backend_name = NULL;
+	engine->priv->backend_description = NULL;
+	engine->priv->backend_author = NULL;
 	engine->priv->sender = NULL;
 
 	/* use the config file */
@@ -1016,10 +1114,13 @@ pk_engine_init (PkEngine *engine)
 			  G_CALLBACK (pk_engine_network_state_changed_cb), engine);
 
 	/* create a new backend so we can get the static stuff */
-	engine->priv->actions = pk_backend_get_actions (engine->priv->backend);
+	engine->priv->roles = pk_backend_get_roles (engine->priv->backend);
 	engine->priv->groups = pk_backend_get_groups (engine->priv->backend);
 	engine->priv->filters = pk_backend_get_filters (engine->priv->backend);
 	engine->priv->mime_types = pk_backend_get_mime_types (engine->priv->backend);
+	engine->priv->backend_name = pk_backend_get_name (engine->priv->backend);
+	engine->priv->backend_description = pk_backend_get_description (engine->priv->backend);
+	engine->priv->backend_author = pk_backend_get_author (engine->priv->backend);
 
 	engine->priv->timer = g_timer_new ();
 
@@ -1137,6 +1238,9 @@ pk_engine_finalize (GObject *object)
 	g_free (engine->priv->proxy_http);
 	g_free (engine->priv->proxy_ftp);
 	g_free (engine->priv->sender);
+	g_free (engine->priv->backend_name);
+	g_free (engine->priv->backend_description);
+	g_free (engine->priv->backend_author);
 
 	G_OBJECT_CLASS (pk_engine_parent_class)->finalize (object);
 }
diff --git a/src/pk-engine.h b/src/pk-engine.h
index 7dfa23a..4c88670 100644
--- a/src/pk-engine.h
+++ b/src/pk-engine.h
@@ -76,7 +76,7 @@ guint		 pk_engine_get_seconds_idle		(PkEngine	*engine);
 
 /* dbus methods */
 gboolean	 pk_engine_get_actions			(PkEngine	*engine,
-							 gchar		**actions,
+							 gchar		**roles,
 							 GError		**error);
 gboolean	 pk_engine_get_backend_detail		(PkEngine	*engine,
 							 gchar		**name,
commit 8e8a182c686204c4a437dcf9c0ceecd4c599e2f2
Merge: ca8c754... 0148d37...
Author: Richard Hughes <richard at hughsie.com>
Date:   Fri Sep 4 07:56:26 2009 +0100

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

commit 0148d3703fdbb96c2e5b80cd351db24e54e418a7
Author: swkothar <swkothar at fedoraproject.org>
Date:   Fri Sep 4 05:41:55 2009 +0000

    Sending translation for Gujarati

diff --git a/po/gu.po b/po/gu.po
index 70fed21..8323bfc 100644
--- a/po/gu.po
+++ b/po/gu.po
@@ -1,4 +1,4 @@
-# translation of packagekit.po to Gujarati
+# translation of PackageKit.po to Gujarati
 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
 # This file is distributed under the same license as the PACKAGE package.
 #
@@ -6,10 +6,10 @@
 # Sweta Kothari <swkothar at redhat.com>, 2009.
 msgid ""
 msgstr ""
-"Project-Id-Version: packagekit\n"
+"Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-09-03 02:38+0000\n"
-"PO-Revision-Date: 2009-09-03 14:39+0530\n"
+"POT-Creation-Date: 2009-09-04 02:27+0000\n"
+"PO-Revision-Date: 2009-09-04 11:11+0530\n"
 "Last-Translator: Sweta Kothari <swkothar at redhat.com>\n"
 "Language-Team: Gujarati\n"
 "MIME-Version: 1.0\n"
@@ -21,213 +21,221 @@ msgstr ""
 "\n"
 
 #. TRANSLATORS: this is an atomic transaction
-#: ../client/pk-console.c:238
+#: ../client/pk-console.c:238 ../client/pk-console-test.c:146
 msgid "Transaction"
 msgstr "પરિવહન"
 
 #. TRANSLATORS: this is the time the transaction was started in system timezone
-#: ../client/pk-console.c:240
+#: ../client/pk-console.c:240 ../client/pk-console-test.c:148
 msgid "System time"
 msgstr "સિસ્ટમ સમય"
 
 #. TRANSLATORS: this is if the transaction succeeded or not
-#: ../client/pk-console.c:242
+#: ../client/pk-console.c:242 ../client/pk-console-test.c:150
 msgid "Succeeded"
 msgstr "સફળ થયેલ"
 
-#: ../client/pk-console.c:242
+#: ../client/pk-console.c:242 ../client/pk-console-test.c:150
 msgid "True"
 msgstr "True"
 
-#: ../client/pk-console.c:242
+#: ../client/pk-console.c:242 ../client/pk-console-test.c:150
 msgid "False"
 msgstr "False"
 
 #. TRANSLATORS: this is the transactions role, e.g. "update-system"
 #. TRANSLATORS: the trasaction role, e.g. update-system
-#: ../client/pk-console.c:244 ../src/pk-polkit-action-lookup.c:327
+#: ../client/pk-console.c:244 ../client/pk-console-test.c:152
+#: ../src/pk-polkit-action-lookup.c:327
 msgid "Role"
 msgstr "ભૂમિકા"
 
 #. TRANSLATORS: this is The duration of the transaction
-#: ../client/pk-console.c:249
+#: ../client/pk-console.c:249 ../client/pk-console-test.c:157
 msgid "Duration"
 msgstr "ગાળો"
 
-#: ../client/pk-console.c:249
+#: ../client/pk-console.c:249 ../client/pk-console-test.c:157
 msgid "(seconds)"
 msgstr "(સકંડો)"
 
 #. TRANSLATORS: this is The command line used to do the action
 #. TRANSLATORS: the command line of the thing that wants the authentication
-#: ../client/pk-console.c:253 ../src/pk-polkit-action-lookup.c:341
+#: ../client/pk-console.c:253 ../client/pk-console-test.c:161
+#: ../src/pk-polkit-action-lookup.c:341
 msgid "Command line"
 msgstr "આદેશ વાક્ય"
 
 #. TRANSLATORS: this is the user ID of the user that started the action
-#: ../client/pk-console.c:255
+#: ../client/pk-console.c:255 ../client/pk-console-test.c:163
 msgid "User ID"
 msgstr "વપરાશકર્તા ID"
 
 #. TRANSLATORS: this is the username, e.g. hughsie
-#: ../client/pk-console.c:262
+#: ../client/pk-console.c:262 ../client/pk-console-test.c:170
 msgid "Username"
 msgstr "વપરાશકર્તાનામ"
 
 #. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
-#: ../client/pk-console.c:266
+#: ../client/pk-console.c:266 ../client/pk-console-test.c:174
 msgid "Real name"
 msgstr "સાચુ નામ"
 
-#: ../client/pk-console.c:274
+#: ../client/pk-console.c:274 ../client/pk-console-test.c:182
 msgid "Affected packages:"
 msgstr "અસર થયેલ પેકેજો:"
 
-#: ../client/pk-console.c:276
+#: ../client/pk-console.c:276 ../client/pk-console-test.c:184
 msgid "Affected packages: None"
 msgstr "અસર થયેલ પેકેજો: કંઇ નહિં"
 
 #. TRANSLATORS: When processing, we might have to remove other dependencies
-#: ../client/pk-console.c:337
+#: ../client/pk-console.c:337 ../client/pk-task-text.c:208
 msgid "The following packages have to be removed:"
 msgstr "નીચેના પેકેજો દૂર કરવામાં આવવા જોઈએ:"
 
 #. TRANSLATORS: When processing, we might have to install other dependencies
-#: ../client/pk-console.c:340
+#: ../client/pk-console.c:340 ../client/pk-task-text.c:213
 msgid "The following packages have to be installed:"
 msgstr "નીચેનાં પેકેજોને સ્થાપિત કરવુ જ પડશે:"
 
 #. TRANSLATORS: When processing, we might have to update other dependencies
-#: ../client/pk-console.c:343
+#: ../client/pk-console.c:343 ../client/pk-task-text.c:218
 msgid "The following packages have to be updated:"
 msgstr "નીચેનાં પેકેજોને સુધારવુ જ પડશે:"
 
 #. TRANSLATORS: When processing, we might have to reinstall other dependencies
-#: ../client/pk-console.c:346
+#: ../client/pk-console.c:346 ../client/pk-task-text.c:223
 msgid "The following packages have to be reinstalled:"
 msgstr "નીચેનાં પેકેજોને પુન:સ્થાપિત કરવુ જ પડશે:"
 
 #. TRANSLATORS: When processing, we might have to downgrade other dependencies
-#: ../client/pk-console.c:349
+#: ../client/pk-console.c:349 ../client/pk-task-text.c:228
 msgid "The following packages have to be downgraded:"
 msgstr "નીચેનાં પેકેજોને નીચે ઉતારવા જ પડશે:"
 
 #. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:363
+#: ../client/pk-console.c:363 ../client/pk-console-test.c:204
 msgid "Distribution"
 msgstr "વિતરણ"
 
 #. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:365
+#: ../client/pk-console.c:365 ../client/pk-console-test.c:206
 msgid "Type"
 msgstr "પ્રકાર"
 
 #. TRANSLATORS: this is any summary text describing the upgrade
 #. TRANSLATORS: this is the summary of the group
+#. TRANSLATORS: this is any summary text describing the upgrade
+#. TRANSLATORS: this is the summary of the group
 #: ../client/pk-console.c:367 ../client/pk-console.c:390
+#: ../client/pk-console-test.c:208 ../client/pk-console-test.c:229
 msgid "Summary"
 msgstr "સારાંશ"
 
 #. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:379
+#: ../client/pk-console.c:379 ../client/pk-console-test.c:218
 msgid "Category"
 msgstr "વર્ગ"
 
 #. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:381
+#: ../client/pk-console.c:381 ../client/pk-console-test.c:220
 msgid "ID"
 msgstr "ID"
 
 #. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:384
+#: ../client/pk-console.c:384 ../client/pk-console-test.c:223
 msgid "Parent"
 msgstr "પિતૃ"
 
 #. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:387
+#: ../client/pk-console.c:387 ../client/pk-console-test.c:226
 msgid "Name"
 msgstr "નામ"
 
 #. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:393
+#: ../client/pk-console.c:393 ../client/pk-console-test.c:232
 msgid "Icon"
 msgstr "ચિહ્ન"
 
 #. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:408
+#: ../client/pk-console.c:408 ../client/pk-console-test.c:246
 msgid "Details about the update:"
 msgstr "સુધારા વિશે વિગતો:"
 
 #. TRANSLATORS: details about the update, package name and version
 #. TRANSLATORS: title, the names of the packages that the method is processing
-#: ../client/pk-console.c:410 ../src/pk-polkit-action-lookup.c:352
+#: ../client/pk-console.c:410 ../client/pk-console-test.c:252
+#: ../client/pk-task-text.c:95 ../client/pk-task-text.c:144
+#: ../src/pk-polkit-action-lookup.c:352
 msgid "Package"
 msgid_plural "Packages"
 msgstr[0] "પેકેજ"
 msgstr[1] "પેકેજો"
 
 #. TRANSLATORS: details about the update, any packages that this update updates
-#: ../client/pk-console.c:413
+#: ../client/pk-console.c:413 ../client/pk-console-test.c:255
 msgid "Updates"
 msgstr "સુધારો"
 
 #. TRANSLATORS: details about the update, any packages that this update obsoletes
-#: ../client/pk-console.c:417
+#: ../client/pk-console.c:417 ../client/pk-console-test.c:259
 msgid "Obsoletes"
 msgstr "અપ્રચલિત"
 
 #. TRANSLATORS: details about the update, the vendor URLs
-#: ../client/pk-console.c:421
+#: ../client/pk-console.c:421 ../client/pk-console-test.c:263
+#: ../client/pk-task-text.c:145
 msgid "Vendor"
 msgstr "વિક્રેતા"
 
 #. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:425
+#: ../client/pk-console.c:425 ../client/pk-console-test.c:267
 msgid "Bugzilla"
 msgstr "બગઝીલા"
 
 #. TRANSLATORS: details about the update, the CVE URLs
-#: ../client/pk-console.c:429
+#: ../client/pk-console.c:429 ../client/pk-console-test.c:271
 msgid "CVE"
 msgstr "CVE"
 
 #. TRANSLATORS: details about the update, if the package requires a restart
-#: ../client/pk-console.c:433
+#: ../client/pk-console.c:433 ../client/pk-console-test.c:275
 msgid "Restart"
 msgstr "પુન:શરૂ કરો"
 
 #. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:437
+#: ../client/pk-console.c:437 ../client/pk-console-test.c:279
 msgid "Update text"
 msgstr "લખાણને સુધારો"
 
 #. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:441
+#: ../client/pk-console.c:441 ../client/pk-console-test.c:283
 msgid "Changes"
 msgstr "બદલાવો"
 
 #. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:445
+#: ../client/pk-console.c:445 ../client/pk-console-test.c:287
 msgid "State"
 msgstr "સ્થિતિ"
 
 #. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:450
+#: ../client/pk-console.c:450 ../client/pk-console-test.c:292
 msgid "Issued"
 msgstr "અદા કરેલ"
 
 #. TRANSLATORS: details about the update, date the update was updated
-#: ../client/pk-console.c:455
+#: ../client/pk-console.c:455 ../client/pk-console-test.c:297
 msgid "Updated"
 msgstr "સુધારેલ"
 
 #. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:475
+#: ../client/pk-console.c:475 ../client/pk-console-test.c:315
 msgid "Enabled"
 msgstr "સક્રિય થયેલ છે"
 
 #. TRANSLATORS: if the repo is disabled
-#: ../client/pk-console.c:478
+#: ../client/pk-console.c:478 ../client/pk-console-test.c:318
 msgid "Disabled"
 msgstr "નિષ્ક્રિય થયેલ"
 
@@ -240,69 +248,71 @@ msgid "Unknown"
 msgstr "અજ્ઞાત"
 
 #. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:599
+#: ../client/pk-console.c:599 ../client/pk-console-test.c:340
 msgid "System restart required by:"
 msgstr "સિસ્ટમ જરૂરિયાત પ્રમાણે પુન:શરૂ થાય છે:"
 
 #. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:602
+#: ../client/pk-console.c:602 ../client/pk-console-test.c:343
 msgid "Session restart required:"
 msgstr "સત્ર પુન:શરૂ કરવુ જરૂરી:"
 
 #. TRANSLATORS: a package requires the system to be restarted due to a security update
-#: ../client/pk-console.c:605
+#: ../client/pk-console.c:605 ../client/pk-console-test.c:346
 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:608
+#: ../client/pk-console.c:608 ../client/pk-console-test.c:349
 msgid "Session restart (security) required:"
 msgstr "સત્ર પુન:શરૂ (સુરક્ષા)કરવુ જરૂરી:"
 
 #. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:611
+#: ../client/pk-console.c:611 ../client/pk-console-test.c:352
 msgid "Application restart required by:"
 msgstr "કાર્યક્રમ એ જરૂરિયાત પ્રમાણે પુન:શરૂ થાય છે:"
 
 #. TRANSLATORS: a package needs to restart their system
-#: ../client/pk-console.c:666
+#: ../client/pk-console.c:666 ../client/pk-console-test.c:434
 msgid "Please restart the computer to complete the update."
 msgstr "સુધારો સમાપ્ત કરવા માટે મહેરબાની કરીને કમ્પ્યૂટર પુનઃશરૂ કરો."
 
 #. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:669
+#: ../client/pk-console.c:669 ../client/pk-console-test.c:437
 msgid "Please logout and login to complete the update."
 msgstr "સુધારો સમાપ્ત કરવા માટે મહેરબાની કરીને બહાર નીકળો અને પછી ફરી પ્રવેશ કરો."
 
 #. TRANSLATORS: a package needs to restart the application
-#: ../client/pk-console.c:672
+#: ../client/pk-console.c:672 ../client/pk-console-test.c:440
 msgid "Please restart the application as it is being used."
 msgstr "મહેરબાની કરીને કાર્યક્રમ ફરી શરૂ કરો કારણ કે તે વપરાઈ રહ્યો છે."
 
 #. TRANSLATORS: a package needs to restart their system (due to security)
-#: ../client/pk-console.c:675
+#: ../client/pk-console.c:675 ../client/pk-console-test.c:443
 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:678
+#: ../client/pk-console.c:678 ../client/pk-console-test.c:446
 msgid ""
 "Please logout and login to complete the update as important security updates "
 "have been installed."
-msgstr "મહેરબાની કરીને બહાર નીકળો અને સુધારાને સમાપ્ત કરવા માટે પ્રવેશો મહત્વનાં સુધારાઓને સ્થાપિત કરી દેવામાં આવ્યા છે."
+msgstr ""
+"મહેરબાની કરીને બહાર નીકળો અને સુધારાને સમાપ્ત કરવા માટે પ્રવેશો મહત્વનાં સુધારાઓને સ્થાપિત "
+"કરી દેવામાં આવ્યા છે."
 
 #. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:810
+#: ../client/pk-console.c:810 ../client/pk-console-test.c:541
 #, c-format
 msgid "The package %s is already installed"
 msgstr "પેકેજ %s પહેલાથી જ સ્થાપિત થયેલ છે"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:818
+#: ../client/pk-console.c:818 ../client/pk-console-test.c:549
 #, c-format
 msgid "The package %s could not be installed: %s"
 msgstr "પેકેજ %s સ્થાપિત કરી શક્યા નહિં: %s"
@@ -318,8 +328,9 @@ msgid "Internal error: %s"
 msgstr "આંતરિક ભૂલ: %s"
 
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
+#. ask the user
 #: ../client/pk-console.c:876 ../client/pk-console.c:948
-#: ../client/pk-console.c:1266
+#: ../client/pk-console.c:1266 ../client/pk-task-text.c:284
 msgid "Proceed with changes?"
 msgstr "બદલાવો સાથે આગળ વધો?"
 
@@ -330,25 +341,26 @@ msgstr "પેકેજ સ્થાપન રદ કરેલ હતુ!"
 
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
 #: ../client/pk-console.c:900 ../client/pk-console.c:1634
+#: ../client/pk-console-test.c:572
 #, c-format
 msgid "This tool could not install the packages: %s"
 msgstr "આ સાધન પેકેજો સ્થાપિત કરી શક્યું નહિં: %s"
 
 #. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:972
+#: ../client/pk-console.c:972 ../client/pk-console-test.c:586
 #, c-format
 msgid "This tool could not install the files: %s"
 msgstr "આ સાધન ફાઈલો સ્થાપિત કરી શક્યું નહિં: %s"
 
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:1028
+#: ../client/pk-console.c:1028 ../client/pk-console-test.c:636
 #, c-format
 msgid "This tool could not remove %s: %s"
 msgstr "આ સાધન %s દૂર કરી શક્યું નહિં: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
 #: ../client/pk-console.c:1051 ../client/pk-console.c:1089
-#: ../client/pk-console.c:1118
+#: ../client/pk-console.c:1118 ../client/pk-console-test.c:657
 #, c-format
 msgid "This tool could not remove the packages: %s"
 msgstr "આ સાધન પેકેજો દૂર કરી શક્યું નહિં: %s"
@@ -364,20 +376,21 @@ msgid "The package removal was canceled!"
 msgstr "પેકેજ નિરાકરણ રદ થઈ હતી!"
 
 #. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:1150
+#: ../client/pk-console.c:1150 ../client/pk-console-test.c:689
 #, c-format
 msgid "This tool could not download the package %s as it could not be found"
 msgstr "આ સાધન પેકેજ %s દૂર કરી શક્યું નહિં કારણ કે તે શોધી શકાયું નહિં"
 
 #. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:1181
+#: ../client/pk-console.c:1181 ../client/pk-console-test.c:711
 #, c-format
 msgid "This tool could not download the packages: %s"
 msgstr "આ સાધન પેકેજો ડાઉનલોડ કરી શક્યા નહિં: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
 #: ../client/pk-console.c:1213 ../client/pk-console.c:1225
-#: ../client/pk-console.c:1280
+#: ../client/pk-console.c:1280 ../client/pk-console-test.c:743
+#: ../client/pk-console-test.c:753
 #, c-format
 msgid "This tool could not update %s: %s"
 msgstr "આ સાધન %s સુધારી શક્યું નહિં: %s"
@@ -389,30 +402,33 @@ msgstr "પેકેજ સુધારો રદ થયેલ હતુ!"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
 #: ../client/pk-console.c:1304 ../client/pk-console.c:1312
+#: ../client/pk-console-test.c:779 ../client/pk-console-test.c:787
 #, c-format
 msgid "This tool could not get the requirements for %s: %s"
 msgstr "આ સાધન %s માટેની જરૂરીયાતો મેળવી શક્યું નહિં: %s"
 
 #. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
 #: ../client/pk-console.c:1334 ../client/pk-console.c:1342
+#: ../client/pk-console-test.c:809 ../client/pk-console-test.c:817
 #, c-format
 msgid "This tool could not get the dependencies for %s: %s"
 msgstr "આ સાધન %s માટે આધારભૂતપણાઓ મેળવી શક્યું નહિં: %s"
 
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
 #: ../client/pk-console.c:1364 ../client/pk-console.c:1372
+#: ../client/pk-console-test.c:839 ../client/pk-console-test.c:847
 #, c-format
 msgid "This tool could not get package details for %s: %s"
 msgstr "આ સાધન %s માટે પેકેજ વિગતો મેળવી શક્યું નહિં: %s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1394
+#: ../client/pk-console.c:1394 ../client/pk-console-test.c:869
 #, c-format
 msgid "This tool could not find the files for %s: %s"
 msgstr "આ સાધન %s માટે ફાઈલો શોધી શક્યું નહિં: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1402
+#: ../client/pk-console.c:1402 ../client/pk-console-test.c:877
 #, c-format
 msgid "This tool could not get the file list for %s: %s"
 msgstr "આ સાધન %s માટે ફાઈલ યાદી મેળવી શક્યું નહિં: %s"
@@ -494,13 +510,13 @@ msgid "Installing packages"
 msgstr "પેકેજોને સ્થાપિત કરી રહ્યા છે"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1663
+#: ../client/pk-console.c:1663 ../client/pk-console-test.c:899
 #, c-format
 msgid "This tool could not find the update details for %s: %s"
 msgstr "આ સાધન %s માટે સુધારા વિગતો શોધી શક્યું નહિં: %s"
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1671
+#: ../client/pk-console.c:1671 ../client/pk-console-test.c:907
 #, c-format
 msgid "This tool could not get the update details for %s: %s"
 msgstr "આ સાધન %s માટે સુધારા વિગતો મેળવી શક્યું નહિં: %s"
@@ -511,22 +527,22 @@ msgid "Error:"
 msgstr "ભૂલ:"
 
 #. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1716
+#: ../client/pk-console.c:1716 ../client/pk-console-test.c:369
 msgid "Package description"
 msgstr "પેકેજ વર્ણન"
 
 #. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
-#: ../client/pk-console.c:1732
+#: ../client/pk-console.c:1732 ../client/pk-console-test.c:387
 msgid "Message:"
 msgstr "સંદેશ:"
 
 #. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1760
+#: ../client/pk-console.c:1760 ../client/pk-console-test.c:415
 msgid "Package files"
 msgstr "પેકેજ ફાઈલો"
 
 #. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1768
+#: ../client/pk-console.c:1768 ../client/pk-console-test.c:410
 msgid "No files"
 msgstr "કોઈ ફાઈલો નથી"
 
@@ -536,12 +552,13 @@ msgid "Repository signature required"
 msgstr "રીપોઝીટરી સહી જરૂરી"
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1801
+#. ask the user
+#: ../client/pk-console.c:1801 ../client/pk-task-text.c:107
 msgid "Do you accept this signature?"
 msgstr "શું તમે આ સહી સ્વીકારશો?"
 
 #. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1805
+#: ../client/pk-console.c:1805 ../client/pk-task-text.c:111
 msgid "The signature was not accepted."
 msgstr "સહી સ્વીકારાયેલ ન હતી."
 
@@ -561,24 +578,24 @@ msgid "The license was refused."
 msgstr "લાઈસન્સ રદ થયું હતું."
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1879
+#: ../client/pk-console.c:1879 ../client/pk-console-test.c:925
 msgid "The daemon crashed mid-transaction!"
 msgstr "ડિમન મધ્ય-પરિવહન દરમ્યાન ભાંગી પડ્યું!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1932
+#: ../client/pk-console.c:1932 ../client/pk-console-test.c:969
 msgid "PackageKit Console Interface"
 msgstr "PackageKit કન્સોલ ઈન્ટરફેસ"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1934
+#: ../client/pk-console.c:1934 ../client/pk-console-test.c:971
 msgid "Subcommands:"
 msgstr "ઉપઆદેશો:"
 
 #. TRANSLATORS: command line argument, if we should show debugging information
 #. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:2027 ../client/pk-generate-pack.c:187
-#: ../client/pk-monitor.c:128
+#: ../client/pk-console.c:2027 ../client/pk-console-test.c:1202
+#: ../client/pk-generate-pack.c:187 ../client/pk-monitor.c:128
 #: ../contrib/command-not-found/pk-command-not-found.c:616
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:549
 #: ../contrib/device-rebind/pk-device-rebind.c:293 ../src/pk-main.c:211
@@ -586,17 +603,18 @@ msgid "Show extra debugging information"
 msgstr "વધારાની ડિબગીંગ જાણકારી બતાવો"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:2030 ../client/pk-monitor.c:130
+#: ../client/pk-console.c:2030 ../client/pk-console-test.c:1205
+#: ../client/pk-monitor.c:130
 msgid "Show the program version and exit"
 msgstr "કાર્યક્રમ આવૃત્તિ બતાવો અને બહાર નીકળો"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:2033
+#: ../client/pk-console.c:2033 ../client/pk-console-test.c:1208
 msgid "Set the filter, e.g. installed"
 msgstr "ગાળક સુયોજીત કરો, દા.ત. સ્થાપિત"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:2036
+#: ../client/pk-console.c:2036 ../client/pk-console-test.c:1211
 msgid "Exit without waiting for actions to complete"
 msgstr "ક્રિયાઓ સમાપ્ત થવાની રાહ જોયા વિના બહાર નીકળો"
 
@@ -606,88 +624,91 @@ msgid "This tool could not connect to system DBUS."
 msgstr "આ સાધન સિસ્ટમ DBUS સાથે જોડી શક્યા નહિં."
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:2153
+#: ../client/pk-console.c:2153 ../client/pk-console-test.c:1279
 msgid "The filter specified was invalid"
 msgstr "સ્પષ્ટ થયેલ ફિલ્ટર અયોગ્ય હતુ"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:2172
+#: ../client/pk-console.c:2172 ../client/pk-console-test.c:1298
 msgid "A search type is required, e.g. name"
 msgstr "શોધ પ્રકારની જરૂરિયાત છે, દા.ત. નામ"
 
 #. TRANSLATORS: the user needs to provide a search term
 #: ../client/pk-console.c:2179 ../client/pk-console.c:2188
 #: ../client/pk-console.c:2197 ../client/pk-console.c:2206
+#: ../client/pk-console-test.c:1305 ../client/pk-console-test.c:1317
+#: ../client/pk-console-test.c:1329 ../client/pk-console-test.c:1341
 msgid "A search term is required"
 msgstr "શોધ ટર્મ જરૂરી છે"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:2213
+#: ../client/pk-console.c:2213 ../client/pk-console-test.c:1351
 msgid "Invalid search type"
 msgstr "અયોગ્ય શોધ પ્રકાર"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:2219
+#: ../client/pk-console.c:2219 ../client/pk-console-test.c:1358
 msgid "A package name or filename to install is required"
 msgstr "સ્થાપન કરવા માટે પેકેજ નામ અથવા ફાઇલનામ જરૂરી છે"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2228
+#: ../client/pk-console.c:2228 ../client/pk-console-test.c:1368
 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:2237
+#: ../client/pk-console.c:2237 ../client/pk-console-test.c:1379
 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:2245
+#: ../client/pk-console.c:2245 ../client/pk-console-test.c:1387
 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:2252
+#: ../client/pk-console.c:2252 ../client/pk-console-test.c:1394
 msgid "Directory not found"
 msgstr "ડિરેક્ટરી મળી નહિં"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2260
+#: ../client/pk-console.c:2260 ../client/pk-console-test.c:1403
 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:2270
+#: ../client/pk-console.c:2270 ../client/pk-console-test.c:1415
 msgid "A transaction identifier (tid) is required"
 msgstr "પરિવહન ઓળખનાર (tid) જરૂરી છે"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:2287
+#: ../client/pk-console.c:2287 ../client/pk-console-test.c:1437
 msgid "A package name to resolve is required"
 msgstr "સુધારવા માટે પેકેજ નામ જરૂરી છે"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
 #: ../client/pk-console.c:2296 ../client/pk-console.c:2305
+#: ../client/pk-console-test.c:1448 ../client/pk-console-test.c:1459
 msgid "A repository name is required"
 msgstr "રીપોઝીટરી નામ જરૂરી છે"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2314
+#: ../client/pk-console.c:2314 ../client/pk-console-test.c:1470
 msgid "A repo name, parameter and value are required"
 msgstr "રીપો નામ, પરિમાણ અને કિંમતની જરૂર છે"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:2328
+#: ../client/pk-console.c:2328 ../client/pk-console-test.c:1488
 msgid "An action, e.g. 'update-system' is required"
 msgstr "ક્રિયા, દા.ત. 'update-system જરૂરી છે"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:2335
+#: ../client/pk-console.c:2335 ../client/pk-console-test.c:1495
 msgid "A correct role is required"
 msgstr "સાચી ભૂમિકા જરૂરી છે"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2342
+#: ../client/pk-console.c:2342 ../client/pk-console-test.c:1502
 msgid "Failed to get the time since this action was last completed"
 msgstr "આ ક્રિયા છેલ્લી સમાપ્ત થયેલ હતી ત્યાં સુધી સમયને મેળવવાનું નિષ્ફળ"
 
@@ -695,12 +716,15 @@ msgstr "આ ક્રિયા છેલ્લી સમાપ્ત થયેàª
 #. TRANSLATORS: This is when the user fails to supply the package name
 #: ../client/pk-console.c:2352 ../client/pk-console.c:2364
 #: ../client/pk-console.c:2373 ../client/pk-console.c:2391
-#: ../client/pk-console.c:2400 ../client/pk-generate-pack.c:243
+#: ../client/pk-console.c:2400 ../client/pk-console-test.c:1511
+#: ../client/pk-console-test.c:1526 ../client/pk-console-test.c:1535
+#: ../client/pk-console-test.c:1556 ../client/pk-console-test.c:1565
+#: ../client/pk-generate-pack.c:243
 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:2382
+#: ../client/pk-console.c:2382 ../client/pk-console-test.c:1545
 msgid "A package provide string is required"
 msgstr "પેકેજ શબ્દમાળાની પૂરી પાડે છે તેની જરૂર છે"
 
@@ -715,7 +739,7 @@ msgid "A list file to open is required"
 msgstr "ખોલવા માટે ફાઇલ યાદી જરૂરી છે"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2483
+#: ../client/pk-console.c:2483 ../client/pk-console-test.c:1619
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "વિકલ્પ '%s' આધારભૂત નથી"
@@ -726,7 +750,10 @@ msgid "Incorrect privileges for this operation"
 msgstr "આ પ્રક્રિયા કરવા માટે અયોગ્ય વિશેષાધિકારો"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2499
+#. /* TRANSLATORS: User does not have permission to do this */
+#. g_print ("%s\n", _("Incorrect privileges for this operation"));
+#. TRANSLATORS: Generic failure of what they asked to do
+#: ../client/pk-console.c:2499 ../client/pk-console-test.c:1631
 msgid "Command failed"
 msgstr "આદેશ નિષ્ફળ"
 
@@ -855,6 +882,98 @@ msgstr "PackageKit મોનીટર"
 msgid "Cannot show the list of transactions"
 msgstr "પરિવહનોની યાદી ને બતાવી શકતા નથી"
 
+#. ask the user
+#: ../client/pk-task-text.c:61
+msgid "Do you want to allow installing of unsigned software?"
+msgstr "શું તમે હસ્તાક્ષર ન થયેલ સોફ્ટવેરને સ્થાપિત કરવા માટે પરવાનગી આપવા માંગો છો?"
+
+#: ../client/pk-task-text.c:65
+msgid "The unsigned software will not be installed."
+msgstr "હસ્તાક્ષર ન થયેલ સોફ્ટવેર સ્થાપિત થયેલ હશે નહિં."
+
+#: ../client/pk-task-text.c:94
+msgid "Software source signature required"
+msgstr "સોફ્ટવેર સ્ત્રોત સહી જરૂરી"
+
+#: ../client/pk-task-text.c:96
+msgid "Software source name"
+msgstr "સોફ્ટવેર સ્ત્રોત નામ"
+
+#: ../client/pk-task-text.c:97
+msgid "Key URL"
+msgstr "કી URL"
+
+#: ../client/pk-task-text.c:98
+msgid "Key user"
+msgstr "કી વપરાશકર્તા"
+
+#: ../client/pk-task-text.c:99
+msgid "Key ID"
+msgstr "કી ID"
+
+#: ../client/pk-task-text.c:100
+msgid "Key fingerprint"
+msgstr "કી આંગળી-ચિહ્ન"
+
+#: ../client/pk-task-text.c:101
+msgid "Key Timestamp"
+msgstr "કી ટાઇમસ્ટેમ્પ"
+
+#: ../client/pk-task-text.c:142
+msgid "End user licence agreement required"
+msgstr "અંતિમ વપરાશકર્તા લાઈસન્સ મંજૂરીપત્રક જરૂરી"
+
+#: ../client/pk-task-text.c:143
+msgid "EULA ID"
+msgstr "EULA ID"
+
+#: ../client/pk-task-text.c:146
+msgid "Agreement"
+msgstr "મંજૂરીપત્રક"
+
+#. ask the user
+#: ../client/pk-task-text.c:152
+msgid "Do you accept this agreement?"
+msgstr "શું તમે આ મંજૂરીપત્રક સ્વીકારશો?"
+
+#: ../client/pk-task-text.c:156
+msgid "The agreement was not accepted."
+msgstr "મંજૂરીપત્રક સ્વીકારાયેલ ન હતી."
+
+#: ../client/pk-task-text.c:182
+msgid "Media change required"
+msgstr "મીડિયા બદલાવ જરૂરી"
+
+#: ../client/pk-task-text.c:183
+msgid "Media type"
+msgstr "મીડિયા પ્રકાર"
+
+#: ../client/pk-task-text.c:184
+msgid "Media ID"
+msgstr "મીડિયા ID"
+
+#: ../client/pk-task-text.c:185
+msgid "Text"
+msgstr "લખાણ"
+
+#. ask the user
+#: ../client/pk-task-text.c:189
+msgid "Please insert the correct media"
+msgstr "મહેરબાની કરીને યોગ્ય મીડિયાને દાખલ કરો"
+
+#: ../client/pk-task-text.c:193
+msgid "The correct media was not inserted."
+msgstr "યોગ્ય મીડિયા દાખલ થયલે ન હતુ."
+
+#: ../client/pk-task-text.c:288
+msgid "The transaction did not proceed."
+msgstr "પરિવહનની પ્રક્રિયા કરાઇ નહિં."
+
+#: ../client/pk-text.c:50
+#, c-format
+msgid "Please enter a number from 1 to %i: "
+msgstr "મહેરબાની કરીને ૧ થી %i સુધીનો નંબર દાખલ કરો: "
+
 #. TRANSLATORS: The package was not found in any software sources
 #: ../client/pk-tools-common.c:119
 #, c-format
@@ -1558,7 +1677,9 @@ msgstr "આ પેકેજ ને સ્થાપિત કરો નહિં
 
 #: ../src/pk-polkit-action-lookup.c:193
 msgid "Do not install these packages unless you are sure it is safe to do so."
-msgstr "આ પેકેજોને સ્થાપિત કરવા માટ સ્થાપિત કરો નહિં નહિં તો તમે ચોક્કસ છો કે તે કરવા માટે સલામત છે."
+msgstr ""
+"આ પેકેજોને સ્થાપિત કરવા માટ સ્થાપિત કરો નહિં નહિં તો તમે ચોક્કસ છો કે તે કરવા માટે સલામત "
+"છે."
 
 #. TRANSLATORS: warn the user that all bets are off
 #: ../src/pk-polkit-action-lookup.c:199
@@ -1575,8 +1696,3 @@ msgstr "ઘણાબધા પેકેજો"
 msgid "Only trusted"
 msgstr "માત્ર વિશ્ર્વાસપાત્ર"
 
-#: ../client/pk-text.c:50
-#, c-format
-msgid "Please enter a number from 1 to %i: "
-msgstr "મહેરબાની કરીને ૧ થી %i સુધીનો નંબર દાખલ કરો: "
-
commit e157633d287c784c9af75204efe41b207d7745c7
Author: rajesh <rajesh at fedoraproject.org>
Date:   Fri Sep 4 04:38:53 2009 +0000

    Sending translation for Hindi

diff --git a/po/hi.po b/po/hi.po
index 4fdcf2e..d1ffb7f 100644
--- a/po/hi.po
+++ b/po/hi.po
@@ -7,8 +7,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: packagekit.master\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-09-02 02:37+0000\n"
-"PO-Revision-Date: 2009-09-03 15:50+0530\n"
+"POT-Creation-Date: 2009-09-04 02:27+0000\n"
+"PO-Revision-Date: 2009-09-04 10:09+0530\n"
 "Last-Translator: Rajesh Ranjan <rajesh672 at gmail.com>\n"
 "Language-Team: Hindi <hindi.sf.net>\n"
 "MIME-Version: 1.0\n"
@@ -17,773 +17,803 @@ msgstr ""
 "X-Generator: KBabel 1.11.4\n"
 "Plural-Forms: nplurals=2; plural=(n!=1);\n\n"
 "\n"
+"\n"
 
 #. TRANSLATORS: this is an atomic transaction
-#: ../client/pk-console.c:235
+#: ../client/pk-console.c:238 ../client/pk-console-test.c:146
 msgid "Transaction"
 msgstr "लेनदेन"
 
 #. TRANSLATORS: this is the time the transaction was started in system timezone
-#: ../client/pk-console.c:237
+#: ../client/pk-console.c:240 ../client/pk-console-test.c:148
 msgid "System time"
 msgstr "सिस्टम समय"
 
 #. TRANSLATORS: this is if the transaction succeeded or not
-#: ../client/pk-console.c:239
+#: ../client/pk-console.c:242 ../client/pk-console-test.c:150
 msgid "Succeeded"
 msgstr "सफल"
 
-#: ../client/pk-console.c:239
+#: ../client/pk-console.c:242 ../client/pk-console-test.c:150
 msgid "True"
 msgstr "सही"
 
-#: ../client/pk-console.c:239
+#: ../client/pk-console.c:242 ../client/pk-console-test.c:150
 msgid "False"
 msgstr "गलत"
 
 #. TRANSLATORS: this is the transactions role, e.g. "update-system"
 #. TRANSLATORS: the trasaction role, e.g. update-system
-#: ../client/pk-console.c:241 ../src/pk-polkit-action-lookup.c:327
+#: ../client/pk-console.c:244 ../client/pk-console-test.c:152
+#: ../src/pk-polkit-action-lookup.c:327
 msgid "Role"
 msgstr "भूमिका"
 
 #. TRANSLATORS: this is The duration of the transaction
-#: ../client/pk-console.c:246
+#: ../client/pk-console.c:249 ../client/pk-console-test.c:157
 msgid "Duration"
 msgstr "अवधि"
 
-#: ../client/pk-console.c:246
+#: ../client/pk-console.c:249 ../client/pk-console-test.c:157
 msgid "(seconds)"
 msgstr "(सेकेंड)"
 
 #. TRANSLATORS: this is The command line used to do the action
 #. TRANSLATORS: the command line of the thing that wants the authentication
-#: ../client/pk-console.c:250 ../src/pk-polkit-action-lookup.c:341
+#: ../client/pk-console.c:253 ../client/pk-console-test.c:161
+#: ../src/pk-polkit-action-lookup.c:341
 msgid "Command line"
 msgstr "कमांड लाइन"
 
 #. TRANSLATORS: this is the user ID of the user that started the action
-#: ../client/pk-console.c:252
+#: ../client/pk-console.c:255 ../client/pk-console-test.c:163
 msgid "User ID"
 msgstr "उपयोक्ता ID"
 
 #. TRANSLATORS: this is the username, e.g. hughsie
-#: ../client/pk-console.c:259
+#: ../client/pk-console.c:262 ../client/pk-console-test.c:170
 msgid "Username"
 msgstr "उपयोक्ता नाम"
 
 #. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
-#: ../client/pk-console.c:263
+#: ../client/pk-console.c:266 ../client/pk-console-test.c:174
 msgid "Real name"
 msgstr "वास्तविक नाम"
 
-#: ../client/pk-console.c:271
+#: ../client/pk-console.c:274 ../client/pk-console-test.c:182
 msgid "Affected packages:"
 msgstr "प्रभावित संकुल:"
 
-#: ../client/pk-console.c:273
+#: ../client/pk-console.c:276 ../client/pk-console-test.c:184
 msgid "Affected packages: None"
 msgstr "प्रभावित संकुल: कुछ नहीं"
 
 #. TRANSLATORS: When processing, we might have to remove other dependencies
-#: ../client/pk-console.c:334
+#: ../client/pk-console.c:337 ../client/pk-task-text.c:208
 msgid "The following packages have to be removed:"
 msgstr "निम्नलिखित संकुल को हटाया जाने वाला है:"
 
 #. TRANSLATORS: When processing, we might have to install other dependencies
-#: ../client/pk-console.c:337
+#: ../client/pk-console.c:340 ../client/pk-task-text.c:213
 msgid "The following packages have to be installed:"
 msgstr "निम्नलिखित संकुल को संस्थापित किया जाने वाला है:"
 
 #. TRANSLATORS: When processing, we might have to update other dependencies
-#: ../client/pk-console.c:340
+#: ../client/pk-console.c:343 ../client/pk-task-text.c:218
 msgid "The following packages have to be updated:"
 msgstr "निम्नलिखित संकुल को अद्यतन किया जाना है:"
 
 #. TRANSLATORS: When processing, we might have to reinstall other dependencies
-#: ../client/pk-console.c:343
+#: ../client/pk-console.c:346 ../client/pk-task-text.c:223
 msgid "The following packages have to be reinstalled:"
 msgstr "निम्नलिखित संकुल को फिर संस्थापित किया जाने वाला है:"
 
 #. TRANSLATORS: When processing, we might have to downgrade other dependencies
-#: ../client/pk-console.c:346
+#: ../client/pk-console.c:349 ../client/pk-task-text.c:228
 msgid "The following packages have to be downgraded:"
 msgstr "निम्नलिखित संकुल को फिर पदावनत किया जाने वाला है:"
 
 #. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:360
+#: ../client/pk-console.c:363 ../client/pk-console-test.c:204
 msgid "Distribution"
 msgstr "वितरण"
 
 #. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:362
+#: ../client/pk-console.c:365 ../client/pk-console-test.c:206
 msgid "Type"
 msgstr "क़िस्म"
 
 #. TRANSLATORS: this is any summary text describing the upgrade
 #. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:364 ../client/pk-console.c:387
+#. TRANSLATORS: this is any summary text describing the upgrade
+#. TRANSLATORS: this is the summary of the group
+#: ../client/pk-console.c:367 ../client/pk-console.c:390
+#: ../client/pk-console-test.c:208 ../client/pk-console-test.c:229
 msgid "Summary"
 msgstr "सारांश"
 
 #. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:376
+#: ../client/pk-console.c:379 ../client/pk-console-test.c:218
 msgid "Category"
 msgstr "श्रेणी"
 
 #. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:378
+#: ../client/pk-console.c:381 ../client/pk-console-test.c:220
 msgid "ID"
 msgstr "ID"
 
 #. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:381
+#: ../client/pk-console.c:384 ../client/pk-console-test.c:223
 msgid "Parent"
 msgstr "पैरेंट"
 
 #. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:384
+#: ../client/pk-console.c:387 ../client/pk-console-test.c:226
 msgid "Name"
 msgstr "नाम"
 
 #. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:390
+#: ../client/pk-console.c:393 ../client/pk-console-test.c:232
 msgid "Icon"
 msgstr "प्रतीक"
 
 #. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:405
+#: ../client/pk-console.c:408 ../client/pk-console-test.c:246
 msgid "Details about the update:"
 msgstr "अद्यतन के बारे में विवरण:"
 
 #. TRANSLATORS: details about the update, package name and version
 #. TRANSLATORS: title, the names of the packages that the method is processing
-#: ../client/pk-console.c:407 ../src/pk-polkit-action-lookup.c:352
+#: ../client/pk-console.c:410 ../client/pk-console-test.c:252
+#: ../client/pk-task-text.c:95 ../client/pk-task-text.c:144
+#: ../src/pk-polkit-action-lookup.c:352
 msgid "Package"
 msgid_plural "Packages"
 msgstr[0] "संकुल"
 msgstr[1] "संकुल"
 
 #. TRANSLATORS: details about the update, any packages that this update updates
-#: ../client/pk-console.c:410
+#: ../client/pk-console.c:413 ../client/pk-console-test.c:255
 msgid "Updates"
 msgstr "अद्यतन"
 
 #. TRANSLATORS: details about the update, any packages that this update obsoletes
-#: ../client/pk-console.c:414
+#: ../client/pk-console.c:417 ../client/pk-console-test.c:259
 msgid "Obsoletes"
 msgstr "पुराना"
 
 #. TRANSLATORS: details about the update, the vendor URLs
-#: ../client/pk-console.c:418
+#: ../client/pk-console.c:421 ../client/pk-console-test.c:263
+#: ../client/pk-task-text.c:145
 msgid "Vendor"
 msgstr "विक्रेता"
 
 #. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:422
+#: ../client/pk-console.c:425 ../client/pk-console-test.c:267
 msgid "Bugzilla"
 msgstr "बगजिला"
 
 #. TRANSLATORS: details about the update, the CVE URLs
-#: ../client/pk-console.c:426
+#: ../client/pk-console.c:429 ../client/pk-console-test.c:271
 msgid "CVE"
 msgstr "CVE"
 
 #. TRANSLATORS: details about the update, if the package requires a restart
-#: ../client/pk-console.c:430
+#: ../client/pk-console.c:433 ../client/pk-console-test.c:275
 msgid "Restart"
 msgstr "फिर से  चालू करें"
 
 #. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:434
+#: ../client/pk-console.c:437 ../client/pk-console-test.c:279
 msgid "Update text"
 msgstr "पाठ अद्यतन करें"
 
 #. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:438
+#: ../client/pk-console.c:441 ../client/pk-console-test.c:283
 msgid "Changes"
 msgstr "परिवर्तन"
 
 #. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:442
+#: ../client/pk-console.c:445 ../client/pk-console-test.c:287
 msgid "State"
 msgstr "स्थिति"
 
 #. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:447
+#: ../client/pk-console.c:450 ../client/pk-console-test.c:292
 msgid "Issued"
 msgstr "निर्गत"
 
 #. TRANSLATORS: details about the update, date the update was updated
-#: ../client/pk-console.c:452
+#: ../client/pk-console.c:455 ../client/pk-console-test.c:297
 msgid "Updated"
 msgstr "अद्यतन किया गया"
 
 #. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:472
+#: ../client/pk-console.c:475 ../client/pk-console-test.c:315
 msgid "Enabled"
 msgstr "सक्षम"
 
 #. TRANSLATORS: if the repo is disabled
-#: ../client/pk-console.c:475
+#: ../client/pk-console.c:478 ../client/pk-console-test.c:318
 msgid "Disabled"
 msgstr "अक्षम"
 
-#: ../client/pk-console.c:552 ../client/pk-console.c:554
+#: ../client/pk-console.c:555 ../client/pk-console.c:557
 msgid "Percentage"
 msgstr "प्रतिशत"
 
-#: ../client/pk-console.c:554
+#: ../client/pk-console.c:557
 msgid "Unknown"
 msgstr "अज्ञात"
 
 #. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:596
+#: ../client/pk-console.c:599 ../client/pk-console-test.c:340
 msgid "System restart required by:"
 msgstr "तंत्र पुनःप्रारंभ इनके द्वारा जरूरी:"
 
 #. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:599
+#: ../client/pk-console.c:602 ../client/pk-console-test.c:343
 msgid "Session restart required:"
 msgstr "सत्र पुनःप्रारंभ जरूरी:"
 
 #. TRANSLATORS: a package requires the system to be restarted due to a security update
-#: ../client/pk-console.c:602
+#: ../client/pk-console.c:605 ../client/pk-console-test.c:346
 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:605
+#: ../client/pk-console.c:608 ../client/pk-console-test.c:349
 msgid "Session restart (security) required:"
 msgstr "तंत्र पुनःप्रारंभ (सुरक्षा) जरूरी:"
 
 #. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:608
+#: ../client/pk-console.c:611 ../client/pk-console-test.c:352
 msgid "Application restart required by:"
 msgstr "अनुप्रयोग पुनःप्रारंभ इसके द्वारा जरूरी:"
 
 #. TRANSLATORS: a package needs to restart their system
-#: ../client/pk-console.c:663
+#: ../client/pk-console.c:666 ../client/pk-console-test.c:434
 msgid "Please restart the computer to complete the update."
 msgstr "कृपया अद्यतन पूरी करने के लिए कंप्यूटर पुनःप्रारंभ करें."
 
 #. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:666
+#: ../client/pk-console.c:669 ../client/pk-console-test.c:437
 msgid "Please logout and login to complete the update."
 msgstr "कृपया अद्यतन पूरा करने के लिए लॉगआउट और लॉगिन करें"
 
 #. TRANSLATORS: a package needs to restart the application
-#: ../client/pk-console.c:669
+#: ../client/pk-console.c:672 ../client/pk-console-test.c:440
 msgid "Please restart the application as it is being used."
 msgstr "कृपया अनुप्रयोग पुनःप्रारंभ करें जैसा यह प्रयुक्त हो रहा है."
 
 #. TRANSLATORS: a package needs to restart their system (due to security)
-#: ../client/pk-console.c:672
+#: ../client/pk-console.c:675 ../client/pk-console-test.c:443
 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:675
+#: ../client/pk-console.c:678 ../client/pk-console-test.c:446
 msgid ""
 "Please logout and login to complete the update as important security updates "
 "have been installed."
-msgstr "कृपया अद्यतन पूरी करने के लिए लॉगआउट व लॉगिन होएँ क्योंकि किसी महत्वपूर्ण सुरक्षा अद्यतन को संस्थापित किया जाना है."
+msgstr ""
+"कृपया अद्यतन पूरी करने के लिए लॉगआउट व लॉगिन होएँ क्योंकि किसी महत्वपूर्ण सुरक्षा अद्यतन "
+"को संस्थापित किया जाना है."
 
 #. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:807
+#: ../client/pk-console.c:810 ../client/pk-console-test.c:541
 #, c-format
 msgid "The package %s is already installed"
 msgstr "यह संकुल %s पहले से संस्थापित है"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:815
+#: ../client/pk-console.c:818 ../client/pk-console-test.c:549
 #, c-format
 msgid "The package %s could not be installed: %s"
 msgstr "संकुल %s संस्थापित नहीं किया जा सका: %s"
 
 #. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
-#: ../client/pk-console.c:841 ../client/pk-console.c:889
-#: ../client/pk-console.c:913 ../client/pk-console.c:961
-#: ../client/pk-console.c:1057 ../client/pk-console.c:1170
-#: ../client/pk-console.c:1231 ../client/pk-tools-common.c:62
-#: ../client/pk-tools-common.c:81 ../client/pk-tools-common.c:89
+#: ../client/pk-console.c:844 ../client/pk-console.c:892
+#: ../client/pk-console.c:916 ../client/pk-console.c:964
+#: ../client/pk-console.c:1060 ../client/pk-console.c:1173
+#: ../client/pk-console.c:1234 ../client/pk-tools-common.c:63
+#: ../client/pk-tools-common.c:82 ../client/pk-tools-common.c:90
 #, c-format
 msgid "Internal error: %s"
 msgstr "आंतरिक त्रुटि: %s"
 
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:873 ../client/pk-console.c:945
-#: ../client/pk-console.c:1263
+#. ask the user
+#: ../client/pk-console.c:876 ../client/pk-console.c:948
+#: ../client/pk-console.c:1266 ../client/pk-task-text.c:284
 msgid "Proceed with changes?"
 msgstr "परिवर्तन के साथ आगे बढ़ें?"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:878 ../client/pk-console.c:950
+#: ../client/pk-console.c:881 ../client/pk-console.c:953
 msgid "The package install was canceled!"
 msgstr "संकुल हटाया जाना रद्द किया गया था!"
 
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:897 ../client/pk-console.c:1631
+#: ../client/pk-console.c:900 ../client/pk-console.c:1634
+#: ../client/pk-console-test.c:572
 #, c-format
 msgid "This tool could not install the packages: %s"
 msgstr "यह औजार संकुल को नहीं संस्थापित कर सका: %s"
 
 #. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:969
+#: ../client/pk-console.c:972 ../client/pk-console-test.c:586
 #, c-format
 msgid "This tool could not install the files: %s"
 msgstr "यह औज़ार फाइलों को नहीं संस्थापित कर सका: %s"
 
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:1025
+#: ../client/pk-console.c:1028 ../client/pk-console-test.c:636
 #, c-format
 msgid "This tool could not remove %s: %s"
 msgstr "यह औज़ार %s को हटा नहीं सका: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:1048 ../client/pk-console.c:1086
-#: ../client/pk-console.c:1115
+#: ../client/pk-console.c:1051 ../client/pk-console.c:1089
+#: ../client/pk-console.c:1118 ../client/pk-console-test.c:657
 #, c-format
 msgid "This tool could not remove the packages: %s"
 msgstr "यह औज़ार संकुलों को हटा नहीं सका: %s"
 
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:1101
+#: ../client/pk-console.c:1104
 msgid "Proceed with additional packages?"
 msgstr "अतिरिक्त संकुल के साथ आगे बढ़ें?"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:1106
+#: ../client/pk-console.c:1109
 msgid "The package removal was canceled!"
 msgstr "संकुल हटाया जाना रद्द किया गया था!"
 
 #. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:1147
+#: ../client/pk-console.c:1150 ../client/pk-console-test.c:689
 #, c-format
 msgid "This tool could not download the package %s as it could not be found"
 msgstr "यह औज़ार %s को डाउनलोड नहीं कर सका क्योंकि यह नहीं पाया जा सका"
 
 #. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:1178
+#: ../client/pk-console.c:1181 ../client/pk-console-test.c:711
 #, c-format
 msgid "This tool could not download the packages: %s"
 msgstr "यह औज़ार को डाउनलोड नहीं कर सका: %s "
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1210 ../client/pk-console.c:1222
-#: ../client/pk-console.c:1277
+#: ../client/pk-console.c:1213 ../client/pk-console.c:1225
+#: ../client/pk-console.c:1280 ../client/pk-console-test.c:743
+#: ../client/pk-console-test.c:753
 #, c-format
 msgid "This tool could not update %s: %s"
 msgstr "यह औज़ार %s को अद्यतन नहीं कर सका: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:1268
+#: ../client/pk-console.c:1271
 msgid "The package update was canceled!"
 msgstr "संकुल अद्यतन रद्द किया गया था!"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1301 ../client/pk-console.c:1309
+#: ../client/pk-console.c:1304 ../client/pk-console.c:1312
+#: ../client/pk-console-test.c:779 ../client/pk-console-test.c:787
 #, c-format
 msgid "This tool could not get the requirements for %s: %s"
 msgstr "यह औज़ार %s के लिए जरूरतें नहीं पा सका: %s"
 
 #. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:1331 ../client/pk-console.c:1339
+#: ../client/pk-console.c:1334 ../client/pk-console.c:1342
+#: ../client/pk-console-test.c:809 ../client/pk-console-test.c:817
 #, c-format
 msgid "This tool could not get the dependencies for %s: %s"
 msgstr "यह औज़ार %s के लिए निर्भरता नहीं पा सका: %s"
 
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:1361 ../client/pk-console.c:1369
+#: ../client/pk-console.c:1364 ../client/pk-console.c:1372
+#: ../client/pk-console-test.c:839 ../client/pk-console-test.c:847
 #, c-format
 msgid "This tool could not get package details for %s: %s"
 msgstr "यह औज़ार %s के लिए संकुल विवरण नहीं पा सका: %s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1391
+#: ../client/pk-console.c:1394 ../client/pk-console-test.c:869
 #, c-format
 msgid "This tool could not find the files for %s: %s"
 msgstr "यह औज़ार %s के लिए फ़ाइलें नहीं पा सका: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1399
+#: ../client/pk-console.c:1402 ../client/pk-console-test.c:877
 #, c-format
 msgid "This tool could not get the file list for %s: %s"
 msgstr "यह औज़ार %s के लिए फ़ाइल सूची नहीं पा सका: %s"
 
 #. TRANSLATORS: There was an error getting the list of packages. The filename follows
-#: ../client/pk-console.c:1421
+#: ../client/pk-console.c:1424
 #, c-format
 msgid "File already exists: %s"
 msgstr "पहले से मौजूद है: %s"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1426 ../client/pk-console.c:1482
-#: ../client/pk-console.c:1557
+#: ../client/pk-console.c:1429 ../client/pk-console.c:1485
+#: ../client/pk-console.c:1560
 msgid "Getting package list"
 msgstr "पैकेज सूची पा रहा है"
 
 #. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1432 ../client/pk-console.c:1488
-#: ../client/pk-console.c:1563
+#: ../client/pk-console.c:1435 ../client/pk-console.c:1491
+#: ../client/pk-console.c:1566
 #, c-format
 msgid "This tool could not get package list: %s"
 msgstr "यह औज़ार संकुल सूची नहीं पा सका: %s"
 
 #. TRANSLATORS: There was an error saving the list
-#: ../client/pk-console.c:1443
+#: ../client/pk-console.c:1446
 #, c-format
 msgid "Failed to save to disk"
 msgstr "डिस्क में सहेजने में विफल"
 
 #. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1477 ../client/pk-console.c:1552
+#: ../client/pk-console.c:1480 ../client/pk-console.c:1555
 #, c-format
 msgid "File does not exist: %s"
 msgstr "फ़ाइल मौजूद नहीं है: %s"
 
 #. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1509
+#: ../client/pk-console.c:1512
 msgid "Packages to add"
 msgstr "जोड़ने के लिए संकुल"
 
 #. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1517
+#: ../client/pk-console.c:1520
 msgid "Packages to remove"
 msgstr "हटाने के लिए संकुल"
 
 #. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1585
+#: ../client/pk-console.c:1588
 #, c-format
 msgid "No new packages need to be installed"
 msgstr "कोई नया संकुल संस्थापित होने के लिए नहीं"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1591
+#: ../client/pk-console.c:1594
 msgid "To install"
 msgstr "संस्थापित करने के लिए"
 
 #. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1603
+#: ../client/pk-console.c:1606
 msgid "Searching for package: "
 msgstr "संकुल के खोज रहा है: "
 
 #. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1607
+#: ../client/pk-console.c:1610
 msgid "not found."
 msgstr "नहीं पाया."
 
 #. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1618
+#: ../client/pk-console.c:1621
 #, c-format
 msgid "No packages can be found to install"
 msgstr "संस्थापित करने के लिए कोई संकुल नहीं मिला"
 
 #. TRANSLATORS: installing new packages from package list
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
-#: ../client/pk-console.c:1624
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:886
+#: ../client/pk-console.c:1627
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:885
 #, c-format
 msgid "Installing packages"
 msgstr "संकुल अधिष्ठापित कर रहा है"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1660
+#: ../client/pk-console.c:1663 ../client/pk-console-test.c:899
 #, c-format
 msgid "This tool could not find the update details for %s: %s"
 msgstr "यह औज़ार %s के लिए अद्यतन विवरण नहीं ढूँढ़ सका: %s"
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1668
+#: ../client/pk-console.c:1671 ../client/pk-console-test.c:907
 #, c-format
 msgid "This tool could not get the update details for %s: %s"
 msgstr "यह औज़ार %s के लिए अद्यतन विवरण नहीं पा सका: %s"
 
 #. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
-#: ../client/pk-console.c:1699
+#: ../client/pk-console.c:1702
 msgid "Error:"
 msgstr "त्रुटि:"
 
 #. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1713
+#: ../client/pk-console.c:1716 ../client/pk-console-test.c:369
 msgid "Package description"
 msgstr "संकुल विवरण"
 
 #. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
-#: ../client/pk-console.c:1729
+#: ../client/pk-console.c:1732 ../client/pk-console-test.c:387
 msgid "Message:"
 msgstr "संदेशः"
 
 #. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1757
+#: ../client/pk-console.c:1760 ../client/pk-console-test.c:415
 msgid "Package files"
 msgstr "संकुल फ़ाइल"
 
 #. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1765
+#: ../client/pk-console.c:1768 ../client/pk-console-test.c:410
 msgid "No files"
 msgstr "कोई फ़ाइल नहीं"
 
 #. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1788
+#: ../client/pk-console.c:1791
 msgid "Repository signature required"
 msgstr "रिपोजिटरी हस्ताक्षर जरूरी"
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1798
+#. ask the user
+#: ../client/pk-console.c:1801 ../client/pk-task-text.c:107
 msgid "Do you accept this signature?"
 msgstr "क्या आप यह हस्ताक्षर स्वीकार करते हैं?"
 
 #. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1802
+#: ../client/pk-console.c:1805 ../client/pk-task-text.c:111
 msgid "The signature was not accepted."
 msgstr "हस्ताक्षर स्वीकार नहीं किया गया था."
 
 #. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1836
+#: ../client/pk-console.c:1839
 msgid "End user license agreement required"
 msgstr "अंत्य उपयोक्ता लाइसेंस मसौदा जरूरी"
 
 #. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1843
+#: ../client/pk-console.c:1846
 msgid "Do you agree to this license?"
 msgstr "क्या आप इस लाइसेंस से सहमत हैं?"
 
 #. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1847
+#: ../client/pk-console.c:1850
 msgid "The license was refused."
 msgstr "लाइसेंस अस्वीकृत किया गया."
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1876
+#: ../client/pk-console.c:1879 ../client/pk-console-test.c:925
 msgid "The daemon crashed mid-transaction!"
 msgstr "यह डेमॉन मध्य विनिमय में क्रैश कर गया!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1929
+#: ../client/pk-console.c:1932 ../client/pk-console-test.c:969
 msgid "PackageKit Console Interface"
 msgstr "पैकेजकिट कंसोल अंतरफलक"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1931
+#: ../client/pk-console.c:1934 ../client/pk-console-test.c:971
 msgid "Subcommands:"
 msgstr "उपकमांड:"
 
 #. TRANSLATORS: command line argument, if we should show debugging information
 #. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:2024 ../client/pk-generate-pack.c:185
-#: ../client/pk-monitor.c:128
+#: ../client/pk-console.c:2027 ../client/pk-console-test.c:1202
+#: ../client/pk-generate-pack.c:187 ../client/pk-monitor.c:128
 #: ../contrib/command-not-found/pk-command-not-found.c:616
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:550
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:549
 #: ../contrib/device-rebind/pk-device-rebind.c:293 ../src/pk-main.c:211
 msgid "Show extra debugging information"
 msgstr "अतिरिक्त डिबगिंग सूचना दिखाएं"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:2027 ../client/pk-monitor.c:130
+#: ../client/pk-console.c:2030 ../client/pk-console-test.c:1205
+#: ../client/pk-monitor.c:130
 msgid "Show the program version and exit"
 msgstr "प्रोग्राम संस्करण दिखाएँ और बाहर निकलें"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:2030
+#: ../client/pk-console.c:2033 ../client/pk-console-test.c:1208
 msgid "Set the filter, e.g. installed"
 msgstr "फ़िल्टर सेट करें, उदा. संस्थापित"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:2033
+#: ../client/pk-console.c:2036 ../client/pk-console-test.c:1211
 msgid "Exit without waiting for actions to complete"
 msgstr "पूरा होने के लिए क्रिया के लिए प्रतीक्षारत रहे बिना बाहर निकलें"
 
 #. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:2060
+#: ../client/pk-console.c:2063
 msgid "This tool could not connect to system DBUS."
 msgstr "यह औज़ार DBUS में कनेक्ट नहीं हो सका."
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:2150
+#: ../client/pk-console.c:2153 ../client/pk-console-test.c:1279
 msgid "The filter specified was invalid"
 msgstr "निर्दिष्ट फिल्टर अवैध था"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:2169
+#: ../client/pk-console.c:2172 ../client/pk-console-test.c:1298
 msgid "A search type is required, e.g. name"
 msgstr "खोज प्रकार जरूरी है, उदा. name"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:2176 ../client/pk-console.c:2185
-#: ../client/pk-console.c:2194 ../client/pk-console.c:2203
+#: ../client/pk-console.c:2179 ../client/pk-console.c:2188
+#: ../client/pk-console.c:2197 ../client/pk-console.c:2206
+#: ../client/pk-console-test.c:1305 ../client/pk-console-test.c:1317
+#: ../client/pk-console-test.c:1329 ../client/pk-console-test.c:1341
 msgid "A search term is required"
 msgstr "खोज पद जरूरी है"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:2210
+#: ../client/pk-console.c:2213 ../client/pk-console-test.c:1351
 msgid "Invalid search type"
 msgstr "अवैध खोज प्रकार"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:2216
+#: ../client/pk-console.c:2219 ../client/pk-console-test.c:1358
 msgid "A package name or filename to install is required"
 msgstr "संस्थापित करने के लिए पैकेज नाम या फाइलनाम जरूरी है"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2225
+#: ../client/pk-console.c:2228 ../client/pk-console-test.c:1368
 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:2234
+#: ../client/pk-console.c:2237 ../client/pk-console-test.c:1379
 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:2242
+#: ../client/pk-console.c:2245 ../client/pk-console-test.c:1387
 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:2249
+#: ../client/pk-console.c:2252 ../client/pk-console-test.c:1394
 msgid "Directory not found"
 msgstr "निर्देशिका नहीं मिला"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2257
+#: ../client/pk-console.c:2260 ../client/pk-console-test.c:1403
 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:2267
+#: ../client/pk-console.c:2270 ../client/pk-console-test.c:1415
 msgid "A transaction identifier (tid) is required"
 msgstr "विनिमय पहचानकर्ता (tid) जरूरी है"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:2284
+#: ../client/pk-console.c:2287 ../client/pk-console-test.c:1437
 msgid "A package name to resolve is required"
 msgstr "हल किया पैकेज नाम जरूरी है"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:2293 ../client/pk-console.c:2302
+#: ../client/pk-console.c:2296 ../client/pk-console.c:2305
+#: ../client/pk-console-test.c:1448 ../client/pk-console-test.c:1459
 msgid "A repository name is required"
 msgstr "रिपाजिटरी नाम जरूरी है"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2311
+#: ../client/pk-console.c:2314 ../client/pk-console-test.c:1470
 msgid "A repo name, parameter and value are required"
 msgstr "रेपो नाम, पैरामीटर और मान जरूरी है"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:2325
+#: ../client/pk-console.c:2328 ../client/pk-console-test.c:1488
 msgid "An action, e.g. 'update-system' is required"
 msgstr "क्रिया, उदा. 'update-system' जरूरी है"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:2332
+#: ../client/pk-console.c:2335 ../client/pk-console-test.c:1495
 msgid "A correct role is required"
 msgstr "सही भूमिका जरूरी है"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2339
+#: ../client/pk-console.c:2342 ../client/pk-console-test.c:1502
 msgid "Failed to get the time since this action was last completed"
 msgstr "समय पाने में विफल क्योंकि यह काम अंतिम में पूरा किया गया था"
 
 #. TRANSLATORS: The user did not provide a package name
 #. TRANSLATORS: This is when the user fails to supply the package name
-#: ../client/pk-console.c:2349 ../client/pk-console.c:2361
-#: ../client/pk-console.c:2370 ../client/pk-console.c:2388
-#: ../client/pk-console.c:2397 ../client/pk-generate-pack.c:241
+#: ../client/pk-console.c:2352 ../client/pk-console.c:2364
+#: ../client/pk-console.c:2373 ../client/pk-console.c:2391
+#: ../client/pk-console.c:2400 ../client/pk-console-test.c:1511
+#: ../client/pk-console-test.c:1526 ../client/pk-console-test.c:1535
+#: ../client/pk-console-test.c:1556 ../client/pk-console-test.c:1565
+#: ../client/pk-generate-pack.c:243
 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:2379
+#: ../client/pk-console.c:2382 ../client/pk-console-test.c:1545
 msgid "A package provide string is required"
 msgstr "संकुल प्रदत्त स्ट्रिंग जरूरी है"
 
 #. TRANSLATORS: The user didn't specify a filename to create as a list
-#: ../client/pk-console.c:2406
+#: ../client/pk-console.c:2409
 msgid "A list file name to create is required"
 msgstr "बनाने के लिए सूची फाइल नाम जरूरी है"
 
 #. TRANSLATORS: The user didn't specify a filename to open as a list
-#: ../client/pk-console.c:2416 ../client/pk-console.c:2426
+#: ../client/pk-console.c:2419 ../client/pk-console.c:2429
 msgid "A list file to open is required"
 msgstr "खोलने के लिए सूची फाइल जरूरी है"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2480
+#: ../client/pk-console.c:2483 ../client/pk-console-test.c:1619
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "विकल्प '%s' समर्थित नहीं है"
 
 #. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2493
+#: ../client/pk-console.c:2496
 msgid "Incorrect privileges for this operation"
 msgstr "इस ऑपरेशन के लिए गलत अधिकार"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2496
+#. /* TRANSLATORS: User does not have permission to do this */
+#. g_print ("%s\n", _("Incorrect privileges for this operation"));
+#. TRANSLATORS: Generic failure of what they asked to do
+#: ../client/pk-console.c:2499 ../client/pk-console-test.c:1631
 msgid "Command failed"
 msgstr "कमांड असफल"
 
 #. TRANSLATORS: This is the state of the transaction
-#: ../client/pk-generate-pack.c:101
+#: ../client/pk-generate-pack.c:103
 msgid "Downloading"
 msgstr "डाउनलोड किया जा रहा है"
 
 #. TRANSLATORS: This is when the main packages are being downloaded
-#: ../client/pk-generate-pack.c:121
+#: ../client/pk-generate-pack.c:123
 msgid "Downloading packages"
 msgstr "संकुल डाउनलोड कर रहा है"
 
 #. TRANSLATORS: This is when the dependency packages are being downloaded
-#: ../client/pk-generate-pack.c:126
+#: ../client/pk-generate-pack.c:128
 msgid "Downloading dependencies"
 msgstr "निर्भरता डाउनलोड किया जा रहा है"
 
 #. TRANSLATORS: we can exclude certain packages (glibc) when we know they'll exist on the target
-#: ../client/pk-generate-pack.c:188
+#: ../client/pk-generate-pack.c:190
 msgid "Set the file name of dependencies to be excluded"
 msgstr "चलाने के लिए निर्भरता के फाइल नाम सेट करें"
 
 #. TRANSLATORS: the output location
-#: ../client/pk-generate-pack.c:191
+#: ../client/pk-generate-pack.c:193
 msgid "The output file or directory (the current directory is used if ommitted)"
 msgstr "आउटपुट फाइल या निर्देशिका (मौजूदा निर्देशिका का प्रयोग किया जा सकता यदि मिटाया गया)"
 
 #. TRANSLATORS: put a list of packages in the pack
-#: ../client/pk-generate-pack.c:194
+#: ../client/pk-generate-pack.c:196
 msgid "The package to be put into the service pack"
 msgstr "सेवा पेटी में रखने के लिए संकुल"
 
 #. TRANSLATORS: put all pending updates in the pack
-#: ../client/pk-generate-pack.c:197
+#: ../client/pk-generate-pack.c:199
 msgid "Put all updates available in the service pack"
 msgstr "सेवा पैक में उपलब्ध सारे अद्यतन रखें"
 
 #. TRANSLATORS: This is when the user fails to supply the correct arguments
-#: ../client/pk-generate-pack.c:225
+#: ../client/pk-generate-pack.c:227
 msgid "Neither --package or --updates option selected."
 msgstr "Neither --package or --updates option selected."
 
 #. TRANSLATORS: This is when the user fails to supply just one argument
-#: ../client/pk-generate-pack.c:233
+#: ../client/pk-generate-pack.c:235
 msgid "Both options selected."
 msgstr "दोनों विकल्प चयनित."
 
 #. TRANSLATORS: This is when the user fails to supply the output
-#: ../client/pk-generate-pack.c:249
+#: ../client/pk-generate-pack.c:251
 msgid "A output directory or file name is required"
 msgstr "आउटपुट निर्देशिका या फाइल नाम जरूरी है"
 
 #. TRANSLATORS: This is when the backend doesn't have the capability to get-depends
 #. TRANSLATORS: This is when the backend doesn't have the capability to download
-#: ../client/pk-generate-pack.c:267 ../client/pk-generate-pack.c:273
+#: ../client/pk-generate-pack.c:269 ../client/pk-generate-pack.c:275
 msgid "The package manager cannot perform this type of operation."
 msgstr "संकुल प्रबंधक इस प्रकार का संक्रमण नहीं कर सकता है"
 
 #. TRANSLATORS: This is when the distro didn't include libarchive support into PK
-#: ../client/pk-generate-pack.c:280
+#: ../client/pk-generate-pack.c:282
 msgid ""
 "Service packs cannot be created as PackageKit was not built with libarchive "
 "support."
@@ -792,54 +822,54 @@ msgstr ""
 "बनाया जा सकत है."
 
 #. TRANSLATORS: the user specified an absolute path, but didn't get the extension correct
-#: ../client/pk-generate-pack.c:291
+#: ../client/pk-generate-pack.c:293
 msgid "If specifying a file, the service pack name must end with"
 msgstr "यदि कोई फ़ाइल निर्दिष्ट कर रहे हैं, सेवा पैक का नाम अंत में रहना चाहिए"
 
 #. TRANSLATORS: This is when file already exists
-#: ../client/pk-generate-pack.c:307
+#: ../client/pk-generate-pack.c:309
 msgid "A pack with the same name already exists, do you want to overwrite it?"
 msgstr "उसी नाम के साथ पैक पहले से मौजूद है, क्या आप इसे अधिलिखित करना चाहते हैं?"
 
 #. TRANSLATORS: This is when the pack was not overwritten
-#: ../client/pk-generate-pack.c:310
+#: ../client/pk-generate-pack.c:312
 msgid "The pack was not overwritten."
 msgstr "यह पैक अधिलिखित नहीं किया गया था."
 
 #. TRANSLATORS: This is when the temporary directory cannot be created, the directory name follows
-#: ../client/pk-generate-pack.c:323
+#: ../client/pk-generate-pack.c:325
 msgid "Failed to create directory:"
 msgstr "निर्देशिका बनाने में विफल:"
 
 #. TRANSLATORS: This is when the list of packages from the remote computer cannot be opened
-#: ../client/pk-generate-pack.c:333
+#: ../client/pk-generate-pack.c:335
 msgid "Failed to open package list."
 msgstr "संकुल सूची खोलने में विफल."
 
 #. TRANSLATORS: The package name is being matched up to available packages
-#: ../client/pk-generate-pack.c:344
+#: ../client/pk-generate-pack.c:346
 msgid "Finding package name."
 msgstr "संकुल नाम ढूँढ़ रहा है."
 
 #. TRANSLATORS: This is when the package cannot be found in any software source. The detailed error follows
-#: ../client/pk-generate-pack.c:348
+#: ../client/pk-generate-pack.c:350
 #, c-format
 msgid "Failed to find package '%s': %s"
 msgstr "'%s' संकुल ढूँढ़ने में विफल: %s"
 
 #. TRANSLATORS: This is telling the user we are in the process of making the pack
-#: ../client/pk-generate-pack.c:365
+#: ../client/pk-generate-pack.c:367
 msgid "Creating service pack..."
 msgstr "सेवा पैक बना रहा है..."
 
 #. TRANSLATORS: we succeeded in making the file
-#: ../client/pk-generate-pack.c:372
+#: ../client/pk-generate-pack.c:374
 #, c-format
 msgid "Service pack created '%s'"
 msgstr "सेवा पैक निर्मित '%s'"
 
 #. TRANSLATORS: we failed to make te file
-#: ../client/pk-generate-pack.c:377
+#: ../client/pk-generate-pack.c:379
 #, c-format
 msgid "Failed to create '%s': %s"
 msgstr "'%s' बनाने में विफल: %s"
@@ -853,27 +883,114 @@ msgstr "PackageKit मानिटर"
 msgid "Cannot show the list of transactions"
 msgstr "लेनदेन की सूची नहीं दिखा सकता है"
 
+#. ask the user
+#: ../client/pk-task-text.c:61
+msgid "Do you want to allow installing of unsigned software?"
+msgstr "क्या आप अहस्ताक्षरित सॉफ़्टवेयर के संस्थापन की अनुमति देते हैं?"
+
+#: ../client/pk-task-text.c:65
+msgid "The unsigned software will not be installed."
+msgstr "अहस्ताक्षरित सॉफ़्टवेयर संस्थापित नहीं किया जाएगा."
+
+#: ../client/pk-task-text.c:94
+msgid "Software source signature required"
+msgstr "सॉफ़्टवेयर स्रोत हस्ताक्षर जरूरी"
+
+#: ../client/pk-task-text.c:96
+msgid "Software source name"
+msgstr "सॉफ़्टवेयर स्रोत नाम"
+
+#: ../client/pk-task-text.c:97
+msgid "Key URL"
+msgstr "मुख्य URL"
+
+#: ../client/pk-task-text.c:98
+msgid "Key user"
+msgstr "मुख्य उपयोक्ता"
+
+#: ../client/pk-task-text.c:99
+msgid "Key ID"
+msgstr "कुंजी आईडी"
+
+#: ../client/pk-task-text.c:100
+msgid "Key fingerprint"
+msgstr "कुंजी फिंगरप्रिंट"
+
+#: ../client/pk-task-text.c:101
+msgid "Key Timestamp"
+msgstr "कुंजी टाइमस्टैंप"
+
+#: ../client/pk-task-text.c:142
+msgid "End user licence agreement required"
+msgstr "अंत्य उपयोक्ता लाइसेंस मसौदा जरूरी"
+
+#: ../client/pk-task-text.c:143
+msgid "EULA ID"
+msgstr "EULA ID"
+
+#: ../client/pk-task-text.c:146
+msgid "Agreement"
+msgstr "मसौदा"
+
+#. ask the user
+#: ../client/pk-task-text.c:152
+msgid "Do you accept this agreement?"
+msgstr "क्या आप इस मसौदे को स्वीकार करते हैं?"
+
+#: ../client/pk-task-text.c:156
+msgid "The agreement was not accepted."
+msgstr "हस्ताक्षर स्वीकार नहीं किया गया था."
+
+#: ../client/pk-task-text.c:182
+msgid "Media change required"
+msgstr "मीडिया परिवर्तन जरूरी"
+
+#: ../client/pk-task-text.c:183
+msgid "Media type"
+msgstr "मीडिया प्रकार"
+
+#: ../client/pk-task-text.c:184
+msgid "Media ID"
+msgstr "मीडिया ID"
+
+#: ../client/pk-task-text.c:185
+msgid "Text"
+msgstr "पाठ"
+
+#. ask the user
+#: ../client/pk-task-text.c:189
+msgid "Please insert the correct media"
+msgstr "कृपया सही मीडिया डालें"
+
+#: ../client/pk-task-text.c:193
+msgid "The correct media was not inserted."
+msgstr "सही मीडिया नहीं डाला गया था."
+
+#: ../client/pk-task-text.c:288
+msgid "The transaction did not proceed."
+msgstr "लेनदेन नहीं आगे बढ़ा."
+
+#: ../client/pk-text.c:50
+#, c-format
+msgid "Please enter a number from 1 to %i: "
+msgstr "1 से %i तक की संख्या कृपया दाखिल करें: "
+
 #. TRANSLATORS: The package was not found in any software sources
-#: ../client/pk-tools-common.c:118
+#: ../client/pk-tools-common.c:119
 #, c-format
 msgid "The package could not be found"
 msgstr "यह संकुल नहीं मिल सका"
 
 #. TRANSLATORS: more than one package could be found that matched, to follow is a list of possible packages
-#: ../client/pk-tools-common.c:130
+#: ../client/pk-tools-common.c:131
 msgid "More than one package matches:"
 msgstr "एक से अधिक संकुल मेल खाता है:"
 
 #. TRANSLATORS: This finds out which package in the list to use
-#: ../client/pk-tools-common.c:137
+#: ../client/pk-tools-common.c:138
 msgid "Please choose the correct package: "
 msgstr "कृपया सही संकुल चुनें: "
 
-#: ../client/pk-tools-common.c:162
-#, c-format
-msgid "Please enter a number from 1 to %i: "
-msgstr "1 से %i तक की संख्या कृपया दाखिल करें: "
-
 #. TRANSLATORS: when we are getting data from the daemon
 #: ../contrib/browser-plugin/pk-plugin-install.c:466
 msgid "Getting package information..."
@@ -1029,174 +1146,174 @@ msgid "Failed to find the package %s, or already installed: %s"
 msgstr "संकुल %s ढूँढ़ने में विफल, या पहले से संस्थापित: %s"
 
 #. command line argument, simulate what would be done, but don't actually do it
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:553
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:552
 msgid "Don't actually install any packages, only simulate what would be installed"
 msgstr "किसी संकुल को वास्तव में मत संस्थापित करें, केवल देखें कि क्या संस्थापित होगा"
 
 #. command line argument, do we skip packages that depend on the ones specified
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:556
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:555
 msgid "Do not install dependencies of the core packages"
 msgstr "कोर संकुल की निर्भरता को मत संस्थापित करें"
 
 #. command line argument, do we operate quietly
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:559
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:558
 msgid "Do not display information or progress"
 msgstr "सूचना या प्रगति पर मत कुछ दिखाएँ"
 
 #. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:577
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:576
 msgid "PackageKit Debuginfo Installer"
 msgstr "पैकेजकिट डिबगइंफो संस्थापक"
 
 #. TRANSLATORS: the use needs to specify a list of package names on the command line
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:589
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:588
 #, c-format
 msgid "ERROR: Specify package names to install."
 msgstr "त्रुटि: संस्थापन के लिए संकुल नाम निर्दिष्ट करें."
 
 #. TRANSLATORS: we are getting the list of repositories
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:623
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:622
 #, c-format
 msgid "Getting sources list"
 msgstr "स्रोत सूची पा रहा है"
 
 #. TRANSLATORS: all completed 100%
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:641
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:681
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:716
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:800
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:844
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:911
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:955
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:640
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:680
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:715
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:799
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:843
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:910
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:954
 #, c-format
 msgid "OK."
 msgstr "ठीक."
 
 #. TRANSLATORS: tell the user what we found
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:644
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:643
 #, c-format
 msgid "Found %i enabled and %i disabled sources."
 msgstr "%i सक्रिय और %i निष्क्रिय स्रोत पाया."
 
 #. TRANSLATORS: we're finding repositories that match out pattern
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:651
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:650
 #, c-format
 msgid "Finding debugging sources"
 msgstr "डबगिंग स्रोत ढूँढ़ रहा है"
 
 #. TRANSLATORS: tell the user what we found
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:684
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:683
 #, c-format
 msgid "Found %i disabled debuginfo repos."
 msgstr "%i निष्क्रिय डिबगइंफो रिपोज पाया."
 
 #. TRANSLATORS: we're now enabling all the debug sources we found
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:691
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:690
 #, c-format
 msgid "Enabling debugging sources"
 msgstr "डिबगिंग स्रोत सक्रिय कर रहा है"
 
 #. TRANSLATORS: operation was not successful
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:701
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:785
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:829
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:896
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:940
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:700
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:784
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:828
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:895
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:939
 msgid "FAILED."
 msgstr "विफल."
 
 #. TRANSLATORS: tell the user how many we enabled
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:719
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:718
 #, c-format
 msgid "Enabled %i debugging sources."
 msgstr "%i डबगिंग स्रोतों को सक्रिय किया."
 
 #. TRANSLATORS: we're now finding packages that match in all the repos
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:726
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:725
 #, c-format
 msgid "Finding debugging packages"
 msgstr "डबगिंग संकुल को ढूँढ़ रहा है"
 
 #. TRANSLATORS: we couldn't find the package name, non-fatal
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:738
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:737
 #, c-format
 msgid "Failed to find the package %s: %s"
 msgstr "संकुल %s ढूँढ़ने में असमर्थ: %s"
 
 #. TRANSLATORS: we couldn't find the debuginfo package name, non-fatal
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:761
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:760
 #, c-format
 msgid "Failed to find the debuginfo package %s: %s"
 msgstr "डिबगइंफो संकुल %s ढूँढ़ने में विफल: %s"
 
 #. TRANSLATORS: no debuginfo packages could be found to be installed
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:789
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:788
 #, c-format
 msgid "Found no packages to install."
 msgstr "कोई नया संकुल संस्थापित होने के लिए नहीं पाया."
 
 #. TRANSLATORS: tell the user we found some packages, and then list them
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:803
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:802
 #, c-format
 msgid "Found %i packages:"
 msgstr "%i संकुल पाया:"
 
 #. TRANSLATORS: tell the user we are searching for deps
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:819
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:818
 #, c-format
 msgid "Finding packages that depend on these packages"
 msgstr "संकुलों को पा रहा है जो इन संकुलों पर निर्भर करता है"
 
 #. TRANSLATORS: could not install, detailed error follows
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:832
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:831
 #, c-format
 msgid "Could not find dependant packages: %s"
 msgstr "निर्भर संकुलों को नहीं ढूँढ़ सका: %s"
 
 #. TRANSLATORS: tell the user we found some more packages
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:848
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:847
 #, c-format
 msgid "Found %i extra packages."
 msgstr "अतिरिक्त संकुल %i पाया."
 
 #. TRANSLATORS: tell the user we found some more packages
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:852
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:851
 #, c-format
 msgid "No extra packages required."
 msgstr "कोई अतिरिक्त संकुल जरूरी नहीं है."
 
 #. TRANSLATORS: tell the user we found some packages (and deps), and then list them
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:861
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:860
 #, c-format
 msgid "Found %i packages to install:"
 msgstr "संस्थापित करने के लिए %i संकुल:"
 
 #. TRANSLATORS: simulate mode is a testing mode where we quit before the action
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:874
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:873
 #, c-format
 msgid "Not installing packages in simulate mode"
 msgstr "सिमुलेट मोड में कोई संस्थापन संकुल नहीं"
 
 #. TRANSLATORS: could not install, detailed error follows
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:899
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:898
 #, c-format
 msgid "Could not install packages: %s"
 msgstr "संकुलों को संस्थापित नहीं कर सका: %s"
 
 #. TRANSLATORS: we are now disabling all debuginfo repos we previously enabled
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:931
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:930
 #, c-format
 msgid "Disabling sources previously enabled"
 msgstr "पहले से सक्रिय किए गए स्रोत को निष्क्रिय कर रहा है"
 
 #. TRANSLATORS: no debuginfo packages could be found to be installed, detailed error follows
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:943
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:942
 #, c-format
 msgid "Could not disable the debugging sources: %s"
 msgstr "डिबगिंग स्रोत को निष्क्रिय नहीं कर सका: %s"
 
 #. TRANSLATORS: we disabled all the debugging repos that we enabled before
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:958
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:957
 #, c-format
 msgid "Disabled %i debugging sources."
 msgstr "निष्क्रिय किया %i डिबगिंग स्रोत."
commit 04aae0ac20a8d780e79de995f748977cc3251488
Author: anipeter <anipeter at fedoraproject.org>
Date:   Fri Sep 4 02:39:41 2009 +0000

    Sending translation for Malayalam

diff --git a/po/ml.po b/po/ml.po
index 0dfe8be..d79097c 100644
--- a/po/ml.po
+++ b/po/ml.po
@@ -7,8 +7,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: packagekit.master.ml\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-09-03 02:38+0000\n"
-"PO-Revision-Date: 2009-09-03 11:33+0530\n"
+"POT-Creation-Date: 2009-09-04 02:27+0000\n"
+"PO-Revision-Date: 2009-09-04 08:08+0530\n"
 "Last-Translator: \n"
 "Language-Team:  <en at li.org>\n"
 "MIME-Version: 1.0\n"
@@ -18,213 +18,221 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
 #. TRANSLATORS: this is an atomic transaction
-#: ../client/pk-console.c:238
+#: ../client/pk-console.c:238 ../client/pk-console-test.c:146
 msgid "Transaction"
 msgstr "ഇടപാടു്"
 
 #. TRANSLATORS: this is the time the transaction was started in system timezone
-#: ../client/pk-console.c:240
+#: ../client/pk-console.c:240 ../client/pk-console-test.c:148
 msgid "System time"
 msgstr "സിസ്റ്റം സമയം"
 
 #. TRANSLATORS: this is if the transaction succeeded or not
-#: ../client/pk-console.c:242
+#: ../client/pk-console.c:242 ../client/pk-console-test.c:150
 msgid "Succeeded"
 msgstr "ഇടപാടു് പൂര്‍ത്തിയായി"
 
-#: ../client/pk-console.c:242
+#: ../client/pk-console.c:242 ../client/pk-console-test.c:150
 msgid "True"
 msgstr "True"
 
-#: ../client/pk-console.c:242
+#: ../client/pk-console.c:242 ../client/pk-console-test.c:150
 msgid "False"
 msgstr "False"
 
 #. TRANSLATORS: this is the transactions role, e.g. "update-system"
 #. TRANSLATORS: the trasaction role, e.g. update-system
-#: ../client/pk-console.c:244 ../src/pk-polkit-action-lookup.c:327
+#: ../client/pk-console.c:244 ../client/pk-console-test.c:152
+#: ../src/pk-polkit-action-lookup.c:327
 msgid "Role"
 msgstr "റോള്‍"
 
 #. TRANSLATORS: this is The duration of the transaction
-#: ../client/pk-console.c:249
+#: ../client/pk-console.c:249 ../client/pk-console-test.c:157
 msgid "Duration"
 msgstr "സമയം"
 
-#: ../client/pk-console.c:249
+#: ../client/pk-console.c:249 ../client/pk-console-test.c:157
 msgid "(seconds)"
 msgstr "(സെക്കന്‍ഡുകള്‍)"
 
 #. TRANSLATORS: this is The command line used to do the action
 #. TRANSLATORS: the command line of the thing that wants the authentication
-#: ../client/pk-console.c:253 ../src/pk-polkit-action-lookup.c:341
+#: ../client/pk-console.c:253 ../client/pk-console-test.c:161
+#: ../src/pk-polkit-action-lookup.c:341
 msgid "Command line"
 msgstr "കമാന്‍ഡ് ലൈന്‍"
 
 #. TRANSLATORS: this is the user ID of the user that started the action
-#: ../client/pk-console.c:255
+#: ../client/pk-console.c:255 ../client/pk-console-test.c:163
 msgid "User ID"
 msgstr "ഉപയോക്താവിനുള്ള ID"
 
 #. TRANSLATORS: this is the username, e.g. hughsie
-#: ../client/pk-console.c:262
+#: ../client/pk-console.c:262 ../client/pk-console-test.c:170
 msgid "Username"
 msgstr "ഉപയോക്തൃനാമം"
 
 #. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
-#: ../client/pk-console.c:266
+#: ../client/pk-console.c:266 ../client/pk-console-test.c:174
 msgid "Real name"
 msgstr "യഥാര്‍ത്ഥ പേരു്"
 
-#: ../client/pk-console.c:274
+#: ../client/pk-console.c:274 ../client/pk-console-test.c:182
 msgid "Affected packages:"
 msgstr "ബാധിച്ച പാക്കേജുകള്‍:"
 
-#: ../client/pk-console.c:276
+#: ../client/pk-console.c:276 ../client/pk-console-test.c:184
 msgid "Affected packages: None"
 msgstr "ബാധിച്ച പാക്കേജുകള്‍: ഒന്നുമില്ല"
 
 #. TRANSLATORS: When processing, we might have to remove other dependencies
-#: ../client/pk-console.c:337
+#: ../client/pk-console.c:337 ../client/pk-task-text.c:208
 msgid "The following packages have to be removed:"
 msgstr "താഴെ പറയുന്ന പാക്കേജുകള്‍ നീക്കം ചെയ്യേണ്ടതുണ്ടു്."
 
 #. TRANSLATORS: When processing, we might have to install other dependencies
-#: ../client/pk-console.c:340
+#: ../client/pk-console.c:340 ../client/pk-task-text.c:213
 msgid "The following packages have to be installed:"
 msgstr "താഴെ പറയുന്ന പാക്കേജുകള്‍ ഇന്‍സ്റ്റോള്‍ ചെയ്യേണ്ടതാണു്:"
 
 #. TRANSLATORS: When processing, we might have to update other dependencies
-#: ../client/pk-console.c:343
+#: ../client/pk-console.c:343 ../client/pk-task-text.c:218
 msgid "The following packages have to be updated:"
 msgstr "താഴെ പറയുന്ന പാക്കേജുകള്‍ പരിഷ്കരിക്കേണ്ടതുണ്ടു്:"
 
 #. TRANSLATORS: When processing, we might have to reinstall other dependencies
-#: ../client/pk-console.c:346
+#: ../client/pk-console.c:346 ../client/pk-task-text.c:223
 msgid "The following packages have to be reinstalled:"
 msgstr "താഴെ പറയുന്ന പാക്കേജുകള്‍ വീണ്ടും ഇന്‍സ്റ്റോള്‍ ചെയ്യേണ്ടതുണ്ടു്:"
 
 #. TRANSLATORS: When processing, we might have to downgrade other dependencies
-#: ../client/pk-console.c:349
+#: ../client/pk-console.c:349 ../client/pk-task-text.c:228
 msgid "The following packages have to be downgraded:"
 msgstr "താഴെ പറയുന്ന പാക്കേജുകള്‍ ഡൌണ്‍ഗ്രേഡ് ചെയ്യേണ്ടതുണ്ടു്:"
 
 #. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:363
+#: ../client/pk-console.c:363 ../client/pk-console-test.c:204
 msgid "Distribution"
 msgstr "വിതരണം"
 
 #. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:365
+#: ../client/pk-console.c:365 ../client/pk-console-test.c:206
 msgid "Type"
 msgstr "തരം"
 
 #. TRANSLATORS: this is any summary text describing the upgrade
 #. TRANSLATORS: this is the summary of the group
+#. TRANSLATORS: this is any summary text describing the upgrade
+#. TRANSLATORS: this is the summary of the group
 #: ../client/pk-console.c:367 ../client/pk-console.c:390
+#: ../client/pk-console-test.c:208 ../client/pk-console-test.c:229
 msgid "Summary"
 msgstr "സമ്മറി"
 
 #. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:379
+#: ../client/pk-console.c:379 ../client/pk-console-test.c:218
 msgid "Category"
 msgstr "വിഭാഗം"
 
 #. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:381
+#: ../client/pk-console.c:381 ../client/pk-console-test.c:220
 msgid "ID"
 msgstr "ID"
 
 #. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:384
+#: ../client/pk-console.c:384 ../client/pk-console-test.c:223
 msgid "Parent"
 msgstr "പേരന്റ്"
 
 #. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:387
+#: ../client/pk-console.c:387 ../client/pk-console-test.c:226
 msgid "Name"
 msgstr "പേരു്"
 
 #. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:393
+#: ../client/pk-console.c:393 ../client/pk-console-test.c:232
 msgid "Icon"
 msgstr "ചിഹ്നം"
 
 #. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:408
+#: ../client/pk-console.c:408 ../client/pk-console-test.c:246
 msgid "Details about the update:"
 msgstr "പരിഷ്കരണങ്ങള്‍ സംബന്ധിച്ചുള്ള വിശദാംശങ്ങള്‍:"
 
 #. TRANSLATORS: details about the update, package name and version
 #. TRANSLATORS: title, the names of the packages that the method is processing
-#: ../client/pk-console.c:410 ../src/pk-polkit-action-lookup.c:352
+#: ../client/pk-console.c:410 ../client/pk-console-test.c:252
+#: ../client/pk-task-text.c:95 ../client/pk-task-text.c:144
+#: ../src/pk-polkit-action-lookup.c:352
 msgid "Package"
 msgid_plural "Packages"
 msgstr[0] "പാക്കേജ്"
 msgstr[1] "പാക്കേജുകള്‍"
 
 #. TRANSLATORS: details about the update, any packages that this update updates
-#: ../client/pk-console.c:413
+#: ../client/pk-console.c:413 ../client/pk-console-test.c:255
 msgid "Updates"
 msgstr "പരിഷ്കരണങ്ങള്‍"
 
 #. TRANSLATORS: details about the update, any packages that this update obsoletes
-#: ../client/pk-console.c:417
+#: ../client/pk-console.c:417 ../client/pk-console-test.c:259
 msgid "Obsoletes"
 msgstr "വേണ്ടെന്നു് വച്ചവ"
 
 #. TRANSLATORS: details about the update, the vendor URLs
-#: ../client/pk-console.c:421
+#: ../client/pk-console.c:421 ../client/pk-console-test.c:263
+#: ../client/pk-task-text.c:145
 msgid "Vendor"
 msgstr "കച്ചവടക്കാരന്‍"
 
 #. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:425
+#: ../client/pk-console.c:425 ../client/pk-console-test.c:267
 msgid "Bugzilla"
 msgstr "Bugzilla"
 
 #. TRANSLATORS: details about the update, the CVE URLs
-#: ../client/pk-console.c:429
+#: ../client/pk-console.c:429 ../client/pk-console-test.c:271
 msgid "CVE"
 msgstr "CVE"
 
 #. TRANSLATORS: details about the update, if the package requires a restart
-#: ../client/pk-console.c:433
+#: ../client/pk-console.c:433 ../client/pk-console-test.c:275
 msgid "Restart"
 msgstr "വീണ്ടും ആരംഭിക്കുക"
 
 #. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:437
+#: ../client/pk-console.c:437 ../client/pk-console-test.c:279
 msgid "Update text"
 msgstr "പരിഷ്കരിച്ച വാചകം"
 
 #. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:441
+#: ../client/pk-console.c:441 ../client/pk-console-test.c:283
 msgid "Changes"
 msgstr "മാറ്റങ്ങള്‍"
 
 #. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:445
+#: ../client/pk-console.c:445 ../client/pk-console-test.c:287
 msgid "State"
 msgstr "അവസ്ഥ"
 
 #. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:450
+#: ../client/pk-console.c:450 ../client/pk-console-test.c:292
 msgid "Issued"
 msgstr "നല്‍കിയതു്"
 
 #. TRANSLATORS: details about the update, date the update was updated
-#: ../client/pk-console.c:455
+#: ../client/pk-console.c:455 ../client/pk-console-test.c:297
 msgid "Updated"
 msgstr "പരിഷ്കരിച്ചിരിക്കുന്നു"
 
 #. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:475
+#: ../client/pk-console.c:475 ../client/pk-console-test.c:315
 msgid "Enabled"
 msgstr "പ്രവര്‍ത്തന സജ്ജം"
 
 #. TRANSLATORS: if the repo is disabled
-#: ../client/pk-console.c:478
+#: ../client/pk-console.c:478 ../client/pk-console-test.c:318
 msgid "Disabled"
 msgstr "പ്രവര്‍ത്തന രഹിതം"
 
@@ -237,47 +245,47 @@ msgid "Unknown"
 msgstr "അപരിചിതം"
 
 #. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:599
+#: ../client/pk-console.c:599 ../client/pk-console-test.c:340
 msgid "System restart required by:"
 msgstr "സിസ്റ്റം വീണ്ടും ആരംഭിക്കുന്നതു് ആവശ്യമുള്ളതു്:"
 
 #. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:602
+#: ../client/pk-console.c:602 ../client/pk-console-test.c:343
 msgid "Session restart required:"
 msgstr "സെഷന്‍ വീണ്ടും ആരംഭിക്കേണ്ടതുണ്ടു്:"
 
 #. TRANSLATORS: a package requires the system to be restarted due to a security update
-#: ../client/pk-console.c:605
+#: ../client/pk-console.c:605 ../client/pk-console-test.c:346
 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:608
+#: ../client/pk-console.c:608 ../client/pk-console-test.c:349
 msgid "Session restart (security) required:"
 msgstr "സെഷന്‍ വീണ്ടും ആരംഭിക്കുന്നതു് (സുരക്ഷാ പരിഷ്കരണം) ആവശ്യമുള്ളതു്:"
 
 #. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:611
+#: ../client/pk-console.c:611 ../client/pk-console-test.c:352
 msgid "Application restart required by:"
 msgstr "പ്രയോഗം വീണ്ടും ആരംഭിക്കേണ്ടതു് ആവശ്യമുള്ളതു്:"
 
 #. TRANSLATORS: a package needs to restart their system
-#: ../client/pk-console.c:666
+#: ../client/pk-console.c:666 ../client/pk-console-test.c:434
 msgid "Please restart the computer to complete the update."
 msgstr "പരിഷ്കരണങ്ങള്‍ പൂര്‍ത്തിയാക്കുന്നതിനായി ദയവായി നിങ്ങളുടെ കമ്പ്യൂട്ടര്‍ വീണ്ടും ആരംഭിക്കുക."
 
 #. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:669
+#: ../client/pk-console.c:669 ../client/pk-console-test.c:437
 msgid "Please logout and login to complete the update."
 msgstr "പരിഷ്കരണങ്ങള്‍ പൂര്‍ത്തിയാക്കുന്നതിനായി ദയവായി ലോഗൌട്ട് ചെയ്ത് ലോഗിന്‍ ചെയ്യുക."
 
 #. TRANSLATORS: a package needs to restart the application
-#: ../client/pk-console.c:672
+#: ../client/pk-console.c:672 ../client/pk-console-test.c:440
 msgid "Please restart the application as it is being used."
 msgstr "ഈ പ്രയോഗം ഉപയോഗിക്കേണ്ടപ്പോള്‍ തന്നെ വീണ്ടും ആരംഭിക്കുക."
 
 #. TRANSLATORS: a package needs to restart their system (due to security)
-#: ../client/pk-console.c:675
+#: ../client/pk-console.c:675 ../client/pk-console-test.c:443
 msgid ""
 "Please restart the computer to complete the update as important security "
 "updates have been installed."
@@ -286,7 +294,7 @@ msgstr ""
 "വീണ്ടും ആരംഭിക്കുക."
 
 #. TRANSLATORS: a package needs to restart the session (due to security)
-#: ../client/pk-console.c:678
+#: ../client/pk-console.c:678 ../client/pk-console-test.c:446
 msgid ""
 "Please logout and login to complete the update as important security updates "
 "have been installed."
@@ -295,13 +303,13 @@ msgstr ""
 "ചെയ്യുക."
 
 #. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:810
+#: ../client/pk-console.c:810 ../client/pk-console-test.c:541
 #, c-format
 msgid "The package %s is already installed"
 msgstr "%s എന്ന പാക്കേജ് നിലവില്‍ കമ്പ്യൂട്ടറില്‍ ഇന്‍സ്റ്റോള്‍ ചെയ്തിരിക്കുന്നു."
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:818
+#: ../client/pk-console.c:818 ../client/pk-console-test.c:549
 #, c-format
 msgid "The package %s could not be installed: %s"
 msgstr "%s എന്ന പാക്കേജ് നിങ്ങളുടെ കമ്പ്യൂട്ടറില്‍ ഇന്‍സ്റ്റോള്‍ ചെയ്യുവാന്‍ സാധ്യമായില്ല: %s"
@@ -317,8 +325,9 @@ msgid "Internal error: %s"
 msgstr "ആന്തരിക പിശക്: %s"
 
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
+#. ask the user
 #: ../client/pk-console.c:876 ../client/pk-console.c:948
-#: ../client/pk-console.c:1266
+#: ../client/pk-console.c:1266 ../client/pk-task-text.c:284
 msgid "Proceed with changes?"
 msgstr "മാറ്റങ്ങളുമായി മുമ്പോട്ട് പോകണമോ?"
 
@@ -329,25 +338,26 @@ msgstr "പാക്കേജ് ഇന്‍സ്റ്റോള്‍ ചെà
 
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
 #: ../client/pk-console.c:900 ../client/pk-console.c:1634
+#: ../client/pk-console-test.c:572
 #, c-format
 msgid "This tool could not install the packages: %s"
 msgstr "ഈ പ്രയോഗത്തിനു് പാക്കേജുകള്‍ ഇന്‍സ്റ്റോള്‍ ചെയ്യുവാന്‍ സാധ്യമല്ല: %s"
 
 #. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:972
+#: ../client/pk-console.c:972 ../client/pk-console-test.c:586
 #, c-format
 msgid "This tool could not install the files: %s"
 msgstr "ഈ പ്രയോഗത്തിനു് ഫയലുകള്‍ ഇന്‍സ്റ്റോള്‍ ചെയ്യുവാന്‍ സാധ്യമല്ല: %s"
 
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:1028
+#: ../client/pk-console.c:1028 ../client/pk-console-test.c:636
 #, c-format
 msgid "This tool could not remove %s: %s"
 msgstr "ഈ പ്രയോഗത്തിനു് %s നീക്കം ചെയ്യുവാന്‍ സാധ്യമായില്ല: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
 #: ../client/pk-console.c:1051 ../client/pk-console.c:1089
-#: ../client/pk-console.c:1118
+#: ../client/pk-console.c:1118 ../client/pk-console-test.c:657
 #, c-format
 msgid "This tool could not remove the packages: %s"
 msgstr "ഈ പ്രയോഗത്തിനു് പാക്കേജുകള്‍ നീക്കം ചെയ്യുവാന്‍ സാധ്യമല്ല: %s"
@@ -363,20 +373,21 @@ msgid "The package removal was canceled!"
 msgstr "പാക്കേജ് നീക്കം ചെയ്യല്‍ റദ്ദാക്കിയിരിക്കുന്നു!"
 
 #. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:1150
+#: ../client/pk-console.c:1150 ../client/pk-console-test.c:689
 #, c-format
 msgid "This tool could not download the package %s as it could not be found"
 msgstr "%s പാക്കേജ് ലഭ്യമല്ലാത്തതിനാല്‍ ഈ പ്രയോഗത്തിനു് അതു് ഇന്‍സ്റ്റോള്‍ ചെയ്യുവാന്‍ സാധ്യമായില്ല"
 
 #. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:1181
+#: ../client/pk-console.c:1181 ../client/pk-console-test.c:711
 #, c-format
 msgid "This tool could not download the packages: %s"
 msgstr "ഈ പ്രയോഗത്തിനു് പാക്കേജുകള്‍ ഡൌണ്‍ലോട് ചെയ്യുവാന്‍ സാധ്യമല്ല: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
 #: ../client/pk-console.c:1213 ../client/pk-console.c:1225
-#: ../client/pk-console.c:1280
+#: ../client/pk-console.c:1280 ../client/pk-console-test.c:743
+#: ../client/pk-console-test.c:753
 #, c-format
 msgid "This tool could not update %s: %s"
 msgstr "ഈ പ്രയോഗത്തിനു് %s പരിഷ്കരിക്കുവാന്‍ സാധ്യമല്ല: %s"
@@ -388,30 +399,33 @@ msgstr "പാക്കേജ് പുതുക്കല്‍ റദ്ദാà
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
 #: ../client/pk-console.c:1304 ../client/pk-console.c:1312
+#: ../client/pk-console-test.c:779 ../client/pk-console-test.c:787
 #, c-format
 msgid "This tool could not get the requirements for %s: %s"
 msgstr "%s-നു് ആവശ്യമുള്ളവ ലഭ്യമാക്കുവാന്‍ ഈ പ്രയോഗത്തിനു് സാധ്യമായില്ല: %s"
 
 #. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
 #: ../client/pk-console.c:1334 ../client/pk-console.c:1342
+#: ../client/pk-console-test.c:809 ../client/pk-console-test.c:817
 #, c-format
 msgid "This tool could not get the dependencies for %s: %s"
 msgstr "%s-നുള്ള ഡിപന്‍ഡന്‍സികള്‍ ലഭ്യമാക്കുവാന്‍ ഈ പ്രയോഗത്തിനു് സാധ്യമായില്ല: %s"
 
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
 #: ../client/pk-console.c:1364 ../client/pk-console.c:1372
+#: ../client/pk-console-test.c:839 ../client/pk-console-test.c:847
 #, c-format
 msgid "This tool could not get package details for %s: %s"
 msgstr "%s-നുള്ള പാക്കേജിന്റെ വിശദാംശങ്ങള്‍ ലഭ്യമാക്കുവാന്‍ ഈ പ്രയോഗത്തിനു് സാധ്യമായില്ല: %s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1394
+#: ../client/pk-console.c:1394 ../client/pk-console-test.c:869
 #, c-format
 msgid "This tool could not find the files for %s: %s"
 msgstr "%s-നുള്ള ഫയലുകള്‍ ലഭ്യമാക്കുവാന്‍ ഈ പ്രയോഗത്തിനു് സാധ്യമായില്ല: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1402
+#: ../client/pk-console.c:1402 ../client/pk-console-test.c:877
 #, c-format
 msgid "This tool could not get the file list for %s: %s"
 msgstr "%s-നുള്ള ഫയലുകളുടെ പട്ടിക ലഭ്യമാക്കുവാന്‍ ഈ പ്രയോഗത്തിനു് സാധ്യമായില്ല: %s"
@@ -493,13 +507,13 @@ msgid "Installing packages"
 msgstr "പാക്കേജുകള്‍ ഇന്‍സ്റ്റോള്‍ ചെയ്യുന്നു"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1663
+#: ../client/pk-console.c:1663 ../client/pk-console-test.c:899
 #, c-format
 msgid "This tool could not find the update details for %s: %s"
 msgstr "%s-നു് പരിഷ്കരണത്തിനുള്ള വിശദാംശങ്ങള്‍ ലഭ്യമാക്കുവാന്‍ ഈ പ്രയോഗത്തിനു് സാധ്യമായില്ല: %s"
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1671
+#: ../client/pk-console.c:1671 ../client/pk-console-test.c:907
 #, c-format
 msgid "This tool could not get the update details for %s: %s"
 msgstr "%s-നു് പരിഷ്കരണത്തിനുള്ള വിശദാംശങ്ങള്‍ ലഭ്യമാക്കുവാന്‍ ഈ പ്രയോഗത്തിനു് സാധ്യമായില്ല: %s"
@@ -510,22 +524,22 @@ msgid "Error:"
 msgstr "പിശക്:"
 
 #. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1716
+#: ../client/pk-console.c:1716 ../client/pk-console-test.c:369
 msgid "Package description"
 msgstr "പാക്കേജ് വിശദാംശങ്ങള്‍"
 
 #. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
-#: ../client/pk-console.c:1732
+#: ../client/pk-console.c:1732 ../client/pk-console-test.c:387
 msgid "Message:"
 msgstr "സന്ദേശം:"
 
 #. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1760
+#: ../client/pk-console.c:1760 ../client/pk-console-test.c:415
 msgid "Package files"
 msgstr "പാക്കേജിലുള്ള ഫയലുകള്‍"
 
 #. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1768
+#: ../client/pk-console.c:1768 ../client/pk-console-test.c:410
 msgid "No files"
 msgstr "ഫയലുകള്‍ ലഭ്യമല്ല"
 
@@ -535,19 +549,20 @@ msgid "Repository signature required"
 msgstr "സംഭരണിയ്ക്കുള്ള ജിപിജി ഒപ്പ് ആവശ്യമുണ്ടു്"
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1801
+#. ask the user
+#: ../client/pk-console.c:1801 ../client/pk-task-text.c:107
 msgid "Do you accept this signature?"
 msgstr "ഈ ഓപ്പ് നിങ്ങള്‍ അംഗീകരിക്കുന്നുവോ?"
 
 #. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1805
+#: ../client/pk-console.c:1805 ../client/pk-task-text.c:111
 msgid "The signature was not accepted."
 msgstr "ഒപ്പ് സ്വീകരിക്കുന്നില്ല."
 
 #. TRANSLATORS: This a request for a EULA
 #: ../client/pk-console.c:1839
 msgid "End user license agreement required"
-msgstr "ഉപയോക്താവിനുള്ള ലൈസന്‍സ് എഗ്രീമെന്റ് ആവശ്യമുണ്ടു്"
+msgstr "ഉപയോക്താവിനുള്ള ലൈസന്‍സ് സമ്മതപ്പത്രം ആവശ്യമുണ്ടു്"
 
 #. TRANSLATORS: This a prompt asking the user to agree to the license
 #: ../client/pk-console.c:1846
@@ -560,24 +575,24 @@ msgid "The license was refused."
 msgstr "ലൈസന്‍സ് നിഷേധിച്ചിരിക്കുന്നു."
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1879
+#: ../client/pk-console.c:1879 ../client/pk-console-test.c:925
 msgid "The daemon crashed mid-transaction!"
 msgstr "ഡെമണ്‍ തകര്‍ന്നിരിക്കുന്നു!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1932
+#: ../client/pk-console.c:1932 ../client/pk-console-test.c:969
 msgid "PackageKit Console Interface"
 msgstr "പാക്കേജ്കിറ്റ് കണ്‍സോള്‍ ഇന്റര്‍ഫെയിസ്"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1934
+#: ../client/pk-console.c:1934 ../client/pk-console-test.c:971
 msgid "Subcommands:"
 msgstr "സബ്കമാന്‍ഡുകള്‍:"
 
 #. TRANSLATORS: command line argument, if we should show debugging information
 #. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:2027 ../client/pk-generate-pack.c:187
-#: ../client/pk-monitor.c:128
+#: ../client/pk-console.c:2027 ../client/pk-console-test.c:1202
+#: ../client/pk-generate-pack.c:187 ../client/pk-monitor.c:128
 #: ../contrib/command-not-found/pk-command-not-found.c:616
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:549
 #: ../contrib/device-rebind/pk-device-rebind.c:293 ../src/pk-main.c:211
@@ -585,17 +600,18 @@ msgid "Show extra debugging information"
 msgstr "കൂടുതല്‍ ഡീബഗ്ഗിങ് വിവരം കാണിക്കുക"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:2030 ../client/pk-monitor.c:130
+#: ../client/pk-console.c:2030 ../client/pk-console-test.c:1205
+#: ../client/pk-monitor.c:130
 msgid "Show the program version and exit"
 msgstr "പ്രോഗ്രാമിന്റെ പതിപ്പ് കാണിച്ചശേഷം പുറത്ത് കടക്കുക"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:2033
+#: ../client/pk-console.c:2033 ../client/pk-console-test.c:1208
 msgid "Set the filter, e.g. installed"
 msgstr "ഫില്‍‌റ്റര്‍ ക്രമികരിക്കുക, e.g. ഇന്‍സ്റ്റോള്‍ ചെയ്തിരിക്കുന്നു"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:2036
+#: ../client/pk-console.c:2036 ../client/pk-console-test.c:1211
 msgid "Exit without waiting for actions to complete"
 msgstr "പൂര്‍ത്തിയാകുന്നതിനുള്ള പ്രവര്‍ത്തികള്‍ക്കായി കാത്തിരിക്കാതെ പുറത്ത് കടക്കുക"
 
@@ -605,88 +621,91 @@ msgid "This tool could not connect to system DBUS."
 msgstr "സിസ്റ്റം ഡീബസിലേക്ക് കണക്ട് ചെയ്യുവാന്‍ ഈ പ്രയോഗത്തിനു് സാധ്യമല്ല."
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:2153
+#: ../client/pk-console.c:2153 ../client/pk-console-test.c:1279
 msgid "The filter specified was invalid"
 msgstr "നല്‍കിയ ഫില്‍‌റ്റര്‍ തെറ്റാണു്"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:2172
+#: ../client/pk-console.c:2172 ../client/pk-console-test.c:1298
 msgid "A search type is required, e.g. name"
 msgstr "തെരയുന്നതിനുള്ള തരം ആവശ്യമുണ്ടു്, ഉദാ. പേരു്"
 
 #. TRANSLATORS: the user needs to provide a search term
 #: ../client/pk-console.c:2179 ../client/pk-console.c:2188
 #: ../client/pk-console.c:2197 ../client/pk-console.c:2206
+#: ../client/pk-console-test.c:1305 ../client/pk-console-test.c:1317
+#: ../client/pk-console-test.c:1329 ../client/pk-console-test.c:1341
 msgid "A search term is required"
 msgstr "തെരയുന്നതിനുള്ള വാചകം ആവശ്യമുണ്ടു്"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:2213
+#: ../client/pk-console.c:2213 ../client/pk-console-test.c:1351
 msgid "Invalid search type"
 msgstr "തെറ്റായ തരത്തിലുള്ള തെരച്ചില്‍"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:2219
+#: ../client/pk-console.c:2219 ../client/pk-console-test.c:1358
 msgid "A package name or filename to install is required"
 msgstr "ഇന്‍സ്റ്റോള്‍ ചെയ്യുന്നതിനുള്ള പാക്കേജിന്റെ പേരു് അല്ലെങ്കില്‍ ഫയലിന്റെ പേരു് ആവശ്യമുണ്ടു്"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2228
+#: ../client/pk-console.c:2228 ../client/pk-console-test.c:1368
 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:2237
+#: ../client/pk-console.c:2237 ../client/pk-console-test.c:1379
 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:2245
+#: ../client/pk-console.c:2245 ../client/pk-console-test.c:1387
 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:2252
+#: ../client/pk-console.c:2252 ../client/pk-console-test.c:1394
 msgid "Directory not found"
 msgstr "ഡയറക്ടറി ലഭ്യമല്ല"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2260
+#: ../client/pk-console.c:2260 ../client/pk-console-test.c:1403
 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:2270
+#: ../client/pk-console.c:2270 ../client/pk-console-test.c:1415
 msgid "A transaction identifier (tid) is required"
 msgstr "ഒരു ട്രാന്‍സാക്ഷന്‍ ഐഡന്റിഫയര്‍ (tid) ആവശ്യമുണ്ടു്"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:2287
+#: ../client/pk-console.c:2287 ../client/pk-console-test.c:1437
 msgid "A package name to resolve is required"
 msgstr "റിസോള്‍വ് ചെയ്യുവാനുള്ള പാക്കേജിന്റെ പേരു് ആവശ്യമുണ്ടു്"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
 #: ../client/pk-console.c:2296 ../client/pk-console.c:2305
+#: ../client/pk-console-test.c:1448 ../client/pk-console-test.c:1459
 msgid "A repository name is required"
 msgstr "സംഭരണിയ്ക്കുള്ള പേരു് ആവശ്യമുണ്ടു്"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2314
+#: ../client/pk-console.c:2314 ../client/pk-console-test.c:1470
 msgid "A repo name, parameter and value are required"
 msgstr "ഒരു റിപ്പോയുടെ പേരും പരാമീറ്റരും മൂല്ല്യവും ആവശ്യമുണ്ടു്"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:2328
+#: ../client/pk-console.c:2328 ../client/pk-console-test.c:1488
 msgid "An action, e.g. 'update-system' is required"
 msgstr "ഒരു പ്രവര്‍ത്തി ആവശ്യമുണ്ടു്, ഉദാ. 'update-system'"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:2335
+#: ../client/pk-console.c:2335 ../client/pk-console-test.c:1495
 msgid "A correct role is required"
 msgstr "ശരിയായ റോള്‍ ആവശ്യമുണ്ടു്"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2342
+#: ../client/pk-console.c:2342 ../client/pk-console-test.c:1502
 msgid "Failed to get the time since this action was last completed"
 msgstr "ഈ പ്രവര്‍ത്തി അവസാനമായി പൂര്‍ത്തിയാക്കിയ സമയം ലഭ്യമായില്ല"
 
@@ -694,12 +713,15 @@ msgstr "ഈ പ്രവര്‍ത്തി അവസാനമായി പൂ
 #. TRANSLATORS: This is when the user fails to supply the package name
 #: ../client/pk-console.c:2352 ../client/pk-console.c:2364
 #: ../client/pk-console.c:2373 ../client/pk-console.c:2391
-#: ../client/pk-console.c:2400 ../client/pk-generate-pack.c:243
+#: ../client/pk-console.c:2400 ../client/pk-console-test.c:1511
+#: ../client/pk-console-test.c:1526 ../client/pk-console-test.c:1535
+#: ../client/pk-console-test.c:1556 ../client/pk-console-test.c:1565
+#: ../client/pk-generate-pack.c:243
 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:2382
+#: ../client/pk-console.c:2382 ../client/pk-console-test.c:1545
 msgid "A package provide string is required"
 msgstr "പാക്കേജ് ലഭ്യമാക്കുന്ന സ്ട്രിങ് ആവശ്യമുണ്ടു്"
 
@@ -714,7 +736,7 @@ msgid "A list file to open is required"
 msgstr "ലിസ്റ്റായി തുറക്കുവാനുള്ള ഫയലിന്റെ നാമം ആവശ്യമുണ്ടു്"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2483
+#: ../client/pk-console.c:2483 ../client/pk-console-test.c:1619
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "'%s' എന്ന ഐച്ഛികത്തിനുള്ള പിന്തുണ ലഭ്യമല്ല"
@@ -725,7 +747,10 @@ msgid "Incorrect privileges for this operation"
 msgstr "ഈ പ്രക്രിയ നടപ്പിലാക്കുന്നതിനുള്ള തെറ്റായ അനുമതികള്‍"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2499
+#. /* TRANSLATORS: User does not have permission to do this */
+#. g_print ("%s\n", _("Incorrect privileges for this operation"));
+#. TRANSLATORS: Generic failure of what they asked to do
+#: ../client/pk-console.c:2499 ../client/pk-console-test.c:1631
 msgid "Command failed"
 msgstr "നിര്‍ദ്ദേശം പരാജയപ്പെട്ടു"
 
@@ -856,6 +881,98 @@ msgstr "പാക്കേജ്കിറ്റ് നിരീക്ഷകനàµ
 msgid "Cannot show the list of transactions"
 msgstr "ഇടപാടുകള്‍ കാണിക്കുവാന്‍ സാധ്യമല്ല"
 
+#. ask the user
+#: ../client/pk-task-text.c:61
+msgid "Do you want to allow installing of unsigned software?"
+msgstr "ഒപ്പില്ലാത്ത സോഫ്റ്റ്‌വെയര്‍ നിങ്ങള്‍ക്കു് ഇന്‍സ്റ്റോള്‍ ചെയ്യണമോ?"
+
+#: ../client/pk-task-text.c:65
+msgid "The unsigned software will not be installed."
+msgstr "ഒപ്പിട്ടിട്ടില്ലാത്ത സോഫ്റ്റ്‌വെയര്‍ ഇന്‍സ്റ്റോള്‍ ചെയ്യുന്നതല്ല."
+
+#: ../client/pk-task-text.c:94
+msgid "Software source signature required"
+msgstr "സോഫ്റ്റ്‌വെയര്‍ സോഴ്സ് ഒപ്പു് ആവശ്യമുണ്ടു്"
+
+#: ../client/pk-task-text.c:96
+msgid "Software source name"
+msgstr "സോഫ്റ്റ്‌വെയര്‍ സോഴ്സിന്റെ പേരു്"
+
+#: ../client/pk-task-text.c:97
+msgid "Key URL"
+msgstr "കീ യുആര്‍എല്‍"
+
+#: ../client/pk-task-text.c:98
+msgid "Key user"
+msgstr "കീ ഉപയോക്താവു്"
+
+#: ../client/pk-task-text.c:99
+msgid "Key ID"
+msgstr "കീ ID"
+
+#: ../client/pk-task-text.c:100
+msgid "Key fingerprint"
+msgstr "കീ വിരലടയാളം"
+
+#: ../client/pk-task-text.c:101
+msgid "Key Timestamp"
+msgstr "കീ ടൈംസ്ടാമ്പ്"
+
+#: ../client/pk-task-text.c:142
+msgid "End user licence agreement required"
+msgstr "ഉപയോക്താവിനുള്ള ലൈസന്‍സ് സമ്മതപ്പത്രം ആവശ്യമുണ്ടു്"
+
+#: ../client/pk-task-text.c:143
+msgid "EULA ID"
+msgstr "EULA ID"
+
+#: ../client/pk-task-text.c:146
+msgid "Agreement"
+msgstr "സമ്മതപ്പത്രം"
+
+#. ask the user
+#: ../client/pk-task-text.c:152
+msgid "Do you accept this agreement?"
+msgstr "ഈ സമ്മതപ്പത്രം നിങ്ങള്‍ അംഗീകരിക്കുന്നുവോ?"
+
+#: ../client/pk-task-text.c:156
+msgid "The agreement was not accepted."
+msgstr "സമ്മതപ്പത്രം സ്വീകരിക്കുന്നില്ല."
+
+#: ../client/pk-task-text.c:182
+msgid "Media change required"
+msgstr "മീഡിയാ മാറ്റേണ്ടതുണ്ടു്"
+
+#: ../client/pk-task-text.c:183
+msgid "Media type"
+msgstr "മീഡിയാ തരം"
+
+#: ../client/pk-task-text.c:184
+msgid "Media ID"
+msgstr "മീഡിയാ ID "
+
+#: ../client/pk-task-text.c:185
+msgid "Text"
+msgstr "വാക്യം"
+
+#. ask the user
+#: ../client/pk-task-text.c:189
+msgid "Please insert the correct media"
+msgstr "ദയവായി ശരിയായ മീഡിയാ തെരഞ്ഞെടുക്കുക"
+
+#: ../client/pk-task-text.c:193
+msgid "The correct media was not inserted."
+msgstr "ശരിയായ മീഡിയാ നല്‍കിയിട്ടില്ല."
+
+#: ../client/pk-task-text.c:288
+msgid "The transaction did not proceed."
+msgstr "ഇടപാടു് തുടര്‍ന്നില്ല."
+
+#: ../client/pk-text.c:50
+#, c-format
+msgid "Please enter a number from 1 to %i: "
+msgstr "ദയവായി 1 മുതല്‍ %i വരെയുള്ള ഒരു അക്കം നല്‍കുക: "
+
 #. TRANSLATORS: The package was not found in any software sources
 #: ../client/pk-tools-common.c:119
 #, c-format
@@ -1578,8 +1695,3 @@ msgstr "അനവധി പാക്കേജുകള്‍"
 msgid "Only trusted"
 msgstr "ട്രസ്റ്റഡ് മാത്രം"
 
-#: ../client/pk-text.c:50
-#, c-format
-msgid "Please enter a number from 1 to %i: "
-msgstr "ദയവായി 1 മുതല്‍ %i വരെയുള്ള ഒരു അക്കം നല്‍കുക: "
-
commit d874bd5ac1f4b5def075233f5f640e477ec92df4
Author: Daniel Nicoletti <dantti85-pk at yahoo.com.br>
Date:   Thu Sep 3 18:13:31 2009 -0300

    aptcc: Added non interactive mode to dpkg

diff --git a/backends/aptcc/apt.cpp b/backends/aptcc/apt.cpp
index 1e4e7c5..6e75e1a 100644
--- a/backends/aptcc/apt.cpp
+++ b/backends/aptcc/apt.cpp
@@ -57,7 +57,11 @@ bool aptcc::init()
 	gchar *locale;
 	gchar *proxy_http;
 	gchar *proxy_ftp;
-	// Generate it and map it
+
+	// make sure we do not get a graphical debconf
+	setenv("DEBIAN_FRONTEND", "noninteractive", 1);
+	setenv("APT_LISTCHANGES_FRONTEND", "none", 1);
+
 	// set locale
 	if (locale = pk_backend_get_locale(m_backend)) {
 		setlocale(LC_ALL, locale);
@@ -68,14 +72,18 @@ bool aptcc::init()
 // 		_locale.erase(found);
 // 		_config->Set("APT::Acquire::Translation", _locale);
 	}
+
 	// set http proxy
 	if (proxy_http = pk_backend_get_proxy_http(m_backend)) {
 		_config->Set("Acquire::http::Proxy", proxy_http);
 	}
+
 	// set ftp proxy
 	if (proxy_ftp = pk_backend_get_proxy_ftp(m_backend)) {
 		_config->Set("Acquire::ftp::Proxy", proxy_ftp);
 	}
+
+	// Generate it and map it
 	bool Res = pkgMakeStatusCache(m_pkgSourceList, Progress, &Map, true);
 	Progress.Done();
 	if(!Res) {
commit 59c6727647c1887c9f609e39c544607246783928
Author: Daniel Nicoletti <dantti85-pk at yahoo.com.br>
Date:   Thu Sep 3 17:44:40 2009 -0300

    aptcc: added proxy support and simplified setlocale

diff --git a/backends/aptcc/apt.cpp b/backends/aptcc/apt.cpp
index cc3c226..1e4e7c5 100644
--- a/backends/aptcc/apt.cpp
+++ b/backends/aptcc/apt.cpp
@@ -52,18 +52,36 @@ aptcc::aptcc(PkBackend *backend, bool &cancel, pkgSourceList &apt_source_list)
 {
 }
 
-bool aptcc::init(const char *locale)
+bool aptcc::init()
 {
+	gchar *locale;
+	gchar *proxy_http;
+	gchar *proxy_ftp;
 	// Generate it and map it
-	setlocale(LC_ALL, locale);
+	// set locale
+	if (locale = pk_backend_get_locale(m_backend)) {
+		setlocale(LC_ALL, locale);
+// TODO why this cuts characthers on ui?
+// 		string _locale(locale);
+// 		size_t found;
+// 		found = _locale.find('.');
+// 		_locale.erase(found);
+// 		_config->Set("APT::Acquire::Translation", _locale);
+	}
+	// set http proxy
+	if (proxy_http = pk_backend_get_proxy_http(m_backend)) {
+		_config->Set("Acquire::http::Proxy", proxy_http);
+	}
+	// set ftp proxy
+	if (proxy_ftp = pk_backend_get_proxy_ftp(m_backend)) {
+		_config->Set("Acquire::ftp::Proxy", proxy_ftp);
+	}
 	bool Res = pkgMakeStatusCache(m_pkgSourceList, Progress, &Map, true);
 	Progress.Done();
 	if(!Res) {
 		return false;
 		//"The package lists or status file could not be parsed or opened."
 	}
-// 	_config->Set("Acquire::ftp::Proxy", s);
-// 	_config->Set("Acquire::http::Proxy", s);
 
 	packageCache = new pkgCache(Map);
 	if (_error->PendingError()) {
diff --git a/backends/aptcc/apt.h b/backends/aptcc/apt.h
index 85035c0..c3c4f82 100644
--- a/backends/aptcc/apt.h
+++ b/backends/aptcc/apt.h
@@ -51,7 +51,7 @@ public:
 	aptcc(PkBackend *backend, bool &cancel, pkgSourceList &apt_source_list);
 	~aptcc();
 
-	bool init(const char *locale);
+	bool init();
 
 	pkgCache::VerIterator find_ver(const pkgCache::PkgIterator &pkg);
 	pkgCache::VerIterator find_candidate_ver(const pkgCache::PkgIterator &pkg);
diff --git a/backends/aptcc/pk-backend-aptcc.cpp b/backends/aptcc/pk-backend-aptcc.cpp
index ab46241..a472a02 100644
--- a/backends/aptcc/pk-backend-aptcc.cpp
+++ b/backends/aptcc/pk-backend-aptcc.cpp
@@ -37,7 +37,6 @@
 
 #include <config.h>
 
-#include <locale.h>
 #include <errno.h>
 #include <stdio.h>
 
@@ -162,7 +161,7 @@ backend_get_depends_or_requires_thread (PkBackend *backend)
 	pk_backend_set_status (backend, PK_STATUS_ENUM_QUERY);
 
 	aptcc *m_apt = new aptcc(backend, _cancel, *apt_source_list);
-	if (m_apt->init(pk_backend_get_locale (backend))) {
+	if (m_apt->init()) {
 		egg_debug ("Failed to create apt cache");
 		delete m_apt;
 		pk_backend_finished (backend);
@@ -250,7 +249,7 @@ backend_get_files_thread (PkBackend *backend)
 	pk_backend_set_status (backend, PK_STATUS_ENUM_QUERY);
 
 	aptcc *m_apt = new aptcc(backend, _cancel, *apt_source_list);
-	if (m_apt->init(pk_backend_get_locale (backend))) {
+	if (m_apt->init()) {
 		egg_debug ("Failed to create apt cache");
 		delete m_apt;
 		pk_backend_finished (backend);
@@ -313,7 +312,7 @@ backend_get_details_thread (PkBackend *backend)
 	pk_backend_set_status (backend, PK_STATUS_ENUM_QUERY);
 
 	aptcc *m_apt = new aptcc(backend, _cancel, *apt_source_list);
-	if (m_apt->init(pk_backend_get_locale (backend))) {
+	if (m_apt->init()) {
 		egg_debug ("Failed to create apt cache");
 		delete m_apt;
 		pk_backend_finished (backend);
@@ -384,7 +383,7 @@ backend_update_system_thread (PkBackend *backend)
 	pk_backend_set_allow_cancel (backend, true);
 
 	aptcc *m_apt = new aptcc(backend, _cancel, *apt_source_list);
-	if (m_apt->init(pk_backend_get_locale (backend))) {
+	if (m_apt->init()) {
 		egg_debug ("Failed to create apt cache");
 		delete m_apt;
 		pk_backend_finished (backend);
@@ -441,7 +440,7 @@ backend_get_updates_thread (PkBackend *backend)
 	pk_backend_set_allow_cancel (backend, true);
 
 	aptcc *m_apt = new aptcc(backend, _cancel, *apt_source_list);
-	if (m_apt->init(pk_backend_get_locale (backend))) {
+	if (m_apt->init()) {
 		egg_debug ("Failed to create apt cache");
 		delete m_apt;
 		pk_backend_finished (backend);
@@ -640,7 +639,7 @@ backend_download_packages_thread (PkBackend *backend)
 	pk_backend_set_status (backend, PK_STATUS_ENUM_QUERY);
 
 	aptcc *m_apt = new aptcc(backend, _cancel, *apt_source_list);
-	if (m_apt->init(pk_backend_get_locale (backend))) {
+	if (m_apt->init()) {
 		egg_debug ("Failed to create apt cache");
 		delete m_apt;
 		pk_backend_finished (backend);
@@ -746,7 +745,7 @@ backend_refresh_cache_thread (PkBackend *backend)
 	// we re-read it here since it might have changed
 	apt_source_list->ReadMainList();
 	aptcc *m_apt = new aptcc(backend, _cancel, *apt_source_list);
-	if (m_apt->init(pk_backend_get_locale (backend))) {
+	if (m_apt->init()) {
 		egg_debug ("Failed to create apt cache");
 		delete m_apt;
 		pk_backend_finished (backend);
@@ -820,7 +819,7 @@ backend_resolve_thread (PkBackend *backend)
 	pk_backend_set_status (backend, PK_STATUS_ENUM_QUERY);
 
 	aptcc *m_apt = new aptcc(backend, _cancel, *apt_source_list);
-	if (m_apt->init(pk_backend_get_locale (backend))) {
+	if (m_apt->init()) {
 		egg_debug ("Failed to create apt cache");
 		delete m_apt;
 		pk_backend_finished (backend);
@@ -886,7 +885,7 @@ backend_search_file_thread (PkBackend *backend)
 	// as we can only search for installed files lets avoid the opposite
 	if (!pk_bitfield_contain (filters, PK_FILTER_ENUM_NOT_INSTALLED)) {
 		aptcc *m_apt = new aptcc(backend, _cancel, *apt_source_list);
-		if (m_apt->init(pk_backend_get_locale (backend))) {
+		if (m_apt->init()) {
 			egg_debug ("Failed to create apt cache");
 			delete m_apt;
 			pk_backend_finished (backend);
@@ -948,7 +947,7 @@ backend_search_group_thread (PkBackend *backend)
 	PkGroupEnum pkGroup = pk_group_enum_from_text (group);
 
 	aptcc *m_apt = new aptcc(backend, _cancel, *apt_source_list);
-	if (m_apt->init(pk_backend_get_locale (backend))) {
+	if (m_apt->init()) {
 		egg_debug ("Failed to create apt cache");
 		delete m_apt;
 		pk_backend_finished (backend);
@@ -1023,7 +1022,7 @@ backend_search_package_thread (PkBackend *backend)
 	}
 
 	aptcc *m_apt = new aptcc(backend, _cancel, *apt_source_list);
-	if (m_apt->init(pk_backend_get_locale (backend))) {
+	if (m_apt->init()) {
 		egg_debug ("Failed to create apt cache");
 		delete m_matcher;
 		delete m_apt;
@@ -1185,7 +1184,7 @@ backend_manage_packages_thread (PkBackend *backend)
 	pk_backend_set_status (backend, PK_STATUS_ENUM_QUERY);
 
 	aptcc *m_apt = new aptcc(backend, _cancel, *apt_source_list);
-	if (m_apt->init(pk_backend_get_locale (backend))) {
+	if (m_apt->init()) {
 		egg_debug ("Failed to create apt cache");
 		delete m_apt;
 		pk_backend_finished (backend);
@@ -1421,7 +1420,7 @@ backend_get_packages_thread (PkBackend *backend)
 	pk_backend_set_allow_cancel (backend, true);
 
 	aptcc *m_apt = new aptcc(backend, _cancel, *apt_source_list);
-	if (m_apt->init(pk_backend_get_locale (backend))) {
+	if (m_apt->init()) {
 		egg_debug ("Failed to create apt cache");
 		delete m_apt;
 		pk_backend_finished (backend);
commit f4b73c8b07ddf3fa7392f8e850e34f6971867acc
Author: Daniel Nicoletti <dantti85-pk at yahoo.com.br>
Date:   Thu Sep 3 16:32:58 2009 -0300

    aptcc: updated matrix.html to reflect simulate

diff --git a/docs/html/pk-matrix.html b/docs/html/pk-matrix.html
index 7687258..e34013d 100644
--- a/docs/html/pk-matrix.html
+++ b/docs/html/pk-matrix.html
@@ -464,7 +464,7 @@
 <tr>
 <td><b>SimulateInstallPackages</b></td>
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- apt -->
-<td><img src="img/status-bad.png" alt="[no]"/></td><!-- aptcc -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- aptcc -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- alpm -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- box -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- conary -->
@@ -481,7 +481,7 @@
 <tr>
 <td><b>SimulateRemovePackages</b></td>
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- apt -->
-<td><img src="img/status-bad.png" alt="[no]"/></td><!-- aptcc -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- aptcc -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- alpm -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- box -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- conary -->
@@ -498,7 +498,7 @@
 <tr>
 <td><b>SimulateUpdatePackages</b></td>
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- apt -->
-<td><img src="img/status-bad.png" alt="[no]"/></td><!-- aptcc -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- aptcc -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- alpm -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- box -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- conary -->
commit 6aa66e4e10e5c6dbc9cdb72f05b5e7e4335264a6
Merge: 49776a6... 09d9cfa...
Author: Daniel Nicoletti <dantti85-pk at yahoo.com.br>
Date:   Thu Sep 3 16:28:23 2009 -0300

    Merge branch 'master' into aptcc-simulate

commit 49776a622ebfd776b0f8081ae2c6cc0ffa5b97ba
Author: Daniel Nicoletti <dantti85-pk at yahoo.com.br>
Date:   Thu Sep 3 16:27:19 2009 -0300

    Simulate finished

diff --git a/backends/aptcc/apt.cpp b/backends/aptcc/apt.cpp
index cc09441..cc3c226 100644
--- a/backends/aptcc/apt.cpp
+++ b/backends/aptcc/apt.cpp
@@ -311,11 +311,13 @@ void aptcc::emit_package(const pkgCache::PkgIterator &pkg,
 
 		// TODO add Ubuntu handling
 		if (pk_bitfield_contain (filters, PK_FILTER_ENUM_FREE)) {
-			if (!repo_section.compare("contrib") || !repo_section.compare("non-free")) {
+			if (!repo_section.compare("contrib") ||
+			    !repo_section.compare("non-free")) {
 				return;
 			}
 		} else if (pk_bitfield_contain (filters, PK_FILTER_ENUM_NOT_FREE)) {
-			if (repo_section.compare("contrib") && repo_section.compare("non-free")) {
+			if (repo_section.compare("contrib") &&
+			    repo_section.compare("non-free")) {
 				return;
 			}
 		}
@@ -630,143 +632,72 @@ bool aptcc::TryToInstall(pkgCache::PkgIterator Pkg,
 			 pkgProblemResolver &Fix,
 			 bool Remove,
 			 bool BrokenFix,
-			 unsigned int &ExpectedInst/*,
-			 bool AllowFail = true*/)
+			 unsigned int &ExpectedInst)
 {
-    cout << "TryToInstall PACKAGE: " << Pkg.Name() << endl;
-   /* This is a pure virtual package and there is a single available
-      provides */
-   if (Cache[Pkg].CandidateVer == 0 && Pkg->ProvidesList != 0 &&
-       Pkg.ProvidesList()->NextProvides == 0)
-   {
-      pkgCache::PkgIterator Tmp = Pkg.ProvidesList().OwnerPkg();
-//       ioprintf(c1out,_("Note, selecting %s instead of %s\n"),
-// 	       Tmp.Name(),Pkg.Name());
-      Pkg = Tmp;
-   }
-
-   // Handle the no-upgrade case
-//    if (_config->FindB("APT::Get::upgrade",true) == false &&
-//        Pkg->CurrentVer != 0)
-//    {
-//       if (AllowFail == true)
-// 	 ioprintf(c1out,_("Skipping %s, it is already installed and upgrade is not set.\n"),
-// 		  Pkg.Name());
-//       return true;
-//    }
-
-   // Check if there is something at all to install
-   pkgDepCache::StateCache &State = Cache[Pkg];
-   if (Remove == true && Pkg->CurrentVer == 0)
-   {
-      Fix.Clear(Pkg);
-      Fix.Protect(Pkg);
-      Fix.Remove(Pkg);
-
-      /* We want to continue searching for regex hits, so we return false here
-         otherwise this is not really an error. */
-//       if (AllowFail == false)
-// 	 return false;
-
-//       ioprintf(c1out,_("Package %s is not installed, so not removed\n"),Pkg.Name());
-      return true;
-   }
-
-   if (State.CandidateVer == 0 && Remove == false)
-   {
-//       if (AllowFail == false)
-// 	 return false;
-
-      if (Pkg->ProvidesList != 0)
-      {
-// 	 ioprintf(c1out,_("Package %s is a virtual package provided by:\n"),
-// 		  Pkg.Name());
+	// This is a pure virtual package and there is a single available provides
+	if (Cache[Pkg].CandidateVer == 0 && Pkg->ProvidesList != 0 &&
+	    Pkg.ProvidesList()->NextProvides == 0)
+	{
+		pkgCache::PkgIterator Tmp = Pkg.ProvidesList().OwnerPkg();
+		Pkg = Tmp;
+	}
 
-	 pkgCache::PrvIterator I = Pkg.ProvidesList();
-	 for (; I.end() == false; I++)
-	 {
-	    pkgCache::PkgIterator Pkg = I.OwnerPkg();
+	// Check if there is something at all to install
+	pkgDepCache::StateCache &State = Cache[Pkg];
+	if (Remove == true && Pkg->CurrentVer == 0)
+	{
+		Fix.Clear(Pkg);
+		Fix.Protect(Pkg);
+		Fix.Remove(Pkg);
 
-	    if (Cache[Pkg].CandidateVerIter(Cache) == I.OwnerVer())
-	    {
-// 	       if (Cache[Pkg].Install() == true && Cache[Pkg].NewInstall() == false)
-// 		  c1out << "  " << Pkg.Name() << " " << I.OwnerVer().VerStr() <<
-// 		  _(" [Installed]") << endl;
-// 	       else
-// 		  c1out << "  " << Pkg.Name() << " " << I.OwnerVer().VerStr() << endl;
-	    }
-	 }
-// 	 c1out << _("You should explicitly select one to install.") << endl;
-      }
-      else
-      {
-// 	 ioprintf(c1out,
-// 	 _("Package %s is not available, but is referred to by another package.\n"
-// 	   "This may mean that the package is missing, has been obsoleted, or\n"
-//            "is only available from another source\n"),Pkg.Name());
-
-	 string List;
-	 string VersionsList;
-	 SPtrArray<bool> Seen = new bool[Cache.Head().PackageCount];
-	 memset(Seen,0,Cache.Head().PackageCount*sizeof(*Seen));
-	 pkgCache::DepIterator Dep = Pkg.RevDependsList();
-	 for (; Dep.end() == false; Dep++)
-	 {
-	    if (Dep->Type != pkgCache::Dep::Replaces)
-	       continue;
-	    if (Seen[Dep.ParentPkg()->ID] == true)
-	       continue;
-	    Seen[Dep.ParentPkg()->ID] = true;
-	    List += string(Dep.ParentPkg().Name()) + " ";
-        //VersionsList += string(Dep.ParentPkg().CurVersion) + "\n"; ???
-	 }
-// 	 ShowList(c1out,_("However the following packages replace it:"),List,VersionsList);
-      }
+		return true;
+	}
 
-//       _error->Error(_("Package %s has no installation candidate"),Pkg.Name());
-      return false;
-   }
+	if (State.CandidateVer == 0 && Remove == false)
+	{
+		_error->Error("Package %s is virtual and has no installation candidate", Pkg.Name());
+		return false;
+	}
 
-   Fix.Clear(Pkg);
-   Fix.Protect(Pkg);
-   if (Remove == true)
-   {
-      Fix.Remove(Pkg);
-      Cache.MarkDelete(Pkg,_config->FindB("APT::Get::Purge",false));
-      return true;
-   }
+	Fix.Clear(Pkg);
+	Fix.Protect(Pkg);
+	if (Remove == true)
+	{
+		Fix.Remove(Pkg);
+		Cache.MarkDelete(Pkg,_config->FindB("APT::Get::Purge",false));
+		return true;
+	}
 
-   // Install it
-   Cache.MarkInstall(Pkg,false);
-   if (State.Install() == false)
-   {
-       cout << "TryToInstall 6" << endl;
-      if (_config->FindB("APT::Get::ReInstall",false) == true)
-      {
-	 if (Pkg->CurrentVer == 0 || Pkg.CurrentVer().Downloadable() == false)
-// 	    ioprintf(c1out,_("Reinstallation of %s is not possible, it cannot be downloaded.\n"),
-// 		     Pkg.Name());
-;
-	 else
-	    Cache.SetReInstall(Pkg,true);
-      }
-      else
-      {
-// 	 if (AllowFail == true)
-// 	    ioprintf(c1out,_("%s is already the newest version.\n"),
-// 		     Pkg.Name());
-      }
-   }
-   else
-      ExpectedInst++;
+	// Install it
+	Cache.MarkInstall(Pkg,false);
+	if (State.Install() == false)
+	{
+		if (_config->FindB("APT::Get::ReInstall",false) == true) {
+			if (Pkg->CurrentVer == 0 || Pkg.CurrentVer().Downloadable() == false) {
+		// 	    ioprintf(c1out,_("Reinstallation of %s is not possible, it cannot be downloaded.\n"),
+		// 		     Pkg.Name());
+		;
+			} else {
+				Cache.SetReInstall(Pkg,true);
+			}
+		} else {
+	    // 	 if (AllowFail == true)
+	    // 	    ioprintf(c1out,_("%s is already the newest version.\n"),
+	    // 		     Pkg.Name());
+		}
+	} else {
+		ExpectedInst++;
+	}
 
-   cout << "trytoinstall ExpectedInst " << ExpectedInst << endl;
-   // Install it with autoinstalling enabled (if we not respect the minial
-   // required deps or the policy)
-   if ((State.InstBroken() == true || State.InstPolicyBroken() == true) && BrokenFix == false)
-      Cache.MarkInstall(Pkg,true);
+	cout << "trytoinstall ExpectedInst " << ExpectedInst << endl;
+	// Install it with autoinstalling enabled (if we not respect the minial
+	// required deps or the policy)
+	if ((State.InstBroken() == true || State.InstPolicyBroken() == true) &&
+	    BrokenFix == false) {
+	    Cache.MarkInstall(Pkg,true);
+	}
 
-   return true;
+	return true;
 }
 
 // emitChangedPackages - Show packages to newly install				/*{{{*/
@@ -873,20 +804,8 @@ bool aptcc::installPackages(pkgDepCache &Cache,
 	    return true;
 
 	// No remove flag
-	if (Cache.DelCount() != 0 && _config->FindB("APT::Get::Remove",true) == false)
-	    return _error->Error("Packages need to be removed but remove is disabled.");
-
-	// Run the simulator ..
-	if (_config->FindB("APT::Get::Simulate") == true)
-	{
-	    pkgSimulate PM(&Cache);
-	    int status_fd = _config->FindI("APT::Status-Fd",-1);
-	    pkgPackageManager::OrderResult Res = PM.DoInstall(status_fd);
-	    if (Res == pkgPackageManager::Failed)
-		return false;
-	    if (Res != pkgPackageManager::Completed)
-		return _error->Error("Internal error, Ordering didn't finish");
-	    return true;
+	if (Cache.DelCount() != 0 && _config->FindB("APT::Get::Remove",true) == false) {
+		return _error->Error("Packages need to be removed but remove is disabled.");
 	}
 
 	// Create the text record parser
@@ -916,8 +835,9 @@ bool aptcc::installPackages(pkgDepCache &Cache,
 	// Create the package manager and prepare to download
 	SPtr<pkgPackageManager> PM= _system->CreatePM(&Cache);
 	if (PM->GetArchives(&Fetcher, &m_pkgSourceList, &Recs) == false ||
-	    _error->PendingError() == true)
-	    return false;
+	    _error->PendingError() == true) {
+		return false;
+	}
 
 
 	// Generate the list of affected packages and sort it
@@ -1151,87 +1071,69 @@ bool aptcc::installPackages(pkgDepCache &Cache,
 /* Remove unused automatic packages */
 bool aptcc::DoAutomaticRemove(pkgCacheFile &Cache)
 {
-   bool Debug = _config->FindI("Debug::pkgAutoRemove",false);
-   bool doAutoRemove = _config->FindB("APT::Get::AutomaticRemove", false);
-   bool hideAutoRemove = _config->FindB("APT::Get::HideAutoRemove");
-   pkgDepCache::ActionGroup group(*Cache);
+	bool doAutoRemove = _config->FindB("APT::Get::AutomaticRemove", true);
+	pkgDepCache::ActionGroup group(*Cache);
 
-//    if(Debug)
-//       std::cout << "DoAutomaticRemove()" << std::endl;
+	if (_config->FindB("APT::Get::Remove",true) == false &&
+	    doAutoRemove == true)
+	{
+		cout << "We are not supposed to delete stuff, can't start "
+			"AutoRemover" << endl;
+		doAutoRemove = false;
+	}
 
-   if (_config->FindB("APT::Get::Remove",true) == false &&
-       doAutoRemove == true)
-   {
-//       c1out << _("We are not supposed to delete stuff, can't start "
-// 		 "AutoRemover") << std::endl;
-      doAutoRemove = false;
-   }
-// c1out << "doAutoRemove" << doAutoRemove << endl;
-   string autoremovelist, autoremoveversions;
-   // look over the cache to see what can be removed
-   for (pkgCache::PkgIterator Pkg = Cache->PkgBegin(); ! Pkg.end(); ++Pkg)
-   {
-      if (Cache[Pkg].Garbage)
-      {
-// 	 if(Pkg.CurrentVer() != 0 || Cache[Pkg].Install())
-// 	    if(Debug)
-// 	       std::cout << "We could delete %s" <<  Pkg.Name() << std::endl;
-
-	 // only show stuff in the list that is not yet marked for removal
-	 if(Cache[Pkg].Delete() == false)
-	 {
-	    autoremovelist += string(Pkg.Name()) + " ";
-	    autoremoveversions += string(Cache[Pkg].CandVersion) + "\n";
-	 }
-	 if (doAutoRemove)
-	 {
-	    if(Pkg.CurrentVer() != 0 &&
-	       Pkg->CurrentState != pkgCache::State::ConfigFiles) {
-		    Cache->MarkDelete(Pkg, _config->FindB("APT::Get::Purge", false));
-	    } else {
-		    Cache->MarkKeep(Pkg, false, false);
-	    }
-	 }
-      }
-   }
-//    if (!hideAutoRemove)
-//       ShowList(c1out, _("The following packages were automatically installed and are no longer required:"), autoremovelist, autoremoveversions);
-//    if (!doAutoRemove && !hideAutoRemove && autoremovelist.size() > 0)
-//       c1out << _("Use 'apt-get autoremove' to remove them.") << std::endl;
+	// look over the cache to see what can be removed
+	for (pkgCache::PkgIterator Pkg = Cache->PkgBegin(); ! Pkg.end(); ++Pkg)
+	{
+		if (Cache[Pkg].Garbage && doAutoRemove)
+		{
+			if (Pkg.CurrentVer() != 0 &&
+			    Pkg->CurrentState != pkgCache::State::ConfigFiles) {
+				Cache->MarkDelete(Pkg, _config->FindB("APT::Get::Purge", false));
+			} else {
+				Cache->MarkKeep(Pkg, false, false);
+			}
+		}
+	}
 
-   // Now see if we destroyed anything
-   if (Cache->BrokenCount() != 0)
-   {
-//       c1out << _("Hmm, seems like the AutoRemover destroyed something which really\n"
-// 	         "shouldn't happen. Please file a bug report against apt.") << endl;
-//       c1out << endl;
-//       c1out << _("The following information may help to resolve the situation:") << endl;
-//       c1out << endl;
-//       ShowBroken(c1out,Cache,false);
-
-      return _error->Error("Internal Error, AutoRemover broke stuff");
-   }
-   return true;
+	// Now see if we destroyed anything
+	if (Cache->BrokenCount() != 0)
+	{
+		cout << "Hmm, seems like the AutoRemover destroyed something which really\n"
+			    "shouldn't happen. Please file a bug report against apt." << endl;
+		// TODO call show_broken
+	    //       ShowBroken(c1out,Cache,false);
+		return _error->Error("Internal Error, AutoRemover broke stuff");
+	}
+	return true;
 }
 
 bool aptcc::prepare_transaction(vector<pair<pkgCache::PkgIterator, pkgCache::VerIterator> > &pkgs,
 				bool simulate,
 				bool remove)
 {
-    cout << "==============================================================" << endl;
+	cout << "==============================================================" << endl;
 	cout << "prepare_transaction" << simulate << remove << endl;
 	bool WithLock = !simulate; // Check to see if we are just simulating,
 				   //since for that no lock is needed
 
-    //    CacheFile Cache;
 	pkgCacheFile Cache;
 	OpTextProgress Prog(*_config);
-	// TODO do a loop here waiting for the lock if we need it..
-	if (Cache.Open(Prog, WithLock) == false) {
+	int timeout = 10;
+	// TODO test this
+	while (Cache.Open(Prog, WithLock) == false) {
 		// failed to open cache, try checkDeps then..
 		// || Cache.CheckDeps(CmdL.FileSize() != 1) == false
-		cout << "Failed to open cache" << endl;
-		return false;
+		if (WithLock == false || (timeout <= 0)) {
+			pk_backend_error_code(m_backend,
+					      PK_ERROR_ENUM_NO_CACHE,
+					      "Could not open package cache.");
+			return false;
+		} else {
+			pk_backend_set_status (m_backend, PK_STATUS_ENUM_WAITING_FOR_LOCK);
+			sleep(1);
+			timeout--;
+		}
 	}
 
 	// Enter the special broken fixing mode if the user specified arguments
@@ -1240,193 +1142,76 @@ bool aptcc::prepare_transaction(vector<pair<pkgCache::PkgIterator, pkgCache::Ver
 		BrokenFix = true;
 	}
 
-	unsigned int AutoMarkChanged = 0;
 	unsigned int ExpectedInst = 0;
-	unsigned int Packages = 0;
 	pkgProblemResolver Fix(Cache);
 
-// 	bool DefRemove = remove; // check if we are going to remove, otherwise is false
-
 	// new scope for the ActionGroup
 	{
-	    cout << "new scope for the ActionGroup" << endl;
+		cout << "new scope for the ActionGroup" << endl;
 		pkgDepCache::ActionGroup group(Cache);
 		for(vector<pair<pkgCache::PkgIterator, pkgCache::VerIterator> >::iterator i=pkgs.begin();
 		    i != pkgs.end();
 		    ++i)
 		{
-		    pkgCache::PkgIterator Pkg = i->first;
-		    cout << "PACKAGE: " << Pkg.Name() << endl;
+			pkgCache::PkgIterator Pkg = i->first;
 			if (_cancel) {
 				break;
 			}
-			cout << "PACKAGE" << i->first.Name() << endl;
-
-// 		for (const char **I = CmdL.FileList + 1; *I != 0; I++)
-// 		{
-			// Duplicate the string
-// 			unsigned int Length = strlen(*I);
-// 			char S[300];
-// 			if (Length >= sizeof(S))
-// 			    continue;
-// 			strcpy(S,*I);
-
-			// See if we are removing and special indicators..
-// 			bool Remove = DefRemove;
-			char *VerTag = 0;
-			bool VerIsRel = false;
-
-		// Locate the package WE SHOULD ALREADY HAVE THE PACKAGE
-    // 	    pkgCache::PkgIterator Pkg = Cache->FindPkg(S);
-    // 	    Packages++;
-    // 	    if (Pkg.end() == true)
-    // 	    {
-    // 		// Check if the name is a regex
-    // 		const char *I;
-    // 		for (I = S; *I != 0; I++)
-    // 		if (*I == '?' || *I == '*' || *I == '|' ||
-    // 		    *I == '[' || *I == '^' || *I == '$')
-    // 		    break;
-    // 		if (*I == 0)
-    // 		return _error->Error(_("Couldn't find package %s"),S);
-    //
-    // 		// Regexs must always be confirmed
-    // 		ExpectedInst += 1000;
-    //
-    // 		// Compile the regex pattern
-    // 		regex_t Pattern;
-    // 		int Res;
-    // 		if ((Res = regcomp(&Pattern,S,REG_EXTENDED | REG_ICASE |
-    // 				REG_NOSUB)) != 0)
-    // 		{
-    // 		char Error[300];
-    // 		regerror(Res,&Pattern,Error,sizeof(Error));
-    // 		return _error->Error(_("Regex compilation error - %s"),Error);
-    // 		}
-    //
-    // 		// Run over the matches
-    // 		bool Hit = false;
-    // 		for (Pkg = Cache->PkgBegin(); Pkg.end() == false; Pkg++)
-    // 		{
-    // 		if (regexec(&Pattern,Pkg.Name(),0,0,0) != 0)
-    // 		    continue;
-    //
-    // 		ioprintf(c1out,_("Note, selecting %s for regex '%s'\n"),
-    // 			    Pkg.Name(),S);
-    //
-    // 		if (VerTag != 0)
-    // 		    if (TryToChangeVer(Pkg,Cache,VerTag,VerIsRel) == false)
-    // 			return false;
-    //
-    // 		Hit |= TryToInstall(Pkg,Cache,Fix,Remove,BrokenFix,
-    // 				    ExpectedInst,false);
-    // 		}
-    // 		regfree(&Pattern);
-    //
-    // 		if (Hit == false)
-    // 		return _error->Error(_("Couldn't find package %s"),S);
-    // 	    }
-    // 	    else
-		{
-    // 		if (VerTag != 0)
-    // 		    if (TryToChangeVer(Pkg,Cache,VerTag,VerIsRel) == false)
-    // 			return false;
-			if (TryToInstall(Pkg,Cache,Fix,remove,BrokenFix,ExpectedInst) == false) {
-			    cout << "TryToInstall Failed" << endl;
+
+			if (TryToInstall(Pkg,
+					 Cache,
+					 Fix,
+					 remove,
+					 BrokenFix,
+					 ExpectedInst) == false) {
+				pk_backend_error_code(m_backend,
+						      PK_ERROR_ENUM_INTERNAL_ERROR,
+						      "Could not open package cache.");
 				return false;
 			}
+		}
 
+		/* If we are in the Broken fixing mode we do not attempt to fix the
+		    problems. This is if the user invoked install without -f and gave
+		    packages */
+		if (BrokenFix == true && Cache->BrokenCount() != 0)
+		{
+			// TODO
+// 			ShowBroken(c1out,Cache,false);
+			cout << "Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution)." << endl;
+			return _error->Error("Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).");
 		}
-	}
 
-	/* If we are in the Broken fixing mode we do not attempt to fix the
-	    problems. This is if the user invoked install without -f and gave
-	    packages */
-	if (BrokenFix == true && Cache->BrokenCount() != 0)
-	{
-// 	    c1out << _("You might want to run `apt-get -f install' to correct these:") << endl;
-// TODO
-// 	    ShowBroken(c1out,Cache,false);
-cout << "Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution)." << endl;
+		// Call the scored problem resolver
+		Fix.InstallProtect();
+		if (Fix.Resolve(true) == false) {
+			_error->Discard();
+		}
 
-	    return _error->Error("Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).");
+		// Now we check the state of the packages,
+		if (Cache->BrokenCount() != 0)
+		{
+	// 	    c1out << _("The following information may help to resolve the situation:") << endl;
+		    // TODO
+	// 	    ShowBroken(c1out,Cache,false);
+		    return _error->Error("Broken packages");
+		}
+	}
+	// Try to auto-remove packages
+	if (!DoAutomaticRemove(Cache)) {
+		return false;
 	}
 
-	// Call the scored problem resolver
-	Fix.InstallProtect();
-	if (Fix.Resolve(true) == false)
-	    _error->Discard();
-
-	// Now we check the state of the packages,
-	if (Cache->BrokenCount() != 0)
-	{
-// 	    c1out <<
-// 		_("Some packages could not be installed. This may mean that you have\n"
-// 		"requested an impossible situation or if you are using the unstable\n"
-// 		"distribution that some required packages have not yet been created\n"
-// 		"or been moved out of Incoming.") << endl;
-	    /*
-	    if (Packages == 1)
-	    {
-		c1out << endl;
-		c1out <<
-		_("Since you only requested a single operation it is extremely likely that\n"
-		    "the package is simply not installable and a bug report against\n"
-		    "that package should be filed.") << endl;
-	    }
-	    */
+	if (simulate) {
+		// Print out a list of packages that are going to be installed extra
+		emitChangedPackages(pkgs, Cache);
+		return true;
+	} else {
+	    // See if we need to prompt
+	//     if (Cache->InstCount() == ExpectedInst && Cache->DelCount() == 0)
+	// 	return InstallPackages(Cache,false,false);
 
-// 	    c1out << _("The following information may help to resolve the situation:") << endl;
-// 	    c1out << endl;
-// TODO
-// 	    ShowBroken(c1out,Cache,false);
-	    return _error->Error("Broken packages");
+	//     return InstallPackages(Cache,false);
+		return true;
 	}
-    }
-    cout << "DoAutomaticRemove" << endl;
-    if (!DoAutomaticRemove(Cache))
-	return false;
-
-    /* Print out a list of packages that are going to be installed extra
-	to what the user asked */
-//     if (Cache->InstCount() != ExpectedInst)
-//     {
-// 	string List;
-// 	string VersionsList;
-// 	for (unsigned J = 0; J < Cache->Head().PackageCount; J++)
-// 	{
-// 	    pkgCache::PkgIterator I(Cache,Cache.List[J]);
-// 	    if ((*Cache)[I].Install() == false)
-// 		continue;
-//
-// 	    const char **J;
-// 	    for (J = CmdL.FileList + 1; *J != 0; J++)
-// 		if (strcmp(*J,I.Name()) == 0)
-// 		    break;
-//
-// 	    if (*J == 0) {
-// 		List += string(I.Name()) + " ";
-// 		VersionsList += string(Cache[I].CandVersion) + "\n";
-// 	    }
-// 	}
-//
-// 	ShowList(c1out,_("The following extra packages will be installed:"),List,VersionsList);
-//     }
-
-    // if nothing changed in the cache, but only the automark information
-    // we write the StateFile here, otherwise it will be written in
-    // cache.commit()
-    if (AutoMarkChanged > 0 &&
-	Cache->DelCount() == 0 && Cache->InstCount() == 0 &&
-	Cache->BadCount() == 0 &&
-	_config->FindB("APT::Get::Simulate",false) == false)
-	Cache->writeStateFile(NULL);
-
-    emitChangedPackages(pkgs, Cache);
-    // See if we need to prompt
-//     if (Cache->InstCount() == ExpectedInst && Cache->DelCount() == 0)
-// 	return InstallPackages(Cache,false,false);
-
-//     return InstallPackages(Cache,false);
-    return true;
 }
diff --git a/backends/aptcc/pk-backend-aptcc.cpp b/backends/aptcc/pk-backend-aptcc.cpp
index eba2667..ab46241 100644
--- a/backends/aptcc/pk-backend-aptcc.cpp
+++ b/backends/aptcc/pk-backend-aptcc.cpp
@@ -1158,7 +1158,6 @@ backend_search_name (PkBackend *backend, PkBitfield filters, const gchar *search
 	pk_backend_thread_create(backend, backend_search_package_thread);
 }
 
-
 /**
  * backend_search_details:
  */
@@ -1230,19 +1229,33 @@ backend_manage_packages_thread (PkBackend *backend)
 	if (!m_apt->prepare_transaction(pkgs, simulate, remove)) {
 		// Print transaction errors
 		cout << "prepare_transaction failed" << endl;
+		delete m_apt;
+		pk_backend_finished (backend);
+		return false;
 	}
 
 	delete m_apt;
-
 	pk_backend_finished (backend);
 	return true;
 }
 
+
 /**
- * backend_resolve:
+ * backend_install_update_packages:
+ */
+static void
+backend_install_update_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);
+}
+
+/**
+ * backend_simulate_install_update_packages:
  */
 static void
-simulate_install_update_packages (PkBackend *backend, gchar **packages)
+backend_simulate_install_update_packages (PkBackend *backend, gchar **packages)
 {
 	pk_backend_set_bool(backend, "simulate", true);
 	pk_backend_set_bool(backend, "remove", false);
@@ -1250,10 +1263,21 @@ simulate_install_update_packages (PkBackend *backend, gchar **packages)
 }
 
 /**
- * backend_resolve:
+ * backend_remove_packages:
+ */
+static void
+backend_remove_packages (PkBackend *backend, gchar **package_ids, gboolean allow_deps, gboolean autoremove)
+{
+	pk_backend_set_bool(backend, "simulate", false);
+	pk_backend_set_bool(backend, "remove", true);
+	pk_backend_thread_create (backend, backend_manage_packages_thread);
+}
+
+/**
+ * backend_simulate_remove_packages:
  */
 static void
-simulate_remove_packages (PkBackend *backend, gchar **packages)
+backend_simulate_remove_packages (PkBackend *backend, gchar **packages)
 {
 	pk_backend_set_bool(backend, "simulate", true);
 	pk_backend_set_bool(backend, "remove", true);
@@ -1441,88 +1465,6 @@ backend_get_packages (PkBackend *backend, PkBitfield filter)
 	pk_backend_thread_create (backend, backend_get_packages_thread);
 }
 
-/**
- * backend_install_packages:
- */
-static void
-backend_install_packages (PkBackend *backend, gboolean only_trusted, gchar **package_ids)
-{
-	const gchar *license_agreement;
-	const gchar *eula_id;
-	gboolean has_eula;
-
-	/* FIXME: support only_trusted */
-
-// 	if (g_strcmp0 (package_ids[0], "vips-doc;7.12.4-2.fc8;noarch;linva") == 0) {
-// 		if (_use_gpg && !_has_signature) {
-			pk_backend_repo_signature_required (backend, package_ids[0], "updates",
-							    "http://example.com/gpgkey",
-							    "Test Key (Fedora) fedora at example.com",
-							    "BB7576AC",
-							    "D8CC 06C2 77EC 9C53 372F C199 B1EE 1799 F24F 1B08",
-							    "2007-10-04", PK_SIGTYPE_ENUM_GPG);
-			pk_backend_error_code (backend, PK_ERROR_ENUM_GPG_FAILURE,
-					       "GPG signed package could not be verified");
-			pk_backend_finished (backend);
-			return;
-// 		}
-// 		eula_id = "eula_hughsie_dot_com";
-// 		has_eula = pk_backend_is_eula_valid (backend, eula_id);
-// 		if (_use_eula && !has_eula) {
-// 			license_agreement = "Narrator: In A.D. 2101, war was beginning.\n"
-// 					    "Captain: What happen ?\n"
-// 					    "Mechanic: Somebody set up us the bomb.\n\n"
-// 					    "Operator: We get signal.\n"
-// 					    "Captain: What !\n"
-// 					    "Operator: Main screen turn on.\n"
-// 					    "Captain: It's you !!\n"
-// 					    "CATS: How are you gentlemen !!\n"
-// 					    "CATS: All your base are belong to us.\n"
-// 					    "CATS: You are on the way to destruction.\n\n"
-// 					    "Captain: What you say !!\n"
-// 					    "CATS: You have no chance to survive make your time.\n"
-// 					    "CATS: Ha Ha Ha Ha ....\n\n"
-// 					    "Operator: Captain!! *\n"
-// 					    "Captain: Take off every 'ZIG' !!\n"
-// 					    "Captain: You know what you doing.\n"
-// 					    "Captain: Move 'ZIG'.\n"
-// 					    "Captain: For great justice.\n";
-// 			pk_backend_eula_required (backend, eula_id, package_ids[0],
-// 						  "CATS Inc.", license_agreement);
-// 			pk_backend_error_code (backend, PK_ERROR_ENUM_NO_LICENSE_AGREEMENT,
-// 					       "licence not installed so cannot install");
-// 			pk_backend_finished (backend);
-// 			return;
-// 		}
-// 		if (_use_media) {
-// 			_use_media = FALSE;
-// 			pk_backend_media_change_required (backend, PK_MEDIA_TYPE_ENUM_DVD, "linux-disk-1of7", "Linux Disc 1 of 7");
-// 			pk_backend_error_code (backend, PK_ERROR_ENUM_MEDIA_CHANGE_REQUIRED,
-// 					       "additional media linux-disk-1of7 required");
-// 			pk_backend_finished (backend);
-// 			return;
-// 		}
-// 	}
-
-// 	pk_backend_set_allow_cancel (backend, TRUE);
-// 	_progress_percentage = 0;
-// 	pk_backend_package (backend, PK_INFO_ENUM_DOWNLOADING,
-// 			    "gtkhtml2;2.19.1-4.fc8;i386;fedora",
-// 			    "An HTML widget for GTK+ 2.0");
-// 	_signal_timeout = g_timeout_add (100, backend_install_timeout, backend);
-}
-
-/**
- * backend_remove_packages:
- */
-static void
-backend_remove_packages (PkBackend *backend, gchar **package_ids, gboolean allow_deps, gboolean autoremove)
-{
-	pk_backend_set_status (backend, PK_STATUS_ENUM_REMOVE);
-	pk_backend_error_code (backend, PK_ERROR_ENUM_NO_NETWORK, "No network connection available");
-	pk_backend_finished (backend);
-}
-
 extern "C" PK_BACKEND_OPTIONS (
 	"APTcc",					/* description */
 	"Daniel Nicoletti <dantti85-pk at yahoo.com.br>",	/* author */
@@ -1544,10 +1486,10 @@ extern "C" PK_BACKEND_OPTIONS (
 	backend_get_update_detail,			/* get_update_detail */
 	backend_get_updates,				/* get_updates */
 	NULL,						/* install_files */
-	backend_install_packages,						/* install_packages */
+	backend_install_update_packages,		/* install_packages */
 	NULL,						/* install_signature */
 	backend_refresh_cache,				/* refresh_cache */
-	backend_remove_packages,						/* remove_packages */
+	backend_remove_packages,			/* remove_packages */
 	backend_repo_enable,				/* repo_enable */
 	NULL,						/* repo_set_data */
 	backend_resolve,				/* resolve */
@@ -1556,11 +1498,11 @@ extern "C" PK_BACKEND_OPTIONS (
 	backend_search_file,				/* search_file */
 	backend_search_group,				/* search_group */
 	backend_search_name,				/* search_name */
-	backend_install_packages,						/* update_packages */
+	backend_install_update_packages,		/* update_packages */
 	backend_update_system,				/* update_system */
 	NULL,						/* what_provides */
 	NULL,						/* simulate_install_files */
-	simulate_install_update_packages,		/* simulate_install_packages */
-	simulate_remove_packages,			/* simulate_remove_packages */
-	simulate_install_update_packages		/* simulate_update_packages */
+	backend_simulate_install_update_packages,	/* simulate_install_packages */
+	backend_simulate_remove_packages,		/* simulate_remove_packages */
+	backend_simulate_install_update_packages	/* simulate_update_packages */
 );
commit a2fbf2cb8889c1e49577b3632d693dad65c40f92
Merge: b6a3f81... 959bad1...
Author: Daniel Nicoletti <dantti85-pk at yahoo.com.br>
Date:   Wed Sep 2 12:53:29 2009 -0300

    Merge branch 'master' into aptcc-simulate

commit b6a3f81503486214284f6381e886eb6e367e24bd
Author: Daniel Nicoletti <dantti85-pk at yahoo.com.br>
Date:   Tue Sep 1 14:35:31 2009 -0300

    Fixed resolve and added simulate, only simulate_install_packages works

diff --git a/backends/aptcc/apt.cpp b/backends/aptcc/apt.cpp
index ef25369..cc09441 100644
--- a/backends/aptcc/apt.cpp
+++ b/backends/aptcc/apt.cpp
@@ -62,6 +62,8 @@ bool aptcc::init(const char *locale)
 		return false;
 		//"The package lists or status file could not be parsed or opened."
 	}
+// 	_config->Set("Acquire::ftp::Proxy", s);
+// 	_config->Set("Acquire::http::Proxy", s);
 
 	packageCache = new pkgCache(Map);
 	if (_error->PendingError()) {
@@ -166,8 +168,8 @@ bool aptcc::is_held(const pkgCache::PkgIterator &pkg)
 }
 
 void aptcc::mark_all_upgradable(bool with_autoinst,
-					bool ignore_removed/*,
-					undo_group *undo*/)
+				bool ignore_removed/*,
+				undo_group *undo*/)
 {
 //   if(read_only && !read_only_permission())
 //     {
@@ -247,7 +249,9 @@ void aptcc::emit_package(const pkgCache::PkgIterator &pkg,
 {
 	// check the state enum to see if it was not set.
 	if (state == PK_INFO_ENUM_UNKNOWN) {
-		if (pkg->CurrentState == pkgCache::State::Installed) {
+		if(!ver.end() && ver != pkg.CurrentVer()) {
+			state = PK_INFO_ENUM_AVAILABLE;
+		} else if (pkg->CurrentState == pkgCache::State::Installed) {
 			state = PK_INFO_ENUM_INSTALLED;
 		} else {
 			state = PK_INFO_ENUM_AVAILABLE;
@@ -342,15 +346,22 @@ void aptcc::emit_package(const pkgCache::PkgIterator &pkg,
 }
 
 void aptcc::emit_packages(vector<pair<pkgCache::PkgIterator, pkgCache::VerIterator> > &output,
-			  PkBitfield filters)
+			  PkBitfield filters,
+			  PkInfoEnum state)
 {
+	sort(output.begin(), output.end(), compare());
+	output.erase(unique(output.begin(),
+			    output.end(),
+			    result_equality()),
+		     output.end());
+
 	for(vector<pair<pkgCache::PkgIterator, pkgCache::VerIterator> >::iterator i=output.begin();
 	    i != output.end(); ++i)
 	{
 		if (_cancel) {
 			break;
 		}
-		emit_package(i->first, i->second, filters);
+		emit_package(i->first, i->second, filters, state);
 	}
 }
 
@@ -614,34 +625,35 @@ static bool CheckAuth(pkgAcquire& Fetcher, PkBackend *backend)
    return false;
 }
 
-bool TryToInstall(pkgCache::PkgIterator Pkg,
-		  pkgDepCache &Cache,
-		  pkgProblemResolver &Fix,
-		  bool Remove,
-		  bool BrokenFix,
-		  unsigned int &ExpectedInst,
-		  bool AllowFail = true)
+bool aptcc::TryToInstall(pkgCache::PkgIterator Pkg,
+			 pkgDepCache &Cache,
+			 pkgProblemResolver &Fix,
+			 bool Remove,
+			 bool BrokenFix,
+			 unsigned int &ExpectedInst/*,
+			 bool AllowFail = true*/)
 {
+    cout << "TryToInstall PACKAGE: " << Pkg.Name() << endl;
    /* This is a pure virtual package and there is a single available
       provides */
    if (Cache[Pkg].CandidateVer == 0 && Pkg->ProvidesList != 0 &&
        Pkg.ProvidesList()->NextProvides == 0)
    {
       pkgCache::PkgIterator Tmp = Pkg.ProvidesList().OwnerPkg();
-      ioprintf(c1out,_("Note, selecting %s instead of %s\n"),
-	       Tmp.Name(),Pkg.Name());
+//       ioprintf(c1out,_("Note, selecting %s instead of %s\n"),
+// 	       Tmp.Name(),Pkg.Name());
       Pkg = Tmp;
    }
 
    // Handle the no-upgrade case
-   if (_config->FindB("APT::Get::upgrade",true) == false &&
-       Pkg->CurrentVer != 0)
-   {
-      if (AllowFail == true)
-	 ioprintf(c1out,_("Skipping %s, it is already installed and upgrade is not set.\n"),
-		  Pkg.Name());
-      return true;
-   }
+//    if (_config->FindB("APT::Get::upgrade",true) == false &&
+//        Pkg->CurrentVer != 0)
+//    {
+//       if (AllowFail == true)
+// 	 ioprintf(c1out,_("Skipping %s, it is already installed and upgrade is not set.\n"),
+// 		  Pkg.Name());
+//       return true;
+//    }
 
    // Check if there is something at all to install
    pkgDepCache::StateCache &State = Cache[Pkg];
@@ -653,22 +665,22 @@ bool TryToInstall(pkgCache::PkgIterator Pkg,
 
       /* We want to continue searching for regex hits, so we return false here
          otherwise this is not really an error. */
-      if (AllowFail == false)
-	 return false;
+//       if (AllowFail == false)
+// 	 return false;
 
-      ioprintf(c1out,_("Package %s is not installed, so not removed\n"),Pkg.Name());
+//       ioprintf(c1out,_("Package %s is not installed, so not removed\n"),Pkg.Name());
       return true;
    }
 
    if (State.CandidateVer == 0 && Remove == false)
    {
-      if (AllowFail == false)
-	 return false;
+//       if (AllowFail == false)
+// 	 return false;
 
       if (Pkg->ProvidesList != 0)
       {
-	 ioprintf(c1out,_("Package %s is a virtual package provided by:\n"),
-		  Pkg.Name());
+// 	 ioprintf(c1out,_("Package %s is a virtual package provided by:\n"),
+// 		  Pkg.Name());
 
 	 pkgCache::PrvIterator I = Pkg.ProvidesList();
 	 for (; I.end() == false; I++)
@@ -677,21 +689,21 @@ bool TryToInstall(pkgCache::PkgIterator Pkg,
 
 	    if (Cache[Pkg].CandidateVerIter(Cache) == I.OwnerVer())
 	    {
-	       if (Cache[Pkg].Install() == true && Cache[Pkg].NewInstall() == false)
-		  c1out << "  " << Pkg.Name() << " " << I.OwnerVer().VerStr() <<
-		  _(" [Installed]") << endl;
-	       else
-		  c1out << "  " << Pkg.Name() << " " << I.OwnerVer().VerStr() << endl;
+// 	       if (Cache[Pkg].Install() == true && Cache[Pkg].NewInstall() == false)
+// 		  c1out << "  " << Pkg.Name() << " " << I.OwnerVer().VerStr() <<
+// 		  _(" [Installed]") << endl;
+// 	       else
+// 		  c1out << "  " << Pkg.Name() << " " << I.OwnerVer().VerStr() << endl;
 	    }
 	 }
-	 c1out << _("You should explicitly select one to install.") << endl;
+// 	 c1out << _("You should explicitly select one to install.") << endl;
       }
       else
       {
-	 ioprintf(c1out,
-	 _("Package %s is not available, but is referred to by another package.\n"
-	   "This may mean that the package is missing, has been obsoleted, or\n"
-           "is only available from another source\n"),Pkg.Name());
+// 	 ioprintf(c1out,
+// 	 _("Package %s is not available, but is referred to by another package.\n"
+// 	   "This may mean that the package is missing, has been obsoleted, or\n"
+//            "is only available from another source\n"),Pkg.Name());
 
 	 string List;
 	 string VersionsList;
@@ -708,10 +720,10 @@ bool TryToInstall(pkgCache::PkgIterator Pkg,
 	    List += string(Dep.ParentPkg().Name()) + " ";
         //VersionsList += string(Dep.ParentPkg().CurVersion) + "\n"; ???
 	 }
-	 ShowList(c1out,_("However the following packages replace it:"),List,VersionsList);
+// 	 ShowList(c1out,_("However the following packages replace it:"),List,VersionsList);
       }
 
-      _error->Error(_("Package %s has no installation candidate"),Pkg.Name());
+//       _error->Error(_("Package %s has no installation candidate"),Pkg.Name());
       return false;
    }
 
@@ -728,24 +740,27 @@ bool TryToInstall(pkgCache::PkgIterator Pkg,
    Cache.MarkInstall(Pkg,false);
    if (State.Install() == false)
    {
+       cout << "TryToInstall 6" << endl;
       if (_config->FindB("APT::Get::ReInstall",false) == true)
       {
 	 if (Pkg->CurrentVer == 0 || Pkg.CurrentVer().Downloadable() == false)
-	    ioprintf(c1out,_("Reinstallation of %s is not possible, it cannot be downloaded.\n"),
-		     Pkg.Name());
+// 	    ioprintf(c1out,_("Reinstallation of %s is not possible, it cannot be downloaded.\n"),
+// 		     Pkg.Name());
+;
 	 else
 	    Cache.SetReInstall(Pkg,true);
       }
       else
       {
-	 if (AllowFail == true)
-	    ioprintf(c1out,_("%s is already the newest version.\n"),
-		     Pkg.Name());
+// 	 if (AllowFail == true)
+// 	    ioprintf(c1out,_("%s is already the newest version.\n"),
+// 		     Pkg.Name());
       }
    }
    else
       ExpectedInst++;
 
+   cout << "trytoinstall ExpectedInst " << ExpectedInst << endl;
    // Install it with autoinstalling enabled (if we not respect the minial
    // required deps or the policy)
    if ((State.InstBroken() == true || State.InstPolicyBroken() == true) && BrokenFix == false)
@@ -754,6 +769,58 @@ bool TryToInstall(pkgCache::PkgIterator Pkg,
    return true;
 }
 
+// emitChangedPackages - Show packages to newly install				/*{{{*/
+// ---------------------------------------------------------------------
+/* */
+void aptcc::emitChangedPackages(vector<pair<pkgCache::PkgIterator, pkgCache::VerIterator> > &pkgs,
+				pkgCacheFile &Cache)
+{
+	vector<pair<pkgCache::PkgIterator, pkgCache::VerIterator> > installing,
+								    removing,
+								    updating,
+								    downgrading;
+
+	// Create a set of package names to fast search if the package is in the list
+	set<string> pkgNames;
+	for(vector<pair<pkgCache::PkgIterator, pkgCache::VerIterator> >::iterator i=pkgs.begin();
+		    i != pkgs.end();
+		    ++i) {
+		pkgNames.insert(i->first.Name());
+	}
+
+	string VersionsList;
+	for (pkgCache::PkgIterator pkg = Cache->PkgBegin(); ! pkg.end(); ++pkg)
+	{
+		if (Cache[pkg].NewInstall() == true) {
+			// installing
+			if (pkgNames.find(pkg.Name()) == pkgNames.end()) {
+				installing.push_back(pair<pkgCache::PkgIterator, pkgCache::VerIterator>(pkg, find_candidate_ver(pkg)));
+			}
+		} else if (Cache[pkg].Delete() == true) {
+			// removing
+			if (pkgNames.find(pkg.Name()) == pkgNames.end()) {
+				removing.push_back(pair<pkgCache::PkgIterator, pkgCache::VerIterator>(pkg, find_candidate_ver(pkg)));
+			}
+		} else if (Cache[pkg].Upgrade() == true) {
+			// updating
+			if (pkgNames.find(pkg.Name()) == pkgNames.end()) {
+				updating.push_back(pair<pkgCache::PkgIterator, pkgCache::VerIterator>(pkg, find_candidate_ver(pkg)));
+			}
+		} else if (Cache[pkg].Downgrade() == true) {
+			// downgrading
+			if (pkgNames.find(pkg.Name()) == pkgNames.end()) {
+				downgrading.push_back(pair<pkgCache::PkgIterator, pkgCache::VerIterator>(pkg, find_candidate_ver(pkg)));
+			}
+		}
+	}
+
+	// emit packages tha have changes
+	emit_packages(removing,    PK_FILTER_ENUM_NONE, PK_INFO_ENUM_REMOVING);
+	emit_packages(downgrading, PK_FILTER_ENUM_NONE, PK_INFO_ENUM_DOWNGRADING);
+	emit_packages(installing,  PK_FILTER_ENUM_NONE, PK_INFO_ENUM_INSTALLING);
+	emit_packages(updating,    PK_FILTER_ENUM_NONE, PK_INFO_ENUM_UPDATING);
+}
+
 									/*}}}*/
 
 // InstallPackages - Actually download and install the packages		/*{{{*/
@@ -1079,10 +1146,82 @@ bool aptcc::installPackages(pkgDepCache &Cache,
 	}
 }
 
-bool aptcc::prepare_transaction(bool simulate, bool remove)
+// DoAutomaticRemove - Remove all automatic unused packages		/*{{{*/
+// ---------------------------------------------------------------------
+/* Remove unused automatic packages */
+bool aptcc::DoAutomaticRemove(pkgCacheFile &Cache)
 {
+   bool Debug = _config->FindI("Debug::pkgAutoRemove",false);
+   bool doAutoRemove = _config->FindB("APT::Get::AutomaticRemove", false);
+   bool hideAutoRemove = _config->FindB("APT::Get::HideAutoRemove");
+   pkgDepCache::ActionGroup group(*Cache);
+
+//    if(Debug)
+//       std::cout << "DoAutomaticRemove()" << std::endl;
+
+   if (_config->FindB("APT::Get::Remove",true) == false &&
+       doAutoRemove == true)
+   {
+//       c1out << _("We are not supposed to delete stuff, can't start "
+// 		 "AutoRemover") << std::endl;
+      doAutoRemove = false;
+   }
+// c1out << "doAutoRemove" << doAutoRemove << endl;
+   string autoremovelist, autoremoveversions;
+   // look over the cache to see what can be removed
+   for (pkgCache::PkgIterator Pkg = Cache->PkgBegin(); ! Pkg.end(); ++Pkg)
+   {
+      if (Cache[Pkg].Garbage)
+      {
+// 	 if(Pkg.CurrentVer() != 0 || Cache[Pkg].Install())
+// 	    if(Debug)
+// 	       std::cout << "We could delete %s" <<  Pkg.Name() << std::endl;
+
+	 // only show stuff in the list that is not yet marked for removal
+	 if(Cache[Pkg].Delete() == false)
+	 {
+	    autoremovelist += string(Pkg.Name()) + " ";
+	    autoremoveversions += string(Cache[Pkg].CandVersion) + "\n";
+	 }
+	 if (doAutoRemove)
+	 {
+	    if(Pkg.CurrentVer() != 0 &&
+	       Pkg->CurrentState != pkgCache::State::ConfigFiles) {
+		    Cache->MarkDelete(Pkg, _config->FindB("APT::Get::Purge", false));
+	    } else {
+		    Cache->MarkKeep(Pkg, false, false);
+	    }
+	 }
+      }
+   }
+//    if (!hideAutoRemove)
+//       ShowList(c1out, _("The following packages were automatically installed and are no longer required:"), autoremovelist, autoremoveversions);
+//    if (!doAutoRemove && !hideAutoRemove && autoremovelist.size() > 0)
+//       c1out << _("Use 'apt-get autoremove' to remove them.") << std::endl;
+
+   // Now see if we destroyed anything
+   if (Cache->BrokenCount() != 0)
+   {
+//       c1out << _("Hmm, seems like the AutoRemover destroyed something which really\n"
+// 	         "shouldn't happen. Please file a bug report against apt.") << endl;
+//       c1out << endl;
+//       c1out << _("The following information may help to resolve the situation:") << endl;
+//       c1out << endl;
+//       ShowBroken(c1out,Cache,false);
+
+      return _error->Error("Internal Error, AutoRemover broke stuff");
+   }
+   return true;
+}
+
+bool aptcc::prepare_transaction(vector<pair<pkgCache::PkgIterator, pkgCache::VerIterator> > &pkgs,
+				bool simulate,
+				bool remove)
+{
+    cout << "==============================================================" << endl;
+	cout << "prepare_transaction" << simulate << remove << endl;
 	bool WithLock = !simulate; // Check to see if we are just simulating,
-			    //since for that no lock is needed
+				   //since for that no lock is needed
 
     //    CacheFile Cache;
 	pkgCacheFile Cache;
@@ -1091,6 +1230,7 @@ bool aptcc::prepare_transaction(bool simulate, bool remove)
 	if (Cache.Open(Prog, WithLock) == false) {
 		// failed to open cache, try checkDeps then..
 		// || Cache.CheckDeps(CmdL.FileSize() != 1) == false
+		cout << "Failed to open cache" << endl;
 		return false;
 	}
 
@@ -1105,22 +1245,34 @@ bool aptcc::prepare_transaction(bool simulate, bool remove)
 	unsigned int Packages = 0;
 	pkgProblemResolver Fix(Cache);
 
-	bool DefRemove = remove; // check if we are going to remove, otherwise is false
+// 	bool DefRemove = remove; // check if we are going to remove, otherwise is false
 
 	// new scope for the ActionGroup
 	{
+	    cout << "new scope for the ActionGroup" << endl;
 		pkgDepCache::ActionGroup group(Cache);
-		for (const char **I = CmdL.FileList + 1; *I != 0; I++)
+		for(vector<pair<pkgCache::PkgIterator, pkgCache::VerIterator> >::iterator i=pkgs.begin();
+		    i != pkgs.end();
+		    ++i)
 		{
+		    pkgCache::PkgIterator Pkg = i->first;
+		    cout << "PACKAGE: " << Pkg.Name() << endl;
+			if (_cancel) {
+				break;
+			}
+			cout << "PACKAGE" << i->first.Name() << endl;
+
+// 		for (const char **I = CmdL.FileList + 1; *I != 0; I++)
+// 		{
 			// Duplicate the string
-			unsigned int Length = strlen(*I);
-			char S[300];
-			if (Length >= sizeof(S))
-			    continue;
-			strcpy(S,*I);
+// 			unsigned int Length = strlen(*I);
+// 			char S[300];
+// 			if (Length >= sizeof(S))
+// 			    continue;
+// 			strcpy(S,*I);
 
 			// See if we are removing and special indicators..
-			bool Remove = DefRemove;
+// 			bool Remove = DefRemove;
 			char *VerTag = 0;
 			bool VerIsRel = false;
 
@@ -1179,7 +1331,8 @@ bool aptcc::prepare_transaction(bool simulate, bool remove)
     // 		if (VerTag != 0)
     // 		    if (TryToChangeVer(Pkg,Cache,VerTag,VerIsRel) == false)
     // 			return false;
-			if (TryToInstall(Pkg,Cache,Fix,Remove,BrokenFix,ExpectedInst) == false) {
+			if (TryToInstall(Pkg,Cache,Fix,remove,BrokenFix,ExpectedInst) == false) {
+			    cout << "TryToInstall Failed" << endl;
 				return false;
 			}
 
@@ -1191,10 +1344,12 @@ bool aptcc::prepare_transaction(bool simulate, bool remove)
 	    packages */
 	if (BrokenFix == true && Cache->BrokenCount() != 0)
 	{
-	    c1out << _("You might want to run `apt-get -f install' to correct these:") << endl;
-	    ShowBroken(c1out,Cache,false);
+// 	    c1out << _("You might want to run `apt-get -f install' to correct these:") << endl;
+// TODO
+// 	    ShowBroken(c1out,Cache,false);
+cout << "Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution)." << endl;
 
-	    return _error->Error(_("Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution)."));
+	    return _error->Error("Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).");
 	}
 
 	// Call the scored problem resolver
@@ -1205,11 +1360,11 @@ bool aptcc::prepare_transaction(bool simulate, bool remove)
 	// Now we check the state of the packages,
 	if (Cache->BrokenCount() != 0)
 	{
-	    c1out <<
-		_("Some packages could not be installed. This may mean that you have\n"
-		"requested an impossible situation or if you are using the unstable\n"
-		"distribution that some required packages have not yet been created\n"
-		"or been moved out of Incoming.") << endl;
+// 	    c1out <<
+// 		_("Some packages could not be installed. This may mean that you have\n"
+// 		"requested an impossible situation or if you are using the unstable\n"
+// 		"distribution that some required packages have not yet been created\n"
+// 		"or been moved out of Incoming.") << endl;
 	    /*
 	    if (Packages == 1)
 	    {
@@ -1221,131 +1376,42 @@ bool aptcc::prepare_transaction(bool simulate, bool remove)
 	    }
 	    */
 
-	    c1out << _("The following information may help to resolve the situation:") << endl;
-	    c1out << endl;
-	    ShowBroken(c1out,Cache,false);
-	    return _error->Error(_("Broken packages"));
+// 	    c1out << _("The following information may help to resolve the situation:") << endl;
+// 	    c1out << endl;
+// TODO
+// 	    ShowBroken(c1out,Cache,false);
+	    return _error->Error("Broken packages");
 	}
     }
+    cout << "DoAutomaticRemove" << endl;
     if (!DoAutomaticRemove(Cache))
 	return false;
 
     /* Print out a list of packages that are going to be installed extra
 	to what the user asked */
-    if (Cache->InstCount() != ExpectedInst)
-    {
-	string List;
-	string VersionsList;
-	for (unsigned J = 0; J < Cache->Head().PackageCount; J++)
-	{
-	    pkgCache::PkgIterator I(Cache,Cache.List[J]);
-	    if ((*Cache)[I].Install() == false)
-		continue;
-
-	    const char **J;
-	    for (J = CmdL.FileList + 1; *J != 0; J++)
-		if (strcmp(*J,I.Name()) == 0)
-		    break;
-
-	    if (*J == 0) {
-		List += string(I.Name()) + " ";
-		VersionsList += string(Cache[I].CandVersion) + "\n";
-	    }
-	}
-
-	ShowList(c1out,_("The following extra packages will be installed:"),List,VersionsList);
-    }
-
-    /* Print out a list of suggested and recommended packages */
-    {
-	string SuggestsList, RecommendsList, List;
-	string SuggestsVersions, RecommendsVersions;
-	for (unsigned J = 0; J < Cache->Head().PackageCount; J++)
-	{
-	    pkgCache::PkgIterator Pkg(Cache,Cache.List[J]);
-
-	    /* Just look at the ones we want to install */
-	    if ((*Cache)[Pkg].Install() == false)
-	    continue;
-
-	    // get the recommends/suggests for the candidate ver
-	    pkgCache::VerIterator CV = (*Cache)[Pkg].CandidateVerIter(*Cache);
-	    for (pkgCache::DepIterator D = CV.DependsList(); D.end() == false; )
-	    {
-		pkgCache::DepIterator Start;
-		pkgCache::DepIterator End;
-		D.GlobOr(Start,End); // advances D
-
-		// FIXME: we really should display a or-group as a or-group to the user
-		//        the problem is that ShowList is incapable of doing this
-		string RecommendsOrList,RecommendsOrVersions;
-		string SuggestsOrList,SuggestsOrVersions;
-		bool foundInstalledInOrGroup = false;
-		for(;;)
-		{
-		/* Skip if package is  installed already, or is about to be */
-		string target = string(Start.TargetPkg().Name()) + " ";
-
-		if ((*Start.TargetPkg()).SelectedState == pkgCache::State::Install
-		    || Cache[Start.TargetPkg()].Install())
-		{
-		    foundInstalledInOrGroup=true;
-		    break;
-		}
-
-		/* Skip if we already saw it */
-		if (int(SuggestsList.find(target)) != -1 || int(RecommendsList.find(target)) != -1)
-		{
-		    foundInstalledInOrGroup=true;
-		    break;
-		}
-
-		// this is a dep on a virtual pkg, check if any package that provides it
-		// should be installed
-		if(Start.TargetPkg().ProvidesList() != 0)
-		{
-		    pkgCache::PrvIterator I = Start.TargetPkg().ProvidesList();
-		    for (; I.end() == false; I++)
-		    {
-			pkgCache::PkgIterator Pkg = I.OwnerPkg();
-			if (Cache[Pkg].CandidateVerIter(Cache) == I.OwnerVer() &&
-			    Pkg.CurrentVer() != 0)
-			    foundInstalledInOrGroup=true;
-		    }
-		}
-
-		if (Start->Type == pkgCache::Dep::Suggests)
-		{
-		    SuggestsOrList += target;
-		    SuggestsOrVersions += string(Cache[Start.TargetPkg()].CandVersion) + "\n";
-		}
-
-		if (Start->Type == pkgCache::Dep::Recommends)
-		{
-		    RecommendsOrList += target;
-		    RecommendsOrVersions += string(Cache[Start.TargetPkg()].CandVersion) + "\n";
-		}
-
-		if (Start >= End)
-		    break;
-		Start++;
-		}
-
-		if(foundInstalledInOrGroup == false)
-		{
-		RecommendsList += RecommendsOrList;
-		RecommendsVersions += RecommendsOrVersions;
-		SuggestsList += SuggestsOrList;
-		SuggestsVersions += SuggestsOrVersions;
-		}
-
-	    }
-	}
-
-	ShowList(c1out,_("Suggested packages:"),SuggestsList,SuggestsVersions);
-	ShowList(c1out,_("Recommended packages:"),RecommendsList,RecommendsVersions);
-
-    }
+//     if (Cache->InstCount() != ExpectedInst)
+//     {
+// 	string List;
+// 	string VersionsList;
+// 	for (unsigned J = 0; J < Cache->Head().PackageCount; J++)
+// 	{
+// 	    pkgCache::PkgIterator I(Cache,Cache.List[J]);
+// 	    if ((*Cache)[I].Install() == false)
+// 		continue;
+//
+// 	    const char **J;
+// 	    for (J = CmdL.FileList + 1; *J != 0; J++)
+// 		if (strcmp(*J,I.Name()) == 0)
+// 		    break;
+//
+// 	    if (*J == 0) {
+// 		List += string(I.Name()) + " ";
+// 		VersionsList += string(Cache[I].CandVersion) + "\n";
+// 	    }
+// 	}
+//
+// 	ShowList(c1out,_("The following extra packages will be installed:"),List,VersionsList);
+//     }
 
     // if nothing changed in the cache, but only the automark information
     // we write the StateFile here, otherwise it will be written in
@@ -1356,9 +1422,11 @@ bool aptcc::prepare_transaction(bool simulate, bool remove)
 	_config->FindB("APT::Get::Simulate",false) == false)
 	Cache->writeStateFile(NULL);
 
+    emitChangedPackages(pkgs, Cache);
     // See if we need to prompt
-    if (Cache->InstCount() == ExpectedInst && Cache->DelCount() == 0)
-	return InstallPackages(Cache,false,false);
+//     if (Cache->InstCount() == ExpectedInst && Cache->DelCount() == 0)
+// 	return InstallPackages(Cache,false,false);
 
-    return InstallPackages(Cache,false);
+//     return InstallPackages(Cache,false);
+    return true;
 }
diff --git a/backends/aptcc/apt.h b/backends/aptcc/apt.h
index 6ac050a..85035c0 100644
--- a/backends/aptcc/apt.h
+++ b/backends/aptcc/apt.h
@@ -43,6 +43,7 @@ void emit_files (PkBackend *backend, const PkPackageId *pi);
 */
 vector<string> search_file (PkBackend *backend, const string &file_name, bool &_cancel);
 
+class pkgProblemResolver;
 class aptcc
 {
 //     typedef int user_tag_reference;
@@ -64,7 +65,9 @@ public:
 	 *    simulate should be true, in this case packages with
 	 *    what's going to happen will be emitted.
 	 */
-	bool prepare_transaction(bool simulate, bool remove);
+	bool prepare_transaction(vector<pair<pkgCache::PkgIterator, pkgCache::VerIterator> > &pkgs,
+				 bool simulate,
+				 bool remove);
 
 	/**
 	 *  get the state cache of the package
@@ -94,7 +97,8 @@ public:
 			  PkInfoEnum state = PK_INFO_ENUM_UNKNOWN);
 
 	void emit_packages(vector<pair<pkgCache::PkgIterator, pkgCache::VerIterator> > &output,
-			   PkBitfield filters = PK_FILTER_ENUM_NONE);
+			   PkBitfield filters = PK_FILTER_ENUM_NONE,
+			   PkInfoEnum state = PK_INFO_ENUM_UNKNOWN);
 
 	/**
 	 *  Emits details
@@ -146,6 +150,17 @@ private:
 	 *  need to save the cache).
 	 */
 	bool dirty;
+
+	bool TryToInstall(pkgCache::PkgIterator Pkg,
+			  pkgDepCache &Cache,
+			  pkgProblemResolver &Fix,
+			  bool Remove,
+			  bool BrokenFix,
+			  unsigned int &ExpectedInst/*,
+			  bool AllowFail = true*/);
+	bool DoAutomaticRemove(pkgCacheFile &Cache);
+	void emitChangedPackages(vector<pair<pkgCache::PkgIterator, pkgCache::VerIterator> > &pkgs,
+				 pkgCacheFile &Cache);
 };
 
 #endif
diff --git a/backends/aptcc/pk-backend-aptcc.cpp b/backends/aptcc/pk-backend-aptcc.cpp
index 559e8db..eba2667 100644
--- a/backends/aptcc/pk-backend-aptcc.cpp
+++ b/backends/aptcc/pk-backend-aptcc.cpp
@@ -150,20 +150,15 @@ backend_get_depends_or_requires_thread (PkBackend *backend)
 {
 	gchar **package_ids;
 	PkBitfield filters;
+	PkPackageId *pi;
 	bool recursive;
 
 	package_ids = pk_backend_get_strv (backend, "package_ids");
 	filters = (PkBitfield) pk_backend_get_uint (backend, "filters");
 	recursive = pk_backend_get_bool (backend, "recursive");
 	_cancel = false;
-	pk_backend_set_allow_cancel (backend, true);
-	PkPackageId *pi = pk_package_id_new_from_string (package_ids[0]);
-	if (pi == NULL) {
-		pk_backend_error_code (backend, PK_ERROR_ENUM_PACKAGE_ID_INVALID, "invalid package id");
-		pk_backend_finished (backend);
-		return false;
-	}
 
+	pk_backend_set_allow_cancel (backend, true);
 	pk_backend_set_status (backend, PK_STATUS_ENUM_QUERY);
 
 	aptcc *m_apt = new aptcc(backend, _cancel, *apt_source_list);
@@ -208,10 +203,6 @@ backend_get_depends_or_requires_thread (PkBackend *backend)
 		pk_package_id_free (pi);
 	}
 
-	sort(output.begin(), output.end(), compare());
-	output.erase(unique(output.begin(), output.end(), result_equality()),
-		    output.end());
-
 	// It's faster to emmit the packages here than in the matching part
 	m_apt->emit_packages(output, filters);
 
@@ -613,19 +604,8 @@ backend_get_updates_thread (PkBackend *backend)
 				}
 			}
 
-			sort(output.begin(), output.end(), compare());
-			output.erase(unique(output.begin(), output.end(), result_equality()),
-				    output.end());
-
 			// It's faster to emmit the packages here than in the matching part
-			for(vector<pair<pkgCache::PkgIterator, pkgCache::VerIterator> >::iterator it = output.begin();
-			    it != output.end(); ++it)
-			{
-				if (_cancel) {
-					break;
-				}
-				m_apt->emit_package(it->first, it->second, filters, state);
-			}
+			m_apt->emit_packages(output, filters, state);
 		}
 	}
 
@@ -866,6 +846,13 @@ backend_resolve_thread (PkBackend *backend)
 		{
 			m_apt->emit_package(pkg, ver, filters);
 		}
+
+		ver = m_apt->find_candidate_ver(pkg);
+		// check to see if the provided package isn't virtual too
+		if (ver.end() == false)
+		{
+			m_apt->emit_package(pkg, ver, filters);
+		}
 	}
 
 	delete m_apt;
@@ -994,8 +981,6 @@ backend_search_group_thread (PkBackend *backend)
 		}
 	}
 
-	sort(output.begin(), output.end(), compare());
-
 	// It's faster to emmit the packages here rather than in the matching part
 	m_apt->emit_packages(output, filters);
 
@@ -1152,10 +1137,6 @@ backend_search_package_thread (PkBackend *backend)
 		}
 	}
 
-	sort(output.begin(), output.end(), compare());
-	output.erase(unique(output.begin(), output.end(), result_equality()),
-		    output.end());
-
 	// It's faster to emmit the packages here than in the matching part
 	m_apt->emit_packages(output, filters);
 
@@ -1189,6 +1170,97 @@ backend_search_details (PkBackend *backend, PkBitfield filters, const gchar *sea
 }
 
 static gboolean
+backend_manage_packages_thread (PkBackend *backend)
+{
+	gchar **package_ids;
+	PkPackageId *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");
+
+	_cancel = false;
+	pk_backend_set_allow_cancel (backend, true);
+	pk_backend_set_status (backend, PK_STATUS_ENUM_QUERY);
+
+	aptcc *m_apt = new aptcc(backend, _cancel, *apt_source_list);
+	if (m_apt->init(pk_backend_get_locale (backend))) {
+		egg_debug ("Failed to create apt cache");
+		delete m_apt;
+		pk_backend_finished (backend);
+		return false;
+	}
+
+	vector<pair<pkgCache::PkgIterator, pkgCache::VerIterator> > pkgs;
+	for (uint i = 0; i < g_strv_length(package_ids); i++) {
+		if (_cancel) {
+			break;
+		}
+
+		pi = pk_package_id_new_from_string (package_ids[i]);
+		if (pi == NULL) {
+			pk_backend_error_code (backend, PK_ERROR_ENUM_PACKAGE_ID_INVALID, "invalid package id");
+			delete m_apt;
+			pk_backend_finished (backend);
+			return false;
+		}
+
+		pkgCache::PkgIterator pkg = m_apt->packageCache->FindPkg(pi->name);
+		// Ignore packages that could not be found or that exist only due to dependencies.
+		if (pkg.end() == true || (pkg.VersionList().end() && pkg.ProvidesList().end()))
+		{
+			pk_backend_error_code (backend, PK_ERROR_ENUM_PACKAGE_NOT_FOUND, "couldn't find package");
+			pk_package_id_free (pi);
+			delete m_apt;
+			pk_backend_finished (backend);
+			return false;
+		}
+
+		pkgCache::VerIterator ver;
+		ver = m_apt->find_ver(pkg);
+		// check to see if the provided package isn't virtual too
+		if (ver.end() == false)
+		{
+			pkgs.push_back(pair<pkgCache::PkgIterator, pkgCache::VerIterator>(pkg, ver));
+		}
+	}
+
+	if (!m_apt->prepare_transaction(pkgs, simulate, remove)) {
+		// Print transaction errors
+		cout << "prepare_transaction failed" << endl;
+	}
+
+	delete m_apt;
+
+	pk_backend_finished (backend);
+	return true;
+}
+
+/**
+ * backend_resolve:
+ */
+static void
+simulate_install_update_packages (PkBackend *backend, gchar **packages)
+{
+	pk_backend_set_bool(backend, "simulate", true);
+	pk_backend_set_bool(backend, "remove", false);
+	pk_backend_thread_create (backend, backend_manage_packages_thread);
+}
+
+/**
+ * backend_resolve:
+ */
+static void
+simulate_remove_packages (PkBackend *backend, gchar **packages)
+{
+	pk_backend_set_bool(backend, "simulate", true);
+	pk_backend_set_bool(backend, "remove", true);
+	pk_backend_thread_create (backend, backend_manage_packages_thread);
+}
+
+static gboolean
 backend_repo_manager_thread (PkBackend *backend)
 {
 	// list
@@ -1351,8 +1423,6 @@ backend_get_packages_thread (PkBackend *backend)
 		}
 	}
 
-	sort(output.begin(), output.end(), compare());
-
 	// It's faster to emmit the packages rather here than in the matching part
 	m_apt->emit_packages(output, filters);
 
@@ -1371,6 +1441,88 @@ backend_get_packages (PkBackend *backend, PkBitfield filter)
 	pk_backend_thread_create (backend, backend_get_packages_thread);
 }
 
+/**
+ * backend_install_packages:
+ */
+static void
+backend_install_packages (PkBackend *backend, gboolean only_trusted, gchar **package_ids)
+{
+	const gchar *license_agreement;
+	const gchar *eula_id;
+	gboolean has_eula;
+
+	/* FIXME: support only_trusted */
+
+// 	if (g_strcmp0 (package_ids[0], "vips-doc;7.12.4-2.fc8;noarch;linva") == 0) {
+// 		if (_use_gpg && !_has_signature) {
+			pk_backend_repo_signature_required (backend, package_ids[0], "updates",
+							    "http://example.com/gpgkey",
+							    "Test Key (Fedora) fedora at example.com",
+							    "BB7576AC",
+							    "D8CC 06C2 77EC 9C53 372F C199 B1EE 1799 F24F 1B08",
+							    "2007-10-04", PK_SIGTYPE_ENUM_GPG);
+			pk_backend_error_code (backend, PK_ERROR_ENUM_GPG_FAILURE,
+					       "GPG signed package could not be verified");
+			pk_backend_finished (backend);
+			return;
+// 		}
+// 		eula_id = "eula_hughsie_dot_com";
+// 		has_eula = pk_backend_is_eula_valid (backend, eula_id);
+// 		if (_use_eula && !has_eula) {
+// 			license_agreement = "Narrator: In A.D. 2101, war was beginning.\n"
+// 					    "Captain: What happen ?\n"
+// 					    "Mechanic: Somebody set up us the bomb.\n\n"
+// 					    "Operator: We get signal.\n"
+// 					    "Captain: What !\n"
+// 					    "Operator: Main screen turn on.\n"
+// 					    "Captain: It's you !!\n"
+// 					    "CATS: How are you gentlemen !!\n"
+// 					    "CATS: All your base are belong to us.\n"
+// 					    "CATS: You are on the way to destruction.\n\n"
+// 					    "Captain: What you say !!\n"
+// 					    "CATS: You have no chance to survive make your time.\n"
+// 					    "CATS: Ha Ha Ha Ha ....\n\n"
+// 					    "Operator: Captain!! *\n"
+// 					    "Captain: Take off every 'ZIG' !!\n"
+// 					    "Captain: You know what you doing.\n"
+// 					    "Captain: Move 'ZIG'.\n"
+// 					    "Captain: For great justice.\n";
+// 			pk_backend_eula_required (backend, eula_id, package_ids[0],
+// 						  "CATS Inc.", license_agreement);
+// 			pk_backend_error_code (backend, PK_ERROR_ENUM_NO_LICENSE_AGREEMENT,
+// 					       "licence not installed so cannot install");
+// 			pk_backend_finished (backend);
+// 			return;
+// 		}
+// 		if (_use_media) {
+// 			_use_media = FALSE;
+// 			pk_backend_media_change_required (backend, PK_MEDIA_TYPE_ENUM_DVD, "linux-disk-1of7", "Linux Disc 1 of 7");
+// 			pk_backend_error_code (backend, PK_ERROR_ENUM_MEDIA_CHANGE_REQUIRED,
+// 					       "additional media linux-disk-1of7 required");
+// 			pk_backend_finished (backend);
+// 			return;
+// 		}
+// 	}
+
+// 	pk_backend_set_allow_cancel (backend, TRUE);
+// 	_progress_percentage = 0;
+// 	pk_backend_package (backend, PK_INFO_ENUM_DOWNLOADING,
+// 			    "gtkhtml2;2.19.1-4.fc8;i386;fedora",
+// 			    "An HTML widget for GTK+ 2.0");
+// 	_signal_timeout = g_timeout_add (100, backend_install_timeout, backend);
+}
+
+/**
+ * backend_remove_packages:
+ */
+static void
+backend_remove_packages (PkBackend *backend, gchar **package_ids, gboolean allow_deps, gboolean autoremove)
+{
+	pk_backend_set_status (backend, PK_STATUS_ENUM_REMOVE);
+	pk_backend_error_code (backend, PK_ERROR_ENUM_NO_NETWORK, "No network connection available");
+	pk_backend_finished (backend);
+}
+
 extern "C" PK_BACKEND_OPTIONS (
 	"APTcc",					/* description */
 	"Daniel Nicoletti <dantti85-pk at yahoo.com.br>",	/* author */
@@ -1392,10 +1544,10 @@ extern "C" PK_BACKEND_OPTIONS (
 	backend_get_update_detail,			/* get_update_detail */
 	backend_get_updates,				/* get_updates */
 	NULL,						/* install_files */
-	NULL,						/* install_packages */
+	backend_install_packages,						/* install_packages */
 	NULL,						/* install_signature */
 	backend_refresh_cache,				/* refresh_cache */
-	NULL,						/* remove_packages */
+	backend_remove_packages,						/* remove_packages */
 	backend_repo_enable,				/* repo_enable */
 	NULL,						/* repo_set_data */
 	backend_resolve,				/* resolve */
@@ -1404,11 +1556,11 @@ extern "C" PK_BACKEND_OPTIONS (
 	backend_search_file,				/* search_file */
 	backend_search_group,				/* search_group */
 	backend_search_name,				/* search_name */
-	NULL,						/* update_packages */
+	backend_install_packages,						/* update_packages */
 	backend_update_system,				/* update_system */
 	NULL,						/* what_provides */
 	NULL,						/* simulate_install_files */
-	NULL,						/* simulate_install_packages */
-	NULL,						/* simulate_remove_packages */
-	NULL						/* simulate_update_packages */
+	simulate_install_update_packages,		/* simulate_install_packages */
+	simulate_remove_packages,			/* simulate_remove_packages */
+	simulate_install_update_packages		/* simulate_update_packages */
 );
commit e100e14e0170099ef571dfacdb7211f46c0c4158
Author: Sebastian Heinlein <devel at glatzor.de>
Date:   Thu Aug 20 12:22:32 2009 +0200

    APT: Do not sort the apt.Cache, since it slows down the whole process a lot.

diff --git a/TODO b/TODO
old mode 100644
new mode 100755
diff --git a/backends/apt/aptBackend.py b/backends/apt/aptBackend.py
index d3451c1..6810a6d 100755
--- a/backends/apt/aptBackend.py
+++ b/backends/apt/aptBackend.py
@@ -185,20 +185,6 @@ class InstallTimeOutPKError(PKError):
     pass
 
 
-class PackageKitCache(apt.cache.Cache):
-    """
-    Enhanced version of the apt.cache.Cache class which supports some features
-    which can only be found in the consolidate branch of python-apt
-    """
-    def __iter__(self):
-        """
-        Let the cache behave like a sorted list of packages
-        """
-        for pkgname in sorted(self._dict.keys()):
-            yield self._dict[pkgname]
-        raise StopIteration
-
-
 class DpkgInstallProgress(apt.progress.InstallProgress):
     """
     Class to initiate and monitor installation of local package files with dpkg
@@ -1574,8 +1560,8 @@ class PackageKitAptBackend(PackageKitBaseBackend):
         pklog.debug("Open APT cache")
         self.status(STATUS_LOADING_CACHE)
         try:
-            self._cache = PackageKitCache(PackageKitOpProgress(self, prange,
-                                                               progress))
+            self._cache = apt.Cache(PackageKitOpProgress(self, prange,
+                                                         progress))
         except:
             self.error(ERROR_NO_CACHE, "Package cache could not be opened")
             return
commit abbf1dabb741652de7a0920cc8aa029741155dc3
Author: Sebastian Heinlein <devel at glatzor.de>
Date:   Sun Aug 30 10:09:05 2009 +0200

    APT: Move apt lock handling into the decorator

diff --git a/backends/apt/aptBackend.py b/backends/apt/aptBackend.py
index 422bed5..d3451c1 100755
--- a/backends/apt/aptBackend.py
+++ b/backends/apt/aptBackend.py
@@ -152,18 +152,24 @@ HREF_CVE="http://web.nvd.nist.gov/view/vuln/detail?vulnId=%s"
 # Required to get translated descriptions
 locale.setlocale(locale.LC_ALL, "")
 
-def unlock_cache_afterwards(func):
+def lock_cache(func):
+    """Lock the system package cache before excuting the decorated function and
+    release the lock afterwards.
     """
-    Make sure that the package cache is unlocked after the decorated function
-    was called.
-    """
-    def _unlock_cache_afterwards(*args, **kwargs):
+    def _locked_cache(*args, **kwargs):
         backend = args[0]
         try:
+            apt_pkg.PkgSystemLock()
+        except SystemError:
+            #FIXME: Show the blocking application in the details
+            backend.error(ERROR_CANNOT_GET_LOCK,
+                          "Only use one package management programme at the "
+                          "the same time.")
+        try:
             func(*args, **kwargs)
         finally:
             backend._unlock_cache()
-    return _unlock_cache_afterwards
+    return _locked_cache
 
 
 class PKError(Exception):
@@ -785,7 +791,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
                          format_string(pkg.description),
                          pkg.homepage, pkg.packageSize)
 
-    @unlock_cache_afterwards
+    @lock_cache
     def update_system(self, only_trusted):
         """
         Implement the {backend}-update-system functionality
@@ -794,7 +800,6 @@ class PackageKitAptBackend(PackageKitBaseBackend):
         # FIXME: use only_trusted
 
         pklog.info("Upgrading system")
-        if not self._lock_cache(): return
         self.status(STATUS_UPDATE)
         self.allow_cancel(False)
         self.percentage(0)
@@ -829,14 +834,13 @@ class PackageKitAptBackend(PackageKitBaseBackend):
         resolver.Resolve(True)
         if not self._commit_changes(): return False
 
-    @unlock_cache_afterwards
+    @lock_cache
     def remove_packages(self, allowdeps, autoremove, ids):
         """
         Implement the {backend}-remove functionality
         """
         # TODO: use autoremove
         pklog.info("Removing package(s): id %s" % ids)
-        if not self._lock_cache(): return
         self.status(STATUS_REMOVE)
         self.allow_cancel(False)
         self.percentage(0)
@@ -1052,7 +1056,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
                        "The repository of the id %s isn't available" % repo_id)
             return
 
-    @unlock_cache_afterwards
+    @lock_cache
     def update_packages(self, only_trusted, ids):
         """
         Implement the {backend}-update functionality
@@ -1061,7 +1065,6 @@ class PackageKitAptBackend(PackageKitBaseBackend):
         # FIXME: use only_trusted
 
         pklog.info("Updating package with id %s" % ids)
-        if not self._lock_cache(): return
         self.status(STATUS_UPDATE)
         self.allow_cancel(False)
         self.percentage(0)
@@ -1165,7 +1168,7 @@ class PackageKitAptBackend(PackageKitBaseBackend):
                 return
         self.percentage(100)
 
-    @unlock_cache_afterwards
+    @lock_cache
     def install_packages(self, only_trusted, ids):
         """
         Implement the {backend}-install functionality
@@ -1174,7 +1177,6 @@ class PackageKitAptBackend(PackageKitBaseBackend):
         # FIXME: use only_trusted
 
         pklog.info("Installing package with id %s" % ids)
-        if not self._lock_cache(): return
         self.status(STATUS_INSTALL)
         self.allow_cancel(False)
         self.percentage(0)
@@ -1224,14 +1226,13 @@ class PackageKitAptBackend(PackageKitBaseBackend):
                 self.error(ERROR_UNKNOWN, "%s was not installed" % p)
                 return
 
-    @unlock_cache_afterwards
+    @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)
-        if not self._lock_cache(): return
         self.status(STATUS_INSTALL)
         self.allow_cancel(False)
         self.percentage(0)
@@ -1286,14 +1287,13 @@ class PackageKitAptBackend(PackageKitBaseBackend):
             return
         self.percentage(100)
 
-    @unlock_cache_afterwards
+    @lock_cache
     def refresh_cache(self, force):
         """
         Implement the {backend}-refresh_cache functionality
         """
         # TODO: use force ?
         pklog.info("Refresh cache")
-        if not self._lock_cache(): return
         self.status(STATUS_REFRESH_CACHE)
         self.last_action_time = time.time()
         self.allow_cancel(False);
@@ -1557,20 +1557,6 @@ class PackageKitAptBackend(PackageKitBaseBackend):
 
     # Helpers
 
-    def _lock_cache(self):
-        """
-        Emit an error message and return true if the apt system lock cannot
-        be acquired.
-        """
-        try:
-            apt_pkg.PkgSystemLock()
-        except SystemError:
-            self.error(ERROR_CANNOT_GET_LOCK,
-                       "Only use one package management programme at the "
-                       "the same time.")
-            return False
-        return True
-
     def _unlock_cache(self):
         """
         Unlock the system package cache
commit 57b543547afa4d8534bfc3420f894b04af49c384
Author: Sebastian Heinlein <devel at glatzor.de>
Date:   Sun Aug 30 09:55:33 2009 +0200

    APT: Make use of the new RepoMetadataDownloadFailed message

diff --git a/backends/apt/aptBackend.py b/backends/apt/aptBackend.py
index c942590..422bed5 100755
--- a/backends/apt/aptBackend.py
+++ b/backends/apt/aptBackend.py
@@ -1299,13 +1299,15 @@ class PackageKitAptBackend(PackageKitBaseBackend):
         self.allow_cancel(False);
         self.percentage(0)
         self._check_init((0,10))
+        progress = PackageKitFetchProgress(self, prange=(10,95))
         try:
-            self._cache.update(PackageKitFetchProgress(self, prange=(10,95)))
-        except Exception, e:
-            self._open_cache(prange=(95,100))
-            self.error(ERROR_UNKNOWN,
-                       "Refreshing cache failed: %s" % format_string(e.message))
-            return
+            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)
 
commit d9bfe60fa7a5f5e11ddf822168ffe498db116ffd
Author: Sebastian Heinlein <devel at glatzor.de>
Date:   Sun Aug 30 08:48:25 2009 +0200

    libpackagekit-(qt|gtk): Add a message enum to indicate that the download of repository metadata failed.

diff --git a/lib/packagekit-glib/pk-enum.c b/lib/packagekit-glib/pk-enum.c
index 1d9b8e5..645650e 100644
--- a/lib/packagekit-glib/pk-enum.c
+++ b/lib/packagekit-glib/pk-enum.c
@@ -222,6 +222,7 @@ static const PkEnumMatch enum_message[] = {
 	{PK_MESSAGE_ENUM_CONFIG_FILES_CHANGED,	"config-files-changed"},
 	{PK_MESSAGE_ENUM_PACKAGE_ALREADY_INSTALLED, "package-already-installed"},
 	{PK_MESSAGE_ENUM_AUTOREMOVE_IGNORED, "autoremove-ignored"},
+	{PK_MESSAGE_ENUM_REPO_METADATA_DOWNLOAD_FAILED, "repo-metadata-download-failed"},
 	{0, NULL}
 };
 
diff --git a/lib/packagekit-qt/src/client.h b/lib/packagekit-qt/src/client.h
index d8a4569..08b84a7 100644
--- a/lib/packagekit-qt/src/client.h
+++ b/lib/packagekit-qt/src/client.h
@@ -406,6 +406,7 @@ public:
 		MessageConfigFilesChanged,
 		MessagePackageAlreadyInstalled,
 		MessageAutoremoveIgnored,
+		MessageRepoMetadataDownloadFailed,
 		UnknownMessageType
 	} MessageType;
 
commit 3db117c383ec09ca961da80865ffa96fd8ea1ad3
Merge: 6fbd3f6... a501e0d...
Author: Daniel Nicoletti <dantti85-pk at yahoo.com.br>
Date:   Thu Aug 27 17:56:38 2009 -0300

    Merge branch 'master' into aptcc-simulate

commit 6fbd3f62e9c94100ab61332472cd45d9226d3c3a
Author: Daniel Nicoletti <dantti85-pk at yahoo.com.br>
Date:   Thu Aug 27 17:33:32 2009 -0300

    first changes to aptcc simulate

diff --git a/backends/aptcc/apt.cpp b/backends/aptcc/apt.cpp
index 26552b0..ef25369 100644
--- a/backends/aptcc/apt.cpp
+++ b/backends/aptcc/apt.cpp
@@ -614,6 +614,146 @@ static bool CheckAuth(pkgAcquire& Fetcher, PkBackend *backend)
    return false;
 }
 
+bool TryToInstall(pkgCache::PkgIterator Pkg,
+		  pkgDepCache &Cache,
+		  pkgProblemResolver &Fix,
+		  bool Remove,
+		  bool BrokenFix,
+		  unsigned int &ExpectedInst,
+		  bool AllowFail = true)
+{
+   /* This is a pure virtual package and there is a single available
+      provides */
+   if (Cache[Pkg].CandidateVer == 0 && Pkg->ProvidesList != 0 &&
+       Pkg.ProvidesList()->NextProvides == 0)
+   {
+      pkgCache::PkgIterator Tmp = Pkg.ProvidesList().OwnerPkg();
+      ioprintf(c1out,_("Note, selecting %s instead of %s\n"),
+	       Tmp.Name(),Pkg.Name());
+      Pkg = Tmp;
+   }
+
+   // Handle the no-upgrade case
+   if (_config->FindB("APT::Get::upgrade",true) == false &&
+       Pkg->CurrentVer != 0)
+   {
+      if (AllowFail == true)
+	 ioprintf(c1out,_("Skipping %s, it is already installed and upgrade is not set.\n"),
+		  Pkg.Name());
+      return true;
+   }
+
+   // Check if there is something at all to install
+   pkgDepCache::StateCache &State = Cache[Pkg];
+   if (Remove == true && Pkg->CurrentVer == 0)
+   {
+      Fix.Clear(Pkg);
+      Fix.Protect(Pkg);
+      Fix.Remove(Pkg);
+
+      /* We want to continue searching for regex hits, so we return false here
+         otherwise this is not really an error. */
+      if (AllowFail == false)
+	 return false;
+
+      ioprintf(c1out,_("Package %s is not installed, so not removed\n"),Pkg.Name());
+      return true;
+   }
+
+   if (State.CandidateVer == 0 && Remove == false)
+   {
+      if (AllowFail == false)
+	 return false;
+
+      if (Pkg->ProvidesList != 0)
+      {
+	 ioprintf(c1out,_("Package %s is a virtual package provided by:\n"),
+		  Pkg.Name());
+
+	 pkgCache::PrvIterator I = Pkg.ProvidesList();
+	 for (; I.end() == false; I++)
+	 {
+	    pkgCache::PkgIterator Pkg = I.OwnerPkg();
+
+	    if (Cache[Pkg].CandidateVerIter(Cache) == I.OwnerVer())
+	    {
+	       if (Cache[Pkg].Install() == true && Cache[Pkg].NewInstall() == false)
+		  c1out << "  " << Pkg.Name() << " " << I.OwnerVer().VerStr() <<
+		  _(" [Installed]") << endl;
+	       else
+		  c1out << "  " << Pkg.Name() << " " << I.OwnerVer().VerStr() << endl;
+	    }
+	 }
+	 c1out << _("You should explicitly select one to install.") << endl;
+      }
+      else
+      {
+	 ioprintf(c1out,
+	 _("Package %s is not available, but is referred to by another package.\n"
+	   "This may mean that the package is missing, has been obsoleted, or\n"
+           "is only available from another source\n"),Pkg.Name());
+
+	 string List;
+	 string VersionsList;
+	 SPtrArray<bool> Seen = new bool[Cache.Head().PackageCount];
+	 memset(Seen,0,Cache.Head().PackageCount*sizeof(*Seen));
+	 pkgCache::DepIterator Dep = Pkg.RevDependsList();
+	 for (; Dep.end() == false; Dep++)
+	 {
+	    if (Dep->Type != pkgCache::Dep::Replaces)
+	       continue;
+	    if (Seen[Dep.ParentPkg()->ID] == true)
+	       continue;
+	    Seen[Dep.ParentPkg()->ID] = true;
+	    List += string(Dep.ParentPkg().Name()) + " ";
+        //VersionsList += string(Dep.ParentPkg().CurVersion) + "\n"; ???
+	 }
+	 ShowList(c1out,_("However the following packages replace it:"),List,VersionsList);
+      }
+
+      _error->Error(_("Package %s has no installation candidate"),Pkg.Name());
+      return false;
+   }
+
+   Fix.Clear(Pkg);
+   Fix.Protect(Pkg);
+   if (Remove == true)
+   {
+      Fix.Remove(Pkg);
+      Cache.MarkDelete(Pkg,_config->FindB("APT::Get::Purge",false));
+      return true;
+   }
+
+   // Install it
+   Cache.MarkInstall(Pkg,false);
+   if (State.Install() == false)
+   {
+      if (_config->FindB("APT::Get::ReInstall",false) == true)
+      {
+	 if (Pkg->CurrentVer == 0 || Pkg.CurrentVer().Downloadable() == false)
+	    ioprintf(c1out,_("Reinstallation of %s is not possible, it cannot be downloaded.\n"),
+		     Pkg.Name());
+	 else
+	    Cache.SetReInstall(Pkg,true);
+      }
+      else
+      {
+	 if (AllowFail == true)
+	    ioprintf(c1out,_("%s is already the newest version.\n"),
+		     Pkg.Name());
+      }
+   }
+   else
+      ExpectedInst++;
+
+   // Install it with autoinstalling enabled (if we not respect the minial
+   // required deps or the policy)
+   if ((State.InstBroken() == true || State.InstPolicyBroken() == true) && BrokenFix == false)
+      Cache.MarkInstall(Pkg,true);
+
+   return true;
+}
+
 									/*}}}*/
 
 // InstallPackages - Actually download and install the packages		/*{{{*/
@@ -938,3 +1078,287 @@ bool aptcc::installPackages(pkgDepCache &Cache,
 	    _system->Lock();
 	}
 }
+
+bool aptcc::prepare_transaction(bool simulate, bool remove)
+{
+	bool WithLock = !simulate; // Check to see if we are just simulating,
+			    //since for that no lock is needed
+
+    //    CacheFile Cache;
+	pkgCacheFile Cache;
+	OpTextProgress Prog(*_config);
+	// TODO do a loop here waiting for the lock if we need it..
+	if (Cache.Open(Prog, WithLock) == false) {
+		// failed to open cache, try checkDeps then..
+		// || Cache.CheckDeps(CmdL.FileSize() != 1) == false
+		return false;
+	}
+
+	// Enter the special broken fixing mode if the user specified arguments
+	bool BrokenFix = false;
+	if (Cache->BrokenCount() != 0) {
+		BrokenFix = true;
+	}
+
+	unsigned int AutoMarkChanged = 0;
+	unsigned int ExpectedInst = 0;
+	unsigned int Packages = 0;
+	pkgProblemResolver Fix(Cache);
+
+	bool DefRemove = remove; // check if we are going to remove, otherwise is false
+
+	// new scope for the ActionGroup
+	{
+		pkgDepCache::ActionGroup group(Cache);
+		for (const char **I = CmdL.FileList + 1; *I != 0; I++)
+		{
+			// Duplicate the string
+			unsigned int Length = strlen(*I);
+			char S[300];
+			if (Length >= sizeof(S))
+			    continue;
+			strcpy(S,*I);
+
+			// See if we are removing and special indicators..
+			bool Remove = DefRemove;
+			char *VerTag = 0;
+			bool VerIsRel = false;
+
+		// Locate the package WE SHOULD ALREADY HAVE THE PACKAGE
+    // 	    pkgCache::PkgIterator Pkg = Cache->FindPkg(S);
+    // 	    Packages++;
+    // 	    if (Pkg.end() == true)
+    // 	    {
+    // 		// Check if the name is a regex
+    // 		const char *I;
+    // 		for (I = S; *I != 0; I++)
+    // 		if (*I == '?' || *I == '*' || *I == '|' ||
+    // 		    *I == '[' || *I == '^' || *I == '$')
+    // 		    break;
+    // 		if (*I == 0)
+    // 		return _error->Error(_("Couldn't find package %s"),S);
+    //
+    // 		// Regexs must always be confirmed
+    // 		ExpectedInst += 1000;
+    //
+    // 		// Compile the regex pattern
+    // 		regex_t Pattern;
+    // 		int Res;
+    // 		if ((Res = regcomp(&Pattern,S,REG_EXTENDED | REG_ICASE |
+    // 				REG_NOSUB)) != 0)
+    // 		{
+    // 		char Error[300];
+    // 		regerror(Res,&Pattern,Error,sizeof(Error));
+    // 		return _error->Error(_("Regex compilation error - %s"),Error);
+    // 		}
+    //
+    // 		// Run over the matches
+    // 		bool Hit = false;
+    // 		for (Pkg = Cache->PkgBegin(); Pkg.end() == false; Pkg++)
+    // 		{
+    // 		if (regexec(&Pattern,Pkg.Name(),0,0,0) != 0)
+    // 		    continue;
+    //
+    // 		ioprintf(c1out,_("Note, selecting %s for regex '%s'\n"),
+    // 			    Pkg.Name(),S);
+    //
+    // 		if (VerTag != 0)
+    // 		    if (TryToChangeVer(Pkg,Cache,VerTag,VerIsRel) == false)
+    // 			return false;
+    //
+    // 		Hit |= TryToInstall(Pkg,Cache,Fix,Remove,BrokenFix,
+    // 				    ExpectedInst,false);
+    // 		}
+    // 		regfree(&Pattern);
+    //
+    // 		if (Hit == false)
+    // 		return _error->Error(_("Couldn't find package %s"),S);
+    // 	    }
+    // 	    else
+		{
+    // 		if (VerTag != 0)
+    // 		    if (TryToChangeVer(Pkg,Cache,VerTag,VerIsRel) == false)
+    // 			return false;
+			if (TryToInstall(Pkg,Cache,Fix,Remove,BrokenFix,ExpectedInst) == false) {
+				return false;
+			}
+
+		}
+	}
+
+	/* If we are in the Broken fixing mode we do not attempt to fix the
+	    problems. This is if the user invoked install without -f and gave
+	    packages */
+	if (BrokenFix == true && Cache->BrokenCount() != 0)
+	{
+	    c1out << _("You might want to run `apt-get -f install' to correct these:") << endl;
+	    ShowBroken(c1out,Cache,false);
+
+	    return _error->Error(_("Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution)."));
+	}
+
+	// Call the scored problem resolver
+	Fix.InstallProtect();
+	if (Fix.Resolve(true) == false)
+	    _error->Discard();
+
+	// Now we check the state of the packages,
+	if (Cache->BrokenCount() != 0)
+	{
+	    c1out <<
+		_("Some packages could not be installed. This may mean that you have\n"
+		"requested an impossible situation or if you are using the unstable\n"
+		"distribution that some required packages have not yet been created\n"
+		"or been moved out of Incoming.") << endl;
+	    /*
+	    if (Packages == 1)
+	    {
+		c1out << endl;
+		c1out <<
+		_("Since you only requested a single operation it is extremely likely that\n"
+		    "the package is simply not installable and a bug report against\n"
+		    "that package should be filed.") << endl;
+	    }
+	    */
+
+	    c1out << _("The following information may help to resolve the situation:") << endl;
+	    c1out << endl;
+	    ShowBroken(c1out,Cache,false);
+	    return _error->Error(_("Broken packages"));
+	}
+    }
+    if (!DoAutomaticRemove(Cache))
+	return false;
+
+    /* Print out a list of packages that are going to be installed extra
+	to what the user asked */
+    if (Cache->InstCount() != ExpectedInst)
+    {
+	string List;
+	string VersionsList;
+	for (unsigned J = 0; J < Cache->Head().PackageCount; J++)
+	{
+	    pkgCache::PkgIterator I(Cache,Cache.List[J]);
+	    if ((*Cache)[I].Install() == false)
+		continue;
+
+	    const char **J;
+	    for (J = CmdL.FileList + 1; *J != 0; J++)
+		if (strcmp(*J,I.Name()) == 0)
+		    break;
+
+	    if (*J == 0) {
+		List += string(I.Name()) + " ";
+		VersionsList += string(Cache[I].CandVersion) + "\n";
+	    }
+	}
+
+	ShowList(c1out,_("The following extra packages will be installed:"),List,VersionsList);
+    }
+
+    /* Print out a list of suggested and recommended packages */
+    {
+	string SuggestsList, RecommendsList, List;
+	string SuggestsVersions, RecommendsVersions;
+	for (unsigned J = 0; J < Cache->Head().PackageCount; J++)
+	{
+	    pkgCache::PkgIterator Pkg(Cache,Cache.List[J]);
+
+	    /* Just look at the ones we want to install */
+	    if ((*Cache)[Pkg].Install() == false)
+	    continue;
+
+	    // get the recommends/suggests for the candidate ver
+	    pkgCache::VerIterator CV = (*Cache)[Pkg].CandidateVerIter(*Cache);
+	    for (pkgCache::DepIterator D = CV.DependsList(); D.end() == false; )
+	    {
+		pkgCache::DepIterator Start;
+		pkgCache::DepIterator End;
+		D.GlobOr(Start,End); // advances D
+
+		// FIXME: we really should display a or-group as a or-group to the user
+		//        the problem is that ShowList is incapable of doing this
+		string RecommendsOrList,RecommendsOrVersions;
+		string SuggestsOrList,SuggestsOrVersions;
+		bool foundInstalledInOrGroup = false;
+		for(;;)
+		{
+		/* Skip if package is  installed already, or is about to be */
+		string target = string(Start.TargetPkg().Name()) + " ";
+
+		if ((*Start.TargetPkg()).SelectedState == pkgCache::State::Install
+		    || Cache[Start.TargetPkg()].Install())
+		{
+		    foundInstalledInOrGroup=true;
+		    break;
+		}
+
+		/* Skip if we already saw it */
+		if (int(SuggestsList.find(target)) != -1 || int(RecommendsList.find(target)) != -1)
+		{
+		    foundInstalledInOrGroup=true;
+		    break;
+		}
+
+		// this is a dep on a virtual pkg, check if any package that provides it
+		// should be installed
+		if(Start.TargetPkg().ProvidesList() != 0)
+		{
+		    pkgCache::PrvIterator I = Start.TargetPkg().ProvidesList();
+		    for (; I.end() == false; I++)
+		    {
+			pkgCache::PkgIterator Pkg = I.OwnerPkg();
+			if (Cache[Pkg].CandidateVerIter(Cache) == I.OwnerVer() &&
+			    Pkg.CurrentVer() != 0)
+			    foundInstalledInOrGroup=true;
+		    }
+		}
+
+		if (Start->Type == pkgCache::Dep::Suggests)
+		{
+		    SuggestsOrList += target;
+		    SuggestsOrVersions += string(Cache[Start.TargetPkg()].CandVersion) + "\n";
+		}
+
+		if (Start->Type == pkgCache::Dep::Recommends)
+		{
+		    RecommendsOrList += target;
+		    RecommendsOrVersions += string(Cache[Start.TargetPkg()].CandVersion) + "\n";
+		}
+
+		if (Start >= End)
+		    break;
+		Start++;
+		}
+
+		if(foundInstalledInOrGroup == false)
+		{
+		RecommendsList += RecommendsOrList;
+		RecommendsVersions += RecommendsOrVersions;
+		SuggestsList += SuggestsOrList;
+		SuggestsVersions += SuggestsOrVersions;
+		}
+
+	    }
+	}
+
+	ShowList(c1out,_("Suggested packages:"),SuggestsList,SuggestsVersions);
+	ShowList(c1out,_("Recommended packages:"),RecommendsList,RecommendsVersions);
+
+    }
+
+    // if nothing changed in the cache, but only the automark information
+    // we write the StateFile here, otherwise it will be written in
+    // cache.commit()
+    if (AutoMarkChanged > 0 &&
+	Cache->DelCount() == 0 && Cache->InstCount() == 0 &&
+	Cache->BadCount() == 0 &&
+	_config->FindB("APT::Get::Simulate",false) == false)
+	Cache->writeStateFile(NULL);
+
+    // See if we need to prompt
+    if (Cache->InstCount() == ExpectedInst && Cache->DelCount() == 0)
+	return InstallPackages(Cache,false,false);
+
+    return InstallPackages(Cache,false);
+}
diff --git a/backends/aptcc/apt.h b/backends/aptcc/apt.h
index 2d06e6e..6ac050a 100644
--- a/backends/aptcc/apt.h
+++ b/backends/aptcc/apt.h
@@ -57,6 +57,16 @@ public:
 	bool is_held(const pkgCache::PkgIterator &pkg);
 
 	/**
+	 *  prepare a transaction to install/remove/update packages
+	 *  - for install and update, \p remove should be set to false
+	 *  - if you are going to remove, \p remove should be true
+	 *  - If you don't want to actually install/update/remove
+	 *    simulate should be true, in this case packages with
+	 *    what's going to happen will be emitted.
+	 */
+	bool prepare_transaction(bool simulate, bool remove);
+
+	/**
 	 *  get the state cache of the package
 	 */
 	pkgDepCache::StateCache get_state(const pkgCache::PkgIterator &pkg);


More information about the PackageKit-commit mailing list